CN102377993B - 帧内预测模式选择方法和*** - Google Patents
帧内预测模式选择方法和*** Download PDFInfo
- Publication number
- CN102377993B CN102377993B CN201010248892.9A CN201010248892A CN102377993B CN 102377993 B CN102377993 B CN 102377993B CN 201010248892 A CN201010248892 A CN 201010248892A CN 102377993 B CN102377993 B CN 102377993B
- Authority
- CN
- China
- Prior art keywords
- picture element
- element matrix
- infra
- frame
- prediction
- 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
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了一种帧内预测模式选择方法和***。该方法包括:根据当前宏块的频率特性,选择Intra_4×4、Intra_8×8、以及Intra_16×16之一作为用于当前宏块的帧内预测类型;当选择Intra_16×16时,选择对于Intra_16×16可选的帧内预测模式中预测误差最小的一种作为用于当前宏块的帧内预测模式,当选择Intra_8×8或Intra_4×4时,将当前宏块划分为4个8×8像素矩阵B0~B3或16个4×4像素矩阵D0~D15,并且对于任意一个8×8像素矩阵Bi或任意一个4×4像素矩阵Dj:根据像素矩阵Bi或Dj中的像素之间的相关性,选择用于像素矩阵Bi或Dj的预测方向,并选择在用于像素矩阵Bi或Dj的预测方向中对于Intra_8×8或Intra_4×4可选的帧内预测模式中预测误差最小的一种作为用于像素矩阵Bi或Dj的帧内预测模式。
Description
技术领域
本发明涉及图像处理领域,更具体地涉及一种帧内预测模式选择方法和***。
背景技术
H.264是由国际电信联盟(ITU)和国际标准化组织(ISO)联合开发的最新国际视频编码标准。在H.264标准中,帧内预测是提高压缩效率的一种重要技术,即在编码过程中,对于视频图像中当前要编码的某一个区域(通常为一矩形块),在视频图像中搜索与其最相近似的、且已经编码的块,用该最相近似的、且已经编码的块来预测当前要编码的块。
对于彩***图像,每帧视频图像包括一个亮度分量帧和一个色度分量帧。对于亮度分量帧,H.264标准有两种预测类型:Intra_16×16(即,16×16帧内预测)和Intra_4×4(即,4×4帧内预测)。具体地,Intra_4×4适用于图像细节变化比较明显的区域的帧内预测,Intra_16×16适用于图像平滑区域的帧内预测,其中前者共有9种预测模式可供选择,后者共有4种预测模式可供选择。在支持高精度拓展(FRExt)的H.264标准中,对于亮度分量帧除了可以采用Intra_16×16和Intra_4×4进行预测以外,还可以采用8×8帧内预测(Intra_8×8)进行预测,其中共有9种预测模式可供选择。对于色度分量帧,可以采用与用于亮度分量帧的16×16帧内预测相类似的帧内预测技术。
为了提高编码质量并降低比特率,H.264标准采用了率失真优化(RDO)技术来选择用于对需要编码的宏块进行预测的帧内预测类型和帧内预测模式。而RDO技术需要通过对所有的帧内预测类型和帧内预测模式进行全盘搜索,才能选择出最佳的帧内预测类型和帧内预测模式,所以它的计算复杂度非常高,在硬件设计上难以实现。
发明内容
鉴于以上所述的一个或多个问题,本发明公开了一种新颖的帧内预测模式选择方法和***。
根据本发明实施例的帧内预测模式选择方法,包括:根据当前宏块的频率特性,选择4×4帧内预测、8×8帧内预测、以及16×16帧内预测之一作为用于当前宏块的帧内预测类型;当选择16×16帧内预测作为用于当前宏块的帧内预测类型时,利用对于16×16帧内预测可选的所有帧内预测模式分别对当前宏块进行帧内预测,并选择对于16×16帧内预测可选的帧内预测模式中预测误差最小的一种作为用于当前宏块的帧内预测模式,当选择8×8帧内预测或4×4帧内预测作为用于当前宏块的帧内预测类型时,将当前宏块划分为4个8×8像素矩阵B0~B3或16个4×4像素矩阵D0~D15,并通过以下处理选择用于任意一个8×8像素矩阵Bi或任意一个4×4像素矩阵Dj的帧内预测模式,其中,i和j均为整数,0≤i≤3,0≤j≤15:根据像素矩阵Bi或Dj中的像素之间的相关性,选择用于像素矩阵Bi或Dj的预测方向,利用在用于像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的所有帧内预测模式分别对像素矩阵Bi或Dj进行帧内预测,并选择在用于像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的帧内预测模式中预测误差最小的一种作为用于像素矩阵Bi或Dj的帧内预测模式。
根据本发明实施例的帧内预测模式选择***,包括:预测类型选择单元,被配置为根据当前宏块的频率特性,选择4×4帧内预测、8×8帧内预测、以及16×16帧内预测之一作为用于当前宏块的帧内预测类型;预测模式选择单元,被配置为当预测类型选择单元选择16×16帧内预测作为用于当前宏块的帧内预测类型时,利用对于16×16帧内预测可选的所有帧内预测模式分别对当前宏块进行帧内预测,并选择对于16×16帧内预测可选的帧内预测模式中预测误差最小的一种作为用于当前宏块的帧内预测模式,当预测类型选择单元选择8×8帧内预测或4×4帧内预测作为用于当前宏块的帧内预测类型时,将当前宏块划分为4个8×8像素矩阵B0~B3或16个4×4像素矩阵D0~D15,并通过以下处理选择用于任意一个8×8像素矩阵Bi或任意一个4×4像素矩阵Dj的帧内预测模式,其中,i和j均为整数,0≤i≤3,0≤j≤15:根据像素矩阵Bi或Dj中的像素之间的相关性,选择用于像素矩阵Bi或Dj的预测方向,利用在用于像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的所有帧内预测模式分别对像素矩阵Bi或Dj进行帧内预测,并选择在用于像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的帧内预测模式中预测误差最小的一种作为用于像素矩阵Bi或Dj的帧内预测模式。
根据本发明实施例的帧内预测模式选择方法和***通过相对于传统的帧内预测模式选择方法和***较为简单的方法来确定用于当前宏块中的各个区域的帧内预测模式,在不降低视频图像的编码质量的同时改善了视频图像的编码速率。
附图说明
从下面结合附图对本发明的具体实施方式的描述中可以更好地理解本发明,其中:
图1示出了根据本发明实施例的帧内预测模式选择***的逻辑框图;
图2示出了根据本发明实施例的帧内预测模式选择方法的流程图;
图3示出了预测类型选择单元102的逻辑框图;
图4示出了预测类型选择单元102选择用于当前宏块的帧内预测类型的处理的流程图;
图5示出了在水平、垂直、左下、右下方向中对于Intra_4×4和Intra_8×8可用的帧内预测模式;
图6示出了确定用于像素矩阵Bi的帧内预测类型的处理的流程图;
图7示出了从当前宏块采集16个像素组成的4×4像素矩阵A0的一个示例;
图8示出了变换后的像素矩阵A0’的一个示例;
图9示出了从8×8像素矩阵Bi采集16个像素组成的4×4像素矩阵Ci的一个示例;
图10示出了预测模式选择单元104的逻辑框图;
图11示出了预测模式选择单元选择用于当前宏块中包含的任意一个8×8像素矩阵Bi的预测方向的过程的流程图;
图12示出了预测模式选择单元选择用于当前宏块中包含的任意一个4×4像素矩阵Bi的预测方向的过程的流程图;以及
图13示出了利用像素矩阵Ci或Dj的H01、H10、以及H11确定用于像素矩阵Bi和Dj的预测方向的过程示例。
具体实施方式
下面将详细描述本发明各个方面的特征和示例性实施例。下面的描述涵盖了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说显而易见的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更清楚的理解。本发明绝不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了相关元素、部件和算法的任何修改、替换和改进。
在H.264标准中,用于对亮度分量帧中包含的任意一个亮度宏块进行预测的预测块的大小可以为4×4、8×8、或者16×16。其中,在采用大小为4×4的预测块(即,采用Intra_4×4)对亮度宏块进行预测的情况下,存在9种预测模式可供选择;在采用大小为8×8的预测块(即,采用Intra_8×8)对亮度宏块进行预测的情况下,存在9种预测模式可供选择;并且在采用大小为16×16的预测块(即,采用Intra_16×16)对亮度宏块进行预测的情况下,存在4种预测模式可供选择。
图1示出了根据本发明实施例的帧内预测模式选择***的框图。图2示出了根据本发明实施例的帧内预测模式选择方法的流程图。如图1所示,该帧内预测模式选择***包括预测类型选择单元102和预测模式选择单元104。
在对需要编码的当前宏块进行帧内预测的过程中,预测类型选择单元102根据当前宏块的频率特性,选择4×4帧内预测、8×8帧内预测、以及16×16帧内预测之一作为用于当前宏块的帧内预测类型(即,执行步骤S202)。当预测类型选择单元102选择16×16帧内预测作为用于当前宏块的帧内预测类型时,预测模式选择单元104利用对于16×16帧内预测可选的所有帧内预测模式分别对当前宏块进行帧内预测,并选择对于16×16帧内预测可选的帧内预测模式中预测误差最小的一种作为用于当前宏块的帧内预测模式(即,执行步骤S2042)。当预测类型选择单元102选择8×8帧内预测或4×4帧内预测作为用于当前宏块的帧内预测类型时,预测模式选择单元104将当前宏块划分为4个8×8像素矩阵B0~B3或16个4×4像素矩阵D0~D15,并通过以下处理选择用于任意一个8×8像素矩阵Bi或任意一个4×4像素矩阵Dj的帧内预测模式(其中,i和j均为整数,0≤i≤3,0≤j≤15):根据像素矩阵Bi或Dj中的像素之间的相关性,选择用于像素矩阵Bi或Dj的预测方向;利用在用于像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的所有帧内预测模式分别对像素矩阵Bi或Dj进行帧内预测,并选择在用于像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的帧内预测模式中预测误差最小的一种作为用于像素矩阵Bi或Dj的帧内预测模式(即,执行步骤S2044至S2046)。
这里需要说明的是,在根据本发明实施例的帧内预测模式方法和***中,为了通过较为简单的过程选择出最佳的帧内预测模式从而改善对于视频图像的编码速度,定义以下四种预测方向:水平方向(Horizontaldirection)、垂直方向(Vertical direction)、右下方向(Diagonal Rightdirection)、以及左下方向(Diagonal Left direction)。当选择Intra_4×4或Intra_8×8作为用于当前宏块的帧内预测类型时,从当前宏块划分出的每个4×4或8×8像素矩阵可以适用相同的预测方向,也可以适用不同的预测方向。
图5示出了在水平、垂直、左下、右下方向中对于Intra_4×4和Intra_8×8可用的帧内预测模式。如图5所示,在水平方向中,对于Intra_4×4和Intra_8×8可用的帧内预测模式为Horizontal_Up(水平_上)、Horizontal(水平)、Horizontal_Down(水平_下)、以及DC预测(直流预测)。在垂直方向中,对于Intra_4×4和Intra_8×8可用的帧内预测模式为Vertical_Left(垂直_左)、Vertical(垂直)、Vertical_Right(垂直_右)、以及DC预测。在右下方向中,对于Intra_4×4和Intra_8×8可用的帧内预测模式为Vertical_Right(垂直_右)、Diagonal_Down_Right(对角线_下_右)、Horizontal_Down(水平_下)、以及DC预测。在左下方向中,对于Intra_4×4和Intra_8×8可用的帧内预测模式为Diagonal_Down_Left(对角线_下_左)、Vertical_Left(垂直_左)、Horizontal_Up(对角线_上)、以及DC预测。
下面,对预测类型选择单元102进行详细描述。图3示出了预测类型选择单元102的逻辑框图。图4示出了预测类型选择单元102选择用于当前宏块的帧内预测类型的处理的流程图。如图3所示,预测类型选择单元102包括第一像素采集模块1022、第一变换执行模块1024、第一选择执行模块1026、第一矩阵划分模块1028、第二像素采集模块1030、第二变换执行模块1032、第二选择执行模块1034、以及选择类型判决模块1036。
在确定用于当前宏块的帧内预测类型的过程中,第一像素采集模块1022为从当前宏块中采集16个像素组成4×4像素矩阵A0(即,执行步骤S2022)。第一变换执行模块1024对像素矩阵A0进行哈达玛变换,并计算变换后的像素矩阵A0’的直流系数与交流系数之比(即,执行步骤S2024)。当变换后的像素矩阵A0’的直流系数与交流系数之比不小于第一阈值时,第一选择执行模块1026选择16×16帧内预测作为用于当前宏块的帧内预测类型(即,执行步骤S2026)。
当变换后的像素矩阵A0’的直流系数与交流系数之比小于第一阈值时,第一矩阵划分模块1028为将当前宏块划分为4个8×8像素矩阵B0~B3(即,执行步骤S2028)。第二像素采样模块1030、第二变换执行模块1032、以及第二选择执行模块1034执行确定用于从当前宏块划分出的像素矩阵B0~B3中的每一个像素矩阵Bi的帧内预测模式的处理(即,执行步骤2030)。在确定了用于从当前宏块划分出的像素矩阵B0~B3的帧内预测类型后,选择类型判决模块1036对采用8×8帧内预测的8×8像素矩阵进行计数,并对采用4×4帧内预测的8×8像素矩阵进行计数,并且在当前宏块中采用8×8帧内预测的8×8像素矩阵的数目不小于2的情况下,选择8×8帧内预测作为用于当前宏块的帧内预测类型,在当前宏块中采用4×4帧内预测的8×8像素矩阵的数目大于2的情况下,选择4×4帧内预测作为用于当前宏块的帧内预测类型(即,执行步骤S2032)。
图6示出了确定用于像素矩阵Bi的帧内预测类型的处理的流程图。如图6所示,在确定用于像素矩阵Bi的帧内预测类型的过程中,第二像素采集模块1030从像素矩阵Bi采集16个像素组成4×4像素矩阵Ci(其中,i为整数,0≤i≤3)(即,执行步骤S2030-2);第二变换执行模块1032对像素矩阵Ci进行哈达玛变换,并计算变换后的像素矩阵Ci’的直流系数与交流系数之比(即,执行步骤S2030-4);如果变换后的像素矩阵Ci’的直流系数与交流系数之比不小于第二阈值,则第二选择执行模块1034选择8×8帧内预测作为用于像素矩阵Bi的帧内预测类型,否则第二选择执行模块1034选择4×4帧内预测作为用于像素矩阵Bi的帧内预测类型(即,执行步骤S2030-6)。
图7示出了从当前宏块采集16个像素组成的4×4像素矩阵A0的一个示例。如图7所示,可以将当前宏块划分为16个4×4像素矩阵D0~D15,并采集像素矩阵D0~D15中的每一个像素矩阵的最左上角的一个像素组成像素矩阵A0。
在根据本发明实施例的帧内预测模式选择方法和***中,可以根据以下等式来对像素矩阵A0进行哈达玛变换:
D′=HT4·D·HT4
D1=D·HT4
(d1i0d1i1d1i2d1i3)=(di0di1di2di3)·HT4
D’=HT4·D1
其中,D表示像素矩阵A0,HT4表示哈达玛变换矩阵,D1表示中间矩阵,D’表示变换后的像素矩阵A0’。图8示出了变换后的像素矩阵A0’的一个示例。如图8所示,变换后的像素矩阵A0’的最左上角的一个像素系数是直流(DC)系数,其他像素系数是交流(AC)系数。
变换后的像素矩阵A0’的直流系数与交流系数之比DC_ratio可以表示当前宏块的频率特性。其中,较大的DC_ratio表示当前宏块比较平滑,而较小的DC_ratio表示当前宏块比较复杂。其中,变换后的像素矩阵A0’的直流系数DC_value、交流系数AC_value、以及直流系数与交流系数之比DC_ratio被定义如下:
DC_value=abs(a00)
AC_value=abs(a01)+abs(a02)+abs(a03)+
abs(a10)+abs(a11)+abs(a12)+abs(a13)+
abs(a20)+abs(a21)+abs(a22)+abs(a23)+
abs(a30)+abs(a31)+abs(a32)+abs(a33)
如果DC_ratio不小于第一阈值TH1,则选择Intra_16×16作为用于当前宏块的帧内预测类型,否则选择Intra_8×8或Intra_4×4作为用于当前宏块的帧内预测类型。预测类型选择单元102可以通过步骤S2028至S2032来确定最终是选择Intra_8×8还是选择Intra_4×4作为用于当前宏块的帧内预测类型。
图9示出了从8×8像素矩阵Bi采集16个像素组成的4×4像素矩阵Ci的示例。如图9所示,可以采集像素矩阵Bi的第一、三、五、七像素行的第一和第四像素列的像素以及像素矩阵Bi的第二、四、六、八像素行的第三和第七像素列的像素组成像素矩阵Ci。
可以采用与像素矩阵A0相同的哈达玛变换方法对像素矩阵Ci进行哈达玛变换,从而得到变换后的像素矩阵Ci’。可以采用与变换后的像素矩阵A0’相同的方法来计算变换后的像素矩阵Ci’的直流系数与交流系数之比。如果变换后的像素矩阵Ci’的直流系数与交流系数之比小于第二阈值TH2,则选择Intra_4×4作为用于像素矩阵Bi的帧内预测类型,否则选择Intra_8×8作为用于像素矩阵Bi的帧内预测类型。在确定出当前宏块中包含的每个8×8像素矩阵的帧内预测类型后,分别对采用Intra_8×8的8×8像素矩阵和采用Intra_4×4的8×8像素矩阵进行计数,并且在采用Intra_8×8的8×8像素矩阵的数目不小于2时,选择Intra_8×8作为用于当前宏块的帧内预测类型。
在本发明的实施例中,可以将TH1设置为50,并将TH2设置为25,以适用于大多数视频图像。
图10示出了预测模式选择单元104的逻辑框图。如图10所示,预测模式选择单元104包括第三像素采集模块1042、像素值计算模块1044、方向选择执行模块1046。
当预测类型选择单元102选择Intra_16×16作为用于当前宏块的帧内预测类型时,预测模式选择单元104利用对于Intra_16×16可选的所有帧内预测模式分别对当前宏块进行帧内预测,并选择对于Intra_16×16可选的帧内预测模式中预测误差最小的一种作为用于当前宏块的帧内预测模式。当预测类型选择单元102选择Intra_8×8或Intra_4×4作为用于当前宏块的帧内预测类型时,预测模式选择单元首先确定用于当前宏块中包含的每个8×8或4×4像素矩阵的预测方向,然后对于每个8×8或4×4像素矩阵,利用在为其确定的预测方向中对于Intra_8×8或Intra_4×4可用的所有帧内预测模式分别对该8×8或4×4像素矩阵进行帧内预测,并选择预测误差最小的一种帧内预测模式作为用于该8×8或4×4像素矩阵的帧内预测模式。
图11示出了预测模式选择单元选择用于当前宏块中包含的任意一个8×8像素矩阵Bi的预测方向的过程的流程图。如图11所示,当预测类型选择单元102选择Intra_8×8作为用于当前宏块的帧内预测类型时,对于从当前宏块划分得出的任意一个8×8像素矩阵Bi,第三像素采集模块1042从像素矩阵Bi采集16个像素组成4×4像素矩阵Ci(即,执行步骤S2044-2)。像素值计算模块1044计算像素矩阵Ci的第一和第二像素列的像素值之和与第三和第四像素列的像素值之和之间的差H01、像素矩阵Ci的第一和第二像素行的像素值之和与第三和第四像素行的像素值之和之间的差H10、以及像素矩阵Ci的左上角的四个像素值和右下角的四个像素值之和与右上角的四个像素值和左下角的四个像素值之和的差H11(即,执行步骤S2044-4)。如果|H01|≥2×|H10|且|H01|≥|H11|,则方向选择执行模块1046选择垂直方向作为用于像素矩阵Bi的预测方向;如果|H10|≥2×|H01|且|H10|≥|H11|,则方向选择执行模块1046选择水平方向作为用于像素矩阵Bi的预测方向。如果H01、H10、以及H11之间的关系不满足以上两个条件,则方向选择执行模块1046计算像素矩阵Bi的左上角的六个像素值之和与右下角的六个像素值之和的差AddionalValue1和像素矩阵Bi的右上角的六个像素值之和与左下角的六个像素值之和的差AdditionalValue2,并且在AdditionalValue1大于AdditionalValue2的情况下,选择左下方向作为用于像素矩阵Bi的预测方向,在AdditionalValue1不大于AdditionalValue2的情况下,选择右下方向作为用于像素矩阵Bi的预测方向(即,执行步骤S2044-6)。
图12示出了预测模式选择单元选择用于当前宏块中包含的任意一个4×4像素矩阵Bi的预测方向的过程的流程图。如图12所示,当预测类型选择单元102选择Intra_4×4作为用于当前宏块的帧内预测类型时,对于从当前宏块划分得出的任意一个4×4像素矩阵Dj(j为整数,且0≤j≤15),像素值计算模块1046计算像素矩阵Dj的第一和第二像素列的像素值之和与第三和第四像素列的像素值之和之间的差H01、像素矩阵Dj的第一和第二像素行的像素值之和与第三和第四像素行的像素值之和之间的差H10、以及像素矩阵Dj的左上角的四个像素值和右下角的四个像素值之和与右上角的四个像素值和左下角的四个像素值之和的差H11(即,执行步骤S2044-8)。如果|H01|≥2×|H10|且|H01|≥|H11|,则方向选择执行模块1048选择垂直方向作为用于像素矩阵Dj的预测方向;如果|H10|≥2×|H01|且|H10|≥|H11|,则方向选择执行模块1048选择水平方向作为用于像素矩阵Dj的预测方向,否则计算像素矩阵Dj的左上角的六个像素值之和与右下角的六个像素值之和的差AddionalValue1和像素矩阵Dj的右上角的六个像素值之和与左下角的六个像素值之和的差AdditionalValue2,如果AdditionalValue1大于AdditionalValue2,则选择左下方向作为用于像素矩阵Dj的预测方向,否则选择右下方向作为用于像素矩阵Dj的预测方向(即,执行步骤S2044-10)。图13示出了利用像素矩阵Ci或Dj的H01、H10、以及H11确定用于像素矩阵Bi和Dj的预测方向的过程示例。
具体地,可以将图13中所示的像素矩阵作为像素矩阵Ci或Dj的示例,根据以下等式计算图13所示的像素矩阵的H01、H10、以及H11。
H01=(A00+A10+A20+A30+A01+A11+A21+A31)
-(A02+A12+A22+A32+A03+A13+A23+A33)
H10=(A00+A01+A02+A03+A10+A11+A12+A13)
-(A20+A21+A22+A23+A30+A31+A32+A33)
H11=(A00+A10+A01+A11)+(A22+A32+A23+A33)
-(A20+A30+A21+A31)-(A02+A12+A03+A13)
另外,可以将图13中所示的像素矩阵作为像素矩阵Ci或Dj的示例,根据以下等式计算图13所示的像素矩阵的AdditionalValue1大于AdditionalValue2。
AdditionalValue1=(A00+A10+A01+A20+A11+A02)-(A31+A22+A13+A32+A23+A33)
AdditionalValue2=(A03+A02+A13+A01+A12+A23)-(A10+A21+A32+A20+A31+A30)
以上描述了根据本发明实施例的帧内预测模式选择方法和***。但是本领域技术人员应该明白,以上的功能单元的划分只是本发明的一种逻辑功能划分示例,相同或相近似的功能也可以根据需要由不同的逻辑单元实现,也可以由同一个逻辑单元实现。
根据本发明实施例的帧内预测模式选择方法和***通过相对于传统的帧内预测模式选择方法和***较为简单的方法来确定用于当前宏块中的各个区域的帧内预测模式,在不降低视频图像的编码质量的同时改善了视频图像的编码速率。
以上已经参考本发明的具体实施例来描述了本发明,但是本领域技术人员均了解,可以对这些具体实施例进行各种修改、组合和变更,而不会脱离由所附权利要求或其等同物限定的本发明的精神和范围。
根据需要可以用硬件或软件来执行步骤。注意,在不脱离本发明范围的前提下,可向本说明书中给出的流程图添加步骤、从中去除步骤或修改其中的步骤。一般来说,流程图只是用来指示用于实现功能的基本操作的一种可能的序列。
本发明的实施例可利用编程的通用数字计算机、利用专用集成电路、可编程逻辑器件、现场可编程门阵列、光的、化学的、生物的、量子的或纳米工程的***、组件和机构来实现。一般来说,本发明的功能可由本领域已知的任何手段来实现。可以使用分布式或联网***、组件和电路。数据的通信或传送可以是有线的、无线的或者通过任何其他手段。
还将意识到,根据特定应用的需要,附图中示出的要素中的一个或多个可以按更分离或更集成的方式来实现,或者甚至在某些情况下被去除或被停用。实现可存储在机器可读介质中的程序或代码以允许计算机执行上述任何方法,也在本发明的精神和范围之内。
此外,附图中的任何信号箭头应当被认为仅是示例性的,而不是限制性的,除非另有具体指示。当术语被预见为使分离或组合的能力不清楚时,组件或者步骤的组合也将被认为是已经记载了。
Claims (16)
1.一种帧内预测模式选择方法,包括:
根据当前宏块的频率特性,选择4×4帧内预测、8×8帧内预测、以及16×16帧内预测之一作为用于所述当前宏块的帧内预测类型;
当选择16×16帧内预测作为用于所述当前宏块的帧内预测类型时,利用对于16×16帧内预测可选的所有帧内预测模式分别对所述当前宏块进行帧内预测,并选择对于16×16帧内预测可选的帧内预测模式中预测误差最小的一种作为用于所述当前宏块的帧内预测模式,
当选择8×8帧内预测或4×4帧内预测作为用于所述当前宏块的帧内预测类型时,将所述当前宏块划分为4个8×8像素矩阵B0~B3或16个4×4像素矩阵D0~D15,并通过以下处理选择用于任意一个8×8像素矩阵Bi或任意一个4×4像素矩阵Dj的帧内预测模式,其中,i和j均为整数,0≤i≤3,0≤j≤15:
根据所述像素矩阵Bi或Dj中的像素之间的相关性,选择用于所述像素矩阵Bi或Dj的预测方向,
利用在用于所述像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的所有帧内预测模式分别对所述像素矩阵Bi或Dj进行帧内预测,并选择在用于所述像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的帧内预测模式中预测误差最小的一种作为用于所述像素矩阵Bi或Dj的帧内预测模式。
2.根据权利要求1所述的帧内预测模式选择方法,其特征在于,选择用于所述当前宏块的帧内预测类型的处理包括:
从所述当前宏块中采集16个像素组成4×4像素矩阵A0;
对所述像素矩阵A0进行哈达玛变换,并计算变换后的像素矩阵A0’的直流系数与交流系数之比;
当所述变换后的像素矩阵A0’的直流系数与交流系数之比不小于第一阈值时,选择16×16帧内预测作为用于所述当前宏块的帧内预测类型。
3.根据权利要求2所述的帧内预测模式选择方法,其特征在于,当所述变换后的像素矩阵A0’的直流系数与交流系数之比小于所述第一阈值时,还包括:
将所述当前宏块划分为4个8×8像素矩阵B0~B3,并对所述像素矩阵B0~B3中的任意一个像素矩阵Bi进行以下处理,其中,i为整数,0≤i≤3:
从所述像素矩阵Bi采集16个像素组成4×4像素矩阵Ci;
对所述像素矩阵Ci进行哈达玛变换,并计算变换后的像素矩阵Ci’的直流系数与交流系数之比;
如果所述变换后的像素矩阵Ci’的直流系数与交流系数之比不小于第二阈值,则选择8×8帧内预测作为用于所述像素矩阵Bi的帧内预测类型,否则选择4×4帧内预测作为用于所述像素矩阵Bi的帧内预测类型;以及
如果所述当前宏块中采用8×8帧内预测的8×8像素矩阵的数目不小于2,则选择8×8帧内预测作为用于所述当前宏块的帧内预测类型,否则选择4×4帧内预测作为用于所述当前宏块的帧内预测类型。
4.根据权利要求2所述的帧内预测模式选择方法,其特征在于,从所述当前宏块中采集16个像素组成4×4像素矩阵A0的处理包括:
将所述当前宏块划分为16个4×4像素矩阵D0~D15;
采集所述像素矩阵D0~D15中的每一个像素矩阵的最左上角的一个像素组成所述像素矩阵A0。
5.根据权利要求3所述的帧内预测模式选择方法,其特征在于,采集所述像素矩阵Bi的第一、三、五、七像素行的第一和第四像素列的像素以及所述像素矩阵Bi的第二、四、六、八像素行的第三和第七像素列的像素组成所述像素矩阵Ci。
6.根据权利要求1所述的帧内预测模式选择方法,其特征在于,选择垂直方向、水平方向、右下方向、以及左下方向之一作为用于所述像素矩阵Bi或Dj的预测方向。
7.根据权利要求6所述的帧内预测模式选择方法,其特征在于,当选择8×8帧内预测作为用于所述当前宏块的帧内预测类型时,选择用于所述像素矩阵Bi的预测方向的处理包括:
从所述像素矩阵Bi采集16个像素组成4×4像素矩阵Ci;
计算所述像素矩阵Ci的第一和第二像素列的像素值之和与第三和第四像素列的像素值之和之间的差H01、所述像素矩阵Ci的第一和第二像素行的像素值之和与第三和第四像素行的像素值之和之间的差H10、以及所述像素矩阵Ci的左上角的四个像素值和右下角的四个像素值之和与右上角的四个像素值和左下角的四个像素值之和的差H11;
如果|H01|≥2×|H10|且|H01|≥|H11|,则选择垂直方向作为用于所述像素矩阵Bi的预测方向,否则
如果|H10|≥2×|H01|且|H10|≥|H11|,则选择水平方向作为用于所述像素矩阵Bi的预测方向,否则
计算所述像素矩阵Bi的左上角的六个像素值之和与右下角的六个像素值之和的差AddionalValue1和所述像素矩阵Bi的右上角的六个像素值之和与左下角的六个像素值之和的差AdditionalValue2,
如果AdditionalValue1大于AdditionalValue2,则选择左下方向作为用于所述像素矩阵Bi的预测方向,否则选择右下方向作为用于所述像素矩阵Bi的预测方向。
8.根据权利要求6所述的帧内预测模式选择方法,其特征在于,当选择4×4帧内预测作为用于所述当前宏块的帧内预测类型时,选择用于所述像素矩阵Dj的预测方向的处理包括:
计算所述像素矩阵Dj的第一和第二像素列的像素值之和与第三和第四像素列的像素值之和之间的差H01、所述像素矩阵Dj的第一和第二像素行的像素值之和与第三和第四像素行的像素值之和之间的差H10、以及所述像素矩阵Dj的左上角的四个像素值和右下角的四个像素值之和与右上角的四个像素值和左下角的四个像素值之和的差H11;
如果|H01|≥2×|H10|且|H01|≥|H11|,则选择垂直方向作为用于所述像素矩阵Dj的预测方向,否则
如果|H10|≥2×|H01|且|H10|≥|H11|,则选择水平方向作为用于所述像素矩阵Dj的预测方向,否则
计算所述像素矩阵Dj的左上角的六个像素值之和与右下角的六个像素值之和的差AddionalValue1和所述像素矩阵Dj的右上角的六个像素值之和与左下角的六个像素值之和的差AdditionalValue2,
如果AdditionalValue1大于AdditionalValue2,则选择左下方向作为用于所述像素矩阵Dj的预测方向,否则选择右下方向作为用于所述像素矩阵Dj的预测方向。
9.一种帧内预测模式选择***,包括:
预测类型选择单元,被配置为根据当前宏块的频率特性,选择4×4帧内预测、8×8帧内预测、以及16×16帧内预测之一作为用于所述当前宏块的帧内预测类型;
预测模式选择单元,被配置为
当所述预测类型选择单元选择16×16帧内预测作为用于所述当前宏块的帧内预测类型时,利用对于16×16帧内预测可选的所有帧内预测模式分别对所述当前宏块进行帧内预测,并选择对于16×16帧内预测可选的帧内预测模式中预测误差最小的一种作为用于所述当前宏块的帧内预测模式,
当所述预测类型选择单元选择8×8帧内预测或4×4帧内预测作为用于所述当前宏块的帧内预测类型时,将所述当前宏块划分为4个8×8像素矩阵B0~B3或16个4×4像素矩阵D0~D15,并通过以下处理选择用于任意一个8×8像素矩阵Bi或任意一个4×4像素矩阵Dj的帧内预测模式,其中,i和j均为整数,0≤i≤3,0≤j≤15:
根据所述像素矩阵Bi或Dj中的像素之间的相关性,选择用于所述像素矩阵Bi或Dj的预测方向,
利用在用于所述像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的所有帧内预测模式分别对所述像素矩阵Bi或Dj进行帧内预测,并选择在用于所述像素矩阵Bi或Dj的预测方向中对于8×8帧内预测或4×4帧内预测可选的帧内预测模式中预测误差最小的一种作为用于所述像素矩阵Bi或Dj的帧内预测模式。
10.根据权利要求9所述的帧内预测模式选择***,其特征在于,所述预测类型选择单元包括:
第一像素采集模块,被配置为从所述当前宏块中采集16个像素组成4×4像素矩阵A0;
第一变换执行模块,被配置为对所述像素矩阵A0进行哈达玛变换,并计算变换后的像素矩阵A0’的直流系数与交流系数之比;
第一选择执行模块,被配置为当所述变换后的像素矩阵A0’的直流系数与交流系数之比不小于第一阈值时,选择16×16帧内预测作为用于所述当前宏块的帧内预测类型。
11.根据权利要求10所述的帧内预测模式选择***,其特征在于,所述预测类型选择单元还包括:
第一矩阵划分模块,被配置为当所述变换后的像素矩阵A0’的直流系数与交流系数之比小于所述第一阈值时,将所述当前宏块划分为4个8×8像素矩阵B0~B3;
第二像素采集模块,被配置为从所述像素矩阵B0~B3中的任意一个像素矩阵Bi采集16个像素组成4×4像素矩阵Ci,其中,i为整数,0≤i≤3;
第二变换执行模块,被配置为对所述像素矩阵Ci进行哈达玛变换,并计算变换后的像素矩阵Ci’的直流系数与交流系数之比;
第二选择执行模块,被配置为如果所述变换后的像素矩阵Ci’的直流系数与交流系数之比不小于第二阈值,则选择8×8帧内预测作为用于所述像素矩阵Bi的帧内预测类型,否则选择4×4帧内预测作为用于所述像素矩阵Bi的帧内预测类型;以及
选择类型判决模块,被配置为如果所述当前宏块中采用8×8帧内预测的8×8像素矩阵的数目不小于2,则选择8×8帧内预测作为用于所述当前宏块的帧内预测类型,否则选择4×4帧内预测作为用于所述当前宏块的帧内预测类型。
12.根据权利要求10所述的帧内预测模式选择***,其特征在于,所述第一像素采集模块将所述当前宏块划分为16个4×4像素矩阵D0~D15,并采集所述像素矩阵D0~D15中的每一个像素矩阵的最左上角的一个像素组成所述像素矩阵A0。
13.根据权利要求11所述的帧内预测模式选择***,其特征在于,所述第二像素采集模块采集所述像素矩阵Bi的第一、三、五、七像素行的第一和第四像素列的像素以及所述像素矩阵Bi的第二、四、六、八像素行的第三和第七像素列的像素组成所述像素矩阵Ci。
14.根据权利要求9所述的帧内预测模式选择***,其特征在于,所述预测模式选择单元选择垂直方向、水平方向、右下方向、以及左下方向之一作为用于所述像素矩阵Bi或Dj的预测方向。
15.根据权利要求14所述的帧内预测模式选择***,其特征在于,所述预测模式选择单元包括:
第三像素采集模块,被配置为当所述预测类型选择单元选择8×8帧内预测作为用于所述当前宏块的帧内预测类型时,从所述像素矩阵Bi采集16个像素组成4×4像素矩阵Ci;
像素值计算模块,被配置为计算所述像素矩阵Ci的第一和第二像素列的像素值之和与第三和第四像素列的像素值之和之间的差H01、所述像素矩阵Ci的第一和第二像素行的像素值之和与第三和第四像素行的像素值之和之间的差H10、以及所述像素矩阵Ci的左上角的四个像素值和右下角的四个像素值之和与右上角的四个像素值和左下角的四个像素值之和的差H11;以及
方向选择执行模块,被配置为
如果|H01|≥2×|H10|且|H01|≥|H11|,则选择垂直方向作为用于所述像素矩阵Bi的预测方向,否则
如果|H10|≥2×|H01|且|H10|≥|H11|,则选择水平方向作为用于所述像素矩阵Bi的预测方向,否则
计算所述像素矩阵Bi的左上角的六个像素值之和与右下角的六个像素值之和的差AddionalValue1和所述像素矩阵Bi的右上角的六个像素值之和与左下角的六个像素值之和的差AdditionalValue2,
如果AdditionalValue1大于AdditionalValue2,则选择左下方向作为用于所述像素矩阵Bi的预测方向,否则选择右下方向作为用于所述像素矩阵Bi的预测方向。
16.根据权利要求14所述的帧内预测模式选择***,其特征在于,所述预测模式选择单元包括:
第二像素值计算模块,当所述预测类型选择单元选择4×4帧内预测作为用于所述当前宏块的帧内预测类型时,计算所述像素矩阵Dj的第一和第二像素列的像素值之和与第三和第四像素列的像素值之和之间的差H01、所述像素矩阵Dj的第一和第二像素行的像素值之和与第三和第四像素行的像素值之和之间的差H10、以及所述像素矩阵Dj的左上角的四个像素值和右下角的四个像素值之和与右上角的四个像素值和左下角的四个像素值之和的差H11;
方向选择执行模块,被配置为
如果|H01|≥2×|H10|且|H01|≥|H11|,则选择垂直方向作为用于所述像素矩阵Dj的预测方向,否则
如果|H10|≥2×|H01|且|H10|≥|H11|,则选择水平方向作为用于所述像素矩阵Dj的预测方向,否则
计算所述像素矩阵Dj的左上角的六个像素值之和与右下角的六个像素值之和的差AddionalValue1和所述像素矩阵Dj的右上角的六个像素值之和与左下角的六个像素值之和的差AdditionalValue2,
如果AdditionalValue1大于AdditionalValue2,则选择左下方向作为用于所述像素矩阵Dj的预测方向,否则选择右下方向作为用于所述像素矩阵Dj的预测方向。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010248892.9A CN102377993B (zh) | 2010-08-05 | 2010-08-05 | 帧内预测模式选择方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010248892.9A CN102377993B (zh) | 2010-08-05 | 2010-08-05 | 帧内预测模式选择方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102377993A CN102377993A (zh) | 2012-03-14 |
CN102377993B true CN102377993B (zh) | 2014-09-03 |
Family
ID=45795881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010248892.9A Expired - Fee Related CN102377993B (zh) | 2010-08-05 | 2010-08-05 | 帧内预测模式选择方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102377993B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113678453B (zh) | 2019-04-12 | 2024-05-14 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测的上下文确定 |
JP7403555B2 (ja) | 2019-04-16 | 2023-12-22 | 北京字節跳動網絡技術有限公司 | イントラコーディングモードにおけるマトリクスの導出 |
EP3949391A4 (en) | 2019-05-01 | 2022-05-25 | Beijing Bytedance Network Technology Co., Ltd. | MATRIX-BASED INTRAPREDICTION USING FILTRATION |
CN117097912A (zh) * | 2019-05-01 | 2023-11-21 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测的上下文编码 |
KR20220011127A (ko) | 2019-05-22 | 2022-01-27 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 업샘플링을 이용한 행렬 기반 인트라 예측 |
WO2020239018A1 (en) | 2019-05-31 | 2020-12-03 | Beijing Bytedance Network Technology Co., Ltd. | Restricted upsampling process in matrix-based intra prediction |
CN113950836B (zh) | 2019-06-05 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 基于矩阵的帧内预测的上下文确定 |
KR20220082847A (ko) | 2019-10-28 | 2022-06-17 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 색상 성분에 기초한 신택스 시그널링 및 파싱 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222635A (zh) * | 2008-01-24 | 2008-07-16 | 北京工业大学 | 帧内预测方法 |
CN101527848A (zh) * | 2008-03-07 | 2009-09-09 | 佳能株式会社 | 图像编码设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100128803A1 (en) * | 2007-06-08 | 2010-05-27 | Oscar Divorra Escoda | Methods and apparatus for in-loop de-artifacting filtering based on multi-lattice sparsity-based filtering |
-
2010
- 2010-08-05 CN CN201010248892.9A patent/CN102377993B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222635A (zh) * | 2008-01-24 | 2008-07-16 | 北京工业大学 | 帧内预测方法 |
CN101527848A (zh) * | 2008-03-07 | 2009-09-09 | 佳能株式会社 | 图像编码设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102377993A (zh) | 2012-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102377993B (zh) | 帧内预测模式选择方法和*** | |
CN102740068B (zh) | 图像存储器压缩方法与装置 | |
CN101087414B (zh) | 图像编码装置和图像编码方法 | |
CN104735452B (zh) | 通过使用大变换单元对图像进行编码和解码的方法和设备 | |
CN104205845B (zh) | 具有统一位宽乘法器的lm模式 | |
CN102857764B (zh) | 帧内预测模式处理的方法和装置 | |
CN104380741A (zh) | 用于lm帧内预测的参考像素缩减 | |
CN103188496B (zh) | 基于运动矢量分布预测的快速运动估计视频编码方法 | |
CN104205843A (zh) | Hevc中无损编码中的改进帧内预测 | |
CN103782596A (zh) | 使用图像的亮度分量的对图像的色度分量的预测方法和设备 | |
CN105284111A (zh) | 运动图像编码装置、运动图像解码装置、运动图像编码方法、运动图像解码方法、及程序 | |
CN103238334A (zh) | 图像帧内预测方法和设备 | |
CN103004201A (zh) | 运动图像编码装置、运动图像解码装置、运动图像编码方法以及运动图像解码方法 | |
CN104255033A (zh) | 用于lm模式计算的简化查找表 | |
CN103931180A (zh) | 图像解码设备 | |
CN103067704B (zh) | 一种基于编码单元层次提前跳过的视频编码方法和*** | |
CN103765891A (zh) | 用于解码合并模式下的运动信息的装置 | |
CN104811713A (zh) | 使用平面表达的增强帧内预测编码 | |
CN104811718A (zh) | 自适应帧内预测编码和解码方法 | |
CN104967857A (zh) | 对图像进行编码/解码的方法和设备 | |
CN102845063A (zh) | 用于视频编码的设备、方法和计算机程序 | |
CN106034235A (zh) | 计算编码失真度和编码模式控制的方法及其*** | |
CN107040785A (zh) | 图像解码和图像编码的方法和装置 | |
CN103596003B (zh) | 高性能视频编码的帧间预测快速模式选择方法 | |
CN101841713A (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: 20140903 Termination date: 20180805 |
|
CF01 | Termination of patent right due to non-payment of annual fee |