首页> 中国专利> 多个视频标准上的统一分数搜索和运动补偿架构

多个视频标准上的统一分数搜索和运动补偿架构

摘要

本发明揭示用于执行视频编码和视频解码中的至少一者的方法和系统。在一个实施方案中,所述系统包含控制器,所述控制器经配置以确定与视频数据的一部分相关联的视频标准,所述视频数据的每一部分与多个视频标准中的一者相关联。所述控制器进一步经配置以提供与将用于所述视频编码和解码中的至少一者的视频标准相关联的一组滤波器参数,以及至少一个滤波器,所述至少一个滤波器经配置以至少部分地基于所提供的所述组滤波器参数对从参考像素存储器接收的至少一个参考像素进行滤波。

著录项

  • 公开/公告号CN104272744A

    专利类型发明专利

  • 公开/公告日2015-01-07

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201380023831.4

  • 申请日2013-05-10

  • 分类号H04N19/587;H04N19/433;

  • 代理机构北京律盟知识产权代理有限责任公司;

  • 代理人宋献涛

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 04:40:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-01

    未缴年费专利权终止 IPC(主分类):H04N19/587 授权公告日:20180109 终止日期:20190510 申请日:20130510

    专利权的终止

  • 2018-01-09

    授权

    授权

  • 2015-05-20

    实质审查的生效 IPC(主分类):H04N19/587 申请日:20130510

    实质审查的生效

  • 2015-01-07

    公开

    公开

说明书

技术领域

本发明涉及视频译码,且特定来说涉及基于经参数化滤波器和处理架构来处置针对各种视频标准的不同滤波和处理要求。

背景技术

数字视频译码在广泛范围的装置中使用,包含数字电视、数字直播系统、无线通信装置、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、视频游戏装置、蜂窝式或卫星无线电电话,或类似物。数字视频装置实施例如MPEG-2、MPEG-4或H.264/MPEG-4高级视频译码(AVC)等视频压缩技术来更有效地发射和接收数字视频。

大体上,视频压缩技术执行空间预测、运动估计和运动补偿以减少或移除视频数据中固有的冗余。特定来说,帧内译码依赖于空间预测来减少或移除给定视频帧内的视频中的空间冗余。帧间译码依赖于时间预测来减少或移除邻近帧内的视频中的时间冗余。对于帧间译码,视频编码器执行运动估计以跟踪两个或两个以上邻近帧之间的匹配视频块的移动。运动估计产生运动向量,其指示视频块相对于一或多个参考帧中的对应视频块的位移。运动补偿使用运动向量来从参考帧产生预测视频块。在运动补偿之后,通过从原始视频块减去预测视频块来形成残余视频块。

发明内容

本发明的系统、方法和装置各自具有若干创新方面,其中并无单个一者唯一地负责本文揭示的所要属性。

在一个创新方面中,提供用于处理视频数据的系统。所述系统包含控制器,所述控制器经配置以确定与视频数据的一部分相关联的视频标准,所述视频数据的每一部分与多个视频标准中的一者相关联。所述控制器还经配置以基于所确定的视频标准提供用于视频数据的所述部分的一组滤波器参数。所述系统进一步包含至少一个滤波器,其经配置以至少部分地基于所提供的所述组滤波器参数对所述视频数据的所述部分中包含的至少一个参考像素进行滤波。

在另一创新方面中,提供处理视频数据的方法。所述方法包含检测与所述视频数据的一部分相关联的视频标准,所述视频数据的每一部分与多个视频标准中的一者相关联。所述方法还包含基于检测到的视频标准提供用于视频数据的所述部分的一组滤波器参数。所述方法进一步包含至少部分地基于所提供的所述组滤波器参数对所述视频数据的所述部分的至少一个参考像素进行滤波。

在又一创新方面中,提供存储处理器可读代码的非暂时性计算机可读媒体。所述处理器可读代码用于对一或多个处理器进行编程以执行处理视频数据的方法。所述方法包含检测与所述视频数据的一部分相关联的视频标准,所述视频数据的每一部分与多个视频标准中的一者相关联。所述方法还包含基于检测到的视频标准提供用于视频数据的所述部分的一组滤波器参数。所述方法进一步包含至少部分地基于所提供的所述组滤波器参数对所述视频数据的所述部分的至少一个参考像素进行滤波。

提供用于处理视频数据的额外创新系统。所述系统包含用于检测与所述视频数据的一部分相关联的视频标准的装置,所述视频数据的每一部分与多个视频标准中的一者相关联。所述系统还包含用于基于检测到的视频标准提供用于视频数据的所述部分的一组滤波器参数的装置。所述系统包含用于至少部分地基于所提供的所述组滤波器参数对所述视频数据的所述部分的至少一个参考像素进行滤波的装置。

附图说明

现在将参考用于统一分数搜索和运动补偿架构的本发明系统和方法的若干实施方案的附图来描述本发明的上文提到的特征和其它特征。所述系统和方法的所说明实施方案既定说明但不限制本发明。附图含有以下图式:

图1是说明视频编码和解码系统的框图。

图2是说明视频编码器的实例的框图。

图3是说明视频解码器的实例的框图。

图4是说明根据一个实施方案的用于统一分数搜索和运动补偿的系统的框图。

图5是说明根据另一实施方案的用于统一分数搜索和运动补偿的系统的框图。

图6说明根据一个实施方案的经参数化完整滤波器。

图7说明根据一个实施方案的经参数化二分之一滤波器。

图8A、8B和8C说明可在所描述FSE的实施方案中实施的相应类型的滤波的像素图。

图9A、9B、9C、9D和9E说明可用以执行图8A、8B和8C中所示的滤波的FSE中的管线配置的功能框图。

图10说明根据一个实施方案的用于统一分数搜索(例如,编码)和运动补偿(例如,解码)的系统的编码和解码操作。

图11展示用于处理视频数据的方法的过程流程图。

图12展示用于处理视频数据的装置的功能框图。

具体实施方式

所描述的系统和方法包含经参数化滤波器和可配置处理架构以解决针对各种标准的不同滤波和处理要求。经参数化滤波器采用存储在有效可存取位置(例如,RAM)中且取决于标准而相应获取的系数/参数。此配置的一个非限制性优点是可在多个标准上使用一组滤波器来实现视频处理。

除了动态配置滤波器之外,还可动态配置如何使滤波器管线化以处理视频数据。可将处理管线划分为多个级,所述级可经动态配置以根据例如视频标准执行多个滤波器。在下文描述的一个实施方案中,描述四级管线。划分为四个级的管线可通过例如参数来配置,使得可处置若干处理视频数据的方法。在一个配置中,级1可处置水平或垂直滤波,级2可处置第2层级滤波(可为水平或垂直的),级3可处置第3层级(或分数(例如,四分之一)像素)滤波,级4可提供与级2滤波器类似的功能性但作为对级3滤波器的补充。举例来说,级3滤波器与级4滤波器的组合可提供用于高效视频译码的水平和垂直滤波。例如这些配置的一个非限制性优点是多标准处理管线面积较小。减少实施管线所需的面积可得到比具有较大管线占据面积的装置小、轻、便宜且能量更高效的装置。所描述管线的又一非限制性优点是处置不同水平/垂直滤波器排序的灵活性。这允许对同一装置的容易的动态扩展以根据其它标准处理视频数据。

将相对于附图描述实施方案。相同参考标号贯穿详细描述指代相同元件。

大体上,本发明是针对用于视频数据译码的技术。如本文使用的术语“译码”可指代编码、解码或两者。虽然本发明中描述的技术可适用于广泛多种实践应用,但为了实例和说明目的,本发明将涉及数字视频编码和解码。

图1是说明视频编码和解码系统的框图。如图1中所示,系统10包含源装置12,其经由通信信道16将经编码视频发射到接收装置14。源装置12可包含视频源18、视频编码器20和发射器22。接收装置14可包含接收器24、视频解码器26和视频显示装置28。系统10可经配置以应用根据本发明的用于数字视频数据的有效译码的技术。

在图1的实例中,通信信道16可包括任何无线或有线通信媒体,例如射频(RF)频谱或者一或多个物理传输线,或无线和有线媒体的任一组合。信道16可形成例如局域网、广域网或全球网(例如,因特网)的基于包的网络的部分。通信信道16一般表示用于将视频数据从源装置12发射到接收装置14的任何合适通信媒体或不同通信媒体的集合。

源装置12产生视频以用于发射到目的地装置14。然而在一些情况下,装置12、14可以大体上对称方式操作。举例来说,装置12、14中的每一者可包含视频编码和解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频发射,例如,以用于视频流式传输、视频广播,或视频电话。对于其它数据压缩和译码应用,装置12、14可经配置以发送和接收或交换其它类型的数据,例如图像、语音或音频数据,或视频、图像、语音和音频数据中的两者或两者以上的组合。因此,视频编码和解码应用的论述是为了说明目的提供,且不应视为限制如本文广泛描述的本发明的各种方面。

视频源18可包含例如一或多个摄像机的视频俘获装置、含有先前俘获的视频的视频存档,或来自视频内容提供者的现场视频馈送。作为又一替代,视频源18可产生基于计算机图形的数据作为源视频,或直播视频与计算机产生的视频的组合。在一些情况下,如果视频源18为相机,那么源装置12和接收装置14可形成所谓的像机电话或视频电话。因此,在一些方面中,源装置12、接收装置14或两者可形成无线通信装置手持机,例如移动电话手持机。在每一情况下,经俘获、预俘获或计算机产生的视频可由视频编码器20编码以用于从视频源装置12经由发射器22、信道16和接收器24发射到视频接收装置14的视频解码器26。显示装置28可包含多种显示装置中的任一者,例如液晶显示器(LCD)、等离子显示器或有机发光二极管(OLED)显示器。

视频编码器20和视频解码器26可经配置以支持用于空间、时间和/或信噪比(SNR)可缩放性的可缩放视频译码(SVC)。在一些方面中,视频编码器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)等其它协议。

H.264/MPEG-4(AVC)标准由ITU-T视频译码专家组(VCEG)连同ISO/IEC动画专家组(MPEG)一起制定为被称为联合视频小组(JVT)的集体合作的产品。H.264标准通过ITU-T研究组且在日期2005年3月描述于ITU-T推荐H.264“用于一般视听服务的高级视频译码(Advanced video coding for generic audiovisual services)”中,其在本文中可被称为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和用于色度分量的8x8,以及各种块大小的帧间预测,例如用于亮度分量的16乘16、16乘8、8乘16、8乘8、8乘4、4乘8和4乘4和用于色度分量的对应缩放大小。

较小视频块可提供较好分辨率,且可用于视频帧的包含较高细节水平的位置。大体上,宏块(MB)和各种子块可视为视频块。另外,切片可视为一系列视频块,例如MB和/或子块。每一切片可为可独立解码的单元。在预测之后,可对8x8残余块或4x4残余块执行变换,且可在使用intra_16x16预测模式的情况下将额外变换应用于色度分量或亮度分量的4x4块的DC系数。

图1的系统10的视频编码器20和/或视频解码器26可经配置以采用如本发明中描述的用于视频译码的技术。特定来说,视频编码器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检索,其可包括任一类型的存储器或数据存储装置以存储从先前经编码块重构的视频块。运动估计可针对可变大小的块执行,例如16x16、16x8、8x16、8x8或更小的块大小。

在操作中,运动估计单元32例如基于速率失真模型识别最接近地匹配于当前视频块30的邻近帧中的一或多个块,且确定邻近帧中的块与当前视频块之间的位移。基于此,运动估计单元32产生一或多个运动向量(MV),其指示当前视频块30与来自用以对当前视频块30进行译码的参考帧的一或多个匹配块之间的位移的量值和轨迹。

运动向量可具有二分之一或四分之一像素精度,或甚至更精细的精度,从而允许视频编码器20以比整数像素位置高的精度跟踪运动且获得较好的预测块。当使用具有分数像素值的运动向量时,在运动补偿单元36中实行内插操作。运动估计单元32使用例如速率失真模型等特定准则识别用于视频块的最佳块分区以及一或多个运动向量。举例来说,在双向预测的情况下可不止存在运动向量。使用所得的块分区和运动向量,运动补偿单元36形成预测视频块。

视频编码器20通过在求和器48处从原始当前视频块30减去由运动补偿单元36产生的预测视频块而形成残余视频块。块变换单元38将例如H.264/AVC中使用的4x4或8x8整数变换等变换应用于残余块,从而产生残余变换块系数。量化单元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。视频解码器26还可包含存储器,包含存储器53,其可由熵解码单元52用于存储和检索译码数据。视频解码器26还可包含对求和器64的输出进行滤波的环路内解块滤波器(未图示)。视频解码器26还包含求和器64。图3说明用于视频块的帧间解码的视频解码器26的时间预测组件。虽然在图3中未展示,但视频解码器26还可包含用于一些视频块的帧内解码的空间预测组件。

熵解码单元52接收经编码视频位流且从所述位流解码经量化残余系数、宏块译码模式和运动信息,其可包含运动向量和块分区。

运动补偿单元54接收运动向量和块分区以及来自参考帧存储装置62的一或多个经重构参考帧以产生预测视频块。逆量化单元56逆量化(即,解量化)经量化块系数。逆变换单元58将逆变换(例如,逆DCT或逆4x4或8x8整数变换)应用于系数以产生残余块。求和器64随后将预测视频块与残余块求和以形成经解码块。可应用解块滤波器(未图示)以对经解码块进行滤波以移除成块假象。随后将经滤波块置于参考帧存储装置62中,其提供参考帧以用于后续视频帧的解码且还产生经解码视频以驱动显示装置28(图1)。

各种视频标准使用具有不同数目的分支、系数值的滤波器且可具有唯一的滤波次序要求。支持每一标准可能需要为所述标准中的每一者具体设计的特定滤波器和专用数据路径。这可导致大面积成本,且还大体上减少处置新标准的出现的系统稳健性。

图4是说明根据一个实施方案的用于统一分数搜索和运动补偿的系统的框图。系统400包含参考像素RAM 410、分数搜索引擎(FSE)420以及预测像素RAM 430。参考像素RAM 410存储参考像素,即,将由FSE 420滤波的数据。参考像素RAM 410可使用以下各项中的一或多者来实施:RAM(例如,DRAM、DDR SDRAM、SRAM、T-RAM、Z-RAM、TTRAM和类似物)、NVRAM或其它局部或远程(例如,联网)存储媒体。FSE 420处理从参考像素RAM 410接收的参考像素数据且将预测像素数据输出到预测像素RAM 430。系统400可包含在多种视频处理装置中,例如移动电话、平板计算机、数码相机、桌上型计算机、视频显示器、机顶盒、游戏控制台,或经配置以对视频数据进行编码和/或解码的其它装置。

在一个实施方案中,系统400基于经参数化滤波器和处理架构来处置针对各种视频标准的不同滤波和处理要求。视频编码的实例包含(但不限于)H.264、MPEG4-SP、MPEG4-ASP、VC1、VP6、VP8和高效视频译码(HEVC)。在一个实施方案中,经参数化滤波器利用存储在存储器中且取决于所选择或确定的标准而相应获取的各种参数(例如,滤波器系数、舍入和移位参数)。存储器可使用以下各项中的一或多者来实施:RAM(例如,DRAM、DDR SDRAM、SRAM、T-RAM、Z-RAM、TTRAM和类似物)、NVRAM或其它局部或远程(例如,联网)存储媒体。这可显著减少系统面积(例如,系统的物理占据面积)和/或简化总体系统配置,因为在多个标准上将仅需要一组滤波器。此外,系统400可处置不同的水平和垂直滤波器次序而不增加系统面积(将更详细描述),进而提供用于简单扩展到其它现存和未来标准的灵活性和稳健性。到其它现存和/或未来标准的扩展可通过仅在存储器中添加与那些新标准相关联的滤波器参数而不改变滤波器设计来进行。

图5是说明根据另一实施方案的用于统一分数搜索和运动补偿的系统的框图。系统500包含参考RAM 410、编码数据缓冲器514、运动向量预测器(MVP)516、FSE 420以及预测像素RAM 430。在当前实施方案中,FSE 420包含控制器540、滤波器参数存储器521、参考获取器518、滤波器参数引擎520、级1滤波器522、二分之一像素缓冲器532、级2滤波器534、级3滤波器538以及级4滤波器552。

在图5实施方案中,FSE 420还包含平均变换差和(SATD)引擎541、成本计算器542、模式决策元件544、预测RAM控制器546和空间估计器(SE)548。取决于实施方案,可将额外元件添加到系统500和/或从系统500移除。举例来说,当使用仅某些类型的滤波方案(例如,类型1和2滤波方案)时,可从系统500省略二分之一像素缓冲器532和级3滤波器538。此外,系统500可在无以下各项中的一或多者的情况下执行参数化滤波:编码数据缓冲器514、MVP 516、编码数据多路复用器536、成本计算器542、模式决策元件544、SATD引擎541、预测RAM控制器546和SE 548。

参考获取器518从参考RAM 410获取参考像素。存储器521可为RAM且存储与如上文论述的多个视频标准相关联的各种滤波器参数。在一个实施方案中,存储器521在表中存储分别与视频标准相关联的滤波器参数。滤波器参数引擎520从存储器521检索适当(或对应)滤波器参数且将其提供到级1滤波器522、级2滤波器534、级3滤波器538和级4滤波器552中的一或多者。在一个实施方案中,滤波器参数引擎520可不将滤波器参数提供到级3滤波器538,且级3滤波器538使用现存(例如,先前提供)滤波器参数对参考像素进行滤波。滤波器参数也可以可配置方式提供到级4滤波器552。在一个实施方案中,如图5中所示,存储器521位于滤波器参数引擎520之外。替代地,存储器521可位于滤波器参数引擎520内。

控制器540控制参考获取器518和滤波器参数引擎520以使得参考获取器518起始参考像素的获取且滤波器参数引擎520经激活以将适当参数提供到级1滤波器522和级2滤波器534。在一个实施方案中,控制器540控制参考获取器518和滤波器参数引擎520以使得参考像素获取和滤波器参数提供大体上同时执行。控制器540可确定在系统500中哪一视频标准正用于视频编码和解码,且相应地控制滤波器参数引擎520以使得将适当滤波器参数提供到级1滤波器522和级2滤波器534。

举例来说,如果用于H.264的第一组滤波器参数存储在存储器521中且控制器540确定H.264标准正用于系统500,那么控制器540控制滤波器参数引擎520以将第一组滤波器参数泵送到级1滤波器522和级2滤波器534。作为另一实例,如果用于VP8的第二组滤波器参数存储在存储器521中且控制器540确定VP8标准正用于系统500,那么控制器540控制滤波器参数引擎520以将第二组滤波器参数提供到级1滤波器522和级2滤波器534。

控制器540可基于例如FSE寄存器集合来确定哪一视频标准正用于视频编码和解码,所述寄存器例如经配置以存储与在装置上执行的过程相关联的信息的寄存器(例如,软件寄存器)。所述寄存器可取决于编码/解码模式而由不同实体编程。在编码模式中,主机可对FSE寄存器进行编程。举例来说,编码装置可设定FSE寄存器中指示视频标准的值。所述指示可与视频数据的特定部分相关联或可用于由编码器处理的所有视频数据。因此,FSE可动态地经配置以根据不同标准对视频数据进行编码。如果在解码装置中实施,那么流剖析器可剖析视频流,从标头提取标准信息,且将其存储到FSE寄存器中。如同编码,标准信息可针对解码器存储一次或与每一视频流相关联。因此,FSE可动态地经配置以对不同标准的视频数据进行解码。在其它实施方案中,可将标准信息提供到视频数据处理装置和存储FSE寄存器。举例来说,标准信息可经由网络(例如,在空中)发射到装置。在一些实施方案中,标准信息可由应用程序存储在FSE寄存器中。以此方式,可根据不同标准操作的多个应用程序可通过根据每一应用程序的操作需要动态地配置FSE来共享FSE。

在一个实施方案中,如图5中所示,控制器540、存储器521和滤波器参数引擎520位于FSE 420内。替代地,控制器540、滤波器参数引擎520和存储器521中的至少一者可位于FSE 420外且与FSE 420数据通信。在图5实施方案中,控制器540、存储器521和滤波器参数引擎520是单独元件且彼此传送数据。替代地,控制器540、滤波器参数引擎520和存储器521中的至少两者可组合为单个元件。举例来说,存储器521可并入到滤波器参数引擎520中。作为另一实例,滤波器参数引擎520可并入到控制器540中。作为另一实例,存储器521和滤波器参数引擎520可并入到控制器540中。

级1滤波器522基于从滤波器参数引擎520接收的特定滤波器参数对所获取参考像素进行滤波,且将经滤波像素输出到级2滤波器534。在一个实施方案中,如图5中所示,级1滤波器522包含级1A滤波器524、整数像素块528、中间像素块526和级1B滤波器530。级1A滤波器524基于从滤波器参数引擎520接收的特定滤波器参数对所获取参考像素进行滤波,且输出中间像素526。中间像素526可具有例如8×9像素或6×9像素的大小。级1B滤波器530基于所接收滤波器参数对所获取参考像素(此处,具有例如8×10像素的大小的整数像素528)进行滤波,且将经滤波像素输出到级2滤波器534。

级2滤波器534基于从滤波器参数引擎520接收的特定参数对级1滤波器的输出进行滤波,且将经滤波像素输出到SATD引擎541。对于一些滤波过程(例如,类型3或HEVC类型1滤波),级2滤波器534的输出也可提供到二分之一像素缓冲器532。在一个实施方案中,如图5中所示,二分之一像素缓冲器532可具有19×19像素的大小。中间像素526、整数像素528和二分之一像素缓冲器532中的像素的大小仅为实例,且像素可取决于实施方案而具有不同处理大小。此外,FSE 420可针对中间像素526、整数像素528和二分之一像素缓冲器532中的一或多者动态地确定像素大小。举例来说,像素大小可基于视频标准、视频数据(例如,位率、质量、错误率)来确定。所述大小可存储在FSE寄存器中且提供到FSE 420。

级3滤波器538对二分之一像素缓冲器532的输出进行滤波,且将经滤波像素输出到中间像素块550。如图示,中间像素块550是3x8x9像素块。级4滤波器552可从中间像素块550获得像素值且进一步对所述值进行滤波。经滤波值可随后提供到SATD引擎541。

级3滤波器538可对二分之一像素缓冲器532的输出执行双线性滤波。级1和2滤波器可用于所有类型的滤波方案(例如,类型1到3),且二分之一像素缓冲器532和级3滤波器可仅用于某一类型的滤波(例如,类型3)和/或用于某些标准(例如,类型1HEVC),如下文将进一步描述。

编码数据多路复用器536对从编码数据缓冲器514接收的经编码数据进行多路复用,且将经多路复用数据提供到SATD引擎541。SATD引擎541经配置以产生指示绝对变换差的和的值。在一个实施方案中,此值的产生包含对残余像素执行变换(例如,哈达玛(Hadamard))以获得经滤波像素与经多路复用数据之间的差。变换系数的绝对值的和可用作SATD得分的值。成本计算器542基于从SATD引擎541接收的SATD得分和从MVP 516接收的预测运动向量来估计速率失真成本(例如,帧间成本)。在图5中所示的实施方案中,成本计算器542也可接收来自空间估计器548的值作为对成本计算的输入。

空间估计器(SE)548执行帧内预测搜索以找到最佳形状及其帧内预测模式。其还基于局部SATD得分和从运动向量预测器516接收的相邻者模式来估计速率失真成本(帧内成本)。模式决策元件544基于所计算成本和帧内预测搜索结果决定例如帧间模式和帧内模式等各种模式中具有最小成本值的最佳者。预测RAM控制器546布置且组织在SATD引擎541中缓冲的预测像素,且将预测像素值提供到预测像素RAM 430。

图5中所示的系统500可经配置以执行编码和解码操作中的一者或两者。举例来说,系统500可用于根据一个实施方案的统一分数搜索(编码)和运动补偿(解码)。作为又一非限制性优点,同一系统500可用以编码和解码,进而减少处理视频数据可能需要的硬件量。这例如在一般为了装置的便携性而包含紧凑设计的无线通信装置中可为有利的。

为了对视频数据进行编码,参考获取器518可将从参考像素RAM 410检索的参考像素值作为整数像素528提供到级1B滤波器530。级1B经滤波像素值提供到级2滤波器534。在例如其中选择类型3滤波方案(下文描述)的一些实施方案中,所述值可进一步经由二分之一像素缓冲器532由级3滤波器538滤波。经滤波值可进一步由级4滤波器552滤波且随后连同来自编码数据缓冲器514的信息一起提供到SATD引擎541。由SATD引擎541产生的差值提供到成本计算器542。作为编码的部分,FSE 420产生用于运动向量(MV)候选的预测像素。所述候选可在获得MV成本之后丢弃。在一些实施方案中,所述候选可经存储以用于视频数据的参考像素或其它像素的后续编码处理。成本计算器542选择最佳编码MV,其可经由下文描述的解码路径处理以产生预测像素。

解码经由参考获取器518从参考像素RAM 410获得参考像素。像素值提供到级1A滤波器524。经滤波中间像素值526随后提供到级2滤波器534。在例如类型3滤波实施方案等一些实施方案中,级2经滤波像素值提供到二分之一像素缓冲器532。在此些实施方案中,级3滤波器538产生另外的经滤波像素值,如下文描述。经滤波值可进一步由级4滤波器552滤波。经滤波像素值提供到SATD引擎541且随后提供到预测RAM控制器546。RAM控制器546将像素信息存储在预测像素RAM 430中。在解码路径下,FSE 420通过级1滤波器522和级2滤波器534产生参考运动向量的预测像素,且将其存储在预测像素RAM 430中用于后续处理。

图6说明根据一个实施方案的经参数化完整滤波器。图7说明根据一个实施方案的经参数化二分之一滤波器700。取决于实施方案,可将额外元件添加到图6和图7中所示的滤波器650和700和/或从图6和图7中所示的滤波器650和700移除其它元件。滤波器650是经参数化完整滤波器,其可用于集1滤波器522和级2滤波器534。滤波器650包含两个二分之一滤波器700和700′、加法器668和672、寄存器670、移位器(>>N)674和限幅电路676。

参见图6,二分之一滤波器700基于从滤波器参数引擎520接收的滤波器参数(W0到W3)656对传入像素(i0到i3)652进行滤波。滤波器参数可包含滤波系数、舍入值、移位值、其它常数值、配置旗标或在滤波过程期间使用的其它值。二分之一滤波器700′基于从滤波器参数引擎520接收的滤波器参数(W7到W4)658对传入像素(i7到i4)654进行滤波。两个二分之一滤波器700和700′的输出由加法器668组合。在一个实施方案中,如图6中所示,可包含寄存器670以确保数据路径的时序与其它过程对准以用于管线化目的。加法器672经配置以组合(例如,求和)从滤波器参数引擎520接收的舍入参数660与寄存器670的输出。移位器674经配置以基于从滤波器参数引擎520接收的移位参数662对加法器672的输出进行移位。

在处理参考像素(例如,滤波、内插、舍入、移位)之后,经处理像素值可在有效范围之外。举例来说,在一些实施方案中,像素可使用从0到255的像素值来表示。在一些实施方案中可包含其它值范围,例如从0到15、0到1024或0到4096。限幅电路676可从装置中包含的存储器获得所述范围。所述范围可例如基于用以处理视频数据的视频标准、视频数据的特性(例如,位率、错误、噪声、标头信息)或装置的特性(例如,装置负载、可用装置功率、装置连接性状态)来静态或动态确定。限幅电路676经配置以将移位器674的输出(经滤波值)限幅于经配置范围。举例来说,在其中像素值可从0到255表示的实施方案中,如果对限幅电路676的输入小于0,那么限幅电路676输出0。此外,如果对限幅电路676的输入大于255,那么限幅电路676输出255。对于其它输入值,限幅电路676输出输入值。图6中所示的参数A表示所述信号的位宽度。取决于其使用的级,位宽度可不同。在一个实施方案中,如图6中所示,参数A对于级1滤波器522可为3且对于级2滤波器534可为5。

如图6中所示,经参数化完整滤波器650提供两个输出:经滤波、舍入、限幅像素值输出680和经滤波像素值输出682。这些输出中的一者或两者可用于与本文描述的过程一致的进一步处理。

参见图7,二分之一滤波器700包含逆乘法器732、逻辑门734、3位移位加法器736、加法器738、742和746,以及乘法器740和744。在一个实施方案中,如图7中所示,逆乘法器732和逻辑门734一起工作以使得第一参数(W0)为-1或0。举例来说,如果传入参数(W0)656a为0,那么逻辑门734将传入像素(i0)652a清零。如果传入像素(W0)656a为1,那么逆乘法器732和逻辑门734将传入像素(i0)652a转换为-i0。逻辑门734可例如为与(AND)门。

3位移位加法器736对参数(W1)656b和像素(i1)652b进行移位加法。加法器738组合(例如,求和)逻辑门734和3位移位加法器736的输出。乘法器740将参数(W2)656c与像素(i2)652c相乘。加法器742组合(例如,求和)加法器738和乘法器740的输出。乘法器744将参数(W3)656d与像素(i3)652d相乘。加法器746组合(例如,求和)加法器742和乘法器744的输出以产生经滤波像素值750。可提供经滤波像素值750用于与本文描述的过程一致的进一步处理。

图8A、8B和8C说明可在所描述FSE的实施方案中实施的相应类型的滤波的像素图。

参见图8A,在类型1滤波方案中,级1滤波器522对传入像素(i0、i1、i2和i3)水平地滤波,且随后级2滤波器534对经水平滤波的像素(h0和h1)垂直地滤波以产生经滤波像素(f0)。也就是说,在类型1滤波方案中,首先执行水平滤波且随后对经水平滤波像素(h0和h1)执行垂直滤波。类型1滤波方案一般用于例如VP6、VP8、HEVC、H.264色度和MPEG4-SP视频标准。

参见图8B,在类型2滤波方案中,级1滤波器522对传入像素(i0、i1、i2和i3)垂直地滤波,且随后级2滤波器534对经垂直滤波的像素(v0和v1)水平地滤波以产生经滤波像素(f0)。也就是说,在类型2滤波方案中,首先执行垂直滤波且随后对经垂直滤波像素(v0和v1)执行水平滤波。类型2滤波方案可用于针对VC1标准处理视频数据。

参见图8C,在类型3滤波方案中,级1滤波器522对传入像素(i0、i1、i2和i3)水平地滤波以产生经水平滤波像素值(h0和h1)。级1滤波器522还对传入像素(i0、i1、i2和i3)垂直地滤波以产生经垂直滤波像素值(v0和v1)。随后,级2滤波器534对经水平滤波像素值(h0和h1)和经垂直滤波像素值(v0和v1)垂直地滤波以产生二分之一像素(x0)。在级3滤波器538中对二分之一像素(x0)进行滤波以产生经滤波像素(f0)。级3滤波器可经配置以通过例如双线性滤波来产生经滤波像素值(f0)。类型3滤波方案一般用于例如H.264亮度和MPEG-ASP等视频标准。

图9A、9B、9C、9D和9E说明可用以执行图8A、8B和8C中所示的滤波的FSE中的管线配置的功能框图。在一个实施方案中,系统500可用于4级滤波器设计以支持各种视频标准中的各种垂直/水平滤波器次序要求。举例来说,系统500可支持所有类型1到3滤波方案。如果给定视频标准使用类型1或类型2滤波方案,那么可从FSE 420省略二分之一像素缓冲器532、级3滤波器538和级4滤波器552中的一或多者。在一些实施方案中,信息可流过省略的元件但不由所述元件处理(例如,穿过)。

图9A、9B、9C、9D和9E的图可省略图5中所示的FSE中包含的某些元件。将了解,图9A、9B、9C、9D和9E的图既定展示管线配置。由此,图9A、9B、9C、9D和9E中未展示的元件可存在于FSE中,但不包含于参考管线中。

图9A展示用于执行图8A中所示的滤波的FSE中的管线配置的功能框图。在类型1滤波方案下,参考获取器518从参考像素RAM 410获得视频数据的像素值。像素值提供到级1A滤波器524。所得中间像素526提供到级2滤波器534以产生最终经滤波像素值。图9A中所示的管线可用于VP8视频处理。与VP8相关联的滤波器参数可提供到级1滤波器522和级2滤波器534。

通过提供替代滤波器参数,图9A中所示的管线可用于HEVC解码。在此些实施方案中,用于参考运动向量的预测像素是通过级1A滤波器524和级2滤波器534的滤波来产生。所产生值可随后写入到预测像素RAM 430。

图9B展示用于执行图8A中所示的滤波的FSE中的另一管线配置的功能框图。图9B中所示的管线可用以在例如HEVC编码期间执行类型1滤波。级3滤波器538和级4滤波器552可从滤波器参数引擎520接收滤波器参数以用于执行HEVC编码。将参考像素路由到二分之一像素缓冲器532以用于如上文例如参考图5描述的处理。

图9C展示用于执行图8B中所示的滤波的FSE中的管线配置的功能框图。举例来说,图9C中所示的管线可用于VC1视频处理。在类型2滤波方案下,参考获取器518从参考像素RAM 410获得像素值。整数像素值528提供到级1B滤波器530。级1B滤波器530对所提供像素进行滤波以产生提供到级2滤波器534的中间像素值。级2滤波器534产生最终经滤波像素值。

图9D展示用于执行图8C中所示的滤波的FSE中的管线配置的功能框图。举例来说,图9D中所示的管线可用于H.264或MP4ASP(例如,MPEG 4-ASP)视频处理。在类型3滤波方案下,参考获取器518从参考像素RAM 410获得像素值。所述值提供到级1A滤波器524且作为整数像素528提供到级1B滤波器530。级1A滤波器524将中间像素值526提供到级2滤波器534。级1B滤波器530还将经滤波像素值提供到级2滤波器534。级2滤波器534产生提供到二分之一像素缓冲器532的经滤波像素值。级3滤波器538可获得存储在二分之一像素缓冲器532中的值且产生最终经滤波像素值。

图9E展示用于执行图8C中所示的滤波的FSE中的另一管线配置的功能框图。举例来说,图9E中所示的管线可用于类型3滤波以用于高效视频译码编码。所展示管线产生用于运动向量候选的预测像素。一旦获得运动向量成本,便可从存储器移除预测像素。成本可提供到模式决策以选择最佳编码运动向量。最佳编码运动向量随后前进通过HEVC解码路径以产生预测像素且写出结果。在一些实施方案中,图9B和9E中所示的管线可并行执行以加速视频处理(例如,HEVC编码)。

分数搜索引擎420可一般视为包含两对滤波器:级1和级2对,以及级3和级4对。通过更改提供到滤波器对的滤波器参数,可调整由分数搜索引擎420执行的视频处理以适应各种视频标准。表1提供图9A、9B、9C、9D和9E中描述的配置的实例性概述。对于例如表1中所示的由分数搜索引擎420处理的视频,信息可流过省略的元件但不由所述元件处理(例如,穿过)。

视频处理级3/级4滤波器对类型级1/级2滤波器对类型HEVC编码类型1类型3HEVC解码n/a类型1H.264类型3类型3MP4ASP类型3类型3VP8n/a类型1VC1n/a类型2

表1

图10是说明根据一个实施方案的用于统一分数搜索和运动补偿的过程1000的流程图。应注意,在过程1000中描述的各种步骤可以与所说明次序不同的次序执行和/或可添加或移除一些步骤,如所属领域的技术人员和本发明的教示将了解。

在节点1010处,确定哪一视频标准正用于视频编码和解码。如上文论述,控制器540可基于FSE软件寄存器中含有的视频标准识别信息来执行此功能。在节点1020处,获取适当滤波器参数且提供到级1滤波器522和级2滤波器534。控制器540可控制参考获取器518和滤波器参数引擎520以使得参考获取器518起始参考像素的获取且滤波器参数引擎520经激活以将参数提供到级1滤波器522、级2滤波器534、级3滤波器538和级4滤波器552中的一或多者。

在节点1030处,确定哪一类型的滤波方案正用于视频编码和解码。一旦确定标准,则也可如上文论述基于标准信息确定滤波类型。控制器540可执行此功能。

在节点1040处,如果确定使用类型1滤波方案,那么如图8A和图9A中所示执行类型1滤波。在节点1050处,如果确定使用类型2滤波方案,那么如图8B和图9B中所示执行类型2滤波。在节点1060处,如果确定使用类型3滤波方案,那么基于用于视频编码/解码的视频标准,如图8A和图9A或图8C和图9C中所示执行类型3滤波。

在节点1070处,产生预测像素且保存在预测像素RAM 430中。预测RAM控制器546可将预测像素值提供到预测像素RAM 430中。

在一个实施方案中,过程1000(或过程的至少部分)是以常规编程语言实施,例如C或C++或另一合适编程语言。在一个实施方案中,程序存储在系统500的计算机可存取存储媒体上,例如控制器540内的存储器或与控制器540数据通信的外部存储器(在FSE 420内部或外部)。在另一实施方案中,程序可存储在单独存储媒体中。存储媒体可包括用于存储信息的多种技术中的任一者。

图11展示处理视频数据的方法的过程流程图。所述方法可在图4中展示和描述的装置中的一或多者中实施。在节点1106处,检测与视频数据的一部分相关联的视频标准。视频数据的每一部分与多个视频标准中的一者相关联。在节点1108处,基于检测到的视频标准提供用于视频数据的所述部分的一组滤波器参数。在节点1110处,至少部分地基于所提供的所述组滤波器参数对视频数据的所述部分的至少一个参考像素进行滤波。

在一些实施方案中,存储包含在视频数据中的参考像素。在一些实施方案中,存储分别与多个视频标准相关联的多组滤波器参数。在一些实施方案中,使用与滤波器参数相同的存储器存储参考像素。在一些实施方案中,使用与滤波器参数不同的存储器存储参考像素。

图12展示用于处理视频数据的装置的功能框图。所属领域的技术人员将了解,视频处理装置可具有比图12中所示的简化装置1200多的组件。所示的装置1200仅包含有用于描述权利要求书的范围内的实施方案的一些显著特征的那些组件。装置1200包含标准识别器1206、参数引擎1208和像素滤波器1210。

标准识别器1206经配置以检测与视频数据的一部分相关联的视频标准,视频数据的每一部分与多个视频标准中的一者相关联。标准识别器1206可包含比较器、处理器、算术单元、数据剖析器和信号处理器中的一或多者。在一些实施方案中,用于检测视频标准的装置可包含标准识别器1206。

参数引擎1208经配置以基于检测到的视频标准提供用于视频数据的所述部分的一组滤波器参数。参数引擎1208可包含存储器、数据总线、时钟和处理器中的一或多者。在一些实施方案中,用于提供一组滤波器参数的装置可包含参数引擎1208。

像素滤波器1210经配置以至少部分地基于所提供的所述组滤波器参数对视频数据的所述部分的至少一个参考像素进行滤波。像素滤波器1210可包含逻辑门、加法器、乘法器、数据缓冲器、处理器和存储器中的一或多者。在一些实施方案中,用于对至少一个参考像素进行滤波的装置包含像素滤波器1210。

所属领域的技术人员将了解,可使用多种不同技艺和技术中的任一者来表示信息和信号。举例来说,贯穿以上描述可参考的数据、指令、命令、信息、信号、位、符号和码片可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任一组合来表示。

所属领域的技术人员将进一步了解,结合本文揭示的实施方案描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此可互换性,上文已大体在其功能性方面描述了各种说明性组件、块、模块、电路和步骤。此功能性实施为硬件还是软件取决于特定应用和强加于总体系统的设计约束。所属领域的技术人员可针对每一特定应用以各种方式实施所描述的功能性,但此些实施方案决策不应解释为造成脱离本发明的范围。

本文描述的过程(包含控制器540)可以硬件、软件、固件或其任一组合实施。此些技术可在多种装置中的任一者中实施,例如通用计算机、无线通信装置手持机或在具有包含无线通信装置手持机和其它装置中的应用的多种用途的集成电路装置。描述为模块或组件的任何特征可一起实施于集成逻辑装置中或单独地实施为离散但可互操作的逻辑装置。如果以软件实施,那么所述技术可至少部分地由包括包含指令的程序代码的计算机可读数据存储媒体实现,所述指令在执行时实行上文描述的方法中的一或多者。计算机可读数据存储媒体可形成可包含封装材料的计算机程序产品的部分。计算机可读媒体可包括存储器或数据存储媒体,例如,例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体和类似物。所述技术另外或替代地可至少部分地由计算机可读通信媒体实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传送程序代码且可由计算机存取、读取和/或执行,例如传播的信号或波。

可通过可包含一或多个处理器的处理器来执行程序代码,所述处理器例如为一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。此处理器可经配置以执行本发明中描述的技术中的任一者。通用处理器可为微处理器,但在替代例中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置。因此,如本文使用的术语“处理器”可指代前述结构中的任一者、前述结构的任一组合或适于实施本文所述的技术的任何其它结构或设备。另外,在一些方面中,可将本文描述的功能性提供于经配置以用于编码和解码的专用软件模块或硬件模块内,或并入于组合式视频编码器-解码器(CODEC)中。

如本文使用,术语“确定”涵盖广泛多种动作。举例来说,“确定”可包含运算、计算、处理、推导、调查、查找(例如,在表、数据库或另一数据结构中查找)、确认和类似动作。而且,“确定”可包含接收(例如,接收信息)、存取(例如,存取存储器中的数据)和类似动作。而且,“确定”可包含解析、选择、挑选、建立和类似动作。

如本文使用,术语“提供”涵盖广泛多种动作。举例来说,“提供”可包含将值存储在一位置中用于后续检索,将值直接发射到接收者,发射或存储对值的参考,和类似动作。“提供”还可包含编码、解码、加密、解密、证实、检验和类似动作。

如本文使用,涉及项目的列表“中的至少一者”的短语指代所述项目的任一组合,包含单个成员。作为实例,“a、b或c中的至少一者”既定涵盖a、b、c、a-b、a-c、b-c以及a-b-c。

虽然以上描述已指出各种实施方案的特征,但所属领域的技术人员将了解,在不脱离所附权利要求书的范围的情况下,可对所说明装置或过程做出形式和细节上的各种省略、替换和改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号