用于视频编解码芯片中帧内预测的数据存储和交换方法

文档序号:7967934阅读:276来源:国知局
专利名称:用于视频编解码芯片中帧内预测的数据存储和交换方法
技术领域
本发明涉及一种数据存储和交换方法,特别涉及用于视频编解码 芯片中帧内预测的数据存储和交换方法。
背景技术
随着集成电路(ic)产业的高速发展,IC集成度的提高,使得
视频编解码的芯片化得以实现。视频编解码的算法固定,因此芯片的 设计围绕着如何能获得最小的芯片面积开销和最佳的芯片性能两个 问题不断深入。好的解决方案能够优化芯片内、外部存储器的体系结
构,达到节省芯片面积的目标;同时又能够优化芯片内、外部存储器 的数据交换,提高芯片速度。
视频图像帧一般分为I帧、P帧、B帧三类基本帧。I帧只采用 帧内预测方法,P帧可参考前面几帧图像进行帧间预测,而B帧则可 以进行前、后向双向预测。由于视频编解码算法多是基于块的预测技 术,因此图像帧被进行了块划分, 一般以NXN的像素块为基本单位, NXN可以是16X16、 8X8或4X4等,其中16X 16的像素块一般称 为一个宏块Mb (Macroblock)。以像素块为单位的预测包括了帧内 块(I块)预测和帧间块(P块)两大类预测。I帧只包含I块,而P 帧、B帧既可以包含I块也可以包含P块。另有一类特殊的块,允许 编码器不经过预测和变换编码过程而直接把编码时的采样值传送到
解码端,称为IPCM方式,这样的块简称IPCM块。
编码时对I块采用帧内预测技术,只需对像素块的预测值和原始
值的差值进行编码,数据量小;解码时也只需利用码流中传输的差值 和编码时所设定的参数重构像素块,充分利用相邻像素块的相关性, 最大程度地减少空间冗余信息。无论编码还是解码中的帧内预测,均 需利用当前块周围紧邻的块的像素值作为参考进行预测,所以每当预 测当前块时,其紧邻块的相关像素值都需要提取出来作为参考。对于 软件编解码器而言,所有数据都存储在内存中,由于无需考虑内存的 开销和带宽的占用;但对于硬件编解码器,如何合理的安排帧内预测 所需的数据信息的存储以及数据之间的交互,既能够节约芯片内部的 存储空间,又能够优化与片外的数据交互,成为亟待解决的两个问题。
目前己有的解决方案主要是基于行缓冲的参考存储装置及方法, 此方案是利用了视频解码芯片中有先进先出的行缓冲队列。参考存储 方法包括处理器从行缓冲队列中取出预测当前编码元素所需的已保 存在队列中的相邻元素值,进行空间预测,并得到新的元素解码值, 将当前位置的元素值解码更新到行缓冲队列中步骤。如图1所示,帧 内预测时,所取得的参考点是当前块最紧邻的左边一列和上边一行的 解码像素值。详细步骤为从行缓冲中取出左边一块和上边一块相邻 像素点的解码像素值存于内部寄存器中进行预测;预测结束后,将该 块中最下面一行解码像素值存于行缓冲中相应位置。
但是现有的方案是基于行缓冲的存储,解码是按照块的顺序一个 一个从左向右进行,未考虑解码顺序并不一定是按照从左向右连续的 块顺序进行的。事实上,在现有的视频编解码算法中,为了提高码流 的抗干扰性能,均提出了片组的概念,属于同一片组的宏块空间位置
并不一定是连续的,因此也一定可以不是相邻的。另一方面,现有方 案对于块左上方的紧邻像素点的存储和使用却未能提供说明,而如果 按照现有方案替换行缓冲装置中的对应像素值,则块左上方的紧邻像 素点就无法保存,进而在下一次预测时不可获得而无法实现预测。

发明内容
本发明的目的在于提供一种用于视频编解码芯片中帧内预测的 数据存储和交换方法,从而既能够节约芯片内部的存储空间,又能够 优化与片外的数据交互。
本发明的目的可通过以下的技术措施来实现 一种用于视频编解 码芯片中帧内预测的数据存储和交换方法,包括以下步骤
(1) 、初始化分别以亮度和色度方式记录存储的当前NXN像素
块上方一图像行像素值、当前NXN像素块左方紧邻列像素值和当前 NXN像素块左上方紧邻点像素值,此三组像素的亮度和色度值共六
个数组作为当前像素块进行帧内预测时所需的参考像素
(2) 、处理当前一个帧内图像的像素块,即I块,从步骤(1)中
的六个数组中对应取出预测当前I块所需要的像素值,按照指定的预
测模式进行帧内预测,完成其帧内预测;
(3) 、分别用当前像素块最右下角的像素点的值以及下边界行 的像素值和右边界列的像素值替换(1)中六个数组中对应的点、行 和列像素的值;
(4) 、当一个I块处理完毕,退出当前I块,使数组更新;
(5) 、把处理完的一个I块的所有像素值写入到片外的帧存中 的对应位置,即所预测的I块位于一帧图像中的位置。
在解码过程中要处理IPCM块或帧间预测图像的像素块,即P块, 在完成PCM预测或帧间预测之后,将新产生当前像素块的最右下角的 像素点的值以及下边界行的像素值和右边界列的像素值分别替换权 利要求l所述步骤(1)的六个数组中对应的点、行和列像素的值。
本发明所述步骤(1)六个数组为-
叩Y[N] [M]:当前NXN像素块上方一图像行的像素亮度值, 叩UV[2] [P] [M]:当前NXN像素块上方一图像行的像素色度值, leftY[N]:当前NXN像素块左方紧邻列的像素亮度值, leftUV[2] [P]:当前NXN像素块左方紧邻列的像素色度值, left_upY:当前NXN像素块左上方紧邻点的像素亮度值, left—叩UV[2]:当前NXN像素块左上方紧邻点的像素色度值。 其中,N表示所处理的I块是以NXN像素块为单位解码,NXN 可以是16X16、 8X8、 4X4等像素块单位;M值为当前一幅图像以N XN像素块划分下,每一行的块数目;而P的值取决于亮度、色度YUV 的采样比例,亮度的采样一般是色度的整数倍例如YUV4: 4: 4采 样,则P二16; YUV4: 2: 2或4: 1: 1或4: 2: 0采样,则P二8。
本发明所述列像素对应亮度和色度仅存储一个NXN像素块左方 紧邻的N个像素值。
本发明所述步骤(3)首先用当前块最右下角的像素点的值替换 left—upY中的值,然后用当前块下边界行的像素值替换upY[N][M] 中与当前块横坐标相同的对应域的值,最后用当前块右边界列的像素
值替换leftY[N]中与当前块纵坐标相同的对应域的值,若处理的是 色度像素,则替换点、行和列像素的色度数组中对应域的值。
本发明所述步骤(5)帧存中的对应位置为当前像素块在当前帧 中的位置。
采用本发明所述的方法,大大节省存储空间,在同样大小的图像 情况下,存储空间只有现有技术的l/8甚至更小,以像素为单位,存 储上一图像行的解码值,加上左边像素块最右列的解码值和左上角像 素的解码值,存储空间大小为(图像宽度+像素块边长+l)字节,本 发明还说明了仅在一帧开始时初始化参考像素的数组,每次处理完一 个像素块即写出数据到片外,使片内外数据交换合理。此外,本发明 也详细描述了要作为参考的左上角像素点的存储和数据交换方式,并 且考虑到了FM0 (Flexible Macroblock Ordering)的情况,FMO突破 了传统意义上的片的划分,允许独立和分散的宏块以一定的逻辑规则 映射到相应的片组里。


图1为现有技术基于行缓冲的参考存储方法流程示意图2为本发明的流程示意图3为4X4像素块帧内预测的常用模式示意图4为16X16像素块帧内预测的常用模式示意图5为4X4像素块帧内预测所需要的参考像素分布示意图6为16X16像素块帧内预测所需要的参考像素分布示意图7为8X8像素块帧内预测所需要的参考像素分布示意图。
具体实施例方式
本发明基于视频编解码器芯片关键环节一一帧内预测的设计实
现。帧内预测主要是基于块的预测技术,帧内预测的图像帧一般以N XN像素(N可以等于16、 8、 4 )为基本单元块被划分。
如图3、图4所示,以4X4像素块和16X16像素块为例(8X8 类同), 一般而言,当前像素块的预测需要用到的紧邻块的参考像素 值可以分为三类, 一类是当前像素块上方块(有时也包括右上方块) 的行像素、 一类是当前像素块左方块的列像素,还有一类特殊的是左 上方块一个像素点。
归纳起来,以像素块为单位进行帧内预测时,所需要用到的参考 像素分布基本上如图5、 6和7所示的三种情况
16X16像素块在进行帧内预测时,所需参考像素为当前块上方 块下边界的16个像素、左方块右边界的16个像素以及左上方块右下 角紧邻的l个像素,共计33个参考像素点。8X8像素块在进行帧内 预测时,所需参考像素为当前块上方块下边界的8个像素、左方块右 边界的8个像素以及左上方块右下角紧邻的1个像素,共计17个参 考像素点。
4X4像素块在进行帧内预测时,所需参考像素为当前块上方块 下边界的4个像素、右上方块下边界的4个像素、左方块右边界的4 个像素以及左上方块右下角紧邻的1个像素,共计13个参考像素点。
这些参考像素点的值无论是编码时还是解码时都必须是已经存 在的,才能保证当前块的预测能够进行。而由于芯片内部存储空间有
限,存储一帧图像的数据量相当大,为了合理的把帧内预测所需参考 像素值存储在芯片内部,本发明采用存储三类参考像素值(即行像 素、列像素、点像素)的方式为
(1) 行像素的存储 亮度upY[N] [M] 色度upUV[2] [P] [M]
M值为当前一幅图像以NXN像素块划分下,每一行的块数目。 例如CIF (352X288)图像,若N二16,贝U M=22; Dl (720X576)图 像,若N:16,则M二45。
P的值取决于亮度、色度YUV的采样比例,若YUV4: 4: 4采样,
P二16;若YUV4: 2: 2采样,P=8;若YUV4: 2: 0或者4: 1: 1采样, P二8。 (4: 2: 2与4: 1: 1与4: 2: 0采样仅在算法上有区别,在 此不赘述。)
则upY[N] [M]即表示当前块上方一图像行的所有亮度像素,色度 upUV[2] [P] [M]表示当前块上方一图像行的所有色度像素。
(2) 列像素的存储 亮度leftY[N] 色度leftUV[2] [P]
亮度仅需要存储一个NXN像素块左方紧邻的N个像素值即可; 色度以此类推。
(3) 点像素的存储 亮度left—upY
色度left_upUV[2] 当前块左上方紧邻像素点的存储。
其中具体帧内预测的数据存储和交换方法为以下步骤,如图2所

1、 处理当前I块,从六个数组中对应的取出预测所需要的像素 值按照某种指定的预测模式进行帧内预测,完成帧内预测。
2、 首先用当前块最右下角的像素点的值替换left—upY中的值; 若处理的是色度像素,则替换left—upUV[2]中的值。
3、 然后用当前块下边界行的像素值替换upY[N][M]中与当前块 横坐标相同的对应域的值;若处理的是色度像素,则替换 upUV[2] [P] [M]中对应域的值。
4、 最后用当前块右边界列的像素值替换leftY[N]中与当前块纵 坐标相同的对应域的值;若处理的是色度像素,则替换leftUV[P]中 对应域的值。
5、 一个I块处理完毕,退出当前块,数组被更新。
6、 若处理P块或IPCM块,同样需要在完成其帧间预测或PCM预 测之后,将新产生的像素值按照步骤3、 4、 5的顺序依次替换三组数 组的对应域,因为P块或IPCM块的像素值,也可能作为其紧邻I块 的预测参考像素值。
7、 处理完一个I块,将该块的所有像素值写入到片外的帧存中 的对应位置(即当前像素块在当前帧中的位置)。
权利要求
1、一种用于视频编解码芯片中帧内预测的数据存储和交换方法,其特征在于包括以下步骤(1)、初始化分别以亮度和色度方式记录存储的当前N×N像素块上方一图像行像素值、当前N×N像素块左方紧邻列像素值和当前N×N像素块左上方紧邻点像素值,此三组像素的亮度和色度值共六个数组作为当前像素块进行帧内预测时所需的参考像素;(2)、处理当前一个帧内图像的像素块,即I块,从步骤(1)中的六个数组中对应取出预测当前I块所需要的像素值,按照指定的预测模式进行帧内预测,完成其帧内预测;(3)、分别用当前像素块最右下角的像素点的值以及下边界行的像素值和右边界列的像素值替换(1)中六个数组中对应的点、行和列像素的值;(4)、当一个I块处理完毕,退出当前I块,使数组更新;(5)、把处理完的一个I块的所有像素值写入到片外的帧存中的对应位置,即所预测的I块位于一帧图像中的位置。
2、 根据权利要求1帧内预测的数据存储和交换方法,其特征在 于如果要处理IPCM块或帧间预测图像的像素块,即P块,在完成 PCM预测或帧间预测之后,将新产生当前像素块的最右下角的像素点 的值以及下边界行的像素值和右边界列的像素值分别替换权利要求1 所述步骤(1)的六个数组中对应的点、行和列像素的值。
3、 根据权利要求1帧内预测的数据存储和交换方法,其特征在 于所述步骤(1)六个数组为-upY[N] [M]:当前NXN像素块上方一图像行的像素亮度值, 叩UV[2] [P] [M]:当前NXN像素块上方一图像行的像素色度值, leftY[N]:当前NXN像素块左方紧邻列的像素亮度值, leftUV[2] [P]:当前NXN像素块左方紧邻列的像素色度值, left—upY:当前NXN像素块左上方紧邻点的像素亮度值, left—upUV[2]:当前NXN像素块左上方紧邻点的像素色度值; 其中,N值表示当前像素块以NXN为大小;M值表示当前一幅图像以NXN像素块划分下,每一行这样的像素块数目;而P的值取决于亮度、色度的采样比例。
4、 根据权利要求1或2帧内预测的数据存储和交换方法,其特 征在于所述列像素对应亮度和色度仅存储一个NXN像素块左方紧 邻的N个像素值。
5、 根据权利要求1帧内预测的数据存储和交换方法,其特征在 于所述步骤(2)的I块是以NXN像素块为单位解码,NXN可以 是16X16、 8X8、 4X4等像素块单位。
6、 根据权利要求1帧内预测的数据存储和交换方法,其特征在 于所述步骤(3)首先用当前块最右下角的像素点的值替换left一upY 中的值,然后用当前块下边界行的像素值替换upY[N][M]中与当前块 横坐标相同的对应域的值,最后用当前块右边界列的像素值替换 leftY[N]中与当前块纵坐标相同的对应域的值,若处理的是色度像素,则替换点、行和列像素的色度数组中对应域的值。
7、 根据权利要求1帧内预测的数据存储和交换方法,其特征在于所述步骤(5)帧存中的对应位置为当前像素块在当前帧中的位
全文摘要
本发明公开一种用于视频编解码芯片中帧内预测的数据存储和交换方法,包括以下步骤(1)初始化空间预测所需的参考像素值的六个数组upY[16][M]、upUV[2][P][M]、leftY[16]、leftUV[2][P]、left_upY、left_upUV[2];(2)从步骤(1)中的六个数组中对应的取出预测所需要的像素值,进行帧内预测;(3)分别用当前块最右下角的像素点的值以及下边界行的像素值和右边界列的像素值替换其对应的点、行和列像素值的三组数组值;(4)当一个I宏块处理完毕,使数组更新;(5)把处理完的一个I宏块的所有像素值写入到片外的帧存中的对应位置。采用本发明方法,既能节约芯片内部的存储空间,又能优化与片外的数据交互。
文档编号H04N7/32GK101193305SQ200610123658
公开日2008年6月4日 申请日期2006年11月21日 优先权日2006年11月21日
发明者婷 张 申请人:安凯(广州)软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1