CN111201795A - 存储访问窗口和用于运动矢量修正的填充 - Google Patents
存储访问窗口和用于运动矢量修正的填充 Download PDFInfo
- Publication number
- CN111201795A CN111201795A CN201780095727.4A CN201780095727A CN111201795A CN 111201795 A CN111201795 A CN 111201795A CN 201780095727 A CN201780095727 A CN 201780095727A CN 111201795 A CN111201795 A CN 111201795A
- Authority
- CN
- China
- Prior art keywords
- motion vector
- block
- value
- window
- search space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
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/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
- 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/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/533—Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
-
- 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/563—Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
-
- 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/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及使用模板匹配确定运动矢量,特别地,涉及获取图像块的初始运动矢量和模板。通过在搜索空间中与所述模板进行模板匹配确定初始运动矢量的修正。所述搜索空间位于由所述初始运动矢量给定的位置上。所述模板匹配包括:访问预定窗口内的整数像素点(sample)位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置,将位于所述窗口之外的至少一个整数像素点位置替换为替换值,其中所述替换值是基于所述窗口中的至少一个像素点而得到的,以及使用所述已访问的整数像素点位置的值以及所述替换值执行所述模板匹配。
Description
本发明涉及运动矢量的确定和修正,其可以应用于视频的编解码中。
背景技术
目前的混合视频编解码器采用预测编码。视频序列的图像被细分为像素块,然后对这些块进行编码。利用块的空间或时间的接近性使用已编码的像素来预测整个块,而不是逐像素对块进行编码。编码器仅用于进一步处理块与其预测块之间的差。所述进一步处理通常包括将块像素转换为变换域中的系数。然后,可以通过量化进一步压缩系数,并通过熵编码进一步压缩系数以形成码流。码流还包括能够使解码器解码已编码的视频的任何信令信息。例如,信令可以包括有关编码器的设置,例如输入图像的大小、帧速率、量化步长指示、应用于图像块的预测等。
时间预测利用了视频图像的时间上的相关性,视频图像也称为视频帧。时间预测也称为帧间预测,因为时间预测是利用(帧间)不同视频帧之间的依赖关系的预测。相应地,用一个或多个先前已编码的图像(也称为参考图像)预测正在编码的块(也称为当前块)。根据视频序列的显示顺序,参考图像不一定是当前块所在的当前图像之前的图像。编码器可以采用不同于显示顺序的编码顺序对图像进行编码。可以确定参考图像中的共位块为当前块的预测块。所述共位块是与当前图像中的当前块位于相同位置的参考图像中的块。这种预测对于静止图像区域是准确的,即图像区域中没有从一个图像移动到另一个图像。
为获得一个考虑了运动的预测值,即运动补偿预测值,在确定所述当前块的预测块时通常采用运动估计。相应地,所述当前块使用所述参考图像中的块来预测,所述块位于与所述共位块的位置间隔运动矢量给定的距离内。为了使解码器能够确定所述当前块的相同预测块,可以在码流中指示运动矢量。为了进一步减少向每个块指示运动矢量带来的信令开销,可以估计运动矢量本身。可以基于空域和/或时域中的相邻块的运动矢量来进行运动矢量估计。
可以使用一个参考图像或通过加权从两个或多个参考图像获得的预测块来计算所述当前块的预测块。所述参考图像可以是相邻图像,即在所述显示顺序中紧接在所述当前图像之前和/或紧接在所述当前图像之后的图像,因为相邻图像最有可能与所述当前图像相似。然而,通常情况下,所述参考图像也可以是在所述显示顺序中位于当前图像之前或之后、在码流(解码顺序)中位于当前图像之前的任何其他图像。这在视频内容被遮挡和/或非线性移动的情况下可以提供优势。因此,也可以在码流中指示参考图像识别。
帧间预测的一种特殊模式是所谓的双向预测,在双向预测中使用两个参考图像来生成当前块的预测块。特别地,将在所述相应的两个参考图像中确定的两种预测块组合成所述当前块的预测信号。与单向预测(即仅使用单个参考图像的预测)相比,双向预测能够更精确地预测当前块。预测越准确,所述当前块的像素与所述预测块之间的差(也称为残差)就越小。可以更有效地编码,即压缩为更短的码流。通常,可以使用两个以上的参考图像来找到相应的两个以上的参考块来预测所述当前块,即可以应用多参考帧间预测。因此,术语“多参考预测”包括双向预测以及使用两个以上参考图像的预测。
为了提供更准确的运动估计,可以通过在像素之间内插像素点来增强参考图像的分辨率。分数像素内插可以通过对最近像素进行加权平均来实现。例如,在半像素分辨率的情况下,通常使用双线性内插。通过最接近像素与正在预测的像素之间的距离的倒数对最接近像素进行加权,然后对加权值取平均值,计算得到其它分数像素。
运动矢量估计是一项复杂的计算任务,用来计算所述当前块与所述参考图像中候选运动矢量指向的对应预测块之间的相似度。典型地,搜索区域包括M×M个图像像素点,并且测试M×M个候选位置中的每个像素点位置。测试包括计算位于所述搜索区域的已测试的候选位置的N×N个参考块C与块R之间的相似性度度量。为简单起见,绝对差总和(sum ofabsolute differences,SAD)是经常使用的一个度量,其计算方法如下:
在上述公式中,x和y定义了搜索区域内的候选位置,而索引i和j表示参考块C和候选块R内的像素点。候选位置通常称为块位移或偏移,反映块匹配表示为参考块在搜索区域内的移位,并计算参考块C与搜索区域的重叠部分之间的相似度。为了降低复杂度,通常通过将候选运动矢量限制在某个搜索空间内来减少候选运动矢量的数量。例如,所述搜索空间可以由与所述当前图像中的所述当前块的位置对应的所述参考图像中的位置周围的像素的数量和/或位置来定义。计算所有M×M个候选位置x和y的SAD之后,最佳匹配块R是在产生最小SAD的位置上的块,所述最小SAD与所述参考块C的最大相似度对应。另一方面,候选运动矢量可以通过由相邻块的运动矢量组成的候选运动矢量列表来定义。
运动矢量通常至少部分在编码端确定,并在已编码的码流中向解码器指示。也可以在解码器处推导出所述运动矢量。在这种情况下,当前块在解码器处不可用,并且不能用于计算与参考图像中候选运动矢量指向的块的相似度。因此,使用从已解码的块的像素中构建的模板来代替所述当前块。例如,可以使用与所述当前块相邻的已解码的像素。这种运动估计具有减少信令的优点。所述运动矢量在编码器和解码器处以相同方式进行推导,因此不需要信令。然而,这种运动估计的准确性可能较低。
为了平衡准确性和信令开销,可将运动矢量估计分为两个步骤:运动矢量推导和运动矢量修正。例如,运动矢量推导可以包括从候选者列表中选择运动矢量。例如,可以通过在搜索空间内进行搜索进一步修正此类已选择的运动矢量。在所述搜索空间内基于计算每个候选运动矢量(即对于所述候选运动矢量指向的块的每个候选位置)的成本函数进行搜索。
文件号JVET-D0029:X.Chen、J.An、J.Zheng发表的Decoder-Side Motion VectorRefinement Based on Bilateral Template Matching(基于双边模板匹配的解码端运动矢量修正)(文档获取网址http://phenix.it-sudparis.eu/jvet/)介绍了运动矢量修正,发现了整像素分辨率的第一运动矢量,并通过在第一运动矢量周围的搜索空间中以半像素分辨率进行搜索来进一步修正第一运动矢量。
为了进行运动矢量的修正,需要将为了执行修正当前块所必需的至少那些像素点存储在存储器中,这些像素点即对应于搜索空间的像素点以及在搜索空间中进行模板匹配时可以访问的像素点。
外部存储器访问是当前硬件架构和/或软件实现中的一个重要设计参数。这是因为外部存储器访问比使用内部存储器的处理速度更慢。另一方面,由于芯片大小的原因,芯片上的内部存储器是有限的。
发明内容
本发明基于以下内容,当结合分数内插进行运动矢量的修正时,可能需要进一步增加片上存储器的大小,甚至增加外部存储访问空间。这两种选择可能都不理想。
鉴于上述问题,本发明提供运动矢量预测,能够考虑对外部存储器的访问次数以及为正在编码的块的运动矢量的运动矢量修正所需的可访问的像素点数量。
这将通过位于预定义存储访问窗口之外的用于运动矢量修正和/或分数内插的值替换为基于存储访问窗口内的一个或多个像素点的替换值来实现。根据本发明的一个方面,提供了一种用于确定图像块的运动矢量的装置,该装置包括处理电路,用于:获取所述图像块的初始运动矢量和模板;通过在搜索空间中与所述模板进行模板匹配确定所述初始运动矢量的修正,其中,所述搜索空间位于由所述初始运动矢量给定的位置上;所述模板匹配包括:访问预定窗口内的整数像素点位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置;将位于所述窗口之外的至少一个整数像素点位置替换为替换值,其中所述替换值是基于所述窗口中的至少一个像素点而得到的;以及使用所述已访问的整数像素点位置的值以及所述替换值执行所述模板匹配。
这种装置具有限制可用于运动矢量确定(修正)的像素点数量的优点,同时还避免了对存储/(外部)存储有整个参考图像的存储器的额外访问。
在一个实施例中,所述搜索空间包括至少一个分数像素点位置,所述至少一个分数像素点位置的值是采用预定义抽头大小的滤波器通过内插滤波得到的;以及所述内插滤波使用所述已访问的整数像素点位置的值和所述至少一个替换值来获得所述至少一个分数像素点位置的值。
例如,所述替换值是通过将对应的所述已访问的整数像素点位置的值相对于所述内插滤波器的轴通过镜面映射的方式来确定。其中,所述内插滤波是一维滤波或可分离二维滤波。
在一个示例性实施方式中,所述窗口是由所述搜索空间内的整数像素点位置上的模板匹配可访问的所有整数像素点位置组成的。
例如,所述窗口由其相对于以下内容的垂直和/或水平大小定义:搜索空间;与所述图像块一样大小且位于所述初始运动矢量位置上的块;或者所述初始运动矢量位置。
作为另一示例,其特征在于,所述替换值等于所述已访问的整数像素点位置中最近的一个位置的值。
根据本发明的另一方面,提供了一种用于将分割为图像块的视频图像编码为码流的编码装置,所述编码装置包括:所述用于确定图像块的运动矢量的装置;编码电路,用于对所述图像块和基于所述确定的运动矢量而确定的位置上的预测块给定的预测值之间的差值进行编码,并用于生成包括所述已编码的差值和初始运动矢量的码流。
根据本发明的另一方面,一种用于对分割为图像块的码流视频图像进行解码的解码装置,所述解码装置包括:解析单元,用于从所述码流中解析初始运动矢量和差值,其中所述差值为所述图像块和由修正运动矢量指定的位置上的预测块给定的预测值之间的差值;所述用于确定所述图像块的所述修正运动矢量的装置;以及用于重建所述图像块的解码电路,所述图像块是所述已解析的差值和由所述修正运动矢量指定的位置上的所述预测块给定的所述预测值之间的总和。
根据本发明的一个方面,提供了一种用于确定图像块的运动矢量的方法,包括以下步骤:获取所述图像块的初始运动矢量和模板;通过在搜索空间中与所述模板进行模板匹配确定所述初始运动矢量的修正,其中,所述搜索空间位于由所述初始运动矢量给定的位置上;所述模板匹配包括:访问预定窗口内的整数像素点位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置;将位于所述窗口之外的至少一个整数像素点位置替换为替换值,其中所述替换值是基于所述窗口中的至少一个像素点而得到的;以及使用所述已访问的整数像素点位置的值以及所述替换值执行所述模板匹配。
在一个实施例中,所述搜索空间包括至少一个分数像素点位置,所述至少一个分数像素点位置的值是采用预定义抽头大小的滤波器通过内插滤波得到的;以及所述内插滤波使用所述已访问的整数像素点位置的值和所述至少一个替换值来获得所述至少一个分数像素点位置的值。
例如,所述替换值是通过将对应的所述已访问的整数像素点位置的值相对于所述内插滤波器的轴通过镜面映射的方式来确定。此外,在一个示例中,所述内插滤波是一维滤波或可分离二维滤波。
例如,所述窗口是由所述搜索空间内的整数像素点位置上的模板匹配可访问的所有整数像素点位置组成的。
根据一示例性实施方式,所述窗口由其相对于以下内容的垂直和/或水平大小定义:搜索空间;与所述图像块一样大小且位于所述初始运动矢量位置上的块;或者所述初始运动矢量位置。
根据另一示例,所述替换值等于所述已访问的整数像素点位置中最近的一个位置的值。
根据本发明的另一方面,提供了一种用于将分割为图像块的视频图像编码为码流的编码方法,所述编码方法包括:所述的确定图像块的运动矢量;用于对所述图像块和基于所述确定的运动矢量而确定的位置上的预测块给定的预测值之间的差值进行编码,并用于生成包括所述已编码的差值和初始运动矢量的码流。
根据本发明的另一方面,提供了一种用于对分割为图像块的码流视频图像进行解码的解码方法,所述解码方法包括:从所述码流中解析初始运动矢量和差值,其中所述差值为所述图像块和由修正运动矢量指定的位置上的预测块给定的预测值之间的差值;所述的确定所述图像块的所述修正运动矢量;以及重建所述图像块,所述图像块是所述已解析的差值和由所述修正运动矢量指定的位置上的所述预测块给定的所述预测值之间的总和。
根据本发明的一方面,提供了一种包含指令的非瞬时性计算机可读存储介质,所述指令在由处理器/处理电路执行时执行上述任一方面或实施例或其组合中的步骤。
附图说明
下文将参考以下附图详细描述示例性实施例。
图1为可进行运动矢量推导和修正的编码器的示例性结构的框图。
图2为可进行运动矢量推导和修正的解码器的示例性结构的框图。
图3为适用于双向预测的示例性模板匹配的示意图。
图4为适用于单向和双向预测的示例性模板匹配的示意图。
图5为在不提供要在码流中修正的初始运动矢量的情况下操作的运动矢量推导各阶段的框图。
图6为用于实现本发明实施例的示例性硬件的框图。
图7为图像块(coding block)的具有可访问像素点的示例性窗口的示意图。
图8为迭代搜索空间的示意图。
图9为存储访问窗口由于内插滤波在水平方向上扩展的示意图。
图10为两个像素点的填充以进行分数位置计算的示意图。
图11为四个像素点的填充以便在搜索空间边界上实现模板匹配的示意图。
图12为内插不需要填充的示例性分数位置的示意图。
图13为结合预测单元定义存储访问窗口的示意图。
图14示出了根据一实施例的方法。
具体实施方式
本发明涉及对可访问像素点数量的调整,以进行运动矢量修正和内插,从而获得参考图像中的分数位置。
如上所述,在当今的硬件和软件体系结构中,外部存储器访问是最重要的设计考虑因素之一。尤其在包括模板匹配时,例如在运动矢量修正的情况下,运动矢量估计还可以与内插滤波一起使用以获得搜索空间的分数位置。内插滤波的使用可能需要增加从存储器中访问的像素点的数量。然而,这可能增加昂贵的片上存储器,或者增加外部存储访问次数,另一方面减慢了实现速度。特别是在解码器侧,这些问题可能导致应用的成本增加、速度变慢,这是不可取的。
为了防止这种情况,本发明对外部存储器访问进行了限制。根据本发明,为了限制存储访问窗口,提供了一种用于确定图像块的运动矢量的装置,该装置包括处理电路。所述处理电路用于:获取所述图像块的初始运动矢量和模板;以及通过在搜索空间中与所述模板进行模板匹配确定所述初始运动矢量的修正。所述搜索空间位于由所述初始运动矢量给定的位置上。所述模板匹配包括:访问预定窗口内的整数像素点位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置。所述模板匹配还包括:将位于所述窗口之外的至少一个整数像素点位置替换为替换值,其中所述替换值是基于所述窗口中的至少一个像素点而得到的,以及使用所述已访问的整数像素点位置的值以及所述替换值执行所述模板匹配。
相应地,所述窗口的大小可以预定义。例如,所述窗口可以包括至少所有搜索空间位置。所述已访问的像素点是实际用于特定块及其搜索空间以执行模板匹配的像素点,例如,用于使用模板计算成本函数的所有像素点。所述可访问的像素点还包括在特定块的特定模板匹配时不需访问的像素点,例如,因为通过迭代确定搜索空间包括不同像素点,并且对像素点进行的模板匹配不需要所有的可访问像素。所述可访问的像素点还包括任何通过迭代确定的搜索空间(即假设任何块内容)中会产生的像素点以及可能还会被访问以便在此类可能的搜索空间中执行模板匹配的像素点。
应注意的是,可以定义所述窗口小于所有可访问的像素点。这种窗口定义使得较少数量的像素点能够存储在片上存储器中并从外部存储器中获取。因此,本发明限制了为特定块的模板匹配相关联的操作而存储/缓存/缓冲的整数像素点的数量。这并不意味着其他像素点通常不存在/不可用于其他存储器或存储中。如上所述,通常整个参考图像可以存储在外部存储器中。然而,为了进行模板匹配,可以仅加载参考图像的一部分,即窗口内的像素点,并将其用于模板匹配。
提供这种有限制的窗口实现了有限制窗口的利用,并且实际上只加载窗口像素点。为了确保编码器和解码器的类似操作,可以在标准中预定义窗口定义或在码流中指示。特别地,若使用修正运动矢量来形成参考图像,编码器和解码器应该使用相同的方法。
图1示出了编码器100。编码器100包括用于接收视频流的帧或图像的输入图像像素点的输入端和用于生成编码视频码流的输出端。本发明中的术语“帧”用作图像的同义词。然而,应注意的是,在进行隔行扫描的情况下,本发明也适用于场。一般来说,图像包括m乘以n个像素。与图像像素点对应,并且可以包括一个或多个颜色分量。为了简单起见,以下描述均指像素,即亮度像素点。然而,应注意的是,本发明的运动矢量搜索可以应用于包括色度的任何颜色分量或RGB等搜索空间的分量。另外,仅执行一个分量的运动矢量估计并将确定的运动矢量应用于更多(或所有)分量可能是有益的。
输入块(待编码的输入块/待解码的输入块)的大小不一定相同。一个图像可以包括不同大小的块,不同图像的块栅格也可以不同。
在说明性实现中,所述编码器100用于对视频流进行预测、变换、量化和熵编码。变换单元106,量化单元108和熵编码单元170分别执行变换、量化和熵编码操作,以生成编码视频码流作为输出。
视频流可以包括多个帧,其中每个帧被划分为一定大小且经过帧内编码或帧间编码的块。例如,通过帧内预测单元154对视频流的第一帧的块进行帧内编码。帧内编码帧仅使用同一帧内的信息进行编码,使得所述帧能够独立解码,并且可以提供在码流中用于随机访问的入口点。可以通过帧间预测单元144对视频流的其他帧的块进行帧间编码,使用来自先前已编码的帧(参考帧)的信息来减少时间冗余,因此根据参考帧中的块来预测帧间编码帧中的每个块。模式选择单元160用于选择帧的块将由帧内预测单元154还是由帧间预测单元144处理。该模式选择单元160还控制帧内预测或帧间预测的参数。为了能够刷新图像信息,可以在帧间编码帧内提供帧内编码块。此外,可以定期地将仅包含帧内编码块的帧内编码帧插入到视频序列中,以便提供解码的入口点,即解码器无需从先前编码帧中获得信息就可开始解码的点。
帧内估计单元152和帧内预测单元154是执行帧内预测的单元。具体而言,帧内估计单元152也可以基于原始图像的知识推导出预测模式,而帧内预测单元154提供对应的预测值,即用于差编码的像素点使用所选的预测模式进行预测。为了执行空间或时间预测,已编码的块可进一步由反量化单元110和反变换单元112处理。在块重建之后,环路滤波单元120可用于进一步提高解码图像的质量。然后,经过滤波的块形成参考帧,所述参考帧随后存储在解码图像缓冲区130中。编码器侧的这种解码环路(解码器)具有产生与在解码器侧重构的参考图像相同的参考帧的优点。相应地,编码器侧和解码器侧以相应的方式运行。此处术语“重构”是指通过将预测块添加到解码残差块中来获得重构块。
帧间估计单元142从解码图像缓冲区130接收待进行帧间编码的当前帧或图像的块和一个或多个参考帧作为输入。运动估计由帧间估计单元142执行,而运动补偿由帧间预测单元144应用。运动估计用于基于某个成本函数获得运动矢量和参考帧,例如,也使用原始图像(待编码的原始图像/待解码的原始图像)。例如,运动估计单元142可提供初始运动矢量估计。然后,初始运动矢量可以直接以矢量的形式在码流中指示,或者以与在编码器和解码器中相同的方式作为参考基于预定规则构建的候选列表中的运动矢量候选的索引指示。然后,运动补偿推导出当前块的预测值作为参考帧中与当前块共址的块到参考帧中参考块的平移,即运动矢量。帧间预测单元144输出当前块的预测块,其中所述预测块使得成本函数最小化。例如,成本函数可以是当前块(当前待编码块/当前待解码块)与其预测块之间的差,即所述成本函数使得残差块最小化。例如,所述残差块的最小化是基于计算所述候选参考图像中所述当前块与所述候选块的所有像素(像素点)的绝对差值之和(sum ofabsolute differences,SAD)。通常可使用任何其他相似性度量,例如均方误差(meansquare error,MSE)或结构相似性度量(structural similarity metric,SSIM)。
然而,成本函数也可以是编码这种帧间块和/或这种编码产生的失真所需的比特数。因此,码率失真优化过程可用于决定运动矢量选择和/或一般性地决定编码参数,例如是否使用块的帧间预测或帧内预测以及使用哪些设置。
帧内估计单元152和帧内预测单元154接收待帧内编码的当前帧或图像的块以及来自当前帧的已重构区域的一个或多个参考像素点作为输入。然后,帧内预测根据当前帧的参考像素点的函数描述当前帧的当前块的像素。帧内预测单元154输出当前块的预测块,其中所述预测块有利于最小化当前块(当前待编码块/当前待解码块)与其预测块之间的差,即最小化残差块。例如,残差块的最小化可以基于率失真优化流程。特别地,获取预测块作为参考像素点的方向内插。所述方向可以通过率失真优化和/或通过计算上述与帧间预测相关的相似性度量来确定。
帧间估计单元142接收待进行帧间编码的当前帧或图像的块或更通用的格式的图像像素点以及两个或两个以上解码图像231作为输入。然后,所述帧间预测根据参考图像的参考图像像素点的运动矢量来描述当前帧的当前图像像素点。所述帧间预测单元144输出当前图像像素点的一个或多个运动矢量,其中,所述运动矢量指向的所述参考图像像素点有利于最小化当前图像像素点(当前待编码的图像像素点/当前待编码的图像像素点)与其参考图像像素点之间的差,即最小化残差图像像素点。然后,由帧间预测单元144提供当前块的预测值,用于差编码。
当前块与其预测块之间的差(即残差块105)随后由所述变换单元106进行变换。变换系数107由量化单元108进行量化并由熵编码单元170进行熵编码。这样生成的编码图像数据171,即编码视频码流,包括帧内编码块和帧间编码块以及相应的信令(例如,模式指示、运动矢量指示、和/或帧内预测方向)。变换单元106可应用诸如傅里叶或离散余弦变换(DFT/FFT或DCT)等线性变换。这种向空间频域的转换具有以下优点:所得系数107通常在较低频率具有较高值。因此,在有效系数扫描(例如z形)和量化之后,所得值序列在开始和结束时通常具有一些较大的值,其中包含一连串零。这使进一步高效编码成为可能。量化单元108通过降低系数值的分辨率来进行实际有损压缩。然后,熵编码单元170将二进制码字分配给系数值以产生码流。熵编码单元170还对信令信息(图1中未示出)进行编码。
图2示出了视频解码器200。视频解码器200具体包括解码图像缓冲区230、帧间预测单元244和帧内预测单元254,帧内预测单元254是块预测单元。解码图像缓冲区230用于存储从编码视频码流重建的至少一个(用于单向预测)或至少两个(用于双向预测)参考帧。所述参考帧不同于所述编码视频码流的当前帧(当前解码帧)。帧内预测单元254用于生成预测块,预测块是待解码块的估计。帧内预测单元254用于基于从解码图像缓冲区230获得的参考像素点生成该预测块。
解码器200用于解码由视频编码器100生成的编码视频码流,优选地,解码器200和编码器100为待编码/待解码的相应块生成相同的预测值。解码图像缓冲区230、重建块215、缓冲区216和帧内预测单元254的特征与图1中的解码图像缓冲区130、重建块115、缓冲区116和帧内预测单元154的特征类似。
视频解码器200还包括也存在于视频编码器100中的单元,例如反量化单元210、反变换单元212和环路滤波单元220,分别对应视频编码器100的反量化单元110、反变换单元112和环路滤波单元120。
熵解码单元204用于对接收到的编码视频码流进行解码,对应得到经量化残差变换系数209和信令信息。经量化残差变换系数209被反馈到反量化单元210和反变换单元212以生成残差块。残差块与预测块265相加,并且该相加后的和被反馈到环路滤波单元220以获得解码视频。解码视频的帧可以存储在解码图像缓冲区230中,并用作用于帧间预测的解码图像231。
通常,图1和图2的帧内预测单元154和254可以使用来自已编码区域的参考像素点生成需要编码或解码的块的预测信号。
熵解码单元204接收经编码码流171作为其输入。通常,首先解析码流,即从码流中提取信令参数和残差。通常,码流的语法和语义由标准定义,以便编码器和解码器可以以互联的方式工作。如上文背景部分所述,经编码码流不仅仅包括预测残差。在运动补偿预测的情况下,运动矢量指示也在码流中编码并在解码器处解析。运动矢量指示可以通过提供运动矢量的参考图像和运动矢量坐标来给出。到目前为止,已考虑编码完整的运动矢量。但是,也可以仅编码码流中当前运动矢量与前一运动矢量之间的差。该方法允许利用相邻块的运动矢量之间的冗余。
为了有效地编码参考图像,H.265编解码(ITU-T、H265、H系列:Audiovisual andmultimedia systems:High EfficientVideo Coding(视听和多媒体系统:高效视频编码))提供了一个参考图像列表,从而将列表索引分配给相应参考帧。然后,通过在码流中包括相应的分配列表索引,在码流中指示参考帧。此类列表可以在标准中定义,或者在视频的开头或一系列帧中指示。应注意,在H.265中定义了两个参考图图像列表,称为L0和L1。然后,通过在码流中指示列表(L0或L1)并指示与该所需参考图像相关联的该列表中的索引来指示参考图像。提供两个或更多列表可能具有更好的压缩优势。例如,L0可用于单向帧间预测切片和双向帧间预测切片,而L1可仅用于双向帧间预测切片。然而,通常,本发明不限于L0和L1列表的任何内容。
列表L0和L1可以在标准中定义并固定。然而,在视频序列的开始指示编码/解码,可以实现编码/解码的更多灵活性。相应地,编码器可以根据索引为列表L0和L1配置特定参考图像。L0和L1的列表可以具有相同的固定大小。一般来说,可能有两个以上的列表。运动矢量可以直接由参考图像中的坐标指示。或者,如H.265中还规定,可以构建候选运动矢量列表,并且可以传输列表中与特定运动矢量相关联的索引。
当前块的运动矢量通常与当前图像或之前编码图像中的相邻块的运动矢量相关。这是因为相邻块可能对应于具有类似运动的同一运动物体,并且物体的运动不太可能随时间发生突然变化。因此,使用相邻块中的运动矢量作为预测值减小指示的运动矢量差的大小。运动矢量预测值(Motion Vector Predictor,MVPs)通常从空间相邻块或共位图像中的时间相邻块中已编码/已解码的运动矢量推导出。在H.264/AVC中,这通过三个空间相邻运动矢量的分量中值来实现。使用这种方法,不需要预测值的信令。H.264/AVC的所谓时间直接模式只考虑参考图像中共位块的时间MVP。H.264/AVC直接模式也用于推导出除运动矢量之外的其他运动数据。因此,这些模式与HEVC中的块合并概念关系更大。在HEVC中,隐式推导出MVP的方法被一种称为运动矢量竞争的技术所取代,该技术显式地从MVP列表中指示哪个MVP用于运动矢量推导出。HEVC中的可变编码四叉树块结构可导致具有若干个具有运动矢量的相邻块的一个块作为潜在MVP候选。以左相邻块为例,在最坏的情况下,当64×64亮度树块(亮度编码树块/亮度解码树块)不再进一步划分且左亮度树块(亮度编码树块/亮度解码树块)被划分到最大深度时,64×64亮度预测块可以向左具有16个4×4亮度预测块。
引入高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)来修改运动矢量竞争,以适应这种灵活的块结构。在HEVC的发展过程中,最初的AMVP设计被大大简化,以更好地平衡编码效率和实现友好设计。AMVP的最初设计包括来自三类不同预测值的五个MVP:来自空间相邻者的三个运动矢量、三个空间预测值的中位数和来自共位时间相邻块的缩放运动矢量。此外,通过重新排序来将最可能的运动预测值放置在第一位置,并通过删除冗余候选项来确保最小的信令开销,从而修改预测值列表。AMVP候选列表构造的最终设计包括以下两个MVP候选:(a)来自五个空间相邻块的最多两个空间候选MVP;(b)当两个空间候选MVP均不可用或相同时,来自两个时间共位块的一个时间候选MVP;和(c)当空间、时间或两个候选均不可用时,零运动矢量。关于运动矢量确定的详细内容,可在2014年V.Sze等人(编者)在施普林格出版社(Springer)发表的书中找到:High Efficiency VideoCoding(HEVC):Algorithms and Architectures(高效视频编码(HEVC):算法和架构),尤其是第5章,其内容以引用的方式并入本文中。
为了在不进一步增加信令开销的情况下进一步改进运动矢量估计,进一步修正编码器侧推导出的并在码流中提供的运动矢量可能是有益的。可以在解码器处执行运动矢量修正,而无需编码器的辅助。在解码器环路中的编码器可以采用相同的修正以获得对应的运动矢量。在包括在参考图像的整数像素位置和分数像素位置的搜索空间中执行运动矢量修正。例如,分数像素位置可以是半像素位置或四分之一像素位置或其他分数位置。可以通过双线性内插等内插从整数(全)像素位置获得分数像素位置。
在当前块的双向预测中,使用列表L0的相应第一运动矢量和列表L1的相应第二运动矢量获得的两个预测块被组合到单个预测信号,这可以提供比单一预测更好的对原始信号的适应,从而减少残留信息,并可能获得更有效的压缩。
因为在解码器侧,当前块由于正在解码而不可用,所以为了运动矢量修正,使用模板,该模板是当前块的估计值并基于已经处理(即,在编码端编码,在解码端解码)的图像部分进行构建。
首先,在解码器200处接收第一运动矢量MV0的估计值和第二运动矢量MV1的估计值作为输入。在编码器侧100,运动矢量估计值MV0和MV1可以通过块匹配和/或通过搜索与当前块相邻的块(在同一图像中或在相邻图像中)的运动矢量形成的候选列表(例如合并列表)来获得图像。然后有利于将MV0和MV1在码流中指示到解码器侧。然而,应注意的是,一般而言,编码器中的第一确定阶段也可以通过模板匹配执行,这将提供减少信令开销的优点。
在解码器侧200,有利于基于码流中的信息获得运动矢量MV0和MV1。MV0和MV1要么直接指示,要么分别指示,和/或指示运动矢量列表(合并列表)中的索引。然而,本发明不限于在码流中指示运动矢量。相反,运动矢量可以由已经处于第一阶段的模板匹配确定,与编码器的操作相对应。可以基于不同于所述第二修正阶段的搜索空间的搜索空间来执行所述第一阶段的模板匹配(运动矢量推导)。特别地,可以对具有较高分辨率(即搜索位置之间的距离更近)的搜索空间执行修正。
也向解码器提供分别指向MV0和MV1的两个参考图像RefPic0和RefPic1的指示。参考图像作为先前处理(即相应的编码和解码)的结果存储在编码器侧和解码器侧的解码图像缓冲区中。通过搜索选择其中一个参考图像进行运动矢量修正。所述运动矢量确定装置的参考图像选择单元用于选择MV0指向的第一参考图像和MV1指向的第二参考图像。在选择之后,参考图像选择单元确定是第一参考图像或第二参考图像用于进行运动矢量修正。为了进行运动矢量修正,第一参考图像中的搜索空间围绕运动矢量MV0指向的候选位置定义。通过在搜索空间内执行模板匹配并确定绝对差异和(sum of absolute differences,SAD)等的相似性度量,分析搜索区域内的候选搜索空间位置以找到与模板块最相似的块。搜索空间的位置表示模板左上角匹配的位置。如上所述,左上角只是一种约定,搜索空间的任意点,例如中心点,通常可用于表示匹配位置。
根据上述文件JVET-D0029,解码器侧运动矢量修正(decoder-side motionvector refinement,DMVR)将指向两个相应参考图像RefPict0和RefPict1的初始运动矢量MV0和MV1作为输入。这些初始运动矢量用于确定RefPict0和RefPict1中的相应搜索空间。此外,使用运动矢量MV0和MV1,基于MV0和MV1分别指向的(像素点的)块A和块B构建模板,如下所示:
模板=函数(A块,B块)
所述函数可以是结合像素点加权求和的像素点裁剪操作。然后,使用模板在基于相应参考图像0和1中的MV0和MV1确定的搜索空间中执行模板匹配。用于确定相应搜索空间中最佳模板匹配的成本函数是SAD(模板,块candA’),其中块candA’是指横跨MV0给出的位置的搜索空间中的候选MV指向的候选块(候选编码块/候选解码块)。图3示出了确定最佳匹配块A’和所得修正运动矢量MV0’。相应地,使用相同的模板来找到最佳匹配块B’和指向块B’的对应运动矢量MV1’,如图3所示。换句话说,在根据初始运动矢量MV0和MV1指向的块A和块B构建模板之后,利用所述模板在RefPic0和RefPic1上搜索,找到所述修正运动矢量MV0’和MV1’。
运动矢量推导技术有时也被称为帧率上转换(frame rate up-conversion,FRUC)。初始运动矢量MV0和MV1通常可以在码流中指示,以确保编码器和解码器可以使用同一初始点进行运动矢量修正。或者,可以通过提供包括一个或多个初始候选项的初始候选项的列表来获得初始运动矢量。对于每个运动矢量,确定修正运动矢量,最后,选择最小化成本函数的修正运动矢量。
还需要注意的是,本发明不限于上文结合图3所述的模板匹配。图4示出了一种同样适用于单向预测的替代模板匹配。详细内容请见文件JVET-A1001,具体是Jianle Chen等人发表的标题为Algorithm Description ofJoint Exploration Test Model 1(联合探索测试模型1的算法描述)中的第2.4.6节的Pattern matched motion vector derivation(模式匹配的运动矢量推导),访问网址是http://phenix.it-sudparis.eu/jvet/。这种模板匹配方法中的模板被确定为与当前帧中的当前块相邻的像素点。如图3所示,可以采取与当前块的左上边界相邻的已重构像素点,称为“L形模板”。
图5示出了另一种也可使用的运动矢量推导。运动矢量推导过程的输入指示是否应用运动矢量推导的标记。隐晦地说,推导出过程的另一输入是(时间或空间上)相邻的先前编码/重构块的运动矢量。将多个相邻块的运动矢量作为运动矢量推导的初始搜索步骤的候选。该过程的输出分别为MV0’(如果使用双向预测,则也可能是MV1’)和对应的参考图像索引refPict0且可能为refPict1。然后,运动矢量修正阶段包括如上所述的模板匹配。在找到一个(单一预测)或多个(双向预测/多帧预测)运动矢量后,构建当前块的预测值(针对双/多预测,通过加权像素点预测,否则,参考MV修正后指向的像素点)。
本发明不限于上述两种模板匹配方法。作为示例,被称为双向匹配(也在文件JVET-A1001中描述)的第三模板匹配方法也可以用于运动矢量修正,并且本发明同样适用。根据双向匹配,在两个不同的参考图像中搜索两个块之间沿着当前块的运动轨迹的最佳匹配。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0和MV1应与当前图像与两个参考图像之间的时间距离(即TD0和TD1)成比例。在双向匹配中,可以使用SAD(块cand0’,块candl’)等成本函数,其中MV0指向块cand0’,MV1指向块cand1’。
处理电路600在图6中示出。所述处理电路可以包括任何硬件,配置可以通过任何类型的编程或硬件设或两者组合来实现。例如,处理电路可以由单个处理器(例如通用处理器)和实现上述步骤的相应软件组成。另一方面,处理电路可以由专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field-Programmable Gate Array,FPGA)或数字信号处理器(Digital Signal Processor,DSP)等专用硬件来实现。
所述处理电路可以包括一个或多个上述硬件组件,所述硬件组件互连以执行上述运动矢量推导。处理电路600包括计算逻辑,所述计算逻辑实现两种功能:获取初始运动矢量(或使用双向/多帧预测下的多个初始运动矢量)以及模板610;运动矢量修正620。这两个功能可以在同一块硬件上实现,或者可以由单独的硬件单元执行,例如初始运动矢量和模板获取单元610和运动矢量修正单元620。所述处理电路600可以以通信方式连接到外部存储器650,已重构的参考图像像素点存储于所述外部存储器650中。此外,处理电路600还可以包括内部存储器640,所述内部存储器640缓存从外部存储器传送并用于为当前处理的块确定运动矢量的窗口中的像素点。所述处理电路可以作为一个集成电路体现在单个芯片上。
应注意,处理电路可以实现参考图1和图2描述的编码器和/或解码器的其他功能。内部存储器可以是片上存储器,例如高速缓存或线路存储器。有利于在编码器/解码器芯片上实现芯片存储器,以加快计算。由于芯片大小有限,片上存储器通常较小。另一方面,外部存储器尺寸可能很大,但是对外部存储器的访问消耗更多的能量,而且访问速度要慢得多。通常,在计算执行之前,所有必要的信息从外部存储器读取到片上存储器。最坏的情况是外部存储器访问(或设计存储器总线时所需提供的带宽)表示在解码帧或编码单元时外部存储器和芯片之间的存储器传输的最大可能量。存储器(特别是外部存储器)通常只能在预定义的块单元中访问。换句话说,通常不可能访问单个像素,而是必须访问最小单元(例如,8×8)。片上存储器的大小也是一个重要的设计考虑因素,因为片上存储器越大成本越高。
换句话说,上述装置可以是集成电路,进一步包括:嵌入在集成电路中的内部存储器和用于从外部存储器到内部存储器获取位于所述窗口内的整数像素点的存储器访问单元(接口)。
上述术语“预测块”是指要预测的当前块。所述当前块是图像内的块,可以通过将图像细分为大小相等或大小不同的块(例如,通过将编码树单元(coding tree unit,CTU)划分为更小的单元)来获得。所述块可以是正方形或一般的矩形,因为这些是当前编码器/解码器中也使用的典型形状。然而,本发明不受块的任何大小/形状的限制。
包括处理电路的装置可以是编码器或解码器,甚至可以是包括此类编码器或解码器的装置,例如记录设备和/或播放设备。
分数像素点位置是通过重建如图1所示进行编码的参考图像获得的真实图像像素点位置之间的位置。因此,分像素点位置必须基于最接近的整数像素位置通过内插获得。内插滤波的详细内容可以在2014年V.Sze等人在施普林格出版社出版的High EfficiencyVideo Coding(高效视频编码)(这本书的第5.3节的Fractional Sample Interpolation(分数像素点内插)分数中找到。
内插滤波通常采用不同的滤波器以产生不同的分数像素(像素点)位置。在H.265视频压缩标准中,应用以下一维可分离滤波器来生成四分之一像素和半像素位置的示例:
从上表中可以看出,内插滤波需要分数像素位置周围的几个像素点,对应于滤波器抽头(表中系数的数量)。使用上述示例滤波器以生成半像素位置,需要左/上和右/下的4个整数像素点。应当注意的是,内插滤波器对于四分之一像素像素点位置(为7抽头)的长度与对于半像素像素点位置(8抽头)的长度是不同的。在本申请中,术语“像素点”和“像素”可互换使用,表示给定时间点(一个或多个颜色分量中)的图像像素点。原则上,像素点是一个强度值。
在本发明的一些实施例中,预定义抽头大小的内插滤波器仅在由所述搜索空间中的模板匹配的可访问的整数像素点给定的窗口内访问整数像素点。窗口可能包含比实际用于特定图像块计算更多的像素点。这是因为修正搜索操作通常使用快速搜索方法(而不是暴力搜索方法)来实现,根据这个事实,一些像素点不根据搜索操作的渐进程度进行评估。因此,每个图像块的模板匹配迭代次数以及用于修正搜索操作的计算的像素点可能发生变化。
图7示出了窗口的图像块(coding block)和对应的像素点。应注意,图7中所示的像素点是参考图像像素点,这里的图像块实际上是当前帧中与当前块的大小和位置对应的块,其中,将在参考图像中推导出运动矢量。因此,实际上,图7中的图像块实际上是与搜索预测值的块共位的块。然而,出于简单的原因,该块在下文中称为“图像块(codingblock)”。
在本示例中,未修正的运动矢量MV0指向一个整数像素点位置。运动矢量修正搜索粒度为1个整数像素点,即由于起始点为整数像素点,因此只搜索整数像素点点。在本示例中,在逐渐发展的搜索空间中执行搜索。这意味着搜索空间在每次迭代中都通过添加新的搜索位置而向前推进,具体取决于先前测试位置的最佳成本函数方向。
图8中以简化的方式说明了这种方法。在图8中,初始运动矢量指向中心点810。搜索空间是围绕初始运动矢量位置逐步构建的。在第一步中,测试与初始运动矢量所指向的位置810以及初始运动矢量所指向的位置810直接相邻的上、下、左和右的四个位置。根据在测试的五个点中产生最低成本函数的方向,将其他待测试位置添加到搜索空间中。在这个例子中,最低成本函数可以在正确的点上看到,所以在第二步中,搜索空间在水平右方向上又扩展了三个点。在第二步中,最低成本函数可以在右边点(相对于第一步的最低成本点)看到,从而使得搜索空间在水平右方向上又扩展三个点。在第三步中,相对于步骤二的最低成本点,在右边点再次观察到最低成本函数,从而使得搜索空间在水平右方向上再扩展三个点。根据图8中的示例,按此顺序向上、向右方向执行另外三个步骤。在该示例中,每次迭代使用菱形模式(由5个搜索点组成),并且扩展搜索空间,以便在每个步骤中完成丢失的搜索点。
在搜索空间确定的每次迭代中,搜索空间可增长一个或多个整数像素点位置。现在回到图7,在该示例中,最大搜索迭代次数为4。由于最大次数的4次迭代是可能的,因此需要从存储器中读取在左侧描述的所有像素点以执行搜索操作,避免搜索空间的逐渐发展转到左侧。同样地,需要4个样品延伸到上方。因此,搜索空间在两个方向(从左到右和从上到下)中都得到了扩展,因为修正MV可以在两个方向中的任意一个方向上移动,并且硬件实施方案要求在应用修正搜索之前从外部存储器中获取可能需要的所有像素点。如果搜索空间在右下方向发展,则需要扩展4个其他像素点,因为与对应于图像块(coding block)大小的模板匹配的模板将需要访问这些像素点中的一些像素点。此外,角落像素点(例如,右上方)也必须从存储器中获取,因为硬件实现通常不能获取不规则形状(矩形访问更可行)。
应注意,上述迭代搜索空间发展仅是示例性的,每次迭代中用于扩展搜索空间的规则和点数可能不同,即用不同的方式指定。
图8还显示了由于上述外部存储器访问规则而可能发生的场景。从外部存储器中获取的像素点数量比计算步骤中实际使用的像素点数量多得多。假设这里的模板只是一个大的像素点(出于简单的原因),白色圆圈代表从外部存储器中读取的像素点和实际使用的带阴影的像素点。然而,如果对外部存储器的访问次数要保持在较低水平,则这种冗余是必要的,因为当开始处理当前块时,实际需要的像素点尚未获知。
应注意,例如,搜索空间也可以以不同方式定义为位于初始运动矢量所指向的位置处的稳定形状。所述形状可以是方形、矩形、菱形等任意形状。
图9示出了搜索空间还可以包括分数像素点的示例。在图7和图8中,对整数像素点执行运动矢量搜索,从而得到访问窗口中包括的较大的实线点指示的位置。如果现在对具有半像素分辨率(较小的实线点)的像素点执行搜索,假设内插滤波器是对称的并且具有八个抽头,为了生成描述在左手边的分数像素点,还需要从存储器中读取另外三列像素点。此外,由于搜索操作是对称的(可以迭代地向左和右移动),因此必须在左侧(扩展3列像素)应用相同操作,以便分数像素可以位于窗口的左侧。
由于内插滤波,需从存储器中读取的像素点数量进一步增加,虚线表示的内容现在还包括表示由于分数内插而添加的位置的虚线圆。类似地,如果还允许搜索垂直方向上的半像素位置,则还需要在垂直方向上(图9的示例中未示出)在上方和下方扩展要从存储访问的像素点的窗口。
存储访问窗口定义为矩形,所述窗口包含需要从存储器中读取的所有像素点,以便执行图像块(coding block)的运动矢量搜索。存储访问的窗口不仅包括所需的实际像素点,还包括在运动矢量搜索操作期间可能访问的所有剩余像素点。在图9的示例中,运动矢量搜索移动到右侧。但是,它也可能向左移动,这是事先不知道的。因此,为了不多次访问外部存储器,存储访问窗口(或访问窗口)包括相应处理可访问的所有像素点。
为了实现此目的,本发明对位于存储访问窗口之外的像素点进行填充,例如,如果需要这些像素点来内插分数像素点。
提供替换像素点(填充像素点)在与也包括分数像素点的搜索空间上的模板匹配方面可能进一步有利。换句话说,图像块的搜索空间可以包括至少一个分数像素点位置,所述至少一个分数像素点位置的值是采用具有预定义抽头大小的滤波器的内插滤波得到的。所述内插滤波使用来自所述窗口的像素点位置值和所述至少一个替换值来获得所述至少一个分数像素点位置值。
图10示出了用于运动矢量修正的存储访问的窗口。该窗口围绕中心点1010跨接,该中心点1010是所述初始运动矢量所指向的位置。此外,分数位置1020也属于搜索空间。然而,分数位置1020将由6抽头滤波器使用分数位置左侧的3个整数像素点位置和分数位置右侧的3个整数像素点位置进行内插。由于分数位置1020位于与整数像素点位置的直线上,因此可以将一维滤波器应用于内插,例如,如上文结合图9描述的示例中所示。如图10所示,为了对所述分数像素点1020进行内插,需要位于所述窗口之外的其他两个像素点位置1030。为了避免从外部存储器额外加载这些像素点,根据本发明,将窗口外位置1030的值替换为基于窗口内的像素点获得的值。
图10示出了分数像素点位置1020,所述分数像素点位置1020位于两个整数像素点位置的中间,即处于半像素(half-pixel)位置。然而,本发明同样可以应用于其它分数位置,例如四分之一或1/8位置。此外,像素点位置1020位于与整数像素点位置的行对应的水平线上,以便可以使用水平一维滤波进行内插。然而,本发明不限于此类分数位置。相反,分数位置可以位于与整数像素点位置的列对应的垂直线上,以便可以使用垂直一维滤波进行内插。此外,分数位置不必与整数像素点位于同一像素线上。在这种情况下,可以使用二维滤波对此类像素点进行内插。此类二维滤波可以与垂直和水平一维滤波分开。
各种分数位置的示例如图12所示。特别地,分数位置1是可以使用水平和垂直滤波的内插位置,因为所述像素点不位于整数像素点位置的行和列线上。位置2为仅使用水平滤波的内插位置,位置6为仅使用垂直滤波的内插位置。图12中所示的所有分数位置都可以使用窗口中的整数位置获得。
用于存储访问的窗口可以以各种方式定义。图13示出了将存储访问窗口定义为图像块的左/右或上/下(对应于由初始运动矢量给定的图像块的位置)上的扩展EXT的示例。扩展量可取决于图像块(coding block)的大小和形状。在图13中,扩展为在每个方向(上、下、左、右)上各有4个像素点长。然而,应注意的是,EXT也可以针对不同方向采用不同的值,取决于块大小(在垂直和水平方向上具有不同的大小)和/或搜索空间形式和大小。
例如,根据示例,将窗口定义为相对于图像块初始运动矢量的N个整数像素点列和M个整数像素点行,其中N和M为非零整数值。在图13中,N和M被指示,但具有相同的大小。如上所述,N和M可以具有不同的大小。其中,N和M为整数,且至少有一个为非零。取参数N和M以及模板形式和大小就可以确定访问窗口的大小。特别地,如果模板具有T1行和T2列,则存储访问窗口的大小可以计算为(N+T1+N)行和(M+T2+M)列。这是因为搜索可以向左或向右搜索N个像素点,从而水平搜索2N个像素点,向上或向下搜索M个像素点,从而垂直搜索2M个像素点。同时,模板可以与2N×2M个像素点位置中的任意一个位置上的T1×T2个像素点进行匹配。
另一方面,对于参考图7和图8描述的搜索空间构建的特定方法,存储访问窗口可以根据最大修正迭代次数(搜索空间构建迭代)和迭代步长(在每次迭代中可用的最大像素点距离)来定义,所述最大迭代次数和迭代步长之后可以转换为左侧、右侧、上方、下方的最大位移量。因此,存储访问窗口被定义为每个方向上的最大位移。例如,4次迭代,其中每次迭代可以最多推进一个整数像素点位置的搜索空间,其结果EXT=4。
换言之,根据此示例,所述处理电路用于通过在搜索空间中与所述模板进行模板匹配来确定初始运动矢量修正,所述搜索空间在最近一次迭代中沿所述搜索空间的一个(或多个)最佳匹配位置给定的方向迭代扩展,所述窗口由预定义的最大迭代次数定义。
应注意,通常,本发明不限于搜索空间的任何特定形状或形式或种类的确定。在另一个示例中,搜索空间为窗口的矩形子窗口,或者可以等于窗口。存储访问窗口的定义可以相关,以便可能将相应的信令参数包括到码流中(例如参数EXT或参数N和M)。然而,存储访问窗口大小也可以在标准中定义,或者基于其它参数(编码/解码参数)(例如,模板大小、图像块大小、图像分辨率等)推导。返回图10,根据一个实施例,围绕未修正的运动矢量1010所指向的位置定义用于修正的存储访问窗口。所述窗口标识需要从存储访问的最大像素像素点数量,以便执行运动矢量修正搜索。这里的搜索空间对应于访问窗口。换句话说,为了简单起见,在这个示例中,模板的大小被认为1×1,但是在实际中,通常可以更大。存储访问窗口通常定义为图像块周围的扩展。在这个示例中,所述窗口为来自左侧/右侧的4个像素点和来自上方/下方的4个像素点。如果在模板匹配期间当前测试的搜索空间位置需要来自存储访问窗口之外的像素点,则通过填充获得重建图像块所需的像素点。图10中分数位置1020的情况就如上所述。如果模板匹配要在此位置或使用该位置执行,则必须使用位于所述窗口之外的附加填充位置1030对其进行内插。
例如,可以使用以下方法之一生成填充像素点:
-最近像素点复制;和
-沿内插滤波轴进行镜面映射。
特别地,最近像素点复制是指将替换值确定为等于最近的已访问的整数像素点位置上的值的方法。例如,在图10中,两个缺失位置值1030将被替换成与待内插的分数位置1020的右侧相邻的像素点的值。然而,应注意的是,此方法仅是示例,本发明不限于仅复制相邻者。或者,可以使用几个最近的像素点位置来内插缺失的像素点1030。例如,可以使用离缺失像素点最近的边界上的三个像素点通过加权平均来对缺失像素点进行内插,权重与三个像素点与缺失像素点的距离成反比。
镜面映射是指一种方法,根据该方法,通过将对应的已访问的整数像素点位置的值关于内插滤波器的轴通过镜面映射的方式确定替换值。例如,在图10中,两个缺失像素点1030将替换为分数位置1020左侧的像素点的值。具体而言,分数位置1020右侧的第二像素点替换为分数位置1020左侧的第二位置的值,而分数位置1020右侧的第三像素点替换为分数位置1020左侧的第三位置的值。
应注意,还可以应用上述两种方法的组合,其中,缺失像素点是镜像像素点和最近像素点的函数。
根据一实施例,所述窗口是由所述搜索空间内的整数像素点位置上的模板匹配可访问的所有整数像素点位置组成的。例如,这是图10的示例的情况,在该示例中,所述窗口外的附加像素点仅在非整数、分数像素点位置的模板匹配中是必需的。换句话说,在图10中,在上述示例中,要搜索的半像素坐标需要在存储访问窗口之外的像素点。因此,应用填充操作来生成不可用像素点。然而,本发明并不限于此。
图11示出了一种替代方法。在该方法中,所述窗口不包括在所述搜索空间内的整数像素点位置上的模板匹配可访问的所有整数像素点位置。在先前的示例中,为简单起见,将图像块(coding block)大小描述为1×1。在图11中,整数像素点的大小是4×4。在此示例中,如果搜索坐标(待计算模板匹配的位置)指向整数像素点,则在块中的一些像素点位于存储访问窗口之外的情况下仍然可以进行填充。这种方法可以进一步限制窗口大小。
具体如下:图11示出了窗口1120。所述窗口1120包括一些可访问像素点。所述初始运动矢量指向标记图像块(coding block)左上角的位置。在这里,搜索空间可被视为等同于所述窗口。然而,应注意的是,搜索空间通常需要小于所述窗口,所述窗口才可用,因为如果所述模板大于1×1整数像素点,则除了搜索空间中包括的像素点之外,还需要其他像素点来执行所述模板匹配。然而,如果所述搜索空间定义了所述窗口的大小,则替代地,可以填充所述缺失像素点。图11显示了窗口的第2行第10列中的示例性搜索位置。与一个4×4整数像素点大模板进行模板匹配也需要窗口外的像素。因此,填充这些样品,即用根据窗内像素点确定或计算的数值来代替。可以应用上述填充方法,例如最近相邻像素点或通过镜面映射的方式。
所述窗口由其相对于以下内容的垂直和/或水平大小定义:
-搜索空间,或者
-与所述图像块一样大小且位于所述初始运动矢量位置的块,或者
-所述初始运动矢量位置。
窗口定义的示例如图13所示,并在上文中进行了描述。这对应于基于位于初始运动矢量位置上的图像块的大小确定窗口大小。或者,窗口大小可以相对于初始矢量位置由x和y两个方向中的一个方向或两个方向的大小来定义。例如,可以将窗口定义为位于初始运动矢量所指向的位置周围,并将A个整数像素点扩展到上、下、左、右方向中的每个方向。或者,所述窗口可以将A个整数像素点分别向左和向右扩展,B个整数像素点分别向上和向下扩展其他定义是有可能的。
应注意,上述示例是针对半像素内插的。然而,本发明并不限于此。通常,可以使用1/4、1/8等任何分数位置,即使用对应的内插滤波器进行内插。
参考图6描述的处理电路可以在如图1和图2所示的编码器和/或解码器中使用。
特别地,可以提供一种用于将分割为图像块的视频图像编码为码流的编码装置,其特征在于,所述编码装置包括:如上所述的用于确定图像块的运动矢量的装置,所述装置包括处理电路;以及编码电路,用于对所述图像块和基于所述确定的运动矢量而确定的位置上的预测块给定的预测值之间的差值进行编码,并用于生成包括所述已编码的差值和初始运动矢量的码流。
上述参考图1所述的编码器的其它单元和功能也可以在处理电路中提供或实现。
相应地,一种可以用于对分割为图像块的码流视频图像进行解码的解码装置,其特征在于,所述解码装置包括:解析单元,用于从所述码流中解析初始运动矢量和差值,其中所述差值为所述图像块和由修正运动矢量指定的位置上的预测块给定的预测值之间的差值;上述用于确定所述图像块的所述修正运动矢量的装置,所述装置包括处理电路;以及用于重建所述图像块的解码电路,所述图像块是所述已解析的差值和由所述修正运动矢量指定的位置上的所述预测块给定的所述预测值之间的总和。例如,可以通过修正运动矢量的位置直接给定的预测值。然而,可能存在获取当前图像块的运动矢量的其他处理步骤,这些处理步骤可以进一步改变运动矢量(例如,滤波、裁剪、进一步修正等)。
上述参考图2所述的解码器的其它单元和功能也可以在处理电路中提供或实现。
此外,从包括处理电路以执行运动矢量修正的装置的角度描述了本发明的实施例。然而,本发明并不限于此,还提供了相应的方法,该方法包括与执行上述处理电路相对应的处理步骤。
抽头与滤波器系数相对应。抽头大小与过滤顺序相对应。在此,假设滤波器为线性滤波器。在一些示例中,滤波器可以是对称的,即具有对称系数。然而,本发明不限于对称滤波器或线性滤波器或任何种类的滤波器。通常,可以基于相邻像素点以任何方式获得分数位置。
根据一实施例的方法,使用图14中示出的以下步骤确定图像块的运动矢量。在步骤1410中,获取图像块的初始运动矢量和模板,随后通过在搜索空间中与所述模板进行模板匹配来确定初始运动矢量的修正。所述搜索空间位于由所述初始运动矢量给定的位置上。存储访问窗口是在1420中确定的。应注意,这不必显式地执行。存储访问窗口可以是预定义和已知的。因此,本步骤用于说明已知存储访问窗口大小的知识。然后执行步骤1430到1490进行模板匹配。
所述模板匹配包括:访问预定窗口内的整数像素点位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置;以及将位于所述窗口之外的至少一个整数像素点位置替换为替换值,其中所述替换值为基于所述窗口中的至少一个像素点而得到的,使用已访问的整数像素点位置的值以及替换值执行模板匹配。如图14所示,对搜索空间中的所有位置进行模板匹配。在步骤1430中,测试当前位置上的模板匹配是否需要一个或几个位于存储访问窗口之外的像素点。如果确定(在步骤1430中是),则在步骤1440中为所述像素点或所述窗口外的像素点执行如上所述的填充。该步骤之后,在步骤1450中使用填充像素点在当前位置执行模板匹配(即搜索)。或者,如果所有必要的像素点均未超出所述窗口(步骤1430中的否),在步骤1450中使用所述可用像素点在当前位置执行所述模板匹配(即搜索)。如果当前位置是待测试搜索空间中的最后一个位置(步骤1460中的是),则结束模板匹配。否则(步骤1460中的否),则在步骤1470中获得下一个位置,并且如上文所述,在步骤1430中继续对新位置进行模板匹配。
在模板匹配结束后,识别最佳匹配位置(例如,作为成本最低的存储位置)。
此外,提供了一种用于将分割为图像块的视频图像编码为码流的编码方法,其特征在于,所述编码方法包括根据上述方法中的任一种方法确定图像块的运动矢量的步骤;用于对所述图像块和基于所述确定的运动矢量而确定的位置上的预测块给定的预测值之间的差值进行编码,并用于生成包括所述已编码的差值和初始运动矢量的码流。
所述编码方法还可以包括结合图1中块的功能描述的步骤。
再进一步地,提供了一种用于对分割为图像块的码流视频图像进行解码的解码方法,其特征在于,所述解码方法包括:从所述码流中解析初始运动矢量和差值,其中所述差值为所述图像块和由修正运动矢量指定的位置上的预测块给定的预测值之间的差值;根据上述提及的任一种方法用于所述图像块确定所述修正运动矢量;以及重建所述图像块,所述图像块是所述已解析的差值和由所述修正运动矢量指定的位置上的所述预测块给定的所述预测值之间的总和。
所述解码方法还可以包括结合图2中块的功能描述的步骤。
然而,应注意,图1和图2并不限制本发明。图1和图2仅提供本发明在现有编码器和/或解码器内的实施方案的非限制性示例。
如上所述的使用像素点填充的运动矢量确定可以作为视频信号(运动图像)的编码和/或解码的一部分实现。然而,运动矢量确定还可以用于图像处理中的其他目的,例如移动检测、移动分析等,不限仅用于编码/解码。
运动矢量确定可以作为装置实现。这种装置可以是软件和硬件的组合。例如,运动矢量确定可以由通用处理器、数字信号处理器(Digital signal processor,DSP)、现场可编程门阵列(field programmable gate array,FPGA)等芯片执行。然而,本发明不限于在可编程硬件上的实现。它可以在专用集成电路(application-specific integratedcircuit,ASIC)上实现,或者通过上述硬件组件的组合实现。
运动矢量确定也可以通过存储在计算机可读介质上的程序指令来实现。程序在执行时,使计算机执行上述方法的步骤。所述计算机可读介质可以是存储所述程序的任何介质,例如DVD、CD、USB(闪存)驱动器、硬盘、通过网络可用的服务器存储等。
所述编码器和/或解码器可以在各种设备中实现,包括电视、机顶盒、PC、平板电脑、智能手机等,即任何录制、编码、转码、解码或播放设备。它可以是实现方法步骤的软件或应用程序,并且存储在/运行在如上述电子设备中包括的处理器上。
概括而言,本发明涉及采用模板匹配确定运动矢量。特别地,获取所述图像块的初始运动矢量和模板,然后,通过在搜索空间中与所述模板进行模板匹配确定所述初始运动矢量的修正。所述搜索空间位于由所述初始运动矢量给定的位置上。所述模板匹配包括:访问预定窗口内的整数像素点位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置,将位于所述窗口之外的至少一个整数像素点位置替换为替换值,其中替换值是基于所述窗口中的至少一个像素点而得到的,并使用所述已访问的整数像素点位置值和替换值执行所述模板匹配。
Claims (19)
1.一种用于确定图像块的运动矢量的装置,其特征在于,所述装置包括处理电路,用于:
获取所述图像块的初始运动矢量和模板;
通过在搜索空间中与所述模板进行模板匹配确定所述初始运动矢量的修正,
-其中,所述搜索空间位于由所述初始运动矢量给定的位置上;
-所述模板匹配包括:
ο访问预定窗口内的整数像素点位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置;
ο将位于所述窗口之外的至少一个整数像素点位置替换为替换值,其中所述替换值是基于所述窗口中的至少一个像素点而得到的;以及
ο使用所述已访问的整数像素点位置的值以及所述替换值执行所述模板匹配。
2.根据权利要求1所述的装置,其特征在于,
所述搜索空间包括至少一个分数像素点位置,所述至少一个分数像素点位置的值是采用预定义抽头大小的滤波器通过内插滤波得到的;以及
所述内插滤波使用所述已访问的整数像素点位置的值和所述至少一个替换值来获得所述至少一个分数像素点位置的值。
3.根据权利要求2所述的装置,其特征在于,所述替换值是通过将对应的所述已访问的整数像素点位置的值相对于所述内插滤波器的轴通过镜面映射的方式来确定。
4.根据权利要求2至3中任一项所述的装置,其特征在于,所述内插滤波是一维滤波或可分离二维滤波。
5.根据权利要求2至4中任一项所述的装置,其特征在于,所述窗口是由所述搜索空间内的整数像素点位置上的模板匹配可访问的所有整数像素点位置组成的。
6.根据权利要求1至4中任一项所述的装置,其特征在于,所述窗口由其相对于以下至少一项的垂直和/或水平大小定义:
-搜索空间;
-与所述图像块一样大小且位于所述初始运动矢量位置上的块;或者
-所述初始运动矢量位置。
7.根据权利要求1、2或4至6中任一项所述的装置,其特征在于,所述替换值等于所述已访问的整数像素点位置中最近的一个位置的值。
8.一种用于将分割为图像块的视频图像编码为码流的编码装置,其特征在于,所述编码装置包括:
根据权利要求1至7中任一项所述的用于确定图像块的运动矢量的装置;
编码电路,用于对所述图像块和基于所述确定的运动矢量而确定的位置上的预测块给定的预测值之间的差值进行编码,并用于生成包括所述已编码的差值和初始运动矢量的码流。
9.一种用于对分割为图像块的码流视频图像进行解码的解码装置,其特征在于,所述解码装置包括:
解析单元,用于从所述码流中解析初始运动矢量和差值,其中所述差值为所述图像块和由修正运动矢量指定的位置上的预测块给定的预测值之间的差值;
根据权利要求1至7中任一项所述的用于确定所述图像块的所述修正运动矢量的装置;以及
用于重建所述图像块的解码电路,所述图像块是所述已解析的差值和由所述修正运动矢量指定的位置上的所述预测块给定的所述预测值之间的总和。
10.一种用于确定图像块的运动矢量的方法,其特征在于,包括以下步骤:
获取所述图像块的初始运动矢量和模板;
通过在搜索空间中与所述模板进行模板匹配确定所述初始运动矢量的修正,
-其中,所述搜索空间位于由所述初始运动矢量给定的位置上;
-所述模板匹配包括:
ο访问预定窗口内的整数像素点位置,所述预定窗口包括所述搜索空间和所述模板匹配可访问的其他整数像素点位置;
ο将位于所述窗口之外的至少一个整数像素点位置替换为替换值,所述替换值是基于所述窗口中的至少一个像素点而得到的;以及
ο使用所述已访问的整数像素点位置的值以及所述替换值执行所述模板匹配。
11.根据权利要求10所述的方法,其特征在于,
所述搜索空间包括至少一个分数像素点位置,所述至少一个分数像素点位置的值是采用预定义抽头大小的滤波器通过内插滤波得到的;以及
所述内插滤波使用所述已访问的整数像素点位置的值和所述至少一个替换值来获得所述至少一个分数像素点位置的值。
12.根据权利要求11所述的方法,其特征在于,所述替换值是通过将对应的所述已访问的整数像素点位置的值相对于所述内插滤波器的轴通过镜面映射的方式来确定。
13.根据权利要求10至12中任一项所述的方法,其特征在于,所述内插滤波是一维滤波或可分离二维滤波。
14.根据权利要求10至13中任一项所述的方法,其特征在于,所述窗口是由所述搜索空间内的整数像素点位置上的模板匹配可访问的所有整数像素点位置组成的。
15.根据权利要求10至14中任一项所述的方法,其特征在于,所述窗口由其相对于以下至少一项的垂直和/或水平大小定义:
-搜索空间;
-与所述图像块一样大小且位于所述初始运动矢量位置上的块;以及
-所述初始运动矢量位置。
16.根据权利要求10、11或14至15中任一项所述的方法,其特征在于,所述替换值等于所述已访问的整数像素点位置中最近的一个位置的值。
17.一种用于将分割为图像块的视频图像编码为码流的编码方法,其特征在于,所述编码方法包括:
根据权利要求10至16中任一项所述的确定图像块的运动矢量;
用于对所述图像块和基于所述确定的运动矢量而确定的位置上的预测块给定的预测值之间的差值进行编码,并用于生成包括所述已编码的差值和初始运动矢量的码流。
18.一种用于对分割为图像块的码流视频图像进行解码的解码方法,其特征在于,所述解码方法包括:
从所述码流中解析初始运动矢量和差值,其中所述差值为图像块和由修正运动矢量指定的位置上的预测块给定的预测值之间的差值;
根据权利要求10至16中任一项所述的确定所述图像块的所述修正运动矢量;以及
重建所述图像块,所述图像块是所述已解析的差值和由所述修正运动矢量指定的位置上的所述预测块给定的所述预测值之间的总和。
19.一种包含指令的计算机可读介质,当其在处理器上执行时,使所述处理器执行根据权利要求10至18中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2017/075712 WO2019072370A1 (en) | 2017-10-09 | 2017-10-09 | MEMORY ACCESS WINDOW AND FILLING FOR VECTOR MOVEMENT REFINEMENT |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111201795A true CN111201795A (zh) | 2020-05-26 |
CN111201795B CN111201795B (zh) | 2022-07-26 |
Family
ID=60080794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780095727.4A Active CN111201795B (zh) | 2017-10-09 | 2017-10-09 | 存储访问窗口和用于运动矢量修正的填充 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11153595B2 (zh) |
EP (1) | EP3682636B1 (zh) |
CN (1) | CN111201795B (zh) |
WO (1) | WO2019072370A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117336504A (zh) * | 2017-12-31 | 2024-01-02 | 华为技术有限公司 | 图像预测方法、装置以及编解码器 |
EP4472207A3 (en) | 2018-06-28 | 2025-03-12 | Huawei Technologies Co., Ltd. | Memory access window and padding for motion vector refinement and motion compensation |
WO2021036977A1 (en) * | 2019-08-23 | 2021-03-04 | Beijing Bytedance Network Technology Co., Ltd. | Clipping in reference picture resampling |
CN112738517B (zh) * | 2019-10-14 | 2022-03-01 | 珠海格力电器股份有限公司 | 运动估计搜索方法、装置、设备及存储介质 |
CN120111249A (zh) | 2019-10-23 | 2025-06-06 | 北京字节跳动网络技术有限公司 | 用于多编解码工具的计算 |
WO2021078177A1 (en) | 2019-10-23 | 2021-04-29 | Beijing Bytedance Network Technology Co., Ltd. | Signaling for reference picture resampling |
CN112135127B (zh) * | 2019-11-05 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置、设备及机器可读存储介质 |
CN113452921A (zh) * | 2020-03-26 | 2021-09-28 | 华为技术有限公司 | 图像处理方法和电子设备 |
US12177475B2 (en) * | 2021-01-29 | 2024-12-24 | Qualcomm Incorporated | Model-based motion vector difference derivation and template matching prediction for video coding |
US12114009B2 (en) * | 2021-09-22 | 2024-10-08 | Tencent America LLC | Method and apparatus for adaptive reordering for reference frames |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691130A (zh) * | 2004-04-20 | 2005-11-02 | 索尼株式会社 | 图像处理设备、方法和程序 |
KR20060029540A (ko) * | 2004-10-02 | 2006-04-06 | 삼성전자주식회사 | 트랜스코딩을 위한 움직임벡터 정밀화 기반 출력움직임벡터 추정방법 및 이를 이용한 트랜스코더 |
CN102158709A (zh) * | 2011-05-27 | 2011-08-17 | 山东大学 | 一种解码端可推导的运动补偿预测方法 |
CN102177716A (zh) * | 2008-10-09 | 2011-09-07 | 株式会社Ntt都科摩 | 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序、动态图像解码程序、动态图像处理系统以及动态图像处理方法 |
CN102215386A (zh) * | 2010-04-09 | 2011-10-12 | 华为技术有限公司 | 视频图像块处理方法及装置 |
CN102427530A (zh) * | 2011-10-11 | 2012-04-25 | 北京工业大学 | 帧内预测方法 |
CN106878737A (zh) * | 2017-03-02 | 2017-06-20 | 西安电子科技大学 | 高效视频编码中的运动估计加速方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10958927B2 (en) * | 2015-03-27 | 2021-03-23 | Qualcomm Incorporated | Motion information derivation mode determination in video coding |
MX382830B (es) * | 2015-09-02 | 2025-03-13 | Hfi Innovation Inc | Método y aparato de derivación de movimiento de lado de decodificador para codificación de vídeo. |
US10701366B2 (en) * | 2017-02-21 | 2020-06-30 | Qualcomm Incorporated | Deriving motion vector information at a video decoder |
US10595035B2 (en) * | 2017-03-22 | 2020-03-17 | Qualcomm Incorporated | Constraining motion vector information derived by decoder-side motion vector derivation |
CN117544785A (zh) * | 2017-08-29 | 2024-02-09 | 株式会社Kt | 视频解码和编码方法及用于存储压缩视频数据的装置 |
US11265551B2 (en) * | 2018-01-18 | 2022-03-01 | Qualcomm Incorporated | Decoder-side motion vector derivation |
EP4472207A3 (en) * | 2018-06-28 | 2025-03-12 | Huawei Technologies Co., Ltd. | Memory access window and padding for motion vector refinement and motion compensation |
-
2017
- 2017-10-09 WO PCT/EP2017/075712 patent/WO2019072370A1/en unknown
- 2017-10-09 EP EP17783459.5A patent/EP3682636B1/en active Active
- 2017-10-09 CN CN201780095727.4A patent/CN111201795B/zh active Active
-
2020
- 2020-04-09 US US16/844,901 patent/US11153595B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691130A (zh) * | 2004-04-20 | 2005-11-02 | 索尼株式会社 | 图像处理设备、方法和程序 |
KR20060029540A (ko) * | 2004-10-02 | 2006-04-06 | 삼성전자주식회사 | 트랜스코딩을 위한 움직임벡터 정밀화 기반 출력움직임벡터 추정방법 및 이를 이용한 트랜스코더 |
CN102177716A (zh) * | 2008-10-09 | 2011-09-07 | 株式会社Ntt都科摩 | 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序、动态图像解码程序、动态图像处理系统以及动态图像处理方法 |
CN102215386A (zh) * | 2010-04-09 | 2011-10-12 | 华为技术有限公司 | 视频图像块处理方法及装置 |
CN102158709A (zh) * | 2011-05-27 | 2011-08-17 | 山东大学 | 一种解码端可推导的运动补偿预测方法 |
CN102427530A (zh) * | 2011-10-11 | 2012-04-25 | 北京工业大学 | 帧内预测方法 |
CN106878737A (zh) * | 2017-03-02 | 2017-06-20 | 西安电子科技大学 | 高效视频编码中的运动估计加速方法 |
Non-Patent Citations (2)
Title |
---|
JIANLE CHEN: "Algorithm Description of Joint Exploration Test Model 7 (JEM 7)", 《JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 7TH MEETING: TORINO, IT, 13–21 JULY 2017》 * |
JIANLE CHEN: "Algorithm Description of Joint Exploration Test Model 7 (JEM 7)", 《JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 7TH MEETING: TORINO, IT, 13–21 JULY 2017》, 19 August 2017 (2017-08-19), pages 2 - 2 * |
Also Published As
Publication number | Publication date |
---|---|
US11153595B2 (en) | 2021-10-19 |
CN111201795B (zh) | 2022-07-26 |
WO2019072370A1 (en) | 2019-04-18 |
US20200236389A1 (en) | 2020-07-23 |
EP3682636A1 (en) | 2020-07-22 |
EP3682636B1 (en) | 2023-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11363292B2 (en) | Memory access window and padding for motion vector refinement and motion compensation | |
US11245916B2 (en) | Memory access window for sub prediction block motion vector derivation | |
US20230239489A1 (en) | Limited memory access window for motion vector refinement | |
US11153595B2 (en) | Memory access window and padding for motion vector refinement | |
CN111201792B (zh) | 指向分数像素点位置的运动矢量的修正运动矢量 |
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 |