CN112911293B - 用于对视频序列的图像进行编码的方法、系统和计算机可读介质 - Google Patents

用于对视频序列的图像进行编码的方法、系统和计算机可读介质 Download PDF

Info

Publication number
CN112911293B
CN112911293B CN202011357211.2A CN202011357211A CN112911293B CN 112911293 B CN112911293 B CN 112911293B CN 202011357211 A CN202011357211 A CN 202011357211A CN 112911293 B CN112911293 B CN 112911293B
Authority
CN
China
Prior art keywords
block
pixels
cost
encoding
motion vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011357211.2A
Other languages
English (en)
Other versions
CN112911293A (zh
Inventor
维克托·埃德帕尔姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axis AB
Original Assignee
Axis AB
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 Axis AB filed Critical Axis AB
Publication of CN112911293A publication Critical patent/CN112911293A/zh
Application granted granted Critical
Publication of CN112911293B publication Critical patent/CN112911293B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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/527Global motion vector estimation
    • 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/567Motion estimation based on rate distortion criteria
    • 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/57Motion estimation characterised by a search window with variable size or shape

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提供了一种用于对视频序列的图像进行编码的方法和系统。方法分析视频序列中的运动以识别图像中的相干区域,相干区域从视频序列中先前编码的图像起以比阈值更长的距离向量移动。对于图像中的每个像素块,对块进行帧间编码的成本被计算为对运动向量和残差进行编码的成本的组合。对于相干区域中的至少一个像素块,用于对运动向量进行编码的成本是相对于相干区域的距离向量来计算,而不是相对于图像中的相邻像素块的运动向量来计算。然后,如果当组合时用于对运动向量进行编码的成本和用于对残差进行编码的成本的组合低于用于对像素块进行帧内编码的成本,则对块进行帧间编码。

Description

用于对视频序列的图像进行编码的方法、系统和计算机可读 介质
技术领域
本发明涉及视频编码的领域。具体地,本发明涉及一种用于对视频序列的图像进行编码的方法和系统。
背景技术
当对视频帧序列进行编码时,通常的做法是将每个视频帧划分成像素块,并逐块对帧进行编码。这些块在H.264/MPEG-4AVC中被称为宏块,在H.265/HEVC 中被称为编码单元。这些块可以被编码为帧内块,有时被称为I块,或被编码为帧间块,有时被称为P块或B块。
如果块被帧内编码,则仅参考当前帧的像素值对像素值进行编码,例如通过从同一帧中相邻块的边缘进行外推。这与帧间编码块相反,帧间编码块参照参考帧中的匹配像素块进行编码。具体地,像素块的帧间编码涉及对指向参考帧中的匹配像素块的运动向量进行编码,并对像素块与匹配像素块之间的残差进行编码。为了使像素块的运动向量的编码更有效,通常相对于邻近像素块的运动向量(诸如相对于同一帧中先前编码的相邻块的运动向量)进行编码。
在被称为帧内帧的一些帧中,所有像素块被帧内编码。在被称为帧间帧的其他帧中,一些像素块被帧内编码,并且其他像素块被帧间编码。在帧间帧中,基于逐块做出将像素块编码为帧内编码块还是帧间编码块的决定。该决定通常是基于帧内编码和帧间编码中哪一个给出最低的编码成本来做出。用于对块进行帧内编码的成本可以以预定义值给出,而用于对块进行帧间编码的成本被确定为对运动向量和残差进行编码的组合成本。
基于逐块决定对像素块进行帧内编码还是帧间编码的方法具有一些缺点。具体地,在一些情况下,在块等级上看似最优的决策在帧等级上可能是次优的,并且最终可能导致对帧进行编码的不必要的高成本。
这种情况的一个示例是,跨越多个像素块的对象从先前编码的帧起已经移动了相当大的距离。对于对象内的像素块,运动搜索可能产生候选运动向量,该候选运动向量具有相当大的长度,并对应于从先前编码的帧起对象的运动。由于长的运动向量的编码成本很高,因此对于任何单个像素块,使用长的运动向量似乎不是一个好的决定。尤其较高的压缩等级就是这种情况,由于对于高压缩等级,残差理论上变得更小,但是无论压缩等级如何,用于编码运动向量的成本都保持不变。相反,现有的逐块方法决定将对象内的块编码为帧内编码块还是具有较短的运动向量的帧间编码块。然而,考虑到运动向量相对于彼此进行编码,帧等级上更好的决定可能是要花费额外的成本用于编码长的运动向量。因此存在改进的空间。
发明内容
鉴于以上所述,因此本发明的目的是降低用于对图像进行编码的总比特成本,该图像描述了从视频序列中的先前编码的图像起已经移动相当大的距离的对象。
根据本发明的第一方面,上述目的通过一种用于对视频序列的图像进行编码的方法来实现,该方法包括:
分析视频序列中的运动以识别图像中的相干区域,相干区域从视频序列中先前编码的图像起以比阈值更长的距离向量移动,
通过以下步骤对图像中的像素块进行编码,对于每个像素块:
执行块匹配,以发现指向参考图像中的匹配像素块的运动向量,并且计算像素块与匹配像素块之间的残差,
计算用于对运动向量进行编码的成本和用于对残差进行编码的成本,
其中,对于相干区域中的至少一个像素块,用于对运动向量进行编码的成本被计算为用于相对于相干区域的距离向量来对运动向量进行编码的成本,而不是被计算为用于相对于图像中的相邻像素块的运动向量来对运动向量进行编码的成本,并且
如果当对运动向量进行编码的成本和对残差进行编码的成本组合时低于对像素块进行帧内编码的成本,则将像素块编码为帧间编码块。
通过这种方法,是对像素块进行帧内编码还是帧间编码的决定是在块等级上做出的。仍然,对于相干区域中的至少一个像素块,通过改变计算用于对运动向量进行编码的成本的方式,可以“欺骗”编码器,以承担用于对相干区域中的一个或多个块的长运动向量进行编码的额外成本。以此方式,可以降低用于对相干区域进行编码的总实际比特成本。
更详细地,通常相对于图像中的相邻像素块的运动向量来估计用于对运动向量进行编码的成本。这种计算成本的方式与对运动向量进行编码的实际比特成本相对应。因此,编码器通常认为对与图像中的相邻像素块的运动向量相似的运动向量进行编码是便宜的。
然而,对于相干区域中的至少一个像素块,相反,相对于相干区域的距离向量来估计用于对运动向量进行编码的成本。以此方式,对于相干区域中的至少一个像素块,使编码器相信对与相干区域的距离向量相似的运动向量进行编码是便宜的。因此,编码器将更有可能做出利用等于或接近相干区域的距离向量的运动向量对至少一个像素块进行帧间编码的决定。然而,实际上,用于对至少一个像素块的运动向量进行编码的实际比特成本仍是相对于相邻像素块的运动向量来对运动向量进行编码的成本。以此方式,编码器因此被“欺骗”以承担用于对相干区域中的至少一个像素块的长的且昂贵的运动向量进行编码的额外成本。然后,相对于至少一个像素块的长的且昂贵的运动向量,相干区域中的其他像素块的运动向量可以以低成本来编码。因此,最终,可以降低用于对相干区域进行编码的总实际比特成本。
图像中的相干区域是指图像中连续像素的区域。识别的相干区域与图像中以近似相同的量和相同的方向移动的区域相对应。例如,相干区域可以与视频中描绘的移动对象相对应。相干区域也可以与整个图像相对应,例如当图像由摇摄和/ 或倾斜摄像机捕获时。
视频序列中先前编码的图像是指视频序列中的以编码顺序在当前图像之前的图像。在P型编码的情况下,这可以是视频序列中的先前图像,或者在B型编码的情况下,这可以是视频序列中的未来图像。
相干区域的距离向量通常是指指示从视频序列中先前编码的图像起,图像中的相干区域移动的量和方向的向量。距离向量可以与相干区域中像素移动的平均量和方向相对应。距离向量从图像中相干区域的位置指向先前编码的图像中相干区域的位置。
参考图像通常是指与被编码的视频序列的当前图像有关的图像。参考图像可以与视频序列中先前编码的图像相对应。具体地,可以根据视频序列中的先前编码的图像来计算。例如,参考图像可以通过首先对先前编码的图像进行编码然后再次对其解码来计算,如视频编码中的常规做法一样。
相对于另一向量对运动向量进行编码通常是指对运动向量与另一向量之间的差进行编码。因此,用于相对于另一向量对运动向量进行编码的成本可以被计算为用于对运动向量与另一向量之间的差进行编码的成本。
相对于距离向量来计算用于对运动向量进行编码的成本的、相干区域中的至少一个像素块可以包括要编码的相干区域中的第一像素块。更详细地,相干区域中的像素块可以被以预定顺序编码,其中,相干区域中的至少一个像素块可以包括相干区域中的根据预定顺序首先被编码的像素块。例如,可以以光栅扫描顺序对像素块进行编码,并且在至少一个像素块中包括以光栅扫描顺序首先出现的相干区域中的像素块。以此方式,对于相干区域中的第一编码像素块,已经花费了用于对与相干区域的距离向量相对应的长运动向量进行编码的额外成本。然后,相对于该长运动向量,可以以低的成本对相干区域中的后编码像素块的运动向量进行编码。
在一些情况下,相干区域中的所述至少一个像素块仅包括相干区域中的根据预定顺序首先被编码的像素块。这是有利的,因为编码长运动向量的额外成本仅需花费一次。这在相对于图像中的先前编码的相邻像素块中的任何一个对帧间编码块的运动向量进行编码的情况下是足够的,如在H.265/HEVC标准中的情况一样。
在其他情况下,图像中的相邻像素块的运动向量与图像中先前编码的相邻像素块的数量(通常为奇数)的运动向量的中值相对应。例如,这是在H.264/MPEG-4 AVC标准中的情况,其中相对于图像中的三个先前编码的相邻像素块的运动向量的中值对帧间编码块的运动向量进行编码。在其他情况下,相干区域中的至少一个像素块优选地包括两个或更多个像素块。
更一般地,相干区域中的所述至少一个像素块可以包括相干区域中的具有少于区域内的先前编码的相邻像素块的预定数量的所有像素块。该要求使存在用于对长运动向量进行编码的额外成本的块的数量保持在最小,同时该要求允许相对于先前编码的长运动向量,以低成本对相干区域中的所有剩余的块的运动向量进行编码。
对于上文提到的H.265/HEVC的情况,如果区域中不存在先前编码的相邻块,则仅对区域中的一个块花费了额外成本。在这种情况下,预定数量因此等于1。对于H.264/MPEG-4AVC情况,在三个相邻块中的运动向量的中值被计算的情况下,对于在区域中的具有少于两个先前编码的相邻块的块花费了额外成本。在这种情况下,预定数量因此等于2。
优选地,为了优化区域的编码成本,相干区域中的至少一个像素块仅包括相干区域中的具有少于区域内的先前编码的相邻像素块的预定数量的像素块。
在一些情况下,相干区域中的至少一个像素块可以包括相干区域中的所有像素块。无论采用哪种编码标准,都可以使用该方法。
执行块匹配的步骤可以包括:使用运动向量搜索窗口来发现指向参考图像中的匹配像素块的运动向量。搜索窗口可以以相邻像素块的运动向量为中心。即,搜索窗口的中心在相邻块的运动向量所指向的参考图像中的像素块处。搜索窗口的这样的定位通常用于图像中的像素块。然而,对于相干区域中的至少一个像素块,搜索窗口可以以相干区域的距离向量为中心。以此方式,块匹配将更有可能以发现与相干区域中的至少一个像素块的距离向量相对应的运动向量而结束。
搜索窗口的上述定位还可以方便地用于实现运动向量编码成本计算。具体地,用于对像素块的运动向量进行编码的成本可以被计算为相对于作为运动向量搜索窗口中心的向量,用于对运动向量进行编码的成本。对于相干区域中的至少一个像素块,搜索窗口以相干区域的距离向量为中心,并且因此将相对于相干区域的距离向量来计算用于对这些块的运动向量进行编码的成本。图像中的与搜索窗口以图像中的相邻像素块的运动向量为中心的其他像素块是相反的,并且因此相对于相邻像素块的运动向量来计算用于对运动向量进行编码的成本。
视频序列可以由具有可移动视场的摄像机捕获,其中,分析视频序列中的运动的步骤基于来自摄像机的关于视场的移动的输入。例如,摄像机可以是具有摇摄和倾斜能力的摄像机。由于整个视场的运动在图像中引入了全局运动,因此图像中的相干区域在这种情况下可以被识别为整个图像,并且距离向量与从先前编码的图像起图像中的全局移动的量和方向相对应。一旦视场的运动是已知的,就可以导出该全局运动。
分析视频序列中的运动的步骤可以包括:使用对象检测算法来检测视频序列中的对象以及对象的运动。例如,基于深度学习技术的对象检测算法可以用于这一目的。
图像中的相干区域的尺寸大于阈值,阈值取决于相干区域的距离向量的长度。以此方式,用于对相干区域中的至少一个像素块的长运动向量进行编码所花费的额外成本可以与通过获得用于相干区域中的剩余的像素块的低编码成本而得到收益进行平衡。由于额外编码成本随距离向量的长度而增加,因此更大的相干区域可能需要更长的距离向量,以便该方法得到回报。因此,区域尺寸阈值因此可以根据距离向量的长度而增加。
该方法进一步扩展到图像中存在一个以上的相干区域的情况。具体地,该方法可以进一步包括:
分析视频序列中的运动以识别图像中的第二相干区域,第二相干区域从视频序列中先前编码的图像起,以比阈值更长的第二距离向量移动,
其中,对于第二相干区域中的至少一个像素块,用于对运动向量进行编码的成本被计算为用于相对于第二相干区域的第二距离向量来对运动向量进行编码的成本,而不是被计算为用于相对于图像中的相邻像素块的运动向量来对运动向量进行编码的成本。
根据第二方面,提供了一种用于对视频序列的图像进行编码的系统,该系统包括:
分析器,分析器被配置成分析视频序列中的运动以识别图像中的相干区域,相干区域从视频序列中先前编码的图像起以比阈值更长的距离向量移动,以及
编码器,编码器被配置成通过以下步骤对图像中的像素块进行编码,对于每个像素块:
执行块匹配,以发现指向参考图像中的匹配像素块的运动向量,并且计算像素块与匹配像素块之间的残差,
计算用于对运动向量进行编码的成本和用于对残差进行编码的成本,
其中,对于相干区域中的至少一个像素块,用于对运动向量进行编码的成本被计算为用于相对于相干区域的距离向量来对运动向量进行编码的成本,而不是被计算为用于相对于图像中的相邻像素块的运动向量来对运动向量进行编码的成本,并且
如果对运动向量进行编码的成本和对残差进行编码的成本一起低于对像素块进行帧内编码的成本,则将像素块编码为帧间编码块。
根据第三方面,提供了一种非瞬态计算机可读介质,具有存储在其上的计算机代码指令,当由处理器执行时,计算机代码指令使处理器执行第一方面的方法。
第二方面和第三方面通常可以具有与第一方面相同的特征和优点。还应注意,除非另有明确说明,否则本发明涉及特征的所有可能的组合。
附图说明
通过以下参照附图对本发明的实施例的说明性和非限制性的详细描述,将更好地理解本发明的上述以及其他目的、特征和优点,其中相同的附图标记用于相同的元件,其中:
图1示意性地图示出了根据实施例的用于对视频序列的图像进行编码的系统。
图2是根据实施例的用于对视频序列的图像进行编码的方法的流程图。
图3和图4均示意性地图示出了由图1中所示的系统的分析器在视频序列的图像中所识别的相干区域和相关联的距离向量。
图5示意性地图示出了图像中的第一形状的相干区域内部和外部的像素块。
图6示意性地图示出了图像中的第二形状的相干区域内部和外部的像素块。
图7示意性地图示出了根据实施例的用于图像中的像素块的运动向量的常规成本计算。
图8示意性地图示出了根据实施例的用于图像中像素块的运动向量的修改的成本计算。
图9是根据实施例的用于对视频序列的图像进行编码的方法的流程图。
图10和图11图示出了根据实施例的结合执行块匹配和运动向量成本计算使用的运动向量搜索窗口。
具体实施方式
现在将在下文中参照附图更全面地描述本发明,在附图中示出了本发明的实施例。
图1图示出了用于对视频序列106进行编码的系统100。系统包括分析器102 和编码器104。系统100可以在捕获视频序列106的视频摄像机中实现。视频摄像机可以是具有可移动视场的视频摄像机,例如云台变焦(pan-tilt-zoom)摄像机。
编码器104被布置成接收视频序列106并对视频序列106进行编码,以输出编码的视频序列110。编码器104的一般目的是在不牺牲视频质量的情况下,尽可能有效地对视频序列106进行编码,即,使用尽可能少的比特。
为实现该目的,编码器104进一步从分析器102接收输入108。对于视频序列 108中的每个图像,输入108可以指示图像中的一个或多个相干区域以及每个相干区域的距离向量。距离向量表明了从视频序列106中的先前编码的图像起,相干区域已经移动了多远以及在哪个方向上移动。可以设置阈值距离,使得仅与比阈值距离更长的距离向量相关联的相干区域被包括在被转发至编码器104的输入108 中。进一步,可以设置尺寸阈值,使得仅如果相干区域大于尺寸阈值,则相干区域被包括在输入108中。根据预定关系,尺寸阈值可以取决于相干区域的距离向量的长度。通常,尺寸阈值随距离向量的长度的增加而增加。
通过使用附加输入108,编码器104可以更有效地对其中存在这样的相干区域的图像进行编码。现在将参照图2的流程图对此进行更详细地说明,图2例示了在对视频序列106中的图像进行编码时系统100的操作。
在步骤S102中,分析器102分析视频序列106中的运动。具体地,分析器102 可以检测视频序列106的图像中的对象并且分析对象如何在帧之间移动。为此,分析器102可以实现任何已知的对象检测算法或对象跟踪算法。例如,分析器102 可以包括实现这样的对象检测和/或对象跟踪算法的深度学习网络。为了进一步例示该过程,图3示出了视频序列106的三个连续图像106-1、106-2、106-3,在三个连续图像106-1、106-2、106-3中的每一个中,分析器102检测到对象302。检测的对象302在三个图像106-1、106-2、106-3中分别由302-1、302-2、302-3表示。对象302可以被视为图像中的像素在两个连续的图像之间以近似相同的量和相同的方向进行移动的相干区域。一旦检测到对象302,分析器102可以发现对象 302在图像106-1、106-2、106-3之间的移动。具体地,分析器102可以发现从先前编码的图像起,对象302在哪个方向上已经移动了多远。在该示例中,假设先前编码的图像对应于视频序列中的先前图像。P型编码就是这种情况。对于B型编码,先前编码的图像相反是视频序列中的未来帧。例如,分析器102可以计算先前编码的图像106-1中的对象302-1的位置与当前图像106-2中的对象302-2的位置之间的差。该差可以以距离向量304-2来表示。为了该计算的目的,对象302-1 和对象302-2的中心可以用作对象的位置。如图所示,距离向量304-2指向先前编码的图像106-1中的相干区域的位置。为了图示的目的,在图像106-2中使用虚线示出了对象302-1在先前编码的图像106-1中的位置。以类似的方式,可以计算序列中的图像106-3的距离向量304-3。
在视频序列106由具有可移动视场的视频摄像机捕获的情况下,分析器102 可以附加地或可替代地基于视频摄像机的移动来分析视频序列106中的运动。为此,分析器102可以从摄像机接收关于摄像机的视场的移动的输入112。输入112 可以涉及例如摄像机的摇摄和倾斜移动。视场的移动在视频序列106的图像中引起了全局运动。分析器102可以根据由输入112表示的摄像机运动来计算图像中的全局运动,并以距离向量来表示全局运动。因此,在这种情况下,分析器102 可以将整个图像识别为在相同方向上具有近似相同运动量的相干区域。
这在示出了视频序列106的三个连续图像106-4、106-5、106-6的图4中进一步图示了。在该示例中,假设摄像机的视场在右方向上摇摄。这在图像106-4、106-5、 106-6中引起了向左的全局运动。对于每个图像,整个图像因此可以被视为在两个图像之间以相同方式移动的相干区域。分析器102可以以距离向量404-1、404-2、 404-3来表示相干区域的全局运动。类似于图3的示例,距离向量404-1、404-2、 404-3可以被计算为先前编码的图像中的相干区域的位置与先前编码的图像中的相干区域在当前图像中的位置之间的差。因此,距离向量指向先前编码的图像中的相干区域的位置。
当分析器102识别出图像中的一个或多个相干区域及其相关联的距离向量时,分析器102可以将该信息作为输入108提供至编码器104。
编码器104然后可以继续对图像进行编码。通常,编码器104可以将图像编码为帧内编码图像(有时被称为I帧),或编码为帧间编码图像(有时被称为P 帧或B帧)。可以通过图片组(GOP)结构指定是对图像进行帧内编码还是帧间编码,图片组(GOP)结构指定了视频序列106中帧内编码图像和帧间编码图像的顺序。在这种情况下,假设要对图像进行帧间编码。
编码器104逐块地编码图像。具体地,图像可以被划分成被逐个编码的特定尺寸的像素块,例如8×8像素块、16×16像素块、32×32像素块。这样的像素块在本领域中也被称为宏块或编码单元。编码器104可以以预定顺序编码这些像素块。预定顺序通常对应于光栅扫描方向。
因此,在步骤S104中,编码器104检查图像中是否存在要编码的另一像素块。如果存在,则编码器104针对要处理的下一块执行步骤S106、S107、S108a或S108b、 S110、S112。否则,该方法终止,并且系统100将继续对视频序列106中的下一图像进行分析和编码。
当对图像进行帧间编码时,可能对一些块进行帧内编码,而对其他块进行帧间编码。具体地,如将更详细地描述的,对于每个块,编码器104决定应当对该块进行帧内编码还是帧间编码。做出该决定以使对块进行编码的成本最小化,例如,以对块进行编码所需的比特数来表示。总之,编码器104在步骤S106、S107、 S108a或S108b以及S110中计算用于对像素块进行帧间编码的成本,并且在步骤 S112中,做出关于对像素块进行帧间编码还是帧内编码的决定。
在步骤S106中,编码器104开始目的是在参考帧中发现“最佳”匹配像素块的块匹配过程。参考帧通常与视频序列106中的先前编码的图像的编码并随后解码的版本相对应。具体地,编码器104可以将当前处理的图像中的像素块与参考图像中的多个候选像素块进行匹配,以在参考图像中发现给出最佳匹配像素块。参考帧中的候选像素块可以被包括在参考帧的搜索窗口中。对于参考帧中的每个候选像素块,编码器104可以计算运动向量和残差,即块之间的像素差异。
为了估计什么构成两个块之间的良好匹配,编码器104通常使用成本函数。选择参考图像中最小化成本函数的候选像素块作为最佳匹配。编码器104可以使用成本函数,该成本函数是用于对运动向量进行编码的成本和用于对候选像素块的残差进行编码的成本的组合。根据本发明的构思,对于图像中的不同的像素块,使用两种不同的计算用于对运动向量进行编码的成本的方法,在本文中被称为修改成本计算和常规成本计算。
在步骤S107中,编码器104检查应当使用修改成本计算还是常规成本计算来计算用于对在步骤S106中发现的运动向量进行编码的成本。对于图像中的大多数像素块,应用常规成本计算。然而,对于每个相干区域内的至少一个像素块,使用修改成本计算。
为了执行该检查,编码器104可以具有一组规则,用于块何时应当遵循常规成本计算或修改成本计算。这些规则可以针对不同组的实施例而变化。规则也可以与如何执行常规成本计算有关。
在第一组实施例中,编码器104在步骤S107中检查当前处理的块是否是相干区域内要编码的第一块。在图5中例示了该原理,图5示意性地图示出了要编码的图像506。图像506包括多个像素块501。进一步,在图像中存在如阴影区域所图示的相干区域502。一些块501在相干区域502外,而其他块在相干区域502内。通常,如果像素块中的所有像素在相干区域502内,则可以说像素块在相干区域 502内。可替代地,如果像素块中的大多数像素在相干区域502内,则可以说像素块在相干区域502内。可以以如箭头504所指示的预定顺序对图像506的像素块 501进行编码。在这种情况下,以光栅扫描方向对块501进行编码。当以该顺序对块进行编码时,像素块501a将是相干区域502内要编码的第一块。因此,在该示例中,编码器104将对像素块501a使用修改成本计算,而对所有其他像素块使用常规成本计算。在该示例中,仅示出了一个相干区域。然而,应当理解,如果图像内存在一个以上的相干区域,则编码器104将对每个区域内的第一编码块应用修改成本计算,并且对图像中的所有其他像素块应用常规成本计算。
在第二组实施例中,编码器104在步骤S107中检查当前处理的块是否在相干区域内,并且在该相干区域内是否没有任何先前编码的相邻像素块。通常,像素块在图像中可以具有多达九个相邻的环状像素块。这些块中的一些可能在相干区域内,并且一些可能在相干区域外。进一步,一些相邻块可能已经被编码,而其他块仍待编码。
再次参照图5,像素块501a具有九个相邻的像素块。这些相邻的像素块中的四个(上方三个和左侧一个)在块501a之前被编码。然而,这些先前编码的块都不在相干区域内。因此,像素块501a在区域502内没有任何先前编码的相邻像素块。编码器104因此将修改成本计算应用于像素块501a。然而,对于块501b,情况是不同的。块501b也具有四个先前编码的相邻像素块(上方三个和左侧一个)。这些先前编码的相邻像素块中的一个(即块501a)在相干区域502内。因此,编码器104不将修改成本计算应用于块501b。如果对图像506中的每个块执行该训练,则发现在这种情况下,修改成本计算也仅应用于像素块501a。
然而,取决于相干区域的形状,第一实施例组和第二组实施例并非总是给出相同的结果。在图6中图示出了这样的示例,图6示出了具有多个像素块601和相干区域602的图像606。在这种情况下,第一组实施例仅将修改成本计算应用于像素块601a,因为像素块601a是相干区域602内的第一编码块。然而,除了块601a 之外,第二组实施例也将修改成本计算应用于像素块601b,因为像素块601b在相干区域602内没有先前编码的相邻块。因此,当涉及相干区域的形状时,第二组实施例是更灵活的。
在第三组实施例中,编码器104在步骤S107中检查当前处理的块是否在相干区域内,并且在相干区域内是否具有少于两个先前编码的相邻像素块。对于满足该规则的块,编码器104将应用修改成本计算,而将常规成本计算应用于剩余的块。如果将该规则应用于图5的示例,则发现块501a、501b、501c均满足该规则,因为块501a、501b、501c在该区域中没有或仅具有一个先前编码的相邻块。在图 6的示例中,块601a和块601b满足规则,并且因此将经受修改成本计算。
在第四组实施例中,编码器104在步骤S107中检查当前处理的块是否在相干区域502内。对于满足该规则的块,编码器104将应用修改成本计算。对于相干区域之外的块,编码器104将应用常规成本计算。在第四组实施例中,编码器104 因此将对相干区域502内所有的块应用修改成本计算。
如以下所描述的,这些不同组的实施例在不同的情况下是有利的。例如,当编码器104被配置成使用H.265/HEVC编码对像素块进行帧间编码时,通常应用第二组实施例,因为H.265/HEVC编码通常相对于块的先前编码的相邻块中的任何一个的运动向量来对该块的运动向量进行编码。因此,区域中的每个块在已经应用修改成本计算的区域中具有一个先前编码的相邻块就是足够的。类似地,当编码器104被配置成使用H.264/MPEG-4AVC编码对像素块进行帧间编码时,通常应用第三组实施例,因为H.264/MPEG-4AVC编码通常相对于块的先前编码的相邻块中的三个的运动向量的中值来对运动向量进行编码。因此,区域中的每个块在已经应用修改成本计算的区域中具有两个先前编码的相邻块就是足够的。第四组实施例的优点在于,因为无论编码器104所使用的编码标准如何,都可以应用第四组实施例。这是因为应用修改成本计算的块的选择与编码器104如何选择先前编码的相邻块的运动向量无关。当涉及使用修改成本计算来决定应当处理哪些块时,第一组实施例可以被视为第二组实施例的简化。
如果编码器104在步骤S107中发现没有对当前处理的像素块应用修改成本计算,则继续到步骤S108a,并以常规方式计算用于对参考图像中的每个候选像素块的运动向量进行编码的成本。更详细地,用于对运动向量进行编码的成本被计算为用于相对于图像中的相邻像素块的运动向量对运动向量进行编码的成本。具体地,相邻像素块可以是先前编码的相邻像素块。
在图7中进一步图示出了该过程,图7是图5示例的延续。在步骤S107中,编码器104(在三组实施例中的每一组中)决定应当将常规成本计算应用于像素块 501d的候选运动向量708a。为了执行成本计算,将运动向量708a与先前编码的相邻像素块的运动向量710进行比较,并且计算用于对这两个向量之间的差进行编码的成本。例如,用于对差进行编码的成本可以被设置成等于差的长度(或与差的长度成比例),在该示例中差的长度等于一个块的长度。因此,编码器104可以得出对块501d的候选运动向量708a进行编码的成本等于1的结论。对于候选运动向量708b或708c,对运动向量进行编码的成本分别等于2和3(假设使用了曼哈顿类型(Manhattan-type)距离计算)。因此,当应用常规成本计算时,编码器104发现对与相邻块运动向量相似的运动向量进行编码是低成本的。
如何选择图像中的相邻像素块的运动向量在不同组的实施例中是不同的。
在第二组实施例中,可以选择先前编码的相邻像素块中的任何一个的运动向量。具体地,可以选择与当前处理的像素块的运动向量最相似的相邻运动向量。当编码器104被布置成遵循H.265/HEVC标准执行帧间编码时,通常使用该方法。
在第三组实施例中,相邻像素块的运动向量与多个先前编码的相邻像素块的运动向量的中值相对应。通过计算运动向量中每个元素的中值来计算运动向量的中值。为了简化中值的计算,可以选择奇数个先前编码的相邻块的运动向量的中值。通常,奇数可以等于3。例如,当在光栅扫描方向上对块进行编码时,可以使用上方、右上方和左边相邻块的运动向量的中值。当编码器104被布置成遵循 H.264/MPEG-4AVC标准执行帧间编码时,通常使用这种选择相邻像素块的运动向量的方式。
在第一组实施例中,可以以第二组实施例和第三组实施例中的任何一个的方式来选择先前编码的相邻块的运动向量。然而,优选地,可以如在第二组实施例中那样进行选择。
关于如何选择先前编码的相邻块的运动向量,第四组实施例是灵活的。例如,可以如在第二组实施例中(如在H.265/HEVC编码中)或如在第三组实施例中(如在H.264中)或如由所使用的编码标准规定的那样来选择先前编码的相邻像素块的运动向量。
相反,如果编码器104在步骤S107中发现修改成本计算应用于当前处理的像素块,则继续步骤S108b,并以修改的方式计算用于对在步骤S106中发现的每个候选运动向量进行编码的成本。更详细地,不是相对于先前编码的相邻块的运动向量来计算用于对块的运动矢量进行编码的成本,而是相对于相干区域的距离向量来估计成本。
这在图8中进一步图示出,图8延续了图5和图7的示例。在步骤S107中,编码器104(在四组实施例中的每一个中)决定对块501a的候选运动向量808使用修改成本计算。为了执行成本计算,编码器104将在步骤S106中为块510a计算的候选运动向量808与相干区域502的距离向量504进行比较,并且计算用于对这两个向量之间的差进行编码的成本。类似于对常规成本计算的描述,用于对差进行编码的成本可以被设置成等于差的长度(或与差的长度成比例),在该示例中差的长度等于一个块的长度。因此,当应用修改成本计算时,编码器104发现对与距离向量504相似的运动向量进行编码是低成本的。
将图8的示例更进一步,可以考虑块501b的成本计算将发生什么。在第一组实施例和第二组实施例中,编码器104将对块501b使用常规成本计算。编码器104 因此将相对于先前编码的相邻块的运动向量来计算对块501b的运动向量进行编码的成本。具体地,可以相对于块501a的运动向量来计算块501b的运动向量的成本。由于编码器104对块501a使用了修改成本计算,因此编码器104可以使用与距离向量504相似的运动向量对块501a进行编码。因此,在这种情况下,常规成本计算也将低成本分配至与距离向量504相似的运动向量。这同样适用于相干区域中的后续块。因此,对于块501b,修改成本计算和常规成本计算给出了与块501b 基本上相同的结果。这解释了为什么不需要将修改成本计算应用于块501b和相干区域内的后续块。
这在第三组实施例中有所不同。在这种情况下,编码器104也将对块501b应用修改成本计算。因此,将相对于用于块501b的距离向量504来计算运动向量的成本。因此,低成本将被计算以用于与距离向量504相似的运动向量。在这种情况下,由于先前编码的相邻块的运动向量的不同的选择,常规成本计算将给出不同的结果。更具体地,在第三组实施例中,编码器104通常将当前块的运动向量与三个先前编码的相邻块的运动向量的中值进行比较。例如,可以从块501b的上方、右上方和左边相邻块的运动向量来计算中值。由于这些块中只有一个,即块 501a,具有与距离向量504相似的运动向量,因此得到的中值运动向量很可能与距离向量504完全不同。因此,常规成本计算将给出用于对与距离向量504相似的运动向量进行编码的高成本。
进一步,在第四组实施例中,编码器104将对相干区域502内的所有块应用修改成本计算。因此,对于相干区域502中的每个像素块,低成本将被计算用于与距离向量504相似的运动向量。
在步骤S110中,编码器104计算用于对当前处理的像素块和参考图像中的每个候选像素块之间的残差进行编码的成本。例如,编码器104可以计算量化残差的尺寸的度量。例如,绝对差之和、平方差之和或任何类似的度量可以用于量化残差。
在步骤S11中,编码器104然后可以通过发现当前处理的像素块的匹配块来完成块匹配过程。更详细地,匹配像素块是参考图像中的最小化用于对运动向量和残差进行编码的组合成本的候选像素块。例如,编码器104可以通过形成用于对运动向量进行编码的成本和用于对残差进行编码的成本的加权和来组合成本。和的权重可以预先定义。通过使用以上描述的实施例的组中的任何一个,相干区域502内的块的匹配像素块可能与类似于相干区域的距离向量504的运动向量相关联。
在步骤S112中,编码器104继续确定是对当前处理的像素块进行帧间编码还是帧内编码。编码器104基于对像素块进行帧间编码还是帧内编码是否更便宜来做出该决定。如果帧间编码更便宜,则编码器104将对块进行帧间编码,并且否则将对块进行帧内编码。用于对块进行帧间编码的成本是用于对在步骤S111中确定的匹配像素块的运动向量和残差进行编码的组合成本。编码器104可以进一步计算用于对块进行帧内编码的成本。可以以预定义值给出帧内编码成本,该预定义值可以与从历史数据确定的对块进行帧内编码的平均成本相对应。
如果编码器104做出对块进行帧间编码的决定,则编码器104将继续对与匹配像素块相对应的运动向量和残差进行编码。当对运动向量进行编码时,编码器 104将相对于图像中的相邻像素块的运动向量进行编码。值得注意的是,无论是否将常规成本计算(步骤S108a)或修改成本计算(步骤S108b)应用于块的运动向量,这都是适用的。关于如何针对不同组的实施例来计算图像中的相邻像素块的运动向量,参考上述内容。
返回图7和图8的示例,注意到当编码器104从编码块501d继续到块501a 时,图像中的运动量存在很大的变化。如果编码器104在处理块501a时应用常规成本计算,则可能发现用于对候选运动向量108进行编码的成本是非常高的,并且因此,编码器104不会使用候选运动向量108对块501a进行帧间编码。然而,使用任何上述实施例,当处理块501a时,改为使用修改成本计算。因此,编码器 104反而发现由于候选运动向量108接近距离向量504,因此对候选运动向量108 进行编码是便宜的。因此,编码器104将变得更倾向于使用与距离向量相似的候选运动向量来对块501a进行帧间编码。该决定导致编码器104为块501a花费额外的比特成本,因为实际上对运动向量108进行编码的成本很高。然而,由于编码器104在对相干区域502内的至少一些后续块进行编码时节省了比特,所以该额外的比特成本可以值得考虑。这是因为运动向量的编码是相对于先前块的运动向量进行的。在图7和图8的示例中,比特节省在第二组实施例中的下一块501b内已经开始,而在第三组实施例中,对于相干区域502中的第一行上的每个块产生额外的比特成本,并且比特节省在处理相干区域502中的下一行上的块时开始。
如以上所描述的,当在参考图像中搜索匹配块时,在步骤S106中开始的块匹配可以使用运动向量搜索窗口。搜索窗口相对于当前处理的像素块的位置的定位可以用于实现运动向量编码成本计算。该实现方式可以应用于上述第一、第二、第三和第四组实施例中的任何一个。现在将参照图9的流程图对此进行进一步解释。
为了使用图9的方法,在执行从步骤S106处开始的块匹配之前,执行检查是否应当对当前处理的像素块使用修改成本计算的步骤S107。具体地,编码器104 使用步骤S107中的检查结果,以决定相对于当前处理的块的位置将运动向量搜索窗口定位在何处。上文描述了如何针对第一、第二、第三和第四组实施例执行在步骤S107中的检查。
对于应当使用常规成本计算的块,编码器104在步骤S106a中使用参考图像中的搜索窗口来执行块匹配,该搜索窗口以先前编码的相邻像素块的运动向量为中心。具体地,编码器104可以将当前处理的图像中的像素块与参考图像中的搜索窗口内的候选像素块进行匹配。这在图10中进一步图示出,图10示出了编码器104在相对于块501d执行块匹配时使用的搜索窗口1000。先前编码的相邻块的运动向量710将搜索窗口的中心与块501d的位置相关。上面描述了如何为第一、第二、第三和第四组实施例选择先前编码的相邻像素块的运动向量。
对于应当使用修改成本计算的块,编码器104使用参考图像中的搜索窗口来执行块匹配,该搜索窗口以距离向量为中心。这在图11中进一步图示出,图11 示出了编码器104在相对于块501a执行块匹配时使用的搜索窗口1100。距离向量 504将搜索窗口的中心与块501d的位置相关。使用这样的搜索窗口增加了编码器104发现与距离向量相似的运动向量的机会。
编码器104然后继续到步骤S108中,以计算在步骤S106a和S106b中的任何一个中发现的用于对候选运动向量的运动向量进行编码的成本。具体地,编码器 104相对于搜索窗口以其为中心的向量计算用于对每个候选运动向量进行编码的成本。因此,对于应当应用常规成本计算的块,编码器104计算相对于相邻像素块的运动向量的成本(参见图2的步骤S108a)。对于应当应用修改成本计算的块,编码器104改为计算相对于距离向量的成本(参见图2的步骤S108b)。
从上文应当理解,分析器102和编码器104因此被配置成实现用于对视频序列的图像进行编码的方法。分析器102和编码器104均可以以硬件、软件或其组合来实现。
在硬件实现方式中,分析器102和编码器104中的每一个可以与专用的并且专门设计以提供其功能的电路相对应。电路可以是一种或多种集成电路的形式,例如一种或多种专用集成电路或一种或多种现场可编程门阵列。作为示例,编码器104因此可以包括在使用时计算用于对运动向量进行编码的成本的电路。
相反,在软件实现方式中,电路可以是处理器(诸如微处理器)的形式,处理器与存储在(非瞬态)计算机可读介质(诸如非易失性存储器)上的计算机代码指令相关联,以使分析器102和编码器104执行本文公开的任何方法。非易失性存储器的示例包括只读存储器、闪存、铁电RAM、磁性计算机存储设备、光盘等。在软件情况下,分析器102和编码器104因此可以各自与存储在计算机可读介质上的计算机代码指令的一部分相对应,当由处理器执行时,使系统100分别执行分析器102和编码器104的功能。
应当理解,还可以具有硬件和软件实现方式的组合,这意味着分析器102和 104的一些功能以硬件实现,而其他功能以软件实现。
应当理解,本领域技术人员可以以多种方式修改上述实施例,并且仍然使用如以上实施例中所示的本发明的优点。例如,尽管以上实施例主要图示出了图像中的一个相干区域,但是方法以自然的方式扩展到图像中存在多于一个的相干区域的情况。此外,已经描述了分别选择适用于使用H.264和H.265标准进行编码的相邻像素块的运动向量的两种不同方式。然而,应当理解,其他现代编解码器标准可以使用其他方式来选择与对像素块的运动向量进行编码相关的运动向量候选。这包括通过指向特定相邻像素块的运动向量或通过计算绝对运动向量、基于同一像素块的参考图像中的运动向量来选择运动向量候选。如果使用除了所例示的那些之外的现代编解码器标准,则可以理解,如所使用的编解码器标准所规定的那样,执行用于选择运动向量候选的方法。因此,本发明不应限于所示的实施例,而应仅由所附权利要求来限定。附加地,如本领域技术人员所理解,所示出的实施例可以被组合。

Claims (15)

1.一种用于对视频序列的图像(506)进行编码的方法,包括:
分析(S102)所述视频序列(106)中的运动以识别所述图像(506)中的相干区域(502),所述相干区域(502)从所述视频序列(106)中先前编码的图像起以比阈值更长的距离向量(504)移动,
通过以下步骤对所述图像中的像素块进行编码,对于每个像素块(501a、501d):
执行块匹配(S106、S111、S106a、S106b),以发现指向所述参考图像中的匹配像素块的运动向量(708a、808),并且计算所述像素块(501a、501d)与所述匹配像素块之间的残差,
计算用于对所述运动向量(708a、808)进行编码的成本(S108a、S108b、S108)和用于对所述残差进行编码的成本(S110),
其中,对于所述相干区域(502)中的至少一个像素块(501a、501b、501c),用于对所述运动向量(808)进行编码的所述成本被计算为用于相对于所述相干区域(502)的所述距离向量(504)来对所述运动向量(808)进行编码的成本,而不是被计算为用于相对于所述图像中的相邻像素块(501d)的运动向量(708a)来对所述运动向量进行编码的成本,并且
如果当对所述运动向量进行编码的所述成本和对所述残差进行编码的所述成本组合时低于对所述像素块进行帧内编码的成本,则将所述像素块(501a、501d)编码(S112)为帧间编码块。
2.根据权利要求1所述的方法,其中,所述相干区域(502)中的像素块(501a、501b、501c)被以预定顺序(504)编码,
其中,所述相干区域中的所述至少一个像素块(501a、501a、501b、501c)包括所述相干区域中的根据所述预定顺序首先被编码的像素块(501a)。
3.根据权利要求2所述的方法,其中,所述相干区域中的所述至少一个像素块(501a、501b、501c)仅包括所述相干区域(502)中的根据所述预定顺序(504)首先被编码的所述像素块(501a)。
4.根据前述权利要求中的任一项所述的方法,其中,所述相干区域(502)中的所述至少一个像素块(501a、501b、501c)包括所述相干区域中的具有少于所述区域内的先前编码的相邻像素块的预定数量的所有像素块(501a、501b、501c)。
5.根据权利要求4所述的方法,其中,所述相干区域(502)中的所述至少一个像素块仅包括所述相干区域中的具有少于所述区域内的先前编码的相邻像素块的预定数量的所述像素块(501a、501b、501c)。
6.根据权利要求1所述的方法,其中,所述相干区域(502)中的所述至少一个像素块包括所述相干区域(502)中的所有像素块。
7.根据权利要求1所述的方法,其中,所述图像(506)中的相邻像素块的所述运动向量(708a)与所述图像(506)中的多个先前编码的相邻像素块的运动向量的中值相对应。
8.根据权利要求1所述的方法,其中,执行块匹配(S106)的步骤包括:使用运动向量搜索窗口(1000、1100)来发现指向所述参考图像中的匹配像素块的所述运动向量,
其中,对于所述相干区域(502)中的所述至少一个像素块(501a、501b、501c),所述搜索窗口(1100)以所述相干区域的所述距离向量(504)为中心,而不是以相邻像素块的所述运动向量(708a)为中心。
9.根据权利要求8所述的方法,其中,用于对像素块(501a、501d)的所述运动向量(708a、808)进行编码的所述成本被计算为相对于作为所述运动向量搜索窗口(1000、1100)中心的向量(710、504),用于对所述运动向量(708a、808)进行编码的成本。
10.根据权利要求1所述的方法,其中,所述视频序列(106)由具有可移动视场的摄像机所捕获,其中,分析所述视频序列(106)中的运动(S102)的步骤基于来自所述摄像机的关于所述视场的移动的输入(112)。
11.根据权利要求1所述的方法,其中,分析所述视频序列中的运动(S102)的步骤包括:使用对象检测算法来检测所述视频序列(106)中的对象以及所述对象的运动。
12.根据权利要求1所述的方法,其中,所述图像(506)中的所述相干区域(502)的所述尺寸大于阈值,所述阈值取决于所述相干区域(502)的所述距离向量(504)的所述长度。
13.根据权利要求1所述的方法,进一步包括:
分析所述视频序列(106)中的运动以识别所述图像中的第二相干区域,所述第二相干区域从所述视频序列中先前编码的图像起,以比阈值更长的第二距离向量移动,
其中,对于所述第二相干区域中的至少一个像素块,用于对所述运动向量进行编码的成本被计算为用于相对于所述第二相干区域的所述第二距离向量来对所述运动向量进行编码的成本,而不是被计算为用于相对于所述图像中的相邻像素块的运动向量来对所述运动向量进行编码的成本。
14.一种用于对视频序列(106)的图像(506)进行编码的系统(100),包括:
分析器(102),所述分析器被配置成分析所述视频序列(106)中的运动以识别所述图像(506)中的相干区域(502),所述相干区域(502)从所述视频序列(106)中先前编码的图像起以比阈值更长的距离向量(504)移动,以及
编码器(104),所述编码器被配置成通过以下步骤对所述图像中的像素块进行编码,对于每个像素块:
执行块匹配,以发现指向所述参考图像中的匹配像素块的运动向量(708a、808),并且计算所述像素块(501a、501d)与所述匹配像素块之间的残差,
计算用于对所述运动向量(708a、808)进行编码的成本和用于对所述残差进行编码的成本,
其中,对于所述相干区域(502)中的至少一个像素块(501a、501b、501c),用于对所述运动向量(808)进行编码的所述成本被计算为用于相对于所述相干区域的所述距离向量(504)来对所述运动向量进行编码的成本,而不是被计算为用于相对于所述图像中的相邻像素块的运动向量(708a)来对所述运动向量进行编码的成本,并且
如果对所述运动向量(708a、808)进行编码的所述成本和对所述残差进行编码的所述成本一起低于对所述像素块(501a、501d)进行帧内编码的成本,则将所述像素块(501a、501d)编码为帧间编码块。
15.一种非瞬态计算机可读介质,具有存储在其上的计算机代码指令,当由处理器执行时,所述计算机代码指令使所述处理器执行权利要求1所述的方法。
CN202011357211.2A 2019-12-03 2020-11-27 用于对视频序列的图像进行编码的方法、系统和计算机可读介质 Active CN112911293B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19213109.2 2019-12-03
EP19213109.2A EP3833028B1 (en) 2019-12-03 2019-12-03 Method and system for calculating a cost of encoding a motion vector

Publications (2)

Publication Number Publication Date
CN112911293A CN112911293A (zh) 2021-06-04
CN112911293B true CN112911293B (zh) 2022-08-26

Family

ID=68766575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011357211.2A Active CN112911293B (zh) 2019-12-03 2020-11-27 用于对视频序列的图像进行编码的方法、系统和计算机可读介质

Country Status (6)

Country Link
US (1) US11303903B2 (zh)
EP (1) EP3833028B1 (zh)
JP (1) JP7229982B2 (zh)
KR (1) KR102446097B1 (zh)
CN (1) CN112911293B (zh)
TW (1) TWI801764B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117939163A (zh) * 2024-03-22 2024-04-26 广东工业大学 一种基于双流特征提取的压缩感知视频重构方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101573983A (zh) * 2007-01-03 2009-11-04 三星电子株式会社 使用全局运动矢量预测运动矢量的方法和设备、编码器、解码器及解码方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05304662A (ja) * 1992-04-24 1993-11-16 Seiko Epson Corp 画像符号化伝送装置
US7321626B2 (en) * 2002-03-08 2008-01-22 Sharp Laboratories Of America, Inc. System and method for predictive motion estimation using a global motion predictor
JP2007036889A (ja) * 2005-07-28 2007-02-08 Sanyo Electric Co Ltd 符号化方法
JP4047879B2 (ja) * 2005-08-23 2008-02-13 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US8107748B2 (en) 2005-09-16 2012-01-31 Sony Corporation Adaptive motion search range
JP5171675B2 (ja) * 2009-02-03 2013-03-27 三洋電機株式会社 画像処理装置、およびそれを搭載した撮像装置
EP2403247A1 (en) * 2010-06-30 2012-01-04 British Telecommunications public limited company Transmission of visual tag motions in a video signal
JP6019797B2 (ja) * 2012-06-22 2016-11-02 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
WO2015138008A1 (en) * 2014-03-10 2015-09-17 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
US10123036B2 (en) 2014-06-27 2018-11-06 Microsoft Technology Licensing, Llc Motion vector selection for video encoding
WO2017131908A1 (en) * 2016-01-29 2017-08-03 Google Inc. Dynamic reference motion vector coding mode
EP3220642B1 (en) * 2016-03-15 2018-03-07 Axis AB Method, apparatus and system for encoding a video stream by defining areas within a second image frame with image data common to a first image frame
EP3370419B1 (en) 2017-03-02 2019-02-13 Axis AB A video encoder and a method in a video encoder
EP3396952B1 (en) 2017-04-25 2019-04-17 Axis AB Method and image processing unit for forming a video stream
JP6914722B2 (ja) * 2017-05-11 2021-08-04 キヤノン株式会社 動画像符号化装置、動画像符号化方法及びプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101573983A (zh) * 2007-01-03 2009-11-04 三星电子株式会社 使用全局运动矢量预测运动矢量的方法和设备、编码器、解码器及解码方法

Also Published As

Publication number Publication date
CN112911293A (zh) 2021-06-04
EP3833028B1 (en) 2022-02-09
KR102446097B1 (ko) 2022-09-22
KR20210069564A (ko) 2021-06-11
JP7229982B2 (ja) 2023-02-28
US20210168373A1 (en) 2021-06-03
JP2021103876A (ja) 2021-07-15
US11303903B2 (en) 2022-04-12
TW202126047A (zh) 2021-07-01
TWI801764B (zh) 2023-05-11
EP3833028A1 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
CN110495169B (zh) 视频图像处理方法与装置
US7852940B2 (en) Scalable motion estimation for video encoding
US8018994B2 (en) Selecting encoding types and predictive modes for encoding video data
CA2408364C (en) Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
US20060193386A1 (en) Method for fast mode decision of variable block size coding
CN111212283B (zh) 用于多个图像帧的帧内刷新编码的方法
KR100924048B1 (ko) 비디오 부호화에서 화면내 방향성 예측모드 고속 결정방법
Liu et al. H. 264/AVC video error concealment algorithm by employing motion vector recovery under cloud computing environment
JP2005348280A (ja) 画像符号化方法、画像符号化装置、画像符号化プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US10735738B2 (en) Refinement of a low-pel resolution motion estimation vector
CN112911293B (zh) 用于对视频序列的图像进行编码的方法、系统和计算机可读介质
KR20060008523A (ko) 영상의 인트라 예측 방법 및 그 장치
JP4235162B2 (ja) 画像符号化装置,画像符号化方法,画像符号化プログラムおよびコンピュータ読み取り可能な記録媒体
Park CU encoding depth prediction, early CU splitting termination and fast mode decision for fast HEVC intra-coding
US20050053139A1 (en) Method and apparatus for determining reference data unit for predictive video data coding
CN113422959A (zh) 视频编解码的方法、装置、电子设备及存储介质
KR101769575B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
JP4216769B2 (ja) 動画像符号化方法、動画像符号化装置、動画像符号化プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4688170B2 (ja) 動画像符号化装置
KR101677696B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
US9948932B2 (en) Image processing apparatus and control method of image processing apparatus
KR101867885B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
KR101708905B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
KR101737606B1 (ko) 움직임 탐색시 효율적인 움직임 벡터 추출 방법 및 그 장치
Pientka et al. Deep video coding with gradient-descent optimized motion compensation and Lanczos filtering

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