CN102065298B - 高性能宏块编码实现方法 - Google Patents

高性能宏块编码实现方法 Download PDF

Info

Publication number
CN102065298B
CN102065298B CN 201110002648 CN201110002648A CN102065298B CN 102065298 B CN102065298 B CN 102065298B CN 201110002648 CN201110002648 CN 201110002648 CN 201110002648 A CN201110002648 A CN 201110002648A CN 102065298 B CN102065298 B CN 102065298B
Authority
CN
China
Prior art keywords
prediction
frame
cost
mode
dct transform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201110002648
Other languages
English (en)
Other versions
CN102065298A (zh
Inventor
宋锐
李云松
仵小波
贾媛
王养利
肖嵩
杜建超
李宏伟
奉玉丽
韩晶晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN 201110002648 priority Critical patent/CN102065298B/zh
Publication of CN102065298A publication Critical patent/CN102065298A/zh
Application granted granted Critical
Publication of CN102065298B publication Critical patent/CN102065298B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种高性能宏块编码的实现方法,主要解决现有基于硬件实现的宏块编码方法,处理速度慢、实现复杂、资源占用多的问题。其实现步骤是:(1)对原始数据和帧间预测数据进行缓存;(2)对当前宏块完成两路并行帧内预测;(3)根据帧内预测结果,选择出帧内预测的最佳方式及其代价;(4)获得帧间预测最佳方式及其代价;(5)比较帧内和帧间最佳方式的代价,获得当前宏块的最佳预测方式;(6)对最佳预测方式DCT变换结果进行量化,分别用于熵编码和重建,并将重建结果同时进行寄存和输出。本发明具有编码速度快、易于FPGA实现、资源充分复用的优点,可用于视频编码系统,特别是大分辨率的视频编码系统。

Description

高性能宏块编码实现方法
技术领域
本发明涉及视频图像处理领域,尤其涉及一种视频编码的实现方法,可用于H.264视频编码系统的视频压缩处理。 
背景技术
未来社会是信息化的社会,数字化的信息,尤其是数字化后的视频和音频信息,有一系列优点,如直观性,确切性,高效性,广泛性等,但是信息量太大,给信息的存储和传输造成很大的困难,成为阻碍人类获取和使用有效信息的瓶颈之一。要使视频信息得到有效的应用,必须解决编码压缩率和解码图像质量的问题。因此,研究和开发新型有效的多媒体数据压缩编码方法,以压缩的形式存储和传输这些数据将是最好的选择。在视频编码标准H.264中,如图1所示,视频数据按照宏块单位进行编码:首先对当前宏块进行帧内预测和帧间预测,选择出最佳的预测模式,由当前宏块和最佳模式得到的预测宏块产生残差宏块,对其进行DCT变换、量化;对量化系数进行重排序后进行熵编码;将编码后的结果递交到网络层进行传输;同时为了保证编解码的一致性,对量化系数进行反量化、反DCT变换、反预测、去块效应滤波,将处理结果用作后续图像的编码参考。 
H.264的实际应用中,主要包括运动估计、宏块编码、熵编码和去块效应滤波等几个模块。针对宏块编码,目前提出了很多基于模式选择的快速算法,用于提高系统的处理速度,这些算法的主要思想有:基于边界检测、对预测模式进行分类、应用直方图和提前终止等,相对于标准的率失真算法,这些算法的计算量都有大幅度的下降,但是它们都是基于软件实现的,同时对图像质量都有一定程度的影响,在硬件实现时,这些算法过于复杂,且没有充分考虑硬件的并行处理能力和资源的复用,无法满足实时性的要求。 
发明内容
本发明的目的在于针对上述已有技术的不足,提供一种高性能宏块编码的实现方法,与RDO算法相比,以保证图像质量在没有任何下降的情况下,提高H.264视频编码的实时处理能力。 
本发明的目的是这样实现的: 
一、术语说明 
子块:大小为4×4的像素块。 
宏块:图像被分为若干个16×16的块,每一个块就称为一个宏块。 
量化系数:像素进行量化后的值。 
zig-zag扫描:按照“Z”字形进行扫描,具体如图2所示。 
残差数据:原始像素减去预测像素得到的差值数据。 
残差宏块:预测宏块与当前宏块对应位置的像素值相减得到的宏块数据。 
二、实现方案 
本发明的宏块编码方法,包括以下步骤: 
(1)以16×16的宏块为基本编码单元,先缓存当前宏块的亮度和色度原始数据以及帧间对亮度、色度前向预测、后向预测和双向预测数据,再对亮度原始数据进行二次缓存; 
(2)帧内预测步骤 
2a)对当前宏块开始两路并行预测,一路进行帧内4×4亮度预测,即首先将16×16的宏块分成16个4×4的子块,然后按照zig-zag扫描顺序,依次完成对这16个子块的垂直、水平、DC、下左对角线、下右对角线、右垂直、下水平、左垂直和上水平九种模式的预测;另一路直接对16×16的亮度块和对应的8×8色度块依次完成垂直、水平、DC和平面四种模式的预测; 
2b)两路预测结束后,通过DCT变换分别得到帧内4×4亮度预测方式、帧内16×16的亮度预测方式和帧内8×8色度预测方式的最佳预测模式,并对最佳模式对应的DCT变换结果进行寄存; 
(3)帧内最佳预测方式选择步骤 
3a)对帧内4×4亮度预测和帧内16×16亮度预测的最佳模式的DCT变换结果依次进行量化操作,并对量化结果分别进行累加,将累加的结果作为帧内4×4亮度预测代价和帧内16×16亮度预测代价; 
3b)将上述两种预测代价进行比较,选择代价值小的预测代价作为当前宏块帧内亮度最佳预测代价,并将该代价值小的预测代价所对应的预测方式作为当前宏块的帧内亮度最佳预测方式; 
3c)对帧内色度最佳模式的DCT变换结果进行量化,并对量化结果进行累加,将累加的结果作为帧内色度最佳预测代价; 
3d)对帧内色度最佳预测代价与帧内亮度最佳预测代价求和,将求和的结果作为当前宏块的最佳帧内预测代价; 
(4)帧间最佳预测方式选择步骤 
4a)读取当前宏块的亮度和色度原始数据以及帧间对亮度、色度的前向预测、后向预测和双向预测数据; 
4b)将亮度和色度的原始数据与亮度、色度的前向预测、后向预测和双向预测数据分别进行相减,得到该三种预测方式的残差,并对前向预测、后向预测和双向预测得到的三种残差依次进行DCT变换、量化和预测代价计算,得到三种预测方式各自对应的预测代价,并对DCT变换结果进行寄存; 
4c)对上述三种预测代价进行比较,选择代价值最小的预测代价作为帧间最佳预测代价,并将该预测代价所对应的预测方式作为帧间最佳预测方式; 
(5)对帧间最佳预测方式的代价和帧内最佳预测方式的代价进行比较,选择代价值小的预测代价所对应的预测方式作为当前宏块的最佳预测方式; 
(6)对当前宏块的最佳预测方式的DCT变换结果重新进行量化,将量化结果以及宏块的模式、坐标信息进行输出,用于熵编码;同时对最佳预测方式的量化结果进行反量化、反DCT变换和重建,将重建结果同时进行寄存和输出,分别用于对下一个宏块的帧内预测参考和去块效应滤波。 
本发明与现有技术对比,具有以下优点: 
第一,两路并行预测,加速了宏块的编码速度。 
本发明采用两路并行预测,一路用于帧内4×4亮度预测,一路用于帧内16×16亮度预测和帧内8×8色度预测,由于帧内4×4亮度预测最为复杂,预测所需要的时 钟周期数也最多,因此,采用并行预测就可以实现在进行帧内4×4亮度预测的同时,完成帧内16×16亮度预测和帧内8×8色度预测,大幅度减小了一个宏块的编码周期; 
第二,易于FPGA实现 
本发明考虑到帧内16×16亮度预测与帧内8×8色度预测各自所对应的四种预测模式的相似性,将帧内16×16亮度预测与帧内8×8色度预测合并处理,降低了预测控制的复杂度;同时,本发明所涉及到的帧内最佳预测方式选择、帧间最佳预测方式选择以及当前宏块的最佳预测方式选择的方法只使用了求和和相减操作,不需要使用复杂的乘法操作; 
第三,能够充分复用资源 
本发明对资源的复用主要体现在:首先,对当前宏块进行帧内预测之前对亮度和色度原始数据进行缓存,在进行残差计算时,能够从同一个RAM中读取原始数据;其次,依次完成帧内16×16亮度预测最佳模式的选择、帧内8×8色度预测最佳模式的选择、帧间预测最佳模式的选择,这样安排就可以使用相同的DCT变换和量化模块进行相应的DCT变换和量化操作。 
附图说明
本发明的特征及优点通过以下附图和实施例进一步说明: 
图1是现有H.264标准编码系统框图; 
图2是现有H.264标准子块的扫描示意图; 
图3是本发明的宏块编码方法流程图; 
图4是本发明数据缓存示意图; 
图5是本发明的帧内预测框图。 
具体实施方式
参见图3,本发明包括如下步骤: 
步骤1,以16×16的宏块为基本编码单元,缓存原始数据和帧间预测数据。参 
见图4,本步骤的具体实现如下: 
1.1)使用两个RAM进行乒乓操作,缓存当前运动估计输出的原始数据,如图中①所示,每个RAM的大小为48×64bit,缓存的数据为32×64bit的亮度数据和16×64bit色度数据,其中,一个64bit的数据包括8个像素,一个时钟周期完成一个64bit数据的缓存;同时使用另外两个RAM进行乒乓操作,缓存帧间对亮度和色度的前向预测、 后向预测以及双向预测数据,如图中②所示,每个RAM的大小为288×32bit,其中缓存的前向亮度和色度预测数据为96×32bit,缓存的后向亮度和色度预测数据为96×32bit,缓存的双向亮度和色度预测数据为96×32bit,每一个32bit的数据包括4个像素的预测值,一个时钟周期完成一个32bit数据的缓存; 
1.2)使用一个存储大小为64×32bit的RAM,如图中③所示,对用于帧内4×4亮度预测的亮度原始数据进行二次缓存,其中,每一个32bit的数据包括4个像素,一个时钟周期完成一个32bit数据的缓存。 
步骤2,两路并行预测,一路进行帧内4×4亮度预测,一路进行帧内16×16亮度预测和帧内8×8色度预测。 
参照图5,本步骤的具体实现如下: 
2.1)宏块级参考数据读写 
使用一个18×64bit的内部RAM,存储宏块级的左参考像素、上参考像素以及右上参考像素,这些参考像素包括用于帧内4×4亮度预测和帧内16×16亮度预测亮度参考像素以及用于帧内8×8色度预测的色度参考数据。在一个宏块预测开始之前,从参考数据RAM中读取当前宏块的宏块级参考像素,当完成一个宏块的最佳模式重建后,将重建像素中处于宏块最右侧一列的16个像素作为下一个宏块的左参考像素,同时从外部存储设备中获得下一个宏块的上参考像素和右上参考像素将用于下一个宏块的预测,将这些参考像素写回参考数据RAM; 
2.2)帧内4×4亮度预测 
将16×16宏块分成16个4×4的子块,按照zig-zag扫描顺序,依次完成对这16个子块的垂直、水平、DC、下左对角线、下右对角线、右垂直、下水平、左垂直和上水平九种模式的预测,预测结束后通过DCT变换选择出帧内4×4亮度预测的最佳预测模式,并对子块最佳预测模式的结果进行重建,具体通过以下模块实现: 
2.2.1)对16×16宏块分割 
如图2所示,在当前宏块进行预测操作之前,将当前宏块分割成16个4×4的子块,其中,每一个子块包括16个像素,并按照zig-zag扫描顺序将这些子块依次标记为0~15; 
2.2.2)按照如下公式完成子块的九种模式预测: 
垂直模式:pred(x,y)=p(x,-1); 
水平模式:pred(x,y)=p(-1,y); 
DC模式: pred ( x , y ) = 1 8 [ Σ x = 0 3 p ( x , - 1 ) + Σ y = 0 3 p ( - 1 , y ) ] ;
下左对角线模式: 
pred ( x , y ) = 1 4 [ p ( 6 , - 1 ) + 3 p ( 7 , - 1 ) + 2 ] , x=y=3; 
pred ( x , y ) = 1 4 [ p ( x + y , - 1 ) + 2 p ( x + y + 1 , - 1 ) + p ( x + y + 2 , - 1 ) + 2 ] ,
x=y≠3; 
下右对角线模式: 
pred ( x , y ) = 1 4 [ p ( x - y - 2 , - 1 ) + 2 p ( x - y - 1 , - 1 ) + p ( x - y , - 1 ) + 2 ]
x>y; 
pred ( x , y ) = 1 4 [ p ( - 1 , y - x - 2 ) + 2 p ( - 1 , y - x - 1 ) + p ( - 1 , y - x ) + 2 ] ,
x<y; 
pred ( x , y ) = 1 4 [ p ( 0 , - 1 ) + 2 p ( - 1 , - 1 ) + p ( - 1,0 ) + 2 ] ,  x=y: 
右垂直模式: 
pred ( x , y ) = 1 2 [ p ( x - 1 2 y - 1 , - 1 ) + p ( x - 1 2 y , - 1 ) + 1 ] ,
2x-y=0,2,4,6; 
pred ( x , y ) = 1 4 [ p ( x - 1 2 y - 2 , - 1 ) + 2 p ( x - 1 2 y - 1 , - 1 ) + p ( x - 1 2 y , - 1 ) + 1 ] ,
2x-y=1,3,5; 
pred ( x , y ) = 1 4 [ p ( - 1 , y - 1 ) + 2 p ( - 1 , y - 2 ) + p ( - 1 , y - 3 ) + 2 ] ,
2x-y≠0,1,2,3,4,5,6; 
下水平模式: 
pred ( x , y ) = 1 2 [ p ( - 1 , y - 1 2 x - 1 ) + p ( - 1 , y - 1 2 x ) + 1 ] ,
2y-x=0,2,4,6; 
pred ( x , y ) = 1 4 [ p ( - 1 , y - 1 2 x - 2 ) + 2 p ( - 1 , y - 1 2 x - 1 ) + p ( - 1 , y - 1 2 x ) + 2 ] ,
2y-x=1,3,5; 
pred ( x , y ) = 1 4 [ p ( x - 1 , - 1 ) + 2 p ( x - 2 , - 1 ) + p ( x - 3 , - 1 ) + 2 ] ,
2y-x≠0,1,2,3,4,5,6; 
左垂直模式: 
pred ( x , y ) = 1 2 [ p ( x + 1 2 y , - 1 ) + p ( x + 1 2 y + 1 , - 1 ) + 1 ] , y=0,2; 
pred ( x , y ) = 1 4 [ p ( x + 1 2 y , - 1 ) + 2 p ( x + 1 2 y + 1 , - 1 ) + p ( x + 1 2 y + 2 , - 1 ) + 2 ]
y=1,3; 
上水平模式: 
pred ( x , y ) = 1 2 [ p ( - 1 , y + 1 2 x ) + p ( - 1 , y + 1 2 x + 1 ) + 1 ] , x+2y=0,2,4; 
pred ( x , y ) = 1 4 [ p ( - 1 , y + 1 2 x ) + 2 p ( - 1 , y + 1 2 x + 1 ) + p ( - 1 , y + 1 2 x + 2 ) + 2 ]
x+2y=1,3; 
pred ( x , y ) = 1 4 [ p ( - 1 , - 2 ) + 3 p ( - 1,3 ) + 2 ] , x+2y=5; 
pred(x,y)=p(-1,3),        x+2y≠0,1,2,3,4,5; 
上述公式中的pred(x,y)表示预测像素,p(,)表示参考像素,x,y表示当前像素在子块中所处的位置; 
2.2.3)对预测结果进行DCT变换 
当帧内4×4亮度预测操作模块每完成一种模式的预测后,读取预测像素对应位置的原始像素,并对预测像素和原始像素进行相减,得到残差系数矩阵,使用DCT变换模块对残差系数矩阵进行DCT变换,并将变换的结果送给帧内4×4亮度预测最佳模式选择模块,所涉及到的DCT变换按照如下公式完成矩阵运算: 
W = C f X C f T = 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 X 1 2 1 1 1 1 - 1 - 2 1 - 1 - 1 2 1 - 2 1 - 1
其中,W表示DCT变换结果矩阵,Cf表示DCT变换系数矩阵,Cf T表示Cf的转置矩阵,X表示由残差组成的矩阵; 
2.2.4)帧内4×4亮度预测最佳模式选择 
对DCT变换模块得到的一种模式的DCT变换结果W中的每一个像素所对应的变换结果取绝对值求和,将得到的求和结果作为当前模式的的预测代价,并将这个代价与最佳模式预测代价进行比较,如果当前模式的预测代价小于最佳预测模式代价,则将当前模式作为最佳模式,当前模式所对应的代价作为最佳模式代价;如果当前模式的预测代价大于最佳预测模式代价,则不作任何操作,按照这种方法,依次完成九种预测模式的代价计算,当完成所有九种预测操作时,就得到了当前子块的最佳预测模式,并对最佳预测模式的DCT变换结果进行寄存; 
2.2.5)子块最佳预测模式重建 
对当前子块的最佳预测模式的DCT变换结果依次完成量化、反量化、反DCT变换,并对反DCT变换的结果与对应位置的预测像素进行求和,将求和的结果作为对应位置重建像素; 
所涉及到的量化操作按照如下量化公式进行: 
Z ij = round ( W ij Pf Qstep )
其中,i,j表示像素在子块中所处的位置,Zij表示像素(i,j)的量化结果,round表示向上取整运算,Wij表示像素(i,j)的DCT变换结果,PF表示默认量化矩阵,Qstep表示量化步长; 
所涉及到的反量化操作按照如下公式进行: 
Wr(ij)=(WijVij)<<(QP/6) 
其中,Wr(ij)表示像素(i,j)的反量化结果,Vij表示默认反量化矩阵中对应于(i,j)位置的系数,QP表示量化参数; 
所涉及到的反DCT变换操作按照如下公式进行: 
X r = C i T W r C i
其中,Xr表示反变换的结果,Ci表示反变换系数矩阵, 
Figure DEST_PATH_GDA0000048528050000092
表示Ci的转置矩阵,Wr表示反量化结果Wr(ij)组成的反量化矩阵。 
2.3)帧内16×16亮度预测和帧内8×8色度预测 
2.3.1)依次完成帧内16×16亮度预测和帧内8×8色度预测各自所对应的垂直、水平、DC和平面四种模式的预测,其中,垂直、水平和DC模式的预测公式与步骤2.2.2)所述的垂直、水平和DC模式的预测公式一致,平面模式按照如下公式进行预测: 
pred ( x , y ) = 1 32 Clip ( a + b * ( x - 7 ) + ( y - 7 ) + 16 )
其中: 
a=16*(p(-1,15)+p(15,-1)) 
b = 1 64 ( 5 × Σ x = 0 7 ( x + 1 ) ( p ( 8 + x , - 1 ) - p ( 6 - x , - 1 ) ) + 32 )
c = 1 64 ( 5 × Σ y = 0 7 ( y + 1 ) ( p ( - 1,8 + y ) - p ( - 1,6 - y ) ) + 32 )
其中,pred(x,y)表示预测像素,p(,)表示参考像素,x,y表示当前像素在子块中所处的位置,Clip表示取整运算; 
2.3.2)按照2.2.3)所述的DCT变换操作,对帧内16×16亮度预测和帧内8×8色度预测各自所对应的每种预测模式的预测结果分别进行DCT变换; 
2.3.3)对帧内16×16亮度预测每种模式对应的DCT变换结果分别取绝对值求和,将这四种模式得到的和进行比较,选择最小的和所对应的模式作为当前宏块的帧内16×16亮度预测最佳模式,并对最佳模式的DCT变换进行寄存; 
2.3.4)对帧内8×8色度预测每种模式对应的DCT变换结果分别取绝对值求和,将这四种模式得到的和进行比较,选择最小的和所对应的模式作为当前宏块的帧内8×8色度预测最佳模式,并对最佳模式的DCT变换进行寄存。 
步骤3,帧内最佳预测方式选择。 
3.1)帧内4×4亮度预测和帧内16×16亮度预测代价计算 
对帧内4×4亮度预测和帧内16×16亮度预测最佳模式的DCT变换结果依次进行量化操作,并对量化结果分别进行累加,将累加的结果作为帧内4×4亮度预测代价和帧内16×16亮度预测代价,其中,量化操作按照2.2.5)所述的量化公式完成量化; 
3.2)帧内亮度最佳预测方式选择 
将帧内4×4亮度预测代价和帧内16×16亮度预测代价进行比较,选择代价值小的预测代价作为当前宏块帧内亮度最佳预测代价,并将该代价值小的预测代价所对应的预测方式作为当前宏块的帧内亮度最佳预测方式; 
3.3)帧内色度最佳预测方式选择 
对帧内色度最佳模式的DCT变换结果进行量化,并对量化结果进行累加,将累加的结果作为帧内色度最佳预测代价,这里的量化操作,在帧内16×16亮度预测的量化操作完成后,按照2.2.5)所述的量化公式进行量化; 
3.4)帧内最佳预测方式代价获取 
对帧内色度最佳预测方式选择对帧内色度最佳预测代价与帧内亮度最佳预测代价求和,将求和的结果作为当前宏块的最佳帧内预测方式代价。 
步骤4,帧间最佳预测方式选择。 
帧间最佳预测方式选择在帧内预测完成帧内最佳预测模式的选择后进行,具体步骤包括如下: 
4.1)读取原始数据和预测数据 
读取当前宏块的亮度和色度原始数据以及帧间对亮度、色度的前向预测、后向预测和双向预测数据; 
4.2)DCT变换和量化 
将亮度和色度的原始数据与亮度、色度的前向预测、后向预测和双向预测数据分别进行相减,得到该三种预测方式的残差,并对这三种残差依次进行DCT变换和量化,并对DCT变换结果进行寄存,其中,DCT变换采用2.3.3)所述的DCT变换操作完成变换,量化操作采用2.2.5)所述的量化公式完成量化; 
4.3)预测代价计算 
对前向预测、后向预测和双向预测各自对应的量化结果分别累加求和,将这三种预测模式所对应的求和结果作为各自的量化系数代价,对前向预测、后向预测和双向 预测各自对应的运动矢量分别取绝对值求和,并将得到的三种预测模式所对应的求和的结果作为各自的运动矢量代价,依次对前向预测、后向预测和双向预测所得到的各自的量化系数代价和相应的运动矢量代价进行求和,并将得到的三种预测模式所对应的求和的结果作为各自的预测代价; 
4.4)帧间最佳预测方式选择 
对前向预测、后向预测和双向预测所得到的预测代价进行比较,选择代价值小的预测代价作为当前宏块帧间最佳预测代价,并将该代价值小的预测代价所对应的预测方式作为当前宏块的帧间最佳预测方式。 
步骤5,当前宏块最佳预测方式的获取。 
对帧间最佳预测方式的代价和帧内最佳预测方式的代价进行比较,选择代价值小的预测代价所对应的预测方式作为当前宏块的最佳预测方式。 
步骤6,最佳预测方式的量化结果输出以及最佳预测方式的重建。 
对当前宏块的最佳预测方式的DCT变换结果重新进行量化,将量化结果以及宏块的模式、坐标信息进行输出,用于熵编码;同时对最佳预测方式的量化结果进行反量化和反DCT变换,并将反变换的结果与预测像素进行求和,将求和的结果同时进行寄存和输出,分别用于对下一个宏块的帧内预测参考和去块效应滤波,其中,所涉及到的量化、反量化和反DCT变换操作采用2.2.6)所述的量化、反量化和反DCT变换公式完成相应的操作。 
为了使本发明的优点得到进一步的体现,以下是使用本发明方法进行的测试。 
测试条件 
计算机配置环境为Pentium4 2.6Ghz,内存1G,系统windows xp2,xilinx公司FPGA开发工具软件ISE10.1版本,Menter Graphics公司时序仿真软件modeItech6.4e版本。 
硬件平台配置环境为xilinx公司的virtex2-XC2V3000。 
测试内容 
输入176×144,352×288,1280×1024三种不同分辨率视频图像序列,统计本发明在每种分辨率下,对于不同帧类型(I、P、B),平均编码一个宏块使用的时钟周期数以及平均编码帧率,同时统计本发明的资源占用情况。 
测试结果 
利用本发明对不同分辨率视频图像的不同帧类型进行编码,测试结果所下: 
Figure DEST_PATH_GDA0000048528050000121
结果分析 
如上表所示,使用本发明的方法在对视频图像进行编码时,对于不同分辨率的各种帧类型,每编码一个宏块的时钟周期数都有大幅度的减小,加速了宏块的编码速度;对于小分辨率的图像,占用资源少,编码帧数多,即使对于1280×1024的大分辨率图像,也只占用了23.9%的slice资源,并且可以达到16fps的帧率,因此本发明提出的宏块编码方法达到了高性能编码的目的。 

Claims (5)

1.一种高性能宏块编码实现方法,包括:
(1)以16×16的宏块为基本编码单元,先缓存当前宏块的亮度和色度原始数据以及帧间对亮度、色度前向预测、后向预测和双向预测数据,再对亮度原始数据进行二次缓存;
(2)帧内预测步骤
2a)对当前宏块开始两路并行预测,一路进行帧内4×4亮度预测,即首先将16×16的宏块分成16个4×4的子块,然后按照zig-zag扫描顺序,依次完成对这16个子块的水平、垂直、DC、对角线左、对角线右、水平上、水平下、垂直左和垂直右九种模式的预测;另一路直接对16×16的亮度块和对应的8×8色度块依次完成水平、垂直、DC和平面四种模式的预测;
2b)两路预测结束后,通过DCT变换分别得到帧内4×4亮度预测方式、帧内16×16的亮度预测方式和帧内8×8色度预测方式的最佳预测模式,并对最佳模式对应的DCT变换结果进行寄存;
(3)帧内最佳预测方式选择步骤
3a)对帧内4×4亮度预测和帧内16×16亮度预测的最佳模式的DCT变换结果依次进行量化操作,并对量化结果分别进行累加,将累加的结果作为帧内4×4亮度预测代价和帧内16×16亮度预测代价;
3b)将上述两种预测代价进行比较,选择代价值小的预测代价作为当前宏块帧内亮度最佳预测代价,并将该代价值小的预测代价所对应的预测方式作为当前宏块的帧内亮度最佳预测方式;
3c)对帧内色度最佳模式的DCT变换结果进行量化,并对量化结果进行累加,将累加的结果作为帧内色度最佳预测代价;
3d)对帧内色度最佳预测代价与帧内亮度最佳预测代价求和,将求和的结果作为当前宏块的最佳帧内预测代价;
(4)帧间最佳预测方式选择步骤
4a)读取当前宏块的亮度和色度原始数据以及帧间对亮度、色度的前向预测、后向预测和双向预测数据;
4b)将亮度和色度的原始数据与亮度、色度的前向预测、后向预测和双向预测数据分别进行相减,得到该三种预测方式的残差,并对前向预测、后向预测和双向预测得到的三种残差依次进行DCT变换、量化和预测代价计算,得到三种预测方式各自对应的预测代价,并对DCT变换结果进行寄存;
4c)对上述三种预测代价进行比较,选择代价值最小的预测代价作为帧间最佳预测代价,并将该预测代价所对应的预测方式作为帧间最佳预测方式;
(5)对帧间最佳预测方式的代价和帧内最佳预测方式的代价进行比较,选择代价值小的预测代价所对应的预测方式作为当前宏块的最佳预测方式;
(6)对当前宏块的最佳预测方式的DCT变换结果重新进行量化,将量化结果以及宏块的模式、坐标信息进行输出,用于熵编码;同时对最佳预测方式的量化结果进行反量化、反DCT变换和重建,将重建结果同时进行寄存和输出,分别用于对下一个宏块的帧内预测参考和去块效应滤波。
2.根据权利要求1所述的宏块编码实现方法,其中步骤(1)所述的缓存当前宏块的亮度和色度原始数据以及帧间对亮度、色度前向预测、后向预测和双向预测数据,按如下步骤进行:
首先,使用两组RAM进行乒乓操作,缓存当前运动估计输出的原始数据,每组RAM的大小为48×64bit,缓存的数据为32×64bit的亮度数据和16×64bit色度数据;同时使用另外两组RAM进行乒乓操作,缓存帧间对亮度和色度的前向预测、后向预测以及双向预测数据,每组大小为288×32bit,其中缓存的前向亮度和色度预测数据为96×32bit,缓存的后向亮度和色度预测数据为96×32bit,缓存的双向亮度和色度预测数据为96×32bit;
其次,使用一个存储大小为64×32bit的RAM,对用于帧内4×4亮度预测的亮度原始数据进行二次缓存。
3.根据权利要求1所述的宏块编码实现方法,其中步骤(2b)所述的通过DCT变换分别得到帧内4×4亮度预测方式、帧内16×16的亮度预测方式和帧内8x8色度预测方式的最佳预测模式,按如下步骤进行:
(1)帧内4×4亮度预测方式的最佳预测模式选择:对一个子块九种预测模式的预测结果依次进行DCT变换,并对每种模式对应的DCT变换结果分别取绝对值求和,将这九种模式得到的和进行比较,选择最小的和所对应的模式作为当前子块的最佳模式,并用4bit数据进行表示,按照这种方法,依次完成16个子块的最佳模式选择,将得到的16个子块的最佳模式进行组合得到一个16×4bit的数据,并将这个16×4bit的数据作为当前宏块的帧内4×4亮度预测最佳模式;
(2)帧内16×16亮度预测方式的最佳预测模式选择:对16×16亮度预测的四种模式预测结果依次进行DCT变换,并对每种模式对应的DCT变换结果分别取绝对值求和,将这四种模式得到的和进行比较,选择最小的和所对应的模式作为当前宏块的帧内16×16亮度预测最佳模式;
(3)帧内8×8色度预测方式的最佳预测模式选择:对8×8色度预测的四种模式预测结果依次进行DCT变换,并对每种模式对应的DCT变换结果分别取绝对值求和,将这四种模式得到的和进行比较,选择最小的和所对应的模式作为当前宏块的帧内8×8色度预测最佳模式。
4.根据权利要求1所述的宏块编码实现方法,其中步骤(3a)所述的对帧内4×4亮度预测和帧内16×16亮度预测的最佳模式的DCT变换结果依次进行量化操作,按如下量化公式进行量化:
Z ij = round ( W ij PF Qstep )
其中,i,j表示像素在子块中所处的位置,Zij表示像素(i,j)的量化结果,round表示向上取整运算,Wij表示像素(i,j)的DCT变换结果,PF表示默认量化矩阵,Qstep表示量化步长。
5.根据权利要求1所述的宏块编码实现方法,其中步骤(4b)所述的对前向预测、后向预测和双向预测得到的三种残差依次进行DCT变换、量化和预测代价计算,得到三种预测方式各自对应的预测代价,按如下步骤进行:
(1)对前向预测、后向预测和双向预测得到的三种残差利用如下矩阵计算公式分别进行DCT变换:
W = C f XC f T = 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 X 1 2 1 1 1 1 - 1 - 2 1 - 1 - 1 2 1 - 2 1 - 1
其中,W表示DCT变换结果矩阵,Cf表示DCT变换系数矩阵,Cf T表示Cf的转置矩阵,X表示由残差组成的矩阵;
(2)按照量化公式:
Figure FDA00001608068200041
对W矩阵中的每一个像素的变
换结果Wij进行量化操作得到量化结果Zij,并对三种预测模式得到的Zij分别累加求和,将这三种预测模式所对应的求和结果作为各自的量化系数代价果,其中,i,j表示像素在子块中所处的位置,Zij表示像素(i,j)的量化结果,round表示向上取整运算,Wij表示像素(i,j)的DCT变换结果,PF表示默认量化矩阵,Qstep表示量化步长;
(3)对前向预测、后向预测和双向预测各自对应的运动矢量分别取绝对值求和,并将得到的三种预测模式所对应的求和的结果作为各自的运动矢量代价;
(4)依次对前向预测、后向预测和双向预测所得到的各自的量化系数代价和相应的运动矢量代价进行求和,并将得到的三种预测模式所对应的求和的结果作为各自的预测代价。
CN 201110002648 2011-01-05 2011-01-05 高性能宏块编码实现方法 Expired - Fee Related CN102065298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110002648 CN102065298B (zh) 2011-01-05 2011-01-05 高性能宏块编码实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110002648 CN102065298B (zh) 2011-01-05 2011-01-05 高性能宏块编码实现方法

Publications (2)

Publication Number Publication Date
CN102065298A CN102065298A (zh) 2011-05-18
CN102065298B true CN102065298B (zh) 2012-10-24

Family

ID=44000365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110002648 Expired - Fee Related CN102065298B (zh) 2011-01-05 2011-01-05 高性能宏块编码实现方法

Country Status (1)

Country Link
CN (1) CN102065298B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015100514A1 (en) * 2013-12-30 2015-07-09 Qualcomm Incorporated Simplification of delta dc residual coding in 3d video coding

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102364950B (zh) * 2011-11-17 2014-09-10 武汉天喻信息产业股份有限公司 基于h.264/avc标准的帧内预测模式快速选择方法及装置
KR20130058524A (ko) * 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
CN102523454B (zh) * 2012-01-02 2014-06-04 西安电子科技大学 利用3d字典消除3d播放系统中块效应的方法
CN104322064A (zh) 2012-04-16 2015-01-28 韩国电子通信研究院 编码方法和解码方法以及使用其的设备
CN102724511A (zh) * 2012-06-28 2012-10-10 北京华控软件技术有限公司 云转码压缩系统和方法
CN104041044B (zh) * 2012-12-28 2017-11-17 华为技术有限公司 视频编码方法和装置
WO2016178880A1 (en) * 2015-05-06 2016-11-10 NGCodec Inc. Intra prediction processor with reduced cost block partitioning and refined intra mode selection
CN109922340B (zh) 2017-12-13 2021-10-15 华为技术有限公司 图像编解码方法、装置、系统及存储介质
CN108337508B (zh) * 2018-01-29 2021-09-17 珠海市杰理科技股份有限公司 帧内预测装置和方法
CN111787320B (zh) * 2020-07-03 2022-02-08 北京博雅慧视智能技术研究院有限公司 一种变换编码系统和方法
CN113301335A (zh) * 2021-05-28 2021-08-24 上海国茂数字技术有限公司 视频信号的编码和解码方法
CN113938690B (zh) * 2021-12-03 2023-10-31 北京达佳互联信息技术有限公司 视频编码方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252695A (zh) * 2008-04-15 2008-08-27 中国科学院计算技术研究所 一种视频编码器及其帧内预测模式选择方法
CN101640802A (zh) * 2009-08-28 2010-02-03 北京工业大学 基于宏块特征和统计特性的视频帧间压缩编码方法
CN101867818A (zh) * 2008-06-06 2010-10-20 浙江大学 宏块模式的选择方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060114995A1 (en) * 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
US7953284B2 (en) * 2007-03-29 2011-05-31 James Au Selective information handling for video processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252695A (zh) * 2008-04-15 2008-08-27 中国科学院计算技术研究所 一种视频编码器及其帧内预测模式选择方法
CN101867818A (zh) * 2008-06-06 2010-10-20 浙江大学 宏块模式的选择方法和装置
CN101640802A (zh) * 2009-08-28 2010-02-03 北京工业大学 基于宏块特征和统计特性的视频帧间压缩编码方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015100514A1 (en) * 2013-12-30 2015-07-09 Qualcomm Incorporated Simplification of delta dc residual coding in 3d video coding
US10230983B2 (en) 2013-12-30 2019-03-12 Qualcomm Incorporated Simplification of delta DC residual coding in 3D video coding

Also Published As

Publication number Publication date
CN102065298A (zh) 2011-05-18

Similar Documents

Publication Publication Date Title
CN102065298B (zh) 高性能宏块编码实现方法
CN100536573C (zh) 基于方向的dc预测方法及用于视频编码的帧内预测方法
CN101356818B (zh) 图像编码/解码方法和设备
CN104883578B (zh) 对帧内预测模式进行解码的方法
CN101710993B (zh) 基于块的自适应超分辨率视频处理方法及系统
CN103546749B (zh) 利用残差系数分布特征和贝叶斯定理优化hevc残差编码的方法
CN102196256B (zh) 一种视频编码方法及装置
CN101783957B (zh) 一种视频预测编码方法和装置
US8526488B2 (en) Video sequence encoding system and algorithms
CN104125466B (zh) 一种基于gpu的hevc并行解码方法
CN106170092A (zh) 用于无损编码的快速编码方法
CN102740077B (zh) 基于h.264/avc标准的帧内预测模式选择方法
CN104539962A (zh) 一种融合视觉感知特征的可分层视频编码方法
CN103634606A (zh) 视频编码方法和装置
CN101841713B (zh) 降低编码码率的视频编码方法及系统
CN106937116A (zh) 基于随机训练集自适应学习的低复杂度视频编码方法
CN106688238A (zh) 改进后的深度图帧内编码的参考像素点选择和滤波
CN107318016A (zh) 一种基于零块分布的hevc帧间预测模式快速判定方法
CN102196272B (zh) 一种p帧编码方法及装置
CN105791829A (zh) 一种基于多核平台的hevc并行帧内预测方法
CN104702959B (zh) 一种视频编码的帧内预测方法及系统
CN101742301B (zh) 一种块模式编码方法及装置
CN1194544C (zh) 基于时空域相关性运动矢量预测的视频编码方法
CN104754337A (zh) 视频编码方法
CN111447452A (zh) 数据编码方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121024

Termination date: 20160105

EXPY Termination of patent right or utility model