一种图像的显示缓冲方法和装置与流程

文档序号:14874648发布日期:2018-07-07 04:54阅读:194来源:国知局

本发明涉及图像的显示缓冲技术领域,具体涉及一种图像的显示缓冲方法和图像的显示缓冲装置。



背景技术:

在soc(systemonchip,系统级芯片)中,通常需要把soc内存中存储的图像数据输出到外部显示设备,然而,由于soc内存中存储的图像数据是压缩之后的数据块,而显示设备一般都是对一帧图像逐行扫描显示,因此这就需要将内存中按数据块存储的图像数据转换成扫描行,这一过程称为图像的显示缓冲。

图1所示为现有技术中的一种显示缓冲过程示意图。从图1可以看出,该显示缓冲过程包括:soc10通过内部运算对内存中的压缩图像按数据块解压缩,然后把解压后的数据块写入到片外ddr(doubledatarate,双倍速率同步动态随机存储器)11中图像的对应位置(即图1中一个小方块),当一帧图像的第一行数据块(如图1中阴影部分所示)解码完成之后,soc10中的sram12从片外ddr11按扫描行读取数据再转发给显示设备13。

从图1所示的显示缓冲过程可以看出,该显示缓冲过程需要用到一个sram12和片外ddr11,其中sram12的大小至少为一个扫描行占用的字节数。

图2所示为现有技术中的另一种显示缓冲过程示意图。从图2中可以看出,该显示缓冲过程包括:两个片内sram(staticrandomaccessmemory,静态随机存取存储器)做乒乓处理,即soc20通过内部运算对内存中的压缩图像按数据块解压缩,然后把解压后的数据块写入到片内sram21中,当一帧图像的第一行数据块解码完成之后,sram22开始从sram21中按扫描行读取数据并转发给显示设备23。当sram22中的数据全部转发完成之后,sram21和sram22转换角色,由sram22写入解压后的数据块,sram21则按扫描行读取数据并转发,如此循环。

从图2所示的显示缓冲过程可以看出,该显示缓冲过程需要用到两个sram,并且sram21和sram22的大小至少应为一行数据块占用的字节数。

从上述分析可以看出,与图1所示的显示缓冲过程相比,图2所示的显示缓冲过程不再需要用到片外ddr,从而避免了由于片外ddr的读写操作产生的带宽消耗,然而,图2所示显示缓冲过程却需要和图1中的sram相同容量的两个sram,增加了soc的成本。



技术实现要素:

有鉴于此,本发明致力于提供一种图像的显示缓冲方法和装置,以同时解决显示缓冲过程中片外ddr产生带宽消耗和soc成本高的问题。

本发明提供了一种图像的显示缓冲方法,每一帧图像包括至少一个条带,每个条带包括m个数据块,每个数据块包括n个数据行,该图像的显示缓冲方法包括:根据预设的地址生成方法生成与至少一个条带中的每个条带中的m*n个数据行对应的m*n个读写地址;将m*n个数据行按照预定顺序写入m*n个读写地址指向的存储单元,并将m*n个读写地址作为索引按至少一个条带中每个条带的扫描行读出m*n个存储单元中的m*n个数据行。

本发明还提供了一种图像的显示缓冲装置,每一帧图像包括至少一个条带,每个条带包括m个数据块,每个数据块包括n个数据行,该图像的显示缓冲装置包括:地址生成器,用于根据预设的地址生成方法生成与至少一个条带中的每个条带中的m*n个数据行对应的m*n个读写地址;存储器,用于将m*n个数据行按照预定顺序写入m*n个读写地址指向的存储单元,并将m*n个读写地址作为索引按至少一个条带中每个条带的扫描行读出m*n个存储单元中的m*n个数据行。

本发明又提供了一种计算机设备,包括存储器、处理器以及存储在存储器上被处理器执行的计算机程序,其特征在于,处理器执行计算机程序时实现上述的图像缓冲方法。

本发明又提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述的图像缓冲方法。

根据本发明实施例提供的图像的显示缓冲方法和装置,由于读出操作利用了数据行所在存储单元的读写地址作为索引,因此只需要一个sram即可实现图像的显示缓冲,避免了利用片外ddr时产生的带宽消耗。同时由于按扫描行输出的前提是已经缓冲完成一个条带的所有数据块,因此该一个sram的容量至少为一个条带占据的字节数,和现有技术中的两个同样大小的sram相比减少了soc的成本。

附图说明

图1所示为现有技术中的一种显示缓冲过程示意图。

图2所示为现有技术中的另一种显示缓冲过程示意图。

图3所示为本发明一实施例提供的一帧图像的结构组成示意图。

图4所示为本发明一实施例提供的图像的显示缓冲方法的流程图。

图5所示为本发明一实施例提供的分辨率为4k图像,数据块大小为16*16像素时的显示缓冲方法的具体流程。

图6所示为根据图5所示的显示缓冲方法得到的地址和数据行的对应关系。

图7所示为本发明一实施例提供的图像的显示缓冲装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

首先给出如下几个概念。

数据块是指一帧图像中的若干个相邻像素点组成的块状区域,数据块是图像压缩过程的基本单位,用于存储器和输入、输出设备之间的数据传输。数据块中的每一行像素点称为数据行。

条带是指在一帧图像中由任一行数据块组成的横条状区间。整个条带中的一行像素点称为扫描行。

图3所示为本发明一实施例提供的一帧图像的结构组成示意图。从图3中可以看出,该一帧图像包括j个条带30(s0~sj),每一个条带包括m个数据块31(b0~bm),每个数据块包括n个数据行32(l0~ln)。下文具体实施例中涉及到的图像数据中的每一帧均采用图3所示的组成结构,本发明对j、m、n的具体数量不作限定,它们的取值可以是任意正整数。

图4所示为本发明一实施例提供的图像的显示缓冲方法的流程图。该显示缓冲方法可以由显示缓冲设备,例如,计算机设备,来执行。从图4可以看出,该图像的显示缓冲方法400包括:

步骤s410,根据预设的地址生成方法生成与至少一个条带中的每一个条带中的m*n个数据行对应的m*n个读写地址。

步骤s420,将m*n个数据行按照预定顺序写入m*n个读写地址指向的存储单元,并将m*n个读写地址作为索引按至少一个条带中每个条带的扫描行读出m*n个存储单元中的m*n个数据行。

这里的存储单元是指sram中的存储单元,本领域技术人员可以理解,一个存储单元可以重复执行写入和读出操作,也就是说当读出操作执行完之后该存储单元可以写入一个新的数据行,即一个存储单元可以被重复利用,然而由于图像数据按扫描行读出的前提条件是sram中已经缓冲了一个条带的数据块,因此sram的大小至少为一个条带占用的字节数。

根据本发明实施例提供的图像的显示缓冲方法,由于读出操作利用了数据行所在存储单元的读写地址作为索引,因此只需要一个sram即可实现图像的显示缓冲,避免了利用片外ddr时产生的带宽消耗。同时该一个sram的容量至少为一个条带中的所有数据行占据的字节数(和图2所示的一个sram的容量相等),和现有技术中的两个sram相比减少了soc的成本。

图5所示为本发明一实施例提供的分辨率为4k图像,数据块大小为16*16像素时的显示缓冲方法的具体流程。图6所示为根据图5所示的显示缓冲方法得到的地址和数据行的对应关系。当图像的分辨率为4k,数据块大小为16*16像素时,每个数据块包括16个数据行,即n=16,由于一帧分辨率为4k图像的宽度为4096个像素,则每个条带包括4096/16=256个数据块,即m=256。这种情况下如图4所示的图像的显示缓冲方法具体包括图5中的步骤s510~步骤s560,具体而言,步骤s410包括步骤s510-步骤s530;步骤s420包括步骤s540-步骤s560。

其中,步骤s510,预存地址生成规则,该地址生成规则包括如下规则中的至少一种,第一规则:seq=seq,第二规则:seq=fix(seq%m/n)*m+seq%n*n+fix(seq/m),第三规则:seq=seq%n*m+fix(seq/n),其中,seq~为生成的地址,seq为标识变量,取值范围为0~(m*n-1),fix为舍尾取整运算,%为取余运算,m为一帧图像的每个条带包括的数据块的数目,n为每个数据块包括的数据行的个数。

步骤s520,根据公式k=i%3为至少一个条带中的每个条带选择对应的地址生成规则,其中k为地址生成规则的编号;i为循环变量,取值范围为0~(m*n-1)。由于该选定地址生成规则的过程实际上是依次选定规则一、规则二、规则三,然后重复该选定过程,因此这里的选定地址生成规则的过程也可以是初始化设置的循环顺序选定地址生成规则。

在一个实施例中,当一帧图像中的至少一个条带从上到下从0开始顺序编号时,循环变量i等于一帧图像中条带的编号。

步骤s530,根据当前选定的至少一个条带中的每个条带对应的地址生成规则结合配置参数生成m*n个读写地址;配置参数包括m和n。配置参数m、n可以采用初始化数值,也可以采用输入数值。

本领域技术人员可以理解,当步骤s412中根据公式k=i%3选定地址生成规则时,步骤s413中的配置参数进一步包括i。

由于本实施例中的n=16,m=256,则如图6所示生成的读写地址包括:

i=0时,根据第一规则生成的地址包括:0,1,2,......4095;

i=1时,根据第二规则生成的地址包括:0,16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,272,288,304,320,336,352,368,384,400,416,432,448,464,480,496,......,4095;

i=2时,根据第三规则生成的地址包括:0,256,512,768,1024,1280,1536,1792,2048,2304,2560,2816,3072,3328,3584,3840,1,257,513,769,1025,1281,1537,1793,2049,2305,2561,2817,3073,3329,3585,3841,......4095。

重复生成上述地址。

根据本实施例提供的地址生成规则只包括取余、乘除、加运算,程序简单。特别地,由于这两个配置参数m(=256)和n(=16)分别为2的4次幂和8次幂,此时可以把乘除运算通过移位实现,这样的话地址生成规则可以通过硬件实现。

步骤s540,参阅图6,当i=0时,将编号为0的条带中的m*n个数据行按照预定顺序写入根据第一规则生成的m*n个读写地址指向的存储单元,预定顺序是指条带中的数据块内按行写入的顺序。

下面结合图3具体说明“预定顺序”的含义。

仍以分辨率为4k的图像(4096×2160像素)、16x16的数据块为例,每一帧图像包括2160/16=135个条带,每个条带包括256个数据块,对图3中的条带从上到下顺序编号,依次为s0~s134,对每个条带中的数据块从左到右顺序编号,依次为b0~b255,对每个数据块中的数据行从上到下顺序编号,依次为l0~l15,这种情况下,每一个数据行都可以表示成“条带编号-数据块编号-数据行编号”的形式,例如一帧图像的左上角的第一个数据行可以表示为s0-b0-l0,则对于编号为0的条带,即s0而言,预定顺序,即条带中的数据块内按行是指按照s0-b(0~255)-l(0~15)的顺序(如图3中箭头所示),具体为:首先是编号为0的数据块内的数据行,即s0-b0-l(0~15),包括s0-b0-l0、s0-b0-l1、s0-b0-l2、s0-b0-l4......s0-b0-l15;然后是编号为1的数据块内的数据行,即s0-b1-l(0~15),包括s0-b1-l0、s0-b1-l1、s0-b1-l2、s0-b1-l4......s0-b1-l15;依次类推直到编号为255的数据块的最后一行s0-b255-l15。

预定顺序对于其他条带也是按照上述规则排序。

如图6所示,根据步骤s540可以将编号为0的条带中的所有数据行s0-b0-l0~s0-b255-l15按照预定顺序写入读写地址0~4095指向的存储单元。

步骤s550,参阅图6,当i=1时,将根据第二规则生成的m*n个读写地址作为索引读出根据第一规则生成的m*n个读写地址指向的存储单元中的m*n个数据行,并将编号为1的条带中的m*n个数据行按照预定顺序写入根据第二规则生成的m*n个读写地址指向的存储单元。

从图6可以看出,根据步骤s550,将根据规则二生成的地址作为索引可以按照扫描行(s0-b0-l0~s0-b255-l0为一个扫描行)读出,每读出一个地址对应的存储单元中的扫描行同时将编号为1的条带中的一个数据行(s1-b0-l0~s1-b255-l15中的一个)写入该地址对应的存储单元,为i=2的读出过程做准备。

步骤s560,参阅图6,当i=2时,将根据第三规则生成的m*n个读写地址作为索引读出根据第二规则生成的m*n个读写地址指向的存储单元中的m*n数据行;并将编号为2的条带中的m*n个数据行按照预定顺序写入根据第三规则生成的m*n个读写地址指向的存储单元。

从图6可以看出,根据步骤s560,将根据规则三生成的地址作为索引可以按照扫描行(s1-b0-l0~s1-b255-l0为一个扫描行)读出,每读出一个地址对应的存储单元中的扫描行同时将编号为2的条带中的一个数据行(s2-b0-l0~s2-b255-l15中的一个)写入该地址对应的存储单元,为i=3的读出过程做准备。

此后根据步骤s540~步骤s560,并适应性调整条带编号即可实现一帧完整图像的显示缓冲。

可见,根据图5所示的图像的显示缓冲方法利用地址索引实现了“数据块”到“扫描行”的转换过程,而且该图像的显示缓冲过程至少需要4096个存储单元,同时由于每个存储单元存储一个数据行,因此sram的大小至少为一个条带占用的字节数。

图7所示为本发明一实施例提供的图像的显示缓冲装置的结构框图。从图7可以看出,该图像的显示缓冲装置700包括:

地址生成器710,用于根据预设的地址生成方法生成与至少一个条带中的每一个条带中的m*n个数据行对应的m*n个读写地址。

存储器720,用于将m*n个数据行按照预定顺序写入m*n个读写地址指向的存储单元,并将m*n个读写地址作为索引按至少一个条带中每个条带的扫描行读出m*n个存储单元中的数据行。

存储器720是指片内sram,其大小至少为一个条带占用的字节数。

根据本发明实施例提供的图像的显示缓冲方法,由于读出操作利用了数据行所在存储单元的读写地址作为索引,因此只需要一个sram即可实现图像的显示缓冲,避免了利用片外ddr时产生的带宽消耗。同时该一个sram的容量至少为一个条带中的所有数据行占据的字节数(和图2所示的一个sram的容量相等),和现有技术中的两个sram相比减少了soc的成本。

在一个实施例中,当图像的分辨率为4k,数据块大小为16*16像素,即m=256,n=16时,地址生成器710具体包括存储模块711、选定模块712和地址生成模块713。

其中,存储模块711用于预存地址生成规则,该地址生成规则包括第一规则,seq~=seq,第二规则,seq~=fix(seq%m/n)*m+seq%n*n+fix(seq/m),第三规则:seq~=seq%n*m+fix(seq/n),其中,seq~为生成的地址,seq为标识变量,取值范围为0~(m*n-1),fix为舍尾取整运算,%为取余运算,m为一帧图像的每个条带包括的数据块的数目,n为每个数据块包括的数据行的个数。

选定模块712用于根据公式k=i%3为至少一个条带中的每个条带选择对应的地址生成规则,其中k为地址生成规则的编号;i为循环变量,取值范围为0~(m*n-1)。由于该选定地址生成规则的过程实际上是依次选定规则一、规则二、规则三,然后重复该选定过程,因此这里的选定地址生成规则的过程也可以是初始化设置的循环顺序选定地址生成规则。

在一个实施例中,当一帧图像中的至少一个条带从上到下从0开始顺序编号时,循环变量i等于一帧图像中条带的编号。

地址生成模块713用于根据当前选定的至少一个条带中的每个条带对应的地址生成规则结合配置参数生成m*n个读写地址;配置参数包括m和n。配置参数m、n可以采用初始化数值,也可以采用输入数值。

本领域技术人员可以理解,当步骤s412中根据公式k=i%3选定地址生成规则时,步骤s413中的配置参数进一步包括i。

这种情况下,存储器720具体用于:

当i=0时,将编号为0的条带中的m*n个数据行按照预定顺序写入根据第一规则生成的m*n个读写地址指向的存储单元,预定顺序是指条带中的数据块内按行写入的顺序。

当i=1时,将根据第二规则生成的m*n个读出读写地址作为索引读出根据第一规则生成的m*n个读写地址指向的存储单元中的m*n个数据行,并将编号为1的条带中的m*n个数据行按照预定顺序写入根据第二规则生成的m*n个读写地址指向的存储单元。

当i=2时,将根据第三规则生成的m*n个读写地址作为索引读出根据第二规则生成的m*n个读写地址指向的存储单元中的m*n数据行;并将编号为2的条带中的m*n个数据行按照预定顺序写入根据第三规则生成的m*n个读写地址指向的存储单元。

此后根据上述过程并适应性调整条带编号即可实现一帧完整图像的显示缓冲。本领域技术人员可以理解,存储模块711可以是存储器720的一部分。

本发明一实施例还提供一种计算机设备,包括存储器、处理器以及存储在存储器上被处理器执行的计算机程序,其特征在于,处理器执行计算机程序时实现如前任一实施例所述的图像的显示缓冲方法。

本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如前任一实施例所述的图像的显示缓冲方法。该计算机存储介质可以为任何有形媒介,例如软盘、cd-rom、dvd、硬盘驱动器、甚至网络介质等。

应当理解,虽然以上描述了本发明实施方式的一种实现形式可以是计算机程序产品,但是本发明的实施方式的方法或装置可以被以软件、硬件、或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和设备可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的方法和装置可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。

应当理解,尽管在上文的详细描述中提及了装置的若干模块或单元,但是这种划分仅仅是示例性而非强制性的。实际上,根据本发明的示例性实施方式,上文描述的两个或更多模块/单元的特征和功能可以在一个模块/单元中实现,反之,上文描述的一个模块/单元的特征和功能可以进一步划分为由多个模块/单元来实现。此外,上文描述的某些模块/单元在某些应用场景下可被省略。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

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