CN101313589A - 冗余数据编码方法和装置 - Google Patents
冗余数据编码方法和装置 Download PDFInfo
- Publication number
- CN101313589A CN101313589A CNA2006800439065A CN200680043906A CN101313589A CN 101313589 A CN101313589 A CN 101313589A CN A2006800439065 A CNA2006800439065 A CN A2006800439065A CN 200680043906 A CN200680043906 A CN 200680043906A CN 101313589 A CN101313589 A CN 101313589A
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- coding
- video
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明描述使用内容信息以用于编码多媒体数据的设备及方法。一种处理多媒体数据的方法包括:获得多媒体数据的内容信息;及编码所述多媒体数据以形成经编码位流,所述编码包含基于所述内容信息而将帧内编码数据的至少一个冗余块插入所述经编码位流中。在某些方面中,所述编码包含将所述多媒体数据编码成基础层及增强层,且其中使用用于所述基础层的量化参数来编码所述帧内编码数据。在其它方面中,使用用于所述增强层的量化参数来编码所述帧内编码数据。
Description
根据35 U.S.C.§119主张优先权
本专利申请案主张以下申请案的优先权:(a)2005年9月27日申请的题为“用于实时串流和移动广播应用的视频转码器(A VIDEO TRANSCODER FOR REAL-TIMESTREAMING AND MOBILE BROADCAST APPLICATIONS)”的第60/721,416号临时专利申请案;(b)2006年4月4日申请的题为“用于实时串流和移动广播应用的视频转码器(A VIDEO TRANSCODER FOR REAL-TIME STREAMING AND MOBILEBROADCAST APPLICATIONS)”的第60/789,377号临时专利申请案;(c)2005年10月17日申请的题为“用于基于场的视频的由运动补偿辅助的空间-时间解交错的方法和设备(METHOD AND APPARATUS FOR SPATIO-TEMPORAL DEINTERLACING AIDED BYMOTION COMPENSATION FOR FIELD-BASED VIDEO)”的第60/727,643号临时申请案;(d)2005年10月17日申请的题为“用于在视频串流中进行镜头检测的方法和设备(METHOD AND APPARATUS FOR SHOT DETECTION IN VIDEO STREAMING)”的第60/727,644号临时申请案;(e)2005年10月17日申请的题为“用于在视频串流中使用适应性GOP结构的方法和设备(A METHOD AND APPARATUS FOR USING ANADAPTIVE GOP STRUCTURE IN VIDEO STREAMING)”的第60/727,640号临时申请案;(f)2005年10月24日申请的题为“基于状态机的反向电视电影算法(INVERSE TELECINEALGORITHM BASED ON STATE MACHINE)”的第60/730,145号临时申请案;和(g)2006年4月3日申请的题为“用于基于场的多媒体数据的由运动补偿辅助的空间-时间解交错(SPATIO-TEMPORAL DEINTERLACING AIDED BY MOTION COMPENSATIONFOR FIELD-BASED MULTIMEDIA DATA)”的第60/789,048号临时申请案。所有这7份临时专利申请案均转让给本发明受让人且明确地以引用方式并入本文中。
对共同待决的专利申请案的参考
本专利申请案与2006年3月10日申请的题为“用于多媒体处理的内容分类(CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING)”的第11/373,577号美国专利申请案相关,所述美国专利申请案转让给本发明受让人且明确地以引用方式并入本文中。
技术领域
本申请案针对于用于对用于实时串流的视频数据进行视频代码变换的设备和方法,且更明确地说,针对于在移动广播应用中对用于实时串流的视频数据进行代码变换。
背景技术
由于有限的带宽资源和可用带宽可变性的缘故,有效的视频压缩在例如无线视频串流和视频电话等许多多媒体应用中是有用的。某些视频编码标准(例如MPEG-4(ISO/IEC)、H.264(ITU)或类似视频编码)提供非常适合例如无线广播等应用的高效编码。一些多媒体数据(例如,数字电视呈现)通常根据例如MPEG-2等其它标准来编码。因此,在无线广播之前,使用转码器将根据一个标准(例如,MPEG-2)编码的多媒体数据代码变换或转换为另一标准(例如,H.264)。
改进速率优化的编解码器可在错误复原、错误恢复和可缩放性方面提供优点。此外,使用根据多媒体数据自身确定的信息还可为编码提供额外改进,其中包括错误复原、错误恢复和可缩放性。因此,需要一种提供对多媒体数据的高效处理和压缩的转码器,其使用根据多媒体数据自身确定的信息,具有可缩放性,且具有错误复原,以用于包括串流多媒体信息的移动广播的许多多媒体数据应用中。
发明内容
所描述和说明的发明性基于内容的代码变换设备和方法中的每一者均具有若干方面,其中不是单个方面单独对其所需属性负责。在不限制本发明的范围的情况下,现将简要论述其较显著的特征。在考虑此论述之后且尤其是在阅读标题为“具体实施方式”的部分之后,将了解这种内容驱动代码变换的特征如何提供针对多媒体数据处理设备和方法的改进。
本文所描述的发明性方面涉及将内容信息用于编码多媒体数据的多种方法和编码器(例如,在转码器中使用的编码器)的多个模块或组件中。转码器可使用内容信息来协调代码变换多媒体数据。所述内容信息可从另一源(例如,与视频一起接收的元数据)接收。转码器可经配置以通过各种不同处理操作而产生内容信息。在一些方面中,转码器产生多媒体数据的内容分类,接着在一个或一个以上编码过程中使用所述内容分类。在一些方面中,内容驱动转码器可确定多媒体数据的空间和时间内容信息,且使用所述内容信息来在信道上进行内容感知的均匀质量编码和进行基于内容分类的压缩/位分配。
在一些方面中,获得或计算多媒体数据的内容信息(例如,元数据、内容量度和/或内容分类),且接着将其提供到转码器的组件以用于处理多媒体数据以进行编码。举例来说,预处理器可使用某种内容信息来进行场景变化检测,从而执行反向电视电影处理(“IVTC”)、解交错、运动补偿和噪音抑制(例如,2D小波变换)和空间-时间噪音消减(例如,假像移除、去环、去块和/或去噪音)。在一些方面中,预处理器还可使用内容信息来进行空间分辨率向下取样,例如在从标准清晰度(SD)向下取样到四分之一视频图形阵列(QVGA)时确定适当的“安全”和“作用处理”区域。
在一些方面中,编码器包括经配置以计算内容信息的内容分类模块。所述编码器可使用内容分类来进行位速率控制(例如,位分配)来确定每一MB的量化参数(QP)、运动估计(例如,执行颜色运动估计(ME),执行运动向量(MV)预测)、在提供基础层和增强层方面的可缩放性和错误复原,所述错误复原通过使用内容分类来影响预测分级结构和错误复原方案(包括(例如)适应性帧内刷新、边界对准过程)且在增强层中提供冗余I帧数据而获得。在一些方面中,转码器与数据多路复用器配合使用内容分类以在信道上维持最佳多媒体数据质量。在一些方面中,编码器可使用内容分类信息以迫使I帧周期性出现在经编码数据中以允许快速信道切换。此类实施方案还可利用经编码数据中可能出于错误复原目的而需要的I块,使得可通过预测分级结构来有效组合随机存取切换和错误复原(基于(例如)内容分类)以在增加抗错性的同时改进编码效率。
在一个方面中,一种处理多媒体数据的方法包括:获得多媒体数据的内容信息;及编码多媒体数据以形成经编码位流,所述编码包含基于内容信息而将帧内编码数据的至少一个冗余块插入经编码位流中。在某些方面中,内容信息包含内容分类。内容分类可基于多媒体数据的复杂性。另外,复杂性可包含空间复杂性、时间复杂性或空间复杂性及时间复杂性两者。在某些情况下,所插入的冗余数据的量与多媒体数据的复杂性成反比。说明性方面包括实例,其中帧内编码数据包含冗余数据的至少一个帧,冗余数据的至少一个帧包含I帧,帧内编码数据的至少一个冗余帧包含信道切换帧,及/或帧内编码数据的至少一个冗余块大体上包含I帧的全部。编码可包括将多媒体数据编码成基础层及增强层,且其中使用用于基础层的量化参数或用于增强层的量化参数来编码帧内编码数据。
在另一方面中,一种用于处理多媒体数据的设备包括:用于获得多媒体数据的内容信息的装置;及用于编码多媒体数据以形成经编码位流的装置,所述编码包含基于内容信息而将帧内编码数据的至少一个冗余块插入经编码位流中。
在又一方面中,一种用于处理多媒体数据的设备包括:经配置以获得多媒体数据的内容信息的内容分类器;及经配置以编码多媒体数据以形成经编码位流的编码器,所述编码包含基于内容信息而将帧内编码数据的至少一个冗余块插入经编码位流中。
在另一方面中,一种处理器经配置以获得多媒体数据的内容信息,及编码多媒体数据以形成经编码位流,所述编码包含基于内容信息而将帧内编码数据的至少一个冗余块插入经编码位流中。
在另一方面中,一种机器可读媒体,其包含指令,所述指令在执行时致使机器获得多媒体数据的内容信息,及编码多媒体数据以形成经编码位流,所述编码包含基于内容信息而将帧内编码数据的至少一个冗余块插入经编码位流中。
附图说明
图1A是包括用于在不同视频格式之间进行代码变换的转码器的媒体广播系统的方框图。
图1B是经配置以编码多媒体数据且提供经编码第一数据组和经编码第二数据组的编码器的方框图。
图1C是经配置以编码多媒体数据的处理器的方框图。
图2是图1的系统的转码器的实例的方框图。
图3是说明图2的转码器内使用的剖析器的操作的流程图。
图4是说明图2的转码器内使用的解码器的操作的流程图。
图5是说明由图2的转码器执行的操作序列的系统时序图。
图6是说明可在图2的转码器中使用的预处理器的操作和功能序列的流程图。
图7是可在图2的转码器中使用的示范性两遍编码器的方框图。
图8说明分类图表的实例,其说明如何使纹理值和运动值与内容分类相关联的一个方面。
图9是说明用于内容分类(例如在图7的编码器中使用)的示范性操作的流程图。
图10是说明速率控制(例如与图7的编码器一起使用)的操作的流程图。
图11是说明示范性运动估计器(例如与图7的编码器一起使用)的操作的流程图。
图12是说明示范性模式决策编码器功能(例如与图7的编码器一起使用)的操作的流程图。
图13是说明实现用于图7的编码器中的可缩放性的示范性操作的流程图。
图14是说明(例如)在图7的编码器中发生的实现速率失真数据流的示范性操作的流程图。
图15是说明编码复杂性、分配位与人类视觉质量之间的关系的曲线图。
图16是说明非线性场景检测公式的曲线图。
图17A为用于编码多媒体数据以将冗余数据插入经编码数据中以获得错误复原的过程的流程图,其中编码基于内容信息。
图17B为可执行图17A中所说明的过程1700的编码设备1710的方框图。
图18是说明使用运动估计/补偿的解交错过程的图。
图19是多媒体通信系统的方框图。
图20是说明增强层和基础层中的视频位流的组织的图。
图21是说明切片与视频帧边界的对准的图。
图22是说明预测分级结构的方框图。
图23是说明基于内容信息来编码多媒体数据的方法的流程图。
图24是说明基于内容信息层级来编码多媒体数据以对准数据边界的方法的流程图。
图25是说明数据帧的安全作用区域和安全标题区域的图解。
图26是说明数据帧的安全作用区域的图解。
图27是说明基于多媒体内容信息使用适应性帧内刷新来编码多媒体数据的过程的流程图。
图28是说明基于多媒体内容信息使用冗余I帧来编码多媒体数据的过程的流程图。
图29说明当前帧与先前帧之间的运动补偿向量MVP和当前帧与下一帧之间的运动补偿向量MVN。
图30是说明镜头检测的流程图。
图31是说明编码基础层和增强层的流程图。
图32是说明编码宏区块的示意图。
图33是说明用于编码基础层和增强层的模块的示意图。
图34展示基础层和增强层系数选择器过程的实例。
图35展示基础层和增强层系数选择器过程的另一实例。
图36展示基础层和增强层系数选择器过程的另一实例。
图37是说明基于内容信息来编码多媒体数据的流程图。
图38是说明在反向电视电影处理过程中可能的系统决策的图。
图39说明宏区块中待由去块过程来滤波的边界。
图40是说明空间-时间解交错过程的图。
图41说明1D多相重取样的实例。
图42是说明视频串流中的适应性GOP结构的实例的流程图。
请注意,在适当处,在所述附图的若干视图中,相同数字始终指代相同零件。
具体实施方式
以下详细描述针对于在本发明中论述的某些方面。然而,可以许多不同方式实施本发明。此说明书中提到“一个方面”或“一方面”意指结合所述方面描述的特定特征、结构或特性包括在至少一个方面中。在所述说明书中多处出现短语“在一个方面中”、“根据一个方面”或“在一些方面中”未必全部指代相同方面,也不是与其它方面相互排斥的单独或替代方面。此外,描述可由某些方面且不由其它方面展现的各种特征。类似地,描述可能是某些方面但不是其它方面的要求的各种要求。
以下描述包括多个细节以提供对所述实例的彻底理解。然而,所属领域的技术人员了解到,即使本文并未描述或说明实例或方面中的过程或装置的每个细节,也可实践所述实例。举例来说,可在不说明组件的每个电连接或每个电元件的方框图中展示电组件,以免以不必要的细节混淆所述实例。在其它情况下,可详细展示此类组件、其它结构和技术以进一步解释所述实例。
本发明涉及使用正被编码的多媒体数据的内容信息来控制编码和代码变换的设备和方法。(多媒体数据的)“内容信息”或“内容”是意指与多媒体数据的内容有关的信息的广义术语,且可包括(例如)元数据、从多媒体数据计算得的量度和与一个或一个以上量度(例如,内容分类)相关联的内容相关信息。依据特定应用而定,可向编码器提供内容信息或由编码器确定内容信息。内容信息可用于多媒体数据编码的许多方面,包括场景变化检测、时间处理、空间-时间噪音消减、向下取样、针对量化、可缩放性、错误复原确定位速率、维持广播信道上的最佳多媒体质量和快速信道切换。通过使用这些方面中的一者或一者以上,转码器可协调处理多媒体数据且产生与内容有关的经编码多媒体数据。本文中描述代码变换方面的描述和图式还可应用于编码方面和解码方面。
转码器设备和方法涉及从一种格式代码变换到另一格式,且本文中具体描述为涉及将MPEG-2视频代码变换为增强型可缩放H.264格式以供经由无线信道传输到移动装置,其说明某些方面。然而,对将MPEG-2视频代码变换为H.264格式的描述不希望限制本发明的范围,而仅仅是示范性说明本发明的某些方面。所揭示的设备和方法提供支持具有随机存取和分层能力的错误复原编码的高效结构,且还可应用于代码变换和/或编码除MPEG-2和H.264以外的视频格式。
本文所使用的“多媒体数据”或简称“多媒体”是包括视频数据(其可包括音频数据)、音频数据或视频数据和音频数据两者的广义术语。本文作为广义术语使用的“视频数据”或“视频”指代基于帧或基于场的数据,其包括一个或一个以上图像或相关图像序列,包含文本、图像信息和/或音频数据,且还可用于指代多媒体数据(例如,可互换使用所述术语),除非另外规定。
下文描述转码器的各种组件的实例和可使用内容信息来编码多媒体数据的过程的实例。
图1A是说明多媒体数据广播系统100的一些方面的数据流的方框图。在系统100中,多媒体数据提供者106将经编码多媒体数据104传达到转码器200。经编码多媒体数据104由转码器200接收,在方框110中转码器200将多媒体数据104处理为原始多媒体数据。方框110中的处理对经编码多媒体数据104进行解码和剖析,且进一步处理所述多媒体数据以准备将其编码为另一格式。将已解码多媒体数据提供到方框112,在方框112处将多媒体数据编码为预定多媒体格式或标准。一旦多媒体数据已经被编码,便在方框1 14处准备经由(例如)无线广播系统(例如,蜂窝式电话广播网络或经由另一通信网络)进行传输。在一些方面中,已经根据MPEG-2标准对所接收多媒体数据104进行编码。在已经解码已代码变换的多媒体数据104之后,转码器200将多媒体数据编码为H.264标准。
图1B是可经配置以执行图1A的方框110和112中的处理的转码器130的方框图。转码器130可经配置以接收多媒体数据,将多媒体数据解码并剖析为分包基本流(例如,字幕、音频、元数据、“原始”视频、CC数据和显示时间戳记),将所述分包基本流编码为所需格式,且提供经编码数据以供进一步处理或传输。转码器130可经配置以用两个或两个以上数据组(例如,经编码的第一数据组和经编码的第二数据组)提供经编码数据,这被称为分层编码。在多个方面的一些实例中,可将分层编码方案中的各个数据组(或层)以不同质量等级进行编码,且对其进行格式化,使得在第一数据组中编码的数据与在第二数据组中编码的数据相比具有较低质量(例如,当播放时提供较低的视觉质量等级)。
图1C是处理器140的方框图,处理器140可经配置以对多媒体数据进行代码变换,且可经配置以执行图1A的方框110和112中所描绘的部分或全部处理。处理器140可包括模块124a...n以执行本文描述的代码变换过程(包括解码、剖析、预处理和编码)中的一者或一者以上,且使用内容信息进行处理。处理器140还可包括内部存储器122,且可经配置以直接或通过另一装置间接与外部存储器120通信。处理器140还包括通信模块126,其经配置以与处理器140外部的一个或一个以上装置通信,其中包括接收多媒体数据和提供经编码数据(例如在第一数据组中编码的数据和在第二数据组中编码的数据)。在多个方面的一些实例中,可将分层编码方案中的各个数据组(或层)以不同质量等级进行编码,且对其进行格式化,使得在第一数据组中编码的数据与在第二数据组中编码的数据相比具有较低质量(例如,当播放时提供较低的视觉质量等级)。
转码器130或预处理器140(其经配置以进行代码变换)中的组件和包含在其中的过程可由硬件、软件、固件、中间件、微码或其任何组合实施。举例来说,剖析器、解码器、预处理器或编码器可以是单独组件,作为硬件、固件、中间件并入在另一装置的组件中,或在处理器上执行的微码或软件中实施,或者其组合。当在软件、固件、中间件或微码中实施时,执行运动补偿、镜头分类和编码过程的程序码或码段可存储在例如存储媒体等机器可读媒体中。码段可表示处理程序、函数、子程序、程序、例行程序、子例行程序、模块、软件包、种类,或指令、数据结构或程序语句的任何组合。可通过传递和/或接收信息、数据、自变量、参数或存储器内容来将一个码段耦合到另一码段。
转码器结构的说明性实例
图2说明可用于图1的多媒体广播系统100中所说明的转码器200的转码器的实例的方框图。转码器200包含剖析器/解码器202、预处理器226、编码器228和同步层240,下文将进一步加以描述。转码器200经配置以使用多媒体数据104的内容信息进行代码变换过程的一个或一个以上方面(如本文所描述)。内容信息可通过多媒体元数据从位于转码器200外部的来源获得或由转码器(例如,由预处理器226或编码器228)计算。图2中展示的组件说明可包括在使用内容信息进行一个或一个以上代码变换过程的转码器中的组件。在特定实施方案中,可排除转码器200的组件中的一者或一者以上,或可包括额外组件。另外,描述转码器和代码变换过程的若干部分,以便允许所属领域的技术人员即使在本文未描述过程或装置的每个细节的情况下仍可实践本发明。
图5说明时序图以作为转码器200的各个组件和/或过程的操作的时间关系的图解说明。如图5所示,首先在任意时间零(0)处由剖析器205(图2)接收经编码串流视频104(经编码多媒体数据,例如MPEG-2视频)。接下来,对所述视频流进行剖析501、多路分用502和解码503,这例如通过剖析器205结合解码器214来进行。如所说明的,这些过程可并行发生(具有轻微定时偏移),以便将处理数据的流输出提供到预处理器226(图2)。在时间T1 504处,一旦预处理器226已经从解码器214接收到足够数据以开始输出处理结果,剩余处理步骤便变得在实质上按顺序进行,其中在预处理之后,依序发生第一遍编码505、第二遍编码506和再编码507,直到在时间Tf 508处完成再编码为止。
本文描述的转码器200可经配置以对各种多媒体数据进行代码变换,且所述过程中的许多者适用于对任何类型的多媒体数据进行代码变换。虽然本文提供的一些实例明确涉及将MPEG-2数据代码变换为H.264数据,但这些实例并不打算将本发明限于此数据。下文描述的编码方面可应用于将任何适合的多媒体数据标准代码变换为另一适合的多媒体数据标准。
剖析器/解码器
再次参看图2,剖析器/解码器202接收多媒体数据104。剖析器/解码器202包括传送流剖析器(“剖析器”)205,其接收多媒体数据104且将所述数据剖析为视频基本流(ES)206、音频ES 208、显示时间戳记(PTS)210和例如字幕212等其它数据。ES携载来自单个视频或音频编码器的一种类型的数据(视频或音频)。举例来说,视频ES包含用于数据序列的视频数据,所述数据序列包括序列标头和所述序列的所有子部分。分包基本流或PES由已经制成多个包的单个ES组成,其中所述包的每一者通常以附加的包标头开始。PES流仅含有来自一个来源(例如,来自一个视频或音频编码器)的一种类型的数据。PES包具有可变长度,所述长度不对应于传送包的固定包长度,且可比传送包长得多。当从PES流形成传送包时,可紧随传送包标头之后将PES标头放置在传送包有效负载的开始处。剩余PES包内容填充连续传送包的有效负载,直到所述PES包全部被使用为止。可(例如)通过用字节(例如,字节=0xFF(全部为1))填满来将最后传送包填充到固定长度。
剖析器205将视频ES 206传达到解码器214,解码器214是此处所示的剖析器/解码器202的一部分。在其它配置中,剖析器205和解码器214是单独组件。将PTS 210发送到转码器PTS产生器215,转码器PTS产生器215可产生特定针对于转码器200的单独显示时间戳记以用于排列待从转码器200发送到广播系统的数据。转码器PTS产生器215可经配置以将数据提供到转码器200的同步层240以协调数据广播的同步。
图3说明当剖析出上述各个分包基本流时剖析器205可遵循的过程300的一个实例的流程图。过程300在方框302处开始,此时从内容提供者106(图1)接收多媒体数据104。过程300前进到方框304,在此处执行剖析器205的初始化。初始化可由独立产生的获取命令306触发。举例来说,独立于剖析器205且基于外部接收的电视时间表和信道阵容信息的过程可产生获取命令306。另外,可输入实时传送流(TS)缓冲器描述符308以辅助初始化和主要处理。
如方框304中所说明,初始化可包括:获取命令语法验证;执行第一遍PSI/PSIP/SI(程序特定信息/程序和系统信息协议/系统信息)处理;执行具体关于获取命令或PSI/PSIP/SI一致性验证的处理;为每一PES分配PES缓冲器;和设定定时(例如,为了与所需获取开始瞬时对准)。PES缓冲器保存经剖析的ES数据且将每一经剖析ES数据传达到相应音频解码器216、测试编码器220、解码器214或转码器PTS产生器215。
在初始化之后,过程300前进到方框310以对所接收多媒体数据104进行主要处理。方框310中的处理可包括目标包识别符(PID)滤波、连续的PSI/PSIP/SI监视和处理,和定时过程(例如,为了实现所需获取时段),使得将进入多媒体数据传递到适当的PES缓冲器中。由于在方框310中处理多媒体数据,因而产生了程序描述符和PES缓冲器“读取”的指示,其将如下文描述与解码器214(图2)介接。
在方框310之后,过程300前进到方框314,在此处发生剖析操作的终止,其中包括产生定时器中断且释放PES缓冲器以免受其消耗。请注意,PES缓冲器将存在用于程序描述符中所列举的程序的所有相关基本流,例如音频、视频和字幕流。
再次参看图2,剖析器205将音频ES 208发送到音频解码器216以对应于转码器实施方案,且将经编码文本216提供到同步层240并将音频信息解码。将字幕信息212递送到文本编码器220。还将来自解码器214的内建字幕(CC)数据218提供到文本编码器220,文本编码器220将字幕信息212和CC数据218编码为由转码器200起作用的格式。
剖析器/解码器202还包括解码器214,其接收视频ES 206。解码器214可产生与视频数据相关联的元数据,将经编码视频分包基本流解码为原始视频224(例如,以标准清晰度格式),且处理视频ES流中的视频内建字幕数据。
图4展示流程图,其说明可由解码器214执行的解码过程400的一个实例。过程400以在方框402处输入视频基本流数据206开始。过程400前进到方框404,在此处对解码器进行初始化。初始化可包括许多任务,包括:检测视频序列标头(VSH);执行第一遍VSH、视频序列(VS)和VS显示延伸处理(包括视频格式、基色和矩阵系数);和分配数据缓冲器以分别缓冲已解码图片、相关联的元数据和内建字幕(CC)数据。另外,输入由剖析器205提供的视频PES缓冲器“读取”信息406(例如,其可由过程300在图3的方框310中产生)。
在方框404处进行初始化之后,过程400前进到方框408,在此处解码器214执行视频ES的主要处理。主要处理包括:针对新数据可用性来轮询视频PES缓冲器“读取”信息或“界面”;解码视频ES;在图片边界处重建并存储像素数据;同步视频与a/v;产生元数据并存储在图片边界处;和将CC数据存储在图片边界处。主要处理408的结果方框410包括产生序列描述符、已解码图片缓冲器描述符、元数据缓冲器描述符和CC数据缓冲器描述符。
在主要处理408之后,过程400前进到方框412,在此处其执行终止过程。所述终止过程可包括:确定终止条件,其包括在超过预定阈值的特定时段中未出现新数据;检测序列末端码;和/或检测明确的终止信号。终止过程可进一步包括释放已解码图片、相关联的元数据和CC数据缓冲器以免受下文将描述的由预处理器对其的消耗。过程400在方框414处结束,在此处其可进入等待将接收视频ES作为输入的状态。
预处理器
图2(且图6更详细)说明可使用内容信息进行一个或一个以上预处理操作的预处理器226的样本方面。预处理器226从剖析器/解码器202接收元数据222和已解码“原始”视频数据224。预处理器226可经配置以对视频数据224和元数据222执行某些类型的处理,且将经处理的多媒体(例如,基础层参考帧、增强层参考帧、带宽信息、内容信息)和视频提供到编码器228。对多媒体数据的此处理可改进数据的视觉清晰性、抗混叠和压缩效率。一般来说,预处理器226接收由剖析器/解码器202中的解码器214提供的视频序列,且将所述视频序列转换为循序视频序列以供由编码器228进一步处理(例如,编码)。在一些方面中,预处理器226可经配置以用于许多操作,包括反向电视电影处理、解交错、滤波(例如,假像移除、去环、去块和去噪音)、调整大小(例如,将空间分辨率从标准清晰度向下取样到四分之一视频图形阵列(QVGA))和GOP结构产生(例如,计算复杂性映射产生、场景变化检测和衰减/闪光检测)。
预处理器226可使用来自解码器的元数据来影响所述预处理操作中的一者或一者以上。元数据可包括关于、描述或分类多媒体数据内容的信息(“内容信息”);明确地说,元数据可包括内容分类。在一些方面中,元数据不包括编码操作所需的内容信息。在此类情况下,预处理器226可经配置以确定内容信息且使用所述内容信息进行预处理操作,且/或将内容信息提供到转码器200的其它组件(例如,解码器228)。在一些方面中,预处理器226可使用此内容信息来影响GOP分割、确定适当类型的滤波且/或确定传达到编码器的编码参数。
图6展示可包括在预处理器226中的各个过程块的说明性实例,且说明可由预处理器226执行的处理。在此实例中,预处理器226接收元数据和视频222、224,且将包含(已处理)元数据和视频的输出数据614提供到编码器228。通常,可接收到三种类型的视频。第一,所接收的视频可以是循序视频,其中不需要解交错。第二,视频数据可以是经电视电影处理的视频,即从24fps电影序列转换的交错视频,在此情况下所述视频。第三,视频可以是未经电视电影处理的交错视频。预处理器226可如下文描述处理这些类型的视频。
在方框601处,预处理器226确定所接收的视频数据222、224是否是循序视频。在一些情况下,如果元数据包含此信息,那么这可从元数据确定,或通过视频数据自身的处理来确定。举例来说,下文描述的反向电视电影处理过程可确定所接收的视频222是否是循序视频。如果是,那么过程前进到方框607,在此处对视频执行滤波(例如,噪音抑制器)操作以减少例如白高斯噪音等噪音。如果在方框601处视频数据222、224不是循序视频,那么过程前进到方框604到达相位检测器604。
相位检测器604区分起源于电视电影处理的视频与以标准广播格式开始的视频。如果作出视频经电视电影处理的决策(离开相位检测器604的“是”决策路径),那么在反向电视电影处理606中将经电视电影处理的视频返回到其初始格式。识别并消除冗余帧,且将从同一视频帧导出的场重编为完整图像。由于经重建的胶片图像序列以1/24秒的规则间隔进行摄影记录,因而通过使用经反向电视电影处理的图像而非经电视电影处理的数据(其具有不规则时基)而在GOP分割器612或解码器228中执行的运动估计过程更准确。
在一个方面中,相位检测器604在接收到视频帧之后作出某些决策。这些决策包括:(i)本视频是否来自电视电影处理输出且3:2下拉相位是否是图38中所示的五个相位P0、P1、P2、P3和P4中的一者;和(ii)视频作为常规NTSC产生。所述决策被表示为相位P5。这些决策显示作为图2中所示的相位检测器604的输出。来自相位检测器604的标记为“是”的路径启动反向电视电影处理606,从而指示其已经具备正确的下拉相位,使得其可选出从同一摄影图像形成的场且将其组合。来自相位检测器604的标记为“否”的路径类似地启动解交错器605以将可见的NTSC帧分成多个场以进行最佳处理。因为可在任何时间接收到不同类型的视频,所以相位检测器604可持续分析视频帧。作为例示,可将符合NTSC标准的视频插入到所述视频中作为商业广告。在反向电视电影处理之后,将所得循序视频发送到可用于减少白高斯噪音的噪音抑制器(滤波器)607。
当认识到常规NTSC视频(来自相位检测器601的“否”路径)时,将其传输到解交错器605以进行压缩。解交错器605将交错场变换为循序视频,且可接着对循序视频执行去噪音操作。下文描述解交错处理的一个说明性实例。
如电视等传统模拟视频装置以交错方式再现视频,即此类装置传输偶数编号的扫描线(偶数场)和奇数编号的扫描线(奇数场)。根据信号取样观点,这等同于以由下列等式描述的图案进行的空间-时间子取样:
其中Θ代表初始帧图片,F代表交错场,且(x,y,n)分别表示像素的水平、垂直和时间位置。
在无损通用性的情况下,可假设在本发明中n=0始终是偶数场,使得以上等式1简化为
由于未在水平维度上进行抽取,因而可在下一个n~y坐标中描绘子取样图案。
解交错器的目标在于将交错视频(场序列)变换为非交错循序帧(帧序列)。换句话说,内插偶数和奇数场以“复原”或产生全帧图像。这可由等式3表示:
其中Fi表示丢失像素的解交错结果。
图40是说明使用Wmed滤波和运动估计以从交错多媒体数据产生循序帧的解交错器605的一方面的某些方面的方框图。图40的上部部分展示运动强度映射4002,可通过使用来自当前场、两个先前场(PP场和P场)和两个后续场(下一场和下下个场)的信息来产生所述运动强度映射4002。运动强度映射4002将当前帧归类或分割为两个或两个以上不同运动水平,且可通过空间-时间滤波来产生,下文进一步详细描述。在一些方面中,产生运动强度映射4002以识别静态区域、缓慢运动区域和快速运动区域,如下文参考等式4到8描述。空间-时间滤波器(例如,Wmed滤波器4004)使用基于运动强度映射的标准来对交错多媒体数据进行滤波,且产生空间-时间临时解交错帧。在一些方面中,Wmed滤波过程涉及水平邻域[-1,1]、垂直邻域[-3,3]和五个相邻场的时间邻域,所述五个相邻场由图40中所说明的五个场(PP场、P场、当前场、下一场、下下个场)表示,其中Z-1表示一个场的延迟。相对于当前场来说,下一场和P场是非奇偶场,且PP场和下下个场是奇偶场。用于空间-时间滤波的“邻域”指代在滤波操作期间实际使用的场和像素的空间和时间位置,且可说明为(例如)图6和图7中所示的“光圈”。
解交错器605还可包括噪音抑制器(去噪音滤波器)4006,其经配置以对由Wmed滤波器4004产生的空间-时间临时解交错帧进行滤波。对空间-时间临时解交错帧进行去噪音使得后续运动搜索过程更准确,尤其是当源交错多媒体数据序列受白噪音污染时。其还可至少部分地移除Wmed图片中的偶数行与奇数行之间的假像。噪音抑制器4006可实施为各种滤波器,包括基于小波收缩和小波维纳(Wiener)滤波器的噪音抑制器。噪音抑制器可用于在使用运动补偿信息对候选Wmed帧进行进一步处理之前从移除候选Wmed帧中的噪音,且可移除Wmed帧中存在的噪音并不管信号的频率内容如何均保留存在的信号。可使用各种类型的去噪音滤波器,其中包括小波滤波器。小波是用于在空间域和缩放域中定位给定信号的一类函数。小波所基于的基本思想是以不同尺度或分辨率分析信号,使得小波表示中的较小变化在初始信号中产生相应较小的变化。
小波收缩或小波维纳滤波器还可用作噪音抑制器。小波收缩由噪音信号的小波变换组成,随后将较小的小波系数收缩到零(或更小值),同时使较大的系数保持不变。最后,执行反向变换以获取估计信号。
去噪音滤波提高了噪音环境中的运动补偿的准确性。小波收缩去噪音可涉及小波变换域中的收缩,且通常包含三个步骤:线性正向小波变换、非线性收缩去噪音和线性反向小波变换。维纳滤波器是可用于改进由附加噪音和模糊而降级的图像的MSE最佳线性滤波器。此类滤波器在此项技术中众所已知,且在(例如)上文引用的“通过小波收缩的理想空间适应性(Ideal spatial adaptation by wavelet shrinkage)”和S.P.黑尔(S.P.Ghael)、A.M.塞伊德(A.M.Sayeed)和R.G.巴拉尼克(R.G.Baraniuk)的“经由经验维纳滤波的改进小波去噪音(Improvement Wavelet denoising via empirical Wiener filtering)”(SPIE会议录,第3169卷,第389到399页,圣地亚哥,1997年7月)中描述,后者全文明确地以引用方式并入本文。
在一些方面中,去噪音滤波器基于(4,2)双正交三次B样条小波滤波器的一方面。一个此类滤波器可由以下正向和反向变换来定义:
和
去噪音滤波器的应用可增加噪音环境中的运动补偿的准确性。在D.L.道能浩(D.L.Donoho)和I.M.强斯顿(I.M.Johnstone)所作的“通过小波收缩的理想空间适应性(Idealspatial adaptation by wavelet shrinkage)”(生物统计学,第8卷,第425到455页,1994年)中进一步描述此类滤波器的实施方案,所述文献的全文明确地以引用方式并入本文中。
图40的下部部分说明用于确定交错多媒体数据的运动信息(例如,运动向量候选者、运动估计、运动补偿)的方面。明确地说,图40说明运动估计和运动补偿方案,其用于产生选定帧的经运动补偿的临时循序帧,且接着与Wmed临时帧组合以形成所得“最终”循序帧(展示为经解交错的当前帧4014)。在一些方面中,从外部运动估计器将交错多媒体数据的运动向量(“MV”)候选者(或估计)提供到解交错器,且使用其来提供双向运动估计器和补偿器(“ME/MC”)4018的开始点。在一些方面中,MV候选者选择器4022针对正被处理的块的MV候选者使用邻近块的先前确定MV,例如先前处理块(例如,在经解交错的先前帧4020中的块)的MV。可基于先前经解交错的帧70和下一(例如,未来)Wmed帧4008双向进行运动补偿。当前Wmed帧4010和经运动补偿的(“MC”)当前帧4016由组合器4012合并或组合。将所得经解交错的当前帧4014(现在是循序帧)提供回到ME/MC 4018以用作经解交错的先前帧4020,且还向外传达到解交错器605以供后续处理。
能够通过Wmed与MC解交错方案将包含场间内插的解交错预测方案与场内内插去耦。换句话说,空间-时间Wmed滤波可主要用于场内内插目的,而在运动补偿期间可执行场间内插。这减小了Wmed结果的峰值信噪比,但应用运动补偿之后的视觉质量更合意,因为将从Wmed滤波过程移除由于不准确的场间预测模式决策而产生的不良像素。
在适当的反向电视电影处理或解交错处理之后,在方框608处,对循序视频进行处理以抑制假像且重取样(例如,调整大小)。在一些重取样方面中,实施多相重取样器以对图片大小进行大小调整。在向下取样的一个实例中,初始图片与经调整大小的图片之间的比可为p/q,其中p和q是互质整数。相位总数目为p。在一些方面中,对于约为0.5的调整大小因子,多相滤波器的截止频率为0.6。截止频率并不与调整大小比完全匹配,以便提高经调整大小的序列的高频率响应。这不可避免地允许一些混叠。然而,众所周知的是,相比于模糊但无假像的图片,人类眼睛更喜欢鲜明但稍被混叠的图片。
图41说明多相重取样的实例,其展示调整大小定量为3/4时的相位。图41中说明的截止频率也是3/4。在以上图式中用垂直轴线说明初始像素。还以所述轴线为中心画出正弦函数来表示滤波器波形。因为我们选择将截止频率选择为与重取样定量完全相同,所以在调整大小之后正弦函数的零点与像素的位置重叠(在图41中用十字标说明)。为了找到调整大小之后的像素值,可如以下等式中所展示从初始像素合计所述作用:
其中fc为截止频率。以上1D多相滤波器可应用于水平维度和垂直维度两者。
重取样(调整大小)的另一方面用于解决过扫描。在NTSC电视信号中,图像具有486条扫描线,且在数字视频中每一扫描线上可具有720个像素。然而,由于所述大小与屏幕格式之间的失配的缘故,并非整个图像全部在电视上可见。不可见的图像部分称为过扫描。
为了帮助广播台将有用信息放置在尽可能多的电视可见的区域中,电影与电视工程师协会(SMPTE)定义了称为安全作用区域和安全标题区域的作用帧的具体大小。请参见“用于电视系统的安全作用和安全标题区域测试图案的说明书(Specifications for SafeAction and Safe Title Areas Test Pattern for Television Systems)”上的SMPTE推荐实践RP27.3-1989。SMPTE将安全作用区域定义为“必须发生所有显著作用”的区域。将安全标题区域定义为“可约束所有有用信息以确保在大多数家用电视接收器上可见”的区域。
举例来说,参看图25,安全作用区域2510占据屏幕中心90%,四周留出5%的边框。安全标题区域2505占据屏幕中心80%,留出10%的边框。现参看图26,因为安全标题区域如此小以致不能在图像中添加更多内容,所以一些电台将文本放置在安全作用区域中,安全作用区域在白色矩形窗2615内。
通常可在过扫描中看见黑色边框。举例来说,在图26中,黑色边框出现在图像的上侧2620和下侧2625处。可在过扫描中移除这些黑色边框,因为H.264视频在运动估计中使用边界延伸。延伸的黑色边框可增加残差。保守地说,可将边界切除2%,且接着调整大小。因此,可产生用于调整大小的滤波器。执行截断以在多相向下取样之前移除过扫描。
再次参看图6,循序视频接着前进到方框610,在此处执行去块和去环操作。在视频压缩应用中通常出现两种类型的假像,即“成块”和“成环”。成块假像发生是因为压缩算法将每一帧划分为多个块(例如,8×8个块)。所重建的每一块均具有一些小错误,且位于一个块的边缘处的错误通常与位于相邻块的边缘处的错误形成对比,从而使得块边界可见。相反,成环假像出现为位于图像特征的边缘周围的失真。成环假像出现是因为编码器在量化高频率DCT系数中丢弃了太多信息。在一些说明性实例中,去块和去环两者可使用低通FIR(有限脉冲响应)滤波器来隐藏这些可见假像。
在去环处理的一个实例中,除了位于帧边界处的边缘和停用去块滤波过程的任何边缘以外,去块滤波器可应用于帧的所有4×4个块边缘。在完成帧构建过程之后应在宏区块基础上执行此滤波过程,其中帧中所有宏区块均经处理以便增加宏区块地址。对于每一宏区块来说,首先从左到右对垂直边缘进行滤波,且接着从顶部到底部对水平边缘进行滤波。如图39所示,对于水平方向和垂直方向,对四个16样本边缘执行亮度去块滤波过程,且对两个8样本边缘执行针对每一色度分量的去块滤波过程。可能已经由对先前宏区块的去块过程操作修改的位于当前宏区块上方和左边的样本值应当用作对当前宏区块的去块滤波过程的输入,且可在对当前宏区块进行滤波期间对其进行进一步修改。在对垂直边缘进行滤波期间经修改的样本值可用作对同一宏区块的水平边缘进行滤波的输入。可单独为亮度和色度分量调用去块过程。
在去环处理的实例中,可将2D滤波器适应性地应用于使边缘附近的区域平滑。边缘像素经受较少滤波或不经受滤波以便避免模糊。
GOP分割器
在去块和去环之后,由GOP分割器612处理循序视频。GOP定位可包括检测镜头变化、产生复杂性映射(例如,时间、空间带宽映射)和适应性GOP分割。下文一一描述这些步骤。
A.场景变化检测
镜头检测涉及确定图片组(GOP)中的帧何时展现指示已经出现场景变化的数据。一般来说,在GOP内,在任何两个或三个(或更多)邻近帧中,所述帧可能没有显著变化,或可能存在缓慢变化或快速变化。当然,依据具体应用而定,在必要时可进一步将这些场景变化分类分解成更高的变化水平。
检测镜头或场景变化对于视频的有效编码来说是重要的。通常,当GOP没有显著变化时,位于GOP开始处的I帧后跟随许多预测帧能够充分编码视频,使得对所述视频的后续解码和显示在视觉上可接受。然而,当场景突然或缓慢地变化时,可使用额外I帧和较少预测编码(P帧和B帧)来产生后续解码的视觉上可接受的结果。
下文描述改进现有编码系统的性能的镜头检测及编码系统和方法。此些方面可在预处理器226的GOP分割器612中(图7)实施,或包括于可在具有或没有预处理器的情况下操作的编码器装置中。此些方面利用包括视频数据的邻近帧之间的统计比较的统计量(或量度)来确定是否发生了突然的场景变化、场景是否缓慢变化,或场景中是否存在可能使视频编码特别复杂的相机闪光。所述统计量可从预处理器获得且接着发送到编码装置,或其可在编码装置中产生(例如,由经配置以执行运动补偿的处理器产生)。所得统计量辅助场景变化检测决策。在进行代码变换的系统中,通常存在适当的预处理器或可配置的处理器。如果预处理器执行运动补偿辅助的解交错,那么运动补偿统计量可用且准备好供使用。在此类系统中,镜头检测算法可能稍微增加系统复杂性。
本文描述的镜头检测器的说明性实例仅需要利用来自先前帧、当前帧和下一帧的统计量,且因此具有非常低的等待时间。镜头检测器区分若干不同类型的镜头事件,其中包括突然的场景变化、交叉淡化及其它缓慢的场景变化,和相机闪光。通过在编码器中用不同策略确定镜头事件的不同类型,可增强编码效率和视觉质量。
场景变化检测可用于针对其的任何视频编码系统,以通过以固定间隔插入I帧来智能地节省位。在一些方面中,由预处理器获得的内容信息(例如,并入在元数据中或由预处理器226计算)可用于场景变化检测。举例来说,依据所述内容信息而定,可针对不同类型的视频内容动态地调整下文描述的阈值和其它准则。
通常对结构化图片组(GOP)执行视频编码。GOP通常以帧内编码帧(I帧)开始,其后跟随一系列P(预测)或B(双向)帧。通常,I帧可存储用以显示所述帧需要的所有数据,B帧依赖于先前和随后帧中的数据(例如,仅含有从先前帧变化或与下一帧中的数据不同的数据),且P帧含有已经从先前帧变化的数据。在通常使用中,I帧与P帧和B帧一起散布在经编码视频中。在大小(例如,用于编码帧的位数目)方面,I帧通常比P帧大得多,P帧又大于B帧。为了进行有效编码、传输和解码处理,GOP的长度应足够长以减小来自较大I帧的效率损失,且足够短以阻止编码器与解码器之间的失配或信道损害。另外,由于相同原因,可对P帧中的宏区块(MB)进行帧内编码。
场景变化检测可用于视频编码器以确定合适的GOP长度且基于所述GOP长度来插入I帧,而并非以固定间隔插入通常不需要的I帧。在实用串流视频系统中,通常由于位错误或包丢失而损害通信信道。放置I帧或IMB的位置可显著影响经解码视频的质量和观看体验。一个编码方案是将帧内编码帧用于从并置的先前图片或图片部分显著变化的图片或图片部分。通常,这些区不能通过运动估计来有效且有效率地加以预测,且如果此类区被免除使用帧间编码技术(例如,使用B帧和P帧进行编码),那么可更有效率地进行编码。在信道损害的情况下,那些区可能遭受错误传播,通过帧内编码可减少或消除(或几乎消除)错误传播。
GOP视频的多个部分可分类为两种或两种以上种类,其中每一区均可具有可取决于特定实施方案的不同帧内编码准则。作为实例,视频可分类为三个种类:突然的场景变化、交叉淡化及其它缓慢的场景变化,和相机闪光。
突然的场景变化包括与先前帧显著不同(通常由相机操作造成)的帧。由于这些帧的内容不同于先前帧的内容,因而应将突然的场景变化帧编码为I帧。
交叉淡化及其它缓慢的场景变化包括场景的缓慢切换,通常由摄像的计算机处理造成。两个不同场景的逐渐混合看起来可能更为人眼所喜欢,但是对视频编码提出了挑战。运动补偿不能有效降低那些帧的位速率,且可为这些帧更新更多内MB。
相机闪光或相机闪光事件发生在帧内容包括相机闪光时。此些闪光的持续时间相对较短(例如,一个帧),且此类闪光极其明亮,使得帧中描绘所述闪光的像素展现出相对于邻近帧上的相应区域来说异常高的亮度。相机闪光突然且快速地改变图片的亮度。通常相机闪光的持续时间比人类视觉系统(HVS)的时间遮蔽持续时间(其通常定义为44ms)短。人眼对这些短时间爆发的亮度的质量并不敏感,且因此可对其进行粗编码。因为闪光帧不能通过运动补偿来有效处理且其是未来帧的不良预测候选者,所以这些帧的粗编码不会降低未来帧的编码效率。由于“人工”高亮度的缘故,分类为闪光的场景不应用于预测其它帧,且出于相同原因,其它帧也不能有效用于预测这些帧。一旦被识别,便可取出这些帧,因为所述帧可能需要相对大量的处理。一个选项是移除相机闪光帧且在适当位置处编码DC系数;此办法简单、计算快速且节省许多位。
当检测到以上种类的帧中的任一者时,即宣告镜头事件。镜头检测不仅有利于改进编码质量,而且其还可辅助识别视频内容搜索和索引。下文描述场景检测过程的一个说明性方面。在此实例中,镜头检测过程首先为正被处理的选定帧计算信息或量度以进行镜头检测。所述量度可包括来自视频的双向运动估计和补偿处理的信息,和其它基于亮度的量度。
为了执行双向运动估计/补偿,可用双向运动补偿器对视频序列进行预处理,双向运动补偿器使当前帧的每个8×8块与最邻近的相邻帧中的两个帧(一个是过去的,且一个是未来的)中的块匹配。运动补偿器产生每个块的运动向量和差异量度。图29是展示使当前帧C的像素与过去帧P和未来(或下一)帧N匹配的实例且描绘匹配像素的运动向量(过去运动向量MVP和未来运动向量MVN)的说明。下文参看图32概括描述对双向运动向量产生和相关编码的概括描述。
在确定双向运动信息(例如,识别相应邻近帧中的MB(最佳匹配)的运动信息)之后,可通过当前帧与下一帧和先前帧的各种比较(例如,由GOP分割器612中的运动补偿器或另一适当组件)产生额外量度。运动补偿器可产生每个块的差异量度。差异量度可以是平方差总和(SSD)或绝对差总和(SAD)。在无损通用性的情况下,此处使用SAD作为实例。
对于每个帧,如下计算SAD比(还称为“反差比”):
其中SADP和SADN分别是正向和反向差异量度的绝对差总和。应注意,分母含有小正数ε以防止“由零除”的错误。分子也含有ε以平衡分母中的数字1效应。举例来说,如果先前帧、当前帧和下一帧是相同的,那么运动搜索应得出SADP=SADN=0。在此情况下,以上计算产生器γ=1,而不是0或无穷大。
可为每个帧计算亮度直方图。通常,多媒体图像具有8个位的亮度深度(例如,“频率组”数目)。可将用于根据一些方面计算亮度直方图的亮度深度设定为16以获得直方图。在其它方面中,可将亮度深度设定为适当数字,所述数字可取决于正被处理的数据的类型、可用的计算功率或其它预定准则。在一些方面中,可基于所计算或所接收的量度(例如数据的内容)来动态设定亮度深度。
以下等式说明计算亮度直方图差异(λ)的一个实例:
其中NPi是用于先前帧的第i个频率组中的块数目,且NCi是用于当前帧的第i个频率组中的块数目,且N是帧中的块总数目。如果先前帧与当前帧的亮度直方图差异完全不一样(或不相交),那么λ=2。
通过使用此信息,如下计算帧差异量度(D):
其中A是应用程序选择的常数, 且
如果所述帧差异量度满足等式9中所示的准则,那么将选定(当前)帧分类为突然场景变化帧:
其中A是应用程序选择的常数,且T1是阈值。
应注意,以上准则以非线性方式使用亮度直方图差异(λ)。图16说明λ*(2λ+1)为凸函数。当λ较小(例如,接近零)时,其几乎不能预加重。λ变得越大,所述函数所进行的加重就越多。通过此预加重,对于大于1.4的任何λ,如果将阈值T1设定为5,那么检测到突然的场景变化。
如果场景强度量度D满足等式5中所示的准则,那么确定当前帧是交叉淡化或缓慢场景变化:
T2≤D<T1 [10]
其用于特定数目的连续帧,其中T1是与以上所用阈值相同的阈值,且T2是另一阈值。
闪光事件通常致使亮度直方图移位到较亮侧。在此说明性方面相机中,亮度直方图统计量用于确定当前帧是否包含相机闪光。镜头检测过程可确定当前帧的亮度是否比先前帧的亮度大某阈值T3,且当前帧的亮度是否比下一帧的亮度大阈值T3,如等式11和12中所示:
YC-YP≥T3 [11]
YC-YN≥T3 [12]
如果不满足以上准则,那么不将当前帧分类为包含相机闪光。如果满足所述准则,那么镜头检测过程确定反向差异量度SADP和正向差异量度SADN是否大于某阈值T4,如以下等式中说明:
SADP≥T4 [13]
SADN≥T4 [14]
其中YC是当前帧的平均亮度,YP是先前帧的平均亮度,YN是下一帧的平均亮度,且SADP和SADN是与当前帧相关联的正向和反向差异量度。
镜头检测过程通过首先确定当前帧的亮度是否大于先前帧的亮度和下一帧的亮度来确定相机闪光事件。如果不大于,那么所述帧不是相机闪光事件;但如果大于,那么其可能是相机闪光事件。镜头检测过程接着可估计反向差异量度是否大于阈值T3和正向差异量度是否大于阈值T4;如果满足这两个条件,那么镜头检测过程将当前帧分类为具有相机闪光。如果不满足所述准则,那么不将所述帧分类为任何类型的镜头事件,或其可被给予默认分类,所述默认分类识别待对所述帧进行的编码(例如,丢弃帧,编码为I帧)。
上文展示T1、T2、T3和T4的一些示范性值。通常,通过测试镜头检测的特定实施方案来选择这些阈值。在一些方面中,所述阈值T1、T2、T3和T4中的一者或一者以上是预定的,且此些值被并入到编码装置中的镜头分类器。在一些方面中,所述阈值T1、T2、T3和T4中的一者或一者以上可在处理期间(例如,动态地)基于使用供应到镜头分类器的信息(例如,元数据)或基于由镜头分类器自身计算的信息来设定。
通常在编码器中执行使用镜头检测信息来编码视频,但是为了镜头检测揭示的完整性而在此处描述对视频的编码。参看图30,编码过程301可使用镜头检测信息以基于所述帧序列中的所检测镜头来编码视频。过程301前进到方框303,且检查以查看当前帧是否被分类为突然的场景变化。如果是,那么在方框305处,可将当前帧编码为I帧且可确定GOP边界。如果不是,那么过程301前进到方框307;如果当前帧被分类为缓慢变化场景的一部分,那么在方框309处,可将当前帧和所述缓慢变化场景中的其它帧编码为预测帧(例如,P帧或B帧)。过程301接着前进到方框311,在此处其检查当前帧是否被分类为包含相机闪光的闪光场景。如果是,那么在方框313处,可将所述帧识别为进行特殊处理(例如,移除或编码用于所述帧的DC系数);如果不是,那么不进行当前帧的分类且根据其它准则来编码当前帧(编码为I帧或丢弃)。
在上述方面中,待压缩的帧与其邻近两个帧之间的差异量由帧差异量度D指示。如果检测到显著量的单向亮度变化,那么意味着在所述帧中存在交叉淡化效应。交叉淡化越明显,通过使用B帧可获得的增益就越多。在一些方面中,如以下等式中所示来使用经修改的帧差异量度:
其中dP=|YC-YP|和dN=|YC-YN|分别是当前帧与先前帧之间的亮度差异和当前帧与下一帧之间的亮度差异,Δ表示常数,所述常数可在标准实验中确定,因为其可依据实施方案而定,且α是具有介于0到1之间的值的加权变量。
B.带宽映射产生
预处理器226(图6)还可经配置以产生可用于编码多媒体数据的带宽映射。在一些方面中,编码器228中的内容分类模块712(图7)代替产生带宽映射。
人类视觉质量V可以是编码复杂性C和分配位B(还称为带宽)的函数。图15是说明此关系的曲线图。应注意,编码复杂性量度C从人类视觉观点考虑空间和时间频率。对于人眼较敏感的失真,复杂性值相应较高。通常可假设V关于C单调下降,且关于B单调增加。
为了实现恒定的视觉质量,将带宽(Bi)指派给待编码的第i个对象(帧或MB),其满足以下紧随的两个等式中所表述的准则:
Bi=B(Ci,V) [16]
在上文刚刚列出的两个等式中,Ci是第i个对象的编码复杂性,B是总体可用带宽,且V是对象的实现视觉质量。人类视觉质量难以用公式表示为等式。因此,以上等式组不是精确定义的。然而,如果假设3D模型在所有变量中均连续,那么可将带宽比(Bi/B)视为在(C,V)对的邻域内不变。带宽比βi在下文所示等式中定义:
βi=Bi/B [18]
可接着如下列等式中所表述来定义位分配:
βi=β(Ci)
[19]
其中δ指示“邻域”。
在时间和空间上,编码复杂性均受到人类视觉敏感度影响。基罗德(Girod)的人类视觉模型是可用于定义空间复杂性的模型的实例。此模型考虑局部空间频率和环境照明。所得量度称为Dcsat。在所述过程中的预处理点处,将对图片进行帧内编码还是帧间编码是未知的且产生所述二者的带宽比。根据不同视频对象的βINTRA之间的比来分配位。对于帧内编码图片来说,在下列等式中表述带宽比:
βINTRA=β0INTRA log10(1+αINTRAY2Dcsat) [20]
在以上等式中,Y是宏区块的平均亮度分量,αINTRA是亮度平方与其后的Dcsat项的加权因子,β0INTRA是保证 的标准化因子。举例来说,αINTRA=4时的值实现良好的视觉质量。可使用内容信息(例如,内容分类)来将αINTRA设定为对应于视频的特定内容的所需良好视觉质量等级的值。在一个实例中,如果视频内容包含“演说者头部”新闻广播,那么可将视觉质量等级设定得较低,因为可认为视频的信息图像或可显示部分没有音频部分那么重要,且可分配较少位来编码所述数据。在另一实例中,如果视频内容包含体育事件,那么可使用内容信息来将αINTRA设定为对应于较高视觉质量等级的值,因为所显示图像可能对观看者较重要,且因此可分配更多位来编码所述数据。
为了理解此关系,应注意带宽是与编码复杂性成对数关系来分配的。亮度平方项Y2反映具有越大量值的系数使用越多的位来编码的事实。为了防止对数得到负值,向括弧中的项添加数字1。还可使用具有其它底数的对数。
时间复杂性由帧差异量度的测量确定,所述测量通过考虑运动量(例如,运动向量)连同帧差异量度(例如绝对差总和(SAD))来测量两个连续帧之间的差异。
帧间编码图片的位分配可考虑空间以及时间复杂性。这表述为如下:
βINTER=β0INTER log10(1+αINTER·SSD·Dcsat exp(-γ‖MVP+MVN‖2)) [21]
在以上等式中,MVP和MVN是当前MB的正向和反向运动向量(见图29)。可注意到,帧内编码带宽公式中的Y2由平方差总和(SSD)取代。为了理解‖MVP+MVN‖2在以上等式中的作用,请注意人类视觉系统的下一特性:经历平滑的可预测运动(小‖MVP+MVN‖2)的区域吸引注意力,且可由眼睛跟踪并且通常不容许比静止区更多的失真。然而,经历快速或不可预测运动(大‖MVP+MVN‖2)的区域不能被跟踪且可容许显著量化。实验展示,αINTER=1且γ=0.001实现良好的视觉质量。
C适应性GOP分割
在预处理器226可执行的处理的另一说明性实例中,图6的GOP分割器612还可适应性地改变一起编码的图片组的成分,且参考使用MPEG2的实例加以论述。一些较老的视频压缩标准(例如,MPEG2)不要求GOP具有规则结构,但是可强加于所述标准。MPEG2序列总以I帧开始(即,在不参考先前图片的情况下已被编码的帧)。通常通过固定跟随所述I帧的P或预测图片在GOP中的间距来在编码器处预先安排MPEG2 GOP格式。P帧是已经从先前的I或P图片部分预测的图片。将开始的I帧与随后的P帧之间的帧编码为B帧。“B”帧(B代表双向)可单独或同时使用先前和下一I或P图片作为参考。编码I帧所需要的位数目平均超过编码P帧所需要的位数目;同样,编码P帧所需要的位数目平均超过B帧所需要的位数目。如果使用跳过帧,那么其将不需要任何位来用于其表示。
使用P帧及B帧和在较新近的压缩算法中使用跳过帧以减小表示视频所需的数据速率的基础概念是消除时间冗余。当时间冗余较高(即,图片与图片之间存在极小变化)时,使用P、B或跳过图片可有效地表示视频流,因为稍后使用早先解码的I或P图片作为参考来解码其它P或B图片。
适应性GOP分割是基于适应性地使用此概念。对帧之间的差异进行量化,且在对量化差异执行适合测试之后自动作出由I帧、P帧、B帧还是跳过帧表示所述图片的决策。适应性结构具有固定GOP结构中不存在的优点。固定结构将忽略内容中已经发生极小变化的可能性;适应性程序将允许将远远更多的B帧插入在每一I帧与P帧之间或两个P帧之间,进而减小充分表示帧序列所需的位数目。相反,当视频内容中的变化显著时,P帧的效率大大降低,因为预测帧与参考帧之间的差异太大。在这些条件下,匹配对象可能离开运动搜索区,或匹配对象之间的相似性由于相机角度变化引起的失真而减小。此时,应将P帧或I帧和其邻近P帧选择为彼此更接近,且应插入较少的B帧。固定GOP不能作出所述调整。
在此处所揭示的系统中,这些条件是自动感测的。所述GOP结构较灵活且使得适应内容中的这些变化。所述系统用相同的距离相加性质来评估帧差异量度,帧差异量度可被看作帧之间的距离测量。在概念上,假定帧F1、F2和F3具有帧间距离d12和d23,那么F1与F3之间的距离可视为至少d12+d23。基于此距离类量度来进行帧指派。
GOP分割器通过在接收到帧时向所述帧指派图片类型来操作。图像类型指示编码每一块时可能需要的预测方法。
在不参考其它图片的情况下编码I图片。由于其独立,因而其提供在数据流中可开始解码的存取点。如果帧到其前趋帧的“距离”超过场景变化阈值,那么向所述帧指派I编码类型。
P图片可使用先前I或P图片进行运动补偿预测。其将先前场或帧中可从正被预测的块替换的块用作编码基础。在从正被考虑的块减去参考块之后,将残余块编码,这通常使用离散余弦变换来消除空间冗余。如果帧与指派为P帧的最后帧之间的“距离”超过第二阈值(其通常小于第一阈值),那么向所述帧指派P编码类型。
B帧图片可使用先前和下一P或I图片进行如上所述的运动补偿。B图片中的块可被正向、反向或双向预测;或可在不参考其它帧的情况下对其进行帧内编码。在H.264中,参考块可以是来自许多帧的多达32个块的线性组合。如果不能将所述帧指派为I或P类型,那么如果从其到其紧接前趋的“距离”大于第三阈值(其通常小于第二阈值),则将其指派为B类型。
如果不能将所述帧指派成为编码的B帧,那么将其指派为“跳过帧”状态。可将此帧跳过,因为其实际上是先前帧的拷贝。
评估量化显示次序中的邻近帧之间的差异的量度是所发生的此处理的第一部分。此量度是上文提到的距离;通过所述量度,可评估每个帧以确定其恰当类型。因此,I帧与邻近P帧或两个连续P帧之间的间距可以是可变的。通过用基于块的运动补偿器处理视频帧来开始计算所述量度,块是视频压缩的基本单位,通常由16×16个像素组成,但例如8×8、4×4和8×16等其它块大小也是可能的。对于由两个解交错场组成的帧,运动补偿可在场基础上进行,对参考块的搜索在场而并非帧中发生。对于当前帧的第一场中的块,正向参考块在跟随当前帧的帧的场中找到;同样,反向参考块在紧接在当前场之前的帧的场中找到。将当前块汇集成补偿场。所述过程继续对所述帧的第二场执行。组合所述两个补偿场以形成正向和反向补偿帧。
对于在反向电视电影处理606中创建的帧来说,由于仅重建胶片帧的缘故,仅在帧基础上搜索参考块。找到两个参考块和两个差异(正向和反向),从而还产生正向和反向补偿帧。总起来说,运动补偿器产生每个块的运动向量和差异量度;但是在处理解交错器605的输出的情况下,块是NTSC场的一部分,且如果处理反向电视电影处理的输出,那么其是胶片帧的一部分。请注意,所述量度中的差异是在正被考虑的场或帧中的块与最与其匹配的块之间进行评估的,评估在先前场或帧中或在紧随其后的场或帧中进行,这取决于正在评估正向差异还是反向差异。只有亮度值参与此计算。
因此,运动补偿步骤产生两组差异。这些差异是在具有当前亮度值的块与具有取自在时间上紧接在当前帧之前和之后的帧的参考块中的亮度值的块之间。针对每一像素确定每一正向差异和每一反向差异的绝对值,且其每一者单独在整个帧范围内求和。当处理包含帧的经解交错NTSC场时,两个场均包括在两个总和中。以此方式,找到正向差异和反向差异的总绝对值SADP和SADN。
使用以下关系式来针对每个帧计算SAD比:
其中SADP和SADN分别是正向差异和反向差异的总绝对值。向分子添加小正数ε以防止“由零除”的错误。向分母添加类似ε项,从而进一步减小当SADP或SADN接近零时γ的敏感度。
在替代方面中,所述差异可以是SSD(平方差总和)和SAD(绝对差总和),或SATD,其中在取得块元素中的差异之前通过对其应用二维离散余弦变换来对具有像素值的块进行变换。在有效视频的区域上评估所述总和,但在其它方面中可使用较小区域。
还计算每个帧在接收(非运动补偿)时的亮度直方图。直方图对16×16系数阵列中的DC系数(即,(0,0)系数)进行操作,所述DC系数是具有亮度值的块可用时对其应用二维离散余弦变换的结果。16×16块中的256个亮度值的平均值可均等地用于直方图中。对于亮度深度为8个位的图像,将频率组数目设定为16。下一量度评估直方图差异:
在以上等式中,NPi是来自第i个频率组中的先前帧的块的数目,且NCi是来自属于第i个频率组的当前帧的块的数目,N是帧中的块的总数目。
这些中间结果经汇集以形成当前帧差异量度:
其中γC是基于当前帧的SAD比,且γP是基于先前帧的SAD比。如果场景具有平滑运动且其亮度直方图几乎不变,那么D≈1。如果当前帧显示突然的场景变化,那么γC将较大且γP应较小。使用比来代替单独的γC,使得将所述量度标准化到所述情形的活动性水平。
图42说明向帧指派压缩类型的过程。D(等式19中定义的当前帧差异)是关于帧指派作出决策的基础。如决策方框4202所指示,如果正被考虑的帧是序列中的第一帧,那么标记为“是”的决策路径延续到方框4206,进而宣告所述帧为I帧。在方框4208处将累计的帧差异设定为零,且过程返回(在方框4210中)到开始方框。如果正被考虑的帧不是序列中的第一帧,那么从作出决策的方框4202处延续标记为“否”的路径,且在测试方框4204中,相对于场景变化阈值来测试当前帧差异。如果当前帧差异大于所述阈值,那么标记为“是”的决策路径延续到方框4206,从而再次产生I帧的指派。
如果当前帧差异小于场景变化阈值,那么“否”路径延续到方框4212,在此处将当前帧差异加上累计的帧差异。在决策方框4214处继续通过所述流程图,将累计帧差异与阈值t进行比较,t一般小于场景变化阈值。如果累计帧差异大于t,那么控制转移到方框4216,且将所述帧指派为P帧;接着在步骤4218中将累计帧差异重设为零。如果累计帧差异小于t,那么控制从方框4214转移到方框4220。在此处将当前帧差异与τ(其小于t)进行比较。如果当前帧差异小于τ,那么在方框4222中将所述帧指派为跳过帧且接着过程返回;如果当前帧差异大于τ,那么在方框4226中将所述帧指派为B帧。
编码器
回头参看图2,转码器200包括编码器228,其接收来自预处理器226的经处理的元数据和原始视频。元数据可包括最初在源视频104中接收的任何信息和由预处理器226计算的任何信息。编码器228包括第一遍编码器230、第二遍编码器232和再编码器234。编码器228还接收来自转码器控制231的输入,转码器控制231可将来自第二遍编码器232的信息(例如,元数据、错误复原信息、内容信息、编码位速率信息、基础层及增强层平衡信息和量化信息)提供到第一遍编码器230、再编码器234以及预处理器226。编码器228使用从预处理器226接收的内容信息和/或由编码器228自身(例如,由内容分类模块712(图7))产生的内容信息来编码所接收视频。
图7说明可包括在示范性两遍编码器中的功能模块的方框图,所述示范性两遍编码器可用于图2中所说明的编码器228。图7中展示所述功能模块的各个方面,但图7和此处描述没有必要解决可并入到编码器中的所有功能性。因此,下文在以下论述基础层和增强层编码之后描述所述功能模块的某些方面。
基础层和增强层编码
编码器228可以是SNR可缩放编码器,其可将来自预处理器226的原始视频和元数据编码为第一编码数据组(本文还称为基础层),和一个或一个以上额外编码数据组(本文还称为增强层)。编码算法产生基础层系数和增强层系数,当所述两种层均可用于解码时,可在解码时在解码器处组合所述基础层系数与增强层系数。当所述两种层均不可用时,基础层的编码允许其被解码为单个层。
参看图31描述此多层编码过程的一个方面。在方框321处,用全部帧内编码宏区块(帧内编码MB)来编码I帧。在H.264中,通过完全利用的空间预测来编码I帧中的帧内编码MB,所述空间预测提供大量编码增益。存在两种子模式:帧内4×4和帧内16×16。如果基础层将利用由空间预测提供的编码增益,那么需要在编码和解码增强层之前编码和解码基础层。使用I帧的两遍编码和解码。在基础层中,基础层量化参数QPb为变换系数提供粗量化步长。将在增强层处编码初始帧与经重建基础层帧之间的像素方面的差异。增强层使用量化参数QPe(其提供较细的量化步长)。编码装置(例如图2的编码器228)可在方框321处执行编码。
在方框323处,编码器针对正被处理的GOP中的P帧和/或B帧来编码基础层数据和增强层数据。编码装置(例如编码器228)可在方框323处执行编码。在方框325处,编码过程检查是否存在更多P帧或B帧要编码。编码装置(例如SNR可缩放编码器228)可执行动作325。如果仍有更多P帧或B帧,那么重复步骤323,直到GOP中的所有帧完成编码为止。P帧或B帧包含帧间编码宏区块(帧间编码MB),但如下文将论述的,在P帧或B帧中还可存在帧内编码MB。
为了使解码器能区分基础层数据与增强层数据,编码器228编码额外开销信息(方框327)。额外开销信息的类型包括(例如)识别层数目的数据、将层识别为基础层的数据、将层识别为增强层的数据、识别层之间的相互关系(例如,层2是基础层1的增强层,或层3是增强层2的增强层)的数据或将层识别为一连串增强层中的最后增强层的数据。额外开销信息可包含在与其所属的基础层和/或增强层数据连接的标头中,或包含在单独的数据消息中。编码装置(例如图2的编码器228)可在方框327处执行所述过程。
为了进行单层解码,必须在反量化之前组合两种层的系数。因此,必须交互式产生所述两种层的系数;否则,这可引入大量额外开销。额外开销增加的一个原因在于,基础层编码和增强层编码可使用不同的时间参考。需要一种产生基础层和增强层系数的算法,当所述两种层均可用时,可在去量化之前在解码器处组合所述基础层系数与增强层系数。同时,当增强层不可用或解码器出于例如功率节省等原因而决定不解码增强层时,所述算法应提供用于可接受的基础层视频。在以下紧接的对标准预测编码的简要论述的情形中,下文进一步论述此过程的示范性实例的细节。
P帧(或任何帧间编码部分)可利用当前图片中的区与参考图片中的最佳匹配预测区之间的时间冗余。参考帧中的最佳匹配预测区的位置可在运动向量中编码。当前区与最佳匹配参考预测区之间的差异称为残余误差(或预测误差)。
图32是(例如)MPEG-4中的P帧构建过程的实例的说明。过程331是可在图31的方框323中发生的实例性过程的更详细说明。过程331包括由5×5个宏区块组成的当前图片333,其中此实例中的宏区块数目是任意的。宏区块由16×16个像素组成。像素可由8位亮度值(Y)和两个8位色度值(Cr和Cb)定义。在MPEG中,Y、Cr和Cb分量可存储为4:2:0格式,其中Cr和Cb分量在X和Y方向上以2向下取样。因此,每一宏区块将由256个Y分量、64个Cr分量和64个Cb分量组成。在从位于与当前图片333不同的时间点处的参考图片337预测当前图片333的宏区块335。在参考图片337中进行搜索以定位在Y、Cr和Cb值方面最接近正被编码的当前宏区块335的最佳匹配宏区块339。参考图片337中的最佳匹配宏区块339的位置在运动向量341中编码。参考图片337可以是I帧或P帧,在构建当前图片333之前解码器将已经重建所述I帧或P帧。从当前宏区块335减去最佳匹配宏区块339(计算Y、Cr和Cb分量中每一者的差异),从而产生残余误差343。用2D离散余弦变换(DCT)345编码残余误差343且接着进行量化347。可执行量化347以通过(例如)向高频率系数分派较少位而向低频率系数分派较多位来提供空间压缩。残余误差343的量化系数连同运动向量341和参考图片333识别信息是表示当前宏区块335的经编码信息。所述经编码信息可存储在存储器中以供将来出于(例如)错误校正或图像增强的目的来使用或操作,或经由网络349传输。
残余误差343的经编码量化系数连同经编码运动向量341可用于在编码器中重建当前宏区块335,以用作用于后续运动估计和补偿的参考帧的一部分。编码器可模仿解码器的针对此P帧重建的程序。模仿解码器将导致编码器和解码器两者对同一参考图片起作用。此处展现重建过程,无论是在编码器中进行以供进一步帧间编码还是在解码器中进行。可在重建参考帧(或正被参考的图片或帧的一部分)之后开始P帧的重建。经编码量化系数经去量化351且接着执行2D反DCT或IDCT 353,从而产生经解码或重建的残余误差355。经编码运动向量341经解码且用于在已经重建的参考图片337中定位已经重建的最佳匹配宏区块357。接着将重建的残余误差355添加到重建的最佳匹配宏区块357以形成重建的宏区块359。重建的宏区块359可存储在存储器中,独立显示或与其它重建宏区块一起在图片中显示,或进一步进行处理以实现图像增强。
B帧(或通过双向预测编码的任何部分)可利用当前图片中的区与先前图片中的最佳匹配预测区和后续图片中的最佳匹配预测区之间的时间冗余。将后续最佳匹配预测区与先前最佳匹配预测区组合以形成组合双向预测区。当前图片区与最佳匹配组合双向预测区之间的差异是残余误差(或预测误差)。后续参考图片中的最佳匹配预测区和先前参考图片中的最佳匹配预测区的位置可在两个运动向量中编码。
图33说明可由编码器228执行的用于编码基础层和增强层系数的编码器过程的实例。对基础层和增强层进行编码以提供SNR可缩放位流。图33描绘例如将在图31的步骤323中进行的用于编码帧间MB残余误差系数的实例。然而,还可使用类似方法来编码帧内MB系数。例如图2的编码器组件228等编码装置可执行图33中说明的过程和图32的步骤323。将初始(待编码)视频数据406(在此实例中,视频数据包含亮度和色度信息)输入到基础层最佳匹配宏区块回路363和增强层最佳匹配宏区块回路365。回路363和365两者的目的在于分别将在加法器367和369处计算的残余误差减到最小。可并行地(如图所示)或依次地执行回路363和365。回路363和365分别包括用于搜索缓冲器371和373(其含有参考帧)的逻辑,以识别将最佳匹配宏区块与初始数据361之间的残余误差减到最小的最佳匹配宏区块(缓冲器371和373可以是同一缓冲器)。由于基础层回路363将通常利用比增强层回路365粗的量化步长(较高QP值),因而回路363和365的残余误差将不同。变换方框375和377变换每一回路的残余误差。
接着在选择器379中将经变换系数剖析为基础层和增强层系数。选择器379的剖析可采取若干形式,如下文论述。剖析技术的一个共同特征是计算增强层系数C′enh,使得其是基础层系数C′base的微分改进。将增强层计算为基础层的改进允许解码器自己解码基础层系数且具有图像的合理表示,或组合基础层和增强层系数且具有图像的改进表示。接着由量化器381和383量化由选择器379选择的系数。量化系数和(分别用量化器381和383计算)可存储在存储器中或经由网络传输到解码器。
为了与解码器中的宏区块重建匹配,去量化器385将基础层残余误差系数去量化。经去量化的残余误差系数经反变换387且添加389到在缓冲器371中找到的最佳匹配宏区块,从而产生与将在解码器中重建的宏区块匹配的重建宏区块。量化器383、去量化器391、反变换器393、加法器397和缓冲器373在增强回路365中执行与在基础层回路363中进行的计算类似的计算。另外,加法器393用于组合增强层重建中所使用的经去量化增强层系数与基础层系数。增强层量化器和去量化器将通常利用比基础层细的量化器步长(较低QP)。
图34、35和36展示可在图33的选择器379中采用的基础层和增强层系数选择器过程的实例。例如图2的编码器228等选择装置可执行图34、35和36中描绘的过程。使用图34作为实例,将经变换系数剖析为基础层和增强层系数,如以下等式中所示:
C′enh=Cenh-Qb -1(Qb(C′base)) [26]
其中“min”函数可以是所述两个自变量的数学最小值或最小量值。在图34中,将等式25描绘为方框401且将等式26描绘为加法器510。在等式26中,Qb代表基础层量化器381,且Qb -1代表基础层的去量化器385。等式26将增强层系数转换为用等式25计算的基础层系数的微分改进。
图35是基础层和增强层系数选择器379的另一实例的说明。在此实例中,方框405中包含的等式(.)表示如下:
加法器407如下列两个等式中所示计算增强层系数:
C′enh=Cenh-Qb -1(Qb(C′base)) [28]
其中C′base由等式27给出。
图36是基础层和增强层选择器379的另一实例的说明。在此实例中,基础层系数不变,且增强层等于量化/去量化基础层系数与初始增强层系数之间的差值。
除了基础层和增强层残余误差系数以外,解码器还需要识别如何编码MB的信息。例如图2的编码器组件228等编码装置可编码额外开销信息,所述额外开销信息可包括帧内编码部分和帧间编码部分的映射,例如MB映射,其中宏区块(或子宏区块)被识别为经帧内编码或帧间编码(还识别哪种类型的帧间编码,包括例如正向、反向或双向),和帧间编码部分参考哪些帧。在实例性方面中,MB映射和基础层系数在基础层中编码,且增强层系数在增强层中编码。
P帧和B帧可含有帧内编码MB以及帧间MB。混合视频编码器通常使用速率失真(RD)优化来决定将P帧或B帧中的某些宏区块编码为帧内编码MB。为了具有单层解码(其中帧内编码MB不依赖于增强层帧间MB),不使用任何相邻帧间MB来进行基础层帧内编码MB的空间预测。为了使计算复杂性对于增强层解码保持不变,对于基础层P或B帧中的帧内编码MB,可跳过增强层处的改进。
P帧或B帧中的帧内编码MB与帧间MB相比需要许多更多的位。出于此原因,可仅以基础层质量在较高QP下对P或B帧中的帧内编码MB进行编码。这将在视频质量中引入一定劣化,但是如果在稍后的帧中如上论述用基础层和增强层中的帧间MB系数改进此劣化,那么此劣化应为不明显的。两个原因使得此劣化不明显。第一原因是人类视觉系统(HVS)的特征,且另一原因是帧间MB改进帧内MB。对于从第一帧到第二帧改变位置的对象,第一帧中的一些像素在第二帧中不可见(待被覆盖的信息),且第二帧中的一些像素对于第一时间为可见的(未被覆盖的信息)。人类眼睛对未被覆盖和待被覆盖的视觉信息不敏感。因此对于未被覆盖的信息,即使其以较低质量进行编码,眼睛也可能不能分辩所述差异。如果在随后的P帧中仍有相同信息,那么在增强层处的随后P帧将很可能对其改进,因为增强层具有较低QP。
在P帧或B帧中引入帧内编码MB的另一常见技术称为帧内刷新。即使标准R-D优化将规定MB应该是帧间编码MB,但在此情况下,一些MB被编码为帧内编码MB。这些帧内编码MB(包含在基础层中)可用QPb或QPe编码。如果将QPe用于基础层,那么不需要在增强层处改进。如果QPb用于基础层,那么可能需要改进,否则在增强层处,质量下降将较明显。由于在编码效率的意义上帧间编码比帧内编码更有效,因而在增强层处的这些改进将被帧间编码。以此方式,基础层系数将不用于增强层。因此,在不引入新操作的情况下质量在增强层处得到改进。
因为B帧提供较高压缩质量,所以其通常用于增强层中。然而,B帧可能必须参考P帧的帧内编码MB。如果B帧的像素待以增强层质量进行编码,那么由于P帧帧内编码MB的较低质量的缘故,可能需要太多位,如上论述。通过利用HVS的质量,如上论述,当参考P帧的较低质量帧内编码MB时,B帧MB可以较低质量进行编码。
P帧或B帧中的帧内编码MB的一种极端情况是当由于正被编码的视频中存在场景变化的缘故P帧或B帧中所有MB均以帧内模式进行编码时。在此情况下,整个帧可以基础层质量进行编码且在增强层处没有改进。如果在B帧处发生场景变化,且假设B帧仅在增强层中被编码,那么B帧可以基础层质量进行编码或完全丢弃。如果在P帧处发生场景变化,那么可能不必要变化,但P帧可被丢弃或以基础层质量进行编码。在题为“具有两层编码和单层解码的可缩放视频编码(SCALABLE VIDEO CODING WITH TWOLAYER ENCODING AND SINGLE LAYER DECODING)”且由本受让人所有的共同待决的第[代理人案号/参考号050078]号美国专利申请案中进一步描述可缩放层编码,所述申请案的全文以引用方式并入本文中。
编码器第一遍部分
图7展示图2的编码器228的说明性实例。所示方框说明可包括在编码器228中的各种编码器处理。在此实例中,编码器228包括在分界线704上方的第一遍部分706和在线704下方的第二遍部分706(包括图2中的第二遍编码器232和再编码器234的功能性)。
编码器228从预处理器226接收元数据和原始视频。元数据可包括由预处理器226接收或计算的任何元数据,其中包括与视频的内容信息相关的元数据。编码器228的第一遍部分702说明可包括在第一遍编码702中的示范性过程,下文在其功能性方面加以描述。如所属领域的技术人员将了解,可以各种形式(例如,硬件、软件、固件或其组合)来实施此功能。
图7说明适应性帧内刷新(AIR)模块。AIR模块710向I帧例示模块708提供输入,I帧例示模块708基于元数据来例示I帧。第一遍部分702还可包括内容分类模块712,其经配置以接收元数据和视频且确定与所述视频相关的内容信息。可将内容信息提供到速率控制位分配模块714,其还接收元数据和视频。控制位分配模块714确定速率位控制信息且将其提供到模式决策模块715。可将内容信息和视频提供到帧内模型(失真)模块716,帧内模型(失真)模块716将帧内编码失真信息提供到模式决策模块715以及基础和增强层可缩放性速率失真模块718。将视频和元数据提供到运动估计(失真)模块720,运动估计(失真)模块720将帧间编码失真信息提供到基础和增强层可缩放性速率失真模块718。基础和增强层可缩放性速率失真模块718使用来自运动估计模块720和帧内模型失真模块716的失真估计来确定可缩放性速率失真信息,所述可缩放性速率失真信息被提供到模式决策模块715。模式决策模块715还接收来自切片/MB定序模块722的输入。切片/MB定序模块722接收来自错误复原模块740(第二遍部分706中展示)的输入,且向模式决策模块715提供关于将视频的可独立编码部分(切片)与存取单元边界对准以获得错误复原的信息。模式决策模块715基于其输入来确定编码模式信息且向第二遍部分706提供“最佳”编码模式。下文描述此第一遍部分702的一些实例的进一步说明性解释。
如上陈述,内容分类模块712接收由预处理器226供应的元数据和原始视频。在一些实例中,预处理器226根据多媒体数据计算内容信息且将所述内容信息提供到内容分类模块712(例如,以元数据形式),内容分类模块712可使用所述内容信息来确定多媒体数据的内容分类。在其它一些方面中,内容分类模块712经配置以根据多媒体数据确定各种内容信息,且还可经配置以确定内容分类。
内容分类模块712可经配置以确定具有不同类型的内容的视频的不同内容分类。不同内容分类可导致不同参数用于编码多媒体数据的方面中,例如确定位速率(例如,位分配)以确定量化参数、运动估计、可缩放性、错误复原,在信道上维持最佳多媒体数据质量,且用于快速信道切换方案(例如,周期性促成I帧以允许快速信道切换)。根据一个实例,编码器228经配置以基于内容分类来确定速率-失真(R-D)优化和位速率分配。确定内容分类允许基于内容分类而将多媒体数据压缩为对应于所需位速率的给定质量等级。而且,通过将多媒体数据的内容分类(例如,基于人类视觉系统来确定内容分类),使得所传达的多媒体数据在接收装置的显示器上的所得感知质量依赖于视频内容。
作为内容分类模块712所经历的将内容分类的程序的实例,图9展示过程900,其说明内容分类模块712可操作的示范性过程。如图所示,过程900在输入方框902处开始,在此处内容分类模块712接收原始多媒体数据和元数据。过程900接着前进到方框904,在此处内容分类模块712确定多媒体数据的空间信息和时间信息。在一些方面中,通过空间和时间遮蔽(例如,滤波)来确定空间和时间信息。可基于包括场景变化数据和运动向量(MV)平滑的元数据来确定空间和时间信息。过程900接着前进到方框912,其执行空间复杂性、时间复杂性和敏感度估计。过程900接着前进到方框916,在此处基于方框904和912中确定的空间、时间和敏感度数据的结果将多媒体数据的内容分类。而且在方框916处,可选择特定速率-失真(R-D)曲线且/或可更新R-D曲线数据。过程900接着前进到输出方框918,在此处输出可包括指示空间和时间活动性(例如,内容分类)的复杂性-失真映射或值,和/或所选择的R-D曲线。回头参看图7,内容分类模块712将输出提供到速率控制位分配模块714、帧内模型(失真)模块716,且还提供到I帧例示模块708(上文论述)。
内容信息
内容分类模块712可经配置以根据多媒体数据计算各种内容信息,其中包括各种内容相关量度,包括空间复杂性、时间复杂性、反差比值、标准偏差和帧差异量度,下文进一步加以描述。
内容分类模块712可经配置以确定多媒体数据的空间复杂性和时间复杂性,且还将纹理值与空间复杂性相关联并将运动值与时间复杂性相关联。内容分类模块712从预处理器226接收与正被编码的多媒体数据的内容相关的预处理内容信息,或者预处理器226可经配置以计算内容信息。如上所述,内容信息可包括(例如)一个或一个以上Dcsat值、反差比值、运动向量(MV)和绝对差总和(SAD)。
一般来说,多媒体数据包括一个或一个以上图像序列或帧。每一帧可分解成多个像素块以供处理。空间复杂性是大体上描述帧内的空间细节水平的测量的广义术语。具有主要为素色或不变或低变化的亮度和色度区域的场景将具有低空间复杂性。空间复杂性与视频数据的纹理相关联。在此方面中,空间复杂性基于称为Dcsat的人类视觉敏感度量度,其是作为局部空间频率与环境照明的函数来针对每一块计算的。一般熟练技术人员知道用于使用视觉图像的空间频率图案和照明及对比特性来利用人类视觉系统的技术。已知许多敏感度量度用于利用人类视觉系统的透视限制,且可与本文所描述的方法一起使用。
时间复杂性是用于大体上描述如在帧序列中的帧之间所参考的多媒体数据中的运动水平的测量的广义术语。具有很少运动或没有运动的场景(例如,视频数据帧序列)具有低时间复杂性。可针对每一宏区块且可基于Dcsat值、运动向量和一个帧与另一帧(例如,参考帧)之间的绝对像素差异总和来计算时间复杂性。
通过考虑运动量(例如,运动向量或MV)连同表示为预测器与当前宏区块之间的绝对差总和(SAD)的残余能量,帧差异量度给出两个连续帧之间的差异的测量。帧差异还提供双向或单向预测效率的测量。
基于从潜在执行运动补偿解交错的预处理器接收的运动信息的帧差异量度的一个实例如下。解交错器执行双向运动估计,且因此双向运动向量和SAD信息可用。可如下导出由SAD_MV表示的针对每一宏区块的帧差异:
SAD_MV=log10[SAD*exp(-min(1,MV))] [29]
其中MV=Square_root(MVx 2+MVy 2),SAD=min(SADN,SADP),其中SADN是从反向参考帧计算的SAD,且SADP是从正向参考帧计算的SAD。
上文参考等式6到8描述了估计帧差异的另一方法。可如早先在以上等式6中描述来计算SAD比(或对比定量)γ。还可确定每个帧的亮度直方图,直方图差异λ是使用等式7来计算的。可如等式8中所示计算帧差异量度D。
在一个示范性实例中,以下列方式利用反差比和帧差异量度以获得视频内容分类,视频内容分类能可靠地预测给定视频序列中的特征。虽然本文描述为发生在编码器228中,但预处理器226还可经配置以确定内容分类(或其它内容信息)且经由元数据将内容分类传递到编码器228。在以下实例中描述的过程将内容分类成8个可能种类,这与从基于R-D曲线的分析获得的分类类似。依据每一超帧中的场景复杂性和场景变化发生数目而定,分类过程针对每一超帧输出在0与1之间的范围内的值。预处理器中的内容分类模块可对每一超帧执行下列步骤(1)到(5)以从帧对比值和帧差异值获得内容分类量度。
1.根据宏区块对比值计算平均帧对比和帧对比偏差。
2.使用从模拟获得的值来标准化帧对比值和帧差异值,其分别为40和5。
3.使用(例如)以下通用化等式来计算内容分类量度:
CCMetric=CCW 1*I_Frame_Contrast_Mean+CCW2*Frame_Difference_Mean-CCW3*
I_Contrast_Deviation^2*exp(CCW4*Frame_Difference_Deviation^2) [30]
其中CCW1、CCW2、CCW3和CCW4是加权因子。在此实例中,将所述值选择为:CCW1为0.2,CCW2为0.9,CCW3为0.1,且CCW4为-0.00009。
4.确定超帧中的场景变化数目。一般来说,超帧是指可在特定时段中显示的图片或帧组。通常,所述时段为1秒。在一些方面中,超帧包含30个帧(用于30/fps视频)。在其它方面中,超帧包含24个帧(24/fps视频)。依据场景变化数目而定,可执行下列情况中的一者:
(a)没有场景变化:当超帧中不存在场景变化时,量度完全仅依赖于帧差异值,如下列等式中所示:
CCMetric=(CCW2+(CCW 1/2))*Frame_Difference_Mean-(CCW3-(CCW 1/2))*1*
Exp(-CCW4*Frame_Difference_Deviation^2) [31]
(b)单个场景变化:当超帧中观察到单个场景变化时,将使用默认等式来计算量度,如下所示:
CCMetric=CCW 1*I_Frame_Contrast_Mean+CCW2*Frame_Difference_Mean-CCW3*
I_Contrast_Deviation^2*exp(CCW4*Frame_Difference_Deviation^2) [32]
(c)两个场景变化:当观察到在给定超帧中存在至多2个场景变化时,与第一超帧相比将更多权数给予最后超帧,因为第一超帧无论如何会由稍后超帧快速刷新,如下列等式中所示:
CCMetric=0.1*I_Frame_Contrast_Mean 1+CCW 1*I_Frame_Contrast_Mean2+
(CCW2-0.1)*Frame_Difference_Mean-CCW3*I_Contrast_Deviation 1^2*
I_Contrast_Deviation2^2*exp(CCW4*Frame_Difference_Deviation^2) [33]
(d)三个或三个以上场景变化:如果观察到给定超帧具有3个以上(比如N个)I帧,那么给予最后I帧较多权数且给予所有其它I帧为0.05的权数,如下列等式中所示:
CCMetric=0.05*I_Frame_Contrast_Mean(1....N-1)+CCW 1*I_Frame_Contrast_Mean(N)+
(CCW2-(0.05*(N-1)))*Frame_Difference_Mean-CCW3*I_Contrast_Deviation(N)^2*
I_Contrast_Deviation(1....N-1)^2*exp(CCW4*Frame_Difference_Deviation^2) [34]
5.在帧差异平均值小于0.05时的低运动场景的情况下,可对量度进行校正。将0.33的偏移(CCOFFSET)添加到CCMetric。
内容分类模块712使用Dcsat值、运动向量和/或绝对差总和来确定指示宏区块的空间复杂性的值(或视频数据的指定量)。时间复杂性是由帧差异量度(考虑运动量连同运动向量的两个连续帧之间的差异,和所述帧之间的绝对差总和)的测量决策的。
在一些方面中,内容分类模块712可经配置以产生带宽映射。举例来说,如果预处理器226不产生带宽映射,那么带宽映射产生可由内容分类模块712执行。
确定纹理值和运动值
对于多媒体数据中的每一宏区块,内容分类模块712将纹理值与空间复杂性相关联且将运动值与时间复杂性相关联。纹理值与多媒体数据的亮度值有关,其中低纹理值指示数据的相邻像素的亮度值中的较小变化,且高纹理值指示数据的相邻像素的亮度值中的较大变化。一旦计算出纹理值和运动值,内容分类模块712便通过考虑运动信息和纹理信息两者来确定内容分类。内容分类模块712将正被分类的视频数据的纹理与相对纹理值(例如,“低”纹理、“中”纹理或“高”纹理)相关联,相对纹理值大体上指示宏区块的亮度值的复杂性。而且,内容分类模块712将为正被分类的视频数据计算的运动值与相对运动值(例如,“低”运动、“中”运动或“高”运动)相关联,相对运动值大体上指示宏区块的运动量。在替代方面中,可使用用于运动和纹理的更少或更多种类。接着,通过考虑相关联的纹理值和运动值来确定内容分类量度。
图8说明分类图表的实例,所述分类图表说明纹理值和运动值如何与内容分类相关联。所属领域的技术人员熟悉用以实施此分类图表的许多方式(例如,以查找表或数据库形式)。分类图表是基于视频数据内容的预定评估来产生的。为了确定视频数据分类,交叉参考“低”、“中”或“高”纹理值(在“x轴”上)与“低”、“中”或“高”运动值(在“y轴”上)。将相交块中指示的内容分类指派给视频数据。举例来说,“高”纹理值与“中”运动值导致分类七(7)。图8说明在此实例中与8个不同内容分类相关联的相对纹理值与运动值的各种组合。在其它一些方面中,可使用更多或更少的分类。在2006年3月10日申请的题为“用于多媒体处理的内容分类(CONTENT CLASSIFICATIONFOR MULTIMEDIA PROCESSING)”且转让给本受让人的共同待决的第11/373,577号美国专利申请案中揭示了对内容分类的说明性方面的进一步描述,所述申请案明确地以引用的方式并入本文中。
速率控制位分配
如本文所描述,多媒体数据内容分类可用于编码算法以在维持视频的恒定感知质量的同时有效地改进位管理。举例来说,可在用于场景变化检测、编码位速率分配控制和帧速率向上变换(FRUC)的算法中使用分类量度。压缩器/解压缩器(编解码器)系统和数字信号处理算法通常用于视频数据通信中,且可经配置以节省带宽,但在质量与带宽节省之间存在折衷。最佳编解码器在产生视频质量的最小降级的同时提供最大的带宽节省。
在一个说明性实例中,速率控制位分配模块714使用内容分类来确定位速率(例如,分配用于编码多媒体数据的位数目)且将位速率存储到存储器中以供编码器228的其它过程和组件使用。根据视频数据的分类确定的位速率可帮助在以一致质量等级提供多媒体数据的同时节省带宽。在一个方面中,可将不同的位速率与所述8个不同的内容分类中的每一者相关联且接着使用所述位速率来编码多媒体数据。所得效应在于,虽然多媒体数据的不同内容分类被分配不同数目的位以进行编码,但当在显示器上观看时感知质量类似或一致。
一般来说,具有较高内容分类的多媒体数据指示较高运动和/或纹理水平且在编码时被分配较多位。具有较低分类的多媒体数据(指示较少纹理和运动)被分配较少位。对于特定内容分类的多媒体数据来说,可基于为观看多媒体数据而选定的目标感知质量等级来确定位速率。可通过人类观看多媒体数据并对其评级来确定对多媒体数据质量的确定。在一些替代方面中,可通过自动测试系统使用(例如)信噪比算法来估计多媒体数据质量。在一个方面中,针对每一内容分类的多媒体数据预定一组标准质量等级(例如,5个)和实现每一特定质量等级需要的相应位速率。为了确定一组质量等级,可通过产生平均意见分数(MOS)来评估特定内容分类的多媒体数据,平均意见分数(MOS)在使用某位速率编码多媒体数据时提供对所述多媒体数据的视觉感知质量的数字指示。MOS可表述为在1到5范围内的单个数字,其中1是最低感知质量,且5是最高感知质量。在其它方面中,MOS可具有5个以上或5个以下质量等级,且可使用每一质量等级的不同描述。
可通过人类观看多媒体数据并对其评级来确定对多媒体数据质量的确定。在一些替代方面中,可通过自动测试系统使用(例如)信噪比算法来估计多媒体数据质量。在一个方面中,针对每一内容分类的多媒体数据来预定一组标准质量等级(例如,5个)和实现每一特定质量等级需要的相应位速率。
可通过选择目标(例如,所需)质量等级来确定对特定内容分类的多媒体数据的视觉感知质量等级与位速率之间的关系的了解。用于确定位速率的目标质量等级可预先选择,由用户选择,通过自动过程或需要来自用户或来自另一过程的输入的半自动过程来选择,或通过编码装置或系统基于预定准则来动态选择。可基于(例如)编码应用程序的类型或将接收多媒体数据的客户端装置的类型来选择目标质量等级。
在图7中所说明的实例中,速率控制位分配模块714接收来自内容分类模块712的数据和直接来自预处理器226的元数据两者。速率控制位分配模块714驻留在编码器228的第一遍部分中,且速率控制微调模块738驻留在第二遍部分706中。此两遍速率控制方面经配置以使得第一遍(速率控制位分配模块714)通过预看一个超帧来执行上下文适应性位分配(例如,以256kbps的长期平均位速率为目标)并限制峰值速率,且第二遍(速率控制微调模块738)改进第一遍结果以获得两层可缩放性并执行速率调适。速率控制以四个等级进行操作:(1)GOP等级——控制I帧、P帧、B帧和F帧的位分布在GOP内不均匀;(2)超帧等级——控制对最大超帧大小的硬性限制;(3)帧等级——根据多媒体数据帧的空间和时间复杂性来控制位要求,空间和时间复杂性是基于内容信息(例如,内容分类);和(4)宏区块等级——基于空间和时间复杂性映射来控制宏区块的位分配,空间和时间复杂性映射是基于内容信息(例如,内容分类)。
图10中说明速率控制模块714的操作的示范性流程图。如图10中所示,过程1000在输入1002方框处开始。速率控制模块714接收各种输入,不是所有所述输入都必须由图7加以说明。举例来说,输入信息可包括来自预处理器226的元数据、目标位速率、编码器缓冲器大小(或作为等效物,用于速率控制的最大延迟时间)、初始速率控制延迟和帧速率信息。另外的输入信息可包括图片组(GOP)等级的输入,其中包括(例如)最大超帧大小、GOP的长度和P/B帧分布(包括场景变化信息)、所需的基础层和增强层排列、GOP中用于未来30个帧的图片的复杂性-失真量度。其它输入信息包括图片等级的输入,其中包括针对当前图片的复杂性-失真映射(从内容分类模块712接收)、量化参数(QP)和过去30个帧的位分解(套在滑动时窗上)。最后,宏区块(MB)等级的输入信息包括(例如)参考图片中的并置宏区块(MB)的平均绝对差(MAD)和宏区块在量化之后(无论是否跳过)的编码块图案(CBP)。
在方框1002处输入之后,过程1000前进到方框1004以进行对编码位流的初始化。同时,执行缓冲器初始化1006。接下来,如方框1008中所示对GOP初始化,其中接收GOP位分配1010作为初始化的一部分。在GOP初始化之后,流程前进到方框1012,其中对切片初始化。此初始化包括如方框1014所示的更新标头位。在执行方框1004、1008和1012的初始化之后,如方框1016所示执行针对基本单元或宏区块(MB)的速率控制(RC)。作为方框1016中的宏区块的速率控制确定的一部分,经由编码器228中的界面接收输入。这些输入可包括宏区块(MB)位分配1018、二次式模型参数的更新1020和偏离中值的中值绝对偏差(“MAD”,稳健离散估计)参数的更新1022。接下来,过程1000前进到方框1024以在编码一个图片之后执行操作1024。此程序包括接收如方框1026所示的缓冲器参数的更新。过程1000接着前进到输出方框1028,在此处速率控制模块714输出待由如图7所示的模式决策模块715使用的每一宏区块MB的量化参数QP。
运动估计
运动估计模块720接收来自预处理器226的元数据和原始视频的输入,且将可包括块大小、运动向量失真量度和参考帧识别符的输出提供到模式决策模块715。图11说明运动估计模块720的示范性操作。如图所示,过程1100以输入1102开始。在帧等级处,模块720接收参考帧ID和运动向量的输入。在宏区块等级处,输入1102包括输入像素和参考帧像素。过程1100继续到步骤1104,其中执行颜色运动估计(ME)和运动向量预测。为了执行此过程,接收各种输入,其中包括MPEG-2运动向量和亮度运动向量MV1106、运动向量平滑1108和非因果运动向量1110。接下来,过程1100前进到方框1112,在此处执行运动向量搜索算法或方法,例如六角形或菱形搜索方法。到方框1112处的过程的输入可包括如方框1114所示的绝对差总和(SAD)、平方差总和(SSD)和/或其它量度。一旦执行了运动向量搜索,过程1100便前进到终止方框1116,在此处执行终止处理。过程1100接着在输出方框1118处结束,所述输出方框1118产生块大小、运动向量(MV)、失真量度和参考帧识别符的输出。
基础层和增强层的可缩放性R-D
图13说明可由可缩放性R-D模块718执行的可缩放性过程1300的示范性流程图。过程1300在开始方框1302处开始且前进到方框1304,在此处可缩放性R-D模块718接收来自运动估计模块720的输入且执行运动估计。运动估计依赖于如方框1306指示的基础层参考帧、增强层参考帧和待编码初始帧的输入。此信息可由GOP分割器612计算且经由(例如)元数据传达到可缩放性R-D模块718。过程1300前进到方框1308以确定数据基础层和增强层数据的可缩放性信息。接下来如方框1310中所示执行基础层编码,随后在方框1312中执行增强层编码。增强层的编码可使用针对层间预测的基础层编码结果作为输入(如方框1314所说明),因此在时间上,其在基础层编码之后执行。这在题为“具有两层编码和单层解码的可缩放视频编码(SCALABLE VIDEO CODING WITHTWO LAYER ENCODING AND SINGLE LAYER DECODING)”的共同待决的第[代理人案号/参考号050078]号美国专利申请案中进一步加以描述。在完成编码之后,过程1300在方框1316处结束。
切片/宏区块定序
第一遍部分702还包括切片/宏区块定序模块722,其接收来自第二遍部分中的错误复原模块740的输入且将切片对准信息提供到模式决策模块715。切片是可独立解码(熵解码)的经编码视频数据的块体。存取单元(AU)是经编码视频帧,其每一者包含一组NAL单元,所述一组NAL单元总是含有正好一个主要编码图片。除了所述主要编码图片以外,存取单元还可含有一个或一个以上冗余编码图片或不含有编码图片的切片或切片数据分区的其它NAL单元。存取单元的解码总是产生解码图片。
帧可以是提供最高时间分集的物理层包的时分多路复用块(称为TDM封装)。超帧对应于一个单位时间(例如,1sec)且含有四个帧。在时域中将切片和AU边界对准帧边界产生对被破坏数据的最有效分离和定位。在强衰减期间,TDM封装中的大多数连续数据受错误影响。由于时间分集的缘故,剩余TDM封装有很大可能是完整无损的。可利用未被破坏的数据来复原和隐藏来自受影响的TDM封装的丢失数据。类似逻辑适用于频域多路复用(FDM),其中通过数据符号调制的频率子载波的分离来获得频率分集。此外,类似逻辑适用于空间分集(通过传输器与接收器天线的分离)和无线网络中通常应用的其它形式的分集。
为了将切片和AU与帧对准,外部码(FEC)码块创建与MAC层包封同样应对准。图20说明切片和AU中的编码视频数据或视频位流的组织。编码视频可以一个或一个以上位流(例如,应用分层视频编码的基础层位流和增强层位流)构成。
视频位流包含如图20中由帧1′2005、帧3′2010和帧M′2015说明的AU。AU包含数据切片,如由切片1 2020、切片2 2025和切片N 2030所说明。切片的每一开始由开始码识别且提供用于网络适应。一般来说,I帧或帧内编码AU较大,接着是P帧或正向预测帧,接着是B帧。将AU编码为多个切片使得在编码位速率方面引起相当大的额外开销成本,因为切片上的空间预测受到限制且切片标头还作用于额外开销。因为切片边界是再同步点,所以将连续物理层包限制到切片控制错误,这是由于当PLP受到破坏时,错误限于所述PLP中的切片,而如果PLP含有多个切片或多个切片的部分,那么错误将影响所述PLP中的所有切片或切片部分。
由于I帧通常较大(例如,大约几十千位),因而由于多个切片引起的额外开销占总I帧大小或总位速率的比例不大。而且,在帧内编码AU中具有较多切片实现更好且更频繁的再同步和更有效的空间错误隐藏。而且,由于P帧和B帧是从I帧预测的,因而I帧携载视频位流中最重要的信息。I帧还充当用于信道获取的随机存取点。
现在参看图21,仔细地将I帧与帧边界对准且同样将具有IAU的切片与帧边界对准实现最有效的错误控制、错误保护(这是由于如果属于帧1 2105的一个切片丢失,那么属于帧2 2110的切片很有可能是完整无损的,因为帧2 2110与帧1 2105具有明显时间分离),可通过再同步和错误隐藏来执行错误恢复。
因为P帧的大小通常为大约几千位,所以将P帧的切片和整数个P帧与帧边界对准实现错误复原而不会对效率产生有害损失(出于与I帧的原因类似的原因)。在此些方面中可利用时间错误隐藏。或者,分散连续P帧以使得其到达不同帧中可在P帧间提供增加的时间分集,这可能是因为时间隐藏是基于来自先前重建的I帧或P帧的运动向量和数据。B帧可以非常小(几百位)到适度大(几千位)。因此,需要将整数个B帧与帧边界对准以实现错误复原而不会对效率产生有害损失。
模式决策模块
图12说明模式决策模块715的操作的一些实例。如图所示,过程1200在输入方框1202处开始。在一个说明性实例中,输入到模式决策模块715的各种信息包括切片类型、帧内4×4成本、帧内16×16成本、帧内UV 8×8成本、帧内Y 16×16模式、帧内UV模式、运动向量数据(MVD)、量化参数(QP)、SpPredMB4×4Y、SpPredMB16×16Y、SpPredMB8×8U、SpPredMB8×8V、速率失真旗标、原始YMB像素、原始UMB像素和原始VMB像素。接着,过程1200前进到方框1204编码初始化,其可通过指导如方框1206所指示的编码器初始化的输入信号或界面来起始。初始化可包括设定允许模式(包括跳过、直接)、设定模式权数(如果需要的话,默认值将对于所有模式均为相等权数)和设定缓冲器。在初始化之后,过程1200前进到方框1208,在此处执行用于模式决策的主要处理,包括:计算用于每一允许模式的宏区块(MB)模式成本、用加权因子加权每一MB模式成本和选择最小MB模式成本模式。这些操作所涉及的输入包括如方框1210和1212所说明的运动估计(例如,MVD和预测)和空间预测(例如,所有帧内成本和预测)。与模式决策模块715介接的是方框1214中的熵编码,其尤其改进压缩速率。过程1200前进到方框1216,在此处缓冲器经更新以将信息传递到编码器第二遍部分706。最后,过程1200前进到方框1218,在此处可将“最佳”编码模式传达到编码器第二遍部分706。
编码器第二遍部分
再次参看图7,编码器228的第二遍部分706包括用于执行第二遍编码的第二遍编码器模块232。第二遍编码器232接收来自模式决策模块715的输出。第二遍编码器232包括MC/变换量化模块726和Z字形(ZZ)/熵编码器728。第二遍编码器232的结果被输出到可缩放性模块730和位流包装模块731,位流包装模块731输出经编码基础层和增强层以供通过转码器200经由同步层240进行传输(图2中说明)。如图2中所示,请注意来自第二遍编码器232和再编码器234的基础层和增强层由同步层240汇集为包括基础层和增强层的分包PES 242、数据PES 244(例如,CC和其它文本数据)和音频PES246。请注意,音频编码器236接收经解码音频信息218,且又编码所述信息并将经编码信息238输出到同步层240。
再编码器
再次参看图7,编码器第二遍部分706还包括再编码器234,其对应于图2中的再编码器234。再编码器234还接收第一遍部分702的输出且包括MC/变换量化726和ZZ/熵编码728部分。另外,可缩放性模块730输出到再编码器234。再编码器234将来自再编码的所得基础层和增强层输出到位流包装模块731以供传输到同步器(例如,图2中所示的同步层240)。图7中的编码器228实例还包括速率控制微调模块738,其将位流包装反馈提供到第二遍编码器232中的MC/变换量化模块234和再编码器234中的ZZ/熵模块736两者,以帮助调整第二遍编码(例如,以增加压缩效率)。
错误复原模块
图7中所说明的编码器228实例还包括第二遍部分706中的错误复原模块740。错误复原模块740与位流包装模块731和切片/MB定序模块722通信。错误复原模块740接收来自预处理器228的元数据,且选择错误复原方案,例如将切片和存取单元与帧边界对准、预测性分级结构和适用性帧内刷新。可基于在元数据中接收的信息或根据从位流包装模块731和切片/MB定序模块722传达到错误复原模块的信息来选择错误复原方案。错误复原模块740将信息提供到第一遍部分702中的切片/宏区块(MB)定序模块以实施选定的错误复原过程。易出错环境中的视频传输可采用错误复原策略和算法,其可导致向观看用户展现更清楚且较少错误填充的数据。以下错误复原描述可应用于现有或未来应用、传送和物理层或其它技术的任何个体或组合。有效的抗错性算法集成OSI层间的错误易感特性和错误保护能力连同通信系统的所需特性(例如低等待时间和高处理量)的理解。错误复原处理可基于多媒体数据的内容信息(例如,基于多媒体数据的内容分类)。主要优点之一是从衰减和多路径信道错误的可复原性。下文描述的错误复原方法具体关于可并入在编码器228中(例如,明确地说,在错误复原模块740和切片/MB定序模块722中)的过程,且通常可延伸到易出错环境中的数据通信。
错误复原
对于基于预测的混合压缩系统来说,在没有进行任何时间预测的情况下独立编码帧内编码帧。可在时间上从过去帧(P帧)和未来帧(B帧)预测帧间编码帧。可通过搜索过程在参考帧(一个或一个以上)中识别最佳预测者,且使用例如SAD等失真量度来识别最佳匹配。当前帧的预测编码区可以是具有各种大小和形状(16×16、32×32、8×4等)的块或通过(例如)分段来识别为对象的像素组。
时间预测通常在许多帧(例如,10到几十个帧)上延伸且在将帧编码为I帧时终止,GOP通常由I帧频率定义。对于最大编码频率,GOP为场景,举例来说,GOP边界与场景边界对准且场景变化帧被编码为I帧。在低运动序列中包含相对静态的背景,且运动通常限制于前景对象。此些低运动序列的内容的实例包括新闻和天气预报节目,其中观看最多的内容的30%以上具有此性质。在低运动序列中,大多数区被帧间编码,且预测帧通过中间预测帧来回头参考I帧。
参看图22,I帧中的帧内编码块2205是用于编码帧(或AU)P1中的帧间编码块2210的预测者。在此实例中,具有这些块的区是背景的静止部分。通过连续的时间预测,帧内编码块2205对错误的敏感度上升,因为其是还暗示其“重要性”较高的“良好”预测者。另外,帧内编码块2205由于称为预测链的此时间预测链而在显示器中存留时间较长(在所述图式的实例中持续场景的持续时间)。
预测分级结构被定义为基于此重要性水平或存留时间测量而创建的块树,其中母代位于顶部(帧内编码块2205)且子代位于底部。请注意,P1中的帧间编码块2215处于分级结构的第二级别上,依此类推。叶子是终止预测链的块。
可为视频序列创建预测分级结构而不管内容类型(例如以及音乐和体育而并非仅为新闻)如何,且其通常可应用于基于预测的视频(和数据)压缩(这适用于本申请案中描述的所有发明)。一旦建立预测分级结构,便可更有效地应用例如适应性帧内刷新(下文描述)等错误复原算法。重要性测量可基于给定块从错误的可复原性,例如通过隐藏操作和应用适应性帧内刷新以增强编码位流对错误的复原。重要性测量的估计可基于块用作预测者的次数(还称为存留时间量度)。存留时间量度还用于通过阻止预测误差传播来改进编码效率。所述存留时间量度还增加用于具有更高重要性的块的位分配。
适应性帧内刷新
适应性帧内刷新是可基于多媒体数据的内容信息的错误复原技术。即使标准R-D优化将指示MB应是帧间编码MB,但在帧内刷新过程中,一些MB被帧内编码。AIR采用运动加权帧内刷新以在P帧或B帧中引入帧内编码MB。可用QPb或QPe编码这些帧内编码MB(其包含在基础层中)。如果QPe用于基础层,那么在增强层处不需要进行改进。如果QPb用于基础层,那么改进可能是适当的,否则在增强层处,质量下降将是明显的。由于在编码效率的意义上帧间编码比帧内编码更有效,因而在增强层处这些改进将被帧间编码。以此方式,基础层系数将不用于增强层,且在不引入新操作的情况下在增强层处改进质量。
在一些方面中,适应性帧内刷新可基于多媒体数据的内容信息(例如,内容分类)来代替或外加运动加权基础。举例来说,如果内容分类相对较高(例如,具有高空间和时间复杂性的场景),那么适应性帧内刷新可向P或B帧中引入相对较多的帧内编码MB。或者,如果内容分类相对较低(指示具有低空间和/或时间复杂性的欠动态场景),那么适应性帧内刷新可在P或B帧中引入较少的帧内编码MB。此些用于改进错误复原的量度和方法不仅可应用于无线多媒体通信的情形中,而且通常可针对数据压缩和多媒体处理(例如,在图形再现中)。
信道切换帧
本文定义的信道切换帧(CSF)是描述为了在广播多路复用中实现快速信道获取和因此流之间的快速信道变化而在广播流中的适当位置处插入的随机存取帧的广义术语。信道切换帧还增加抗错性,因为其提供在主要帧传输具有错误的情况下可使用的冗余数据。I帧或循序I帧(例如H.264中的循序解码器刷新帧)通常用作随机存取点。然而,频繁的I帧(或短GOP,比场景持续时间短)导致压缩效率显著降低。因为可能需要帧内编码块以用于获得错误复原,所以可通过预测分级结构有效组合随机存取和错误复原以在增加抗错性的同时改进编码效率。
可共同实现随机存取切换和抗错性的改进,且其可基于例如内容分类等内容信息。对于低运动序列来说,预测链较长且用以重建超帧或场景所需要的信息的重要部分包含在场景开始处出现的I帧中。信道错误往往是突发性的,并当发生衰减且FEC和信道编码失败时,存在重大残余误差而使得隐藏失败。对于低运动(且因此低位速率)序列来说,由于编码数据的数量不足以在视频位流内提供良好的时间分集,且因为这些序列是再现有利于重建的每个位的高度压缩序列,所以此现象尤其严重。归因于内容性质——每个帧中的更多新信息增加了可独立解码且本质上更具错误复原的帧内编码块的数目,高运动序列具有更好的抗错性。基于预测分级结构的适应性帧内刷新针对高运动序列实现高性能,且对于低运动序列来说性能改进并不显著。因此,含有大多数I帧的信道切换帧是用于低运动序列的分集的良好来源。当超帧发生错误时,连续帧中的解码从CSF开始,CSF由于预测而复原丢失信息且实现错误复原。
在高运动序列(例如具有相对较高内容分类(例如,6到8)的序列)的情况下,CSF可由存留在SF中的块组成——那些块是良好预测者。不必编码CSF的所有其它区,因为这些块是具有短预测链的块,这暗示着所述块以帧内块终止。因此,CSF仍用于在发生错误时由于预测而复原丢失信息。用于低运动序列的CSF与I帧的大小等同,且可通过更多量化以较低位速率进行编码,其中用于高运动序列的CSF远小于相应I帧。
基于预测分级结构的错误复原可很好地对可缩放性起作用,且可实现高度有效的分层编码。用以支持物理层技术中的分级调制的可缩放性可能需要用特定带宽比对视频位流进行数据分割。这些特定带宽比可能并不总是用于最佳可缩放性(例如,具有最小额外开销)的理想比。在一些方面中,使用具有1∶1带宽比的两层可缩放性。对于低运动序列来说,将视频位流分割成大小相等的两个层可能并不有效。对于低运动序列,含有所有标头和元数据信息的基础层大于增强层。然而,由于用于低运动序列的CSF较大,因而其恰好适合增强层处的剩余带宽。
高运动序列具有足够残余信息使得可用最小额外开销实现1∶1的数据分割。另外,用于此些序列的信道切换帧远小于用于高运动序列的。因此,基于预测分级结构的错误复原同样可很好地对高运动序列的可缩放性起作用。基于对这些算法的描述能够延伸以上针对适度运动码片论述的概念,且所提议的概念适用于通常的视频编码。
多路复用器
在一些编码器方面中,多路复用器可用于编码由编码器产生的多个多媒体流且用于准备经编码位以供广播。举例来说,在图2所示的编码器228的说明性方面中,同步层240包含多路复用器。所述多路复用器可经实施以提供位速率分配控制。可将所估计的复杂性提供到多路复用器,所述多路复用器可接着根据针对一批多路复用视频信道预期的编码复杂性来为那些视频信道分配可用带宽,这于是准许特定信道的质量保持相对恒定,即使所述批多路复用视频流的带宽相对恒定。这使得一批信道内的信道具有可变位速率和相对恒定的视觉质量,而非相对恒定的位速率和可变视觉质量。
图18是说明编码多个多媒体流或信道1802的系统的方框图。所述多媒体流1802由各自编码器1804编码,编码器1804与多路复用器(MUX)1806通信,多路复用器(MUX)1806又与传输媒体1808通信。举例来说,多媒体流1802可对应于多个内容信道,例如新闻信道、体育信道、电影信道和其类似信道。编码器1804将多媒体流1802编码为针对所述系统指定的编码格式。尽管在编码视频流的上下文中进行描述,但所揭示技术的原理和优点通常适用于包括(例如)音频流的多媒体流。将经编码的多媒体流提供到多路复用器1806,多路复用器1806组合多个经编码的多媒体流且将组合流发送到传输媒体1808以供传输。
传输媒体1808可对应于各种媒体,例如(但不限于)数字卫星通信(例如DirecTV)、数字电缆、有线和无线因特网通信、光学网络、手机网络等。传输媒体1808可包括(例如)射频(RF)调制。通常,由于频谱约束等的缘故,传输媒体具有有限带宽且从多路复用器1806到传输媒体的数据维持在相对恒定的位速率(CBR)。
在常规系统中,在多路复用器1806的输出处使用恒定位速率(CBR)可能需要输入到多路复用器1806的经编码多媒体或视频流也为CBR。如在背景技术中所描述,在编码视频内容时使用CBR可导致可变的视觉质量,可变的视觉质量通常是不合需要的。
在所说明的系统中,所述编码器1804中的两者或两者以上传达输入数据的预期编码复杂性。所述编码器1804中的一者或一者以上可作为响应从多路复用器1806接收适应位速率控制。这准许期望编码相对较复杂视频的编码器1804以准可变位速率方式针对那些视频帧接收较高位速率或较高带宽(每帧更多位)。这准许将多媒体流1802编码为具有恒定视觉质量。编码相对复杂视频的特定编码器1804所使用的额外带宽来自本应在编码器经实施为以恒定位速率操作的情况下用于编码其它视频流1804的位。这将多路复用器1806的输出维持在恒定位速率(CBR)。
尽管各个多媒体流1802可相对具有“突发性”,即在所使用带宽中改变,但多个视频流的累计总和可具有较少“突发性”。来自正在编码较不复杂的视频的信道的位速率可由(例如)多路复用器1806重新分配到正在编码相对复杂的视频的信道,且这可在整体上增强组合视频流的视觉质量。
编码器1804向多路复用器1806提供对将一起编码和多路复用的一组视频帧的复杂性的指示。多路复用器1806的输出应提供不高于为传输媒体1808指定的位速率的输出。复杂性指示可基于如上论述的内容分类以提供选定质量等级。多路复用器1006分析所述复杂性指示,且向各个编码器1004提供分配数目的位或带宽,且编码器1804使用此信息来编码所述组中的视频帧。这准许一组视频帧各自为可变位速率,且作为一个组仍实现恒定位速率。
内容分类还可用于大体上使任何通用压缩器能够基于质量压缩多媒体。本文描述的内容分类和方法及设备可用于任何多媒体数据的基于质量和/或基于内容的多媒体处理。一个实例是其用于大体上任何通用压缩器的多媒体压缩。另一实例是用于任何解压缩器或解码器或后处理器中的解压缩和解码,例如内插、重取样、增强、恢复和呈现操作。
现参看图19,典型的视频通信系统包括视频压缩系统,其由视频编码器和视频解码器组成,所述视频编码器和视频解码器由通信网络连接。无线网络是一类易出错网络,其中通信信道除了路径损耗外还在移动情境中表现出对数-正态衰减或遮蔽和多路径衰减。为了抵抗信道错误且为应用层数据提供可靠通信,RF调制器包括正向错误校正,其中包括交错器和信道编码(例如卷积或涡轮编码)。
视频压缩减少了源视频中的冗余且增加了经编码视频数据的每一位中携载的信息量。这增加了在甚至编码视频的一小部分丢失时对质量的影响。视频压缩系统中固有的空间和时间预测加重了损耗且引起错误传播,从而在重建视频中产生可见假像。视频编码器处的错误复原算法和视频解码器处的错误复原算法增强了视频压缩系统的抗错性。
通常,视频压缩系统不知道底层网络。然而,在易出错网络中,非常需要将应用层中的错误保护算法与链路/物理层中的FEC和信道编码集成或对准,且其在增强系统的错误性能方面提供最大效率。
图14说明在用以编码帧的编码器228中可能出现的速率-失真数据流的一个实例。过程1400在开始1402处开始,且前进到决策方框1404,在此处其接收来自预处理器226的场景变化检测器输入1410(例如,经由元数据),且获取错误复原输入1406。如果信息指示选定帧为I帧,那么过程对所述帧进行帧内编码。如果信息指示选定帧为P帧或B帧,那么过程使用帧内编码和运动估计(帧间)编码来编码所述帧。
在对方框1404的条件出现肯定条件之后,过程1400前进到准备方框1414,在此处将速率R设定为值R=Rqual(基于R-D曲线的所需目标质量)。此设定是从包含R-D曲线的数据方框1416接收的。过程1400接着前进到方框1418,在此处基于来自方框1420处的内容分类过程的图像/视频活动信息(例如,内容分类)执行速率控制位分配{Qpi}。
速率控制位分配方框1418又用于方框1422中的运动估计。运动估计1422还可接收来自预处理器1412的元数据输入、来自方框1424的运动向量平滑(MPEG-2和历史)和来自方框1426的多个参考帧(因果和非因果宏区块MB)。过程1400接着前进到方框1428,在此处为速率控制位分配(Qpi)确定帧内编码模式的速率计算。过程1400接下来前进到方框1430,在此处确定模式和量化参数。方框1430的模式决策是基于运动估计方框1422输入、错误复原1406输入和可缩放性R-D(其在方框1432处确定)进行的。一旦决策模式,流程便前进到方框1432。请注意,从方框1430流动到1432发生在将数据从编码器的第一遍部分传递到第二遍部分时。
在方框1432处,编码器228的第二遍执行变换和量化。如方框1444所指示对所述变换/量化过程进行调整或微调。此变换/量化过程可能受到速率控制微调模块(图7)的影响。过程1400接着前进到方框1434进行曲折分类和熵编码以产生经编码的基础层。曲折分类以有效格式准备量化数据以供编码。熵编码是使用一系列位码来表示一组可能符号的压缩技术。还将变换/量化方框1432的增强层结果发送到加法器1436,加法器1436减去基础层且将结果发送到用于增强层的ZZ/熵编码器1438,如先前参看图31到36所描述。请进一步注意,增强层被反馈回(见线1440真实速率更新)以更新真实速率的内容分类1420和用于确定位速率的长期和短期历史以供速率控制使用的操作。
图17A为用于编码多媒体数据以将冗余数据插入经编码数据中以获得错误复原的过程的流程图,其中编码基于内容信息。过程1700可通过图17B中所说明的设备及本文中所揭示的其它组件(包括转码器200)来执行。过程1700开始,且在方框1702处,其获得多媒体数据的内容信息。此可通过内容分类器装置、用于获得多媒体数据的内容信息的模块1712(图17B)或例如图7中的内容分类器712的另一组件来执行。过程1700接着进行到方框1704,在方框1704中其编码多媒体数据以形成经编码位流,其中编码包括基于内容信息而将帧内编码数据的至少一个冗余块插入经编码位流中。此可通过编码装置、用于编码多媒体数据的模块1714(图17B)或在另一实例中通过转码器200(图7)来执行。将数据边界与时间边界对准可引起错误复原。内容分类可基于多媒体数据的复杂性,其中复杂性包含空间复杂性及时间复杂性。所插入的冗余数据的量可与多媒体数据的复杂性成反比。帧内编码数据可包括冗余数据的至少一个帧,其中冗余数据的至少一个帧包含I帧或大体上I帧的全部。帧内编码数据的至少一个冗余帧还可包括信道切换帧。
图17B为可执行图17A中所说明的过程1700的编码设备1710的方框图。装置1710可包括例如用于获得多媒体数据的内容信息的模块1712的内容分类装置。参看图7说明并描述内容分类装置的实例(例如,内容分类模块714)。在某些方面中,内容分类装置可并入预处理器、编码器或转码器中。设备1710还包括编码装置1714,其为用于编码多媒体数据以将数据边界与时域中的帧边界对准的模块,且其可执行在图17A的方框1704处所描述的编码。此功能性可包括于编码器或转码器中。举例来说,转码器200还包括可执行在图17A的方框1704处所描述的编码的编码装置。
图23、24、27和28是示范性说明实施本文所述方面的编码多媒体数据的方法的过程流程图。图23是说明基于内容信息编码多媒体数据的过程2300的过程流程图。在方框2305处,过程2300接收经编码多媒体数据,且在方框2310处,过程2300解码多媒体数据。在方框2315处,过程2300确定与经解码多媒体数据相关联的内容信息。在方框2320处,过程2300基于所述内容信息编码多媒体数据。
图24是说明编码多媒体数据以便基于内容信息等级来对准数据边界的过程2400的过程流程图。在方框2405处,过程2400获得与多媒体数据相关联的内容信息,这可由(例如)图7中所示的预处理器226或内容分类模块712进行。在方框2410处,过程2400编码多媒体数据以便基于内容信息来对准数据边界。举例来说,基于正被编码的多媒体数据的内容分类将切片边界和存取单元边界与帧边界对准。接着,经编码数据可用于后续处理和/或传输到移动装置,且过程2400结束。
图27是说明用于基于内容信息使用适应性帧内刷新方案编码数据的过程2700的过程流程图。当过程2700开始时,已经获得多媒体数据。在方框2705处,过程2700获得多媒体数据的内容信息。获得内容信息可由(例如)上述预处理器226或内容分类模块712来执行。过程2700前进到方框2710,在此处其使用适应性帧内刷新错误复原方案编码多媒体数据,其中适应性帧内刷新错误复原方案是基于内容信息的。方框2710的功能性可由编码器228执行。使得经编码数据可用于后续处理和传输,且过程2700接着结束。
图28是说明基于多媒体内容信息使用冗余I帧编码多媒体数据的过程的过程流程图。当过程2800开始时,多媒体数据可用于处理。在方框2805处,过程2800获得多媒体数据的内容信息。如上所述,这可由(例如)预处理器226和/或编码器228进行。在方框2810处,过程2800编码多媒体数据以便基于内容信息将一个或一个以上额外I帧插入到经编码数据中。这可由如上所述的编码器228结合错误复原方案来进行,将I帧插入到基础层还是增强层中依据所采用的错误复原方案而定。在方框2810之后,经编码数据可用于后续处理和/或传输到移动装置。
应注意,本文描述的方法可在所属领域的技术人员已知的各种通信硬件、处理器和系统上实施。举例来说,对客户端如本文描述那样操作的通常要求是客户端具有显示器来显示内容和信息,具有处理器来控制客户端的操作,且具有存储器来存储与客户端的操作相关的数据和程序。在一个方面中,客户端是蜂窝式电话。在另一方面中,客户端是具有通信能力的手持式计算机。在又一方面中,客户端是具有通信能力的个人计算机。另外,可将例如GPS接收器等硬件并入在客户端中以实施所述各种方面。结合本文所揭示的方面描述的各种说明性逻辑、逻辑块、模块和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文描述的功能的其任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,所述处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。
结合本文所揭示的方面描述的各种说明性逻辑、逻辑块、模块和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文描述的功能的其任何组合来实施或执行。通用处理器可以是微处理器,但在替代方案中,所述处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。
所揭示的方法和设备提供将以一种格式编码的视频数据代码变换为以另一种格式编码的视频数据,其中所述编码基于视频数据的内容且所述编码对错误进行复原。结合本文所揭示的实例来描述的方法或算法可直接在硬件、由处理器执行的软件模块、固件或这些中的两者或两者以上的组合中实施。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和向存储媒体写入信息。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在ASIC中。ASIC可驻留在用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻留在用户终端中。
以上描述的实例仅为示范性的,且在不脱离本文所揭示的发明性概念的情况下,所属领域的技术人员现在可多样化使用并改变上述实例。对这些实例的各种修改对于所属领域的技术人员是显而易见的,且在不脱离本文所述的新颖方面的精神或范围的情况下,本文所定义的基本原理可应用于其它实例,例如在即时消息传达服务或任何通用无线数据通信应用中。因此,本揭示案的范围不希望限于本文所示的实例,而是应符合与本文所揭示的原理和新颖特征一致的最广范围。词语“示范性”在本文中专用于意指“充当实例、例子或说明”。没有必要将本文描述为“示范性”的任何实例解释为与其它实例相比是优选或有优点的。因此,本文描述的新颖方面将仅由所附权利要求书的范围界定。
Claims (31)
1.一种处理多媒体数据的方法,其包含:
获得多媒体数据的内容信息;以及
编码所述多媒体数据以形成经编码位流,所述编码包含基于所述内容信息而将帧内编码数据的至少一个冗余块插入所述经编码位流中。
2.根据权利要求1所述的方法,其中所述内容信息包含内容分类。
3.根据权利要求2所述的方法,其中所述内容分类基于所述多媒体数据的复杂性。
4.根据权利要求3所述的方法,其中所述复杂性包含空间复杂性及时间复杂性。
5.根据权利要求3所述的方法,其中所述插入的冗余数据的量与所述多媒体数据的所述复杂性成反比。
6.根据权利要求1所述的方法,其中所述帧内编码数据包含冗余数据的至少一个帧。
7.根据权利要求6所述的方法,其中冗余数据的所述至少一个帧包含I帧。
8.根据权利要求6所述的方法,其中帧内编码数据的所述至少一个冗余帧包含信道切换帧。
9.根据权利要求1所述的方法,其中帧内编码数据的所述至少一个冗余块大体上包含I帧的全部。
10.根据权利要求1所述的方法,其中所述编码包含将所述多媒体数据编码成基础层及增强层,且其中使用用于所述基础层的量化参数来编码所述帧内编码数据。
11.根据权利要求1所述的方法,其中所述编码包含将所述多媒体数据编码成基础层及增强层,且其中使用用于所述增强层的量化参数来编码所述帧内编码数据。
12.一种用于处理多媒体数据的设备,其包含:
内容分类器,其经配置以获得多媒体数据的内容信息;以及
编码器,其经配置以编码所述多媒体数据以形成经编码位流,所述编码包含基于所述内容信息而将帧内编码数据的至少一个冗余块插入所述经编码位流中。
13.一种用于处理多媒体数据的设备,其包含:
用于获得多媒体数据的内容信息的装置;以及
用于编码所述多媒体数据以形成经编码位流的装置,所述编码包含基于所述内容信息而将帧内编码数据的至少一个冗余块插入所述经编码位流中。
14.根据权利要求12所述的设备,其中所述内容信息包含内容分类。
15.根据权利要求14所述的设备,其中所述内容分类基于所述多媒体数据的复杂性。
16.根据权利要求15所述的设备,其中所述复杂性包含空间复杂性及时间复杂性。
17.根据权利要求15所述的设备,其中所述插入的冗余数据的量与所述多媒体数据的复杂性成反比。
18.根据权利要求12所述的设备,其中所述帧内编码数据包含冗余数据的至少一个帧。
19.根据权利要求18所述的设备,其中冗余数据的所述至少一个帧包含I帧。
20.根据权利要求18所述的设备,其中帧内编码数据的所述至少一个冗余帧包含信道切换帧。
21.根据权利要求12所述的设备,其中帧内编码数据的所述至少一个冗余块大体上包含I帧的全部。
22.根据权利要求12所述的设备,其中所述用于编码的装置包含将所述多媒体数据编码成基础层及增强层,且其中所述帧内编码数据使用用于所述基础层的量化参数来编码。
23.根据权利要求12所述的设备,其中所述用于编码的装置包含将所述多媒体数据编码成基础层及增强层,且其中所述帧内编码数据使用用于所述增强层的量化参数来编码。
24.一种处理器,其经配置以:
获得多媒体数据的内容信息;以及
编码所述多媒体数据以形成经编码位流,所述编码包含基于所述内容信息而将帧内编码数据的至少一个冗余块插入所述经编码位流中。
25.根据权利要求24所述的处理器,其中所述内容信息包含内容分类。
26.根据权利要求24所述的处理器,其中所述内容分类基于所述多媒体数据的复杂性。
27.根据权利要求24所述的处理器,其中所述复杂性包含空间复杂性及时间复杂性。
28.一种包含指令的机器可读媒体,所述指令在执行时致使机器:
获得多媒体数据的内容信息;以及
编码所述多媒体数据以形成经编码位流,所述编码包含基于所述内容信息而将帧内编码数据的至少一个冗余块插入所述经编码位流中。
29.根据权利要求28所述的机器可读媒体,其中所述内容信息包含内容分类。
30.根据权利要求28所述的机器可读媒体,其中所述内容分类基于所述多媒体数据的复杂性。
31.根据权利要求28所述的机器可读媒体,其中所述复杂性包含空间复杂性及时间复杂性。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72141605P | 2005-09-27 | 2005-09-27 | |
US60/721,416 | 2005-09-27 | ||
US60/727,643 | 2005-10-17 | ||
US60/727,640 | 2005-10-17 | ||
US60/727,644 | 2005-10-17 | ||
US60/730,145 | 2005-10-24 | ||
US60/789,048 | 2006-04-03 | ||
US60/789,377 | 2006-04-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101313589A true CN101313589A (zh) | 2008-11-26 |
Family
ID=40101112
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800439065A Pending CN101313589A (zh) | 2005-09-27 | 2006-09-27 | 冗余数据编码方法和装置 |
CN200680044013.2A Active CN101313592B (zh) | 2005-09-27 | 2006-09-27 | 用于与时域边界进行数据对准的方法和装置 |
CN200680043886.1A Expired - Fee Related CN101313588B (zh) | 2005-09-27 | 2006-09-27 | 基于内容信息的可缩放性技术的编码方法和设备 |
CN 200680043239 Pending CN101313580A (zh) | 2005-09-27 | 2006-09-27 | 使用内容信息安排多媒体转码的内容驱动转码器 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680044013.2A Active CN101313592B (zh) | 2005-09-27 | 2006-09-27 | 用于与时域边界进行数据对准的方法和装置 |
CN200680043886.1A Expired - Fee Related CN101313588B (zh) | 2005-09-27 | 2006-09-27 | 基于内容信息的可缩放性技术的编码方法和设备 |
CN 200680043239 Pending CN101313580A (zh) | 2005-09-27 | 2006-09-27 | 使用内容信息安排多媒体转码的内容驱动转码器 |
Country Status (3)
Country | Link |
---|---|
CN (4) | CN101313589A (zh) |
ES (1) | ES2371188T3 (zh) |
UA (1) | UA92368C2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103907136A (zh) * | 2011-10-01 | 2014-07-02 | 英特尔公司 | 用于视频代码转换中的集成后处理和预处理的系统、方法和计算机程序产品 |
CN111143108A (zh) * | 2019-12-09 | 2020-05-12 | 成都信息工程大学 | 一种降低阵列码Xcode修复的编译码方法及装置 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5347849B2 (ja) * | 2009-09-01 | 2013-11-20 | ソニー株式会社 | 画像符号化装置、画像受信装置、画像符号化方法及び画像受信方法 |
JPWO2011099254A1 (ja) * | 2010-02-15 | 2013-06-13 | パナソニック株式会社 | データ処理装置及びデータ符号化装置 |
US8644383B2 (en) * | 2011-03-10 | 2014-02-04 | Microsoft Corporation | Mean absolute difference prediction for video encoding rate control |
US9538200B2 (en) * | 2012-01-19 | 2017-01-03 | Qualcomm Incorporated | Signaling of deblocking filter parameters in video coding |
EP3361732B1 (en) * | 2012-07-02 | 2019-12-11 | Samsung Electronics Co., Ltd. | Entropy coding of a video and entropy decoding of a video |
KR101586367B1 (ko) * | 2013-08-07 | 2016-01-18 | 주식회사 더블유코퍼레이션 | 단일 소스를 통한 다채널 대체광고 처리 및 스케줄 관리 방법 |
EP3023983B1 (en) * | 2014-11-21 | 2017-10-18 | AKG Acoustics GmbH | Method of packet loss concealment in ADPCM codec and ADPCM decoder with PLC circuit |
CN104735449B (zh) * | 2015-02-27 | 2017-12-26 | 成都信息工程学院 | 一种基于矩形分割隔列扫描的图像传输方法 |
US20170026659A1 (en) * | 2015-10-13 | 2017-01-26 | Mediatek Inc. | Partial Decoding For Arbitrary View Angle And Line Buffer Reduction For Virtual Reality Video |
CN106209773A (zh) * | 2016-06-24 | 2016-12-07 | 深圳羚羊极速科技有限公司 | 一种音频分组采样传输再重组的方法 |
US10116981B2 (en) * | 2016-08-01 | 2018-10-30 | Microsoft Technology Licensing, Llc | Video management system for generating video segment playlist using enhanced segmented videos |
US10708666B2 (en) * | 2016-08-29 | 2020-07-07 | Qualcomm Incorporated | Terrestrial broadcast television services over a cellular broadcast system |
CN115052141B (zh) * | 2017-09-28 | 2023-10-03 | 苹果公司 | 用于事件相机数据处理的系统和方法 |
CN112260694B (zh) * | 2020-09-21 | 2022-01-11 | 广州中望龙腾软件股份有限公司 | 一种仿真文件的数据压缩方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6538688B1 (en) * | 1998-07-02 | 2003-03-25 | Terran Interactive | Method and apparatus for performing an automated inverse telecine process |
CA2344915C (en) * | 1998-09-29 | 2008-10-14 | General Instrument Corporation | Method and apparatus for detecting scene changes and adjusting picture coding type in a high definition television encoder |
US6639943B1 (en) * | 1999-11-23 | 2003-10-28 | Koninklijke Philips Electronics N.V. | Hybrid temporal-SNR fine granular scalability video coding |
US20030118097A1 (en) * | 2001-12-21 | 2003-06-26 | Koninklijke Philips Electronics N.V. | System for realization of complexity scalability in a layered video coding framework |
KR100501933B1 (ko) * | 2002-11-21 | 2005-07-18 | 삼성전자주식회사 | 멀티미디어 데이터 암호화 압축방법 및 장치 |
US7606472B2 (en) * | 2003-05-30 | 2009-10-20 | Canon Kabushiki Kaisha | Video stream data recording apparatus |
-
2006
- 2006-09-27 CN CNA2006800439065A patent/CN101313589A/zh active Pending
- 2006-09-27 UA UAA200805485A patent/UA92368C2/ru unknown
- 2006-09-27 CN CN200680044013.2A patent/CN101313592B/zh active Active
- 2006-09-27 CN CN200680043886.1A patent/CN101313588B/zh not_active Expired - Fee Related
- 2006-09-27 CN CN 200680043239 patent/CN101313580A/zh active Pending
- 2006-09-27 ES ES06804241T patent/ES2371188T3/es active Active
Non-Patent Citations (2)
Title |
---|
SOMM-KAK KWON, A.TAMHANKAR, K.R.RAO: "Overview of H.264/MPEG-4 part 10", 《JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION》 * |
THOMAS SIKORA: "MPEG Digital Video-Coding Standards – Delivering Picture-Perfect Compression for Storage, Transmission, and Multimedia Applications", 《IEEE SIGNAL PROCESSING MAGAZINE》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103907136A (zh) * | 2011-10-01 | 2014-07-02 | 英特尔公司 | 用于视频代码转换中的集成后处理和预处理的系统、方法和计算机程序产品 |
CN111143108A (zh) * | 2019-12-09 | 2020-05-12 | 成都信息工程大学 | 一种降低阵列码Xcode修复的编译码方法及装置 |
CN111143108B (zh) * | 2019-12-09 | 2023-05-02 | 成都信息工程大学 | 一种降低阵列码Xcode修复的编译码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101313580A (zh) | 2008-11-26 |
CN101313588A (zh) | 2008-11-26 |
UA92368C2 (ru) | 2010-10-25 |
CN101313592A (zh) | 2008-11-26 |
CN101313592B (zh) | 2011-03-02 |
ES2371188T3 (es) | 2011-12-28 |
CN101313588B (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102724498B (zh) | 基于内容信息的可缩放性技术的编码方法和设备 | |
CN101313592B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20081126 |
|
RJ01 | Rejection of invention patent application after publication |