CN108432252A - 视频编码中的运动矢量选择及预测系统和方法 - Google Patents

视频编码中的运动矢量选择及预测系统和方法 Download PDF

Info

Publication number
CN108432252A
CN108432252A CN201580085512.5A CN201580085512A CN108432252A CN 108432252 A CN108432252 A CN 108432252A CN 201580085512 A CN201580085512 A CN 201580085512A CN 108432252 A CN108432252 A CN 108432252A
Authority
CN
China
Prior art keywords
block
motion vector
prediction block
vector
movement
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
CN201580085512.5A
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.)
RealNetworks LLC
Original Assignee
RealNetworks Inc
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 RealNetworks Inc filed Critical RealNetworks Inc
Publication of CN108432252A publication Critical patent/CN108432252A/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/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/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/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/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

Abstract

视频帧序列中的未编码视频帧被编码以生成代表未编码视频帧的经编码的比特流。经编码的比特流包括头部和视频数据负载部。未编码视频帧可划分成包括第一预测块的预测块的阵列。编码模式选自在对第一预测块的编码中使用的多个编码模式。第一预测块使用所选择的编码模式来进行编码,以生成经编码的比特流的视频数据负载的一部分。编码模式选择标志设置在经编码的比特流的头部中,其指示多个编码模式中的哪个编码模式被选择为用于对第一预测块进行编码。

Description

视频编码中的运动矢量选择及预测系统和方法
相关申请的交叉引用
本申请是先前提交的第PCT/CN2015/075599号PCT申请的部分延续,该申请于2015年3月31日提交,且发明名称为“视频编码中的运动矢量选择及预测系统和方法(MotionVector Selection and Prediction in Video Coding Systems and Methods)”(代理人文件号:REAL-2015693),该申请的全部内容出于所有目的通过引用并入本文。
技术领域
本公开涉及视频信号的编码和解码,更具体地涉及对视频序列的帧选择预测性运动矢量。
背景技术
诸如数字图像、语音/音频、图形和视频的数字多媒体的出现已显著改善了各种应用,并开启了全新的应用,因为通过其已相对容易地实现了可靠的存储、通信和传输以及对内容的搜索和访问。总的来说,数字多媒体的应用已经很多,其包括娱乐、信息、医药和安全等广泛领域,并且在诸多方面使社会受益。由传感器(诸如摄像机和麦克风)捕获的多媒体通常是模拟形式,并且以脉冲编码调制(PCM)形式的数字化处理将其渲染成数字化形式。然而,就在数字化之后,所产生的数据量可能会相当大,因为这对于重建扬声器和/或电视显示器所需的模拟表示而言是必需的。因此,大量数字多媒体内容的有效通信、存储或传输需要从原始PCM形式压缩成经压缩的表示。因此,用于多媒体压缩的许多技术已被发明。多年来,视频压缩技术的发展非常复杂,以至于它们通常可实现10至100之间的高压缩比,同时保持了高心里视觉品质,这通常与未经压缩的数字视频相似。
尽管迄今为止在视频压缩的技术领域和科学方面(如由诸如MPEG-1、MPEG-2、H.263、MPEG-4第2部分、MPEG-4AVC/H.264、MPEG-4SVC和MVC,以及诸如Windows媒体视频、RealVideo、On2 VP等行业驱动专有标准)已取得了巨大进步,但消费者对更高品质、更高清晰度、以及当前的3D(立体声)视频的需求日益增加,随时随地的访问都需要通过各种方式(如DVD/BD、无线广播、有线/卫星、有线和移动网络)传递到一系列客户端设备(诸如PC/笔记本电脑、电视机、机顶盒、游戏控制台、便携式媒体播放器/设备、智能手机和可穿戴计算设备),而这激发了对更高级别的视频压缩的需求。在标准体驱动标准中,ISO MPEG在高效视频编码方面最近开展的工作就证明了这一点,而其有望将新技术贡献与来自由ITU-T标准委员会在H.265视频压缩方面的多年探索性工作的技术结合起来。
所有上述的标准均采用通用的帧内/帧间预测编码框架以减少经编码的比特流中的空间和时间冗余。帧间预测的基本概念是通过使用块匹配方法去除相邻图片之间的时间依赖性。在编码处理开始时,未编码视频序列的每个帧被分为三类:I型帧、P型帧和B型帧。I型帧是帧内编码的。也就是说,只有来自帧本身的信息被用于对图片进行编码,并且没有使用帧间运动补偿技术(尽管可以应用帧内运动补偿技术)。
另外两种类型的帧(P型和B型)是使用帧间运动补偿技术进行编码的。P图片与B图片之间的差异在于用于运动补偿的基准图片的时间方向。P型图片利用来自显示顺序中的先前图片的信息,而B型图片可以利用来自显示顺序中的先前图片和未来图片两者的信息。
对于P型帧和B型帧而言,每个帧划分成由每个像素的亮度和色度分量的系数表示的像素块,并且针对每个块获得一个或多个运动矢量(因为B型图片可利用来自未来经编码的帧和过去经编码的帧这两者的信息,所以对于每个块,可对两个运动矢量进行编码)。运动矢量(MV)表示从当前块的位置到另一先前经编码的帧(其可以是显示顺序中的过去或未来帧)中的相似块的位置的空间位移,而它们分别被称为基准块和基准帧。基准块与当前块之间的差值被计算以生成残差(也称为“残差信号”)。因此,对于帧间编码的帧的每个块,只需要对残差和运动矢量进行编码,而不是块的全部内容。通过消除视频序列的帧之间的这种时间冗余,可压缩视频序列。
为了进一步压缩视频数据,在应用帧间或帧内预测技术之后,残差信号的系数通常从空间域转换到频域(例如,使用离散余弦变换(“DCT”)或离散正弦变换(“DST”))。对于自然出现的图像(如通常构成人类可感知视频序列的图像类型)而言,低频能量总是比高频能量强。频域中的残差信号因此比空间域中的残差信号得到更好的能量压缩。在正向变换之后,系数和运动矢量可被量化和熵编码。
在解码器侧,应用逆量化和逆变换以恢复空间残差信号。这些是所有视频压缩标准中的典型变换/量化处理。然后,执行反向预测处理以生成原始的未编码视频序列的重建版本。
在过去的标准中,编码中使用的块一般为16×16像素(在许多视频编码标准中称为宏块)。然而,自这些标准的发展以来,帧尺寸已变得越来越大,并且许多设备已获得高于“高清晰度”(或“HD”)帧尺寸(如2048×1530像素)的显示能力。因此,可能期望具有较大的块来有效地对这些帧尺寸(例如,64×64像素)的运动矢量进行编码。然而,由于分辨率的相应增加,所以也可能期望能够在相对较小的尺度(4×4像素)上执行运动预测和变换。
随着运动预测的分辨率的增加,无论是对每个帧还是相应地对整个视频序列,编码和传输运动矢量所需的带宽量均有所增加。
发明内容
本发明的一个方面为一种对视频帧序列中的未编码视频帧进行编码以生成代表所述未编码视频帧的经编码的比特流的方法,其中,所述未编码视频帧包括像素阵列,所述像素阵列具有多个像素行和多个像素列,并且代表所述未编码视频帧的、所述经编码的比特流至少包括一个头部和视频数据负载,所述方法包括以下步骤:将所述像素阵列划分成多个预测块,其中,所述多个预测块包括具有左上角、右上角和左下角的第一预测块,并且所述第一预测块具有第一角落像素、第二角落像素和第三角落像素,其中,所述第一角像素位于所述第一预测块的所述左上角处,存在与所述第一角落像素的左侧相邻的第一基准像素、与所述第一角落像素的上侧相邻的第二基准像素以及与所述第一基准像素的上侧和所述第二基准像素的左侧相邻的第三基准像素,所述第二角落像素位于所述第一预测块的所述右上角处,存在与所述第二角落像素的上侧相邻的第四基准像素,并且所述第三角落像素位于所述第一预测块的所述左下角处;获得所述第一预测块的运动矢量候选项的有序列表;从所述第一预测块的运动矢量候选项的所述有序列表中选择运动矢量以用于对所述第一预测块进行编码;使用来自所述第一预测块的运动矢量候选项的所述有序列表中的所述运动矢量,获得所述第一预测块的编码版本;将所述第一预测块的所述编码版本提供到代表所述未编码视频帧的所述经编码的比特流的所述视频数据负载中;将运动-矢量-选择标志提供到代表所述未编码视频帧的所述经编码的比特流的所述头部中;以及其中,所述运动-矢量-选择标志指示所述第一预测块的运动矢量候选项的所述有序列表中的、与来自所述第一预测块的运动矢量候选项的所述有序列表的所述运动矢量对应的位置。
附图说明
图1示出了根据至少一个实施方式的示例性视频编码/解码系统。
图2示出了根据至少一个实施方式的示例性编码设备的若干组件。
图3示出了根据至少一个实施方式的示例性解码设备的若干组件。
图4示出了根据至少一个实施方式的示例性视频编码器的框图。
图5示出了根据至少一个实施方式的示例性视频解码器的框图。
图6示出了根据至少一个实施方式的示例性运动-矢量-选择例程。
图7示出了根据至少一个实施方式的示例性运动-矢量-候选项-生成子例程。
图8示出了根据至少一个实施方式的示例性运动-矢量-恢复例程。
图9示出了。
具体实施方式
下面的详细描述主要以传统计算机组件的操作的处理和符号表示的方式呈现,其中,该传统计算机组件包括处理器、用于处理器的记忆存储设备、所连接的显示设备,以及输入设备。此外,这些处理和操作可利用异构分布式计算环境中的传统计算机组件,其中,其包括远程文件服务器、计算机服务器和记忆存储设备。这些传统分布式计算组件中的每个都可由处理器通过通信网络来访问。
短语“在一个实施方式中”、“在至少一个实施方式中”、“在各种实施方式中”、“在某些实施方式中”等可在本文中重复使用。这种短语不一定指示相同的实施方式。除非上下文另有规定,否则术语“包括”、“具有”和“包含”是同义的。在典型的“混合”视频编码方案的上下文中描述了各种实施方式,而如上面一般性描述的,典型的“混合”视频编码方案使用帧内/帧间-图片预测和变换编码。
下面具体参照如附图中所示的实施方式的描述。尽管结合附图和相关描述来描述了实施方式,但是本领域的普通技术人员将认识到,替代性实现和/或等同实现可替代所示出和描述的具体实施方式,无论是否明确示出和/或描述,在不脱离本公开的范围的情况下,其包括所有替代、修改和等同物。在各种替代性实施方式中,附加设备或所示设备的组合可被添加或组合,而不是使范围受限于本文中所公开的实施方式。
示例性视频编码/解码系统
图1示出了根据至少一个实施方式的示例性视频编码/解码系统100。编码设备200(在图2中示出并在下文中描述)和解码设备300(在图3中示出并在下文中描述)与网络104进行数据通信。编码设备200可通过如存储区域网络(“SAN”)的直接数据连接、高速串行总线和/或经由其它合适的通信技术或经由网络104(如图1中的虚线所指示)与未编码视频源108进行数据通信。相似地,解码设备300可通过如存储区域网络(“SAN”)的直接数据连接、高速串行总线和/或经由其它合适的通信技术或经由网络104(如图1中的虚线所指示)与可选编码视频源112进行数据通信。在某些实施方式中,编码设备200、解码设备300、编码视频源112和/或未编码视频源108可包括一个或多个复制式和/或分布式物理或逻辑设备。在许多实施方式中,可存在比图示更多的编码设备200、解码设备300、未编码视频源108和/或编码视频源112。
在各种实施方式中,编码设备200可以是联网计算设备,其通常能够通过网络104从解码设备300接受请求并且相应地提供响应。在各种实施方式中,解码设备300可以是具有如下外形因素的联网计算设备,诸如:移动电话、手表、眼镜或其它可穿戴计算设备、专用媒体播放器、计算平板电脑、机动车头部单元、音视频点播(AVOD)系统、专用媒体控制台、游戏设备、“机顶盒”、数字录像机、电视机或通用计算机。在各种实施方式中,网络104可包括因特网、一个或多个局域网(“LAN”)、一个或多个广域网(“WAN”)、蜂窝数据网络和/或其它数据网络。网络104可在各个点处是有线和/或无线网络。
示例性编码设备
参照图2,其示出了示例性编码设备200的若干组件。在某些实施方式中,编码设备可包括比图2中所示更多的组件。然而,不一定要示出所有这些通常的传统组件来公开示意性实施方式。如图2中所示,示例性编码设备200包括用于连接到网络(如网络104)的网络接口204。示例性编码设备200还包括处理单元208、存储器212、可选用户输入装置214(例如,字母数字键盘、小键盘、鼠标或其它指示装置、触摸屏和/或麦克风)以及可选显示器216,其中,上述所有均通过总线220与网络接口204相互连接。存储器212通常包括RAM、ROM以及诸如磁盘驱动器、闪存等永久性大容量存储设备。
示例性编码设备200的存储器212存储操作系统224以及用于多个软件服务的程序代码,如软件实现的视频编码器400(在下文中参照图4描述),而其具有用于执行运动-矢量-选择例程600(在下文中参照图6描述)的指令。存储器212还可存储视频数据文件(未示出),其中,该视频数据文件可表示音频/视频媒体作品(举例来说,如电影和/或电视剧)的未编码的副本。这些软件组件和其它软件组件可通过与非暂时性计算机可读介质232(诸如软盘、磁带、DVD/CD-ROM驱动器、存储卡等)相关联的驱动机构(未示出)加载到编码设备200的存储器212中。尽管已对示例性编码设备200进行了描述,但是编码设备可以是能够与网络104通信并且执行用于实现视频编码软件(如示例性软件实现的视频编码器400)和运动-矢量-选择例程600的指令的大量联网计算设备中的任一种。
在操作中,操作系统224对编码设备200的硬件和其它软件资源进行管理,并为软件应用(如软件实现的视频编码器400)提供公共服务。对于诸如经由网络接口204的网络通信、经由输入装置214的数据接收、经由显示器216的数据输出、以及对于各种软件应用(如软件实现的视频编码器400)的存储器212分配的硬件功能,操作系统224充当硬件与编码设备上所运行的软件之间的媒介。
在某些实施方式中,编码设备200还可包括用于与未编码视频源108进行通信的专用未编码视频接口236,如高速串行总线等。在某些实施方式中,编码设备200可经由网络接口204与未编码视频源108进行通信。在其它实施方式中,未编码视频源108可驻留在存储器212或计算机可读介质232中。
尽管已对大体符合传统通用计算设备的示例性编码设备200进行了描述,但是编码设备200可以是能够对视频进行编码的大量设备中的任一种,例如,视频记录设备、视频协同处理器和/或加速器、个人计算机、游戏控制台、机顶盒、手持或可穿戴计算设备、智能手机或其它任何合适的设备。
举例来说,编码设备200可以操作为促进点播媒体服务(未示出)。在至少一个示例性实施方式中,点播媒体服务可操作编码设备200来促进在线点播媒体商店,其中,在线点播媒体商店以作品和/或订阅为单位向用户提供媒体作品的数字副本(如视频内容)。点播媒体服务可从未编码视频源108获得这种媒体作品的数字副本。
示例性解码设备
参照图3,示出了示例性解码设备300的若干组件。在某些实施方式中,解码设备可包括比图3中所示更多的组件。然而,不一定要示出所有这些通常的传统组件来公开示意性实施方式。如图3所示,示例性解码设备300包括用于连接到网络(如网络104)的网络接口304。示例性解码设备300还包括处理单元308、存储器312、可选用户输入装置314(例如,字母数字键盘、小键盘、鼠标或其它指示装置、触摸屏和/或麦克风)、可选显示器316以及可选扬声器318,其中,上述所有均通过总线320与网络接口304相互连接。存储器312通常包括RAM、ROM以及诸如磁盘驱动器、闪存等永久性大容量存储设备。
示例性解码设备300的存储器312可存储操作系统324以及用于多个软件服务的程序代码,如软件实现的视频解码器500(在下文中参照图5描述),而其具有用于执行运动-矢量-恢复例程800(在下文中参照图8描述)的指令。存储器312还可存储视频数据文件(未示出),其中,该视频数据文件可表示音频/视频媒体作品(举例来说,如电影和/或电视剧)的编码的副本。这些软件组件和其它软件组件可通过与非暂时性计算机可读介质332(诸如软盘、磁带、DVD/CD-ROM驱动器、存储卡等)相关联的驱动机构(未示出)加载到解码设备300的存储器312中。尽管已对示例性解码设备300进行了描述,但是解码设备可以是能够与网络(如网络104)通信并且执行用于实现视频解码软件(如示例性软件实现的视频解码器500)的指令的大量联网计算设备中的任一种。
在操作中,操作系统324对解码设备300的硬件和其它软件资源进行管理,并为软件应用(如软件实现的视频解码器500)提供公共服务。对于诸如经由网络接口304的网络通信、经由输入装置314的数据接收、经由显示器316和/或可选扬声器314的数据输出、以及存储器312的分配的硬件功能,操作系统324充当硬件与编码设备上所运行的软件之间的媒介。
在某些实施方式中,解码设备300可包括例如用于与编码视频源112进行通信的可选编码视频接口336,如高速串行总线等。在某些实施方式中,解码设备300可经由网络接口304与编码视频源(如编码视频源112)进行通信。在其它实施方式中,编码视频源112可驻留在存储器312或计算机可读介质332中。
尽管已对大体符合传统通用计算设备的示例性解码设备300进行了描述,但是解码设备300可以是能够对视频进行解码的大量设备中的任一种,例如,视频记录设备、视频协同处理器和/或加速器、个人计算机、游戏控制台、机顶盒、手持或可穿戴计算设备、智能手机或其它任何合适的设备。
举例来说,解码设备300可以操作为促进点播媒体服务。在至少一个示例性实施方式中,点播媒体服务可以作品和/或订阅为单位向用户操作的解码设备300提供媒体作品的数字副本(如视频内容)。解码设备可通过网络104例如经由编码设备200从未编码视频源108获得这种媒体作品的数字副本。
软件实现的帧间视频编码器
图4示出了根据至少一个实施方式的采用残差变换技术的软件实现的视频编码器400(以下称为“编码器400”)的通用功能框图。可将显示顺序中的视频序列的一个或多个未编码视频帧(vidfrms)提供至排序器404。
排序器404可将预测编码图片类型(例如I、P或B)分配给每个未编码视频帧,并且将帧的序列或帧的序列中的帧组重新排序成用于运动预测目的的编码顺序(例如,I型帧之后是P型帧,然后是B型帧)。然后,排序的未编码视频帧(seqfrms)可按照编码顺序输入到块索引器408。
对于排序的未编码视频帧(seqfrms)中的每个而言,块索引器408可确定当前帧(例如64×64像素)的最大代码块(“LCB”)尺寸,并将未编码帧划分成代码块(blks)的阵列。给定帧内的个别代码块的尺寸可以不同,例如,从4×4像素到当前帧的LCB尺寸。
每个代码块然后可一次一个地输入到差分器412,并且可与从先前编码的代码块生成的对应的预测信号块(pred)不同。为了生成预测块(pred),也可将代码块(cblks)提供至帧内预测器444和运动估计器416。在差分器412进行差分之后,产生的残差块(res)可通过变换器420(下面讨论)正向转换为频域表示,从而产生变换系数(tcof)的块。然后,变换系数(tcof)的块可被发送到量化器424,从而产生量化系数(qcf)的块,而量化系数(qcf)的块之后可被发送到熵编码器428和本地解码环路430两者。
对于帧内编码的代码块而言,帧内预测器444提供预测信号,该预测信号表示与当前代码块相同的帧的先前编码区域。对于帧间编码的代码块而言,运动补偿预测器442提供表示与当前代码块不同的帧的先前编码区域的预测信号。
在本地解码环路430的开始处,逆量化器432可对变换系数(tcof')的块进行去量化,并且将它们传递到逆变换器436以生成去量化的残差块(res')。在添加器440处,来自运动补偿预测器442的预测块(pred)可被添加到去量化残差块(res')以生成本地解码块(rec)。本地解码块(rec)然后可被发送到帧汇编器和去块过滤处理器,它们减少块效应并汇编恢复的帧(recd),而该恢复的帧(recd)可用作运动估计器416和运动补偿预测器442的基准帧。
熵编码器428对量化变换系数(qcf)、差分运动矢量(dmv)和其它数据进行编码,从而生成编码的视频比特流448。对于未编码视频序列中的每一帧,编码的视频比特流448可包含编码图片数据(例如,编码的量化变换系数(qcf)和差分运动矢量(dmv))以及编码帧头部(例如,如当前帧的LCB尺寸的语法信息)。
帧间编码模式
对于以帧间编码模式对代码块进行编码而言,运动估计器416可将每个代码块划分为例如具有诸如4×4像素、8×8像素、16×16像素、32×32像素或64×64像素的尺寸的一个或多个预测块。例如,64×64代码块可被划分为16个16×16预测块、4个32×32预测块,或者2个32×32预测块和8个16×16预测块。运动估计器416然后可通过识别适当的基准块并确定从预测块到基准块的相对空间位移来计算每个预测块的运动矢量(MVcalc)。
根据至少一个实施方式的方面,为了提高编码效率,计算的运动矢量(MVcalc)可通过从计算的运动矢量(MVcalc)中减去运动矢量预测值(MVpred)来进行编码以获得运动矢量差分(ΔMV)。例如,如果计算的运动矢量(MVcalc)是(5,-1)(即,来自先前编码帧的基准块,其在当前帧中相对于当前预测块位于向上一行且右侧第五列),且如果运动矢量预测值是(5,0)(即,来自先前编码帧的基准块,其在当前帧中相对于当前预测块位于同一行且右侧第五列),则运动矢量差分(ΔMV)将是:
MVcalc–MVpred=(5,-1)–(5,0)=(0,-1)=ΔMV。
运动矢量预测值(MVpred)越接近计算的运动矢量(MVcalc),运动矢量差分(ΔMV)则越小。因此,准确的运动矢量预测与当前预测块的内容无关,使得其在解码器侧可重复进行,该准确的运动矢量预测可在整个视频序列的过程中使得对运动矢量差分进行编码所需的信息显著少于计算的运动矢量。
根据至少一个实施方式的方面,运动估计器416可使用多种技术来获得运动矢量预测值(MVpred)。例如,运动矢量预测值可通过计算当前帧的预测块的若干先前编码的运动矢量的中值来获得。例如,运动矢量预测值可以是当前预测块的空间邻近区域中的多个先前编码的基准块的中值,例如:当前块的同一列且上一行中的基准块(RBa)的运动矢量;当前预测块的右侧一列且上一行的基准块(RBb)的运动矢量;以及当前块的左侧一列且同一行的基准块(RBc)的运动矢量。
如上所述,并且根据至少一个实施方式的方面,运动估计器416可使用附加或替代性技术在帧间编码模式中为预测块提供运动矢量预测值。例如,用于提供运动矢量预测值的另一技术可用于确定当前预测块的空间邻近区域中的多个先前编码的基准块的平均值,例如:当前块的同一列且上一行中的基准块(RBa)的运动矢量;当前预测块的右侧一列且上一行的基准块(RBb)的运动矢量;以及当前块的左侧一列且同一行的基准块(RBc)的运动矢量。
根据至少一个实施方式的方面,为了提高编码效率,编码器400可通过在当前帧的图片头部(或当前预测块的预测块头部)中设置选择-运动-矢量-预测-方法(SMV-PM)标志来指示可用的技术中有哪个技术被用在当前预测块的编码中。例如,在至少一个实施方式中,SMV-PM标志可以是具有两个可能的值的一比特变量,其中,一个可能的值指示使用上述的中值技术而获得的运动矢量预测值,而第二可能的值指示使用替代性技术而获得的运动矢量预测值。
在以帧间编码模式编码的代码块中,运动矢量和残差均可被编码到比特流中。
跳跃编码和直接编码模式
对于以跳跃编码或直接编码模式对代码块进行编码而言,运动估计器416可使用整个代码块作为对应的预测块(PB)。
根据至少一个实施方式的方面,在跳跃编码和直接编码模式中,运动估计器416可使用预定方法(在下文中参照图7描述)来生成运动矢量候选项的有序列表,而不是确定预测块(PB)的所计算出的运动矢量(MVcalc)。例如,对于当前预测块(PBcur),运动矢量候选项的有序列表可由先前用于对当前帧的其它块(称为“基准块”(RB))进行编码的运动矢量组成。
根据至少一个实施方式的方面,运动估计器416然后可从有序列表中选择最佳运动矢量候选项(MVC)以用于对当前预测块(PBcur)进行编码。如果用于生成运动矢量候选项的有序列表的处理在解码器侧是可重复的,那么只有运动矢量候选项的有序列表内的所选择的运动矢量(MVsel)的索引可被包括在编码比特流中,而不是运动矢量本身。在整个视频序列的过程中,对索引值进行编码所需的信息可显著少于实际运动矢量。
根据至少一个实施方式的方面,选择用于填充运动矢量候选项列表的运动矢量优选地取自三个基准块(RBa、RBb、RBc),其中,该三个基准块(RBa、RBb、RBc)具有已知运动矢量并且共享当前预测块(PBcur)和/或另一基准块(RB)的边界。例如,第一基准块(RBa)可直接位于当前预测块(PBcur)上方,第二基准块(RBb)可直接位于第一基准块(RBa)右侧,并且第三基准块(RBc)可位于当前预测块(RBc)左侧。然而,基准块相对于当前预测块的具体位置可能并不重要,只要它们是预先定义,以便下游解码器可以知道它们在哪里即可。
根据至少一个实施方式的方面,如果所有三个基准块都具有已知运动矢量,则当前预测块(PBcur)的运动矢量候选项列表中的第一运动矢量候选项(MVC1)可以是来自第一基准块(RBa)的运动矢量(MVa)(或在B型帧中为多个运动矢量),第二运动矢量候选项(MVC2)可以是来自第二基准块(RBb)的运动矢量(MVb)(或多个运动矢量),并且第三运动矢量候选项(MVC3)可以是来自第三基准块(RBc)的运动矢量(MVc)(或多个运动矢量)。运动矢量候选项列表因此可以是:(MVa,MVb,MVc)。
然而,如果基准块(RB)中的任何一个均不具有可用的运动矢量,例如,由于对于给定的基准块没有可用的预测信息或者当前预测块(PBcur)位于当前帧的最顶行、最左列或最右列中,则对应运动矢量候选项可被跳过且下一个运动矢量候选项可以取而代之,并且零值运动矢量(0,0)可替代剩余的候选项水平。例如,如果没有运动矢量可用于RBb,则运动矢量候选项列表可以是:(MVa,MVc,(0,0))。
根据至少一个实施方式,下面的表1示出了考虑到运动矢量候选项各种组合的可用性的情况下运动矢量候选项列表的全套组合。
表1
运动估计器416然后可评估运动矢量候选项,且选择待用作当前预测块的所选择的运动矢量的最佳运动矢量候选项。待选择的最可能的运动矢量候选项是运动矢量候选项列表中的第一运动矢量候选项。待选择的第二个最可能的运动矢量候选项是运动矢量候选项列表中的第二运动矢量候选项。待选择的第三个最可能的运动矢量候选项是运动矢量候选项列表中的第三运动矢量候选项。待选择的最不可能的运动矢量候选项是运动矢量候选项列表中的第四运动矢量候选项。应注意,只要下游解码器知道如何填充给定预测块的运动矢量候选项的有序列表,则该计算能够在不了解当前预测块的内容的情况下在解码器侧重复进行。因此,例如通过在当前预测块的预测块头部中设置运动-矢量-选择标志,只需要将来自运动矢量候选项列表的所选择的运动矢量的索引包括在编码比特流中,而不是运动矢量本身。长度可变的代码字可用于对运动-矢量-选择-标志进行编码,正如下表2所示。因此,在整个视频序列的过程中,对索引值进行编码所需的信息将显著少于实际运动矢量。
表2
在直接编码模式中,当前预测块与由运动矢量指示的基准帧的块之间的残差和运动-矢量-选择标志被编码。在跳跃编码模式中,运动-矢量-选择标志被编码,但是残差信号的编码被跳过。实质上,这告知下游解码器使用由运动矢量指示的基准帧的块来替代当前帧的当前预测块。
软件实现的帧间解码器
图5示出了根据至少一个实施方式的相应的软件实现的视频解码器500(以下称为“解码器500”)的逆残差变换技术的一般功能框图,并且适于与解码设备(如解码设备300)一同使用。解码器500的操作可类似于编码器400处的本地解码器环路430。
具体地,待被解码的编码视频比特流504可被提供至熵解码器508,熵解码器508可对量化系数块(qcf)、差分运动矢量(dmv)、伴随的消息数据分组(msg-data)和包括预测模式(帧内或帧间)的其它数据进行解码。量化系数块(qcf)然后可被逆量化器512重组,从而产生恢复的变换系数块(tcof')。恢复的变换系数块(tcof')然后可通过逆变换器516(在下文中描述)反向转换至频域外部,从而产生解码的残差块(res')。添加器520可对通过使用来自运动补偿预测器530的相应的运动矢量(dmv)而获得的运动补偿预测块(psb)进行添加。产生的解码视频(dv)可在帧汇编器和去块过滤处理器524中进行去块-过滤。帧汇编器和去块过滤处理器524的输出处的块(recd)形成视频序列的重建帧,其可从解码器500输出并且也可用作运动-补偿预测器530的基准帧以用于对随后的代码块进行解码。
运动矢量选择例程
图6示出了适合与至少一个实施方式(如编码器400)一同使用的运动-矢量-选择例程600。如本领域普通技术人员将认识到的,图6中中并未示出编码处理中的所有事件。相反,为了清楚起见,仅示出与运动-矢量-选择例程的描述合理地相关的那些步骤。
在执行块603处,例如,通过运动估计器416获得代码块。
在判定块624处,运动-矢量-选择例程600针对代码块选择编码模式。例如,如上所述,可选择帧间编码模式、直接编码模式或跳跃编码模式。如果针对当前代码块选择跳跃编码或直接编码模式,则运动-矢量-选择例程600可前往执行块663,正如下文中所述。
如果在判定块624处针对当前代码块选择帧间编码模式,则在执行块627处,运动-矢量-选择例程600可将当前代码块划分成一个或多个预测块,并且在起始环路块630开始时,当前代码块的每个预测块可反过来被寻址。
在执行块633处,在B型图片的情况下,运动-矢量-选择例程600可针对当前预测块选择预测索引,从而指示基准帧是前一图片、未来图片还是两者。
在执行块636处,运动-矢量-选择例程600然后可选择运动-矢量预测方法,诸如上述的中值或平均值技术或任何可用的替代性运动-矢量预测方法。
在执行块642处,运动-矢量-选择例程600可使用所选择的运动矢量预测方法来获得当前预测块的运动矢量预测值(MVpred)。
在执行块645处,运动-矢量-选择例程600可获得当前预测块的计算的运动矢量(MVcalc)。
在执行块648处,运动-矢量-选择例程600可获得当前预测块的运动矢量差分(ΔMV)(应注意,对于P型图片,可存在单个运动矢量差分,并且对于B类型图片,可存在两个运动矢量差分)。
在执行块651处,运动-矢量-选择例程600可获得当前预测块(PBcur)与由计算的运动矢量(MVcalc)指示的块之间的残差。
在执行块654处,运动-矢量-选择例程600可对当前预测块的运动矢量差分和残差进行编码。
在执行块657处,运动-矢量-选择例程600可在当前帧的图片头部(或当前预测块的预测块头部)中设置SMV-PM标志,从而指示对于当前预测块使用了哪种运动矢量预测技术。
在结束环路块660处,运动-矢量-选择例程600返回到起始环路块630以对当前代码块的下一预测块(如果有的话)进行处理。
返回到判定块624,如果针对当前代码块选择了跳跃编码或直接编码模式,则在执行块663处,运动-矢量-选择例程600将当前预测块设置为等于当前代码块。
运动-矢量-选择例程600然后可调用运动-矢量-候选项-生成子例程700(在下面参照图7描述),其可将运动矢量候选项的有序列表返回到运动-矢量-选择例程600。
在执行块666处,运动-矢量-选择例程600然后可从运动矢量候选项列表中选择运动矢量以在对当前预测块的编码中使用。
在判定块667处,如果所选择的编码模式为直接编码,则在执行块669处,运动-矢量-选择例程600计算当前预测块与由所选择的运动矢量指示的基准块之间的残差。
在执行块672处,运动-矢量-选择例程600可对残差进行编码,并且在执行块675处,运动-矢量-选择例程600可在当前预测块的预测块头部中设置运动-矢量-选择标志,从而指示运动矢量候选项中的哪一个被选择为用于当前预测块的编码。
运动-矢量-选择例程600在终止块699处结束。
运动-矢量-候选项-生成子例程700
图7描绘了根据至少一个实施方式的用于生成运动矢量候选项的有序列表的运动-矢量-候选项生成子例程700。在所示的实施方式中,生成三个运动矢量候选项。然而,本领域的普通技术人员将认识到,可使用相同的技术来生成更多或更少量的候选项,并且进一步地,在不脱离本公开的范围的情况下,替代性和/或等同的实现方式可替代所示出和描述的具体实施方式。
运动-矢量-候选项生成子例程700在执行块704处获得用于生成当前预测块的运动矢量候选项列表的请求。
在判定块708处,如果第一候选项基准块(RBa)存在可用的运动矢量,则在执行块712处,运动-矢量-候选项生成子例程700可将第一运动矢量候选项(MVC1)设置为MVa并且前往判定块716。
在判定块716处,如果第二候选项基准块(RBb)中存在可用的运动矢量,则在执行块724处,运动-矢量-候选项生成子例程700可将第二运动矢量候选项(MVC2)设置为MVb并且前往判定块728。
在判定块728处,如果第三候选项基准块(RBc)中存在可用的运动矢量,则在执行块736处,运动-矢量-候选项生成子例程700可将第三运动矢量候选项(MVC3)设置为MVc。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVa、MVC2=MVb和MVC3=MVc的运动矢量候选项列表。
再次参考判定块728,如果第三候选项块(RBc)中没有可用的运动矢量,则在执行块740处,运动-矢量-候选项生成子例程700可将第三运动矢量候选项(MVC3)设置为(0,0)。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVa、MVC2=MVb和MVC3=(0,0)的运动矢量候选项列表。
再次参考判定块716,如果第二候选项块(RBb)中没有可用的运动矢量,则运动-矢量-候选项生成子例程700可前往判定块732。
在判定块732处,如果第三候选项基准块(RBc)中存在可用的运动矢量,则在执行块744处,运动-矢量-候选项生成子例程700可将第二运动矢量候选项(MVC2)设置为MVc。第三运动矢量候选项(MVC3)然后可在执行块740处被设置为(0,0)。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVa、MVC2=MVc和MVC3=(0,0)的运动矢量候选项列表。
再次参考判定块732,如果第三候选项基准块(RBc)中没有可用的运动矢量,则在执行块748处,运动-矢量-候选项生成子例程700可将第二运动矢量候选项(MVC2)设置为(0,0),并且在执行块740处,可将第三运动矢量候选项(MVC3)设置为(0,0)。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVa、MVC2=(0,0)和MVC3=(0,0)的运动矢量候选项列表。
再次参考判定块708,如果第一候选项块(RBa)中没有可用的运动矢量,则运动-矢量-候选项生成子例程700可前往判定块720。
在判定块720处,如果第二候选项基准块(RBb)中存在可用的运动矢量,则在执行块752处,运动-矢量-候选项生成子例程700可将第一运动矢量候选项(MVC1)设置为MVb。运动-矢量-候选项生成子例程700然后可前往判定块732。
再次返回到判定块732,如果第三候选项基准块(RBc)中存在可用的运动矢量,则在执行块744处,运动-矢量-候选项生成子例程700可将第二运动矢量候选项(MVC2)设置为MVc。第三运动矢量候选项(MVC3)然后可在执行块740处被设置为(0,0)。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVb、MVC2=MVc和MVC3=(0,0)的运动矢量候选项列表。
再次参考判定块732,如果第三候选项基准块(RBc)中没有可用的运动矢量,则在执行块748处,运动-矢量-候选项生成子例程700可将第二运动矢量候选项(MVC2)设置为(0,0),并且在执行块740处,可将第三运动矢量候选项(MVC3)设置为(0,0)。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVb、MVC2=(0,0)和MVC3=(0,0)的运动矢量候选项列表。
再次参考判定块720,如果第二候选项基准块(RBb)中没有可用的运动矢量,则运动-矢量-候选项生成子例程700可前往判定块756。
在判定块756处,如果第三候选项基准块(RBc)存在可用的运动矢量,则在执行块760处,运动-矢量-候选项生成子例程700可将第一运动矢量候选项(MVC1)设置为MVc。运动-矢量-候选项生成子例程700然后可在执行块748处将第二运动矢量候选项(MVC2)设置为(0,0),并且在执行块740处将第三运动矢量候选项(MVC3)设置为(0,0)。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVc、MVC2=(0,0)和MVC3=(0,0)的运动矢量候选项列表。
再次参考判定块756,如果第三候选项基准块(RBc)中没有可用的运动矢量,则在执行块764处,运动-矢量-候选项生成子例程700可将第一运动矢量候选项(MVC1)设置为(0,0)。运动-矢量-候选项生成子例程700然后可在执行块748处将第二运动矢量候选项设置为(0,0),并且可在执行块740处将第三运动矢量候选项设置为(0,0)。
运动-矢量-候选项生成子例程700然后可在返回块799处返回分别具有值:MVC1=MVb、MVC2=(0,0)和MVC3=(0,0)的运动矢量候选项列表。
运动-矢量-恢复例程800
图8示出了适合与至少一个实施方式(如解码器500)一同使用的运动-矢量-恢复例程800。如本领域普通技术人员将认识到的,在图8中并未示出解码处理中的所有事件。相反,为了清楚起见,仅示出与运动矢量选择例程的描述合理地相关的那些步骤。
在执行块803处,运动-矢量-恢复例程800可获得与代码块对应的数据。
在执行块828处,运动-矢量-恢复例程800可识别用于对代码块进行编码的编码模式。如上所述,可能的编码模式可以是帧间编码模式、直接编码模式或跳跃编码模式。
在判定块830处,如果代码块是使用帧间编码模式进行编码的,则在执行块833处,运动-矢量-恢复例程800可针对代码块识别相应的预测块。在起始环路块836处,当前代码块的每个预测块可反过来被寻址。
在执行块839处,运动-矢量-恢复例程800可从预测块头部识别当前预测块的预测索引。
在执行块842处,运动-矢量-恢复例程800可例如通过读取当前帧的图片头部中的SMV-PM标志来识别用于预测当前预测块的运动矢量的运动矢量预测方法。
在执行块848处,运动-矢量-恢复例程800可获得当前预测块的运动-矢量差分(ΔMV)。
在执行块851处,运动-矢量-恢复例程800可使用在执行块842中进行识别的运动矢量预测方法来获得当前预测块的预测运动矢量(MVpred)。
在执行块854处,运动-矢量-恢复例程800可例如通过将预测运动矢量(MVpred)添加到运动矢量差分(ΔMV)来恢复当前预测块的、计算的运动矢量(MVcalc)(应注意,对于P型图片,可存在单个恢复的运动矢量,并且对于B型图片,可存在两个恢复的运动矢量)。
在执行块857处,运动-矢量-恢复例程800然后可将当前预测块的残差添加到由计算的运动矢量(MVcalc)指示的块以获得预测块的恢复值。
再次参考判定块830,如果当前代码块是使用跳跃编码或直接编码模式进行编码的,则运动-矢量-恢复例程800可调用运动-矢量-候选项生成子例程700(在上文中参照图7描述),而运动-矢量-候选项生成子例程700可将运动矢量候选项的有序列表返回到运动-矢量-恢复例程800。
在执行块863处,运动-矢量-恢复例程800然后可在执行块863处从预测块头部读取运动-矢量-选择标志。
在执行块866处,运动-矢量-恢复例程800然后可使用运动-矢量-选择标志来从运动矢量候选项列表中的用于对当前预测块进行编码的有序列表中识别运动矢量。
在判定块869处,如果当前代码块是以直接编码模式进行被编码的,则在执行块872处,运动-矢量-恢复例程800可将预测块的残差添加到由所选择的运动矢量指示的块的系数以恢复预测块系数。
如果当前代码块是以跳跃编码模式进行编码的,则在执行块875处,运动-矢量-恢复例程800可使用由所选择的运动矢量指示的基准块的系数作为预测块的系数。
运动-矢量-恢复例程800在终止块899处结束。
用于跳跃编码和直接编码模式的替代性运动矢量选择例程
再次参照图4,对于以跳跃编码或直接编码模式对代码块进行编码而言,运动估计器416可使用整个代码块作为对应的预测块(PB)。
根据至少一个实施方式的方面,在跳跃编码和直接编码模式中,运动估计器416可使用预定方法来生成四个运动矢量候选项的有序列表(MVCL),而不是确定预测块(PB)的计算的运动矢量(MVcalc)。例如,对于当前预测块(PBcur),运动矢量候选项的有序列表可由先前用于当前帧的其它块(称为“基准块”(RB))进行编码的运动矢量和/或零值运动矢量组成。
根据至少一个实施方式的方面,运动估计器416然后可从有序列表中选择最佳运动矢量候选项(MVC)以用于对当前预测块(PBcur)进行编码。如果用于生成运动矢量候选项的有序列表的过程可在解码器侧重复进行,那么只有运动矢量候选项的有序列表内的所选运动矢量(MVsel)的索引可被包括在编码比特流中,而不是运动矢量本身。在整个视频序列的过程中,对索引值进行编码所需的信息可显著少于实际运动矢量。
根据至少一个实施方式的方面,选择用于填充运动矢量候选项列表的运动矢量优选地取自七个基准块(RBa、RBb、RBc、RBd、RBe、RBf、RBg),其中,该七个基准块(RBa、RBb、RBc、RBd、RBe、RBf、RBg)具有已知运动矢量并且与当前预测块(PBcur)共享边界和/或顶点。
图9示出了具有左上角的像素904、右上角的像素906和左下角的像素908的8×8预测块902,参照图9,作为当前预测块(PBcur),举例来说:
(a)第一基准块(RBa)可以是包含像素904左侧的像素910的预测块;
(b)第二基准块(RBb)可以是包含像素904上方的像素912的预测块;
(c)第三基准块(RBc)可以是包含像素906上方和右侧的像素914的预测块;
(d)第四基准块(RBd)可以是包含像素908下方和左侧的像素916的预测块;
(e)第五基准块(RBe)可以是包含像素908左侧的像素918的预测块;
(f)第六基准块(RBf)可以是包含像素906上方的像素920的预测块;以及
(g)第七基准块(RBe)可以是包含像素904上方和左侧的像素922的预测块。
然而,基准块相对于当前预测块的具体位置可能并不重要,只要它们是由下游解码器知晓即可。
根据至少一个实施方式的方面,如果所有七个基准块都具有已知运动矢量,则当前预测块(PBcur)的运动矢量候选项列表中的第一运动矢量候选项(MVC1)可以是来自第一基准块(RBa)的运动矢量(MVa)(或在B型帧中为多个运动矢量),第二运动矢量候选项(MVC2)可以是来自第二基准块(RBb)的运动矢量(MVb)(或多个运动矢量),第三运动矢量候选项(MVC3)可以是来自第三基准块(RBc)的运动矢量(MVc)(或运动矢量),并且第四运动矢量候选项(MVC4)可以是来自第四基准块(RBd)的运动矢量(MVd)(或在B型帧中为多个运动矢量)。
根据本实施方式,如果前四个基准块(RBa-d)中的一个或多个不能提供运动矢量候选项,则可考虑三个附加基准块(RBe-g)。然而,如果三个附加基准块(RBe-g)中的一个或多个均不具有可用的运动矢量,例如,由于对于给定的基准块没有可用的预测信息或者当前预测块(PBcur)位于当前帧的最顶行、底行、最左列或最右列中,则相应运动矢量候选项可被跳过并且下一个运动矢量候选项可以取而代之,并且零值运动矢量(0,0)可替代剩余的候选项水平。例如,如果没有对于第二基准块、第三基准块和第四基准块RBb-d可用的运动矢量,则运动矢量候选项列表可以是:(MVa,MVe,(0,0))。在下文中参照图10对根据本实施方式的用于填充运动矢量候选项列表的示例性过程进行描述。
运动估计器416然后可评估运动矢量候选项,且选择待用作当前预测块的所选运动矢量的最佳运动矢量候选项。应注意,只要下游解码器知道如何填充给定预测块的运动矢量候选项的有序列表,则该计算可在不了解当前预测块的内容的情况下在解码器侧重复进行。因此,例如通过在当前预测块的预测块头部中设置运动-矢量-选择标志,只需要将来自运动矢量候选项列表的所选运动矢量的索引包括在编码比特流中,而不是运动矢量本身,因此,在整个视频序列的过程中,对索引值进行编码所需的信息显著少于实际运动矢量。
在直接编码模式中,当前预测块与由运动矢量指示的基准帧的块之间的残差和运动-矢量-选择标志被编码。在跳跃编码模式中,运动-矢量-选择标志被编码,但是残差信号的编码被跳过。实质上,这告知下游解码器使用由运动矢量指示的基准帧的块来代替当前帧的当前预测块。
替代性运动-矢量-候选项-生成子例程1000
图10a和图10b示出了根据至少一个实施方式的在运动矢量候选项的有序列表的生成中所使用的运动-矢量-候选项生成子例程1000。在所示的实施方式中,生成三个运动矢量候选项。然而,本领域的普通技术人员将认识到,可使用相同的技术来生成更多或更少量的候选项,并且进一步地,在不脱离本公开的范围的情况下,替代性和/或等同的实现方式可替代所示出和描述的具体实施方式。
替代性运动-矢量-候选项生成子例程1000在执行块1003处获得用于生成当前预测块的运动矢量候选项列表的请求。
替代性运动-矢量-候选项生成子例程1000在执行块1005处将索引值(i)设置为零。
在判定块1008处,如果第一候选项基准块(RBa)不具有可用的运动矢量(MVa),则替代性运动-矢量-候选项生成子例程1000前往判定块1015;如果第一候选项基准块(RBa)具有可用的运动矢量(MVa),则替代性运动-矢量-候选项生成子例程1000前往执行块1010。
替代性运动-矢量-候选项生成子例程1000在执行块1010处将第一候选项基准块的运动矢量(MVa)分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1013处使索引值(i)递增。
在判定块1015处,如果第二候选项基准块(RBb)不具有可用的运动矢量(MVb),则替代性运动-矢量-候选项生成子例程1000前往判定块1023;如果第二候选项基准块(RBb)具有可用的运动矢量(MVb),则替代性运动-矢量-候选项生成子例程1000前往执行块1018。
替代性运动-矢量-候选项生成子例程1000在执行块1018处将第二候选项基准块的运动矢量(MVb)分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1020处使索引值(i)递增。
在判定块1023处,如果第三候选项基准块(RBc)不具有可用的运动矢量(MVc),则替代性运动-矢量-候选项生成子例程1000前往判定块1030;如果第三候选项基准块(RBc)具有可用的运动矢量(MVc),则替代性运动-矢量-候选项生成子例程1000前往执行块1025。
替代性运动-矢量-候选项生成子例程1000在执行块1023处将第三候选项基准块的运动矢量(MVc)分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1025处使索引值(i)递增。
在判定块1030处,如果第四候选项基准块(RBd)不具有可用的运动矢量(MVd),则替代性运动-矢量-候选项生成子例程1000前往判定块1038;如果第四候选项基准块(RBd)具有可用的运动矢量(MVd),则替代性运动-矢量-候选项生成子例程1000前往执行块1033。
替代性运动-矢量-候选项生成子例程1000在执行块1033处将第四候选项基准块的运动矢量(MVd)分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1035处使索引值(i)递增。
在判定块1038处,如果索引值(i)小于4(其表示直到替代性运动-矢量-候选项生成子例程1000中的此点为止已识别出少于四个运动矢量候选项)并且第五候选项基准块(RBe)具有可用的运动矢量(MVe),则替代性运动-矢量-候选项生成子例程1000前往执行块1040;否则,替代性运动-矢量-候选项生成子例程1000前往判定块1045。
替代性运动-矢量-候选项生成子例程1000在执行块1040处将第五候选项基准块的运动矢量(MVe)分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1043处使索引值(i)递增。
在判定块1045处,如果索引值(i)小于4并且第六候选项基准块(RBf)具有可用的运动矢量(MVf),则替代性运动-矢量-候选项生成子例程1000前往执行块1048;否则,替代性运动-矢量-候选项生成子例程1000前往判定块1053。
替代性运动-矢量-候选项生成子例程1000在执行块1048处将第六候选项基准块的运动矢量(MVf)分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1050处使索引值(i)递增。
在判定块1053处,如果索引值(i)小于4并且第七候选项基准块(RBg)具有可用的运动矢量(MVg),则替代性运动-矢量-候选项生成子例程1000前往执行块1055;否则,替代性运动-矢量-候选项生成子例程1000前往判定块1060。
替代性运动-矢量-候选项生成子例程1000在执行块1055处将第七候选项基准块的运动矢量(MVg)分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1058处使索引值(i)递增。
在判定块1060处,如果索引值(i)小于4,则替代性运动-矢量-候选项生成子例程1000前往执行块1063;否则,替代性运动-矢量-候选项生成子例程1000前往返回块1099。
替代性运动-矢量-候选项生成子例程1000在执行块1063处将零值运动矢量分配为运动矢量候选项列表中的第i运动矢量候选项(MCVL[i])。
替代性运动-矢量-候选项生成子例程1000在执行块1065处使索引值(i)递增,然后环路回到判定块1060。
替代性运动-矢量-候选项生成子例程1000在返回块1099处返回运动矢量候选项列表(MCVL)。
虽然这里已经示出并描述了具体实施方式,但是本领域普通技术人员将会理解,在不脱离本发明的范围的情况下,替代的和/或等效的实现可以代替所示且所描述的具体实施方式。本申请旨在涵盖本文讨论的实施方式的任何修改或变化。

Claims (1)

1.一种对视频帧序列中的未编码视频帧进行编码以生成代表所述未编码视频帧的、经编码的比特流的方法,其中,所述未编码视频帧包括像素阵列,所述像素阵列具有多个像素行和多个像素列,并且代表所述未编码视频帧的、所述经编码的比特流至少包括头部和视频数据负载,所述方法包括以下步骤:
将所述像素阵列划分成多个预测块,其中,所述多个预测块包括具有左上角、右上角和左下角的第一预测块,并且所述第一预测块具有:
第一角落像素,所述第一角落像素位于所述第一预测块的所述左上角处,存在与所述第一角落像素的左侧相邻的第一基准像素、与所述第一角落像素的上侧相邻的第二基准像素以及与所述第一基准像素的上侧和所述第二基准像素的左侧相邻的第三基准像素;
第二角落像素,所述第二角落像素位于所述第一预测块的所述右上角处,存在与所述第二角落像素的上侧相邻的第四基准像素;以及
第三角落像素,所述第三角落像素位于所述第一预测块的所述左下角处;
获得所述第一预测块的运动矢量候选项的有序列表;
从所述第一预测块的运动矢量候选项的所述有序列表中选择运动矢量,以用于对所述第一预测块进行编码;
使用来自所述第一预测块的运动矢量候选项的所述有序列表中的所述运动矢量,获得所述第一预测块的编码版本;
将所述第一预测块的所述编码版本提供到代表所述未编码视频帧的所述经编码的比特流的所述视频数据负载中;以及
将运动-矢量-选择标志提供到代表所述未编码视频帧的所述经编码的比特流的所述头部中,
其中,所述运动-矢量-选择标志指示所述第一预测块的运动矢量候选项的所述有序列表中、与来自所述第一预测块的运动矢量候选项的所述有序列表中的所述运动矢量对应的位置。
CN201580085512.5A 2015-12-22 2015-12-22 视频编码中的运动矢量选择及预测系统和方法 Pending CN108432252A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/098329 WO2017107072A1 (en) 2015-12-22 2015-12-22 Motion vector selection and prediction in video coding systems and methods

Publications (1)

Publication Number Publication Date
CN108432252A true CN108432252A (zh) 2018-08-21

Family

ID=59088851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580085512.5A Pending CN108432252A (zh) 2015-12-22 2015-12-22 视频编码中的运动矢量选择及预测系统和方法

Country Status (4)

Country Link
US (1) US10652569B2 (zh)
EP (1) EP3395072A4 (zh)
CN (1) CN108432252A (zh)
WO (1) WO2017107072A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117041595A (zh) * 2018-12-30 2023-11-10 北京达佳互联信息技术有限公司 用于对视频进行解码的方法、设备、存储介质和程序产品

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10992950B2 (en) * 2017-02-23 2021-04-27 Realnetworks, Inc. Coding block bitstream structure and syntax in video coding systems and methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130343459A1 (en) * 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
CN104396244A (zh) * 2012-04-16 2015-03-04 诺基亚公司 用于视频编码和解码的装置、方法和计算机程序
US20150063464A1 (en) * 2013-08-30 2015-03-05 Qualcomm Incorporated Lookup table coding
CN105100798A (zh) * 2011-07-02 2015-11-25 三星电子株式会社 对视频编码的方法和设备以及对视频解码的方法和设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295203A (en) 1992-03-26 1994-03-15 General Instrument Corporation Method and apparatus for vector coding of video transform coefficients
JP4114859B2 (ja) 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
DE102004026597A1 (de) * 2004-06-01 2005-12-29 Micronas Gmbh Verfahren zur Ermittlung von Bewegungsvektoren, die Bildbereichen eines Bildes zugeordnet sind
CN101658042B (zh) 2007-03-13 2016-03-02 诺基亚技术有限公司 用于视频编码和解码的系统和方法
EP2153660A4 (en) 2007-04-09 2013-01-23 Lg Electronics Inc METHOD AND DEVICE FOR PROCESSING A VIDEO SIGNAL
JP2011259204A (ja) 2010-06-09 2011-12-22 Sony Corp 画像復号化装置と画像符号装置およびその方法とプログラム
EP2897365B1 (en) 2010-07-09 2017-02-01 Samsung Electronics Co., Ltd Apparatus for decoding video by using block merging
PL3907999T3 (pl) 2010-09-02 2024-04-08 Lg Electronics, Inc. Predykcja międzyramkowa
CN106851304B (zh) * 2010-12-14 2019-08-30 M&K控股株式会社 用于解码运动画面的设备
US9787981B2 (en) 2011-01-19 2017-10-10 Renesas Electronics Corporation Image coding device and image decoding device
TW201246943A (en) 2011-01-26 2012-11-16 Panasonic Corp Video image encoding method, video image encoding device, video image decoding method, video image decoding device, and video image encoding and decoding device
EP4184918B1 (en) * 2011-03-21 2024-02-07 LG Electronics Inc. Video decoding method, video encoding method, computer-readable digital storage medium and transmission method of data for a video
US9247266B2 (en) 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
CN106713910B (zh) 2011-06-14 2019-12-10 三星电子株式会社 对图像进行解码的设备
US9866859B2 (en) * 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
DK3468197T3 (da) 2011-09-09 2022-05-16 Lg Electronics Inc Fremgangsmåde til interforudsigelse og indretning dertil
ES2728146T3 (es) 2012-01-20 2019-10-22 Sun Patent Trust Procedimientos y aparato de codificación y decodificación de vídeo utilizando predicción temporal de vector de movimiento
JP6020323B2 (ja) 2012-04-12 2016-11-02 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
EP3833022B1 (en) 2012-04-12 2022-03-30 JVCKENWOOD Corporation Merge candidate list construction
EP2849441B1 (en) * 2012-05-10 2019-08-21 LG Electronics Inc. Method and apparatus for processing video signals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105100798A (zh) * 2011-07-02 2015-11-25 三星电子株式会社 对视频编码的方法和设备以及对视频解码的方法和设备
CN104396244A (zh) * 2012-04-16 2015-03-04 诺基亚公司 用于视频编码和解码的装置、方法和计算机程序
US20130343459A1 (en) * 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
US20150063464A1 (en) * 2013-08-30 2015-03-05 Qualcomm Incorporated Lookup table coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIAN-LIANG LIN: "Motion Vector Coding Techniques for HEVC", 《2011 IEEE 13TH INTERNATIONAL WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117041595A (zh) * 2018-12-30 2023-11-10 北京达佳互联信息技术有限公司 用于对视频进行解码的方法、设备、存储介质和程序产品

Also Published As

Publication number Publication date
EP3395072A4 (en) 2019-05-22
US10652569B2 (en) 2020-05-12
EP3395072A1 (en) 2018-10-31
US20190007696A1 (en) 2019-01-03
WO2017107072A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
CN101841718B (zh) 隔行扫描视频的高级双向预测编码
CN103238319B (zh) 推导运动向量预测项或运动向量预测项候选项的方法及装置
JP5081305B2 (ja) フレーム間予測符号化の方法および装置
US8369410B2 (en) Method and apparatus for encoding/decoding motion vector
JP7012809B2 (ja) 画像符号化装置、動画像復号装置、動画像符号化データ及び記録媒体
TWI513280B (zh) Dynamic image predictive coding device, dynamic image predictive coding method, dynamic image predictive coding program, dynamic image prediction decoding device, dynamic image prediction decoding method and dynamic image prediction decoding program
WO2012042719A1 (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
CN105191309A (zh) 用于下一代视频编码的内容自适应预测距离分析器和分层运动估计系统
TW201545545A (zh) 用於次世代視訊編碼之投射式內插預測產生之技術
WO2012120661A1 (ja) 動画像符号化方法及び動画像復号化方法
CN102598670A (zh) 参考多个帧对图像进行编码/解码的方法和设备
CN112005551A (zh) 一种视频图像预测方法及装置
JP2011199362A (ja) 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
CN101873490B (zh) 图像处理方法和使用该方法的图像信息编码设备
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
CN107637078A (zh) 视频译码系统和方法中的残差变换和逆向变换
KR100818921B1 (ko) 모션 벡터 압축 방법, 상기 압축 방법을 이용하는 비디오인코더 및 비디오 디코더
CN108464005A (zh) 视频编码中的残差变换及逆向变换系统和方法
JP5983430B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
CN108432252A (zh) 视频编码中的运动矢量选择及预测系统和方法
CN113163210B (zh) 一种编解码方法、装置及其设备
CN107534765B (zh) 视频编码系统和方法中的运动矢量选择和预测
CN108353192A (zh) 视频处理系统和方法中的分层去块滤波
KR20110134404A (ko) 화상 데이터의 블록을 예측하는 방법, 이 방법을 실행하는 복호 장치 및 부호화 장치
CN114007078A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180821

WD01 Invention patent application deemed withdrawn after publication