一种视频编码帧内预测方法和装置与流程

文档序号:11844833阅读:226来源:国知局
一种视频编码帧内预测方法和装置与流程

本发明涉及图像编码领域,特别是涉及一种视频编码帧内预测方法和装置。



背景技术:

从H.264高度压缩数字视频编解码标准开始,帧内方向预测编码成了视频帧内块编码的主流技术。在这种技术中,当前编码块的预测从其左相邻列和上相邻行根据一个方向进行直线预测得到,如图1所示,当前编码块是一个8x8的块,三角形所示像素是其左、上相邻参考像素,帧内预测首先规定一个方向,然后当前块中的每一行或列,就根据这个方向从其左上相邻行列中获得,如下图所示的第六行,根据如图所示方向就映射到上相邻行的之像素位置,如下图中圆点所示,因为这些圆点并不是整像素点,所以它们需要根据其子像素坐标,通过插值算法根据已知的整像素点,即图中所示三角形像素点计算得出。

现有的这种帧内预测存在的一个问题是,因为参考预测像素位于块的左、上相邻位置,而预测相关性是距离越远越低,所以对于当前块中距离较远的右、下像素,则显然预测精度不高,从而降低了编码效率。

如何提供高预测精度的视频编码帧内预测方法和装置成为亟待解决的技术问题。



技术实现要素:

本发明实施例提供一种视频编码帧内预测方法和装置,用以解决现有技术中对于当前视频编码块中距离参考预测像素位较远的像素预测精度低的缺陷,实现当前视频编码块的高预测精度。

为了解决上述问题,本发明公开了一种视频编码帧内预测方法,其中,包括步骤:

视频编码时对当前编码块进行帧内左、上方向预测和帧内右、下方向预测的双向预测。

本发明所述的方法,其中,

所述双向预测进一步是指:视频编码时对当前编码块进行帧内左、上方向预测和右、下方向预测并进行加权。

本发明所述的方法,其中,

当前编码块进行帧内左、上预测是根据其左方相邻的编码块的最右列像素列及上方相邻的编码块的最下行像素行进行帧内左、上方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内左、上预测;当相应的像素列和者像素行都不存在时,不进行帧内左、上预测;

当前编码块进行帧内右、下预测是根据其右方相邻的编码块的最左列像素列及下方相邻的编码块的最上行像素行进行帧内右、下方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内右、下预测;当相应的像素列和者像素行都不存在时,不进行帧内右、下预测;

对帧内左、上方向预测和右、下方向预测都存在的预测进行加权。

本发明所述的方法,其中,

当两个水平相邻的编码块同时进行视频编码时,其中,从左往右数第一个编码块为第一编码块,从左往右数第二个编码块为第二编码块;

第一编码块根据其上方相邻编码块的最下行像素行以及其左方相邻编码块最右列像素列进行帧内左、上方向的预测;并根据第二编码块的最左列像素列进行帧内右、下方向的预测,并对帧内左、上方向预测和右、下方向预测进行加权;

第二编码块根据其上方相邻编码块的最下行像素行以及第一邻编码块的最右列像素列进行帧内左、上方向的预测;帧内右、下预测不进行预测。

本发明所述的方法,其中,

当上下左右四个相邻编码块同时进行视频编码时,其中,左上编码块为第A编码块、右上编码块为第B编码块、左下编码块为第C编码块、右下编码块为第D编码块;

第A编码块根据其上方相邻编码块的最下行像素行以及其左方相邻编码块最右列像素列进行帧内左、上方向的预测;并根据第B编码块的最左列像素列及第C编码块的最上行像素行进行帧内右、下方向的预测,并对帧内左、上方向预测和右、下方向预测进行加权;

第B编码块根据其上方相邻编码块的最下行像素行以及第A编码块的最右列像素列进行帧内左、上方向的预测;并根据第D编码块的最上行的像素行进行帧内右、下方向的预测,并对帧内左、上方向预测和右、下方向预测进行加权;

第C编码块根据第A编码块的最下行的像素行以及其左方相邻编码块的最右列像素列进行帧内左、上方向的预测;并根据第D编码块的最左列像素列进行帧内右、下方向的预测,并对帧内左、上方向预测和右、下方向预测进行加权;

第D编码块根据第B编码块最下行像素行以及第C编码块最右列的像素列进行帧内左、上方向的预测;帧内右、下预测不进行预测。

为了解决上述问题,本发明还公开了一种视频编码帧内预测装置,其中,包括:

帧内左上预测单元,用于对当前编码块进行帧内左、上方向预测;

帧内右下预测单元,用于对当前编码块进行帧内右、下方向预测。

所述的装置,其中,还进一步包括:

加权单元,用于对当前编码块进行帧内左、上方向预测和帧内右、下方向预测进行加权。

本发明所述的装置,其中,

帧内左上预测单元,进一步用于根据当前编码块的左方相邻的编码块的最右列像素列及上方相邻的编码块的最下行像素行进行帧内左、上方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内左、上预测;当相应的像素列和者像素行都不存在时,不进行帧内左、上预测;

帧内右下预测单元,进一步用于根据当前编码块的右方相邻的编码块的最左列像素列及下方相邻的编码块的最上行像素行进行帧内右、下方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内右、下预测;当相应的像素列和者像素行都不存在时,不进行帧内右、下预测。

本发明实施例提供的一种视频编码的帧内预测方法和装置,通过在视频编码时对当前编码块进行帧内左、上方向预测和帧内右、下方向预测的双向预测并加权。实现了对当前视频编码块的高预测精度,提高了编码效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术视频编码帧内预测示意图;

图2是本发明一种视频编码帧内预测方法实施例的步骤流程图;

图3是本发明视频编码中水平相邻的两个编码块同时编码时帧内预测的示意图;

图4是本发明视频编码中上下左右相邻的四个编码块同时编码时帧内预测的示意图;

图5是本发明一种视频编码帧内预测装置实施例的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

参照图2,示出了本发明实施例一种视频编码帧内预测方法的步骤流程图。

本实施例的方法包括以下步骤:

步骤101:视频编码时对当前编码块进行帧内左、上方向预测;

步骤102:对当前编码块进行帧内右、下方向预测的双向预测;

步骤103:将所述编码块的帧内左、上方向预测和帧内右、下方向预测进行加权。

在本实施例中,当前编码块进行帧内左、上预测是根据其左方相邻的编码块的最右列像素列及上方相邻的编码块的最下行像素行进行帧内左、上方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内左、上预测;当相应的像素列和者像素行都不存在时,不进行帧内左、上预测;

当前编码块进行帧内右、下预测是根据其右方相邻的编码块的最左列像素列及下方相邻的编码块的最上行像素行进行帧内右、下方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内右、下预测;当相应的像素列和者像素行都不存在时,不进行帧内右、下预测。

本方法实施例,通过在视频编码时对当前编码块进行帧内左、上方向预测和帧内右、下方向预测的双向预测并加权。实现了对当前视频编码块的高预测精度,提高了编码效率。

实施例二

参照图3,示出了本发明视频编码中水平相邻的两个编码块同时编码时帧内预测的示意图。

当两个水平相邻的编码块同时进行视频编码时,如图3所示,从左往右数第一个编码块为第一编码块;从左往右数第二个编码块为第二编码块;T0是第一编码块和第二编码块的上方相邻编码块的最下行像素行,本实施例中T0为已知参考像素行;L0是第一编码块的左方相邻编码块最右列像素列,本实施例中L0为已知参考像素列;R1是第一编码块最右列像素列;L2是第二编码块最左列像素列。

其中,第一编码块根据其上方相邻编码块的最下行像素行T0以及其左方相邻编码块最右列像素列L0进行帧内左、上方向的预测;并根据第二编码块的最左列像素列L2进行帧内右、下方向的预测并,并对帧内左、上方向预测和右、下方向预测进行加权;

第二编码块根据其上方相邻编码块的最下行像素行T0以及第一邻编码块的最右列像素列R1进行帧内左、上方向的预测;帧内右、下预测不进行预测。

具体公式如下:

公式一:R1=P(L0,T0,dir0)*q+(1-q)*P(L2,dir0)+rsdl0

公式二:L2=P(R1,T0,dir1)+rsdl1

其中,P表示帧内预测操作,dir0是当前预测方向,P(L0,T0,dir0),表示使用L0和T0作参考,以dir0为方向产生一个对于R1的帧内预测向量。P(L2,dir0)表示以L2为参考向量,以dir0为方向产生R1的预测。q是个常量,它大于0小于1,表示加权预测,即R1的预测由已知的L0和T0以及右边的L2加权预测而得。rsdl0和rsdl1是残差向量,它是第一编码块减去预测后得到的残差经过DCT变换、量化、反量化和反DCT变换后得到的,而L2的预测则是根据R1和T0产生。上面两个公式中只有2个未知向量,即R1和L2,将公式二代入公式一,通过解方程即可解出R1,然后根据R1和T0可以得到第二编码块,同时也得到了L2,然后解出第一编码块。

另外,在本实施例中rsdl0就是第一编码块的源像素块减去其帧内预测块,然后变换-量化-反量化-反变换后得到重构残差块,然后取最右一列,就是rsdl0。

rsdl1就是第二编码块的源像素块减去其帧内预测块,然后变换-量化-反量化-反变换后得到重构残差块,然后取最左一列,就是rsdl1。

第一个公式中的P(L0,T0,dir0)表示以L0和T0根据方向dir0产生的第一编码块的预测取最右一列,P(L2,dir0)表示以L2和方向dir0产生的预测取最右一列。P(R1,T0,dir1)表示以R1和T0根据方向dir1生成的第二编码块的预测取最左一列。

以上是在残差向量和左、上像素源已经可用的条件下,进行的帧内预测。

但在初次编码时,我们只有左上相邻行列,以及原始的两个当前像素块,即,第一编码块和第二编码块这时,我们要先给第一编码块和第二编码块直接生成预测,对于非最后一个块,事实上都是需要双向预测的,这时,我们第一次生成预测时,除了最左上的相邻行列外,其余的全部使用原始像素生成预测,然后加权,然后用源像素减预测,变换-量化-反量化-反变换获得残差的重构,就是rsdl。

通过本实施例,对当前编码块进行帧内左、上方向预测和帧内右、下方向预测的双向预测并加权,实现了对当前视频编码块的高预测精度,提高了编码效率。

实施例三

参照图4,示出了本发明视频编码中上下左右相邻的四个编码块同时编码时帧内预测的示意图。

当上下左右四个相邻编码块同时进行视频编码时,参照图4,其中,左上编码块为第A编码块、右上编码块为第B编码块、左下编码块为第C编码块、右下编码块为第D编码块。

T0是第A编码块和第B编码块的上方相邻编码块的最下行像素行,本实施例中T0为已知参考像素行;L0是第A编码块和第C编码块的左方相邻编码块最右列像素列,本实施例中L0为已知参考像素列;R1为第A编码块的最右列像素列;B1为第A编码块的最下行像素行;L2为第B编码块的最左列像素列;B2为第B编码块的最下行像素行;T3为第C编码块的最上行像素行;R3为第C编码块的最右列像素列;L4为第D编码块的最左列像素列;T4为第D编码块的最上行像素行。

第A编码块根据其上方相邻编码块的最下行像素行T0以及其左方相邻编码块最右列像素列L0进行帧内左、上方向的预测;并根据第B编码块的最左列像素列L2及第C编码块的最上行像素行T3进行帧内右、下方向的预测并对帧内左、上方向预测和右、下方向预测进行加权。

第B编码块根据其上方相邻编码块的最下行像素行T0以及第A编码块的最右列像素列R1进行帧内左、上方向的预测;并根据第D编码块的最上行的像素行T4进行帧内右、下方向的预测,并对帧内左、上方向预测和右、下方向预测进行加权。

第C编码块根据第A编码块的最下行的像素行B1以及其左方相邻编码块的最右列像素列L0进行帧内左、上方向的预测;并根据第D编码块的最左列像素列L4进行帧内右、下方向的预测,并对帧内左、上方向预测和右、下方向预测进行加权。

第D编码块根据第B编码块最下行像素行B2以及第C编码块最右列的像素列R3进行帧内左、上方向的预测;帧内右、下预测不进行预测。

对于第A编码块,具体公式如下:

公式一:B1=P(L0,T0,dir2)*q2+(1-q2)P(T3,L2,dir2)+rsdl2

公式二:R1=P(L0,T0,dir2)*p2+(1-p2)P(T3,L2,dir2)+rsdl3

此处,rsdl2和rsdl3是残差向量,对待第A编码块,获得它的某一个dir2的双向预测,然后将源块和预测块相减,得到残差块,然后对残差块执行DCT-量化-反量化-IDCT操作后,得到重构的残差块,然后残差块的最底一行就是rsdl2,最右一列rsdl3。P(L0,T0,dir2)本身表示以L0和T0根据方向dir2产生的第A编码块的预测,但在本实施例的公式一中,它实际表示以L0和T0根据方向dir2产生的第A编码块的预测取最底一行,而第二个公式中的P(L0,T0,dir2)表示以L0和T0根据方向dir2产生的第A编码块的预测取最右一列。

同样的方式,可以列出第B编码块、第C编码块、和第D编码块的公式,对于第B编码块,它的预测由R1、T0的左上预测以及T4的右下预测加权得到,公式如下:

公式三:L2=P(R1,T0,dir3)*q3+(1-q3)*P(T4,dir3)+rsdl4

公式四:B2=P(R1,T0,dir3)*p3+(1-p3)*P(T4,dir3)+rsdl5

对于第C编码块,它也是双向预测,即来自的L0、B1左上预测和来自的L4右下预测加权获得,公式如下:

公式五:T3=P(L0,B1,dir4)*q4+(1-q4)*P(L4,dir4)+rsdl6

公式六:R3=P(L0,B1,dir4)*p4+(1-p4)*P(L4,dir4)+rsdl7

对于第D编码块,它采用单向预测,即B2和R3的左上预测,公式如下:

公式七:T4=P(B2,R3,dir5)+rsdl8

公式八:L4=P(B2,R3,dir5)+rsdl9

本实施例中有8个向量方程式,同时有8个未知向量,所以方程可解。

以上是在残差向量和左、上像素源已经可用的条件下,进行的帧内预测。

但在初次编码时,我们只有左上相邻行列,以及原始的四个当前像素块,即,第A编码块、第B编码块、第C编码块和第D编码块,这时,我们要先给第A编码块、第B编码块、第C编码块和第D编码块直接生成预测,对于非最后一个块,事实上都是需要双向预测的,这时,我们第一次生成预测时,除了最左上的相邻行列外,其余的全部使用原始像素生成预测,然后加权,然后用源像素减预测,变换-量化-反量化-反变换获得残差的重构,就是rsdl。

通过本实施例,对当前编码块进行帧内左、上方向预测和帧内右、下方向预测的双向预测并加权,实现了对当前视频编码块的高预测精度,提高了编码效率。

实施例四

参照图5,示出了本发明一种视频编码帧内预测装置的结构框图。

本实施例的视频编码帧内预测装置1,包括:帧内左上预测单元2、帧内右下预测单元3、加权单元4,其中:

帧内左上预测单元2,用于对当前编码块进行帧内左、上方向预测;例如,根据当前编码块的左方相邻的编码块的最右列像素列及上方相邻的编码块的最下行像素行进行帧内左、上方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内左、上预测;当相应的像素列和者像素行都不存在时,不进行帧内左、上预测;

帧内右下预测单元3,用于对当前编码块进行帧内右、下方向预测;例如,用于根据当前编码块的右方相邻的编码块的最左列像素列及下方相邻的编码块的最上行像素行进行帧内右、下方向的预测;其中,当相应的像素列或者像素行有一个不存在时,只根据存在的像素行或者像素列进行帧内右、下预测;当相应的像素列和者像素行都不存在时,不进行帧内右、下预测。

加权单元4,用于对帧内左上预测单元2输出的帧内左、上方向预测和帧内右下预测单元3输出的帧内右、下方向预测进行加权。

本实施例的视频编码帧内预测装置用于实现前述实施例一、二以及实施例三中相应的视频编码帧内预测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1