专利名称:图像编码方法
技术领域:
本发明涉及用于编码图像的方法,其中形成主编码图像和主编码图像的冗余编码图像。本发明还涉及系统、编码器、解码器、发送设备、接收设备、软件程序、存储媒体和比特流。
背景技术:
公布的视频编码标准包括ITU-T H.261、ITU-T H.263、ISO/IECMPEG-1、ISO/IEC MPEG-2、和ISO/IEC MPEG-4第2部分。这些标准在这里被称为传统的视频编码标准。
视频通信系统视频通信系统可被划分成对话和非对话系统。对话系统包括电视会议和电视电话。这样的系统的例子包括ITU-T建议H.320、H.323和H.324,它们规定分别在ISDN、IP和PSTN网络中工作的电视会议/电视电话系统。对话系统的特征在于意图使端到端延时(从音频视频捕获到远端音频视频呈现)最小化,以便改善用户感受。
非对话系统包括存储内容的回放,存储内容是诸如数字通用盘(DVD)或被存储在回放设备的大容量存储器中的视频文件、数字电视、和流。
在ITU-T和ISO/IEC的联合视频组(JVT)中有一个正在进行中的标准化研究计划。JVT的工作是基于在ITU-T中被称为H.26L的早先的标准化项目。JVT标准化的目标是发布与ITU-T建议H.264和ISO/IEC国际标准14496-10(MPEG-4第10部分)相同的标准文本。标准草案在本文中被称为JVT编码标准,以及按照标准草案的编解码器被称为JVT编解码器。
编解码器技术规范本身在概念上区分视频编码层(VCL)和网络提取层(NAL)。VCL包含编解码器的信号处理功能性,诸如变换、量化、运动搜索/补偿、和环路滤波那样的功能。它遵循大多数今天的视频编解码器的一般概念,一个利用带有运动补偿的图像间预测的、基于宏块的编码器以及剩余信号的变换编码。VCL编码器的输出是像条包含整数个宏块的宏决数据和像条头标的信息(包含像条中第一宏块的空间地址、初始量化参数等等)的比特串。在像条中的宏块通过使用所谓的灵活的宏块排序句法而以扫描次序接连地排序,除非规定不同的宏块分配。图像内预测仅仅被使用于像条内。
NAL把VCL的像条输出封装到网络提取层单元(NALU),它们适用于在分组网络上传输或被使用于面向分组的复用环境。JVT的附录B定义通过面向字节流的网络传送这样的NALU的封装处理过程。
H.263的任选的参考图像选择模式和MPEG-4第2部分的NEWPRED编码工具使能按每个图像分段,例如按H.263中的每个像条,选择用于运动补偿的参考帧。再者,H.263的任选的增强参考图像选择模式和JVT编码标准使能分别选择用于每个宏块的参考帧。
参考图像选择使能许多类型的时间可缩放性方案。
图1显示时间可缩放性方案的例子,它在这里被称为递归时间可缩放性。示例的方案可以以三种恒定的帧速率被解码。图2显示被称为视频冗余编码的方案,其中图像序列被划分成以交织的方式的两个或多个独立编码的线程(thread)。在这些和所有以后的图上的箭头指示运动补偿方向而帧下的值对应于帧的相对捕获和显示时间。
图8显示通常的视频通信系统800的框图。由于未压缩的视频需要很大的带宽,所以输入视频801在发送设备802中被源编码器803压缩到期望的比特速率。源编码器803可被分成两个部件,即波形编码器803.1和熵编码器803.2。波形编码器803.1执行有损视频信号压缩,而熵编码器803.2把波形变换器803.1的输出无损地变换成二进制序列。传输编码器804按照所使用的传输协议封装压缩的视频。它也可以按其它方式处理压缩的视频。例如,它可以交织和调制数据。然后,数据经由传输信道805被传送到接收器端,该传输信道可包括服务器设备806、网关(未示出)等等。接收器807执行相反的操作,以得到重构的视频信号用于显示。接收器807包括传输解码器808和源解码器809。传输解码器808按照所使用的传输协议解拆从输送信道805传输协议输入的压缩的视频。源解码器809也可被分成两个部件,即熵解码器809.1和波形解码器809.2。熵解码器809.1把来自传输解码器808的二进制序列变换成要被输入到波形解码器809.1的波形。波形解码器809.1执行视频信号解压缩和输出视频信号810。接收器807也可以向发送器给出反馈。例如,接收器可以用信号告知成功接收的传输单元的速率。
参数集概念JVT编解码器的一个非常基本的设计概念是生成自包含的分组,使得诸如头标复制那样的机制是不必要的。如何达到这一点的方法是断开与一个以上的像条有关的信息和媒体流的联系。这个较高层的元信息应当可靠地、异步地并提前从包含像条分组的RTP分组流被发送。这个信息在这样的、没有适合于该用途的带外输送信道的应用中也可以在带内被发送。较高级别的参数的组合被称为参数集。参数集包含诸如图像尺寸、显示窗口、任选的所采用的编码模式、宏块分配映射等等的信息。
为了能够改变图像参数(诸如图像尺寸)、而不需要同步地发送参数集更新值到像条分组流,编码器和解码器可以保持一个以上的参数集的列表。每个像条头标包含指示要被使用的参数集的码字。
这种机制允许断开参数集的传输与分组流的联系,以及例如,作为能力交换的副效果,或通过(可靠的或不可靠的)控制协议而由外部装置发送它们。甚至有可能从不发送它们,而是通过应用设计技术规范来固定它们。
传输次序在传统的视频编码标准中,除了B图像外,图像的解码次序是与显示次序相同的。在常规的B图像中的块可以从两个参考图像双向地在时间上预测,其中在显示次序中一个参考图像在时间上是在前的而另一个参考图像在时间上是在后的。只有解码次序中最后的参考图像才可以在显示次序中接在B图像之后(例外在H.263中的交织编码中,其中在时间上后续的参考帧的两场图像在解码次序中可以在B图像之前)。常规的B图像不能被用作为用于时间预测的参考图像,所以,常规的B图像可被处理而不影响任何其它图像的解码。
与早先的标准相比较,JVT编码标准包括以下新的技术特征-断开了图像的解码次序与显示次序间的联系。图像号指示解码次序,以及图像次序计数指示显示次序。
-用于B图像的块的参考图像在显示次序中可以在B图像之前或之后。因此,B图像表示双预测图像,而不是双向图像。
-不被用作为参考图像的图像被明确地标记。任何类型的图像(内部intra、之间inter、B等等)可以是参考图像或非参考图像。(因此,B图像可被用作用于其它图像的时间预测的参考图像)。
-图像可以包含用不同的编码类型编码的像条。换句话说,编码的图像可由例如内部编码的像条和B编码的像条组成。
断开显示次序与解码次序的联系,从压缩效率和错误复原能力的观点来看可以是有益的。
图3给出潜在地提高压缩效率的预测结构的例子。方块指示图像,在方块内的大写字母指示编码类型,方块内的数字是按照JVT编码标准的图像号,以及箭头指示预测相依性。应当指出,图像B17是用于图像B18的参考图像。与传统编码相比较,因为用于图像B18的参考图像,与用PBBP或PBBBP编码的图像图案进行的传统的编码相比较,在时间上更接近,所以压缩效率被潜在地提高。与常规的PBP编码的图像图案相比较,因为一部分参考图像是双向预测的,所以压缩效率被潜在地提高。
图4给出可被使用来改进错误复原能力的内部图像延缓方法的例子。常规地,内部图像在情景切割后立即被编码,或例如作为对于超时的内部图像的刷新周期的响应。在内部图像延缓方法中,内部图像并不是在出现编码内部图像的需要后立即被编码,而是把在时间上后继的图像选择为内部图像。在编码的内部图像与一个内部图像的常规位置之间的每个图像根据下一个在时间上后继的图像进行预测。如图4所示,内部图像延缓方法生成两个独立的图像间预测链,而传统的编码算法产生单个之间图像链。可以直觉地看到,与一链的传统方法相比,该二链方法对抗擦除错误是更鲁棒的。如果一个链受到分组丢失损害,另一个链仍旧可能被正确地接收。在传统的编码中,分组丢失总是导致错误传播到图像间预测链的其余部分。
多媒体流传输多媒体流播系统由流播服务器和多个播放器组成,播放器经由网络接入服务器。网络典型地是面向分组的,以及很少提供或不提供措施来保证服务质量。播放器从服务器取来预先存储的或实况的多媒体内容以及在内容被下载的同时实时地回放它。通信的类型可以是点对点或多播。在点对点流播中,服务器为每个播放器提供单独的连接。在多播流播中,服务器发送单个数据流到多个播放器,以及网络单元只在必要时才复制所述流。
当播放器已建立到服务器的连接并请求多媒体流时,服务器开始发送期望的流。播放器并不立即开始回放这些流,而是典型地缓冲进入的数据达几秒钟。这里,这种缓冲被称为初始缓冲。初始缓冲有助于保持无暂停的回放,因为在偶尔增加的传输延时或网络吞吐量下降的情形下,播放器可以解码和播放缓冲的数据。
为了避免无限制的传输延时,在流播系统中趋向于支持可靠的传输协议是罕见的。而是,系统趋向于支持不可靠的传输协议,诸如UDP,它一方面得到了更稳定的传输延时,但另一方面,也受到数据讹误或丢失的损害。
RTP和RTCP协议可被使用在UDP之上,用来控制实时通信。RTP提供检测传输分组的丢失、在接收端重新组装正确的分组次序、和把采样时间戳与每个分组相关联的手段。RTCP输送有关多大部分的分组被正确地接收的信息,所以,它可被用于流控的目的。
传输错误有两种主要类型的传输错误,即,比特错误和分组错误。比特错误典型地与电路交换信道有关,诸如在移动通信中的无线接入网连接,以及它们是由于物理信道的缺陷--诸如无线电干扰--造成的。这样的缺陷可以在传输的数据中造成比特反相、比特插入和比特删除。分组错误典型地是由分组交换网络中的单元造成的。例如,分组路由器可变为拥塞的;即,它可能得到太多的分组作为输入而不能以相同的速率输出它们。在这种情形下,它的缓冲器溢出,并且某些分组被丢失。也有可能出现分组重复和分组递送的次序与发送次序不同,但它们典型地被认为没有分组丢失那样普遍。分组错误也有可能是由于所使用的传输协议栈的实施方案造成的。例如,某些协议使用在发送器中计算并与源编码的数据一起封装的校验和。如果在数据中有比特反相错误,则接收器不能以相同的校验和结束,且它可能必须丢弃接收的分组。
第二代(2G)和第三代(3G)移动网,包括GPRS、UMTS、和CDMA-2000,提供两种基本类型的无线电链路连接,确认的和非确认的。确认的连接是使无线电链路帧的整体性由接收者(移动站MS或基站子系统BSS)校验,以及在传输错误的情形下,向无线电链路的另一端给出重发请求。由于链路层重发,发起者必须缓冲无线电链路帧,直至接收到对于帧的肯定确认为止。在苛刻的无线电条件下,这个缓冲器可能溢出并且造成数据丢失。无论如何,已经表明,为流播业务使用确认的无线电链路协议模式是有益的。非确认的连接是使得错误的无线电链路帧典型地被丢弃。
分组丢失可被纠正或被隐藏。丢失纠正是指完全地恢复丢失的数据的能力,就好像没有发生过丢失一样。丢失隐藏是指隐藏传输丢失的影响的能力,以使得它们在重建的视频序列中应当看不见。
当播放器检测到分组丢失时,它可以请求分组重发。因为初始的缓冲,重发的分组可以在它被安排的回放时间之前被接收。某些商业性的互联网流播系统通过使用专用协议实施重发请求。在IETF中正在进行标准化选择性重发请求机制作为RTCP的一部分的工作。
对于所有这些重发请求协议的共同特性是,它们不适合于对大量播放器进行多播,因为网络业务量会大大地增加。因此,多播流播应用必须依赖于非交互的分组丢失控制。
点对点流播系统也可以从非交互错误控制技术获利。第一,某些系统可能不包含任何交互错误控制机制或它们宁愿不从播放器得到任何反馈,以便简化系统。第二,丢失分组的重发和交互错误控制的其它形式典型地比非交互错误控制方法占用更大部分的传送的数据速率。流播服务器不得不确保交互错误控制方法不保留可用的网络吞吐量的主要部分。实际上,服务器可能不得不限制交互错误控制操作的总量。第三,传输延时可能限制服务器与播放器之间的交互次数,因为用于特定的数据样本的所有交互错误控制操作优选地应当在数据样本被回放之前完成。
非交互分组丢失控制机制可被分类为前向错误控制和通过后处理的丢失隐藏。前向错误控制是指其中发送器添加冗余性到传送的数据以使得接收器即使在有传输丢失时也可恢复至少部分的传送的数据的技术。有两类前向错误控制方法与信号相关的和与信号无关的。与信号相关的方法需要解译比特流。这样的方法的例子是序列或图像头标的重复。与信号无关的方法可被使用来恢复任何比特流,而不管比特流的解译的内容如何。这样的方法的例子是纠错码(例如奇偶校验码和里德-所罗门码)。通过后处理的丢失隐藏完全是面向接收器的。这些方法设法估计错误地接收的数据的正确表示。
大多数视频压缩算法生成时间上预测的INTER或P图像。结果,在一个图像中的数据丢失造成在以后的、从有讹误的图像进行时间上预测的图像上的可见降级。视频通信系统可以或者隐藏所显示图像上的丢失,或者把最后的正确图像冻结在屏幕上,直至接收到与有讹误的帧无关的帧为止。
主和冗余的图像主编码图像是图像的主编码表示。解码的主编码图像覆盖整个图像区域,即,主编码图像包含图像的所有像条和宏块。冗余编码图像是图像的冗余编码表示,它不被使用于解码,除非主编码图像丢失或有讹误。解码的冗余编码图像包含与各个解码的主编码图像基本上相同的图像信息。然而,在解码的冗余编码图像中的样本值不需要正好等于在相应的解码的主编码图像中相同位置的样本值。每个主编码图像的冗余编码图像的数目可以是从0到在编码标准中规定的一个极限值(例如,按照JVT编码标准的127)。冗余编码图像,与各个主编码图像相比较,可以使用不同的参考图像。因此,如果主编码图像的一个参考图像丢失或有讹误以及相应的冗余编码图像的所有参考图像被正确地解码,则从图像质量观点来看,解码冗余编码图像而不解码主编码图像是有利的。
大多数传统的视频编码标准包括“未编码的”或“跳过的”宏块的概念。这样的宏块的解码处理过程由在参考图像中空间上相应的宏块的复制组成。
按照MPEG-4视频的基于对象的编码MPEG-4视频包括任选的基于对象的编码工具。MPEG-4视频对象可以具有任意的形状,而且,对象的形状、尺寸、和位置可以随不同的帧而变化。按照它的一般的表示法,视频对象由三个颜色分量(YUV)和一个阿尔法(α)分量组成。α分量按逐个图像的原则规定对象的形状。二进制对象形成最简单的对象类。它们由二进制α图序列来指示,即,2-D图像,其中每个象素或者是黑色或者是白色。MPEG-4提供用于压缩这些对象的仅仅二进制形状模式。压缩处理过程由用于编码α图序列的二进制形状编码器专门规定。除了表示对象形状的二进制α图序列以外,该表示还包括在对象形状内部的所有象素的颜色。MPEG-4通过使用二进制形状编码器,然后使用一个用于内部纹理编码的、运动补偿的基于离散余弦变换(DCT)的算法来编码这些对象。最后,有可能用灰度级别形状表示纹理化的对象。对于这个对象,α图是具有256个可能级别的灰度级别图像。这个灰度级别α信息被使用来在视频组合处理过程期间规定对象的透明度特性。MPEG-4通过使用用于支持α图的二进制形状编码器和用于编码α图与内部纹理的、运动补偿的基于DCT的算法来编码这些对象。
缓冲流播客户典型地具有能够存储相当大的数据量的接收器缓冲器。初始地,当流播会话被建立时,客户不立即开始回放所述流,而是它典型地缓冲进入的数据达几秒钟。这种缓冲有助于保持连续回放,因为在偶尔增加的传输延时或网络吞吐量下降的情形下,客户可以解码和播放缓冲的数据。否则,没有初始缓冲,客户必须冻结显示、停止解码并等待进入的数据。缓冲对于在任何协议级别上的自动或选择地重发也是必需的。如果图像的任何部分丢失,则重发机制可被使用来重发丢失的数据。如果重发的数据在它被安排的解码或回放时间之前被接收,则丢失被完美地恢复。
编码的图像可以按照它们在解码序列的主观质量方面的重要性被分等。例如,非参考图像,诸如常规的B图像,是主观上最不重要的,因为没有它们也不影响任何其它图像的解码。主观分等也可以基于数据分块(data partition)或像条组来进行。在主观上最重要的编码的像条和数据分块可以比它们的解码次序所指示的更早地发送,而在主观上最不重要的编码的像条和数据分块可以比它们的自然编码次序所指示的更迟地发送。因此,与最不重要的像条和数据分块相比,最重要的像条和数据分块的任何重发的部分更可能在它们被安排的解码或回放时间之前被接收。
冗余图像的识别由于在JVT编码句法中没有图像头标,所以像条头标句法必须提供手段来检测图像边界,让解码器基于图像进行操作。如果遵从JVT编码标准的解码器接收包括主和冗余编码图像的无错误比特流,则解码器必须检测主和冗余编码图像的边界,以及只解码主编码图像,以便完全如标准中要求的那样去重建样本值。而且,如果冗余的图像通过诸如RTP/UDP/IP的无连接信道被输送,则它们的每一个可被封装到一个以上的IP分组。因为UDP的无连接的特性,分组可以以与它们被发送的不同的次序被接收。因此,接收器必须推断哪些编码的像条属于冗余编码图像而哪些属于主编码图像,以及哪些冗余编码图像对应于特定的主编码图像。如果接收器没有做到这一点,则互相重叠的像条可能被不必要地解码。
发明概要图像的冗余编码表示可被使用来提供在易于出错的视频传输中的不同的错误保护。如果没有接收到图像的主编码表示,则可以使用冗余的表示。如果主编码图像的一个参考图像丢失或有讹误,以及相应的冗余编码图像的所有参考图像被正确地解码,则可解码冗余编码图像。图像的不同空间部分的主观重要性可以变化许多次。本发明使得能够发送不覆盖整个图像区域的不完整的冗余图像。因此,本发明使得能够仅仅保护所选择的图像的主观上最重要的部分。这比起早先的标准提高了压缩效率,以及允许在空间上集中不同的错误保护。
在以下的说明中,通过使用基于编码器-解码器的系统来描述本发明,但显然,本发明也可以在其中存储视频信号的系统中被实施。存储的视频信号可以是在编码之前存储的未编码的信号、在编码之后存储的编码的信号或在编码和解码处理过程之后存储的解码的信号。例如,编码器按解码次序产生比特流。文件系统接收音频和/或视频比特流,它们例如按解码的次序被封装并作为文件被存储。另外,编码器和文件系统可以产生元数据,它告知图像的主观重要性,以及NAL单元尤其包含关于子序列的信息。文件可被存储在数据库中,直接回放服务器可以从数据库读出NAL单元和把它们封装到RTP分组中。按照正在使用的任选的元数据和数据连接,直接回放服务器可以修正与解码次序不同的分组的发送次序、去除子序列、决定将发送哪个SEI消息(如果有的话)等等。在接收端,RTP分组被接收并缓冲。典型地,NAL单元首先被重新排序成正确的次序,以及此后,NAL单元被递送到解码器。
某些网络或互联的网络和/或在这些网络中被使用于视频通信的通信协议可被构建,以使得一个子网络是易于出错的,而另一个子网络提供基本上无错误的链路。例如,如果移动终端连接到驻留于公共的基于IP的网络中的流播服务器,则可靠的链路层协议可被使用于无线电链路,而专用移动运营者核心网络可能是过供应(over-provisioned)的,以使得由移动运营者控制的子网络基本上是无错误的。然而,公共的基于IP的网络(例如互联网)提供易于出错的、尽力而为的业务。因此在易于出错的子网络中应当使用对抗传输错误的保护,而在提供基本上无错误连接的子网络中,应用级错误保护措施是无用的。在这样的情形下,让网关部件将易于出错的子网络连接到无错误的子网络是有益的。网关优选地分析从被连接到易于出错的子网络的终端发送到被连接到无错误的子网络的终端的比特流。如果没有错误击中比特流的特定的部分,则网关优选地去除对应于比特流的那个部分的、用于前向错误控制的应用级冗余。这个操作减小了无错误的网络中的业务量,以及节省的业务量然后可被使用于其它用途。
按照本发明的编码方法的主要特征在于,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息。按照本发明的解码方法的主要特征在于,主编码图像是通过使用与被用来形成各个冗余编码图像的图像信息基本上相同的图像信息而形成的,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息;检测在比特流中指示编码的图像信息属于冗余编码图像的参数;使用参数来控制属于冗余编码图像的编码的图像信息的解码,其中冗余编码图像信息对应于被使用来形成各个主编码图像的仅仅一部分图像信息。按照本发明的系统的主要特征在于,编码器包括用于形成主编码图像和主编码图像的冗余编码图像的编码装置,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息;以及解码器包括用于检测在比特流中指示编码的图像信息属于冗余编码图像的参数的检测装置;和用于使用参数来控制属于冗余编码图像的编码的图像信息的解码的控制装置,其中冗余编码图像信息对应于被使用来形成各个主编码图像的仅仅一部分图像信息。按照本发明的编码器的主要特征在于,编码器包括用于形成主编码图像和主编码图像的冗余编码图像的编码装置,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息。按照本发明的解码器的主要特征在于,解码器包括用于检测在比特流中指示编码的图像信息属于冗余编码图像的参数的检测装置;和用于使用参数来控制属于冗余编码图像的编码的图像信息的解码的控制装置,其中冗余编码图像信息对应于被使用来形成各个主编码图像的仅仅一部分图像信息。按照本发明的用于编码的软件程序的主要特征在于,它包括用于编码图像的机器可执行的步骤,包括用于形成主编码图像和主编码图像的冗余编码图像的机器可执行的步骤,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息。按照本发明的用于解码的软件程序的主要特征在于,它包括机器可执行的步骤,用于检测在比特流中指示编码的图像信息属于冗余编码图像的参数;和使用参数来控制属于冗余编码图像的编码的图像信息的解码,其中冗余编码图像信息对应于被使用来形成各个主编码图像的仅仅一部分图像信息。按照本发明的、用于存储包括用于编码图像的机器可执行的步骤的软件程序的存储媒体的主要特征在于,主编码图像和主编码图像的冗余编码图像,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息。按照本发明的发送设备的主要特征在于,它包括用于编码图像的编码器,该编码器包括用于形成主编码图像和主编码图像的冗余编码图像的编码装置,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息。按照本发明的接收设备的主要特征在于,它包括解码器,该解码器包括用于检测在比特流中指示编码的图像信息属于冗余编码图像的参数的检测装置;和用于使用参数来控制属于冗余编码图像的编码的图像信息的解码的控制装置,其中冗余编码图像信息对应于被使用来形成各个主编码图像的仅仅一部分图像信息。按照本发明的比特流的主要特征在于,它包括主编码图像和主编码图像的冗余编码图像,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个冗余编码图像包括对应于各个主编码图像的仅仅一部分图像信息的图像信息。
本发明使得解码器能够检测主和冗余编码图像之间的边界,以及如果主编码图像被正确地解码,则避免冗余编码图像的不必要的解码。
本发明提高了编码系统的可靠性。通过使用本发明,即使在解码器中视频流的某些分组是不可用时,图像的正确的解码次序也可以比现有技术系统更可靠地被确定。
附图描述图1显示递归时间可缩放性方案的例子,图2显示被称为视频冗余编码的方案,其中图像序列以交织的方式划分成两个或多个独立的编码的线程,图3给出潜在地提高压缩效率的预测结构的例子,图4给出可被使用来提高错误复原能力的内部图像延缓方法的例子,图5描述按照本发明的系统的有利的实施例,图6描述按照本发明的编码器的有利的实施例,图7描述按照本发明的解码器的有利的实施例,图8是通常的视频通信系统的框图。
发明详述为了一致性和清晰性,以下与主编码和冗余编码像条有关的定义是为本发明的说明的使用而定义的。
像条数据分割是把像条句法结构的句法单元根据每种句法单元的类型而分割成像条数据分块句法结构的方法。在JVT编码标准中,有三种像条数据分块句法结构像条数据分块A、B、和C。像条数据分块A包含像条头标和像条数据句法结构中除用于编码预测的样本值和解码的样本值之间差值的句法单元外的所有句法单元。像条数据分块B包含以内部宏块类型(I和SI宏块)的用于编码预测的样本值和解码的样本值之间的差值的句法单元。像条数据分块C包含以之间预测的宏块类型(P、SP和B宏块)的用于编码预测的样本值和解码的样本值之间差值的句法单元。
主编码数据分块是属于主编码图像的数据分块。
主编码图像是图像的主编码表示。
主编码像条是属于主编码图像的像条。
冗余编码数据分块是属于冗余编码图像的数据分块。
冗余编码图像是图像的冗余编码表示,它应当只在主编码或解码的图像有讹误时才被使用。解码的冗余图像可能没有覆盖整个图像区域。解码的主图像与任何解码的冗余像条的共同区域之间应当没有显著的差别。冗余编码图像不需要包含主编码图像中的所有宏块。
冗余编码的像条是属于冗余编码图像的像条。
在“未编码的”宏块与没有被包括在冗余图像中的宏块之间有两个主要的差别第一,没有被包括在冗余编码图像中的宏块不被用信号告知,而“未编码的”宏块在比特流中被编码(典型地每个“未编码的”宏块一个比特)。第二,解码器不必要解码没有被包括在冗余图像中的区域。如果任何宏块没有被包括在接收的主编码图像或任何相应的冗余编码图像中,则解码器应当通过使用任何专用的错误隐藏算法来隐藏这些丢失的宏块。与此相反,有用于“未编码的”宏块的特定标准化解码处理过程。
下面将参照图5的系统、图6的编码器1和任选的假想的参考解码器(HRD)5、和图7的解码器2更详细地描述本发明。要被编码的图像可以是例如来自视频源3--例如照相机、视频记录器等等--的视频流的图像。视频流的图像(帧)可被划分成较小的部分,诸如像条。像条可进一步被划分成块。在编码器1中,视频流被编码以减小要经由传输信道4发送的或到存储媒体(未示出)的信息。视频流的图像被输入到编码器1。编码器具有编码缓冲器1.1(图6),用于临时存储要被编码的某些图像。编码器1还包括存储器1.3和处理器1.2,在其中可以应用按照本发明的编码任务。存储器1.3和处理器1.2可以是与发送设备6共用的,或发送设备6可以具有另一个处理器和/或存储器(未示出),用于发送设备6的其它功能。编码器1执行运动估计和/或某些其它任务来压缩视频流。在运动估计时,搜索在要被编码的图像(当前的图像)与以前的和/或以后的图像之间的相似性。如果找到相似性,则比较的图像或它的一部分可被用作要被编码图像的参考图像。在JVT中,图像的显示次序与解码次序不一定是相同的,其中只要被用作参考图像,参考图像就必须被存储在缓冲器(例如,编码缓冲器1.1)中。编码器1还把关于图像的显示次序的信息插入在传输流中。实际上,可以使用定时信息SEI消息或JVT句法之外的时间戳(诸如RTP时间戳)。
如果必要的话,编码的图像被从编码处理过程移到编码的图像缓冲器1.2。编码的图像经由传输信道4从编码器1发送到解码器2。在解码器2中,编码的图像被解码以形成尽可能对应于编码的图像的未压缩的图像。每个解码的图像被缓冲在解码器2的DPB 2.1中,除非它在解码后基本上立即被显示并且不被用作为参考图像。有利地,参考图像缓冲与显示图像缓冲相组合,并且它们使用同一个解码图像缓冲器2.1。这消除了在两个不同的地方存储相同图像的需要,因此降低解码器2的存储器要求。
解码器1还包括存储器2.3和处理器2.2,在其中可以应用按照本发明的解码任务。存储器2.3和处理器2.2可以是与接收设备8共用的,或者接收设备8可以具有另一个处理器和/或存储器(未示出),用于接收设备8的其它功能。
编码现在让我们更仔细地考虑编码-解码处理过程。来自视频源3的图像被输入到编码器1,以及有利地被存储在预编码缓冲器1.1中。存储图像有两个主要原因。第一,在要被编码的图像之后到达的图像是以比特速率控制算法被分析的,以便于在图像的质量上没有显著的变化。第二,图像的编码次序(和解码次序)是与图像的捕获次序不同的。这种安排从压缩效率观点(例如,PBBBP帧序列,其中在另两个B帧之间的B帧是用于该另两个B帧的参考帧)和/或错误复原能力观点(内部图像延缓)来看可以是有效的。
编码处理过程不必在第一图像被输入到编码器后立即开始,而是在一定量的图像在编码缓冲器1.1中可用以后开始。然后,编码器1试图从图像中找出适当的候选者以用作参考帧。编码器1然后执行编码以形成编码的图像。编码的图像可以是例如预测图像(P)、双预测图像(B)、和/或内部编码的图像(I)。内部编码的图像可以不用使用任何其它的图像而被解码,但其它类型的图像在它们可被解码之前需要至少一个参考图像。任何上述的图像类型的图像都可被用作为参考图像。
编码器有利地把两个时间戳附接到图像上解码时间戳(DTS)和输出时间戳(OTS)。解码器可以使用时间戳来确定正确的解码时间和输出(显示)图像的时间。然而,这些时间戳不必发送到解码器,或解码器不使用它们。
编码器1可以形成冗余编码图像或图像的冗余编码的数据分块,以提高错误复原能力。按照本发明,编码器可以形成冗余图像,它们不包含用来解码图像的所有必需的信息而只包含它的某些部分。编码器1也可以形成用于同一个图像的一个以上的不同冗余编码的数据分块,其中不同的冗余编码的数据分块包含来自图像的至少部分不同的区域的信息。最小的冗余编码图像优选地由一个像条组成。像条包含一个或多个宏块。
优选地,编码器1决定哪些图像包含应当被冗余编码的区域。用于选择的准则可以随不同的实施例和不同的情形而变化。例如,编码器1可以检查在接连的图像之间是否有可能的情景改变或在接连的图像之间是否由于某些其它原因有许多改变。相应地,编码器1可以检查在图像的某些部分是否有改变,以确定图像的哪些部分应当被冗余地编码。为了决定这一点,编码器1可以例如检查运动矢量,找出重要的区域和/或对于传输/解码错误特别敏感的区域,以及形成这样的区域的冗余编码的数据分块。
在传输流中应当有某些指示,以指示在流中是否存在冗余像条。指示优选地被插入到每个像条的像条头标和/或图像参数集中。指示的一个有利的实施例使用用于冗余像条的两个句法单元第一句法单元是位于图像参数集中的“redundant_slice_flag”,以及另一个句法单元是位于像条头标中的“redundant_pic_cnt”。“redundant_pic_cnt”是任选的,以及它只在参考的图像参数集中的“redundant_slice_flag”被设置为1时才被包括在像条头标中。
两个句法单元的语义为如下redundant_slice_flag指示在参考图像参数集的所有的像条头标中redundant_pic_cnt参数的存在。如果对于像条所有的参数都相等,则图像参数集对于一个以上的像条可以是共同的。如果redundant_slice_flag的值为真,则参考这个参数集的那些像条的像条头标包含第二句法单元(redundant_pic_cnt)。
redundant_pic_cnt的值对于属于图像内容的主要表示的编码像条和数据分块是0。对于包含图像内容的冗余编码表示的编码的像条和数据分块,redundant_pic_cnt大于0。在图像的解码的主要表示与任何解码的冗余像条的共同区域之间应当没有显著的差别。具有相同的redundant_pic_cnt值的冗余像条和数据分块属于同一个冗余图像。具有相同的redundant_pic_cnt的解码的像条将不重叠。具有大于0的redundant_pic_cnt的解码的像条可能不覆盖整个图像区域。图像可以具有被称为nal_storage_idc的参数。如果在主图像中nal_storage_idc的值是0,则在相应的冗余图像中nal_storage_idc的值将是0。如果在主图像中的nal_storage_idc的值是非0,则在相应的冗余图像中的nal_storage_idc的值将是非0。
上述的句法设计当数据分块没有应用于冗余像条时行得通。然而,当数据分块被使用时,即每个冗余像条具有三个数据分块DPA,DPB和DPC时,需要另一种机制来用信号告知解码器哪个冗余像条是所讨论的。为了达到这一点,redundant_pic_cnt不单被包括在DPA的像条头标中,而且也被包括在DPB和DPC的像条头标中。如果像条数据分割正在使用,则像条数据分块B和C必须与各个像条数据分块A相关联,以使得能够解码像条。像条数据分块A包括slice_id句法单元,其值唯一地识别编码图像内的像条。如果redundant_pic_cnt句法单元也存在于被包括在像条数据分块A的像条头标中(它是以在有关的图像参数集中“redundant_slice_flag”的值为条件的),则像条数据分块B和C包括它。redundant_pic_cnt句法单元的值被使用来把像条数据分块B和C与特定的主要或冗余编码图像相关联。除了redundant_pic_cnt以外,像条数据分块B和C还包括slice_id句法单元,它被使用来把数据分块与同一个编码图像的各个数据分块A相关联。
传输编码图像的传输和/或存储(和任选的虚拟解码)可以在第一编码图像准备好后立即开始。这个图像不一定是在解码器输出次序中的第一图像,因为解码次序和输出次序可以是不同的。
当视频流的第一图像被编码时,可以开始传输。编码图像任选地被存储到编码图像缓冲器1.2。传输也可以在稍后阶段,例如,在视频流的某个部分被编码后开始。
在某些传输系统中,发送的冗余图像的数目尤其取决于网络条件,诸如业务量、在无线电链路中的误比特率等等。换句话说,不一定发送所有的冗余图像。
解码接着,将描述接收器8的操作。接收器8收集属于图像的所有的分组,把它们排成合理的次序。次序的严格性取决于所使用的简档。接收的分组有利地被存储在接收缓冲器9.1(预解码缓冲器)中。接收器8丢弃不能用的任何数据,以及把其余部分传送到解码器2。
如果图像的主要表示或它的一部分丢失,或存在解码错误,则解码器可以使用某些冗余编码的像条来解码图像。解码器2可以把像条id,或识别所讨论的图像的某些其它信息发送到编码器1。当解码器2使得所有必需的像条可用时,它可以开始解码图像。可能发生的是,不管冗余编码数据分块的使用如何,某些像条在解码器2中可能是不可用的。在这种情形下,解码器2可以尝试例如某些错误恢复方法来消除错误对图像质量的影响,或解码器2可以丢弃错误的图像和使用某个以前的图像来代替。
本发明可被应用于许多种系统和设备。包括编码器1和任选地,HRD5的发送设备6有利地还包括发送器7,用来把编码的图像发送到传输信道4。接收设备8包括用来接收编码图像的接收器9、解码器2、和其上可显示解码的图像的显示器10。传输信道可以是例如地面线路通信信道和/或无线通信信道。发送设备和接收设备还包括一个或多个处理器1.2,2.2,它们可以执行用于控制按照本发明的视频流的编码/解码处理过程所需要的步骤。所以,按照本发明的方法可以主要被实施为处理器的机器可执行的步骤。图像的缓冲可以在设备的存储器1.3,2.3中实施。编码器的程序代码1.4可被存储在存储器1.3中。相应地,解码器的程序代码2.4可被存储在存储器2.3中。
权利要求
1.一种用于编码图像的方法,其中-形成主编码图像和主编码图像的冗余编码图像,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及-至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息。
2.按照权利要求1所述的方法,还包括用于把至少所述主编码图像发送到解码器的发送步骤。
3.按照权利要求1所述的方法,其中所述要被编码的图像包括像条,其中所述冗余编码图像包含所述主编码图像的部分像条。
4.按照权利要求1所述的方法,其中所述只包含相应的主编码图像的一部分的冗余编码图像被形成为冗余编码数据部分。
5.按照权利要求4所述的方法,其中为所述图像形成至少一个参数集,以及对于每个像条形成像条头标,其中有关传输流是否包含冗余编码数据分块的像条的指示被插入到所述参数集中,以及redundant_pic_cnt参数被插入到所述冗余编码数据分块的每个像条头标中。
6.一种用于从比特流解码图像的方法,其中在所述比特流中包含主编码图像和主编码图像的冗余编码图像,所述主编码图像已通过使用与被用来形成相应的冗余编码图像的图像信息基本上相同的图像信息而形成,以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息;在所述比特流中检测指示已编码图像信息属于冗余编码图像的参数;使用该参数来控制属于冗余编码图像的已编码图像信息的解码,其中所述冗余编码图像信息对应于被用来形成各个主编码图像的仅仅一部分图像信息。
7.按照权利要求6所述的方法,还包括用于接收至少所述主编码图像的接收步骤。
8.按照权利要求7所述的方法,还包括接收所述冗余编码图像。
9.按照权利要求8所述的方法,包括确定主编码图像是否包含不能被解码的区域,其中该方法包括检查冗余编码图像是否包含在不能被解码的主编码图像区域上的可解码的信息,以及解码根据该检查找到的冗余编码图像。
10.按照权利要求9所述的方法,其中对于所述图像形成至少一个参数集,以及对于每个像条形成像条头标,其中有关传输流是否包含冗余编码数据分块的像条的指示被插入到该参数集中,以及redundant_pic_cnt参数被插入到冗余编码数据分块的每个像条头标中,其中所述指示和redundant_pic_cnt参数被使用来区分主编码图像和冗余编码图像。
11.一种用于编码图像的编码器,包括用于形成主编码图像和主编码图像的冗余编码图像的编码装置,每个主编码图像包括与相应的冗余编码图像基本上相同的图像信息,以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息。
12.一种用于从比特流解码图像的解码器,所述比特流包括-主编码图像和主编码图像的冗余编码图像,所述主编码图像已通过使用与被用来形成相应的冗余编码图像的图像信息基本上相同的图像信息而形成,-以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息;其中所述解码器包括-用于在所述比特流中检测指示已编码图像信息属于冗余编码图像的参数的检测装置;以及-用于使用所述参数来控制属于冗余编码图像的已编码图像信息的解码的控制装置,其中所述冗余编码图像信息对应于被用来形成各个主编码图像的仅仅一部分图像信息。
13.一种包括用于编码图像的编码器的发送设备,包括用于形成主编码图像和主编码图像的冗余编码图像的编码装置,每个主编码图像包括与相应的冗余编码图像基本上相同的图像信息,以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息。
14.按照权利要求13所述的发送设备,还包括用于把至少所述主编码图像发送到解码器的发送器。
15.按照权利要求13所述的发送设备,其中要被编码的图像包括像条,其中所述冗余编码图像包含主编码图像的部分像条。
16.按照权利要求13所述的发送设备,包括用于形成用于图像的至少一个参数集和用于每个像条的像条头标的装置,用于把有关传输流是否包含冗余编码数据分块的像条的指示插入到所述参数集和把redundant_pic_cnt参数插入到冗余编码数据分块的每个像条头标的装置。
17.一种包括用于从比特流解码图像的解码器的接收设备,所述比特流包括-主编码图像和主编码图像的冗余编码图像,所述主编码图像已通过使用与被用来形成相应的冗余编码图像的图像信息基本上相同的图像信息而形成,-以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息;其中所述解码器包括-用于在所述比特流中检测指示已编码图像信息属于冗余编码图像的参数的检测装置;以及-用于使用所述参数来控制属于冗余编码图像的已编码图像信息的解码的控制装置,其中所述冗余编码图像信息对应于被用来形成相应的主编码图像的仅仅一部分图像信息。
18.一种系统,包括-用于编码图像的编码器,包括用于形成主编码图像和主编码图像的冗余编码图像的编码装置,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息,以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息;-用于把至少所述主编码图像发送到解码器的发送器;所述解码器包括-用于在所述比特流中检测指示已编码图像信息属于冗余编码图像的参数的检测装置;以及-用于使用所述参数来控制属于冗余编码图像的已编码图像信息的解码的控制装置,其中所述冗余编码图像信息对应于被用来形成各个主编码图像的仅仅一部分图像信息。
19.一种软件程序,包括用于编码图像的机器可执行的步骤,包括机器可执行的步骤用于形成主编码图像和主编码图像的冗余编码图像,每个主编码图像包括与相应的冗余编码图像基本上相同的图像信息,以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息。
20.一种软件程序,包括用于从比特流解码图像的机器可执行的步骤,包括-主编码图像和主编码图像的冗余编码图像被包含在所述比特流中,所述主编码图像已通过使用与被用来形成相应的冗余编码图像的图像信息基本上相同的图像信息而形成,-以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息;其中所述软件程序包括机器可执行的步骤用于-在所述比特流中检测指示已编码图像信息属于冗余编码图像的参数;以及-使用所述参数来控制属于冗余编码图像的已编码图像信息的解码,其中所述冗余编码图像信息对应于被用来形成相应的主编码图像的仅仅一部分图像信息。
21.一种用于存储软件程序的存储媒体,所述软件程序包括用于编码图像的机器可执行的步骤,包括机器可执行的步骤用于形成主编码图像和主编码图像的冗余编码图像,每个主编码图像包括与相应的冗余编码图像基本上相同的图像信息,以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息。
22.一种用于存储软件程序的存储媒体,所述软件程序包括用于从比特流解码图像的机器可执行的步骤,包括-主编码图像和主编码图像的冗余编码图像被包含在所述比特流中,所述主编码图像已通过使用与被用来形成相应的冗余编码图像的图像信息基本上相同的图像信息而被形成,-以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息;其中所述软件程序包括机器可执行的步骤用于-在所述比特流中检测指示已编码图像信息属于冗余编码图像的参数;以及-使用所述参数来控制属于冗余编码图像的已编码图像信息的解码,其中所述冗余编码图像信息对应于被用来形成相应的主编码图像的仅仅一部分图像信息。
23.一种比特流,包括主编码图像和主编码图像的冗余编码图像,每个主编码图像包括与相应的冗余编码图像基本上相同的图像信息,以及至少一个所述冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息。
全文摘要
本发明涉及用于编码图像的方法,其中形成主编码图像和主编码图像的冗余编码图像,每个主编码图像包括与各个冗余编码图像基本上相同的图像信息。至少一个冗余编码图像包括对应于相应的主编码图像的仅仅一部分图像信息的图像信息。本发明还涉及系统、编码器、解码器、发送设备、接收设备、软件程序、存储媒体和比特流。
文档编号H04N7/26GK1781314SQ200480011625
公开日2006年5月31日 申请日期2004年4月29日 优先权日2003年4月30日
发明者M·汉努克赛拉 申请人:诺基亚有限公司