CN101827269B - 视频编码方法和装置 - Google Patents
视频编码方法和装置 Download PDFInfo
- Publication number
- CN101827269B CN101827269B CN 201010176972 CN201010176972A CN101827269B CN 101827269 B CN101827269 B CN 101827269B CN 201010176972 CN201010176972 CN 201010176972 CN 201010176972 A CN201010176972 A CN 201010176972A CN 101827269 B CN101827269 B CN 101827269B
- Authority
- CN
- China
- Prior art keywords
- block
- motion vector
- frame
- representative
- prediction direction
- 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.)
- Active
Links
Images
Abstract
本发明涉及用于视频编码里进行运动预测的方法和装置,该方法包括:a.从位于当前宏区块之外的区块中为当前帧上的当前区块选择一组参考区块;b.估计当前区块和每个参考区块之间的运动矢量差值;c.确定对应最小运动矢量差值的参考区块,判断最小运动矢量差值是否小于预设阈值;d.如果最小运动矢量差值小于预设阈值,设置当前区块的运动矢量和参考帧为所确定的参考区块的运动矢量和参考帧;e.如果最小运动矢量差值大于预设阈值,对每个预测方向,设置当前区块的运动矢量为0矢量或一个中间矢量,且设置当前区块的参考帧为最靠近当前区块的参考帧或最经常被一组参考区块采用的参考帧。使用本发明能够获得较高的编码性能。
Description
技术领域
本发明通常涉及数字视频处理,特别涉及一种视频编码方法和装置。
背景技术
在现代视频编码标准如MPEG-1,MPEG-2,MPEG-4,H.261,H.263,H.264和AVS里,运动估计(ME)和运动补偿(MC)是一个重要的工具,用于抑制时间冗余(temporal redundancy),从而获得高编码效率。在ME/MC里,当前帧被分割成非重叠的区块。对一个当前帧内的每个当前区块,在参考帧里定义了一个搜索区域。在搜索区域里的每个点都对应一个候选区块,其可能是当前区块的一个良好预测。还定义了一个相似性度量,在搜索区域内进行搜索,根据相似性度量找出与当前区块具有很大相似性(如果不是最大相似性)的候选区块。这些具有很大相似性的候选区块将是最佳匹配区块。在最佳匹配区块和当前区块之间的相对位移被称作运动矢量,其需要被编码。对运动矢量(MV)进行编码也被称作是运动矢量编码(MVC)。
此外,一方面,搜索最佳匹配区块可以在同一帧内(帧内)进行,其也被称作帧内预测(intra prediction)。另一方面,搜索最佳匹配区块可以在一个和多个相邻帧里(帧间)进行,其也被称作帧间预测(interprediction)。
当一个单元被编码时,如一个区块尺寸为诸如4x4,8x8,16x16的区块,需要预测被编码单元和不同参考帧之间的运动矢量(或运动信息)。该预测必须是非常有效的,因为有大量数据用于数字视频,其包含一系列的帧,并且随着数字视频分辨率的提高,数据量也越来越多。
已经有许多尝试来实现有效的运动信息预测,如Tourapis,A.M.;FengWu;Shipeng Li,“Direct mode coding for bipredictive slices in the H.264standard”,IEEE Transactions on Circuits and Systems for Video Technology,Volume 15,Issue 1,Jan.2005,pp.119-126,(其后称“Tourapis et al”)。在Tourapis et al的文章里,描述了使用空间直接模式(spatial direct mode)和使用时间直接模式(temporal direct mode)的方法,这些方法正被H.264标准采用。
在时间直接模式里使用时间相关性。时间直接模式通过考虑相邻的被编码视频帧里相同位置区块(co-located block)的运动,预测一个区块的运动矢量和参考帧。
在空间直接模式里主要使用空间相关性和使用部分时间相关性。空间直接模式主要通过考虑当前帧里相邻的被编码区块的运动,来预测区块的运动。为了提高预测准确率,也会考虑相邻的被编码视频帧里相同位置区块的部分信息。对每个帧,每个片的头部(slice header)里的标记(flag)需要被编码,以指示使用哪种直接模式。
但是,时间直接模式的效率低,因为它需要考虑当前区块的相同位置区块,没有考虑空间冗余。
空间直接模式的效率也低,因为该组被编码区块被选择作为当前帧的参考,而且它没有考虑参考帧里的区块运动矢量。在导出当前区块运动矢量上它是比较差的。
另一个例子是以下披露:Jiali Zheng;XiangyangJi;Guangnan Ni;WenGao;Feng Wu,“Extended direct mode for hierarchical B picture coding”,IEEE International Conference on Image Processing,2005.ICIP 2005,Volume2,11-14Sept.2005,pp.II-265-268,(此后称“Zheng et al”)。在Zheng etal里,描述了使用H.264时间直接模式的方法。但是,这种方法是低效率的,因为它没有考虑空间冗余,它需要考虑当前区块的相同位置区块。
另一个例子是以下披露:Tomokazu Murakami;Shohei Saito,“AdvancedB Skip Mode with Decoder-side Motion Estimation”,ITU-Telecommunications Standardization Sector-Video Coding Experts Group(VCEG)STUDY GROUP 16 Question 6,37th Meeting:Yokohama,Japan,15-18April,2009,VCEG-AK12,(此后称“VCEG-AK12”)。在VCEG-AK12里,描述了一个有规定搜索窗口的区块匹配过程。为当前帧周围两个最近的I或P帧之间的B-slice里的每个宏区块都执行此过程。但是,此过程的效率也是低下的,其从参考帧里区块位置导出当前区块的运动矢量(其中参考帧是在一个区块匹配过程中选择的),而不是从当前帧里被编码区块的运动矢量中导出的。
因此,有需要提供一种系统和方法用于运动矢量预测以解决以上所述的一个或多个问题。
发明内容
本发明要解决的技术问题是克服上述现有技术的不足,提供一种具有较高编码性能的视频编码方法和装置。
为实现上述目的,本发明采用以下技术方案:
一种视频编码方法,包括以下步骤:
a.从位于当前宏区块之外的区块中为当前帧上的当前区块选择一组参考区块;
b.估计当前区块和每个参考区块之间的运动矢量差值;
c.确定对应最小运动矢量差值的参考区块,判断最小运动矢量差值是否小于预设阈值;
d.如果最小运动矢量差值小于预设阈值,设置当前区块的运动矢量和参考帧为所确定的参考区块的运动矢量和参考帧;
e.如果最小运动矢量差值大于预设阈值,对每个预测方向,设置当前区块的运动矢量为0矢量或一个中间矢量,且设置当前区块的参考帧为最靠近当前区块的参考帧或最经常被一组参考区块采用的参考帧。
优选地,步骤e中:
如果一组参考区块都是帧内区块,则:设置当前区块在每个预测方向上的运动矢量为0矢量,且设置当前区块在每个预测方向上的参考帧为最靠近当前区块的参考帧;
如果一组参考区块并不都是帧内区块,则:
i)如果对一个预测方向,一组参考区块都没有运动矢量,则当前区块无在该预测方向上的运动矢量,否则使用H.264标准化的运动矢量预测器,设置当前区块在该预测方向上的运动矢量为中间矢量;
ii)如果对一个预测方向,一组参考区块的参考帧不是完全不同,则设置当前区块在所述预测方向上的参考帧为最经常被一组参考区块采用的参考帧,否则设置当前区块在所述预测方向上的参考帧为所述一组参考区块的参考帧中最靠近当前区块的参考帧。
优选地,步骤b包括:
b1.对所述参考区块的每个预测方向,在对应的参考帧上选择当前区块的第一代表性区块和参考区块的第二代表性区块;
b2.对所述参考区块的每个预测方向,计算第一代表性区块和第二代表性区块在其前向和后向预测方向上的运动矢量差值并求和;
b3.如果计算出了对应所述参考区块的前向和后向两个预测方向的运动矢量差值,则计算所述两个运动矢量差值的总和作为输出;如果仅有一个运动矢量差值被计算出来,则计算所述一个运动矢量差值乘以2作为输出;如果没有计算出运动矢量差值,则输出一个非常大的值,以表示参考区块的确定是失败的。
优选地,步骤b1中,如果所述第一代表性区块和所述第二代表性区块在其一个预测方向上的参考帧不同,步骤b2中,计算所述运动矢量差值时,先将各运动矢量在相应坐标上的分量除以各自的时间长度,再对比例调整了的运动矢量计算出在相应坐标上的绝对差,其中所述第一代表性区块的运动矢量的时间长度为所述第一代表性区块所在的帧和所述第一代表性区块的参考帧之间的时间差,所述第二代表性区块的运动矢量的时间长度为所述第二代表性区块所在的帧和所述第二代表性区块的参考帧之间的时间差。
优选地,步骤b3中,所述没有计算出运动矢量差值的情形包括:
i)参考区块既没有所述前向预测方向也没有所述后向预测方向;
ii)虽然有所述前向预测方向或所述后向预测方向,但是其对应的第一代表性区块或第二代表性区块不在帧边缘内。
优选地,步骤b3中,所述仅有一个运动矢量差值被计算出来的情形包括:
i)参考区块有所述前向预测方向和所述后向预测方向,其对应的第一代表性区块和第二代表性区块在帧边缘内,且仅对于前向预测方向或仅对于后向预测方向,第一代表性区块或第二代表性区块是帧内区块;
ii)参考区块仅有所述前向预测方向或仅有所述后向预测方向,其对应的第一代表性区块和第二代表性区块在帧边缘内,且第一代表性区块和第二代表性区块不是帧内区块。
优选地,步骤b3还包括:
如果在两个预测方向上第一代表性区块和第二代表性区块在帧边缘内,并是帧内编码的区块,则将预设值作为输出。
优选地,步骤a中,所述当前区块为一个在当前帧上一个16*16宏区块中的四个8*8区块中的一个,所述一组参考区块为三个4*4区块,所述三个4*4区块的选择为在所述宏区块外的与所述当前区块左邻接的第一个4*4区块、与所述当前区块上邻接的第一个4*4区块、与所述当前区块右上对角或左上对角邻接的第一个4*4区块。
一种视频编码装置,包括:
参考区块选择器,用于从位于当前宏区块之外的区块中为当前帧上的当前区块选择一组参考区块;
运动差值估计器,用于估计当前区块和每个参考区块之间的运动矢量差值;
确定器,用于确定对应最小运动矢量差值的参考区块,并判断最小运动矢量差值是否小于预设阈值;
运动信息处理器,用于在最小运动矢量差值小于预设阈值时,设置当前区块的运动矢量和参考帧为所确定的参考区块的运动矢量和参考帧;
运动信息估计器,用于在最小运动矢量差值大于预设阈值,对每个预测方向,设置当前区块的运动矢量为0矢量或一个中间矢量,且设置当前区块的参考帧为最靠近当前区块的参考帧或最经常被一组参考区块采用的参考帧。
优选地,所述运动信息估计器处理至少以下内容:
如果所述一组参考区块都是帧内区块,则:设置所述当前区块在每个预测方向上的运动矢量为0矢量,且设置所述当前区块在每个预测方向上的参考帧为最靠近所述当前区块的参考帧;
如果所述一组参考区块并不都是帧内区块,则:i)如果对一个预测方向,所述一组参考区块都没有运动矢量,则所述当前区块无在该预测方向上的运动矢量,否则使用H.264标准化的运动矢量预测器,设置所述当前区块在该预测方向上的运动矢量为一中间矢量;ii)如果对一个预测方向,所述一组参考区块的参考帧不是完全不同,则设置所述当前区块在所述预测方向上的参考帧为最经常被所述一组参考区块采用的参考帧,否则设置所述当前区块在所述预测方向上的参考帧为所述一组参考区块的参考帧中最靠近当前区块的参考帧。
优选地,运动差值估计器处理至少以下内容:
b1.对所述参考区块的每个预测方向,在对应的参考帧上选择所述当前区块的第一代表性区块和所述参考区块的第二代表性区块;
b2.对所述参考区块的每个预测方向,计算所述第一代表性区块和所述第二代表性区块在其前向预测方向和后向预测方向上的运动矢量差值并求和;
b3.如果计算出了对应所述参考区块的前向和后向两个预测方向的运动矢量差值,则计算所述两个运动矢量差值的总和作为输出;
如果仅有一个运动矢量差值被计算出来,则计算所述一个运动矢量差值乘以2作为输出;
如果没有计算出运动矢量差值,则输出一个非常大的值。
优选地,步骤b1中,如果所述第一代表性区块和所述第二代表性区块在其一个预测方向上的参考帧不同,步骤b2中,计算所述运动矢量差值时,先将各运动矢量在相应坐标上的分量除以各自的时间长度,再对比例调整了的运动矢量计算出在相应坐标上的绝对差,其中所述第一代表性区块的运动矢量的时间长度为所述第一代表性区块所在的帧和所述第一代表性区块的参考帧之间的时间差,所述第二代表性区块的运动矢量的时间长度为所述第二代表性区块所在的帧和所述第二代表性区块的参考帧之间的时间差。
优选地,步骤b3中,所述没有计算出运动矢量差值的情形包括:
i)所述参考区块既没有所述前向预测方向也没有所述后向预测方向;
ii)所述参考区块虽然有所述前向预测方向或所述后向预测方向,但是其对应的所述第一代表性区块或所述第二代表性区块不在帧边缘内。
优选地,步骤b3中,所述仅有一个运动矢量差值在一个预测方向被计算出来的情形包括:
i)所述参考区块有所述前向预测方向和所述后向预测方向,其对应的所述第一代表性区块和所述第二代表性区块在帧边缘内,且仅对于所述前向预测方向或仅对于所述后向预测方向,所述第一代表性区块或所述第二代表性区块是帧内区块;
ii)所述参考区块仅有所述前向预测方向或仅有所述后向预测方向,其对应的所述第一代表性区块和所述第二代表性区块在帧边缘内,且所述第一代表性区块和所述第二代表性区块不是帧内区块。
优选地,所述步骤b3还包括:
如果在所述两个预测方向上所述第一代表性区块和所述第二代表性区块在帧边缘内,并是帧内编码的区块,则将预设值作为输出。
优选地,所述参考区块选择器处理至少以下内容:
取所述当前区块为一个在当前帧上一个16*16宏区块中的四个8*8区块中的一个,所述一组参考区块为三个4*4区块,所述三个4*4区块的选择为在所述宏区块外的与所述当前区块左邻接的第一个4*4区块、与所述当前区块上邻接的第一个4*4区块、与所述当前区块右上对角或左上对角邻接的第一个4*4区块。
本发明的有益技术效果:
本发明视频编码方法和装置采用一种新的帧间预测模式,一个区块的运动矢量和参考帧从被编码的图象块的先前信息进行预测,这个帧间预测模式也被称为直接模式。这个帧间预测模式也被认为是一个子宏块编码模式。本发明从当前视频帧的多个参考区块里找出一个区块(其最可能包含与当前区块相同的运动),并通过使用确定的参考区块的运动信息来建立当前区块的运动信息(运动矢量和参考帧)。在本发明里,运动矢量和参考帧的指数不被编码,在解码端,这些数据的正好相同数值能被再预测。不需要比特用于编码运动矢量、参考帧指数、预测方向(前向、后向或双向)和一些其他开销。这些信息可以由解码端自身获得。本发明能够获得较高的编码性能。
本发明直接模式的性能优于H.264/AVC标准里现有的空间直接模示的性能。实验结果显示:如果使用CAVLC熵编码方法,本发明直接模式能够为QCIF,CIF和720p序列分别达到平均BD率2.11%,1.65%和2.63%的降低。本发明直接模式特别适用于一些包含大量图像放大运动的720p序列。Into Tree和Old Town Cross序列的平均BD率分别降低10.16%和11.19%。至于使用CAVLC熵编码方法获得的结果,本发明直接模式仍然能够分别为QCIF,CIF和720p序列获得BD率0.98%,0.71%和1.31%的降低。
本发明适用于任何采用运动矢量预测并需要发送信息给解码器的视频编码系统,例如,包括但不限于H.264,KTA,AVS,MPEG。另外,本发明适用于视频编码标准和视频编解码器。
附图说明
本发明的各个目的、方面和实施例都将通过以下参考附图进行详细描述。
图1描述用于时间直接模式的一个当前帧和一个未来参考帧。
图2示意性地表示一个当前帧及其参考帧之间的双向预测。
图3示意性地表示一个当前帧及其参考帧之间没有运动矢量的情况。
图4示意性地表示一个重建的B帧被用做一个当前帧的一个参考帧。
图5示意性地表示在场景变化时执行帧间预测的情况。
图6示意性地表示一个当前区块的4*4区域用于空间直接模式。
图7示意性地表示在空间直接模式里考虑时间直接模式的一种情况。
图8示意性地表示本发明一个实施例的参考区块的选择。
图9示意性地表示一个参考区块和一个当前区块以及它们相应的代表区块。
图10示意性地表示一个实施例里分别表示当前区块和参考区块的两个代表区块有不同的参考帧。
图11显示为一个参考区块确定P值的过程的流程图。
图12显示比较不同参考区块的P值的流程图。
图13示意性地显示本发明视频编码方法一个实施例的模块图。
图14示意性地显示本发明视频编码装置一个实施例的模块图。
具体实施方式
为更好地阐述本发明的实施方式,首先介绍视频编码的时间直接模式和空间直接模式。
A.时间直接模式
图1描述用于时间直接模式的一个当前帧和一个未来参考帧。当前帧110可以被分割成多个8*8的区块115。这8*8的区块115对应第一未来参考帧120里的一个相同位置区块125。第一未来参考帧上相同位置的8*8区块的左上4*4区域122的信息用于时间直接模式。未来参考帧120里的相同位置区块125的位置与在当前帧110里的8*8区块115的位置相同。
图2示意表示一个当前帧及其参考帧之间的双向预测。用双向预测进行编码的当前帧220也被看作是当前B帧。使用的双向预测包括后向预测(backward prediction)和前向预测(forward prediction)。在一个实施例里,当前区块225的后向参考帧(List 1参考)230是第一未来参考帧。当前区块225的前向参考帧(List 0参考)210与相同位置的4*4区域235的前向参考帧相同。当前区块225的前向运动矢量MVL0和后向运动矢量MVL1是相同位置4*4区域的前向运动矢量MV的折合值(scaled value)。等式(1)根据相同位置4*4区域的前向运动矢量MV给出前向运动矢量MVL0。
等式(2)根据相同位置4*4区域的前向运动矢量MV给出后向运动矢量MVL1。
图3示意地表示在一个当前帧320及其参考帧(后向参考和前向参考)之间没有运动矢量的情形。如果相同位置区块335是一个帧内区块,其没有运动矢量指向任何前向参考帧,在该直接模式里不能预测当前区块335的运动信息。在此情况下,当前区块325的前向运动矢量和后向运动矢量被设置成0,并且使用第一先前参考帧310和第一未来参考帧330。对于直接在一个内帧之前的B帧来说,该问题很严重。
图4示意性地表示一个重建的B帧被使用作为当前帧的参考帧的情形。重建的B帧可以被使用作为其它帧的参考帧,如在H.264里。如果未来参考帧是一个B帧430,并且在此参考帧里的相同位置区块435不是帧内编码,而仅有一个后前向参考,那么确定当前区块425的前向参考帧是很困难的。在此情况下,当前区块425不考虑直接模式。
图5示意性地表示一旦场景变化时执行帧间预测的情形。由于一个未来帧的信息被用于进行预测,所以就在场景变化之前的B帧必然获得不精确的预测结果。
B.空间直接模式
图6示意性地表示用于空间预测模式的一个当前区块的4*4区域。当前宏区块的8*8区块610的空间直接模式的预测使用了8*8区块610附近的三个4*4区域的信息。选择的三个4*4区域可以包括区域A 620,B 640和C 650,或包括A 620,B 640和D 630。每个8*8区块的前向参考帧是在三个4*4区域的前向参考帧中间具有最小参考帧指数的那个帧。每个8*8区块的后向参考帧是在三个4*4区域的后向参考帧中间具有最小参考帧指数的那个帧。
每个8*8区块的前向运动矢量是前向H.264预测器(通常是三个4*4区域的前向运动矢量的中间矢量)。每个8*8区块的后向运动矢量是后向H.264预测器(通常是三个4*4区域的后向运动矢量的中间矢量)。不同于总是应用双向预测的时间直接模式,空间模式被允许依照以下条件从前向预测、后向预测和双向预测中间适应性地选择其预测方向。
如果三个4*4区域中的至少一个区域有一个前向参考,并且所有三个4*4区域没有一个后向参考,那么仅使用前向预测。如果三个4*4区域中的至少一个区域有一个后向参考,并且所有三个4*4区域没有一个前向参考,那么仅使用后向预测。如果三个4*4区域中的至少一个区域有一个前向参考,并且三个4*4区域中的至少一个区域有一个后向参考,那么使用双向预测。如果所有三个4*4区域被进行帧内编码或位于片(slice)边界之外,那么也使用双向预测,但前向和后向运动矢量被设置为0,并且使用第一先前参考帧和第一未来参考帧。
图7示意性地表示在空间直接模式里考虑时间相关性的情形。空间直接模式也部分考虑时间相关性以改善其性能。首先检查在第一未来参考帧上相同位置的8*8区块里的左上4*4区域是否是静止的(“前向参考帧指数是0,前向运动矢量是[-1,-1]”或“没有前向参考,后向参考帧指数是0,并且后向运动矢量是[-1,1]”)。对当前8*8区块的前向和后向预测方向,如果相关的参考帧指数是0,而相同位置区块是静止的,使用0MV代替最初的H.264预测器。
以下进一步介绍本发明视频编码方法和装置的实施例。
请参见图13,视频编码方法的实施例包含以下步骤:
1310.为当前帧上的当前区块选择一组参考区块;
1320.估计当前区块和每个参考区块之间的运动矢量差值;
1330.确定对应最小运动矢量差值的参考区块,判断最小运动矢量差值是否小于预设阈值;
1340.如果最小运动矢量差值小于预设阈值,设置当前区块的运动矢量和参考帧为所确定的参考区块的运动矢量和参考帧;
1350.如果最小运动矢量差值大于预设阈值,对每个预测方向,设置当前区块的运动矢量为0矢量或一个中间矢量,且设置当前区块的参考帧为最靠近当前区块的参考帧或最经常被一组参考区块采用的参考帧。
下面针对上述各个步骤更具体地描述视频编码方法和装置的典型实施例。
在一个典型实施例里,一个宏区块被分割成四个8*8的区块,每个8*8区块以该直接模式进行编码。8*8的块尺寸已经被H.264/AVC标准采用对一个区块在B-slice上编码。该直接模式也是一种宏区块模式,其对一个宏区块的所有四个8*8区块以直接模式编码方法进行编码。图8示意性地表示在该实施例里的参考区块的选择。不失一般性并作为一个典型实施例,三个参考区块被用于进行参考区块选择。当前视频帧里三个参考区块中的一个区块(其最可能包含与当前区块相同的运动)被确定,然后使用该确定的参考区块的运动信息来建立当前区块的运动信息。
参考区块的选择取决于当前8*8区块的位置。在一个宏区块内可能有四个8*8区块,记作当前区块810,当前区块820,当前区块830和当前区块840。因此,如图8所示,有4种可能的参考区块组情形用于选择。参考区块的尺寸是4*4,并被记作字母A,B,C和D。区块A,B和C被看作是当前区块810,820,830和840的三个参考区块。在区块C不可能的情形里(如位于当前片之外),考虑用区块D代替区块C,例如在当前区块820和840的例子里。根据实验数据,已经证明这样的配置好于当前宏区块的所有四个8*8区块必须使用同一组参考区块的配置。在一些情况下,尽管一些直接靠近当前区块并位于当前宏区块内的区块符合条件成为当前区块的参考区块,但还是会使用位于当前宏区块之外的区块。这种安排会避免在B跳过模式里和在其它使用直接模式的编码模式里重复计算每个宏区块的运动信息。
图9示意性地描述一个参考区块和一个当前区块及其对应的代表性区块。参考区块的运动与当前区块的运动相同的可能性,对参考区块组合里的每个区块(包括区块A,B,C和D),都会进行估计。为一个参考区块估计可能性的过程在以下描述:
首先,参考区块915的参考帧920被分割成非重叠的4*4区块。在该参考帧920上,选择一个非重叠的4*4区块,其与参考区块915的预测928有最大的重叠区域。这个被选择的区块被使用作为参考区块915的代表性区块926。这个代表性区块926很可能包含参考区块915的大部分或全部内容,因此,这个代表性区块926能够被使用作为参考区块915的代表。根据当前区块912对于参考区块915位置的相对位置,在参考区块915的参考帧920上选择另一个非重叠的4*4区块,其对于参考区块915的代表性区块926的位置有相同的相对位置。这第二个被选择的区块被使用作为当前区块912的代表性区块923。在此实施例里,参考区块915和当前区块912的两个代表性区块都位于同一参考帧920里。
在参考区块915的参考帧920上选择了两个代表当前区块和参考区块的区块之后,这两个代表性区块的运动矢量相互进行比较。如果这两个运动矢量非常接近,两个代表性区块很可能属于场景里的同一物体,或者至少它们互相高度相关。在此情形下,在当前帧上的当前区块和参考区块也可能具有非常相似的运动。为了测量两个代表性区块之间的相关性有多高,其运动矢量差值将被计算。例如,运动矢量差值的计算如下:
diff=|MV1(x)-MV2(x)|+|MV1(y)-MV2(y)| (3)
其是当前区块的代表性区块的运动矢量MV1和参考区块的代表性区块的运动矢量MV2之间在X坐标和Y坐标上的绝对差之和。
对代表性区块的每个预测方向,都计算一个运动矢量差值。
图10示意性地描述一个实施例,其中代表当前区块和参考区块的两个代表性区块分别有不同的参考帧。由于两个代表性区块的参考帧可能是不同的,它们的运动矢量需要被按比例缩小(通过将其除以各自时间长度)用于计算运动矢量差值,如以下等式(4)。
如图10所示,两个代表性区块分别被称为第一代表性区块和第二代表性区块。第一代表性区块代表当前区块1001。第二代表性区块代表参考区块1002。第一代表性区块具有参考帧1010和运动矢量MV1。第二代表性区块具有参考帧1020和运动矢量MV2。包含第一代表性区块的帧和第一代表性区块的参考帧之间的时间差等于a,包含第二代表性区块的帧和第二代表性区块的参考帧之间的时间差等于b。
图10和等式(4)仅显示两个代表性区块的前向运动矢量。后向运动矢量的运动矢量差也需要计算,这取决于以下条件:如果两个代表性区块中的任一代表性区块没有那个预测方向的运动矢量,那个预测方向的运动矢量差不要计算。
如果确定了两个预测方向的运动矢量差,然后要计算前向和后向运动矢量差的总和作为输出。如果仅有一个预测方向的一个运动矢量差被计算出来,该计算出的运动矢量差就乘以2作为输出。如果在此步骤里没有运动矢量差被计算出来,就输出一个非常大的运动矢量差值(=Y)。
上述整个过程对参考区块的每个预测方向(前向和后向)仅执行一次。在一个实施例里,取P值为参考区块的两个预测方向(前向和后向)的结果之和。P值与参考区块和当前区块的运动相同可能性呈反比例。如果参考区块的预测是单方向的,那么P值是该单预测方向的结果的2倍。
图11描述了为一个参考区块确定P值过程的流程图。在此流程图里,cnt_1是一个计数器,被用来记录参考区块在两个代表性区块位于帧边缘内的情形下的预测方向数目;cnt_2也是一个计数器,被用来记录参考区块在两个代表性区块是帧内编码的区块的情形下的预测方向数目。
如果在过程结束时cnt_1是0,意味着没有代表性区块可以被用来估计当前区块和参考区块的运动的相似性,在此例子里,参考区块被确定是失败的,这可以由一个非常高的P值表示(在此例子里等于Y)。
如果在过程结束时{cnt_1是2且cnt_2是1}或者{cnt_1是1且cnt_2是0},意味着当前区块和参考区块之间的运动关系是只估计了一半,即只估计了参考区块两个预测方向中的其中一个方向,很可能参考区块的预测是单方向,在此例子里,P值等于单预测方向的结果乘以2。
此外,如果在过程结束时cnt_1和cnt_2的数值相同,意味着两个预测方向的每对代表性区块是在帧边缘内,并已经被帧内编码,在此例子里,尽管当前区块和参考区块之间的运动关系不能通过MV差值计算进行估计,在每对代表性区块里的代表性区块是有些相关的,因为它们都是帧内编码的区块,并且一个预设值Z被赋予P。
图12显示一个比较各种参考区块的P值的流程图。在确定三个参考区块中的每个参考区块的P值(P1,P2和P3)之后,P值互相进行比较,并与一个预设阈值T进行比较。选择具有最小P值(Pmin)的参考区块,Pmin小于或等于T,然后该参考区块的运动矢量、参考帧和预测方向直接被当前区块再次使用。否则,如果所有三个P值是相同的或大于T,当前区块的运动矢量和参考帧就以另一种方式被确定,如下:
如果三个参考区块都是帧内区块(其没有任何运动矢量用于预测当前区块的运动矢量),那么一个0运动矢量和最靠近当前区块的候选参考帧分别被使用作为当前区块在每个预测方向上的运动矢量和参考帧。
如果三个参考区块并不都是帧内区块,则在每个预测方向(前向和后向)上当前区块的参考帧被设置成最经常在该预测方向上由三个参考区块使用的参考帧(Rfreq)。对一个预测方向上,如果这三个参考区块的参考帧(R1,R2和R3)是完全不同的,那么选择最靠近当前帧的那个参考帧(R1,R2或R3),作为当前区块在那个预测方向上的参考帧(R)。另一方面,H.264标准化的MV预测器,其通常是三个参考区块的一个中间矢量被设置作为当前区块在每个预测方向上的运动矢量。但是,如果所有三个参考区块在一个特定预测方向上没有运动矢量,那么当前区块也没有那个预测方向上的运动矢量。
图13示意性地描述本发明编码方法一个实施例的模块示意图。
图14示意性地描述本发明编码装置一个实施例的模块示意图。
在一个参考区块选择器1410上,为当前帧上的当前区块选择一组参考区块。当前区块和每个参考区块之间的运动矢量差值(运动差)是由一个运动差值估计器1420进行估计。一个确定器1430被用来确定哪一个参考区块对应最小的运动差。如果最小运动差小于一个阈值,当前区块的运动矢量和参考帧通过一个运动信息处理器1440被设置为选择的参考区块的运动矢量和参考帧。如果最小运动差大于一个阈值,对每个预测方向,当前区块的运动矢量通过运动信息估计器1450被设置为0矢量或参考区块的运动矢量的中间值,并且当前区块的参考帧被设置为最经常被参考区块采用的参考帧。
此外,本发明也允许放弃使用B直接模示用于对一个宏区块进行编码。这是因为很少选择该模式,B跳过模式在H.264视频编码期间占主要优势。尽管放弃B直接模示导致轻微的质量下降,但能够获得较高的编码效率,因为仅需要较少比特用于编码模式类型。
根据实验结果,X和Y值已经被设置成65535,并且Z和T的数值已经被设置成7。本发明直接模式的性能与H.264/AVC标准里现有的空间直接模示的性能进行了比较。实验结果显示:如果使用CAVLC熵编码方法,本发明直接模式能够为QCIF,CIF和720p序列分别达到平均BD率2.11%,1.65%和2.63%的降低。本发明直接模式特别适用于一些包含大量图像放大运动的720p序列。Into Tree和Old Town Cross序列的平均BD率分别降低10.16%和11.19%。至于使用CAVLC熵编码方法获得的结果,本发明直接模式仍然能够分别为QCIF,CIF和720p序列获得BD率0.98%,0.71%和1.31%的降低。
本发明特别适用于一些包含大量图像放大运动的序列。对那些序列,能够降低超过10%的BD率。
通常,本发明直接模式的各种实施例可以在各种终端设备或用户设备上执行,包括但不限于手机和其它无线通信应用设备、个人数字助理(PDA),便携式和台式计算机、图像/视频装置如数码相机、音频-视频(AV)装置如视频播放器、游戏机、允许访问和浏览的互联网和局域网(LAN)应用设备、以及集成这些功能组合的便携式单元或装置。
本发明实施例可以以软件、硬件、应用逻辑或软件、硬件和应用逻辑的组合方式实施,软件、应用逻辑和/或硬件可以被植入到集成电路芯片、模组或存储器里。如果期望的话,部分软件、硬件和/或应用逻辑可以被植入到集成电路芯片上,部分软件、硬件和/或应用逻辑可以被植入到模组上,部分软件、硬件和/或应用逻辑可以被植入到存储器上。在一个典型实施例里,应用逻辑、软件或指令集合被保留在任何一个传统计算机可读媒质上。在本发明的上下文里,“计算机可读媒质”可以是任何媒质或装置,其能够保留、存储、传送、传播或传输指令与一个指令执行系统、装置或设备如计算机结合使用。计算机可读媒质可能包括一个计算机可读存储媒质,其可以是能够保留或存储指令的任何媒质或装置,与一个指令执行系统、装置或设备如计算机结合使用。
如果期望的话,在此所述的不同功能可以以不同次序和/或互相并行执行。此外,如果期望的话,一个或多个上述功能可以是选择性的或可以被组合。
在此也会注意到,尽管以上描述了本发明的典型实施例,这些描述不应该被看作是限制性含义。而是,在不脱离如所附权利要求里定义的本发明范围内,可以作出一些变化和修改。
Claims (10)
1.一种视频编码方法,其特征在于,包括以下步骤:
a.从位于当前宏区块之外的区块中为当前帧上的当前区块选择一组参考区块;
b.估计当前区块和每个所述参考区块之间的运动矢量差值;
c.确定对应最小运动矢量差值的参考区块,判断所述最小运动矢量差值是否小于预设阈值;
d.如果所述最小运动矢量差值小于预设阈值,设置所述当前区块的运动矢量和参考帧为所确定的参考区块的运动矢量和参考帧;
e.如果所述最小运动矢量差值大于所述预设阈值,对每个预测方向,设置所述当前区块的运动矢量为0矢量或一个中间矢量,且设置所述当前区块的参考帧为最靠近所述当前区块的参考帧或最经常被所述一组参考区块采用的参考帧。
2.根据权利要求1所述的视频编码方法,其特征在于,步骤e中:
如果所述一组参考区块都是帧内区块,则:设置所述当前区块在每个预测方向上的运动矢量为0矢量,且设置所述当前区块在每个预测方向上的参考帧为最靠近所述当前区块的参考帧;
如果所述一组参考区块并不都是帧内区块,则:i)如果对一个预测方向,所述一组参考区块都没有运动矢量,则所述当前区块无在该预测方向上的运动矢量,否则使用H.264标准化的运动矢量预测器,设置所述当前区块在该预测方向上的运动矢量为一中间矢量;ii)如果对一个预测方向,所述一组参考区块的参考帧不是完全不同,则设置所述当前区块在所述预测方向上的参考帧为最经常被所述一组参考区块采用的参考帧,否则设置所述当前区块在所述预测方向上的参考帧为所述一组参考区块的参考帧中最靠近当前区块的参考帧。
3.根据权利要求1或2所述的视频编码方法,其特征在于,步骤b包括:
b1.对所述参考区块的每个预测方向,在对应的参考帧上选择所述当前区块的第一代表性区块和所述参考区块的第二代表性区块;
b2.对所述参考区块的每个预测方向,计算所述第一代表性区块和所述第二代表性区块在其前向预测方向和后向预测方向上的运动矢量差值并求和;
b3.如果计算出了对应所述参考区块的前向和后向两个预测方向的运动矢量差值,则计算所述两个运动矢量差值的总和作为输出;
如果仅有一个运动矢量差值被计算出来,则计算所述一个运动矢量差值乘以2作为输出;
如果没有计算出运动矢量差值,则输出一个非常大的值,以表示参考区块的确定是失败的。
4.根据权利要求3所述的视频编码方法,其特征在于,步骤b1中,如果所述第一代表性区块和所述第二代表性区块在其一个预测方向上的参考帧不同,则步骤b2中,计算所述运动矢量差值时,先将各运动矢量在相应坐标上的分量除以各自的时间长度,再对比例调整了的运动矢量计算出在相应坐标上的绝对差,其中所述第一代表性区块的运动矢量的时间长度为所述第一代表性区块所在的帧和所述第一代表性区块的参考帧之间的时间差,所述第二代表性区块的运动矢量的时间长度为所述第二代表性区块所在的帧和所述第二代表性区块的参考帧之间的时间差。
5.根据权利要求3所述的视频编码方法,其特征在于,步骤b3中,所述没有计算出运动矢量差值的情形包括:
i)所述参考区块既没有所述前向预测方向也没有所述后向预测方向;
ii)所述参考区块虽然有所述前向预测方向或所述后向预测方向,但是其对应的所述第一代表性区块或所述第二代表性区块不在帧边缘内。
6.根据权利要求3所述的视频编码方法,其特征在于,步骤b3中,所述仅有一个运动矢量差值被计算出来的情形包括:
i)所述参考区块有所述前向预测方向和所述后向预测方向,其对应的所述第一代表性区块和所述第二代表性区块在帧边缘内,且仅对于所述前向预测方向或仅对于所述后向预测方向,所述第一代表性区块或所述第二代表性区块是帧内区块;
ii)所述参考区块仅有所述前向预测方向或仅有所述后向预测方向,其对应的所述第一代表性区块和所述第二代表性区块在帧边缘内,且所述第一代表性区块和所述第二代表性区块不是帧内区块。
7.根据权利要求3所述的视频编码方法,其特征在于,步骤b3还包括:
如果在所述两个预测方向上所述第一代表性区块和所述第二代表性区块在帧边缘内,并是帧内编码的区块,则将预设值作为输出。
8.根据权利要求1或2所述的视频编码方法,其特征在于,在步骤a中,所述当前区块为一个在当前帧上一个16*16宏区块中的四个8*8区块中的一个,所述一组参考区块为三个4*4区块,所述三个4*4区块的选择为在所述宏区块外的与所述当前区块左邻接的第一个4*4区块、与所述当前区块上邻接的第一个4*4区块、与所述当前区块右上对角或左上对角邻接的第一个4*4区块。
9.一种视频编码装置,包括:
参考区块选择器,用于从位于当前宏区块之外的区块中为当前帧上的当前区块选择一组参考区块;
运动差值估计器,用于估计当前区块和每个参考区块之间的运动矢量差值;
确定器,用于确定对应最小运动矢量差值的参考区块,并判断最小运动矢量差值是否小于预设阈值;
运动信息处理器,用于在最小运动矢量差值小于预设阈值时,设置当前区块的运动矢量和参考帧为所确定的参考区块的运动矢量和参考帧;
运动信息估计器,用于在最小运动矢量差值大于预设阈值,对每个预测方向,设置当前区块的运动矢量为0矢量或一个中间矢量,且设置当前区块的参考帧为最靠近当前区块的参考帧或最经常被一组参考区块采用的参考帧。
10.根据权利要求9所述的视频编码装置,其特征在于,所述当前区块为一个在当前帧上一个16*16宏区块中的四个8*8区块中的一个,所述一组参考区块为三个4*4区块,所述三个4*4区块的选择为在所述宏区块外的与所述当前区块左邻接的第一个4*4区块、与所述当前区块上邻接的第一个4*4区块、与所述当前区块右上对角或左上对角邻接的第一个4*4区块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29555610P | 2010-01-15 | 2010-01-15 | |
US61/295,556 | 2010-01-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101827269A CN101827269A (zh) | 2010-09-08 |
CN101827269B true CN101827269B (zh) | 2012-10-17 |
Family
ID=42690932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010176972 Active CN101827269B (zh) | 2010-01-15 | 2010-05-05 | 视频编码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101827269B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102595125B (zh) * | 2011-01-17 | 2016-04-06 | 深圳市云宙多媒体技术有限公司 | 一种p帧双向预测方法及装置 |
KR20220070072A (ko) | 2011-02-09 | 2022-05-27 | 엘지전자 주식회사 | 움직임 정보 저장 방법 및 이를 이용한 시간적 움직임 벡터 예측자 유도 방법 |
GB2501835B (en) * | 2011-03-09 | 2014-09-03 | Canon Kk | Video encoding and decoding |
US9374598B2 (en) | 2011-03-21 | 2016-06-21 | Lg Electronics Inc. | Method for selecting motion vector predictor and device using same |
CN103024370B (zh) * | 2011-09-23 | 2018-03-23 | 中兴通讯股份有限公司 | 一种运动矢量二次压缩编解码方法及装置 |
WO2016008161A1 (en) * | 2014-07-18 | 2016-01-21 | Mediatek Singapore Pte. Ltd. | Temporal derived bi-directional motion vector predictor |
CN104811729B (zh) * | 2015-04-23 | 2017-11-10 | 湖南大目信息科技有限公司 | 一种视频多参考帧编码方法 |
CN105187910B (zh) * | 2015-09-12 | 2018-11-06 | 暴风集团股份有限公司 | 一种自动检测视频自适应参数的方法及系统 |
CN110213593B (zh) * | 2018-05-25 | 2023-01-24 | 腾讯科技(深圳)有限公司 | 一种运动矢量的确定方法、编码压缩方法和相关装置 |
CN113992914B (zh) * | 2019-09-24 | 2023-04-14 | Oppo广东移动通信有限公司 | 帧间预测方法及装置、设备、存储介质 |
CN114339231B (zh) * | 2021-12-27 | 2023-10-27 | 杭州当虹科技股份有限公司 | 利用运动矢量快速跳Cu级模式选择的方法 |
CN115811610B (zh) * | 2023-01-13 | 2023-05-05 | 安徽医科大学 | 一种适用于无线内窥镜的图传方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040047418A1 (en) * | 2002-07-19 | 2004-03-11 | Alexandros Tourapis | Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures |
CN101005616A (zh) * | 2002-01-09 | 2007-07-25 | 松下电器产业株式会社 | 移动向量编码方法和移动向量编码装置 |
US20070286281A1 (en) * | 2004-02-25 | 2007-12-13 | Toshiharu Tsuchiya | Picture Information Encoding Apparatus and Picture Information Encoding Method |
US20090207914A1 (en) * | 2008-02-20 | 2009-08-20 | Samsung Electronics Co., Ltd. | Method for direct mode encoding and decoding |
CN101578866A (zh) * | 2006-10-20 | 2009-11-11 | 诺基亚公司 | 虚拟解码参考画面标记和参考画面列表 |
-
2010
- 2010-05-05 CN CN 201010176972 patent/CN101827269B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005616A (zh) * | 2002-01-09 | 2007-07-25 | 松下电器产业株式会社 | 移动向量编码方法和移动向量编码装置 |
US20040047418A1 (en) * | 2002-07-19 | 2004-03-11 | Alexandros Tourapis | Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures |
US20070286281A1 (en) * | 2004-02-25 | 2007-12-13 | Toshiharu Tsuchiya | Picture Information Encoding Apparatus and Picture Information Encoding Method |
CN101578866A (zh) * | 2006-10-20 | 2009-11-11 | 诺基亚公司 | 虚拟解码参考画面标记和参考画面列表 |
US20090207914A1 (en) * | 2008-02-20 | 2009-08-20 | Samsung Electronics Co., Ltd. | Method for direct mode encoding and decoding |
Non-Patent Citations (5)
Title |
---|
.Direct Mode Coding for Bipredictive Slices in the H.264 Standard.《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》.2005,第15卷(第1期),119-126. |
Feng Wu |
Shipeng Li |
Tourapis, A.M. |
Tourapis, A.M.;Feng Wu;Shipeng Li;.Direct Mode Coding for Bipredictive Slices in the H.264 Standard.《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》.2005,第15卷(第1期),119-126. * |
Also Published As
Publication number | Publication date |
---|---|
CN101827269A (zh) | 2010-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101827269B (zh) | 视频编码方法和装置 | |
CN112584165B (zh) | 一种编解码方法及其设备 | |
CN101379830B (zh) | 用于视频宏块对的帧/场编码模式的推导 | |
CN103238319A (zh) | 扩展的运动向量预测项的方法及装置 | |
CN103891290A (zh) | 运动矢量处理 | |
CN101860754A (zh) | 运动矢量编码和解码的方法和装置 | |
CN102883159A (zh) | 图像编码方法以及图像解码方法 | |
US8462849B2 (en) | Reference picture selection for sub-pixel motion estimation | |
CN101888546B (zh) | 一种运动估计的方法及装置 | |
CN102572424A (zh) | 图像处理设备、方法和程序 | |
EP2590410B1 (en) | Video encoding method, video decoding method, video encoding device, video decoding device, and programs for same | |
EP2109319A1 (en) | Moving image encoding-decoding system with macroblock-level adaptive frame/field processing | |
CN102364948B (zh) | 视频编码合并模式双向补偿方法 | |
CN101977327A (zh) | 基于嵌入式分布式视频编码描述的视频抗差错编解码方法 | |
TW201251473A (en) | Video decoding device, video decoding method, and video decoding program | |
KR100986992B1 (ko) | H.264 인코딩 시 고속 인터 모드 결정 방법 | |
de Oliveira et al. | Performance Evaluation of the PWSSIM Metric for HEVC and H. 264 | |
Tsai et al. | A 3D predict hexagon search algorithm for fast block motion estimation on H. 264 video coding | |
Xin et al. | Motion mapping and mode decision for MPEG-2 to H. 264/AVC transcoding | |
Jung et al. | Low complexity video encoding using new motion vector skip mode coding | |
Cheng et al. | A Fast Motion Estimation Algorithm Based on Diamond and Line/Triangle Search Patterns | |
Yu | Research and optimization of a H. 264AVC motion estimation algorithm based on a 3G network | |
Guang et al. | A fast motion estimation algorithm combining reference frame and mode decision | |
Choi et al. | Evaluation of the Image Backtrack-Based Fast Direct Mode Decision Algorithm |
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 |