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

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

Info

Publication number
CN107534765B
CN107534765B CN201580078480.6A CN201580078480A CN107534765B CN 107534765 B CN107534765 B CN 107534765B CN 201580078480 A CN201580078480 A CN 201580078480A CN 107534765 B CN107534765 B CN 107534765B
Authority
CN
China
Prior art keywords
motion vector
block
encoding
prediction block
prediction
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.)
Expired - Fee Related
Application number
CN201580078480.6A
Other languages
English (en)
Other versions
CN107534765A (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.)
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 CN107534765A publication Critical patent/CN107534765A/zh
Application granted granted Critical
Publication of CN107534765B publication Critical patent/CN107534765B/zh
Expired - Fee Related 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/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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

对视频帧序列中的未经编码的视频帧进行编码以生成表示未经编码的视频帧的经编码的比特流。经编码的比特流至少包括头部部分以及视频数据有效载荷部分。可以将未经编码的视频帧划分为预测块阵列,其包括第一预测块。从多种编码模式中选择用于对所述第一预测块进行编码的编码模式。使用选中的编码模式对第一预测块进行编码,以生成经编码的比特流的视频数据有效载荷的一部分。在经编码的比特流的头部部分中提供编码模式选择标志,其指示多种编码模式中的哪种编码模式被选择用于对第一预测块进行编码。

Description

视频编码系统和方法中的运动矢量选择和预测
技术领域
本公开内容涉及视频信号的编码和解码,并且更具体地,本公开内容涉及选择用于视频序列中的各帧的预测运动矢量。
背景技术
数字多媒体(例如,数字图像、语音/音频、图形和视频)的出现已经显著地改善了各种应用,以及由于相对容易性而开启了全新的应用,通过这些全新的应用,已经能够实现可靠存储、传送、传输以及内容的搜索和接入。总体而言,数字多媒体的应用已经很多,其包含广泛,包括娱乐、信息、医药和安全,并且已经以许多方式使社会受益。如传感器(例如,照相机和麦克风)捕获的多媒体通常是模拟的,并且具有脉冲编码调制(PCM)的形式的数字化过程使得其成为数字的。然而,仅在数字化之后,所得到的数据的量可能是相当可观的,其对于重新创建扬声器和/或TV显示器所需要的模拟表示是必要的。因此,大容量的数字多媒体内容的高效传送、存储或者传输要求将其从原始PCM形式压缩为经压缩的表示。因此,已经发明了用于多媒体压缩的许多技术。多年以来,视频压缩技术已经变得非常尖端,到了它们通常能够实现10与100之间的高压缩因子,同时保持高心理视觉质量(通常类似于未经压缩的数字视频)的程度。
虽然迄今为止在视频压缩领域以及科学方面已经作出了巨大进展(如众多的标准主体驱动的视频编码标准,例如,MPEG-1、MPEG-2、H.263、MPEG-4部分2、MPEG-4AVC/H.264、MPEG-4SVC和MVC;以及工业驱动的专有标准,例如,Windows多媒体视频、RealVideo、On2VP等),但是消费者对于甚至更高的质量、更高的清晰度、以及现在无论何时、无论何地可用于接入的3D(立体声)视频的不断增长的需求已经使得经由各种方式(例如,DVD/BD、通过空中广播、电缆/卫星、有线和移动网络)到一系列客户端设备(例如,个人计算机(PC)/膝上型计算机、电视机(TV)、机顶盒、游戏控制台、便携式媒体播放器/设备、智能电话和可穿戴计算设备)的传送成为必要,这使得针对甚至更高水平的视频压缩的期望更为强烈。在标准主体驱动的标准中,这通过ISO MPEG在高效视频编码方面最近开始的努力来证实,高效视频编码被预期为将新技术贡献u以及来自ITU-T标准委员会在H.265视频压缩上进行的多年的探索性工作的技术相结合。
所有上述标准采用了普遍的帧间预测编码框架,其涉及通过对视频的各帧之间的运动进行补偿来减小时间冗余。基本的构思是通过使用块匹配方法来移除相邻画面之间的时间依赖性。在编码过程开始时,未经编码的视频序列的每个帧被分组为三种类别中的一类:I型帧、P型帧和B型帧。I型帧是帧内编码的。也就是说,仅有来自帧本身的信息用于对画面进行编码,并且没有使用任何帧间运动补偿技术(虽然可以应用帧内运动补偿技术)。
其它两种类型的帧(P型帧和B型帧)是使用帧间运动补偿技术来编码的。P画面与B画面之间的差异在于用于运动补偿的参考画面的时间方向。P型画面利用来自按照显示次序排列的先前画面的信息,而B型画面可以利用来自按照显示次序排列的先前画面和未来画面二者的信息。
对于P型帧和B型帧而言,每个帧然后被划分为由每个像素的亮度和色度分量的系数表示的像素块,并且针对每个块来获得一个或多个运动矢量(因为B型画面可以利用来自未来和过去编码的帧二者的信息,所以针对每个块而言可以对两个运动矢量进行编码)。运动矢量(MV)表示从当前块的位置到另一经先前编码的帧(其可以是按照显示次序排列的过去的帧或者未来的帧)中的类似块(分别被称为参考块和参考帧)的位置的空间位移。计算参考块与当前之间的差以生成残差(也被称为“残差信号”)。因此,对于经帧间编码的每个块而言,仅需要对残差和运动矢量进行编码,而不是该块的全部内容。通过移除视频序列的各帧之间的这种时间冗余,可以压缩视频序列。
为了进一步压缩视频数据,在已经应用帧间或者帧内预测技术之后,通常将残差信号的系数从空间域变换到频域(例如,使用离散余弦变换(“DCT”)或者离散正弦变换(“DST”)。对于自然出现的图像(例如,通常构成人可感知的视频序列的这类图像)而言,低频能量总是强于高频能量。因此,频域中的残差信号与它们在空间域中相比会得到更好的能量集中。在正向变换之后,可以对系数和运动矢量进行量化并且熵编码。
在解码器侧,应用逆向量化和逆向变换,以恢复空间残差信号。这些是所有视频压缩标准中的典型的变换/量化过程。然后可以执行反向预测过程,以生成原始未经编码的视频序列的重建版本。
在过去的标准中,在编码时使用的块通常是十六乘十六像素(在许多视频编码标准中被称为宏块)。然而,由于这些标准的发展,帧尺寸已经变得更大,并且许多设备已经获得显示高于“高清晰度”(或者“HD”)的帧尺寸(例如,2048×1530像素)的能力。因此,可能期望的是具有更大的块,以对用于这些帧尺寸(例如,64×64像素)的运动矢量高效地编码。然而,由于在分辨率方面的对应增加,还可能期望的是,能够在相对小的比例上(例如,4×4像素)执行运动预测和变换。
随着运动预测的分辨率增加,对运动矢量进行编码和变换所需要的带宽量(每帧以及相应地跨越整个视频序列二者)也增加。
附图说明
图1示出了根据至少一个实施例的示例性视频编码/解码系统。
图2示出了根据至少一个实施例的示例性编码设备的若干组件。
图3示出了根据至少一个实施例的示例性解码设备的若干组件。
图4示出了根据至少一个实施例的示例性视频编码器的框图。
图5示出了根据至少一个实施例的示例性视频解码器的框图。
图6示出了根据至少一个实施例的示例性运动矢量选择例程。
图7示出了根据至少一个实施例的示例性运动矢量候选生成子例程。
图8示出了根据至少一个实施例的示例性运动矢量恢复例程。
具体实施方式
以下的详细描述主要是依据由传统计算机组件进行的操作的过程和符号表示来表示的,传统计算机组件包括处理器、用于处理器的存储器存储设备、连接的显示设备和输入设备。此外,这些过程和操作可以利用异构分布式计算环境中的传统计算机组件,其包括远程文件服务器、计算机服务器和存储器存储设备。这些传统的分布式计算组件中的每个组件可由处理器经由通信网络来访问。
短语“在一个实施例中”、“在至少一个实施例中”、“在各个实施例中”、“在一些实施例中”等可以在本文中重复地使用。这样的短语未必指代相同的实施例。除非上下文另有指明,否则术语“包括(comprising)”、“具有”以及“包含(including)”是同义的。在如以上概括描述的典型的“混合”视频编码方法的情况下描述了各个实施例,因为其使用了画面间/画面内预测和变换编码。
现在将详细参照如附图中示出的实施例的描述。虽然结合附图和相关描述对实施例进行了描述,但是本领域技术人员将明白的是,在不脱离本公开内容的范围的情况下,替代和/或等效实现可以替换所示出和描述的特定实施例,包括所有替代、修改和等效方式(无论是否明确地示出和/或描述)。在各个替代实施例中,可以添加或者组合额外的设备或者所示出的设备的组合,而不限制本文所公开的实施例的范围。
示例性视频编码/解码系统
图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,这些与网络接口204一起都经由总线220互连。存储器212通常包括RAM、ROM和永久性大容量存储设备(例如,硬盘驱动、闪速存储器等)。
示例性编码设备200的存储器212存储操作系统224以及用于一些软件服务的程序代码,例如,软件实现的帧间视频编码器400(以下参照图4所描述的),其具有用于执行运动矢量选择例程600(以下参照图6所描述的)的指令。存储器212还可以存储视频数据文件(未示出),其可以表示音频/视觉媒体作品(举例而言,电影和/或电视剧集)的未经编码的副本。可以使用与非暂时性计算机可读介质232(例如,软盘、磁带、DVD/CD-ROM驱动、存储器卡等)的驱动机制(未示出)将这些和其它软件组件加载到编码设备200的存储器212中。虽然已经描述了示例性编码设备200,但是编码设备可以是大量联网计算设备中的任何设备,这些联网计算设备能够与网络120进行通信,并且执行用于实现视频编码软件(例如,示例性的软件实现的视频编码器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中所示出的那些组件更多的组件。然而,为了公开说明性实施例,未必示出这些一般传统组件中的所有组件。如图3中所示,示例性解码设备300包括用于连接到网络(例如,网络104)的网络接口304。示例性解码设备300还包括处理单元308、存储器312、可选的用户输入314(例如,字母数字键盘、小键盘、鼠标或者其它定位设备、触摸屏和/或麦克风)、可选的显示器316、以及可选的扬声器318,这些与网络接口304一起都经由总线320互连。存储器312通常包括RAM、ROM和永久性大容量存储设备(例如,硬盘驱动、闪速存储器等)。
示例性解码设备300的存储器312存储操作系统324以及用于一些软件服务的程序代码,例如,软件实现的视频解码器500(以下参照图5所描述的),其具有用于执行运动矢量恢复例程800(以下参照图8所描述的)的指令。存储器312还可以存储视频数据文件(未示出),其可以表示音频/视觉媒体作品(举例而言,电影和/或电视剧集)的经编码的副本。可以使用与非暂时性计算机可读介质332(例如,软盘、磁带、DVD/CD-ROM驱动、存储器卡等)的驱动机制(未示出)将这些和其它软件组件加载到解码设备300的存储器312中。虽然已经描述了示例性解码设备300,但是解码设备可以是大量联网计算设备中的任何设备,这些联网计算设备能够与网络(例如,网络120)进行通信,并且执行用于实现视频解码软件(例如,示例性的软件实现的视频解码器500以及伴随的消息提取例程700)的指令。
在操作中,操作系统324管理解码设备300的硬件和其它软件资源,并且为软件应用(例如,软件实现的视频解码器500)提供常用服务。对于诸如经由网络接口304的网络通信、经由输入314接收数据、经由显示器316和/或可选的扬声器318输出数据以及对存储器312的分配之类的硬件功能而言,操作系统324充当在编码设备上执行的软件与硬件之间的中介。
在一些实施例中,解码设备300还可以包括例如用于与经编码视频源116进行通信的可选的经编码视频接口336,例如高速串行总线等。在一些实施例中,解码设备300可以经由网络接口304与经编码视频源进行通信(例如经编码视频源116)。在其它实施例中,经编码视频源116可以位于存储器312或者计算机可读介质332中。
虽然已经描述了通常符合传统通用计算设备的示例性解码设备300,但是解码设备300可以是能够解码视频的大量设备中的任何设备,例如,视频记录设备、视频协处理器和/或加速器、个人计算机、游戏控制台、机顶盒、手持或者可穿戴计算设备、智能电话或者任何其它合适的设备。
举例而言,解码设备300可以被操作以促成点播媒体服务。在至少一个示例性实施例中,点播媒体服务可以在每个作品和/或订制的基础上向操作解码设备300的用户提供媒体作品(例如,视频内容)的数字副本。解码设备可以从未经编码视频源108(例如,经由网络104通过编码设备200)获得这样的媒体作品的数字副本。
软件实现的帧间视频编码器
图4示出了根据至少一个实施例的、采用增强的运动矢量选择和预测技术的、软件实现的帧间视频编码器400(下文为“编码器400”)的一般功能框图。可以将按照显示次序排列的视频序列中的一个或多个未经编码的视频帧(vidfrms)提供给定序器404。
定序器404可以将预测编码画面类型(例如,I、P或者B)分配给每个未经编码的视频帧,并且将该帧序列或者来自该帧序列的各组帧重新排序为编码次序(例如,I型帧之后是P型帧、之后是B型帧)。然后可以将排序后的未经编码的视频帧(seqfrms)按照编码次序输入到块索引器408中。
对于排序后的未经编码的视频帧(seqfrms)中的每一个视频帧而言,块索引器408可以确定用于当前帧的最大的编码块(“LCB”)(例如,64×64像素),并且将未经编码的帧划分为编码块(cblks)阵列。给定帧内的各个编码块可以在尺寸上变化,例如,从4×4像素高达到用于当前帧的LCB尺寸。
然后可以将每个编码块每次一个输入到差值器412中,并且然后将其与根据先前编码的编码块生成的对应预测信号块(pred)求差。还可以将编码块(cblks)提供给运动估计器416(以下讨论的)。在差值器412处求差之后,可以由变换器420将所得到的残差信号(res)正向变换为频域表示,得到变换系数(tcof)的块。然后可以将变换系数(tcof)的块发送给量化器424,得到量化系数(qcf)的块,其然后可以被发送给熵编码器428和本地解码循环430二者。
在本地解码循环430的开始处,逆向量化器432可以对变换系数(tcof′)的块进行去量化,然后将它们传递给逆向变换器436,以生成经去量化的残差块(res′)。在加法器440处,可以将来自运动补偿预测器442的预测块(pred)加到经去量化的残差块(res′)上,以生成本地解码块(rec)。然后可以将本地解码块(rec)发送给帧组装器和去块滤波处理器444,其减少块效应以及对所恢复的帧(recd)进行组装,所恢复的帧可以用作用于运动估计器416和运动补偿预测器442的参考帧。
熵编码器428对经量化的变换系数(qcf)、差分运动矢量(dmv)和其它数据进行编码,生成经编码的视频比特流448。对于未经编码的视频序列中的每个帧而言,经编码的视频比特流448可以包括经编码的画面数据(例如,经编码的经量化的变换系数(qcf)和差分运动矢量(dmv))以及经编码的帧头部(例如,诸如用于当前帧的LCB尺寸之类的句法信息)。
参照运动估计器416的功能,以及如以下参照图6和7更详细地解释的,根据至少一个实施例,P型或者B型帧中的每个编码块可以是帧内编码的,即,可以基于来自同一帧(如针对I型帧的所有编码块的情况)的先前编码的块(“参考块”),生成用于当前编码块的残差,或者每个编码块可以是帧间编码的,即,可以基于来自一个或多个经先前编码的帧(“参考帧”)的一个或多个参考块,生成用于当前编码块的残差。在说明性实施例中,帧内编码块可以以任何合适的方式进行处理。
根据至少一个实施例,对于帧间编码的编码块而言,运动估计器416可以选择至少三种编码模式中的一种来确定用于该编码块的运动矢量(或者用于B型帧的运动矢量):跳过编码模式、直接编码模式和帧间编码模式。
帧间编码模式
对于以帧间编码模式来编码的编码块而言,运动估计器416可以将每个编码块划分为一个或多个预测块,例如,具有诸如4×4像素、8×8像素、16×16像素、32×32像素或者64×64像素之类的大小。例如,64×64编码块可以被划分为十六个16×l6预测块、四个32×32预测块、或者两个32×32预测块和八个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)。
根据至少一个实施例的一方面,在跳过编码和直接编码模式中,不是确定用于预测块(PB)的计算得到的运动矢量(MVcalc),运动估计器416可以使用以下参照图7所描述的预定义的方法,来生成运动矢量候选的有序列表。例如,对于当前预测块(PBcur)而言,运动矢量候选的有序列表可以是由先前用于编码当前帧的其它块(被称为“参考块”(RB))的运动矢量构成的。
根据至少一个实施例的一方面,运动估计器416然后可以从有序列表中选择用于编码当前预测块(PBcur)的最佳运动矢量候选(MVC)。如果用于生成运动矢量候选的有序列表的过程在解码器侧是可重复的,那么可以仅将运动矢量候选的有序列表内的选中的运动矢量(MVsel)的索引(而不是运动矢量本身)包括在经编码的比特流中。在整个视频序列的过程中,编码索引值比编码实际的运动矢量可能需要少得多的信息。
根据至少一个实施例的一方面,被选择为填充运动矢量候选列表的运动矢量优选地是从具有已知的运动矢量并且共享当前预测块(PBcur)和/或另一参考块(RB)的边界的三个参考块(RBa、RBb、RBc)中选取的。例如,第一参考块(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中示出了考虑到运动矢量候选的各种组合可用性的情况下用于运动矢量候选列表的组合的全集:
Figure BDA0001423449050000101
表1
运动估计器416然后可以评估运动矢量候选,并且选择要用作当前预测块的选中的运动矢量的最佳运动矢量候选。注意的是,只要下游解码器知道如何填充用于给定预测块的运动矢量候选的有序列表,该计算就可以在解码器侧重复,而无需当前预测块的内容的知识。因此,在经编码的比特流中仅需要包括来自运动矢量候选列表的选中的运动矢量的索引,而不是运动矢量本身,例如,通过在当前预测块的预测块头部中设置运动矢量选择标志,并且因此,在整个视频序列的过程中,编码索引值比编码实际的运动矢量将需要少得多的信息。
在直接编码模式中,对运动矢量标志以及当前预测块与由运动矢量指示的参考帧的块之间的残差进行编码。在跳过编码模式中,对运动矢量选择标志进行编码,但是跳过残差信号的编码。在本质上,这告诉下游解码器使用由运动矢量指示的参考帧的块来代替当前帧的当前预测块。
软件实现的帧间解码器
图5示出了根据至少一个实施例的并且适于与解码设备(例如,解码设备300)一起使用的、采用增强的运动补偿预测技术的对应软件实现的帧间视频解码器500(下文为“解码器500”)的一般功能框图。解码器500可以与编码器400处的本地解码循环455类似地工作。
具体地,可以将要解码的、经编码的视频比特流504提供给熵解码器508,熵解码器508可以对经量化的系数(qcf)、差分运动矢量(dmv)、伴随的消息数据分组(msg-data)以及其它数据的块进行解码。经量化的系数块(qcf)然后可以由逆向量化器512进行逆向量化,得到经去量化的系数(tcof′)。然后可以由逆向变换器516将经去量化的系数(tcof′)逆向变换出频域,得到经解码的残差块(res′)。加法器520可以将通过使用对应的运动向量(mv)获得的运动补偿预测块(pred)相加。可以在帧组装器和去块滤波处理器524中对所得到的经解码的视频(dv)进行去块滤波。在帧组装器和去块滤波处理器528的输出处的块(recd)形成视频序列的重构帧,其可以从解码器500输出,并且还可以用作用于解码随后的编码块的运动补偿预测器532的参考帧。
运动矢量选择例程
图6示出了适于与至少一个实施例(例如,编码器400)一起使用的运动矢量选择例程600。如本领域技术人员将明白的是,不是编码过程中的所有事件都在图6中示出。确切而言,为了清楚起见,仅示出了与描述运动矢量选择例程合理相关的那些步骤。
在执行框603处,(例如,由运动估计器416)获得编码块。
在决策框624处,运动矢量选择例程600选择用于该编码块的编码模式。例如,如上所述,可以选择帧间编码模式、直接编码模式或者跳过编码模式。如果针对当前编码块选择跳过编码模式或者直接编码模式,那么运动矢量选择例程600可以进行到下述执行框663。
在决策框624处,如果针对当前编码块选择帧间编码模式,那么在执行框627处,运动矢量选择例程600可以将当前编码块划分为一个或多个预测块,并且在开始循环框630处开始,可以依次对当前编码块的每个预测块进行寻址。
在执行框633处,运动矢量选择例程600可以选择用于当前预测块的预测索引,其指示在B型画面的情况下参考帧是先前的帧、未来的帧还是这二者。
在执行框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。在所示出的实施例中,生成三个运动矢量候选。然而,本领域技术人员将认识到的是,可以使用相同的技术生成更多或者更少量的候选,并且还认识到的是,在不脱离本公开内容的范围的情况下,替代和/或等效实现可以替换所示出以及所描述的特定实施例。
在执行框704处,运动矢量候选生成子例程700获得针对生成用于当前预测块的运动矢量候选列表的请求。
在决策框708处,如果来自第一候选参考块(RBa)的运动矢量是可用的,那么在执行框712处,运动矢量候选生成子例程700可以将第一运动矢量候选(MVC1)设置为MVa,并且继续进行到决策框716。
在决策框716处,如果来自第二候选参考块(RBb)的运动矢量是可用的,那么在执行框724处,运动矢量候选生成子例程700可以将第二运动矢量候选(MVC2)设置为MVb,并且继续进行到决策框728。
在决策框728处,如果来自第三候选块(RBc)的运动矢量是可用的,那么在执行框736处,运动矢量候选生成子例程700可以将第三运动矢量候选(MVC3)设置为MVc。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值:MVC1=MVa、MVC2=MVb和MVC3=MVc
再次返回到决策框728处,如果没有来自第三候选块(RBc)的运动矢量是可用的,那么在执行框740处,运动矢量候选生成子例程700可以将第三运动矢量候选(MVC3)设置为(0,0)。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值:MVC1=MVa、MVC2=MVb和MVC3=(0,0)。
再次返回到决策框716,如果没有来自第二候选块(RBb)的运动矢量是可用的,那么运动矢量候选生成子例程700可以继续进行到决策框732。
在决策框732处,如果来自第三候选参考块(RBc)的运动矢量是可用的,那么在执行框744处,运动矢量候选生成子例程700可以将第二运动矢量候选(MVC2)设置为MVc。然后在执行框740处,可以将第三运动矢量候选(MVC3)设置为(0,0)。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值:MVC1=MVa、MVC2=MVc和MVC3=(0,0)。
再次返回到决策框732处,如果没有来自第三候选块(RBc)的运动矢量是可用的,那么在执行框748处,运动矢量候选生成子例程700可以将第二运动矢量候选(MVC2)设置为(0,0),并且在执行框740处,可以将第三运动矢量候选(MVC3)设置为(0,0)。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值: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。然后在执行框740处,可以将第三运动矢量候选(MVC3)设置为(0,0)。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值:MVC1=MVb、MVC2=MVc和MVC3=(0,0)。
再次返回到决策框732,如果没有来自第三候选块(RBc)的运动矢量是可用的,那么在执行框748处,运动矢量候选生成子例程700可以将第二运动矢量候选(MVC2)设置为(0,0),并且在执行框740处,可以将第三运动矢量候选(MVC3)设置为(0,0)。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值:MVC1=MVb、MVC2=(0,0)和MVC3=(0,0)。
再次返回到决策框720,如果没有来自第二候选参考块(RBb)的可用的运动矢量,那么运动矢量候选生成子例程700可以继续进行到决策框756。
在决策框756处,如果没有来自第三候选参考块(RBc)的可用的运动矢量,那么在执行框760处,运动矢量候选生成子例程700可以将第一运动矢量候选(MVC1)设置为MVc。然后在执行框748处,运动矢量候选生成子例程700可以将第二运动矢量候选(MVC2)设置为(0,0),并且在执行框740处,将第三运动矢量候选(MVC3)设置为(0,0)。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值:MVC1=MVc、MVC2=(0,0)和MVC3=(0,0)。
再次返回到决策框756,如果没有来自第三候选参考块(RBc)的运动矢量是可用的,那么在执行框746处,运动矢量候选生成子例程700可以将第一运动矢量候选(MVC1)设置为(0,0)。在执行框748处,可以将第二运动矢量候选设置为(0,0),并且在执行框740处,可以将第三运动矢量候选设置为(0,0)。
在返回框799处,运动矢量候选生成子例程700然后可以返回运动矢量候选列表,其具有相应的值: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可以恢复用于当前预测块的计算得到的运动矢量(MVcalc)(注意的是,对于P型画面而言,可以存在单个恢复的运动矢量,而对于B型画面而言,可以存在两个恢复的运动矢量),例如通过将预测的运动矢量(MVpred)加到运动矢量差(ΔMV)上。
在执行框857处,运动矢量恢复例程800然后可以将用于当前预测块的残差加到由计算得到的运动矢量(MVcalc)指示的块上,以获得用于预测块的恢复值。
再次参照决策框830,如果当前编码块是使用跳过编码或者直接编码模式来编码的,那么运动矢量恢复例程800然后可以调用运动矢量候选生成子例程700(以上参照图7所描述的),其可以向运动矢量恢复例程800返回运动矢量候选的有序列表。
在执行框863处,运动矢量恢复例程800然后可以在执行框863处读取来自预测块头部的运动矢量选择标志。
在执行框866处,运动矢量恢复例程800然后可以使用运动矢量选择标志来从运动矢量候选列表的有序列表中识别用于对当前预测块进行编码的运动矢量。
在决策框869处,如果当前编码块是以直接编码模式来编码的,在执行框872处,运动矢量恢复例程800可以将用于预测块的残差加到由选中的运动矢量标识的块的系数上,以恢复预测块系数。
如果当前编码块是以跳过编码模式来编码的,那么在执行框875处,运动矢量恢复例程800可以使用由选中的运动矢量指示的参考块的系数作为用于预测块的系数。
运动矢量恢复例程800在终止框899处结束。
虽然已经在本文中示出并且描述了特定实施例,但是本领域技术人员将明白的是,在不脱离本公开内容的范围的情况下,替代和/或等效实现可以替换所示出以及所描述的特定实施例。本申请旨在涵盖本文讨论的实施例的任何改编或者变型。

Claims (17)

1.一种对视频帧序列中的未经编码的视频帧进行编码以生成表示所述未经编码的视频帧的经编码的比特流的方法,所述方法包括:
从所述未经编码的视频帧中获取编码块;
从多个编码模式中选择一个编码模式以用于对于所述编码块进行编码,所述多个编码模式包括帧间编码模式、跳过编码模式和直接编码模式;
在所述经编码的比特流中的头部部分中提供编码模式选择标记,其中所述编码模式选择标记表示所述多个编码模式中的哪个编码模式被选择出;
响应于对帧间编码模式的选择:
将所获得的编码块分成多个预测块;以及
对于所述多个预测块中的每个对应的预测块:
从中值运动矢量预测技术和均值运动矢量预测技术中选出运动矢量预测方法,以用于对所述对应的预测块进行编码;
基于所选择的运动矢量预测方法,对所述对应的预测块进行编码,从而为所述对应的预测块生成所述经编码的比特流的视频数据有效载荷部分;以及
在经编码的对应的预测块的头部部分中提供关于所选择的运动矢量预测方法的标记,其中所述关于所选择的运动矢量预测方法的标记表示为相应的预测块进行编码所使用的被选择的运动矢量预测方法;
响应于对所述跳过编码模式或所述直接编码模式的选择:
把所获得的编码块设置为当前预测块;
为所述当前预测块获取候选运动矢量的有序列表;
从所述候选运动矢量的有序列表中选择一个运动矢量,以用于对所述当前预测块进行编码;
使用所选择的运动矢量对所述当前预测块进行编码,从而为所述当前预测块来生成经编码的比特流的视频数据有效载荷的一部分,所述编码包括对在直接编码模式下由选中的运动矢量所指示的参考块与当前预测块之间的残差进行编码以及包括不对跳过编码模式下的残差进行编码,在所述经编码的当前预测块的所述头部部分中提供运动矢量选择标志,其中,所述运动矢量选择标志指示在所述候选运动矢量的有序列表中与所选择的运动矢量相对应的位置。
2.根据权利要求1所述的方法,进一步包括,其中获取所述候选运动矢量的有序列表包括:
选择先前在参照所述当前预测块对多个预测块中的第一参考块进行编码中所使用的第一运动矢量;
选择先前在对多个预测块中的第二参考块进行编码中所使用的第二运动矢量;以及
选择先前在对多个预测块中的第三参考块进行编码中所使用的第三运动矢量。
3.根据权利要求2所述的方法,进一步包括:
从位于所述当前块正上方的位置处从所述多个参考块中选出第一参考块;
从位于所述第一参考块正右方的位置处从所述多个参考块中选出第二参考块;
从位于所述当前块正左方的位置处从所述多个参考块中选出第三参考块。
4.根据权利要求1所述的方法,进一步包括:其中获取所述候选运动矢量的有序列表包括:
选择先前在参照所述当前预测块对多个参考块中的第一参考块进行编码中所使用的第一运动矢量;
选择先前在对多个预测块中的第二参考块进行编码中所使用的第二运动矢量;以及
选择零值运动矢量。
5.根据权利要求4所述的方法,其中:
从所述多个参考块中选择所述第一参考块是从在所述当前预测块的正上方的位置处选取的;以及
从所述多个参考块中选择所述第二参考块是从位于所述第一参考块正右方的位置处选取的。
6.根据权利要求4所述的方法,其中:
从所述多个参考块中选择所述第一参考块是从在所述当前预测块的正上方的位置处选取的;以及
从所述多个参考块中选择所述第二参考块是从位于所述第一参考块正左方的位置处选取的。
7.根据权利要求4所述的方法,其中:
从所述多个参考块中选择所述第一参考块是从在所述当前预测块的右上方的位置处选取的;以及
从所述多个参考块中选择所述第二参考块是从位于所述第一参考块正左方的位置处选取的。
8.根据权利要求1所述的方法,其中,所述候选运动矢量的有序列表包括按照次序排列的以下各项:
先前在参照所述当前预测块对多个参考块中的第一参考块进行编码中所使用的第一运动矢量;
第一零值运动矢量;以及
第二零值运动矢量。
9.根据权利要求8所述的方法,其中,所述第一参考块位于所述当前预测块的正上方。
10.根据权利要求8所述的方法,其中,所述第一参考块位于所述当前预测块的右上方。
11.根据权利要求8所述的方法,其中,所述第一参考块位于所述当前预测块的正左方。
12.根据权利要求1所述的方法,其中,所述候选运动矢量的有序列表包括按照次序排列的以下各项:
第一零值运动矢量;
第二零值运动矢量;以及
第三零值运动矢量。
13.根据权利要求1所述的方法,其中,使用所选择的运动矢量对所述当前预测块进行编码包括:
使用所选择的运动矢量来识别所述视频帧序列中的经先前编码的帧的第二预测块;
获得所述当前预测块与所述第二预测块之间的残差;以及
对所述残差进行编码,从而为所述当前预测块生成所述经编码的比特流的所述视频数据有效载荷的所述一部分。
14.根据权利要求1所述的方法,其中,使用所选择的运动矢量对所述当前预测块进行编码包括:
使用所选择的运动矢量来识别所述视频帧序列中的经先前编码的帧的第二预测块;以及
对所述第二预测块进行编码,从而为所述当前预测块生成所述经编码的比特流的所述视频数据有效载荷的所述一部分。
15.一种计算机设备,包括:
存储器,用于存储计算机指令;以及
至少一个处理器,其被配置以执行所述计算机指令,以:
从未经编码的视频帧中获取编码块;
从多个编码模式中选择一个编码模式以用于对于所述编码块进行编码,所述多个编码模式包括帧间编码模式、跳过编码模式和直接编码模式;
在所述经编码的比特流中的头部部分中提供编码模式选择标记,其中所述编码模式选择标记表示所述多个编码模式中的哪个编码模式被选择出;
响应于对帧间编码模式的选择:
将所获得的编码块分成多个预测块;以及
对于所述多个预测块中的每个对应的预测块:
从中值运动矢量预测技术和均值运动矢量预测技术中选出运动矢量预测方法,以用于对所述对应的预测块进行编码;
基于所选择的运动矢量预测方法,对所述对应的预测块进行编码,从而为所述对应的预测块生成所述经编码的比特流的视频数据有效载荷部分;以及
在经编码的对应的预测块的头部部分中提供关于所选择的运动矢量预测方法的标记,其中所述关于所选择的运动矢量预测方法的标记表示为相应的预测块进行编码所使用的被选择的运动矢量预测方法;
响应于对所述跳过编码模式或所述直接编码模式的选择:
把所获得的编码块设置为当前预测块;
为所述当前预测块获取候选运动矢量的有序列表;
从所述候选运动矢量的有序列表中选择一个运动矢量,以用于对所述当前预测块进行编码;
使用所选择的运动矢量对所述当前预测块进行编码,从而为所述当前预测块来生成经编码的比特流的视频数据有效载荷的一部分,所述编码包括对在直接编码模式下由选中的运动矢量所指示的参考块与当前预测块之间的残差进行编码以及包括不对跳过编码模式下的残差进行编码,在所述经编码的当前预测块的所述头部部分中提供运动矢量选择标志,其中,所述运动矢量选择标志指示在所述候选运动矢量的有序列表中与所选择的运动矢量相对应的位置。
16.根据权利要求15所述的计算机设备,其中,所述中值运动矢量预测技术包括:确定以下各项的中间值:
先前用于对所述预测块阵列中的第一参考预测块进行编码的第一运动矢量;
先前用于对所述预测块阵列中的第二参考预测块进行编码的第二运动矢量;以及
先前用于对所述预测块阵列中的第三参考预测块进行编码的第三运动矢量。
17.根据权利要求15所述的计算机设备,其中,所述均值运动矢量预测技术包括:确定以下各项的平均值:
先前用于对所述预测块阵列中的第一参考预测块进行编码的第一运动矢量;以及
先前用于对所述预测块阵列中的第二参考预测块进行编码的第二运动矢量。
CN201580078480.6A 2015-03-31 2015-03-31 视频编码系统和方法中的运动矢量选择和预测 Expired - Fee Related CN107534765B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/075599 WO2016154930A1 (en) 2015-03-31 2015-03-31 Motion vector selection and prediction in video coding systems and methods

Publications (2)

Publication Number Publication Date
CN107534765A CN107534765A (zh) 2018-01-02
CN107534765B true CN107534765B (zh) 2020-10-02

Family

ID=57005514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580078480.6A Expired - Fee Related CN107534765B (zh) 2015-03-31 2015-03-31 视频编码系统和方法中的运动矢量选择和预测

Country Status (6)

Country Link
US (2) US10321150B2 (zh)
EP (1) EP3278558B1 (zh)
JP (1) JP6678357B2 (zh)
KR (1) KR20180019509A (zh)
CN (1) CN107534765B (zh)
WO (1) WO2016154930A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018152749A1 (en) * 2017-02-23 2018-08-30 Realnetworks, Inc. Coding block bitstream structure and syntax in video coding systems and methods
WO2018169571A1 (en) * 2017-03-15 2018-09-20 Google Llc Segmentation-based parameterized motion models
KR102518167B1 (ko) * 2017-11-30 2023-04-05 삼성전자주식회사 이미지 처리 방법 및 그 전자 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101658042A (zh) * 2007-03-13 2010-02-24 诺基亚公司 用于视频编码和解码的系统和方法
CN104094604A (zh) * 2012-01-20 2014-10-08 松下电器(美国)知识产权公司 使用时间运动矢量预测对视频进行编码和解码的方法和装置

Family Cites Families (11)

* 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
US9787981B2 (en) * 2011-01-19 2017-10-10 Renesas Electronics Corporation Image coding device and image decoding device
US9247266B2 (en) * 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
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
US10264276B2 (en) 2011-06-14 2019-04-16 Samsung Electronics Co., Ltd. Method and apparatus for encoding motion information and method and apparatus for decoding same
KR101960034B1 (ko) * 2011-09-09 2019-03-19 엘지전자 주식회사 인터 예측 방법 및 그 장치
JP6020323B2 (ja) * 2012-04-12 2016-11-02 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
EP3716621B1 (en) * 2012-04-12 2021-12-01 JVCKENWOOD Corporation Moving picture coding device, moving picture coding method, moving picture coding program, and moving picture decoding device, moving picture decoding method, moving picture decoding program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101658042A (zh) * 2007-03-13 2010-02-24 诺基亚公司 用于视频编码和解码的系统和方法
CN104094604A (zh) * 2012-01-20 2014-10-08 松下电器(美国)知识产权公司 使用时间运动矢量预测对视频进行编码和解码的方法和装置

Also Published As

Publication number Publication date
EP3278558B1 (en) 2021-07-21
JP2018513617A (ja) 2018-05-24
JP6678357B2 (ja) 2020-04-08
WO2016154930A1 (en) 2016-10-06
KR20180019509A (ko) 2018-02-26
US20180199053A1 (en) 2018-07-12
US10321150B2 (en) 2019-06-11
EP3278558A4 (en) 2018-11-07
WO2016154930A8 (en) 2017-11-16
CN107534765A (zh) 2018-01-02
US20190268619A1 (en) 2019-08-29
EP3278558A1 (en) 2018-02-07

Similar Documents

Publication Publication Date Title
US10531086B2 (en) Residual transformation and inverse transformation in video coding systems and methods
US20190268619A1 (en) Motion vector selection and prediction in video coding systems and methods
US10735729B2 (en) Residual transformation and inverse transformation in video coding systems and methods
WO2018152749A1 (en) Coding block bitstream structure and syntax in video coding systems and methods
US10652569B2 (en) Motion vector selection and prediction in video coding systems and methods
US20190379890A1 (en) Residual transformation and inverse transformation in video coding systems and methods
US20210250579A1 (en) Intra-picture prediction in video coding systems and methods
US11025925B2 (en) Condensed coding block headers in video coding systems and methods
US20200036967A1 (en) Motion vector selection and prediction in video coding systems and methods
JP6748657B2 (ja) 圧縮ビデオビットストリームに付属メッセージデータを含めるシステムおよび方法

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201002