【技术实现步骤摘要】
用于在存储器中存储可变长度数据块的方法和系统
[0001]本申请涉及用于在存储器中存储可变长度数据块的方法和系统。
技术介绍
[0002]有许多应用程序将可变长度数据块存储在存储器中。例如,图形处理系统被配置成(例如,从在计算机系统上运行的应用程序)接收图形数据,并从图形数据确定渲染图像的像素值。在一些情况下,将图像的像素值分成多个块,根据无损压缩算法/方案各个地压缩所述多个块中的每个块。这可能导致可变长度的压缩块。
[0003]在这些应用程序中,常常期望能够以减少用于存储可变长度数据块的存储器量的方式将可变长度数据块存储在存储器中;和/或允许以最小数量的存储器访问请求存储可变长度数据块并从存储器读取可变长度数据块。
[0004]下面描述的实施方案仅以举例的方式提供,而不构成对解决用于在存储器中存储可变长度数据块的方法和系统的任何或所有缺点的实施方式的限制。
技术实现思路
[0005]提供本
技术实现思路
是为了介绍在以下详细描述中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关 ...
【技术保护点】
【技术特征摘要】
1.一种在存储器中存储至少两个可变长度数据块的集合的方法(600),每个可变长度数据块具有N*B的最大大小,其中N是大于或等于二的整数,并且B是能够使用单个存储器访问请求写入到所述存储器的最大数据大小,所述方法(600)包括:对于所述集合中的每个可变长度数据块,将所述可变长度数据块的大小为B的前P个非重叠部分存储在分配给所述可变长度数据块的存储器的组块内,其中分配给每个可变长度数据块的存储器的组块具有X*B的大小,X是小于N的整数,并且P是(i)所述可变长度数据块的大小为B的非重叠部分的数目和(ii)X中的最小值(602);将所述集合中的所述可变长度数据块的任何剩余部分存储在所述存储器的剩余区段中,所述剩余区段在所述集合的所述可变长度数据块之间共享(604);以及在所述存储器的标头区段中存储指示所述集合中的所述可变长度数据块中的每一个的大小的信息(606)。2.根据权利要求1所述的方法(600),其中,将所述可变长度数据块的所述剩余部分存储在所述剩余区段中包括将所述可变长度数据块的所述剩余部分彼此相邻地存储在所述剩余区段中。3.根据权利要求2所述的方法(600),其中,所述可变长度数据块的所述剩余部分从所述剩余区段的起始地址开始彼此相邻地存储于所述剩余区段中。4.根据权利要求2所述的方法(600),其中,所述可变长度数据块的所述剩余部分从所述剩余区段的最后地址开始彼此相邻地存储于所述剩余区段中。5.根据权利要求1所述的方法(600),其中,所述剩余区段被分成多个B大小的部分,并且将所述可变长度数据块的所述剩余部分存储在所述剩余区段中包括:在所述剩余区段的开始或结束处存储所述集合的第一可变长度数据块的所述剩余部分(904);对于所述集合中的每个其它可变长度数据块,确定将所述可变长度数据块的所述剩余部分与在前剩余部分相邻地存储于所述剩余区段中是否将使得所述可变长度数据块的剩余部分被存储在所述多个B大小部分中的至少两个B大小部分中(910);响应于确定将可变长度数据块的所述剩余部分与在前剩余部分相邻地存储于所述剩余区段中将使得所述剩余部分被存储在所述多个B大小部分中的至少两个B大小部分中,在所述剩余区段的下一B大小部分的开始处存储所述剩余部分(914);以及响应于确定将可变长度数据块的所述剩余部分与在前剩余部分相邻地存储于所述剩余区段中将不会使得所述剩余部分被存储在所述多个B大小部分中的至少两个B大小部分中,在所述剩余区段中与所述在前剩余部分相邻地存储所述剩余部分(912)。6.根据权利要求1至5中任一项所述的方法(600),其中,在所述剩余区段中存储所述可变长度数据块的所述剩余部分包括由所述剩余部分形成一个或多个剩余块,以及将所述一个或多个剩余块存储在所述剩余区段中。7.根据权利要求1至5中任一项所述的方法(600),其中,所述可变长度数据块的所述剩余部分以与所述可变长度数据块的大小为B的前P个非重叠部分存储在所述存储器中的相同次序存储在所述剩余区段中。8.根据权利要求1至5中任一项所述的方法(600),其中,所述可变长度数据块的所述剩余部分以与所述可变长度数据块的大小为B的前P个非重叠部分存储在所述存储器中的不
同次序存储在所述剩余区段中。9.根据权利要求1至5中任一项所述的方法(600),其中,X等于N
‑
1。10.根据权利要求9所述的方法(600),其中,所述剩余区段具有M*B的大小,其中,M是所述集合中的可变长度数据块的数目。11.根据权利要求1至5中任一项所述的方法(600),其中,在所述存储器的所述标头区段中存储指示所述集合中的所述可变长度数据块中的每一个的所述大小的信息包括在针对所述集合中的所述可变长度数据块中的每一个的标头中存储标识所述可变长度数据块大小的信息。12.根据权利要求1至5中任一项所述的方法(600),还包括:接收所述集合中的可变长度数据块的修改版本(1202);将所述可变长度数据块的所述修改版本的大小为B的前P个非重叠部分存储在分配给所述可变长度数据块的所述存储器的所述组块中(1204);从所述剩余区段读取所述多个可变长度数据块中的至少一个其它可变长度数据块的所述剩余部分(1212);由所述可变长度数据块的所述修改版本的任何剩余部分和所述至少一个其它可变长度数据块的所述剩余部分形成剩余块(1214);以及将所述剩余块存储在所述剩余区段中(1216)。13.根据权利要求1至5中任一项所述的方法(600),其中,所述集合中的所述可变长度数据块中的至少一个包括根据无损压缩算法压缩的压缩数据块。14.根据权利要求1至5中任一项所述的方法(600),其中,每个可变长度数据块表示帧缓冲数据的一部分。15.一种用于在存储器中存储至少两个可变长度数据块(702,704,706,708)的集合的存...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。