CN105900420A - 选择运动向量精度 - Google Patents

选择运动向量精度 Download PDF

Info

Publication number
CN105900420A
CN105900420A CN201480072763.5A CN201480072763A CN105900420A CN 105900420 A CN105900420 A CN 105900420A CN 201480072763 A CN201480072763 A CN 201480072763A CN 105900420 A CN105900420 A CN 105900420A
Authority
CN
China
Prior art keywords
precision
value
video
sample
unit
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
CN201480072763.5A
Other languages
English (en)
Other versions
CN105900420B (zh
Inventor
G·J·沙利文
Y·周
李明杰
C-L·林
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201910433376.4A priority Critical patent/CN110099278B/zh
Priority to CN201910451602.1A priority patent/CN110149513B/zh
Priority to CN201910433166.5A priority patent/CN110177274B/zh
Publication of CN105900420A publication Critical patent/CN105900420A/zh
Application granted granted Critical
Publication of CN105900420B publication Critical patent/CN105900420B/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/177Methods 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 group of pictures [GOP]
    • 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/179Methods 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 scene or a shot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

提出了在视频编码期间选择运动向量(“MV”)精度的方法。这些方法可以便于在率失真性能和/或计算效率方面有效的压缩。例如,视频编码器从多个MV精度中确定针对视频的单位的MV精度,其包括一个或多个分数样本MV精度和整数样本MV精度。视频编码器可以识别具有分数样本MV精度的一组MV值,然后至少部分地基于分数部分为零的MV值(该组内)的流行,选择针对单位的MV精度。或者,视频编码器可以执行率失真分析,其中率失真分析朝向整数样本MV精度偏置。或者,视频编码器可以收集关于视频的信息,并至少部分地基于收集到的信息选择针对所述单位的MV精度。

Description

选择运动向量精度
背景技术
工程师使用压缩(也称为源编码或源译码)来减少数字视频的比特率。压缩通过将信息转换为较低比特率形式而降低了存储和传输视频信息的成本。解压缩(也称作解码)根据压缩形式重构原始信息的版本。“编码解码器”是编码器/解码器系统。
在过去的二十年里,采用了各种视频编码解码器标准,包括ITU-TH.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)标准、MPEG-1(ISO/IEC 11172-2)和MPEG-4视觉(ISO/IEC 14496-2)标准、以及SMPTE 421M(VC-1)标准。最近,批准了HEVC标准(ITU-T H.265或ISO/IEC 23008-2)。目前正在开发HEVC标准的扩展(例如,用于可扩展视频编码/解码,用于对具有较高保真度的视频在样本位深度或色度采样率方面进行编码/解码,或用于多视图编码/解码)。视频编码解码器标准通常定义编码视频比特流的语法的选项,详述在编码和解码中使用特定特征时在比特流中的参数。在多种情况下,视频编码解码器标准还提供关于解码器应该执行以实现解码的一致性结果的解码操作的细节。除了编码解码器标准外,各种属性编码解码器格式定义了用于编码视频比特流和对应的解码操作的语法的其他选项。
通常,视频压缩技术包括“图片内”压缩和“图片间”压缩。图片内压缩技术压缩个体图片,而图片间压缩技术参考先前的和/或后续的一张或多张图片(通常称作参考图片或锚定图片)来压缩图片。
图片间压缩技术通常使用运动估计和运动补偿,通过利用视频序列中的时间冗余来减少比特率。运动估计是用于估计图片之间的运动的过程。在一种常见技术中,使用运动估计的编码器试图将当前图片中的当前样本值的块与在另一图片(参考图片)中搜索区域内的相同大小的候选块进行匹配。当编码器在参考图片的搜索区域中发现精确的或“足够靠近”的匹配时,编码器将在当前和候选块之间位置的变化参数化为运动数据(例如,运动向量(“MV”))。MV通常是二维值,其具有表示左右空间位移的水平MV分量和表示上下空间位移的垂直MV分量。通常,运动补偿是根据参考图片利用运动数据重构图片的过程。
MV可以表示当前块在参考图片的共同定位的位置处开始的整数数量的样本网格位置方面的空间位移。例如,对于当前图片中位置(32,16)处的当前块,MV(-3,1)表示在参考图片中的位置(29,17)。或者,MV可以表示当前块在参考图片的共同定位的位置处起的分数数量(fractionalnumber)的样本网格位置方面的空间位移。例如,对于在当前图片的位置(32,16)处的当前块,MV(-3.5,1.25)表示在参考图片中的位置(28.5,17.25)。为了确定在参考图片中分数偏移处的样本值,编码器通常在整数样本位置处的样本值之间进行插值。这种插值可能是计算密集的。在运动补偿期间,编码器还执行如在参考图片中的分数偏移处计算样本值所需的插值。
不同视频编码解码器标准和格式已经使用了具有不同MV精度的MV。对于整数样本MV精度,MV分量表示空间位移的整数数量的样本网格位置。对于分数样本MV精度,例如1/2样本MV精度或1/4样本MV精度,MV分量可以表示空间位移的整数数量的样本网格位置或分数数量的样本网格位置。例如,如果MV精度是1/4样本MV精度,则MV分量可以表示0样本、0.25样本、0.5样本、0.75样本、1.0样本、1.25样本等的空间位移。一些视频编码解码器标准和格式支持在编码期间切换MV精度。然而,在特定编码场景中,不能有效进行关于使用哪个MV精度的编码器侧决策。
发明内容
在发明内容部分,详细描述表示用于选择运动向量(“MV”)精度的在编码器侧操作中的创新。例如,当视频编码器编码视频时,视频编码器确定针对视频的单位的MV精度。
根据本文描述的创新的一个方面,当确定针对单位的MV精度时,视频编码器可以识别具有分数样本MV精度的一组MV值。视频编码器可以至少部分地基于在所述一组MV值中分数部分为零的MV值的流行,而选择针对所述单位的MV精度。
根据本文描述的创新的另一方面,当为单位确定MV精度时,视频编码器可以执行率失真分析以在多个MV精度之间进行决定,其包括一个或多个分数样本MV精度和整数样本MV精度。通过(a)缩放失真成本,(b)向失真成本添加惩罚,(c)缩放比特率成本,(d)向比特率成本添加惩罚,和/或(e)调整拉格朗日乘数,率失真分析朝向整数样本MV精度偏置。
根据本文描述的创新的另一方面,当确定针对单位的MV精度时,视频编码器可以收集关于视频的信息,并至少部分地基于所收集到的信息从多个MV精度中选择针对单位的MV精度。多个MV精度包括一个或多个分数样本MV精度和整数样本MV精度。
用于选择MV精度的编码器侧的选项的创新可以实现为方法的一部分、适于执行方法的计算设备的一部分,或者存储用于使得计算设备执行方法的计算机可执行指令的有形计算机可读介质的一部分。可以组合或分开使用各种创新。
根据以下结合附图进行的详细描述,本发明的前述和其它目的、特征和优点将变得更清晰。
附图说明
图1是可以实现一些所述实施例的示例性计算系统的图。
图2a和2b是可以实现一些所述实施例的示例性网络环境的图。
图3是可以结合其实现一些所述实施例的示例性编码器系统的图。
图4a和4b是示出可以结合其实现一些所述实施例的示例性视频编码器的图。
图5是示出具有可以提供用于屏幕捕捉的输入的内容的计算机桌面环境的图。
图6是示出具有自然视频内容和人工视频内容的混合内容视频的图。
图7a和7b是分别示出带有具有整数样本空间位移和分数样本空间位移的MV值的运动补偿的图。
图8是示出在编码期间用于适应MV精度的广义技术的流程图。
图9是示出在编码期间利用低复杂度方法用于适应MV精度的示例性技术的流程图。
图10是示出根据低复杂度方法的一些变型的图片的不同区域的图。
具体实施方式
详细描述呈现了在编码期间选择运动向量(“MV”)精度的创新。这些方法可以便于压缩,其在率失真性能和/或计算效率方面是有效的。例如,视频编码器从多个MV精度确定针对视频的单位的MV精度,所述多个MV精度包括一个或多个分数样本MV精度和整数样本MV精度。视频编码器可以识别具有分数样本MV精度的一组MV值,然后至少部分地基于具有零的分数部分的MV值(组内)的流行,选择针对单位的MV精度。或者,视频编码解码器可以执行率失真分析,其中率失真分析朝向整数样本MV精度偏置。或者,视频编码解码器可以收集关于视频的信息,并至少部分地基于所收集的信息选择针对单位的MV精度。或者,视频编码解码器可以以一些其它方式确定针对视频的单位的MV精度。
虽然本文描述的操作被适当地描述为由视频编码器执行,但是在许多情况下,所述操作可以由其它类型的媒体处理工具执行。
结合HEVC标准专用的语法元素和操作示出了本文所描述的一些创新。本文描述的创新还可以被实现用于其它标准或格式。
更一般地,对本文描述的例子的各种变型都是可以的。例如,可以通过改变所描述的方法动作的顺序、通过分离、重复或省略某些方法动作等来改变一些本文描述的方法。可以组合或分开地使用所公开技术的各个方面。不同实施例使用所描述创新中的一个或多个。本文所描述的一些创新解决了背景中提到的一个或多个问题。通常,给定的技术/工具并不能解决所有这种问题。
I.示例性计算系统
图1示出了可以实现所描述的若干创新的适当计算系统100的广义例子。计算系统100并不打算暗示对使用或功能的范围的任何限制,因为创新可以实现于各种计算系统中,包括适应视频编码的专用计算系统。
参考图1,计算系统100包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是中央处理单元(“CPU”)、在专用集成电路(“ASIC”)中的处理器或者任意其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图1示出了中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是通过处理单元可访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或者两者的某组合。存储器(120、125)存储实现在编码期间用于选择MV精度的一个或多个创新的软件(180),该软件是适于由处理单元执行的计算机可执行指令的形式。
计算系统可以具有额外的特征。例如,计算系统(100)包括存储设备(140)、一个或多个输入设备(150)、一个或多个输出设备(160)、以及一个或多个通信连接(170)。例如总线、控制器或网络的互连机构(未示出)使得计算系统(100)的部件互连。通常,操作系统软件(未示出)提供在计算系统(100)内执行的其它软件的操作环境,并协调计算系统(100)的部件的活动。
有形存储设备(140)可以是可移除的或不可移除的,并包括磁盘、磁带或卡带、CD-ROM、DVD或能够用于存储信息并在计算系统(100)内被访问的任意其它介质。存储设备(140)存储实现在编码期间选择MV精度的一个或多个创新的软件(180)的指令。
输入设备(150)可以是触摸输入设备,例如,键盘、鼠标、笔或轨迹球、语音输入设备、扫描设备、或向计算系统(100)提供输入的其它设备。对于视频,输入设备(150)可以是摄像机、视频卡、TV调谐卡、屏幕捕捉模块、或接受模拟或数字形式的视频输入的类似设备、或将视频输入读入到计算系统(100)中的CD-ROM或CD-RW。输出设备(160)可以是显示器、打印机、扬声器、CD刻录机、或从计算系统(100)提供输出的另一设备。
通信连接(170)使得能够在通信介质上与另一计算实体进行通信。通信介质传达信息,例如,计算机可执行指令、音频或视频输入或输出、或调制数据信号中的其它数据。调制数据信号是具有一个或多个其特性集或以对信号中的信息进行编码的方式而改变的信号。通过示例而非限制的方式,通信介质可以使用电、光、RF或其它载体。
可以在计算机可读介质的一般上下文中描述创新。计算机可读介质是能够在计算环境中被访问的任意可用的有形介质。通过示例而非限制的方式,通过计算系统(100),计算机可读介质包括存储器(120、125)、存储设备(140)和上述任意的组合。
可以在计算机可执行指令的一般上下文中描述创新,例如,包含于程序模块中的指令,其在目标真实或虚拟处理器上在计算系统中执行。一般而言,程序模块包括例程、程序、库、对象、类别、部件、数据结构等,其执行特定任务或实现特定抽象数据类型。程序模块的功能可以按照各个实施例所期望地在程序模块之间组合或分离。可以在局部或分布式计算系统中执行用于程序模块的计算机可执行指令。
术语“系统”和“设备”在本文中可交换使用。除非上下文中另有明确表示,否则任一术语都不暗示对计算系统或计算设备的类型的任何限制。一般而言,计算系统或计算设备可以是局部的或分布式的,并可以包括专用硬件和/或硬件与实现本文描述的功能的软件的任意组合。
还可以利用配置为执行任意所公开方法的专用计算硬件来实现所公开的方法。例如,可以通过专门设计或配置为实现任意所公开方法的集成电路(例如,ASIC,如ASIC数字信号处理器(“DSP”),图形处理单元(“GPU”),或可编程逻辑设备(“PLD”),如现场可编程门阵列(“FPGA”))来实现所公开的方法。
出于描述的原因,详细的描述使用类似“确定”和“使用”的术语来描述计算系统中的计算机操作。这些术语是计算机执行的操作的高度抽象,并不应该与人类执行的动作混淆。对应于这些术语的实际计算机操作依赖于实现方式而变化。如本文所使用的,术语“优化(optimiz*)”(包括变形(如optimization和optimizing))指的是在给定决策范围下选项中的选择,并不暗示优化的选择是决策的扩展范围的“最佳”或“最优”选择。
II.示例性网络环境
图2a和2b示出了示例性网络环境(201、202),其包括视频编码器(220)和视频解码器(270)。编码器(220)和解码器(270)利用适当的通信协议通过网络(250)连接。网络(250)可以包括互联网或其它计算机网络。
在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)包括编码器(220)和解码器(270)用于双向通信。给定的编码器(220)可以产生与HEVC标准(还已知为H.265)、SMPTE 421M标准、ISO/IEC14496-10标准(还已知为H.264或AVC)、其它标准或属性格式的变型或扩展兼容的输出,对应的解码器(270)接受来自编码器(220)的编码数据。双向通信可以是以下项目的一部分:视频会议、视频电话呼叫、或其它两方或多方通信场景。虽然在图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可以替代地包括参与多方通信的三个或更多实时通信工具(210)。
实时通信工具(210)通过编码器(220)管理编码。图3示出了可以包含于实时通信协议(210)中的示例性编码器系统(300)。替代地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还通过解码器(270)管理解码。
在图2b中所示的网络环境(202)中,编码工具(212)包括编码器(220),其编码视频用于输送到多个回放工具(214)(其包括解码器(270))。可以为视频监控系统、网络摄像机监视系统、屏幕捕捉模块、远程桌面会议呈现或对视频进行编码并将其从一个位置发送到一个或多个其它位置的其它场景提供单向通信。虽然图2b中的网络环境(202)包括两个回放工具(214),但网络环境(202)可以包括更多或更少的回放工具(214)。一般而言,回放工具(214)与编码工具(212)通信以确定回放工具(214)接收的视频流。回放工具(214)接收流,在适当周期内缓冲接收到的编码数据,并开始解码并进行回放。
图3示出了可以包含于编码工具(212)中的示例性编码器系统(300)。替代地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括服务器侧控制器逻辑,用于管理与一个或多个回放工具(214)的连接。回放工具(214)还可以包括客户端侧控制器逻辑,用于管理与编码工具(212)的连接。
III.示例性编码器系统
图3是结合其可以实现一些所述实施例的示例性编码器系统(300)的框图。编码器系统(300)可以是通用编码工具,其能够以任意多个编码模式进行操作,所述编码模式例如是用于实时通信的低延迟编码模式、转码模式、以及用于产生用于从文件或流回放的媒体的较高延迟编码模式;或者编码器系统(300)可以是专用编码工具,其适于一种这样的编码模式。编码器系统(300)可以实现为操作系统模块,作为应用库的一部分或者作为独立的应用。总之,编码器系统(300)从视频源(310)接收源视频帧序列(311),并产生经编码的数据作为到信道(390)的输出。输出到信道的经编码的数据可以包括利用所选的MV精度而编码的内容。
视频源(310)可以是摄像机、调谐卡、存储介质、屏幕捕捉模块或其它数字视频源。视频源(310)以例如每秒30帧的帧率产生视频帧序列。如本文所使用的,术语“帧”通常指的是源、编码的或重构的图像数据。对于逐行扫描视频,帧是逐行扫描视频帧。对于交错视频,在示例性实施例中,交错视频帧可以是在编码之前被去交错的。替代地,将两个补充的交错视频字段编码到一起作为单个视频帧或编码为两个分开编码的字段。除了表示逐行扫描视频帧或交错扫描视频帧,术语“帧”或“图片”可以表示单个非配对视频字段、补充视频字段对、表示给定时间的视频对象的视频对象平面、或在较大图像中的感兴趣区域。视频对象平面或区域可以是包括多个对象或场景区域的较大图像的一部分。
到达源帧(311)存储于源帧临时存储器存储区域(320)中,其包括多个帧缓冲器存储区域(321、322、…、32n)。帧缓冲器(321、322等)在源帧存储区域(320)中保存一个源帧。在一个或多个源帧(311)已经存储于帧缓冲器(321、322等)之后,帧选择器(330)从源帧存储区域(320)中选择个体源帧。通过帧选择器(330)选择用于输入到编码器(340)中的帧的顺序可能不同于视频源(310)产生帧的顺序,例如,对一些帧的编码可能在顺序上延迟,从而允许一些后续帧首先被编码并因此便于暂时反向预测。在编码器(340)之前,编码器系统(300)可以包括预处理器(未示出),其在编码之前执行所选帧(331)的预处理(例如,过滤)。预处理可以包括颜色空间转换为主要(例如,亮度)和次要(例如,朝向红色和朝向蓝色的色度差)分量,并对处理进行重采样(例如,减少色度分量的空间分辨率)以进行编码。一般而言,在编码之前,视频已经转换为颜色空间,例如YUV,其中亮度(Y)分量的样本值表示亮度或强度值,并且色度(U,V)分量的样本值表示颜色差值。可以对色度采样值进行子采样到较低色度采样率(例如,用于YUV 4:2:0格式或YUV 4:2:2),或者色度样本值可以具有与亮度样本值相同的分辨率(例如,用于YUV 4:4:4格式)。在YUV 4:2:0格式中,水平地通过两个因素且垂直地通过两个因素对色度分量进行降低采样。在YUV 4:2:2格式中,水平地通过两个因素对色度分量进行降低采样。或者可以以另一格式(例如,RGB 4:4:4格式)对视频进行编码。
编码器(340)对所选帧(331)进行编码以产生经编码的帧(341),并且还产生存储器管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。如果当前帧不是已经编码的第一帧,则当执行其编码过程时,编码器(340)可以使用一个或多个先前编码/解码的帧(369),该帧(369)已经存储于解码帧临时存储器存储区域(360)内。这种存储的解码帧(369)用作当前源帧(331)的内容的帧间预测的参考帧。MMCO/RPS信息(342)向编码器表明哪个重构帧可以用作参考帧,并因此应该存储于帧存储区域内。
一般而言,编码器(340)包括执行编码任务的多个编码模块,所述任务例如分割成瓦片(tile),帧内预测估计和预测,运动估计和补偿,频率转换,量化和熵编码。编码器(340)执行的准确操作可以依赖于压缩格式而变化。输出编码数据的格式可以是HEVC格式(H.265)、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264)或其它格式的变型或扩展。
编码器(340)可以将帧分割为相同尺寸或不同尺寸的多个瓦片。例如,编码器(340)将帧沿着瓦片行和瓦片列进行分割,借助帧边界,所述瓦片行和瓦片列定义在帧内的瓦片的水平和垂直边界,其中每个瓦片是矩形区域。瓦片通常用于提供用于并行处理的选项。可以将帧组织为一个或多个切片,其中切片可以是整个帧或帧的区域。可以对切片独立于帧中其它切片进行解码,这改善了误差恢复。为了进行编码和解码,切片或瓦片的内容还被分隔为块或样本的其它集合。
对于根据HEVC标准的语法,编码器将帧(或切片或瓦片)的内容分割成编码树单元。编码树单元(“CTU”)包括组织为亮度编码树块(“CTB”)的亮度样本值以及组织为两个色度CTB的对应的色度样本值。CTU(及其CTB)的大小由编码器进行选择。亮度CTB例如可以包含64x64、32x32、16x16的亮度样本值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个对应的色度CB。例如,具有64x64亮度CTB和两个64x64的色度CTB(YUV 4:4:4格式)的CTU可以被分割成四个CU,每个CU包括32x32的亮度CB和两个32x32的色度CB,每个CU还可能被分割成更小的CU。或者,作为另一例子,具有64x64亮度CTB和两个32x32色度CTB(YUV 4:2:0格式)的CTU可以被分割为四个CU,每个CU包括32x32亮度CB和两个16x16色度CB,每个CU还可以被分割成更小的CU。CU的最小可允许尺寸(例如,8x8、16x16)可以在比特流中用信号传递。
一般而言,CU具有例如帧间或帧内的预测模式。CU包括一个或多个预测单元,用于对预测信息(例如,预测模式细节、位移值等)和/或预测处理进行信号传递的目的。预测单元(“PU”)具有亮度预测块(“PB”)和两个色度PB。对于帧内预测的CU,PU具有与CU相同的尺寸,除非CU具有最小尺寸(例如,8x8)。在这种情况下,CU可以分割成四个较小的PU(例如,当最小CU尺寸是8x8时,每个是4x4),或者PU可以具有最小CU尺寸,如由CU的语法元素指示的。CU还具有一个或多个变换单元,用于残差编码/解码的目的,其中变换单元(“TU”)具有亮度变换块(“TB”)和两个色度TB。在帧内预测CU中的PU可以包含单个TU(在尺寸上等于PU)或多个TU。编码器决定如何将视频分割为CTU、CU、PU、TU等。在H.264/AVC标准的上下文中,术语“宏块”指示类似于H.265/HEVC标准的CTU的块状区域的块状区域,并且术语“子宏块分割”指示类似于CU或PU的块状区域的块状区域。如本文所使用的,术语“块”可以表示CB、PB、TB、CTU、CU、PU、TU、宏块、子宏块分割或其它样本值集合,这取决于上下文。
返回图3,编码器以根据帧(331)中其它先前重构的样本值的预测的方式呈现源帧(331)的内部编码块。对于块内复制(“BC”)预测,图片内估计器估计块相对其它先前重构样本值的位移。帧内预测参考区域(或简称帧内预测区域)是用于生成块的BC预测值的帧中的样本的区域。帧内预测区域可以用块向量(“BV”)值(在BV估计中确定的)来指示。对于块的帧内空间预测,图片内估计器估计相邻的重构样本值到块的外推。图片内估计器可以输出预测信息(例如,BC内预测的BV值或帧内空间预测的预测模式(方向)),其是熵编码的。帧内预测预测器应用预测信息来确定帧内预测值。
编码器(340)表示按照根据参考帧的预测的方式的源帧(331)的帧间编码的预测块。运动估计器估计块相对于一个或多个参考帧(369)的运动。运动估计器可以选择如文本所述的运动向量(“MV”)精度(例如,整数样本MV精度、1/2样本MV精度或1/4样本MV精度),然后在运动估计期间使用所选的MV精度。当使用多个参考帧时,多个参考帧可以来自不同的时间方向或相同的时间方向。运动补偿预测参考区域是在用于生成当前帧的样本块的运动补偿的预测值的参考帧中样本的区域。运动估计器输出运动信息,例如,MV信息,其是熵编码的。运动补偿器将具有所选MV精度的MV值应用于参考帧(369),以确定用于帧间预测的运动补偿的预测值。
编码器可以确定块的(帧内或帧间)预测值和对应的原始值之间的差(如果有的话)。利用频率变换(如果频率变换不被省略)、量化和熵编码对这些预测残差值进一步编码。例如,编码器(340)设置用于图片、瓦片、切片和/或视频的其它部分的量化参数(“QP”)的值,并因此量化变换系数。编码器(340)的熵编码器压缩量化变换系数值以及某些边带信息(例如,MV信息、所选MV精度、BV值、QP值、模式决策、参数选择)。典型的熵编码技术包括指数哥伦布编码、Golomb-Rice编码、算数编码、差分编码、霍夫曼编码、行程编码、可变长度到可变长度(“V2V”)编码、可变长度到固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编码、词典编码、概率区间分割熵编码(“PIPE”)以及上述组合。熵编码器可以针对不同种类的信息使用不同的编码技术,可以应用组合的多个技术(例如,通过应用Golomb-Rice编码之后是算数编码),并可以从特定编码技术中的多个代码表中进行选择。在一些实现方式中,频率变换可以被省略。在这种情况下,可以量化和熵编码预测残差值。
在编码器(340)中的运动补偿循环(也就是,“循环中”过滤)内包括自适应去块滤波来平滑跨解码帧中的块边界行和/或列的不连续性。其它过滤(例如,未示出的去环过滤、自适应循环过滤(“ALF”)或样本适应偏移(“SAO”)过滤)可以替代的或额外地应用为循环内过滤操作。
通过解码过程模拟器(350)处理编码帧(341)和MMCO/RPS信息(342)(或者等价于MMCO/RPS信息(342)的信息,因为在编码器(340)处已知帧的依赖性和顺序结构)。解码过程模拟器(350)实现解码器的一些功能,例如,解码任务以重构参考帧。以与MMCO/RPS信息(342)一致的方式,解码过程模拟器(350)确定给定的编码帧(341)是否需要被重构,并存储用作将被编码的后续帧的帧间预测中的参考帧。如果编码帧(341)需要被存储,则解码过程模拟器(350)对接收编码帧(341)且产生对应解码帧(351)的解码器所要进行的解码过程进行建模。这样,当编码器(340)已经使用存储于解码帧存储区域(360)内的解码帧(369)时,解码过程模拟器(350)还使用来自存储区域(360)的解码帧(369)作为解码过程的一部分。
解码帧临时存储器存储区域(360)包括多个帧缓冲器存储区域(361、362、…、36n)。以与MMCO/RPS信息(342)一致的方式,解码过程模拟器(350)管理存储区域(360)的内容,以便识别具有编码器(340)不再需要用作参考帧的帧的任意帧缓冲器(361、362等)。在对解码过程建模之后,解码过程模拟器(350)在帧缓冲器(361、362等)中存储以这种方式识别出的新解码的帧(351)。
编码帧(341)和MMCO/RPS信息(342)在临时编码数据区域(370)中缓冲。在编码数据区域(370)内聚集的编码数据包含用于一个或多个图片的编码数据作为元素编码视频比特流的语法的一部分。在编码数据区域(370)中聚集的编码数据还可能包括与编码视频数据相关的媒体元数据(例如,作为在一个或多个补充增强信息(“SEI”)消息或视频可用信息(“VUI”)消息中的一个或多个参数)。
通过信道编码器(380)对来自临时编码数据区域(370)的聚集数据(371)进行处理。信道编码器(380)可以分封化和/或多路复用聚集的数据以进行传输或存储为媒体流(例如,根据媒体程序流或传输流格式,例如,ITU-T H.222.0|ISO/IEC 13818-1或互联网实时传输协议格式,例如IETFRFC 3550),在该情况下,信道编码器(380)可以添加语法元素作为媒体传输流的语法的一部分。或者,信道编码器(380)可以组织聚集数据用于存储为文件(例如,根据媒体容器格式,例如,ISO/IEC 14496-12),在该情况下,信道编码器(380)可以添加语法元素作为媒体存储文件的语法的一部分。或者更一般地,信道编码器(380)可以实现一个或多个媒体系统多路复用协议或传输协议,在该情况下,信道编码器(380)可以添加语法元素作为协议的语法的一部分。信道编码器(380)向信道(390)提供输出,其表示存储、通信连接或用于输出的另一信道。信道编码器(380)或信道(390)还可以包括其它元件(未示出),例如,用于前向纠错(“FEC”)编码和模拟信号调制。
IV.示例性视频编码器
图4a和4b是可以结合其实现一些所述实施例的广义视频编码器(400)的框图。编码器(400)接收包括当前图片的视频图片序列作为输入视频信号(405),并在编码视频比特流(495)中产生编码数据作为输出。
编码器(400)是基于块的,且使用依赖于实现方式的块格式。块还可以在不同阶段被细分,例如,在预测、频率变换和/或熵编码阶段。例如,图片可以被划分为64x64块、32x32块或16x16块,其反过来可以划分为较小块的样本值用于编码和解码。在针对HEVC标准的编码的实现方式中,编码器将图片分割为CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
编码器(400)利用图片内编码和/或图片间编码来压缩图片。编码器(400)的许多部件用于图片内编码和图片间编码。通过这些部件执行的准确操作可以依赖于被压缩的信息类型而变化。
瓦片模块(410)可选地将图片分割为相同尺寸或不同尺寸的多个瓦片。例如,瓦片模块(410)沿着瓦片行和瓦片列分割图片,借助图片边界,所述瓦片行和瓦片列定义图片内瓦片的水平和垂直边界,其中每个瓦片是矩形区域。
通用编码控制件(420)从编码器(400)的各个模块接收用于输入视频信号(405)的图片以及反馈(未示出)。总之,通用编码控制件(420)向其它模块(例如,瓦片模块(410)、变换器/缩放器/量化器(430)、缩放器/逆变换器(435)、图片内估计器(440)、运动估计器(450)和内/间切换)提供控制信号(未示出),以在编码期间设置和改变编码参数。特别地,结合运动估计器(450),通用编码控制件(420)可以在编码期间确定MV精度。通用编码控制件(420)还可以在编码期间评估中间结果,例如,执行率失真分析。通用编码控制件(420)产生指示在编码期间做出的决策的通用控制数据(422),从而对应的解码器可以做出一致决策。向标题格式化器/熵编码器(490)提供通用控制数据(422)。
如果利用图片间预测来预测当前图片,则运动估计器(450)估计输入视频信号(405)的当前图片(相对一个或多个参考图片)的样本值的块运动。如本文所述,运动估计器(450)可以选择运动向量(“MV”)精度(例如,整数样本MV精度、1/2样本MV精度或1/4样本MV精度),然后在运动估计期间使用所选的MV精度。解码图片缓冲器(470)缓冲一个或多个重构的先前编码的图片以用作参考图片。当使用多个参考图片时,多个参考图片可以来自于不同时间方向或相同时间方向。运动估计器(450)产生边带信息运动数据(452),例如,MV数据、合并模式索引值和参考图片选择数据、以及表示所选的MV精度的边带信息。将包括运动数据(452)的边带信息提供给标题格式化器/熵编码器(490)以及运动补偿器(455)。
运动补偿器(455)将具有所选的MV精度的MV值应用到来自解码图片缓冲器(470)的重构的参考图片。当图片的色度数据具有与亮度数据相同的分辨率时(例如,当格式是YUV 4:4:4或RGB 4:4:4格式时),应用于色度块的MV值可以与应用于亮度块的MV值相同。在另一方面,当图片的色度数据具有相对于亮度数据减少的分辨率时(例如,当格式是YUV4:2:0格式或YUV 4:2:2格式时),应用于色度块上的MV值可以是按比例缩小的MV值,并可以对其化整,以调节色度分辨率的差(例如,对于YUV4:2:0格式,通过用2除MV值的垂直和水平分量,以及对其舍位或化整到用于色度运动补偿处理的精度;对于YUV 4:2:2格式,通过用2除MV值的水平分量,以及对其舍位或化整到用于色度运动补偿处理的精度)。运动补偿器(455)针对当前图片产生运动补偿预测。
在编码器(400)的分开的路径中,图片内估计器(440)确定如何执行输入视频信号(405)的当前图片的样本值的块的图片内预测。可以利用图片内编码对当前图片进行整体或局部编码。利用当前图片的重构(438)的值,对于空间内预测,图片内估计器(440)确定如何根据当前图片的邻近的先前重构的样本值来空间上预测当前图片的当前块的样本值。或者,对于利用BV值的BC内预测,图片内估计器(440)估计当前块的样本值到当前图片内的不同候选区域的位移。
图片内估计器(440)产生边带信息内预测数据(442),例如,指示内预测是否使用空间预测或BC内预测(例如,每个块内标记值)、预测模式方向(对于空间内预测)和BV值(对于BC内预测)的信息。将内预测数据(442)提供到标题格式化器/熵编码器(490)以及图片内预测器(445)。
根据内预测数据(442),图片内预测器(445)根据当前图片的邻近的先前重构的样本值在空间上预测当前图片的当前块的样本值。或者,对于BC内预测,图片内预测器(445)利用内预测区域的先前重构的样本值预测当前块的样本值,其由当前块的BV值指示。
内/间切换选择运动补偿预测或图片内预测的值用作给定块的预测(458)。当没有略过残差编码时,在预测(458)的块与输入视频信号(405)的原始当前图片的对应部分之间的差(如果有的话)提供残差值(418)。在重构当前图片期间,当已经对残差值进行编码/信号传递时,组合重构的残差值与预测(458)以从视频信号(405)产生原始内容的重构(438)。然而,在有损压缩中,仍会从视频信号(405)中丢失一些信息。
在变换器/缩放器/量化器(430)中,当没有略过频率变换时,频率变换器将空间域视频数据转换为频域(即,频谱、变换)数据。对于基于块的视频编码,频率变换器对预测残差数据的块(或当预测(458)是空时对样本值数据)应用离散余弦变换(“DCT”)、其整数近似、或另一类型的前向块变换(例如,离散正弦变换或其整数近似),产生频率变换系数的块。编码器(400)还能够指示略过这种变换步骤。缩放器/量化器缩放且量化变换系数。例如,量化器将死区标量量化应用到具有基于逐帧、逐瓦片、逐切片、逐块、专用频率或其它而变化的量化步长尺寸的频域数据上。将量化变换系数数据(432)提供给标题格式化器/熵编码器(490)。如果略过频率变换,则缩放器/量化器可以缩放和量化预测残余数据的块(或者当预测(458)为空时的样本值数据),产生提供给标题格式化器/熵编码器(490)的量化值。
在缩放器/逆变换器(435)中,缩放器/逆量化器对量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,产生重构预测残差值或样本值的块。如果已经略过了变换阶段,则也略过逆频率变换。在这种情况下,缩放器/逆量化器可以对预测残差数据(或样本值数据)的块执行逆缩放和逆量化,产生重构值。当已经对残差值编码/信号传递时,编码器(400)组合重构的残差值与预测值(458)(例如,运动补偿预测值,图片内预测值)以形成重构(438)。当尚未对残差值编码/信号传递时,编码器(400)使用预测值(458)作为重构(438)。
对于图片内预测,可以将重构(438)的值馈送回图片内估计器(440)和图片内预测器(445)。另外,重构(438)的值可以用于后续图片的运动补偿预测。重构(438)的值可以进一步被过滤。针对给定的视频信号(405)的图片,过滤控制件(460)确定如何在重构(438)的值上执行去块过滤和SAO过滤。过滤控制件(460)产生过滤控制数据(462),该数据被提供给标题格式化器/熵编码器(490)和合并器/过滤器(465)。
在合并器/过滤器(465)中,编码器(400)将来自不同瓦片的内容合并到重构版本的图片中。编码器(400)根据过滤控制数据(462)选择性执行去块过滤和SAO过滤,从而适应地平滑跨帧中的边界的不连续性。可以替代地或额外的应用其它过滤(例如,未示出的去环过滤或ALF)。瓦片边界可以取决于编码器(400)的设置而选择性过滤或根本不过滤,并且编码器(400)可以提供编码比特流中的语法以指示是否应用这种过滤。解码图片缓冲器(470)缓冲重构的当前图片以用于后续的运动补偿预测。
标题格式化器/熵编码器(490)对通用控制数据(422)、量化变换系数数据(432),内预测数据(422)、运动数据(452),以及过滤控制数据(462)格式化和/或熵编码。可以对MV值进行预测性编码。例如,标题格式化器/熵编码器(490)使用指数哥伦布编码用于在MV预测之后对各种语法元素进行熵编码,例如,差分MV值的语法元素。
标题格式化器/熵编码器(490)提供编码视频比特流(495)中的编码数据。编码视频比特流(495)的格式可以是HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264)或其它格式的变型或扩展。
取决于期望压缩的实现方式和类型,可以添加、省略编码器的模块,将其分割成多个模块,使其与其它模块组合和/或以类似模块进行替代。在替代实施例中,具有不同模块的编码器和/或模块的其它配置执行一个或多个所描述的技术。编码器的具体实施例通常使用变型或补充版本的编码器(400)。在编码器(400)内的模块之间示出的关系指示在编码器中的信息的一般流;为了简便的原因未示出其它关系。
V.在编码期间选择MV精度
该部分表示用于在编码期间选择运动向量(“MV”)精度的各种方法。这些方法可以便于压缩,其在编码和解码的率失真性能和/或计算效率方面是有效的。
当对任意类型的视频编码时可以应用本文所描述的用于选择MV精度的方法。然而,特别地,当编码某些人工创建的视频内容(例如,屏幕捕捉内容)时,如本文所描述的选择MV精度可以改善性能。
A.视频类型
通常,屏幕捕捉视频(也称作屏幕内容视频或屏幕捕捉内容)表示呈现生成计算机屏幕或其它显示器的内容的处理的图形的输出。这与自然视频形成对比,自然视频指的是从真实世界对象的摄像机传感器视图捕捉到的视频图像,或具有类似特性的视频。屏幕捕捉视频通常包含所呈现的文本、计算机图形、动画生成内容或从计算机显示器的呈现过程的输出捕捉到的其它类似类型的内容,这与(或除了)仅摄像机捕捉视频内容相反。编码/解码屏幕捕捉内容的共同场景包括远程桌面会议和在自然视频或其它“混合内容”视频上的图片或文本覆盖的编码/解码。本文描述的若干创新适应于编码屏幕捕捉视频或其它人工创造视频。这些创新还可以用于自然视频,但是可能不一样有效。本文描述的其它创新在编码自然视频或人工创造视频方面是有效的。
图5示出了具有可以为屏幕捕捉提供输入的内容的计算机桌面环境(510)。例如,屏幕捕捉视频可以表示整个计算机桌面(511)的一系列图像。或者,屏幕捕捉视频可以表示计算机桌面环境的窗口之一的一些列图像,例如,包括游戏内容的app窗口(513),具有网页内容的浏览器窗口(512)或者具有文字处理器内容的窗口(514)。
与利用视频摄像机捕捉到的自然视频内容相比,如计算机生成的、人工创造的视频内容一样,屏幕捕捉内容趋向于具有相对少的离散样本值。例如,屏幕捕捉内容的区域通常包括单一均匀颜色,而自然视频内容中的区域更可能包括逐渐变换的颜色。另外,屏幕捕捉内容通常包括独特结构(例如,图形、文本特性),其逐帧准确地重复,即使内容在空间上可能被替代(例如,由于滚动)。屏幕捕捉内容通常以具有高色度采样分辨率的格式(例如,YUV 4:4:4或RGB 4:4:4)编码,但是其还可以以具有较低色度采样分辨率的格式(例如,YUV 4:2:0,YUV 4:2:2)编码。
图6示出了混合内容视频(620),其包括一些自然视频(621)和一些人工创造的视频内容。人工创造的视频内容包括在自然视频(621)和在自然视频(621)下运行的收报机(ticker)(623)旁边的图形(622)。类似于图5所示的屏幕捕捉内容,在图6中示出的人工创造的视频内容倾向于具有相对少的离散样本值。其还倾向于具有(例如,由于滚动)逐帧准确重复的独特结构(例如,图形、文本特性)。
可以从显示设备的输出缓冲器中或从一个或多个存储帧的缓冲器中周期性读取屏幕捕捉视频或混合内容视频。或者,可以从屏幕捕捉模块(其可以从显示设备的输出缓冲器中周期性地读取值,从操作系统模块拦截显示命令,或者以其它方式捕捉待显示的样本值)提供屏幕捕捉视频。屏幕捕捉视频或混合内容视频可以来自“现场”流或来自在存储设备中先前记录的流。
B.不同的MV精度
在多个编码场景中,当编码屏幕捕捉视频或其它人工创造的视频内容时,大部分MV值表示整数样本空间位移,并且非常少的MV值表示分数样本空间位移。这提供了机会来减少MV精度以改善整体性能。
图7a示出了带有具有整数样本空间位移的MV(720)的运动补偿。MV(720)指示向左的四个样本以及一个向上样本的空间位移,相对于当前块的参考图片中的共同定位位置(710)。例如,对于在当前图片中位置(64,96)处的4x4当前块,MV(720)表示4x4预测区域(730),其在参考图片上的位置是(60,95)。预测区域(730)包括在参考图片中整数样本位置处的重构的样本值。编码器或解码器不需要执行插值来确定预测区域(730)的值。
图7b示出了带有具有分数样本空间位移的MV(721)的运动补偿。MV(721)指示向左的3.75个样本和向上的0.5个样本的空间位移,相对于当前块在参考图片中共同定位的位置(710)。例如,对于在当前图片中位置(64,96)处的4x4当前块,MV(721)指示4x4预测区域(731),其在参考图片上的位置是(60.25,95.5)。预测区域(731)包括在参考图片中分数样本位置处的插值样本值。编码器或解码器执行插值来确定预测区域(731)的样本值。当允许分数样本空间位移时,存在可以与当前块匹配的多个候选预测区域,并因此运动补偿预测的质量通常会改善至少一些类型的视频内容(例如,自然视频)。
当MV精度对于视频的单位是整数样本精度时,在该单位中的块的所有的MV值表示整数样本空间位移。当MV精度对于视频的单位是分数样本精度时,在该单位中的块的MV值可以表示分数样本空间位移或整数样本空间位移。也就是,当MV精度对视频的单位是分数样本精度时,在该单位中块的一些MV值可以表示分数样本空间位移,而在该单位中块的其它MV值指示整数样本空间位移。
当使用运动估计和运动补偿对块进行编码时,编码器通常计算在块的样本值及其运动补偿预测之间的逐样本差(也称作残差值或误差值)。然后对残差值进行编码。对于残差值,编码效率取决于残差值的复杂度以及引入多少损失或失真作为压缩过程的一部分。通常,良好的运动补偿预测密切近似块,从而残差值是可以有效编码的小幅度差。在另一方面,不良的运动补偿预测通常产生包括较大幅度值的残差值,其更难以有效编码。编码器通常花费大比例的编码时间执行运动估计,试图找到良好的匹配,并因此改善率失真性能。
当编码解码器使用具有整数样本MV精度的MV值时,编码器和解码器不需要针对运动补偿在参考图片的样本值之间执行插值操作,因为MV值指示整数样本空间位移。当编码解码器使用具有分数样本MV精度的MV值时,编码器和解码器可以针对运动补偿在参考图片的样本值之间执行插值操作(至少对于指示分数样本空间位移的MV值增加了计算复杂度),但是相对于整数样本MV精度,运动补偿预测趋向于更密切近似块(导致具有较小有效值的残差值)。
C.MV值的表示
通常利用含义取决于相关联的MV精度的整数值来表示MV值。对于整数样本MV精度,例如,整数值1指示1个样本的空间位移,整数值2表示2个样本的空间位移,等等。对于1/4样本MV精度,例如,整数值1指示0.25个样本的空间位移。整数值2、3、4和5分别指示0.5、0.75、1.0和1.25个样本的空间位移。不管MV精度,整数值可以指示空间位移的幅度,并且分开的标志值可以指示位移是正的还是负的。可以利用两个整数值表示给定的MV值的水平MV分量和垂直MV分量。因此,表示MV值的两个整数值的含义取决于MV精度。例如,对于具有2样本水平位移以及没有垂直位移的MV值,如果MV精度是1/4样本MV精度,则MV值表示为(8,0)。然而,如果MV精度是整数样本MV精度,则MV值表示为(2,0)。
在编码视频数据的比特流中的MV值通常是熵编码的(例如,基于MV分量方式)。还可以相对于预测MV值不同地对MV值进行编码(例如,基于MV分量方式)。在许多情况下,MV值等于预测的MV值,从而差分MV值为零,其可以被非常有效地编码。可以利用指数哥伦布编码、上下文自适应二进制算术编码或熵编码的另一形式,对差分MV值(或在不使用MV预测时的MV值)进行熵编码。虽然在MV值(或差分MV值)和编码比特之间的确切关系取决于所使用的熵编码形式,但一般而言,较小的值会被更有效地编码(也就是,利用较少的比特),这是因为它们更普通,而较大的值会被效率较低地编码(也就是,利用更多的比特),这是因为它们较不常见。
D.自适应MV精度—介绍
为了总结先前的三个部分,使用具有整数样本MV精度的MV值趋向于降低与用信号传递MV值相关联的比特率,并降低编码和解码的计算复杂度(通过避免在参考图片中分数样本位置处样本值的插值),但是可能降低运动补偿预测的质量,并因此至少对于一些类型的视频内容,增加残差值的幅度。在另一方面,使用具有分数样本MV精度的MV值趋向于增加与用信号传递MV值相关联的比特率,并增加编码和解码的计算复杂度(通过包括在参考图片中分数样本位置处的样本值的插值),但是可能改善运动补偿预测的质量,并至少对于一些类型的视频内容,减小残差值的幅度。通常,计算复杂度、用信号传递MV值的比特率以及运动补偿预测的质量随着MV精度增加而增加(例如,从整数样本到1/2样本,或从1/2样本到1/4样本),直到收益递减点。同时,虽然增加的MV精度趋向于增加用信号传递MV值所需的比特率,但在编码自然内容时,运动补偿预测的质量中的相关联改善可能减少发送残差值的足够近似所需的比特率,并因此减少用足够图片质量编码视频内容所需的总比特率。
当对屏幕捕捉视频或其它人工创造的视频内容进行编码时,分数样本MV精度的添加成本(在比特率和计算复杂度方面)可能是不公平的。例如,如果大部分MV值表示整数样本空间位移,而只有非常少的MV值表示分数样本空间位移,则不能保证分数样本MV精度的添加成本。编码器可以在运动估计期间略过搜索分数样本位置(并略过插值操作以确定分数样本位置处的样本值)。对于这种内容,通过使用具有整数样本MV精度的MV值,可以减少比特率和计算复杂度,而没有对运动补偿预测质量的显著惩罚。
由于分数样本MV精度对于其它类型的视频内容(例如,摄像机捕捉到的自然视频)可能仍是有用的,所以编码器和解码器可以适于在MV精度之间切换。例如,编码器和解码器可以对于屏幕捕捉视频使用整数样本MV精度,但是对于自然视频使用分数样本MV精度(例如,1/4样本MV精度)。在下一段中描述在选择MV精度时编码器可以遵从的方法。编码器可以利用比特流中的一个或多个语法元素向解码器用信号传递所选择的MV精度。
在用信号传递MV精度的一种方法中,当启用自适应选择MV精度时,编码器逐切片选择MV精度。在序列参数集(“SPS”)、图片参数集(“PPS”)或其它语法结构中的标记值指示是否启用MV精度的自适应选择。如果是,则在给定切片的切片标题中的一个或多个语法元素指示对所述切片的块的所选择的MV精度。例如,标记值0指示1/4样本MV精度,标记值1指示整数样本MV精度。
在用信号传递MV精度的另一方法中,编码器逐图片或逐切片选择MV精度。PPS中的语法元素指示三种MV精度模式之一:(0)对于与PPS相关联的图片的切片的MV值的1/4样本MV精度,(1)对于与PPS相关联的图片的切片的MV值的整数样本MV精度,或(2)取决于每切片标题用信号传递的标记值的切片自适应MV精度,其中在切片的切片标题中的标记值可以针对切片的MV值指示1/4样本MV精度或整数样本MV精度。对于在一个实现方式中关于该方法的额外细节,参见JCTVC-P0277。
在用信号传递MV精度的另一方法中,当启用MV精度的自适应选择时,编码器逐CU选择MV精度。对于给定CU的结构中的一个或多个语法元素指示所述CU的块的所选择的MV精度。例如,在CU的CU语法结构中的标记值表示对于与CU相关联的所有PU的MV值是具有整数样本MV精度还是1/4样本MV精度。对于在一个实现方式中关于该方法的额外细节,参见JCTVC-P0283。
在这些方法的任一个中,编码器和解码器可以针对水平和垂直MV分量使用不同的MV精度。当对已经水平或垂直缩放的屏幕捕捉视频编码(例如,利用在未缩放维度中的整数样本MV精度,以及利用在缩放维度中的分数样本MV精度)时,这可能是有用的。在一些实现方式中,如果不能单独通过调整QP值而实现率控制,则编码器可以水平或垂直调整屏幕捕捉视频的大小以减小比特率,然后对调整大小后的视频进行编码。在解码器侧,在解码后将视频缩放回其原始维度。编码器可以用信号传递水平MV分量的MV精度(例如,利用第一标记值或语法元素)并还可以用信号传递垂直MV分量的MV精度(例如,利用第二标记值或语法元素)到解码器。
更一般地,当启用MV精度的自适应选择时,编码器以某种方式选择MV精度并用信号传递所选的MV精度。例如,在SPS、PPS或其它语法结构中的标记值可以表示是否启用自适应选择MV精度。当启用自适应MV精度时,在序列-层语法、图片组-层语法(“GOP-层语法”)、图片-层语法、切片-层语法、瓦片-层语法、块-层语法或其它语法结构中的一个或多个语法元素可以指示MV值的所选的MV精度。或者,在序列-层语法、GOP-层语法、图片-层语法、切片-标题-层语法、切片-数据-层语法、瓦片-层语法、块-层语法或其它语法结构中的一个或多个语法元素可以指示不同MV分量的MV精度。当存在两个可用MV精度时,标记值可以指示在两个MV精度之间的选择。当存在更多可用MV精度时,整数值可以指示在这些MV精度之间的选择。
除了修改用信号传递/解析指示所选MV精度的语法元素外,可以修改解码以改变取决于所选MV精度如何解释用信号传递的MV值。如何编码和重构MV值的细节可以取决于MV精度而变化。例如,当MV精度是整数样本精度时,可以对预测到的MV值化整为最接近的整数,并且差分MV值可以指示整数样本偏移。或者,当MV精度是1/4样本精度时,可以对预测的MV值化整到最接近的1/4样本偏移,并且差分MV值可以指示1/4样本偏移。或者,可以用某种其它方式用信号传递MV值。当MV值具有整数样本MV精度且视频使用4:2:2或4:2:0色度采样时,可以通过缩放等导出色度MV值,这可能导致色度的1/2样本位移。或者,可以将色度MV值化整为整数值。
E.选择MV精度的方法
当在视频编码期间自适应MV精度时,编码器针对视频的单位选择MV精度。编码器可以基于来自适配源的线索(hint)选择MV精度来使用(参见以下的方法1)。例如,视频源可以指示视频是屏幕捕捉内容或自然视频(由摄像机捕捉到的)。或者编码器可以基于对各种MV精度的详尽评估来选择MV精度(参见以下的方法2)。或者,编码器可以基于分析来自先前单元的统计数据和/或正在编码的当前单位的统计数据来选择MV精度(参见下文的方法3-4)。
对选择MV精度的一些方法进行自适应于屏幕捕捉编码场景。当编码任意类型的视频内容时更一般地应用其它方法。
在本段描述的一些例子中,编码器在使用1/4样本MV精度和整数样本MV精度之间进行选择。更一般地,编码器在多个可用MV精度之间进行选择,其可以包括整数样本MV精度、1/2样本MV精度、1/4样本MV精度和/或另一MV精度。
当编码器针对视频的单位选择MV精度时,视频的单位可以是序列、GOP、图片、切片、瓦片、CU、PU、其它块或其它类型的视频的单位。取决于在复杂度和灵活度之间期望的权衡,以高度局部基础(例如,逐CU)、较大的逐区域(例如,逐瓦片或逐切片)、整个图片基础、或者更全局的基础(例如,每个编码会话、每个序列、每个GOP、或检测到的场景变化之间的每个图片序列)选择MV精度可能是合适的。
1.使用来自应用、操作系统或视频源的线索的方法
编码器可以基于由应用、操作系统或视频源用信号传递的线索来选择MV精度。例如,线索可以指示将被编码的视频内容由特定应用呈现,所述应用例如是文字处理器、电子表单应用或网络浏览器(不具有嵌入式视频区域,其可以是自然视频内容)。利用这种应用呈现可以趋向于仅产生内容的整数样本空间位移。基于这种线索,编码器可以选择整数样本MV精度。对于以文字处理器、电子表单应用、网络浏览器或不经常呈现自然视频内容的其它应用呈现的内容,整数样本MV精度可能优于分数样本MV精度。(但是当已经对视频调整大小时,分数样本MV精度可能是更可取的。)
或者,线索可以指示通过屏幕捕捉模块或者通常输送人工创造的视频内容的其它视频源输送视频内容。对于这种内容,整数样本MV精度可能优于分数样本MV精度,从而编码器选择整数样本MV精度。(但是当已经对视频调整大小时,分数样本MV精度可能是更可取的。)
在另一方面,如果线索指示视频内容是由摄像机、DVD或其它磁盘或调谐卡输送的或者由视频播放器呈现的,则编码器可以选择分数样本MV精度。对于这种内容,分数样本MV精度可能优于整数样本MV精度。
线索可以应用于编码会话、一系列帧、单个视频帧或部分视频帧(例如,对应于与应用相关联的窗口的区域)。
在一些情况下,编码器可能不接收或可能不能解释视频源、操作系统或应用提供的关于视频内容本质的线索。或者,线索可能是不正确的或令人误解的(例如,对于包括自然视频内容和人工创造的视频内容的混合内容视频,或对于已经调整大小的视频)。在这种情况下,编码器可以使用另一方法确定应该选择哪个MV精度。
2.强力编码方法
在选择MV精度的另一组方法中,编码器利用不同的MV精度对视频的单位多次进行编码(例如,一次利用整数采样MV精度,一次利用1/4样本MV精度)。编码器选择提供最佳性能的MV精度,并在对所述单位进行编码用于输出时使用所选的MV精度。视频的单位可以是块、PU、CU、切片、瓦片、图片、GOP、序列或其它类型的视频的单位。通常,编码器以这种方法执行多次编码。
为了评估哪个MV精度提供了最佳性能,编码器可以在编码单位期间使用不同MV精度时,确定率失真成本,并选择具有最低率失真成本的选项。率失真成本具有失真成本D和比特率成本R,其具有因子λ(通常称作拉格朗日乘子),该因子相对失真成本,对比特率成本加权(D+λR)或反之亦然(R+λD)。比特率成本可以是估计的或实际的比特率成本。通常,失真成本基于对原始样本和重构样本的比较。可以将失真成本测量为绝对差的和(“SAD”)、绝对Hadamard变换差的和(“SAHD”)或绝对变换差的其它和(“SATD”)、平方误差的和(“SSE”)、均方误差(“MSE”)、均值方差或另一失真基准。因子λ可以在编码期间变化(例如,当量化步长较大时增加比特率成本的相对权重)。率失真成本通常提供对不同MV精度选项性能的最准确的评估,但还具有最高的计算复杂度。
编码器可以将率失真成本函数的一个或多个项改变为使率失真分析朝向整数样本MV精度选项偏置。例如,当利用率失真分析在多个MV精度之间进行决策以确定视频的单位的MV精度时,通过缩放失真成本,对失真成本增加惩罚,缩放比特率成本,向比特率成本增加惩罚和/或调整拉格朗日乘子因子,使率失真分析朝向整数样本MV精度偏置。当评估分数样本MV精度时,编码器可以按比例放大失真成本(通过大于1的因子),按比例放大比特率成本(通过大于1的因子),增加失真惩罚,增加比特率惩罚和/或使用较大的拉格朗日乘子因子。或者,当评估整数样本MV精度时,编码器可以按比例缩小失真成本(通过小于1的因子),按比例缩小比特率成本(通过小于1的因子),和/或使用较小的拉格朗日乘子因子。
编码器可以在编码期间改变朝向或背离整数样本MV精度的偏置程度。例如,编码器可以取决于整数样本MV值可能更适合编码视频内容(例如,当视频内容可能是人工创造的内容时增加朝向整数样本MV精度的偏置)的置信度而朝向整数样本MV精度调整偏置。或者,编码器可以取决于编码和/或解码的计算能力而朝向整数样本MV精度调整偏置(例如,当可用计算能力较低时增加朝向整数样本MV精度的偏置)。
替代地,编码器可以使用另一方法来评估哪个MV精度提供最佳性能。例如,编码器针对给定的量化步长测量哪个MV精度导致最低比特的编码数据。或者,编码器仅对使用不同MV精度的编码的失真进行评估。或者,编码器使用采样器测量,例如,与整数样本MV精度相比分数样本MV精度的失真减少益处,其可以最够简单以确定单次编码。例如,当使用分数样本MV精度时,与使用整数样本MV精度时相比,编码器检查失真减少的量(按照SAD、SATD、TSE、MSE或其它失真基准)。
强力编码方法可以是计算密集的。与使用固定MV精度编码相比,它们可能涉及大量额外计算、额外存储器存储以及额外的存储器读取和写入操作。
3.使用内容分析的方法
在选择MV精度的另一方法集中,编码器基于对输入视频内容和/或编码视频内容的分析针对视频的单位选择MV精度。视频的单位可以是块、PB、PU、CU、CTU、子宏块分割、宏块、切片、瓦片、图片、GOP、序列或其它类型的视频的单位。
图8示出了在编码期间自适应MV精度的技术(800)。可以通过编码器执行技术(800),所述编码器例如参考图3或图4a和4b所描述的或者通过其它编码器。根据技术(800),在对视频编码期间,编码器从视频的单位的多个MV精度确定MV精度。多个MV精度可以包括一个或多个分数样本MV精度以及整数样本MV精度。例如,多个MV精度可以包括整数样本MV精度和1/4样本MV精度。或者,多个MV精度可以包括整数样本MV精度、1/2样本MV精度和1/4样本MV精度。
具体地,当对视频的单位进行编码时,编码器确定(810)是否改变MV精度。在编码开始时,编码器可以根据默认值初始设置MV精度,或者就像改变MV精度一样进行。对于视频的后面的单位,编码器可以使用当前MV精度(其用于一个或多个先前编码的单位)或改变MV精度。例如,编码器可以在发生定义事件时(例如,在对阈值数量的单位进行编码之后,在场景变化之后,在确定已经改变了视频类型之后)决定改变MV精度。
为了改变MV精度,编码器收集(820)关于视频的信息。通常,所收集到的信息可以是输入视频的特性或经编码视频的特性。所收集到的信息可以涉及视频的正在被编码的当前单位和/或涉及先前编码的单位。(当所收集到的信息涉及视频的一个或多个先前编码的单位时,可以在编码先前单位之前、期间或之后收集(820)这种信息。该收集(820)不同于图8所示的定时,而且不管关于改变MV精度的决策(810)而发生)。编码器然后至少部分地基于所收集到的信息选择(830)针对视频的单位的MV精度。
作为一个例子,编码器可以收集针对当前单位的样本值。少量离散样本值的存在趋向于表示屏幕捕捉内容,并因此暗示应该选择整数样本MV精度。在另一方面,大量离散样本值的存在倾向于指示自然视频,并因此暗示应该选择分数样本MV精度。可以将样本值组织为直方图。可以从YUV颜色空间中的仅亮度(Y)样本、从YUV颜色空间中的亮度和色度(U,V)样本、从RGB颜色空间中的R、G和B样本或从RGB颜色空间中的仅G(或R或B)样本收集样本值。例如,当选择MV精度时,编码器在所收集到的样本值中确定不同的样本值的计数。编码器比较该计数与阈值。如果计数低于阈值,则编码器选择整数样本MV精度。如果计数高于阈值,则编码器选择分数样本MV精度。可以利用任一选项处理边界条件(计数等于阈值),取决于实现方式。或者,编码器考虑来自所收集到的样本值的统计。例如,编码器确定最常见的收集样本值x是否占样本值的多于y%。如果是,则编码器选择整数样本MV精度;否则,编码器选择分数样本MV精度。x和y的值取决于实现方式。x的值可以是10或者一些其它计数。y的值可以是80、90或一些其它小于100的百分比。
作为另一例子,编码器可以针对用各自的MV精度编码的当前单位的块收集失真测量。例如,当使用分数样本MV精度时,与整数样本MV精度相比,编码器记录失真中的改善(减小)。当选择MV精度时,编码器确定失真的减小是否证明MV精度的增加。
再如,编码器可以收集针对一个或多个先前单位的MV值(具有分数样本MV精度)。可以根据其分数部分的值组织所收集的MV值,例如,对于1/4样本MV精度MV值,在直方图中对于分数部分为0的MV值的二进数(bin),对于分数部分为0.25的MV值的二进数,对于分数部分为0.5的MV值的二进数,以及对于分数部分为0.75的MV值的二进数。在下一段中将描述该方法的低复杂度变型。
例如,编码器可以收集关于使用分数样本MV精度编码的块的MV数据(差分MV值)的编码比特的计数的信息。差分MV值的低平均数量的比特指示常规(可预测)运动,并且在整数样本MV精度合适时更常见。用于差分MV值的高平均数比特在分数样本MV精度合适时更常见。当选择MV精度时,编码器在差分MV值的编码比特的计数中测量比特的平均(或中间)数。编码器比较测量与阈值。如果测量低于阈值,则编码器选择整数样本MV精度。如果测量高于阈值,则编码器选择分数样本MV精度。可以使用任意选项处理边界条件(测量等于阈值),取决于实现方式。
再如,当编码单位时,编码器评估单位的每个块(例如,PU)的多个MV精度,并且收集每个块指示哪个MV精度为所述块提供最佳性能的信息。当使用整数样本MV精度对块进行编码时,编码器可以确定率失真成本(例如,D+λR);并还在使用分数样本MV精度对块进行编码时,确定率失真成本(例如,D+λR)。编码器确定有多少次多个MV精度中的每个对单位中的各个块是最佳的,并选择具有最大计数的MV精度。例如,对于图片中的每个块,当使用整数样本MV精度对块进行编码时,编码器确定率失真成本;并还在使用1/4样本MV精度对块进行编码时,确定率失真成本。编码器对次数整数样本MV精度计数更好,并且对次数1/4样本MV精度计数更好,然后挑选两者中较高者。替代地,编码器确定对多少次整数样本MV精度计数对于单位的块最佳,然后仅在计数高于单位中块的数量的阈值百分比时选择整数样本MV精度。在一些实现方式中,编码器考虑具有MV任意值的块。在其它实现方式中,编码器仅考虑具有非零值MV的块。可以对给定单位的块执行多个MV精度的该块方式的评估,以便选择针对一个或多个后续单位的MV精度,而不管用于给定单位的MV精度模式。或者,可以针对给定单位执行多个MV精度的块方式评估,以便为给定单位选择MV精度。
替代地,编码器使用另一方法来收集信息并至少部分地基于所选的信息选择MV精度。
返回图8,不管MV精度是否变化,编码器使用所选的MV精度对单位进行编码(840)。在视频的单位内的块(例如,PU、宏块或其它块)的MV值具有所选的MV精度。编码器例如以比特流输出用于当前单位的编码数据。编码数据可以包括指示所选的MV精度的语法元素。
编码器决定(850)是否继续下一单位。如果是,则编码器决定(810)是否改变针对下一单位的MV精度。因此,可以选择针对每个单位(例如,每段、每GOP、每图片、每切片、每CTU、每CU、每PU、每PB、每宏块、每子宏块分割)的MV精度。或者,为了减小复杂度,单位的MV精度可以不时变化(例如,周期性或当发生预定事件时),然后对于一个或多个后续单位重复。
当编码器逐图片使用相同的瓦片模式时,编码器可以逐图片重复每瓦片MV精度。逐图片共同定位的瓦片可以使用相同的MV精度。类似地,逐图片共同定位的切片可以使用相同的MV精度。例如,假设视频描绘了计算机桌面,并且部分桌面具有显示自然视频内容的窗口。可以逐图片在桌面的区域内使用分数样本MV精度,而显示文本或其它呈现内容的其它区域使用整数样本MV精度编码。
在该方法集中,编码器可以使用单次编码。对于正在编码的视频的当前单位,用于当前单位的所选的MV精度至少部分地取决于从视频的一个或多个先前单位所收集到的信息(以编码顺序,其还被称作解码顺序或比特流顺序,而不是输入顺序,其还被称作时间顺序、输出顺序或显示顺序)。
替代地,在该方法集中,编码器可以利用短的预见性窗口使用多次编码或解码(有时称作1.5次编码)。对于正在编码的视频的当前单位,所选的MV精度至少部分地取决于从当前单位收集到的信息。选择的针对当前单位的MV精度还可以至少部分地取决于从视频的一个或多个先前单位收集到的信息(以编码顺序而非输入顺序)。
在该方法集中,编码器可以至少部分地基于整数样本MV精度是合适的置信度,调整朝向或背离整数样本MV精度的偏置量。编码器还可以至少部分地基于编码和/或解码的计算能力(如果较少计算能力可用,则优选整数样本MV精度来减少计算复杂度),调整朝向或背离整数样本MV精度的偏置量。例如,为了优选整数样本MV精度,编码器可以调整在比较操作中使用的阈值,以使得更可能选择整数样本MV精度。
在该方法集中,所选的MV精度可以用于视频的单位内的块的MV值的水平MV分量和/或垂直MV分量,其中允许水平MV分量和垂直MV分量具有不同的MV精度。或者,所选的MV精度可以用于视频的单位内的块的MV值的水平MV分量和垂直MV分量两者,其中水平MV分量和垂直MV分量具有相同的MV精度。
在该方法集中,(例如,比特流中的)编码视频包括指示单位的所选MV精度的一个或多个语法元素。替代地,编码视频可能缺乏指示该单位的所选MV精度的任何语法元素(参见下文,在关于非规范方法的段中)。例如,即使比特流支持用新号传递具有分数样本MV精度的MV值,编码器可以将视频的单位的运动估计约束到仅使用具有分数部分为0的MV值。这可以通过避免插值操作而产生编码和解码的计算复杂度。
4.使用低复杂度内容分析的方法
为了简化决策制定过程,编码器可以在选择MV精度之前考虑较小的数据集,或者当选择MV精度时使用较简单的决策逻辑,避免多次编码。
图9示出了利用低复杂度方法在编码期间自适应MV精度的技术(900)。可以通过编码器执行技术(900),所述编码器例如是参考图3或图4a和4b所描述的,或者通过其它编码器。技术(900)详述了一种收集关于视频的信息并至少部分地基于收集到的信息选择MV精度的方法,如参考图8所描述的。
根据技术(900),在对视频编码期间,编码器确定视频的单位的MV精度。当确定针对所述单位的MV精度时,编码器识别(910)具有分数样本MV精度的MV值集合。可以允许该MV值集合包括零值MV和非零值MV。或者,可以将MV值集合约束为仅包括非零值MV。或者,还可以将MV值集合约束为仅包括来自具有特定块尺寸或更大块尺寸的块的非零值MV。
编码器至少部分地基于在MV值集合中分数部分为零的MV值的流行而选择(920)针对单位的MV精度。可以根据分数部分为零的MV值集合的分数来测量所述流行。例如,对于图片,编码器可以确定分数部分为零的MV值的百分比。或者,对于使用MV值集合的区域或区域集,可以根据分数部分为零的区域或区域集的分数测量流行。如果分数超过阈值,则选择的针对单位的MV精度是整数样本MV进度。如果分数没有超过阈值,则选择的针对单位的MV精度是分数样本MV精度。可以使用任意选项处理边界条件(分数等于阈值),取决于实现方式。
选择(920)针对单位的MV精度还可以至少部分地基于非零值MV的流行,从而当存在阈值量的非零值MV时允许切换到整数样本MV精度。可以以非零值MV的MV值的分数的形式,以使用非零值MV的块的计数的形式,或者以使用非零值MV的区域或区域集的分数的形式,来测量非零值MV的流行。在这种情况下,可以从区域或区域集的非零值MV中识别出具有分数样本MV精度的MV值集合。因此,编码器可以考虑在作为非零值MV的MV集合中分数部分为零的非零值MV的流行。例如,当满足以下两个条件时编码器切换到整数样本MV精度:(1)检测到足够大量的非零值MV,以及(2)在非零值MV集合中,存在足够多的分数部分为零的非零值MV(或者替代地,足够少的具有非零分数部分的非零值MV)。可以通过对MV值进行计数(不管其相关联的块大小),或通过考虑MV值的相关联的块大小(例如,因为一些MV值被应用于比其它块大的块中),来确定非零值MV的流行和具有分数部分为零的MV值的流行。
编码器使用选择的针对单位的MV精度对该单位进行编码。在视频的单位中的块(例如,PU、宏块或其它块)的MV值具有该单位的选择的MV精度。编码器例如以比特流输出用于当前单位的经编码的数据。经编码的数据可以包括指示选择的针对单位的MV精度的语法元素。
为了减少编码器设置MV精度所花费的时间量,在选择了针对单位的整数样本MV精度之后,选择的MV精度可以用于后续视频单位,直到事件使得MV精度切换回分数样本MV精度。例如,事件可以是对定义数量的单位进行编码、场景变化、或基于在编码期间的观察确定切换回分数样本MV精度是有利的。
在一个示例性实现方式中,编码器对视频的单位(例如,图片、瓦片、切片或CU)仅编码一次。在开始时,编码器使用1/4样本MV精度对单位编码。在编码期间,编码器确定MV值的分数部分是否是零。例如,编码器测量MV值的什么分数具有非零分数部分。或者,由于一些MV值比其它影响较大的图片区域,所以编码器测量图片间预测区域的什么分数使用具有非零分数部分的MV值(测量区域,而不是MV值的计数)。如果分数超过阈值(其取决于实现方式,例如是75%),则编码器对于视频的一个或多个后续单位切换到整数样本MV精度。
在该示例性实现方式中,在编码器切换到整数样本的MV精度之后,编码器可以无限期地保持整数样本MV精度,或者直到至少临时地定义的事件触发切换回分数样本MV精度。例如,所述事件可以是编码特定数量的单位(例如,100个单位)。或者,所述事件可以是场景变化。或者,所述事件可以是基于在编码时收集到的统计,确定切换回分数样本MV精度可能是有利的。(可以在对一些有限量的区域编码期间收集这种统计,以决定分数样本MV精度对该区域更好,然后应用于对于一个或多个单位切换MV精度)。
不管视频内容是自然视频内容还是人工创造的视频内容,大部分视频可能是静止的。例如,静止部分可能是自然视频中的固定背景或屏幕捕捉内容中的固定内容。视频的静止部分具有零值MV,当MV精度是分数样本MV精度时其分数部分为零。存在大量零值MV将使得考虑具有非零分数部分的MV值的分数的决策逻辑混乱。
因此,编码器可以从考虑中排除零值MV。图10示出了包括(大部分)具有零值MV的非移动部分(1001)和(大部分)具有非零值MV的两个移动部分(1002、1003)的图片1000。编码器考虑移动部分(1002、1003)中的非零值MV,但是不考虑非移动部分(1001)的MV值。当分数部分为零的非零值MV的分数(在移动部分(1002、1003)中)超过阈值时(或者当使用分数部分为零的非零MV的图片的分数(以区域的形式)超过阈值时),编码器可以切换到整数样本MV精度。
编码器还可以检查被评估超过阈值量的非零值MV的数量,从而基于少量MV值而不做出决策。这可以使得决策制定过程更健壮。
在另一示例性实现方式中,编码器使用1/4样本MV精度对给定的视频的单位(例如,图片、瓦片、切片或CU)进行编码。如果(1)多于x%的单位使用具有非零值MV的图片间预测,以及(2)多于y%的使用非零MV的单位部分具有整数值MV(分数部分为零),则编码器对于视频的一个或多个后续单位切换到整数样本MV精度。x和y的值取决于实现方式,并且例如可以分别是5和75。
在类似的示例性实现方式中,编码器使用1/4样本MV精度对给定的视频的单位(例如,图片、瓦片、切片或CU)进行编码。如果(1)单位中多于z个PU具有非零值MV,以及(2)那些PU中有多于y%具有整数值MV(分数部分为零),则编码器对于视频的一个或多个后续单位切换到整数样本MV精度。z和y的值取决于实现方式,并且例如可以分别是100和75。
较大区域的MV值可能比较小区域的MV值更可靠。编码器可以限定评估那些MV值。例如,编码器可以仅为特定块尺寸或更大(例如,16x16或更大)的块评估MV值。
在另一示例性实现方式中,编码器使用1/4样本MV精度对给定的视频的单位(例如,图片、瓦片、切片或CU)进行编码。如果(1)单位中多于z个PU是w x w或更大并具有非零值MV,以及(2)那些PU中多于y%具有整数值MV(分数部分为零),则编码器对于视频的一个或多个后续单位切换到整数样本MV精度。w、z和y的值取决于实现方式,并且例如可以分别是16、100和75。
5.非规范方法
在大部分先前的例子中,编码器在比特流中用信号传递在编码数据中指示选择的MV精度的一个或多个语法元素。解码器解析指示选择的MV精度的语法元素,并根据选择的MV精度解释MV值。
替代地,在非规范方法中,编码器并不用信号传递指示编码器所选的MV精度的任何语法元素。例如,编码器在整数样本MV精度和分数样本MV精度之间进行选择,但是总是在分数样本MV精度处对MV值进行编码。编码器在分数样本MV精度处重构并应用MV值。
当选择整数样本MV精度时,编码器可以通过避免分数样本偏移处的样本值的插值,以及通过评估仅在整数样本偏移处的候选预测区域,来简化运动估计。另外,如果MV预测产生分数值(例如,使用时间MV预测),则编码器可以仅考虑这些MV差,其可能导致在向分数值MV预测添加MV差时的整数值(例如,来自临时MV预测)。在解码期间,可以通过避免在分数样本偏移处的样本值的插值而简化运动补偿。
在前述段中描述的某些方法(例如,利用通过缩放失真成本和/或比特率成本的缩放率失真成本,或添加失真成本惩罚或比特率成本惩罚,或调整权重因子)还可以适应于非规范方法。编码器可以在编码期间改变朝向或背离整数样本MV精度的偏置程度。通过缩放、惩罚和/或权重因子,编码器可以取决于整数样本MV值可能更适于编码视频内容的置信度,或取决于编码或解码的计算能力,而朝向整数样本MV精度调整偏置。
6.备选和变型
在一些使用场景中,图片的编码顺序(也称作解码顺序或解码的顺序)不同于输入/摄像机捕捉和显示的时间顺序(也称作显示顺序)。当选择MV精度时,编码器可以考虑这种重排序。例如,编码器可以基于图片的时间顺序而不是图片的编码顺序来选择MV精度。
在本文描述的多个例子中,以分开的部件或过程实现BC内预测和运动补偿,并且以分开的部件或过程实现BV估计和运动估计。替代地,BC内预测可以实现为运动补偿的特殊情况,并BV估计可以实现为运动估计的特殊情况,对此,将当前图片用作参考图片。在这种实现方式中,BV值可以作为MV值用信号传递,但是用于BC内预测(在当前图片内)而不是图片间预测。如本文使用的术语,“BC内预测”表示在当前图片内的预测,不管是使用图片内预测模块、运动补偿模块还是一些其它模块提供预测。类似地,可以使用MV值或使用不同类型的参数或语法元素来呈现BV值,并且可以使用图片内估计模块、运动估计模块或一些其它模块来提供BV估计。本文所描述的用于选择MV精度的方法可以应用于确定将用作BC内预测的BV值的MV值的精度(也就是,当前图片作为参考图片)。
VI.创新特征
除了下文呈现的权利要求外,本文描述的创新特征包括但不限于以下:
考虑到可以应用所公开的本发明的原理的多种可能实施例,可以认识到的是,图示实施例仅是本发明的优选示例,而不应该认为是限制本发明的范围。而是,本发明的范围由后续权利要求所定义。因此,我们要求在这些权利要求的范围和精神内的所有内容为我们的发明。

Claims (15)

1.在具有视频编码器的计算设备中,一种方法包括:
对视频进行编码,包括确定针对所述视频的单位的运动向量(“MV”)精度,其中针对在所述视频的所述单位内的块的MV值具有针对所述单位的MV精度,并且其中确定针对所述单位的MV精度包括:
识别具有分数样本MV精度的一组MV值;以及
至少部分地基于在所述一组MV值内分数部分为零的MV值的流行,来选择针对所述单位的MV精度;以及
输出经编码的视频。
2.根据权利要求1所述的方法,其中:
根据分数部分为零的所述一组MV值的分数来测量所述流行;或者
区域或区域集使用所述一组MV值,并且根据使用分数部分为零的MV值之一的区域或区域集的分数来测量所述流行。
3.根据权利要求2所述的方法,其中,如果所述分数超过阈值,则所选择的针对所述单位的MV精度是整数样本MV精度,并且其中,如果所述分数没有超过所述阈值,则所选择的针对所述单位的MV精度是分数样本MV精度。
4.根据权利要求1所述的方法,其中,所选择的针对所述单位的MV精度是整数样本MV精度,其中所选择的针对所述单位的MV精度还用于所述视频的后续单位,直到事件引起切换回所述分数样本MV精度,并且其中所述事件是:
对定义数量的单位进行编码;
场景变化;或者
基于在编码期间的观察,确定切换回所述分数样本MV精度是有利的。
5.根据权利要求1所述的方法,其中,所述一组MV值:
被允许包括零值MV和非零值MV;
被约束为仅包括非零值MV;或
被约束为仅包括来自具有特定块尺寸或更大块尺寸的块的非零值MV。
6.根据权利要求1所述的方法,其中,选择针对所述单位的MV精度还至少部分地基于非零值MV的流行,从而当存在阈值量的非零值MV时允许切换到整数样本MV精度,其中根据(a)非零值MV的MV值的分数,(b)使用非零值MV的块的计数,或(c)使用非零值MV的区域或区域集的分数,来测量非零值MV的流行,并且其中从所述区域或区域集的非零值MV中识别出具有分数样本MV精度的所述一组MV值。
7.在具有视频编码器的计算设备中,一种方法包括:
对视频进行编码,包括从多个MV精度中确定针对所述视频的单位的运动向量(“MV”)精度,所述多个MV精度包括一个或多个分数样本MV精度和整数样本MV精度,其中在所述视频的所述单位内的块的MV值具有针对所述单位的MV精度,并且其中所述确定包括:
收集关于所述视频的信息;以及
至少部分地基于所收集的信息,选择针对所述单位的MV精度;
以及
输出经编码的视频。
8.根据权利要求7所述的方法,其中所收集到的信息包括样本值,其中所述样本值被组织为直方图,并且其中选择针对所述单位的MV精度包括:
在所收集到的信息中确定独特样本值的计数;以及
将所述计数与阈值进行比较,其中如果所述计数低于所述阈值,则选择所述整数样本MV精度,并且其中如果所述计数高于所述阈值,则选择一个或多个分数样本MV精度之一。
9.根据权利要求7所述的方法,其中,所收集到的信息包括针对用分别多个MV精度编码的块的失真测量,并且其中选择针对所述单位的MV精度包括:
确定失真的减少是否证明了MV精度的增加。
10.根据权利要求7所述的方法,其中,所收集到的信息包括在所述一个或多个分数样本MV精度之一处的MV值,根据其分数部分的值对所收集到的MV值进行组织。
11.根据权利要求1或7所述的方法,其中:
所述编码是单次编码,所述视频的所述单位是所述视频的当前单位,并且所选择的针对所述当前单位的MV精度至少部分地取决于所述视频的一个或多个先前单位;或者
所述编码是多次编码,所述视频的所述单位是所述视频的当前单位,并且所选择的针对所述当前单位的MV精度至少部分地取决于所述视频的当前单位。
12.根据权利要求1或7所述的方法,其中,所述方法还包括:
至少部分地基于(a)整数样本MV精度是合适的置信度和/或(b)编码和/或解码的计算能力,来调整朝向或背离整数样本MV精度的偏置量。
13.根据权利要求1或7所述的方法,其中,所选择的针对所述单位的MV精度是针对于所述视频的所述单位内的块的所述MV值的水平MV分量和/或垂直MV分量的。
14.根据权利要求1或7所述的方法,其中,所述单位选自包括以下项的组:序列、在场景变化之间的图片系列、图片组、图片、瓦片、切片编码树单元以及编码单元;并且其中,所述块是预测块、预测单元、宏块或子宏块分割。
15.在具有视频编码器的计算设备中,一种方法包括:
对视频进行编码,包括确定针对所述视频的单位的运动向量(“MV”)精度,其中在所述视频的所述单位内的块的MV值具有针对所述单位的MV精度,其中所述确定包括:执行率失真分析以在多个MV精度之间进行决定,所述多个MV精度包括一个或多个分数样本MV精度和整数样本MV精度,并且其中通过(a)缩放失真成本,(b)向所述失真成本添加惩罚,(c)缩放比特率成本,(d)向所述比特率成本添加惩罚,和/或(e)调整拉格朗日乘子因子,来将所述率失真分析朝向所述整数样本MV精度偏置;以及
输出经编码的视频。
CN201480072763.5A 2014-01-08 2014-12-19 选择运动向量精度 Active CN105900420B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910433376.4A CN110099278B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910451602.1A CN110149513B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910433166.5A CN110177274B (zh) 2014-01-08 2014-12-19 选择运动向量精度

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201461925090P 2014-01-08 2014-01-08
US61/925,090 2014-01-08
US201461934574P 2014-01-31 2014-01-31
US61/934,574 2014-01-31
US14/513,132 US9749642B2 (en) 2014-01-08 2014-10-13 Selection of motion vector precision
US14/513,132 2014-10-13
PCT/US2014/071332 WO2015105662A1 (en) 2014-01-08 2014-12-19 Selection of motion vector precision

Related Child Applications (3)

Application Number Title Priority Date Filing Date
CN201910433166.5A Division CN110177274B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910451602.1A Division CN110149513B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910433376.4A Division CN110099278B (zh) 2014-01-08 2014-12-19 选择运动向量精度

Publications (2)

Publication Number Publication Date
CN105900420A true CN105900420A (zh) 2016-08-24
CN105900420B CN105900420B (zh) 2019-06-11

Family

ID=53496189

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201480072763.5A Active CN105900420B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910433166.5A Active CN110177274B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910451602.1A Active CN110149513B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910433376.4A Active CN110099278B (zh) 2014-01-08 2014-12-19 选择运动向量精度

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN201910433166.5A Active CN110177274B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910451602.1A Active CN110149513B (zh) 2014-01-08 2014-12-19 选择运动向量精度
CN201910433376.4A Active CN110099278B (zh) 2014-01-08 2014-12-19 选择运动向量精度

Country Status (11)

Country Link
US (8) US9749642B2 (zh)
EP (1) EP3075154B1 (zh)
JP (1) JP6498679B2 (zh)
KR (5) KR102360403B1 (zh)
CN (4) CN105900420B (zh)
AU (1) AU2014376190B2 (zh)
BR (2) BR122022001631B1 (zh)
CA (2) CA2935340C (zh)
MX (1) MX359698B (zh)
RU (1) RU2682859C1 (zh)
WO (1) WO2015105662A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106788920A (zh) * 2016-12-19 2017-05-31 珠海格力电器股份有限公司 一种波特率偏差检测方法、装置及空调室内机
CN110100440A (zh) * 2016-12-22 2019-08-06 株式会社Kt 视频信号处理方法和装置
WO2019154424A1 (zh) * 2018-02-12 2019-08-15 华为技术有限公司 视频解码方法、视频解码器以及电子设备
CN110462562A (zh) * 2017-03-20 2019-11-15 微软技术许可有限责任公司 用于采样来自基于栅格的数字化仪传感器的输出的方法
CN110620932A (zh) * 2018-06-19 2019-12-27 北京字节跳动网络技术有限公司 依赖模式的运动矢量差精度集
CN110809164A (zh) * 2018-08-04 2020-02-18 北京字节跳动网络技术有限公司 Bio中的mv精度
CN111010581A (zh) * 2018-12-07 2020-04-14 北京达佳互联信息技术有限公司 运动矢量信息的处理方法、装置、电子设备及存储介质
WO2020125755A1 (en) * 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Motion vector range based on motion vector precision
CN111567044A (zh) * 2019-03-13 2020-08-21 北京大学 一种视频处理方法、装置、编码设备及解码设备
US20210152845A1 (en) 2018-11-17 2021-05-20 Beijing Bytedance Network Technology Co., Ltd. Construction of merge with motion vector difference candidates
US11109055B2 (en) 2018-08-04 2021-08-31 Beijing Bytedance Network Technology Co., Ltd. MVD precision for affine
US11310508B2 (en) 2018-12-21 2022-04-19 Beijing Bytedance Network Technology Co., Ltd. Motion vector precision in merge with motion vector difference mode
US11653020B2 (en) 2018-09-19 2023-05-16 Beijing Bytedance Network Technology Co., Ltd Fast algorithms for adaptive motion vector resolution in affine mode
US11778170B2 (en) 2018-10-06 2023-10-03 Beijing Bytedance Network Technology Co., Ltd Temporal gradient calculations in bio

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
EP2815582B1 (en) 2012-01-09 2019-09-04 ActiveVideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9491461B2 (en) * 2012-09-27 2016-11-08 Qualcomm Incorporated Scalable extensions to HEVC and temporal motion vector prediction
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US9326047B2 (en) 2013-06-06 2016-04-26 Activevideo Networks, Inc. Overlay rendering of user interface onto source video
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
WO2015113510A1 (en) * 2014-01-29 2015-08-06 Mediatek Inc. Method and apparatus for adaptive motion vector precision
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US10523985B2 (en) 2014-12-24 2019-12-31 Activevideo Networks, Inc. Managing deep and shallow buffers in a thin-client device of a digital media distribution network
US10264293B2 (en) 2014-12-24 2019-04-16 Activevideo Networks, Inc. Systems and methods for interleaving video streams on a client device
US10313675B1 (en) * 2015-01-30 2019-06-04 Google Llc Adaptive multi-pass video encoder control
US10200713B2 (en) 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US20160337662A1 (en) * 2015-05-11 2016-11-17 Qualcomm Incorporated Storage and signaling resolutions of motion vectors
US10880566B2 (en) 2015-08-28 2020-12-29 Boe Technology Group Co., Ltd. Method and device for image encoding and image decoding
CN105163124B (zh) * 2015-08-28 2019-01-18 京东方科技集团股份有限公司 一种图像编码方法、图像解码方法及装置
WO2017194756A1 (en) * 2016-05-12 2017-11-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for coding and decoding motion vectors
AU2017331736B2 (en) * 2016-09-21 2022-10-27 Kakadu R & D Pty Ltd Base anchored models and inference for the compression and upsampling of video and multiview imagery
KR102559063B1 (ko) 2017-02-24 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
GB2578527B (en) 2017-04-21 2021-04-28 Zenimax Media Inc Player input motion compensation by anticipating motion vectors
WO2018195431A1 (en) 2017-04-21 2018-10-25 Zenimax Media Inc. Systems and methods for deferred post-processes in video encoding
AU2018254550B2 (en) 2017-04-21 2020-09-24 Zenimax Media Inc. Systems and methods for game-generated motion vectors
US10313679B2 (en) 2017-04-21 2019-06-04 ZeniMaz Media Inc. Systems and methods for encoder-guided adaptive-quality rendering
EP3720130B1 (en) 2017-04-21 2022-09-28 Zenimax Media Inc. System and method for rendering and pre-encoded load estimation based encoder hinting
US10771789B2 (en) * 2017-05-19 2020-09-08 Google Llc Complexity adaptive rate control
US11303689B2 (en) * 2017-06-06 2022-04-12 Nokia Technologies Oy Method and apparatus for updating streamed content
US11272207B2 (en) * 2017-06-12 2022-03-08 Futurewei Technologies, Inc. Selection and signaling of motion vector (MV) precisions
US20190014332A1 (en) * 2017-07-07 2019-01-10 Apple Inc. Content-aware video coding
US10841794B2 (en) * 2017-09-18 2020-11-17 Futurewei Technologies, Inc. Adaptive motion vector resolution
EP3761643A4 (en) 2018-02-28 2022-02-23 Samsung Electronics Co., Ltd. VIDEO DECODING METHOD AND APPARATUS, AND VIDEO CODING METHOD AND APPARATUS
EP3797514A4 (en) * 2018-06-13 2021-08-04 Huawei Technologies Co., Ltd. INTRASOLUTION AND / OR ENTRY FILTER FOR VIDEO ENCODING
US11057617B2 (en) * 2018-08-03 2021-07-06 Tencent America LLC Method and apparatus for video coding
AU2018217333A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
KR20210054569A (ko) 2018-10-09 2021-05-13 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
US10951895B2 (en) 2018-12-31 2021-03-16 Alibaba Group Holding Limited Context model selection based on coding unit characteristics
CN113574867B (zh) * 2019-01-12 2022-09-13 北京字节跳动网络技术有限公司 Mv精度约束
EP3713235B1 (en) * 2019-03-19 2023-08-02 Axis AB Methods and devices for encoding a video stream using a first and a second encoder
US20190222858A1 (en) * 2019-03-26 2019-07-18 Intel Corporation Optimal out of loop inter motion estimation with multiple candidate support
JPWO2020235659A1 (zh) * 2019-05-21 2020-11-26
KR20220098294A (ko) * 2019-06-17 2022-07-11 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 비디오 코딩에서의 디코더 측 모션 벡터 개선을 위한 방법들 및 장치들
CN112243123B (zh) * 2019-07-16 2022-05-27 四川大学 一种基于无损编码的hevc码率优化方法
US11368694B1 (en) 2021-01-26 2022-06-21 Meta Platforms, Inc. Architecture for rate estimation in video coding
US20220239923A1 (en) * 2021-01-26 2022-07-28 Meta Platforms, Inc. Dynamically biasing mode selection in video encoding
US11818191B1 (en) * 2021-11-11 2023-11-14 Two Six Labs, LLC Stateless lossless compression

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006157531A (ja) * 2004-11-30 2006-06-15 Victor Co Of Japan Ltd 動画像符号化復号化装置
US20100166079A1 (en) * 2008-12-31 2010-07-01 Nxp B.V. System and method for providing fast trick modes
CN102187668A (zh) * 2008-10-14 2011-09-14 法国电信公司 消除一个或多个预定预测器的编码和解码
US20120257679A1 (en) * 2011-04-07 2012-10-11 Google Inc. System and method for encoding and decoding video data
WO2013002716A2 (en) * 2011-06-30 2013-01-03 Telefonaktiebolaget L M Ericsson (Publ) A method a decoder and encoder for processing a motion vector

Family Cites Families (219)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60158786A (ja) 1984-01-30 1985-08-20 Kokusai Denshin Denwa Co Ltd <Kdd> 画像動き量検出方式
US4661849A (en) 1985-06-03 1987-04-28 Pictel Corporation Method and apparatus for providing motion estimation signals for communicating image sequences
US4661853A (en) 1985-11-01 1987-04-28 Rca Corporation Interfield image motion detector for video signals
DE3854171T2 (de) 1987-06-09 1995-12-21 Sony Corp Bewertung von Bewegungsvektoren in Fernsehbildern.
DE3854337T2 (de) 1987-06-09 1996-02-01 Sony Corp Bewegungskompensierte Interpolation von digitalen Fernsehbildern.
JP2712645B2 (ja) 1989-10-14 1998-02-16 ソニー株式会社 動きベクトル伝送方法及びその装置並びに動きベクトル復号化方法及びその装置
EP0713340B1 (en) 1989-10-14 2001-08-22 Sony Corporation Video signal coding/decoding method and apparatus
US5103306A (en) 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US5175618A (en) 1990-10-31 1992-12-29 Victor Company Of Japan, Ltd. Compression method for interlace moving image signals
AU660020B2 (en) 1991-05-24 1995-06-08 British Broadcasting Corporation, The Video image processing
US5317397A (en) 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
US5467136A (en) 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
US5428396A (en) 1991-08-03 1995-06-27 Sony Corporation Variable length coding/decoding method for motion vectors
JPH0541862A (ja) 1991-08-03 1993-02-19 Sony Corp 動きベクトルの可変長符号化方式
DE69217150T2 (de) 1991-09-30 1997-07-17 Philips Electronics Nv Bewegungsvektorschätzung, Bewegungsbildkodierung- und -speicherung
JP2962012B2 (ja) 1991-11-08 1999-10-12 日本ビクター株式会社 動画像符号化装置及びその復号装置
GB2262854B (en) 1991-12-24 1995-05-24 Sony Broadcast & Communication Image processing apparatus
US6441842B1 (en) 1992-02-19 2002-08-27 8×8, Inc. Video compression/decompression processing and processors
US5594813A (en) 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
US5436665A (en) 1992-03-03 1995-07-25 Kabushiki Kaisha Toshiba Motion picture coding apparatus
US6226327B1 (en) 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
JPH0662386A (ja) 1992-08-04 1994-03-04 G C Technol Kk 解像度変換復号方法と装置
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
JP3200196B2 (ja) * 1992-10-15 2001-08-20 株式会社リコー 動きベクトル検出方法
ES2438184T3 (es) 1993-03-24 2014-01-16 Sony Corporation Método de codificación y decodificación de vector de movimiento y aparato asociado y método de codificación y decodificación de señal de imagen y aparato asociado
US5442400A (en) 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
JPH06343172A (ja) 1993-06-01 1994-12-13 Matsushita Electric Ind Co Ltd 動きベクトル検出方法及び動きベクトル符号化方法
US5477272A (en) 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
CN1099723A (zh) 1993-08-31 1995-03-08 张智新 硫酸铵分解法
KR970003102B1 (ko) 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
TW283289B (zh) 1994-04-11 1996-08-11 Gen Instrument Corp
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
US5684538A (en) 1994-08-18 1997-11-04 Hitachi, Ltd. System and method for performing video coding/decoding using motion compensation
US6301299B1 (en) 1994-10-28 2001-10-09 Matsushita Electric Industrial Co., Ltd. Memory controller for an ATSC video decoder
US5623311A (en) 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
EP0710033A3 (en) 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
GB2301971B (en) 1995-06-06 1999-10-06 Sony Uk Ltd Video compression
GB2301972B (en) 1995-06-06 1999-10-20 Sony Uk Ltd Video compression
US5959673A (en) 1995-10-05 1999-09-28 Microsoft Corporation Transform coding of dense motion vector fields for frame and object based video coding applications
US5929940A (en) 1995-10-25 1999-07-27 U.S. Philips Corporation Method and device for estimating motion between images, system for encoding segmented images
US5991463A (en) 1995-11-08 1999-11-23 Genesis Microchip Inc. Source data interpolation method and apparatus
JP2798035B2 (ja) 1996-01-17 1998-09-17 日本電気株式会社 適応動きベクトル補間による動き補償フレーム間予測方法
US5799113A (en) 1996-01-19 1998-08-25 Microsoft Corporation Method for expanding contracted video images
US5692063A (en) 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5787203A (en) 1996-01-19 1998-07-28 Microsoft Corporation Method and system for filtering compressed video images
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5768537A (en) 1996-02-22 1998-06-16 International Business Machines Corporation Scalable MPEG2 compliant video encoder
US5982438A (en) 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US6130963A (en) 1996-11-22 2000-10-10 C-Cube Semiconductor Ii, Inc. Memory efficient decoding of video frame chroma
US6377628B1 (en) 1996-12-18 2002-04-23 Thomson Licensing S.A. System for maintaining datastream continuity in the presence of disrupted source data
US6330344B1 (en) 1997-02-14 2001-12-11 Sony Corporation Image processing device and method employing motion detection to generate improved quality image from low resolution image
US6201927B1 (en) 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
US5991447A (en) 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6005980A (en) 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US5844613A (en) 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
KR100345423B1 (ko) 1997-03-31 2002-07-26 마츠시타 덴끼 산교 가부시키가이샤 동화상 표시 방법 및 그 장치
US5973755A (en) 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
US6067322A (en) 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US6574371B2 (en) 1997-06-09 2003-06-03 Hitachi, Ltd. Image decoding method
DE69817460T2 (de) 1997-06-09 2004-06-09 Hitachi, Ltd. Bildsequenzdekodierungsverfahren
JPH1169345A (ja) 1997-06-11 1999-03-09 Fujitsu Ltd フレーム間予測動画像符号化装置及び復号装置並びにフレーム間予測動画像符号化方法及び復号方法
JP2897763B2 (ja) * 1997-07-28 1999-05-31 日本ビクター株式会社 動き補償符号化装置、復号化装置、符号化方法及び復号化方法
US6310918B1 (en) 1997-07-31 2001-10-30 Lsi Logic Corporation System and method for motion vector extraction and computation meeting 2-frame store and letterboxing requirements
US6266091B1 (en) 1997-07-31 2001-07-24 Lsi Logic Corporation System and method for low delay mode operation video decoding
FR2766946B1 (fr) 1997-08-04 2000-08-11 Thomson Multimedia Sa Procede et dispositif de pretraitement pour estimation de mouvement
US6281942B1 (en) 1997-08-11 2001-08-28 Microsoft Corporation Spatial and temporal filtering mechanism for digital motion video signals
US6339656B1 (en) 1997-12-25 2002-01-15 Matsushita Electric Industrial Co., Ltd. Moving picture encoding decoding processing apparatus
US6122017A (en) 1998-01-22 2000-09-19 Hewlett-Packard Company Method for providing motion-compensated multi-field enhancement of still images from video
JP3856262B2 (ja) * 1998-03-09 2006-12-13 日本ビクター株式会社 動き補償符号化装置、動き補償符号化方法、及び動き補償符号記録媒体
US6611624B1 (en) 1998-03-13 2003-08-26 Cisco Systems, Inc. System and method for frame accurate splicing of compressed bitstreams
US6020934A (en) 1998-03-23 2000-02-01 International Business Machines Corporation Motion estimation architecture for area and power reduction
US6195389B1 (en) 1998-04-16 2001-02-27 Scientific-Atlanta, Inc. Motion estimation system and methods
JP3888597B2 (ja) 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
JP4026238B2 (ja) 1998-07-23 2007-12-26 ソニー株式会社 画像復号装置及び画像復号方法
US6219070B1 (en) 1998-09-30 2001-04-17 Webtv Networks, Inc. System and method for adjusting pixel parameters by subpixel positioning
US6466624B1 (en) 1998-10-28 2002-10-15 Pixonics, Llc Video decoder with bit stream based enhancements
GB2343579A (en) 1998-11-07 2000-05-10 Ibm Hybrid-linear-bicubic interpolation method and apparatus
US6584154B1 (en) 1998-11-26 2003-06-24 Oki Electric Industry Co., Ltd. Moving-picture coding and decoding method and apparatus with reduced computational cost
US6983018B1 (en) 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6418166B1 (en) 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6496608B1 (en) 1999-01-15 2002-12-17 Picsurf, Inc. Image data interpolation system and method
US6259741B1 (en) 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6320593B1 (en) 1999-04-20 2001-11-20 Agilent Technologies, Inc. Method of fast bi-cubic interpolation of image information
JP2000308064A (ja) 1999-04-22 2000-11-02 Mitsubishi Electric Corp 動きベクトル検出装置
EP1050850A1 (en) 1999-05-03 2000-11-08 THOMSON multimedia Process for estimating a dominant motion between two frames
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US6556624B1 (en) 1999-07-27 2003-04-29 At&T Corp. Method and apparatus for accomplishing multiple description coding for video
US6647061B1 (en) 2000-06-09 2003-11-11 General Instrument Corporation Video size conversion and transcoding from MPEG-2 to MPEG-4
US7206453B2 (en) 2001-05-03 2007-04-17 Microsoft Corporation Dynamic filtering for lossy compression
US7266150B2 (en) 2001-07-11 2007-09-04 Dolby Laboratories, Inc. Interpolation of video compression frames
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US20030095603A1 (en) 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Reduced-complexity video decoding using larger pixel-grid motion compensation
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
JP2003189312A (ja) 2001-12-20 2003-07-04 Oki Electric Ind Co Ltd 動画像符号化装置及び動画像復号化装置
EP1461956A1 (en) 2001-12-20 2004-09-29 Koninklijke Philips Electronics N.V. Video encoding and decoding method and device
CN1265649C (zh) 2002-01-24 2006-07-19 株式会社日立制作所 运动图像的编码方法、解码方法、编码装置及解码装置
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US7305034B2 (en) 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US7116831B2 (en) 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
US7110459B2 (en) 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US7620109B2 (en) 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US7277587B2 (en) 2002-04-26 2007-10-02 Sharp Laboratories Of America, Inc. System and method for lossless video coding
US7224731B2 (en) 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US6980695B2 (en) 2002-06-28 2005-12-27 Microsoft Corporation Rate allocation for mixed content video
JP4724351B2 (ja) 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
US8107539B2 (en) 2002-07-15 2012-01-31 Nokia Corporation Method for error concealment in video sequences
US7072512B2 (en) 2002-07-23 2006-07-04 Microsoft Corporation Segmentation of digital video and images into continuous tone and palettized regions
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
US7831088B2 (en) 2003-06-13 2010-11-09 Georgia Tech Research Corporation Data reconstruction using directional interpolation techniques
US7609763B2 (en) 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
EP1536647A1 (en) 2003-11-26 2005-06-01 STMicroelectronics Limited A video decoding device
KR100631777B1 (ko) 2004-03-31 2006-10-12 삼성전자주식회사 다 계층의 모션 벡터를 효율적으로 압축하는 방법 및 장치
KR100586882B1 (ko) 2004-04-13 2006-06-08 삼성전자주식회사 모션 스케일러빌리티를 지원하는 코딩 방법 및 장치
US8130825B2 (en) 2004-05-10 2012-03-06 Nvidia Corporation Processor for video data encoding/decoding
KR100678949B1 (ko) 2004-07-15 2007-02-06 삼성전자주식회사 비디오 코딩 및 디코딩 방법, 비디오 인코더 및 디코더
US7558428B2 (en) 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
JP4216796B2 (ja) * 2004-12-15 2009-01-28 日本電信電話株式会社 動きベクトル探索方法,動きベクトル探索装置,動きベクトル探索プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2006096612A2 (en) 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
CN101160976B (zh) 2005-04-13 2010-05-19 株式会社Ntt都科摩 运动图像编码装置及其方法、运动图像解码装置及其方法
KR100703778B1 (ko) 2005-04-29 2007-04-06 삼성전자주식회사 고속 fgs를 지원하는 비디오 코딩 방법 및 장치
WO2006124885A2 (en) 2005-05-12 2006-11-23 Kylintv, Inc. Codec for iptv
US20070025442A1 (en) * 2005-07-28 2007-02-01 Sanyo Electric Co., Ltd. Coding method for coding moving images
US8761259B2 (en) 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
GB0600141D0 (en) 2006-01-05 2006-02-15 British Broadcasting Corp Scalable coding of video signals
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US7929599B2 (en) 2006-02-24 2011-04-19 Microsoft Corporation Accelerated video encoding
US8155195B2 (en) 2006-04-07 2012-04-10 Microsoft Corporation Switching distortion metrics during motion estimation
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US7965767B2 (en) 2006-06-30 2011-06-21 Intel Corporation Two-dimensional filtering architecture
US9014280B2 (en) 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
BRPI0809668B1 (pt) * 2007-04-09 2020-07-28 Nokia Technologies Oy vetores de movimento de alta precisão para codificação de vídeos com baixa complexidade de codificação e decodificação
US8861591B2 (en) 2007-05-11 2014-10-14 Advanced Micro Devices, Inc. Software video encoder with GPU acceleration
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
SG152082A1 (en) 2007-10-19 2009-05-29 Creative Tech Ltd A method and system for processing a composite video image
US8582652B2 (en) 2007-10-30 2013-11-12 General Instrument Corporation Method and apparatus for selecting a coding mode
US20090141808A1 (en) 2007-11-30 2009-06-04 Yiufai Wong System and methods for improved video decoding
US8279936B1 (en) 2007-12-11 2012-10-02 Marvell International Ltd. Method and apparatus for fractional pixel expansion and motion vector selection in a video codec
US20090168871A1 (en) 2007-12-31 2009-07-02 Ning Lu Video motion estimation
CN101911706A (zh) 2008-01-09 2010-12-08 三菱电机株式会社 图像编码装置、图像解码装置、图像编码方法以及图像解码方法
KR101431543B1 (ko) 2008-01-21 2014-08-21 삼성전자주식회사 영상 부호화/복호화 장치 및 방법
US9584710B2 (en) 2008-02-28 2017-02-28 Avigilon Analytics Corporation Intelligent high resolution video system
JP2009230537A (ja) * 2008-03-24 2009-10-08 Olympus Corp 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器
US8266665B2 (en) 2008-03-25 2012-09-11 Verizon Patent And Licensing Inc. TV screen capture
US20090245374A1 (en) 2008-03-26 2009-10-01 Mediatek Inc. Video encoder and motion estimation method
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
US20090257499A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US20090262801A1 (en) * 2008-04-17 2009-10-22 Qualcomm Incorporated Dead zone parameter selections for rate control in video coding
JP2010016453A (ja) 2008-07-01 2010-01-21 Sony Corp 画像符号化装置および方法、画像復号装置および方法、並びにプログラム
JP5240530B2 (ja) 2008-10-02 2013-07-17 ソニー株式会社 画像処理装置および方法
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
TWI428022B (zh) 2008-10-24 2014-02-21 Nat Univ Chung Cheng Video control method for instant video encoding chips
DE102008064280A1 (de) * 2008-12-20 2010-06-24 Bayer Technology Services Gmbh Verfahren zur Herstellung von Bis(Para-Aminocyclohexyl)Methan
US9472167B2 (en) 2009-04-17 2016-10-18 International Business Machines Corporation Video capture through hardware
US8346915B2 (en) 2009-05-04 2013-01-01 Qualcomm Incorporated System and method of recording and sharing mobile application activities
US8498493B1 (en) 2009-06-02 2013-07-30 Imagination Technologies Limited Directional cross hair search system and method for determining a preferred motion vector
KR20120038401A (ko) 2009-06-09 2012-04-23 소니 주식회사 화상 처리 장치 및 방법
JP2010288110A (ja) 2009-06-12 2010-12-24 Sony Corp 画像処理装置および画像処理方法
PL3448031T3 (pl) * 2009-06-18 2021-04-19 Kabushiki Kaisha Toshiba Urządzenie do dekodowania wideo i metoda dekodowania wideo
JP5353532B2 (ja) * 2009-07-29 2013-11-27 ソニー株式会社 画像処理装置及び画像処理方法
US20110255589A1 (en) 2009-08-03 2011-10-20 Droplet Technology, Inc. Methods of compressing data and methods of assessing the same
JP2011041037A (ja) 2009-08-12 2011-02-24 Sony Corp 画像処理装置および方法
KR20110017302A (ko) * 2009-08-13 2011-02-21 삼성전자주식회사 움직임 벡터의 정확도 조절을 이용한 영상 부호화, 복호화 방법 및 장치
KR101678968B1 (ko) 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
EP2302588B1 (en) 2009-08-21 2012-02-29 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for estimation of interframe motion fields
WO2011021915A2 (ko) 2009-08-21 2011-02-24 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
KR101356613B1 (ko) 2009-08-21 2014-02-06 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
CN102687511B (zh) 2009-10-14 2016-04-20 汤姆森特许公司 运动信息的自适应编解码的方法和装置
US8411750B2 (en) 2009-10-30 2013-04-02 Qualcomm Incorporated Global motion parameter estimation using block-based motion vectors
US20110176611A1 (en) 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
EP2362655B1 (en) 2010-02-10 2013-07-17 Telefonaktiebolaget L M Ericsson (Publ) Motion-vector estimation
US20110200108A1 (en) * 2010-02-18 2011-08-18 Qualcomm Incorporated Chrominance high precision motion filtering for motion interpolation
US9313526B2 (en) 2010-02-19 2016-04-12 Skype Data compression for video
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
WO2011126272A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
US9245528B2 (en) 2010-06-04 2016-01-26 Nec Corporation Communication system, method, and apparatus
US20120008686A1 (en) * 2010-07-06 2012-01-12 Apple Inc. Motion compensation using vector quantized interpolation filters
JP5563403B2 (ja) * 2010-08-12 2014-07-30 日本電信電話株式会社 映像符号化方法,映像復号方法,映像符号化装置,映像復号装置およびそれらのプログラム
RU2010135495A (ru) 2010-08-24 2012-02-27 ЭлЭсАй Корпорейшн (US) Видеотранскодер с гибким управлением качеством и сложностью
US20120051431A1 (en) * 2010-08-25 2012-03-01 Qualcomm Incorporated Motion direction based adaptive motion vector resolution signaling for video coding
US9288490B2 (en) 2010-09-30 2016-03-15 Panasonic Intellectual Property Corporation Of America Image decoding method, image coding method, image decoding apparatus, image coding apparatus, program, and integrated circuit
US10327008B2 (en) 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
US10045046B2 (en) 2010-12-10 2018-08-07 Qualcomm Incorporated Adaptive support for interpolating values of sub-pixels for video coding
JP2012126040A (ja) 2010-12-16 2012-07-05 Ricoh Co Ltd 画像形成装置
US9215473B2 (en) * 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
TWI466550B (zh) 2011-02-23 2014-12-21 Novatek Microelectronics Corp 多媒體裝置及其移動偵測方法
US9271005B2 (en) 2011-02-24 2016-02-23 Vixs Systems, Inc. Multi-pass video encoder and methods for use therewith
WO2012120863A1 (ja) * 2011-03-08 2012-09-13 パナソニック株式会社 動画像符号化方法および動画像復号方法
US20120236115A1 (en) 2011-03-14 2012-09-20 Qualcomm Incorporated Post-filtering in full resolution frame-compatible stereoscopic video coding
JP2012231301A (ja) 2011-04-26 2012-11-22 Sony Corp 係数学習装置および方法、画像処理装置および方法、プログラム、並びに記録媒体
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
US9277228B2 (en) 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
US9521418B2 (en) * 2011-07-22 2016-12-13 Qualcomm Incorporated Slice header three-dimensional video extension for slice header prediction
US9288505B2 (en) 2011-08-11 2016-03-15 Qualcomm Incorporated Three-dimensional video with asymmetric spatial resolution
CA2846425A1 (en) 2011-08-30 2013-03-07 Nokia Corporation An apparatus, a method and a computer program for video coding and decoding
CN102946534A (zh) * 2011-09-02 2013-02-27 斯凯普公司 视频编码
CN102946533B (zh) 2011-09-02 2016-08-17 斯凯普公司 视频编码
RU2487489C2 (ru) 2011-10-18 2013-07-10 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "МИЭТ" Способ поиска векторов перемещений в динамических изображениях
RU2628226C2 (ru) 2011-12-16 2017-08-15 Сан Пэтент Траст Способ кодирования видеоизображений, устройство кодирования видеоизображений, способ декодирования видеоизображений, устройство декодирования видеоизображений и устройство кодирования/декодирования видеоизображений
US9451252B2 (en) 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US20130188719A1 (en) 2012-01-20 2013-07-25 Qualcomm Incorporated Motion prediction in svc using motion vector for intra-coded block
US9215266B2 (en) 2012-01-26 2015-12-15 Zoom International S.R.O. System and method for zero-footprint screen capture
US20130287109A1 (en) 2012-04-29 2013-10-31 Qualcomm Incorporated Inter-layer prediction through texture segmentation for video coding
US20130294513A1 (en) 2012-05-07 2013-11-07 Qualcomm Incorporated Inter layer merge list construction for video coding
CN102740073B (zh) 2012-05-30 2015-06-17 华为技术有限公司 一种编码方法及装置
US9253487B2 (en) 2012-05-31 2016-02-02 Qualcomm Incorporated Reference index for enhancement layer in scalable video coding
US9584805B2 (en) 2012-06-08 2017-02-28 Qualcomm Incorporated Prediction mode information downsampling in enhanced layer coding
US9258562B2 (en) 2012-06-13 2016-02-09 Qualcomm Incorporated Derivation of depth map estimate
US9219913B2 (en) 2012-06-13 2015-12-22 Qualcomm Incorporated Inferred base layer block for TEXTURE—BL mode in HEVC based single loop scalable video coding
US9338452B2 (en) * 2012-07-09 2016-05-10 Qualcomm Incorporated Motion vector difference coding extension for enhancement layer
US9674519B2 (en) 2012-11-09 2017-06-06 Qualcomm Incorporated MPEG frame compatible video coding
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006157531A (ja) * 2004-11-30 2006-06-15 Victor Co Of Japan Ltd 動画像符号化復号化装置
CN102187668A (zh) * 2008-10-14 2011-09-14 法国电信公司 消除一个或多个预定预测器的编码和解码
US20100166079A1 (en) * 2008-12-31 2010-07-01 Nxp B.V. System and method for providing fast trick modes
US20120257679A1 (en) * 2011-04-07 2012-10-11 Google Inc. System and method for encoding and decoding video data
WO2013002716A2 (en) * 2011-06-30 2013-01-03 Telefonaktiebolaget L M Ericsson (Publ) A method a decoder and encoder for processing a motion vector

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JICHENG AN ET.AL: "Progressive MV Resolution", 《JCT-VC MEETING》 *

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106788920A (zh) * 2016-12-19 2017-05-31 珠海格力电器股份有限公司 一种波特率偏差检测方法、装置及空调室内机
CN106788920B (zh) * 2016-12-19 2019-08-23 珠海格力电器股份有限公司 一种波特率偏差检测方法、装置及空调室内机
CN110100440A (zh) * 2016-12-22 2019-08-06 株式会社Kt 视频信号处理方法和装置
CN110462562A (zh) * 2017-03-20 2019-11-15 微软技术许可有限责任公司 用于采样来自基于栅格的数字化仪传感器的输出的方法
CN110462562B (zh) * 2017-03-20 2022-12-20 微软技术许可有限责任公司 用于采样来自基于栅格的数字化仪传感器的输出的方法
WO2019154424A1 (zh) * 2018-02-12 2019-08-15 华为技术有限公司 视频解码方法、视频解码器以及电子设备
CN110620932A (zh) * 2018-06-19 2019-12-27 北京字节跳动网络技术有限公司 依赖模式的运动矢量差精度集
CN110620932B (zh) * 2018-06-19 2022-11-08 北京字节跳动网络技术有限公司 依赖模式的运动矢量差精度集
US11477458B2 (en) 2018-06-19 2022-10-18 Beijing Bytedance Network Technology Co., Ltd. Mode dependent motion vector difference precision set
CN110809164B (zh) * 2018-08-04 2022-06-28 北京字节跳动网络技术有限公司 Bio中的mv精度
US11470341B2 (en) 2018-08-04 2022-10-11 Beijing Bytedance Network Technology Co., Ltd. Interaction between different DMVD models
CN110809164A (zh) * 2018-08-04 2020-02-18 北京字节跳动网络技术有限公司 Bio中的mv精度
US11451819B2 (en) 2018-08-04 2022-09-20 Beijing Bytedance Network Technology Co., Ltd. Clipping of updated MV or derived MV
US11109055B2 (en) 2018-08-04 2021-08-31 Beijing Bytedance Network Technology Co., Ltd. MVD precision for affine
US11330288B2 (en) 2018-08-04 2022-05-10 Beijing Bytedance Network Technology Co., Ltd. Constraints for usage of updated motion information
US11653020B2 (en) 2018-09-19 2023-05-16 Beijing Bytedance Network Technology Co., Ltd Fast algorithms for adaptive motion vector resolution in affine mode
US11778170B2 (en) 2018-10-06 2023-10-03 Beijing Bytedance Network Technology Co., Ltd Temporal gradient calculations in bio
US11706443B2 (en) 2018-11-17 2023-07-18 Beijing Bytedance Network Technology Co., Ltd Construction of affine candidates in video processing
US11128884B2 (en) 2018-11-17 2021-09-21 Beijing Bytedance Network Technology Co., Ltd. Construction of merge with motion vector difference candidates
US20210152845A1 (en) 2018-11-17 2021-05-20 Beijing Bytedance Network Technology Co., Ltd. Construction of merge with motion vector difference candidates
US11831901B2 (en) 2018-11-17 2023-11-28 Beijing Bytedance Network Technology Co., Ltd Generalized bi directional prediction mode in video processing
CN111010581A (zh) * 2018-12-07 2020-04-14 北京达佳互联信息技术有限公司 运动矢量信息的处理方法、装置、电子设备及存储介质
CN111010581B (zh) * 2018-12-07 2022-08-12 北京达佳互联信息技术有限公司 运动矢量信息的处理方法、装置、电子设备及存储介质
US11310508B2 (en) 2018-12-21 2022-04-19 Beijing Bytedance Network Technology Co., Ltd. Motion vector precision in merge with motion vector difference mode
US11197016B2 (en) 2018-12-21 2021-12-07 Beijing Bytedance Network Technology Co., Ltd. Motion vector range based on motion vector precision
WO2020125754A1 (en) * 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Motion vector derivation using higher bit-depth precision
WO2020125755A1 (en) * 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Motion vector range based on motion vector precision
US11843798B2 (en) 2018-12-21 2023-12-12 Beijing Bytedance Network Technology Co., Ltd Motion vector range based on motion vector precision
CN111567044A (zh) * 2019-03-13 2020-08-21 北京大学 一种视频处理方法、装置、编码设备及解码设备

Also Published As

Publication number Publication date
KR102360403B1 (ko) 2022-02-08
KR20160106703A (ko) 2016-09-12
US11095904B2 (en) 2021-08-17
MX2016009025A (es) 2016-09-28
BR112016015854A2 (pt) 2017-08-08
US20150195525A1 (en) 2015-07-09
JP2017508344A (ja) 2017-03-23
US20230209070A1 (en) 2023-06-29
US20200329247A1 (en) 2020-10-15
CA2935340C (en) 2023-01-24
US20170359587A1 (en) 2017-12-14
EP3075154A1 (en) 2016-10-05
KR20220019845A (ko) 2022-02-17
JP6498679B2 (ja) 2019-04-10
US9900603B2 (en) 2018-02-20
US10681356B2 (en) 2020-06-09
CN105900420B (zh) 2019-06-11
KR102270095B1 (ko) 2021-06-25
US20190281309A1 (en) 2019-09-12
CN110149513B (zh) 2022-10-14
CA2935340A1 (en) 2015-07-16
BR122022001631B1 (pt) 2023-03-14
US20180131947A1 (en) 2018-05-10
US20200177887A1 (en) 2020-06-04
AU2014376190B2 (en) 2018-12-20
CN110099278A (zh) 2019-08-06
US20210337214A1 (en) 2021-10-28
US9749642B2 (en) 2017-08-29
CA3118603A1 (en) 2015-07-16
CN110149513A (zh) 2019-08-20
KR102570202B1 (ko) 2023-08-23
RU2016127410A (ru) 2018-01-10
EP3075154B1 (en) 2020-03-04
CN110177274B (zh) 2022-10-14
CN110177274A (zh) 2019-08-27
KR20210073608A (ko) 2021-06-18
BR112016015854A8 (pt) 2020-06-09
CN110099278B (zh) 2022-10-14
US10313680B2 (en) 2019-06-04
BR112016015854B1 (pt) 2023-03-14
KR20220153111A (ko) 2022-11-17
RU2682859C1 (ru) 2019-03-21
WO2015105662A1 (en) 2015-07-16
AU2014376190A1 (en) 2016-07-07
KR20230127361A (ko) 2023-08-31
KR102465021B1 (ko) 2022-11-09
MX359698B (es) 2018-10-08
US11638016B2 (en) 2023-04-25
US10735747B2 (en) 2020-08-04

Similar Documents

Publication Publication Date Title
CN105900420B (zh) 选择运动向量精度
CN106416254B (zh) 在媒体编码期间跳过评估阶段
CN105432077B (zh) 在切换色彩空间时调整量化/缩放和逆量化/缩放
CN105684409B (zh) 在视频和图像编码和解码中使用散列值来表示各块
CN105359531B (zh) 用于针对屏幕内容编码的编码器侧判定的方法和系统
CN105960802B (zh) 切换色彩空间时对编码和解码的调整
CN105264888B (zh) 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
CN105393537B (zh) 用于基于散列的块匹配的散列表构建和可用性检查
CN105917648B (zh) 具有非对称分区的帧内块复制预测以及编码器侧搜索图案、搜索范围和用于分区的方法
CN105874795B (zh) 在波前并行处理被启用时对图片内预测模式的规则
CN105556971B (zh) 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105432082B (zh) 用于兴趣区编码的运动约束图块集合
CN105981382B (zh) 用于视频编码的基于散列的编码器判定
CN105874791B (zh) 在对重叠区域内的经重构样本值的块向量预测和估计方面的创新
CN105684441B (zh) 视频和图像编码中的基于散列的块匹配
CN105706450B (zh) 根据基于散列的块匹配的结果的编码器决定
CN105230023B (zh) 色彩空间、色彩采样率和/或比特深度的自适应切换
CN104584560B (zh) 在去块时使用色度量化参数偏移
CN107431814B (zh) ρ域速率控制的变化的方法、系统及计算机可读存储器
CN105917650A (zh) 视频和图像编码/解码中的块向量预测
CN107211150A (zh) 动态更新质量至较高的色度采样率
CN105659606B (zh) 用于视频和图像编码和解码的方法、系统和介质
CN106664405A (zh) 用调色板模式对经逸出编码的像素的稳健编码/解码
CN109076241A (zh) 利用样本值的非相邻参考线进行帧内图片预测
CN107113422A (zh) 用于视频编码和解码的灵活的参考图片管理

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant