CN101841701A - 基于宏块对的编解码方法及装置 - Google Patents
基于宏块对的编解码方法及装置 Download PDFInfo
- Publication number
- CN101841701A CN101841701A CN 200910080389 CN200910080389A CN101841701A CN 101841701 A CN101841701 A CN 101841701A CN 200910080389 CN200910080389 CN 200910080389 CN 200910080389 A CN200910080389 A CN 200910080389A CN 101841701 A CN101841701 A CN 101841701A
- Authority
- CN
- China
- Prior art keywords
- interpolation coefficient
- reference frame
- virtual reference
- sign
- group
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种基于宏块对的编解码方法及装置,包括:编码端在保存的若干组插值滤波系数中,为需要进行插值处理的宏块对选择对应的一组插值滤波系数,并利用所述一组插值滤波系数对所述宏块对进行插值处理,还在编码码流中写入所述一组插值滤波系数对应的插值系数标志。对应的,在解码端便可以根据所述插值系数标志确定对应的一组插值滤波系数,以进行相应的解码操作。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于宏块对的编解码方法及装置。
背景技术
在视频编解码框架中,采用运动估计的过程中,具体是在编码时以宏块(图像块)为单位在参考图像中搜索合适的匹配图像块,将当前宏块与匹配图像块所对应像素值相减得到残差,并将该残差经变换与量化后得到的值进行熵编码,最后将熵编码得到的比特流写入编码码流中,同时还将搜索所得的偏移量(即运动矢量)一并写入编码码流中。在解码端获得熵编码比特流后进行熵解码,得到相应的残差,及相应的运动矢量,之后,根据运动矢量值在参考图像中获得相应匹配图像块,再将匹配图像块与残差值中对应像素点的值相加得到当前宏块解码后的值。
在运动估计过程中,为了能在参考图像中找到更精确的匹配图像块作为参考图像块,则可以在编码端采用基于亚像素精度的搜索操作,以确定匹配的参考图像块。其中,所谓亚像素是指对若干整像素点进行处理所得像素值,整像素点是指原始图像或编码解码之后图像的原始像素点。在两个整像素点中间的亚像素点可称之为二分之一亚像素点,在两个二分之一亚像素点或一个整像素点和一个二分之一亚像素点之间的亚像素点可称之为四分之一亚像素点。获取亚像素点的过程可称之为插值。
目前,在视频压缩编码标准中,主要用到1/2像素和1/4像素精度插值。而且插值方式和系数在编码或解码过程中是固定的。也就是说,一幅图像中所有宏块具有相同的亚像素插值方式,宏块中相同位置的二分之一亚像素点、四分之一亚像素点具有相同的插值方式和插值滤波系数。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
上述插值滤波系数固定不变的实现方案导致插值过程无法很好地适应图像的纹理、结构信息,降低相应的插值精度。
发明内容
本发明的实施例提供了一种基于宏块对的编解码方法及装置,以使得相应的插值过程可以很好地适应对应的图像,进而提高插值精度。
一种基于宏块对的编码方法,包括:
在保存的若干组插值滤波系数中,为需要进行插值处理的宏块对选择对应的一组插值滤波系数;
利用所述一组插值滤波系数对所述宏块对进行插值处理,并在编码码流中写入所述一组插值滤波系数对应的插值系数标志。
一种基于宏块对的编码装置,包括:
系数选择单元,用于在保存的若干组插值滤波系数中,为需要进行插值处理的宏块对选择对应的一组插值滤波系数;
插值处理单元,用于利用所述系数选择单元选择的一组插值滤波系数对所述宏块对进行插值处理;
插值系数标志写入单元,用于在编码码流中写入所述系数选择单元选择的一组插值滤波系数对应的插值系数标志。
一种基于宏块对的解码方法,包括:
解码码流,获得插值系数标志;
在保存的若干组插值滤波系数中,选择与所述插值系数标志对应的一组插值滤波系数;
利用选择的所述对应的一组插值滤波系数对宏块对进行插值操作。
一种基于宏块对的解码装置,包括:
标志获取单元,用于解码码流,获得插值系数标志;
系数确定单元,用于在保存的若干组插值滤波系数中,选择与所述标志获取单元获取的插值系数标志对应的一组插值滤波系数;
插值处理单元,用于利用所述系数确定单元选择的所述对应的一组插值滤波系数对宏块对进行插值操作。
由上述本发明的实施例提供的技术方案可以看出,由于编码端为当前宏对选择一组插值滤波系数,并通过相应的插值系数标志将编码端选择的一组插值滤波系数通知解码端。通过针对宏块对级的插值滤波系数的自适应选择,使得对于空间局部特征变化比较大的图像将会产生更好的适应效果。而且,相应的插值系数标志的采用,还可以有效降低码流开销。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的实施例一的示意图;
图2为本发明实施例提供的实施例二的示意图;
图3为本发明实施例提供的基于宏块对的编码装置结构示意图;
图4为本发明实施例提供的基于宏块对的解码装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在基于宏块对的帧或场自适应编码过程中,当需要对一幅图像进行编码时,具体可以包括:先将图像分割为若干个宏块对(即在空间中紧邻的上下两个宏块),并以宏块对为单元进行从左到右自上而下的编码。相应的宏块对分为:帧宏块对和场宏块对。其中,相应的帧宏块对是指对原始图像像素未经额外处理的上下两个宏块;相应的场宏块对为将原始图像按像素行拆分成奇数行和偶数行,其中奇数行按照由上而下的顺序组成顶场宏块,偶数行按照由上而下的顺序组成底场宏块。
本发明实施例提供的基于宏块对的编解码中的插值处理方案中,在基于宏块对的帧或场自适应编码过程的编码端,具体可以在保存的若干组插值滤波系数中,为需要进行插值处理的宏块对选择对应的一组插值滤波系数(例如可以根据各组插值滤波系数的编码效果选择编码效果最佳的一组插值滤波系数,或者,也可以依据其他原则进行插值滤波系数的选择);并利用选择的一组插值滤波系数对当前宏块对进行插值处理,还在编码码流中写入该一组插值滤波系数对应的插值系数标志。
在上述处理过程中,相应的插值系数标志可以包括插值系数类别标志和插值系数组别标志,其中,插值系数类别标志用于指示当前宏块对应用的一组插值滤波系数所属的类别,同一类别包含多组插值滤波系数,插值系数组别标志用于指示当前宏块对应用的一组插值滤波系数在类别中的组别,即具体为当前类别中的哪一组插值滤波系数。具体地,可以在编码码流的图像头中写入所述插值系数类别标志,作为当前图像的所有宏块对应用的插值滤波系数对应的类别;或者,也可以在编码码流的条带头中写入所述插值系数类别标志,作为当前条带的所有宏块对的插值系数类别标志;或者,还可以在编码码流的序列头中写入所述插值系数类别标志,作为当前序列的所有宏块对的插值系数类别标志;或者,也可以写入编码码流中的其他位置,作为相应宏块对的插值系数类别标志。编码端还需要将各宏块对采用的插值系数组别标志写入码流发送给解码端,以便于解码端根据插值系数类别标志和插值系数组别标志可以确定当前宏块对采用的一组插值滤波系数。
也就是说,在针对宏块对进行帧或场自适应编码过程中,每个使用帧间预测方式编码的宏块对编码后的编码码流中含有一个插值系数标志,该插值系数标志用于表示当前宏块对在帧间预测时使用的参考帧所对应的若干组插值滤波系数中的一组插值滤波系数。即相应的插值系数标志的不同取值表征了所述的若干组预定义的可供用户自适应选择的插值滤波系数。
可选地,在针对宏块对进行帧或场自适应编码过程中,宏块对包含的上下两个宏块在帧间预测时其参考帧可以使用相同的插值滤波系数进行插值。
与上述编码端对应,在基于宏块对的帧或场自适应解码过程的解码端,相应的基于宏块对的插值方案中,则可以在解码码流中获得相应的插值系数标志,并在保存的若干组插值滤波系数中,选择与该插值系数标志对应的一组插值滤波系数;之后,利用选择的该插值系数标志对应的一组插值滤波系数对宏块对进行插值操作。
进一步地,与编码端写入插值系数标志的位置对应,解码端可以从码流的图像头中获得插值系数标志,作为当前图像的所有宏块对的插值系数标志;或者,从码流的条带头中获得插值系数标志,作为当前条带的所有宏块对的插值系数标志;或者,从码流的序列头中获得插值系数标志,作为当前序列的所有宏块对的插值系数标志。或者,也可以从其他位置获得相应的插值系数标志作为相应宏块对的插值系数标志。
通过上述处理过程的实现,使得在确定插值滤波系数的过程中,不需要进行额外的计算,从而大大降低了相应过程的复杂度。而且,本发明实施例中,采用的宏块对级的插值滤波系数的自适应选择,对于空间局部特征变化比较大的图像将会产生更好的适应效果。而且,相应的插值系数标志的应用,还可以有效降低码流开销。
在针对宏块对的编码或解码方式中,若当前宏块对为使用帧间预测编码,则还可以确定相应的参考数据,并根据相应的参考数据对当前宏块对进行编码或解码处理。例如,若当前底场宏块采用帧间预测方式编码或解码,则可以在为该底场宏块对确定相应的参考数据后,再利用该参考数据对该底场宏块对进行编码或解码操作。
为此,本发明实施例中可以根据虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用该虚拟参考帧对当前宏块进行帧间预测编码;还在编码码流中写入该虚拟参考帧滤波系数,或者,写入该虚拟参考帧滤波系数对应的虚拟参考帧滤波系数标志。例如,相应的当前宏块具体可以为场编码宏块对底场宏块,相应的虚拟参考帧则具体可用于作为距离底场宏块最近的参考帧进行编码应用;即相应的虚拟参考帧可以提供给场编码宏块对底场宏块编码使用,并且此时虚拟参考帧作为距离底场宏块最近的参考帧数据使用,以使得相应的底场宏块可以使用当前图像之前已经编码的图像块作为参考数据进行编码操作。
对应的,在解码端解码码流便可以获得相应的虚拟参考帧滤波系数;或者,获得相应的虚拟参考帧滤波系数标志,进而确定该虚拟参考帧滤波系数标志对应的虚拟参考帧滤波系数;之后,便可以根据获得的虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用获得的虚拟参考帧对当前宏块进行帧间预测解码操作。例如,上述当前宏块具体可以为场编码宏块对底场宏块,相应的虚拟参考帧具体可用于作为距离底场宏块最近的参考帧进行解码应用,以使得相应的底场宏块可以使用当前图像之前已经解码的图像块作为参考数据进行解码操作。
相应的虚拟参考帧滤波系数可以通过训练数据得到,在编解码端固定该虚拟参考帧滤波系数。也可以在编码时根据当前宏块的参考场与距离底场宏块最近的参考场数据通过一定计算方法得到虚拟参考帧滤波系数。
可选地,在编码码流中还可以写入相应的虚拟参考帧标志,该虚拟参考帧标志用于指示当前宏块是否采用了虚拟参考帧进行帧间预测编码。在解码端,解码获得相应的虚拟参考帧标志后,便可以根据该虚拟参考帧标志确定当前宏块是否需要采用虚拟参考帧进行帧间预测解码。
进一步讲,如果当前宏块对使用帧间预测编码的场宏块对,则在处理底场宏块时,则可以为该宏块确定相应的虚拟参考帧作为该宏块的最近参考图像,以进行相应的编码或解码处理。也就是说,当编解码场宏块对的底场宏块时,编解码器尚未获得顶场的参考图像,而统计表明在时间上距离当前编码图像越近的参考图像能更好地去除冗余,故可以通过对已有参考帧的插值滤波处理得到一帧近似的顶场参考图像(即虚拟参考帧)。
在编码端,具体根据确定的虚拟参考帧滤波系数确定对应的虚拟参考帧,且还可以将相应的虚拟参考帧滤波系数通知解码端,或者,将相应的虚拟参考帧滤波系数对应的虚拟参考帧滤波系数标志通知解码端。
在解码端,获得虚拟参考帧的方式具体可以包括以下任一方式:
第一种方式为:额外解码一组产生虚拟参考图像(即虚拟参考帧)的虚拟参考帧滤波系数,进而利用该虚拟参考帧滤波系数生成相应的虚拟参考帧;即在解码过程中使用该虚拟参考帧滤波系数和已有参考帧插值出一帧虚拟参考帧,并将该虚拟参考帧作为距离底场宏块最近的参考图像使用。
或者,
通过解码额外的虚拟参考帧滤波系数标志,并根据该虚拟参考帧滤波系数标志在预先设定的几组虚拟参考帧滤波系数索引确定对应的虚拟参考帧滤波系数,进而利用该虚拟参考帧滤波系数对参考图像插值生成相应的底场宏块帧间预测所需的亚像素(即虚拟参考帧)。
在获得虚拟参考帧的过程中,相应的插值方式与帧编码或解码宏块对及场编码或解码宏块对顶场宏块的插值方式相同。
通过上述方式可以使得在基于H.264/AVC等视频编解码技术的宏块级自适应帧或场编码方式,在底场宏块中能够采用虚拟参考帧进行相应的编解码操作,以带来更大的编码增益。
总之,通过上述本发明实施例使得宏块对帧场自适应编码时,能够自适应选择相应的插值滤波系数;而且,在宏块对帧场自适应编码时,场编解码宏块能够获取底场宏块参考图像。
为便于对本发明实施例的理解,下面将结合附图对本发明实施例的具体应用过程进行详细说明。
实施例一
在编码端,为当前宏块对选择应用的插值滤波系数,并采用选择的插值滤波系数对宏块对进行编码操作后,则将该插值滤波系数对应的插值系数标志写入到编码码流中,以便于解码端可以获知编码端采用的插值滤波系数。
为便于自适应地为宏块对选择相应的插值滤波系数,则在编码端需要保存若干组不同的插值滤波系数。相应的每个亚像素插值滤波器可以选用的若干组预先保存的插值滤波系数具体可以通过训练和筛选的方式得到,例如,可以通过对不同纹理特性图像以及存在各个方向运动物体图像的计算,便可以得到针对不同特性序列的插值滤波系数参考值,或者,也可以采用其他方式确定相应的插值滤波系数,等等。
而且,每个宏块对具体使用的插值滤波系数对应于码流中的插值系数标志,即该插值系数标志用于指定当前宏块对所使用的插值滤波系数,相应的插值系数标志在码流中可以采用熵编码方式写入码流,相应的熵编码方式可以包括但不限于定长码、变长码或基于上下文自适应二进制编码方式等。
本发明实施例中,相应的插值系数标志可以包括插值系数类别标志和插值系数组别标志,其中,插值系数类别标志用于指示当前宏块对应用的一组插值滤波系数所属的类别,同一类别包含多组插值滤波系数,插值系数组别标志用于指示当前宏块对应用的一组插值滤波系数在类别中的组别,即具体为当前类别中的哪一组插值滤波系数。相应的插值系数类别标志具体可以写入到图像头、条带头或序列头之中。具体地,若将插值系数类别标志写入到图像头,则在解码当前编码比特流之前,先从图像头获取当前图像所有宏块对的插值系数类别标志,并存储等到解码宏块对时再使用;若将插值系数类别标志写入到条带头,则在解码当前编码条带比特流之前,先从条带头获取当前条带中所有宏块对的插值系数类别标志,并存储等到解码宏块对时再使用;若将插值系数类别标志写入到序列头,则在解码当前序列中所有宏块对前,先从序列头中获取当前序列中所有宏块对的插值系数类别标志,并存储等到解码宏块对时再使用。在解码宏块对时,便可以根据插值系数类别标志和插值系数组别标志可以确定当前宏块对采用的一组插值滤波系数,进而进行相应解码操作。
具体地,假设当前编解码端共有八组插值滤波器,首先将它们分为两类,其中前四个滤波器为第一类,后四个为第二类。第一类用比特‘0’标志,第二类用比特’1’标志;同时,在每一类中,四个滤波器都用2位的比特标志,例如第一类和第二类的第一组滤波器用’00’标志,第二组用’01’标志,以此类推。在图像头、条带头或者序列头中,插值系数标志为单一的比特’1’或者’0’,用于标志当前图像、条带或者整个序列的所有宏块对使用第一类中的四组滤波器或者第二类中的四组滤波器。另外,在解码每个宏块对之前,还要先解码一个两位的二进制比特串,用于标志使用的是某一类中四组滤波器中的第几组。例如在图像头解码得到的插值滤波系数为’0’,在某一个宏块对之前解码得到的插值滤波系数为’01’,则说明当前解码当前宏块对需要用到第一类四组插值滤波器中的第二组插值滤波器。
进一步地,本发明实施例中,还可以在码流的每一宏块对编码或解码数据之前加入一标志位,用于标识当前宏块对所使用的插值系数标志是否与前一个宏块对使用的插值系数标志相同。这样,在解码端,若该标志位指示为相同,则当前宏块对采用前一个宏块对使用的插值滤波系数即可,否则,则需要解码获得当前块的插值系数标志,进而获得当前宏块对需要应用的插值滤波系数。
例如,可以约定如果当前宏块对使用的插值滤波器和同一条带中已编码的上一宏块对使用相同的插值滤波系数,则在解码当前宏块对前,先解码一个1比特的标志位,如果该位为’1’,那么不解码当前宏块的插值滤波系数标志,直接使用上一个已经解码的宏块对的插值滤波系数解码当前宏块对;如果该位为’0’,则继续解码当前宏块对的插值滤波系数用于解码当前宏块对。
可选地,在本发明实施例中,还可以在码流中图像头、条带头、序列头中加入一标志位,用于标识当前待解码图像、条带、序列是否使用基于宏块对的插值系数标志功能,以便于解码端能够根据该标志位确定是否采用本发明实施例提供的基于宏块对的解码方案。
实施例二
在解码每个使用帧间预测编码方式的宏块对(如帧宏块对或场宏块对等)时,首先解码一个插值系数标志,解码器通过该插值系数标志的值从解码端预定义的若干组插值滤波系数中索引出一组对应的插值滤波系数,该组插值滤波系数将被用于解码当前宏块对,具体用于解码当前宏块对的顶场或底场宏块时确定相应的参考帧的插值。即每个帧宏块对或者场宏块对的上下两个宏块在帧间预测时,其参考帧使用相同的一组插值滤波系数。
例如,相应的亚像素的插值结构如图1所示,其中:
对于每个亚像素点(a,b,c,......,o),其插值方式可以为:
其中,x表示从a到o的亚像素点中任意一个亚像素点的值,hij表示插值滤波系数,Pij表示插值亚像素所需的临近的整像素点的值。
例如,当插值a点时,如果通过插值系数标志索引得到的插值a点的插值滤波系数如下:
该6x6矩阵中的每一个数对应于hij的值,同时每一个hij对应一个当前亚像素点周围的整像素(亚像素点a和周围整像素Pij的空间位置关系见图1),则,亚像素点a的像素值可以为:
a=(-6·P31-18·P32+872·P33+249·P34-89·P35+16·P36)/1024
通过上述处理便可以获得亚像素点a的像素值,进而可以进行后续的帧间解码操作。
这里提供2组滤波器系数,每一组包含15个亚像素点(a,b,c,...,o)的36(6x6)个滤波系数如下:
第一组:
a:
a=(-6·P31-18·P32+872·P33+249·P34-89·P35+16·P36)/1024
b:
b=(-102·P32+614·P33+614·P34-102·P35)/1024
c:
c=(16·P31-89·P32+249·P33+872·P34-18·P35-6·P36)/1024
d:
d=(-6·P13-18·P23+872·P33+249·P43-89·P53+16·P63)/1024
e:
e=(0·P11+0·P12+20·P13+0·P14+0·P15+0·P16+0·P21+20·P22-60·P23+0·P24-12·P25+0·P26+20·P31-60·P32+636·P33+300·P34-45·P35+20·P36+0·P41+0·P42+300·P43-18·P44-10·P45+0·P46+0·P51-12·P52-45·P53-10·P54+0·P55+0·P56+0·P61+0·P62+20·P63+0·P64+0·P65+0·P66+)/1024
f:
g:
h:
i:
j:
k:
l:
m:
n:
o:
第二组:
a:
b:
c:
d:
e:
f:
g:
h:
i:
j:
k:
l:
m:
n:
o:
实施例三
在该实施例二中,提供了场宏块对中底场宏块的虚拟参考帧的获取方式,以便可以根据该虚拟参考帧完成底场块宏块的编码或解码操作。
(1)编码端的处理
根据选择的插值滤波系数对场宏块对进行编码,并采用相应的虚拟参考帧滤波系数对底场宏块的参考帧进行滤波处理,以得到虚拟参考帧,进而利用相应的虚拟参考帧进行底块宏块的帧间预测编码操作。
其中,虚拟参考帧滤波系数的可以通过如下方式获得:
1、计算出整帧中所有像素点误差的均方和:
其中,Pi,j代表原始顶场图像中坐标为(i,j)的像素值,代表已有参考图像中坐标为(i,j)的像素值,hk代表虚拟参考帧的滤波系数,此时共有四个参考帧;
2、对误差求极小值,即对于(k=1,2,3,4):
解该方程,便可以得到hk的值。
在完成针对场宏块对的编码处理,除在编码码流中写入了插值系数标志外,还在码流中写入相应的参考帧索引标志和虚拟参考帧滤波系数;其中,相应的参考帧索引标志表示当前底场宏块的参考帧为虚拟参考帧,所述虚拟参考帧滤波系数用于对参考帧进行滤波处理以得到虚拟参考帧。
(2)解码端的处理
若当前解码器解码到一个使用帧间预测方式编码的场宏块对,则首先会解码得到一个用于帧间预测的插值系数标志,随后,根据该插值系数标志确定对应的插值滤波系数,并根据相应的插值滤波系数正常解码顶场宏块。
在顶场宏块解码完成后,解码器将转移到针对底场宏块的解码,在解码到底场宏块的参考帧索引标志时,若该参考帧索引标志的值表示当前底场宏块的参考帧为虚拟参考帧,则需要从码流中解码一组虚拟参考帧滤波系数,假设该一组虚拟参考帧滤波系数共有4个值,则可以根据参考帧中距离当前编(解)码图像在时间上最近的4个参考图像(如果不足4个便用0代替)及该一组虚拟参考帧滤波系数,获得相应的虚拟参考帧。
具体地,如图2所示,图2中的F1~F4为参考帧中距离当前编(解)码图像在时间上最近的4个参考图像,i,j表示参考图像中像素的坐标,虚拟参考图像(即虚拟参考帧)为V。则相应的虚拟参考图像的滤波方式为:
V(i,j)=F1(i,j)·h1+F2(i,j)·h2+F3(i,j)·h3+F4(i,j)·h4;
其中,h1~h4为解码获得的一组虚拟参考帧滤波系数。
在得到相应的一组虚拟参考帧滤波系数后,便可以根据该一组虚拟参考帧滤波系数从已有的参考帧滤波得到虚拟参考帧。在得到相应的虚拟参考帧后,再根据解码顶场宏块已经得到的插值系数标志对应的插值滤波系数对虚拟参考帧进行插值,进而实现相应的帧间预测解码处理。
需要说明的是,在该实施二中,相应的编码端还可以将虚拟参考帧滤波系数对应的虚拟参考帧滤波系数标志写入编码码流中,而不在编码码流中写入具体的虚拟参考帧滤波系数。在解码端,则可以根据解码码流,获得其中的虚拟参考帧滤波系数标志,并在若干组虚拟参考帧滤波系数中选择与该虚拟参考帧滤波系数标志对应的一组虚拟参考帧滤波系数。其他处理过程与上述处理过程相同,故不再重复描述。
综上所述,本发明实施例自适应选择相应的插值滤波系数的方案,从而能够更好地适应图像的纹理特性,在帧间预测中获得更精准的预测值,从而获得一定的编码增益,且具有复杂度的降低、节省比特开销的特点。同时,本发明实施例中还可以采用快速算法,利用上下文的信息在编码当前宏块对前即可决定使用哪一组插值滤波系数。
假设共有4组滤波系数可供选择,相应的快速算法的具体实现过程可以包括如下步骤:
(1)如果当前宏块对的上方宏块对存在,得到其插值滤波系数a,如果不存在,则认为插值滤波系数为0;
(2)如果当前宏块对的左边宏块对存在,得到其插值滤波系数b,如果不存在,则认为其插值滤波系数为0;
(3)如果上方宏块对存在且其2个宏块均未使用16x16预测编码方式,且左边宏块对存在且其2个宏块均未使用16x16预测编码方式;或者上方宏块对存在且其2个宏块中存在使用16x16预测编码方式的宏块,且左边宏块对存在且其2个宏块中存在使用16x16预测编码方式的宏块,则当前宏块对的插值滤波系数为(a+b)>>1;
如果左边宏块对不存在,或其存在且其2个宏块中存在使用16x16预测编码方式的宏块;同时上边宏块对存在但其2个宏块中不存在使用16x16预测编码方式的宏块,则当前宏块对插值滤波系数为(2b+1)>>1,如果该值超过3,则取3;
如果上边宏块对不存在,或其存在且其2个宏块中存在使用16x16预测编码方式的宏块;同时坐边宏块对存在但其2个宏块中不存在使用16x16预测编码方式的宏块,则当前宏块对插值滤波系数为(2a+1)>>1,如果该值超过3,则取3;
若不符合上述条件,则当前宏块对的插值滤波系数为1。
再者,本发明实施例提供的虚拟参考帧技术,可以为底场宏块提供一个近似的顶场作为参考帧,由于底场和顶场的数据具有很强的相关性,故可提高相应的编码增益,且编解码结构合理、实现简便。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本发明实施例还提供了一种基于宏块对的编码装置,其具体实现结构如图3所示,可以包括:
系数选择单元31,用于在保存的若干组插值滤波系数中,为需要进行插值处理的宏块对选择对应的一组插值滤波系数;
插值处理单元32,用于利用上述系数选择单元31选择的一组插值滤波系数对所述宏块对进行插值处理;
插值系数标志写入单元33,用于在编码码流中写入上述系数选择单元31选择的一组插值滤波系数对应的插值系数标志。
进一步地,相应的插值系数标志可以包括插值系数类别标志和插值系数组别标志,其中,插值系数类别标志用于指示当前宏块对应用的一组插值滤波系数所属的类别,同一类别包含多组插值滤波系数,插值系数组别标志用于指示当前宏块对应用的一组插值滤波系数在类别中的组别,即具体为当前类别中的哪一组插值滤波系数。则相应的插值系数标志写入单元33具体可以用于在编码码流的图像头中写入所述插值系数类别标志,用于指示当前图像的所有宏块对应用的插值滤波系数对应的类别;或者,用于在编码码流的条带头中写入所述插值系数类别标志,用于指示当前条带的所有宏块对应用的插值滤波系数对应的类别;或者,用于在编码码流的序列头中写入所述插值系数类别标志,用于指示当前序列的所有宏块对应用的插值滤波系数对应的类别。同时,还将相应的各宏块对采用的插值滤波系数在该类别中的插值系数组别标志写入到码流发送到解码端,以便于解码端根据插值系数类别标志和插值系数组别标志为当前宏块确定其采用的一组插值滤波系数。
进一步地,该装置还可以包括:
基于虚拟参考帧的编码单元34,用于根据虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用所述虚拟参考帧对当前宏块进行帧间预测编码;
虚拟参考帧滤波系数通知单元35,用于在编码码流中写入上述基于虚拟参考帧的编码单元34获得的虚拟参考帧滤波系数,或者,写入相应的虚拟参考帧滤波系数对应的虚拟参考帧滤波系数标志。
为指示对当前宏块是否采用了虚拟参考帧进行帧间预测编码,则该装置还可以包括虚拟参考帧标志写入单元36,用于向编码码流中写入虚拟参考帧标志,通过该虚拟参考帧标志指示当前宏块的编码过程中是否采用了基于虚拟参考帧的帧间预测编码操作。
本发明实施例还提供了一种基于宏块对的解码装置,其具体实现结构如图4所示,可以包括:
标志获取单元41,用于解码码流,获得插值系数标志;
与编码端对应,该标志获取单元41具体可以用于从编码码流的图像头中获得所述插值系数类别标志,用于确定当前图像的所有宏块对应用的插值滤波系数所在的类别;或者,用于从编码码流的条带头中获得所述插值系数类别标志,用于确定当前条带的所有宏块对应用的插值滤波系数所在的类别;或者,用于从编码码流的序列头中获得所述插值系数类别标志,用于确定当前序列的所有宏块对应用的插值滤波系数所在的类别;进而可以根据当前宏块对的插值系数组别标志确定在该类别中具体采用哪一组插值滤波系数进行当前宏块对的解码操作;
系数确定单元42,用于在保存的若干组插值滤波系数中,选择与上述标志获取单元41获取的插值系数标志对应的一组插值滤波系数;
插值处理单元43,用于利用上述系数确定单元42选择的对应的一组插值滤波系数对宏块对进行插值操作。
进一步地,该装置还可以包括:
虚拟参考帧滤波系数获取单元44,用于解码码流,获得虚拟参考帧滤波系数;或者,获得虚拟参考帧滤波系数标志,并确定该虚拟参考帧滤波系数标志对应的虚拟参考帧滤波系数;
基于虚拟参考帧的解码单元45,用于根据上述虚拟参考帧滤波系数获取单元44获得的虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用相应的虚拟参考帧对当前宏块进行帧间预测解码。
可选地,该装置还可以包括虚拟参考帧标志获取单元46,用于解码码流获得虚拟参考帧标志,根据该虚拟参考帧标志确定当前宏块是否需要采用虚拟参考帧进行帧间预测解码。
本发明实施例还提供了一种编解码系统,该编解码系统中包括上述基于宏块对的编码装置和基于宏块对的解码装置,相应的基于宏块对的编码装置将相应的编码后的码流发送给基于宏块对的解码装置。
本发明实施例提供的上述装置应用于编解码操作过程中可以使得在确定插值滤波系数的过程中,不需要进行额外的计算,从而大大降低了相应过程的复杂度。且采用的宏块对级的插值滤波系数的自适应选择,对于空间局部特征变化比较大的图像将会产生更好的适应效果。且在该装置中提供的基于虚拟参考帧的编解码技术,可以为底场宏块提供一个近似的顶场作为参考帧,由于底场和顶场的数据具有很强的相关性,故可提高相应的编码增益,且编解码结构合理、实现简便。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (18)
1.一种基于宏块对的编码方法,其特征在于,包括:
在保存的若干组插值滤波系数中,为需要进行插值处理的宏块对选择对应的一组插值滤波系数;
利用所述一组插值滤波系数对所述宏块对进行插值处理,并在编码码流中写入所述一组插值滤波系数对应的插值系数标志。
2.根据权利要求1所述的方法,其特征在于,所述插值系数标志包括插值系数类别标志和插值系数组别标志,其中,所述插值系数类别标志用于指示当前宏块对应用的一组插值滤波系数所属的类别,所述的插值系数组别标志用于指示当前宏块对应用的一组插值滤波系数在所述类别中的组别,且所述在编码码流中写入所述一组插值滤波系数对应的插值系数标志的步骤包括:
在编码码流的图像头中写入所述插值系数类别标志,用于作为当前图像的所有宏块对的插值系数类别标志;还在码流中写入各个宏块对对应的插值系数组别标志;
或者,
在编码码流的条带头中写入所述插值系数类别标志,用于作为当前条带的所有宏块对的插值系数类别标志;还在码流中写入各个宏块对对应的插值系数组别标志;
或者,
在编码码流的序列头中写入所述插值系数类别标志,用于作为当前序列的所有宏块对的插值系数类别标志;还在码流中写入各个宏块对对应的插值系数组别标志。
3.根据权利要求1或2所述的方法,其特征在于,该方法还包括:
根据虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用所述虚拟参考帧对当前宏块进行帧间预测编码;
在编码码流中写入所述虚拟参考帧滤波系数,或者,写入所述虚拟参考帧滤波系数对应的虚拟参考帧滤波系数标志。
4.根据权利要求3所述的方法,其特征在于,该方法还包括:
在编码码流中写入虚拟参考帧标志,所述虚拟参考帧标志用于指示当前宏块采用虚拟参考帧进行帧间预测编码。
5.根据权利要求3所述的方法,其特征在于,所述当前宏块为场编码宏块对底场宏块,所述虚拟参考帧用于作为距离底场宏块最近的参考帧。
6.一种基于宏块对的编码装置,其特征在于,包括:
系数选择单元,用于在保存的若干组插值滤波系数中,为需要进行插值处理的宏块对选择对应的一组插值滤波系数;
插值处理单元,用于利用所述系数选择单元选择的一组插值滤波系数对所述宏块对进行插值处理;
插值系数标志写入单元,用于在编码码流中写入所述系数选择单元选择的一组插值滤波系数对应的插值系数标志。
7.根据权利要求6所述的装置,其特征在于,所述插值系数标志包括插值系数类别标志和插值系数组别标志,其中,所述插值系数类别标志用于指示当前宏块对应用的一组插值滤波系数所属的类别,所述的插值系数组别标志用于指示当前宏块对应用的一组插值滤波系数在所述类别中的组别,且所述插值系数标志写入单元具体用于在编码码流的图像头中写入所述插值系数类别标志,用于作为当前图像的所有宏块对的插值系数类别标志;或者,用于在编码码流的条带头中写入所述插值系数类别标志,用于作为当前条带的所有宏块对的插值系数类别标志;或者,用于在编码码流的序列头中写入所述插值系数类别标志,用于作为当前序列的所有宏块对的插值系数类别标志;所述插值系数标志写入单元还在码流中写入各宏块对对应的插值系数组别标志。
8.根据权利要求6或7所述的装置,其特征在于,该装置还包括:
基于虚拟参考帧的编码单元,用于根据虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用所述虚拟参考帧对当前宏块进行帧间预测编码;
虚拟参考帧滤波系数通知单元,用于在编码码流中写入所述基于虚拟参考帧的编码单元获得的虚拟参考帧滤波系数,或者,写入所述虚拟参考帧滤波系数对应的虚拟参考帧滤波系数标志。
9.根据权利要求8所述的装置,其特征在于,该装置还包括:
虚拟参考帧标志写入单元,用于向编码码流中写入虚拟参考帧标志,所述虚拟参考帧标志用于指示当前宏块的编码过程中采用了基于虚拟参考帧的帧间预测编码。
10.一种基于宏块对的解码方法,其特征在于,包括:
解码码流,获得插值系数标志;
在保存的若干组插值滤波系数中,选择与所述插值系数标志对应的一组插值滤波系数;
利用选择的所述对应的一组插值滤波系数对宏块对进行插值操作。
11.根据权利要求10所述的方法,特征在于,所述插值系数标志包括插值系数类别标志和插值系数组别标志,其中,所述插值系数类别标志用于指示当前宏块对应用的一组插值滤波系数所属的类别,所述的插值系数组别标志用于指示当前宏块对应用的一组插值滤波系数在所述类别中的组别,且所述获得插值系数标志的步骤具体包括:
从编码码流的图像头中获得所述插值系数类别标志,作为当前图像的所有宏块对的插值系数类别标志;还从码流中获取所述插值系数组别标志;
或者,
从编码码流的条带头中获得所述插值系数类别标志,作为当前条带的所有宏块对的插值系数类别标志;还从码流中获取所述插值系数组别标志;
或者,
从编码码流的序列头中获得所述插值系数类别标志,作为当前序列的所有宏块对的插值系数类别标志;还从码流中获取所述插值系数组别标志。
12.根据权利要求10或11所述的方法,其特征在于,该方法还包括:
解码码流,获得虚拟参考帧滤波系数;或者,获得虚拟参考帧滤波系数标志,并确定所述虚拟参考帧滤波系数标志对应的虚拟参考帧滤波系数;
根据所述虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用所述虚拟参考帧对当前宏块进行帧间预测解码。
13.根据权利要求12所述的方法,其特征在于,该方法还包括:
解码获得虚拟参考帧标志,所述虚拟参考帧标志用于指示当前宏块需要采用虚拟参考帧进行帧间预测解码。
14.根据权利要求12所述的方法,其特征在于,所述当前宏块为场编码宏块对底场宏块,所述虚拟参考帧用于作为距离底场宏块最近的参考帧。
15.一种基于宏块对的解码装置,其特征在于,包括:
标志获取单元,用于解码码流,获得插值系数标志;
系数确定单元,用于在保存的若干组插值滤波系数中,选择与所述标志获取单元获取的插值系数标志对应的一组插值滤波系数;
插值处理单元,用于利用所述系数确定单元选择的所述对应的一组插值滤波系数对宏块对进行插值操作。
16.根据权利要求15所述的装置,特征在于,所述插值系数标志包括插值系数类别标志和插值系数组别标志,其中,所述插值系数类别标志用于指示当前宏块对应用的一组插值滤波系数所属的类别,所述的插值系数组别标志用于指示当前宏块对应用的一组插值滤波系数在所述类别中的组别,且所述标志获取单元具体用于从编码码流的图像头中获得所述插值系数类别标志,作为当前图像的所有宏块对的插值系数类别标志;或者,用于从编码码流的条带头中获得所述插值系数类别标志,作为当前条带的所有宏块对的插值系数类别标志;或者,用于从编码码流的序列头中获得所述插值系数类别标志,作为当前序列的所有宏块对的插值系数类别标志;所述标志获取单元还从码流中获取各宏块对对应的插值系数组别标志。
17.根据权利要求15或16所述的装置,其特征在于,该装置还包括:
虚拟参考帧滤波系数获取单元,用于解码码流,获得虚拟参考帧滤波系数;或者,获得虚拟参考帧滤波系数标志,并确定所述虚拟参考帧滤波系数标志对应的虚拟参考帧滤波系数;
基于虚拟参考帧的解码单元,用于根据所述虚拟参考帧滤波系数获取单元获得的虚拟参考帧滤波系数对当前宏块的参考帧进行插值处理获得虚拟参考帧,并利用所述虚拟参考帧对当前宏块进行帧间预测解码。
18.根据权利要求15所述的装置,其特征在于,该装置还包括:
虚拟参考帧标志获取单元,用于解码码流获得虚拟参考帧标志,根据该虚拟参考帧标志确定当前宏块需要采用虚拟参考帧进行帧间预测解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910080389 CN101841701B (zh) | 2009-03-20 | 2009-03-20 | 基于宏块对的编解码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910080389 CN101841701B (zh) | 2009-03-20 | 2009-03-20 | 基于宏块对的编解码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101841701A true CN101841701A (zh) | 2010-09-22 |
CN101841701B CN101841701B (zh) | 2012-05-23 |
Family
ID=42744774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910080389 Expired - Fee Related CN101841701B (zh) | 2009-03-20 | 2009-03-20 | 基于宏块对的编解码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101841701B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111656782A (zh) * | 2019-06-19 | 2020-09-11 | 北京大学 | 视频处理方法和设备 |
WO2020192034A1 (zh) * | 2019-03-24 | 2020-10-01 | Oppo广东移动通信有限公司 | 滤波方法及装置、计算机存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1925616B (zh) * | 2006-09-14 | 2010-05-12 | 清华大学 | 一种宏块对级帧场自适应编解码方法 |
CN101217667B (zh) * | 2008-01-11 | 2011-02-16 | 北京中星微电子有限公司 | 四分之一像素插值方法及装置 |
-
2009
- 2009-03-20 CN CN 200910080389 patent/CN101841701B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020192034A1 (zh) * | 2019-03-24 | 2020-10-01 | Oppo广东移动通信有限公司 | 滤波方法及装置、计算机存储介质 |
US11985313B2 (en) | 2019-03-24 | 2024-05-14 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Filtering method and apparatus, and computer storage medium |
CN111656782A (zh) * | 2019-06-19 | 2020-09-11 | 北京大学 | 视频处理方法和设备 |
WO2020252707A1 (zh) * | 2019-06-19 | 2020-12-24 | 北京大学 | 视频处理方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101841701B (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guarda et al. | Point cloud coding: Adopting a deep learning-based approach | |
CN100566413C (zh) | 一种自适应插值处理方法及编解码模块 | |
RU2708347C1 (ru) | Способ и устройство кодирования изображения и способ и устройство декодирования изображения | |
CN103067715B (zh) | 深度图像的编解码方法和编解码装置 | |
CN105721876A (zh) | 图像解码方法 | |
CN106797472A (zh) | 编码数字图像的方法和相关解码方法、装置及计算机程序 | |
CN103096053B (zh) | 一种变换模式的编解码方法和装置 | |
KR20190117708A (ko) | 부호화유닛 심도 확정 방법 및 장치 | |
CN103188494A (zh) | 跳过离散余弦变换对深度图像编码/解码的设备和方法 | |
CN102075756B (zh) | 视频多帧预测编解码方法和装置 | |
CN101779463A (zh) | 用于处理图像的方法以及相应的电子设备 | |
CN101472176A (zh) | 基于边界强度因子进行去块效应滤波的解码方法和装置 | |
CN103262539A (zh) | 运动图像编码装置、运动图像解码装置、运动图像编码方法以及运动图像解码方法 | |
CN101877792A (zh) | 帧内模式预测方法与装置、编码器 | |
CN107483941A (zh) | 划分取值范围进行串位移矢量编码的数据压缩方法和装置 | |
CN102377992B (zh) | 运动矢量的预测值的获取方法和装置 | |
CN110677644B (zh) | 一种视频编码、解码方法及视频编码帧内预测器 | |
CN101841701B (zh) | 基于宏块对的编解码方法及装置 | |
CN104519368A (zh) | 图像编码、解码重构处理方法及装置 | |
CN101453643B (zh) | 量化模式、图像编码、解码方法、编码器、解码器及系统 | |
KR20160078984A (ko) | 오리지널 이미지의 저품질 버전 및 에피톰으로부터 오리지널 이미지의 추정치를 구축하기 위한 방법 및 장치 | |
CN102215391B (zh) | 视频数据编码、解码方法及装置、变换处理方法及装置 | |
US9426481B2 (en) | Method and apparatus for encoding image, and method and apparatus for decoding image | |
CN103856780A (zh) | 视频编码方法、解码方法、编码器及解码器 | |
Liu et al. | Self-organizing finite state vector quantization for image coding |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20170320 |