CN102946532A - 视频编码 - Google Patents
视频编码 Download PDFInfo
- Publication number
- CN102946532A CN102946532A CN2012103203259A CN201210320325A CN102946532A CN 102946532 A CN102946532 A CN 102946532A CN 2012103203259 A CN2012103203259 A CN 2012103203259A CN 201210320325 A CN201210320325 A CN 201210320325A CN 102946532 A CN102946532 A CN 102946532A
- Authority
- CN
- China
- Prior art keywords
- distortion
- frame
- error propagation
- estimation
- encoder
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/164—Feedback from the receiver or from the transmission channel
- H04N19/166—Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及视频编码。一种执行速率失真最优化过程的方法包括对于在多个帧的每一个中要编码的多个目标图像部分的每一个,通过优化包括目标图像部分的失真估计和为对目标图像部分编码所需的比特率度量的函数而选择编码模式集合中的优选编码模式,其中该失真估计是基于源编码失真和由于信道上的可能丢失而将经受的失真的估计;使用选择的编码模式把目标图像部分编码成编码的视频流;以及在信道上发送编码的视频流。基于所述帧的较早帧根据从接收终端接收的反馈来执行用于所述帧的当前帧的速率失真最优化过程。
Description
技术领域
本发明涉及在选择用于对视频信号的部分进行编码的编码模式时在比特率和失真之间平衡折衷。本发明可能特别(但不排除)可应用于实时地编码视频流时,即现场视频流诸如视频呼叫的现场视频流,其中在并且随着从相机或比如此类接收该流时编码器必须动态地编码该流以进行发送。
背景技术
在图1a中示意性地图示了要编码的视频数据流。该流包括多个帧(F),每个表示在不同的相应时刻的视频图像。如本领域技术人员将熟悉的,为了编码的目的,每个帧(F)被划分成部分并且每个部分也可以被细分成较小子部分,每个部分或子部分包括多个像素。例如,根据一种术语,要编码的视频流的每个帧被划分成宏块(MB)并且每个宏块被细分成块或子快(b),每个块或子块包括多个像素。每个帧也可以被划分成可独立解码的切片,每个切片包括一个或多个宏块。注意图1a中所示的划分仅仅示意用于说明性目的并且将明白这些不必意味着对应于任何实际的编码方案——例如每个帧可能包含更大数目的宏块。
在图2的框图中示意性地图示了其中可以采用视频编码的示例通信***。通信***包括第一发送终端12和第二接收终端22。例如,每个终端12、22可以包括移动电话或智能电话、平板电脑、膝上型计算机、台式计算机或者其它家用电器诸如电视机、机顶盒、立体声***等等。第一和第二终端12、22每个***作性地耦合到通信网络32并且第一发送终端12由此布置成发送将由第二接收终端22接收的信号。当然发送终端12也可以能够从接收终端22接收信号并且反之亦然,但是为了讨论的目的,在本文中从第一终端12的角度描述发送而从第二终端22的角度描述接收。通信网络32可以包括例如基于分组的网络诸如广域互联网和/或局域网、和/或移动蜂窝网络。
第一终端12包括存储介质14诸如闪速存储器或其它电子存储器、磁存储设备和/或光存储设备。第一终端12也包括:具有一个或多个核的CPU形式的处理装置16;收发器诸如有线或无线调制解调器,至少具有发送器18;以及摄像机15,该摄像机15可以或可以不容纳在与终端12的其余部分相同的外壳内。存储介质14、摄像机15和发送器18每个***作性地耦合到处理装置16,并且发送器18经由有线或无线链路***作性地耦合到网络32。类似地,第二终端22包括:存储介质24诸如电子、磁和/或光存储设备;以及具有一个或多个核的CPU形式的处理装置26。第二终端包括:收发器诸如有线或无线调制解调器,至少具有接收器28;以及屏幕25,该屏幕25可以或可以不容纳在与终端22的其余部分相同的外壳内。第二终端的存储介质24、屏幕25和接收器28每个***作性地耦合到相应的处理装置26,并且接收器28经由有线或无线链路***作性地耦合到网络32。
第一终端12上的存储介质14至少存储被布置成在处理装置16上运行的视频编码器。编码器在被运行时从摄像机15接收“原始的”(未经编码的)输入视频流,对视频流编码以便将其压缩成较低比特率流,并且输出编码的视频流以经由发送器18和通信网络32发送到第二终端22的接收器28。第二终端22上的存储介质至少存储被布置成在其自己的处理装置26上运行的视频解码器。解码器在被运行时从接收器28接收编码的视频流并且对其解码以输出到屏幕25。可以用来指代编码器和/或解码器的通用术语是编解码器。
视频编解码器的目标是降低为发送视频信号所需的比特率同时维持最高可能的质量。这个目标是通过利用统计冗余度(视频信号中的类似性)和感知不相关性(与人类视觉***的敏感度有关)而实现的。
大多数当今的视频编解码器是基于包括如下功能的架构:从其它像素块预测像素块,预测残差的变换,变换系数的量化,以及量化索引的熵编码。这些步骤有助于降低冗余度和不相关性。
对以下文档进行参考:
可以典型地从当前帧之外的视频帧中的像素执行该预测(帧间预测)以及从相同帧中的像素执行该预测(帧内预测)。就是说,如果使用帧内编码进行编码,则帧的块、子块或其它部分(目标块或部分)相对于相同帧中的另一块、子块或图像部分(参考块或部分)进行编码;而如果使用帧间编码进行编码,则目标块或部分相对于另一帧中的参考块或部分进行编码。这个过程通常称为预测或预测编码。帧间或帧内预测模块因此将生成例如形式为如下的指示的预测:在帧内编码的情况下为邻近块或子块,和/或在帧间编码的情况下为运动矢量。典型地,编码器也生成表示所预测的块和实际块(或者预测的子块和实际子块,等等)之间的“剩余”差的残差信号。残差、运动矢量和任何所需的与帧内预测关联的数据然后典型地经由进一步的编码级诸如量化器和熵编码器而输出到编码的视频流中。因此,视频中的大多数块可以按照块之间的差进行编码,这与对绝对像素值进行编码相比要求更少的比特来编码并且因此节省比特率。帧内预测编码典型地要求比帧间预测更多的比特,但是与对绝对值编码相比仍然表示节省。对视频适合的帧间和帧内编码技术的细节对本领域技术人员将是熟悉的。
现代编解码器允许针对帧内的不同部分使用不同的预测编码模式。具有不同编码选项的可能性增加了视频编码器的速率失真效率。必须针对每个帧区域找到最优的编码表示。典型地,这样的区域是例如16×16像素的宏块。即,因此有可能针对每个宏块单独地选择帧内预测或帧间预测模式,使得可以用不同模式来编码相同帧内的不同宏块。在某些编解码器中也有可能基于不同的宏块分区水平而使用不同的模式,例如在较高复杂性模式或较低复杂性模式之间选择,在所述较高复杂性模式中针对宏块内的每个4×4子块执行单独的预测而在所述较低复杂性模式中基于仅8×8或8×16块或甚至整个宏块执行预测。可用模式也可以包括用于执行预测的不同选项。例如如图1b中示意性图示的,在一种帧内模式中4×4子块(b)的像素可以通过从来自紧接上方的子块的邻近像素向下外插或者通过从紧接左边的子块向旁边外插而确定。另一称作“跳跃模式”的特殊预测模式也可以提供在某些编解码器中,这可以视为帧间模式的替选类型。在跳跃模式(PSkip)中,目标的运动矢量基于向顶部和向左边的运动矢量来推断并且不存在残差系数的编码。其中推断运动矢量的方式与运动矢量预测一致,因此运动矢量差为零,所以仅要求用信号通知宏块是跳跃块。
图3是示意性图示诸如可能在发送终端12上实施的编码器的高级框图。该编码器包括:离散余弦变换(DCT)模块51,量化器53,逆变换模块61,逆量化器63,帧内预测模块41,帧间预测模块43以及减法级(-)。该编码器也包括开关47和模式选择模块49。每个模块优选地实施为存储在发送终端的存储介质14上且布置用于在其处理装置16上执行的代码的一部分,尽管不排除这些中的一些或全部整体或部分实施在专用硬件电路中的可能性。
开关47和模式选择模块49中的每一个布置成接收包括多个宏块MB的输入视频流的实例。模式选择模块49布置成针对每个宏块选择编码模式“o”并且操作性地耦合到复用器47以便对它控制从而视选择的模式而定把逆量化器63的输出传送到帧内预测模块41或帧间预测模块43的输入。模式选择模块49也可以布置成向相关的预测模块41、43指示选择的模式“o”(例如指示4×4分区模式、8×8模式、跳跃模式等等)并且接收从预测模块41、43反馈的信息以用于选择下一帧的模式。帧内预测模块41或帧间预测模块43的输出然后耦合到减法级(-)的输入,该减法级(-)布置成在其另一输入处接收未经编码的输入视频流并且从其未经编码的副本减去预测的块,因此生成残差信号。残差块然后传送经过变换(DCT)模块51(在模块51中其残差值被转换到频域中),然后到量化器53(在量化器53中变换的值被转换成离散量化索引)。量化的变换信号被反馈经过逆量化器63和逆变换模块61以生成(如在解码器处将看到的)块或子块的预测版本以供所选择的预测模块41、43使用。在预测模块41、43中使用的预测的指示、由帧间预测模块43生成的运动矢量以及由变换和量化模块51、53生成的残差的量化的变换索引都被输出以包含在编码的视频流中;典型地经由其中预测值和变换的量化索引可以使用本领域中已知的无损编码技术进行进一步压缩的进一步无损编码级诸如熵编码器(未示出)。
根据上文,编码表示可以因此包括块分区信息、预测模式、运动矢量、量化精确度等等。最优的编码选项取决于视频内容、比特率、较早编码决策等等。变换系数的量化准确度典型地选择为满足比特率约束。此外,应当使失真最小化。
例如,H.264视频编码器提供在选择预测模式方面的巨大灵活性[1]。对于亮度分量的帧间预测,16×16像素的宏块可以表示为16×16像素的一个块、或者16×8像素的两个块、或者8×16像素的两个块、或者8×8像素的四个块。进一步,8×8块可以表示为8×8像素的一个块、或者8×4像素的两个子块、或者4×8像素的两个子块、或者4×4像素的四个子块。针对每个允许的宏块分区,尝试帧间预测。块的帧间预测通过索引化典型地用子像素精度所估计的(一个或多个)参考帧和(一个或多个)运动矢量(与相应参考帧中的参考块的空间移位)而表示。对于亮度分量的帧内预测,存在16×16块的四种可能模式以及4×4子块的九种可能模式。进一步,对于色度分量存在四种可能模式。通过比较帧间和帧内预测模式的性能而选择最佳预测模式。
视频编解码器诸如H.264 AVC [1]的速率失真性能在很大程度上取决于宏块模式选择o的性能。这是依据使用例如帧内模式或是帧间模式的速率失真折衷确定宏块是否被最佳编码的过程。从鲁棒性角度,帧内编码宏块是有益的,因为它们阻止时间误差传播(假设使用受约束的帧内预测,即禁止来自帧间预测宏块的帧内预测)。然而,帧内编码宏块与帧间编码宏块相比在速率方面一般更加昂贵,因此重要的是***地引入帧内编码宏块以使得给定某一比特预算和信道条件而使解码器处的失真(例如平均失真)最小化。Zhang等人[2]提出这样的***框架以基于解码器处的预期平均平方差和(SSD)的最小化来引入帧内编码宏块。通过跟踪潜在失真,Zhang等人能够计算与(在解码器处)预期的误差传播失真有关的偏项(bias term),在计算编码器速率失真环路内的帧间宏块的成本时将所述预期的误差传播失真添加到源编码失真。
速率失真性能最优化问题可以按照在比特率约束R下最小化失真来公式化。拉格朗日最优化框架往往用来求解该问题,根据此所述最优化准则可以公式化为:
其中J表示拉格朗日函数,D表示失真的量度(模式o和宏块m或宏块子分区的函数),R是比特率,以及λ是定义失真和速率之间的折衷的参数。通常使用的失真量度(measure)是原始和重构像素之间的平方差和(SSD)或者原始和预测像素之间的绝对差和(SAD)。
在本申请中,求解拉格朗日最优化问题意味着找到使拉格朗日函数J最小化的编码模式o,其中拉格朗日函数J至少包括表示失真的项、表示比特率的项以及表示两者之间的折衷的因子(“拉格朗日函数乘子(multiplier)”)。随着编码模式o朝着更彻底或更好质量的编码模式进行改变,则失真项D将减小。然而,同时速率项R将增加,并且在与λ相关的某一点处,R的增加将超过D的减小。因此,表达式J将具有某一最小值,并且这发生所在的编码模式o被视为最优编码模式。
在这个意义上,比特率R,或者确切地说项λR,对该最优化设置约束,因为该项使最优编码模式中止不断增加的质量。找到这一最优平衡所处的模式将取决于λ,因此λ可以被视为表示比特率和失真之间的折衷。
拉格朗日最优化通常用在选择编码决策的过程中,并且应用于每个帧区域(例如16×16像素的每个宏块)。通常,可以评价该失真以顾及所有处理级。这些包括预测、变换和量化。此外,为了计算重构像素,必须执行逆量化、逆变换和逆预测的步骤。SSD往往优选作为失真准则,因为它与SAD相比导致更高的质量。通常,速率也顾及对所有需要的参数进行编码,包括描述预测的参数和量化的变换系数[4]。
在[2]中,Zhang等人作者估计不仅由于源编码而且由于信道误差引起的解码器中的潜在失真,亦即由于在信道上发送信号时数据的丢失而将经受的可能失真。估计的潜在失真然后间接地用来朝向帧内编码偏置模式选择(如果存在信道误差的概率)。
Zhang的“端对端”失真表达式基于平方差和(SSD)失真量度并且假设用于丢失宏块的伯努利分布。最优宏块模式oopt由下式给出:
其中Ds(m,o)表示针对宏块m和宏块模式o的、原始和重构像素之间的SSD失真,R为总速率,并且λ为使失真和速率项联系起来的拉格朗日乘子。Dep_ref(m,o)表示由于误差传播引起的解码器中的参考宏块内的预期失真。Dep_ref(m,o)因此提供偏项,如果误差传播失真变得太大则该偏项使该最优化偏置朝向帧内编码。Dep_ref(m,o)对于帧内编码宏块模式而言为零。表达式Ds(m,o)+Dep_ref(m,o)+λR(m,o)可以被视为拉格朗日函数J的实例。Argmino输出表达式J为最小值时的变元o的值。
在[2]中,项Dep_ref(m,o)遵循对象的运动并且使用当前运动矢量从总失真图进行计算。总预期误差传播失真图Dep通过执行误差隐藏来驱动并且在每个宏块模式选择后更新为:
其中n是帧号,m(k)表示宏块m的第k个子分区(即块或子块),p为分组丢失的概率,Dec_rec表示编码器中的重构和误差隐藏像素之间的SSD,并且Dec_ep为编码器和解码器中的误差隐藏像素之间的预期SSD。
在[2]中,Dep存储在帧的每个宏块上的4×4网格上,即每宏块有16个Dep值,因此每个宏块的每4×4像素子块有一个Dep值。如图1c中所示,Dep_ref(m(k),o)(即在时间n在宏块m内的子块k的预期误差传播参考失真)的计算然后执行为来自时间n-1的先前帧的四个子块的Dep值的加权和。这些权重是根据所讨论的块m的运动矢量确定的。就是说:
其中权重wi与重叠的区域成比例并且其中qi(ki)表示先前帧n-1中的宏块qi的子块ki。
图1c提供参考示例性子块b1…b4(在本示例中k对应于b1并且i计数经过b1…b4)从运动矢量和预期误差传播失真图来计算预期误差传播参考失真的图示。
发明内容
Zhang等人[2]的过程仅仅基于在编码器处纯粹关于信道上的丢失似然性做出的先验概率假设。
然而,某些现有通信***提供反馈机构以用于从接收器向发送器报告回某些信息的目的和/或用于控制目的。例如,编码器可以接收回关于哪些帧正确地到达解码器和/或哪些帧在发送中丢失的信息,并且作为响应可以生成内帧以中断误差传播。然而,现有机构过于简单,因为它仅触发整个内帧的生成,并且也不结合由于仍待确认或报告丢失的帧部分或其它帧的丢失而可能经受的失真的任何概率估计。
Zhang等人[2]的算法仅仅考虑在差错信道上发送视频的情形而未考虑任何反馈的可能使用或可用性,并且照此,Zhang的过程不基于信道的任何实际后验知识。
从其它角度来看,反馈的常规使用仅仅触发整个内帧的生成,并且在帧内的各个部分的水平上没有模式选择(例如逐个宏块)。反馈的常规使用也未涉及对由于信道上的可能丢失而将经受的失真的估计。
发明人另一方面提出利用从解码器反馈到编码器的信息(例如分组和/或帧到达状态)来进一步适配编码器中的丢失自适应的速率失真最优化过程并且由此与Zhang等人的方法相比改进总体速率失真性能。
本发明的第一实施例可以利用短期和长期参考的***。例如,H.264 AVC标准支持将某些参考帧标记为所谓的“长期”参考的功能性。这些长期参考保留在解码图片缓冲器中直至被明确去除为止。这与“短期”参考帧形成对比,在“短期”参考帧中新的短期参考盖写(overwrite)解码图片缓冲器中最老的短期参考帧。
根据本发明的第一实施例,反馈机构可以用来使编码器知晓哪个是在解码器处可用的最近确认的长期参考(除了关于丢失了哪些帧的信息之外)。在下文中,确认的参考优选地意指确认的无误差参考(即没有任何误差传播失真的参考)而非仅仅是本身被确认的参考。就是说,参考应当优选地根据如下的严格定义进行确认:参考被确认为接收并且在该参考的历史中相关的一切也被确认为接收,使得可以已知不存在误差传播;与此相对的是仅确认当前参考被接收而没有严格确认其历史。注意,仅本身被确认但是相对于无误差块被编码的帧中的部分也是无误差的(没有传播误差)。
基于确认的长期参考帧的帧间预测可以用来与帧内编码类似地阻止解码器中的误差传播。使用来自长期参考的帧间预测的益处在于帧间预测一般导致针对给定失真水平的较低比特率。
通过利用确认的长期参考进行帧间预测,本发明的这个第一实施例使附加的宏块编码模式可用,以用于例如Zhang [2]的框架中,所述附加宏块编码模式可以与帧内编码类似地但是一般而言以较低的关联比特率阻止误差传播。
Zhang等人[2]的算法仅考虑两种不同类型的编码模式即帧内和帧间编码。在这种情况下公式(3)中的误差传播参考失真Dep_ref(m,o)仅对于帧内编码的宏块模式而言为零。然而,本发明的第一实施例扩大了可用编码模式集合以包括来自确认的长期参考的帧间编码。Dep_ref(m,o)然后设定为不仅对于帧内编码而且对于来自确认参考的帧间编码都为零。这种编码模式的优点在于它可以以与帧内编码类似的方式但是一般而言以较低的比特率阻止误差传播。
本发明的第一实施例的变型使用如下构思:对于仍未接收到反馈的某一参考(例如长期参考),这个参考不过具有基于来自解码器的中间报告而变成无误差确认的参考的某一概率。例如,可以引入又一可用的编码模式,其区分基于非确认的长期参考的帧间预测的使用与基于非确认的短期参考的帧间预测的使用。对于非确认的长期参考,根据丢失概率的先验估计并且基于自从非确认的参考历史中的最后(最近)确认的长期参考的时间(或等效地为帧数),降低误差传播失真Dep_ref(m,o)的估计。
在第一实施例的另一变型中,当分组的往返时间(RTT)与解码图片缓冲器中的短期参考数目相比足够低(往返时间是分组从发送器行进到接收器并再次返回的时间)时,则相同的概念可以应用于短期参考。就是说,对于足够小的RTT,替选或附加可能性是将短期参考辨别为确认,其然后可以以与上面讨论的确认长期参考类似的方式使用。再次,对公式(3)的所需算法变化是不仅对于帧内编码而且对于来自确认参考的帧间编码将Dep_ref(m,o)设定为零。
此外注意,所述确认不需要基于整帧。可以改为布置成接收对仅部分帧(例如切片)的确认并且根据确认或其缺失(或者未接收的明确报告)而不同地对待那些不同部分。
在本发明的第二实施例中,从解码器反馈到编码器的信息诸如分组和/或帧到达状态被用来调节编码器中的潜在失真图并且由此与Zhang等人的方法相比改进了总体速率失真性能。
根据第二实施例,潜在误差传播失真图(连同误差隐藏重构失真图、误差隐藏误差传播图、对应的模式决策和运动矢量信息一起)与编码器的解码图片缓冲器中的每个帧或切片关联地存储。这个第二实施例然后利用来自解码器的反馈信息来更新潜在失真图。反馈信息促进细化的潜在失真跟踪,从而产生更好的速率失真性能。
如果编码器接收到用信号通知特定帧已到达解码器的反馈信息,则可以从公式(3)中的误差传播失真图去除误差隐藏贡献。相反,如果接收到用信号通知在解码器处丢失特定帧或切片的反馈信息,则重新计算关联的误差传播失真图以便仅包括来自误差隐藏失真的贡献,即公式(3)的右手边中的第二和第三项(用p进行归一化)。
然后,如果往返时间(RTT)与解码图片缓冲器中的参考图片数目相比为小,则有可能递归地使用公式(3)把在时间n-RTT调节的潜在误差传播图传播到在时间n-1的误差传播失真图。在时间n-1更新的误差传播失真图然后将是用于计算在模式选择过程(2)中使用的在时间n的Dep_ref的基础。这导致对潜在失真图的更准确跟踪,因此改进了***的总体速率失真性能。
上面概述了一些特定示例性实施例,但是更一般地本发明提供一种符合下文的***、计算机程序产品和装置。
根据本发明的一个方面,提供了一种在发送终端的编码器处对视频流进行编码以在有损信道上发送到接收终端处的解码器的方法,所述方法包括:执行速率失真最优化过程,该速率失真最优化过程包括对于在多个帧的每一个中要编码的多个目标图像部分的每一个,通过优化包括目标图像部分的失真估计和为对目标图像部分编码所需的比特率量度的函数而选择编码模式集合中的优选编码模式,其中该失真估计是基于源编码失真和由于信道上的可能丢失而将经受的失真的估计;使用选择的编码模式把目标图像部分编码成编码的视频流;以及在信道上发送编码的视频流;其中基于所述帧的较早帧根据从接收终端接收的反馈来执行用于所述帧的当前帧的速率失真最优化过程。
所述反馈可以包括以下中的一个:接收到所述较早帧的至少部分的确认,以及未接收到所述较早帧的至少部分的报告。
在本发明的第一实施例中,编码模式集合可以包括确认的参考帧间预测模式,其相对于确认的较早帧或确认的较早帧部分中的对应参考部分而对目标图像部分进行编码。
确认的参考帧间预测模式可以可用于在编码模式选择中使用,条件是参考部分被确认为接收并且对参考部分编码相关的一切也已被确认为接收,使得可以已知参考部分不会引发误差传播。
根据所述反馈的丢失自适应的速率失真最优化过程的执行可以包括:设定由于丢失所致的失真的估计为零,条件是接收到包括所述确认的反馈。
该方法可以包括:在编码器处运行解码器的编码器侧实例,以及在编码器处维持解码图片缓冲器,该解码图片缓冲器存储形式为由解码器的编码器侧实例重构的参考图像数据的短期和长期参考,其中短期参考可以由连续帧自动地盖写,而长期参考可以基于明确去除命令的条件而去除;并且其中确认的参考帧间预测模式可以相对于解码图片缓冲器中的长期参考中的被确认为已在接收终端处接收的对应长期参考来对目标图像部分进行编码。
编码模式集合可以包括至少帧内模式、至少一个非确认的帧间编码模式和所述确认的帧间预测模式。
编码模式集合可以包括非确认的长期参考帧间预测模式,其相对于解码图片缓冲器中存储的部分帧或非确认帧中的对应长期参考来对目标图像部分进行编码;其中根据所述反馈的丢失自适应的速率失真最优化过程的执行可以包括:根据估计的丢失概率和自从最后确认的较早帧或确认的较早帧部分的时间,确定由于丢失所致的失真的估计。
编码模式集合也可以包括非确认的短期参考帧间预测模式。
该方法可以包括:在编码器处运行解码器的编码器侧实例,以及在编码器处维持解码图片缓冲器,该解码图片缓冲器存储形式为由解码器的编码器侧实例重构的参考图像数据的短期和长期参考,其中短期参考可以由连续帧自动地盖写,而长期参考可以基于明确去除命令的条件而去除;并且其中确认的参考帧间预测模式可以相对于解码图片缓冲器中被确认为已在接收终端处接收的对应短期参考来对目标图像部分进行编码。
编码模式集合可以包括不受约束的帧内编码模式,其允许从帧间编码的参考部分来对目标图像部分进行帧内编码。
在本发明的第二实施例中,根据所述反馈的丢失自适应的速率失真最优化过程的执行可以包括:根据所述反馈,调节较早帧或部分较早帧的失真估计;以及向前传播调节的失真估计以相对于当前帧进行使用。
根据所述反馈的丢失自适应的速率失真最优化过程的执行可以包括:根据所述确认和所述报告中的至少一个,调节较早帧或部分较早帧的失真估计;以及向前传播调节的失真估计以相对于当前帧进行使用。
由于可能的丢失而将经受的失真估计可以基于:第一贡献,表示(如果目标部分确实通过信道到达)由于目标部分预测所依赖的目标部分历史中的参考部分的未到达而将经受的失真的估计;以及第二贡献,表示由于隐藏而将经受的失真的估计。
第二贡献可以包括:表示目标部分相对于图像部分的隐藏失真量度的贡献,如果在信道上丢失该目标部分则其将用来隐藏目标部分的丢失;以及表示由于目标部分的隐藏所依赖的目标部分历史中的图像部分的丢失而将经受的失真估计的贡献。
根据所述反馈的丢失自适应的速率失真最优化过程的执行可以包括以下中的一个或两个:对于较早帧设定第二贡献为零,条件是接收到包括所述确认的反馈;以及对于较早帧设定第一贡献为零,条件是接收到包括未接收的所述报告的反馈。
根据本发明的另一方面,提供了一种对视频流进行编码以在有损信道上发送到接收终端处的解码器的发送终端,所述发送终端包括:编码器,被配置成执行速率失真最优化过程,该速率失真最优化过程包括对于在多个帧的每一个中要编码的多个目标图像部分的每一个,通过优化包括目标图像部分的失真估计和为对目标图像部分编码所需的比特率量度的函数而选择编码模式集合中的优选编码模式,其中该失真估计是基于源编码失真和由于信道上的可能丢失而将经受的失真的估计,该编码器被布置成使用选择的编码模式把目标图像部分编码成编码的视频流;以及发射器,布置成在信道上发送编码的视频流;其中该编码器被配置成使得基于所述帧的较早帧根据从接收终端接收的反馈来执行用于所述帧的当前帧的速率失真最优化过程。
在实施例中,编码器可以进一步配置成执行根据任何上面的方法特征的操作。
根据本发明的另一方面,提供了一种在发送终端处对视频流进行编码以在有损信道上发送到接收终端处的解码器的计算机程序产品,所述计算机程序产品被体现在计算机可读介质上并且包括代码,所述代码被配置成当在发送终端上运行时执行以下操作:执行速率失真最优化过程,该速率失真最优化过程包括对于在多个帧的每一个中要编码的多个目标图像部分的每一个,通过优化包括目标图像部分的失真估计和为对目标图像部分编码所需的比特率量度的函数而选择编码模式集合中的优选编码模式,其中该失真估计是基于源编码失真和由于信道上的可能丢失而将经受的失真的估计;使用选择的编码模式把目标图像部分编码成编码的视频流;以及在信道上发送编码的视频流;其中基于所述帧的较早帧根据从接收终端接收的反馈来执行用于所述帧的当前帧的速率失真最优化过程。
在实施例中,代码可以进一步被配置成在被运行时执行根据任何上面的方法特征的操作。
附图说明
为了更好地理解本发明并且为了示出如何可以对其实施,通过示例方式对附图进行参考,在附图中:
图1a是视频流的示意性表示,
图1b是一些帧内预测编码模式的示意性表示,
图1c是误差传播失真的计算的示意性表示,
图2是通信***的示意性框图,
图3是编码器的示意性框图,以及
图4是采用从解码器到编码器的反馈的***的示意性框图。
具体实施方式
下文描述利用从解码器反馈到编码器的信息(例如分组和/或帧到达状态)以便进一步适配丢失自适应的速率失真最优化过程并由此改进总体速率失真性能的编码***和方法。编码器类似于关于图3描述的但具有修改的模式选择模块49的编码器。它可以用来对图1中图示的种类的视频流进行编码并且实施在诸如图2的通信***中。
如所提及的,模式选择可以涉及优化(例如最小化)拉格朗日类型函数:
其中J表示拉格朗日函数,D表示失真的量度(模式o和宏块m或宏块子分区的函数),R是比特率,以及λ是定义失真和速率之间的折衷的参数。
在常规情况下失真项D仅考虑到源编码失真,即由于编码器中的缺陷诸如由量化所引入的失真。它没有考虑到可能由于信道上的数据丢失例如由于基于分组的网络32上的发送中的分组丢失而引入的失真。
另一方面,丢失自适应的技术诸如本发明和Zhang [2]的那些技术试图定义考虑到源编码和由于信道上的数据丢失所引起的失真两者的“端对端”失真的量度。给定(目标)块、宏块或子块的端对端失真可以描述为:
其中Darrival是如果目标块确实到达解码器则将经受的失真的估计,而Dloss是如果由于信道上的分组丢失例如由于基于分组的网络32上的包括目标块的分组的丢失而该块未到达解码器则将经受的失真的估计。参数p是在信道上发生的导致所讨论的块或图像部分被丢失的丢失事件的概率估计,例如分组丢失的概率估计。为了方便起见,术语“块”可以在这里的某些地方用来一般地指代相关的帧分区水平(例如诸如H.264的某些标准的块或子块)。
Darrival不仅表示源编码失真而且表示由于块过往的失真即要据以预测目标块的一个或多个参考块中的失真而将引入的失真。因此,Darrival包括源编码失真项Ds和误差传播失真项Def_ref两者,该误差传播失真项Def_ref表示预测的目标块历史中的失真(即,将向前携带到目标块中的目标块参考块中的失真):
Dloss包括由于隐藏所致的丢失。如果未接收到目标块,则解码器将应用隐藏算法,该隐藏算法可以涉及冻结先前解码的块或者从一个或多个成功解码的块(从当前帧和/或先前帧)内插或外插。因此,Dloss可以标识为由于这个隐藏过程所致的失真:
因此检查公式(5),项Ds表示如果根本不存在丢失则将经受的失真的估计,项Dec表示如果丢失了目标块则将经受的失真的估计,而项Dep_ref表示如果成功接收到目标块但是其历史中的一些东西被丢失(如果目标块的参考块被丢失,或者参考块的参考块被丢失,等等)则将经受的失真的估计。
Ds和Dep_ref是编码模式选择o的函数。Dec不是模式选择o的函数,因此从拉格朗日表达式略去(如何对丢失的块编码无所谓——它仍被丢失)。因此,最优化可以写为:
Ds是确定的,因为它是基于在编码器处可以已知的信息,例如基于原始输入样本值s和重构的样本值之间的差。编码器在编码器侧运行解码器的并行实例(或其近似)——参见详述图3中的帧间预测模块43的插图。帧间预测模块43包括运动补偿预测(MCP)块44和加法级(+),所述加法级(+)布置成通过组合预测的样本和重构的残差来确定重构的样本,即对于每个样本索引i,。在帧间编码的情况下,在编码器处预测的样本可以与参考块的样本(参考帧中的参考块相对于目标帧仅偏移了运动矢量——参见图1c,不久将再次讨论)相同。
因此,编码器可以确定实际样本s和重构的样本之间的差,如在编码器和解码器端看到的(迄今为止,这忽略了将引入在解码器处经受的进一步失真的丢失的可能性)。样本中的差可以例如计算为在所讨论的目标块的所有样本索引i上的平方差和(SSD)误差:
然而,Dep_ref仍待估计,这将基于做出关于(例如在基于分组的网络32上)编码的数据要在其上发送的信道的某一估计。
为实现此,编码器中的模式选择模块49可以被配置成维持误差传播失真图Dep,所述误差传播失真图Dep描述最近编码的帧内的每个宏块或宏块分区的失真。模式选择模块49也被布置成确定包含要从其预测目标块的参考块的分组将在信道上丢失的概率p(因此也布置成隐含地或明确地确定分组确实到达的概率1-p)。概率p可以基于统计建模在设计阶段预先确定,在这种情况下模式选择模块49通过从存储器14取回值来确定p。然而,另一可能性将是模式选择模块49基于来自接收器22的反馈来确定p。
误差传播图可以表达为:
误差传播图Dep包括最近编码的帧内的宏块m或更优选地是每个子分区(块或子块)m(k)的失真估计。因此,它可以更明确地写为:
其中m(k)表示宏块m的第k个子分区(例如子块),而p为分组丢失的概率。
Dloss等于Dec,如上所述。Dep_arrival表示信道上的差,即在编码器处的重构样本和在解码器处的重构样本之间的差。例如,这可以按照平方差和(SSD)进行量化:
其中是在解码器处接收的考虑到源编码失真和由于信道所致的失真两者的(索引i的)样本。即,是原始未经编码的输入样本,是在编码器处的考虑到源编码失真(例如由于量化)的重构样本,而是考虑到包括有损信道效应的端对端总失真的样本;。
Dep_arrival可以扩展为:
其中是重构残差的样本。因此:
因此代入到公式(9)中,误差传播图可以重写为:
或者
考虑到模式最优化问题,它也可以写成:
其中n是帧号,即Dep(n+1)是给定现有决策oopt和帧在先前时间n的失真Dep(n)而要用于做出在时间n+1的帧的模式选择的误差传播图。
如在Zhang [2]中,Dec项也可以扩展为:
其中Dec-rec表示编码器中的重构和误差隐藏像素之间的SSD,而Dec-ep为编码器和解码器中的误差隐藏像素之间的预期SSD。
检查公式(3),如上面所解释的,项Dep-ref表示如果成功接收到目标块但是其历史中的一些东西被丢失(如果目标块的参考块被丢失,或者参考块的参考块被丢失,等等)则将经受的失真。进一步,Dec-rec表示由于隐藏算法本身的性质所致的失真的估计(有点类似于用于预测的固有源编码失真Ds)。Dec-ep则表示如果目标块被丢失(因此需要在解码器处被隐藏)并且所隐藏目标块的历史中的一些东西被丢失(如果完成隐藏所来自的块被丢失,或者预测或隐藏该块所来自的块被丢失,等等)则将经受的失真的估计。
因此,失真图Dep包括:由于新丢失所致的贡献,由Dec-rec且部分由Dec-ep产生;以及由于过往丢失所致的贡献,由Dep-ref且部分也由Dec-ep产生。
对于序列中的第一帧,将用帧内编码来编码该帧,在这种情况下Dep-ref=0且因此Dep=pDec。
误差隐藏失真Dec由模式选择模块49计算。项Dec-rec是基于隐藏算法的知识,并且可以取决于使用的特定误差隐藏算法。Dec-ep是基于现有的(最近的)失真图以类似于Dep-ref的方式计算的,例如通过在基本隐藏算法的情况下复制协同定位块的失真或者如果使用试图对运动外插的更复杂隐藏(同样参见下面关于图1c的讨论)则从多个先前编码的块b1-b4计算失真的加权和。可以使用计算Dec的其它方式——这可以是编码器中的重构样本和如将在解码器处看到的误差隐藏样本(即,从先前接收的帧或者接收的相同帧区域复制、内插或外插以隐藏丢失帧或区域的样本)之间的差的任何估计。
模式选择模块49然后通过如下操作来维持每个后续帧间预测的帧的误差传播图:遵循每个模式选择决策,对它进行更新,现在包括从现有误差图的知识计算Dep-ref。在帧间预测(运动估计)的情况下,根据Zhang [2],这是使用所讨论的帧的运动矢量而完成的。
在图1c中图示了这样的示例。四个示例块b1、b2、b3和b4示于参考帧Fn中(在时间n-1),该参考帧已经被编码。(在后续时间n)目标帧Fn的块将从参考帧Fn-1进行预测。例如考虑目标帧Fn中的目标块b1。为此,运动预测模块44确定定义目标帧Fn中的目标块和参考帧Fn-1中的参考块(由虚线示出)之间的偏移的运动矢量,使得当参考块从参考帧Fn-1中的偏移位置平移到目标帧Fn中的目标块b1 ’的位置时,它提供目标块b1的最佳估计。因此注意,虚参考块不必是参考帧Fn-1中的可索引化块,即不必是参考帧的预定细分,并且可以偏移任何任意数量(并且实际上甚至可以偏移像素的分数)。因此参考块由来自四个实际可索引化块b1、b2、b3和b4的贡献构成。
因而,由模式选择模块49执行以确定Dep-ref从而用于更新误差传播图Dep(n+1)的现有计算包括计算针对现有图Dep(n)中的块或子块b1到b4所记录的失真的加权和:
或者更明确地:
其中wi是表示来自块或子块bi的贡献的权重,而Dep(i)是块或子块bi的误差传播图条目。
上面描述了如下的现有过程:确定初始误差传播图Dep,使用误差传播图来选择用于后续编码的最优编码模式决策oopt,使用所述编码决策来更新图Dep,然后在下一编码决策中使用更新的图,以此类推,其中误差传播图表示包括信道上的丢失的估计影响的端对端失真。例如再次参考Zhang [2]。这在本文中可以被称为丢失自适应的速率失真最优化(LARDO:loss-adaptive rate-distortion optimization)。
然而,Zhang等人[2]的过程仅仅基于在编码器处纯粹关于信道上的丢失似然性做出的先验概率假设。
本发明通过如下操作而提供相对于Zhang的改进:利用从解码器反馈到编码器的信息(例如分组和/或帧到达状态)来进一步适配编码器中的丢失自适应的速率失真最优化过程并且由此改进总体速率失真性能。
图4是描绘可以用来实施本发明的编码器和解码器的***的示意性框图。优选地,编码器显现在发送终端12的存储器14和处理装置16中,而解码器显现在接收终端22的存储介质24和处理装置26中。发送终端12上的编码器包括编码模块以及解码模块的编码器侧实例,其镜像或近似如在解码器处执行的解码。编码模块包括正向变换模块51和量化器53以及潜在地包括一个或多个其它级诸如熵编码器(未示出)。编码器侧解码模块包括逆量化器63和逆变换模块61以及潜在地包括其它级诸如熵解码器。编码器也包括运动补偿预测(MCP)模块44和减法级(-)。再次参考图3以解释这些编码器元件之间的连接。
此外,在图3中未示出的是编码器也包括连接在编码器侧解码模块61、63和运动补偿预测模块44之间的路径中的解码图片缓冲器65。解码图片缓冲器65包括多个组成缓冲器区域,每个组成缓冲器区域可以标记为保持短期参考或长期参考。在H.264中仅存在一个实际缓冲器,其中标记器用来指示长期参考(但是不排除在其它实施方式中分开的专用短期和长期缓冲器的可能性)。在图4中,解码图片缓冲器65被示为保持一个或多个短期参考66、一个或多个未确认的长期参考67以及一个或多个确认的长期参考68。
每个组成缓冲器区域可操作用于存储一个或多个先前编码的帧或切片的重构版本(即已被编码且然后由解码模块61、63的编码器侧实例再次解码以便表示如在编码器处将看到的帧或切片)。先前编码的帧或切片的这些重构版本被提供用作当前帧或切片的帧间预测编码中的参考,即使得要编码的目标块可以相对于缓冲器中的参考块进行编码。
解码图片缓冲器65被布置成使得用被编码的每个连续帧或切片自动更新短期参考66。即,随着每个帧或切片被编码,然后该新帧或切片的解码版本自动盖写在短期缓冲器中先前保持的另一最近参考帧或切片。在优选实施例中,解码图片缓冲器65可以保持多个短期参考66并且最老短期参考总是为在缓冲器中盖写的参考。为此发生不需要附加的条件。
如所提及的,H.264 AVC标准也允许把某些参考帧或切片标记为长期参考67、68。这些长期参考保留在解码图片缓冲器中直至被明确去除为止。即,它们不被连续编码的帧或切片自动地盖写,而相反仅在编码器的另一动作或元件触发它的附加条件(例如控制命令诸如存储器管理命令)时被盖写或者以其它方式被去除。所述控制命令可以由决定要采取什么动作的编码器的控制器(未示出)发出。用于清除长期缓冲器的命令可以在编码比特流的报头诸如切片报头中发送到解码器。也可以将类似的功能性结合到其它标准中。接收终端24上的解码器包括运动补偿预测模块44、解码模块61、63以及被布置成存储对应的短期和长期参考66、67和68的解码图片缓冲器65的解码器侧实例44’、61’、63’、65’、66’、67’和68’。
接收终端24上的解码器被配置成经由反馈信道与发送终端12上的编码器通信。该反馈优选地是经由把视频流发送到接收终端22所经的相同网络32,例如基于分组的相同网络诸如因特网,尽管不排除替选反馈机构的可能性。
通过示例方式,长期参考可以由控制器如下管理。比如说,决定在解码图片缓冲器(例如It pos 0和It pos 1)中维持两个长期参考。(在时间t0)被编码的第一帧可以被放置到It pos 0中。可以假设第一帧将到达解码器(来自解码器的反馈将在一个RTT后到达)并因此It pos 0初始被标记为无误差确认。标记为长期参考的下一帧是在时间t0+RTT的帧,其被放置在It pos 1处。如果编码器从解码器得到指示在It pos 1处的参考到达(且不包含误差传播)的反馈,则It pos 1被标记为无误差确认并且(在时间t0+2*RTT的)下一长期参考帧被放置到It pos 0中。因此,两个位置形成往复式缓冲器,其中总是存在一个被无误差地确认的位置和一个被暂时使用进行探测的位置。这样,在解码图片缓冲器中应当总是存在能够用来在丢失的情况下生成恢复帧的相当最近确认的无误差参考。原则上,It-ref帧越靠近当前时间位置,则帧间编码越高效,因此该恢复帧将越小(以比特计)。然而,这仅是一种编码器的控制器可以被配置成用来管理长期参考的策略(为了示例起见而描述),并且将明白其它管理图片缓冲器中的长期和短期参考的***的方式是可能的(例如,甚至更好的方式是提供更多It-ref)。
参考图4的示例性实施方式,本发明考虑反馈以包含关于在解码器处的解码图片缓冲器65’的信息。给定这个反馈,编码器知晓例如解码器中的哪些帧或切片被解码而不包含任何误差传播失真。在图4中,解码图片缓冲器65中的条目68指代这种确认的无误差帧。解码图片缓冲器65中的条目67指代未确认的帧。反馈机构可以用来使编码器知晓哪个是在解码器处可用的最近确认的长期参考(除了关于丢失了哪些帧的信息之外)。在下文中,确认的参考优选地意指确认的无误差参考(即没有任何误差传播失真的参考)而非仅仅是本身被确认的参考。就是说,参考应当优选地根据如下的严格定义进行确认:参考被确认为接收并且在该参考的历史中相关的一切也被确认为接收,使得可以已知不存在误差传播;与此相对的是仅确认当前参考被接收而没有严格确认其历史。注意,仅本身被确认但是相对于无误差块被编码的帧中的部分也是无误差的(没有传播误差)。
根据本发明的第一实施例,基于确认的长期参考帧(或切片)的帧间预测可以用来以与帧内编码类似的方式阻止解码器中的误差传播。使用来自长期参考的帧间预测的益处在于帧间预测一般导致针对给定失真水平的较低比特率。
通过使用确认的长期参考进行帧间预测,本发明的第一实施例使附加宏块编码模式可用,例如用在Zhang [2]的框架内,所述附加宏块编码模式可以与帧内编码类似地但是一般而言以较低的关联比特率阻止误差传播。
Zhang等人[2]的算法仅考虑两种不同类型的编码模式即帧内和帧间编码。在这种情况下,在公式(3)中误差传播参考失真Dep-ref(m,o)仅对于帧内编码的宏块模式而言为零。然而,本发明的第一实施例扩大了可用编码模式集合以包括来自确认的长期参考的帧间编码。这种编码模式的优点在于它可以以与帧内编码类似的方式但是一般而言以较低的比特率阻止误差传播。
对上面给出的算法的所需变化在于公式(2)和(3)中的误差传播参考失真也在编码模式是来自确认的参考帧的帧间编码时被设定为零,即:
在第一实施例的某些变型中,上面示例可以用以下方式进行修改。考虑其中编码器例如以与往返时间(RTT)相关的规则间距把参考帧标记为长期参考的情形。因此,(如图4中所示的)解码图片缓冲器65将在某一时间实例处包含短期参考66、“非确认的”长期参考67和确认的长期参考68。为了“非确认的”长期参考67根据严格定义在解码器处变为确认,将要求在非确认的长期参考之前不存在丢失,即确认的长期参考是没有任何误差传播失真的解码帧。在编码器侧,接收运送关于解码器接收了哪些帧的信息的反馈。给定编码器确切地已知哪些帧被标记为(非确认的)长期参考并且具有分组或帧丢失概率的估计p,有可能为非确认的长期参考将转换成确认的长期参考的概率建立模型。如果帧丢失概率是p并且存在两个长期参考之间的已知或预定间隔L,则非确认的长期参考将变成确认的先验概率是(1-p)L。逐渐地,随着接收到正反馈信息,例如解码器迄今为止接收了L个帧当中的l个,则长期参考将被确认的概率从(1-p)L变化到(1-p)(L-l)。所描述的概率模型现在可以用来将上面的Dep-ref(m,o)公式概括为:
其中Dep-LTref(m(k))表示非确认的长期参考的预期误差传播(简单地为该帧的Dep的副本)。
因此,第一实施例的这个变型引入又一编码模式,其区分基于非确认的长期参考的帧间预测的使用与基于非确认的短期参考的帧间预测的使用。对于仍未接收到反馈的某一长期参考,这不过具有基于来自解码器的中间报告而变成无误差确认的参考的某一概率。对于非确认的长期参考,因此可以根据丢失概率的先验估计(即p本身不基于反馈)并且基于自从非确认的参考历史中的最后(最近)确认的长期参考的时间(或等效地为帧数),对误差传播失真Dep-ref(m,o)的估计进行加权。该权重衰减失真的估计以便降低或减小该估计。
可能注意,上面逻辑仅仅是示例实施例并且以上面的形式是有点保守,因为它假设所有丢失对标记为长期参考的帧都具有影响。上面的逻辑可以被细化以便仅考虑到影响长期参考帧的帧或切片丢失。
在又一概括中,考虑其中解码器接收了长期参考但是在长期参考之间存在丢失的情况。因此,长期参考根据上面的严格定义未被“确认”。然而,如果为帧的所有宏块存储了模式决策,则其中对应的模式被设定为帧内或确认的长期参考的部分与零误差传播参考失真相关联,因此参考自那些区域的帧间预测与帧内编码相比以潜在较低的速率失真成本中断误差传播。
尽管上面的示例实施例所有都基于长期参考和反馈报告的概念,但是当往返时间(RTT)与解码图片缓冲器中的短期参考数目相比足够低时,相同的概念可以应用于短期参考。就是说,对于足够小的RTT,替选或附加可能性是将短期参考辨别为被确认,其然后可以以与上面讨论的确认长期参考类似的方式使用。对先前章节中的公式(3)的所需算法变化是不仅对于帧内编码而且对于来自确认参考的帧间编码将Dep-ref(m,o)设定为零。
对上面讨论的第一实施例的概括改进了在鲁棒性与源编码之间做出折衷方面的灵活性。
在另外点上,按默认的LARDO假设受约束的帧内预测,即禁止来自帧间预测宏块的帧内预测。然而,发明人已观察到受约束的帧内预测实际上可以引起严重的编码失真(尤其在平滑梯度图片区域上)。因此,在本发明的特别优选变型中,LARDO应当不用受约束的帧内预测来运行。隐含的是,帧内编码模式(当从帧间预测宏块进行预测时)也与误差传播参考失真相关联,因此不与误差传播参考失真相关联的唯一模式是来自确认的无误差参考图片的帧间预测。
在本发明的第二实施例中,从解码器反馈到编码器的信息诸如分组和/或帧到达状态用来调节编码器中的潜在失真图并且由此与Zhang等人的方法相比改进了总体速率失真性能。
根据第二实施例,每个帧或帧切片的误差传播失真图Dep与编码器的解码图片缓冲器65中的该帧或切片关联地存储。对于每个帧或切片,在编码器处的解码图片缓冲器65也存储对应的误差隐藏重构失真图Dec-rec、误差隐藏误差传播图Dec-ep、对应的模式决策o和运动矢量信息。编码器然后使用来自解码器的反馈信息来更新失真图。再次参考公式(3)。反馈信息允许细化估计的失真跟踪,从而产生更好的速率失真性能。
优选地,这是如下实现的。如果编码器接收到用信号通知特定帧或切片已成功到达解码器的反馈信息,则可以从公式(3)中的误差传播失真图Dep去除误差隐藏贡献Dec-rec和Dec-ep。相反,如果接收到用信号通知在解码器处丢失特定帧或切片的反馈信息,则重新计算关联的误差传播失真图Dep以便仅包括来自误差隐藏失真的贡献,即公式(3)的右手边中的第二和第三项即Dec-rec和Dec-ep(用先验丢失概率估计p进行归一化)。
然后,如果往返时间(RTT)与解码图片缓冲器中的参考图片数目相比为小,则有可能通过递归地使用公式(3)而把在时间n-RTT调节的潜在误差传播图Dep传播到在时间n-1的误差传播失真图。在时间n-1更新的误差传播失真图Dep然后将是用于计算在模式选择过程(2)中使用的在时间n的Dep_ref的基础。这导致对潜在失真图的更准确跟踪,因此改进了***的总体速率失真性能。
将明白,仅通过示例方式描述了上面的实施例。
一般地,虽然上面已按照切片、宏块和块或子快进行描述,但是这些术语不必旨在进行限制并且在本文中描述的构思不限于划分或细分帧的任何特定方式。进一步,失真图可以覆盖整个帧或在帧内的区域,并且编码决策过程可以应用在整个帧上或者仅应用于帧内的区域。也注意,预测块粒度不必与失真图粒度相同或者甚至连接到失真图粒度(尽管不排除这种可能性)。
平方差和(SSD)往往优选作为差的量度,因为它与绝对差和(SAD)相比导致更高的质量,但是不排除后一可能性或其它可能性并且一般而言可以使用样本之间的差的任何量度作为用于量化失真的基础来实施本发明。
通常,速率的量度也顾及对所有需要的参数进行编码,包括描述预测的参数和量化的变换系数。这种最优化在本文中可以被称为全速率失真最优化(RDO)。然而在较低复杂性实施例中,失真和/或速率项可以通过仅考虑到一些而非所有处理级的效应(例如仅考虑到预测的效应)来近似。
进一步,在本发明按照两个帧n-1和n、或者n和n+1、或者比如此类进行描述的情况下,根据本发明的某些实施例这些不必指代两个相邻帧(尽管在现有的编解码器中情况可能如此)。在一些实施例中,有可能帧间预测可以相对于甚至更早帧来执行,照此n-1和n、或者n和n+1可以关于本发明用来分别指代任何先前编码的帧或图像部分和要从它预测的随后帧或部分。
再次注意,在本申请中提及由于丢失所致的贡献、或者陈述“如果”数据在信道上丢失则发生什么的任何东西、或者比如此类的情况下,这仅涉及由编码器关于解码器可能经受什么所做出的概率假设(例如p)——编码器当然不知道将发生什么。该概率假设可以基于统计网络建模在设计阶段被预先确定,和/或甚至可以基于来自解码器的反馈而动态地确定。
给定本文中的公开内容,其它变型可能对本领域技术人员变得显而易见。本发明的范围不受所描述的实施例限制而仅受所附的权利要求限制。
Claims (10)
1.一种对视频流进行编码的方法,所述方法包括:
执行速率失真最优化过程,该速率失真最优化过程包括对于在视频流的帧中要编码的多个目标图像部分中的每一个,通过优化包括目标图像部分的失真估计和为对目标图像部分编码所需的比特率度量的函数而选择编码模式集合中的优选编码模式,其中该失真估计是基于源编码失真和由于丢失所致的误差传播失真的估计;以及
使用选择的编码模式把目标图像部分编码成视频流的编码版本;
其中所述方法进一步包括:在相应的有损信道上把视频流的相同编码版本从发送终端发送到多个接收终端中的每一个,关于所述多个接收终端中的每一个使用相同的速率失真最优化过程,其中相同的速率失真最优化过程的使用包括基于所述函数的相同最优化对于每目标图像部分进行相同的编码模式选择;并且
其中误差传播失真的估计包括由于多个信道上的可能丢失而将经受的误差传播失真的聚合估计。
2.权利要求1的方法,其中所述信道中的两个或更多是经由共同多播中继节点,由此所述发送终端在第一支路上把视频流的编码版本发送到多播中继节点,并且多播中继节点经由信道的相应第二支路把视频流的编码版本的相应实例转发到相应两个或更多接收终端中的每一个。
3.权利要求1或2的方法,包括确定每个所述信道上的丢失的个别概率并且基于所述个别概率来确定聚合概率,其中失真的聚合估计是基于所述聚合概率。
4.权利要求2和3的方法,其中所述两个或更多信道中的每一个的个别概率通过组合其支路中的每一个上的丢失的概率来确定。
5.任一前述权利要求的方法,包括确定由于每个所述信道上的可能丢失而将经受的误差传播失真的个别估计,其中误差传播失真的聚合估计通过聚合误差传播失真的个别估计来确定。
6.权利要求5的方法,包括通过在每个编码模式选择后更新误差传播图而维持每个所述信道的个别误差传播失真图,其中个别失真估计是从相应失真图确定的。
7.权利要求5或6的方法,其中所述信道中的一个或多个中的每一个的误差传播失真的个别估计是基于来自相应接收终端的反馈。
8.权利要求7的方法,其中所述反馈包括以下中的一个:接收到所述较早帧的至少部分的确认,以及未接收到所述较早帧的至少部分的报告。
9.一种对视频流进行编码的发送终端,所述发送终端包括:
编码器,被配置执行速率失真最优化过程,该速率失真最优化过程包括对于在视频流的帧中要编码的多个目标图像部分中的每一个,通过优化包括目标图像部分的失真估计和为对目标图像部分编码所需的比特率度量的函数而选择编码模式集合中的优选编码模式,其中该失真估计是基于源编码失真和由于丢失所致的误差传播失真的估计,所述编码器被布置成使用选择的编码模式把目标图像部分编码成视频流的编码版本;以及
发射器,被布置成在相应的有损信道上把视频流的相同编码版本从发送终端发送到多个接收终端中的每一个,所述编码器被配置成关于所述多个接收终端中的每一个使用相同的速率失真最优化过程,其中相同的速率失真最优化过程的使用包括基于所述函数的相同最优化对每目标图像部分进行相同的编码模式选择;并且
其中所述编码器进一步被配置成使得误差传播失真的所述估计包括由于多个信道上的可能丢失而将经受的误差传播失真的聚合估计。
10.一种对视频流进行编码的计算机程序产品,所述计算机程序产品被体现在计算机可读介质上并且包括代码,所述代码被配置成当被执行时执行根据权利要求1到8中任一项的操作。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1115210.5A GB2495469B (en) | 2011-09-02 | 2011-09-02 | Video coding |
GB1115210.5 | 2011-09-02 | ||
US13/274,865 US9854274B2 (en) | 2011-09-02 | 2011-10-17 | Video coding |
US13/274865 | 2011-10-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102946532A true CN102946532A (zh) | 2013-02-27 |
Family
ID=46852394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103203259A Pending CN102946532A (zh) | 2011-09-02 | 2012-09-03 | 视频编码 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102946532A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105850122A (zh) * | 2014-01-03 | 2016-08-10 | 高通股份有限公司 | 在多层译码中用于对参考图片集(rps)进行译码的方法 |
CN108293114A (zh) * | 2015-12-07 | 2018-07-17 | 高通股份有限公司 | 用于显示流压缩的块预测模式的多区域搜索范围 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030012202A1 (en) * | 2001-07-16 | 2003-01-16 | The Furukawa Electric Co., Ltd. | Network interconnection method, network interconnection apparatus and system using network interconnection apparatus |
CN101346999A (zh) * | 2005-12-22 | 2009-01-14 | 汤姆森特许公司 | 用于优化灵活宏块排序视频编码的帧选择的方法和装置 |
US20100226262A1 (en) * | 2005-12-15 | 2010-09-09 | Zhengye Liu | Adaptive Joint Source and Channel Coding Scheme for H.264 Video Multicasting Over Wireless Networks |
CN101960466A (zh) * | 2007-09-11 | 2011-01-26 | 彩升集团有限公司 | 用于误差弹性视频编码的帧间模式生成的比率失真优化 |
US20110119565A1 (en) * | 2009-11-19 | 2011-05-19 | Gemtek Technology Co., Ltd. | Multi-stream voice transmission system and method, and playout scheduling module |
-
2012
- 2012-09-03 CN CN2012103203259A patent/CN102946532A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030012202A1 (en) * | 2001-07-16 | 2003-01-16 | The Furukawa Electric Co., Ltd. | Network interconnection method, network interconnection apparatus and system using network interconnection apparatus |
US20100226262A1 (en) * | 2005-12-15 | 2010-09-09 | Zhengye Liu | Adaptive Joint Source and Channel Coding Scheme for H.264 Video Multicasting Over Wireless Networks |
CN101346999A (zh) * | 2005-12-22 | 2009-01-14 | 汤姆森特许公司 | 用于优化灵活宏块排序视频编码的帧选择的方法和装置 |
CN101960466A (zh) * | 2007-09-11 | 2011-01-26 | 彩升集团有限公司 | 用于误差弹性视频编码的帧间模式生成的比率失真优化 |
US20110119565A1 (en) * | 2009-11-19 | 2011-05-19 | Gemtek Technology Co., Ltd. | Multi-stream voice transmission system and method, and playout scheduling module |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105850122A (zh) * | 2014-01-03 | 2016-08-10 | 高通股份有限公司 | 在多层译码中用于对参考图片集(rps)进行译码的方法 |
CN105850122B (zh) * | 2014-01-03 | 2020-07-17 | 高通股份有限公司 | 在多层译码中用于对参考图片集(rps)进行译码的方法 |
CN108293114A (zh) * | 2015-12-07 | 2018-07-17 | 高通股份有限公司 | 用于显示流压缩的块预测模式的多区域搜索范围 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102064023B1 (ko) | 무-에러 기준 프레임을 이용한 비디오 리프레시 기법 | |
KR102146583B1 (ko) | 오류 전파 추적 및 수신기로부터의 오류 피드백을 이용한 비디오 리프레시 기법 | |
US9854274B2 (en) | Video coding | |
EP2712482B1 (en) | Low complexity mode selection | |
EP2712481B1 (en) | Mode decision with perceptual-based intra switching | |
US8804836B2 (en) | Video coding | |
US9036699B2 (en) | Video coding | |
CN102946534A (zh) | 视频编码 | |
CN102946533B (zh) | 视频编码 | |
CN102946532A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130227 |