CN116848843A - 可切换的密集运动向量场插值 - Google Patents

可切换的密集运动向量场插值 Download PDF

Info

Publication number
CN116848843A
CN116848843A CN202180093203.8A CN202180093203A CN116848843A CN 116848843 A CN116848843 A CN 116848843A CN 202180093203 A CN202180093203 A CN 202180093203A CN 116848843 A CN116848843 A CN 116848843A
Authority
CN
China
Prior art keywords
motion
interpolation
image
samples
segment
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.)
Pending
Application number
CN202180093203.8A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Friedrich Alexander Univeritaet Erlangen Nuernberg FAU
Original Assignee
Huawei Technologies Co Ltd
Friedrich Alexander Univeritaet Erlangen Nuernberg FAU
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 Huawei Technologies Co Ltd, Friedrich Alexander Univeritaet Erlangen Nuernberg FAU filed Critical Huawei Technologies Co Ltd
Publication of CN116848843A publication Critical patent/CN116848843A/zh
Pending legal-status Critical Current

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
    • H04N19/521Processing 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
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/172Methods 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 picture, frame or field
    • 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/537Motion estimation other than block-based
    • 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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions

Landscapes

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

Abstract

本发明涉及运动信息的编码和解码。为了在编码器和解码器之间交换运动信息,提供了稀疏运动场。为了改进密集运动场的重建,提供了指示合适插值方法的边信息,所述插值方法用于对不同于指示的稀疏运动场运动向量的密集运动场中运动向量进行插值。这些信息是按片段提供的。片段根据参考图像和稀疏运动场在编码端和解码端以类似方式推导。

Description

可切换的密集运动向量场插值
本发明涉及通过运动补偿进行视频编码和解码的方法和装置。
背景技术
视频编码器通常应用运动估计和补偿进行帧间预测,以利用时间冗余。运动向量描述的是为了获取当前帧中像素的预测而必须移动参考帧中像素的方式。这通常按块执行,即将相同的运动向量分配给块中的每个像素。
图1A示出了当前帧在时间点t处的预测。当前帧中的当前块10根据时间点t–1处的参考帧中的预测块12进行预测,预测块12所在的位置与并置块11的位置不同。并置块11在参考帧内的位置与当前块在当前帧内的位置相同。表示从并置块的位置移动到预测块12的位置的箭头是运动向量。运动向量可以作为边信息从编码器发送到解码器。
图1B示出了前向运动和后向运动。前向运动是指所有像素都从按照显示顺序在当前图像之前的参考图像运动到当前图像。后向运动是指所有像素都从按照显示顺序在当前图像之后的参考图像运动到当前图像。在后向运动估计的情况下,编码和解码的顺序与显示顺序不对应。
为了使基于块的预测可扩展,通常使用分层块划分,如图2A所示。在图2A中,像素(样本)栅格与8×8样本块一起显示,该块划分成3个4×4子块和4个2×2子块。对每个子块执行运动估计,获取到相应的运动向量,如指示相对于参考帧移动的方向的对应箭头所示。运动向量通常在经编码视频的码流中直接指示或进行差分编码。一些编解码标准中使用运动向量的隐式推导,这种推导是根据编码端和解码端的经过重建和解码的图像执行的。
通过分层块划分,视频编解码标准通过基于块的运动估计和补偿来执行隐式子采样。HEVC或VVC等现代编解码标准在某种程度上使用不同的块大小执行内容自适应采样。这些编解码标准显式地将块划分指示为四叉树和三叉树。可以确定的是,越来越自适应的划分有利于提高相应编解码标准的译码效率。
然而,只要待传输的运动向量很少,这些过程通常是不准确的,而且会产生块效应。
发明内容
本发明涉及用于提供运动向量的方法和装置。
本发明实施例由独立权利要求的范围限定。一些进一步有利的实施例在从属权利要求中提供。
具体地,本发明实施例提供了一种重建运动向量的高效方法,包括使用根据图像片段选择的至少两种不同的运动向量插值方法。
根据一个实施例,提供了一种用于重建包括多个样本的图像的运动向量场的方法。所述方法包括:根据码流获取两个或两个以上运动向量,其中,所述两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动;根据所述获取到的两个或两个以上运动向量和与所述两个或两个以上运动向量相关的一个或多个参考图像,推导多个插值片段;从所述码流中获取运动插值信息,其中,所述运动插值信息为所述多个插值片段中的每个片段指示用于重建所述片段中的运动的插值方法;对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量中的至少一个向量,重建所述运动向量场。
这种推导片段来获取插值信息不需要额外指示,并且可以改进运动场重建。
例如,所述运动插值信息为所述多个插值片段中的每个片段指示至少两个预定义插值方法中的一种插值方法。
从预定义集合中选择插值方法可以在使用有限比特的情况下高效指示插值方法。
具体地,所述运动插值信息是二进制标志,所述二进制标志为所述多个插值片段中的每个片段指示第一插值方法和第二插值方法中的一种插值方法。
通过标志的1比特指示不会增加太多速率,而选择插值方法可以提高重建质量。
例如,所述至少两种预定义插值方法彼此不同,包括最邻近插值、双线性插值、基于窗口sinc函数的插值和多项式插值,等等。
提供质量和复杂性不同的插值方法能够实现内容自适应插值选择。使用合适的插值方法可以更精确地表示特定区域内的运动模型,从而产生更好的预测信号质量。
在一种示例性实现方式中,所述推导多个插值片段包括:通过对所述两个或两个以上运动向量应用所述第一插值方法,重建第一运动场;通过对所述两个或两个以上运动向量应用所述第二插值方法,重建第二运动场;通过使用所述第一运动场的运动补偿重建第一中间图像;通过使用第二运动场的运动补偿重建第二中间图像;根据第一预定规则,至少在所述图像的所述第一中间图像和所述第二中间图像不同的区域中确定所述多个插值片段的中心;对于所述确定的片段中心中的每个中心,根据第二规则确定所述图像中属于所述片段的样本。
以这种方式确定片段在编码器和解码器侧是相同,这样就不需要额外信令。根据通过不同插值方法进行插值的图像之间的差值进行确定可能是非常高效的,因为重点关注运动场的不同插值导致大不相同的结果的各个部分。
例如,所述第一中间图像和所述第二中间图像之间的差值是根据相异性度量按样本计算的。
按样本执行的差异度量能够准确确定片段。
具体地,所述确定所述多个插值片段的中心是根据所述第一预定规则,在所述图像的所述第一中间图像和所述第二中间图像相差超过预定量的区域中执行的。
通过仅对具有一些非0或不可忽略差值的部分执行划分,可以进一步降低计算复杂性。需要说明的是,术语“预定义”可以对应于固定设置,例如,通过标准设置为相差大于0或大于某些其它非0值的任何值。然而,在一些实施例中,编码器可以定义这样的阈值并在码流中指示,或者可以根据其它一个或多个编码参数(例如,量化值、位深等)设置该阈值。编码器可以根据一些用户设置和/或根据速率、失真和/或复杂性函数等某个成本函数预定义上述值。
在一种示例性实现中,所述第一预定规则指定所述图像中的样本的非均匀采样,所述图像中待成为片段中心的样本使用预定随机数(seed)伪随机地选取,选取样本的概率与所述第一中间图像和所述第二中间图像之间的绝对差成正比。
基于差值和随机化的非均匀采样可以很好地猜测片段中心。随机化可以避免第一中间图像和第二中间图像之间绝对差相对较小的区域中缺少片段中心带来不好影响。
在一种示例性实现方式中,所述第一预定规则包括:生成伪随机噪声样本,并且通过将所述伪随机样本与使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的相应样本相乘,获取噪声差分图像;选择所述噪声差分图像中超过预定阈值的样本作为所述多个插值片段的中心。
这种替代的差值随机化和选择中心可以并行处理,还可以很好地猜测片段中心。
例如,对于所述确定的插值片段中心中的每个中心,所述图像中属于所述片段的样本被确定为使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的沃罗诺伊(Voronoi)区;分别为所述差分图像中带有正号的区域和所述差分图像中带有负号的区域确定所述沃罗诺伊区。
沃罗诺伊区是片段重建的高效方式,可能会形成宽敞的片段。
例如,在所述图像的所述第一中间图像和所述第二中间图像满足相似性准则的区域中不确定所述多个插值片段的中心。
这样能够降低一些计算复杂性。可以存在对这些区域进行插值的默认方法。此外,这种方法可以减小码流大小,因为这些中被认为不重要的补充信息不用指示。
作为上述示例和实现方式的替代或补充,所述运动插值信息包括与所述多个插值片段中的每个片段相关联的一条运动插值信息;所述运动插值信息中的多条信息与所述多个插值片段中的每个相应插值片段的关联关系通过以下内容提供:所述运动插值信息中的多条信息在码流语法中的排序;所述确定的多个插值片段的预定排序。
这种关联关系避免了在解码器侧正确解映射插值信息的额外信令。为多个插值片段中的每个片段指示额外一条运动信息可以更精确地描述特定区域的运动模型,从而提高预测信号质量。
作为上述示例和实现方式的替代或补充,所述方法还包括:根据所述图像中的每个样本所在的片段,确定所述样本的插值方法,以获取在每个掩码图像样本中指示所述插值方法的掩码图像;将默认插值方法分配不属于任何片段的掩码图像样本;通过应用由所述掩码图像中的对应样本指定的插值方法,确定所述图像中的每个样本的运动向量。
这样可以为每个图像样本重建和提供插值方法,从而可以进一步处理这种掩码,例如,考虑图像点之间的2D空间关系。
例如,所述方法还可以包括以下步骤:在确定所述运动向量之前对所述掩码图像进行平滑处理。
对掩码进行平滑处理可以,例如,通过将重建候选图像按照平滑滤波器的权重进行加权,进一步改善插值结果和图像重建结果。当使用残差译码时,这个特征是有用的,因为对于大多数已知的残差译码方法而言,残差信号中存在锐边会大大增加码率,这反过又会使整个压缩效率降低,即使该方法提高了预测信号质量。
例如,平滑通过高斯滤波或导向图像滤波执行。
这些滤波器可以很好地执行,尤其是在运动图像重建的上下文中。高斯滤波的复杂性相对较低,而导向图像滤波提供了平滑处理,这在压缩效率方面表现更好。导向图像滤波的另一个好处是,在执行残差译码的场景下,其参数与高斯滤波器的参数相比更稳定。
根据一个实施例,提供了一种用于对包括多个样本的图像的运动向量场进行编码的方法。所述方法包括:将两个或两个以上运动向量包括在码流中,其中,所述两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动;根据所述两个或两个以上运动向量和与所述两个或两个以上运动向量相关的一个或多个参考图像,推导多个插值片段;将运动插值信息编码到所述码流中,其中,所述运动插值信息为所述多个插值片段中的每个片段指示用于重建所述片段中的运动的插值方法;对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量中的至少一个向量,确定所述运动向量场。
这种编码不需要发送任何片段信息,通过提供插值信息能够实现准确重建。
在一种示例性实现中,所述方法还包括以下步骤:通过应用德洛涅(Delauney,也称为Delone)三角形划分进行运动场的稀疏化,确定所述两个或两个以上运动向量。
通过德洛涅三角形划分进行稀疏化可能是有利的,因为它不需要指示运动向量的原点,而且相比于矩形划分部分的一些内容,可能还是更适合于内容。
可选地或另外,所述方法还包括以下步骤:根据成本函数,为所述多个插值片段中的每个片段选择插值方法,其中,所述成本函数包括速率、失真和复杂性中的一个或多个。
速率、失真和/或复杂性优化能够考虑到应用或用户偏好。
例如,运动插值信息为多个插值片段中的每个片段指示至少两个预定义插值方法中的一种插值方法。
从预定义集合中选择插值方法可以在使用有限比特的情况下高效指示插值方法。
例如,所述运动插值信息是二进制标志,所述二进制标志为所述多个插值片段中的每个片段指示第一插值方法和第二插值方法中的一种插值方法。
通过标志的1比特指示不会增加太多速率,而选择插值方法可以提高重建质量。
例如,所述至少两种预定义插值方法彼此不同,包括最邻近插值、双线性插值、基于窗口sinc函数的插值和多项式插值。
提供质量和复杂性不同的插值方法能够实现内容自适应插值选择。使用合适的插值方法可以更精确地表示特定区域内的运动模型,从而产生更好的预测信号质量。
根据一种示例性实现方式,所述推导多个插值片段包括:通过对所述两个或两个以上运动向量应用所述第一插值方法,重建第一运动场;通过对所述两个或两个以上运动向量应用所述第二插值方法,重建第二运动场;通过使用所述第一运动场的运动补偿重建第一中间图像;通过使用第二运动场的运动补偿重建第二中间图像;根据第一预定规则,至少在所述图像的所述第一中间图像和所述第二中间图像不同的区域中确定所述多个插值片段的中心;对于所述确定的片段中心中的每个中心,根据第二规则确定所述图像中属于所述片段的样本。
以这种方式确定片段在编码器和解码器侧是相同,这样就不需要额外信令。根据通过不同插值方法进行插值的图像之间的差值进行确定可能是非常高效的,因为重点关注运动场的不同插值导致大不相同的结果的各个部分。
例如,所述第一中间图像和所述第二中间图像之间的差值是根据相异性度量按样本计算的。
按样本执行的差异度量能够准确确定片段。
例如,所述确定所述多个插值片段的中心是根据所述第一预定规则,在所述图像的所述第一中间图像和所述第二中间图像相差超过预定量的区域中执行的。
通过仅对具有一些非0或不可忽略差值的部分执行划分,可以进一步降低计算复杂性。
例如,所述第一预定规则指定所述图像中的样本的非均匀采样,所述图像中待成为片段中心的样本使用预定随机数(seed)伪随机地选取,选取样本的概率与所述第一中间图像和所述第二中间图像之间的绝对差成正比。
基于差值和随机化的非均匀采样可以很好地猜测片段中心。随机化可以避免第一中间图像和第二中间图像之间绝对差相对较小的区域中缺少片段中心带来不好影响。
根据一种示例性实现方式,所述第一预定规则包括:生成伪随机噪声样本,并且通过将所述伪随机样本与使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的相应样本相乘,获取噪声差分图像;选择所述噪声差分图像中超过预定阈值的样本作为所述多个插值片段的中心。
这种替代的差值随机化和选择中心可以并行处理,还可以很好地猜测片段中心。
在一些示例性实现方式中,对于所述确定的插值片段中心中的每个中心,所述图像中属于所述片段的样本被确定为使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的沃罗诺伊区;分别为所述差分图像中带有正号的区域和所述差分图像中带有负号的区域确定所述沃罗诺伊区。
沃罗诺伊区是片段重建的高效方式,可能会形成宽敞的片段。
例如,在所述图像的所述第一中间图像和所述第二中间图像满足相似性准则的区域中不确定所述多个插值片段的中心。
这样能够降低一些计算复杂性。可以存在对这些区域进行插值的默认方法。此外,这种方法可以减小码流大小,因为这些中被认为不重要的补充信息不用指示。
在一些示例性实现方式中,所述运动插值信息包括与所述多个插值片段中的每个片段相关联的一条运动插值信息;所述运动插值信息中的多条信息与所述多个插值片段中的每个相应插值片段的关联关系通过以下内容提供:所述运动插值信息中的多条信息在码流语法中的排序;所述确定的多个插值片段的预定排序。
这种关联关系避免了在解码器侧正确解映射插值信息的额外信令。为多个插值片段中的每个片段指示额外一条运动信息可以更精确地描述特定区域的运动模型,从而提高预测信号质量。
在一些示例性实现中,所述方法还包括以下步骤:根据所述图像中的每个样本所在的片段,确定所述样本的插值方法,以获取在每个掩码图像样本中指示所述插值方法的掩码图像;将默认插值方法分配不属于任何片段的掩码图像样本;通过应用由所述掩码图像中的对应样本指定的插值方法,确定所述图像中的每个样本的运动向量。
这样可以为每个图像样本重建插值方法。
例如,所述方法还可以包括以下步骤:在确定所述运动向量之前对所述掩码图像进行平滑处理。
对掩码进行平滑处理可以,例如,通过将重建候选图像按照平滑滤波器的权重进行加权,进一步改善插值结果和图像重建结果。当使用残差译码时,这个特征是有用的,因为对于大多数已知的残差译码方法而言,残差信号中存在锐边会大大增加码率,这反过又会使整个压缩效率降低,即使该方法提高了预测信号质量。
例如,平滑通过高斯滤波或导向图像滤波执行。
这些滤波器可以很好地执行,尤其是在运动图像重建的上下文中。高斯滤波的复杂性相对较低,而导向图像滤波提供了平滑处理,这在压缩效率方面表现更好。导向图像滤波的另一个好处是,在执行残差译码的场景下,其参数与高斯滤波器的参数相比更稳定。
根据一个实施例,提供了一种存储在非瞬时性计算机可读介质中的计算机程序。所述计算机程序包括指令,所述指令在一个或多个处理器上执行时,执行任一上述方法的步骤。
根据一个实施例,提供了一种用于重建包括多个样本的图像的运动向量场的装置。所述装置包括处理电路,所述处理电路用于:根据码流获取两个或两个以上运动向量,其中,所述两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动;根据所述获取到的两个或两个以上运动向量和与所述两个或两个以上运动向量相关的一个或多个参考图像,推导多个插值片段;从所述码流中获取运动插值信息,其中,所述运动插值信息为所述多个插值片段中的每个片段指示用于重建所述片段中的运动的插值方法;对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量中的至少一个向量,重建所述运动向量场。
根据一个实施例,提供了一种用于对包括多个样本的图像的运动向量场进行编码的装置。所述装置包括处理电路,所述处理电路用于:将两个或两个以上运动向量包括在码流中,其中,所述两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动;根据所述两个或两个以上运动向量和与所述两个或两个以上运动向量相关的一个或多个参考图像,推导多个插值片段;将运动插值信息编码到所述码流中,其中,所述运动插值信息为所述多个插值片段中的每个片段指示用于重建所述片段中的运动的插值方法;对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量中的至少一个向量,确定所述运动向量场。
这些装置和程序具有与上述相应方法相同的优点。上述与方法相关的示例性实施例和实施例也适用于装置的功能。
此外,本发明还提供了与上述处理电路执行的步骤相对应的方法。
根据一方面,提供了一种存储程序代码的计算机可读介质。所述程序代码用于执行上述方法。具体地,所述程序代码包括指令,所述指令在一个或多个处理器上执行时,执行所述方法的步骤。
根据一方面,提供了一种包括处理电路的装置。所述处理电路用于执行任一上述方法。此外,任一上述运动向量编码方法都可以作为视频编码的一部分执行。此外,任一上述运动向量解码方法都可以作为视频解码的一部分执行。相应地,上述用于对运动向量进行编码和解码的装置可以是用于视频编码和解码的相应装置的一部分。
上述装置可以在集成芯片上实现。
任一上述实施例和示例性实施方式都可以进行组合。
附图说明
下面结合附图更加详细地描述本发明实施例,其中:
图1A是运动估计和运动预测的示意图;
图1B是前向预测和后向预测的示意图;
图2A是分层划分块中的运动估计的示意图;
图2B是应用插值的运动向量重建的示意图;
图2C是平移运动和旋转运动的示意图;
图3是用于编码端的方法的一个示例性实施例的流程图;
图4是用于解码端的方法的一个示例性实施例的流程图;
图5是用于解码端的方法的一种示例性实现方式的流程图;
图6是用于编码端的方法的一种示例性实现方式的流程图;
图7是用于确定片段的方法的一种示例性实现方式的流程图;
图8是根据采用随机采样的示例性实现方式的方法的一些中间结果(差分图像、非均匀采样中心和通过加权噪声阈值化获取到的中心)的示意图;
图9是如何确定片段的示意图;
图10是如何确定片段的示意图;
图11是根据示例性实现方式的划分方法的中间结果的示意图:(a)示出了差分图像,(b)示出了根据通过非均匀采样提供的中心通过符号沃罗诺伊(Voronoi)划分获取到的片段,(c)示出了根据通过加权噪声阈值化提供的中心通过符号沃罗诺伊划分获取到的片段;
图12是用于对运动信息进行编码的装置的功能特征的框图;
图13是用于对运动信息进行解码的装置的功能特征的框图;
图14是可以实现本发明一些实施例的示例性图像编码装置的框图;
图15是可以实现本发明一些实施例的示例性图像解码装置的框图;
图16是可以使用一些实施例的运动向量编码和解码***的功能架构的框图;
图17是用于实现一些实施例的视频译码***的一个示例的框图;
图18是用于实现一些实施例的视频译码***的另一个示例的框图;
图19是编码装置或解码装置的一个示例的框图;
图20是编码装置或解码装置的另一个示例的框图。
具体实施方式
在以下描述中,参考构成本发明一部分的附图,这些附图通过说明的方式示出了本发明实施例的具体方面或可以使用本发明实施例的具体方面。应当理解的是,本发明实施例可以在其它方面中使用,并且可以包括附图中未描绘的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。
例如,可以理解,与描述方法有关的公开内容可以对于用于执行所述方法的对应设备或***也同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元)来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元分别执行多个步骤中的一个或多个),即使附图中未明确描述或说明该一个或多个单元。另一方面,例如,如果基于一个或多个单元(例如,功能单元)来描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤分别执行多个单元中的一个或多个单元的功能),即使附图中未明确描述或示出该一个或多个单元。此外,可以理解,除非另外明确说明,本文中所描述的各个示例性实施例和/或方面的特征可以相互组合。
许多视频编解码标准通过基于块的运动估计和补偿来执行隐式子采样,如上文参考图2A所述。MPEG-5/EVC或H.266/VVC等现代编解码标准在某种程度上使用不同的块大小执行内容自适应采样。这些编解码标准显式地将块划分指示为四叉树和三叉树。同样的块结构也用于指示不同的插值方法。在VVC的情况下,例如,每个块可以使用所有像素的已传输运动向量(平移运动),或者使用其角落处的运动向量在4×4网格上对运动进行插值(仿射运动)。这样做的缺点是:块效应可能已经出现在运动补偿中,也可能出现在最终的重建图像中。
图2B示出了更灵活的运动向量重建。左边示出了与图2A中类似的稀疏运动场,而右边是更平滑的重建运动场。这种运动场重建不遵循矩形块划分。如下面的实施例和示例所述,图2B使用两种(或两种以上)不同的插值方法。这不依赖于划分。因此,运动场更平滑,而且图像重建质量更好。
图2C示出了用于对运动进行插值的一些其它典型的插值方法。左边示出了运动向量复制(最邻近插值),这种方法对于平移运动可能表现良好,但对于更复杂的运动类型可能表现较差。右边示出了运动向量的样本级插值,这种方法对于更复杂的运动可能表现更好,这里是圆周运动(旋转)。一个图像可能存在许多不同的运动类型,因此整个图像可能没有最佳的运动模型。
只有少数现代视频编解码标准支持非基于块的运动补偿。例如,在MPEG-5/EVC中,为仿射运动模型引入了基于像素的运动补偿,基于像素的运动补偿使用增强型插值滤波器。运动场是基于像素重建的,但常规平移和仿射运动模型之间的切换仍然是基于块执行的,因此整个块使用相同的运动模型参数。主要原因是必须传输整个运动场(包括在码流中)。在一些方法中,密集运动场用于构建一个分层树,该树被修剪为内容自适应的。在这种方法中,树本身也要传输,而运动信息本身可以更高效地传输。但是,生成的运动场可以包括块结构,即使它是根据密集运动场推导出的。
下面解释一些常用的技术术语。运动向量通常是理解为指定两个不同视频帧中的两个对应点之间的空间距离的2D向量,通常表示为v=[vx,vy]。MV是运动向量的常用缩写。但是,术语“运动向量”可以有更多维度。例如,参考图像可以是其它(时间)坐标。术语“MV坐标”或“MV位置”表示像素的位置(像素的运动由运动向量给出)或运动向量原点,表示为p=[x,y]。运动场是{p,v}对的集合。运动场可以表示为M或缩写为MF。密集运动场覆盖图像中的每个像素。在这里,如果图像的大小是已知的,则p可能是冗余的,因为运动向量可以按照行扫描顺序或任何预定义顺序进行排序。稀疏运动场不覆盖所有像素。在这里,一些情况下可能需要知道p。重建运动场是一个密集运动场,它是根据稀疏运动场重建的。术语“当前帧”表示待编码帧,例如,在帧间预测的情况下当前预测的帧。参考帧用作时间预测的参考。
运动补偿是指使用参考帧和运动信息来生成预测图像(例如,为此可以重建和使用密集运动场)。帧间预测是视频译码中的时间预测,其中,运动信息被指示给解码器,这样解码器可以使用先前解码的一个或多个帧来生成预测图像。术语“帧”在视频译码中表示视频图像(也可以称为图像)。视频图像通常包括表示亮度水平的多个样本(也称为像素)。帧(图像)通常是矩形,并且可以包括一个或多个通道,例如,颜色通道和/或其它通道(例如,深度)。
一些较新的基于光流的算法生成密集运动场。这种运动场包括许多运动向量,图像中的每个像素分别对应一个运动向量。使用这种运动场进行预测相比于基于分层块的预测,预测质量通常更好的。但是,由于密集运动场包括的运动向量与图像包括的样本(例如,像素)一样多,因此传输(或存储)整个场是不可行的,因为运动场包括的信息可能比图像本身包括的信息多。因此,密集运动场通常会进行子采样、量化,然后***(编码)到码流中。接着,解码器对(由于子采样)丢失的运动向量进行插值,并且使用重建密集运动场进行运动补偿。重建(密集)光流是指根据与码流中指示的运动向量相关联的样本位置的集合内的样本位置,重建图像内的样本位置的运动向量,其中,图像内的样本位置不属于上述集合。
在子采样过程中,存在以下可能性。
-运动场可以按照规则模式进行子采样,与内容无关。规则采样模式是具有规则间隔距离的网格模式。由于像素数可能不是每行采样点数的整数倍,因此采样点之间的距离可能会相差一个像素。这可能会导致许多采样点放置在次优位置上。运动均匀的区域(只需要很少的运动向量)与运动多样的区域(需要许多采样点)在每单位面积中包括相同数量的运动向量。运动均匀的区域导致码率大于需要的码率,运动多样的区域由于需要更多的运动向量而导致预测质量不佳。这种子采样在结果上类似于HEVC和VVC等当前编解码标准中应用的基于块的运动向量估计和补偿。
-另一种可能性是只传输与实现流场重建效果好(例如,在期望质量和/或速率方面)所需的位置对应的运动向量。这样,运动均匀的区域不需要太大的速率,而运动复杂的区域的采样密度足够大。但是,只有编码器知道整个运动场,因此必须在码流中以某种方式指示(运动向量的)位置。指示位置需要额外速率,降低了译码效率。换句话说,与使用规则模式对运动向量进行采样相反,在未预定义的位置上对运动场进行采样,而且需要将采样位置的坐标传输到解码器。
在上文的描述中,术语“速率”或等效的码率涉及需要从编码器传输到解码器以重建视频的信息(就比特或其它信息单位而言)。通常,重建视频所需的边信息越多,所需的码率就越高。
PCT/EP2020/062062(2020年4月30日提交的“基于三角形划分的密集运动向量场自适应子采样(Triangulation-Based Adaptive Subsampling of Dense Motion VectorFields)”)提供了一种方法,这种方法可以减少上述两种可能性(规则采样和基于内容的采样)存在的缺点。具体地,编码器能够主要传输适用于实现重建效果好的位置上的运动向量,而不必显式地传输运动向量的位置。此外,运动场可以通过渐进和可扩展的方式传输。这表示,传输可以在任何已传输运动向量之后停止,这时运动场的重建质量较差(表示分辨率较低)。上述方法基于三角形划分。此外,PCT/RU2020/000302(2020年6月22日提交的“使用稀疏光流表示的运动补偿(Motion Compensation With a Sparse Optical FlowRepresentation)”)可以提供一种示例性运动补偿。
两个自然图像之间的密集运动场包括具有不同内容重要性的区域,这些区域可以通过不同的方式进行采样。
·运动均匀的区域只需要很少的采样点,因为中间运动向量可以很容易地进行插值。这是由于大多数运动向量具有相同的方向和大小。
·两个运动均匀但不同的区域之间的边界最好沿着边界线进行密集采样,以确保边界两侧的运动向量插值是正确的。
·运动复杂(例如,非仿射运动)的区域需要进行密集采样。
本发明可以使用任何类型的子采样运动场。本发明涉及重建稀疏(子采样)运动场,以尽可能地提高图像重建质量。
最先进的光流算法生成密集运动场。使用这种运动场进行预测产生的预测质量通常更好。但是,由于密集运动场包括的运动向量与图像包括的像素一样多,因此传输整个场是不可行的,因为运动场包括的信息比图像本身包括的信息多。因此,密集运动场必须进行子采样、量化,并且编码到待传输的码流中。接着,解码器对丢失的运动向量进行插值,并且使用重建密集运动场进行运动补偿。
一些实施例涉及运动向量场插值。运动场(不同运动模型)和帧的不同特征需要不同的插值方法。有些区域存在平移运动,例如,需要通过复制运动向量进行插值,类似于最邻近插值。其它区域存在仿射运动,需要根据周围运动向量进行线性插值。但是,解码器不会直接知道哪种方法在哪个位置是最佳的。只有编码器可以提供此信息,因此此信息必须通过信道传输(包括在码流中)。编码器可以确定每个像素的最佳插值方法。在两种方法的情况下,是平移运动还是仿射运动的信息对应于1比特每像素(bit per pixel,bpp)。直接传输此信息仍然会产生相当大的开销。
在一个实施例中,这个问题通过使用少量边信息(~0.01bpp)以有损方式传输(理想)掩码来解决。为此,对运动场进行特殊划分,而且仅根据片段传输的方法性能更好。这样,可以在选择合适插值时减少大量数据。
这些片段通过一种可以使用解码端可用的信息再现的方式推导出,因此可以不需要额外的边信息。同时,这些片段适合于传输理想掩码,表示理想掩码在一个片段内几乎是恒定的。
为此,在两个候选图像之间使用差分图像(或其它相异性度量)的属性,这些属性是对特定区域只使用一种运动场插值方法进行运动补偿的结果。在差分(相异性)图像为0的区域中,两种方法是等效的,因此不需要传输(包括在码流中)关于运动场插值方法的补充运动信息。例如,可以使用默认插值方法。差值很小的区域中不需要使用太多比特,粗略近似就足够了,而差值较大的区域中最好使用速率。
在这里和下文中,候选运动场表示在切换过程中使用的重建运动场。候选图像表示通过使用候选运动场扭曲参考帧(使用候选运动场的运动向量执行运动补偿)而获取到的图像。切换掩码可以是与图像具有相同大小的掩码,并且包括关于要使用哪种插值方法的像素信息。在两种可能的运动场插值方法中,掩码可以是二进制的(每个像素一个比特)。需要说明的是,可以设想不按像素提供掩码,而是按子样本提供掩码,例如,按2×2像素等区域(超像素)提供掩码。这在一些实现方式中,在降低编码器复杂性方面可能是有利的。在一些示例性实施例中,上述方法在下采样域中执行,然后将生成的运动场上采样回原始分辨率。
理想掩码包括每个像素的信息,是关于哪种方法最小化该像素的误差。在这里提到插值时,如果在本发明中没有明确说明,该术语是指根据稀疏运动场重建密集运动场。需要说明的是,插值可以用于视频编码、解码和/或处理的不同阶段。但是,本发明主要讨论运动向量插值。
图3和图4示出了用于将运动向量编码到码流中和从码流中解码出运动向量的示例性方法。具体地,根据一个实施例,提供了一种用于对图像的运动向量场进行编码的方法,如图3所示。
如上所述,图像包括一个或多个样本(像素)。MV编码方法包括以下步骤:将两个或两个以上运动向量10B包括S310在码流中。两个或两个以上运动向量10B中的每个向量指定所述多个样本的第一子集内的样本的运动。因此,样本的第一子集对应于运动向量的位置。换句话说,第一子集内的样本是相应运动向量在码流中指示的样本。
位置本身(在第一集合内)可以但不是必须包括在码流中。如上文结合图2A至图2C所述,可以知道指示的MV与其位置之间的分配。例如,这些位置可以通过编码器和解码器已知的划分(例如,在码流中指示或进行标准化)来限定,例如,在固定的预定义块大小(例如,16×16)的情况下或者在分层划分在码流等中指示的情况下。当通过划分获取到的划分部分按照预定(扫描)顺序(例如,从左到右和从上到下,可能按照分层顺序)进行排序时,码流中MV的顺序则可以相同,使得MV和第一集合内的位置之间的分配是明确的。划分部分顺序和MV顺序不必相同,只要它们之间的映射关系已知就足够。可以使用上述三角形划分方法,这种方法也不需要指示第一集合内的位置。还可以使用其它划分方法,本发明不限于任何特定的方法。MV位置不是必须但可以在码流中指示。
步骤S310还可以包括获取多个运动向量(例如,稀疏运动场,例如,10B)。在一些实现方式中,这种获取可以对应于密集运动场的稀疏化。在其它实现方式中,上述获取可以对应于运动估计。这里只是举例,本发明不限于MV的任何特定获取方式。
将运动向量包括S310在码流中可以是显式的,例如,可以存在限定多个运动向量中的每个向量是否存在语法元素的码流语法。但是,可以设想运动向量通过以下方式获取:采用不同的译码、采用预测、采用候选列表,或者从码流中指示的其它参数推导,等等。运动向量还可以通过应用熵码(例如,任何已知类型的可变长度码)或算术译码来进行编码。两种方式都可以适用于不存在上下文适应性或存在上下文适应性的情况。
MV编码方法还包括步骤S320:根据两个或两个以上运动向量和与两个或两个以上运动向量相关的一个或多个参考图像,推导多个插值片段。此外,上述方法还包括步骤S330:将运动插值信息编码到码流中,其中,运动插值信息为多个插值片段中的每个片段指示用于重建该片段中的运动的插值方法。
例如,重建片段中的运动可以是根据运动向量10B(稀疏运动场)重建运动场20B(例如,密集运动场)。换句话说,一个片段包括一个或多个样本位置,它们的MV没有在码流中指示,而是使用为片段和一个或多个指示的MV 10B确定的插值方法推导出。在一些实施例中,可以控制片段大小,以避免出现包括的样本少于预定数量的片段。需要说明的是,为了降低复杂性,在一些实施例中可以跳过这种控制。样本的期望数量可以是划分算法的参数,对于应用而言,可以有利地选择为基本上小于图像中(在稀疏运动场中)的样本总数。
对于一个插值片段中的样本,MV编码方法还包括步骤S340:通过应用由所述片段的运动插值信息指示的插值方法并且使用两个或两个以上运动向量10B中的至少一个向量,确定运动向量场20B。在编码端,重建运动向量场20B这时可以用于执行运动补偿,以便执行帧间预测,等等。需要说明的是,本发明不限于以任何特定方式使用MV。MV可以仅仅作为额外信息(特征图或通道)包括在码流中。这些额外信息不一定用于运动补偿。这些信息可以用于预测连续帧的运动场,或用于其它计算机视觉应用,例如,对象识别或检测等。
根据一个实施例,提供了一种用于重建图像的运动向量场的方法,如图4所示。所述方法包括步骤S410:根据码流获取两个或两个以上运动向量。两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集(例如,稀疏运动场10B)内的样本的运动。
如上所述,参考编码器步骤S310,运动向量可以显式地包括在码流中或根据码流推导出。MV的位置可以在码流中指示,或者根据预定规则(例如,划分部分的特定排序)推导出。
MV解码方法还包括步骤S420:根据获取到的两个或两个以上运动向量和与两个或两个以上运动向量相关的一个或多个参考图像,推导多个插值片段。这个步骤对应于上述MV编码的步骤S320。因此,这个步骤可以在编码器和解码器侧以相同的方式执行。推导多个插值片段可以包括确定片段的位置及其大小和形式中的一个或两个。推导片段可以包括确定图像中的每个样本属于哪个片段(在多个片段中)。
在一些应用中,单个参考图像可以用于当前块中的所有运动向量。但这只是一个示例。能够为每个运动向量或一组运动向量等选择参考图像可能是有利的。此外,一个样本可以重建为参考不同参考图像(例如,双向预测(biprediction/bi-directionalprediction))的样本的加权平均值。例如,加权平均值可以采用基于相应参考图像与当前图像的距离(根据显示顺序)的权重。
关于一个或多个参考图像,需要说明的是,参考图像是先前重建的图像。参考图像在编码端进行编码和重建(先前已编码),而在解码端进行重建(先前已解码)。
MV解码方法还包括步骤S430:根据码流获取运动插值信息,其中,运动插值信息为多个插值片段中的每个片段指示用于重建该片段中的运动的插值方法。这个步骤对应于上述步骤S330,但编码器通常可以生成运动插值信息并将其包括在码流中,而解码器可以从码流中或根据码流获取运动插值信息。
此外,MV解码方法包括步骤S440:对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用两个或两个以上运动向量10B中的至少一个向量,重建运动场20B。该重建步骤可以类似于上述步骤S340。事实上,编码端和解码端都可以具有可用于重建运动场20B的相同信息。需要说明的是,术语“运动场”和“运动向量场”在本文中可互换使用。编码端和解码端类似地推导片段可以提供以下优点:不需要指示用于传输插值信息的片段(划分部分)。
需要说明的是,本文中提到的片段用于指定插值方法。这些片段与编码器和解码器中用于其它目的的划分部分不同。具体地,这些片段不(一定)对应于可能使用的划分,在划分的情况下,每个划分部分对应发送一个MV。
应用插值可以执行为根据在码流中发送的两个或两个以上运动矢量对码流中未指示的(运动场中的)运动向量进行插值。对于多个片段中的每个片段,可以通过为相应片段确定/指示的插值执行运动场的插值。需要说明的是,图像不一定完全被片段覆盖。可能存在未划分的部分。这可能是因为不存在运动(或可忽略的运动,例如,小于预定阈值),因此不需要运动场来重建。但是,也可能是因为其它原因,例如,应用不同类型的译码,例如,帧内译码等。
在编码端和/或解码端的示例性实现方式中,运动插值信息为多个插值片段中的每个片段指示至少两种预定义插值方法中的一种插值方法。换句话说,可以存在预定K种可选择的插值方法。编码器为每个片段选择K种插值方法中的一种方法,并且在码流中发送这种选择。然后,解码器根据码流确定相应片段的插值方法,并且将这些方法应用于相应片段以获取(密集)运动场。
在一些示例性实现方式中,运动插值信息是二进制标志,该标志为多个插值片段中的每个片段指示第一插值方法和第二插值方法中的一种插值方法。例如,在码流中指示1个比特每片段,指定两种可能的插值方法中的一种方法(在两种可能的插值方法之间切换)。
至少两种预定义插值方法可以彼此不同,包括最邻近插值、双线性插值、基于窗口sinc函数的插值和多项式插值。但是,需要说明的是,本发明并不限于这些方法。这些方法只是示例性的,可以选择这些方法的任何子集。可选择的插值方法可以包括其它或更多方法。使用窗口sinc函数进行插值的一些特定非限制性示例可以是使用基于DCT的插值滤波器进行插值,例如,HEVC、VVC或EVC中使用的插值。此外,从稀疏运动场中获取密集运动场也可以使用神经网络来执行,该神经网络可以包括几个卷积层和激活函数(例如,RELU、参数RELU、sigmoid)。
图5是上述MV解码方法(以及解码器的对应功能)的示例性实现方式的详细示意图。具体地,在图5中,对应的解码端示意图示出了从码流中提取560稀疏运动场570、525和切换信息(“每片段决策”)550、545。使用稀疏运动场525和参考帧501,解码器可以重复(以与编码器相同的方式推导)划分。在这一点上,解码器知道片段535、稀疏运动场525和参考帧501。使用这些信息可以执行通过每片段决策545提供的切换,并且可以生成515预测图像518。换句话说,在这一点上,解码器知道片段535、稀疏运动场525、参考帧501和每片段决定545。使用这些信息可以生成515预测图像518。
图5示出了参考图像501作为上述方法的输入,参考图像501可以是存储一些先前已解码图像的参考图像缓冲区中的一个(或多个)参考图像。通道580表示码流,该码流可以通过传输信道(例如,用于通信的有线信道或无线信道)或连接到存储器的接口或广播接口等获取。来自通道580的码流进行解复用(DEMUX)560。这里的解复用是指从码流中分离不同类型的信息。在这个示例中,对码流中的运动信息进行解析和/或解码570以获取稀疏运动向量场525,而对码流中的插值方法进行解析550和/或解码以获取每片段插值选择(决策)545。在基于片段的处理590中,输入是参考帧501、经解析(经解码)稀疏运动场525和每片段解析和选择的插值545。这里提到解析和/或解码,表示从码流中获取数据。这可能涉及从码流中解析出数据,还可能涉及从码流中对数据进行熵解码。解析和解码可以在一个共同步骤中执行,也可以在多个步骤中执行。替换地或另外,解码可以包括根据已经解码的其它参数进行推导。
基于片段的处理590包括推导片段530。推导的详细内容将根据结合图7的一个示例描述。片段推导530的结果是密集运动场位置(对应于当前图像中的相应像素位置)的片段535。在获取到片段之后,这些片段与相应经解析和选择的插值相关联。插值用于对相应片段中的MV进行插值,从而获取密集运动场。然后,通过运动补偿帧间预测生成515预测图像518。
图6示出了示例性编码端。在步骤610中,使用参考帧601和当前帧605来推导密集光流。然后,在步骤620中对光流进行子采样,从而获取稀疏运动场625。稀疏运动向量场在码流670中指示。稀疏运动向量场还用于推导630片段635。步骤630还使用参考图像601,如下文详述。然后,在步骤640中为每个片段选择一种插值方法。接着,在步骤650中,同样将每片段选择的插值645转换到码流中。在步骤660中,对携带插值选择645和稀疏运动场625的码流的各个部分进行复用,并且提供给通道680。通道680可以(但不是必须)与通道580相同。
通过信道传输的稀疏运动场与参考帧一起用于推导决策片段。这种推导是本发明的关键部分。使用获取到的片段,编码器可以决定每个片段的最佳插值方法。然后,只有这些决策写入码流中,并且传输到解码器。在当前实施例中,以原始格式传输这些决策,而不使用熵译码。下面的图6示出了编码器的一般过程,其中,具有灰色背景的元素是本发明的一部分。在一些实施例中,基于片段的部分690和解码端的基于片段的部分590都以类似的方式推导片段。
图7详细说明了片段推导。具体地,在上文结合图4描述的方法中,推导多个插值片段包括:
-获取(一个或多个)参考图像701和包括两个或两个以上向量的稀疏运动场725。如上所述,参考图像701可以从参考图像缓冲区中获取。稀疏运动场725可以在解码器侧从码流中获取,在编码器侧通过光流子采样或其它方式确定。
-通过对两个或两个以上运动向量725应用第一插值方法,重建711第一运动场(第一候选运动场721);
-通过对两个或两个以上运动向量725应用第二插值方法,重建712第二运动场(第二候选运动场722);
-通过使用第一运动场721的运动补偿重建(例如,通过运动补偿731)第一中间图像(在图7中称为候选图像)741;
-通过使用第二运动场722的运动补偿重建(例如,通过运动补偿732)第二中间图像742(在图7中称为候选图像);
-根据第一预定规则,至少在图像的第一中间图像和第二中间图像不同的区域中确定760多个插值片段中的片段中心770;
-对于所确定的片段中心中的每个中心,根据第二规则确定780图像中的属于片段790的样本。
图7示出了一种示例性实现方式,其中,片段确定基于第一中间图像741和第二中间图像742之间的差分图像750。需要说明的是,图7中的流程示意图和信号图在编码端和解码端以相同的方式和相同的步骤适用。
上述实施例的一个优点是,关于最佳运动场插值方法的信息可以高效发送。上述方法不是基于块的,因此适用于不存在块结构且不会产生块效应的视频译码器。但是,本发明也可以应用于存在块结构(例如,为了预测目的)的编解码标准。
划分可以利用以下事实:出现在理想掩码(限定每片段插值选择)中的形状通常与出现在两个候选图像之间的差分图像中的形状相似。使用以下事实:差分图像表达了切换可能带来多大好处的信息,理由是:候选图像之间的差值很大表示在切换过程中应该非常小心,即应该使用许多比特。
下面描述在编码端和解码端的示例性实现方式中已知的参数。然后,描述用于推导决策片段、搜索最佳插值方法和最终生成预测图像的一些示例性详细实施例。
在这个实施例中,下表1中的参数在编码器和解码器侧是已知的。这些参数可以事先固定(例如,在标准中定义),也可以作为边信息在码流中传输(发送)。在下文详述的一个可能的示例中,存在两种可选择的运动场插值方法。
表1:编码器和解码器侧已知的参数
推导决策片段
以下过程将参考帧(501或601)和稀疏运动场(525或625)作为输入,并产生一列有序片段(535或635)。
如结合图7所述,在步骤711和步骤712中,对稀疏运动场S 725应用两种不同的插值方法I1(S)和I2(S),以获取两个密集候选运动场D1和D2(也表示为721和722)。这些运动场721和722用于执行运动补偿731和732,产生了候选图像c1和c2(也表示为741和742)。该过程不限于任何特定的运动补偿方法。例如,可以在运动补偿过程中应用样本级线性图像插值。还可以使用双三次插值、抽头滤波器(线性滤波器)或通过神经网络修正的运动补偿等其它方法。
需要说明的是,本发明不限于对通过减法获取到的差分图像进行操作。一般而言,可以使用表示两个候选图像之间的相异性或距离的任何度量。例如,可以使用具有下述特征的导向函数。因此,本文中的术语“差分图像”可以在通用上下文中用作包括表示两个候选图像之间相异性或距离的样本的图像。
差分图像的每个位置(x,y)的导向函数g(x,y)返回有符号数(正、负或0),还用于插值类型掩码划分过程。如果g(x,y)等于0,则解释为位置(x,y)的不同运动场插值方法之间缺乏区分。根据一种示例性实现方式,上述插值类型掩码划分过程不考虑这些位置。对于其余位置,假设每个点(x0,y0)都有一个邻域,其中,最佳插值方法对于具有相同的g(x,y)符号的所有点是相同的。因此,在这个邻域中,对于具有特定的g(x,y)符号的所有点,最佳运动场插值方法可以只使用一个索引来传输(在码流中发送)。g(x,y)的绝对值可以表示为位置(x,y)选择运动场插值方法的重要性。
这里的插值类型掩码划分过程是指确定片段。术语“掩码”是指片段和为这些相应片段选择的插值方法(method/approach)之间的分配。
导向函数可以根据候选图像(例如,c1和c2)构建。下面提供这类导向函数的几个非限制性示例。
1.g(x,y)=c1(x,y)-c2(x,y),其中,c1(x,y)和c2(x,y)分别是与候选图像c1和c2中的位置(x,y)对应的样本的值。这个示例对应于使用第一候选图像741和第二候选图像742之间的像素差值获取到的差分图像。
2.其中,t是预定义阈值。通过这样定义导向函数,插值类型掩码划分过程不考虑候选图像之间的差值小于阈值的位置,因为g(x,y)在这些位置上等于0。在一些示例中,阈值t还可以从g(x,y)的非0值中减去,以避免函数不连续性。这个示例对应于通过第一候选图像741和第二候选图像742之间的像素差值和由t提供的死区获取到的差分图像。
3.其中,/>是去噪函数,例如,全变分去噪器(例如,Antonin Chambolle于2004年1月发表在《数学成像与视觉杂志》的第20卷第1/2期的第89至97页上的“An algorithm for total variation minimization and applications(用于全变分最小化和应用的算法)”中所述的全变分去噪器)。这个示例对应于使用第一候选图像741和第二候选图像742之间的像素差值获取到的并且通过应用预配置的去噪滤波器来去噪的差分图像。
4.其中,/>是滑动平均滤波器。这样,该函数对边缘的反应就会更强。这个示例对应于使用第一候选图像741和第二候选图像742之间的0均值像素差值获取到的差分图像。在这个示例中,均值通过滑动平均来近似。
5.上文第2点、第3点和第4点列出的函数可以组合。例如,去噪信号还会如第2点所述进行阈值化处理或如第4点所述减去估计后的均值。
需要说明的是,候选图像可以包括一个以上通道(例如,在使用神经网络处理的情况下,包括R、G、B或Y、U、V或多个“未命名”通道)。在一种示例性实现方式中,只有一个通道(例如,YUV颜色空间中的亮度(Y)通道)可以用于计算g(x,y)。在另一个示例中,导向函数可以计算为gk(x,y)的线性组合,其中,gk(x,y)是为候选图像中的第k个通道计算出的g(x,y)(g(x,y)=∑ckgk(x,y),其中,ck是常数)。在另一个示例中,g(x,y)=maxkgk(x,y)。换句话说,本发明不限于应用于单个通道或彩色通道,本发明可以应用于其它通道(例如,通用通道或神经网络或深度信息通道等)和多个通道。
这种导向函数是推导片段的基础。执行两个步骤。首先,推导N个片段中心。可以推导出,差分图像具有较大绝对值的区域平均有更多的中心。这种考虑对应于以下概念:在候选图像之间存在巨大差值的区域中,可能希望使用更多比特在更精细的网格上传输信息,因为潜在误差存在较大影响。这里的术语“传输”是指包括到码流中。
在获取到中心之后,将图像中的(可能所有)像素分配给中心以形成片段。换句话说,待划分的每个像素都分配给一个中心。这些片段最好与在差分图像中观察到的形状相似。然后,将生成的片段返回到高级别,使得可以在编码器侧为每个片段确定最佳插值方法,或者可以在解码器侧执行切换。
计算片段中心
在以下两种替代算法中,举例说明了如何生成具有期望属性的片段中心:当差分图像包括绝对值较大的区域时,密度应该较高。以下考虑依赖于随机过程,但是,该实施例使用伪随机发生器,使得该过程是确定性的,并且可以通过为伪随机发生器设置特定的初始状态(随机数(seed))在解码器侧精确重复。在一个实施例中,可以使用以numpy实现的PCG64(可通过https://numpy.org/doc/stable/reference/random/bit_generators/pcg64.html?highlight=pcg64#numpy.random.PCG64查阅)。
需要说明的是,d(x,y)的非0值的数量应大于或等于中心的期望数量N。换句话说,由于中心是从d(x,y)是非0的点中选择的,因此生成的中心不可能比d(x,y)是非0的点多。在一些示例性实现方式中,在使用下文描述的算法之前执行设置N=min(N,K)的额外步骤,其中,K是d(x,y)是非0值的点的数量。
示例1:非均匀采样
在第一示例性方法中,执行所有像素的非均匀采样。非均匀采样是通过从帧内所有点的集合内连续选取伪随机点来实现的。每个点被选取的概率与差分图像在该点上的绝对值成正比。请注意,这种方法有效地排除了差值为0的点,因为这些点被选取的概率等于0。
该特定实现方式可以通过任何方式执行。例如,随机选取可以仅对值大于阈值的点(例如,样本、像素)执行。这样,0值(如果阈值为0)点或值较小的点可以直接排除(从不选择)。类似的效果可以通过在随机选取之前量化差分图像或通过其它方式来实现。“连续选取伪随机点”表示,例如,生成伪随机数,并且根据该伪随机数决定选择哪个点作为片段的中心。在一些实施例中,这个点是从帧内的在先前步骤中没有选择为中心的所有点的集合内选择的。在其它示例中,这个点是从帧内的所有点的集合内选择的,然后如果选择的点已经在中心集合内(之前已经选择为中心),则再执行一次迭代。
在一个示例性实施例中,伪随机数可以预先生成并重用于几个帧。在这种示例中,伪随机数可以均匀分布,选取方法使用两个输入:随机数和差分图像。
基本上,该方法的任何实现方式都是可能的,在其中决定是否将点选择为片段的中心,其中,选择该点的概率取决于其大小。
具体地,这可以通过以下示例性方式实现:图像是向量化的,因此限定了一个明确的顺序。例如,
其中,H是图像的高度,d(x,y)是如上定义的位置(x,y)处的差分图像(对应于导向函数g(x,y)的一个具体示例)。将图像中的样本数表示为K,则d′(n)(其中,n=0,1,..,K-1)是向量化图像,索引n表示图像位置(点)。
然后,根据以下公式计算每个点(在向量d′(n)中存在位置n)的概率Pr(s=n):
其中,n是向量化图像中的索引,s是经采样点的索引。
在一些实施例中,可以使用以下等式:
其中存在一个小的常数∈,例如,∈=10-9,以避免除以0。
累积分布函数(cumulative distribution function,CDF)计算如下:
之后,从范围[0,1]中生成伪随机数irand。如果s′是范围[0,K-1]中的最小索引,则对具有索引s′的点进行采样,
irand≤CDF(s′)
该过程构成了在几个软件库(包括上述numpy)中实现的具有给定概率的随机采样过程。但是,这只是一个示例性实现方式,本发明可以使用产生相似或相同结果的各种方法来实现,如上所述。
根据上文提供的公式,可以构造一种示例性算法以通过整数算术实现这一功能。在下文中,W和H分别表示图像的宽度和高度。所有索引都以0开头。
基于非均匀采样的片段中心生成算法:
1.初始化样本的空集合S
该集合包括的元素可以与要采样或不采样(是否选择为中心)的点相同。
2.设置T=∑x,y|d(x,y)|
T是差分图像中差值的绝对值之和(通用导向函数g(x,y)的一个特定示例,例如,d(x,y)=g(x,y))。
在一些示例中,如果T相对较小(例如,8个比特以下),则值d(x,y)可以乘以相同的常数C,以使值T大于预定义常数,例如,255。如果使用按位PRNG,这可能是有益的。
基本上,对于这种算法,可能希望以保证|d(x,y)|的非0值大于或等于1的方式构建差值d(x,y)。
3.设置p[n]=d(n/H,nmod H)
在这个步骤中,将差分图像向量化为向量p[n]。
4.设置
在这个步骤中,计算CDF c[n]的缩放值的向量(缩放CDF表示CDF乘以T;CDF值通常在0和1之间)。
5.直到生成N个样本:
5.1从伪随机数发生器(pseudo-random number generator,PRNG)中检索个随机比特,并且将值赋给R
5.2如果R>T,则回到迭代开始(“继续”)
5.3找到最小s∈[0,K-1],使得R≤c[s]
这些值c[s]将区间[0,T](从中选择值R)划分成K个区间[0,c[0]],(c[0],c[1]],..,(c[K-2],c[K-1]=T]。在这个步骤中,根据值R所属的区间编号,将随机生成的值R∈[0,T]映射到样本索引s∈[0,K-1]。
5.4设置x=s/H和y=smod H
5.5如果(x1y)∈S,则回到迭代开始(“继续”)
在这个步骤中,如果已经选取好位置(在样本的集合S内),则不会再次添加该位置。
5.6将(x,y)***到S
如果尚未选取位置(在样本的集合S内),则将该位置添加到该集合中。
6.返回样本集合S
使用这个过程,N个点会连续进行采样并返回为中心。换句话说,结果是集合S内的N个样本。然后,在下一步骤中使用中心之前,向量化可以反转回2D图像平面。这样已经产生了中心的自然排序,因此也产生了片段。但是,向量化只是一种示例性实现方式,并且可以设想向量化以某种预定义排序在2D中运行。
由该算法生成的中心的一个示例可以在图8中找到。图8中的(a)部分示出了差分图像。图8中的(b)部分示出了指示已选取中心的黑色像素。可以看出,(b)中存在更多的样本,其中,差分图像(a)或小(暗)或大(亮)。在所示的差分图像(a)中,灰色表示值0。
总而言之,上述非均匀采样产生N个样本的集合S,这些样本对应于片段的中心。但是,非均匀采样只是如何推导中心的一种可能的示例性方式,使得在编码器和解码器侧以相同的方式推导中心,而不需要额外的信令。
加权噪声阈值化
另一种示例性实现方式在本文中称为加权噪声阈值化,如下所述。该过程遵循不同的替代方法(与非均匀采样相比),其中,定义阈值θ,然后生成与图像具有相同大小的均匀噪声信号。可能希望噪声具有高峰度,使得差值较小的点仍然有一些机会被选取。对于这种期望结果,一个可能的、示例性的和有利的选择是对数正态分布。一般而言,较高的峰度对应于存在更多的离群值(远离均值的值)。
在获取到噪声图像之后,噪声与差分图像相乘(逐点,即逐像素)。然后,这些点被选取(选择)为中心,这个值(噪声样本与绝对差分图像值之积)超过阈值θ。接着,例如,根据差分图像的绝对值乘以噪声,对经采样中心进行排序(如果值相同,则可以额外考虑光栅顺序中的样本位置)。又如。可以仅根据光栅顺序中的样本位置执行排序。需要说明的是,可以使用其它排序方案,唯一的要求是排序应在编码端和解码端同步执行。
这种方法的优点是,该方法可以通过更简单的操作不按顺序(并行)执行。阈值也可以通过设置点数并相应地选取θ来确定。例如,点数越多,阈值越小。图8在(c)部分中示出了使用σ=2的对数正态噪声生成的一组中心的示例。
伪随机数发生器
上文举例说明的片段中心生成过程包括伪随机数发生器(pseudo random numbergenerator,PRNG)。PRNG是一个生成看似随机的数字序列的***。输出取决于***的当前状态和最初选择的随机数(seed)。在生成一个数字之后,当前状态会确定性地更新。这样,随机数序列就完全通过随机数和初始状态限定,这通常是为算法指定的。因此,知道随机数就足以多次生成相同的伪随机数序列。该随机数可以预定义或在码流中指示为高级语法的元素等。这样,可以在编码器和解码器侧获取到相同的伪随机数发生器结果。因此,运动信息的编码器和解码器能够推导相同的片段。
存在不同的可用PRNG,这些PRNG的质量因周期长度等不同的统计属性而异。示例包括线性同余发生器(linear congruential generator)、梅森扭转算法(MersenneTwister)、已经在本示例性实施例中用于生成图8中图像的置换同余发生器PCG64(Permuted Congruential Generator PCG64),或中方Weyl序列(Middle Square WeylSequence)PRNG。所有提到的PRGN都在字节级上运行,不使用浮点运算,因此特别适合于译码。
在一些实施例中,PRNG用于在过程中引入非规则性。因此,用于此目的的PRNG不必具有非常好的统计属性,而这些统计属性通常用于评估PRNG的质量。许多随机发生器设计于产生序列,这些序列在统计上与真正的随机实验是无法区分的。但是,对于本申请,只要PRNG产生具有相同概率分布的一系列值即可。事实上,对于非均匀采样方法,保存0到1之间的N个随机数即可,这些数字在每次执行该方法时都可以重复使用(在步骤5.1中,考虑的是T的值)。换句话说,并不要求每次都为算法生成PRNG。例如,对于加权噪声阈值化,图像中的每个像素可以保存一个随机数。因此,根据所使用的计算和存储方式,有余地设计一种高效的实现方式。
计算片段
在获取到片段中心之后,将图像中的剩余点(位置)分配给中心,以形成片段。换句话说,图像中的每个(相关)点都分配给一个中心。只有差分图像为0的点不需要分配,因为切换不会在哪些点上产生任何差值。
这里所说的分配给中心的每个点或分配给中心的所有点是指所有要划分的点。这可能是图像中的所有点。但是不一定:0值或其它小值可能不划分。此外,可以设想只划分图像中的部分(运动被估计/补偿的图像中的某些对象或某些预定部分)。
在一个示例性实施例中,点通过以下规则分配给中心:每个点都分配给最近的中心,其中,差分图像的符号(对于点和中心而言)相同。
图9中示出了片段生成的示例900。在这里,深灰色区域和浅灰色区域分别表示带有负号或正号的差分图像中的区域。这也如相应区域中的符号“+”和“–”所示。共有七个中心C1至C7,由黑点表示。黑线示出了已推导片段的边界。生成的片段可以是不规则的形状,但是仅观察负区域或正区域时,片段可能是中心的沃罗诺伊(Voronoi)单元。给定一组点,将单个点的沃罗诺伊单元限定为所有点,这些点比这一组点(中心)中的任何其它点更靠近这单个点。这里的不规则形状是由于正区域和负区域(包括带正号和负号的样本的区域)之间存在不规则边界。请注意,例如,由白点表示的点P1被分配给中心C3,即使这个点更靠近中心C1。但是,由于中心C1位于差分图像的正部分,而P1和C3位于负部分,因此P1被分配给C3
上述示例性和非限制性过程包括以下步骤,其中,C是所有中心(例如,通过非均匀采样或加权噪声阈值化或其它方式获取到)的集合,P是图像中的所有点(所有要划分的点)的集合。在下文中,p=(x,y)是单个点,d(p)是差分图像在p处的值。Voronoi(C,P)执行沃罗诺伊单元分解,并返回集合V,该集合包括含有每个沃罗诺伊单元中点的集合。C、V和生成的集合S视为有序集。
基于沃罗诺伊单元分解的片段构建算法(变体1):
1.设置P+={p∈P|d(p)>0}和P-={p∈P|d(p)<0}
在这个步骤中,根据图像点P的符号将这些图像点划分为正图像部分或负图像部分。
需要说明的是,在这种示例性实现方式中,0值点不进行划分。
2.设置C+={p∈C|d(p)>0}和C-={p∈C|d(p)<0}
在这个步骤中,根据中心的符号将这些中心划分为正图像部分或负图像部分。这个步骤实际上可以是步骤1的一部分。但是,为了示例性目的,这里单独提供,以确定符号表示法。
3.设置V+=Voronoi(C+,P)和V-=Voronoi(C-,P)
在这个步骤中,分别为各个负中心C-以及各个正中心C+计算(确定)沃罗诺伊区(单元)。
4.初始化片段的空集合S
5.对每个v∈V+执行
5.1将v∩P+添加到S中
在这个步骤中,标识正片段。
6.对每个v∈V-执行
6.1将v∩P-添加到S中
在这个步骤中,标识负片段。
7.返回S
在这里,片段的集合S是完整的。
在该实现方式中,使用的属性是正区域和负区域内的片段是沃罗诺伊单元。因此,将所有中心的集合划分成一个只包括带正差值的点的中心和一个只包括带负差值的点的中心(步骤1)。然后,在步骤3中计算每个子集的沃罗诺伊单元。接着,在步骤5和步骤6中将正区域中的每个像素分配给根据带正差值的中心推导的片段,反之亦然。图10更详细地示出了这个过程。
具体地,图10在左上方示出了负图像部分沃罗诺伊片段,而右边示出了正图像部分沃罗诺伊片段(对应于步骤3)。然后,如步骤5和步骤6所述标识这些片段,如图10的底部所示。
替代地,片段构建算法可以通过以下方式构造(步骤1和步骤2与算法的前一变体完全相同)。
基于沃罗诺伊单元分解的片段构建算法(变体2):
1.设置P+={p∈P|d(p)>0}和P-={p∈P|d(p)<0}
在这个步骤中,根据图像点P的符号将这些图像点划分为正图像部分或负图像部分。
需要说明的是,在这种示例性实现方式中,0值点不进行划分。
2.设置C+={p∈C|d(p)>0}和C-={p∈C|d(p)<0}
在这个步骤中,根据中心的符号将这些中心划分为正图像部分或负图像部分。这个步骤实际上可以是步骤1的一部分。但是,为了示例性目的,这里单独提供,以确定符号表示法。
3.设置V+=Voronoi(C+,P+)和V-=Voronoi(C-,P-)
在这个步骤中,分别为各个负图像部分P-和负中心C-以及各个正图像部分P+和正中心C+计算(确定)沃罗诺伊区(单元)。
4.返回S=V+∪V-
图9和图10中的片段是完连接的,但必须说明的是,这只是为了说明目的。一般而言,片段可以包括几个孤立的全连接区域,或者甚至包括几个孤立的点。在一些示例性实现方式中,制定了划分过程的额外要求:片段必须全连接(片段不应包括两个或两个以上孤立的部分、区域)。这样的要求可以通过选择片段中最大(面积最大)的全连接部分,并且将剩余部分添加到执行默认运动场插值方法的“未划分区域”中来实现。
图11示出了生成的片段、(b)部分中的非规则采样和(c)部分中的加权噪声阈值化的示例。(a)部分示出了差分图像。在这里,灰度级表示(a)部分和(b)部分中的不同片段,并且任意分配,纯粹是为了更好地对比。白色背景显示没有片段的像素,其中,差分图像为0。当仔细观察形状时,可以发现差分图像((a)部分)中出现的边缘也出现在两个片段中。
当获取到片段时,在编码端可以选择每个片段的插值方法。具体地,根据一些示例性实现方式,选择每个片段的最佳插值方法。最佳值可以通过成本函数给出。最佳插值方法可以从插值方法集合中选择,在一些实施例中,插值方法集合可以正好包括两种方法,或者根据其它实施例,可以包括两种以上插值方法。
如已经结合图6和图7所述,以两种可选择的插值方法为例,确定两个相应的候选图像。然后,在有序片段列表中的所有片段上迭代,为每个片段选择(两种可选择方法之间最佳的)插值方法。最好对这列片段进行排序,以便能够根据该顺序将所选择的插值方法的指示***码流中,而不显式地指示上述指示所属的片段的数量。编码器和解码器使用相同的排序,以便解码器可以从码流中获取指示,并且根据该顺序将这些指示正确分配给相应的片段。
返回片段插值方法的示例性选择:可以在每个候选图像和当前片段(为其选择插值方法)的原始图像之间计算失真度量(例如,均方误差(Mean Square Error,MSE))。如果第一候选图像对于当前片段具有较小的MSE,则为该片段指示第一值(例如,“0”)(***到码流中)。如果第二候选图像对于当前片段具有较小的MSE,则为当前片段指示第二值(例如“1”)(***到码流中)。然后,可以使用上下文自适应编码等任何熵编码方法对该码流进行编码。在这种情况下,指示0或1所需的分数个比特在优化过程中也可以结合失真度量(例如,MSE)来考虑。根据一些示例性实现方式,当熵编码用于对关于合适运动场插值方法的每片段信息进行编码时,可以执行片段排序,以最大限度地减少上述信息所需的指示比特。一种可能的实现方式是首先为根据“正”中心(上文称为C+)获取到的分段发送插值方法信息,然后为根据“负”中心(上文称为C-)获取到的片段发送插值方法信息。每个子集都按照图像中的光栅顺序,根据中心坐标进行额外排序。
为了生成515预测图像518,解码器使用片段,该片段是按照与编码器相同的预设规则重建的。
与图像大小相同的掩码m使用0进行初始化。之后,在有序列表中的所有推导出的片段上迭代,并且将对应掩码元素的值设置为接收到的决策。这样,获取到一个二进制掩码,0表示第一方法最佳,1表示第二方法最佳。在这里,在这种示例性实现方式中,差分图像为0的点默认通过第一方法进行插值。在另一个示例中,默认方法的索引可以在码流中指示。默认方法可以是可选择方法之一,也可以不同于两种可选择方法。例如,默认方法可以是最邻近复制(插值)。最邻近插值表示使用最邻近样本的运动向量。如果几个邻居在同一距离,可以存在预定义处理顺序,例如,从上到下和从左到右,或者从左到右和从上到下,或者其它处理顺序。
为了进一步提高质量,在一些实施例中,在相应地选择插值方法之前,可以对掩码执行平滑操作。这是因为当前残差译码器可能存在小离群值的问题,这些小离群值在此过程中可能以孤立像素的形式出现,这些孤立像素使用与周围像素不同的插值方法。但是,这一步骤可以省去。例如,两种替代的平滑方案可以是:高斯核滤波(Gaussian kernelfiltering)或导向图像滤波(Guided Image Filtering,GIF)。使用GIF可能会出现更稳定的行为。但是,本发明不限于任何特定的平滑处理,因此还可以使用其它平滑滤波器。
对于高斯核滤波,掩码可以使用带有一定方差的2D高斯核进行滤波。控制平滑强度的方差可以是预设的,或者可以在编码器侧进行速率失真优化(rate-distortionoptimization,RDO),并且可以通过信道传输(例如,在码流中指示)。
对于导向图像滤波(例如,参见Kaiming He、Jian Sun和Xiaoou Tang在2010年的欧洲计算机视觉会议会刊上发表的“Guided Image Filtering(导向图像滤波)”,掩码本身可以用作滤波指导。这样会更好地保留边缘,同时对孤立像素进行相同的平滑处理。确定平滑强度的自由正则化参数α也可以预设或者确定为RDO的结果,并且在码流中传输。
在替代地使用原始二进制掩码进行平滑处理之后,例如,通过将最终预测图像p设置为如下,执行切换:
p(x,y)=(1-m(x,y))c1(x,y)+m(x,y)c2(x,y)。
这里,p(x,y)是预测图像,c1(x,y)和c2(x,y)是候选图像,m(x,y)是掩码。如果进行了平滑处理,掩码可以是二进制的,也可以取0到1之间的值(可用固定的逗号运算表示)。
在一个示例性实施例中,使用了个片段,其中,RMv是之前传输运动向量(例如,传输对应于上述至少两个运动向量的稀疏运动场)使用的总比特数。由于在使用两种可选择插值方法的示例性实现中,传输每个片段需要1比特,因此在切换上大约或确切地使用了帧间预测的总比特预算的1/6。
对于运动向量的子采样和传输,基于三角形划分的后向自适应运动场子采样技术(TMVS方法,参见Fabian Brand、Jürgen Seiler、Elena Alshina、AndréKaup在2020年的多媒体信号处理国际研讨会会刊上发表的“A Triangulation-Based Backward AdaptiveMotion Field Subsampling Scheme(基于三角形划分的后向自适应运动场子采样方案)”,其内容通过引用并入本文中)可以用来避免指示运动向量位置(点)。可以与本发明实施例一起使用的方法还包括上述PCT/EP2020/062062和PCT/RU2020/000302。但是,本发明并不限于这类方法,而且一般而言,运动向量可以通过任何其它方式指示或提供(推导),因为这些运动向量仅仅是本发明方法的输入,这些方法根据这些运动向量对剩余的运动向量进行插值。
两种可选择(候选)插值方法的一个示例可以是线性插值和最邻近插值(分别对应于仿射运动模型和平移运动模型)。
一种示例性实现方式的可能配置是使用非规则采样来生成样本,使用所描述的沃罗诺伊单元方法来生成实际片段,以及使用导向图像滤波(guided image filtering,GIF)在解码器侧重建之后对掩码进行平滑处理。滤波器参数可以根据所使用的残差译码方法推导出。例如,通过JPEG2000,可以应用残差译码器滤波器的参数,即半径4和正则化参数α=0.1。
一般而言,本发明实施例可以用于运动场子采样之后的基于子采样的运动场传输方案。通过信道传输的稀疏运动场与参考帧一起用于推导决策片段。使用获取到的片段,编码器可以决定每个片段的最佳插值方法。然后,只有这些决策写入码流中,并且传输到解码器。在一种示例性实现方式中,决策可以以原始格式指示,而不进行熵译码或进一步编码(无损压缩)。
通过本文中提供的实施例,通过将图像划分成片段并传输每个片段的最佳方法,传输切换信息以在两种或两种以上不同的运动场插值方法之间切换。这些片段仅使用解码器侧可用的信息推导出。这样,片段就不必显式地指示给解码器。
其它具体的示例性扩展和修改
本发明不限于上述非常具体的示例性实现方式。相反,本发明可以存在更多可能的改进和替代组件。
如上所述,形成片段可以包括以下方法:对于确定的插值片段中心中的每个中心,将图像中属于该片段的样本确定为使用第一中间图像和第二中间图像之间的差值获取到的差分图像中的沃罗诺伊区。分别为差分图像中带有正号的区域和差分图像中带有负号的区域确定沃罗诺伊区。
然而,例如,这些片段不一定通过将沃罗诺伊单元用作片段推导出。可以使用用于运动场稀疏化的采样网格。这可能对应于将沃罗诺伊单元用作片段,但这只是一种选择。替代地,Delaunay(德洛涅)三角形可以用作片段。如果上述TMVS方法用于运动场稀疏化,这可能是特别理想的。
可以修改上文举例说明的划分方法。例如,可以使用基于参考图像的划分。例如,如果图像划分产生精细的片段,则可以根据这些片段直接传输切换信息。如果由图像划分器产生的片段太粗糙,以至于基于这些片段的传输不合理,则可以使用上述方法来推导片段并使用基于对象的划分来修正它们。基于参考图像的划分可以包括基于神经网络(neural network,NN)(例如,卷积NN、CNN)的划分,等等。划分可以是,例如,在编码过程中执行的语义划分(例如,就像在Detectron项目https://github.com/facebookresearch/ Detectron中一样)。考虑到传统方法,可能是某种类型的基于图的划分或基于梯度的方法。换句话说,本发明不限于任何特定类型的划分。
选取每个片段的最佳方法可以基于不同的度量。在上述实施例中,MSE用于示例性目的。但是,可以使用任何其它距离/相异性度量,例如,用于非矩形区域的改进型MS-SSIM(多尺度结构相似性)。
每个决策都可能存在完整的RDO。但是,为了在计算复杂性方面简化决策,可以使用其它方法。编码器可以测试两种方法,而不是为每个片段选择产生最小误差的方法,同时考虑边信息进行熵译码时的码率。在一些示例性实现方式中,可以首先为每个片段选择最佳插值方法,然后可以尝试几种片段排序方法,并且选择熵译码后发送最少比特的方法。在这种情况下,选择的排序方法在码流中额外指示。在一些示例性实现方式中,残差信号译码使用的比特数和重建信号的质量(根据残差信号和预测信号获取到)也可以在RDO中考虑。
即使上述示例性实现方式提供了两种可选择的插值方法,还可以有更多的候选方法。在这种情况下,使用分层切换可以高效选择插值方法。
例如,为了使用两个以上候选运动场,可以将这些运动场分成两组,而且可以首先指示(在码流中指示)这些组中的哪一组对于每个片段是最佳的。然后,在更精细的级别上,可以在一组或多组中的各个方法之间进行切换。在这种情况下,使用上述方法执行多次划分,每个决策对应一次。
具体地,例如,如果有四种运动场插值方法,则相应地构建四个候选图像I1、I2、I3、I4
然后执行以下步骤:
1.推导图像对I1/I2的二进制掩码m1,并且构建组合帧I12
2.推导图像对I3/I4的二进制掩码m2,并且构建组合帧I34
3.推导图像对I12/I34的二进制掩码m3,并且构建最终预测I1234
除差分图像之外,可以使用不同的局部相似性度量,如上文详述。
差分图像可以使用死区来计算:可以引入死区,使得在整个算法中,将所有差值小于某个阈值的像素都视为0。这样会以质量为代价来降低速率。例如,在上述片段生成算法中,可以考虑集合P′={p∈P||d(p)|>t},而不考虑帧内所有点的集合P,其中,t是非0阈值。P\P'中所有点的运动场插值方法可以预定义,或者可以在码流中指示其索引。
一般而言,第一中间图像和第二中间图像之间的差值是根据相异性度量按样本计算的。需要说明的是,这里的术语“相异性度量”是为了解释目的。一般而言,可以使用任何相似性度量,因为相似度也反向指示相异度。例如,可以通过任何距离度量来测量差值。参考上述导向函数g(x,y)的示例。
在一种示例性实现方式中,上述确定多个插值片段的中心是根据第一预定规则,在图像的第一中间图像和第二中间图像相差超过预定量的区域中执行的。在一些实施例中,预定量可以为0。但是,预定量可以大于0,对应于上文提到的死区。
在参考图3至图7描述的实施例中,第一预定规则可以指定图像中样本的非均匀采样,图像中的待成为片段中心的样本使用(编码端和解码端已知的且相同的)预定随机数(seed)伪随机地选取。选择样本的概率与第一中间图像和第二中间图像之间的绝对差成正比。
替代地,第一预定规则包括加权噪声阈值化,其包括:生成伪随机噪声样本,并且通过将伪随机样本(逐样本)与使用第一中间图像和第二中间图像之间的差值获取到的差分图像中的相应样本相乘,获取噪声差分图像;选择噪声差分图像中超过预定阈值的样本作为多个插值片段的中心。需要说明的是,如果差值(例如,g(x,y))在一些位置上可以是负的,则可以有利地使用绝对值。
一般而言,在一些实施例中,为了降低复杂性,在图像的第一中间图像和第二中间图像满足相似性准则的区域中不确定多个插值片段的中心。
相似性准则可以是第一中间图像和第二中间图像中的对应区域没有不同。术语“不同”可以是指“非0差值”或“绝对差大于阈值”或上述其它差异度量。换句话说,满足相似性准则表示第一中间图像和第二中间图像在特定区域中足够相似。
如上所述,在一个实施例中,运动插值信息包括与多个插值片段中的每个片段相关联的一条运动插值信息。运动插值信息中的多条信息与多个插值片段中的每个相应插值片段的关联关系通过以下内容提供:
-运动插值信息中的多条信息在码流语法中的排序;
-确定的多个插值片段的预定排序。
如上所述,在一些实施例中,插值片段在编码器和解码器侧以相同的方式确定。因此,当片段的顺序在编码器和解码器侧是已知的且保持相同,并且当编码器和解码器都知道码流的语法时,则片段和边信息(插值信息)之间的关联关系可以在编码器和解码器侧以相同的方式确定。例如,映射可以是预定义的,可能是由标准预定义的。映射也可以是一些预定义的片段排序方法,可以根据边信息译码(例如,如果使用的是熵译码)所需的比特选择其中一种方法。选择的方法可以在码流中指示。在另一个示例中,片段排序方法可以根据预定义规则基于以下一个或多个内容确定:帧/条带类型、时间层(在金字塔B帧译码的情况下)、量化参数(或设置期望重建质量的任何其它参数)、当前帧的分辨率、参考帧的分辨率(如果与当前帧分辨率不同)。
根据一个实施例,上述方法还可以包括:根据图像中的每个样本所在的片段,确定该样本的插值方法,以获取在每个掩码图像样本中指示插值方法的掩码图像。换句话说,掩码图像是一种数据结构,它包括每个图像样本对应的指示要应用的插值方法的指示符。这种数据结构存储在编码器和解码器侧的存储器中,以用于插值。需要说明的是,没有必要一次存储整个掩码。掩码的指示可以仅在执行动作(例如,解析、解码、插值、编码、滤波等)所需的时间内存储。该方法还可以包括以下步骤:将默认插值方法分配给不属于任何片段的掩码图像样本。该方法可以是片段可选择的方法之一,也可以是与可选择方法不同的方法。该方法还可以包括通过应用由掩码图像中的对应样本指定的插值方法,确定图像中的每个样本的运动向量。如果每个像素(图像样本)只有两种插值方法可选择,则掩码可以是二进制的。
作为独立掩码图像译码的替代,可以使用掩码图像预测。如上所述,特定运动场插值方法对应于特定运动模型(例如,最邻近对应于平移运动,线性插值对应于仿射运动模型)。对于一个场景中的自然内容,运动模型对于同一对象在帧之间或多或少相似。这种相似性可以通过执行掩码图像的预测译码来利用。例如,放置在参考帧中特定对象上的片段的插值方法可以用作放置在当前帧中同一对象上的片段的插值方法的预测。这种预测译码降低了传输补充信息(每个片段的运动场插值方法)的码率。
根据一些示例性实现方式,上述方法还包括以下步骤:在确定运动向量之前对掩码图像进行平滑处理。平滑处理可以通过高斯滤波或导向图像滤波或通过线性滤波等其它方法执行。
例如,在平滑处理中,掩码中的每个元素都变成区间[0,1]中的实数。该数字用于获取重建图像样本,作为两个重建候选图像的加权和。换句话说,第一插值方法用于对样本的第一运动向量进行插值,第二插值方法用于对样本的第二运动向量进行插值。接着,通过使用第一运动向量的运动补偿形成第一候选样本,通过使用第二运动向量的运动补偿形成第二候选样本。然后,使用通过如上所述的平滑处理确定的权重对第一候选样本和第二候选样本进行加权平均。
在另一个示例中,使用两种方法,即运动向量通过第一方法和第二方法进行插值,而不是选择对运动向量进行插值的一种插值方法。然后,生成的运动向量是两个插值运动向量的加权平均值,权重通过平滑处理来获取。本发明不限于这样的示例。加权平均可以涉及两个以上插值运动向量或两个以上重建候选样本。
如上所述,通过应用德洛涅三角形划分进行运动场的稀疏化来确定两个或两个以上运动向量可能是有利的。但是,还可以应用稀疏运动场的任何其它稀疏化方法或任何其它确定方法(例如,分层划分等)。在本发明中,输入运动向量和运动向量的位置,并且可以通过任何方式确定。本文中使用的术语“稀疏化”是指运动场的子采样。稀疏化可以是均匀的,也可以是不均匀的。
在编码端,该方法还可以包括:根据成本函数为多个插值片段中的每个片段选择插值方法,其中,成本函数包括速率、失真和复杂性中的一个或多个。这种选择可以根据原始图像(输入到编码器)和重建图像执行。需要说明的是,术语“优化”并不一定表示实现了全局最优。重建图像的质量、其速率和/或计算复杂性可能取决于许多参数,这些参数不是独立的,因此可以在优化过程中执行简化,实际上不会实现全局最优。术语“执行优化”是指执行RDO等,即尝试组合参数并且根据包括质量项和速率项的成本函数来决定哪些参数用于编码。
但是,没有必要根据重建图像和原始图像执行RDO。可以设想对运动场的重建执行优化。换句话说,将重建运动场与(稀疏化之前的)原始密集运动场进行比较。当编码器也执行稀疏化时,即了解(可能是密集的)原始运动场时,这种方法是有可能的。但是,选择插值可以通过任何其它方式执行。例如,考虑到某些感兴趣区域的内容重要性,精度可以变化等。需要说明的是,(可能是密集的)原始运动场的信息不仅可以从光流方法中获取,而且还可以从其它方式获取,例如,在屏幕内容译码的情况下,这种信息可以通过外部工具或从操作***提供给编码器。
总而言之,在一个实施例中,通过将图像划分成片段并传输每个片段的最佳方法,在码流中发送切换信息以在两种或两种以上不同的运动场插值方法之间切换。这些片段仅使用解码器侧可用的信息推导出。这样,片段就不必显式地指示给解码器。划分利用以下事实:出现在理想掩码中的形状通常与出现在两个候选图像之间的差分图像中的形状相似。还利用以下事实:差分图像传达切换可能带来多大好处的信息,理由是:候选图像之间的巨大差值表示在切换过程中应该非常小心,即应该使用许多比特。
具有对应功能特征的装置的示例性实现方式如图12和图13所示。
根据一个实施例,提供了一种用于重建包括多个样本的图像的运动向量场的装置。该装置及其功能模块如图13所示。该装置可以在硬件方面包括处理电路,该处理电路用于执行下文描述的模块的功能。这些模块可以由相同的或不同的处理电路部分实现,并且可以是相同软件的一部分或构成单独的计算机代码部分(程序)。标记1310示出了可以存储在外部存储器或存储设备中的码流,或通过装置的接口(例如,端口)从外部存储器和/或通过通信连接(网络)获取到的码流。码流1310不是指整个视频序列的码流。相反,码流1310是指当前处理的相关部分。如本领域技术人员所知,以滑动窗口方式处理码流并且只有缓冲部分用于重建当前图像或图像部分,这已足够。标记1320示出了用于从码流中解析出(也可能是解码出)插值信息的功能模块。码流中的插值信息对应于每片段决策,即使用哪种插值方法。
标记1350表示用于根据码流获取两个或两个以上运动向量(稀疏运动场)的模块,其中,两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动。
模块1360用于根据获取到的两个或两个以上运动向量(在模块1350中获取到的稀疏运动场)以及根据与两个或两个以上运动向量相关的一个或多个参考图像,推导多个插值片段(可以存储在缓冲区中)1370。一个或多个参考图像由模块1340获取。例如,模块1340对应于例程,该例程从参考图像缓冲区中获取参考图像。模块1340可以但不是必须包括参考图像缓冲区。
如上所述,模块1320用于从码流中获取运动插值信息,其中,运动插值信息为多个插值片段中的每个片段指示用于重建该片段中的运动的插值方法。将获取到的运动插值信息(决策片段)提供给模块1330,然后,模块1330重建(例如,密集的)原始运动向量场1380。模块1330还可以(但不是必须)重建图像(image/picture)1390。
换句话说,对于一个插值片段中的样本,模块1330通过应用由所述片段的运动插值信息指示的插值方法并且使用两个或两个以上运动向量中的至少一个向量,重建运动向量场。
类似于编码器,根据图12中所示的一个实施例,提供了一种用于对包括多个样本的图像的运动向量场进行编码的装置。该装置包括用于执行图12中所示的功能模块的功能的处理电路。类似地,对于上文参考图13描述的解码器,编码器也可以实现为硬件和软件的组合。
该装置生成码流1280。模块1220提供由两个或两个以上运动向量表示的稀疏运动场,其中,两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动。该运动场可以包括在码流中,或者具体地包括在码流1280中。需要说明的是,这里通常使用术语“码流”,运动场信息和插值信息可以在不同的码流部分内、在不同的数据包或子流中发送。可以设想运动场信息是根据另一个源或流推导出的,或者已经存储在解码器侧,使得本发明中的编码器装置仅将插值信息编码到码流1280中。
模块1210用于根据两个或两个以上运动向量1220和与两个或两个以上运动向量相关的一个或多个参考图像1240,推导多个插值片段1230。一个或多个参考图像由模块1240获取。例如,模块1240对应于例程,该例程从参考图像缓冲区中获取参考图像。模块1240可以但不是必须包括参考图像缓冲区。
模块1270用于将运动插值信息编码到码流1280中,其中,运动插值信息为多个插值片段1230中的每个片段指示用于重建该片段中的运动的插值方法。插值方法由编码器装置在模块1250等中确定,模块1250可以用于:对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用两个或两个以上运动向量中的至少一个向量,确定运动向量场。具体地,例如,模块1250可以根据基于决策片段1230重建的重建图像、原始(当前已编码的)图像1260和稀疏运动场1220以及参考图像1240执行优化。
下面结合示出了本发明一些实施例的图14至图20进一步描述示例性装置。
图14示出了一个实施例的示例。具体地,根据上述一些实施例,运动估计单元266可以用于提供运动向量进行帧间预测。图14是用于实现本申请中一些技术的示例性视频编码器20的示意框图。在图14的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、环路滤波器单元220、解码图像缓冲区(decoded picture buffer,DPB)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254。本发明一些实施例会涉及帧间预测。最新编解码标准中可以使用基于三角形划分的划分,而不是使用分层划分单元(未示出)。在运动估计中,作为帧间预测的一部分,可以实现运动流估计266,包括根据任何已知方法的光流(密集运动场)确定、运动场稀疏化、片段确定、每个片段的插值确定,以及码流内的插值信息的指示(例如,通过熵编码器270)。帧间预测单元244根据在运动估计单元266中确定的运动向量(运动向量流)执行当前帧的预测。
残差计算单元204、变换处理单元206、量化单元208和模式选择单元260可以组成编码器20的前向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254可以组成视频编码器20的后向信号路径,其中,视频编码器20的后向信号路径对应于解码器(参见图3中的视频解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picturebuffer,DPB)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
编码器20可以用于通过输入端201等接收图像17(或图像数据17)。图像17可以是组成视频或视频序列的图像序列中的图像。接收到的图像或图像数据也可以是预处理图像1519(或预处理图像数据1519)。为简单起见,以下描述中使用图像17。图像17还可以称为当前图像或待译码图像(尤其是在视频译码中为了将当前图像与同一视频序列(也就是同样包括当前图像的视频序列)中的其它图像(例如先前的经编码和/或经解码图像)区分开)。
(数字)图像是或可以视为由具有强度值的样本(sample)组成的二维阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的样本数量限定了图像的大小和/或分辨率。为了表示颜色,通常采用3个颜色分量,即图像可以表示为或可以包括3个样本阵列。在RBG格式或颜色空间中,一个图像包括对应的红色、绿色和蓝色样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如,YCbCr,包括Y表示的亮度分量(有时还用L表示)以及Cb和Cr表示的2个色度分量。亮度(luminance,简写为luma)分量Y表示亮度或灰度级强度(例如,在灰度等级图像中两者相同),而2个色度(chrominance,简写为chroma)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图像包括由亮度样本值(Y)组成的亮度样本阵列和由色度值(Cb和Cr)组成的2个色度样本阵列。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然。该过程也称为颜色变换或转换。如果图像是黑白的,则该图像可以只包括亮度样本阵列。相应地,图像可以为黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和2个对应的色度样本阵列,等等。
图14所示的视频编码器20的实施例可以用于逐块或按帧对图像17进行编码,例如,编码和预测可以按块203执行。例如,上述三角形划分可以对一些块(图像中的矩形或方形部分)分别执行。此外,帧内预测可以按块进行,可能包括划分成不同大小的块。
图14所示的视频编码器20的实施例还可以用于通过使用条带(也称为视频条带)对图像进行划分和/或编码,其中,图像可以划分成一个或多个条带(通常是不重叠的)或者使用一个或多个条带进行编码,每个条带可以包括一个或多个块。条带是图像中没有使用同一图像中的其它条带来预测的部分。
图14所示的视频编码器20的实施例还可以用于通过使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行划分和/或编码,其中,图像可以划分成一个或多个分块组(通常是不重叠的)或使用一个或多个分块组进行编码,每个分块组可以包括一个或多个块或一个或多个分块等,每个分块可以是矩形等,并且可以包括一个或多个块(例如,CTU),例如,可以并行译码的完整或分数块。
残差计算单元204可以用于通过以下方式根据图像块203和预测块265(后续提供了预测块265的更多详细描述)来计算残差块205(还称为残差205):例如,逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值,以获取样本域中的残差块205。
变换处理单元206可以用于对残差块205的样本值应用离散余弦变换(discretecosine transform,DCT)或离散正弦变换(discrete sine transform,DST)等变换,以获取变换域中的变换系数207。变换系数207也可以称为变换残差系数并表示变换域中的残差块205。本发明还可以应用其它变换,可以是内容自适应变换,例如,KLT等。
变换处理单元206可以用于应用DCT/DST的整数近似,例如,H.265/HEVC专用的变换。与正交DCT变换相比,这种整数近似通常通过某一因子进行缩放。为了维持经正变换和逆变换处理的残差块的范数,应用其它缩放因子作为变换过程的一部分。缩放因子通常是根据某些约束条件选择的,例如,缩放因子是用于移位运算的2的幂、变换系数的位深度、精度与实现成本之间的权衡等。例如,通过逆变换处理单元212等为逆变换(以及视频解码器30通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子;相应地,编码器20可以通过变换处理单元206等为正变换指定对应的缩放因子。
视频编码器20(相应地,变换处理单元206)的实施例可以用于直接输出或通过熵编码单元270进行编码或压缩后输出变换参数(例如,一种或多种变换的类型),使得视频解码器30可以接收并使用变换参数进行解码,等等。
量化单元208可以用于通过应用标量量化或向量量化等来量化变换系数207,以获取经量化系数209。经量化系数209也可以称为经量化变换系数209或经量化残差系数209。
量化过程可以减少与部分或全部变换系数207相关的位深度。例如,n位变换系数可以在量化期间向下取整到m位变换系数,其中,n大于m。量化程度可以通过调整量化参数(quantization parameter,QP)进行修改。例如,对于标量量化,可以进行不同程度的缩放来实现较细或较粗量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。合适的量化步长可以通过量化参数(quantization parameter,QP)表示。例如,量化参数可以是一组预定义的合适量化步长的索引。例如,小的量化参数可以对应精细量化(小的量化步长),大的量化参数可以对应粗糙量化(大的量化步长),反之亦然。量化可以包括除以量化步长,而由反量化单元210等执行的对应反量化和/或解量化可以包括乘以量化步长。根据HEVC等一些标准的实施例可以用于使用量化参数来确定量化步长。一般而言,量化步长可以根据量化参数通过包括除法的等式的定点近似进行计算。可以引入额外的缩放因子来进行量化和反量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的缩放而修改的残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的缩放。可选地,可以使用自定义量化表并在码流等中由编码器向解码器指示(signal)。量化是有损操作,其中,损失随着量化步长的增大而增加。
图像压缩级别受量化参数(quantization parameter,QP)控制,量化参数可以对于整个图像是固定的(例如,通过使用相同的量化参数值),也可以对图像的不同区域具有不同的量化参数值。
根据一个实施例,提供了一种用于对图像视频序列中的图像进行解码的视频解码器,包括:用于对码流中的图像的运动向量场进行解码(如上文结合图13所述)的装置。视频解码器还包括根据所提供的运动向量应用运动补偿以预测图像(即视频序列中的图像(运动图像))的电路,以及用于根据预测图像重建图像的电路。
图15示出了解码器和对应解码方法的实施例的一个示例。具体地,运动重建单元358添加到解码器30中,用于根据推导出的片段和运动向量执行运动重建。具体地,图15示出了用于实现本申请中技术的视频解码器30的一个示例。视频解码器30用于接收(例如)由编码器20编码的经编码图像数据21(例如,经编码码流21),以获取经解码图像331。经编码图像数据或码流包括用于对该经编码图像数据进行解码的信息,该数据可以是表示经编码视频条带(和/或分块组或分块)的图像块的数据和相关语法元素。
在图15的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如,求和器314)、环路滤波器320、解码图像缓冲区(decoded picturebuffer,DPB)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或可以包括运动补偿单元。在一些示例中,视频解码器30可以执行大体上与结合图14中的视频编码器100描述的编码过程相反的解码过程。
如结合编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。相应地,反量化单元310在功能上可以与反量化单元110相同,逆变换处理单元312在功能上可以与逆变换处理单元212相同,重建单元314在功能上可以与重建单元214相同,环路滤波器320在功能上可以与环路滤波器220相同,解码图像缓冲区330在功能上可以与解码图像缓冲区230相同。因此,对视频编码器20的相应单元和功能进行的解释对应地适用于视频解码器30的相应单元和功能。
熵解码单元304用于解析码流21(或通常是经编码图像数据21),并对经编码图像数据21执行熵解码等,以获取经量化系数309和/或经解码编码参数(图15中未示出),例如,帧间预测参数(例如,参考图像索引和运动向量或插值信息等更多参数)、帧内预测参数(例如,帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任一个或所有。熵解码单元304可以用于应用与结合编码器20中的熵编码单元270描述的编码方案对应的解码算法或方案。熵解码单元304还可以用于将帧间预测参数、帧内预测参数和/或其它语法元素提供给模式应用单元360,并将其它参数提供给解码器30中的其它单元。视频解码器30可以接收视频条带级和/或视频块级的语法元素。作为条带和相应语法元素的补充或替代,可以接收和/或使用分块组和/或分块以及相应语法元素。
反量化单元310可以用于从经编码图像数据21(例如,由熵解码单元304等解析和/或解码)接收量化参数(quantization parameter,QP)(或者通常是与反量化相关的信息)和经量化系数,并根据这些量化参数对经解码和经量化系数309进行反量化,以获取经解量化系数311。经解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带(或分块或分块组)中的每个视频块确定的量化参数来确定量化程度,同样也确定需要应用的反量化的程度。
逆变换处理单元312可以用于接收经解量化系数311(也称为变换系数311),并对经解量化系数311进行变换,以获取样本域中的重建残差块213。重建残差块213也可以称为变换块313。变换可以是逆变换,例如,逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于(例如,由熵解码单元304等解析和/或解码)从经编码图像数据21接收变换参数或对应的信息,以确定要应用于经解量化系数311的变换。
重建单元314(例如,加法器或求和器314)可以用于通过以下方式将重建残差块313添加到预测块365以获取样本域中的重建块315:例如,将重建残差块313的样本值与预测块365的样本值相加。
环路滤波器单元320(在译码环路中或之后)用于对重建块315进行滤波,以获取经滤波块321,从而顺利进行像素转变或以其它方式提高视频质量,等等。环路滤波器单元320可以包括一个或多个环路滤波器,例如,去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如,双边滤波器、自适应环路滤波器(adaptive loop filter,ALF)、锐化或平滑滤波器、协同滤波器或其任意组合。虽然环路滤波器单元320在图15中示出为环路内滤波器,但在其它配置中,环路滤波器单元320可以实现为后环路滤波器。
随后将一个图像中的经解码视频块321存储在解码图像缓冲区330中,解码图像缓冲区330存储经解码图像331作为参考图像,以便后续对其它图像进行运动补偿和/或输出或显示。
解码器30用于通过输出端312等输出经解码图像311,以向用户呈现或供用户查看。
帧间预测单元344在功能上可以与帧间预测单元244相同,帧内预测单元354在功能上可以与帧内预测单元254相同。帧内预测单元254可以根据划分和/或预测参数或从将编码图像数据21接收的相应信息(例如,通过解析和/或解码,例如,由熵解码单元304)执行图像划分(split/partition)以及预测。帧间预测依赖于单元358根据(例如,也是熵解码的)插值信息重建运动向量场而获取到的预测。模式应用单元360可以用于根据重建图像、块或相应的样本(经滤波或未经滤波)按块执行预测(帧内预测或帧间预测),以获取预测块365。
当视频条带被译码为经帧内译码(I)条带时,模式应用单元360中的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像中的先前经解码块的数据为当前视频条带中的图像块生成预测块365。当视频图像被译码为帧间译码(例如B或P)条带时,模式应用单元360中的帧间预测单元344(例如,运动补偿单元)用于根据运动向量和从熵解码单元304接收的其它语法元素为当前视频条带中的视频块生成预测块365。对于帧间预测,这些预测块可以根据其中一个参考图像列表内的其中一个参考图像生成。作为条带(例如,视频条带)的补充或替代,相同或类似的过程可以应用于使用分块组(例如,视频分块组)和/或分块(例如,视频分块)的实施例或由这些实施例应用。例如,视频可以使用I、P或B分块组和/或分块进行译码。
模式应用单元360用于通过解析运动向量或相关信息以及其它语法元素为当前视频条带中的视频块确定预测信息,并使用该预测信息为正在解码的当前视频块生成预测块。例如,模式应用单元360使用接收到的语法元素中的一些来确定用于对视频条带中的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的一个或多个参考图像列表的构建信息、与运动向量相关联并位于条带中的每个确定的样本位置的运动向量,以及用于对当前视频条带中的视频块进行解码的其它信息。作为条带(例如,视频条带)的补充或替代,相同或类似的过程可以应用于使用分块组(例如,视频分块组)和/或分块(例如,视频分块)的实施例或由这些实施例应用。例如,视频可以使用I、P或B分块组和/或分块进行译码。
视频解码器30的其它变型可以用于对经编码图像数据21进行解码。例如,解码器30可以在没有环路滤波单元320的情况下生成输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下针对某些块或帧直接反量化残差信号。在另一种实现方式中,视频解码器30可以包括组合成单个单元的反量化单元310和逆变换处理单元312。
应当理解的是,在编码器20和解码器30中,当前步骤的处理结果可以做进一步处理,然后输出到下一步骤。例如,在插值滤波、运动向量推导或环路滤波之后,可以对插值滤波、运动向量推导或环路滤波的处理结果执行限幅(clip)或移位(shift)等更多操作。
此外,采用如上所述的样本位置推导的运动补偿可以用于图16所示的编码链和解码链。
编码链包括光流估计1410,将当前图像1470和参考图像1480作为输入。光流估计1410产生密集流场1472,密集流场1472由稀疏化器1420进一步处理,产生稀疏流场1474。将稀疏流场1474输入到编码器1430以生成码流1475(包括稀疏运动场,可能还包括插值信息)。码流1475由解码器1440解码,包括推导稀疏流场1477,稀疏流场1477进入密集化器(可能具有插值信息)1450,从而产生重建密集流场1478。重建密集流场1478与参考图像1480一起用于在重建阶段1460中生成重建图像1490。
图17示出了可以部署上述编码器-解码器处理链的对应***。图17是可以利用本申请中技术的示例性译码***1500(例如,视频译码***1500(或简称为译码***1500))的示意框图。视频译码***1510中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)是两个示例,即可以用于根据本申请中描述的各种示例执行各种技术的设备。
如图17所示,译码***1510包括源设备1512,源设备1512用于提供经编码图像数据1521,例如,提供给目的地设备1514;目的地设备对经编码图像数据1513进行解码。
源设备1512包括编码器20,并且可以另外(即可选地)可以包括图像源1516、预处理器(或预处理单元)1518(例如,图像预处理器1518)和通信接口或通信单元1522。
图像源1516可以包括或者可以是任何类型的用于捕获真实世界图像的摄像机等图像捕获设备,和/或任何类型的用于生成计算机动画图像的计算机图形处理器等图像生成设备,或者任何类型的用于获取和/或提供真实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任意组合(例如增强现实(augmentedreality,AR)图像)的其它设备。图像源可以是任何类型的存储任一上述图像的存储器或存储。
为了区分预处理器1518和预处理单元18执行的处理,图像或图像数据1517还可以称为原始图像或原始图像数据1517。
预处理器1518用于接收(原始)图像数据1517并对图像数据1517执行预处理,以获取预处理图像1519或预处理图像数据1519。预处理器1518执行的预处理可以包括修剪(trimming)、颜色格式转换(例如,从RGB转换为YCbCr)、调色或去噪等。可以理解的是,预处理单元1518可以是可选组件。
视频编码器20用于(例如,根据图14)接收预处理图像数据1519并提供经编码图像数据1521。
源设备1512中的通信接口1522可以用于接收经编码图像数据1521,并通过通信信道1513将经编码图像数据1521(或对经编码图像数据1521进一步处理后得到的数据)传输给另一设备,例如,目的地设备1514或任何其它设备,以便进行存储或直接重建。
目的地设备1514包括解码器30(例如,视频解码器30),并且可以另外(即可选地)包括通信接口或通信单元1528、后处理器1532(或后处理单元1532)和显示设备1534。
目的地设备1514中的通信接口1528用于直接从源设备1512或从存储设备(例如,经编码图像数据存储设备)等任何其它源,接收经编码图像数据1521(或对经编码图像数据1521进一步处理后得到的数据),并将经编码图像数据1521提供给解码器30。
通信接口1522和通信接口1528可以用于通过源设备1512和目的地设备1514之间的直接通信链路(例如,直接有线或无线连接)或者通过任何类型的网络(例如,有线网络或无线网络或其任何组合,或者任何类型的私网和公网,或者其任何类型的组合)传输或接收经编码图像数据1521或经编码数据1513。
例如,通信接口1522可以用于将经编码图像数据1521封装成合适的格式(例如,数据包),和/或通过任何类型的传输编码或处理方式来处理经编码图像数据,以便通过通信链路或通信网络进行传输。
例如,与通信接口1522对应的通信接口1528可以用于接收传输数据,并使用任何类型的对应传输解码或处理方式和/或解封装方式对传输数据进行处理,以获取经编码图像数据1521。
通信接口1522和通信接口1528均可以配置为图17中从源设备1512指向目的地设备1514的通信信道1513的箭头所表示的单向通信接口,或者配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如,经编码图像数据传输)相关的任何其它信息等。解码器30用于(例如,根据图15)接收经编码图像数据1521并提供经解码图像数据1531或经解码图像31。
目的地设备1514中的后处理器1532用于对经解码图像数据1531(也称为重建图像数据)(例如,经解码图像1531)进行后处理,以获取后处理图像数据1533(例如,后处理图像1533)。后处理单元1532执行的后处理可以包括,例如,颜色格式转换(例如,从YCbCr转换为RGB)、调色、修剪或重采样,或者任何其它处理,以便提供经解码图像数据1531由显示设备1534等显示,等等。
目的地设备1514中的显示设备1534用于接收后处理图像数据1533,以便向用户或观看者等显示图像。显示设备1534可以是或可以包括任何类型的用于表示重建图像的显示器,例如,集成或外部显示器或显示屏。例如,显示器可以包括液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶(liquid crystal on silicon,LCoS)显示器、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。
尽管图17将源设备1512和目的地设备1514作为单独的设备进行描述,但是设备实施例还可以包括两种设备或两种功能,即源设备1512或对应功能以及目的地设备1514或对应功能。在这些实施例中,源设备1512或对应的功能以及目的地设备1514或对应的功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据描述,图17所示的源设备1512和/或目的地设备1514中具有和(准确)划分的不同单元或功能可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
编码器20(例如,视频编码器20)或解码器30(例如,视频解码器30),或编码器20和解码器30都可以通过如图18所示的处理电路来实现,例如,一个或多个微处理器、一个或多个数字信号处理器(digital signal processor,DSP)、一个或多个专用集成电路(application-specific integrated circuit,ASIC)、一个或多个现场可编程门阵列(field-programmable gate array,FPGA)、一个或多个离散逻辑、一个或多个硬件、一个或多个视频编码专用处理器或其任意组合。编码器20可以通过处理电路46来实现,以体现结合图14中的编码器20描述的各种模块和/或本文中描述的任何其它编码器***或子***。解码器30可以通过处理电路46来实现,以体现结合图15中的解码器30描述的各种模块和/或本文中描述的任何其它解码器***或子***。处理电路可以用于执行下文论述的各种操作。如果上述技术部分地以软件形式实现,则设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器以硬件形式执行这些指令,以实现本发明中的技术。视频编码器20和视频解码器30中的任一个可作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,例如,如图18所示。
源设备1512和目的地设备1514可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本或膝上型电脑、手机、智能手机、平板或平板电脑、摄像机、台式电脑、机顶盒、电视、显示设备、数字媒体播放器、视频游戏机、视频流设备(例如,内容业务服务器或内容分发服务器)、广播接收器设备、广播发送器设备等,并且可以不使用或使用任何类型的操作***。在一些情况下,源设备1512和目的地设备1514可以配备用于无线通信。因此,源设备1512和目的地设备1514可以是无线通信设备。
在一些情况下,图17所示的视频译码***1500仅仅是示例性的,本申请提供的技术可以适用于视频译码设置(例如,视频编码或视频解码),这些设置不一定包括编码设备和解码设备之间的任何数据通信。在其它示例中,数据从本地存储器检索、通过网络流式传输,等等。视频编码设备可以对数据进行编码并且将数据存储到存储器中,和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些示例中,编码和解码由相互不通信而是仅仅将数据编码到存储器和/或从存储器检索数据并对数据进行解码的设备执行。
为了描述方便,例如,通过参考高效视频编码(High-Efficiency Video Coding,HEVC)或多功能视频编码(Versatile Video coding,VVC)的参考软件、由ITU-T视频编码专家组(Video Coding Experts Group,VCEG)视频编码联合协作小组(Joint CollaborationTeam on Video Coding,JCT-VC)开发的下一代视频编码标准和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG),在此描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC,而是面向它们的下一代标准和/或任何其它编解码标准。
图19是本发明一个实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文中描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器,例如,图17中的视频解码器30,也可以是编码器,例如,图17中的视频编码器20。
视频译码设备400包括用于接收数据的入端口410(或输入端口410)和接收单元(Rx)420,用于处理所述数据的处理器、逻辑单元或中央处理器(central processingunit,CPU)430,用于传输所述数据的传输单元(Tx)440和出端口450(或输出端口450)以及用于存储所述数据的存储器460。视频译码设备400还可以包括与入端口410、接收单元420、传输单元440和出端口450耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器430通过硬件和软件来实现。处理器430可以实现为一个或多个CPU芯片、一个或多个核(例如,作为多核处理器)、一个或多个FPGA、一个或多个ASIC和一个或多个DSP。处理器430与入端口410、接收单元420、传输单元440、出端口450和存储器460进行通信。处理器430包括译码模块470。译码模块470实现上文描述的公开实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,将译码模块470包含在内为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的转换。可选地,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
存储器460可以包括一个或多个磁盘、一个或多个磁带机以及一个或多个固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性存储器,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(static random-access memory,SRAM)。
图20是一个示例性实施例提供的装置500的简化框图,其中,装置500可以用作图17中的源设备1512和目的地设备1514中的任一个或两个。
装置500中的处理器502可以是中央处理器。可选地,处理器502可以是现有的或今后将开发出的能够操作或处理信息的任何其它类型的设备或多个设备。虽然所公开的实现方式可以使用如图所示的处理器502等单个处理器来实施,但使用多个处理器可以提高速度和效率。
在一种实现方式中,装置500中的存储器504可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作***508和应用程序510,应用程序510包括至少一个程序,至少一个程序使得处理器502执行本文描述的方法。例如,应用程序510可以包括应用1至应用N,还包括执行本文描述的方法的视频译码应用。
装置500还可以包括一个或多个输出设备,例如,显示器518。在一个示例中,显示器518可以是将显示器与触敏元件组合的触敏显示器,其中,该触敏元件能够用于感测触摸输入。显示器518可以通过总线512耦合到处理器502。
虽然装置500中的总线512在本文描述为单个总线,但是总线512可以包括多个总线。此外,辅助存储器514可以直接耦合到装置500中的其它组件或可以通过网络访问,并且可以包括单个集成单元(例如,一个存储卡)或多个单元(例如,多个存储卡)。因此,装置500可以通过多种配置来实现。
综上所述,本发明涉及对运动信息的解码进行编码。为了在编码器和解码器之间交换运动信息,提供了稀疏运动场。为了改进密集运动场的重建,提供了指示合适插值方法的边信息,该插值方法用于对不同于指示的稀疏运动场运动向量的密集运动场中的运动向量进行插值。这些信息是按片段提供的。这些片段在编码端和解码端以类似方式推导出。

Claims (35)

1.一种用于重建包括多个样本的图像的运动向量场的方法,其特征在于,所述方法包括:
根据码流获取(S410)两个或两个以上运动向量(10B),其中,所述两个或两个以上运动向量(10B)中的每个向量指定所述多个样本的第一子集内的样本的运动;
根据所述获取到的两个或两个以上运动向量(10B)和与所述两个或两个以上运动向量(10B)相关的一个或多个参考图像,推导(S420)多个插值片段(900);
从所述码流中获取(S430)运动插值信息,其中,所述运动插值信息为所述多个插值片段(900)中的每个片段指示用于重建所述片段中的运动的插值方法;
对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量(10B)中的至少一个向量,重建(S440)所述运动向量场(20B)。
2.根据权利要求1所述的方法,其特征在于,所述运动插值信息为所述多个插值片段(900)中的每个片段指示至少两种预定义插值方法中的一种插值方法。
3.根据权利要求2所述的方法,其特征在于,所述运动插值信息是二进制标志,所述二进制标志为所述多个插值片段(900)中的每个片段指示第一插值方法和第二插值方法中的一种插值方法。
4.根据权利要求2或3所述的方法,其特征在于,所述至少两种预定义插值方法彼此不同,包括最邻近插值、双线性插值、基于窗口sinc函数的插值和多项式插值。
5.根据权利要求3所述的方法,其特征在于,所述推导多个插值片段(900)包括:
通过对所述两个或两个以上运动向量应用所述第一插值方法,重建(711)第一运动场(721);
通过对所述两个或两个以上运动向量应用所述第二插值方法,重建(712)第二运动场(722);
通过使用所述第一运动场的运动补偿重建(731)第一中间图像(741);
通过使用所述第二运动场的运动补偿重建(732)第二中间图像(732);
根据第一预定规则,至少在所述图像的所述第一中间图像和所述第二中间图像不同的区域中确定(760)所述多个插值片段的中心(770);
对于所述确定的片段中心中的每个中心,根据第二规则确定(780)所述图像中的属于所述片段(790)的样本。
6.根据权利要求5所述的方法,其特征在于,所述第一中间图像和所述第二中间图像之间的差值(750)是根据相异性度量按样本计算的。
7.根据权利要求5或6所述的方法,其特征在于,所述确定(760)所述多个插值片段(900、790)的中心(770)是根据所述第一预定规则,在所述图像的所述第一中间图像和所述第二中间图像相差超过预定量的区域中执行的。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述第一预定规则指定所述图像中的样本的非均匀采样,所述图像中待成为片段中心的样本使用预定随机数伪随机地选取,选取样本的概率与所述第一中间图像和所述第二中间图像之间的绝对差成正比。
9.根据权利要求5至7中任一项所述的方法,其特征在于,所述第一预定规则包括:
生成伪随机噪声样本,并且通过将所述伪随机样本与使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的相应样本相乘,获取噪声差分图像;
选择所述噪声差分图像中超过预定阈值的样本作为所述多个插值片段的中心(770)。
10.根据权利要求5至9中任一项所述的方法,其特征在于,
对于所述确定的插值片段中心(770)中的每个中心,所述图像中属于所述片段的样本被确定为使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的沃罗诺伊(Voronoi)区;
分别为所述差分图像中带有正号的区域和所述差分图像中带有负号的区域确定所述沃罗诺伊区。
11.根据权利要求5至10中任一项所述的方法,其特征在于,在所述图像的所述第一中间图像和所述第二中间图像满足相似性准则的区域中不确定所述多个插值片段(790)的中心。
12.根据权利要求1至11中任一项所述的方法,其特征在于,
所述运动插值信息包括与所述多个插值片段(790)中的每个片段相关联的一条运动插值信息;
所述运动插值信息中的多条信息与所述多个插值片段中的每个相应插值片段(790)的关联关系通过以下内容提供:
运动插值信息中的多条信息在码流语法中的排序;
所述确定的多个插值片段的预定排序。
13.根据权利要求1至12任一项所述的方法,其特征在于,所述方法还包括:
根据所述图像中的每个样本所在的片段,确定所述样本的插值方法,以获取在每个掩码图像样本中指示所述插值方法的掩码图像;
将默认插值方法分配不属于任何片段的掩码图像样本;
通过应用由所述掩码图像中的对应样本指定的插值方法,确定所述图像中的每个样本的运动向量。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括以下步骤:在确定所述运动向量之前对所述掩码图像进行平滑处理。
15.根据权利要求14所述的方法,其特征在于,所述平滑处理是通过高斯滤波或导向图像滤波执行的。
16.一种用于对包括多个样本的图像的运动向量场(20B)进行编码的方法,其特征在于,所述方法包括:
将两个或两个以上运动向量包括(S310)在码流中,其中,所述两个或两个以上运动向量(10B)中的每个向量指定所述多个样本的第一子集内的样本的运动;
根据所述两个或两个以上运动向量(10B)和与所述两个或两个以上运动向量(10B)相关的一个或多个参考图像,推导(S320)多个插值片段(900);
将运动插值信息编码(S330)到所述码流中,其中,所述运动插值信息为所述多个插值片段(900)中的每个片段指示用于重建所述片段中的运动的插值方法;
对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量(10B)中的至少一个向量,确定(S340)所述运动向量场(20B)。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
通过应用德洛涅(Delauney)三角形划分进行运动场的稀疏化,确定(620)所述两个或两个以上运动向量。
18.根据权利要求16或17所述的方法,其特征在于,所述方法还包括:
根据成本函数,为所述多个插值片段(790)中的每个片段选择(640)插值方法,其中,所述成本函数包括速率、失真和复杂性中的一个或多个。
19.根据权利要求16至18中任一项所述的方法,其特征在于,所述运动插值信息为所述多个插值片段(900)中的每个片段指示至少两个预定义插值方法中的一种插值方法。
20.根据权利要求19所述的方法,其特征在于,所述运动插值信息是二进制标志,所述二进制标志为所述多个插值片段(900)中的每个片段指示第一插值方法和第二插值方法中的一种插值方法。
21.根据权利要求19或20所述的方法,其特征在于,所述至少两种预定义插值方法彼此不同,包括最邻近插值、双线性插值、基于窗口sinc函数的插值和多项式插值。
22.根据权利要求20或21所述的方法,其特征在于,所述推导多个插值片段包括:
通过对所述两个或两个以上运动向量应用所述第一插值方法,重建(711)第一运动场(721);
通过对所述两个或两个以上运动向量应用所述第二插值方法,重建(712)第二运动场(722);
通过使用所述第一运动场的运动补偿重建(731)第一中间图像(741);
通过使用所述第二运动场的运动补偿重建(732)第二中间图像(742);
根据第一预定规则,至少在所述图像的所述第一中间图像和所述第二中间图像不同的区域中确定(760)所述多个插值片段的中心(770);
对于所述确定的片段中心(770)中的每个中心,根据第二规则确定(789)所述图像中属于所述片段(790)的样本。
23.根据权利要求22所述的方法,其特征在于,所述第一中间图像和所述第二中间图像之间的差值(750)是根据相异性度量按样本计算的。
24.根据权利要求22或23所述的方法,其特征在于,所述确定所述多个插值片段(790)的中心(770)是根据所述第一预定规则,在所述图像的所述第一中间图像和所述第二中间图像相差超过预定量的区域中执行的。
25.根据权利要求22至24中任一项所述的方法,其特征在于,所述第一预定规则指定所述图像中的样本的非均匀采样,所述图像中待成为片段中心的样本使用预定随机数伪随机地选取,选取样本的概率与所述第一中间图像和所述第二中间图像之间的绝对差成正比。
26.根据权利要求22至24中任一项所述的方法,其特征在于,所述第一预定规则包括:
生成伪随机噪声样本,并且通过将所述伪随机样本与使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的相应样本相乘,获取噪声差分图像;
选择所述噪声差分图像中超过预定阈值的样本作为所述多个插值片段(790)的中心(770)。
27.根据权利要求22至26中任一项所述的方法,其特征在于,
对于所述确定的插值片段中心(770)中的每个中心,所述图像中属于所述片段的样本被确定为使用所述第一中间图像和所述第二中间图像之间的差值获取到的差分图像中的沃罗诺伊区;
分别为所述差分图像中带有正号的区域和所述差分图像中带有负号的区域确定所述沃罗诺伊区。
28.根据权利要求22至27中任一项所述的方法,其特征在于,在所述图像的所述第一中间图像(741)和所述第二中间图像(742)满足相似性准则的区域中不确定所述多个插值片段(790)的中心。
29.根据权利要求16至28中任一项所述的方法,其特征在于,
所述运动插值信息包括与所述多个插值片段(790)中的每个片段相关联的一条运动插值信息;
所述运动插值信息中的多条信息与所述多个插值片段中的每个相应插值片段的关联关系通过以下内容提供:
运动插值信息中的多条信息在码流语法中的排序;
所述确定的多个插值片段的预定排序。
30.根据权利要求16至29任一项所述的方法,其特征在于,所述方法还包括:
根据所述图像中的每个样本所在的片段,确定所述样本的插值方法,以获取在每个掩码图像样本中指示所述插值方法的掩码图像;
将默认插值方法分配不属于任何片段的掩码图像样本;
通过应用由所述掩码图像中的对应样本指定的插值方法,确定所述图像中的每个样本的运动向量。
31.根据权利要求30所述的方法,其特征在于,所述方法还包括以下步骤:在确定所述运动向量之前对所述掩码图像进行平滑处理。
32.根据权利要求31所述的方法,其特征在于,所述平滑处理通过高斯滤波或导向图像滤波执行。
33.一种存储在非瞬时性计算机可读介质中的计算机程序,其特征在于,所述计算机程序(510)包括指令,所述指令在一个或多个处理器(520)上执行时,执行方法1至32中任一种方法的步骤。
34.一种用于重建包括多个样本的图像的运动向量场的装置,其特征在于,所述装置包括处理电路(502),所述处理电路用于:
根据码流获取(1350)两个或两个以上运动向量,其中,所述两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动;
根据所述获取到的两个或两个以上运动向量和与所述两个或两个以上运动向量相关的一个或多个参考图像,推导(1360)多个插值片段;
从所述码流获取(1320)运动插值信息,其中,所述运动插值信息为所述多个插值片段中的每个片段指示用于重建所述片段中的运动的插值方法;
对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量中的至少一个向量,重建(1330)所述运动向量场。
35.一种用于对包括多个样本的图像的运动向量场进行编码的装置,其特征在于,所述装置包括处理电路(502),所述处理电路用于:
将两个或两个以上运动向量包括(1220)在码流中,其中,所述两个或两个以上运动向量中的每个向量指定所述多个样本的第一子集内的样本的运动;
根据所述两个或两个以上运动向量和与所述两个或两个以上运动向量相关的一个或多个参考图像,推导(1220)多个插值片段;
将运动插值信息编码(1280)到所述码流中,其中,所述运动插值信息为所述多个插值片段中的每个片段指示用于重建所述片段中的运动的插值方法;
对于一个插值片段中的样本,通过应用由所述片段的运动插值信息指示的插值方法并且使用所述两个或两个以上运动向量中的至少一个向量,确定(1250)所述运动向量场。
CN202180093203.8A 2021-02-08 2021-02-08 可切换的密集运动向量场插值 Pending CN116848843A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2021/000053 WO2022169377A1 (en) 2021-02-08 2021-02-08 Switchable dense motion vector field interpolation

Publications (1)

Publication Number Publication Date
CN116848843A true CN116848843A (zh) 2023-10-03

Family

ID=75252811

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180093203.8A Pending CN116848843A (zh) 2021-02-08 2021-02-08 可切换的密集运动向量场插值

Country Status (4)

Country Link
US (1) US20240048756A1 (zh)
EP (1) EP4268463A1 (zh)
CN (1) CN116848843A (zh)
WO (1) WO2022169377A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240089510A1 (en) * 2022-09-02 2024-03-14 Sharp Kabushiki Kaisha Systems and methods for signaling neural network post-filter characteristics information in video coding
CN116934750B (zh) * 2023-09-15 2023-12-01 山东庆葆堂生物科技有限公司 一种醋蛋液生产质量评估方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1163226A (en) 1980-10-20 1984-03-06 Calvin C. Williamson Plate latch and guide system
KR100582856B1 (ko) * 1997-09-23 2006-05-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 움직임 추정 및 움직임 보상된 보간법
US8208564B2 (en) * 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
KR102126511B1 (ko) * 2015-09-02 2020-07-08 삼성전자주식회사 보충 정보를 이용한 영상 프레임의 보간 방법 및 장치

Also Published As

Publication number Publication date
EP4268463A1 (en) 2023-11-01
US20240048756A1 (en) 2024-02-08
WO2022169377A1 (en) 2022-08-11

Similar Documents

Publication Publication Date Title
CN113039798B (zh) 解码设备实现的译码方法及解码器
CN113411577B (zh) 编码方法及装置
CN111819852B (zh) 用于变换域中残差符号预测的方法及装置
CN112823518B (zh) 用于译码块的几何划分块的帧间预测的装置及方法
JP7471328B2 (ja) エンコーダ、デコーダ、および対応する方法
CN112868232B (zh) 使用插值滤波器进行帧内预测的方法和装置
CN114026864B (zh) 用于几何分割模式的色度样本权重推导
US20240048756A1 (en) Switchable Dense Motion Vector Field Interpolation
EP2920970A1 (en) Method and apparatus for prediction value derivation in intra coding
KR20240056654A (ko) 이중 예측 옵티컬 플로 계산 및 이중 예측 보정에서 블록 레벨 경계 샘플 그레이디언트 계산을 위한 정수 그리드 참조 샘플의 위치를 계산하는 방법
US20200351493A1 (en) Method and apparatus for restricted long-distance motion vector prediction
US20230269385A1 (en) Systems and methods for improving object tracking in compressed feature data in coding of multi-dimensional data
US20220116586A1 (en) Adaptive filter strength signalling for geometric partition mode
US11876956B2 (en) Encoder, a decoder and corresponding methods for local illumination compensation
CN117616751A (zh) 动态图像组的视频编解码
CN117560491A (zh) 用于指示条带的图像分割信息的解码器及对应方法
US20230050102A1 (en) Triangulation-Based Adaptive Subsampling of Dense Motion Vector Fields
US20230128496A1 (en) Motion compensation with a sparse optical flow representation
WO2021006773A1 (en) Motion field storage optimization for the line buffer
CN116800985A (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