一种基于图像编解码的帧内预测的处理方法

文档序号:7656063阅读:97来源:国知局
专利名称:一种基于图像编解码的帧内预测的处理方法
技术领域
本发明是属于视频压縮的集成电路设计领域,涉及到帧内预测器的结构和宏块或块的像 素预测顺序排列的处理方法。
背景技术
在视频编解码设计中,处理的单元可以是宏块(16x16的像素块),也可以是子块(如8x8 或者4x4的像素块), 一个宏块可分成4个8x8块和16个4x4块,H. 264/AVC中有4x4、 8x8、 16x16三种块单元,AVS中只有8x8块单元。
视频压縮中釆用的帧内预测技术是为了去除当前图像的空间冗余度,利用当前块的上方 和左方的相邻像素作为参考,对当前块进行预测,这样就需要在当前块预测时相邻像素的数 据必须已经得到。在预测时需要涉及到像素预测的顺序,目前的做法是在块中按照光栅扫描 的顺序进行预测,下面以8x8块为例说明一下常用的预测时块中像素预测顺序过程,见图1 所示,在开始预测块0时,其周围的参考像素已经解码得到,按照从上到下光栅扫描的顺序 从1到8—行一行从左向右顺序进行预测,块0预测完毕后进行块1的预测,块l的预测像 素的预测顺序也是一样从上到下预测,后面的块2,块3预测顺序均是这样。
这种预测顺序在硬件实现上有一定的局限性,因为帧内预测时每块预测解码完毕后的数 据有些是下一块预测时需要的,比如图1中块0的最右边一列8个像素值在块1预测时是作 为它的左边参考像素样本,如果按照常规的预测顺序,第八行预测重建完毕后块1的左边参 考像素才完全得到,这时才能进行块l的预测,即块1需要一定的等待时间,所以一般针对 帧内预测的实现方法都是以块内的行为单位进行流水处理,虽然块内可实现像素或像素行的 流水处理,但块与块之间无法进行像素或像素行的流水处理,制约了帧内预测的速度。

发明内容
本发明针对上述常规预测技术的不足,提出了一种新的帧内预测结构,如图2所示,将 帧内预测分为预处理部分和预测部分。
预处理过程是在进行帧内预测之前对当前块上方和左方的参考像素进行一定的处理得到
一些中间结果,之后使用这些中间结果进行预测。预处理过程根据不同的标准会有所不同,
可以是直接将参考像素进行拷贝,也可以包括加法和移位操作,甚至还可以是含有复杂的乘
法操作。这样分解有以下优点
1. 预处理过程与预测过程可流水处理,可提高帧内预测的性能;
2. 在进行帧内预测的处理时生成的新的像素可以更新参考像素,用于下一个预测单元
(块或宏块)的预测,同时也不影响当前块的预测结果。
使用这种结果就使得当前块的预测顺序可以很灵活的调整,根据当前预测块中像素是否 为后续块预测时作参考,可以灵活的编排顺序,将需要作为参考的像素可以提前进行预测, 这样在预测当前块的过程中,后续块需要的参考像素已经重建完毕,提前已经为紧接的块预 测做好准备。这种灵活的顺序安排可以根据具体需要进行,可以在每块中按照从下到上逐行 预测,从左到右逐列预测,从右到左逐列预测,也可以从下到上和从上到下逐行预测,往中 间汇合,也可以从左到右和从右到左逐列预测等等多种方式。
由于预测的顺序可灵活排列,所以根据不同的实现可灵活排列块内的预测顺序。这样既 可灵活安排进行帧内以行或列为单位的流水处理,提高帧内预测处理效率(处理块边界时流 水处理不会停顿),也可方便与其他算法模块(如IDCT)配合,实现更高效率的组合。
本发明是针对预测过程中的块块之间像素的相关性选择预测顺序,这样消除下一块预测 时的等待周期,提高并行性和整个流水线的吞吐量。


-
图1是一个宏块划分成4个8x8块时帧内预测时常规预测顺序示意图; 图2是本发明帧内预测整体结构示意图3是本发明中AVS帧内预测时8x8块一种行列预测顺序示意图; 图4是本发明中H. 264帧内预测时16x16 —种行列预测顺序示意图; 图5是本发明中H. 264帧内预测时4x4 —种行列预测顺序示意具体实施例方式
下面详细说明本发明提出的一种帧内预测的实现结构
在具体的实现过程中分别设置两个寄存器(也可以使用RAM,下同), 一个预测当前块所
需要的参考像素寄存器和一个更新参考像素寄存器,用于存放在块预测的过程中预测并重建 完毕的作为后续块预测所需的参考像素,通过设置寄存器就可以在预测时将后续需要的像素
值存入到更新像素寄存器中,不会影响到当前块的预测,可以很灵活自由地进行像素预测顺 序的排列,在预测当前块的同时能够提前得到下一个块的参考数据。
一个宏块可以划分成4个8x8块,1个8x8块可以分成4个4x4块,下面分别结合AVS
和H.264的帧内预测算法,具体举例说明几种预测顺序,可以看到符合本发明的结构可以有 效的提高帧内预测效率。 实施实例1:
AVS 8x8块具体的预测顺序见图2,预处理过程的运算单元根据AVS的帧内预测模式的不 同而不同,当为水平或者垂直模式时,不需要进行运算,直接将数据从参考像素值寄存器拷 贝到预测所需值寄存器中;当为亮度其它模式时,参考像素需要经过加法器和移位器运算后 存入到预测所需值寄存器中;当为色度预测plane预测模式时,参考像素需要经过加法器、 移位器及复杂的乘法器运算后预处理后的结果存入到预测所需值寄存器中。因为块0的最右 边一列需要作为块1的参考像素,因此在预测块O时以列为单位从右向左逐列预测,这样在 预测第三列时右边的一列已经重构完毕,为块l预测做好了准备,并且每列的最后一个像素 是块2预测时的参考像素,也可以在块1预测的过程中重构完毕,为块2预测做好了准备; 因为块2预测时需要块1的下面一行的像素作参考,可以在预测块1预测时采用从下往上逐 行预测,这样便于各块之间排流水,最下面的一行最先预测并重构完毕,做为块2和块3预 测的上方参考像素,然后每一行的最后一个像素为下一个宏块的参考像素,在预测块2时也 可以得到;块2预测时采用从右到左逐列预测,这样预测同样是为了排流水,这样最右边一 列可以提早的预测重构完毕作为块3的左边预测值,同样每一列最后一个像素作为下面宏块 的参考像素;块3预测时才用从右到左逐列预测,最先预测重构出来的像素为下一个宏块的 左边参考像素,每一列的最后一个像素为下面宏块的上方参考像素,这样可以将每个块中的 预测处理单元流水起来,预测模块在每个周期内一直在进行工作,不会造成像常规预测顺序 时块与块之间的等待空隙,严重的降低了流水线的运行频率。
下面详细说明一下实施步骤
步骤1:根据已得到的块0的相邻像素值从右向左预测第一列; 步骤2:预测块0的第二列,同时重构第一列;
步骤3:预测块0的第三列,同时重构第二列,将重构完毕的第一列和重构完毕的第一
列的最后一个像素保存为块1和块2做准备; 步骤4:预测块0的第四列,同时重构第三列,将重构完毕的第二列的最后一个像素保
存为块2做准备;
对块0后续处理单元以及块2和块3的预测重复上述步骤,块1的不同之处在于预测从
下往上逐行预测,重构完第一行后将数据保存,完后续行重构完毕后将每行的最后一个数据 保存,作为下一个宏块预测的左边参考像素。
实施实例2:
H.264帧内以16xl6宏块为预测单元预测示意图见图3,在预测前设置两个寄存器, 一个 为存储预测所需的参考像素的REG1, 一个为存储当前宏块预测并重构完毕后的最右边一列像 素的REGO, REGO中的最右边一列像素作为下一个宏块预测时参考,预处理过程的运算单元根 据H.264的帧内预测模式的不同而不同,当为水平或者垂直模式时,不需要进行运算,直接 将数据从参考像素值寄存器拷贝到预测所需值寄存器中;当为亮度其它模式时,参考像素需 要经过加法器和移位器运算后存入到预测所需值寄存器中;当为色度预测Plane预测模式时, 参考像素需要经过加法器、移位器及复杂的乘法器运算后的预处理结果存入到预测所需值寄 存器中。
步骤1:在预测前先得到当前宏块所需的上方和左方的参考像素保存于REG1中; 步骤2:根据参考像素按照从右到左的顺序开始逐列进行预测,预测第一列; 步骤3:此时第一列预测完毕,进入重构单元,同时开始第二列的预测; 步骤4:第一列已经重构完毕,将此列数据保存到REGO中,这样下一个宏块的左边参考 已经得到,同时重构第二列,预测第三列;
后续的各列的步骤和上述三列一样,直至第16列预测完毕。
实施实例3:
H. 264中4x4块的预测顺序示意图见图4,预处理过程的预处理单元和上述16x16的结构 一样,根据预测模式的不同而不同,以第一个8x8块中的4个4x4块为例,其余三个8x8块 的预测顺序和第一个是一样的。
步骤1:第一个4x4块预测时,采用从右到左逐列预测,将该块中最先预测重建的一列 和每列的最后一个值保存起来;
步骤2:第二个4x4块预测时,采用从下往上逐行预测,这样做是便于块与块排流水,
将该块中最先预测重建的一行和每行最后一个值保存起来;
步骤3:第三个4x4块预测时,采用从右向左逐列预测,同理是为了排流水方便,将该
块中最先预测重建的一列和每列的最后一个值保存起来;
步骤4:第四个块4x4预测时,采用从右向左逐列预测,同样是为了流水方便,将该块
中最先预测重建的一列和每列的最后一个值保存起来;
这样一个8x8块中的4个4x4块预测完毕,后续的三个8x8块中的4x4块的预测重复上 述步骤。
权利要求
1. 一种基于图像编解码的帧内预测的处理方法,采用将参考像素和预测中使用的预处理后的结果分开保存,帧内预测时基于预处理结果进行,参考像素和预测过程所需的预测值分开存储,使得在进行帧内预测的同时可以动态更新下一预测单元(块或宏块)的参考像素,这样在一个预测单元内行与行,列与列以及像素与像素之间可灵活排列顺序进行帧内预测,处理顺序可灵活调度,满足不同实现算法的需要。
2. 如权利要求1所述的一种基于图像编解码的帧内预测的处理方法,其特征在于预处理过程 根据不同的标准会有所不同,可以是直接将参考像素进行拷贝,也可以包括加法和移位操 作,甚至还可以是含有复杂的乘法操作,这样在进行帧内预测的处理时重建像素可以更新 参考像素,用于下一个预测单元(块或宏块)的预测,同时也不影响当前块的预测结果。
3. 如权利要求1所述的一种基于图像编解码的帧内预测的处理方法,其特征在于在各种块的 预测的过程设置了两个寄存器, 一个用于保存预测所需要的参考整像素, 一个用于保存预 处理结果值,分开存储可以在进行块预测时便于流水编排。
4. 如权利要求l所述的一种基于图像编解码的帧内预测的处理方法,其特征在于针对16x16 的宏块,在预测时,从宏块从右到左16个列逐列开始预测,第一列预测重构完毕后保存 到参考像素缓存中,因为预测使用的是预测值缓存中的值,这样不会影响到预测后续列预 测,同时在预测重建完后续列时将列的最后一个值保存起来。
5. 如权利要求1所述的一种基于图像编解码的帧内预测的处理方法,其特征在于针对8x8的 块, 一个宏块可分成4个8x8块,预测时块按照"之"字形预测,在预测第一块时,预测 顺序是从右向左逐列预测,第二块预测时是从下往逐行预测,第三块预测时是从右到左逐 列预测,第四块预测时是从右向左逐列预测,在每个块预测重构完毕后将最先重构的一列 (行)和后续列(行)的最后一个值保存到参考像素缓存中。
6. 如权利要求1所述的一种基于图像编解码的帧内预测的处理方法,其特征在于针对4x4的 块, 一个宏块分成4个8x8块,每个8x8块分成4个4x4块,宏块中4x4块预测是在每个 8x8块中"之"字形预测,然后再按照"之"字预测8x8块,在每个8x8块中,4x4块的 预测顺序是一样的,在预测第一个4x4块时,预测顺序是从右向左逐列预测,第二个4x4 块预测时是从下往上逐行预测,第三个4x4块块预测时是从右到左逐列预测,第四个4x4 块块预测时是从右向左逐列预测,在每个块预测重构完毕后将最先重构的一列(行)和后续 列(行)的最后一个值保存到参考像素缓存中,不会影响块的预测;
全文摘要
本发明是属于视频压缩的集成电路设计领域,涉及到帧内预测器的结构和宏块或块的像素预测顺序排列的处理方法,主要针对帧内预测提出一种处理模型,并相应给出一些实例,可以有效提高帧内预测的并行流水,该方法处理的关键点是将参考像素和预测过程所需的预测值分开存储,使得在进行帧内预测的同时可以动态更新下一预测单元(块或宏块)的参考像素,这样在一个预测单元内行与行,列与列以及像素与像素之间可灵活排列顺序进行帧内预测,进而可以使得基于像素或像素行处理的帧内预测可灵活安排先后顺序,可以将块与块流水起来实现更高效的处理,这对于高清实时解码有重要意义。
文档编号H04N7/26GK101383971SQ200710121440
公开日2009年3月11日 申请日期2007年9月6日 优先权日2007年9月6日
发明者何文学, 张树军, 王大旗, 杲 陈 申请人:北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1