CN107347159A - 使用动态参考运动矢量进行的运动矢量编码 - Google Patents

使用动态参考运动矢量进行的运动矢量编码 Download PDF

Info

Publication number
CN107347159A
CN107347159A CN201611218722.XA CN201611218722A CN107347159A CN 107347159 A CN107347159 A CN 107347159A CN 201611218722 A CN201611218722 A CN 201611218722A CN 107347159 A CN107347159 A CN 107347159A
Authority
CN
China
Prior art keywords
block
motion vector
current block
frame
common location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611218722.XA
Other languages
English (en)
Other versions
CN107347159B (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN107347159A publication Critical patent/CN107347159A/zh
Application granted granted Critical
Publication of CN107347159B publication Critical patent/CN107347159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/583Motion compensation with overlapping blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

本发明涉及使用动态参考运动矢量进行的运动矢量编码,其中描述了使用参考运动矢量来编码运动矢量以减少所需位的量的技术。一种方法包括针对视频位流的当前块来从不同数量的候选参考运动矢量中确定参考运动矢量,其中,参考运动矢量与参考块关联并且包括预测部分和残留部分;通过用一个或多个阈值评价参考运动矢量的残留部分来针对当前块选择概率场境模型;以及针对使用处理器的当前块,使用所述概率场境模型对与当前块关联的运动矢量残留进行熵解码。

Description

使用动态参考运动矢量进行的运动矢量编码
技术领域
本公开总体上涉及了编码和解码视频数据,更特别地,涉及使用参考运动矢量进行视频编码。
背景技术
数字视频流可代表使用帧或静止图像的序列的视频。数字视频可用于各种应用,包括例如视频会议、高清视频娱乐、视频广告、或共享由用户生成的视频。数字视频流可包含大量数据并且为了处理、发送或存储视频数据,消耗了计算装置的大量计算或通信资源。各种方法已经推荐了减少视频流中的数据量,包括压缩和其他编码技术。
发明内容
这里教导的一方面是一种对视频位流进行解码的方法。所述方法包括:针对所述视频位流的当前块,从不同数量的候选参考运动矢量中确定参考运动矢量,其中,所述参考运动矢量与参考块关联并且包括预测部分和残留部分;通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来为所述当前块选择概率场境模型;以及针对使用处理器的所述当前块,使用所述概率场境模型对与所述当前块关联的运动矢量残留进行熵解码。
这里教导的另一方面是一种编码视频流的方法。所述方法包括:针对所述视频流的当前块,从不同数量的候选参考运动矢量中选择参考运动矢量,其中,所述参考运动矢量与参考块关联并且包括预测部分和残留部分;通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来为所述当前块选择概率场境模型;以及针对使用处理器的所述当前块,使用所述概率场境模型对与所述当前块关联的运动矢量残留进行熵编码。
本文中的教导的另一方面是一种对视频位流解码的设备。所述设备包括:存储器;以及处理器,其被配置成执行所述存储器中存储的指令以:针对所述视频位流的当前块,从不同数量的候选参考运动矢量中确定参考运动矢量,其中,所述参考运动矢量与参考块关联并且包括预测部分和残留部分;通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来为所述当前块选择概率场境模型;以及针对使用处理器的所述当前块,使用所述概率场境模型对与所述当前块关联的运动矢量残留进行熵解码。
下文中,将额外详细地描述本公开的这些和其他方面的变形形式。
附图说明
这里的描述参考了附图,其中,在数个视图中,类似的附图标记始终表示类似的部件,除非另外指明。
图1是根据本公开的实施方式的视频编码和解码系统的示意图。
图2是根据本公开的实施方式的将被编码和解码的示例视频流的示图。
图3是根据本公开的实施方式的编码器的框图。
图4是根据本公开的实施方式的解码器的框图。
图5是根据本公开的实施方式的使用参考运动矢量来编码视频流的运动矢量的示例过程的流程图。
图6是根据本公开的实施方式的使用参考运动矢量来解码视频流的运动矢量的示例过程的流程图。
图7是包括用于说明图5和图6的过程的当前框的示例框架的示图。
图8是用于说明图5和图6的过程的示例概率场境模型的示图。
图9是可实现发送站或接收站的计算装置的示例的框图。
具体实施方式
与编码视频流相关的压缩方案可包括将各图像分成块并且使用一种或更多种技术来生成数字视频输出位流以限制输出中包括的信息。可将接收到的位流解码,以用有限的信息重新形成块和源图像。编码视频流或诸如帧或块的其一部分可包括使用视频流中的时间和空间相似性来提高编码效率。例如,可通过基于先前编码的块来预测当前块的运动和颜色信息并且识别预测值和当前块之间的差异(残留),基于视频流中的先前编码块对视频流的当前块进行编码。以此方式,只需要在位流中添加残留和用于产生残留的参数,而非包括当前块的全部。这种技术可被称为帧间预测。
帧间预测的参数之一是运动矢量,运动矢量代表先前编码块相对于当前块的空间位移。可使用诸如运动搜索的运动估计的方法来识别运动矢量。在运动搜索中,参考帧的一部分可被转换成形成预测块的一系列位置,可从当前帧的一部分中减去这些位置,以形成一连串残留。可选择与具有最小残留的位置对应的X和Y平移作为运动矢量。代表运动矢量的位可被包括在编码位流中,以允许解码器再现预测块并且解码编码视频位流的与运动矢量关联的部分。
对于视频压缩方案,运动矢量的编码经常消耗整体码率中的很大比例,尤其是对于以较低数据速率或较高压缩比率编码的视频流。为了提高编码效率,可使用参考运动矢量以不同方式编码运动矢量,即,仅编码运动矢量和参考运动矢量之间的差异(残留)。在一些情形下,可从视频流中的先前使用的运动矢量(例如,来自相邻块的最后一个非零运动矢量)中选择参考运动量。选择先前使用的运动矢量来编码当前运动矢量还可减少编码视频位流中包括的位数,由此减少发送和存储带宽的需要。运动矢量参考模式允许编码块来推导来自先前编码的相邻块的运动信息。
根据本公开的实施方式,对于视频位流的块,可从变化(动态可调)数量的候选参考运动矢量中选择参考运动矢量。候选参考运动矢量可包括诸如先前被编码(或解码)的帧中的块或先前已经被编码(或解码)的同一帧中的块的、来自视频流中的任何先前被编码(或解码)块的运动矢量。候选参考块可包括(当前块的)共同位置块和在其周围的参考帧中的块。例如,周围块可包括朝向共同位置块的右方、左下、右下、或下方的块。可使用一个或多个候选参考帧,包括单个和复合参考帧。通过数量动态可调节的候选参考帧和/或候选参考块,允许编解码器适于变形形式,并且基于指示物(诸如,各个个体块及其周围的运动特性)来调节候选项的数量,从而可提高编码效率。
如这里使用的,术语“概率场境模型”指的是根据如这里描述的场境选择或者基于如这里描述的场境识别的概率模型。根据实施方式,可使用概率场境模型针对当前块对运动矢量残留进行熵编码。可使用诸如块的相邻块中的先前编码的运动矢量残留的场境来选择概率场境模型,从而可提供额外的码率节省。用于运动矢量的熵编码的场境可以是基于例如参考块的运动矢量残留所指示的运动强度。例如,当用小运动矢量残留(例如,低于某个阈值)来编码所选择的参考块时,好迹象是当前块可具有相对小的运动矢量残留。为了从用于编码运动矢量残留的多个概率场境模型中选择概率场境模型,可将参考运动矢量的残留的大小与一个或多个阈值进行比较,以确定当前块的运动强度的指示。概率场境模型可包括预定的概率分布并且基于实际编码(解码)值进行更新。
基于所选择的概率场境模型,可使用运动矢量残留的大小来确定用于运动矢量残留的熵编码(或解码)的概率值。熵编码可使用诸如算术编码的技术。
可基于参考块和当前块之间的距离和参考运动矢量的流行度(popularity),从候选参考运动矢量中选择参考运动矢量。例如,参考运动矢量和当前块之间的距离可以是基于以像素为单元测得的、先前编码块中的像素和当前块中的共同位置像素之间的空间位移。例如,运动矢量的流行度可以是基于使用该运动矢量的先前编码像素的量。使用该运动矢量的先前编码像素越多,该运动矢量的流行度越高。在一个示例中,流行度值是使用运动矢量的先前编码像素的数量。在另一个示例中,流行度值是使用运动矢量的区域内的先前编码像素的百分比。
根据本文中的教导,可选择参考运动矢量来减少编码通过例如运动搜索技术所确定的运动矢量所需的位的数量。本文中的教导利用时间运动连续来减少通过参考相邻和非相邻视频帧中的运动矢量发送运动矢量信息所需的位数。在一些实施方式中,解码器可用编码器具有的所有信息来选择参考运动矢量,从而允许选择参考运动矢量,而不用明确传送其他信息。编码运动矢量残留可被包括在编码位流中,以允许解码器再现预测块并且对编码视频位流的与运动矢量关联的一部分解码。在本文中,在首先描述了可用于实现本公开的环境之后,描述其他细节。
图1是可实现本公开的一些方面的视频编码和解码系统100的示意图。发送站102可以是例如计算机,具有包括诸如中央处理单元(CPU)104的处理器和存储器106的内部硬件配置。CPU 104是用于控制发送站102的操作的控制器。CPU 104可通过例如存储器总线连接到存储器106。存储器106可以是只读存储器(ROM)、随机存取存储器(RAM)或任何其他合适的存储器装置。存储器106可存储供CPU104使用的数据和程序指令。发送站102的其他合适实施方式是可能的。例如,发送站102的处理可分布于多个装置。
网络108连接用于编码和解码视频流的发送站102和接收站110。具体地,视频流可在发送站102中被编码并且编码后的视频流可在接收站110中被解码。网络108可以是例如互联网。网络108还可以是局域网(LAN)、广域网(WA)、虚拟私有网(VPN)、蜂窝电话网络或将视频流从发送站102传送到(在这个示例中)接收站110的任何其他装置。
在一个示例中,接收站110可以是计算机,具有包括诸如CPU 112的处理器和存储器114的内部硬件配置。CPU 112是用于控制接收站110的操作的控制器。CPU 112可通过例如存储器总线连接到存储器114。存储器114可以是ROM、RAM或任何其他合适的存储器装置。存储器114可存储供CPU 112使用的数据和程序指令。接收站110的其他合适实施方式是可能的。例如,接收站110的处理可分布于多个装置。
被配置成显示视频流的显示器116可连接到接收站110。可以以各种方式实现显示器116,包括液晶显示器(LCD)、阴极射线管(CRT)、或发光二极管显示器(LED)(诸如,有机发光二极管显示器(OLED))。显示器116联接到CPU 112并且可被配置成显示在接收站110中被解码的视频流的呈现118。
编码器和解码器系统100的其他实施方式也是可能的。例如,实施方式可省略网络108和/或显示器116。在另一个实施方式中,视频流可被编码,然后被存储,以后续由发送站102或具有存储器的任何其他装置来发送。接收站110可接收(例如,借助网络108、计算机总线、或某个通信路径)编码视频流并且存储视频流,以后续进行解码。可在编码器和解码器系统100中添加额外的组件。例如,可将显示器或视频摄影机附连到发送站102,以捕获将被编码的视频流。
图2是将被编码和解码的视频流200的示图。视频流200(在本文中也被称为视频数据)包括视频序列204。在下一级处,视频序列204包括多个相邻帧206。虽然在相邻帧206中示出三个帧,但视频序列204可包括任何数量的相邻帧。随后,可将相邻帧206进一步细分为个体帧,例如,帧208。各帧208可捕获含一个或多个对象(诸如,人、背景要素、图形、文本、空白墙壁、或任何其他信息)的场景。
在下一级处,帧208可被分成块210的集合,这些块210可包含与帧208中的8×8像素组(在下述示例中的一些中)对应的数据。块210还可具有任何其他合适的大小,诸如,16×8个像素的块、8×8个像素的块、16×16个像素的块、4×4个像素的块、或任何其他大小。除非另外指出,否则术语“块”可包括宏块、子块(即,宏块的细分)、分段、切片、残留块或帧的任何其他部分。帧、块、像素或其组合可包括可用于存储、修改、传达、或显示视频流或其一部分的显示信息(诸如,亮度信息、色度信息、或任何其他信息)。
图3是根据本公开的实施方式的编码器300的框图。例如,编码器300可如上所述诸如通过提供存储器106中存储的计算机软件程序在发送站102中实现。计算机软件程序可包括当由CPU 104执行时致使发送站102以图3中描述的方式编码视频数据的机器指令。编码器300还可被实现为例如发送站102中的专用软件。编码器300具有执行(用实线连接线示出的)正向路径上的各种功能以使用视频流200作为输入来形成编码或压缩位流320的以下各级:帧内/帧间预测级304、变换级306、量化级308和熵编码级310。编码器300可包括用于重构编码今后块的帧的(用虚线连接线示出的)重构路径。在图3中,编码器300具有执行重构路径上的各种功能的以下各级:反量化级312、逆变换级314、重构级316和环路滤波级318。可使用编码器300的其他结构变形形式来编码视频流200。
当视频流200表现为用于编码时,可按块为单元来处理视频流200内的各帧208。参照图3,在帧内/帧间预测级304处,可使用帧内预测(即,单个帧内)或帧间预测(即,帧-帧)来编码各块。在任一种情况下,可形成预测块。然后,从块中减去预测块,以形成残留块(在本文中也被称为残留)。
帧内预测(在本文中也被称为帧内-预测或帧-内预测)和帧间预测(在本文中也被称为帧间-预测或帧-间预测)是在现代图像/视频压缩方案中使用的技术。在帧内预测的情况下,预测块可由先前已经被编码和重构的当前帧中的样本形成。在帧间预测的情况下,预测块可由诸如最近一帧(即,就在当前帧先前的相邻帧)、黄金帧或如下描述的配置的或替代的帧的一个或多个先前配置的参考帧中的样本形成。
然后,从当前块中减去预测块。然后,差异或残留被编码并且发送到解码器。图像或视频编解码器可支持许多不同的帧内和帧间预测模式;各块可使用预测模式中的一个来得到与块最近似的预测块,以使将被编码在残留中而重新形成块的信息最少。转换系数的各块的预测模式还可被编码并且发送,所以解码器可在解码和重构处理中使用相同的预测模式来形成预测块。
预测模式可选自多个帧内预测模式之一。可供选择地,可在编码方案中使用一个或多个参考帧(包括例如最近一帧、黄金帧、替代参考帧、或任何其他参考帧)从多个帧间预测模式之一中选择预测模式。位流语法支持帧间预测模式中的三种类别。帧间预测模式可包括例如:模式(有时被称为ZERO_MV模式),在该模式下,使用参考帧内的与当前块的位置相同的块作为预测块;模式(有时被称为NEW_MV模式),在该模式下,发送运动矢量以指示将相对于当前块用作预测块的参考帧内的块的位置;或模式(有时被称为包括NEAR_MV或NEAREST_MV模式的REF_MV模式),在该模式下,不发送运动矢量并且当前块使用供相邻的先前编码块使用的最近的一个或第二近的一个的非零运动矢量来生成预测块。帧间预测模式可与可用参考帧中的任一个一起使用。
参考运动矢量编码模式分析可用块运动活动来形成经排序的参考运动矢量候选列表,从而允许参考运动矢量模式的大小成为动态扩展的固定NEAREST_MV模式和NEAR_MV模式的概括,并且提高熵编码的功效。REF_MV模式代表参考运动矢量模式,包括NEAR_MV和NEAREST_MV、以及当候选运动矢量列表示出足够变形形式时的扩展模式。熵编码系统开始于NEAR_MV,根据所找到的参考运动矢量的数量的场境来选择概率模型,并且如果找到具有匹配的参考帧的相邻块,确定以NEAR_MV模式来编码相邻块。如果编码模式是NEAR_MV模式,则若模式是ZERO_MV模式,编解码器持续进行编码。当先前帧中的共同位置块正使用零运动矢量,或者接近零运动矢量(即,小于行和列组成的1个全像素)时,或者当空间相邻块正使用零或接近零的运动矢量时,编解码器根据场境来选择模式概率模型。如果编码模式是非ZERO_MV模式,则编解码器在REF_MV模式之间进行决策。关联的场境是多少参考运动矢量登记在候选列表和加权系数中。REF_MV模式语法提示有效运动矢量是源自参考相邻块编码信息。在给定参考帧的情况下,这些可能的参考运动矢量候选项的列表包括根据其与当前块的相对距离和重叠量进行排序的参考运动矢量候选。编解码器需要决定要拾取和使用列表中的哪个。编解码器可选择列表中的候选参考运动矢量之中的将提供最佳预测的候选运动矢量并且向解码器与该特定候选运动矢量关联的索引。
接下来,仍然参照图3,变换级306将残留转换成例如频域中的转换系数的块。基于块的变换的示例包括Karhunen-Loève变换(KLT)、离散余弦变换(DCT)、Walsh-HadamardTransform变换(WHT)、奇异值分解变换(SVD)和不对称离散正弦变换(ADST)。在一个示例中,DCT将块变换到频域中。在DCT的情况下,变换系数值是基于空间频率,最低频率(例如,DC)系数在矩阵的左上方而最高频率系数在矩阵的右上方。
图4是根据本公开的实施方式的解码器400的框图。解码器400可诸如通过例如提供存储在存储器中的计算机软件程序而在例如接收站110中实现。计算机软件程序可包括机器指令,这些机器指令在由CPU 112执行时,致使接收站110与图4中描述的方式来解码视频数据。解码器400还可被实现为例如发送站102或接收站110中的专用硬件或固件。
类似于以上讨论的编码器300的重构路径,在一个示例中,解码器400包括执行各种功能以用压缩位流320形成输出视频流416的各种功能的如下级:熵解码级402、反量化级404、反变换级406、帧内/帧间预测级408、重构级410、环路滤波级412和去块滤波级414。可使用解码器400的其他结构变形形式来解码压缩位流320。
当压缩位流320表现为用于解码时,可通过熵解码级402(使用例如算术编码)来解码压缩位流320内的数据元素以生成量化变换系数的集合。反量化级404将量化后的变换系数反量化并且逆变换级406将反量化后的变换系数逆变换,以形成可与通过编码器300中的重构级316形成的残留相同的导数残留。使用从压缩位流320解码而来的头部信息,解码器400可使用帧内/帧间预测级408来形成与编码器300中的例如帧内/帧间预测级304处形成的相同的预测块。在帧内预测的情况下,可使用位流内包含的信息,在位流中发送或者通过解码器配置用于生成预测块的参考帧。
在重构级410处,预测块可与导数残留相加,以形成可与通过编码器300中的重构级316形成的块相同的重构块。环路滤波级412可应用于重构块,以减少块效应。去块滤波级414可应用于重构块,以减少块失真,并且结果被作为输出视频流416输出。输出视频流416还可被称为解码视频流并且这些术语将在本文中可互换地使用。
可使用解码器400的其他变形形式来解码压缩位流320。另外,解码器可在没有去块滤波级414的情况下形成输出视频流416。
图5是根据本公开的实施方式的使用参考运动矢量来编码视频流的运动矢量的示例过程500的流程图。过程500可在诸如编码器300(图3中示出)的编码器来实现并且可被实现为例如可由诸如发送站102或接收站110(图1中示出)的计算装置来执行。例如,软件程序可包括可存储在诸如存储器106或存储器114的存储器中,并且可由诸如CPU 104的处理器执行以致使计算装置执行过程500的机器可读指令。
可使用专用硬件或固件来实现过程500。一些计算装置可具有多个存储器、多个处理器、或这二者。可使用不同处理器、存储器或这二者来分配过程500的步骤。使用单数术语“处理器”或“存储器”涵盖具有一个处理器或一个存储器的计算装置以及具有多个处理器或多个存储器的装置,这多个处理器或多个存储器均可用于所述步骤中的一些或全部的效能。为了简化说明,过程500被描绘和描述为一系列步骤。然而,根据本公开的步骤可按各种次序和/或同时地出现。另外,根据本公开的步骤可在不存在其他步骤的情况下出现并且在本文中进行描述。此外,并非会需要用所有例示步骤来实现根据所公开主题的方法。
过程500假设正使用在诸如发送站102上的计算装置上执行的诸如视频编码器300的视频编码器编码的具有多个帧的视频数据的流,每个帧具有多个块。可由计算装置按任何数量的方式来接收视频数据或流,诸如,凭借通过网络、通过电缆、或者通过从主存储器或其他存储装置读取视频数据来接收视频数据,这些其他存储装置包括诸如紧凑闪存(CF)卡、安全数字(SD)卡、或能够传达视频数据的任何其他装置。可从与操作编码器的计算装置连接的视频相机接收视频数据。使用帧间预测来编码帧内的至少一些块,如以下更详细描述的。
在502中,过程500针对视频位流的当前块从变化数量的候选参考运动矢量中选择参考运动矢量。当前块位于视频位流的当前帧中。候选参考运动矢量可包括来自视频流中的任何先前编码块的运动矢量。先前编码块可包括在当前块先前使用帧间预测进行编码的任何块(诸如,先前编码帧中的块、或在当前块先前已经被编码的与当前块相同的帧中的块)。
先前编码块可包括例如在当前块之前被编码的位于当前帧中的块。例如,在一些编码/解码(编解码器)方案(诸如,以光栅扫描次序编码的方案)中,先前编码块可包括朝向当前块左方的块、朝向当前块左上方的块、朝向当前块右上方的块、当前块上方的块等。
先前编码块还可包括位于视频位流中的当前帧的参考帧中的块。例如,候选参考块可包括参考帧中的当前块的共同位置块和参考帧中的以下块中的至少一个(诸如,朝向共同位置块右方的块、共同位置块下方的块、朝向共同位置块的左下方块和朝向共同位置块右下方的块)。参考帧可以是时间上相邻的帧(诸如,最近一帧)或时间上不相邻的帧(诸如,黄金帧或替代帧)。例如,参考帧可以就是在当前帧的前一帧(最近一帧)、黄金帧中的块(例如,在帧内/帧间级304处描述的)、任何其他参考帧中的块、或以上的任何组合。
可基于以下理论,用以某种方式对应于当前块的先前编码块来得到候选参考运动矢量:这些块由于它们的像素接近当前块而导致有可能与当前块具有类似的运动特性。例如,过程500可分析先前编码块的运动活性以生成一系列排序的候选参考运动矢量,从而采用有效的参考运动矢量排序系统,并且提供完全归因于可用运动矢量候选列表的动态运动参考模式,从而允许参考运动矢量的数量动态延长或缩短并且提高了熵编码的功效。候选参考运动矢量候选的列表可根据例如针对当前块的相邻参考块状况而有所不同(诸如,动态延长或缩短)。对应地,针对当前块的候选参考块的数量也可有所不同。另外,在考虑之列的候选参考帧的数量也可有所不同。使用不同数量的候选参考帧和/或变化数量的候选参考块,允许编码器/解码器(编解码器)适于变形形式并且基于诸如各个体块及其周围的移动特性的指示物来调节候选的数量,这样可提高当前块的编码效率。
可从不同数量的候选参考块的动态列表中选择参考块,参考块可包括参考帧中的共同位置块中的一个或多个、参考帧中的朝向共同位置块右方的块、参考帧的在共同位置块下方的块、参考帧中的朝向共同位置块左下方的块、参考帧中的朝向共同位置块右下方的块、当前帧中的当前块上方的块、当前帧中的朝向当前块左方的块、当前帧中的朝向当前块左上方的块和当前帧中的朝向当前块右上方的块。如以上讨论的,候选参考块的数量可基于例如针对当前块的相邻参考块而有所不同。
仍然在502中,从候选参考运动矢量中选择参考运动矢量。可通过编码器内的速率失真环路来评价各候选参考运动矢量,该环路通过比较各候选参考运动矢量的速率失真成本(例如,针对由于编码导致的图像改变的位成本)来确定最佳编码模式。
可基于最靠近当前块并且具有最高优先级值的候选运动矢量,从候选参考运动矢量中选择参考运动矢量。过程500可针对各候选参考运动矢量来确定与候选运动矢量关联的先前编码块和当前块之间的距离。例如,与候选运动矢量关联的先前编码块和当前块之间的距离可以是基于以像素为单元测得的先前编码块中的像素和当前块中的共同位置像素之间的空间位移。基于从先前编码块到当前块的从最近到最远的距离和先前编码块和当前块之间的重叠长度来将候选参考运动矢量排序。可基于参考覆盖区域中有多少先前编码像素使用该特定候选运动矢量,针对各候选运动矢量来确定流行度值。使用特定候选运动矢量的先前编码像素越多,针对该特定候选运动矢量的流行度值将越高。可向共用同一参考帧组合的相邻参考块中的候选参考运动矢量分派较高优先级。可基于具有最高优先级的候选运动量,从候选参考运动矢量中选择参考运动矢量。
可用单个参考帧或不止一个参考帧来预测包括当前块的块。例如,可通过两个或更多个帧的平均(在某些情况下,加权平均)来形成复合参考帧。对于使用单个参考帧的块,选择可以是基于例如从与最高流行度值关联并且与最靠近当前块的参考块关联的候选参考运动矢量中选择运动矢量。对于具有复合参考帧的块,过程500可发现,例如,选择可以基于例如共享具有较高优先级的同一参考帧组合的参考块中的运动矢量。当识别到不到2个候选参考运动矢量时,复合参考帧中的候选参考运动矢量可附带单个参考帧的参考运动矢量的组合。也可使用其他选择标准。
候选参考运动矢量可限于空间-时间上相邻的运动矢量。也就是说,候选参考运动矢量的池可选自与当前块的区域相邻的区域。在一些视频编码方案中,特别地,在其中不按次序编码视频帧的视频编码方案中,期望在候选参考运动矢量的池中包括来自在遥远的过去或未来的视频帧的运动信息。例如,在所谓的“交替参考帧”的编码中,可出现不按次序编码视频帧,交替参考帧与就在它们之前或就在它们之后被编码的帧在时间上并不相邻。交替参考帧可以是在输入视频流中没有出现的合成帧,或者是输入视频流中的用于预测并且通常在解码之后没有显示的帧的复制帧。此帧可类似于久远未来中的视频帧。可出现不按次序编码的另一个示例是通过使用所谓的“黄金参考帧”,黄金参考帧是可与或不可与当前视频帧相邻的重构视频帧并且被存储在存储器中,用作参考帧,直到例如被新的黄金参考帧替换。
参考运动矢量可用于进一步处理。即,可在针对当前帧的下一个块再次开始处理之前,使用参考运动矢量对当前块的运动矢量进行编码。另外,可根据相对于图3描述的处理来编码当前块。在编码当前块的运动矢量时,存在多种使用参考运动矢量的方式。例如,并且如上所述,过程500可以是用于为待编码当前块选择帧间预测模式的速率失真环路的部分。作为速率失真环路的部分,可通过根据任何数量的技术进行运动搜索来确定用于当前块的帧间预测的实际运动矢量。参考运动矢量的一种使用可包括基于实际运动矢量有可能靠近用于选择参考运动矢量的矢量的理由,使用参考运动矢量作为运动搜索算法的开始参数。可供选择地,可在过程500之前或者与过程500并行地执行运动搜索。
在504中,过程500通过用一个或多个阈值评价参考运动矢量的残留部分来选择针对当前块的概率场境模型。在502中选择的与参考块关联的参考运动矢量包括预测部分(“预测参考运动矢量”)和残留部分(“参考运动矢量残留”)。可在506中使用所选择的概率场境模型,以编码当前块的运动矢量残留。
如所讨论的,运动矢量(诸如,当前块的运动矢量或在502中选择的参考运动矢量)可包括预测部分和残留部分。对于当前块,预测部分是预测运动矢量,即,针对当前块选择的参考运动矢量。当前块的残留部分是基于参考运动矢量和当前块的运动矢量之间的差异。对于参考块,预测部分即预测参考运动矢量是为了预测参考运动矢量而选择的预测运动矢量,并且残留部分即参考运动矢量残留是基于预测参考运动矢量和参考运动矢量之间的差异。以下将说明的图7包括当前块B的运动矢量和参考块R0的参考运动矢量的示例,运动矢量均具有预测部分和残留部分。
概率场境模型可包括用于编码当前块的运动矢量残留的概率分布,诸如,预定的或更新后的概率分布。编码当前块的运动矢量残留可包括例如使用所选择的概率场境模型对运动矢量残留进行熵编码。可基于实际编码值来更新概率分布。
包括基于当前块的相邻块中的场境(诸如,先前编码的运动矢量残留)来选择概率场境模型的场境建模可提供额外的码率节省。多个概率场境模型可用于在不同场境中的对运动矢量残留进行熵编码。用于运动矢量的熵编码的场境可以是基于例如参考块的运动矢量残留(即,参考运动矢量残留)所指示的运动强度。例如,当用小运动矢量残留(例如,低于某个阈值)来编码所选择的参考块时,好迹象是当前块可具有相对小的运动矢量残留。这可指示当前块具有弱运动强度,并且可针对当前块来选择与指示弱运动强度的块的类别关联的概率场境模型。否则,当所选择的参考块被编码有大运动矢量残留时,可指示当前块可具有相对大的运动矢量残留,这指示强运动强度,并且可针对当前块来选择与指示强运动强度的块的类别关联的不同概率场境模型。
为了选择用于编码当前块的运动矢量残留的概率场境模型,可将参考运动矢量的残留部分的大小与一个或多个阈值进行比较,以针对当前块确定运动强度的指示。例如,可将参考运动矢量的残留部分的水平(X)和垂直(Y)分量中的每个的绝对值与一个预定阈值(或多个预定阈值)进行比较,以确定参考运动矢量残留的大小是小还是大。预定阈值可以是像素值,例如,2个或8个像素。如果参考运动矢量残留的X和Y分量二者都小于阈值,则可确定参考运动矢量残留的大小(“参考残留大小”)小,并且可指示当前块的运动强度弱。如果参考运动矢量残留的X或Y分量等于或大于阈值,则可确定参考残留大小大,这可指示当前块具有大运动矢量残留,并且可指示当前块的运动强度强。以下将说明的图8包括两个示例概率场境模型,可使用这两个模型来编码不同运动强度的块的运动矢量残留。在图8的示例中,当参考运动矢量的残留部分的垂直和水平分量二者都小于阈值(例如,8个像素)时,将针对被指示具有弱运动强度的块,选择“类别0”的概率场境模型。否则,将选择“类别1”。还可按其他方式确定该大小是例如X和Y分量的平方和的平方根等。
基于所选择的概率场境模型,可使用当前块的运动矢量残留的大小来确定用于对当前块的运动矢量残留进行熵编码的有效(实际)概率值。可使用诸如算术编码的技术,使用概率值对运动矢量残留进行熵编码。将在图7之后讨论的图8包括两个示例概率场境模型,可用这两个模型针对当前块选择概率场境模型,可使用该概率场境模型来确定用于对当前块的运动矢量残留进行熵编码的有效概率值。
图7是示例帧700的示图,示例帧700包括当前块B和在当前块B之前已经被编码的块,例如,朝向当前块B的左方或上方的块R0、R1和R2。在这个示例中,出于例示目的,候选参考运动矢量包括来自当前块B上方的块R0的运动矢量pmv0、来自当前块B左方的块R1的运动矢量pmv1和来自当前块B左上方的块R2的运动矢量pmv2。候选参考运动矢量还可包括来自帧700或其他帧中的其他块的运动矢量。在这个示例中,参考块被选择为块R0,当前块B上方的块。因此,块R0的运动矢量pmv0是块B的参考运动矢量。包括块B和针对块B选择的参考块(在这个示例中,R0)的各块可具有包括两部分(并且编码到两部分中)的运动矢量:预测部分和残留部分。
在图7中,块B具有运动矢量mv,其包括预测部分pmv0和残留部分res0。预测部分(即参考运动矢量pmv0)与参考块R0(在这个示例中,所选择的参考块)关联。残留部分res0是基于参考运动矢量pmv0和块B的运动矢量mv之间的差异。对于参考块R0,运动矢量pmv0可包括预测部分即R0的参考运动矢量(图7中的ppmv)和残留部分(图7中的pres0)即参考运动矢量pmv0和块R0的预测参考运动矢量ppmv之间的差异。预测部分或残留部分中的任一个可以是零。例如,当残留部分是零时,可使用参考运动矢量直接用诸如块B或R0的块的参考块来预测该块。
编码过程500(或图6中的解码过程600)可评价参考运动矢量(例如,图7中的pmv0)的残留部分(例如,图7中的pres0)的大小,以选择可用于编码块B的运动矢量的残留部分。例如,可将块R0的残留部分pres0的水平(X)和垂直(Y)分量中的每个的绝对值与阈值进行比较,以针对块B选择概率场境模型。该比较可以是基于例如将参考运动矢量pres0的X和Y分量二者与阈值进行比较,以确定这二者是否都小于阈值。在这个示例中,阈值可以是比方说8个像素。基于该比较,可确定参考运动矢量的残留大小是大或小,从而可使用其从不同概率场境模型中选择概率场境模型,如将在图8中进一步说明的。
图8是用于说明图5和图6的过程的示例概率场境模型的示图。在这个示例中,两个概率场境模型被示出为“类别0”和“类别1”。虽然只示出了两个概率场境模型,但概率场境模型的数量可超过两个。“类别0”是用于编码表现出(被指示为)弱运动强度的块的概率场境模型,“类别1”是用于编码表现出强运动强度的块的概率场境模型。如果参考块R0的参考运动矢量残留即pres0的X和Y分量二者都小于阈值(例如,8个像素),则针对当前块B选择“类别0”的概率场境模型。否则,选择“类别1”。
在这个示例中,用于编码块B的实际(有效)概率值可被除以256。编码过程可作为二叉决策树(binary tree decision)来进行。过程500或600可经历所选择的概率场境模型的概率分布,从大小0开始,直至找到当前块(例如,块B)的运动矢量残留(例如,图7中的res0)的目标大小值(例如,X或Y分量的绝对值)。例如,当块B的运动矢量残留res0的大小是0并且确定块B是“类别0”时,编码块B的大小0的(有效)概率是80/256。然而,如果确定块B属于类别1,则编码块B的大小0的概率是50/256。当将针对块B编码的运动矢量残留的大小是1时,类别0的块的有效概率被确定是((256-80)/256)*(60/256)并且类别1的块的有效概率是((256-50)/256)*(40/256)。在另一个示例中,当将针对块B编码的运动矢量残留的大小是2时并且确定块B属于“类别0”时,可确定概率是((256-80)/256)*((256-60)/256)*(40/256),等等。编解码器先开始确定大小是否为0。如果不为0,则将确定大小是否为1,直到它到达目标大小值。还可使用其他方式来确定用于编码过程的概率值。
回到504,例如,可基于针对帧中的一些或所有块确定的概率场境模型的柱状图来更新场境模型中的概率分布。例如,一旦处理(编码或解码)了帧中的所有块,就可更新场境模型。还可以以其他基础(诸如,根据各宏块或针对限定的一组块)来更新场境模型。
在506中,针对使用处理器的当前块,过程500使用概率场境模型对与当前块关联的运动矢量残留进行熵编码。可确定,与当前块关联的运动矢量残留是针对当前块确定的运动矢量和参考运动矢量之间的差异。
如所讨论的,可基于在504中选择的概率场境模型,使用当前块的运动矢量残留的大小来确定用于对当前块的运动矢量残留进行熵编码的有效(实际)概率值。概率值可用于使用诸如算术编码的技术对运动矢量残留进行熵编码。在图8的示例中,当选择与“类别1”块关联的概率场境模型并且当前块的运动矢量残留的大小是1时,可通过从大小0开始向所选择的概率场境模型(“类别1”)应用二叉树处理直到达到当前块的目标大小,确定用于对具有大小1的运动矢量残留进行熵编码的有效概率是例如((256-50)/256)*(40/256)。在这个示例中,目标大小是1。
位可被包括在视频流中,用于识别编码的运动矢量大小以及预定概率分布中的哪个用于基于编码的大小来形成运动矢量。在一些变形形式中,指示哪个参考帧用于解码当前块的一个或多个位也可被包括在位流中。如同它用于差分编码,参考运动矢量还可缩放成它期望的程度。
可使用参考运动矢量以不同方式编码实际运动矢量。例如,可通过从用于编码当前块的运动矢量中减去参考运动矢量来计算差异值。该差异值可被编码并且包括在视频流中。由于参考运动矢量是使用先前编码和解码的数据形成的,因此所述数据可在解码器处可用于识别与用于在编码器处形成运动矢量时所使用的相同的参考运动矢量,从而不需要针对当前块来编码和发送运动矢量。可将解码后的差异值与如下所述的通过解码器识别的参考运动矢量相加,以形成用于解码当前块的运动矢量。注意的是,参考运动矢量与可用参考帧之一关联。因此,倘若参考运动矢量与和与实际运动矢量关联的参考帧不同的参考帧关联,可如之前描述地缩放参考运动矢量,以生成参考运动矢量和实际运动矢量之间的差异。所使用的参考帧的分开指示也将被编码在位流中。
还可在编码当前块时直接使用参考运动矢量。这可出现在例如使用通过运动搜索而确定的运动矢量来编码当前块时涉及的速率失真值的比较高于使用参考运动矢量来编码当前块时涉及的速率失真值的比较时。在该比较中,所使用的参考帧将期望地是用于选择参考运动矢量的参考帧,所以不需要缩放。在某些情况下,关于是否要使用参考运动矢量的决策可与参考运动矢量和通过搜索得到的运动矢量之间的差异有联系。当该差异小(或为零)时,通过使用参考运动矢量进行搜索而得到的参考帧的预测结果与实际运动矢量的差异也小(或为零)。当直接使用参考运动矢量来编码当前块时,将不需要将运动矢量单独编码。替代地,一个或多个位将与当前块关联地被插入位流中,用于指示使用用于编码的参考运动矢量。
图6是根据本公开的实施方式的使用参考运动矢量来解码视频流的运动矢量的过程600的流程图。解码器可再现在图5中示出的过程500中配置的所述候选参考运动矢量。解码器可读取位流的索引,以确定候选参考运动矢量中要使用的参考运动矢量。过程600可被实现为例如可由诸如发送站102或接收站110的计算装置执行的软件程序。例如,软件程序可包括机器可读指令,机器可读指令可被存储在诸如存储器106或114中的存储器中,并且当由诸如CPU 104或112的处理器执行时,可致使计算装置执行过程600。可使用专用硬件或固件来实现过程600。如以上说明的,一些计算装置可具有多个存储器或处理器,并且可使用多个处理器、存储器或这二者来分配过程600的步骤。
为了简化说明,过程600被描绘和描述为一系列步骤。然而,根据本公开的步骤可按各种次序和/或同时地出现。另外,根据本公开的步骤可在不存在其他步骤的情况下出现并且在本文中进行描述。此外,并非会需要用所有例示步骤来实现根据所公开主题的方法。
期望的是,过程600基本上遵从过程500。然而,在下面对过程600的描述中指出了一些不同之处。在步骤与过程500中的步骤基本类似的情况下,将参照以上的描述。
在602中,针对编码后的视频位流,解码器从不同数量的候选参考运动矢量中确定当前块的参考运动矢量。参考运动矢量与参考块关联并且包括预测部分和残留部分。可通过读取并且解码编码后的视频位流中的位来传达该信息,这些位指示根据以上公开的技术中的一种来使用参考运动矢量。计算装置的解码器已经以任何数量的方式接收到编码后的位流(或编码后的视频数据),诸如,凭借通过网络、通过电缆、或者通过从主存储器或其他存储装置读取视频数据来接收视频数据,这些其他存储装置包括诸如DVD、紧凑闪存(CF)卡、安全数字(SD)卡、或能够传达视频流的任何其他装置。步骤602涉及解码编码后的视频位流中的至少一部分,以提取关于当前块的运动矢量的信息。例如,该信息可被包括在与当前块关联的头部或帧头部中。一个或多个头部中的信息向解码器指示将使用帧间预测来解码当前块并且用于该帧间预测的运动矢量依赖于如之前描述的参考运动矢量。例如,位流中的信息可指示使用参考运动矢量以不同方式编码在编码当前块时使用的实际运动矢量。可供选择地,信息可指示直接使用参考运动矢量来编码当前块。
候选参考运动矢量可包括来自视频流中的任何先前解码块的运动矢量。先前解码块可包括在当前块之前使用帧间预测进行解码的任何块,诸如,先前编码帧中的块或在当前块之前已经被解码的与当前块相同的帧中的块。
先前解码块可包括例如在当前块之前被解码的位于当前帧中的块。例如,在一些编码/解码(编解码器)方案(诸如,以光栅扫描次序编码的方案)中,先前解码块可包括朝向当前块左方的块、朝向当前块左上方的块、朝向当前块右上方的块、当前块上方的块等。先前解码块还可包括位于视频位流中的当前帧的参考帧中的块。例如,候选参考块可包括参考帧中的当前块的共同位置块和参考帧中的以下块中的至少一个:诸如,朝向共同位置块右方的块、共同位置块下方的块、朝向共同位置块左下方的块和朝向共同位置块右下方的块。
一旦确定了参考运动矢量,就可使用所选择的参考运动矢量来解码用于编码当前块的运动矢量。然后,可使用解码后的运动矢量来根据图4的过程解码当前块。
过程600可从例如同一参考帧的上方和左方相邻块中识别候选参考运动矢量。所识别的候选参考运动矢量可通过如之前描述的标志来实现和/或通过关于基于当前块的位置来选择可用于编码器和解码器二者的候选参考运动矢量来实现。可基于例如参考块和当前块和各候选参考运动矢量的流行度之间的距离,将候选参考运动矢量排序。可针对各候选参考运动矢量确定参考块和当前块之间的距离。可基于与多个候选参考运动矢量关联的一组先前编码的像素值通过流行度值来确定各候选参考运动矢量的流行度。最有可能的候选参考运动矢量可被指派作为用于例如NEW_MV模式的预测运动矢量。额外运动矢量可基于它们与当前块的相对距离和参考块和当前块及其流行度值之间的重叠长度被指派用于REF_MV模式,包括例如NEAREST_MV模式和NEW_MV模式。如果候选参考运动矢量的列表包括不止两个候选参考运动矢量,则参考运动矢量模式的数量可动态扩展。然后,可确定是要使用NEW_MV模式还是使用REF_MV模式。当选择REF_MV模式时,过程600还确定是要使用NEAREST_MV模式还是NEAR_MV模式。
如果使用参考运动矢量以不同方式编码当前块的实际运动矢量,则解码器可通过例如解码随后可与被选择用于生成实际运动矢量的参考运动矢量相加的编码差异值来解码移动矢量。然后,可使用实际运动矢量利用帧间预测来解码当前块。可使用参考运动矢量来识别预定概率分布,可使用该概率分布来解码用于编码当前块的运动矢量的大小值,之后再使用移动矢量来解码当前块。类似于图5的讨论,这样可涉及缩放参考运动矢量。可直接使用参考运动矢量作为用于在指示参考运动矢量应该这样使用的一个或多个位之后解码当前块。
在604中,过程600通过用一个或多个阈值评价参考运动矢量的残留部分来选择针对当前块选择概率场境模型。在602中确定的与参考块关联的参考运动矢量包括预测部分(“预测参考运动矢量”)和残留部分(“参考运动矢量残留”)。可使用所选择的概率场境模型来解码当前块的运动矢量残留。如之前讨论的,运动矢量(诸如,当前块的运动矢量或在502中选择的参考运动矢量)可均包括预测部分和残留部分。
概率场境模型可包括用于解码当前块的运动矢量残留的概率分布(诸如,预定的或更新后的概率分布)。解码当前块的运动矢量残留可包括例如使用所选择的概率场境模型对运动矢量残留进行熵编码。可基于实际解码值来更新概率分布。因为无损编码方案(例如,熵编码)中的实际值和解码值对于编码器和解码器而言是相同的,所以不需要发送概率场境模型。
多个概率场境模型可用于在不同场境中的对运动矢量残留进行熵解码。用于运动矢量的熵编码的场境可以是基于例如参考块的运动矢量残留所指示的运动强度。例如,当用小运动矢量残留(例如,低于某个阈值)来解码所选择的参考块时,好迹象是当前块可具有相对小的运动矢量残留。这可指示当前块具有弱运动强度,并且可针对当前块来选择与指示弱运动强度的块的类别关联的概率场境模型。否则,可针对当前块来选择与指示强运动强度的块的类别关联的不同概率场境模型。
为了选择用于解码当前块的运动矢量残留的概率场境模型,可将参考运动矢量的残留部分的大小与一个或多个阈值进行比较,以针对当前块确定运动强度的指示。
在606中,过程600针对当前块使用概率场境模型来解码与当前块关联的运动矢量。
基于604中选择的概率场境模型,可使用当前块的运动矢量残留的大小来确定用于对当前块的运动矢量残留进行熵编码的有效(实际)概率值。可使用诸如算术编码的技术,使用概率值对运动矢量残留进行熵编码。在图8的示例中,当选择与“类别1”块关联的概率场境模型并且当前块的运动矢量残留的大小是1时,可通过从大小0开始向所选择的概率场境模型(“类别1”)应用二叉树处理直到达到当前块的目标大小,确定用于对具有大小1的运动矢量残留进行熵编码的有效概率是例如((256-50)/256)*(40/256)。在这个示例中,目标大小是1。
位可被包括在视频流中,用于识别编码的运动矢量大小以及预定概率分布中的哪个用于基于可通过过程600解码的编码大小来形成运动矢量。指示哪个参考帧用于解码当前块的一个或多个位也可被包括在位流中。
一旦解码了运动矢量和当前块,就可处理下一个块。如果下一个块被帧间编码,则可重复过程600。可用通过帧内或帧间预测而重构的值推导的块来重构帧。输出可以是输出视频流(诸如,图4中示出的输出视频流416)。
图9是可实现为发送站或接收站的计算装置900的示例的框图。例如,计算装置900可实现图1的发送站102和接收站110中的一个或两个。计算装置900可处于包括多个计算装置的计算系统的形式,或者处于单个计算装置的形式,例如,移动电话、平板计算机、便携式计算机、笔记本计算机、台式计算机等。
计算装置900中的CPU 902可以是中央处理单元。可供选择地,CPU 902可以是能够操纵或处理现存或此后开发的操纵或处理信息的任何其他类型的装置或多个装置。虽然可用如所示出的单个处理器(例如,CPU 902)实现所公开的实施方式,但可使用不止一个处理器来实现速度和效率的优点。
计算装置900中的存储器904可以是实施方式中的只读存储器(ROM)装置或随机存取存储器(RAM)装置。可使用任何合适其他类型的存储装置作为存储器904。存储器904可包括供CPU 902使用总线912访问的代码和数据906。存储器904还可包括操作系统908和应用程序910,应用程序910包括允许CPU 902执行这里所描述方法的至少一个程序。例如,应用程序910可包括应用1至N,还包括执行这里所描述的方法的视频编码应用。计算装置900还可包括辅存储器914,辅存储器914可以是例如用于移动计算装置的存储卡。因为视频通信会话可包含大量信息,所以它们可被全部或部分地存储在辅存储器914中并且根据需要被加载到存储器904中以进行处理。
计算装置900还可包括诸如显示器918的一个或多个输出装置。在一个示例中,显示器918可以是触摸感应显示器,将显示器与可操作用于感测触摸输入的触摸感应元件相结合。显示器918可借助总线912联接到CPU 902。可提供允许用户将计算装置900编程或者以其他方式使用计算装置900的其他输出装置作为显示器918的补充或替代。当输出装置是显示器或包括显示器时,可按各种方式(包括LCD、CRT显示器、或诸如OLED显示器的LED显示器)来实现显示器。
计算装置900还可包括图像感测装置920(例如,相机)或现在存在或此后开发的可感测图像(诸如,操作计算装置900的用户的图像)的任何其他图像感测装置920或者与其通信。图像感测装置920可被设置成,使得它指向操作计算装置900的用户。在示例中,图像感测装置920的位置和光学轴可被配置成使得视场包括与显示器918紧邻并且从其可见显示器918的区域。
计算装置900还可包括声音感测装置922(例如,麦克风)或现在存在或此后开发的可感测计算装置900附近的声音的任何其他声音感测装置。声音感测装置922可被设置成,使得它指向操作计算装置900的用户并且可被配置成接收在用户操作计算装置900时用户发出的声音(例如,语言或其他发言)。
虽然图9将计算装置900的CPU 902和存储器904描绘为集成为单个单元,但可利用其他配置。CPU 902的操作可被分配于可直接联接或者跨局域网或其他网络的多个机器(各机器具有一个或多个处理器)。存储器904可被分布于多个机器,诸如,基于网络的存储器或执行计算装置900的操作的多个机器中的存储器。虽然这里描绘为单个总线,但计算装置900的总线912可由多个总线构成。另外,辅存储器914可直接联接到计算装置900的其他组件或者可借助网络来访问并且可包括诸如存储卡的单个集成单元或诸如多个存储卡的多个单元。计算装置900因此可在各式各样的配置中实现。
上述编码和解码的方面示出编码和解码技术的一些示例。然而,要理解,编码和解码(如权利要求书中使用的那些术语)可意指数据的压缩、解压缩、变换、或任何其他处理或改变。
词语“示例”或“方面”在本文中用于意指用作示例、实例、或图示。在本文中被描述为“示例”或“方面”的任何方面或设计不一定被理解为相对于其他方面或设计是优选或有利的。相反,使用词语“示例”或“方面”旨在以有形方式表现构思。如本申请中使用的,术语“或”旨在意指包括性的“或”而非排他性的“或”。也就是说,除非另外指明,或者从上下文中清楚的,“X包括A或B”旨在意指自然包括性排列中的任一个。也就是说,如果X包括A;X包括B;或X既包括A又包括B,则在以上情形中的任一个下满足“X包括A或B”。另外,本申请和随附权利要去书中使用的冠词“一”和“一个”大体应该被理解为意指“一个或多个”,除非另外指明或根据场境清楚的是指单数形式。此外,使用术语“实施方式”或“方面”始终不旨在意指相同的实施例或实施方式,除非如此描述。
发送站102和/或接收站110(和存储在其上和/或供其执行包括供编码器300和解码器400执行的算法、方法、指令等)的实施方式可用硬件、软件、或其任何组合来实现。硬件可包括例如计算机、知识产权(IP)核、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其他合适的电路。在权利要求书中,术语“处理器”应该被理解为涵盖以上硬件(单个或组合地)中的任一个。术语“信号”和“数据”可互换地使用。另外,发送站102和接收站110的一些部分不一定必须以相同方式实现。
另外,在一个方面,例如,可使用带计算机程序的通用计算机或通用处理器来实现发送站102或接收站110,计算机程序当被执行时,执行本文中描述的各个方法、算法和/或指令中的任一个。作为补充或替代,例如,可利用可包含用于执行本文中描述的方法、算法、或指令中的任一个的其他硬件的专用计算机/处理器。
发送站102和接收站110可以例如在视频会议系统中的计算机上实现。可供选择地,发送站102可在服务器上实现并且接收站110可在与服务器分开的装置(诸如,手持通信装置)上实现。在这种情形下,发送站102可使用编码器300将内容编码成编码视频信号并且向通信装置发送编码后的视频信号。进而,通信装置可随后使用解码器400来解码编码后的视频信号。可供选择地,通信装置可解码本地存储在通信装置上的内容,例如,不通过发送站102发送的内容。其他合适的发送站102和接收站110实现方案是可用的。例如,接收站110可以是常见固定式个人计算机而非便携式通信装置和/或包括编码器300的装置还可包括解码器400。
另外,本公开的实施方式中的全部或一部分可采取可从例如有形计算机可用或计算机可读介质访问的计算机程序产品的形式。计算机可使用或计算机可读介质可以是任何装置,可例如有形地包含存储、通信、或传输供任何处理使用或与任何处理器结合使用的程序。该介质可以是例如电子、磁、光学、电磁、或半导体装置。还可用其他合适的介质。
已经描述了上述实施例、实施方式和方面,以允许容易理解本公开并且不限制本公开。相反地,本公开旨在涵盖包括在随附权利要求书的范围内的各种修改形式和等同形式,该范围将给予最广的解释,以涵盖法律所允许的所有这些修改形式和等同结构。

Claims (20)

1.一种对视频位流进行解码的方法,所述方法包括:
针对所述视频位流的当前块,从不同数量的候选参考运动矢量中确定参考运动矢量,其中,所述参考运动矢量与参考块关联并且包括预测部分和残留部分;
通过用一个或多个阈值评价所述参考运动矢量的所述残留部分,而为所述当前块选择概率场境模型;以及
针对使用处理器的所述当前块,使用所述概率场境模型对与所述当前块关联的运动矢量残留进行熵解码。
2.根据权利要求1所述的方法,其中,所述当前块位于所述视频流的当前帧中,并且所述参考块是位于所述当前帧中的先前解码的块或位于所述视频位流中的所述当前帧的参考帧中的块。
3.根据权利要求2所述的方法,其中,针对所述当前帧,从第一不同数量的候选参考帧中选择所述参考帧,并且针对所述当前块,所述参考帧包括第二不同数量的候选参考块,所述第二不同数量的候选参考块包括所述当前块的共同位置块和以下中的至少一个:
所述共同位置块右方的块、所述共同位置块下方的块、所述共同位置块左下方的块和所述共同位置块右下方的块。
4.根据权利要求2所述的方法,其中,所述参考块选自不同数量的候选参考块的动态列表,所述候选参考块包括以下中的至少一个:所述参考帧中的共同位置块、所述参考帧中的所述共同位置块右方的块、所述参考帧中的所述共同位置块下方的块、所述参考帧中的所述共同位置块左下方的块、所述参考帧中的所述共同位置块右下方的块、所述当前帧中的所述当前块上方的块、所述当前帧中的所述当前块左方的块、所述当前帧中的所述当前块左上方的块和所述当前帧中的所述当前块右上方的块。
5.根据权利要求1所述的方法,其中,通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来为所述当前块选择概率场境模型包括:
将所述参考运动矢量的所述残留部分的大小与所述一个或多个阈值进行比较,以确定所述当前块的运动强度的可能性的指示;以及
基于当前块的运动强度的可能性的指示,从多个概率场境模型中选择所述概率场境模型。
6.根据权利要求5所述的方法,其中,所述多个概率场境模型包括与指示强运动强度的第一类别的块关联的第一概率场境模型和与指示弱运动强度的第二类别的块关联的第二概率场境模型。
7.根据权利要求5所述的方法,其中,基于为帧中的一些或全部块而确定的概率场境模型的柱状图来更新所述多个概率场境模型。
8.根据权利要求1所述的方法,其中,与所述当前块关联的所述运动矢量残留被确定为针对所述当前块确定的运动矢量与所述参考运动矢量之间的差异。
9.一种对视频流进行编码的方法,所述方法包括:
针对所述视频流的当前块,从不同数量的候选参考运动矢量中选择参考运动矢量,其中,所述参考运动矢量与参考块关联并且包括预测部分和残留部分;
通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来针对所述当前块选择概率场境模型;以及
针对使用处理器的所述当前块,使用所述概率场境模型对与所述当前块关联的运动矢量残留进行熵编码。
10.根据权利要求9所述的方法,其中,所述当前块位于所述视频流的当前帧中,并且所述参考块是位于所述当前帧中的先前编码的块或位于所述视频位流中的所述当前帧的参考帧中的块。
11.根据权利要求10所述的方法,其中,针对所述当前帧,从第一不同数量的候选参考帧中选择所述参考帧,并且针对所述当前块,所述参考帧包括第二不同数量的候选参考块,所述第二不同数量的候选参考块包括所述当前块的共同位置块和以下中的至少一个:
所述共同位置块右方的块、所述共同位置块下方的块、所述共同位置块左下方的块和所述共同位置块右下方的块。
12.根据权利要求10所述的方法,其中,所述参考块选自不同数量的候选参考块的动态列表,所述候选参考块包括以下中的至少一个:所述参考帧中的共同位置块、所述参考帧中的所述共同位置块右方的块、所述参考帧中的所述共同位置块下方的块、所述参考帧中的所述共同位置块左下方的块、所述参考帧中的所述共同位置块右下方的块、所述当前帧中的所述当前块上方的块、所述当前帧中的所述当前块左方的块、所述当前帧中的所述当前块左上方的块和所述当前帧中的所述当前块右上方的块。
13.根据权利要求9所述的方法,其中,通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来为所述当前块选择概率场境模型包括:
将所述参考运动矢量的所述残留部分的大小与所述一个或多个阈值进行比较,以确定所述当前块的运动强度的可能性的指示;以及
基于当前块的运动强度的可能性的指示,从多个概率场境模型中选择所述概率场境模型。
14.根据权利要求13所述的方法,其中,所述多个概率场境模型包括与指示强运动强度的第一类别的块关联的第一概率场境模型和与指示弱运动强度的第二类别的块关联的第二概率场境模型。
15.根据权利要求13所述的方法,其中,基于针对帧中的一些或全部块而确定的概率场境模型的柱状图来更新所述多个概率场境模型。
16.根据权利要求9所述的方法,其中,与所述当前块关联的所述运动矢量残留被确定为针对所述当前块确定的运动矢量和所述参考运动矢量之间的差异。
17.一种对视频位流进行解码的设备,所述设备包括:
存储器;以及
处理器,其被配置成执行所述存储器中存储的指令来:
针对所述视频位流的当前块,从不同数量的候选参考运动矢量中确定参考运动矢量,其中,所述参考运动矢量与参考块关联并且包括预测部分和残留部分;
通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来针对所述当前块选择概率场境模型;以及
针对所述当前块,使用所述概率场境模型对与所述当前块关联的运动矢量残留进行熵解码。
18.根据权利要求17所述的设备,其中,所述当前块位于所述视频流的当前帧中,并且所述参考块是位于所述当前帧中的先前解码的块或位于所述视频位流中的所述当前帧的参考帧中的块。
19.根据权利要求18所述的设备,其中,针对所述当前帧从第一不同数量的候选参考帧中选择所述参考帧,并且所述参考帧包括针对所述当前块的第二不同数量的候选参考块,所述第二不同数量的候选参考块包括所述当前块的共同位置块和以下块中的至少一个:
所述共同位置块右方的块、所述共同位置块下方的块、所述共同位置块左下方的块和所述共同位置块右下方的块。
20.根据权利要求17所述的设备,其中,通过用一个或多个阈值评价所述参考运动矢量的所述残留部分来为所述当前块选择概率场境模型包括:
将所述参考运动矢量的所述残留部分的大小与所述一个或多个阈值进行比较,以确定所述当前块的运动强度的可能性的指示;以及
基于当前块的运动强度的可能性的指示,从多个概率场境模型中选择所述概率场境模型。
CN201611218722.XA 2016-05-05 2016-12-26 一种对视频位流进行编解码的方法、设备 Active CN107347159B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/147,053 2016-05-05
US15/147,053 US10142652B2 (en) 2016-05-05 2016-05-05 Entropy coding motion vector residuals obtained using reference motion vectors

Publications (2)

Publication Number Publication Date
CN107347159A true CN107347159A (zh) 2017-11-14
CN107347159B CN107347159B (zh) 2020-05-19

Family

ID=57797011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611218722.XA Active CN107347159B (zh) 2016-05-05 2016-12-26 一种对视频位流进行编解码的方法、设备

Country Status (5)

Country Link
US (1) US10142652B2 (zh)
CN (1) CN107347159B (zh)
DE (2) DE102016125117B4 (zh)
GB (1) GB2550008B (zh)
WO (1) WO2017192175A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110662070A (zh) * 2018-06-29 2020-01-07 北京字节跳动网络技术有限公司 用于查找表更新的编码的运动信息的选择
WO2020094076A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Motion candidates for inter prediction
US20200413044A1 (en) 2018-09-12 2020-12-31 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
US11134244B2 (en) 2018-07-02 2021-09-28 Beijing Bytedance Network Technology Co., Ltd. Order of rounding and pruning in LAMVR
US11134267B2 (en) 2018-06-29 2021-09-28 Beijing Bytedance Network Technology Co., Ltd. Update of look up table: FIFO, constrained FIFO
US11140383B2 (en) 2019-01-13 2021-10-05 Beijing Bytedance Network Technology Co., Ltd. Interaction between look up table and shared merge list
US11140385B2 (en) 2018-06-29 2021-10-05 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in LUT
US11159807B2 (en) 2018-06-29 2021-10-26 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
US11159817B2 (en) 2018-06-29 2021-10-26 Beijing Bytedance Network Technology Co., Ltd. Conditions for updating LUTS
US11528501B2 (en) 2018-06-29 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Interaction between LUT and AMVP
US11528500B2 (en) 2018-06-29 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Partial/full pruning when adding a HMVP candidate to merge/AMVP
US11589071B2 (en) 2019-01-10 2023-02-21 Beijing Bytedance Network Technology Co., Ltd. Invoke of LUT updating
US11641483B2 (en) 2019-03-22 2023-05-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
US11895318B2 (en) 2018-06-29 2024-02-06 Beijing Bytedance Network Technology Co., Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
US11956464B2 (en) 2019-01-16 2024-04-09 Beijing Bytedance Network Technology Co., Ltd Inserting order of motion candidates in LUT

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
US10609423B2 (en) * 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
US10555006B2 (en) * 2016-12-22 2020-02-04 Qualcomm Incorporated Deriving bilateral filter information based on a prediction mode in video coding
WO2020071672A1 (ko) * 2018-10-02 2020-04-09 엘지전자 주식회사 움직임 벡터를 압축하는 방법 및 그 장치
KR20200083316A (ko) * 2018-12-28 2020-07-08 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN113348667B (zh) * 2018-12-31 2023-06-20 北京字节跳动网络技术有限公司 在具有MVD的Merge下的距离索引的解析方法
US11418810B2 (en) * 2020-09-21 2022-08-16 Tencent America LLC Methods of inter picture motion prediction for multi-view video compression
JP2024511725A (ja) * 2021-03-05 2024-03-15 ボドナー、ザカリー 眼位異常を測定および分類するためのシステムおよび方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2296383A1 (en) * 2005-11-14 2011-03-16 Samsung Electronics Co., Ltd. Method, medium and apparatus encoding and/or decoding an image using the same coding mode across components
CN102714720A (zh) * 2009-11-18 2012-10-03 Sk电信有限公司 通过选择一组预测候选运动向量来对运动向量进行编码/解码的方法和装置以及使用所述方法和装置进行图像编码/解码的方法和装置
CN103051895A (zh) * 2012-12-07 2013-04-17 浙江大学 一种上下文模型选择的方法和装置
CN103227924A (zh) * 2013-05-07 2013-07-31 北京大学 一种算术编码器及编码方法
WO2014007515A1 (ko) * 2012-07-02 2014-01-09 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
US20150055706A1 (en) * 2013-08-23 2015-02-26 Google Inc. Video coding using reference motion vectors
CN104394418A (zh) * 2014-09-23 2015-03-04 清华大学 一种视频数据编码、解码的方法及装置
CN104519354A (zh) * 2013-10-02 2015-04-15 瑞萨电子株式会社 视频编码器及其操作方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3807342B2 (ja) 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
US7469070B2 (en) 2004-02-09 2008-12-23 Lsi Corporation Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements
ATE480104T1 (de) 2006-01-09 2010-09-15 Matthias Narroschke Adaptive codierung eines prädiktionsfehlers bei der hybrid-videocodierung
JP4660433B2 (ja) 2006-06-29 2011-03-30 株式会社東芝 符号化回路、復号回路、エンコーダ回路、デコーダ回路、cabac処理方法
CA2730383A1 (en) 2008-07-10 2010-01-14 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, and image decoding method
KR101279573B1 (ko) * 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
RS62714B1 (sr) * 2011-06-16 2022-01-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2296383A1 (en) * 2005-11-14 2011-03-16 Samsung Electronics Co., Ltd. Method, medium and apparatus encoding and/or decoding an image using the same coding mode across components
CN102714720A (zh) * 2009-11-18 2012-10-03 Sk电信有限公司 通过选择一组预测候选运动向量来对运动向量进行编码/解码的方法和装置以及使用所述方法和装置进行图像编码/解码的方法和装置
WO2014007515A1 (ko) * 2012-07-02 2014-01-09 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
CN103051895A (zh) * 2012-12-07 2013-04-17 浙江大学 一种上下文模型选择的方法和装置
CN103227924A (zh) * 2013-05-07 2013-07-31 北京大学 一种算术编码器及编码方法
US20150055706A1 (en) * 2013-08-23 2015-02-26 Google Inc. Video coding using reference motion vectors
CN104519354A (zh) * 2013-10-02 2015-04-15 瑞萨电子株式会社 视频编码器及其操作方法
CN104394418A (zh) * 2014-09-23 2015-03-04 清华大学 一种视频数据编码、解码的方法及装置

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
D. MARPE ET AL: "Video Compression Using Context-Based Adaptive Arithmetic Coding", 《INTERNATIONAL CONFERENCE ON IMAGE PROCESSING》 *
GARY J. SULLIVAN ET AL: "Overview of the High Efficiency Video Coding (HEVC) Standard", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 *
VIVIENNE SZE ET AL: "A Highly Parallel and Scalable CABAC Decoder for Next Generation Video Coding", 《IEEE JOURNAL OF SOLID-STATE CIRCUITS》 *
VIVIENNE SZE ET AL: "Joint Algorithm-Architecture Optimization of CABAC to Increase Speed and Reduce Area Cost", 《IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING》 *
VIVIENNE SZE: "Joint Algorithm-Architecture Optimization of CABAC", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11, NO. JCTVC-E324_V3》 *
戴文睿: "基于结构化概率模型学习的异构数据压缩编码", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146786B2 (en) 2018-06-20 2021-10-12 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in LUT
US11695921B2 (en) 2018-06-29 2023-07-04 Beijing Bytedance Network Technology Co., Ltd Selection of coded motion information for LUT updating
US11159807B2 (en) 2018-06-29 2021-10-26 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
US11706406B2 (en) 2018-06-29 2023-07-18 Beijing Bytedance Network Technology Co., Ltd Selection of coded motion information for LUT updating
US11973971B2 (en) 2018-06-29 2024-04-30 Beijing Bytedance Network Technology Co., Ltd Conditions for updating LUTs
US11134267B2 (en) 2018-06-29 2021-09-28 Beijing Bytedance Network Technology Co., Ltd. Update of look up table: FIFO, constrained FIFO
CN110662070B (zh) * 2018-06-29 2022-03-18 北京字节跳动网络技术有限公司 用于查找表更新的编码的运动信息的选择
US11245892B2 (en) 2018-06-29 2022-02-08 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in LUT
US11140385B2 (en) 2018-06-29 2021-10-05 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in LUT
US11146785B2 (en) 2018-06-29 2021-10-12 Beijing Bytedance Network Technology Co., Ltd. Selection of coded motion information for LUT updating
US11877002B2 (en) 2018-06-29 2024-01-16 Beijing Bytedance Network Technology Co., Ltd Update of look up table: FIFO, constrained FIFO
US11528500B2 (en) 2018-06-29 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Partial/full pruning when adding a HMVP candidate to merge/AMVP
US11153557B2 (en) 2018-06-29 2021-10-19 Beijing Bytedance Network Technology Co., Ltd. Which LUT to be updated or no updating
US11528501B2 (en) 2018-06-29 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Interaction between LUT and AMVP
CN110662070A (zh) * 2018-06-29 2020-01-07 北京字节跳动网络技术有限公司 用于查找表更新的编码的运动信息的选择
US11895318B2 (en) 2018-06-29 2024-02-06 Beijing Bytedance Network Technology Co., Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
US11159817B2 (en) 2018-06-29 2021-10-26 Beijing Bytedance Network Technology Co., Ltd. Conditions for updating LUTS
US11909989B2 (en) 2018-06-29 2024-02-20 Beijing Bytedance Network Technology Co., Ltd Number of motion candidates in a look up table to be checked according to mode
US11134244B2 (en) 2018-07-02 2021-09-28 Beijing Bytedance Network Technology Co., Ltd. Order of rounding and pruning in LAMVR
US11134243B2 (en) 2018-07-02 2021-09-28 Beijing Bytedance Network Technology Co., Ltd. Rules on updating luts
US11463685B2 (en) 2018-07-02 2022-10-04 Beijing Bytedance Network Technology Co., Ltd. LUTS with intra prediction modes and intra mode prediction from non-adjacent blocks
US11153559B2 (en) 2018-07-02 2021-10-19 Beijing Bytedance Network Technology Co., Ltd. Usage of LUTs
US11153558B2 (en) 2018-07-02 2021-10-19 Beijing Bytedance Network Technology Co., Ltd. Update of look-up tables
US11159787B2 (en) 2018-09-12 2021-10-26 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking HMVP candidates depend on total number minus K
US20200413044A1 (en) 2018-09-12 2020-12-31 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
US20210297659A1 (en) 2018-09-12 2021-09-23 Beijing Bytedance Network Technology Co., Ltd. Conditions for starting checking hmvp candidates depend on total number minus k
WO2020094076A1 (en) * 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Motion candidates for inter prediction
US11665344B2 (en) 2018-11-06 2023-05-30 Beijing Bytedance Network Technology Co., Ltd. Multiple merge lists and orders for inter prediction with geometric partitioning
US11431973B2 (en) 2018-11-06 2022-08-30 Beijing Bytedance Network Technology Co., Ltd. Motion candidates for inter prediction
US11265541B2 (en) 2018-11-06 2022-03-01 Beijing Bytedance Network Technology Co., Ltd. Position dependent storage of motion information
US11589071B2 (en) 2019-01-10 2023-02-21 Beijing Bytedance Network Technology Co., Ltd. Invoke of LUT updating
US11909951B2 (en) 2019-01-13 2024-02-20 Beijing Bytedance Network Technology Co., Ltd Interaction between lut and shared merge list
US11140383B2 (en) 2019-01-13 2021-10-05 Beijing Bytedance Network Technology Co., Ltd. Interaction between look up table and shared merge list
US11962799B2 (en) 2019-01-16 2024-04-16 Beijing Bytedance Network Technology Co., Ltd Motion candidates derivation
US11956464B2 (en) 2019-01-16 2024-04-09 Beijing Bytedance Network Technology Co., Ltd Inserting order of motion candidates in LUT
US11641483B2 (en) 2019-03-22 2023-05-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools

Also Published As

Publication number Publication date
DE202016008257U1 (de) 2017-05-29
DE102016125117A1 (de) 2017-11-09
US20170324978A1 (en) 2017-11-09
GB2550008B (en) 2020-04-15
CN107347159B (zh) 2020-05-19
US10142652B2 (en) 2018-11-27
DE102016125117B4 (de) 2022-06-02
WO2017192175A1 (en) 2017-11-09
GB2550008A (en) 2017-11-08
GB201621802D0 (en) 2017-02-01

Similar Documents

Publication Publication Date Title
CN107347159A (zh) 使用动态参考运动矢量进行的运动矢量编码
CN104854866B (zh) 下一代视频的内容自适应、特性补偿预测
CN111801945A (zh) 具有基于边信息的视频编译的混合运动补偿神经网络
CN104718756B (zh) 利用经修改的参考的内容自适应预测性图片和功能预测性图片进行下一代视频译码
CN104469362B (zh) 用于对运动矢量进行解码的方法
CN111868751A (zh) 在视频代码化的机器学习模型中使用应用于量化参数的非线性函数
CN103313052B (zh) 用于对运动矢量进行编码/解码的方法和设备
Kuang et al. Machine learning-based fast intra mode decision for HEVC screen content coding via decision trees
CN107027038A (zh) 动态参考运动矢量编码模式
CN104869418B (zh) 影像编码/解码方法和装置
EP3732655A1 (en) Video compression through motion warping using learning-based motion segmentation
CN109983770A (zh) 多级复合预测
US11956447B2 (en) Using rate distortion cost as a loss function for deep learning
CN104053005B (zh) 使用分级相平面相关性和块匹配的运动估计
CN107318015A (zh) 用于视频编码的混合预测模式
CN107231557A (zh) 用于在视频编码中的高级帧内预测的递归块分区中的智能重排
CN107005697A (zh) 用于视频译码的使用基于查找表的概率更新的熵译码的方法与系统
CN110169059A (zh) 视频代码化的复合预测
CN104219531B (zh) 基于线状帧内块拷贝的hevc屏幕内容编码
CN110351554A (zh) 用于视频编码的分割和模式决策的生成
CN103167286B (zh) 用于运动估计的详尽的子宏块形状候选保存和恢复协议
Yuan et al. Contextualized spatio-temporal contrastive learning with self-supervision
CN107465923A (zh) 在可变块尺寸的视频译码中的自适应重叠块预测
CN107113435A (zh) 基于视频平坦性的分区模式和变换尺寸确定
CN101945277B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant