数据排列方法和数据存储装置与流程

文档序号:15366266发布日期:2018-09-07 22:02阅读:224来源:国知局

本发明主张在2013年03月29日提出的申请号为61/805,591的美国临时专利申请的优先权;主张在2013年11月06日提出的申请号为61/900,633的美国临时专利申请的优先权;主张在2014年03月27日提出的申请号为14/226,840的美国专利申请的优先权。因此在全文中合并参考这些美国申请案的申请标的。

技术领域

本发明是有关于缓冲器中存储的图片,特别是有关于在存储单元中的图片(例如,帧或场(field))的排列像素的方法或装置,其中每一个存储单元(例如,存储字)具有像素尺寸(例如,10比特或12比特)不可分割的存储尺寸(例如,128比特)。



背景技术:

由于存储和传输的限制,通常需要降低(或压缩)图片的像素数据的数量。由于人类的视觉系统对亮度变化比颜色变化更敏感,与颜色差异(色度)组分Cb和Cr相比,视频系统会投入更多的带宽来优化亮度组分Y。典型地,由于通常用于很多视频标准的位深度为8比特,在大多数消费应用中亮度像素和色度像素为每像素8比特。

在某些应用中,图片可以存储于缓冲器中,以使得缓冲的图片可稍后使用以完成设计的功能。举例来说,在视频编码器或视频解码器中,将重建的图片存入帧缓冲器(例如,动态随机存取存储器(dynamic random access memory,DRAM))中,并可用作运动补偿或其他功能的参考图片。具体地,由于视频压缩和解压缩的特性,在帧缓冲器中相同的数据结构可用于写入当前已解码的像素和读出先前已解码的像素。因此,在帧缓冲器中图片的像素数据的数据排列可以影响视频压缩和解压缩的效率。

一般来说,DRAM系统具有的字宽是由DRAM系统的实际设计决定的。由于对于系统性能的要求持续增加,DRAM字宽具有相应增加的趋势。举例来说,当DRAM在视频编码器或视频解码器中作为帧缓冲器的情况下,在DRAM中的每一个数据字可配置为具有128比特字宽(即,16字节字宽)。DRAM字宽M为2的幂(即,M=2m)。然而,有可能图片中的亮度像素和色度像素的位深度N不是2的幂(即,N≠2n)。举例来说,在视频标准的开发中,可支持更大的位深度(即,10比特或12比特)。若M不能整除N,则在相关领域中需要解决如何适当排列帧缓冲器M比特DRAM字中的图片N比特亮度像素和N比特色度像素的问题。



技术实现要素:

根据本发明的示范性实施方式,提出在存储单元(例如,存储字)中的图片(例如,帧或场(field))的排列像素的方法或装置,其中每一个存储单元具有像素尺寸(例如,10比特或12比特)不可分割的存储尺寸(例如,128比特)。

根据本发明的第一方面,提出一种示范性的数据排列方法。该数据排列方法包括:得到图片的多个第一N比特像素的像素数据;以及根据图片的基于区块的扫描顺序,将得到的多个第一N比特像素的像素数据存储于第一缓冲器的多个M比特存储单元中,其中图片包括多个数据区块,基于区块的扫描顺序包括数据区块的光栅扫描顺序,多个M比特存储单元中的至少一个装有得到的多个第一N比特像素的像素数据的一部分,M和N为正整数,N不能整除M,以及多个第一N比特像素包括至少一像素,至少一像素包括被分割为存储于第一缓冲器中的多个M比特存储单元中的一个的第一部分,以及存储于第一缓冲器中的多个M比特存储单元中的另一个的第二部分。

根据本发明的第二方面,提出另一种示范性的数据排列方法。该数据排列方法包括:得到图片的多个第一N比特像素的像素数据;以及基于图片的基于区块的扫描顺序,至少将得到的多个第一N比特像素的像素数据存储于第一缓冲器的多个M比特存储单元中,其中图片包括多个数据区块,基于区块的扫描顺序包括数据区块的光栅扫描顺序,第一缓冲器的多个M比特存储单元中的每一个存储整数个该多个第一N比特像素,而没有存储任何的部分第一N比特像素,M和N为正整数,以及N不能整除M。

根据本发明的第三方面,提出又一种示范性的数据排列方法。该数据排列方法包括:得到图片的多个第一N比特像素的像素数据;得到图片的多个第二N比特像素的像素数据;以及基于图片的基于区块的扫描顺序,将得到的多个第一N比特像素的像素数据和得到的多个第二N比特像素的像素数据存储于缓冲器的多个M比特存储单元中;其中,缓冲器的多个M比特存储单元中的每一个存储整数个多个第一N比特像素,而没有存储任何的部分第一N比特像素,并进一步存储整数个多个第二N比特像素,而没有存储任何的部分第二N比特像素;多个第一N比特像素为亮度像素;多个第二N比特像素为色度像素。

根据本发明的第四方面,提出一种示范性的数据存储装置。该数据存储装置包括缓冲器和缓冲控制器。缓冲器具有多个M比特存储单元。缓冲控制器用于得到图片的多个N比特像素的像素数据,并基于图片的基于区块的扫描顺序,将多个N比特像素的像素数据存储于缓冲器的多个M比特存储单元中。其中,图片包括多个数据区块,以及基于区块的扫描顺序包括数据区块的光栅扫描顺序,多个M比特存储单元中的至少一个装有得到的多个N比特像素的像素数据的一部分,M和N为正整数,N不能整除M,以及多个N比特像素包括至少一像素,至少一像素被分割为存储于缓冲器中的多个M比特存储单元中一个的第一部分,和存储于缓冲器中的多个M比特存储单元中另一个的第二部分。

根据本发明的第五方面,提出另一种示范性的数据存储装置。该数据存储装置包括缓冲器和缓冲控制器。缓冲器具有多个M比特存储单元。缓冲控制器用于得到图片的多个N比特像素的像素数据,并基于图片的基于区块的扫描顺序,至少将得到的多个N比特像素的像素数据存储于缓冲器的多个M比特存储单元中。图片包括多个数据区块,以及基于区块的扫描顺序包括数据区块的光栅扫描顺序,缓冲器的多个M比特存储单元中的每一个存储整数个该多个N比特像素,而没有存储任何的部分N比特像素,M和N为正整数,以及N不能整除M。

根据本发明的第六方面,提出又一种示范性的数据存储装置。该数据存储装置包括缓冲器和缓冲控制器。缓冲器具有多个M比特存储单元。缓冲控制器用于得到图片的多个第一N比特像素的像素数据,得到图片的多个第二N比特像素的像素数据,并基于图片的基于区块的扫描顺序,将得到的多个第一N比特像素的像素数据和得到的多个第二N比特像素的像素数据存储于缓冲器的多个M比特存储单元中。其中,缓冲器的多个M比特存储单元中的每一个存储整数个该多个第一N比特像素,而没有存储任何的部分第一N比特像素,并进一步存储整数个该多个第二N比特像素,而没有存储任何的部分第二N比特像素,多个第一N比特像素为亮度像素,多个第二N比特像素为色度像素。

在参阅随后的通过附图解释说明的优选具体实施方式的详尽描述后,本领域的技术人员便可了解本发明的上述或者其他发明目的。

附图说明

图1为根据本发明实施方式的数据存储装置的方框图。

图2为根据本发明第一示范性数据排列设计的在一个缓冲器中亮度像素的数据排列的示意图。

图3为根据本发明第一示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图。

图4为根据本发明第一示范性数据排列设计的在一个缓冲器中一个色度组分的色度像素和另一缓冲器中另一色度组分的色度像素的数据排列的示意图。

图5为根据本发明第二示范性数据排列设计的在缓冲器中像素的数据排列的示意图。

图6为根据本发明实施方式的图片分割和图片基于区块的扫描顺序的设置的第一替代设计的示意图。

图7为根据本发明第三示范性数据排列设计的在一个缓冲器中亮度像素的数据排列的示意图。

图8为根据本发明第三示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图。

图9为根据本发明实施方式的图片分割和图片基于区块的扫描顺序的设置的第二替代设计的示意图。

图10为根据本发明第三示范性数据排列设计的在一个缓冲器中的亮度像素的另一数据排列的示意图。

图11为根据本发明第三示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的另一数据排列的示意图。

图12为根据本发明第四示范性数据排列设计的在一个缓冲器中亮度像素的数据排列的示意图。

图13为根据本发明第四示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图。

图14为根据本发明第四示范性数据排列设计的在一个缓冲器中一个色度组分的色度像素和另一缓冲器中另一色度组分的色度像素的数据排列的示意图。

图15为根据本发明第五示范性数据排列设计的在一个缓冲器中亮度像素的数据排列的示意图。

图16为根据本发明第五示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图。

图17为根据本发明第五示范性数据排列设计的在一个缓冲器中一个色度组分的色度像素和另一缓冲器中另一色度组分的色度像素的数据排列的示意图。

图18为根据本发明第六示范性数据排列设计的在同一缓冲器中的亮度像素和色度像素的第一数据排列的示意图。

图19为根据本发明第六示范性数据排列设计的同一缓冲器中的亮度像素和色度像素的第二数据排列的示意图。

图20为根据本发明第六示范性数据排列设计的同一缓冲器中的亮度像素和色度像素的第三数据排列的示意图。

图21为根据本发明第六示范性数据排列设计的同一缓冲器中的亮度像素和色度像素的第四数据排列的示意图。

图22为根据本发明实施方式的由缓冲控制器执行的缓冲写操作的流程图。

图23为根据本发明实施方式的由缓冲控制器执行的缓冲读操作的流程图。

图24为根据本发明第七示范性数据排列设计的由单一地址寻址的每一个网格单元中像素的数据排列的示意图。

图25为根据本发明实施方式的支持统一寻址模式的数据存储装置的应用的方框图。

图26为根据本发明实施方式的在基于16比特寻址模式下的数据提取操作的流程图。

具体实施方式

在说明书及权利要求书当中使用了某些词汇来指称特定的组件。本领域技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及权利要求书当中所提及的“包含”为开放式的用语,故应解释成“包含但不限定于”。另外,“耦接”一词在此是包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表该第一装置可直接电气连接于该第二装置,或通过其他装置或连接手段间接地电气连接至该第二装置。

图1为根据本发明实施方式的数据存储装置的方框图。可在需要存取存储设备中已存储图片的任意应用中,采用提出的数据存储装置100。举例来说,但不非以此为限,在视频编码器或视频解码器中可采用提出的数据存储装置100,以及已存储图片可为用于运动补偿的参考图片。在此实施方式中,数据存储装置100包括缓冲设备101和缓冲控制器104。缓冲设备101可为配置为具有一个或多个缓冲器(DRAM)于其中的DRAM设备。举例来说,在一个示范性设计中,缓冲设备101具有一个缓冲器102_1以及另一缓冲器102_2,缓冲器102_1用于存储对应于亮度组分(Y)的亮度像素的像素数据,缓冲器102_2用于存储对应于不同色度组分(Cr,Cb,或U,V)的色度像素的像素数据。在另一示范性实施方式中,缓冲设备101具有一个缓冲器102_1、另一缓冲器102_2、以及另一缓冲器102_3,缓冲器102_1用于存储对应于亮度组分(Y)的亮度像素的像素数据,缓冲器102_2用于存储对应于一个色度组分(Cr或U)的色度像素的像素数据,缓冲器102_3用于存储对应于另一个色度组分(Cb或V)的色度像素的像素数据。换句话说,根据实际设计的考虑,可以调整数据存储装置100中实践的缓冲器的数目。

缓冲控制器104用于控制缓冲设备101的存取(即,读和写)。当缓冲控制器104接收请求数据的写请求REQW时,缓冲控制器104获得图片IMG_IN的N比特像素的像素数据,并以图片IMG_IN的基于区块的扫描(block-based scan)顺序、适用于提出的数据排列来将得到的图片IMG_IN的N比特像素的像素数据存储于一个缓冲器(例如,缓冲器102_1,缓冲器102_2或缓冲器102_3)的多个M比特存储单元中,其中图片IMG_IN被分割为多个数据区块,以及基于区块的扫描顺序包括图片IMG_IN中至少一个用于数据区块的光栅扫描顺序(即,自图片IMG_IN的每一个数据区块行的最左边数据区块至最右边数据区块以及自图片IMG_IN的最上边数据区块行至最下边数据区块行的扫描顺序)。M和N为正整数,以及M不可被N整除。在此实施方式中,M为2的幂(例如,M=128(即,27)),以及N不是2的幂(例如,N=10或12)。当缓冲控制器104接收请求数据的读请求REQW时,缓冲控制器104根据提出的数据排列,自缓冲器的M比特存储器得到已存储的N比特像素的像素数据。

需要注意的是,提出的数据存储装置100可支持各种颜色空间。举例来说,当进入提出的数据存储装置100的图片IMG_IN按照YCbCr颜色空间来进行格式化时,图片将包括一个亮度组分(Y)的像素和两个色度组分(Cb,Cr)的像素。对于另一示例,当进入提出的数据存储装置100的图片IMG_IN按照YUV颜色空间来进行格式化时,图片将包括一个亮度组分(Y)的像素和两个色度组分(U,V)的像素。对于又一示例,当进入提出的数据存储装置100的图片IMG_IN按照除YUV颜色空间和YCbCr颜色空间之外的颜色空间来进行格式化时,图片将包括至少一亮度组分的像素和多个色度组分的像素。简单来说,提出的数据存储装置100符合具有至少一个亮度组分和多个色度组分的任意颜色空间。为求简洁,以下假设图片IMG_IN以与YCbCr颜色空间一致的格式来缓冲。然而,此仅用于解释说明的目的,并非用以限制本发明。

在具有基于区块的扫描设计的第一建议数据排列中,至少一M比特存储单元装有部分得到的N比特像素的像素数据,以及N比特像素包括至少一像素,该像素被分割为第一部分和第二部分,第一部分存储于缓冲器中一个M比特存储单元中,第二部分存储于同一缓冲器的另一个M比特存储单元中。请注意,第一建议数据排列可应用于具有4:4:4颜色格式、4:2:2颜色格式、或4:2:0颜色格式的图片IMG_IN。以下将描述第一建议数据排列的数个示范性设计。

关于第一示范性数据排列设计,缓冲控制器104被配置为根据图片IMG_IN的基于区块的扫描顺序,逐个地将得到的N比特像素的像素数据连续地存储于缓冲器的M比特存储单元中,直到所有得到的像素数据均存储于缓冲器中为止。总之,若图片IMG_IN中的所有N比特像素(即,亮度像素或色度像素)的像素数据没有完全存入缓冲器中,则一个M比特存储单元将填入像素数据。

请参考图2,图2为根据本发明第一示范性数据排列设计的在一个缓冲器中的亮度像素的数据排列的示意图,其中至少一存储单元填入亮度像素数据,以及至少一亮度像素被分割为存储于不同存储单元中的两个部分。如上所述,缓冲控制器104存储亮度像素于缓冲器102_1中。在图片IMG_IN中的每一个亮度像素为N比特,以及在缓冲器102_1中的每一个存储单元为M比特。举例来说,在此实施方式中,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于亮度像素的整数倍。如图2所示,图片IMG_IN具有多个数据区块(即,DB0,DB1,DB2,DB3,每一个数据区块由多个亮度像素组成)。请注意,图2中图片IMG_IN中定义的数据区块的数目仅用于解释说明的目的,并非用于限制本发明。图2图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(即,DB0→DB1→DB2→DB3),并进一步包括每一个数据区块中的N比特亮度像素的光栅扫描顺序。当存储于当前存储单元106_1(即,M比特存储单元)中的亮度像素的数目达到int(M/N)时,当前存储单元106_1中的剩余存储空间小于一个亮度像素的尺寸,其中int()为往0的方向取整的整数除法,即将结果的余数取为0。举例来说,通过往0的方向取整的整数除法,9/4为2。具体地,假设颜色格式为4:2:0,12个亮度像素P0-P11具有10比特,当将亮度像素P0-P11存入128比特存储单元106_1中时,在128比特存储单元106_1中的剩余存储空间仅具有8比特(即,M-N*int(M/N)=8)。通过基于区块的扫描顺序(包括图片IMG_IN的每一个数据区块中的亮度像素的光栅扫描顺序),由于在图片IMG_IN中的亮度像素的像素数据连续地存入缓冲器102_1中,下一个像素P12被分割为存储于当前存储单元106_1中的第一部分,和存储于下一个存储单元106_2的第二部分,其中第一部分的尺寸为8比特(即,M-N*int(M/N)=8),以及第二部分的尺寸为2比特(即,[1+int(M/N)]*N-M=2)。通过此种方式,存储单元连续地将图片IMG_IN的亮度像素的数据存入,直到所有的亮度像素存入缓冲器102_1中为止。

请注意,由于M不能被N整除,M比特存储单元具有M-N*int(M/N)尺寸的存储空间,以用于存储一或两个亮度像素的部分数据。更具体地,存在三种情况。在第一种情况下,仅存储单元(图2未示)中最左边的亮度像素为分割的亮度像素。在第二种情况下,仅存储单元(即,图2中的存储单元106_1)中最右边的亮度像素为分割的亮度像素。在第三种情况下,存储单元(即,图2中的存储单元106_2)中最右边和最左边的亮度像素均为分割的亮度像素。

请参考图3,图3为根据本发明第一示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图,其中至少一存储单元中存入色度像素数据,以及至少一色度像素被分割为存入不同存储单元的两个部分。如上所述,缓冲控制器104存储同一缓冲器102_2中的不同色度组分(Cb,Cr)对应的色度像素,其中一个色度组分(Cb)的色度像素和另一色度组分(Cr)的色度像素以交织(interleaved)的方式存储,例如Cb-Cr-Cb-Cr或Cr-Cb-Cr-Cb。图片IMG_IN中的每一个色度像素为N比特,以及在缓冲器102_2中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于色度像素整数倍。如图3所示,图片IMG_IN具有多个数据区块(即,DB0,DB1,DB2,DB3,每一个数据区块由多个色度像素组成)。请注意,图3图片IMG_IN中定义的数据区块的数目仅用于解释说明的目的,并非用于限制本发明。图3图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(即,DB0→DB1→DB2→DB3),以及每一个数据区块中的N比特色度像素的光栅扫描顺序。当存储于当前存储单元107_1中的色度像素数目达到int(M/N)时,在当前存储单元107_1中的剩余存储空间小于一个色度像素尺寸。具体地,假设图片IMG_IN的颜色格式为4:2:0,以及采用Cb-Cr-Cb-Cr交织排列,当12个色度像素PCB,0,PCR,0,PCB,1,PCR,1…PCB,5,PCR,5(该12个色度像素中的每一个为10比特)被存入128比特存储单元107_1时,128比特存储单元107_1的剩余存储空间仅为8比特(即,M-N*int(M/N)=8)。由于通过基于区块的扫描顺序(其包括图片IMG_IN的每一个数据区块中的色度像素的光栅扫描顺序)以及Cb-Cr-Cb-Cr的交织排列,连续地将图片IMG_IN中的每一个色度组分的色度像素的像素数据存入缓冲器107_1中,下一个色度像素PCB,6被分割为存储于当前存储单元107_1中的第一部分,和存储于下一个存储单元107_2的第二部分,其中第一部分的尺寸为8比特(即,M-N*int(M/N)=8),以及第二部分的尺寸为2比特(即,[1+int(M/N)]*N-M=2)。通过此种方式,存储单元连续地将图片IMG_IN的色度像素的数据存入,直到所有的色度像素存入缓冲器102_2中为止。

由于M不能被N整除,M比特存储单元具有M-N*int(M/N)尺寸的存储空间,以用于存储一或两个色度像素的部分数据。相似地,存在三种情况。在第一种情况下,仅存储单元(图3未示)中最左边的色度像素为分割的色度像素。在第二种情况下,仅存储单元(即,图3中的存储单元107_1)中最右边的色度像素为分割的色度像素。在第三种情况下,存储单元(即,存储单元107_2)中最左边和最右边的色度像素均为分割的色度像素。

请参考图4,图4为根据本发明第一示范性数据排列设计的在一个缓冲器中一个色度组分的色度像素和另一缓冲器中另一色度组分的色度像素的数据排列的示意图,其中每一个缓冲器中的至少一存储单元填入色度像素数据,以及每一个色度组分的至少一色度像素被分割为存储于不同存储单元中的两个部分。如上所述,缓冲控制器104存储第一色度组分(Cb)对应的色度像素于缓冲器102_2中,并存储第二色度组分(Cr)对应的色度像素于缓冲器102_3中。换句话说,缓冲器102_2仅用于存储第一色度分量的色度像素,以及缓冲器102_3仅用于存储第二色度分量的色度像素。在图片IMG_IN中的每一个色度像素为N比特,以及在缓冲器102_2和缓冲器102_3中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于色度像素的整数倍。

如图4所示,图片IMG_IN具有多个数据区块(即,DB0,DB1,DB2,DB3,每一个数据区块由对应于不同色度组分的多个色度像素组成)。请注意,图4中图片IMG_IN定义的数据区块的数目仅用于解释说明的目的,并非用于限制本发明。图4的图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(即,DB0→DB1→DB2→DB3),和用于每一个数据区块中每一个色度组分的N比特色度像素的光栅扫描顺序。当存储于当前存储单元107_1的色度组分Cb的色度像素的数目达到int(M/N)时,当前存储单元107_1中的剩余存储空间小于一个色度组分Cb的色度像素的尺寸。具体地,假设图片IMG_IN的颜色格式为4:4:4,12个色度像素PCB,0-PCB,11具有10比特,当将色度像素PCB,0-PCB,11存入128比特存储单元107_1中时,在128比特存储单元107_1中的剩余存储空间仅具有8比特(即,M-N*int(M/N)=8)。通过基于区块的扫描顺序(其包括图片IMG_IN的每一个数据区块中的色度组分Cb的色度像素的光栅扫描顺序),由于在图片IMG_IN中的色度组分Cb的色度像素的像素数据连续地存入缓冲器102_2中,下一个色度像素PCB,12被分割为存储于当前存储单元107_1中的第一部分,和存储于下一个存储单元107_2的第二部分,其中第一部分的尺寸为8比特(即,M-N*int(M/N)=8),以及第二部分的尺寸为2比特(即,[1+int(M/N)]*N-M=2)。通过此种方式,存储单元连续地将图片IMG_IN的色度组分Cb的色度像素的数据存入,直到所有的色度组分Cb的色度像素存入缓冲器102_2中为止。由于M不能被N整除,M比特存储单元具有M-N*int(M/N)尺寸的存储空间,以用于存储色度组分Cb的一或两个色度像素的部分数据。相似地,存在三种情况。在第一种情况下,仅存储单元(图4未示)中最左边的色度像素为分割的色度像素。在第二种情况下,仅存储单元(即,图4中的存储单元107_1)中最右边的色度像素为分割的色度像素。在第三种情况下,存储单元(即,图4中的存储单元107_2)中最左边和最右边的色度像素均为分割的色度像素。

当存储于当前存储单元108_1中的其他色度组分Cr的色度像素数目达到int(M/N)时,在当前存储单元108_1中剩余的存储空间小于色度组分Cr的一个色度像素的尺寸。具体地,假设图片IMG_IN的颜色格式为4:4:4,当12个色度像素PCR,0-PCR,11(该12个色度像素中的每一个为10比特)被存入128比特存储单元108_1时,128比特存储单元108_1的剩余存储空间仅为8比特(即,M-N*int(M/N)=8)。由于通过基于区块的扫描顺序(其包括图片IMG_IN的每一个数据区块中的色度组分Cr的色度像素的光栅扫描顺序),连续地将图片IMG_IN中的色度组分Cr的色度像素的像素数据存入缓冲器102_3中,下一个色度像素PCR,12被分割为存储于当前存储单元108_1中的第一部分,和存储于下一个存储单元108_2的第二部分,其中第一部分的尺寸为8比特(即,M-N*int(M/N)=8),以及第二部分的尺寸为2比特(即,[1+int(M/N)]*N-M=2)。通过此种方式,存储单元连续地将图片IMG_IN的色度组分Cr的色度像素的数据存入,直到色度组分Cr的所有色度像素存入缓冲器102_3中为止。由于M不能被N整除,M比特存储单元具有M-N*int(M/N)尺寸的存储空间,以用于存储色度组分Cr的一或两个色度像素的部分数据。相似地,存在三种情况。在第一种情况下,仅存储单元(图4未示)中最左边的色度像素为分割的色度像素。在第二种情况下,仅存储单元(即,图4中的存储单元108_1)中最右边的色度像素为分割的色度像素。在第三种情况下,存储单元(即,图4中的存储单元108_2)中最左边和最右边的色度像素均为分割的色度像素。

基于第一示范性数据排列设计考虑每一个上述提及的数据排列,缓冲控制器104被配置为根据图片IMG_IN的基于区块的扫描顺序,逐个连续地将得到的N比特像素的像素数据(例如,亮度像素、不同色度组分的色度像素、或一个色度组分的色度像素)存储于单一的缓冲器的M比特存储单元中,直到所有得到的像素数据存储于缓冲器中为止。通过此种方式,由于存储单元中的像素数据的连续排列,该些N比特像素具有至少一像素,该至少一像素具有存储于缓冲器中不同M比特存储单元中的两部分。然而,此仅用于解释说明的目的,而并非用以限制本发明。可选地,当确定缓冲器中的每一个N比特像素的排列时,第一示范性数据排列设计可根据附加的条件而进行修改。本发明由此进一步提出第二示范性数据排列设计,其包括上述提到的一个存储器中的像素数据的连续排列的特征和在另一存储器中像素数据的不连续排列的附加特征。

具体地,关于像素数据的不连续排列的附加特征,第二示范性数据排列设计定义,图片IMG_IN的每一个数据块的最上面像素行的最左边N比特像素(例如,亮度像素或色度像素)不具有分割为存储于不同M比特存储单元中的两部分的像素。举例来说,在图片IMG_IN的当前数据区块的当前像素行中的最右边N比特像素的像素数据存储于当前M比特存储单元之后,无论当前M比特存储单元是否仍具有未使用的比特,缓冲控制器104将下一像素的像素数据(即,图片IMG_IN中下一数据区块的最上面像素行的最左边N比特像素)存储于缓冲器的下一M比特存储单元中。对于不是在数据区块的最上面像素行中的最左边像素的任意像素,第二示范性数据排列设计连续地将像素数据存储于存储单元中,这类似于第一示范性数据排列设计。第一示范性排列设计与第二示范性排列设计的主要不同在于,第二示范性数据排列保证当前数据区块的最下面像素行中最右边像素的至少一部分(即,部分或全部)和下一数据区块的最上面像素行中最左边像素的至少一部分(即,部分或全部)没有存储于同一存储单元中。因此,当数据区块的最上面像素行中最左边像素的像素数据存储于缓冲器中时,已存储的最左边的像素不会穿越两个存储单元的边界。

请参考图5,图5为根据本发明的第二示范性数据排列设计的在缓冲器中像素的数据排列的示意图,其中一个数据区块的最上面像素行中最左边像素不会穿越两个存储单元的边界。图片IMG_IN中的每一个像素(例如,亮度像素和色度像素)为N比特,以及在缓冲器102_1/102_2/102_3中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于像素的整数倍。当当前像素(例如,亮度像素或色度像素)P1为一个数据区块(例如,图5中的数据区块DB0)的最下面像素行中最右边的像素时,以基于区块的扫描顺序(包括数据区块的光栅扫描顺序和每一个数据区块中像素的光栅扫描顺序)指定的下一像素为下一数据区块(例如,图5中的数据区块DB1)的最上面像素行中的最左边的像素(例如,亮度像素或色度像素)P2。若每一个数据区块具有P个像素,则每一个数据区块的比特尺寸等于P*N。当M整除P*N时,像素P1将完全存储于一个存储单元中,以成为存储单元中的最后一个像素(即,最右边的像素),以及像素P2将完全存储于另一存储单元中,以成为另一存储单元中的第一个像素(即,最左边的像素)。因此,根据本发明第一示范性数据排列设计(即,图2~图4所示的一个数据排列),不需要将像素P2分割为存储于不同存储单元中的两部分。

然而,根据本发明第一示范性数据排列设计(即,图2~图4所示的一个数据排列),当M不能整除P*N时,若M-[(P*N)%M]<N,将像素P2分割为存储于不同存储单元中的两部分;以及若M-[(P*N)%M]≧N,将像素P2的所有像素数据连续地存储于已存储像素P1的存储单元中。在一些应用中,最好是确保将像素P2完全存储于存储单元中,而成为存储单元中的第一像素(即,最左边的像素)。因此,可采用提出的第二示范性数据排列来达到这个目标。当M不能整除P*N时,缓冲控制器104可使得一个存储单元在预定的比特位置具有空比特(即,不在乎的比特)的保留的存储空间,其中保留的存储空间的尺寸等于M-[(P*N)%M]。如图5所示,在当前数据区块DB0的最下面数据行中的最右边像素P1的像素数据存入存储单元SN之后,剩余的存储空间(即,保留的存储空间)不用于存储像素数据。因此,当通过基于区块的扫描顺序扫描下一像素行时,缓冲控制器104将下一数据区块DB1的最上面像素行中的最左边的像素P2存储于下一个存储单元SN+1。通过此种方式,像素P2不会穿越两个存储单元SN和SN+1的边界。

在第一示范性数据排列设计(图2~图4)中,基于包括数据区块的光栅扫描顺序和包括每一个数据区块中的像素的光栅扫描顺序的特定的基于区块的扫描顺序,连续地将图片IMG_IN中的所有N比特像素(例如,亮度像素或色度像素)存储于M比特存储单元中。然而,可以调节图片IMG_IN的分割及/或图片IMG_IN的基于区块的扫描顺序的设定,由此导致不同的数据排列设计结果。本发明进一步提出第三示范性数据排列设计,其保证整数个M比特存储单元装有图片的数据区块中定义的紧凑单元(compact unit)的所有像素数据。举例来说,图片中的每一个N比特像素被分割为第一部分和第二部分,该第一部分和该第二部分分别存储于缓冲器的不同M比特存储单元中;此外,缓冲器中连续的M比特存储单元包括多个第一M比特存储单元和在第一M比特存储单元之前的第二M比特存储单元,其中第一M比特存储单元装有紧凑单元中N比特像素的第一部分,以及第二M比特存储单元装有同一紧凑单元中的N比特存储单元的第二部分。

请参考图6,图6为根据本发明实施方式的图片IMG_IN分割和图片IMG_IN基于区块的扫描顺序的设置的第一替代设计的示意图。如图6所示,图片IMG_IN被分割为多个数据区块(例如,DB0-DB7),每一个数据区块被分割为多个紧凑单元(例如,CU0,CU1和CU2),该多个紧凑单元在数据区块中垂直排列,以及每一个紧凑单元包括多个像素。请注意,图片中的数据区块的数目和一个数据区块中紧凑单元的数目是可以依据实际设计的考量来调整的。在此实施方式中,每一个像素的像素数据被分割为第一部分和第二部分,该第一部分和该第二部分存储于缓冲器的不同存储单元中。具体地,对于每一个N比特像素,第一部分为具有N1比特的最高有效位(more significant bit,MSB),以及第二部分为具有N2比特的最低有效位(less significant bit,LSB),其中N=N1+N2,N1>N2,以及M被N1和N2整除。举例来说,M=128,N=10,N1=8以及N2=2。图6中图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(例如,DB0→DB1→DB2→DB3→DB4→DB5→DB6→DB7)、用于每一个数据区块中垂直排列的紧凑单元垂直扫描顺序(例如,CU0→CU1→CU2)、用于每一个紧凑单元中MSB部分的光栅扫描顺序、以及用于每一个紧凑单元中LSB部分的光栅扫描顺序。

与图6中图片IMG_IN的分割和图片IMG_IN的基于区块的扫描顺序的设定,得到多个示范性的数据排列。请参考图7,图7为根据本发明第三示范性数据排列设计的在一个缓冲器中亮度像素的数据排列的示意图。其中,图片中的每一个亮度像素被分割为存储于不同存储单元中的第一部分(例如,MSB部分)和第二部分(例如,LSB部分)。在此示例中,一个16x32数据单元被分割为多个16x4紧凑单元,以及每一个16x4紧凑单元由多个N比特亮度像素Y0-Y63组成。由上述可知,缓冲控制器104将亮度像素存储于具有M比特存储单元的缓冲器102_1中。举例来说,利用DRAM来实现缓冲器102_1。在M=128和N=10的情况下,五个连续的DRAM字用于存储一个16x4紧凑单元中的亮度像素Y0-Y63的所有像素数据,每一个10比特亮度像素的MSB部分包括bit[2]-bit[9],以及每一个10比特亮度像素的LSB部分包括bit[0]和bit[1]。通过基于区块的扫描顺序(包括用于每一个紧凑单元中的MSB部分的光栅扫描顺序和用于每一个紧凑单元中的LSB部分的光栅扫描顺序),亮度像素Y0-Y63的2比特LSB部分被连续地存入DRAM字0中,亮度像素Y0-Y15的8比特MSB部分被连续地存入DRAM字1中,亮度像素Y16-Y31的8比特MSB部分被连续地存入DRAM字2中,亮度像素Y32-Y47的8比特MSB部分被连续地存入DRAM字3中,以及亮度像素Y48-Y63的8比特MSB部分被连续地存入DRAM字4中。

请参考图8,图8为根据本发明第三示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图。其中,图片中的每一个色度像素被分割为存储于不同存储单元中的第一部分(例如,MSB部分)和第二部分(例如,LSB部分)。在此示例中,一个16x32数据单元被分割为多个16x4紧凑单元,以及每一个16x4紧凑单元由多个2N比特色度像素对(Cb0,Cr0),(Cb1,Cr1)…(Cb31,Cr31)组成。由上述可知,缓冲控制器104将不同色度组分(Cb,Cr)的色度像素存储于具有M比特存储单元的缓冲器102_2中。举例来说,利用DRAM来实现缓冲器102_2。在M=128和N=10的情况下,五个连续的DRAM字用于存储一个16x4紧凑单元中的色度像素Cb0-Cb31和色度像素Cr0-Cr31的所有像素数据,每一个10比特色度像素的MSB部分包括bit[2]-bit[9],以及每一个10比特色度像素的LSB部分包括bit[0]和bit[1]。通过基于区块的扫描顺序(包括用于每一个紧凑单元中的MSB部分的光栅扫描顺序和用于每一个紧凑单元中的LSB部分的光栅扫描顺序),色度像素Cb0,Cr0…Cb31,Cr31的2比特LSB部分被连续地存入DRAM字0中,色度像素Cb0,Cr0…Cb7,Cr7的8比特MSB部分被连续地存入DRAM字1中,色度像素Cb8,Cr8…Cb15,Cr15的8比特MSB部分被连续地存入DRAM字2中,色度像素Cb16,Cr16…Cb23,Cr23的8比特MSB部分被连续地存入DRAM字3中,以及色度像素Cb24,Cr24…Cb31,Cr31的8比特MSB部分被连续地存入DRAM字4中。

请参考图9,图9为根据本发明实施方式的图片IMG_IN分割和图片IMG_IN基于区块扫描顺序的设置的第二替代设计的示意图。如图9所示,图片IMG_IN被分割为多个数据区块(例如,数据区块DB0-数据区块DB7),每一个数据区块被分割为多个紧凑单元(例如,紧凑单元CU0,紧凑单元CU1和紧凑单元CU2),该多个紧凑单元在数据区块中垂直排列,以及每一个紧凑单元包括多个像素。请注意,一个图片中的数据区块的数目和一个数据区块中紧凑单元的数据是可以依据实际设计的考量来调整的。在此实施方式中,每一个像素的像素数据被分割为第一部分和第二部分,该第一部分和该第二部分存储于缓冲器的不同存储单元中。具体地,对于每一个N比特像素,第一部分为具有N1比特的最高有效位(more significant bit,MSB),以及第二部分为具有N2比特的最低有效位(less significant bit,LSB),其中N=N1+N2,N1>N2,以及M被N1和N2整除。举例来说,M=128,N=10,N1=8以及N2=2。图9中图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(例如,数据区块DB0→数据区块DB1→数据区块DB2→数据区块DB3→数据区块DB4→数据区块DB5→数据区块DB6→数据区块DB7)、用于每一个数据区块中垂直排列的紧凑单元垂直扫描顺序(例如,紧凑单元CU0→紧凑单元CU1→紧凑单元CU2)、用于每一个紧凑单元中MSB部分的光栅扫描顺序、以及用于每一个紧凑单元中LSB部分的垂直扫描顺序(即,从紧凑单元的每一个像素列中的最上面像素至最下面像素,从紧凑单元中的最左边像素列至最右边像素列)。

与图9中图片IMG_IN的分割和图片IMG_IN的基于区块的扫描顺序的设定,得到多个示范性的数据排列。请参考图10,图10为根据本发明第三示范性数据排列设计的在一个缓冲器中的亮度像素的另一数据排列的示意图。其中,图片中的每一个亮度像素被分割为存储于不同存储单元中的第一部分(例如,MSB部分)和第二部分(例如,LSB部分)。在此示例中,一个16x32数据单元被分割为多个16x4紧凑单元,以及每一个16x4紧凑单元由多个N比特亮度像素Y0-Y63组成。由上述可知,缓冲控制器104将亮度像素存储于具有M比特存储单元的缓冲器102_1中。举例来说,利用DRAM来实现缓冲器102_1。在M=128和N=10的情况下,五个连续的DRAM字用于存储一个16x4紧凑单元中的亮度像素Y0-Y63的所有像素数据,每一个10比特亮度像素的MSB部分包括bit[2]-bit[9],以及每一个10比特亮度像素的LSB部分包括bit[0]和bit[1]。通过基于区块的扫描顺序(包括用于每一个紧凑单元中的MSB部分的光栅扫描顺序和用于每一个紧凑单元中的LSB部分的垂直扫描顺序),亮度像素Y0,Y16,Y32,Y48…Y15,Y31,Y47,Y63的2比特LSB部分被连续地存入DRAM字0中,亮度像素Y0-Y15的8比特MSB部分被连续地存入DRAM字1中,亮度像素Y16-Y31的8比特MSB部分被连续地存入DRAM字2中,亮度像素Y32-Y47的8比特MSB部分被连续地存入DRAM字3中,以及亮度像素Y48-Y63的8比特MSB部分被连续地存入DRAM字4中。

请参考图11,图11为根据本发明第三示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的另一数据排列的示意图。其中,图片中的每一个色度像素被分割为存储于不同存储单元中的第一部分(例如,MSB部分)和第二部分(例如,LSB部分)。在此示例中,一个16x32数据单元被分割为多个16x4紧凑单元,以及每一个16x4紧凑单元由多个2N比特色度像素对(Cb0,Cr0),(Cb1,Cr1)…(Cb31,Cr31)组成。由上述可知,缓冲控制器104将不同色度组分(Cb,Cr)的色度像素存储于具有M比特存储单元的缓冲器102_2中。举例来说,利用DRAM来实现缓冲器102_2。在M=128和N=10的情况下,五个连续的DRAM字用于存储一个16x4紧凑单元中的色度像素Cb0-Cb31和色度像素Cr0-Cr31的所有像素数据,每一个10比特色度像素的MSB部分包括bit[2]-bit[9],以及每一个10比特色度像素的LSB部分包括bit[0]和bit[1]。通过基于区块的扫描顺序(包括用于每一个紧凑单元中的MSB部分的光栅扫描顺序和用于每一个紧凑单元中的LSB部分的垂直扫描顺序),色度像素Cb0,Cb8,Cb16,Cb24,Cr0,Cr8,Cr16,Cr24…Cb7,Cb15,Cb23,Cb31,Cr7,Cr15,Cr23,Cr31的2比特LSB部分被连续地存入DRAM字0中,色度像素Cb0,Cr0…Cb7,Cr7的8比特MSB部分被连续地存入DRAM字1中,色度像素Cb8,Cr8…Cb15,Cr15的8比特MSB部分被连续地存入DRAM字2中,色度像素Cb16,Cr16…Cb23,Cr23的8比特MSB部分被连续地存入DRAM字3中,以及色度像素Cb24,Cr24…Cb31,Cr31的8比特MSB部分被连续地存入DRAM字4中。

在第一示范性数据排列设计(图2~图4)、第二示范性数据排列设计(图5)、以及第三示范性数据排列设计(图7~图8以及图10~图11)中,M比特存储单元的一部分或全部装有自N比特像素得到的像素数据比特。本发明进一步提出第四示范性数据排列设计,以保证每一个使用的M比特存储单元存储整数个N比特像素,没有任何的部分N比特像素。也就是说,每一个M比特存储单元没有完全用于存储像素数据比特,并在预定位置具有未使用比特。允许预定位置分布在M比特存储单元中。在本发明的一个示范性设计中,未使用比特均位于每一个M比特存储单元的末端。

在本发明的第四示范性数据排列的第一示范性实施方式中,缓冲控制器104被配置为连续地将N比特像素的像素数据存入缓冲器的一个M比特存储单元中,直到该M比特存储单元不具有足够的未使用比特来完全存储多一个N比特像素。请参考图12,图12为根据本发明第四示范性数据排列设计的在一个缓冲器中亮度像素的数据排列的示意图。其中,每一个使用的M比特存储单元存储整数个N比特像素,而没有任何的部分N比特像素。如上所述,缓冲控制器104存储亮度像素于缓冲器102_1中。在图片IMG_IN中的每一个亮度像素为N比特,以及在缓冲器102_1中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于亮度像素的整数倍。如图12所示,图片IMG_IN具有多个数据区块(即,数据区块DB0,数据区块DB1,数据区块DB2,数据区块DB3,每一个数据区块由多个像素组成)。请注意,图12的图片IMG_IN中定义的数据区块的数目仅用于解释说明的目的,并非用于限制本发明。图12中图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(即,数据区块DB0→数据区块DB1→数据区块DB2→数据区块DB3),并进一步包括每一个数据区块中的N比特亮度像素的光栅扫描顺序。当存储于当前存储单元106_1(即,M比特存储单元)中的亮度像素的数目达到int(M/N)时,当前存储单元106_1中的剩余存储空间小于一个亮度像素的尺寸。具体地,假设图片IMG_IN的颜色格式为4:2:0,12个亮度像素P0-P11具有10比特,当将亮度像素P0-P11存入128比特存储单元106_1中时,在128比特存储单元106_1中的剩余存储空间仅具有8比特(即,M-N*int(M/N)=8),而不能再完全存储一个10比特亮度像素。在此实施方式中,存储单元106_1的以下未使用比特为空。换句话说,存储单元106_1中的剩余存储空间可视为具有不在乎比特存储于其中。由于通过上述提到的基于区块扫描顺序,图片IMG_IN中亮度像素的像素数据存储于缓冲器102_1中,以及当前存储单元106_1的剩余存储空间没有用于存储像素数据,缓冲控制器104由此将下一亮度像素P12存储于下一存储单元106_2中。

请参考图13,图13为根据本发明第四示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图。其中,每一个使用的M比特存储单元存储整数个N比特像素,而没有任何的部分N比特像素。如上所述,缓冲控制器104存储不同色度组分(Cb,Cr)对应的色度像素于缓冲器102_2中,其中一个色度组分(Cb)的色度像素和另一色度组分(Cr)的色度像素以交织的方式进行存储。例如,以Cb-Cr-Cb-Cr或Cr-Cb-Cr-Cb的方式。在图片IMG_IN中的每一个色度像素为N比特,以及在缓冲器102_2中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于色度像素的整数倍。如图13所示,图片IMG_IN具有多个数据区块(即,数据区块DB0,数据区块DB1,数据区块DB2,数据区块DB3,每一个数据区块由不同色度组分的多个色度像素组成)。请注意,图13的图片IMG_IN中定义的数据区块的数目仅用于解释说明的目的,并非用于限制本发明。图13中图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(即,数据区块DB0→数据区块DB1→数据区块DB2→数据区块DB3),并进一步包括每一个数据区块中的N比特色度像素的光栅扫描顺序。当存储于当前存储单元107_1(即,M比特存储单元)中的色度像素的数目达到int(M/N)时,当前存储单元107_1中的剩余存储空间小于一个色度像素的尺寸。具体地,假设图片IMG_IN的颜色格式为4:2:0,12个色度像素PCB,0,PCR,0,PCB,1,PCR,1…PCB,5,PCR,5具有10比特,当将色度像素PCB,0,PCR,0,PCB,1,PCR,1…PCB,5,PCR,5存入128比特存储单元107_1中时,在128比特存储单元107_1中的剩余存储空间仅具有8比特(即,M-N*int(M/N)=8),而不能再完全存储一个10比特色度像素。在此实施方式中,存储单元107_1的以下未使用比特为空。由于图片IMG_IN中每一个色度组分的色度像素的像素数据通过上述提到的基于区块的扫描顺序进行存储,以及当前存储单元107_1的剩余存储空间没有用于存储像素数据,下一色度像素PCB,6存储于下一存储单元107_2中。

请参考图14,图14为根据本发明第四示范性数据排列设计的在一个缓冲器中一个色度组分的色度像素和另一缓冲器中另一色度组分的色度像素的数据排列的示意图。其中,每一个使用的M比特存储单元存储整数个N比特像素,而没有任何的部分N比特像素。如上所述,缓冲控制器104存储一个色度组分(Cb)对应的色度像素于缓冲器102_2中,并存储另一色度组分(Cr)对应的色度像素于缓冲器102_3中。在图片IMG_IN中的每一个色度像素为N比特,以及在缓冲器102_2和缓冲器102_3中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于色度像素的整数倍。

如图14所示,当存储于当前存储单元107_1(即,M比特存储单元)中的色度组分Cb的色度像素的数目达到int(M/N)时,当前存储单元107_1中的剩余存储空间小于色度组分Cb的一个色度像素的尺寸。具体地,假设图片IMG_IN的颜色格式为4:4:4,12个色度像素PCB,0-PCB,11具有10比特,当将色度像素PCB,0-PCB,11存入128比特存储单元107_1中时,在128比特存储单元107_1中的剩余存储空间仅具有8比特(即,M-N*int(M/N)=8),而不能再完全存储一个色度组分Cb的10比特色度像素。在此实施方式中,存储单元107_1的未使用比特为空。由于色度组分Cb的色度像素的像素数据通过上述提到的基于区块的扫描顺序进行存储,以及剩余存储空间没有用于存储像素数据,下一色度像素PCB,12存储于下一存储单元107_2中。

相似地,如图14所示,当存储于当前存储单元108_1(即,M比特存储单元)中的色度组分Cr的色度像素的数目达到int(M/N)时,当前存储单元108_1中的剩余存储空间小于色度组分Cr的一个色度像素的尺寸。具体地,假设图片IMG_IN的颜色格式为4:4:4,12个色度像素PCR,0-PCR,11具有10比特,当将色度像素PCR,0-PCR,11存入128比特存储单元108_1中时,在128比特存储单元108_1中的剩余存储空间仅具有8比特(即,M-N*int(M/N)=8),而不能再完全存储一个色度组分Cr的10比特色度像素。在此实施方式中,存储单元108_1的未使用比特为空。由于色度组分Cr的色度像素的像素数据通过上述提到的基于区块扫描顺序进行存储,以及剩余存储空间没有用于存储像素数据,下一色度像素PCR,12存储于下一存储单元108_2中。

依照第四示范性数据排列设计(图12~图14),根据包括图片中数据区块的光栅扫描顺序和包括每一个数据区块中的像素的光栅扫描顺序的特定的基于区块的扫描顺序,将图片IMG_IN中的所有N比特像素(例如,亮度像素或色度像素)存储于M比特存储单元中。然而,可以调节图片IMG_IN的分割及/或图片IMG_IN的基于区块的扫描顺序的设定,由此导致不同的数据排列设计结果。因此,本发明进一步提出第五示范性数据排列设计,其保证每一个使用的M比特存储单元仅存储图片IMG_IN的数据区块中的一个基本区块的所有N比特像素,而没有任何的部分N比特像素。

请参考图15,图15为根据本发明第五示范性数据排列设计的在一个缓冲器中亮度像素的数据排列的示意图。其中,每一个使用的M比特存储单元仅存储图片IMG_IN的数据区块中的一个基本区块的所有N比特像素,而没有任何的部分N比特像素。如上所述,缓冲控制器104存储亮度像素于缓冲器102_1中。在图片IMG_IN中的每一个亮度像素为N比特,以及在缓冲器102_1中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于亮度像素的整数倍。如图15所示,图片IMG_IN具有多个数据区块(即,数据区块DB0,数据区块DB1,数据区块DB2,数据区块DB3),每一个数据区块包括多个基本区块,以及每一个基本区块BB为W1xH1像素区块。例如,4x3像素区块。举例来说,但并非以此为限,每一个数据区块可包括K个基本区块行,以及每一个基本区块行可包括J个基本区块。数据区块的宽可被W1整除,以及数据区块的长可被H1整除。图15中图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(例如,数据区块DB0→数据区块DB1→数据区块DB2→数据区块DB3)、每一个数据区块中的基本区块的光栅扫描顺序、以及每一个基本区块中亮度像素的光栅扫描顺序。如图15所示,假设图片IMG_IN的颜色格式为4:2:0,基于基本区块的亮度像素的光栅扫描顺序,连续地将一个基本区块的所有亮度像素P0-P11存入同一存储单元106_1,以及随后的未使用8比特(即,M-N*int(M/N)=8)为空。由于当前存储单元106_1仅存储亮度像素P0-P11的像素数据于当前基本区块中,以及当前存储单元106_1中的剩余存储空间没有用于存储亮度像素,缓冲控制器104由此将下一基本区块的所有亮度像素的像素数据存储于下一存储单元106_2中。

请参考图16,图16为根据本发明第五示范性数据排列设计的在一个缓冲器中不同色度组分的色度像素的数据排列的示意图。其中,每一个使用的M比特存储单元仅存储图片IMG_IN的数据区块中的一个基本区块的所有N比特像素,而没有任何的部分N比特像素。如上所述,缓冲控制器104存储不同色度组分(Cb,Cr)对应的色度像素于同一缓冲器102_2中,其中一个色度组分(Cb)的色度像素和另一色度组分(Cr)的色度像素以交织的方式进行存储。例如,以Cb-Cr-Cb-Cr或Cr-Cb-Cr-Cb的方式。在图片IMG_IN中的每一个色度像素为N比特,以及在缓冲器102_2中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于色度像素的整数倍。如图16所示,图片IMG_IN具有多个数据区块(即,数据区块DB0,数据区块DB1,数据区块DB2,数据区块DB3),每一个数据区块包括多个基本区块,以及每一个基本区块BB为W1xH1像素区块。例如,4x3像素区块。举例来说,但并非以此为限,每一个数据区块可包括K个基本区块行,以及每一个基本区块行可包括J个基本区块。数据区块的宽可被W1整除,以及数据区块的长可被H1整除。图16中图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(例如,DB0→DB1→DB2→DB3)、每一个数据区块中的基本区块的光栅扫描顺序、以及每一个基本区块中色度像素的光栅扫描顺序。如图16所示,假设图片IMG_IN的颜色格式为4:2:0,基于基本区块的色度像素的光栅扫描顺序,连续地将一个基本区块的所有色度像素PCB,0,PCR,0,PCB,1,PCR,1…PCB,5,PCR,5存入同一存储单元107_1,以及随后的未使用8比特(即,M-N*int(M/N)=8)为空。由于当前存储单元107_1仅存储色度像素PCB,0,PCR,0,PCB,1,PCR,1…PCB,5,PCR,5的像素数据于当前基本区块中,以及当前存储单元107_1中的剩余存储空间没有用于存储像素数据,缓冲控制器104由此将下一基本区块的所有亮度像素的像素数据存储于下一存储单元107_2中。

请参考图17,图17为根据本发明第五示范性数据排列设计的在一个缓冲器中一个色度组分的色度像素和另一缓冲器中另一色度组分的色度像素的数据排列的示意图。其中,每一个使用的M比特存储单元仅存储图片IMG_IN的数据区块中的一个基本区块的所有N比特像素,而没有任何的部分N比特像素。如上所述,缓冲控制器104存储一个色度组分(Cb)对应的色度像素于缓冲器102_2中,存储另一色度组分(Cr)对应的色度像素于缓冲器102_3中。在图片IMG_IN中的每一个色度像素为N比特,以及在缓冲器102_2和缓冲器102_3中的每一个存储单元为M比特。举例来说,N=10以及M=128。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于色度像素的整数倍。

如图17所示,图片IMG_IN具有多个数据区块(即,数据区块DB0,数据区块DB1,数据区块DB2,数据区块DB3),每一个数据区块包括多个基本区块,以及每一个基本区块BB为W1xH1像素区块。例如,4x3像素区块。举例来说,但并非以此为限,每一个数据区块可包括K个基本区块行,以及每一个基本区块行可包括J个基本区块。数据区块的宽可被W1整除,以及数据区块的长可被H1整除。图17中图片IMG_IN的基于区块的扫描顺序包括图片IMG_IN中数据区块的光栅扫描顺序(例如,数据区块DB0→数据区块DB1→数据区块DB2→数据区块DB3)、每一个数据区块中的基本区块的光栅扫描顺序、以及每一个基本区块中每一个色度像素的光栅扫描顺序。

具体地,假设图片IMG_IN的颜色格式为4:4:4,基于基本区块的色度组分Cb的色度像素的光栅扫描顺序,连续地将一个基本区块的所有色度像素PCB,0-PCB,11存入同一存储单元107_1,以及随后的未使用8比特(即,M-N*int(M/N)=8)为空。由于当前存储单元107_1仅存储色度组分Cb的色度像素PCB,0-PCB,11的像素数据于当前基本区块中,以及当前存储单元107_1中的剩余存储空间没有用于存储像素数据,缓冲控制器104由此将下一基本区块的色度组分Cb的色度像素的像素数据存储于下一存储单元107_2中。相似地,基于基本区块的色度组分Cr的色度像素的光栅扫描顺序,连续地将一个基本区块的所有色度像素PCR,0-PCR,11存入同一存储单元108_1,以及随后的未使用8比特(即,M-N*int(M/N)=8)为空。由于当前存储单元108_1仅存储色度组分Cr的色度像素PCR,0-PCR,11的像素数据于当前基本区块中,以及当前存储单元108_1中的剩余存储空间没有用于存储像素数据,缓冲控制器104由此将下一基本区块的色度组分Cr的色度像素的像素数据存储于下一存储单元108_2中。

依照图12~图14所示的示范性数据排列设计,亮度像素存储于一个缓冲器102_1中,(若不同的色度组分存储于同一缓冲器中)色度像素存储于一个缓冲器102_2中,或(若不同的色度组分分别存储于不同的缓冲器中)色度像素存储于缓冲器102_2和缓冲器102_3中。在替代设计中,亮度像素和色度像素可以存储于同一缓冲器中。举例来说,在通过修改图12~图14中上述提到的第四示范性数据排列设计得到的第六示范性数据排列设计(定义每一个使用的M比特存储单元存储整数个N比特像素,而没有任何的部分N比特像素)中,缓冲控制器104被配置为存储N比特亮度像素和N比特色度像素于缓冲器(例如,缓冲器102_1)的一个M比特存储单元中,其中缓冲器中的每一个使用的M比特存储单元存储整数个(integer number)N比特亮度像素,而没有任何的部分(fractional)N比特亮度像素,并进一步存储整数个(integer number)N比特色度像素,而没有任何的部分(fractional)N比特色度像素。

请参考图18,图18为根据本发明第六示范性数据排列设计的在同一缓冲器中的亮度像素和色度像素的第一数据排列的示意图。具体地,采用亮度-色度交织的数据排列,以用于缓冲器中的每一个存储单元。如图18所示,一个M比特存储单元被平均分割为多个网格单元(grid units),每一个网格单元为G比特。举例来说,M=128、N=10以及G=32。由于N不能整除M,一个存储单元的尺寸(例如,128比特DRAM字)不等于N比特像素的整数倍,以及一个网格单元的尺寸(例如,四分之一128比特DRAM字)也不等于N比特像素的整数倍。基于亮度-色度交织的数据排列,每一个使用的G比特网格单元具有至少一个N比特亮度像素和至少一个N比特色度像素存储于其中。举例来说,每一个G比特网格单元可以存储PY个N比特亮度像素和PC个N色度像素。因此,在网格单元中的(PY+PC)*N比特用于存储像素数据比特。对于剩余存储空间(即,G-(PY+PC)*N比特),其不用于存储数据比特,其中这些(G-(PY+PC)*N)个未使用比特位于网格单元的预定位置。允许在网格单元中分配预定的位置。在一个实施方式中,这些G-(PY+PC)*N个未使用比特位于每一个网格单元的末端。如图18所示,假设图片IMG_IN的颜色格式为4:2:0,根据图片IMG_IN的基于区块的扫描顺序(例如,图12~图14所示的示范性的基于区块的扫描顺序)自图片IMG_IN连续获得亮度像素P0-P7,根据基于区块的扫描的顺序自图片IMG_IN连续获得一个色度组分Cb的色度像素PCB,0和色度像素PCB,1;以及根据基于区块的扫描顺序自图片IMG_IN连续获得另一个色度组分Cr的色度像素PCR,0和色度像素PCR,1。在此实施方式中,PY=2以及PC=1。因此,通过基于区块的扫描顺序(包括数据区块的光栅扫描顺序和在每一个数据区块中像素的光栅扫描顺序),将两个亮度像素和一个色度像素存储于每一个网格单元中。如图18所示,存储单元106_1的第一个网格单元存储亮度像素P0,P1和色度像素PCB,0,以及该第一网格单元具有2比特(即,G-(PY+PC)*N=2)空的剩余存储空间;存储单元106_1的第二个网格单元存储亮度像素P2,P3和色度像素PCB,1,以及该第二网格单元具有2比特空的剩余存储空间;存储单元106_1的第三个网格单元存储亮度像素P4,P5和色度像素PCR,0,以及该第三网格单元具有2比特空的剩余存储空间;以及存储单元106_1的第四个网格单元存储亮度像素P6,P7和色度像素PCR,1,以及该第四网格单元具有2比特空的剩余存储空间。若采用图18所示的亮度-色度交织数据排列,在缓冲装置101中仅需要一个亮度-色度单一缓冲器(例如,缓冲器102_1)。

图18所示的亮度像素和色度像素的交织方式仅用于解释说明的目的,而并非用于限制本发明。亮度像素和色度像素的其他交织方式分别在图19、图20和图21中描述。

请参考图19,图19为根据本发明第六示范性数据排列设计的在同一缓冲器中的亮度像素和色度像素的第二数据排列的示意图。图19中的亮度-色度交织数据排列相似于图18的亮度-色度交织数据排列,以及主要的不同在于色度像素的存储顺序。如图19所示,存储单元的第一网格单元存储亮度像素P0,P1和色度像素PCR,0,以及该第一网格单元具有2比特(即,G-(PY+PC)*N=2)空的剩余存储空间;存储单元的第二个网格单元存储亮度像素P2,P3和色度像素PCR,1,以及该第二网格单元具有2比特空的剩余存储空间;存储单元的第三个网格单元存储亮度像素P4,P5和色度像素PCB,0,以及该第三网格单元具有2比特空的剩余存储空间;以及存储单元的第四个网格单元存储亮度像素P6,P7和色度像素PCB,1,以及该第四网格单元具有2比特空的剩余存储空间。

请参考图20,图20为根据本发明第六示范性数据排列设计的在同一缓冲器中的亮度像素和色度像素的第三数据排列的示意图。如图20所示,一个M比特存储单元被平均分割为具有G比特的多个网格单元。举例来说,M=128,N=10,和G=32。此外,每一个G比特网格单元可以存储PY个N比特亮度像素和PC个N色度像素。举例来说,PY=2和PC=1。具体地,假设图片IMG_IN的颜色格式为4:2:0,根据图片IMG_IN的基于区块的扫描顺序(例如,图12~图14所示的示范性基于区块的扫描顺序)自图片IMG_IN连续获得亮度像素P0-P15,根据基于区块的扫描顺序自图片IMG_IN连续获得一个色度组分Cb的色度像素PCB,0-PCB,3;以及根据基于区块的扫描顺序自图片IMG_IN连续获得另一色度组分Cr的色度像素PCR,0-PCR,3。对于存储单元106_1,第一个网格单元存储亮度像素P0,P1和色度像素PCB,0,以及该第一网格单元具有2比特空的剩余存储空间;第二个网格单元存储亮度像素P2,P3和色度像素PCB,1,以及该第二网格单元具有2比特空的剩余存储空间;第三个网格单元存储亮度像素P4,P5和色度像素PCB,2,以及该第三网格单元具有2比特空的剩余存储空间;以及第四个网格单元存储亮度像素P6,P7和色度像素PCB,3,以及该第四网格单元具有2比特空的剩余存储空间。对于存储单元106_2,第一个网格单元存储亮度像素P8,P9和色度像素PCR,0,以及该第一网格单元具有2比特空的剩余存储空间;第二个网格单元存储亮度像素P10,P11和色度像素PCR,1,以及该第二网格单元具有2比特空的剩余存储空间;第三个网格单元存储亮度像素P12,P13和色度像素PCR,2,以及该第三网格单元具有2比特空的剩余存储空间;以及第四个网格单元存储亮度像素P14,P15和色度像素PCR,3,以及该第四网格单元具有2比特空的剩余存储空间。

请参考图21,图21为根据本发明第六示范性数据排列设计的在同一缓冲器中的亮度像素和色度像素的第四数据排列的示意图。图21中的亮度-色度交织数据排列相似于图20的亮度-色度交织数据排列,以及主要的不同在于色度像素的存储顺序。如图21所示,对于存储单元106_1,第一个网格单元存储亮度像素P0,P1和色度像素PCR,0,以及该第一网格单元具有2比特空的剩余存储空间;第二个网格单元存储亮度像素P2,P3和色度像素PCR,1,以及该第二网格单元具有2比特空的剩余存储空间;第三个网格单元存储亮度像素P4,P5和色度像素PCR,2,以及该第三网格单元具有2比特空的剩余存储空间;以及第四个网格单元存储亮度像素P6,P7和色度像素PCR,3,以及该第四网格单元具有2比特空的剩余存储空间。对于存储单元106_2,第一个网格单元存储亮度像素P8,P9和色度像素PCB,0,以及该第一网格单元具有2比特空的剩余存储空间;第二个网格单元存储亮度像素P10,P11和色度像素PCB,1,以及该第二网格单元具有2比特空的剩余存储空间;第三个网格单元存储亮度像素P12,P13和色度像素PCB,2,以及该第三网格单元具有2比特空的剩余存储空间;以及第四个网格单元存储亮度像素P14,P15和色度像素PCB,3,以及该第四网格单元具有2比特空的剩余存储空间。

基于提出的数据排列方案,根据图片IMG_IN的基于区块的扫描顺序,缓冲控制器104将图片IMG_IN的像素数据存储于一个或多个缓冲器中,以响应写请求REQW,以及自一个或多个缓冲器读出图片IMG_IN的像素数据,以响应读请求REQR。举例来说,当数据存储装置100在视频编码器或视频解码器中实现时,写请求REQW用于存储重建图片的宏区块(macroblock)数据,以及读请求REQR用于读出预测区块,以用于运动补偿。

图22为根据本发明实施方式的由缓冲控制器104执行的缓冲写操作的流程图。若结果实质相同,则不要求步骤严格按照图22所示的顺序来执行。缓冲器写操作可应用于图片的每一个宏区块。由于每一个宏区块包括多个部分像素行的像素数据,宏区块的像素数据可存储于DRAM合适的地址中,以使得图片的像素数据可通过图片的基于区块的扫描顺序而最终存入DRAM中,并具有适当的数据排列。缓冲器写操作可应用于图片的每一个宏块,该写操作简要描述如下:

步骤2202:获得图片中的宏区块的像素数据。

步骤2204:计算用于存储宏区块的像素数据的对应的DRAM起始地址(即,基本地址(base address))。

步骤2206:根据提出的数据排列格式,排列宏区块的像素数据。

步骤2208:通过图片的基于区块的扫描顺序,将宏区块排列的像素数据存储于DRAM中。

在采用第一示范性数据排列设计(图2~图4)的情况下,对于宏区块中的要存储的每一个像素,步骤2206判断当前像素(亮度像素或色度像素)是否穿过存储单元的边界。若当前像素(亮度像素或色度像素)没有穿过存储单元的边界,则步骤2206准备将像素完全存储于一个存储单元中,以及若当前像素(亮度像素或色度像素)穿过存储单元的边界,则步骤2206将像素拆分为两部分,并这两部分将分别存入两个存储单元中。

在采用第二示范性数据排列设计(图5)的情况下,对于宏区块中的要存储的每一个像素,步骤2206判断当前像素(亮度像素或色度像素)是否穿过存储单元的边界。若当前像素(亮度像素或色度像素)没有穿过存储单元的边界,则步骤2206准备将像素完全存储于一个存储单元中,以及若当前像素(亮度像素或色度像素)穿过存储单元的边界,则步骤2206将像素拆分为两部分,并这两部分将分别存入两个存储单元中。此外,当M不能整除P*N时,步骤2206进一步判断当前像素(亮度像素或色度像素)是否为当前数据区块的最下面像素行中的最右边像素。若当前像素(亮度像素或色度像素)为当前数据区块的最下面像素行中的最右边像素,则步骤2206准备将下一像素(即,下一数据区块的最上面像素行中的最左边像素)完全存储不同于当前存储单元的另一存储单元中。若当前像素(亮度像素或色度像素)不是当前数据区块的最下面像素行中的最右边像素,则步骤2206准备将下一像素的一部分(即,部分或全部)添加于当前存储单元的当前像素的末端。

在采用第三示范性数据排列设计(图7~图8或图10~图11)的情况下,步骤2206将紧凑单元中的每一个像素分为MSB部分和LSB部分,根据图片IMG_IN的基于区块的扫描顺序定义的LSB光栅扫描顺序(或LSB垂直扫描顺序),将在紧凑单元中的像素的LSB部分存储于一个存储单元中,并根据图片IMG_IN的基于区块的扫描顺序定义的MSB光栅扫描顺序,将紧凑单元中的MSB部分存储于多个存储单元中。

在采用第四示范性数据排列设计(图12~图14)的情况下,步骤2206准备将P’(P’=int(M/N))个像素完全存储于同一存储单元,并将M-N*P’个不在乎的比特插入同一存储单元的未使用比特位置。

在采用第五示范性数据排列设计(图15~图17)的情况下,步骤2206准备将一个基本区块中的W1xH1个像素完全存储于一个存储单元中,并插入M-W1*H1*N个不在乎比特于同一存储单元中的未使用比特位置。

图23为根据本发明实施方式的由缓冲控制器104执行的缓冲读操作的流程图。若结果实质相同,则不要求步骤严格按照图23所示的顺序来执行。缓冲器读操作可应用于运动补偿需要的每一个预测区块。由于参考图片的像素数据基于参考图片的基于区块的扫描顺序而存储于DRAM中,以及该像素数据具有提出的数据排列,预测区块的像素数据(由参考图片中的多个部分像素行组成)可从DRAM的合适的地址中读出。应用于运动补偿的每一个预测区块的缓冲器读操作可以简要描述如下:

步骤2302:计算用于检索预测区块的像素数据的对应的DRAM起始地址(即,基本地址(base address))。

步骤2304:计算预测区块的区块尺寸。

步骤2306:确定与预测区块相关的存储单元的所有DRAM地址。

步骤2308:自DRAM提取预测区块的所有需要的存储单元。

步骤2310:根据提出的数据排列格式,自提取的存储单元检索预测区块的像素的像素数据。

步骤2312:执行预测区块的运动补偿。

在采用第一示范性数据排列设计(图2~图4)的情况下,对于自DRAM得到的每一个提取的存储单元,步骤2310自存储单元获得多个像素的像素数据。具体地,对于提取的存储单元中的每一个像素,步骤2310判断当前像素(亮度像素或色度像素)是否穿过存储单元的边界。若当前像素(亮度像素或色度像素)没有穿过存储单元的边界,则步骤2310自提取的存储单元检索像素的所有像素数据,以及若当前像素(亮度像素或色度像素)穿过存储单元的边界,则步骤2310自提取的存储单元检索像素的像素数据的第一部分,以及将像素的像素数据的第一部分和自不同的提取的存储单元获得的像素的像素数据的第二部分相结合。

在采用第二示范性数据排列设计(图5)的情况下,对于自DRAM得到的每一个提取的存储单元,步骤2310自存储单元获得多个像素的像素数据。具体地,对于提取的存储单元中的每一个像素,步骤2310判断当前像素(亮度像素或色度像素)是否穿过存储单元的边界。若当前像素(亮度像素或色度像素)没有穿过存储单元的边界,则步骤2310自提取的存储单元检索像素的所有像素数据,以及若当前像素(亮度像素或色度像素)穿过存储单元的边界,则步骤2310自提取的存储单元检索像素的像素数据的第一部分,以及将像素的像素数据的第一部分和自不同的提取的存储单元获得的像素的像素数据的第二部分相结合。此外,当M不能整除P*N时,步骤2310进一步判断当前像素(亮度像素或色度像素)是否为当前数据区块的最下面像素行的最右边像素。若当前像素(亮度像素或色度像素)为当前数据区块的最下面像素行的最右边像素,则步骤2310丢弃取得的存储单元的未使用比特位置中的空比特(即,不在乎比特),并自不同取得的存储单元获得下一像素(即,下一数据区块的最上面像素行的最左边像素)的像素数据。若当前像素(亮度像素或色度像素)不是当前数据区块的最下面像素行中的最右边像素,则步骤2310在取得的存储单元中的当前像素的末端之后获得下一像素的至少一部分(即,部分或全部)。

在采用第三示范性数据排列设计(图7~图8或图10~图11)的情况下,步骤2310自一个存储单元获得紧凑单元中所有像素的LSB部分,自其它连续的存储单元获得紧凑单元中所有像素的MSB部分,以及将每一像素的LSB部分和MSB部分进行结合,来得到紧凑单元中像素的像素数据。

在采用第四示范性数据排列设计(图12~图14)的情况下,步骤2310在提取的存储单元中获得P’(P’=int(M/N))个像素,并在同一存储单元中丢弃未使用比特位置的M-N*P’个空比特(例如,不在乎比特)。

在采用第五示范性数据排列设计(图15~图17)的情况下,步骤2310自一个提取的存储单元获得一个基本区块的W1xH1个像素的像素数据,并丢弃同一存储单元中未使用比特位置的M-N*W1*H1个空比特(例如,不在乎比特)。

请注意图22和图23所示的流程仅用于解释说明的目的,而并非用于限制本发明。也就是说,无论图片的像素数据怎样写入缓冲器或从缓冲器写出,利用提出的数据排列存储图片的像素数据的任意缓冲器装置均落入本发明的范围。

在图18~图21所示的上述示例中,一个M比特存储单元被平均分割为多个网格单元,每一个网格单元具有至少一亮度像素和至少一色度像素存储于其中。在替代设计中,一个M比特存储单元可平均分割为多个G比特网格单元,以及每一个G比特网格单元通过单一地址来寻址,并且G比特网格单元仅有一个N比特(即,N比特亮度像素或N比特色度像素)像素存储于其中。换句话说,每一个N比特像素被视为存储于M比特存储单元中的G比特像素,其中在G比特像素中的G-N个比特为空比特(即,不在乎比特)。在一个实施方式中,这些G-N个比特位于每一个网格单元的末端。

请参考图24,图24为根据本发明第七示范性数据排列设计的由单一地址寻址的每一个网格单元中像素的数据排列的示意图,其中每一个使用的M比特存储单元存储整数个N比特像素,没有任何的部分N比特像素,以及每一个网格单元仅存储一个N比特像素。如图24所示,一个M比特存储单元被平均分割为多个G比特网格单元,每一个G比特网格单元用于存储一个N比特像素。在此实施方式中,M=128,G=16和N=10。因此,一个存储单元的网格单元数目为8,以及网格单元分别通过存储地址ADDR_0-ADDR_7来寻址。

考虑一种情况,即根据交织的方式,亮度像素存储于一个缓冲器中,以及不同的色度组分(Cr,Cb)的色度像素存储于另一缓冲器中。因此,缓冲器101被配置为具有缓冲器102_1和缓冲器102_2。当图24所示的存储单元为缓冲器102_1的一个存储单元(例如,存储单元106_1)时,自图片IMG_IN得到的像素P_0-P_7为亮度像素,并以基于区块的扫描顺序(包括图片IMG_IN中数据区块的光栅扫描顺序和每一个数据区块中像素的光栅扫描顺序)存储于存储单元106_1的网格单元中。当图24所示的存储单元为缓冲器102_2的一个存储单元(例如,存储单元107_1)时,自图片IMG_IN得到的像素P_0,P_2,P_4,P_6为一个色度组分(例如,Cb)的色度像素,并以基于区块的扫描顺序存储于存储单元107_1的网格单元中;以及自图片IMG_IN得到的像素P_1,P_3,P_5,P_7为另一个色度组分(例如,Cr)的色度像素,并以基于区块的扫描顺序存储于存储单元107_1的网格单元中。

考虑另一种情况,即亮度像素存储于一个缓冲器中,一个色度组分(例如,Cb)的色度像素存储于另一缓冲器中,以及另一个色度组分(例如,Cr)的色度像素存储于又一缓冲器中。因此,缓冲器101被配置为具有缓冲器102_1,102_2和102_3。当图24所示的存储单元为缓冲器102_1的一个存储单元(例如,存储单元106_1)时,自图片IMG_IN得到的像素P_0-P_7为亮度像素,并以基于区块的扫描顺序(包括图片IMG_IN中的数据区块的光栅扫描顺序和每一个数据区块中像素的光栅扫描顺序)存储于存储单元106_1的网格单元中。当图24所示的存储单元为缓冲器102_2的一个存储单元(例如,存储单元107_1)时,自图片IMG_IN得到的像素P_0-P_7为一个色度组分Cb的色度像素,并以基于区块的扫描顺序存储于存储单元107_1的网格单元中。当图24所示的存储单元为缓冲器102_3的一个存储单元(例如,存储单元108_1)时,以及自图片IMG_IN得到的像素P_0-P_7为另一个色度组分Cr的色度像素,并以基于区块的扫描顺序存储于存储单元108_1的网格单元中。

图24所示的数据排列十分容易实现,并且很容易设计。这是因为仅存储一个N比特像素(N不是2的幂,即N≠2n)的每一个网格单元的尺寸可设计为现有的8比特像素(8为2的幂,即8=23)的整数倍。举例来说,一个16比特网格单元能够存储两个现有的8比特像素。因此,对现有缓冲控制器的地址产生方案做微小的修改,修改后的缓冲控制器能够轻易地实现图1所示的缓冲控制器104。

在优选实施方式中,根据应用要求,缓冲控制器104可被配置为在统一的地址模式下支持不同的像素深度(pixel depths)(即,8比特,10比特,12比特),以及每一个网格单元可用于存储具有一个支持的像素深度的单一像素。请参考图25,图25为根据本发明实施方式的支持统一寻址模式的数据存储装置的应用的方框图。图25中的数据存储装置100被配置为采用图24所示的数据排列方案,以在M比特存储单元的每一个G比特网格单元中仅存储一个N比特像素。其中,基于应用要求,N为8,10或12。运动补偿电路2502通过基于16比特的地址产生DRAM请求REQ1,以自缓冲设备101读一个网格单元。因此,缓冲控制器104输出一个16比特DRAM数据DD1,以响应请求REQ1。比特选择器2504接收模式控制信号,该模式控制信号指示哪一个支持的像素深度实际用于运动补偿电路2502,并自16比特DRAM数据DD1选择/提取比特的至少一部分(即,一部分或全部),以产生选择的数据DS1至运动补偿电路2502。

相似地,显示电路2506通过基于16比特的地址产生DRAM请求REQ2,以自缓冲设备101读一个网格单元。因此,缓冲控制器104输出一个16比特DRAM数据DD2,以响应请求REQ2。比特选择器2508接收模式控制信号,该模式控制信号指示哪一个支持的像素深度实际用于显示电路2506,并自16比特DRAM数据DD2选择/提取比特的至少一部分(即,一部分或全部),以产生选择的数据DS2至显示电路2506。

图26为根据本发明实施方式的在基于16比特寻址模式下的数据提取操作的流程图。若结果实质相同,则不要求步骤严格按照图26所示的顺序来执行。基于16比特寻址模式下的数据提取操作可简要描述如下:

步骤2600:开始。

步骤2602:提取一个存储单元。

步骤2604:在提取的存储单元中得到一个16比特网格单元。

步骤2606:检查请求DRAM数据的视频处理电路使用的像素深度。若深度像素为8比特,则转至步骤2608;若深度像素为10比特,则转至步骤2610;以及若像素深度为12比特,则转至步骤2612。

步骤2608:自16比特网格单元提取8比特。转至步骤2614。

步骤2610:自16比特网格单元提取10比特。转至步骤2614。

步骤2612:自16比特网格单元提取12比特。

步骤2614:对提取的比特执行预定操作(例如,运动补偿或显示处理)。

步骤2616:检查是否已处理提取的存储单元中的所有网格单元。若是,则转至步骤2618;否则,转至步骤2604以得到提取的存储单元中下一16比特网格单元。

步骤2618:检查是否已提取所有需要的DRAM数据。若是,则转至步骤2620,否则转至步骤2602以提取下一存储单元。

步骤2620:结束。

在阅读完图24和图25的相关段落之后,本领域技术人员可以清楚地了解图26的每一个步骤的细节。为求简洁,省略进一步描述。

虽然本发明已以较佳实施方式揭露如上,然而必须了解其并非用以限定本发明。相应地,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围应当以权利要求书所界定的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1