CN105338363A - 一种视频帧的编码及解码方法和装置 - Google Patents
一种视频帧的编码及解码方法和装置 Download PDFInfo
- Publication number
- CN105338363A CN105338363A CN201410368024.2A CN201410368024A CN105338363A CN 105338363 A CN105338363 A CN 105338363A CN 201410368024 A CN201410368024 A CN 201410368024A CN 105338363 A CN105338363 A CN 105338363A
- Authority
- CN
- China
- Prior art keywords
- unit
- current coded
- reference encoder
- coding
- described current
- 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.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种视频帧的编码及解码方法和装置,依次将选取的至少一个编码单元以及分配有初始值的当前编码单元的运动矢量作为当前编码单元的运动矢量,依据运动矢量所指向的参考编码单元的重建值或初始值以及当前编码单元的原始值,计算残差;根据残差进行预编码,并根据由预编码结果确定出的最优候选单元的索引号以及与最优候选单元对应的残差进行编码。在解码时解析出当前编码单元对应的残差以及索引号;将依据索引号,获取到的候选单元的运动矢量作为当前编码单元的运动矢量;根据与由确定出的运动矢量所指向参考编码单元以及该残差,构当前编码单元的重建值。该申请可以提高编码压缩比及编码效率,并提高解码出的视频质量。
Description
技术领域
本申请涉及视频压缩技术领域,更具体的说是涉及一种视频帧的编码及解码方法和装置。
背景技术
在视频数据传输之前,一般需要对视频数据进行压缩编码。目前的视频编码标准中,原始视频帧被分为:帧内编码帧,也称为I帧(Intra-fram);单向预测帧,也称为P帧(Predictive-frame);以及双向预测帧,也称为B帧(Bidirectionallypredicted-frame)三种类型。
为了提高这三种视频帧的压缩比,人们提出了帧内块复制编码模式(Mode_INTRABC,Mode_IntraBlockCopy),即在视频帧编码时,也允许为当前编码块在其相邻区域中找到一个匹配块。虽然Mode_INTRABC的提出在一定程度上提高了视频帧的压缩比,但是目前基于Mode_INTRABC模式对视频帧进行编码仍然存视频压缩比低,编码效率低的问题,进而也影响到后续解码出的视频质量。
发明内容
有鉴于此,本申请提供一种视频帧的编码及解码方法和装置,以提高视频帧编码的压缩比,提高编码效率,进而提高后续解码出的视频质量。
为实现上述目的,本申请提供如下技术方案:一种视频帧的编码方法,包括:
获取待编码的视频帧中当前待编码的当前编码单元;
从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元;
为所述当前编码单元分配初始值,并设定所述当前编码单元的运动矢量为(0,0);
将所述选取出的至少一个编码单元与分配有初始值的所述当前编码单元均作为用于确定所述当前编码单元的运动矢量所参照的候选单元,得到包含有多个所述候选单元的候选单元集合;
依次将所述候选单元集合中多个候选单元的运动矢量作为所述当前编码单元的运动矢量,并依据所述运动矢量所指向的参考编码单元的重建值或所述初始值,以及所述当前编码单元的原始值,计算所述当前编码单元与所述参考编码单元的残差;
依次依据所述残差,对所述当前编码单元进行预编码,根据预编码结果从所述候选单元集合中确定最优候选单元,其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元;
利用所述最优候选单元相对应于所述当前编码单元的索引号以及所述当前编码单元与所述最优候选单元的残差,对所述当前编码单元进行编码。
优选的,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
将所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取出1-4个编码单元。
优选的,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
从与所述当前编码相邻且已被编码的编码单元中,选取出不具有相同运动矢量的编码单元。
优选的,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
当与所述当前编码单元相邻且已被编码的编码单元均具有对应有不同的运动矢量时,则从与所述当前编码单元相邻且已被编码的编码单元中,则将去除位于所述当前编码单元右上方或者左下方的编码单元之外剩余的编码单元作为选取的编码单元。
优选的,所述为所述当前编码单元分配初始值,包括:
将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元中各行的初始值;
或者,将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元中各列的初始值;
或者,将所述视频帧中与所述当前编码单元紧邻且已被编码的目标编码单元的运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元最右一列的重建值作为所述当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列中各像素点的中间值,对所述当前编码单元中各像素点进行二维平面插值,确定所述当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
另一方面,本申请还提供了一种视频帧的解码方法,包括:
获取待解码的视频帧中当前待解码的当前编码单元;
对所述当前编码单元进行解析,得到编码过程中所述当前编码单元对应的残差,以及用于确定所述当前编码单元的运动矢量时所参照的候选单元的索引号;
依据所述索引号确定所述候选单元,并获取所述候选单元的运动矢量;
将所述运动矢量作为所述当前编码单元的运动矢量;
从所述视频帧中的编码单元中,确定所述当前编码单元的运动矢量所指向参考编码单元;
基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值。
优选的,所述基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值,包括:
当所述参考编码单元不是所述当前编码单元时,获取所述参考编码单元的重建值,并根据所述重建值和所述残差,构建所述当前编码单元的重建值。
优选的,所述基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值,包括:
当所述参考编码单元为所述当前编码单元时,为所述参考编码单元分配初始值;
根据所述初始编码值和所述残差构建所述当前编码单元的重建值。
优选的,所述为所述参考编码单元分配初始值,包括:
将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中的最下一行的重建值作为所述参考编码单元中各行的初始值;
或者,将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中的最右一列的重建值作为所述参考编码单元中各列的初始值;
或者,将所述视频帧中与所述参考编码单元紧邻且已被解码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左方的编码单元中最右一列的重建值作为所述参考编码单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元的最下一行的重建值作为所述参考编码单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考编码单元中各像素点进行二维平面插值,确定出所述参考编码单元的重建值;其中,所述目标编码单元为位于所述参考编码单元上方或者左侧的编码单元。
另一方面,本申请还提供了一种视频帧的编码装置,包括:
获取单元,用于获取待编码的视频帧中当前待编码的当前编码单元;
选取单元,用于从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元;
分配单元,用于为所述当前编码单元分配初始值,并设定所述当前编码单元的运动矢量为(0,0);
候选确定单元,用于将所述选取出的至少一个编码单元与分配有初始值的所述当前编码单元均作为用于确定所述当前编码单元的运动矢量所参照的候选单元,得到包含有多个所述候选单元的候选单元集合;
残差计算单元,用于依次将所述候选单元集合中多个候选单元的运动矢量作为所述当前编码单元的运动矢量,并依据所述运动矢量所指向的参考编码单元的重建值或所述初始值,以及所述当前编码单元的原始值,计算所述当前编码单元与所述参考编码单元的残差;
预编码单元,用于依次依据所述残差,对所述当前编码单元进行预编码,根据预编码结果从所述候选单元集合中确定最优候选单元,其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元;
编码单元,用于利用所述最优候选单元相对应于所述当前编码单元的索引号以及所述当前编码单元与所述最优候选单元的残差,对所述当前编码单元进行编码。
优选的,所述选取单元,包括:
选取数量确定单元,用于将所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取出1-4个编码单元。
优选的,所述选取单元,包括:
第一选取子单元,用于从与所述当前编码相邻且已被编码的编码单元中,选取出不具有相同运动矢量的编码单元。
优选的,所述选取单元,包括:
第二选取子单元,用于当与所述当前编码单元相邻且已被编码的编码单元均具有对应有不同的运动矢量时,则从与所述当前编码单元相邻且已被编码的编码单元中,则将去除位于所述当前编码单元右上方或者左下方的编码单元之外剩余的编码单元作为选取的编码单元。
优选的,所述分配单元,包括:
第一分配单元,用于将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元中各行的初始值;
或者,第二分配单元,用于将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元中各列的初始值;
或者,第三分配单元,用于将所述视频帧中与所述当前编码单元紧邻且已被编码的目标编码单元的运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元最右一列的重建值作为所述当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列中各像素点的中间值,对所述当前编码单元中各像素点进行二维平面插值,确定所述当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
另一方面,本申请还提供了一种视频帧的解码装置,包括:
获取单元,用于获取待解码的视频帧中当前待解码的当前编码单元;
解析单元,用于对所述当前编码单元进行解析,得到编码过程中所述当前编码单元对应的残差,以及用于确定所述当前编码单元的运动矢量时所参照的候选单元的索引号;
候选定位单元,用于依据所述索引号确定所述候选单元,并获取所述候选单元的运动矢量;
矢量确定单元,用于将所述运动矢量作为所述当前编码单元的运动矢量;
参考确定单元,用于从所述视频帧中的编码单元中,确定所述当前编码单元的运动矢量所指向参考编码单元;
重建单元,用于基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值。
优选的,所述重建单元,包括:
第一重建单元,用于当所述参考编码单元不是所述当前编码单元时,获取所述参考编码单元的重建值,并根据所述重建值和所述残差,构建所述当前编码单元的重建值。
优选的,所述重建单元,包括:
初始值分配单元,用于当所述参考编码单元为所述当前编码单元时,为所述参考编码单元分配初始值;
第二重建单元,用于根据所述初始编码值和所述残差构建所述当前编码单元的重建值。
优选的,所述初始值分配单元,包括:
第一初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中的最下一行的重建值作为所述参考编码单元中各行的初始值;
或者,第二初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中的最右一列的重建值作为所述参考编码单元中各列的初始值;
或者,第三初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且已被解码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左方的编码单元中最右一列的重建值作为所述参考编码单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元的最下一行的重建值作为所述参考编码单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考编码单元中各像素点进行二维平面插值,确定出所述参考编码单元的重建值;其中,所述目标编码单元为位于所述参考编码单元上方或者左侧的编码单元。
经由上述的技术方案可知,本申请在本申请实施例中,在获取到当前编码单元后,从与该当前编码单元相邻且已编码的编码单元中选取出至少一个编码单元,为该当前编码单元分配初始值,并设定该当前编码单元的运动矢量为(0,0);将选取出的编码单元与分配有初始值的当前编码单元作为候选参考单元,然后依次依据候选单元的运动矢量所指向的参考编码单元的重建值或初始值,计算当前编码单元与参考编码单元之间的残差,并基于得到的残差进行预编码,根据预编码结果确定出所用比特率和产生的失真最小时,该残差对应的最优候选单元,从而在后续编码过程中可以有效减少编码比特率,提高压缩比,使得编码效率提高。
同时,本申请的解码方法可以保证对通过本申请编码的视频进行解码,也使得解码出的视频的质量提高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请一种视频帧的编码方法一个实施例的流程示意图;
图2示出了候选单元相对于当前编码单元的索引号的示意图;
图3示出了本申请一种视频帧的编码方法另一个实施例的流程示意图;
图4示出了本申请一种视频帧的解码方法一个实施例的流程示意图;
图5示出了本申请一种视频帧的编码装置一个实施例的结构示意图;
图6示出了本申请一种视频帧的解码装置一个实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种视频帧的编码及解码方法和装置,以减少编码过程中的比特率,提高压缩比,进而提高解码出的视频质量。
下面首先对一种视频帧的编码方法进行介绍。
参见图1,其示出了本申请一种视频帧的编码方法一个实施例的流程示意图,本实施例的方法可以包括:
101,获取待编码的视频帧中当前待编码的当前编码单元。
其中,视频帧可以包括I帧、P帧、B帧这三种类型的视频帧中的任意一种。
在实际对视频帧进行编码时,一般将视频帧切分为多个互补重叠的最大区域,每个区域可以称为一个最大编码单元(LCU,LargeCodeUnit),将最大的基本区域再进一步划分为更小的区域,如,通过四叉树将最大基本单元进行划分,则得到的基本编码单元(CU,CodeUnit)。在进行编码时,是依次对划分出的各个编码单元进行编码。
为了便于区别,在本申请实施例中,将需要编码的视频帧中当前时刻待编码的编码单元称为当前编码单元。
102,从该视频帧中与该当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元。
由于与该当前编码单元相邻且已被编码的编码单元与该当前编码单元的相关性较大,且这些编码单元在被编码过程中已经确定出相应的运动矢量。这样后续依据该选取出的编码单元的运动矢量能够反映出该当前编码单元的运动矢量,从而可以将选取出的编码单元作为确定该当前编码单元的运动矢量的候选单元。
103,为该当前编码单元分配初始值,并设定该当前编码单元的运动矢量为(0,0)。
需要说明的是,步骤103和步骤102的先后顺序并不限于图1所示,步骤102和步骤103的顺序可以互换,也可以同时进行。
在本申请实施例中,为当前编码单元分配一个初始值,该初始值相当于该当前编码单元在该参考区域中预估的编码值,即预估的重建值。可以理解的是,当编码单元被编码后,该编码单元中各个像素点均有对应的编码值,编码单元中各像素点被编码后的值称为重建值,编码单元的重建值即为该编码单元中各行以及各列像素点位置被编码后的编码值。
设定当前编码单元的运动矢量为(0,0),使得该当前编码单元的运动矢量所指向的参考编码单元(即俗称的参考块)仍为自身,这样后续将分配有初始值的当前编码单元作为该当前编码单元的候选单元后,该具有初始值的当前编码单元也就是该当前编码单元的参考编码单元,而由于具有初始值的当前编码单元与待编码的当前编码单元处于视频帧的同一位置,二者相关性最大,如果最终确定出利用该具有初始值的当前编码单元确定为该待编码的当前编码单元的参考编码单元,有利于进一步减少编码比特率,提高压缩效率。
104,将该选取出的至少一个编码单元与分配有初始值的当前编码单元均作为用于确定该当前编码单元的运动矢量所参照的候选单元,得到包含有多个候选单元的候选单元集合。
105,依次将该候选单元集合中多个候选单元的运动矢量作为该当前编码单元的运动矢量,并依据该运动矢量所指向的参考编码单元的重建值或初始值,以及该当前编码单元的原始值,计算该当前编码单元与该参考编码单元的残差。
对于任意一个候选单元,将该候选单元的运动矢量作为该当前编码单元的运动矢量,这样该候选单元进行编码时所依据的参考编码单元也就是该当前编码单元所依据的参考编码单元。如果当前时刻候选单元的位置即为当前编码单元,则该当前编码单元的运动矢量是(0,0),该当前编码单元的运动矢量所指向的参考编码单元即为该当前编码单元自身的位置,此时,可以获取到该参考编码单元的初始值,计算该初始值与该当前编码单元的原始值的差值,得到对应的残差。
如果当前时刻候选单元不是当前编码单元,则可以获取到该候选单元的运动矢量所指向的参考编码单元中的重建值,计算该参考编码单元的重建值与该当前编码单元的原始值的差值,得到残差。
依次将每个候选单元的运动矢量作为当前编码单元的运动矢量,然后可以确定出该当前编码单元对应的多个参考编码单元,进而计算出多个残差。
106,依次依据残差,对当前编码单元进行预编码,根据预编码结果从候选单元集合中确定最优候选单元。
其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元。
依次基于步骤105中得到多个残差,对当前编码单元进行预编码,这样可以得到多个预编码结果,根据预编码结果可以选取出编码代价最小时,该预编码所依据的残差,进而确定出与该残差对应的最优参考编码单元,进一步,确定运动矢量指向该最优参考编码单元的最优候选单元。
可以理解的是,预编码过程中的编码代价最小也就是采用预编码的方式进行编码决策,以确定依据哪个残差进行编码为最优方式。其中,编码代价最小则可以认为是该比特率与失真之和最低,具体的,失真与指定系数的乘积和该比特率之和最低。根据残差对当前编码单元进行预编码,以及根据预编码结果确定出最优候选单元的过程可以与现有的方式相似,在此不再赘述。
107,利用该最优候选单元相对应于当前编码单元的索引号以及当前编码单元与最优候选单元的残差,对该当前编码单元进行编码。
确定出该最优候选单元后,在对当前编码单元进行编码时,为了进一步提高压缩比,在编码过程中可以仅仅编入该最优候选单元相对于该当前编码单元的索引号以及相应的残差。
其中,该候选单元相对于该当前编码单元的索引号是指,在与该当前编码单元相邻的编码单元中,用于标示出该候选单元的标识号。如图2所示,当前编码单元为图2中正中间的编码单元,即第二行第二列的编码单元,也就是图2中编码单元C5所在位置。假设该当前编码单元对应的候选单元包括有编码单元C0-C3以及C5,编码单元上的标号C0、C1、C2、C3和C5即为该候选单元的索引号。假设最优候选编码单元为编码单元C0,则编码时需要将该索引号C0编入到编码中。当然,该图2仅仅是一个示例,索引号也可以是其他形式,只要是能够根据索引号确定出该候选单元相对于该当前编码单元所在的位置即可。
对当前编码单元进行编码后,编码后的结果中包含了该最优候选单元的索引号,以及该当前编码单元与该最优候选单元之间的残差。
在本申请实施例中,在获取到当前编码单元后,从与该当前编码单元相邻且已编码的编码单元中选取出至少一个编码单元,为该当前编码单元分配初始值,并设定该当前编码单元的运动矢量为(0,0);将选取出的编码单元与分配有初始值的当前编码单元作为候选参考单元,然后依次依据候选单元的运动矢量所指向的参考编码单元的重建值或初始值,计算当前编码单元与参考编码单元之间的残差,并基于得到的残差进行预编码,根据预编码结果确定出所用比特率和产生的失真最小时,该残差对应的最优候选单元,从而在后续编码过程中可以有效减少编码比特率,提高压缩比,使得编码效率提高。
可以理解的是,综合编码效率和预编码过程中的耗时,在从视频帧中与该当前编码单元相邻且已被编码的编码单元中,选取编码单元的个数一般亦应该超过四个,即可以选取出1-4个编码单元,从而使得最终候选单元的个数不超过五个。
可选的,在视频帧中与该当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元的过程中,可以根据与该当前编码单元相邻且已被编码的编码单元的运动矢量是否存在重复来进行选取。如,选取出的编码单元应该具有不同运动矢量,这是因为如果选取出的编码单元具有相同的运动矢量,则该编码单元的运动矢量所指向的参考编码单元相同,这样后续计算残差也相同,造成了重复计算,且对确定最后候选单元以及对最终编码没有积极意义。
进一步,在实际应用中,可以确定出与该当前编码单元相邻且已被编码的编码单元后,可以将确定出的这些编码单元均作为待选编码单元,然后比较待选编码单元的运动矢量,如果存在对应的运动矢量相同的待选编码单元,则仅从存在运动矢量相同的待选编码单元中随意选取出一个编码单元,从而使得最终选取出的编码单元的运动矢量均不相同。
可选的,当与该当前编码单元相邻且已被编码的编码单元均具有对应有不同的运动矢量时,则可以从与该当前编码单元相邻且已被编码的编码单元中,将去除位于该当前编码单元右上方或者左下方的编码单元之外剩余的编码单元作为选取的编码单元。由于与其他与该当前编码单元相邻且已被编码的编码单元相比,位于该当前编码单元右上方或左下方的编码单元与该当前编码单元的相关性相对较小,而为了避免能够最大限度的提高编码中的压缩比,并降低编码时间,需要使得选取出的编码单元不超过五个,在此基础上,则可以不选取该当前编码单元右上方或者左下方的编码单元。
为了便于理解,参见图3,其示出了本申请一种视频帧的编码方法另一个实施例的流程示意图,本实施例的方法可以包括:
301,获取待编码的视频帧中当前待编码的当前编码单元。
302,将与该视频帧中与该当前编码单元相邻且已被编码的编码单元作为待选编码单元。
303,当待选编码单元的运动矢量存在重复,则仅保留相同运动矢量待选编码单元中的一个待选编码单元,并将最终保留的待选编码单元作为选取的编码单元。
为了便于理解,仍以图2为例,在该图2中,假设编码单元C0-C4都已经被编码,则这五个编码单元可以先都作为待选编码单元。假设编码单元C1和编码单元C3的运动矢量相同;而C0、C2、C4运动矢量均不相同,且均与C1和C3的运动矢量不同,则去除编码单元C1或C3,假设去除C1,则最终剩余编码单元C0,C2-C4,这四个编码单元作为选取出的编码单元。
304,当待选编码单元的运动矢量不存在重复,且待选编码单元中存在位于该当前编码单元右上方和左下方的编码单元时,则将去除位于该当前编码单元右上方或者左下方的待选编码单元之外剩余的待选编码单元作为选取的编码单元。
如果待选编码单元的运动矢量不存在重复,且该待选编码单元中待选编码单元中存在位于该当前编码单元右上方和左下方的编码单元时,则说明当前待选编码单元的总个数超过四个,如果将所有的待选编码单元均作为选取出的编码单元与后续分配初始值的当前编码单元组合成候选单元,则候选单元的数量超过五个,不利于降低预编码耗时。因此,可以将待选编码单元中,位于该当前编码单元右上方或者左下方的待选编码单元去除,将剩余的待选编码单元作为选取出的编码单元。
仍以图2为例,,假设编码单元C0-C4都已经被编码,则这五个编码单元可以先都作为待选编码单元,则可以将编码单元C2或编码单元C4去除,假设去除编码单元C4,则可以将编码单元C0-C3作为选取出的编码单元。
305,为该当前编码单元分配初始值,并设定该当前编码单元的运动矢量为(0,0)。
306,将该选取出的至少一个编码单元与分配有初始值的当前编码单元均作为用于确定该当前编码单元的运动矢量所参照的候选单元,得到包含有多个候选单元的候选单元集合。
307,依次将该候选单元集合中多个候选单元的运动矢量作为该当前编码单元的运动矢量,并依据该运动矢量所指向的参考编码单元的重建值或初始值,以及该当前编码单元的原始值,计算该当前编码单元与该参考编码单元的残差。
308,依次依据残差,对当前编码单元进行预编码,根据预编码结果从候选单元集合中确定最优候选单元。
其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元。
309,利用该最优候选单元相对应于当前编码单元的索引号以及当前编码单元与最优候选单元的残差,对该当前编码单元进行编码。
可以理解的是,在本申请以上任意一个编码方法的实施例中,考虑到在视频帧中,该当前编码单元被编码后得到的重建值与该当前编码单元相邻的编码单元的重建值较为接近,则可以依据与该当前编码单元相邻且已被编码的编码单元的重建值,为该当前编码单元分配初始值。
可选的,可以将该视频帧中与当前编码单元紧邻且位于该当前编码单元上方的编码单元中最下面一行的重建值作为该当前编码单元各行的初始值。可以理解的是,编码单元实际上可以是包含多个像素点的区域,这些像素点成行列排布,对编码单元进行编码后,该编码单元每个像素点均对应有一个重建值,相应的,该编码单元中由多个像素点排列成的行或列也有对应的重建值。由于与该编码单元相邻且位于该编码单元上方的编码单元中最下面一行最邻近该当前编码单元,所以可以将该最下面一行对应的重建值作为该当前编码单元各行的初始值。也就是说,将该最下面一行中各像素点的重建值进行复制,然后依次对该当前编码单元各行的点进行赋值,从而使得该当前编码单元中同一列的初始值相同,且该当前编码单元每一行中各点的重建值均与该当前编码单元上方的编码单元中最下面一行中各点重建值相同。
可选的,也可以是将该视频帧中与当前编码单元紧邻且位于该当前编码单元左侧的编码单元中最右一列的重建值作为该当前编码单元各列的初始值。如仍以图2为例,与当前编码单元紧邻且位于该当前编码单元左侧的编码单元为编码单元C3,而该编码单元C3中有若干行以及若干列像素值组成,即编码后的多行以及多列重建值组成,则可以将该编码单元C3中位于最右侧一列中各点重建值作为该当前编码单元中各列的初始值。其中,编码单元C3中最右一列上各点的重建值与为当前编码单元各列上各点的初始值一一对应。
可选的,也可以是先从该视频帧中与该当前编码单元紧邻且已被编码的编码单元中确定一个目标编码单元,该目标编码单元可以为位于该当前编码单元上方或者左侧的编码单元。则可以先对该目标编码单元对应的运动矢量的横坐标和纵坐标进行比较。如果该横坐标大于纵坐标,则将视频帧中与该当前编码单元紧邻且位于该当前编码单元左侧的编码单元中最右一列的重建值作为该当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考单元紧邻且位于所述参考单元左侧的编码单元中最右一列中各像素点的中间值,对所述参考单元中各像素点进行二维平面插值,确定该当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
为了对采用本申请的视频帧的编码方法进行编码的视频帧进行解码,本申请还提供了一种视频帧的解码方法。本申请的视频帧的解码方法对基于本申请的视频帧的编码方法为进行编码的视频帧进行解码。通过该解码方法,能够保证采用本申请的视频帧的编码方法压缩出的视频帧能够被接收端进行解码,以提高最终播放的视频的质量。
参见图4,其示出了本申请一种视频帧的解码方法一个实施例的流程示意图,本实施例的方法可以包括:
401,获取待解码的视频帧中当前待解码的当前编码单元。
确定出当前需要解码的编码单元,为了便于区分,将其称为待解码的当前编码单元。
402,对当前编码单元进行解析,得到编码过程中所述当前编码单元对应的残差,以及用于确定该当前编码单元的运动矢量时所参照的候选单元的索引号。
由于本申请在编码过程中编入了残差以及候选单元的索引号,则在解码过程中可以解析出该当前编码单元与参考编码单元之间的残差,即该当前编码单元所对应的残差,以及确定该当前编码单元的运动矢量时,该运动矢量为哪个候选单元的运动矢量。
403,依据所述索引号确定所述候选单元,并获取所述候选单元的运动矢量。
由于候选单元的索引号是相对于该当前编码单元所在位置的标识号,根据该索引号便可以确定出该候选单元相对于该当前编码单元所在位置,进而确定出该索引号所对应的候选单元。
如图2所示,假设解析出的索引号为C0,则说明编码过程中最终确定出最优候选编码单元为编码单元C0,即以该编码单元C0的运动矢量作为该当前编码单元的运动矢量。这样,依据索引号可以确定出该索引号对应的候选单元为与该当前编码单元紧邻且位于当前编码单元左上方的编码单元。
404,将该运动矢量作为该当前编码单元的运动矢量。
确定出候选单元后,便可以提取出该候选单元的运动矢量,该运动矢量也是该当前编码单元在编码过程中的运动矢量。
405,从该视频帧中的编码单元中,确定该当前编码单元的运动矢量所指向参考编码单元。
依据该当前编码单元的运动矢量,可以确定该运动矢量所指向的参考编码单元,即当前编码单元所对应的残差,是将该当前编码单元的初始值与哪个编码单元的重建值相减得到的。
406,基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值。
根据参考编码单元的信息以及解析出残差后,便可以构建出当前编码单元的重建值,完成解码过程。
通过本申请实施例的视频帧的解码方法可以实现对本申请的视频帧的编码方法编码出视频帧进行解码,从而保证编码后的视频流能够被正常播放,同时由于采用本申请的编码方法对视频帧进行编码,可以提高编码精度和编码效率,从而使得有利于提高解码出的视频的质量。
根据编码过程可知,如果候选单元可以是当前编码单元也可以不是当前编码单元。
可选的,当该候选单元不是当前编码单元时,该候选单元的运动矢量所指向的参考编码单元也不是当前编码单元,此时该参考编码单元具有相应的重建值,获取该参考编码单元的重建值后,并根据该重建值和解析出的残差,便可以构建所述当前编码单元的重建值。确定出参考编码单元的重建值后,利用重建值和解析出的残差,构建该当前编码单元的重建值的过程与现有的方式相似,在此不再赘述。
特别的,当该参考编码单元为当前编码单元时,与编码过程相对应,需要为该参考编码单元分配初始值;然后根据所述初始编码值和所述残差构建所述当前编码单元的重建值。
与编码方法相对应,在本申请任意一个视频帧的解码方法的实施例中,可以依据与该当前编码单元相邻且已被解码的编码单元的重建值,为该参考编码单元分配初始值。
可选的,一种确定该初始值的方式可以为:将该视频帧中与该参考编码单元紧邻且位于参考编码单元上方的编码单元中最下一行的重建值作为该参考编码单元各行的初始值。
可选的,另一种确定该初始值的方式可以为:将该视频帧中与该参考编码单元紧邻且位于该参考编码单元左侧的编码单元中最右一列的重建值作为该参考编码单元各列的初始值。
可选的,也可以是先从该视频帧中与该参考编码单元紧邻且已被解码的编码单元中确定一个目标编码单元,该目标编码单元可以为位于该当前编码单元上方或者左侧的编码单元。则可以先对该目标编码单元对应的运动矢量的横坐标和纵坐标进行比较。如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左方编码单元最右一列的重建值作为所述参考编码单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考单元紧邻且位于所述参考编码单元上方的编码单元最下一行的重建值作为所述参考编码单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考单元紧邻且位于所述参考单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考编码单元紧邻且位于所述参考单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考编码单元中各像素点进行二维平面插值,确定出所述参考编码单元的重建值;其中,所述目标编码单元为位于所述当前编码单元即该参考编码单元上方或者左侧的编码单元。
对应本申请的一种视频帧的编码方法,本申请还提供了一种视频帧的编码装置。
参见图5,其示出了本申请一种视频帧的编码装置一个实施例的结构示意图,本实施例的编码装置可以包括:
获取单元501,用于获取待编码的视频帧中当前待编码的当前编码单元;
选取单元502,用于从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元;
分配单元503,用于为所述当前编码单元分配初始值,并设定所述当前编码单元的运动矢量为(0,0);
候选确定单元504,用于将所述选取出的至少一个编码单元与分配有初始值的所述当前编码单元均作为用于确定所述当前编码单元的运动矢量所参照的候选单元,得到包含有多个所述候选单元的候选单元集合;
残差计算单元505,用于依次将所述候选单元集合中多个候选单元的运动矢量作为所述当前编码单元的运动矢量,并依据所述运动矢量所指向的参考编码单元的重建值或所述初始值,以及所述当前编码单元的原始值,计算所述当前编码单元与所述参考编码单元的残差;
预编码单元506,用于依次依据所述残差,对所述当前编码单元进行预编码,根据预编码结果从所述候选单元集合中确定最优候选单元,其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元;
编码单元507,用于利用所述最优候选单元相对应于所述当前编码单元的索引号以及所述当前编码单元与所述最优候选单元的残差,对所述当前编码单元进行编码。
在本申请实施例中,在获取到当前编码单元后,从与该当前编码单元相邻且已编码的编码单元中选取出至少一个编码单元,为该当前编码单元分配初始值,并设定该当前编码单元的运动矢量为(0,0);将选取出的编码单元与分配有初始值的当前编码单元作为候选参考单元,然后依次依据候选单元的运动矢量所指向的参考编码单元的重建值或初始值,计算当前编码单元与参考编码单元之间的残差,并基于得到的残差进行预编码,根据预编码结果确定出所用比特率和产生的失真最小时,该残差对应的最优候选单元,从而在后续编码过程中可以有效减少编码比特率,提高压缩比,使得编码效率提高。
可选的,所述选取单元,具体包括:
选取数量确定单元,用于将所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取出1-4个编码单元。
可选的,所述选取单元,可以包括:
第一选取子单元,用于从与所述当前编码相邻且已被编码的编码单元中,选取出不具有相同运动矢量的编码单元。
可选的,所述选取单元,可以包括:
第二选取子单元,用于当与所述当前编码单元相邻且已被编码的编码单元均具有对应有不同的运动矢量时,则从与所述当前编码单元相邻且已被编码的编码单元中,则将去除位于所述当前编码单元右上方或者左下方的编码单元之外剩余的编码单元作为选取的编码单元。
可选的,在以上任意一个编码装置的实施例中,所述分配单元,可以包括:
第一分配单元,用于将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元中各行的初始值;
或者,第二分配单元,用于将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元中各列的初始值;
或者,第三分配单元,用于将所述视频帧中与所述当前编码单元紧邻且已被编码的目标编码单元的运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元最右一列的重建值作为所述当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列中各像素点的中间值,对所述当前编码单元中各像素点进行二维平面插值,确定所述当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
对应本申请的一种视频帧的解码方法,本申请还提供了一种视频帧的解码装置。
参加图6,其示出了本申请一种视频帧的解码装置一个实施例的结构示意图,本实施例的装置可以包括:
获取单元601,用于获取待解码的视频帧中当前待解码的当前编码单元;
解析单元602,用于对所述当前编码单元进行解析,得到编码过程中所述当前编码单元对应的残差,以及用于确定所述当前编码单元的运动矢量时所参照的候选单元的索引号;
候选定位单元603,用于依据所述索引号确定所述候选单元,并获取所述候选单元的运动矢量;
矢量确定单元604,用于将所述运动矢量作为所述当前编码单元的运动矢量;
参考确定单元605,用于从所述视频帧中的编码单元中,确定所述当前编码单元的运动矢量所指向参考编码单元;
重建单元606,用于基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值。
通过本申请实施例的视频帧的解码装置可以实现对本申请的视频帧的编码装置编码出视频帧进行解码,从而保证编码后的视频流能够被正常播放,同时由于采用本申请的编码装置对视频帧进行编码,可以提高编码精度和编码效率,从而使得有利于提高解码出的视频的质量。
可选的,所述重建单元,包括:
第一重建单元,用于当所述参考编码单元不是所述当前编码单元时,获取所述参考编码单元的重建值,并根据所述重建值和所述残差,构建所述当前编码单元的重建值。
可选的,所述重建单元,包括:
初始值分配单元,用于当所述参考编码单元为所述当前编码单元时,为所述参考编码单元分配初始值;
第二重建单元,用于根据所述初始编码值和所述残差构建所述当前编码单元的重建值。
进一步的,所述初始值分配单元,可以包括:
第一初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中的最下一行的重建值作为所述参考编码单元中各行的初始值;
或者,第二初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中的最右一列的重建值作为所述参考编码单元中各列的初始值;
或者,第三初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且已被解码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左方的编码单元中最右一列的重建值作为所述参考编码单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元的最下一行的重建值作为所述参考编码单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考编码单元中各像素点进行二维平面插值,确定出所述参考编码单元的重建值;其中,所述目标编码单元为位于所述参考编码单元上方或者左侧的编码单元。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (18)
1.一种视频帧的编码方法,其特征在于,包括:
获取待编码的视频帧中当前待编码的当前编码单元;
从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元;
为所述当前编码单元分配初始值,并设定所述当前编码单元的运动矢量为(0,0);
将所述选取出的至少一个编码单元与分配有初始值的所述当前编码单元均作为用于确定所述当前编码单元的运动矢量所参照的候选单元,得到包含有多个所述候选单元的候选单元集合;
依次将所述候选单元集合中多个候选单元的运动矢量作为所述当前编码单元的运动矢量,并依据所述运动矢量所指向的参考编码单元的重建值或所述初始值,以及所述当前编码单元的原始值,计算所述当前编码单元与所述参考编码单元的残差;
依次依据所述残差,对所述当前编码单元进行预编码,根据预编码结果从所述候选单元集合中确定最优候选单元,其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元;
利用所述最优候选单元相对应于所述当前编码单元的索引号以及所述当前编码单元与所述最优候选单元的残差,对所述当前编码单元进行编码。
2.根据权利要求1所述的方法,其特征在于,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
将所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取出1-4个编码单元。
3.根据权利要求1或2所述的方法,其特征在于,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
从与所述当前编码相邻且已被编码的编码单元中,选取出不具有相同运动矢量的编码单元。
4.根据权利要求1或2所述的方法,其特征在于,所述从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元,包括:
当与所述当前编码单元相邻且已被编码的编码单元均具有对应有不同的运动矢量时,则从与所述当前编码单元相邻且已被编码的编码单元中,将去除位于所述当前编码单元右上方或者左下方的编码单元之外剩余的编码单元作为选取的编码单元。
5.根据权利要求1所述的方法,其特征在于,所述为所述当前编码单元分配初始值,包括:
将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元中各行的初始值;
或者,将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元中各列的初始值;
或者,将所述视频帧中与所述当前编码单元紧邻且已被编码的目标编码单元的运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元最右一列的重建值作为所述当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列中各像素点的中间值,对所述当前编码单元中各像素点进行二维平面插值,确定所述当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
6.一种视频帧的解码方法,其特征在于,包括:
获取待解码的视频帧中当前待解码的当前编码单元;
对所述当前编码单元进行解析,得到编码过程中所述当前编码单元对应的残差,以及用于确定所述当前编码单元的运动矢量时所参照的候选单元的索引号;
依据所述索引号确定所述候选单元,并获取所述候选单元的运动矢量;
将所述运动矢量作为所述当前编码单元的运动矢量;
从所述视频帧中的编码单元中,确定所述当前编码单元的运动矢量所指向参考编码单元;
基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值。
7.根据权利要求6所述的方法,其特征在于,所述基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值,包括:
当所述参考编码单元不是所述当前编码单元时,获取所述参考编码单元的重建值,并根据所述重建值和所述残差,构建所述当前编码单元的重建值。
8.根据权利要求6或7所述的方法,其特征在于,所述基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值,包括:
当所述参考编码单元为所述当前编码单元时,为所述参考编码单元分配初始值;
根据所述初始编码值和所述残差构建所述当前编码单元的重建值。
9.根据权利要求8所述的方法,其特征在于,所述为所述参考编码单元分配初始值,包括:
将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中的最下一行的重建值作为所述参考编码单元中各行的初始值;
或者,将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中的最右一列的重建值作为所述参考编码单元中各列的初始值;
或者,将所述视频帧中与所述参考编码单元紧邻且已被解码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左方的编码单元中最右一列的重建值作为所述参考编码单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中的最下一行的重建值作为所述参考编码单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考编码单元中各像素点进行二维平面插值,确定出所述参考编码单元的重建值;其中,所述目标编码单元为位于所述参考编码单元上方或者左侧的编码单元。
10.一种视频帧的编码装置,其特征在于,包括:
获取单元,用于获取待编码的视频帧中当前待编码的当前编码单元;
选取单元,用于从所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取至少一个编码单元;
分配单元,用于为所述当前编码单元分配初始值,并设定所述当前编码单元的运动矢量为(0,0);
候选确定单元,用于将所述选取出的至少一个编码单元与分配有初始值的所述当前编码单元均作为用于确定所述当前编码单元的运动矢量所参照的候选单元,得到包含有多个所述候选单元的候选单元集合;
残差计算单元,用于依次将所述候选单元集合中多个候选单元的运动矢量作为所述当前编码单元的运动矢量,并依据所述运动矢量所指向的参考编码单元的重建值或所述初始值,以及所述当前编码单元的原始值,计算所述当前编码单元与所述参考编码单元的残差;
预编码单元,用于依次依据所述残差,对所述当前编码单元进行预编码,根据预编码结果从所述候选单元集合中确定最优候选单元,其中,最优候选单元为运动矢量指向最优参考编码单元的候选单元,最优参考编码单元为在预编码过程中产生的比特率和失真之和最低时,所述预编码所依据的残差对应的参考编码单元;
编码单元,用于利用所述最优候选单元相对应于所述当前编码单元的索引号以及所述当前编码单元与所述最优候选单元的残差,对所述当前编码单元进行编码。
11.根据权利要求10所述的装置,其特征在于,所述选取单元,包括:
选取数量确定单元,用于将所述视频帧中与所述当前编码单元相邻且已被编码的编码单元中,选取出1-4个编码单元。
12.根据权利要求10或11所述的装置,其特征在于,所述选取单元,包括:
第一选取子单元,用于从与所述当前编码相邻且已被编码的编码单元中,选取出不具有相同运动矢量的编码单元。
13.根据权利要求10或11所述的装置,其特征在于,所述选取单元,包括:
第二选取子单元,用于当与所述当前编码单元相邻且已被编码的编码单元均具有对应有不同的运动矢量时,则从与所述当前编码单元相邻且已被编码的编码单元中,则将去除位于所述当前编码单元右上方或者左下方的编码单元之外剩余的编码单元作为选取的编码单元。
14.根据权利要求10所述的装置,其特征在于,所述分配单元,包括:
第一分配单元,用于将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行的重建值作为所述当前编码单元中各行的初始值;
或者,第二分配单元,用于将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元中各列的初始值;
或者,第三分配单元,用于将所述视频帧中与所述当前编码单元紧邻且已被编码的目标编码单元的运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列的重建值作为所述当前编码单元各列的初始值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元最下一行的重建值作为所述当前编码单元各行的初始值;如果所述横坐标等于所述纵坐标,则根据与所述当前编码单元紧邻且位于所述当前编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述当前编码单元紧邻且位于所述当前编码单元左侧的编码单元中最右一列中各像素点的中间值,对所述当前编码单元中各像素点进行二维平面插值,确定所述当前编码单元的初始值;其中,所述目标编码单元为位于所述当前编码单元上方或者左侧的编码单元。
15.一种视频帧的解码装置,其特征在于,包括:
获取单元,用于获取待解码的视频帧中当前待解码的当前编码单元;
解析单元,用于对所述当前编码单元进行解析,得到编码过程中所述当前编码单元对应的残差,以及用于确定所述当前编码单元的运动矢量时所参照的候选单元的索引号;
候选定位单元,用于依据所述索引号确定所述候选单元,并获取所述候选单元的运动矢量;
矢量确定单元,用于将所述运动矢量作为所述当前编码单元的运动矢量;
参考确定单元,用于从所述视频帧中的编码单元中,确定所述当前编码单元的运动矢量所指向参考编码单元;
重建单元,用于基于所述参考编码单元以及所述残差,构建所述当前编码单元的重建值。
16.根据权利要求15所述的装置,其特征在于,所述重建单元,包括:
第一重建单元,用于当所述参考编码单元不是所述当前编码单元时,获取所述参考编码单元的重建值,并根据所述重建值和所述残差,构建所述当前编码单元的重建值。
17.根据权利要求15或16所述的装置,其特征在于,所述重建单元,包括:
初始值分配单元,用于当所述参考编码单元为所述当前编码单元时,为所述参考编码单元分配初始值;
第二重建单元,用于根据所述初始编码值和所述残差构建所述当前编码单元的重建值。
18.根据权利要求17所述的装置,其特征在于,所述初始值分配单元,包括:
第一初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中的最下一行的重建值作为所述参考编码单元中各行的初始值;
或者,第二初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中的最右一列的重建值作为所述参考编码单元中各列的初始值;
或者,第三初始值分配单元,用于将所述视频帧中与所述参考编码单元紧邻且已被解码的目标编码单元运动矢量的横坐标和纵坐标进行比较,如果所述横坐标大于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元左方的编码单元中最右一列的重建值作为所述参考编码单元中各列的重建值;如果所述横坐标小于所述纵坐标,则将所述视频帧中与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元的最下一行的重建值作为所述参考编码单元中各行的重建值;如果所述横坐标等于所述纵坐标,则根据与所述参考编码单元紧邻且位于所述参考编码单元上方的编码单元中最下一行中各像素点的重建值,以及与所述参考编码单元紧邻且位于所述参考编码单元左侧的编码单元中最右一列中各像素点的重建值,对所述参考编码单元中各像素点进行二维平面插值,确定出所述参考编码单元的重建值;其中,所述目标编码单元为位于所述参考编码单元上方或者左侧的编码单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410368024.2A CN105338363B (zh) | 2014-07-30 | 2014-07-30 | 一种视频帧的编码及解码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410368024.2A CN105338363B (zh) | 2014-07-30 | 2014-07-30 | 一种视频帧的编码及解码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105338363A true CN105338363A (zh) | 2016-02-17 |
CN105338363B CN105338363B (zh) | 2018-12-14 |
Family
ID=55288592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410368024.2A Active CN105338363B (zh) | 2014-07-30 | 2014-07-30 | 一种视频帧的编码及解码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105338363B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460859A (zh) * | 2019-08-21 | 2019-11-15 | 浙江大华技术股份有限公司 | 历史运动矢量列表的使用方法、编解码器及存储装置 |
WO2024119821A1 (zh) * | 2022-12-09 | 2024-06-13 | 腾讯科技(深圳)有限公司 | 视频数据处理方法、装置、存储介质、设备和程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924938A (zh) * | 2010-08-11 | 2010-12-22 | 上海交通大学 | 视频解码宏块预测与边界滤波中相邻块信息的处理方法 |
CN102763418A (zh) * | 2009-12-20 | 2012-10-31 | Lg电子株式会社 | 视频信号解码方法和设备 |
WO2013037489A1 (en) * | 2011-09-12 | 2013-03-21 | Canon Kabushiki Kaisha | Deriving reference mode values and encoding and decoding information representing prediction modes |
US20130279819A1 (en) * | 2009-01-23 | 2013-10-24 | Sk Telecom Co., Ltd. | Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same |
-
2014
- 2014-07-30 CN CN201410368024.2A patent/CN105338363B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130279819A1 (en) * | 2009-01-23 | 2013-10-24 | Sk Telecom Co., Ltd. | Method and apparatus for selectively encoding/decoding syntax elements, and apparatus and method for image encoding/decoding using same |
CN102763418A (zh) * | 2009-12-20 | 2012-10-31 | Lg电子株式会社 | 视频信号解码方法和设备 |
CN101924938A (zh) * | 2010-08-11 | 2010-12-22 | 上海交通大学 | 视频解码宏块预测与边界滤波中相邻块信息的处理方法 |
WO2013037489A1 (en) * | 2011-09-12 | 2013-03-21 | Canon Kabushiki Kaisha | Deriving reference mode values and encoding and decoding information representing prediction modes |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460859A (zh) * | 2019-08-21 | 2019-11-15 | 浙江大华技术股份有限公司 | 历史运动矢量列表的使用方法、编解码器及存储装置 |
CN110460859B (zh) * | 2019-08-21 | 2022-03-25 | 浙江大华技术股份有限公司 | 历史运动矢量列表的使用方法、编解码器及存储装置 |
WO2024119821A1 (zh) * | 2022-12-09 | 2024-06-13 | 腾讯科技(深圳)有限公司 | 视频数据处理方法、装置、存储介质、设备和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN105338363B (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102972028B (zh) | 新的帧内预测模式 | |
US10750169B2 (en) | Method and apparatus for intra chroma coding in image and video coding | |
US10805644B2 (en) | Device and method for entropy encoding and decoding | |
CN102918844B (zh) | 增强的帧内预测模式信令 | |
JP3195966B2 (ja) | ベクトル量子化とランレングスコード化の両方を使用し、さらに適応ランレングスコード化を使用したデータのコード化方法及びその装置 | |
CN104429067B (zh) | 通过预测当前块的划分进行视频编码的方法、解码方法、编码和解码装置及其相应的介质 | |
US20180041760A1 (en) | Method and apparatus for processing video signal using graph-based transform | |
CN104396259A (zh) | 图像编码装置、图像编码方法及记录介质、图像解码装置、图像解码方法及记录介质 | |
CN110191338A (zh) | 在索引图编码中将跳出像素作为预测器的方法 | |
CN103069802B (zh) | 重构图像的当前块的方法和对应的编码方法、对应的装置 | |
CN100546381C (zh) | 用于数字视频加水印的色彩选择方案 | |
US9912964B2 (en) | Method of texture dependent depth partition | |
GB0011597D0 (en) | Video coding | |
CN103456033A (zh) | 用于三维(3d)图像的图像处理设备和方法 | |
CN101877792B (zh) | 帧内模式预测方法与装置、编码器 | |
JP2017506463A (ja) | エンコーディング方法及び装置並びにデコーディング方法及び装置 | |
CN101969561A (zh) | 一种帧内模式选取方法、装置及一种编码器 | |
CN106454349A (zh) | 一种基于h.265视频编码的运动估计块匹配方法 | |
CN102484699A (zh) | 对图像进行编码和解码的方法、用于编码和解码的对应装置以及计算机程序 | |
CN107005691A (zh) | 使用从图模板导出的变换来对视频信号进行编码/解码的方法和装置 | |
CN101710985A (zh) | 一种用于图像编码的图像亮度补偿方法 | |
CN109005412B (zh) | 运动矢量获取的方法及设备 | |
CN105338363A (zh) | 一种视频帧的编码及解码方法和装置 | |
CN110677644B (zh) | 一种视频编码、解码方法及视频编码帧内预测器 | |
CN110463204A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |