CN104285446A - 用于帧间译码或/帧内译码的候选块的可编程及可缩放搜索 - Google Patents

用于帧间译码或/帧内译码的候选块的可编程及可缩放搜索 Download PDF

Info

Publication number
CN104285446A
CN104285446A CN201380025027.XA CN201380025027A CN104285446A CN 104285446 A CN104285446 A CN 104285446A CN 201380025027 A CN201380025027 A CN 201380025027A CN 104285446 A CN104285446 A CN 104285446A
Authority
CN
China
Prior art keywords
candidate blocks
frame
block
search
video
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
CN201380025027.XA
Other languages
English (en)
Other versions
CN104285446B (zh
Inventor
L·F·黄
H·G·瑟鲁纳盖斯瓦拉姆
H·G·拉尔古迪
S·莫汉
王凯
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104285446A publication Critical patent/CN104285446A/zh
Application granted granted Critical
Publication of CN104285446B publication Critical patent/CN104285446B/zh
Expired - Fee Related 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
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

本发明提供用于帧间译码及/或帧内译码的候选块的有效搜索的方法及系统。在一个创新方面中,提供一种用于执行运动估计的设备。所述设备包含处理器,其经配置以识别待搜索的视频数据的帧的候选块的数目,至少一个候选块对应于所述视频数据的另一帧的块。所述处理器经进一步配置以基于所述候选块之间的距离来选择待搜索的所述候选块中的一或多者。所述处理器还经配置以基于所述视频数据的格式来选择用于搜索所述选定候选块的方法。所述处理器还经配置以基于所述选定方法及所述选定候选块来估计所述另一帧的所述块的运动。

Description

用于帧间译码或/帧内译码的候选块的可编程及可缩放搜索
技术领域
本发明涉及视频译码,且明确地说涉及用于帧间译码及/或帧内译码的候选块的有效搜索。
背景技术
数字视频译码用于广泛范围的装置中,包含数字电视、数字直播系统、无线通信装置、个人数字助理(PDA)、膝上型或台式计算机、数字摄像机、数字记录装置、视频游戏装置、蜂窝式或卫星无线电电话或类似者。数字视频装置实施视频压缩技术(例如,MPEG-2、MPEG-4或H.264/MPEG-4高级视频译码(AVC))以更有效地发射并接收数字视频。
大体来说,视频压缩技术执行空间预测、运动估计及运动补偿以减少或移除视频数据中所固有的冗余。明确地说,帧内译码依赖于空间预测以减少或移除给定视频帧内的视频中的空间冗余。帧间编码依赖于时间预测来减少或移除邻近帧内的视频中的时间冗余。对于帧间译码来说,视频编码器执行运动估计以追踪两个或两个以上邻近帧之间的匹配的视频块的移动。运动估计产生运动向量,所述运动向量指示视频块相对于一或多个参考帧中的对应视频块的位移。运动补偿使用所述运动向量以从参考帧产生预测视频块。在运动补偿之后,通过从原始视频块中减去预测视频块来形成残余视频块。
发明内容
本发明的系统、方法及装置各自具有若干创新方面,所述方面中没有单个一者单独地负责本文所揭示的所需要的属性。
在一个创新方面中,提供一种用于执行运动估计的设备。所述设备包含处理器,其经配置以识别待搜索的视频数据的帧的候选块的数目,至少一个候选块对应于视频数据的另一帧的块。处理器经进一步配置以基于候选块之间的距离来选择待搜索的候选块中的一或多者。处理器还经配置以基于视频数据的格式来选择用于搜索选定候选块的方法。处理器还经配置以基于选定方法及选定候选块来估计另一帧的块的运动。
在另一创新方面中,提供一种用于执行运动估计的方法。所述方法包含识别待搜索的视频数据的帧的候选块的数目,至少一个候选块对应于视频数据的另一帧的块。所述方法还包含基于候选块之间的距离来选择待搜索的候选块中的一或多者。所述方法进一步包含基于视频数据的格式来选择用于搜索选定候选块的方法。方法还包含基于选定方法及选定候选块来估计另一帧的块的运动。
在另一创新方面中描述用于执行运动估计的额外设备。所述设备包含用于识别待搜索的视频数据的帧的候选块的数目的装置,至少一个候选块对应于视频数据的另一帧的块。所述设备包含用于基于候选块之间的距离来选择待搜索的候选块中的一或多者的装置。所述设备还包含用于基于视频数据的格式来选择用于搜索选定候选块的方法的装置。设备进一步包含用于基于选定方法及选定候选块来估计另一帧的块的运动的装置。
在另一创新方面中,提供一种包括指令的计算机可读存储媒体。所述指令致使设备识别待搜索的视频数据的帧的候选块的数目,至少一个候选块对应于视频数据的另一帧的块。所述指令进一步致使设备基于候选块之间的距离来选择待搜索的候选块中的一或多者。指令还致使设备基于视频数据的格式来选择用于搜索选定候选块的方法。指令致使进一步致使设备基于选定方法及选定候选块来估计另一帧的块的运动。
附图说明
图1是说明视频编码与解码系统的框图。
图2是说明视频编码器的实例的框图。
图3为说明视频解码器的实例的框图。
图4A说明可用以识别参考帧中的候选块的运动向量候选者的实例。
图4B说明用于搜索候选块的次序的实例。
图5展示用于示范性候选块搜索的过程流程图。
图6说明低复杂性搜索过程的实例。
图7说明使用子块级别预测器的中等复杂性搜索过程的实例。
图8展示使用子块级别预测器的高复杂性搜索过程的实例。
图9说明用于搜索候选块的示范性过程的流程图。
图10说明用于执行运动估计的设备的框图。
图11说明包含候选运动估计处理器的运动估计单元的框图。
图12说明候选块的有效搜索的过程图。
具体实施方式
大体来说,本发明是针对用于帧间译码及/或帧内译码的候选块的有效搜索的技术。如本文所使用,术语“译码”可指编码、解码或两者。尽管本发明中所述的技术可适用于广泛多种实际应用,但为了实例及说明目的本发明将参考数字视频编码与解码。
图1是说明视频编码与解码系统的框图。如图1中所展示,系统10包含源装置12,源装置2经由通信信道16将经编码视频发射到接收装置14。源装置12可包含视频源18、视频编码器20及发射器22。接收装置14可包含接收器24、视频解码器26及视频显示装置28。系统10可经配置以根据本发明将技术应用到数字视频数据的有效译码。
在图1的实例中,通信信道16可包含任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个物理传输线、或无线及有线媒体的任何组合。信道16可形成基于包的网络(例如,局域网、广域网或例如因特网的全球网)的一部分。通信信道16通常表示用于将视频数据从源装置12发射到接收装置14的任何合适的通信媒体或不同通信媒体的集合。在一些实施方案中,通信信道16为双向的。在此类实施方案中,源装置12可接收来自接收装置14的反馈。所述反馈可用作编码过程的输入。
源装置12产生用于发射到接收装置14的视频。然而,在一些情况下,源装置12及接收装置14可以实质上对称方式来操作。举例来说,源装置12及接收装置14中的每一者可包含视频编码与解码组件。因此,系统10可支持视频装置(例如,源装置12及接收装置14)之间的单向或双向视频传输,例如用于视频流式传输、视频广播或视频电话。对于其它数据压缩及译码应用,源装置12及/或接收装置14可经配置以发送及接收或交换其它类型的数据,例如图像、语音或音频数据、或两个或两个以上视频、图像、语音及音频数据的组合。因此,视频编码与解码应用的论述是出于说明的目的而提供且不应被认为限制本发明的各个方面(如本文中广泛描述)。
视频源18可包含视频捕捉装置,例如一或多个视频摄像机、含有先前捕捉的视频的视频存档或者来自视频内容提供商的直播视频馈入。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频或实况视频与计算机产生的视频的组合。在一些情况下,如果视频源18是摄像机,那么源装置12及接收装置14可形成所谓的摄像机电话或视频电话。因此,在一些方面中,源装置12、接收装置14或两者可形成无线通信装置手机,例如移动电话手机。在每一情况下,所捕捉、预先捕捉或计算机产生的视频可由视频编码器20编码以用于经由发射器22、信道16及接收器24而从视频源装置12发射到视频接收装置14的视频解码器26。显示装置28可包含多种显示装置中的任一者,例如液晶显示器(LCD)、等离子显示器或有机发光二极管(OLED)显示器。
视频编码器20及视频解码器26可经配置以支持可缩放视频译码(SVC)以实现空间、时间及/或信噪比(SNR)可缩放性。在一些方面中,视频编码器20及视频解码器26可经配置以支持用于SVC的精细粒度SNR可缩放性(FGS)译码。编码器20及解码器26可通过支持基础层及一或多个可缩放增强层的编码、发射及解码来支持各种程度的可缩放性。对于可缩放视频译码来说,基础层载运具有最小质量级别的视频数据。一或多个增强层载运额外的位流以支持较高的空间、时间及/或SNR级别。
视频编码器20及视频解码器26可部分根据本文所述的技术及部分根据视频压缩标准(例如MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4高级视频译码(AVC))来操作。举例来说,本文使用的技术可用以增强或取代在视频压缩标准中所使用的相应技术,如所属领域的技术人员将理解。尽管图1中未展示,但在一些方面中,视频编码器20及视频解码器26可分别与音频编码器及译码器集成,且包含适当的MUX-DEMUX单元或其它硬件及软件,以处置共同数据流及单独数据流中的音频及视频两者的编码。如果适用,MUX-DEMUX单元可符合ITU H.223多路复用器协议或例如用户数据报协议(UDP)等其它协议。
由ITU-T视频译码专家组(VCEG)与ISO/IEC移动图片专家组(MPEG)一起将H.264/MPEG-4(AVC)标准制定为被称为联合视频小组(JVT)的集体合作伙伴的产物。H.264标准由ITU-T研究组描述于ITU-T推荐标准H.264“用于一般视听服务的高级视频译码(Advanced video coding for generic audiovisual services)”中且标注日期2005年3月,其在本文中可被称作H.264标准或H.264规范,或H.264/AVC标准或规范。
在一些方面中,对于视频广播,可将本发明中所述的技术应用到增强H.264视频译码,用于(例如)经由无线视频广播服务器或无线通信装置手机来陆地移动多媒体多播(TM3)系统中传递实时视频服务。在一些实施方案中,视频可根据其它标准来广播,例如DVB-H(数字视频广播-手持式)、ISDB-T(集成服务数字广播-陆地)或DMB(数字媒体广播)。因此,源装置12可为移动无线终端、视频流式传输服务器或视频广播服务器。然而,本发明中所描述的技术不限于任何特定类型的广播、多播或点对点系统。在广播的情况下,源装置12可广播视频数据的若干信道到多个接收装置,所述接收装置中的每一者可类似于图1的接收装置14。
视频编码器20及视频解码器26各自可经实施为一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。因此,可将视频编码器20及视频解码器26中的每一者至少部分地实施为集成电路(IC)芯片或装置,并包含于一或多个编码器或解码器中,其中任一者可在相应移动装置、订户装置、广播装置、服务器或类似者中集成为组合式编码器/解码器(CODEC)的一部分。另外,源装置12及接收装置14各自可在适用时包含用于发射及接收经编码视频的适当调制、解调、频率转换、滤波及放大器组件,包含足以支持无线通信的射频(RF)无线组件及天线。然而,为了易于说明,图1中未展示此类组件。
视频序列包含一系列视频帧。视频编码器20对个别视频帧内的像素块进行操作,以便对视频数据进行编码。所述视频块可具有固定的或变化的大小,且可根据指定的译码标准而大小不同。每一视频帧包含一系列切片。每一切片可包含一系列宏块,其可经布置成若干子块。作为实例,ITU-T H.264标准支持各种块大小的帧内预测(例如对于明度分量,16乘16、8乘8或4乘4,及对于色度分量,8乘8)以及各种块大小的帧间预测(例如对于明度分量,16乘16、16乘8、8乘16、8乘8、8乘4、4乘8及4乘4,及对于色度分量,对应的经按比例缩放的大小)。
较小视频块可提供较佳分辨率,且可用于包含较高细节水平的视频帧的定位。一般来说,可将宏块(MB)及各种子块视为视频块。另外,可将切片视为一系列视频块,例如,MB及/或子块。每一切片可为可独立解码的单元。在预测之后,可将变换执行于8乘8残余块或4乘4残余块上,及可在使用intra_16_by_16预测模式的情况下将额外变换应用于用于色度分量或明度分量的DC系数。
图1的系统10的视频编码器20及/或视频解码器26可经配置以并入下文所描述的方面,以用于针对帧间译码及/或帧内译码的候选块的有效搜索,以减少处理开销、处理复杂性及/或功率消耗。
图2是说明视频编码器的实例的框图。视频编码器20可至少部分地形成为一或多个集成电路装置,其可统称为集成电路装置。在一些方面中,视频编码器20可形成无线通信装置手机或广播服务器的一部分。视频编码器20可执行对视频帧内的块的帧内及帧间译码。帧内译码依赖于空间预测以减少或移除给定视频帧内的视频中的空间冗余。帧间译码依赖于时间预测以减少或移除视频序列的邻近帧内的视频中的时间冗余。对于帧间译码来说,视频编码器20执行运动估计以追踪邻近帧之间的匹配视频块的移动。
如图2中所示,视频编码器20接收待编码的视频帧内的当前视频区块30。在图2的实例中,视频编码器20包含运动估计单元32、参考帧存储装置34、运动补偿单元36、块变换单元38、量化单元40、逆量化单元42、逆变换单元44及熵编码单元46。视频编码器20还可包含存储器(包含存储器47)。可应用回路中解块滤波器(未图示)以对块进行滤波以移除块假影。视频编码器20还包含加法器48及加法器50。图2说明视频编码器20的用于对视频块进行帧间译码的时间预测组件。尽管为易于说明而未在图2中展示,但视频编码器20还可包含用于对一些视频块进行帧内译码的空间预测组件。
运动估计单元32比较视频块30与一或多个邻近视频帧中的块以产生一或多个运动向量。邻近帧可从参考帧存储装置34中检索,参考帧存储装置34可包括任何类型的存储器或数据存储装置以存储从先前经编码块重建构的视频块。可对可变大小的块执行运动估计,例如,16乘16、16乘8、8乘16、8乘8或更小的块大小。
在操作中,运动估计单元32识别邻近帧中的最紧密地匹配当前视频块30的一或多个块(例如,基于速率失真模型),且确定邻近帧中的所述块与当前视频块之间的位移。以此为基础,运动估计单元32产生一或多个运动向量(MV),其指示当前视频块30与来自用以对当前视频块30进行译码的参考帧的一或多个匹配块之间的位移的量值及轨迹。
运动向量可具有二分之一或四分之一像素精度,或甚至更精细的精度,从而允许视频编码器20以比整数像素定位高的精度来追踪运动且获得较佳预测块。在一些实施方案中,这些较精细精度向量可称作子样本。当使用具有分数像素值的运动向量时,在运动补偿单元36中实行内插操作。运动估计单元32使用特定准则(例如,速率失真模型)针对视频块识别最佳块分割及运动向量。举例来说,在双向预测的情况下,可不仅存在运动向量。使用所得块分割及运动向量,运动补偿单元36形成预测视频块。
视频编码器20通过在加法器48处从原始当前视频块30减去运动补偿单元36所产生的预测视频块来形成残余视频块。块变换单元38将变换(例如H.264/AVC中所使用的4乘4或8乘8整数变换)应用到残余块,从而产生残余变换块系数。量化单元40对残余变换块系数进行量化以进一步减小位速率。熵编码单元46对经量化系数进行熵译码以更进一步降低位速率。
大体来说,视频解码器26执行逆操作(包含解码及剖析),以解码及重建构经编码的视频,如(例如)参考图3将描述。
逆量化单元42及逆变换单元44分别应用逆量化及逆变换,以重建构残余块。加法器50将经重建构的残余块加到由运动补偿单元36产生的经运动补偿的预测块以产生经重建构的视频块,以存储于参考帧存储装置34中。经重建构视频块由运动估计单元32及运动补偿单元36使用以对后续视频帧中的块进行编码。
图3为说明视频解码器的实例的框图。视频解码器26可至少部分地形成为一或多个集成电路装置,其可统称为集成电路装置。在一些方面中,视频解码器26可形成无线通信装置手机的一部分。视频解码器26可执行对视频帧内的块的帧内及帧间解码。如图3中所示,视频解码器26接收来自接收器24(图1)的已由视频编码器20编码的经编码视频位流。在图3的实例中,视频解码器26包含熵解码单元52、运动补偿单元54、逆量化单元56、逆变换单元58及参考帧存储装置62。视频解码器还可包含存储器(包含存储器53),其可由熵解码单元52使用以用于译码数据的存储及检索。视频解码器26还可包含对加法器64的输出进行滤波的回路中解块滤波器(未图示)。视频解码器26还包含加法器64。图3说明视频解码器26的用于视频块的帧间解码的时间预测组件。尽管图3中未展示,但视频解码器26还可包含用于一些视频块的帧内解码的空间预测组件。
熵解码单元52接收经编码视频位流,且根据位流量化的残余系数、宏块译码模式及运动信息(其可包含运动向量及块分割)来进行解码。
运动补偿单元54从参考帧存储装置62接收运动向量及块分割与一或多个经重建构的参考帧以产生预测视频块。逆量化单元56逆量化(即,解量化)经量化的块系数。逆变换单元58将逆变换(例如,逆DCT或逆4乘4或8乘8整数变换)应用到系数以产生残余块。预测视频块接着通过加法器64用所述残余块产生以形成经解码块。解块滤波器(未图示)可应用于对经解码的块进行滤波以移除块假影。接着,将经滤波的块放置于参考帧存储装置62中,参考帧存储装置62提供用于解码后续视频帧的参考帧且还产生经解码的视频以驱动显示装置28(图1)。
如上文论述,视频编码器20可执行帧内译码及帧间译码或其它译码技术中的一者或两者,所述技术涉及通过搜索同一帧或邻近帧中的块的匹配块来对块(还称作“宏块”)进行译码。如上文论述,应注意,不同宏块可具有不同的大小及/或形状。待检查或搜索为潜在匹配块的块可在本文被称作“候选块”。
当编码高分辨率及/或高帧速率视频时,视频编码器20可具有有限的时间量以处理视频的图像。此意味着可存在针对每一图像的每一宏块的有限处理时间。
此外,在一些情况下,视频编码器20除了编码高分辨率及/或高帧速率视频之外,还可用以编码低分辨率及/或低帧速率视频。因此,本文描述提供用于译码的候选块的有效搜索的系统及方法的技术,所述技术减少处理时间且进一步(例如)在搜索执行多长时间及什么复杂性级别方面(例如,取决于待译码的视频的方面(例如,分辨率、帧速率等))为可调整的(例如,可编程的)。本文描述各种方面。应注意,这些方面可以任何组合来执行,包含视频编码器20或其它合适的硬件及/或软件的任何方面或将前述方面排除在外。
在一些方面中,视频编码器20经配置以用待编码的视频的格式(例如,帧大小及帧速率)来进行缩放。明确地说,视频编码器20可为可编程的,因为其经配置以调整所使用的处理循环的数目以便搜索候选块。所使用处理循环的数目可经手动调整,例如通过改变与视频编码器20相关联的编程(例如,调整寄存器值、算术逻辑等)以反映处理循环的适当数目。在一些方面中,所使用处理循环的数目可自动地调整,例如基于待编码视频的格式(例如,帧大小、帧速率等)及/或用以编码所述视频的译码方案(例如,标准)(例如,H.264、VP8、MPEG-4等)。举例来说,较高帧速率及/或较大帧大小(例如,阈值以上)可花费较多处理时间来编码全部,因此可分配较少数目个处理循环来搜索候选块。类似地,较低帧速率及/或较小帧大小(例如,阈值以下)可花费较少处理时间来编码全部,因此可分配较大数目个处理循环来搜索候选块。
在一些方面中,视频编码器20还可为可编程的,因为其经配置以根据可调整优先权方案来搜索候选块。举例来说,可基于用以编码视频数据的译码方案(例如,H.264、VP8、MPEG-4等)来调整优先权方案。因此,可将执行候选块的搜索的次序优化为特定译码方案。举例来说,一个优先权方案可包括在视频帧的中心附近的第一搜索候选块及在所述帧的周边的较迟搜索候选块。另外或替代地,取决于译码方案,可在帧内候选块(使用空间预测器)之前搜索帧间候选块(使用时间预测器),或在帧间候选块之前搜索帧内候选块。举例来说,在一些译码方案中,帧间候选块可使用比帧内候选块少的位来译码,且因此被首先搜索。在另一实例中,候选块可使用一或多个方法来搜索(例如,帧间(时间)搜索、帧内(空间)搜索、子样本搜索引擎(SSE)搜索、运动向量预测(MVP)搜索等)。这些一或多个方法可取决于用于编码的译码方案而按特定次序来搜索。
图4A说明可用以识别参考帧中的候选块的运动向量候选者的实例。候选块是参考帧中像素值的群组,例如参考帧的宏块。运动向量候选者与候选块可互换地使用。在帧425的宏块(MB)内展示兴趣点(POI)。除了兴趣点之外,可将若干个额外块用作候选块。举例来说,在图4A中,提供时间预测器值T1、T2、T3及T4430。
还可将若干空间预测器包含在所述帧的兴趣点附近。如图4A中所示,提供空间预测器值S1、S2、S3、S4、S5及S6。在一些实施方案中还可提供子样本搜索引擎值435。图4A中所示的兴趣点与SSE-1、SSE-2、SSE-3、SSE-4、SSE-5、SSE-6、SSE-7及SSE-8所识别的八个子样本搜索引擎值相关联。如上文论述,可用于搜索的候选块可包含比图4A中所示的多或少的值。
图4B说明用于搜索候选块的次序的实例。图4B中所示的次序是基于图4A中识别的候选块。每一运动向量候选者450与识别符(ID)455相关联。候选块450的排序未必意味着将搜索候选块。如将描述,可从搜索视频数据的特定部分中省略一些候选块450。
在图4B中展示的实施方案中,按优选搜索的次序来组织候选块450。待搜索的第一块为兴趣点。待搜索的第二块为与兴趣点偏移的块。举例来说,所述偏移可沿着垂直及/或水平偏移。待搜索的第三块为运动向量预测(MVP)。MVP候选者对应于预测运动向量周围的搜索候选块。待搜索的第四块为在第一子样本搜索引擎候选块(SSE-1)所识别的区域周围的候选块。可接着搜索空间预测(例如,帧内)块(S1-S6)中的每一者。可接着搜索SSE-2及SSE-3周围的候选块,之后接着时间(帧间)候选块T1到T4。接着可将搜索SSE-4到SSE-8所识别的剩余候选块。
图4B中所示的排序仅为排序的一个实例,且可有利地供特定译码方案、帧大小及帧速率使用。所述排序可用以识别将用于搜索候选块450的块的进程。
图5展示用于示范性候选块搜索的过程流程图。图5中所示的过程可由本文所描述的装置(例如源装置12)经由,例如视频编码器20来执行。图5中所示的过程将例如图4B中所示的候选块的排序用作输入。为易于解释,将使用图4B的排序来描述图5。然而,将理解所述排序可在一些实施方案中不同,图5的过程可适用于多种排序。所述过程的第二输入为使用三种方法中的每一者的待搜索的候选者数目。
在一些方面中,视频编码器20可以编程方式经配置以执行所示过程。视频编码器可经配置以将彼此不同的搜索候选块优先化。举例来说,一些候选块可在空间上靠近给定帧中的同一位置,且因此可包含类似的图像数据。搜索这些类似候选块可浪费有价值的存储器(例如,随机存取存储器(RAM))带宽、处理功率及/或其它源装置12资源。因此,视频编码器20可经配置以忽略(例如,排除)搜索其中已执行候选块的搜索的位置附近的候选块。
所述排除可基于可配置距离值或阈值。因此,如果若干候选块在空间上彼此在距离值或阈值距离(例如,从候选块的中心测量,从候选块的最近外围测量等)内,那么可针对此类候选块的小于全部(例如,一个)来搜索与宏块的潜在匹配,同时排除搜索其它此类候选块。在一些方面中,用以界定待搜索的候选块的块的选择/移除可与视频编码器20或其它硬件组件所执行的其它处理(例如,运动向量处理)平行执行,以便最大化处理循环的使用。举例来说,如将在下文进一步论述,图4B的某些候选块可由于与将搜索的候选块之间的类似性而从所述搜索过程移除。
在一些方面中,视频编码器20为可编程的,因为其经配置以在搜索候选块中具有可调整的搜索复杂性。举例来说,高复杂性搜索可导致搜索较低数目个候选者,而低复杂性搜索可导致搜索较高数目个候选者。因此,视频编码器20可经编程以适应待搜索的图像。举例来说,对于较高分辨率,较大大小的视频宏块可具有类似于(例如,较大的块在一帧内空间上类似或在多个帧之间时间上类似)较低分辨率视频的运动向量,且因此可利用低复杂性搜索来搜索较多候选者。然而,较低分辨率视频可不具有有类似运动向量的较大大小的宏块,而是可仅具有有类似运动向量的较小宏块。因此,对于此类较低分辨率视频,可利用高复杂性搜索,其搜索具有较佳质量的较少候选者。因此,视频编码器20通过调整待搜索的候选块的大小(例如,16乘16、16乘8、8乘16、8乘8等)而为可编程的/经配置以调整搜索候选块中的复杂性。可基于待搜索的图像(例如,图像的分辨率、视频的帧速率等)来调整大小。此外,可取决于待搜索的图像来使用不同组合中的一或多个大小的一或多个搜索。
在图5中,在节点502,使用低复杂性搜索来搜索兴趣点候选者。在宏块为16乘16宏块的实施方案中,将使用16乘16块来搜索兴趣点。
图6说明低复杂性搜索过程的实例。在一些实施方案中,可仅基于16乘16大小的候选块来搜索图像。因为在宏块级别确定运动值,所以推测包含在宏块中的每一子块具有相同运动向量。
在低复杂性搜索中,搜索16乘16候选块中的整个区域以匹配所述块及较小子块,成本是免费的(例如,没有计算成本)。由于将相同运动向量用于所有的块,所以搜索的准确性可降低。举例来说,可针对较大帧大小及/或较高帧速率(例如,阈值以上)来使用此类方面。在另一方面中,可基于16乘16大小的候选块来搜索一些块,基于16乘8大小的候选块来搜索其它块,基于8乘16大小的候选块来搜索其它块,及基于8乘8大小的候选块来搜索再其它块。可使用媒体及/或高复杂性搜索来完成这些,如将在后续段落中描述。
16乘16候选块可分为8乘8大小的四个相等子块。如图6中所展示,子块5(SB5)、子块6(SB6)、子块7(SB7)及子块8(SB8)包含在16乘16候选块中。每一子块具有相关联的成本值。在一个实例中,所述成本值可为像素之间的绝对差的总和。可将这些子块的成本值相加以产生较大子块的成本。举例来说,可将SB5与SB6相加以产生具有16乘8尺寸的子块1(SB1)。可将SB7与SB8相加以产生也是16乘8子块的子块2(SB2)。SB5与SB7的相加产生具有8乘16尺寸的子块3(SB3)。可将SB6与SB8相加以产生也是8乘16子块的子块4(SB4)。整个候选块的成本值用子块0(SB0)来表示,其未必为子块,而是每一构成子块(SB5-SB8)的成本值的聚合。SB0具有16乘16的尺寸。
返回到图5,对于给定宏块、帧或视频输入,可提供全局运动值。全局运动值指示用于宏块、帧或视频输入的像素的全部位移。在节点504,使用低复杂性搜索来搜索全局运动偏移候选者。如果全局运动偏移值为零,那么此搜索将与在节点502执行的搜索相同。在此类实施方案中,可跳过节点504处的搜索。如果全局运动偏移非零(例如,具有x偏移及/或y偏移值),那么搜索位于兴趣点处的候选块加或减全局偏移值。
在节点502处使用低复杂性搜索来搜索兴趣点候选者提供匹配的粗糙粒度确定,这是因为比较是基于仅具有用于宏块的16乘16预测器的搜索。
在节点508,排除进一步考虑候选块。所述排除是基于候选块到其它候选块的距离。可考虑的一个距离为距其它候选块的像素距离。如果用于候选块的距离小于指定阈值,那么可排除进一步考虑候选块,这是因为与候选者相关联的运动与其它候选块相比太小。可沿着x及/或y运动值来指定阈值。所述阈值可针对装置(例如,存储在存储器中)静态配置,经用户配置,或基于(例如)待编码的输入视频、装置的操作条件(例如,负载、网络业务、资源可用性)及其类似者而动态确定。
如果排除考虑太多候选者,那么视频编码器20可经编程以搜索重要候选者周围(例如兴趣点、MVP、子样本搜索引擎候选者),使得所分配搜索时间可用于宏块。如上文论述,不同译码方案可受益于不同的排序,如所属领域的技术人员将理解。
在节点510,使用低复杂性搜索来搜索非排除候选块的运动向量。
由于可已排除考虑一些候选块,所以需要产生成本值的候选块的数目可小于针对每个候选块执行计算的数目。作为一个非限制性益处,此提供编码视频数据所消耗的资源减少,这是因为处理较少候选块可需要比处理全部候选块集合少的处理时间、功率、存储器等。在一些实施方案中,运动向量值可通过与候选者运动向量处理器耦合的绝对差引擎的总和来产生。所述过程可使用其它估计程序(例如,平方差总和、绝对变换距离总和或相同者)或组合所述其它估计程序而获得非排除候选者的运动向量信息。
在决策节点512,进行关于经由节点502到510搜索的候选块数目是否大于待使用低复杂性搜索来搜索的候选者的所要数目的确定。
如果所搜索候选块的数目不大于低复杂性搜索的所要数目,那么过程继续到节点514。在节点514,使用低复杂性搜索来搜索非排除子样本搜索引擎周围的候选块及运动向量预测器候选块。此允许在尚未排除的子样本及运动向量预测器候选块周围的额外搜索,且因此可表示对当前宏块的有希望的匹配。过程接着继续到如将在下文描述的节点516。返回到决策节点512,如果所搜索候选块的数目小于或等于中等复杂性搜索的所要数目,那么过程继续到节点516。
在节点516,使用例如图7中所示的中等复杂性搜索来搜索候选块。
图7说明使用子块级别预测器的中等复杂性搜索过程的实例。图7中所示的搜索可包含执行1 16乘16搜索、1 16乘8搜索、1 8乘16搜索、及38乘8搜索。图7的搜索可具有与图6中所示的搜索相比高级别的计算复杂性。与图6的搜索不同,未推测子块全部具有相同的运动向量候选者。而是,在图7中,推测对应于位于候选块的最左上拐角的子块的子块0(SB′0)、子块5(SB′5)、对应于位于候选块的顶行中的16乘8子块的子块1(SB′1)、及对应于位于候选块的左手列中的8乘16子块的子块3(SB′3)具有相同的运动值。因此,确定SB′0的成本还提供SB′5、SB′1及SB′3的成本。
需要额外计算来产生16乘8子块(子块4(SB′4))的成本。执行进一步计算来产生8乘16子块(子块2(SB′2))的成本值。需要三个计算来产生8乘8子块(子块6(SB′6)、子块7(SB′7)及子块8(SB′8))中的每一者的成本值。
返回图5,在节点516,在中等复杂性搜索中,仅在针对先前子块进行搜索之后已知一些子块的候选块。举例来说,可仅在搜索SB′0之后确定SB′4候选块。类似地,SB′7候选块将必须等待SB′6被搜索,及SB′8将必须等待SB′6及SB′8被搜索。此外,与图6中所示的搜索(其基于宏块级别值,且假定所有子块具有相同的运动向量)以及图8中所示的搜索(其在子块级别上执行且假定每一子块具有不同的运动向量)相比,此搜索经描述为“中等”复杂性。
图8展示使用子块级别预测器的高复杂性搜索过程的实例。图8中所示的搜索过程假定每一子块具有其自身的运动向量。因此,每一子块包含一搜索以产生相关联成本值。
在节点518,根据高复杂性搜索(例如图8中所示)再次使用子块预测器值来搜索候选块。在高复杂性搜索中,每一子块可搜索不同的候选块,且一个子块的搜索可仅在执行先前子块搜索(例如,按光栅扫描次序)之后才开始。
下文表1总结了本文所述且展示于图6、7及8中的三个搜索。
表1
应注意,可基于待搜索的图像来设计及/或使用各种搜索方案具有用于不同块大小的不同数目,如所属领域的技术人员将理解。举例来说,对于较大帧大小及较高帧速率(例如,阈值以上),可执行较多搜索,例如关于图6描述的那些搜索。对于较小帧大小及较低帧速率(例如,阈值以下),可执行较多搜索,例如关于图7及8描述的那些搜索。在一些方面中,当使用多个搜索方案来搜索视频的候选块时,可重新使用从低复杂性搜索产生的绝对差值总和,其具有来自较高复杂性搜索的较准确运动向量成本以获得具有较低循环计数成本的较高级别的性能。
图9说明用于搜索候选块的示范性过程900的流程图。用于搜索的过程可通过本文所描述的装置中的一或多者来执行,例如源装置12。应注意,过程900中所描述的各种步骤可按与所说明的次序不同的次序来执行,及/或可添加或移除一些步骤,如所属领域的技术人员将理解及本发明的教示。
在节点902,设置/调整针对视频图像搜索的候选块的数目。可基于(例如)视频图像的格式(例如,帧大小、帧速率等)来设置待搜索的候选块的数目,以便达到所要编码时间。候选块中的至少一者对应于(例如,匹配)视频数据的另一帧的块。匹配可能未必指示相等,但给定候选块为最可能对应于执行运动估计的块的块。
在节点904,基于候选块之间的距离来选择待搜索的候选块中的一或多者。如上文论述,一些候选块可经定位足够靠近先前搜索的候选块,可排除搜索所述先前搜索的候选块附近的候选块。举例来说,可由于归因于其它块的空间类似性而不搜索某些块,且因此作为候选块而移除。
在节点906,基于视频数据的格式来选择用于搜索候选块的方法。所述方法可包含参考图6、7及8描述的搜索中的一或多者。
在节点908,基于选定方法及选定候选块来估计所述块的运动。
图10说明用于执行运动估计的设备的框图。设备1000仅展示可包含在用于执行运动估计的装置中的所述特征中的一些。装置1000包含候选计数产生器1005、候选选择器1010、搜索方法选择器1015及运动估计器1020。
候选计数产生器1005经配置以识别待搜索的视频数据的帧的候选块的数目。候选计数产生器1005可包含处理器、存储器、帧速率检测器、帧大小检测器及视频编码方法检测器中的一或多者。在一些实施方案中,用于识别候选块的数目的装置可包含候选计数产生器1005。
候选选择器1010经配置以基于候选块之间的距离来选择待搜索的候选块中的一或多者。候选选择器1010可包含处理器、存储器及比较器(例如,块比较器)中的一或多者。在一些实施方案中,用于选择候选块中的一或多者的装置包含候选选择器1010。
搜索方法选择器1015经配置以基于视频数据的格式来选择用于搜索选定候选块的方法。搜索方法选择器1015可包含处理器、存储器、比较器、帧速率检测器、帧大小检测器及视频格式检测器中的一或多者。在一些实施方案中,用于选择搜索方法的装置可包含搜索方法选择器1015。
运动估计器1020经配置以基于选定方法及选定候选块来估计另一帧的块的运动。运动估计器1020可包含处理器、存储器、比较器、算术单元、差异引擎(例如,绝对差总和引擎)及经配置以发射所产生运动估计的发射器中的一或多者。在一些实施方案中,用于基于选定方法及选定候选块来估计另一帧的块的运动的装置可包含运动估计器1020。
图11说明包含候选运动估计处理器的运动估计单元的框图。候选运动估计处理器1102可类似于图10中所示及描述的设备1000。运动估计单元32获得如上所述的当前视频块30。将当前视频块30提供到候选运动向量(MV)处理器1102。举例来说,像素提取1104可经配置以剖析当前视频块30,且提供包含在其中的像素值。候选运动向量处理器1102经配置以搜索视频数据的对应于当前视频块30的一部分的候选块。此过程在上文描述,例如在图5及9中。候选运动向量处理器1102还可接收预测器1106。预测器可包含如参考图4A论述的空间、时间及/或子取样预测器。
候选运动向量处理器1102提供识别待搜索的候选块的运动向量值。.所展示的候选运动向量处理器1102与运动向量(MV)成本计算器1108耦合。运动向量(MV)成本计算器1108经配置以产生与视频数据的一部分相关联的成本值。可将这些成本提供给绝对差总和/成本评估器1110。绝对差总和/成本评估器1110可经配置以识别多个所计算成本中的哪些最有可能(例如,匹配)视频数据的给定部分。绝对差总和/成本评估器1110还可经配置以基于当前视频块及候选运动向量处理器1102所识别的作为最接近匹配当前视频块30的候选块来产生当前视频块30的运动估计1112。运动估计1112可用于如上所述的进一步编码过程。举例来说,运动估计可用于分数搜索。
将理解,运动估计单元32可包含较少或额外的元件。为提供解释清晰性,运动估计单元32经展示包含与用于视频编码的可编程及可缩放整数搜索相关的特征。
图12说明候选块的有效搜索的过程图。所展示过程假定先前已确定候选块的排序。然而,在一些实施方案中,还可基于(例如)输入视频数据而动态地产生候选块的排序。
在节点1202,获得排除距离阈值。可将排除距离阈值提供作为x距离值及y距离值。在一些实施方案中,可将相同排除距离阈值用作x及y距离值。作为实例,排除距离阈值可为8。
在节点1204,分别获得对应于将使用关于图6、7及8而描述的搜索方案来搜索的候选块的所要数目的值NM1、NM2及NM3。所述值可(例如)从存储器(例如,用户所设置的偏好/配置)获得,或基于用于编码视频数据的译码方案而自动获得。候选块数目的总和不应该超过候选块排序的候选块的总数。因而,候选块的数目可对应于将由对应方法搜索的排序中的候选块的范围。举例来说,如果20个候选块用于特定搜索,那么NM1可为10,NM2可为4,及NM3可为1。在此类配置中,使用粗糙粒度方法将搜索不超过10个候选块,使用中等粒度方法将搜索不超过4个候选块,及使用精细粒度方法将搜索不超过1个候选块。
在节点1206,针对兴趣点执行初始搜索。所述兴趣点一般对应于定位于可能匹配当前块(所述过程试图寻找其匹配)的位置处的初始候选块。节点1206的搜索为基于(例如)低复杂性搜索的粗糙粒度搜索。粗糙粒度搜索可类似于上文参考图6所描述的搜索。
在节点1208,可针对定位于与兴趣点候选块偏移处的候选块来执行粗糙粒度搜索。偏移可为如上所述的全局运动偏移。如果在节点1206没有全局偏移或偏移的应用导致针对兴趣点而搜索的相同候选块,那么可省略在节点1208的搜索。
在高级别搜索兴趣点候选块及任何可能的偏移后,过程接着转到后续候选块的处理。在搜索每一后续候选块之前,可修剪后续候选块的列表以移除位于距另一候选块的距离阈值内的候选块。
在节点1210,初始化用于候选块的粗糙粒度搜索的数目的计数器。针对包含在排序中候选块的一部分执行子过程1212。作为实例,如果排序中候选块的数目为20,NM1为10,NM2为4,及NM3为1,那么可针对候选块5到20执行所展示的子过程1212。
在决策节点1214,确定是否正使用当前候选块。当前候选块对应于针对子过程1212识别的候选块的部分的候选块。所述确定可基于与候选块相关联的存储器中的旗标值。如果候选块未在使用中,那么过程继续到子过程1220,如将在下文描述。如果候选块尚未被排除搜索(例如,在使用中),那么过程继续到决策节点1216。
在决策节点1216,进行关于当前候选块的当前距离是否在阈值距离内的确定。举例来说,所述确定可识别当前候选块的x运动向量值是否小于x距离阈值。所述确定可为复合物,借以比较x及y距离。在一些实施方案中,满足一个比较(例如,仅x或仅y)可足以提供确定。
如果当前候选者在阈值距离内,那么当前候选块可被视为已移动这么小的距离而不被搜索。在节点1218,排除进一步搜索当前候选块。如上文论述,可将与当前候选块相关联的旗标设置为指示应排除进一步搜索候选块的值。如果当前候选块在阈值距离外部,那么当前候选块可仍被视为可能匹配被估计的所述块。
在检查当前候选块相对于阈值的运动后,提供子过程1220以比较当前候选块与后续候选块(例如,出现在当前候选块之后的次序中的候选块)中的每一者,从而确定是否可排除搜索后续候选块中的任一者。此排除还可基于当前候选块与后续块之间的距离(例如,距离阈值)。
针对出现在当前候选块之后的排序中的每一候选块来执行子过程1220。作为实例,如果排序中候选块的数目为20,NM1为10,NM2为4,NM3为1,且当前候选块的索引为5,那么可针对候选块6到20执行所展示的子过程1220。
子过程1220包含决策节点1222。决策节点1222确定是否存在待处理的后续候选者。如果在决策节点1222确定没有在当前候选块之后的其它候选块可用,那么子过程1220结束。过程继续到如将在下文进一步详细描述的节点1228。
返回到决策节点1222,如果后续候选块存在,那么在决策节点1224比较当前候选块与子过程1220所处理的后续候选块之间的差异与阈值距离。在一些实施方案中,此可包含获得两块的x及/或y运动值之间的差异的绝对值。
如果确定所述距离在阈值内,那么在节点1226,排除进一步搜索后续候选块。如上文论述,可将与被处理的后续候选块相关联的旗标设置为指示应排除进一步搜索候选块的值。在决策节点1224,如果确定后续候选块与当前候选块之间的距离在阈值之外,那么后续候选块保持使用且过程返回到如上所述的决策节点1222。
一旦子过程1220已处理每一后续候选块,那么在决策节点1228,进行关于当前候选块是否仍在使用的确定。先前处理可已指示,基于其运动信息或与其它候选块的比较运动,当前候选块不再在使用中。如果当前候选块不再在使用中,那么过程继续到节点1236,如将在下文描述。如果当前候选块仍在使用中,那么在节点1230,获得当前候选块的子块的运动值。举例来说,绝对差引擎的总和可用以产生运动值。在节点1232,粗糙粒度搜索计数器递增。在决策节点1234,如果计数器超过与中等粒度搜索(NM2)相关联的候选块的数目,那么过程跳过进一步处理且继续到节点1242,如将在下文进一步详细描述。
如果计数器不超过NM2,那么过程继续到决策节点1236。如果候选块次序包含额外候选块,那么将当前候选块设置为次序中的下一候选块。子过程1212接着返回到如上所述的决策节点1214。如果候选块次序列表已由子过程1212完全处理,那么子过程1212结束且过程继续到节点1240。
在节点1240,按次序继续向下搜索非排除候选者,直到执行指定数目个粗糙粒度搜索。在节点1242,搜索可能匹配被估计的块的非排除候选者以用于可能匹配当前被估计的块。中等粒度搜索大体指使用共享子块级别预测器用于所述搜索。节点1242的搜索可根据参考图7所展示及描述的搜索。
在节点1244,使用精细粒度搜索来搜索非排除候选者。精细粒度搜索大体指其中使用候选块的每一子块的预测器的搜索。节点1244的搜索可根据参考图8所展示及描述的搜索。
所描述运动估计的实验实施方案产生优于执行运动估计的现有编码器的若干改进。表2呈现与共同参考编码器相比的用于编码器的平均位速率损失的实例。与其它编码器相比的位速率损失的改进仅为所揭示方面的有效性的一个非限制性测量。
表2
如本文所使用,术语“确定”包含广泛多种动作。举例来说,“确定”可包括推算、计算、处理、导出、调查、查找(例如,在表、数据库或另一数据结构中查找)、断定及其类似者。而且,“确定”可包含接收(例如,接收信息)、存取(例如,在存储器中存取数据)及其类似者。而且,“确定”可包含解析、选择、挑选、建立及其类似者。
如本文所使用,术语“提供”包含广泛多种动作。举例来说,“提供”可包含在一位置中存储值用于后续检索,将值直接发射到接收者,发射或存储一值的参考及其类似者。“提供”还可包含编码、解码、加密、解密、确证、验证及其类似者。
如本文所使用,引用项目列表“中的至少一者”的短语指那些项目的任何组合,包含单个部件。作为实例,“a、b或c中的至少一者”意图涵盖:a、b、c、a-b、a-c、b-c及a-b-c。
所属领域的技术人员将理解可使用多种不同技艺及技术中的任一者来表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号及码片。
所属领域的技术人员将进一步了解,可将结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。此类功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施方案决策不应被解释为会导致脱离本发明的范围。
本文中所描述的技术可以硬件、软件、固件或其任何组合来实施。此类技术可实施于多种装置中的任一者中,例如通用计算机、无线通信装置手机或集成电路装置,其具有包含在无线通信装置手机及其它装置中的应用的多种用途。被描述为模块或组件的任何特征可共同实施于集成逻辑装置中或单独实施为离散但可互操作的逻辑装置。如果以软件实施,那么所述技术可至少部分地由包括程序代码的计算机可读数据存储媒体来实现,所述程序代码包含在执行时执行上文所描述的方法中的一或多者的指令。计算机可读数据存储媒体可形成计算机程序产品的一部分,所述计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体及其类似者。计算机可读媒体可为非暂时性存储媒体。另外或替代地,所述技术可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传达程序代码且可由计算机存取、读取及/或执行(例如,传播的信号或波)。
程序代码可由处理器执行,所述处理器可包含一或多个处理器,例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或其它等效集成或离散逻辑电路。此类处理器可经配置以执行本发明中描述的技术中的任一者。通用处理器可为微处理器;但在替代例中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器与DSP核心的组合或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指上述结构中的任一者、上述结构的任何组合,或适用于实施本文中所描述的技术的任何其它结构或设备。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码及解码的专用软件模块或硬件模块内或并入组合的视频编码器-解码器(CODEC)中。
本文中所揭示的方法包括用于实现所描述的方法的一或多个步骤或动作。在不偏离权利要求书的范围的情况下,方法步骤及/或动作可互换。换句话说,除非规定了步骤或动作的特定次序,否则在不偏离权利要求书的范围的情况下可对特定步骤及/或动作的次序及/或使用加以修改。
已描述本发明的各种实施例。这些及其它实施例在所附权利要求书的范围内。

Claims (36)

1.一种用于执行运动估计的设备,所述设备包括:
处理器,其经配置以:
识别待搜索的视频数据的帧的候选块的数目,至少一个候选块对应于所述视频数据的另一帧的块;
基于所述候选块之间的距离来选择待搜索的所述候选块中的一或多者;
基于所述视频数据的格式来选择用于搜索所述选定候选块的方法;及
基于所述选定方法及所述选定候选块来估计所述另一帧的所述块的运动。
2.根据权利要求1所述的设备,其中所述处理器经进一步配置以识别搜索所述候选块的次序。
3.根据权利要求1或2中任一权利要求所述的设备,其中所述候选块数目是基于所要编码时间来识别。
4.根据权利要求1至3中任一权利要求所述的设备,其中所述候选块数目是基于所述视频数据的所述格式来识别。
5.根据权利要求1至4中任一权利要求所述的设备,其中所述视频数据的所述格式包括所述帧的大小及所述视频数据的帧速率中的至少一者。
6.根据权利要求5所述的设备,其中所述候选块数目是基于所述帧的所述大小与帧大小阈值之间的比较来识别。
7.根据权利要求6所述的设备,其中所述候选块数目与所述帧大小阈值减去所述帧的所述大小成正比。
8.根据权利要求5至7中任一权利要求所述的设备,其中所述候选块数目是基于所述帧速率与帧速率阈值之间的比较来识别。
9.根据权利要求8所述的设备,其中所述候选块数目与所述帧速率阈值减去所述帧速率成正比。
10.根据权利要求1至9中任一权利要求所述的设备,其中候选块经选择以搜索所述候选块与另一候选块之间的距离是否大于可配置值。
11.根据权利要求10所述的设备,其中所述距离包括运动值。
12.根据权利要求1至11中任一权利要求所述的设备,其中选择所述用于搜索的方法包括:
识别块搜索大小;及
基于所述所识别块搜索大小及用于多个方法中的每一者的块搜索大小来从所述多个方法中的一者选择所述方法。
13.根据权利要求12所述的设备,所述块搜索大小是基于所述帧的所述大小与帧大小阈值之间的比较来识别。
14.根据权利要求13所述的设备,其中所述块搜索大小与所述帧大小阈值减去所述帧的所述大小成反比。
15.根据权利要求12至14中任一权利要求所述的设备,其中所述块搜索大小是基于所述帧速率与帧速率阈值之间的比较来识别。
16.根据权利要求15所述的设备,其中所述块搜索大小与所述帧速率阈值减去所述帧速率成反比。
17.根据权利要求1至16中任一权利要求所述的设备,其中所述次序是基于用以编码所述视频数据的译码方案来设置。
18.一种用于执行运动估计的方法,所述方法包括:
识别待搜索的视频数据的帧的候选块的数目,至少一个候选块对应于所述视频数据的另一帧的块;
基于所述候选块之间的距离来选择待搜索的所述候选块中的一或多者;
基于所述视频数据的格式来选择用于搜索所述选定候选块的方法;及
基于所述选定方法及所述选定候选块来估计所述另一帧的所述块的运动。
19.根据权利要求18所述的方法,其中处理器经进一步配置以识别搜索所述候选块的次序。
20.根据权利要求18或19中任一权利要求所述的方法,其中基于所要编码时间来识别所述候选块数目。
21.根据权利要求18至20中任一权利要求所述的方法,其中基于所述视频数据的所述格式来识别所述候选块数目。
22.根据权利要求18至21中任一权利要求所述的方法,其中所述视频数据的所述格式包括所述帧的大小及所述视频数据的帧速率中的至少一者。
23.根据权利要求22所述的方法,其中基于所述帧的所述大小与帧大小阈值之间的比较来识别所述候选块数目。
24.根据权利要求23所述的方法,其中所述候选块数目与所述帧大小阈值减去所述帧的所述大小成正比。
25.根据权利要求22至24中任一权利要求所述的方法,其中基于所述帧速率与帧速率阈值之间的比较来识别所述候选块数目。
26.根据权利要求25所述的方法,其中所述候选块数目与所述帧速率阈值减去所述帧速率成正比。
27.根据权利要求18至26中任一权利要求所述的方法,其中选择候选块以搜索所述候选块与另一候选块之间的距离是否大于可配置值。
28.根据权利要求27所述的方法,其中所述距离包括运动值。
29.根据权利要求18至28中任一权利要求所述的方法,其中选择所述用于搜索的方法包括:
识别块搜索大小;及
基于所述所识别块搜索大小及用于多个方法中的每一者的块搜索大小来从所述多个方法中的一者选择所述方法。
30.根据权利要求29所述的方法,基于所述帧的所述大小与帧大小阈值之间的比较来识别所述块搜索大小。
31.根据权利要求30所述的方法,其中所述块搜索大小与所述帧大小阈值减去所述帧的所述大小成反比。
32.根据权利要求29所述的方法,其中基于所述帧速率与帧速率阈值之间的比较来识别所述块搜索大小。
33.根据权利要求32所述的方法,其中所述块搜索大小与所述帧速率阈值减去所述帧速率成反比。
34.根据权利要求18至33中任一权利要求所述的方法,其中基于用以编码所述视频数据的译码方案来设置所述次序。
35.一种用于执行运动估计的设备,所述设备包括:
用于识别待搜索的视频数据的帧的候选块的数目的装置,至少一个候选块对应于所述视频数据的另一帧的块;
用于基于所述候选块之间的距离来选择待搜索的所述候选块中的一或多者的装置;
用于基于所述视频数据的格式来选择用于搜索所述选定候选块的方法的装置;及
用于基于所述选定方法及所述选定候选块来估计所述另一帧的所述块的运动的装置。
36.一种包括指令的计算机可读存储媒体,所述指令致使设备进行以下操作:
识别待搜索的视频数据的帧的候选块的数目,至少一个候选块对应于所述视频数据的另一帧的块;
基于所述候选块之间的距离来选择待搜索的所述候选块中的一或多者;
基于所述视频数据的格式来选择用于搜索所述选定候选块的方法;及
基于所述选定方法及所述选定候选块来估计所述另一帧的所述块的运动。
CN201380025027.XA 2012-05-14 2013-05-10 用于帧间译码或/帧内译码的候选块的可编程及可缩放搜索 Expired - Fee Related CN104285446B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261646808P 2012-05-14 2012-05-14
US61/646,808 2012-05-14
US13/801,622 US20130301727A1 (en) 2012-05-14 2013-03-13 Programmable and scalable integer search for video encoding
US13/801,622 2013-03-13
PCT/US2013/040532 WO2013173185A1 (en) 2012-05-14 2013-05-10 Programmable and scalable searching for candidate blocks for inter-coding or/intra coding

Publications (2)

Publication Number Publication Date
CN104285446A true CN104285446A (zh) 2015-01-14
CN104285446B CN104285446B (zh) 2018-11-09

Family

ID=49548597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380025027.XA Expired - Fee Related CN104285446B (zh) 2012-05-14 2013-05-10 用于帧间译码或/帧内译码的候选块的可编程及可缩放搜索

Country Status (7)

Country Link
US (1) US20130301727A1 (zh)
EP (1) EP2850833B1 (zh)
JP (1) JP6195912B2 (zh)
KR (1) KR20150018569A (zh)
CN (1) CN104285446B (zh)
IN (1) IN2014MN02186A (zh)
WO (1) WO2013173185A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111656783A (zh) * 2018-01-25 2020-09-11 韦勒斯标准与技术协会公司 使用基于子块的运动补偿进行视频信号处理的方法和装置
CN116506628A (zh) * 2023-06-27 2023-07-28 苇创微电子(上海)有限公司 一种基于像素块的编码预测器方法、编码系统及编码装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330171B1 (en) * 2013-10-17 2016-05-03 Google Inc. Video annotation using deep network architectures
KR102025362B1 (ko) * 2013-11-07 2019-09-25 한화테크윈 주식회사 검색 시스템 및 영상 검색 방법
US20150189269A1 (en) * 2013-12-30 2015-07-02 Google Inc. Recursive block partitioning
US10057590B2 (en) * 2014-01-13 2018-08-21 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
US9857871B2 (en) 2015-09-04 2018-01-02 Sony Interactive Entertainment Inc. Apparatus and method for dynamic graphics rendering based on saccade detection
US9930357B2 (en) * 2016-03-03 2018-03-27 Uurmi Systems Pvt. Ltd. Systems and methods for motion estimation for coding a video sequence
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US20200014918A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application accelerator
US11006143B2 (en) * 2018-07-11 2021-05-11 Apple Inc. Motion vector candidate pruning systems and methods
WO2020182216A1 (en) * 2019-03-14 2020-09-17 Mediatek Inc. Methods and apparatuses of video processing with motion refinement and sub-partition base padding
KR20220064950A (ko) * 2019-09-24 2022-05-19 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 프레임 간 예측 방법 및 장치, 기기, 저장 매체
US11330296B2 (en) 2020-09-14 2022-05-10 Apple Inc. Systems and methods for encoding image data

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5959672A (en) * 1995-09-29 1999-09-28 Nippondenso Co., Ltd. Picture signal encoding system, picture signal decoding system and picture recognition system
US20010046264A1 (en) * 1992-02-19 2001-11-29 Netergy Networks, Inc. Programmable architecture and methods for motion estimation
US20060018378A1 (en) * 2004-07-09 2006-01-26 Stmicroelectronics S.R.L. Method and system for delivery of coded information streams, related network and computer program product therefor
US20060203914A1 (en) * 2005-03-09 2006-09-14 Pixart Imaging Inc. Motion estimation method utilizing a distance-weighted search sequence
US20080084491A1 (en) * 2006-10-06 2008-04-10 Freescale Semiconductor Inc. Scaling video processing complexity based on power savings factor
US20080123733A1 (en) * 2006-11-29 2008-05-29 General Instrument Corporation Method and Apparatus for Selecting a Reference Frame for Motion Estimation in Video Encoding
CN101420613A (zh) * 2007-10-22 2009-04-29 索尼株式会社 图像处理装置及图像处理方法
US20100169410A1 (en) * 2003-09-15 2010-07-01 Viva Vision, Inc. Method and Apparatus for Distributing Multimedia to Remote Clients

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937770B1 (en) * 2000-12-28 2005-08-30 Emc Corporation Adaptive bit rate control for rate reduction of MPEG coded video
KR100681258B1 (ko) * 2004-10-02 2007-02-09 삼성전자주식회사 트랜스코딩을 위한 움직임벡터 정밀화 기반 출력움직임벡터 추정방법 및 이를 이용한 트랜스코더
US7881384B2 (en) * 2005-08-05 2011-02-01 Lsi Corporation Method and apparatus for H.264 to MPEG-2 video transcoding
KR100723861B1 (ko) * 2005-11-04 2007-05-31 한국전자통신연구원 고속 움직임 예측을 위한 고속 모드 검색 장치 및 방법
JP2007142809A (ja) * 2005-11-18 2007-06-07 Matsushita Electric Ind Co Ltd 映像記録装置
US8009923B2 (en) * 2006-03-14 2011-08-30 Celestial Semiconductor, Inc. Method and system for motion estimation with multiple vector candidates
JP4797999B2 (ja) * 2007-01-12 2011-10-19 株式会社日立製作所 画像符号化・復号化装置
FI3907999T3 (fi) * 2010-09-02 2023-12-14 Lg Electronics Inc Inter-ennustus
US20120195356A1 (en) * 2011-01-31 2012-08-02 Apple Inc. Resource usage control for real time video encoding

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010046264A1 (en) * 1992-02-19 2001-11-29 Netergy Networks, Inc. Programmable architecture and methods for motion estimation
US5959672A (en) * 1995-09-29 1999-09-28 Nippondenso Co., Ltd. Picture signal encoding system, picture signal decoding system and picture recognition system
US20100169410A1 (en) * 2003-09-15 2010-07-01 Viva Vision, Inc. Method and Apparatus for Distributing Multimedia to Remote Clients
US20060018378A1 (en) * 2004-07-09 2006-01-26 Stmicroelectronics S.R.L. Method and system for delivery of coded information streams, related network and computer program product therefor
US20060203914A1 (en) * 2005-03-09 2006-09-14 Pixart Imaging Inc. Motion estimation method utilizing a distance-weighted search sequence
US20080084491A1 (en) * 2006-10-06 2008-04-10 Freescale Semiconductor Inc. Scaling video processing complexity based on power savings factor
US20080123733A1 (en) * 2006-11-29 2008-05-29 General Instrument Corporation Method and Apparatus for Selecting a Reference Frame for Motion Estimation in Video Encoding
CN101420613A (zh) * 2007-10-22 2009-04-29 索尼株式会社 图像处理装置及图像处理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111656783A (zh) * 2018-01-25 2020-09-11 韦勒斯标准与技术协会公司 使用基于子块的运动补偿进行视频信号处理的方法和装置
CN111656783B (zh) * 2018-01-25 2024-03-08 三星电子株式会社 使用基于子块的运动补偿进行视频信号处理的方法和装置
CN116506628A (zh) * 2023-06-27 2023-07-28 苇创微电子(上海)有限公司 一种基于像素块的编码预测器方法、编码系统及编码装置
CN116506628B (zh) * 2023-06-27 2023-10-24 苇创微电子(上海)有限公司 一种基于像素块的编码预测器方法、编码系统及编码装置

Also Published As

Publication number Publication date
WO2013173185A1 (en) 2013-11-21
US20130301727A1 (en) 2013-11-14
EP2850833A1 (en) 2015-03-25
KR20150018569A (ko) 2015-02-23
IN2014MN02186A (zh) 2015-08-28
JP6195912B2 (ja) 2017-09-13
EP2850833B1 (en) 2016-05-25
WO2013173185A8 (en) 2014-12-18
JP2015520581A (ja) 2015-07-16
CN104285446B (zh) 2018-11-09

Similar Documents

Publication Publication Date Title
CN104285446A (zh) 用于帧间译码或/帧内译码的候选块的可编程及可缩放搜索
CN102474600B (zh) 解码视频数据的方法、装置和设备
CN102474622B (zh) 用于视频译码的方法和设备
KR101387255B1 (ko) 비디오 코딩을 위한 적응적 모션 분해능
CN102713895B (zh) 用于媒体编码的4x4变换
TWI520584B (zh) 用信號發送用於一葉層級編碼單元之子集的轉換係數的語法元素
CN103688541A (zh) 在视频译码中缓冲预测数据
CN103703781A (zh) 使用自适应运动向量分辨率的视频译码
JP2017508346A (ja) ビデオコーディングのための適応的な動きベクトル分解シグナリング
CN106664413B (zh) 层间视频编解码方法、设备和计算机可读记录介质
MX2014000718A (es) Exploracion de coeficientes en codificacion de video.
CN103891293A (zh) 用于色度分量的自适应环路滤波
CN103797801A (zh) 视频译码中的非正方形变换单元和预测单元
CN102792698A (zh) 用于运动内插法的色度高精度运动滤波
CN104247420A (zh) 转换系数译码
CN103202016A (zh) 用于视频译码的自适应运动向量分辨率信令
CN103141100A (zh) 用于视频译码的帧内平滑滤波器
CN104041045A (zh) 用于视频译码的二次边界滤波
TW201444350A (zh) 方形區塊預測
CN104284197A (zh) 视频编码器及其操作方法
US9277222B2 (en) Unified fractional search and motion compensation architecture across multiple video standards
CN104429076A (zh) 用于可缩放视频译码和3d视频译码的一般化残差预测
CN104205835A (zh) 导出最末位置译码的上下文以供视频译码
CN105474646A (zh) 子pu级先进残余预测
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof

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
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: 20181109

Termination date: 20210510