CN110786013B - 用于运动向量细化的搜索区域 - Google Patents
用于运动向量细化的搜索区域 Download PDFInfo
- Publication number
- CN110786013B CN110786013B CN201780092336.7A CN201780092336A CN110786013B CN 110786013 B CN110786013 B CN 110786013B CN 201780092336 A CN201780092336 A CN 201780092336A CN 110786013 B CN110786013 B CN 110786013B
- Authority
- CN
- China
- Prior art keywords
- motion vector
- search space
- candidate motion
- candidate
- block
- 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
- 230000033001 locomotion Effects 0.000 title claims abstract description 588
- 239000013598 vector Substances 0.000 title claims abstract description 584
- 230000006870 function Effects 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 41
- 238000010276 construction Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000011664 signaling Effects 0.000 description 13
- 238000013139 quantization Methods 0.000 description 11
- 230000002123 temporal effect Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 238000009795 derivation Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000002591 computed tomography Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011524 similarity measure Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/55—Motion estimation with spatial constraints, e.g. at image or region borders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/57—Motion estimation characterised by a search window with variable size or shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及用于确定视频序列中图像的当前块的运动向量的搜索空间的构造。所述搜索空间构造分为两个主要阶段,其中分别确定第一部分搜索空间和第二部分搜索空间。首先基于运动向量的初始估计值构造第一搜索空间。根据成本函数识别出所述第一搜索空间中的第一候选运动向量和第二候选运动向量。基于所述第一候选运动向量和第二候选运动向量构造第二搜索空间。从所述第一搜索空间和所述第二搜索空间中的候选运动向量中选择所述当前块的运动向量。
Description
本发明涉及用于确定视频序列中的图像块的运动向量的搜索空间的构造。
背景技术
当前混合视频编解码器采用预测编码。视频序列的图像被细分为像素块,然后对这些块进行编码。不是逐像素地对块进行编码,而是采用在空间或时间上与该块接近的已编码像素预测整个块。编码器仅进一步处理所述块与其预测块之间的差值。所述进一步处理通常包括在转换域中将块像素转换为系数。然后,该系数可以(例如,通过量化)被进一步压缩并(例如,通过熵编码)再被进一步压缩以形成码流。该码流还可以包括使解码器能够解码编码视频的任何信令信息。例如,信令可以包括与编码器设置相类似的设置,例如输入图像的大小、帧速率、量化步长指示、应用于图像块的预测等。
块与其预测块之间的差值称为块的残差。更具体地,块的每个像素具有残差,即该像素的强度级别及其预测的强度级别之间的差值。像素的强度等级称为像素值或该像素的值。块的所有像素的残差统称为块的残差。换言之,块具有残差,所述残差是由该块的所有像素的残差组成的集合或矩阵。
时间预测利用视频的图像(也称为帧)之间的时间相关性。因此,从一个或多个称为参考图像的先前解码的图像中预测待解码块(也称为当前块)。该一个或多个参考图像不一定是视频序列的显示顺序上当前块所在的当前图像之前的图像。编码器可以按照与显示顺序不同的编码顺序对图像进行编码。作为当前块的预测块,可以确定参考图像中的一个共址块(称为预测值)。该共址块可以位于参考图像中与当前图像中的当前块相同的位置。这种预测对于静止图像区域(即没有从一个图像到另一个图像的移动的区域)是准确的。
在编码器中,为了获得考虑了运动的预测值,即运动补偿预测值,通常采用运动估计。当前块通过位于参考图像中由运动向量指示的位置处的块预测。运动向量从共址块的位置指向当前块的位置(反之亦然,取决于符号约定)。为了使解码器能够确定与编码器相同的当前块的预测块,可以在码流中发送运动向量。为了进一步减少由于发送每个块的运动向量而引起的信令开销,可以对运动向量本身进行估计。所述运动向量估计可以基于块的运动向量进行,这些块在空域和/或时域中是当前块的邻居。
当前块的预测块可以使用一个参考图像或者通过对从两个或多个参考图像获得的预测块进行加权来计算。参考图像可以是相邻图像,即在显示顺序中紧连在当前图像之前或之后的图像,因为相邻图像最有可能与当前图像相似。但是,参考图像通常可以是在显示顺序中当前图像之前或之后的任意图像以及在码流(解码顺序中)中当前图像之前的任意图像。例如,在视频内容中存在遮挡和/或非线性移动时,这可以提供优势。参考图像可以在码流中发送。
帧间预测的一种特殊模式是所谓的双向预测,其中两个参考图像用于生成当前块的预测块。特别地,在相应的两个参考图像中确定的两个预测块被组合为当前块的预测信号。与单向预测(即仅使用单个参考图像进行的预测)相比,双向预测可以实现当前块的更准确的预测。更准确的预测使得当前块与预测块的像素之间的差值更小(即,残差更小),其可以被更有效地编码,即,被压缩为更短的码流。
为了提供更准确的运动估计,可以例如通过在像素之间插入样本来增强参考图像的分辨率。分数像素插值可以通过最近的像素的加权平均来进行。例如,在半像素分辨率的情况下,可以采用双线性插值。其它分数像素可以计算为最近的像素的平均值,该平均值例如是由各个最近的像素与要预测的像素之间的距离的倒数进行加权的。
例如,可以通过计算当前块与参考图像中的候选运动向量指向的对应预测块之间的相似度来估计运动向量。这可能是一个复杂的计算任务。为了降低复杂度,可以通过将候选运动向量限制在一定的搜索空间内来减少候选运动向量的数量。该搜索空间可以例如由参考图像中与当前图像中的当前块的位置相对应的位置周围的像素的数量和/或位置来定义。或者,候选运动向量可以由候选运动向量列表来定义,该候选运动向量列表由相邻块的运动向量组成。
运动向量通常至少部分地在编码器侧确定,并在编码码流中发送给解码器。然而,运动向量也可以在解码器处导出。在这种情况下,当前块在解码器处不可用,并且不能用于计算当前块与在参考图像中候选运动向量指向的任何块之间的相似度。因此,代替当前块,可以使用模板,该模板可以从已解码块的像素中构造。例如,可以使用与当前块相邻的已解码像素。这种运动估计提供了减少信令的优点:运动向量在编码器和解码器处以相同的方式导出,因此不需要信令。另一方面,这种运动估计的准确性可能较低。
为了权衡准确性和信令开销,运动向量估计可以分为两个步骤:运动向量导出和运动向量细化。例如,运动向量导出可以包括从候选运动向量列表中选择运动向量。例如,可以通过在搜索空间内进行搜索来进一步细化所选择的运动向量。在搜索空间中的搜索基于计算每个候选运动向量,即候选运动向量指向的块的每个候选位置的成本函数。
文档JVET-D0029:基于双边模板匹配的解码器侧运动向量细化,X.Chen,J.An,J.Zheng(可在以下位置找到该文档:http://phenix.it-sudparis.eu/jvet/site)显示了运动向量细化,其中找到整数像素分辨率的第一运动向量,并通过在第一运动向量周围的搜索空间中采用半像素分辨率进行搜索来进一步细化该第一运动向量。这里,像素分辨率(例如,整数或半整数像素分辨率)描述了搜索空间的分辨率,即,搜索点相对于输入到进程中的未细化运动向量的位移。结果,细化阶段的搜索坐标不一定与图像平面上的实际像素坐标一致。
发明内容
从以上描述的方法出发,本发明的目的在于进一步提高运动向量估计效率,以提高编码效率和/或降低复杂度。
为此,提供了一种用于构造用于运动向量细化的搜索空间的方案,涉及到第一搜索空间和第二搜索空间。第二搜索空间中的位置数目和/或位置是根据第一搜索空间中的两个位置确定的,该两个位置是基于成本函数导出的。
特别地,根据第一方面,提供了一种用于确定运动向量的装置,所述运动向量将用于视频帧的当前块的帧间预测。所述装置包括搜索空间确定单元,用于获取所述运动向量的估计值,基于所述估计值确定包括多个候选运动向量的第一搜索空间,根据成本函数在所述第一搜索空间中选择第一候选运动向量和第二候选运动向量,并基于所述第一候选运动向量和所述第二候选运动向量确定包括一个或多个候选运动向量的第二搜索空间。所述装置还包括运动向量选择单元,用于从所述第一搜索空间和所述第二搜索空间中的候选运动向量中选择所述当前块的运动向量。
作为优点,可以减少在解码器侧的运动向量细化过程中测试的候选运动向量的数量,同时保持关于图像质量和比特率的高质量编码性能。
有利地,所述成本函数基于预定模板,并针对所述各个候选运动向量指示所述预定模板与所述各个候选运动向量指向的预测值之间的相似度。因此,所述搜索空间确定单元用于在所述第一搜索空间中选择两个候选运动向量作为所述第一候选运动向量和所述第二候选运动向量,所述两个候选运动向量指向所述当前块的与所述预定模板最相似的预测值。
根据第一实施例,所述搜索空间确定单元还用于根据所述第一候选运动向量和所述第二候选运动向量指向的位置的连接线的方向,即根据所述第一候选运动向量和所述第二候选运动向量的差值向量的方向确定所述第二搜索空间的大小和/或位置。所述差值向量可以定义为从所述第二候选运动向量中减去所述第一候选运动向量得到,反之亦然。
例如,所述搜索空间确定单元还用于设置所述第一搜索空间具有整数像素分辨率。所述搜索空间确定单元用于在所述第二搜索空间中包含一个或多个候选运动向量,所述一个或多个候选运动向量指向位于所述第一候选运动向量和所述第二候选运动向量指向的位置的连接线的方向上的位置,所述第二搜索空间具有分数像素分辨率。该线的方向即为所述第一候选运动向量和所述第二候选运动向量的差值向量的方向。
作为一个示例,所述第二搜索空间中的候选运动向量中的至少一个指向所述第一候选运动向量和第二候选运动向量指向的位置之间的位置。
根据第二实施例,所述搜索空间确定单元用于确定包括至少两个候选运动向量分别指向的至少两个位置的区域的位置,所述至少两个位置在所述第二搜索空间的像素分辨率中相邻,并将所述第二搜索空间确定为该区域中不属于所述第一搜索空间的位置。
例如,所述搜索空间确定单元可以用于确定包括所述运动向量的估计值和指向在第一搜索空间的像素分辨率中与所述运动向量的估计值指向的位置相邻的位置的候选运动向量的第一搜索空间。
根据第三实施例,所述搜索空间确定单元还用于将一个候选运动向量确定为第二搜索空间中的第一候选运动向量,其中,所述候选运动向量指向在第一搜索空间的像素分辨率中与第一搜索空间中识别出的第一候选运动向量和第二候选运动向量指向的位置相邻的并与所述运动向量的估计值指向的位置不同的位置。
例如,所述搜索空间确定单元还用于选择一个候选运动向量作为第二搜索空间中的其它候选运动向量,其中,所述候选运动向量指向所述第二搜索空间的分辨率中的一个位置,所述位置大致位于所述运动向量的估计值和第二搜索空间的所述候选运动向量指向的位置的连接线上,所述第二搜索空间的像素分辨率高于所述第一搜索空间的像素分辨率。
作为一个示例,所述第二搜索空间的所述其它候选运动向量指向位于第二搜索空间的所述第一候选运动向量和所述运动向量的估计值指向的位置之间的位置。
作为第一方面的所有实施例的一个示例,所述第二搜索空间比所述第一搜索空间具有更高的分辨率。
作为又一示例,所述装置还包括:运动向量确定单元,用于从包括与所述当前块相邻的至少一个块的运动向量的运动向量列表中确定所述运动向量的估计值。
还提供了一种用于从码流中解码出多个图像的视频解码器。所述视频解码器包括:码流解析器,用于从所述码流中获取运动向量的估计值的指示;帧间预测单元,包括如第一方面的任一实施例和示例所述的装置,其还用于确定当前块的运动向量指向的预测块;重建单元,用于基于所述预测块重建所述当前块。
还提供了一种用于将多个图像编码为码流的视频编码器。所述视频编码器包括:帧间预测单元,包括如第一方面的任一实施例和示例所述的装置,其还用于确定当前块的运动向量指向的预测块;码流形成器,用于在所述码流中包括运动向量的估计值的指示;重建单元,用于基于所述预测块重建所述当前块,并将重建块存储在存储器中。
根据第二方面,提供了一种用于确定运动向量的方法,所述运动向量将用于当前块的帧间预测。所述方法包括如下步骤:获取所述运动向量的估计值;基于所述估计值确定包括多个候选运动向量的第一搜索空间;根据成本函数在所述第一搜索空间中选择第一候选运动向量和第二候选运动向量;基于所述第一候选运动向量和所述第二候选运动向量确定包括一个或多个候选运动向量的第二搜索空间;从所述第一空间和所述第二空间中的候选运动向量中选择所述当前块的运动向量。
有利地,所述成本函数基于预定模板,并针对所述各个候选运动向量指示所述预定模板与所述各个候选运动向量指向的预测值之间的相似度。因此,选择所述第一候选运动向量和所述第二候选运动向量包括在所述第一搜索空间中选择两个候选运动向量,所述两个候选运动向量指向所述当前块的与所述预定模板最相似的预测值。
在第一示例性实施例中,在确定所述第二搜索空间的步骤中,根据所述第一候选运动向量和所述第二候选运动向量指向的位置的连接线的方向确定所述第二搜索空间的大小和/或位置。
作为一个示例,在确定包括多个候选运动向量的第一搜索空间的步骤中,第一搜索空间具有整数像素分辨率。在确定所述第二搜索空间的步骤中,将所述第二搜索空间确定为一个或多个候选运动向量,所述一个或多个候选运动向量指向位于所述第一候选运动向量和所述第二候选运动向量指向的位置的连接线的方向上的位置,所述第二搜索空间具有分数像素分辨率。
例如,所述第二搜索空间中的候选运动向量中的至少一个指向所述第一候选运动向量和第二候选运动向量指向的位置之间的位置。
根据第二示例性实施例,在确定所述第二搜索空间的步骤中,确定包括至少两个候选运动向量分别指向的至少两个位置的区域的位置,所述至少两个位置在所述第二搜索空间的像素分辨率中相邻,并将所述第二搜索空间确定为该区域中不属于所述第一搜索空间的位置。
作为一个示例,在确定所述第一搜索空间的步骤中,第一搜索空间包括所述运动向量的估计值和指向在第一搜索空间的像素分辨率中与所述运动向量的估计值指向的位置相邻的位置的候选运动向量。
根据第三示例性实施例,在确定所述第二搜索空间的步骤中,将一个候选运动向量确定为第二搜索空间中的第一候选运动向量,其中,所述候选运动向量指向在第一搜索空间的像素分辨率中与第一搜索空间中识别出的第一候选运动向量和第二候选运动向量指向的位置相邻的并与所述运动向量的估计值指向的位置不同的位置。
例如,将一个候选运动向量确定为第二搜索空间中的其它至少一个候选运动向量,其中,所述候选运动向量指向所述第二搜索空间的分辨率中的一个位置,所述位置大致位于所述运动向量的估计值和第二搜索空间的所述候选运动向量指向的位置的连接线上。其中,第二搜索空间的像素分辨率高于第一搜索空间的像素分辨率。
作为一个示例,所述第二搜索空间的所述其它候选运动向量指向位于第二搜索空间的所述第一候选运动向量和所述运动向量的估计值指向的位置之间的位置。
作为第二方面的所有实施例的一个示例,所述第二搜索空间比所述第一搜索空间具有更高的分辨率。
作为又一示例,通过从包括与所述当前块相邻的至少一个块的运动向量的运动向量列表中确定所述运动向量的估计值来执行获得所述运动向量的估计值的步骤。
附图说明
下文将参考以下附图详细描述示例实施例:
图1是视频编码器的示例性结构的框图;
图2是视频解码器的示例性结构的框图;
图3是用于确定运动向量的装置的示例性结构的框图;
图4是当前块和示例性搜索空间配置的示意图;
图5至图8是根据第一示例性实施例的搜索空间配置的示意图;
图9是根据第一示例性实施例的确定第二搜索空间的示意图;
图10和11是根据第一实施例的其它搜索空间配置的示意图;
图12和图13是根据第二实施例的当前块和示例性搜索空间配置的示意图;
图14是根据第三实施例的确定搜索空间的示意图;
图15是根据第三实施例的搜索空间确定单元的框图;
图16是根据不同实施例的组合的搜索空间配置的示意图;
图17是通过组合不同实施例来示例性确定搜索空间的示意图;
图18是用于运动向量细化的方法的流程图;
图19是用于计算搜索空间位置的成本的方法的流程图。
具体实施方式
本发明涉及有效确定用于运动补偿的搜索空间,特别有利于运动向量细化。所述搜索空间的确定可用于视频的编码和解码期间应用的运动估计。下面描述了示例性编码器和解码器,其可以采用本发明的搜索空间构造实现运动估计。
图1示出了编码器100,其包括用于接收视频流的帧或图像的输入块的输入端和用于提供编码视频码流的输出端。本发明中的术语“帧”用作图像的同义词。然而,需要说明的是,本发明也适用于应用隔行扫描的领域。通常,图像包括m×n个像素。这些像素与图像样本对应,并且每个像素可以包括一个或多个颜色分量。为了简单起见,在下面的描述中,像素表示亮度样本。然而,需要说明的是,本发明的运动向量搜索可以应用于包括色度的任何颜色分量或RGB等颜色空间的分量。另一方面,这仅对一个分量进行运动向量估计并将确定的运动向量应用于多个(或全部)分量可能是有益的。
待编码的输入块的大小不一定相同。一个图像可以包括不同大小的块,不同图像块光栅也可以不同。
编码器100用于对视频流进行预测、转换、量化和熵编码。转换、量化和熵编码分别由转换单元101、量化单元102和熵编码单元103执行,以生成编码视频码流作为输出。
视频流可以包括多个帧。每个帧被划分为帧内或帧间编码的块。例如,视频流的第一帧的块通过帧内预测单元109进行帧内编码。帧内编码帧只使用来自该帧的信息进行编码,以便其能够独立于其它帧进行解码。因此,帧内编码帧可以提供码流中的入口点,例如,用于随机接入。视频流的其它帧的块通过帧间预测单元110进行帧间编码:从另一个帧(参考帧),例如,先前编码的帧中的块预测帧间编码帧的每个块。模式选择单元108用于选择某个帧的块是进行帧内预测还是帧间预测,即该帧的块是由帧内预测单元109还是由帧间预测单元110进行处理。模式选择单元108还控制帧内或帧间预测的参数。为了能够刷新图像信息,帧间编码帧不仅可以包括帧间编码的块,而且可以包括一个或多个帧内编码的块。相比之下,帧内编码帧仅包含帧内编码的块,而没有帧间编码的块。可以(例如,定期地,即每次在一定数量的帧间编码帧插入之后)将帧内编码帧插入视频序列中,以提供用于解码的入口点,即解码器无需使用来自先前帧的信息即可开始解码的点。
帧内预测单元109为块预测单元。对于进行空间或时间预测,编码块还可以由逆量化单元104和逆转换单元105进行处理。在对块进行重建后,可以应用环路滤波单元106来进一步提高解码图像的质量。然后,滤波后的块形成参考帧,所述参考帧随后被存储在帧缓冲器107中。编码器侧的这种解码环路(解码器)提供了产生与解码器侧重建的参考图像相同的参考帧的优点。因此,编码器和解码器侧以相应的方式工作。这里的术语“重建”是指将解码后的残差块加入到预测块中得到重建块。
帧间预测单元110接收待帧间编码的当前帧或图像块以及来自帧缓冲器107的一个或几个参考帧或图像用作输入。运动估计和运动补偿由帧间预测单元110进行。运动估计用于得到(例如,基于成本函数)运动向量和参考帧。然后,运动补偿根据参考帧的参考块到当前帧的转化,即通过运动向量,来描述当前帧的当前块。帧间预测单元110从一个或几个参考帧中的候选块(即候选预测值)集合中选择当前块的预测块(即预测值),使得所述预测块最小化成本函数。换言之,成本函数最小的候选块将被用作当前块的预测块。
例如,成本函数可以是当前块和候选块之间的差值的度量,即当前块相对于候选块的残差的度量。例如,成本函数可以是当前块的所有像素(样本)与候选参考图像中候选块的所有像素之间的绝对差之和(sum of absolute difference,简称SAD)。但是,通常可以采用任何相似度度量,例如均方误差(mean square error,简称MSE)或结构相似度度量(structural similarity metric,简称SSIM)。
然而,成本函数也可以是这种块间编码和/或由这种编码引起的失真所必需的比特数。因此,速率失真优化过程可用于决定运动向量选择和/或通常决定编码参数,例如是否对某个块使用帧间或帧内预测以及使用哪个设置。
帧内预测单元109接收待帧内编码的当前帧或图像块以及来自当前帧的已构建区域中的一个或几个参考样本用作输入。然后,帧内预测根据当前帧的参考样本的函数来描述当前帧的当前块的像素。帧内预测单元109输出当前块的预测块,所述预测块有利地将待编码的当前块与其预测块之间的差值最小化,即将残差块最小化。残差块的最小化能够例如基于速率失真优化过程。特别地,获取预测块作为参考样本的定向插值。该方向可以通过速率失真优化和/或通过计算如上所述的与帧内预测相关的相似度度量来确定。
然后,当前块与其预测块之间的差值,即残差块由转换单元101进行转换。转换系数由量化单元102进行量化,并由熵编码单元103进行熵编码。由此生成的编码视频码流包括帧内编码块和帧间编码块以及对应的信令(例如模式指示、运动向量指示和/或帧内预测方向)。转换单元101可以应用线性转换,例如离散傅里叶转换(discrete Fouriertransformation,简称DFT)或离散余弦转换(discrete cosine transformation,简称DCT)。这种向空间频域的转换提供了以下优点:所得到的系数通常在较低的频率中具有较高的值。因此,在进行有效系数扫描(例如,Z形扫描)和量化之后,所得的值序列通常在开始时具有一些较大的值,并以零结束。这使得能够进一步有效地编码。量化单元102通过降低系数值的分辨率来进行有损压缩。然后,熵编码单元103将二进制码字分配给系数值。将所述码字写入称为编码码流的码流中。熵编码器也编码信令信息(图1中未示出)。
图2示出了视频解码器200的示例。视频解码器200尤其包括参考图像缓冲器207和帧内预测单元209,所述帧内预测单元209为块预测单元。参考图像缓冲器207用于存储从编码视频码流中重建的至少一个参考帧。帧内预测单元209用于生成预测块,所述预测块为待解码块的估计值。帧内预测单元209用于基于从参考图像缓冲器207获取的参考样本生成该预测块。
解码器200用于对视频编码器100生成的编码视频码流进行解码,优选地,解码器200和编码器100为待编码/解码的相应块生成相同的预测块。参考图像缓冲器207和帧内预测单元209的特征与图1中的参考图像缓冲器107和帧内预测单元109的特征相似。
视频解码器200包括也存在于视频编码器100中的其它单元,例如,与视频编码器100中的逆量化单元104、逆转换单元105和环路滤波单元106分别对应的逆量化单元204、逆转换单元205和环路滤波单元206。
熵解码单元203用于对接收到的编码视频码流进行解码,以获得量化后的残差转换系数和信令信息。将量化后的残差转换系数馈送到逆量化单元204和逆转换单元205以产生残差块。将残差块添加到预测块,并且将所得到的和馈送到环路滤波单元206以获得解码视频块。解码视频的帧可以存储在参考图像帧缓冲器207中,并且用作帧间预测的参考帧。
通常,图1和图2中的帧内预测单元109和209可以使用来自已编码区域的参考样本生成需要编码或需要解码的块的预测信号。
熵解码单元203接收编码码流作为其输入。首先可以解析码流,即从该码流中提取信令参数和残差。码流的语法和语义可以由标准定义,使得编码器和解码器可以以互操作的方式工作。如上述背景部分所述,除了预测残差之外,编码码流还包括其它信息。在运动补偿预测的情况下,运动向量指示也被编码在码流中,并在解码器处从码流中解析出。运动向量指示可以通过提供运动向量的参考图像和通过运动向量坐标给出。在本示例中,假设坐标(0,0)是当前帧中正在处理的当前块的位置对应的参考帧内的位置,运动向量坐标为参考图像内的x坐标和y坐标,它们定义了运动向量显示的点。但是,运动向量指示不必直接发送该坐标。通常,运动向量的任何标识都是适用的,例如指向候选运动向量列表的指针(索引)或能够标识块的帧间预测的任何其它标识。
为了有效地对参考图像进行编码,H.265编解码器(ITU-T,H.265,系列H:视听和多媒体系统:高效视频编码)提供了参考图像列表。该列表的每个条目指示一个特定的参考帧。换言之,列表的每个索引(即表项编号)被分配了各自的参考帧。对于每个帧间编码帧,码流包括各自的列表索引,从而标识用于重构该帧间编码帧的某个参考帧。该列表可以在标准中定义,也可以在视频或很多帧的集合的开始处发送。需要说明的是,在H.265中,定义了两个参考图像列表,称为L0和L1。然后,通过指示列表(L0或L1)并指示该列表中与期望的参考图像相关联的索引,在码流中发送参考图像。提供两个或多个列表可以具有更好压缩的优点。例如,L0既可以用于单向帧间预测条带,也可以用于双向帧间预测条带,而L1仅可以用于双向帧间预测条带。但是,通常,本发明不限于L0和L1列表的任何内容。
运动向量可以直接通过(在所述参考图像中)该运动向量指向的块的坐标发送。或者,根据H.265中的规定,可以构造候选运动向量列表,并且可以传输由该列表与特定运动向量关联的索引。
当前块的运动向量通常与当前图像或早期编码图像中的相邻块的运动向量相关。这是因为相邻块很可能对应具有相似运动的相同运动物体,并且该物体的运动不太可能随着时间而突然变化。因此,使用空间或时间相邻块的一个或多个运动向量来定义当前块的运动向量的预测值(称为运动向量预测值(motion vector predictor,简称MVP)),减小了发送的运动向量差值。MVP可以从共址图像中的空间相邻块或时间相邻块的已解码运动向量中导出。在H.264/AVC中,这是通过求三个空间相邻的运动向量的分量中位数来完成的。使用该方法,不需要发送预测值。当前仅在所谓的H.264/AVC时间直接模式中才考虑来自共址图像的时间MVP。H.264/AVC直接模式也用于导出除运动向量之外的运动数据。因此,它们更多地涉及HEVC中的块合并概念。在HEVC中,隐式导出MVP的方法已被一种称为运动向量竞争的技术所取代,该技术显式指示从MVP列表中选择哪个MVP用于运动向量导出。HEVC中的可变编码四叉树块结构可实现一个块具有若干个相邻块,该若干个相邻块具有运动向量作为潜在MVP候选。以左邻居为例,在最坏的情况下,当64x64亮度预测块不再分割并且左侧的亮度预测块分割到最大深度时,该64x64亮度预测块可能在左侧具有16个4×4亮度预测块。
引入了先进的运动向量预测(Advanced Motion Vector Prediction,简称AMVP)来修改运动向量竞争,以考虑这种柔性块结构。在HEVC的开发过程中,大大简化了最初的AMVP设计,以便在编码效率和实现友好的设计之间取得良好的平衡。AMVP的初始设计包括来自三类不同的预测值的五个MVP:来自空间相邻块的三个运动向量、三个空间预测值的中位数,以及来自共址的时间相邻块的缩放后的运动向量。此外,通过重新排序将最可能的运动预测值放在第一位并去除多余的候选运动向量以确保最小的信令开销,来修改预测值列表。AMVP候选列表构造的最终设计包括以下两个MVP候选:a)多达两个空间候选MVP,该两个MVP从五个空间相邻块中导出;b)当两个空间候选MVP不可用或它们相同时,从两个时间共址块各自导出一个时间候选MVP;c)当空间、时间或两个候选不可用时,采用零运动向量。关于运动向量确定的细节可以在以引入的方式并入本文中的V.Sze等人(编辑)的书:高效视频编码(HEVC):算法和架构,Springer,2014中,特别是在第5章中找到。
如下面将详细描述的,可以进一步细化在编码器侧导出并在码流中提供的运动向量。因此,可以在不进一步增加信令开销的情况下改进运动向量估计。运动向量细化可以在解码器处执行,而无需编码器的协助。编码器中的解码器环路可以采用相同的细化以获得对应的参考图像。可以通过确定模板、确定搜索空间以及在搜索空间中找到与模板最匹配的参考图像部分的位置来进行细化。最佳匹配部分的位置确定了最佳运动向量,然后最佳运动向量用于获得当前块,即正在重建的当前块的预测值。
在操作中,由可以在图1中的视频编码器100中实现的帧间预测单元110的电路执行运动估计(参见图3),以获得用于当前块的帧间预测的运动向量。类似的预测也可以由图2中的视频解码器200的帧间预测单元210执行,图3及其所附描述也应用到该类似的预测中。
可视为精确运动向量的第一估计值或近似值的初始运动向量MV0由帧间预测单元110获得。例如,可以从候选运动向量列表中选择MV0。该列表可以包括与当前块相邻的至少一个块的运动向量。或者,可以通过在编码器侧进行块匹配来获得MV0,并且在码流内将MV0发送给解码器侧。相应地,在解码器侧,帧间预测单元210可以从码流中获取初始运动向量MV0。例如,从码流中提取候选列表的索引,并将该索引所标识的运动向量候选作为初始运动向量MV0提供给帧间预测单元。或者,直接从码流中提取MV0的坐标。但是,本发明不限于获取初始运动向量MV0的任何特定方式。通常,MV0可以通过任意方式确定,例如,通过在编码器和解码器处以相同方式进行模板匹配来确定。再或者,可以根据在空域或时域中当前块的相邻块的运动向量的函数来预测运动向量。
初始运动向量MV0为用于当前块的帧间预测的最终运动向量MV0”的初始估计值。其构成细化过程的输入,在细化过程结束时输出最终运动向量MV0”。细化过程包括确定搜索空间和从所述搜索空间中选择最终运动向量。
通常,(例如,由帧间预测单元110或210的搜索空间确定单元310执行的)搜索空间构造包括两个阶段,在每个阶段中构造搜索空间的一部分。然后,运动向量选择单元340(也是帧间预测单元110和/或210的一部分)根据匹配成本选择运动向量MV0”(对应于搜索空间位置的坐标)。需要说明的是,对于搜索空间中的一些候选运动向量,可能对于在每个阶段中确定的各个部分搜索空间的所有候选运动向量,成本已经可以作为搜索空间构造的一部分并在搜索空间构造期间计算出来。
搜索空间构造包括构造第一(部分)搜索空间的第一阶段301。在第一阶段301确定的第一搜索空间中的位置中,选择302至少两个候选位置用于确定在第二阶段303中要检查的候选位置。
换言之,基于初始运动向量MV0,确定301包括多个候选运动向量的第一搜索空间。在第一搜索空间中,根据成本函数识别302第一候选运动向量和第二候选运动向量。基于第一候选运动向量和第二候选运动向量,确定303包括一个或多个候选运动向量的第二搜索空间。从第一搜索空间和第二搜索空间中的候选运动向量中,由运动向量选择单元340选择当前块的运动向量MV0”。特别地,在已经评估第二搜索空间之后,找到使成本函数最小的候选运动向量,该候选运动向量被选择作为将应用在帧间预测的最终运动向量MV0”。第一搜索空间相当于参考图像中的位置的第一子集,即第一搜索空间中的候选运动向量所指向的位置的子集。类似地,第二搜索空间相当于参考图像中的位置的第二子集,即第二搜索空间中的候选运动向量所指向的位置的子集。
运动向量细化在某个搜索空间中进行,该搜索空间为参考图像中的位置的子集,并且包括所述第一搜索空间和所述第二搜索空间中的位置。该位置是各个候选运动向量指向的位置,即,与模板匹配的待评估位置。整数或分数分辨率可用于参考图像。与参考图像分辨率无关,搜索空间或其部分可以具有比参考图像更低或更高的自身分辨率。通过进行分数像素插值以获得分数像素能够实现更高的分辨率。
例如,初始运动向量MV0可以指向整数像素位置,也称为全像素位置。或者,MV0可以指向分数像素位置,例如,半像素位置或四分之一像素位置。这里以及在其余部分的描述中,“半像素位置”(或者“四分之一像素位置”)是指两个相邻的全像素位置(即,具有全像素分辨率的相邻像素)之间的线上的点,分数像素位置与下一个全像素位置的距离为两个相邻的全像素位置之间的距离的一半(或者四分之一)。
在本发明的不同实施例中,不管MV0指向全像素还是半像素位置,第一搜索空间和第二搜索空间可以具有相同的分辨率或不同的分辨率。例如,第二搜索空间可以比第一搜索空间具有更高的分辨率。因此,可以将第二搜索空间视为第一搜索空间的细化。
有利地,第一搜索空间具有全像素分辨率。然后,若第二搜索空间的分辨率与第一搜索空间的分辨率不同,则第二搜索空间的分辨率可以为分数像素分辨率,例如半像素分辨率。需要说明的是,搜索空间的分辨率可以不同于参考图像的分辨率。例如,初始运动向量可以指向参考图像中的半像素位置。然而,第一搜索空间可以仅包括彼此之间的距离至少为一个整数像素的位置。然而,这些位置可以全部位于参考图像的子像素位置上。
在图4以及示出根据本发明的各种实施例的搜索空间的不同配置的剩余图中,通过阴影(满)点指示全像素位置,而分数像素位置示出为非阴影(空)点。编码或解码视频中的图像的像素可以以正方形图案排列。然而,通常它们可以具有不一定是正方形图案的通用矩形像素图案。本发明一般不限于任何特定的像素图案。像素也可以以非矩形图案排列。
在一种实现中,当前块的候选运动向量从当前图像中的当前块的左上像素(假设具有坐标(0,0))指向参考图像中的候选预测块的对应左上像素(如图4所示)。因此,候选预测块的左上像素代表参考图像中的搜索空间。在该实现方式中,将块的左上像素用作该块的位置。然而,可以将块的任何其它像素用作该块的位置。应当理解,相同的位置约定适用于所有块。例如,运动向量可以等效地定义为从当前块的中心像素延伸到对应候选块的中心像素。
作为示例(再次参见图4),第一搜索空间包括9个候选运动向量,即运动向量的初始估计值MV0以及MV0指向的位置的全像素分辨率的四个最近的相邻位置和四个第二近的相邻位置对应的候选运动向量。图4中的第一搜索空间的星座是“正方形”星座,这意味着在垂直和水平维度上像素之间的距离是相同的。如将在描述本发明实施例时所示,可以将具有各种大小和形状的星座用于第一搜索空间。
如上所述,可以在编码器和解码器处以相同的方式执行运动向量细化方案,而无需附加的控制信令。例如,这可以通过在编码器侧以及解码器侧提供模板来实现。例如,可以(例如,采用以上提到的文档JVET-D0029中描述的技术之一)从已编码/解码的像素中确定该模板。这样的模板的示例可以是在当前块之前解码的并且与当前块相邻的一个或多个块的像素。更具体地,假设块的解码如往常一样是从左到右和从上到下进行的,可以确定当前块的运动向量的细化模板为左边界的相邻块的N个像素和上边界的相邻块的M个像素。M和N是大于1的整数。然而,模板可以以不同方式确定,并且除了相邻块的与当前块的边界直接相邻的像素之外,该模板还包括相邻块的其它像素和/或一个或多个相邻块的整个边界。
实际上,运动向量细化与解码器最相关。由于没有在码流中编码关于特定运动向量的细化的信息,编码侧仅在解码环路中应用细化,以便考虑细化后的运动向量生成参考图像。
可以通过成本函数来测量相似度,该成本函数例如可以是模板和在运动向量候选指向的位置中与模板对应的参考图像区域之间的绝对差之和。在计算所有候选运动向量的绝对差之和(sum of absolute difference,简称SAD)之后,选择SAD最小的候选运动向量。然而,需要说明的是,SAD仅仅是一个示例,可以应用任何其它相似度指标,例如平方差之和或相关性等。
第一候选运动向量和第二候选运动向量分别指与预定模板最相似(和第二最相似)的当前块的预测值的位置。可以在先前步骤中例如使用JVET-D0029中描述的技术之一来生成该模板。
下面参照图18描述通过细化确定运动向量的方法。该方法开始于S1801。在S1802中,获取运动向量的初始估计值MV0,并基于运动向量的初始估值计设置第一搜索空间。第一搜索空间包括指向与MV0相关联的位置周围的位置的候选运动向量。在S1803中,计算与第一搜索空间中的候选运动向量相关联的成本,并根据计算出的成本,选择第一候选运动向量和第二候选运动向量P1和P2。在步骤S1804中,根据P1和P2设置包括一个或多个候选运动向量的第二搜索空间。由于第二搜索空间是基于两个最有希望的点设置的,因此第二搜索空间可以相当小(因此可以被快速搜索)。特别地,通过考虑两个(或两个以上)位置,可以确定成本(即,成本函数的值)减小(或很可能减少)的趋势方向,并且可以在该趋势方向上设置第二搜索空间,与例如仅基于初始运动向量或基于单个最佳点设置第二搜索空间相比,该第二搜索空间可以具有更小的尺寸。还需要说明的是,通常,本发明不限于考虑两个最佳候选运动向量(它们指向的相应位置)。通常,可以通过考虑两个以上的最佳位置来更精确地确定成本函数的趋势。在这种情况下,基于第一搜索空间中的位置中考虑的成本最低的两个或更多个位置确定成本函数减小的方向。然后,在该趋势方向上的某个位置设置第二搜索空间。因此,搜索空间,尤其是第二搜索空间中的位置数量可以保持较小,同时仍然检查最有希望的位置。
在S1805中,计算与第二搜索空间中的候选运动向量相关联的成本。(在S1806中)从第一搜索空间和第二搜索空间中的候选运动向量中选择最佳候选运动向量,即与最低成本相关联的候选运动向量。选择最佳候选运动向量后,(在S1807中)运动向量细化结束。
本发明的不同实施例可以在确定第一搜索空间和第二搜索空间的方式等方面有所不同,如下所述。
第一示例性实施例
根据第一示例性实施例(参见图4),对第一搜索空间中的候选运动向量中的每一个评估成本函数。换言之,对于这些运动向量中的每一个,分别计算或估计或以其它方式确定相应成本,即成本函数的值。根据该评估,选择成本最低的候选运动向量和成本第二低的候选运动向量。在图4的示例中,初始运动向量MV0指向位置405。第一搜索空间中的位置409的成本最低,因此被选为第一候选运动向量MV0’。MV0的右邻居406的成本第二低,因此被选为第二候选运动向量MV0’secondBest。MV0’和MV0’secondBest用于构造第二搜索空间。在该示例中,第二搜索空间包括两个附加的候选运动向量,它们指向位于位置409和406(即MV0’和MV0’secondBest)的连接线上的两个半像素位置411和412(图中的空心圆)。在本示例中,半像素位置411和412分别为MV0’上方和下方的半像素位置。从第一搜索空间中的候选运动向量和第二搜索空间中的候选运动向量中,选择成本最低的候选运动向量,在本示例中,选择位置412,作为最终运动向量MV0”。
图4的示例示出了一个当前块和一个参考图像的运动向量细化,该参考图像即为参考图像列表L0中分配了索引0的参考图像。当前块的绘制仅仅是示意性的,示出了搜索空间点的位置对应于由模板的左上角给出的搜索模板的位置。本发明适用于任何大小和形式的模板。有利地,该模板是当前块大小的块,两个最佳候选运动向量的搜索通过第一搜索空间和第二搜索空间中的模板(块)匹配进行。由于当前块通常在解码器处不可用,因此模板是从已解码的图像部分中构造出来的。例如,在双向预测的情况下,存在两个初始运动向量MV0和MV1与对应的两个参考图像RefPict0和RefPict1相关联。然后可以通过对两个分别由Refpict0中的MV0和RefPict1中的MV1指向的块进行加权平均,来构造用于运动向量细化的模板块。基于来自当前图像或相应参考图像或已解码的最近图像的已解码像素,其它模板构造也是可能的。
根据第一候选运动向量的顶端(即端点)和第二候选运动向量MV0’secondBest的顶端的连接线的方向,确定第二搜索空间的大小(即候选运动向量的数量)和/或位置(即第二搜索空间中的候选运动向量指向的位置)。特别地,第一候选运动向量和通过连接第一候选运动向量和第二候选运动向量的顶端而给出的方向(线)用于确定第二步骤中使用的候选运动向量的数量和/或坐标。第二搜索空间的大小可以根据第一候选运动向量MV0’指向的位置确定。但是,需要说明的是,本发明不限于基于两个最佳点确定第二搜索空间的大小和位置。例如,第二搜索空间的大小(就位置的数量而言)可以是固定的,并且可以基于两个最佳位置仅确定第二搜索空间的位置。
图5至图8示例性地示出了根据本发明的第一实施例的搜索空间配置。在这些示例中,第二搜索空间的大小始终为2,但其位置由第一搜索空间中的两个最佳点给出。从图中可以看出,具有第一(例如,整数)像素分辨率的第一搜索空间具有已经在图4中显示的“正方形”星座。从具有9个点(8个点围绕初始向量点MV0)的第一搜索空间中,根据成本函数识别第一候选运动向量MV0’和第二候选运动向量MV0’secondBest。
有利地,根据第一实施例,包括多个候选运动向量的第一搜索空间具有整数像素分辨率。因此,首先使用整数像素搜索分辨率来确定指向第一步之后成本函数最小的位置的第一候选运动向量MV0’和具有第二低的成本函数值的第二候选运动向量MV0’secondBest。
此外,第二搜索空间相对于第一搜索空间的分辨率具有分数像素分辨率,包括一个或多个候选运动向量,所述一个或多个候选运动向量指向位于第一搜索空间中包括的第一候选运动向量和第二候选运动向量给出的方向上的位置。因此,在第二阶段(更准确地说,在图3的“阶段2”303中),确定第二搜索空间中的一个或多个,例如两个半像素位置(即,新的搜索窗口)。这意味着,由于已知第一搜索空间中的最佳候选运动向量MV0’,因此仅需进一步将MV0’的成本与第二搜索空间中的其它点的成本进行比较,直到找到成本比MV0’更低的候选运动向量,来最终执行运动向量选择。在这种情况下,涉及第二搜索空间的第二搜索步骤比第一搜索步骤具有更高的精度。换言之,如果第二搜索空间具有比第一搜索空间更高的分辨率(即,更小的搜索空间位置之间的距离),则可能是有利的。这样,搜索空间在其构造的每个阶段得到细化,并且可以包括两个以上这样的阶段。例如,基于联合的第一搜索空间和第二搜索空间的两个最佳点,可以构造分辨率高于第一搜索空间和第二搜索空间的第三搜索空间。
在图4至图8的示例中,根据对应于差向量MV0’diff=(MV0’-MV0’secondBest)的MV0’和MV0’secondBest的指向的位置连接线的方向,选择第二搜索空间中的一个或多个半像素位置。因此,根据MV0’diff与图像边界(或参考图像中的水平像素行)之间的角度确定第二搜索空间。在第二搜索步骤结束时,在图3的阶段304中确定最终运动向量MV0”。
此外,有利地,第二搜索空间中的候选运动向量中的至少一个指向第一搜索空间中包括的第一候选运动向量和第二候选运动向量指向的位置之间的位置。需要说明的是,第二搜索空间可以包括单个候选运动向量,该单个候选运动向量指向第一候选运动向量和第二候选运动向量之间的位置。
下面将参照图5至图8、图10和图11描述根据本发明的第一实施例的其它示例性的搜索空间星座。
在图5至图8中,MV0’指向初始运动向量MV0(即,第一搜索空间中心的位置)的最邻近或第二邻近位置之一,即指向紧邻MV0位置的位置之一。第二搜索空间确定为包括两个候选运动向量,所述两个候选运动向量指向位于MV0’两侧的位置,所述两个候选运动向量都近似指向MV0’和MV0’secondBest指向的位置的连接线上的位置。换言之,第二搜索空间包括MV0’和MV0’secondBest之间的第一位置以及位于MV0’和MV0’secondBest的连接方向上的第二位置,该第二位置位于不同于第一位置的另一侧。
在此以及在本申请的其余部分中,“最近的”邻居或相邻位置是指在所考虑的(部分)搜索空间的分辨率中与给定位置相邻的位置。例如,即使参考图像具有分数1/4像素分辨率,如果第一搜索空间具有整数分辨率,则在第一搜索空间中相邻位置彼此之间也具有整数像素距离。尽管第一搜索空间位置可能位于参考图像的分数像素位置上,这也是适用的。
此外,“第二近位置”是指与两个最近邻居(在矩形排列的搜索空间中的对角邻居)相邻的位置。然而,在未在任何图中示出的一般情况下,在一个方向(例如,垂直方向)上到相邻位置的距离可以与在另一方向(例如,水平方向)上的该距离不同。在这种情况下,无论距离的可能差异如何,本发明所使用的术语“最近邻居”适用于两个方向上的相邻位置。
在图5和图6中,在第一搜索空间的分辨率(即全像素分辨率)中,MV0’和MV0’secondBest是彼此最近的邻居。在该图中,MV0’和MV0’secondBest指向的位置的连接线为垂直线。图5所示的搜索空间星座与图4所示的搜索空间星座相同。如果MV0’secondBest位于MV0’的左侧或右侧,而不是位于MV0’的上方或下方,则第一候选运动向量和第二候选运动向量指向的位置的连接线对应于水平线。尽管未在图中示出,但是第一实施例也适用于第一候选运动向量和第二候选运动向量通过水平线连接的情况。
在图7所示的示例中,第二候选运动向量MV0’secondBest指向第一候选运动向量MV0’的第二近邻居。在这种情况下,第一候选向量和第二候选向量指向的位置的连接线是对角线。
通常期望当前块的预测值与模板块之间的相似度在一个方向上单调增加。因此,如图5至图8所示,在第一搜索空间的分辨率中,候选向量MV0’和MV0’secondBest应该是最近的或第二近的邻居。然而,可能发生的是,MV0’和MV0’secondBest之间的搜索空间存在第三候选运动向量,对于该第三候选运动向量,成本函数的值高于候选运动向量MV0’和MV0’secondBest中的每一个的值,如图8所示。例如,这种情况可能由于编码/解码视频中的噪声而发生。在这种情况下,可以选择MV0’和MV0’secondBest指向的位置的连接线上的两个分数像素位置形成第二搜索空间,该两个分数像素位置到MV0’的距离比到MV0’secondBest的距离更近,但仍然位于第一搜索空间的该两个最佳点给出的方向上。然而,本发明不限于这种过程。例如,为了保持低复杂度,如果基于成本最低的两个或多个位置成本函数趋势不是单调的,则可以例如假设水平方向来设置默认的第二搜索空间。由于摄像机的平移以及自然视频中典型对象的移动,水平方向可以被视为自然视频序列中更可能的方向。换言之,如果基于第一搜索空间中的第一最佳运动向量候选和第二最佳运动向量候选没有明显的成本函数趋势,则优选地将第一最佳候选运动向量周围的一些点设置为第二搜索空间。为了减小第二搜索空间,可以假设默认方向,并可以设置对应的默认第二搜索空间。
图9示出了根据第一实施例的第二阶段中确定第二搜索空间的过程。特别地,根据差值向量MV0’diff=(MV0’-MV0’secondBest)的分量确定第二搜索空间中的候选运动向量指向的像素位置。
如果MV0’diff仅具有水平(即非零)分量,则确定第二搜索空间包括MV0’左侧和右侧的两个位置,每个位置到MV0’的距离对应于第二搜索空间的分辨率(例如,半像素分辨率),如图9(a)所示。此外,如果MV0’diff仅具有垂直分量,则确定第二搜索空间包括MV0’上方和下方的两个位置,每个位置到MV0’的距离对应于第二搜索空间的分辨率(参见图9(b))。
如果如部分(c)和(d)所示MV0’diff同时具有水平分量和垂直分量(具有非零值),则在第二搜索空间的分辨率中相对于与MV0’相关联的位置,将第二搜索空间选择为第二近(对角)相邻位置。如果水平和垂直分量都为正或都为负,则选择相对于MV0’位于左上角和右下角的第二近邻居位置,如图9(c)所示。如果一个分量为正,而另一个分量为负,则选择相对于MV0’位于左下角和右上角的第二近邻居位置(图9(d))。另外,如果(例如由于成本函数的特性,例如第一搜索空间中的所有候选运动向量的成本相同)无法确定MV0’diff,则MV0’diff可以设置为(0,0),并且可以任意选择,例如在图9(a)至图9(d)所示的替代方案中,可以针对默认的第二搜索空间设置。然而,在这种情况下,由于一般视频序列的统计特性(水平物体或摄像机移动比垂直物体或摄像机运动更有可能,因为通常感兴趣的区域位于水平方向),搜索点配置9(a)是优选的(优于(b)、(c)和(d))。
应该注意的是,在图9以及考虑坐标的本申请的其余部分中,(如在普通笛卡尔坐标系统中)横轴(“x轴”)的正方向指向右端,而纵轴(“y轴”)的正方向指向下端(与笛卡尔惯例相反,但通常用于图像处理)。
在图5至图8所示的所有搜索空间星座中,第一候选运动向量MV0’指向第一搜索空间的边缘处的像素位置。特别地,一个候选运动向量指向第一搜索空间中的两个候选运动向量之间的位置。第二搜索空间中的另一个候选运动向量指向第一搜索空间之外的位置,即不被第一搜索空间中的候选运动向量包围的位置。
然而,如上所述,第二搜索空间中的候选运动向量的位置和大小(即,候选运动向量的数量)都根据候选运动向量MV0’和MV0’secondBest指向的位置的连接线的方向确定。更具体地,如果第一候选运动向量MV0’指向第一搜索空间中心的位置,则对于第二搜索空间一个候选向量就足够了。特别地,第二搜索空间中的单个候选运动向量则指向第一搜索空间中的两个候选运动向量之间的第二搜索空间的分辨率中的位置。然而,与图5至图8所示的搜索空间星座相反,省略了第一搜索空间之外的第二候选运动向量。因此修改图9所示的过程,从而仅确定第二搜索空间中的一个候选运动向量,即第二搜索步骤的搜索窗口。
图10和图11中示出了仅包括一个运动向量候选的第二搜索空间的示例。在图10中,MV0’和MV0’secondBest是最近邻居(水平相邻)。在图11中,MV0’和MV0’secondBest是第二近邻居(对角相邻)。如两个图所示,MV0’指向第一搜索空间内的位置。换言之,存在指向与MV0’相邻的所有像素位置的候选运动向量。这些指向相邻位置的候选运动向量之一是MV0’secondBest。
换言之,如果第二搜索空间包括第一搜索空间中与MV0’相邻的且位于通过连接属于第一搜索空间的MV0’和MV0’secondBest给出的方向上的第二位置,则第二搜索空间仅包括指向第一候选运动向量和第二候选运动向量之间的分数像素位置的一个候选运动向量。在这种情况下,由于已经计算出第二位置的成本,并且第二位置的成本高于MV0’和MV0’secondBest的成本,因此可以在该方向上找到成本低的候选运动向量的可能性就非常低。通常,搜索空间中的位置数量也可能取决于可以找到比MV0’更好的候选运动向量(就成本而言)的可能性。可以通过内插和/或外推为第一搜索空间的位置计算的成本函数来估计该可能性。
需要说明的是,在以上示例中,第一搜索空间已经示出为具有以正方形网格排列的9个相邻位置。然而,本发明不限于搜索空间的特定大小或像素的特定排列。类似地,第一实施例可以应用于具有相同或不同分辨率的第一搜索空间和第二搜索空间(图5至图8所示的后者)。第二搜索空间也可以具有两个以上的位置。
根据第一示例性实施例,图18的细化方法中计算第一搜索空间中的候选运动向量的成本的子步骤S1803如图19所示。对变量i、P1和P2进行初始化,其中,i是随后指示搜索空间(例如,第一搜索空间)中的相应候选运动向量中的每一个的索引变量。变量P1和P2表示成本最低和成本第二低的相应候选运动向量(即,搜索空间中的位置以及与该位置相关联的成本值)。在开始时,P1和P2可以初始化为不与任何位置相关联的值,并且与P1和P2相关联的相应成本可以初始化为高于成本计算中可能获得的任何值的值,即用变量可表示的最大成本。在i的循环迭代中,在S1902中,计算第i个候选运动向量的成本。在S1903中,将第i个候选运动向量的成本与当前存储的成本最低的运动向量P1的成本进行比较。在S1904中,如果第i个候选运动向量的成本低于所存储的P1的成本,则将P1设置为第i个候选运动向量并存储。在S1905中,如果第i个候选运动向量的成本不低于P1的成本,则将第i个候选运动向量的成本与P2的成本进行比较。在S1906中,如果第i个候选运动向量的成本低于P2的成本,则将P2设置为第i个候选运动向量并存储。在两个比较步骤S1903和S1905以及可能的存储步骤S1904和S1906之一之后,i增加。如果在S1908中i尚未达到代表第一搜索空间中的候选运动向量数量的最大值imax,则该方法返回到成本计算步骤S1902。如果在S1908中i达到imax,则在S1909中终止成本计算,图18中的细化继续。
计算第二搜索空间中的候选运动向量的成本的子步骤S1805可以与图19的上述描述中描述的步骤类似地执行。但是,可以省略将第i个候选运动向量的成本与P2的成本进行比较的步骤S1905以及存储第二候选运动向量P2的步骤S1906。这是因为第二搜索空间搜索的结果是在第一搜索空间和第二搜索空间中的最佳运动向量。若第二搜索空间未进一步扩展,则第二最佳运动向量不再使用。
第二示例性实施例
根据第二示例性实施例,在确定第二搜索空间时使用的第一候选运动向量和第二候选运动向量是包括在第一搜索空间中的候选运动向量,其分别与最低和第二低匹配成本相关联(如在第一示例性实施例中一样)。
进一步地,根据第二示例性实施例,图3中的搜索空间确定单元310在操作中确定第二搜索空间的位置,该第二搜索空间是一个区域。这里,术语“区域”是指包括相应的至少两个候选运动向量指向的至少两个位置的空间。特别地,所述至少两个位置在第二搜索空间的像素分辨率中是相邻的。如图12和图13所示,第二搜索空间可以具有与第一搜索空间相同的分辨率。但是,搜索空间的分辨率也可能不同。
有利地,在图3的搜索空间构造的第一阶段301中确定的搜索空间包括运动向量的初始估计值MV0和指向在第一搜索空间的像素分辨率中与MV0指向的位置相邻的位置的候选运动向量,即运动向量的初始估计值的最近邻居。换言之,与在搜索空间构造的第一阶段301中构造具有“正方形”几何形态(形状)的第一搜索空间的第一实施例相反,该第一搜索空间具有“十字形”几何形态。然而,需要说明的是,只要编码器和解码器使用相同的搜索空间,第一搜索空间可以具有任意形状。如果搜索空间具有某种预定形式,例如十字形或正方形几何形态或任何其它排列形式,并且初始向量MV0的位置仅确定了该第一搜索空间的位置,则对于实现的简化是有利的。另一方面,本发明也适用于大小(就候选MV指向的位置而言)和/或形状不同的第一搜索空间。
计算并选择302成本函数值最低的第一候选运动向量MV0’和具有第二低值的第二候选MV0’secondBest。
基于定义MV0’指向的位置的坐标,以及由第一候选运动向量MV0’和第二候选运动向量MV0’secondBest指向的位置的连接线给出的方向,选择某个区域以在图3的第二阶段303中执行第二搜索空间的构造。
更具体地,第二搜索空间中包括的一个候选运动向量指向第一候选运动向量和第二候选运动向量的位置的连接线上的、在所述第二搜索空间的分辨率中与所述MV0’的位置最近的位置,该候选运动向量不包含在所述第一搜索空间中。一个或多个附加候选运动向量包括在第二搜索空间中,它们指向在第二搜索空间的像素分辨率中相邻的位置,并且不包括在第一搜索空间中。
图12和图13中示出了根据该第二实施例的搜索空间配置的示例。作为一个示例,第二搜索空间的像素分辨率与第一搜索空间的像素分辨率相同。从图中可以看出,初始候选运动向量指向的位置被在相应像素分辨率中与MV0相邻的四个像素位置,即四个最近的邻居围绕。MV0和指向与MV0相邻的这四个位置的候选运动向量包括在第一搜索空间中。根据成本函数确定第一搜索空间中成本最低和第二低的第一候选运动向量和第二候选运动向量MV0’和MV0’secondBest。MV0’指向的位置和由差值向量MV0’diff给出的MV0’和MV0’secondBest指向的位置的连接线的方向用于在图3的第二阶段303中确定第二搜索空间。这里,MV0’diff的定义与第一示例性实施例的描述相同。在图12和图13中,第二搜索空间包括大致指向由(MV0’+MV0’diff)给出的MV0’和MV0’secondBest指向的位置的连接线上的位置以及与该位置相邻的位置(即最近的邻居)的候选运动向量,该相邻的位置不由第一搜索空间的候选运动向量指向。
在图12中,MV0’和MV0’secondBest在第一搜索空间的分辨率中不相邻,它们是第二近邻居。第二搜索空间包括向量,即指向所述线上的所述位置和所述位置的四个最近邻居的向量。
在图13中,MV0’和MV0’secondBest指向在第一搜索空间的分辨率中的相邻位置。在这种情况下,由(MV0’+MV0’diff)定义的MV0’和MV0’secondBest指向的位置的连接线上的第二搜索空间中的位置是MV0’的最近邻居。第二搜索空间则包括指向与(MV0’+MV0’diff)对应的位置的向量和指向(MV0’+MV0’diff)的三个最相邻的不等于MV0’的候选运动向量。因此,所述第二搜索空间包括四个候选运动向量。
然而,如果MV0’和MV0’secondBest在第一搜索空间的像素分辨率中既不是最近邻居也不是第二近邻居,即,如果第一搜索空间中在MV0’和MV0’secondBest各自指向的像素位置之间有一个像素位置,可以如图13所示情况确定相同的第二搜索空间/窗口。
如果由第二搜索空间指示的搜索坐标已经被包括在第一搜索空间中,则不执行(终止)第二搜索操作。如果在第一阶段和第二阶段中使用的匹配模板和/或成本函数相同,则可能尤其如此。作为另一种替代方案,如果用于第一搜索步骤和第二搜索步骤的匹配模板和/或成本函数不同,则可以执行第二搜索操作。需要说明的是,本发明关注于减小搜索空间,并且特别是通过基于成本函数开发的特征设置第二搜索空间来实现该减小。任何模板都适用于本发明,对于各个部分搜索空间,例如第一搜索空间和第二搜索空间或其它搜索空间,如果搜索空间确定在两个以上阶段中级联,则模板可以是相同或不同的。
根据第二示例性实施例,在图18所示的运动向量细化中计算第一搜索空间中的候选运动向量的成本的子步骤S1803(计算第二搜索空间中的候选运动向量的成本的子步骤S1805)可以与根据上文结合图19描述的第一实施例的计算类似地执行。
第三示例性实施例
在到目前为止描述的实施例中,图3所示的搜索空间确定单元310从第一搜索空间中识别第一候选运动向量和第二候选运动向量,它们是第一搜索空间中匹配成本最低和第二低的候选运动向量。
根据本发明的第三示例性实施例,对于第一候选运动向量和第二候选运动向量的选择302,对于指向运动向量的初始估计值MV0指向的起始位置周围的位置的四个候选运动向量计算模板匹配成本。特别地,为了确定第二搜索空间,评估在第一搜索空间的像素分辨率中与运动向量的估计值MV0指向的位置相邻的像素位置的匹配成本。确定某个像素位置被第二搜索空间的第一候选运动向量指向,该像素位置在第一搜索空间的像素分辨率中与所述第一候选运动向量和第二候选运动向量指向的位置相邻,并且与运动向量的估计值指向的位置不同。该第一候选运动向量指向一个象限,该象限的匹配成本有望降低,如图14所示。
在图15中,示出了搜索空间确定单元1510,其是图3所示的更通用的搜索空间确定单元310的修改形式。基于运动向量的初始估计值MV0,在图15中的搜索空间构造1501的阶段1中确定在图14(a)中示例性示出的第一搜索空间,将运动向量的初始估计值的坐标表示为MV0_x和MV0_y。第一搜索空间包括MV0和指向与MV0对应的位置周围的像素位置的候选运动向量,例如在第一搜索空间的像素分辨率中的MV0的最近邻居。计算第一搜索空间的候选运动向量的匹配成本。通过选择1501第一候选运动向量和第二候选运动向量,计算匹配成本有望降低的沿着优选正交方向(例如,垂直和水平)的两个方向。
在图14以及考虑坐标的本申请的其余部分中,横轴(“x轴”)的正方向指向右端,而纵轴(“y轴”)的正方向指向下端。
更准确地,进行两次比较15021和15022,为此,将与MV0对应的像素位置相邻的点分为两组。比较两个像素位置的匹配成本,这两个像素位置在第一搜索空间的像素分辨率中与初始候选运动向量指向的像素位置相邻,并且具有与初始候选运动向量相同的垂直分量。在该第一次比较15021中评估的两个比较向量中,选择匹配成本较低的向量作为第一搜索空间中的第一候选运动向量。
另外,比较两个像素位置的匹配成本,这两个像素位置在第一搜索空间的像素分辨率中与初始候选运动向量指向的像素位置相邻,并且具有与初始候选运动向量相同的水平分量。在该第二次比较15022中评估的两个比较向量中,选择匹配成本较低的向量作为第一搜索空间中的第二候选运动向量。
作为这两次比较的结果,一个像素位置被确定为由第二搜索空间中的第一候选运动向量指向,该像素位置具有与第一候选运动向量相同的垂直分量并且与第二候选运动向量具有相同的水平分量。第一候选运动向量和第二候选运动向量分别在垂直和水平方向上定义正半平面或负半平面。它们的重叠象限被选为匹配成本有望降低的区域,并定义第二空间。在图14(b)中,第二搜索空间仅包括一个点。
第一搜索空间可以包括运动向量的初始估计值MV0及其最近的邻居,即指向在第一搜索空间的分辨率中与MV0相邻的像素位置的候选运动向量。图14(a)中示出了这样的具有“十字形”几何形态的搜索空间配置,该几何形态也针对第二实施例进行了描述。根据所使用的成本函数计算搜索空间的这五个候选运动向量的匹配成本。
在下文中,不失一般性地假设运动向量点的初始估计值MV0指向的像素位置的坐标为(0,0)。然后例如可以根据以下过程来执行上述用于确定第二搜索空间中的第一运动向量的坐标(横坐标,纵坐标)的两个比较。
纵坐标=-1,横坐标=-1;
如果(候选运动向量(0,1)的成本<候选运动向量(0,-1)的成本)
纵坐标=1;
如果(候选运动向量(1,0)的成本<候选运动向量(-1,0)的成本)
横坐标=1;
通过基于上面给出的过程或类似过程确定运动向量(横坐标,纵坐标),可以选择一个匹配成本有望降低的象限。
因此,将在确定第二搜索空间(图3中的303)中使用的象限包括具有坐标(横坐标*x,纵坐标*y)的候选运动向量,其中,x,y>0,并且“横坐标”和“纵坐标”具有由上述过程确定的值。该象限的确定在图14(b)中示例性地示出。在所示示例中,确定运动向量(1,-1),以定义所选择的象限(即右上象限)。在该具体示例中将不包括在第二搜索空间中的其它三个象限中的潜在运动向量被示为较小的点。
本发明不限于以上过程的明确定义。例如,可以使用(1,1)代替(-1,-1)作为初始值,或者代替设置初始坐标,可以使用“else”子句(图15中的比较if-else子句15021和15022),“if”条件的顺序可以交换。
当如上所述确定了第二搜索空间中的第一候选运动向量时,计算其匹配成本。作为一种具体的情况,第二搜索空间可以仅包括一个所述第一候选运动向量。此时,在检查的候选运动向量(在描述的示例中,第一搜索空间中的五个候选运动向量和第二搜索空间中的一个候选运动向量)中,选择匹配成本最低的候选运动向量作为将用于当前块的运动向量。
然而,可以确定一个候选运动向量作为第二搜索空间中的其它至少一个候选运动向量,该候选运动向量指向第二搜索空间的分辨率中的一个位置。该至少一个其它候选运动向量指向第二搜索空间的分辨率中的位置,该位置大致位于运动向量的估计值与第二搜索空间的所述候选运动向量指向的位置的连接线上。第二搜索空间的像素分辨率可以高于第一搜索空间的像素分辨率。第二搜索空间的所述其它候选运动向量可以指向位于第二搜索空间的所述第一候选运动向量和所述运动向量的估计值指向的位置之间的位置。
特别地,在确定第一候选运动向量之后,可以在确定第二搜索空间的第二阶段继续确定第二搜索空间1503,然后确定第二搜索空间包括至少一个附加候选运动向量,其指向第二搜索空间的第一候选运动向量定义的象限中的位置。例如,在到目前为止所检查的候选运动向量中,匹配成本最小和第二小的两个候选运动向量可以被识别并用于计算用于确定第二搜索空间的候选运动向量指向的其它点的方向。
下面将给出用于计算基于匹配成本最低和第二低的候选运动向量所计算的方向的示例性过程,其中匹配成本最低和第二低的候选运动向量的坐标表示为(P_min_x,P_min_y)和(P_second_x,P_second_y),以及变量“direction_vertical”和“direction_horizontal”表示定义所述方向的向量的分量。
direction_vertical=0,direction_horizontal=0;
如果(P_min_x!=P_second_x)
direction_horizontal=1;
如果(P_min_y!=P_second_y)
direction_vertical=1;
如图16所示,可以基于向量给定的方向(direction_vertical,direction_horizontal)以及匹配成本最低的候选运动向量的坐标(P_min_x,P_min_y)来选择第二搜索空间的新候选运动向量作为0.5×(P_min_x+direction_vertical,P_min_y-direction_horizontal)和0.5×(P_min_x-vertical,P_min_y+horizontal)或这两个点之一,取决于第一搜索空间中的第一候选运动向量和第二候选运动向量指向的像素位置。计算第二搜索空间的新候选运动向量的匹配成本,并且从第一搜索空间和第二搜索空间中的候选运动向量中,选择匹配成本最小的候选运动向量作为运动向量细化过程的输出,即图3中的MV0”。
在图16的示例中,第二搜索空间具有分数像素分辨率,特别是半像素分辨率(根据为第二搜索空间的附加候选运动向量的位置指定方向的向量的系数0.5)。可以使用例如四分之一像素分辨率等替代的像素分辨率,并且代替一个或两个运动向量候选,可以使用两个或四个候选运动向量,其近似指向由候选运动向量(P_min_x,P_min_y)和方向(direction_vertical,direction_horizontal)给出的线。
在图16所示的示例性搜索空间配置中,第二搜索空间的第一运动向量与匹配成本最低的候选运动向量(P_min_x,P_min_y)一致,其中,第二搜索空间的附加运动向量0.5×(P_min_x+direction_vertical,P_min_y-direction_horizontal)和0.5×(P_min_x-vertical,P_min_y+horizontal)的计算基于该候选运动向量(P_min_x,,P_min_y)。
实施例的组合
根据上述每个示例性实施例,基于第一步骤的输出选择第二搜索空间,其中,在第一步骤中,确定301第一搜索空间并且从第一搜索空间选择302第一候选运动向量和第二候选运动向量。然而,整个搜索过程可以分为比确定第一搜索空间和第二搜索空间和从相应搜索空间中选择一个或两个候选运动向量更多的步骤。在每个步骤或子步骤中,可以根据所述示例性实施例之一确定新的搜索空间。例如,以上结合图16描述的搜索空间配置是一个示例,其中,确定第二搜索空间意味着随后应用第三示例性实施例和第一示例性实施例。这将在下面进行说明。
在图16所示的示例性搜索空间配置中,第二搜索空间包括第二搜索空间中的第一候选运动向量和另外两个候选运动向量。第二搜索空间中的这两个附加候选运动向量大致指向线上的像素位置,其中,该线由第一搜索空间和第二搜索空间中的五个候选运动向量中的匹配成本最低的像素位置候选运动向量和具有由向量给出的方向的线定义,其中,该方向的坐标是根据上面给出的过程计算出的direction_horizontal和direction_vertical。该过程是根据由两个候选运动向量指向的位置的连接线给出的方向计算两个候选运动向量的示例。该过程也可以用于上面已经参照图5至图11描述的第一实施例的第二搜索空间的计算中。
换言之,根据第三实施例的第二搜索空间的确定的可选第二阶段对应于根据第一实施例的第二搜索空间的确定。换言之,在确定具有比仅有第一候选运动向量的第二搜索空间更多的候选运动向量的第二搜索空间的上述示例中,已经通过组合本发明的第三实施例与第一实施例来获得搜索空间的附加运动向量。
在已经参照图16描述的第三示例性实施例的示例中,当确定第二搜索空间时,将第三实施例和第一实施例组合。然而,本发明并不限于不同实施例的组合的这一特定示例。
进一步地,本发明不限于结合两个不同的实施例。或者,可以通过后续应用根据第一实施例的第二阶段303并因此确定具有不同像素分辨率的嵌套搜索空间来确定第二搜索空间,其中,具有不同像素分辨率的嵌套搜索空间例如为具有半像素分辨率的第一搜索空间和具有四分之一像素分辨率的第二搜索空间。
图17示出了组合不同示例性实施例的又一示例。从图17(a)中可以看出,根据第二示例性实施例确定包括五个候选运动向量的第一搜索空间,其中,该五个候选运动向量即为初始估计运动向量和在第一搜索空间的像素分辨率(例如,全像素分辨率)中与初始估计运动向量相邻的四个候选运动向量。匹配成本最低和第二低的候选运动向量用于确定第二搜索空间,所述第二搜索空间是根据第二实施例的区域,该区域包括图17(b)所示的另外五个候选运动向量。在这另外五个候选运动向量上,应用第三实施例的方法,即,通过应用图15中的第一候选运动向量和第二候选运动向量MV0’first和MV0’second的选择1502,确定图17(c)中示出的附加候选运动向量。再次根据第一实施例,确定匹配成本最低和第二低的两个候选运动向量(在图中表示为MV0’c和MV0’secondBest_c)。如图17(d)所示,添加了指向比到目前为止使用的分辨率更高的像素分辨率(例如,半像素分辨率)的像素位置的两个额外的候选运动向量,它们大致指向与MV0’c和MV0’secondBest_c对应的位置的连接线上的位置。
结合不同实施例的优点在于:候选运动向量的数量可以保持较小,同时在参考图像的增加的区域中保持相似的精度。例如,如图17所示,三个实施例对应的三个阶段的级联允许为与7×7个全像素的正方形对应的区域提供精确半像素分辨率中的预测值的位置。
如上所述的包括运动向量细化的运动向量确定可以被实现为视频信号(运动图像)的编码和/或解码的一部分。但是,运动向量确定还可以用于图像处理中的其它目的,例如运动检测、运动分析等。
运动向量确定可以作为装置实现。这种装置可以是软件和硬件的组合。例如,该运动向量确定可以由通用处理器、数字信号处理器(digital signal processor,简称DSP)、现场可编程门阵列(field programmable gate array,简称FPGA)等芯片进行。然而,本发明不限于在可编程硬件上的实现。其可以在专用集成电路(application-specificintegrated circuit,简称ASIC)上实现,也可以通过以上提到的硬件组件的组合实现。
运动向量确定也可以通过存储在计算机可读介质上的程序指令来实现。程序在执行时使计算机执行如下步骤:获取所述运动向量的估计值;基于所述估计值确定包括多个候选运动向量的第一搜索空间;根据成本函数在所述第一搜索空间中选择第一候选运动向量和第二候选运动向量;基于所述第一候选运动向量和所述第二候选运动向量确定包括一个或多个候选运动向量的第二搜索空间;从所述第一空间和所述第二空间中的候选运动向量中选择所述当前块的运动向量。计算机可读介质可以是存储程序的任何介质,例如DVD、CD、USB(闪存)驱动器、硬盘、通过网络可用的服务器存储等。
编码器和/或解码器可以在各种设备中实现,包括电视机、机顶盒、PC、平板电脑、智能手机等。其可以是实现上述方法步骤的软件、应用。
总而言之,本发明涉及用于确定视频序列中图像的当前块的运动向量的搜索空间的构造。所述搜索空间构造分为两个主要阶段,其中分别确定第一部分搜索空间和第二部分搜索空间。首先基于运动向量的初始估计值构造第一搜索空间。根据成本函数识别出所述第一搜索空间中的第一候选运动向量和第二候选运动向量。基于所述第一候选运动向量和第二候选运动向量构造第二搜索空间。从所述第一搜索空间和所述第二搜索空间中的候选运动向量中选择所述当前块的运动向量。
尽管上面主要在运动图像视频编码的框架中描述了本发明,但是所提出的技术也可以应用于包括两个或多个图像的任何图像集合的编码(即,编码或解码)。图像集合可以包括例如在医学成像应用中获得的静止图像的集合,例如,计算机断层扫描(computedtomography,简称CT)扫描图像的序列。因此,在所附权利要求书中,术语“视频”可以表示运动图像序列或包括两个或多个图像的任何其它图像集合。
Claims (5)
1.一种用于确定运动向量的装置,其特征在于,所述运动向量将用于视频帧的当前块的帧间预测,所述装置包括:
帧间预测单元(210),用于从码流中获取初始运动向量;
搜索空间确定单元(310),用于基于所述初始运动向量确定包括多个候选运动向量的第一搜索空间,其中,所述初始运动向量指向所述第一搜索空间中心的位置,所述第一搜索空间具有整数像素分辨率,所述第一搜索空间中包括所述初始运动向量和指向在第一搜索空间的像素分辨率中与所述初始运动向量指向的位置相邻的位置的候选运动向量;
根据成本函数在所述第一搜索空间中选择第一候选运动向量和第二候选运动向量,并基于所述第一候选运动向量和所述第二候选运动向量确定包括一个或多个候选运动向量的第二搜索空间,所述第二搜索空间具有分数像素分辨率;
运动向量选择单元(340),用于从所述第一搜索空间和所述第二搜索空间中的候选运动向量中选择所述当前块的运动向量;
其中,所述搜索空间确定单元(310)用于根据所述第一候选运动向量和所述第二候选运动向量指向的位置的连接线的方向确定所述第二搜索空间的大小和/或位置。
2.根据权利要求1所述的装置,其特征在于,所述成本函数基于预定模板,并针对各个候选运动向量指示所述预定模板与各个候选运动向量指向的预测值之间的相似度。
3.根据权利要求1所述的装置,其特征在于,所述搜索空间确定单元(310)用于:
选择一个候选运动向量作为第二搜索空间中的第一候选运动向量,其中,所述候选运动向量指向在第一搜索空间的像素分辨率中与第一搜索空间中识别出的第一候选运动向量和第二候选运动向量指向的位置相邻的并与所述初始运动向量指向的位置不同的位置。
4.一种用于将多个图像编码为码流的视频编码器,其特征在于,包括:
帧间预测单元,包括如权利要求1至3任一项所述的装置,并且还用于确定当前块的运动向量指向的预测块;
码流形成器,用于在所述码流中包括初始运动向量的指示;
重建单元,用于基于所述预测块重建所述当前块,并将重建块存储在存储器中。
5.一种用于确定运动向量的方法,其特征在于,所述运动向量将用于视频帧的当前块的帧间预测,所述方法包括:
从码流中获取初始运动向量;
基于所述初始运动向量确定包括多个候选运动向量的第一搜索空间,其中,所述初始运动向量指向所述第一搜索空间中心的位置,所述第一搜索空间具有整数像素分辨率,所述第一搜索空间中包括所述初始运动向量和指向在第一搜索空间的像素分辨率中与所述初始运动向量指向的位置相邻的位置的候选运动向量;
根据成本函数在所述第一搜索空间中选择第一候选运动向量和第二候选运动向量;
基于所述第一候选运动向量和所述第二候选运动向量确定包括一个或多个候选运动向量的第二搜索空间,所述第二搜索空间具有分数像素分辨率;
从所述第一搜索空间和所述第二搜索空间中的候选运动向量中选择所述当前块的运动向量;其中,根据所述第一候选运动向量和所述第二候选运动向量指向的位置的连接线的方向确定所述第二搜索空间的大小和/或位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210668178.8A CN115118988A (zh) | 2017-06-30 | 2017-06-30 | 用于运动向量细化的搜索区域 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2017/066337 WO2019001737A1 (en) | 2017-06-30 | 2017-06-30 | RESEARCH AREA FOR MOVEMENT VECTOR ENHANCEMENT |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210668178.8A Division CN115118988A (zh) | 2017-06-30 | 2017-06-30 | 用于运动向量细化的搜索区域 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110786013A CN110786013A (zh) | 2020-02-11 |
CN110786013B true CN110786013B (zh) | 2022-06-14 |
Family
ID=59285187
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210668178.8A Pending CN115118988A (zh) | 2017-06-30 | 2017-06-30 | 用于运动向量细化的搜索区域 |
CN201780092336.7A Active CN110786013B (zh) | 2017-06-30 | 2017-06-30 | 用于运动向量细化的搜索区域 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210668178.8A Pending CN115118988A (zh) | 2017-06-30 | 2017-06-30 | 用于运动向量细化的搜索区域 |
Country Status (12)
Country | Link |
---|---|
US (2) | US11082714B2 (zh) |
EP (1) | EP3632108B1 (zh) |
JP (1) | JP2020526112A (zh) |
KR (2) | KR102355841B1 (zh) |
CN (2) | CN115118988A (zh) |
AU (2) | AU2017421655B2 (zh) |
BR (1) | BR112019028012A2 (zh) |
CA (2) | CA3068595C (zh) |
IL (1) | IL271770B2 (zh) |
MY (1) | MY194535A (zh) |
SG (1) | SG11201913272SA (zh) |
WO (1) | WO2019001737A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117544786A (zh) * | 2017-08-29 | 2024-02-09 | 株式会社Kt | 视频解码和编码方法及用于存储压缩视频数据的装置 |
CN109587501B (zh) * | 2017-09-28 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 进行运动估计的方法、装置及存储介质 |
JP7257524B2 (ja) * | 2019-01-02 | 2023-04-13 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | ビデオエンコーディング/デコーディングシステムにおけるサイド動き精細化 |
MX2021009529A (es) * | 2019-02-08 | 2021-09-23 | Beijing Dajia Internet Information Tech Co Ltd | Metodos y dispositivos para aplicar de forma selectiva el flujo optico bidireccional y el refinamiento del vector de movimiento en el decodificador para la codificacion de video. |
BR112021009833A2 (pt) * | 2019-02-28 | 2021-08-17 | Huawei Technologies Co., Ltd. | codificador, decodificador e métodos correspondentes para predição inter |
CN117834906A (zh) * | 2019-03-08 | 2024-04-05 | 华为技术有限公司 | 运动矢量细化的搜索区域 |
TWI738248B (zh) | 2019-03-14 | 2021-09-01 | 聯發科技股份有限公司 | 運動細化以及子分區基礎填充的視訊處理的方法以及裝置 |
WO2021163862A1 (zh) * | 2020-02-18 | 2021-08-26 | 深圳市大疆创新科技有限公司 | 视频编码的方法与装置 |
US11418810B2 (en) * | 2020-09-21 | 2022-08-16 | Tencent America LLC | Methods of inter picture motion prediction for multi-view video compression |
US11875516B2 (en) | 2020-12-28 | 2024-01-16 | Waymo Llc | Systems, apparatus, and methods for retrieving image data of image frames |
CN113408661B (zh) * | 2021-07-16 | 2022-02-18 | 北京百度网讯科技有限公司 | 误匹配确定方法、装置、设备和介质 |
WO2023043296A1 (ko) * | 2021-09-17 | 2023-03-23 | 주식회사 윌러스표준기술연구소 | Obmc를 이용한 비디오 신호 처리 방법 및 이를 위한 장치 |
WO2024080747A1 (ko) * | 2022-10-11 | 2024-04-18 | 한국전자통신연구원 | 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW321748B (zh) * | 1994-02-23 | 1997-12-01 | Rca Thomson Licensing Corp | |
US6968008B1 (en) | 1999-07-27 | 2005-11-22 | Sharp Laboratories Of America, Inc. | Methods for motion estimation with adaptive motion accuracy |
US20050207663A1 (en) * | 2001-07-31 | 2005-09-22 | Weimin Zeng | Searching method and system for best matching motion vector |
US6996180B2 (en) | 2001-09-05 | 2006-02-07 | Intel Corporation | Fast half-pixel motion estimation using steepest descent |
US20040252766A1 (en) * | 2003-06-11 | 2004-12-16 | Daeyang Foundation (Sejong University) | Motion vector search method and apparatus |
CN101502119B (zh) * | 2006-08-02 | 2012-05-23 | 汤姆逊许可公司 | 用于视频编码的自适应几何分割方法和设备 |
JP2008177630A (ja) * | 2007-01-16 | 2008-07-31 | Victor Co Of Japan Ltd | 動きベクトル検出装置 |
JP2010524396A (ja) * | 2007-04-12 | 2010-07-15 | トムソン ライセンシング | ビデオエンコーダにおける高速な幾何学的なモードの判定方法及び装置 |
CN101247523B (zh) * | 2008-03-18 | 2010-09-08 | 上海华平信息技术股份有限公司 | 用于h.264编码器的半像素运动估计方法 |
JP2009290295A (ja) * | 2008-05-27 | 2009-12-10 | Mitsubishi Electric Corp | 動き補償予測装置 |
KR101740039B1 (ko) * | 2009-06-26 | 2017-05-25 | 톰슨 라이센싱 | 적응형 기하학적 분할을 이용한 비디오 인코딩 및 디코딩 방법 및 장치 |
KR101671460B1 (ko) | 2009-09-10 | 2016-11-02 | 에스케이 텔레콤주식회사 | 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치 |
US9357228B2 (en) * | 2010-05-27 | 2016-05-31 | The Hong Kong University Of Science And Technology | Motion estimation of images |
TWI590083B (zh) * | 2010-11-18 | 2017-07-01 | 創意電子股份有限公司 | 一種產生影像位移偵測之快速搜尋視窗的方法 |
US9532066B2 (en) * | 2011-01-21 | 2016-12-27 | Qualcomm Incorporated | Motion vector prediction |
WO2012122927A1 (en) | 2011-03-14 | 2012-09-20 | Mediatek Inc. | Method and apparatus for derivation of motion vector candidate and motion vector prediction candidate |
KR101956284B1 (ko) * | 2011-06-30 | 2019-03-08 | 엘지전자 주식회사 | 보간 방법 및 이를 이용한 예측 방법 |
CN102316323B (zh) * | 2011-07-06 | 2014-03-05 | 北京航空航天大学 | 一种快速的双目立体视频分形压缩与解压缩方法 |
US10531116B2 (en) * | 2014-01-09 | 2020-01-07 | Qualcomm Incorporated | Adaptive motion vector resolution signaling for video coding |
US10200711B2 (en) * | 2015-03-27 | 2019-02-05 | Qualcomm Incorporated | Motion vector derivation in video coding |
CN106878737B (zh) * | 2017-03-02 | 2019-10-08 | 西安电子科技大学 | 高效视频编码中的运动估计加速方法 |
US20190007699A1 (en) * | 2017-06-28 | 2019-01-03 | Futurewei Technologies, Inc. | Decoder Side Motion Vector Derivation in Video Coding |
-
2017
- 2017-06-30 KR KR1020207002037A patent/KR102355841B1/ko active IP Right Grant
- 2017-06-30 CA CA3068595A patent/CA3068595C/en active Active
- 2017-06-30 SG SG11201913272SA patent/SG11201913272SA/en unknown
- 2017-06-30 MY MYPI2019007864A patent/MY194535A/en unknown
- 2017-06-30 EP EP17735474.3A patent/EP3632108B1/en active Active
- 2017-06-30 CA CA3151032A patent/CA3151032A1/en active Pending
- 2017-06-30 AU AU2017421655A patent/AU2017421655B2/en active Active
- 2017-06-30 IL IL271770A patent/IL271770B2/en unknown
- 2017-06-30 JP JP2019572011A patent/JP2020526112A/ja active Pending
- 2017-06-30 CN CN202210668178.8A patent/CN115118988A/zh active Pending
- 2017-06-30 BR BR112019028012-0A patent/BR112019028012A2/pt unknown
- 2017-06-30 CN CN201780092336.7A patent/CN110786013B/zh active Active
- 2017-06-30 WO PCT/EP2017/066337 patent/WO2019001737A1/en unknown
- 2017-06-30 KR KR1020227002116A patent/KR102430225B1/ko active IP Right Grant
-
2019
- 2019-12-30 US US16/730,823 patent/US11082714B2/en active Active
-
2021
- 2021-06-16 US US17/349,557 patent/US11736718B2/en active Active
- 2021-09-08 AU AU2021229180A patent/AU2021229180B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3632108B1 (en) | 2023-08-02 |
AU2017421655B2 (en) | 2022-12-22 |
KR20200020882A (ko) | 2020-02-26 |
US11736718B2 (en) | 2023-08-22 |
CN115118988A (zh) | 2022-09-27 |
KR102355841B1 (ko) | 2022-02-08 |
NZ760611A (en) | 2021-05-28 |
CA3068595C (en) | 2022-05-24 |
EP3632108A1 (en) | 2020-04-08 |
CA3151032A1 (en) | 2019-01-03 |
AU2021229180B2 (en) | 2022-10-20 |
AU2017421655A1 (en) | 2020-01-30 |
JP2020526112A (ja) | 2020-08-27 |
KR20220013467A (ko) | 2022-02-04 |
IL271770B2 (en) | 2024-03-01 |
BR112019028012A2 (pt) | 2020-07-07 |
CN110786013A (zh) | 2020-02-11 |
US11082714B2 (en) | 2021-08-03 |
MY194535A (en) | 2022-11-30 |
AU2021229180A1 (en) | 2021-10-07 |
CA3068595A1 (en) | 2019-01-03 |
KR102430225B1 (ko) | 2022-08-09 |
US20210314604A1 (en) | 2021-10-07 |
IL271770B1 (en) | 2023-11-01 |
IL271770A (en) | 2020-02-27 |
US20200137415A1 (en) | 2020-04-30 |
WO2019001737A1 (en) | 2019-01-03 |
SG11201913272SA (en) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110786013B (zh) | 用于运动向量细化的搜索区域 | |
US11683520B2 (en) | Motion vector refinement for multi-reference prediction | |
US11805270B2 (en) | Limited memory access window for motion vector refinement | |
US20210409754A1 (en) | Search region for motion vector refinement | |
NZ760611B2 (en) | Search region for motion vector refinement | |
NZ760521B2 (en) | Motion vector refinement for multi-reference prediction | |
NZ780051B2 (en) | Motion vector refinement for multi-reference prediction |
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 |