CN110383841A - 用于在视频压缩中对运动矢量进行编码的方法和设备 - Google Patents

用于在视频压缩中对运动矢量进行编码的方法和设备 Download PDF

Info

Publication number
CN110383841A
CN110383841A CN201880015462.7A CN201880015462A CN110383841A CN 110383841 A CN110383841 A CN 110383841A CN 201880015462 A CN201880015462 A CN 201880015462A CN 110383841 A CN110383841 A CN 110383841A
Authority
CN
China
Prior art keywords
candidate
motion vector
vector
candidate blocks
motion
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
Application number
CN201880015462.7A
Other languages
English (en)
Other versions
CN110383841B (zh
Inventor
何大可
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ot Patent Trusteeship Co ltd
Original Assignee
BlackBerry Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BlackBerry Ltd filed Critical BlackBerry Ltd
Publication of CN110383841A publication Critical patent/CN110383841A/zh
Application granted granted Critical
Publication of CN110383841B publication Critical patent/CN110383841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

用于使用帧间编码并从候选运动矢量集中移除冗余运动矢量进行视频编码的方法和设备。该方法可以确定运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出先前重建的参考图片中冗余的候选块,并且基于该确定来排除候选运动矢量中的所述至少一些候选运动矢量以将集缩小为子集。在一些情况下,如果候选块与由集中的候选运动矢量之一识别的另一候选块的差异小于阈值,则该候选块是冗余的。可以将函数应用于候选块和另一候选块。如果两种情况下函数的输出相同,则块被确定为冗余。

Description

用于在视频压缩中对运动矢量进行编码的方法和设备
技术领域
本申请总体上涉及视频编码,并且具体地,涉及用于改进视频编码中的运动矢量的编码的方法和系统。
背景技术
在通信和计算机联网中使用数据压缩,以有效地存储、传输和再现信息。在对图像、音频和视频的编码方面得到了具体应用。在对图像、音频和视频的编码方面得到了具体应用。新开发的视频编码标准是ITU-T H.265/HEVC标准。其他视频编码格式包括由谷歌公司开发的VP8和VP9格式。所有这些标准和格式的演进正在积极开发中。
所有这些图像和视频编码标准和格式都基于预测编码,该预测编码产生对要编码的数据的预测,然后对预测中的误差(通常称为残差)进行编码以作为比特流传输到解码器。然后,解码器进行相同的预测,并通过从比特流解码的重建误差对该预测进行调整。编码器处的误差的数据压缩通常包括误差的谱变换(spectral transform)以创建变换域系数块。这通常伴随着有损量化。在解码器处执行逆操作以重建误差/残差。在解码器处执行逆操作以重建误差/残差。熵编码(通常是上下文自适应)通常用于对残差数据进行编码,加上用于进行预测的边信息(例如,帧内编码模式或帧间编码运动矢量),以生成比特流,用于从编码器到解码器的传输或存储在存储介质上以便以后解码。在一些情况下,编码器处的误差在不使用谱变换和/或量化的情况下被编码。
在帧间编码(即,运动补偿)的情况下,预测基于来自编码顺序中较早的先前重建的图片(通常是视频的显示顺序中较早的图片,但不一定如此)的像素数据的块或部分。编码器对指定用于构建预测块的运动矢量的信息进行无损编码,并且解码器对该信息进行解码以便识别相同的预测块。在一些情况下,编码器和解码器都生成运动矢量预测子(predictor),并且编码器在附近运动矢量的搜索集内搜索,以通常基于速率-失真优化来识别所选择的运动矢量。然后,编码器对所选择的运动矢量和运动矢量预测子之间的差进行编码。
已经发现,运动矢量编码可以占据用于编码的整个比特率的较大部分。在一些情况下,运动矢量编码可以构成用于帧间编码图片的总比特率的30%至50%。因此,找到更有效的方式对运动矢量进行编码可能是有利的。
附图说明
现在将作为示例参考示出了本申请的示例实施例的附图,在附图中:
图1示意性地图示了帧间预测的示例;
图2示意性地示出了先前重建的图片和先前重建的图片内的搜索范围;
图3示出了像素的示例网格;
图4示出了根据本申请实施例的用于对运动矢量进行编码的示例方法;
图5示出了根据本申请实施例的对视频且特别是帧间编码视频图片的运动矢量进行解码的一个示例方法;
图6示出了视频编码器的一个示例的框图;
图7示出了视频解码器的一个示例的框图;
图8示出了编码器的示例简化框图;以及
图9示出了解码器的示例简化框图。
在不同的附图中已经使用类似的附图标记来表示类似的组件。
具体实施方式
在不同的附图中已经使用类似的附图标记来表示类似的组件。
在第一方面,本申请描述了一种在视频编码器中对视频进行编码以产生比特流的方法,视频包括图片序列,图片序列包括当前图片和先前重建的参考图片,当前图片包括要使用帧间预测进行编码的当前块。该方法包括:针对当前块确定运动矢量预测子,运动矢量预测子识别先前重建的参考图片中的块;确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;从子集中的候选运动矢量之中选择当前运动矢量以识别当前块的预测块;以及对从子集中选择的当前运动矢量进行熵编码。
在另一方面,本申请描述了一种从比特流解码视频的方法,视频包括图片序列,图片序列包括当前图片和先前重建的参考图片,当前图片包括要使用帧间预测进行解码的当前块。该方法包括:针对当前块确定运动矢量预测子,运动矢量预测子识别先前重建的参考图片中的块;确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;基于来自比特流的当前运动矢量是来自子集的候选运动矢量中的一个来对当前运动矢量进行熵解码,其中,当前运动矢量识别当前块的预测块;以及基于所述当前块的预测块和重建的残差来重建所述当前块。
在又一方面,本申请描述了配置为实现这种编码和解码的方法的编码器和解码器。
在又一方面,本申请描述了一种存储计算机可执行程序指令的非暂时性计算机可读介质,计算机可执行程序指令在被执行时使一个或多个处理器执行所描述的编码和/或解码的方法。
本领域普通技术人员将通过结合附图阅读以下示例的描述,来理解本申请的其他方面和特征。
在随后的描述中,参考用于视频编码的H.264/AVC标准、H.265/HEVC标准、VP8格式、VP9格式或其他来描述一些示例实施例。本领域普通技术人员将理解,本申请不限于那些视频编码标准和格式,而是可以适用于其他视频编码/解码标准和格式,包括可能的未来标准、多视图编码标准、可伸缩视频编码标准、3D视频编码标准和可重新配置的视频编码标准。类似地,在参考特定图像编码标准和格式的程度上,应当理解,所描述的过程和设备可以结合包括未来标准在内的其他标准来实现。
在随后的描述中,当提到视频时,术语帧、图片、切片(slice)、分片(tile)、量化组和矩形切片组可以在某种程度上互换使用。本领域技术人员将理解,图片或帧可包含一个或多个切片或片段。在一些情况下,一系列帧/图片可称为“序列”。其他术语可在其他视频或图像编码标准中使用。还将认识到,根据适用的图像或视频编码标准的具体要求或术语,某些编码/解码操作可以逐帧执行,而一些逐切片执行,一些逐图片执行,一些逐分片执行,还有一些逐矩形切片组执行等。在任何特定实施例中,适用的图像或视频编码标准可以确定是否关于帧和/或切片和/或图片和/或分片和/或矩形切片组等来执行以下描述的特定操作,视情况而定。因此,根据本公开,本领域普通技术人员将理解,本文描述的特定操作或过程以及对帧、切片、图片、分片、矩形切片组的特定参考对于给定实施例是否适用于帧、切片、图片、分片、矩形切片组、或者其中的一些或全部。
同样,在一些情况下,下面的示例可以指代“块”、“当前块”或“预测块”。这种意义上的“块”是指图片的一部分,例如,编码树单元、编码单元、预测单元、变换单元、量化组等,视具体情况而定。在许多情况下,块可以是正方形,但在其他情况下可以是非正方形。
在本申请中,术语“和/或”旨在覆盖列出元素的所有可能组合和子组合,包括列出元素的单独的任意一个、任意子组合或所有元素,而不是必须排除附加元素。
在本申请中,短语“…或…中的至少一个”旨在覆盖列出元素的任意一个或多个,包括列出元素的单独的任意一个、任意子组合或所有元素,而不是必须排除任何附加元素,且不是必须要求所有元素。
现代图像和视频编码过程几乎都依赖于预测编码对图像数据进行压缩。基于块的预测编码涉及将图片划分为多个2D块(通常是正方形或矩形,并且可能具有不同的大小)并且逐块地对数据进行编码。为了压缩数据,而不是对原始像素数据进行编码,生成块的预测,并且对原始块和预测块之间的差(称为误差或残差)进行编码。编码通常涉及残差数据的2D谱变换、变换系数的量化,并且对根据可能包括二值化在内的任何熵编码方案的经量化的变换系数的熵编码被用于给定情况。
预测块的创建通常是通过帧间预测(例如,依赖于图片序列中先前重建的图片中的像素数据)或者帧内预测(例如,依赖于与当前块相同的图片中附近的先前重建的像素数据)创建的。因此,帧间预测旨在利用图片之间的时间冗余,并且帧内预测旨在利用图片内的空间冗余。
在传统的2D视频编码中,原始像素块可由x表示,原始像素块的预测可由p表示。预测p是使用帧内或帧间预测从先前重建的图像数据生成的。由于p可用于编码器和解码器二者,因此可以从x中减去p以获得如下残差:
e=x-p
残差e经过谱变换、量化和熵编码,以创建经编码的视频数据的比特流。在解码器处,对经编码的数据进行熵解码以恢复经谱变换的量化残差,然后对经谱变换的量化残差进行逆量化和逆变换以重建残差。然后,通过将重建的残差加到预测块来获得像素数据的重建块。
为了确定如何生成预测块,解码器对预测信息进行熵解码。为了确定如何生成预测块,解码器对预测信息进行熵解码。在帧间编码的情况下,预测信息可以包括一个或多个运动矢量。
编码器可以通过评估候选运动矢量集来选择运动矢量。也就是说,可以由编码器测试可能的运动矢量的搜索集,并且基于某些标准(例如,使用率-失真优化评估)选择它们中的一个。
在一些情况下,编码器首先确定当前块的运动矢量预测子。可以使用多种技术来生成运动矢量预测子,但是通常它基于一个或多个先前选择的运动矢量,例如用于相邻或附近的块,并且可以涉及那些运动矢量的一些平均或加权平均。然后,运动矢量预测子可以用作用于确定搜索所选择的运动矢量的区域的锚点。例如,搜索范围可以在运动矢量预测子周围。在一些情况下,搜索范围可以以运动矢量预测子为中心。运动矢量可以表示为其中vx表示以平行于x轴(水平的)测量的距x的距离,υy表示以平行于y轴(垂直的)测量的距x的距离,vt是通过沿着x的坐标使用(vx,υy)生成对x的预测所根据的参考图片的索引。注意,vt有时被称为参考图片索引。在一些情况下,vt表示给定参考图片以平行于时间轴测量的距x的距离。在一些其他情况下,vt表示图片在保持参考图片的缓冲器中的索引。运动矢量预测子(在一些情况下称为“运动矢量预测子”或MVP)可以表示为
图1示意性地图示了帧间预测的示例。示出来自视频序列的两个图片,表示为10和12。图片10在图片12之后被编码和解码,使得图片12的重建数据可用于预测。图片12可以或可以不在显示顺序中早于图片10,但是它在编码顺序中早于图片10。
当对图片10中的块20进行编码并使用图片12作为用于构建块20的预测块的参考图片时,生成运动矢量预测子22在一些情况下,运动矢量预测子22可以基于图片10中在块20附近的一个或多个块的先前选择的运动矢量。无论它如何生成,运动矢量预测子22都指向图片12中的块,该块的左上角由附图标记24表示。由运动矢量预测子22指示的该点24帮助定义搜索区域,编码器在该搜索区域内寻找块20的局部最优运动矢量。
应当理解,搜索范围可以包括搜索多个先前重建的图片,即,在一系列vt上进行搜索,但为了便于说明,下面的讨论集中在一个先前重建的图片内的2D搜索区域的示例。
图2示意性地示出了先前重建的图片12和先前重建的图片内的搜索范围26。
诸如HEVC的许多标准允许以子像素分辨率定义运动矢量。也就是说,运动矢量可以指向整数像素位置,使得它识别先前重建的像素的块,或者它可以指向整数像素之间的子像素位置,使得它识别子像素的块,子像素是通过对那些中间位置处的子像素值进行插值构建的。子像素可以是半像素、四分之一像素或其他分辨率。插值可以基于应用滤波器,以基于附近整数像素值的加权平均来确定子像素值。
图3示出了像素的示例网格50。整数位置用黑色方块表示,半像素位置用灰色方块表示,并且四分之一像素位置用白色方块表示。
从x的经编码或重建的邻域(neighbourhood),例如,针对x的邻域中的块获得的运动矢量来确定运动矢量使得v0,t=vt。这里,x的经编码或重建的邻域分别由在对x进行编码之前编码或重建的块组成。在视频编码的文献中,矢量有时被称为MVP。
1.使用作为原点来定义搜索区域Ix,例如,Ix={(i,j,vt):|i-v0,x|≤Kx,|j-v0,y|≤Ky},其中(Kx,Ky)对于编码器和解码器都是已知的。Kx和Ky的典型值是32、64、128、256、512。注意,在不失一般性的情况下,此处的运动矢量被定义在在四分之一像素网格上。也就是说,(Kx,Ky)=(128,128)定义了以为中心的65×65个像素大小的搜索区域。另请注意,这里的下标x是指正在为其生成预测的原始块20(图1)。
2.在Ix中搜索使得处的p与x之间的距离最小。
3.对运动矢量差(MVD)即(vx-v0,x,vy-v0,y,0)进行熵编码。
如上所述,使用熵编码来对运动矢量进行无损编码。在一些情况下,运动矢量的编码可占总比特率的30%-50%。如果可以至少平均地减少对运动矢量进行编码所需的比特,则可以提高整体编码效率,只要经编码的视频在存储在计算机可读介质中时占用较少的存储器并且占用较少的带宽用于传输。因此,本文描述的对编码和解码过程的改变可以通过实现更大程度的压缩而不增加失真来实现比特率的节省,该比特率的节省分别改善视频编码器和解码器的有效操作。
本申请已经确定在候选块中通常存在冗余,这些候选块由搜索区域中的候选运动矢量识别。也就是说,搜索集中的两个或更多个候选运动矢量可以指向先前重建的参考图片中实际上相同的(即,冗余的)各个块。冗余块是相同的块,或非常接近使得它们彼此之间的差小于阈值的块。在一些情况下,可以通过将函数f()应用于每个块来识别冗余。如果函数的结果输出对每个块是相同的,则这两个块是冗余的。示例函数可以包括散列(hash)函数、量化或其他简化函数。
基于存在由可能的候选运动矢量的搜索集识别出冗余块的事实,在一个方面,本申请提出通过移除指向冗余块中的至少一些的运动矢量(即,冗余运动矢量)作为候选来缩小搜索集。基于存在由可能的候选运动矢量的搜索集识别出冗余块的事实,在一个方面,本申请提出通过移除指向冗余块中的至少一些的运动矢量(即,冗余运动矢量)作为候选来缩小搜索集。然后,从小搜索子集中选择当前块的运动矢量,并对运动矢量进行熵编码。
已从较小的搜索子集中选择运动矢量的事实意味着,可以比从较大的集中选择的运动矢量更有效地对该运动矢量进行熵编码,因为发送到解码器的信息仅需要将所选择的运动矢量与较小子集的剩余候选而不是候选运动矢量的较大原始搜索集进行区分。在这种意义上,“字母表”已经改变/缩小,并且可以在熵编码/解码中利用该改变来实现比特节省。
解码器对搜索集执行相同的冗余分析;也就是说,它识别并移除冗余候选运动矢量中的至少一些以识别该子集。然后,它对经编码的所选择的运动矢量进行熵解码。
在一些实施例中,可以对所选择的运动矢量直接进行编码,例如,通过在子集内指定它的索引,或者使用距运动矢量预测子的差分,如搜索空间内以预定扫描顺序距运动矢量预测子的1D距离,其中,索引考虑了已排除的候选运动矢量。在任一种情况下,相对于将以其他方式的情况,可以利用可用于选择的候选运动矢量的数量已减少的事实,平均来说更有效地对所选择的候选进行编码。
现在参考图4,其示出了根据本申请实施例的用于对运动矢量进行编码的示例方法100。在操作102中,编码器确定当前块的运动矢量预测子。如上所述,可以使用多种技术中的任何一种来生成运动矢量预测子。运动矢量预测子指向参考图片中的位置。
编码器被配置为评估搜索范围中的候选运动矢量,如操作104所示。也就是说,编码器搜索的搜索区域或范围包括当前块x的候选运动矢量的集Ix。但是在操作106中,编码器识别:候选运动矢量中的至少一些指向参考图片中与由集中其他候选运动矢量指向的其他候选块相比冗余的候选块。指向冗余块的候选运动矢量可以被称为冗余候选运动矢量。因此,在操作108中,编码器构建或生成子集,该子集包含排除冗余候选运动矢量中的至少一些的候选运动矢量。
在操作110中,编码器从候选运动矢量的子集中选择用于预测当前块的运动矢量。基于该预测和当前块,编码器确定残差并根据适用的编码方案对其进行编码,如操作112所示。在许多情况下,这可以包括对残差进行谱变换,对其进行量化,以及对经量化的变换系数进行熵编码。
在操作114中,编码器对所选择的运动矢量进行熵编码。对所选择的运动矢量的编码基于由子集的构建产生的字母表。也就是说,编码利用与原始搜索集相比大小缩小的子集,以便尝试更有效地对运动矢量进行编码。在这种意义上,基于通过缩小候选运动矢量集而产生的子集来改变或调整熵编码。换句话说,冗余运动矢量的排除将那些运动矢量的概率改变为0,这改变了与其他运动矢量相关联的概率,从而改变了熵编码。
现在参考图5,其示出了对视频且特别是对帧间编码视频图片的运动矢量进行解码的方法200的一个示例。在操作202中,为了重建当前图片中的当前块,解码器确定运动矢量预测子。解码器使用在编码器处使用的相同过程,以便以相同的运动矢量预测子结束。
在操作204中,解码器然后基于运动矢量预测子来确定将已由编码器识别的候选运动矢量集,并且在操作206中,解码器使用编码器使用的相同过程将候选运动矢量中的至少一些识别为冗余运动矢量。然后,它在操作208中构建与编码器生成的相同的子集。应当理解,解码器实际上不进行对子集内的最佳运动矢量的搜索,但是它需要子集以便从比特流中解码出所选择的运动矢量,因为对该运动矢量的熵编码基于子集。因此,在操作210中,解码器对来自比特流的所选择的运动矢量进行熵解码。然后,在操作212中,解码器通过找到由经解码的运动矢量指定的预测块并将预测块加到重建的残差,来重建当前块。
在本文描述的示例方法中,编码器和解码器两者评估运动矢量是否是“冗余的”,这可以不限于由两个矢量识别的预测块相同的情况。考虑到量化,只要p和p′足够接近,即使生成不同的预测p′,可能也会变得冗余。为了确定p和p′是否足够接近并且因此是否冗余,可以使用各种方法。在一个示例中,可以测量在给定量化参数Qp的情况下对x-p进行编码所得的速率和失真以及对x-p′进行编码所得的速率和失真。如果对x-p进行编码导致与对x-p′进行编码相同的速率和相同的失真,则被认为是冗余的。在另一实施例中,使用更宽松的条件,如果对x-p进行编码导致的速率-失真性能在由对x-p′进行编码产生的速率-失真性能的规定阈值内,则被认为是冗余的。然而,由于x不可用于解码器,因此可以使用关于上述速率-失真性能条件的一些近似值来确保编码器和解码器都可以使用相同的条件来检查是否冗余。
在一个示例中,如果p和p′之间的距离在规定阈值内,则被认为是冗余的,其中阈值可能取决于量化参数Qp。在Qp增加意味着允许更大失真的情况下,用于确定是否冗余的距离阈值可以随着Qp的增加而增加,这反映了随着Qp的增加,在量化之后x-p和x-p′更有可能是相似的。常用距离度量包括但不限于:可以使用L1、L2、L、MAE(平均绝对误差)、MSE(均方误差)或SSIM(结构相似性)。
在又一示例中,可以使用一对一或多对一映射函数f。如果f(p)=f(p′),则运动矢量被认为是冗余的,换句话说,p和p′的图像在f下没有不同。此类映射的示例包括但不限于位置敏感散列、标量或矢量量化、以及维度降低方法,如主分量分析、自动编码器神经网络等。
在不失一般性的情况下,本文描述的一些示例可以使用多对一映射函数f来确定或识别冗余运动矢量。
实现上述过程的示例编码器可以包括经修改的运动矢量分析器,以在运动矢量搜索期间识别冗余运动矢量,并且可以修改示例编码器的熵编码器部分以利用子集来确定如何对运动矢量(或运动矢量差,在许多示例中)进行编码。实现上述过程的示例解码器可以包括运动矢量分析器,以确定集,识别冗余运动矢量,并构建子集。可以修改示例解码器的熵解码器部分以利用子集来确定如何对运动矢量(或运动矢量差,在许多示例中)进行解码。
现在参考图6,其以框图形式示出了根据本申请的该方面的视频编码器300的一个示例。在该示例中,视频编码器300包括通常的预测反馈回路和图片缓冲器306,图片缓冲器306存储已经编码然后在反馈回路中解码的先前重建的图片。对于当前图片,执行运动估计302功能以找到当前图片的块的所选择的运动矢量。找到运动矢量后,所选择的运动矢量和模式mi由模式运动矢量熵编码器304进行熵编码。在该示例中,运动矢量分析器在运动估计302功能内,其中可以分析先前重建的图片以评估搜索范围中的候选运动矢量,来识别和排除冗余的候选运动矢量,从而产生候选运动矢量的子集。模式运动矢量编码器304进一步使用该候选运动矢量的子集来修改对所选择的运动矢量的熵编码,以便更有效地对所选择的运动矢量进行编码。
现在还参考图7,其以框图形式示出了根据本申请的一个方面的示例视频解码器400。视频解码器400包括:模式运动矢量解码器402,用于对其正在重建的当前图片的块的模式和运动矢量信息进行熵解码。在这方面,它具有:图片缓冲器404,存储来自视频的先前重建的图片,该图片可以用作帧间编码块的参考图片。然而,在这种情况下,模式运动矢量解码器402还包括:运动矢量分析器,用于获取先前重建的图片数据并对一个集中的候选运动矢量执行相同的分析以识别和移除冗余运动矢量,从而将集缩小为子集。然后该子集用于对所选择的运动矢量进行熵解码,因为该子集定义了定义所使用的熵编码的字母表。
完全搜索
在一个示例实现中,对集进行评估以识别冗余运动矢量可以涉及对集的完全搜索。例如,使用集内的预设扫描顺序,将运动矢量添加到子集,除非运动矢量相对于已经在子集中的运动矢量是冗余的。
在该示例实施例中,令x表示要编码或重建的源块,并且令Ix表示x的候选运动矢量集。
1.如果尚未对Ix进行排序,则将Ix转换为有序集其中K表示Ix中的运动矢量数量,且是定义搜索区域的(Kx,Ky)的函数。请注意,通过定义扫描方法来遍历Ix中的元素,这种转换可能是隐式的。
2.初始化令j表示计数器,并初始化j=1。
3.确定由运动矢量生成的预测块pj
4.在中用预测p搜索运动矢量使得f(p)=f(pj)。如果中不存在这样的矢量,则设置即,通过将插入到中来获得否则设置因为被确定为冗余。
5.将j增加1。
6.重复步骤3至5,直到j=K-1。
在上述过程结束时,分析器输出作为用于对x进行编码的运动矢量中使用的候选运动矢量集。I′x是Ix的子集,不包含任何冗余运动矢量。
在一些实施例中,上述过程可以在不同条件下终止。例如,代替在步骤6中当j=K-1时终止,当的基数或中的矢量数量大于阈值时,上述过程可以终止。在又一示例中,当j大于比K-1小的阈值时,上述过程可以终止。
分层运动矢量冗余分析
在另一方面,对集中的候选运动矢量的评估可以不是针对集中的所有其他运动矢量的每个运动矢量的完全评估。例如,分析可以仅针对子集的成员测试一些运动矢量以查看它们是否冗余。
在这方面,运动矢量分析器可以利用“层”的概念来对候选运动矢量进行分类。一层的运动矢量可以自动地包括在子集中,然后可以针对第一层的运动矢量评估另一层的运动矢量的冗余。在一个示例中,所提出的分析器仅针对给定集中某些层的运动矢量检查层i处的运动矢量的冗余。通过限制分析的范围,可以减少计算负担而不显著影响排除子集内的冗余的改进。
在一些示例实施例中,这些层基于运动矢量分辨率。在不限制这种实现的一般性的情况下,指向整数像素位置的运动矢量可以是第一层的成员,指向半像素像素位置的运动矢量可以是第二层的成员,并且指向四分之一像素位置的运动矢量可以是第三层的成员。在其他实现中,层可以由2x整数位置或4x整数位置等的运动矢量组成。出于冗余分析的目的,可以使用另外其他标准将来自该集的运动矢量分组为非重叠层或子组。
在第一示例中,层0包括指向整数像素位置的运动矢量;层1包括指向半像素位置的运动矢量;层2包括指向四分之一像素位置的运动矢量;并且层l包括指向1/2l+1像素位置的运动矢量,其中l是正整数。
在第二示例中,层0包括指向位置(x,y)的运动矢量,其中x是8的倍数并且y是4的倍数;层1包括指向位置(x,y)的剩余运动矢量,其中x是4的倍数并且y是2的倍数;层2包括指向位置(x,y)的剩余运动矢量,其中x是2的倍数并且y是1的倍数;以及层3包括剩余运动矢量。请注意,如果取决于使用四分之一像素、1/8像素还是1/2l+1像素插值,x和y两者都是4、8或1的倍数,则这里(x,y)可以是整数位置。
在第三示例中,令t0、t1、…表示一系列非负整数,使得t0<t1<t2<…。然后,层0包括指向位置(x,y)的运动矢量,使得(x,y)和已知位置(x0,y0)之间的距离在t0内;层1包括指向位置(x,y)的运动矢量,使得(x,y)和(x0,y0)之间的距离大于t0但小于或等于t1;以及对于任何i>0,层i包括指向位置(x,y)的运动矢量,使得(x,y)和(x0,y0)之间的距离大于ti-1但小于或等于ti
在一个实施例中,所提出的分析器在处理下一层的运动矢量之前处理一层的所有运动矢量。
在另一实施例中,所提出的分析器以规定的遍历顺序处理运动矢量。假设要分析的当前运动矢量位于层i。然后,使用邻域中Li≤j≤Hi层的运动矢量来确定当前运动矢量是否冗余,其中Li和Hi是非负整数,可能取决于i。(Li,Hi)的示例值包括(0,i)、(0,i-1)、(i-k,i)、(i,i+k)和(i+1,i+k),其中k是已知的正整数。在这些示例值中,(0,i-1)和(i+1,i+k)适合于并行处理。
作为说明性实施例,考虑将运动矢量分组为三层的分类:层0至层2包括分别指向整数像素、半像素和四分之一像素位置的运动矢量。置的运动矢量。令x表示要编码或重建的源块,并且令Ix表示x的候选运动矢量集。在该示例中,运动矢量分析器可以执行如下分析:
A.如果尚未对Ix进行排序,则将Ix转换为有序集其中K表示Ix中的运动矢量数量。请注意,通过定义扫描方法来遍历Ix中的元素,这种转换可能是隐式的。
B.初始化令j表示计数器,并初始化j=1。
C.如果在层0,则设置并继续到步骤D;否则,执行以下操作:
i.确定由运动矢量生成的预测块pj
ii.在中用预测p搜索运动矢量v,使得f(p)=f(pj)。如果中不存在这样的矢量,则设置即,通过将插入到中来获得否则,设置因为被确定为冗余。
D.将j增加1。
E.重复步骤C至步骤D,直到j=K-1。
在上述过程结束时,分析器输出作为用于对x编码的运动矢量中使用的候选运动矢量集。
在上面的操作A的一个实现中,可以选择扫描方法以首先访问所有整数像素位置,然后访问所有半像素位置,最后访问所有四分之一像素位置。通过使用这种扫描方法,分析器有效地一次处理一层;也就是说,在层i′>i的任何运动矢量之前对层i的所有运动矢量进行分析。
在上面的操作C中,为了控制计算复杂度,搜索可以限于较低层和紧邻邻域的运动矢量。例如,对于指向半像素位置的运动矢量,分析器可以仅检查指向紧邻邻域中的整数像素位置的运动矢量;并且对于指向四分之一像素位置的运动矢量,分析器可以检查紧邻邻域中的指向整数像素位置和半像素位置的运动矢量。例如,紧邻邻域可以被定义为小于整数像素之间的距离,小于半像素像素之间的距离,整数像素之间的距离的两倍,或者使用选择预定数量的周围像素和周围像素的图案的预定义模板。
在一些实施例中,上述过程可以在不同条件下终止。例如,代替在步骤E中当j=K-1时终止,当的基数或中的矢量数量大于阈值时,上述过程可以终止。在又一示例中,当j大于比K-1小的阈值时,上述过程可以终止。
自适应运动矢量分辨率
应当理解,上述对运动矢量冗余的分析提供了对指定冗余预测块时运动矢量分辨率的浪费程度的了解。因此,在另一方面,本申请提出编码器和解码器可以基于冗余分析来实现自适应运动矢量分辨率确定。有利地,这避免了必须传信(signal)运动矢量分辨率的变化,因为解码器可以执行对候选运动矢量集的相同分析,以确定编码器用于传信所选择的运动矢量的分辨率。
作为示例,假设要从给定的插值参考图片生成大小为N×N的预测块。可以分析半像素和四分之一像素分辨率下可用的块,以评估其中有多少块是冗余的。如果阈值数量以上是冗余的,则可以调整分辨率以排除例如四分之一像素运动矢量或甚至半像素运动矢量。例如,在每个半像素或四分之一像素位置(h,v)处,检查该位置处的N×N块(即,包括位置(x,y)处的像素的块,其中x∈{h,h+4,…,h+(N-1)*4}且y∈{v,v+4,…,v+(N-1)*4})是否冗余。如果块是冗余的,则标记位置(h,v)不可用于块大小N×N;否则,标记位置(h,v)在该参考图片中可用于块大小N×N。当要对运动矢量进行编码或解码以生成大小为N×N的预测块时,则仅指向被标记为可用于块大小N×N的位置的那些运动矢量是候选的。应当理解,在一些实施例中,可以对整个重建的图片执行一次N×N块的分析,因为该重建的图片可以多次用作参考图片。在一些实施例中,可以在将图片首次用作参考图片时执行分析。在一些情况下,可以对小于全图片的区域进行分析。
在示例实施例中,对于给定参考图片中的区域,如果被标记为可用于块大小N×N的四分之一像素位置的数量小于第一规定阈值,则区域中的所有四分之一像素位置被标记为不可用于块大小N×N。如果被标记为可用于块大小N×N的四分之一像素位置的数量小于第一规定阈值,并且如果被标记为可用于块大小N×N的半像素位置的数量小于第二规定阈值,则该区域中的所有半像素位置被标记为不可用于块大小N×N。
在又一实施例中,代替在水平和垂直方向上使用相同的分辨率(例如,四分之一像素),分析器可以在水平方向上使用一个分辨率,且在垂直方向上使用不同的分辨率,即,针对x和y坐标使用两种不同的分辨率。例如,对于块大小N×N,水平分辨率可以是四分之一像素,并且垂直分辨率可以是半像素,即,只有当(0,v)是y轴上的半像素位置或整数像素位置时,位置(h,v)才可用。作为示例,水平分辨率可以如下确定:
对于给定参考图片中的区域,如果被标记为可用于块大小N×N使得(h,0)是四分之一像素位置的四分之一像素位置(h,v)的数量小于第一规定阈值,则标记该区域中的所有四分之一像素位置(h,v)使得(h,0)为不可用于块大小NxN的四分之一像素位置,即,水平分辨率最多为半像素。如果被标记为可用于块大小N×N使得(h,0)是四分之一像素位置的四分之一像素位置(h,v)的数量小于第一规定阈值,并且如果被标记可用于块大小N×N使得(h,0)是半像素位置的半像素位置(h,v)的数量小于第二规定阈值,则标记所有半像素位置(h,v)使得(h,0)是区域中不可用于块大小N×N的半像素位置,即,水平分辨率最多为整数像素。
可以通过使用与上述方法类似的方法来确定垂直分辨率。注意,用于确定垂直分辨率的阈值可以与用于确定水平分辨率的阈值不同。
以上示例假设最大分辨率是四分之一像素,但是其他实施例可以以不同的最大分辨率为特征。另外,这些示例假设最小分辨率是整数像素,但是其他实施例可以以不同的最小分辨率为特征。
控制参数
在一些应用中,如移动视频,由运动矢量的冗余分析引起的计算复杂性可能是一个问题。为了解决这些问题,在一些实施例中,可以使用旨在向解码器传信用于给定视频、图片或其一部分的运动矢量分析的复杂水平的标志和/或参数。
例如,可以在序列、图片、切片或编码单元参数集中插入一个标志,以指示是否要分别对序列、图片或切片等启用或禁用运动矢量分析器。
在另一示例中,当启用并使用全运动矢量分析器搜索时,可以在序列、图片、切片或(最大)编码单元参数集中插入参数以指定搜索参数。这些参数的示例包括要对其进行检查的中的运动矢量的数量、对函数f的选择和/或参数,例如,用于确定运动矢量是否冗余的距离阈值。
类似地,如果运动矢量分析器使用分层运动矢量分析,则可以在序列、图片、切片或(最大)编码单元参数集中插入参数以分别控制关于当前序列、图片、切片或(最大)编码单元的搜索。这些参数的示例包括要在解码器中执行或可以跳过冗余分析的层、中的将在搜索中检查的层、要检查的那些层的运动矢量数量、搜索区域和对函数f的选择。例如,对于每个层,可以将二进制标志作为切片参数集的一部分插入到切片报头中,以向解码器指示要分析相应层处的运动矢量的冗余(标志被设置)还是不分析相应层处的运动矢量的冗余(标志被清除)。注意,编码器可以执行分析,然后确定是否应出于解码器的利益针对特定层设置或清除二进制标志。
此外,如果启用并使用自适应运动矢量分辨率,则可以在序列、图片、切片或(最大)编码单元参数集中插入参数以针对当前序列、图片、切片或(最大)编码单元配置自适应运动矢量分辨率。这些参数的示例包括最小运动矢量分辨率、最大运动矢量分辨率和对函数f的选择。
附加实施例
如果由两个同胞(sibling)运动矢量生成的预测块的差异小于阈值,则我们可以将两个候选运动矢量称为“冗余同胞”;也就是说,它们满足等式:f(p′)=f(p)。注意,通过扩展,候选运动矢量可以具有一个以上的冗余同胞。在一个实施例中,可以基于运动矢量具有多少冗余同胞来调整用于编码运动矢量的概率。例如,如果当前运动矢量具有更多的冗余同胞,则可以将用于编码当前运动矢量的概率调高。在另一示例中,如果当前运动矢量不具有冗余同胞,则可以使用一种概率对当前运动矢量进行编码;以及如果当前运动矢量具有至少一个冗余同胞,则可以使用另一概率。在上面的两个示例中,调整之前的概率可以从例如当前切片中的编码历史中学习。
在另一示例实施例中,代替移除冗余运动矢量,可以使用一些附加的处理步骤来使这些运动矢量不再冗余。例如,在运动矢量指向的每个位置处,可以定义用于生成多个不同版本的预测块的规则。一旦发现运动矢量与第一版本的预测块是冗余的,则可以执行搜索以找到根据定义的规则生成的备选版本的预测块,其使运动矢量不冗余。为了确保编码器和解码器找到相同版本的预测块,该规则可以确保以对编码器和解码器两者已知的方式按特定明确的顺序生成备选,或者编码器和编码器在执行搜索时遵循相同的预定协议。作为在运动矢量指向的位置处生成多个不同版本的预测块的示例,分析器可以使用不同的滤波器,例如,具有不同系数的滤波器或甚至不同类型的滤波器(线性、非线性、IIR、FIR),对分数像素样本进行插值或对整数像素样本进行滤波。
在又一示例实施例中,代替通过使用熵编码对运动矢量进行编码和解码,如果允许运动矢量信息中的一些信息丢失以进行比特节省,则可以用通用编码器和通用解码器代替熵编码器和熵解码器。例如,运动矢量的一些最低有效比特可以在通用编码器处被丢弃,并且可以由通用解码器重建为一些估计值。
还应当理解,冗余运动矢量的概念和定义可以容易地扩展到3D立方体的运动矢量,并且可以容易地扩展到其他语法元素,例如参考图片索引、插值滤波器选择和/或系数、用于在帧间编码中生成预测的分区模式。
还应当理解,冗余运动矢量的概念和定义可以容易地扩展到3D立方体的运动矢量,并且可以容易地扩展到其他语法元素,例如参考图片索引、插值滤波器选择和/或系数、用于在帧间编码中生成预测的分区模式。编码器1100包括处理器1102、存储器1104、和编码应用1106。编码应用1106可以包括存储在存储器1104中且包含指令的计算机程序或应用,所述指令在被执行时使处理器1102执行诸如本文所述的操作。例如,编码应用1106可以编码并输出根据本文描述的过程所编码的比特流。可以理解,解码应用1106可以存储在非暂时性计算机可读介质上,如致密光盘、闪存设备、随机存取存储器、硬盘等。当执行指令时,处理器1102执行指令中指定的操作和功能,以便作为实现所描述的过程的专用处理器进行操作。在一些示例中,这种处理器可以被称为“处理器电路”或“处理器电路系统”。
现在还参考图9,其示出了解码器1200的示例实施例的简化框图。解码器1200包括处理器1202、存储器1204、和解码应用1206。解码应用1206可以包括存储在存储器1204中并且包括指令的计算机程序或应用,所述指令在被执行时使处理器1202执行诸如本文所述的操作。解码应用1206可以包括存储在存储器1204中并且包括指令的计算机程序或应用,所述指令在被执行时使处理器1202执行诸如本文所述的操作。当执行指令时,处理器1202执行指令中指定的操作和功能,以便作为实现所描述的过程的专用处理器进行操作。在一些示例中,这种处理器可以被称为“处理器电路”或“处理器电路系统”。
可以认识到,根据本申请的解码器和/或编码器可以在多个计算设备中实现,包括但不限于服务器、合适编程的通用计算机、音频/视频编码和回放设备、电视机顶盒、电视广播设备和移动设备。解码器或编码器可以通过软件来实现,该软件包含用于将处理器或多个处理器配置为执行本文所述功能的指令。软件指令可以存储在任何合适的非暂时性计算机可读存储器上,包括CD、RAM、ROM、闪存等。
可以理解,本文描述的解码器和/或编码器以及实现所描述的用于配置编码器或解码器的方法/过程的模块、例程、进程、线程或其他软件组件可以使用标准计算机编程技术和语言来实现。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他这种实现细节。本领域技术人员将认识到,可以将所描述的处理实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、专用集成芯片(ASIC)的一部分等。
可以对所述实施例进行某种调整和修改。因此,上文讨论的实施例应被认识是说明性而非限制性的。

Claims (26)

1.一种在视频编码器中对视频进行编码以产生比特流的方法,所述视频包括图片序列,所述图片序列包括当前图片和先前重建的参考图片,所述当前图片包括要使用帧间预测进行编码的当前块,所述方法包括:
针对所述当前块确定运动矢量预测子,所述运动矢量预测子识别所述先前重建的参考图片中的块;
确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;
从所述子集中的候选运动矢量之中选择当前运动矢量以识别所述当前块的预测块;以及
对从所述子集中选择的当前运动矢量进行熵编码。
2.根据权利要求1所述的方法,其中,应用函数包括:通过使用从L1、L2、L、平均绝对误差、均方误差或结构相似性中选择的度量来计算候选块中的所述一个候选块与候选块中的所述另一候选块之间的距离。
3.根据权利要求1所述的方法,其中,所述函数包括位置敏感散列、标量量化、矢量量化、主分量分析或自动编码器神经网络中的一个。
4.根据权利要求1至3中任一项所述的方法,其中,确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量包括:
针对所述集中的每个候选运动矢量,依次地,
确定由所述候选运动矢量识别的候选块;以及
如果确定由所述候选运动矢量识别的候选块不与由作为所述子集的一部分的候选运动矢量识别的任何其他候选块冗余,则将所述候选运动矢量添加到所述子集。
5.根据权利要求1至3中任一项所述的方法,其中,所述集中的候选运动矢量包括第一层候选运动矢量和第二层候选运动矢量,并且其中,确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块包括:
初始化所述子集以包含所述第一层候选运动矢量而不评估所述第一层候选运动矢量是否冗余;以及
确定所述第二层候选运动矢量中的至少一些识别出相对于由所述第一层候选运动矢量的各个候选运动矢量识别出的候选块冗余的各个候选块。
6.根据权利要求1至3中任一项所述的方法,其中,所述候选运动矢量包括各自指向全像素位置的整数像素运动矢量和各自指向全像素之间的子像素位置的子像素运动矢量,并且其中,确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块包括:确定最大数量以上的子像素运动矢量识别出冗余的各个候选块,并且其中,排除候选运动矢量中的至少一些候选运动矢量包括排除所有子像素运动矢量。
7.一种用于对视频进行编码以产生比特流的编码器,所述视频包括图片序列,所述图片序列包括当前图片和先前重建的参考图片,所述当前图片包括要使用帧间预测进行编码的当前块,所述编码器包括:
处理器;
存储器;以及
包含能够由所述处理器执行的指令的编码应用,所述指令在被执行时使所述处理器:
针对所述当前块确定运动矢量预测子,所述运动矢量预测子识别所述先前重建的参考图片中的块;
确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;
从所述子集中的候选运动矢量之中选择当前运动矢量以识别所述当前块的预测块;以及
对从所述子集中选择的当前运动矢量进行熵编码。
8.根据权利要求7所述的编码器,其中,所述指令使所述处理器通过以下方式来应用函数:使用从L1、L2、L、平均绝对误差、均方误差或结构相似性中选择的度量来确定候选块中的所述一个候选块与候选块中的所述另一候选块之间的距离。
9.根据权利要求7所述的编码器,其中,所述函数包括位置敏感散列、标量量化、矢量量化、主分量分析或自动编码器神经网络中的一个。
10.根据权利要求7至9中任一项所述的编码器,其中,所述指令在被执行时使所述处理器通过以下方式确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量:
针对所述集中的每个候选运动矢量,依次地,
确定由所述候选运动矢量识别的候选块;以及
如果确定由所述候选运动矢量识别的候选块不与由作为所述子集的一部分的候选运动矢量识别的任何其他候选块冗余,则将所述候选运动矢量添加到所述子集。
11.根据权利要求7至9中任一项所述的编码器,其中,所述集中的候选运动矢量包括第一层候选运动矢量和第二层候选运动矢量,并且其中,所述指令在被执行时使所述处理器通过以下方式确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块:
初始化所述子集以包含所述第一层候选运动矢量而不评估所述第一层候选运动矢量是否冗余;以及
确定所述第二层候选运动矢量中的至少一些识别出相对于由所述第一层候选运动矢量的各个候选运动矢量识别出的候选块冗余的各个候选块。
12.根据权利要求7至9中任一项所述的编码器,其中,所述候选运动矢量包括各自指向全像素位置的整数像素运动矢量和各自指向全像素之间的子像素位置的子像素运动矢量,并且其中,所述指令在被执行时使所述处理器通过确定最大数量以上的子像素运动矢量识别出冗余的各个候选块来确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且其中,所述指令在被执行时使所述处理器通过排除所有子像素运动矢量来排除所述候选运动矢量中的至少一些候选运动矢量。
13.一种存储处理器可执行指令的非暂时性处理器可读介质,所述处理器可执行指令用于对视频进行编码以生成经编码的数据的比特流,所述视频包括图片序列,所述图片序列包括当前图片和先前重建的参考图片,所述当前图片包括要使用帧间预测进行编码的当前块,其中,所述处理器可执行指令在由视频编码器中的处理器执行时使所述处理器:
针对所述当前块确定运动矢量预测子,所述运动矢量预测子识别所述先前重建的参考图片中的块;
确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;
从所述子集中的候选运动矢量之中选择当前运动矢量以识别所述当前块的预测块;以及
对从所述子集中选择的当前运动矢量进行熵编码。
14.一种从比特流中解码视频的方法,所述视频包括图片序列,所述图片序列包括当前图片和先前重建的参考图片,所述当前图片包括要使用帧间预测进行解码的当前块,所述方法包括:
针对所述当前块确定运动矢量预测子,所述运动矢量预测子识别所述先前重建的参考图片中的块;
确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;
基于当前运动矢量是来自所述子集的候选运动矢量中的一个,对来自所述比特流的当前运动矢量进行熵解码,其中,所述当前运动矢量识别所述当前块的预测块;以及
基于所述当前块的预测块和重建的残差来重建所述当前块。
15.根据权利要求14所述的方法,其中,应用函数包括:通过使用从L1、L2、L、平均绝对误差、均方误差或结构相似性中选择的度量来计算候选块中的所述一个候选块与候选块中的所述另一候选块之间的距离。
16.根据权利要求14所述的方法,其中,所述函数包括位置敏感散列、标量量化、矢量量化、主分量分析或自动编码器神经网络中的一个。
17.根据权利要求14至16中任一项所述的方法,其中,确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量包括:
针对所述集中的每个候选运动矢量,依次地,
确定由所述候选运动矢量识别的候选块;以及
如果确定由所述候选运动矢量识别的候选块不与由作为所述子集的一部分的候选运动矢量识别的任何其他候选块冗余,则将所述候选运动矢量添加到所述子集。
18.根据权利要求14至16中任一项所述的方法,其中,所述集中的候选运动矢量包括第一层候选运动矢量和第二层候选运动矢量,并且其中,确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块包括:
初始化所述子集以包含所述第一层候选运动矢量而不评估所述第一层候选运动矢量是否冗余;以及
确定所述第二层候选运动矢量中的至少一些识别出相对于由所述第一层候选运动矢量的各个候选运动矢量识别出的候选块冗余的各个候选块。
19.根据权利要求14至16中任一项所述的方法,其中,所述候选运动矢量包括各自指向全像素位置的整数像素运动矢量和各自指向全像素之间的子像素位置的子像素运动矢量,并且其中,确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块包括:确定最大数量以上的所述子像素运动矢量识别出冗余的各个候选块,并且其中,排除所述候选运动矢量中的至少一些候选运动矢量包括排除所有子像素运动矢量。
20.一种用于从比特流中解码视频的解码器,所述视频包括图片序列,所述图片序列包括当前图片和先前重建的参考图片,所述当前图片包括要使用帧间预测进行解码的当前块,所述解码器包括:
处理器;
存储器;以及
包含能够由所述处理器执行的指令的解码应用,所述指令在被执行时使所述处理器:
针对所述当前块确定运动矢量预测子,所述运动矢量预测子识别所述先前重建的参考图片中的块;
确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;
基于当前运动矢量是来自所述子集的候选运动矢量中的一个,对来自所述比特流的当前运动矢量进行熵解码,其中,所述当前运动矢量识别所述当前块的预测块;以及
基于所述当前块的预测块和重建的残差来重建所述当前块。
21.根据权利要求20所述的编码器,其中,所述指令使所述处理器通过以下方式来应用函数:使用从L1、L2、L、平均绝对误差、均方误差或结构相似性中选择的度量来确定候选块中的所述一个候选块与候选块中的所述另一候选块之间的距离。
22.根据权利要求20所述的编码器,其中,所述函数包括位置敏感散列、标量量化、矢量量化、主分量分析或自动编码器神经网络中的一个。
23.根据权利要求20至22中任一项所述的编码器,其中,所述指令在被执行时使所述处理器通过以下方式确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量:
针对所述集中的每个候选运动矢量,依次地,
确定由所述候选运动矢量识别的候选块;以及
如果确定由所述候选运动矢量识别的候选块不与由作为所述子集的一部分的候选运动矢量识别的任何其他候选块冗余,则将所述候选运动矢量添加到所述子集。
24.根据权利要求20至22中任一项所述的编码器,其中,所述集中的候选运动矢量包括第一层候选运动矢量和第二层候选运动矢量,并且其中,所述指令在被执行时使所述处理器通过以下方式确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块:
初始化所述子集以包含所述第一层候选运动矢量而不评估所述第一层候选运动矢量是否冗余;以及
确定所述第二层候选运动矢量中的至少一些识别出相对于由所述第一层候选运动矢量的各个候选运动矢量识别出的候选块冗余的各个候选块。
25.根据权利要求20至22中任一项所述的编码器,其中,所述候选运动矢量包括各自指向全像素位置的整数像素运动矢量和各自指向全像素之间的子像素位置的子像素运动矢量,并且其中,所述指令在被执行时使所述处理器通过确定最大数量以上的子像素运动矢量识别出冗余的各个候选块来确定所述运动矢量预测子周围的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且其中,所述指令在被执行时使所述处理器通过排除所有子像素运动矢量来排除所述候选运动矢量中的至少一些候选运动矢量。
26.一种存储处理器可执行指令的非暂时性处理器可读介质,所述处理器可执行指令用于从经编码的数据的比特流中解码视频,所述视频包括图片序列,所述图片序列包括当前图片和先前重建的参考图片,所述当前图片包括要使用帧间预测进行解码的当前块,其中,所述处理器可执行指令在由视频解码器中的处理器执行时使所述处理器:
针对所述当前块确定运动矢量预测子,所述运动矢量预测子识别所述先前重建的参考图片中的块;
确定所述运动矢量预测子周围的搜索范围中的候选运动矢量集中的至少一些候选运动矢量识别出所述先前重建的参考图片中冗余的各个候选块,并且基于所述确定来排除候选运动矢量中的所述至少一些候选运动矢量以将所述集缩小为子集,并且其中,基于将函数应用于候选块中的一个候选块和候选块中的另一候选块并确定所述函数的结果在两种情况下是相同的,将候选块中的所述一个候选块确定为冗余;
基于当前运动矢量是来自所述子集的候选运动矢量中的一个,对来自所述比特流的当前运动矢量进行熵解码,其中,所述当前运动矢量识别所述当前块的预测块;以及
基于所述当前块的预测块和重建的残差来重建所述当前块。
CN201880015462.7A 2017-01-10 2018-01-09 用于视频编码或解码的方法、编码器、解码器及介质 Active CN110383841B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/402,769 2017-01-10
US15/402,769 US10291928B2 (en) 2017-01-10 2017-01-10 Methods and devices for inter-prediction using motion vectors for video coding
PCT/CA2018/050017 WO2018129614A1 (en) 2017-01-10 2018-01-09 Methods and devices for coding motion vectors in video compression

Publications (2)

Publication Number Publication Date
CN110383841A true CN110383841A (zh) 2019-10-25
CN110383841B CN110383841B (zh) 2023-06-27

Family

ID=62783738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880015462.7A Active CN110383841B (zh) 2017-01-10 2018-01-09 用于视频编码或解码的方法、编码器、解码器及介质

Country Status (4)

Country Link
US (1) US10291928B2 (zh)
EP (1) EP3568988A4 (zh)
CN (1) CN110383841B (zh)
WO (1) WO2018129614A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112770113A (zh) * 2019-11-05 2021-05-07 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN116055717A (zh) * 2023-03-31 2023-05-02 湖南国科微电子股份有限公司 视频压缩方法、装置、计算机设备及计算机可读存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102559063B1 (ko) 2017-02-24 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10798402B2 (en) * 2017-10-24 2020-10-06 Google Llc Same frame motion estimation and compensation
WO2019089933A1 (en) * 2017-11-01 2019-05-09 Vid Scale, Inc. Sub-block motion derivation and decoder-side motion vector refinement for merge mode
US11303923B2 (en) * 2018-06-15 2022-04-12 Intel Corporation Affine motion compensation for current picture referencing
CN110740330B (zh) * 2018-10-24 2022-03-25 北京达佳互联信息技术有限公司 一种子块运动候选的冗余校验的方法及设备
KR102615156B1 (ko) 2018-12-18 2023-12-19 삼성전자주식회사 감소된 개수의 후보 블록들에 기초하여 모션 추정을 수행하는 전자 회로 및 전자 장치
WO2020125738A1 (en) 2018-12-21 2020-06-25 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods using history based motion vector prediction
CN112119593A (zh) * 2019-07-25 2020-12-22 深圳市大疆创新科技有限公司 一种数据的处理方法、系统、编码器及解码器
WO2022119302A1 (ko) * 2020-12-01 2022-06-09 현대자동차주식회사 블록병합을 이용하는 비디오 코딩 방법 및 장치
WO2023219599A1 (en) * 2022-05-07 2023-11-16 Google Llc Flexible motion vector precision of video coding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110188579A1 (en) * 2008-09-28 2011-08-04 Huawei Technologies Co., Ltd. Method, apparatus and system for rapid motion search applied in template switching
US20120170660A1 (en) * 2007-11-29 2012-07-05 Pavel Novotny Refinement of motion vectors in hierarchical motion estimation
US20120269268A1 (en) * 2009-09-10 2012-10-25 Sk Telecom Co., Ltd. Motion vector encoding/decoding method and device and image encoding/decoding method and device using same
US20160205409A1 (en) * 2013-09-04 2016-07-14 Samsung Electronics Co., Ltd. Screen image encoding method and apparatus therefor, and screen image decoding method and apparatus therefor
US20160286230A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Motion information derivation mode determination in video coding

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100207390B1 (ko) * 1995-09-15 1999-07-15 전주범 계층적인 움직임 추정기법을 이용하는 음직임 벡터 검출방법
US8340188B2 (en) 2010-01-08 2012-12-25 Research In Motion Limited Method and device for motion vector estimation in video transcoding using union of search areas
EP2532159A1 (en) 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
US20120106638A1 (en) 2010-10-29 2012-05-03 Yeping Su Decoder-Side Motion Derivation with Motion Vector Predictors
US9313494B2 (en) 2011-06-20 2016-04-12 Qualcomm Incorporated Parallelization friendly merge candidates for video coding
KR101960761B1 (ko) 2011-11-24 2019-03-22 에스케이텔레콤 주식회사 모션 벡터의 예측 부호화/복호화 방법 및 장치
WO2013099285A1 (ja) * 2011-12-28 2013-07-04 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム、並びに動画像復号装置、動画像復号方法及び動画像復号プログラム
CN105706450B (zh) * 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120170660A1 (en) * 2007-11-29 2012-07-05 Pavel Novotny Refinement of motion vectors in hierarchical motion estimation
US20110188579A1 (en) * 2008-09-28 2011-08-04 Huawei Technologies Co., Ltd. Method, apparatus and system for rapid motion search applied in template switching
US20120269268A1 (en) * 2009-09-10 2012-10-25 Sk Telecom Co., Ltd. Motion vector encoding/decoding method and device and image encoding/decoding method and device using same
US20160205409A1 (en) * 2013-09-04 2016-07-14 Samsung Electronics Co., Ltd. Screen image encoding method and apparatus therefor, and screen image decoding method and apparatus therefor
US20160286230A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Motion information derivation mode determination in video coding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112770113A (zh) * 2019-11-05 2021-05-07 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN116055717A (zh) * 2023-03-31 2023-05-02 湖南国科微电子股份有限公司 视频压缩方法、装置、计算机设备及计算机可读存储介质

Also Published As

Publication number Publication date
US10291928B2 (en) 2019-05-14
WO2018129614A1 (en) 2018-07-19
CN110383841B (zh) 2023-06-27
EP3568988A4 (en) 2020-06-10
US20180199052A1 (en) 2018-07-12
EP3568988A1 (en) 2019-11-20

Similar Documents

Publication Publication Date Title
CN110383841A (zh) 用于在视频压缩中对运动矢量进行编码的方法和设备
US11785229B2 (en) Picture coding supporting block partitioning and block merging
CN110024392B (zh) 用于视频译码的低复杂度符号预测
US10009615B2 (en) Method and apparatus for vector encoding in video coding and decoding
CN109274974B (zh) 图像预测的方法及装置
CN111819853B (zh) 图像块编码装置和图像块编码方法
KR102606778B1 (ko) 모션 벡터 리파인먼트 및 모션 보상을 위한 메모리 액세스 윈도우 및 패딩
TWI688267B (zh) 動畫像編碼裝置、動畫像解碼裝置及編碼資料
RU2696237C2 (ru) Способ декодирования видеосигнала
CN110521205A (zh) 用于视频编解码的子预测单元时间运动向量预测
KR102642784B1 (ko) 모션 벡터 리파인먼트를 위한 제한된 메모리 액세스 윈도우
KR102435595B1 (ko) 분산 처리 환경에서의 학습 파라미터의 압축 및 전송을 제공하는 방법 및 장치
TWI730311B (zh) 用以選擇內預測模式以供填補之設備
CN105721878A (zh) Hevc视频编解码中执行帧内预测的图像处理装置及方法
JP7366980B2 (ja) 境界の強制的な区分けの改善
US9451271B2 (en) Adaptive filtering based on pattern information
JP6212890B2 (ja) 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
CN110870312B (zh) 用于视频压缩中的帧内编码的方法和设备
US11558608B2 (en) On split prediction
KR20190090867A (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020243100A1 (en) Methods and apparatus for improving motion estimation in video coding
TW202032995A (zh) 圖像編碼及解碼技術
CN113315967A (zh) 视频编码方法、装置、介质及电子设备
AU2016228181A1 (en) Method for inducing a merge candidate block and device using same
JP6341756B2 (ja) 画像処理装置、画像処理装置の制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240523

Address after: Illinois

Patentee after: Ot patent trusteeship Co.,Ltd.

Country or region after: U.S.A.

Address before: Voight, Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada