高性能宏块编码实现方法

文档序号:7556966阅读:476来源:国知局
专利名称:高性能宏块编码实现方法
技术领域
本发明涉及视频图像处理领域,尤其涉及一种视频编码的实现方法,可用于H. 264 视频编码系统的视频压缩处理。
背景技术
未来社会是信息化的社会,数字化的信息,尤其是数字化后的视频和音频信息,有 一系列优点,如直观性,确切性,高效性,广泛性等,但是信息量太大,给信息的存储和传输 造成很大的困难,成为阻碍人类获取和使用有效信息的瓶颈之一。要使视频信息得到有效 的应用,必须解决编码压缩率和解码图像质量的问题。因此,研究和开发新型有效的多媒体 数据压缩编码方法,以压缩的形式存储和传输这些数据将是最好的选择。在视频编码标准 H. 264中,如图1所示,视频数据按照宏块单位进行编码首先对当前宏块进行帧内预测和 帧间预测,选择出最佳的预测模式,由当前宏块和最佳模式得到的预测宏块产生残差宏块, 对其进行DCT变换、量化;对量化系数进行重排序后进行熵编码;将编码后的结果递交到网 络层进行传输;同时为了保证编解码的一致性,对量化系数进行反量化、反DCT变换、反预 测、去块效应滤波,将处理结果用作后续图像的编码参考。H. 264的实际应用中,主要包括运动估计、宏块编码、熵编码和去块效应滤波等几 个模块。针对宏块编码,目前提出了很多基于模式选择的快速算法,用于提高系统的处理速 度,这些算法的主要思想有基于边界检测、对预测模式进行分类、应用直方图和提前终止 等,相对于标准的率失真算法,这些算法的计算量都有大幅度的下降,但是它们都是基于软 件实现的,同时对图像质量都有一定程度的影响,在硬件实现时,这些算法过于复杂,且没 有充分考虑硬件的并行处理能力和资源的复用,无法满足实时性的要求。

发明内容
本发明的目的在于针对上述已有技术的不足,提供一种高性能宏块编码的实现方 法,与RDO算法相比,以保证图像质量在没有任何下降的情况下,提高H. 264视频编码的实 时处理能力。本发明的目的是这样实现的一、术语说明子块大小为4X4的像素块。宏块图像被分为若干个16X16的块,每一个块就称为一个宏块。量化系数像素进行量化后的值。zig-zag扫描按照“Z”字形进行扫描,具体如图2所示。残差数据原始像素减去预测像素得到的差值数据。残差宏块预测宏块与当前宏块对应位置的像素值相减得到的宏块数据。二、实现方案本发明的宏块编码方法,包括以下步骤
(1)以16X16的宏块为基本编码单元,先缓存当前宏块的亮度和色度原始数据 以及帧间对亮度、色度前向预测、后向预测和双向预测数据,再对亮度原始数据进行二次缓 存;(2)帧内预测步骤2a)对当前宏块开始两路并行预测,一路进行帧内4X4亮度预测,即首先将 16X16的宏块分成16个4X4的子块,然后按照zig-zag扫描顺序,依次完成对这16个子 块的垂直、水平、DC、下左对角线、下右对角线、右垂直、下水平、左垂直和上水平九种模式的 预测;另一路直接对16X16的亮度块和对应的8X8色度块依次完成垂直、水平、DC和平面 四种模式的预测;2b)两路预测结束后,通过DCT变换分别得到帧内4X4亮度预测方式、帧内 16X16的亮度预测方式和帧内8X8色度预测方式的最佳预测模式,并对最佳模式对应的 DCT变换结果进行寄存;(3)帧内最佳预测方式选择步骤3a)对帧内4X4亮度预测和帧内16X 16亮度预测的最佳模式的DCT变换结果依 次进行量化操作,并对量化结果分别进行累加,将累加的结果作为帧内4X4亮度预测代价 和帧内16 X 16亮度预测代价;3b)将上述两种预测代价进行比较,选择代价值小的预测代价作为当前宏块帧内 亮度最佳预测代价,并将该代价值小的预测代价所对应的预测方式作为当前宏块的帧内亮 度最佳预测方式;3c)对帧内色度最佳模式的DCT变换结果进行量化,并对量化结果进行累加,将累 加的结果作为帧内色度最佳预测代价;3d)对帧内色度最佳预测代价与帧内亮度最佳预测代价求和,将求和的结果作为 当前宏块的最佳帧内预测代价;(4)帧间最佳预测方式选择步骤4a)读取当前宏块的亮度和色度原始数据以及帧间对亮度、色度的前向预测、后向 预测和双向预测数据;4b)将亮度和色度的原始数据与亮度、色度的前向预测、后向预测和双向预测数据 分别进行相减,得到该三种预测方式的残差,并对前向预测、后向预测和双向预测得到的三 种残差依次进行DCT变换、量化和预测代价计算,得到三种预测方式各自对应的预测代价, 并对DCT变换结果进行寄存;4c)对上述三种预测代价进行比较,选择代价值最小的预测代价作为帧间最佳预 测代价,并将该预测代价所对应的预测方式作为帧间最佳预测方式;(5)对帧间最佳预测方式的代价和帧内最佳预测方式的代价进行比较,选择代价 值小的预测代价所对应的预测方式作为当前宏块的最佳预测方式;(6)对当前宏块的最佳预测方式的DCT变换结果重新进行量化,将量化结果以及 宏块的模式、坐标信息进行输出,用于熵编码;同时对最佳预测方式的量化结果进行反量 化、反DCT变换和重建,将重建结果同时进行寄存和输出,分别用于对下一个宏块的帧内预 测参考和去块效应滤波。本发明与现有技术对比,具有以下优点
第一,两路并行预测,加速了宏块的编码速度。本发明采用两路并行预测,一路用于帧内4X4亮度预测,一路用于帧内16X16 亮度预测和帧内8X8色度预测,由于帧内4X4亮度预测最为复杂,预测所需要的时钟周 期数也最多,因此,采用并行预测就可以实现在进行帧内4X4亮度预测的同时,完成帧内 16X16亮度预测和帧内8X8色度预测,大幅度减小了一个宏块的编码周期;第二,易于FPGA实现本发明考虑到帧内16X16亮度预测与帧内8X8色度预测各自所对应的四种预测 模式的相似性,将帧内16X16亮度预测与帧内8X8色度预测合并处理,降低了预测控制的 复杂度;同时,本发明所涉及到的帧内最佳预测方式选择、帧间最佳预测方式选择以及当前 宏块的最佳预测方式选择的方法只使用了求和和相减操作,不需要使用复杂的乘法操作;第三,能够充分复用资源本发明对资源的复用主要体现在首先,对当前宏块进行帧内预测之前对亮度和 色度原始数据进行缓存,在进行残差计算时,能够从同一个RAM中读取原始数据;其次,依 次完成帧内16X16亮度预测最佳模式的选择、帧内8X8色度预测最佳模式的选择、帧间预 测最佳模式的选择,这样安排就可以使用相同的DCT变换和量化模块进行相应的DCT变换 和量化操作。


本发明的特征及优点通过以下附图和实施例进一步说明图1是现有H. 264标准编码系统框图;图2是现有H. 264标准子块的扫描示意图;图3是本发明的宏块编码方法流程图;图4是本发明数据缓存示意图;图5是本发明的帧内预测框图。
具体实施例方式参见图3,本发明包括如下步骤步骤1,以16X16的宏块为基本编码单元,缓存原始数据和帧间预测数据。参见图4,本步骤的具体实现如下1. 1)使用两个RAM进行乒乓操作,缓存当前运动估计输出的原始数据,如图中① 所示,每个RAM的大小为48X64bit,缓存的数据为32X64bit的亮度数据和16X64bit色 度数据,其中,一个64bit的数据包括8个像素,一个时钟周期完成一个64bit数据的缓存; 同时使用另外两个RAM进行乒乓操作,缓存帧间对亮度和色度的前向预测、后向预测以及 双向预测数据,如图中②所示,每个RAM的大小*^8X32bit,其中缓存的前向亮度和色度 预测数据为96 X 32bit,缓存的后向亮度和色度预测数据为96 X 32bit,缓存的双向亮度和 色度预测数据为96X32bit,每一个32bit的数据包括4个像素的预测值,一个时钟周期完 成一个32bit数据的缓存;1.2)使用一个存储大小为64X32bit的RAM,如图中③所示,对用于帧内4X4亮 度预测的亮度原始数据进行二次缓存,其中,每一个32bit的数据包括4个像素,一个时钟周期完成一个32bit数据的缓存。步骤2,两路并行预测,一路进行帧内4 X 4亮度预测,一路进行帧内16 X 16亮度预 测和帧内8X8色度预测。参照图5,本步骤的具体实现如下2. 1)宏块级参考数据读写使用一个18X64bit的内部RAM,存储宏块级的左参考像素、上参考像素以及右上 参考像素,这些参考像素包括用于帧内4X4亮度预测和帧内16X 16亮度预测亮度参考像 素以及用于帧内8X8色度预测的色度参考数据。在一个宏块预测开始之前,从参考数据 RAM中读取当前宏块的宏块级参考像素,当完成一个宏块的最佳模式重建后,将重建像素中 处于宏块最右侧一列的16个像素作为下一个宏块的左参考像素,同时从外部存储设备中 获得下一个宏块的上参考像素和右上参考像素将用于下一个宏块的预测,将这些参考像素 写回参考数据RAM;2. 2)帧内4X4亮度预测将16X 16宏块分成16个4X4的子块,按照zig-zag扫描顺序,依次完成对这16 个子块的垂直、水平、DC、下左对角线、下右对角线、右垂直、下水平、左垂直和上水平九种模 式的预测,预测结束后通过DCT变换选择出帧内4X4亮度预测的最佳预测模式,并对子块 最佳预测模式的结果进行重建,具体通过以下模块实现2. 2. 1)对 16 X 16 宏块分割如图2所示,在当前宏块进行预测操作之前,将当前宏块分割成16个4X4的子 块,其中,每一个子块包括16个像素,并按照zig-zag扫描顺序将这些子块依次标记为0 15 ;
权利要求
1.一种高性能宏块编码实现方法,包括(1)以16X16的宏块为基本编码单元,先缓存当前宏块的亮度和色度原始数据以及帧 间对亮度、色度前向预测、后向预测和双向预测数据,再对亮度原始数据进行二次缓存;(2)帧内预测步骤2a)对当前宏块开始两路并行预测,一路进行帧内4X4亮度预测,即首先将16X16的 宏块分成16个4X4的子块,然后按照zig-zag扫描顺序,依次完成对这16个子块的水平、 垂直、DC、对角线左、对角线右、水平上、水平下、垂直左和垂直右九种模式的预测;另一路直 接对16X16的亮度块和对应的8X8色度块依次完成水平、垂直、DC和平面四种模式的预 测;2b)两路预测结束后,通过DCT变换分别得到帧内4X4亮度预测方式、帧内16X16的 亮度预测方式和帧内8 X 8色度预测方式的最佳预测模式,并对最佳模式对应的DCT变换结 果进行寄存;(3)帧内最佳预测方式选择步骤3a)对帧内4X4亮度预测和帧内16X 16亮度预测的最佳模式的DCT变换结果依次进 行量化操作,并对量化结果分别进行累加,将累加的结果作为帧内4X4亮度预测代价和帧 内16 X 16亮度预测代价;3b)将上述两种预测代价进行比较,选择代价值小的预测代价作为当前宏块帧内亮度 最佳预测代价,并将该代价值小的预测代价所对应的预测方式作为当前宏块的帧内亮度最 佳预测方式;3c)对帧内色度最佳模式的DCT变换结果进行量化,并对量化结果进行累加,将累加的 结果作为帧内色度最佳预测代价;3d)对帧内色度最佳预测代价与帧内亮度最佳预测代价求和,将求和的结果作为当前 宏块的最佳帧内预测代价;(4)帧间最佳预测方式选择步骤4a)读取当前宏块的亮度和色度原始数据以及帧间对亮度、色度的前向预测、后向预测 和双向预测数据;4b)将亮度和色度的原始数据与亮度、色度的前向预测、后向预测和双向预测数据分别 进行相减,得到该三种预测方式的残差,并对前向预测、后向预测和双向预测得到的三种残 差依次进行DCT变换、量化和预测代价计算,得到三种预测方式各自对应的预测代价,并对 DCT变换结果进行寄存;4c)对上述三种预测代价进行比较,选择代价值最小的预测代价作为帧间最佳预测代 价,并将该预测代价所对应的预测方式作为帧间最佳预测方式;(5)对帧间最佳预测方式的代价和帧内最佳预测方式的代价进行比较,选择代价值小 的预测代价所对应的预测方式作为当前宏块的最佳预测方式;(6)对当前宏块的最佳预测方式的DCT变换结果重新进行量化,将量化结果以及宏块 的模式、坐标信息进行输出,用于熵编码;同时对最佳预测方式的量化结果进行反量化、反 DCT变换和重建,将重建结果同时进行寄存和输出,分别用于对下一个宏块的帧内预测参考 和去块效应滤波。
2.根据权利要求1所述的宏块编码实现方法,其中步骤(1)所述的缓存当前宏块的亮度和色度原始数据以及帧间对亮度、色度前向预测、后向预测和双向预测数据,按如下步骤 进行首先,使用两组RAM进行乒乓操作,缓存当前运动估计输出的原始数据,每组RAM的大 小为48 X 64bit,缓存的数据为32 X 64bit的亮度数据和16 X 64bit色度数据;同时使用另 外两组RAM进行乒乓操作,缓存帧间对亮度和色度的前向预测、后向预测以及双向预测数 据,每组大小为^8X32bit,其中缓存的前向亮度和色度预测数据为96X32bit,缓存的后 向亮度和色度预测数据为96 X 32bit,缓存的双向亮度和色度预测数据为96X32bit ;其次,使用一个存储大小为64X 32bit的RAM,对用于帧内4X4亮度预测的亮度原始数 据进行二次缓存。
3.根据权利要求1所述的宏块编码实现方法,其中步骤Ob)所述的通过DCT变换分别 得到帧内4X4亮度预测方式、帧内16X16的亮度预测方式和帧内8X8色度预测方式的最 佳预测模式,按如下步骤进行(1)帧内4X4亮度预测方式的最佳预测模式选择对一个子块九种预测模式的预测结 果依次进行DCT变换,并对每种模式对应的DCT变换结果分别取绝对值求和,将这九种模式 得到的和进行比较,选择最小的和所对应的模式作为当前子块的最佳模式,并用4bit数据 进行表示,按照这种方法,依次完成16个子块的最佳模式选择,将得到的16个子块的最佳 模式进行组合得到一个16X4bit的数据,并将这个16X4bit的数据作为当前宏块的帧内 4X4亮度预测最佳模式;(2)帧内16X16亮度预测方式的最佳预测模式选择对16X16亮度预测的四种模式 预测结果依次进行DCT变换,并对每种模式对应的DCT变换结果分别取绝对值求和,将这四 种模式得到的和进行比较,选择最小的和所对应的模式作为当前宏块的帧内16X16亮度 预测最佳模式;(3)帧内8X8色度预测方式的最佳预测模式选择对8X8色度预测的四种模式预测 结果依次进行DCT变换,并对每种模式对应的DCT变换结果分别取绝对值求和,将这四种模 式得到的和进行比较,选择最小的和所对应的模式作为当前宏块的帧内8X8色度预测最 佳模式。
4.根据权利要求1所述的宏块编码实现方法,其中步骤(3a)所述的对帧内4X4亮度 预测和帧内16 X 16亮度预测的最佳模式的DCT变换结果依次进行量化操作,按如下量化公 式进行量化
5.根据权利要求1所述的宏块编码实现方法,其中步骤Gb)所述的对前向预测、后向 预测和双向预测得到的三种残差依次进行DCT变换、量化和预测代价计算,得到三种预测 方式各自对应的预测代价,按如下步骤进行(1)对前向预测、后向预测和双向预测得到的三种残差利用如下矩阵计算公式分别进 行DCT变换
全文摘要
本发明公开了一种高性能宏块编码的实现方法,主要解决现有基于硬件实现的宏块编码方法,处理速度慢、实现复杂、资源占用多的问题。其实现步骤是(1)对原始数据和帧间预测数据进行缓存;(2)对当前宏块完成两路并行帧内预测;(3)根据帧内预测结果,选择出帧内预测的最佳方式及其代价;(4)获得帧间预测最佳方式及其代价;(5)比较帧内和帧间最佳方式的代价,获得当前宏块的最佳预测方式;(6)对最佳预测方式DCT变换结果进行量化,分别用于熵编码和重建,并将重建结果同时进行寄存和输出。本发明具有编码速度快、易于FPGA实现、资源充分复用的优点,可用于视频编码系统,特别是大分辨率的视频编码系统。
文档编号H04N7/26GK102065298SQ201110002648
公开日2011年5月18日 申请日期2011年1月5日 优先权日2011年1月5日
发明者仵小波, 奉玉丽, 宋锐, 李云松, 李宏伟, 杜建超, 王养利, 肖嵩, 贾媛, 韩晶晶 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1