一种视频编码和译码的方法及设备的制作方法

文档序号:7964704阅读:210来源:国知局
专利名称:一种视频编码和译码的方法及设备的制作方法
本申请是申请号为200510005721.2的专利申请的分案申请。
本发明涉及视频编码。
移动电信中当前的目标之一是提高数据传输的速度,以便能够通过无线网提供多媒体业务。多媒体的一个关键部分是数字视频。数字视频比起传统的模拟系统给出非常多的优点,支持诸如视频技术和多媒体应用那样的业务。然而,当与模拟系统相比较时,数字视频的关键问题是对于通信和贮存资源的要求。例如,为了发送广播质量的视频,需要约160Mbps的带宽,这与对于可比较的质量的模拟视频的约5MHz的带宽成为鲜明对照。因此,为了能够使用数字视频,数字信号需要减小数据量。
视频传输包括代表活动图象的连续的数据业务。众所周知,传送图象所需要的数据量与许多其它类型的媒体相比较是很高的,至今为止低比特速率终端的视频的使用一直是可忽略的。然而,在低比特速率视频压缩领域中取得了重大的进展。可以在大约每秒20千比特的比特速率下得到可接受的视频质量。
由于这种对比特速率的逐渐降低,预期视频很快成为提供给有限带宽网络的可行的业务,诸如公共交换电话网(PSTN)和移动电信网。在使用固定网络的视频电话应用项中,错误典型地是通过重新发送数据而被克服的。然而,移动电话比起PSTN趋向于更高的错误率,以及具有较长的来回路程延时。这些较长的延时使得对于实时移动视频电话应用项来说使用重新发送是不实际的。重新发送在高的错误率情形下也是不经济的。
视频序列包含一系列静止图象或帧。数据减小是通过使用压缩技术去除冗余的数据而仍旧保持足够的信息以允许原先的图象以可接受的质量被重现而达到的。在视频信号中有两种主要类型的冗余度空间的和时间的。对于图象的编码,只利用空间冗余度的技术被称为帧内或I帧(即,它们分开地处理每个帧),而利用时间冗余度的技术被称为帧间或P帧(即,它们利用帧之间的相同性)。后者也总是利用空间冗余度,这种利用例如通过产生用来描述在当前的和先前的图象的相同区域之间的运动(位移)的运动补偿数据来实现。在帧间的情形下,预测的(运动补偿的)图象很难足够精确,所以空间压缩的预测错误图象也是与每个帧间相关联的。
然而,只减小序列的冗余度,通常不能达到足够的压缩。因此,视频编码器试图降低视频序列中主观上最不重要的那些部分的质量。另外,编码的比特流的冗余度是借助于对压缩的参量和系数进行有效的无损编码而被减小的。主要的技术是使用可变长度编码,其中每个数值通过使用独特的码字来编码。最短的码字被分配给统计上最经常出现的那些值。
已经开发了几种视频编码方法。这些方法包括运行长度编码、有条件的再补充、变换编码、Huffman(霍夫曼)编码、和差分相位码调制(DPCM)。其中有许多被利用在关键的标准中,诸如ITU-T建议JPEG、MPEG-1和MPEG-2、以及H.261/H.263。JPEG规定用于静止图象的压缩数据流的形式;MPEG/MPEG2是用于活动图象的压缩;H.261/H.263主要被规定用于采用低的比特速率通信链路(大约几十kbit/s)的视频电话应用项。当前的视频电话系统主要被设计使用于PSTN或分组网,以及遵从ITU-T建议H.234(它覆盖低比特速率的多媒体通信)、H.245(它覆盖传输协议)、H.233(它涉及复接)、和H.323(它覆盖在传统的共享媒体的局域网上的视频会议)。第一个移动视频电话将是基于H.324的。
压缩的视频容易遭受传输错误的破坏,这主要由于两个原因。第一,由于利用时间预测差分编码(帧间),错误在空间和时间上被传播。实际上,这意味着,一旦出现错误,它就在相对较长的时间内对于人的眼睛是很容易看到的。低的比特速率下的传输是特别受影响的,这种情况下只有几个帧间编码帧(帧间编码帧的传输将停止时间错误的传播)。第二,使用可变长度编码会增加受错误影响的程度。当误码改变码字时,译码器将失去码字同步,而且也不能正确地译码以后的无错误的码字(包括几个比特)直至下一个同步码(或开始)为止。同步码是一种不能从其它码字的任何合法组合来产生的比特图案,以及这样的代码在一些时间间隔内被加到比特流,以便使得能够重新得到同步。
在压缩的视频比特流中的每个比特对于解压缩的图象不具有相等的重要性。某些比特属于规定必不可少的信息的段,诸如图象类型(例如,帧内的或帧间的)、量化器数值和被使用的可任选的编码模式。在H.263中,最重要的信息被集中在图象标题中。在图象标题中的传输错误典型地造成用于规定图象内容的随后的比特的总的错误解译。由于利用时间预测差分编码(帧间),错误在空间上和时间上被传播。因此,当译码器检测被破坏的图象标题时,典型的方法是冻结屏幕上的先前的图象、发送内部图象请求给发送终端、以及等待请求的内部的帧。这造成接收的视频中令人讨厌的暂停。
传输错误具有不同的性质,这取决于基础网络。在分组交换的网络中,传输错误典型地是分组丢失(由于网络单元中的拥塞)。在电路交换的网络中,传输错误典型地是比特错误,其中“1”被破坏成“0”,或反之亦然,以及在无线通信网络中,错误可能在突发中出现,使得情形甚至更困难。
为了减轻由传输错误引入的图象中的恶化,可以使用重新发送(如上所述),可以应用检错和/或纠错方法,和/或可以掩盖由接收的破坏的数据造成的影响。在固定网络中,重新发送提供适当的方式来防止视频数据流出错,因为误码率(BER)典型地是在10-6的范围。然而,与低的比特速率无线传输有关的、大的路程来回延时以及中等的或高的误码率(例如,10-4到10-3)使得使用重新发送是不实际的,特别是对于实时无线视频电话应用项。检错和纠错方法在必须被发送的数据和所需要的存储器/处理能力方面,通常需要大的附加开销。因此,对于低的比特速率应用项,错误掩盖可被认为是用来防止和修复图象传输错误的最好的方法。视频错误掩盖方法典型地可应用于在分组丢失和比特破坏时出现的传输错误。
H.263是对于低比特速率(它通常是指低于64kbps的数据速率)通信的视频编码的ITU-T建议。该建议规定比特流句法和比特流的译码。当前,有两种H.263的版本。版本1包含核心算法和四个可任选的编码模式。H.263版本2是版本1的扩展,提供12个新的可协商的编码模式。
图象按亮度(Y)和两个色差(色度)分量(CB和CR)被编码。色度图象以亮度图象的分辨率的一半沿着两个坐标轴被采样。图象数据是基于逐块的原则被编码的,每个块代表亮度或色度的8×8象素。
每个编码的图象以及相应的编码的比特流被安排在带有四个层的分级结构中,这四层是块层、宏块层、图象段层和图象层。图象段层可以被安排为一个块组(GOB)或一个分片。
块层数据包含均匀地量化的离散余弦变换系数,它们以锯齿形状的次序被扫描、用运行长度编码器进行处理、和以可变长度码被编码。
每个宏块涉及16×16的亮度象素以及空间上相应的8×8的色度分量。换句话说,宏块包含四个8×8亮度块和两个空间上相应的8×8的色差块。每个内部的宏块与包括运动矢量的运动补偿数据有关,运动矢量规定最接近地相似于内部宏块的象素的、相应的区域在参考帧中的位置。内部宏块数据包括对于宏块的象素的编码的预测错误数据。
通常,每个图象被分成多个块组(GOBs)。每个块组(GOB)典型地包括一排宏块。每个GOB的数据包含可任选的GOB标题,后面接着是在GOB内的宏块的数据。
如果使用可任选的分片结构模式,则每个图象被分成片而不是GOB。有关分片包含多个按扫描次序的接连的宏块。每个分片的数据包含分片标题,后面接着是分片的宏块的数据。
图象层数据包含影响整个图象面积和图象数据的译码的参量。编码的参量数据被安排在所谓的图象标题中。
图象和GOB(或分片)标题以同步码来开头。没有其它的码字或码字的合法组合可以形成与同步码相同的比特图案。因此,同步码可被使用于比特流检错和用于发生比特错误后的重新同步。被加到比特流上的同步码越多,则系统对于抵抗错误来说就越坚固。
大多数已知的错误掩盖方法是基于空间和时间的内插方案的。空间内插被使用于内部的帧和内部的帧的已编码的区域之间。空间内插是指丢失的区域从空间相邻的区域进行内插。这可以通过使用边界象素的距离加权平均来进行。
使用时间内插的错误掩盖更经常地被使用于低比特速率的视频编码,这是因为帧间的帧的数目通常是相当少的。一个很基本的时间内插方案从先前的帧的同一个位置复制丢失的区域,即,它把丢失的块当作为“未编码的”块处理。在更先进的方案中,通过使用空间上相邻的块的运动矢量的中值或平均值来进行运动补偿。已经提出一些建议使用边界象素匹配来找出丢失的块的最好的运动矢量。
在低的分辨率和低的比特速率的情况下,在空间相邻的块之间的相关性常常是相当低的。因此,基于空间相邻的象素数据的内插运动矢量可能与原先的数值相差很远。这意味着,单向掩盖方案常常无法重新构建原先的块。而且,如果只有运动矢量被使用于掩盖而不尝试修复预测的错误块的话,则图象会为模糊的,因为大量细节将丢失。实际上,通过使用当前的掩盖方案,错误或不正确地掩盖的块在相当长的时间内是能看到的。
术语编码译码器是指进行编码和译码的能力。控制视频编码译码器中的编码的算法的视频编码参量通常是根据它们被设计用以运行的环境而被预先选择的。这对于在易于错误的信道上的传输是特别有利的。在这样的条件下,编码参量被选择成试图使得传输错误对图象质量的影响最小化。在传输时出现错误的场合下,结果所得到的译码的视频通常产生附加的块、令人烦恼的绿色和粉红色方块、时间的不平稳、和有时是方格状的图案。
在现有的系统中,在编码算法中典型地预先设置的两个参量是内部更新的信息量和起始码的频率。在PSTN网络中,视频编码译码器从一个全部帧内的帧开始编码。帧内的图象不用参考其它的图象而被编码,这意味着它们包含对于它们由译码器进行重新构建所需要的所有的信息,为此,它们是用于访问视频序列的基本输入点。因为帧内帧的信息内容很重要,压缩率相对较低,所以一个全帧内的帧需要很大数目的数据比特来规定图象。结果,通过低的带宽信道的全部帧内的帧的传输,即使使用小的缓存来使延时减小到最小,仍会花费很多时间。这通常导致译码器把先前的图象冻结在屏幕上一段时间,以便实际上允许获取以后的图象。因此,作为替换的方法,在接连的图象中,部分图象在帧内模式下被更新(或刷新),而不是立即更新整个图象。所以,图象被称为是帧内刷新的。典型地,这是在16×16象素的逐个的宏块的基础上发生的。如果宏块被刷新的速率很慢,则图象上的传输错误产物是可以在很长的时间内觉察的,并且只有在错误的宏块被内部刷新时才消失。在易于发生错误的网络中,因此必须提高每个帧中的内部刷新宏块的数目,或全部帧内的帧被发送的速率。
被使用来减小传输错误的影响的另一个方法是减小受影响的面积的大小。因为编码的比特流包含可变长度编码(VLC)码字,在大多数情况下在比特流中的错误会使得译码器失去与VLC码字的同步。译码器只有在接收到起始码以后才继续正确地译码。典型地,起始码在编码的图象帧的开始处被找到;然而,大多数视频编码标准也允许起始码被插入在图象的任何地方,例如在宏块的每行的开始处,或甚至更经常地被插入。因此,为了减小受传输错误影响的面积的大小,可以把起始码引入到图象中最经常的位置。这些起始码的密度是在由于增加的起始码数目造成的降低的图象质量与受传输错误影响的面积的大小之间的折衷。在易于发生错误的环境下,牺牲某些视觉图象质量以便减小由传输错误影响的图象面积是有益的。
当前的总的方案是把内部刷新信息和起始码参量预先编程到用于根据预期的传输错误水平来控制视频编码器的算法中。内部刷新的数据和起始码对于缓和可预测的传输错误的影响是相当有效的,但这些方法具有一定的缺点。在原理上,这些缺点是由于实际的传输错误不总是可预测的,以及在预测的传输错误与实际的传输错误之间有很大的容限的情形下,内部的刷新与起始码参量将与对于这些编码参量所需要的水平不一致。例如,如果传输错误小于预期的,则内部刷新数据的水平或起始码重复的水平将超过所需要的,以及这种超过因此将是冗余的。另一方面,如果传输错误比预期的坏得多,则内部刷新和起始码信息将是不够的,以及在译码的图象中在时间和空间上散布得太宽,结果导致很差的图象质量。
在已知的H.324多媒体终端中,有可能通过H.245控制协议从接收译码器发送各种命令到发送编码器。一个命令是VideoFastUpdatePicture(视频快速更新图象),译码器请求编码器尽早进入快速更新模式以及更新整个图象。协议并不规定编码器如何实行更新。协议也规定VideoFastUpdateGOB(视频快速更新GOB)命令,它请求编码器尽早进入快速更新模式以及更新整个GOB;以及还有VideoFastUpdateMB(视频快速更新MB)命令,它请求编码器尽早进入快速更新模式以及更新整个宏块。因此,译码器可识别要被更新的图象、GOB、或宏块。
在基本实施方案中,遵从H.324的多媒体终端每次将发送VideoFastUpdatePicture(视频快速更新图象)命令,以及使得错误能被检测。同样地,对于每个被破坏的GOB,发送VideoFastUpdateGOB(视频快速更新GOB)命令。
按照H.245,请求的终端需要来自编码器的、对于每个发送的消息的应答,以及如果应答未被及时发送,则译码器将再次发送消息。这意味着,由于重复的命令而使得控制信道变成为非常地堵塞。
在H.263附录1中,引入所谓的错误跟踪的反馈机制,其中H.245协议被使用来发送关于一帧中的哪些宏块在接收时已被破坏的指示。视频编码器跟踪在过去的Z帧的中预测的错误。根据H.245指示和预测错误计数器,视频编码器可以判定它将在内部模式时更新哪些宏块。
第三种已知的反馈视频传输系统在H.263附录N中被规定。这被称为参考图象选择模式。它规定视频译码器用以指示哪些图象段(GOB或分片)被破坏的方式,并且根据这个信息,视频译码器可以通过使用较老的帧而不是最近的帧来编码破坏的部分。译码器对于每个破坏的图象段发送否定的应答(NACK)。因此如果这个图象被破坏,则对于每个分段的NACK都将被破坏。替换地,译码器可以发送肯定的反馈,即,哪些分段未破坏地被接收,以及编码器只能将那些未破坏的区域用于预测。
按照本发明的第一方面,提供了视频译码方法,包括由视频译码器接收已编码的视频数据,译码所述视频数据以形成代表视频序列的接连的图象的译码的视频数据,确定译码的视频数据是否包含错误,以及当确定存在错误时,发送一个消息给发送视频编码器,以便请求至少更新包含该错误的视频数据的那个部分,其中所述更新消息只在自从对于视频数据的一个相应部分的以前的更新消息被发送以来经历了预定的时间间隔时,才被发送。
更新消息可以请求更新视频序列的整个图象。另外、或替换地,更新消息可以请求更新视频序列的图象的一个分段。
优选地,所述预定时间间隔正比于视频译码器与视频编码器之间的往返路径延时。有利地,该预定的时间间隔是往返路径延时的两倍。
按照本发明的第二方面,确定视频是否包含错误的步骤包括确定当与视频图象的一个相应的区域的先前的图象数据相比较时的视频数据中的改变量。
按照本发明的第三方面,确定视频是否包含错误的步骤包括确定在先前的图象中的运动量超过预定的门限值。
按照本发明的第四方面,提供了视频译码的方法,包括由视频译码器接收编码的视频数据,译码所述视频数据以形成代表视频序列的接连的图象的译码的视频数据,确定译码的视频数据是否包含错误,以及当确定存在错误时,发送一个消息给发送视频编码器,以便请求至少更新包含该错误的视频数据的那个部分,其中所述确定译码的视频是否包含错误的步骤包括确定对于第一图象的一个区域当与先前的图象的一个相应的区域的视频数据相比较时的视频数据中的改变量,如果该改变量超过预定的门限值,则发送更新消息。
按照本发明的再一个方面,提供了视频译码的方法,包括由视频译码器接收编码的视频数据,译码所述视频数据以形成代表视频序列的接连的图象的译码的视频数据,确定译码的视频数据是否包含错误,以及如果是的话,则掩盖包含错误的图象的区域,以及当确定存在错误时产生一个消息给发送视频编码器,以便请求至少更新包含该错误的视频数据的那个部分,其中如果被掩盖的图象的区域的数目小于预定的门限值,则发送更新消息。
按照本发明的再一个方面,提供了视频译码方法,包括由视频译码器接收编码的视频数据,译码所述视频数据以形成代表视频序列的接连的图象的译码的视频数据,确定译码的视频数据是否包含错误,以及如果是的话,则掩盖包含该错误的图象的区域,以及当确定存在错误以使得图象不能被译码时,把图象的所有的部分标记为被掩盖的,以及译码下一个图象。
本发明也涉及编码视频信号的方法,包括接收要被编码的视频信号;编码视频信号以形成编码的视频数据;以及发送编码的视频数据到远端视频译码器,其中所述编码对于从远端视频译码器接收的更新的控制信号作出响应,以渐进的方式在多个图象上更新所请求的编码视频数据。
优选地,更新是在逐个宏块的基础上实行的,更新的宏块是在视频信号的顺序的图象上被更新的。
按照本发明的再一个方面,视频译码设备包括用于接收编码的视频数据的装置,用于译码所述视频数据以形成译码的视频数据的装置;用于确定译码的视频数据是否包含错误的装置;以及一种这样的发送装置,它用于发送一个消息给发送视频编码器,以便请求至少更新包含所述错误的视频数据的那个部分,其中设备被安排成只在自从对于视频数据的一个相应部分的以前的更新消息被发送以来已经经历了预定的时间间隔,才发送更新消息。
优选地,所述用于确定译码的视频数据是否包含错误的装置包括一种这样的装置,该装置用于确定当与视频图象的相应的区域的先前的图象数据相比较时的视频数据中的改变量,如果该改变量超过预定的门限值,则发送更新消息。
有利地,如果在先前的图象中的运动量超过预定的门限值,则产生更新消息。
按照本发明的再一个方面,视频信号编码设备包括用于接收要被编码的视频信号的装置;用于编码视频信号以形成编码的视频数据的装置;以及用于发送编码的视频数据到远端视频译码器的装置,其中编码装置对于从远端视频译码器接收的更新的控制信号作出响应,以渐进的方式在多个图象上更新所请求的编码视频数据。
优选地,更新是在逐个宏块的基础上实行的,更新的宏块是在视频信号的顺序图象上被更新的。
本发明也扩展到移动无线设备。
现在将参照附图,仅仅通过例子描述本发明,其中

图1显示多媒体移动通信系统;图2显示多媒体终端的多媒体部件的例子;图3显示视频编码译码器的例子;图4是显示按照本发明的第一实施例的视频译码器的运行的流程图;图5是显示按照本发明的视频译码器在图象级别上的运行的流程图;图6是显示按照本发明的视频译码器在GOB级别上的运行的流程图;图7是显示由按照本发明的视频译码器实行的宏块译码算法的流程图;图8是显示按照本发明的视频译码器的另一个实施例在图象级别上的运行的流程图;图9是显示按照本发明的视频译码器在图象级别上的运行的流程图;以及图10是显示按照本发明的视频译码器在GOB级别上的运行的流程图。
下面参照H.324建议进一步描述本发明。然而,并不打算把本发明的应用限制于这一个范围以及它的有关的协议。
图1显示典型的多媒体移动通信系统。第一多媒体移动终端1通过到移动通信网4的无线链路3与第二多媒体移动终端2通信。在两个终端1,2之间发送控制数据以及多媒体数据。
图2显示遵从H.324的终端1的典型的多媒体部件。该终端包括遵从H.263的视频编码译码器10、遵从G.723的音频编码译码器20、遵从T.120的数据协议管理器30、遵从H.245的控制管理器40、遵从H.233的复接器/分接器50、和调制解调器60(如果需要的话)。视频编码译码器10接收来自视频捕获装置(未示出,例如摄影机)的信号以便用于编码以及接收来自远端终端2的信号以便由终端1译码和在显示器70上显示。音频编码译码器20从终端1的话筒(未示出)接收信号以便用于编码,以及接收来自远端终端2的信号以便译码和由终端1的扬声器(未示出)进行重现。
控制管理器40控制视频编码译码器10、音频编码译码器20和数据协议管理器30的运行。然而,由于本发明关心视频编码译码器10的运行,所以对音频编码译码器20和协议管理器30不作进一步讨论。
图3显示按照本发明的视频编码译码器10的例子。该视频编码译码器包括编码器部件100和译码器部件200。编码器部件100包括输入端101,用于接收来自终端1的摄影机或视频源(未示出)的视频信号。开关102在编码的帧内-模式与帧间-模式之间切换该编码器。
在帧内-模式,来自输入端101的视频信号101由DCT变换器103变换成DCT系数。DCT系数然后被传送到量化器104,后者用于量化这些系数。开关102和量化器104被视频编码译码器的编码控制管理器105控制,它也借助于H.245控制管理器40而接收来自接收终端2的反馈控制。
在帧间-模式,交换机102用来从减法器106接受在来自输入端101的信号与被存储在图象存储器107中的先前的图象之间的差值。从减法器106输出的差值数据代表在当前图象与被存储在图象存储器107中的先前的图象之间的预测错误。在图象存储器107中的数据是通过把由量化器输出的数据传送到逆量化器108以及把逆DCT变换109应用到逆量化的数据而产生的。结果所得的数据由加法器110加到图象存储器107的内容中去。运动估值器111可以以惯用的方式从图象存储器107产生运动补偿数据。
视频编码译码器输出已量化的DCT系数112a、量化指数112b(即,所使用的量化的细节)、表示所执行的编码的模式(I或P/B)的帧间/帧内标志112c、表示正在被编码的帧的数目的发送标志112d、以及用于被编码的图象的运动矢量112e。这些参量连同其它多媒体信号被复接器50复接在一起。
视频编码译码器10的译码器部件200包括逆量化器120、逆DCT变换器121、运动补偿器122、图象存储器123和控制器124。控制器124接收由分接器50从编码的多媒体数据流中分接的视频编码译码器控制信号。实际上,编码器的控制器105和译码器的控制器124可以是同一个处理器。
考虑终端1从终端2接收编码的视频数据,现在将首先参照它的译码作用来描述视频编码译码器10的运行。终端1接收来自发送终端2的多媒体信号。分接器50分接多媒体信号,以及把视频数据传送到视频编码译码器10和把H245控制数据传送到H.245控制器40。视频编码译码器的译码器200通过逆量化、逆DCT变换、和运动补偿已编码的视频数据,从而译码所述已编码的视频数据。译码的视频数据然后被输出,用于在接收终端1的显示器70上重现。译码器的控制器124检验接收数据的整体性,如果检测到错误,则它可请求以下面描述的方式更新来自发送终端2的编码器的受破坏的数据。
视频数据中的错误可以在图象级别、GOB级别或宏块级别上出现。错误检验可以在每个级别上实行。
在图象级别上的错误意味着,图象不能被译码以及完全丢失或它被破坏成使得它实际上是丢失的。在图象级别上的错误可以以一个或多个方式被检测。图4显示说明按照本发明的第一实施例的、产生更新消息的方法的流程图。首先(300),译码器开始译码接收的图象。如果图象的标题被破坏(302),或被找到的是一个不同的参量(例如,当编码类型是帧内时设置一个内部的标记),则认为图象被丢失。
替换地,错误可以通过确定图象中所使用的编码的类型而被检测,并且如果编码类型是帧内的以及多于Q个的分段被确定为被破坏的(304)则认为图象被丢失。分段可包括GOB、分片或宏块。例如,在QCIF图象格式中每个图象有9个GOB。所以,可以设置一个准则,如果说图象的大于四个GOB被破坏,认为图象是被丢失的。GOB是否被破坏,可以由CRC确定。
替换地,如果在多于F个的图象上出现错误的时间传播(例如,在设置的时间X内一个MB没有被更新)以及掩盖的区域变成为大于某个门限值而不被更新(306),则认为图象是被丢失的。为了达到这一点,在译码期间译码器跟踪图象的宏块的状态(例如,掩盖/帧间/帧内),以及如果大于预定的数目的宏块被标记为掩盖的,则认为图象是被丢失的。
替换地,如果当前的图象N被认为是被丢失的,则控制器124确定(307)在当前的帧(N-1)之前的帧究竟是包含许多运动还是包含许多预测错误。这可以在译码下一个图象(N+1)期间通过收集下一个图象(N+1)的运动矢量和计算对于整个图象而表示的位移而达到。这可以通过计算由运动矢量代表的平均运动或计数与图象有关的运动矢量的数目而完成。如果确定在当前帧后面的帧不包含许多运动或预测错误,则下一个图象被译码(300)。否则,可能需要当前的图象去产生一个可接受的图象,即,下一个图象是帧间编码的,以及必须从先前正确地译码的图象中进行预测。
当找到一个在图象级别上的错误时,控制器124确定(308)自从上一次更新图象以来图象内容是否很大地改变。这可以通过产生当前的帧的和先前成功地译码的图象的色度和/或亮度象素值的直方图以及比较直方图而达到。替换地,可以比较两个图象的梯度总和。对于每个图象,梯度总和代表在x和y方向上相邻的象素亮度值之间的差值的总和。如果当前的图象被认为很大地改变,则控制器124确定(312)自从先前的图象更新被发送以来所经历的时间是否大于一个时间间隔T。如果是的话,则把VideoFastUpdatePicture(视频快速更新图象)消息发送(314)到发送终端2。然后译码器进行译码下一个图象(300),而不必等待编码器对更新命令的响应。
T正比于在两个通信终端1,2之间的通信路径的来回路程延时,这可由H.245协议管理器40测量。T的典型数值是来回路程延时的两倍。T的数值的确定考虑到在接收译码器与发送译码器之间的来回路程延时和由发送编码器响应更新命令所花费的时间。
所有的步骤302,304,306和307不一定都实行每个步骤可被单独使用或者可以使用其它的检错方法。
图5是显示本发明的第二实施例的译码器在图象级别上的运行的流程图。首先(400)译码下一个图象N。如果译码器不能译码图象(402),则图象具有状态“丢失”。当图象标题是不可检索时,译码器将返回这个决定。在这种情形下,译码器控制器124检查接收的和已成功译码的先前的图象(N-m),以及确定在先前的图象中的运动量(404)。例如,这可以通过计算由与先前成功地译码的图象(N-m)的MB有关的运动矢量代表的总的位移量而达到。如果这个运动小于或等于预定的门限值D,则把“检验下一个图象”标记设置为1(406)和译码下一个图象(N+1)(400)。如果运动大于预定的门限值D,则认为图象被破坏,以及所有的MB被标记为破坏的(408)。这是通过设置图象中所有宏块的状态为“掩盖的”而达到的。控制器124然后确定(410)自从先前的图象更新被发送以来所经历的时间是否大于一个时间间隔T1。如果是的话,则把VideoFastUpdatePicture(视频快速更新图象)消息发送(412)到发送编码器。在任一个情形下,则把“检验下一个图象标记”设置为0(414)和译码下一个图象(400)。
T1正比于在两个通信终端1,2之间的通信路径的来回路程延时,这可由H.245协议管理器40来测量。T1的适当的数值是来回路程延时的两倍。
如果译码器设法成功地译码图象标题(402),则图象的GOB被译码(500)(见图6)。按照H.263,是否包括GOB标题是可任选的。如果它被忽略,则译码器不执行GOB级别上的任何完整性检验和GOB的MB的标题和数据立即被译码。
如图7所示,当图象的每个GOB被译码时,GOB的每个MB的状态被确定(602)。如果宏块被破坏或丢失,则通过使用已知的错误掩盖技术来掩盖MB,以及MB的状态被设置为“掩盖的”(604)。对于其它的MB,译码器从宏块标题确定MB的类型。对于帧内编码的MB,状态被设置为“更新”(606)。控制器124保存对于每个GOB和每个图象的MB的状态的记录(608)。对于帧间编码的MB,状态是从被译码的先前的帧的相应的MB那里复制的。
回到图6,一旦GOB的所有的MB已被译码(只要译码器能够),在GOB中被译码的掩盖的MB的数目可通过检查MB状态记录(608/502)而被确定。如果掩盖的MB的数目小于预定的门限值M(503),则译码下一个GOB(501)。然而,如果掩盖的MB的数目大于预定的门限值M(503),则控制器124查看(504)先前是否译码器已命令进行GOB更新。如果先前已发送更新命令,则控制器124确定(505)自从先前的GOB更新被发送以来所经历的时间是否大于一个时间间隔T2。如果是的话,则发送VideoFastUpdateGOB(视频快速更新GOB)消息(506)。如果不是的话,则下一个GOB被译码(501)。T2也正比于在两个通信终端1,2之间的通信路径的来回路程延时,这可由H.245协议管理器40来测量。T2的典型的数值是来回路程延时的两倍。
如果先前没有发送GOB更新(504),则控制器检验GOB是否被破坏(507)。这可通过CRC、误码率或检查GOB标题(如果存在的话)而确定。如果GOB被认为没有破坏,则译码下一个GOB(501)。如果GOB被认为是破坏的,则检查相邻的GOB(例如,先前的GOB)(508),以便查看它们是否包括许多帧内编码的MB。如果是的话,则当前的破坏的GOB多半也包括许多帧内编码的MB。控制器124然后确定(505);自从先前的GOB更新被发送以来所经历的时间是否大于一个时间间隔T2。如果是的话,则发送VideoFastUpdateGOB(视频快速更新GOB)消息(506)。如果不是的话,则下一个GOB被译码(501)。如果确定相邻的GOB不包括许多帧内编码的MB,则当前的GOB中的比特数目被计数(509),以及与门限值B进行比较。典型地,QCIF GOB包含大约200个比特,以及B的典型值可以是500比特。如果GOB中的比特数目超过门限值B,则控制器124确定(505)自从先前的GOB更新被发送以来所经历的时间是否大于一个时间间隔T2。如果是的话,则发送VideoFastUpdateGOB(视频快速更新GOB)(506)。如果不是的话,则下一个GOB被译码(501)。这个处理过程继续进行,直至图象的最后一个GOB的最后一个MB被译码(510)为止,在这时,译码处理过程继续进行图5的步骤420。
因此,若干个GOB更新命令可以针对单个图象被发送。对于图象的每个GOB保持一个独立的定时器,以及GOB更新命令只是在自从对于图象的那个GOB的GOB更新命令被发送以来已经历大于一个时间间隔T2后才被发送。例如,在译码图象N后,比如说可以发送对于GOB 1和5的更新命令。在译码图象N+1时,即使发现GOB 1和5是破坏的,对于这些GOB的GOB更新命令并不及时被发送,因为自从对于这些GOB的更新命令先前被发送以来时间间隔T2还没有消逝。
一旦已译码图象的所有的GOB(500),掩盖的MB的总的数目从MB状态记录(608)中被确定(420)。如果掩盖的MB的数目被确定(422)为大于门限值C,则控制器124确定(410);自从先前的图象更新被发送以来所经历的时间是否大于一个时间间隔T1。如果是的话,则发送VideoFastUpdatePicture(视频快速更新图象)消息(412)到发送编码器,以及译码下一个图象(400)。在任一个情形下,把“检验下一个图象标记”设置为0(414)。
如果图象中掩盖的MB的数目被确定(422)为小于C而大于零,则控制器124确定(424)当前的图象是否很大地改变。这可以通过比较当前的帧与成功地译码的先前的帧的直方图和/或比较两个帧的梯度和值而以传统的方式达到。如果当前的图象被认为很大地改变,则控制器124确定(410)自从先前的图象更新被发送以来所经历的时间是否大于一个时间间隔T1。如果是的话,则发送VideoFastUpdatePicture(视频快速更新图象)消息(412)到发送终端2。如果当前的图象被认为没有很大地改变,则把“检验下一个图象标记”设置为0(414)以及译码下一个图象(400)。
如果图象中掩盖的MB的数目被确定(422)为零,则检验“检验下一个图象”标记(426)。如果标记没有被设置(即=0),则译码下一个图象(400)。然而,如果标记被设置(即=1),则这意味着先前的图象(N-1)被丢失。因此,使当前的图象(N)与先前的成功地译码的图象(N-n)进行比较(其中,n是大于1的整数),以及图象内容的改变如前面描述地被确定(424)。
按照上述的实施例,GOB更新命令针对一个GOB被发送,除非对于所考虑的GOB的更新命令已经在时间T2内被发送了。同样地,图象更新命令针对每个图象被发送,除非这样的更新命令已经在时间T1内被发送了。因此,有可能发送对于同一个图象的GOB更新命令和图象更新命令。按照本发明的另一个实施例,更新命令被产生,但在整个图象被译码以前不被发送(只要这是可能的)。如果确定对于正在被译码的当前的图象发送图象更新命令,则不发送对于同一个图象的任何GOB更新命令。因此,在步骤506,GOB更新命令被产生但不被发送,如图所示,在步骤428,控制器124确定对于正在被译码的当前图象是否已发送图象更新命令。如果是的话,对于当前图象的GOB更新命令被忽略。如果不是的话,对于当前图象的GOB更新命令被发送。然后实行下一个图象的译码(400)。
现在将描述发送终端2的视频编码译码器的编码器部分的运行。第一图象作为内部的帧被编码,而以后的帧作为帧间的帧被编码,直至情景改变造成内部的帧被编码、或强迫的更新由编码器的预定的参量设置而被发起、或更新消息从接收终端1被接收为止。
当发送终端2接收更新消息时,编码器部分通过更新从接收终端1那里请求的消息中的图象部分而进行应答。因此,如果接收终端1已发送VideoFastUpdatePicture(视频快速更新图象)命令,则发送终端2的编码器更新整个图象。如果接收终端1已发送VideoFastUpdateGOB(视频快速更新GOB)命令,则发送终端2的编码器更新整个GOB。
图9是显示按照本发明的编码器如何对于图象更新VideoFastUpdatePicture(视频快速更新图象)命令作出反应的流程图。发送终端2借助于视频编码译码器的控制管理器40与控制器105监视(800)来自接收终端1的编码译码器反馈消息(例如,通过H.245控制信道发送的)。当更新命令被编码器100接收(802)时,控制器105检验(804)这是否在发送开始的S秒(例如5秒)内。如果是的话,控制器指令(806)编码器按帧内编码的方式更新整个图象。这使得开关102关断减法器106,以及使得编码器100按内部的帧来编码来自输入端101的进入的视频的整个的下一个图象。
如果当图象更新命令被接收时已经经历了大于S秒的时间,则控制器105确定(808)在预定的时间间隔I内发送终端2是否已接收到大于R个更新请求。如果是的话,控制器把开关102切换到帧内模式以及整个图象以帧内编码的格式被更新(806)。否则,控制器使得能够逐个宏块地启动开关102的帧内模式状态(810),以使得所有的宏块按帧内格式逐个宏块地在接连的图象上被编码。如果编码器被这样地预先编程、以使得缺省更新处理过程(在头S秒以后)是逐个宏块地更新、以及接收译码器不接受接连的宏块更新,则接收译码器将发送多个VideoFastUpdatePicture(视频快速更新图象)命令到发送编码器。所以,操作步骤808确保编码器将最终按帧内格式更新整个图象。R和I的适当的数值分别是10和5秒。
图10是显示发送终端2的编码器100如何对于VideoFastUpdateGOB(视频快速更新GOB)命令作出反应的流程图。从接收终端1发送的反馈消息(例如,通过H.245控制信道)被发送终端2的编码器部分100的控制管理器40与控制器105监视(900)。当VideoFastUpdateGOB(视频快速更新GOB)命令被编码器100接收(902)时,控制器105识别(904)已改变得最大的那些所请求的GOB的宏块。已改变得最大的那些所请求的GOB的MB首先通过帧内编码被更新。这些MB可以通过逐个象素地考虑要被编码的下一个图象的GOB的MB的象素的亮度值而被识别。下一个图象与先前的图象的象素之间的差值的平方和被形成。编码器按帧内模式首先编码具有最大的差值的那些MB。GOB的其它MB在以下的图象中相应的GOB中的相应的MB的编码期间被更新。
编码器100的控制器也跟踪被破坏的MB的时间传播。因此当VideoFastUpdateGOB(视频快速更新GOB)命令被接收时,编码器也可更新根据破坏的GOB(译码器针对它已发送了VideoFastUpdateGOB(视频快速更新GOB)命令)预测的那些MB。
权利要求
1.一种视频译码方法,包括由视频译码器接收已编码的视频数据,译码所述视频数据以形成代表视频序列的接连的图象的译码的视频数据,确定译码的视频数据是否包含错误,以及当确定存在错误时从所述视频译码器发送更新请求消息给发送视频编码器,以便请求至少更新包含该错误的视频数据的相应部分,其特征在于如果对于该视频数据的一个相应部分的以前的更新请求消息从所述视频译码器发送到所述发送视频编码器后已经经历了预定的时间间隔,则从所述视频译码器发送进一步的更新请求消息给所述视频编码器,由此限制更新消息的不必要的重复传送量。
2.按照权利要求1的方法,其中更新消息请求更新视频序列的整个图象。
3.按照权利要求1的方法,其中更新消息请求更新视频序列的图象的分段。
4.按照权利要求1,2或3的方法,其中预定的时间间隔正比于在视频译码器与视频编码器之间的往返路径延时。
5.按照权利要求1,2或3的方法,其中确定译码的视频数据是否包含错误的步骤包括确定当与视频图象的一个相应的区域的先前的图象数据相比较时的译码的视频数据中的改变量,如果改变量超过预定的门限值,则产生更新消息。
6.按照权利要求1,2或3的视频译码方法,其中如果先前的图象中的运动量超过预定的门限值,则产生更新消息。
7.按照权利要求1的视频译码方法,其中所述确定译码的视频是否包含错误的步骤包括对于第一图象的区域,确定该视频数据相对于以前图象的相应区域的视频数据的改变量,当该改变量超过预定的门限值时,则确定存在错误,其中所述更新消息与包含错误的第一图象的分段相关。
8.按照权利要求1的视频译码方法,其中当确定出译码的视频数据中的错误时,掩盖该包含错误的图象区域,当确定存在错误时,生成消息并将其提供到发送视频编码器,以请求至少更新包含错误的视频数据的那部分,其中如果被掩盖的图象区域的数目小于预定门限值,则发送更新消息;如果被掩盖的图象区域的数目超过预定门限值,发送更新整个图象的请求。
9.按照权利要求8的视频译码方法,当确定存在错误从而使得图象不能被译码时,则将图象的所有部分标记为被掩盖,并译码下一图象。
10.一种编码视频信号的方法,包括接收要被编码的视频信号;编码视频信号以形成代表视频序列的接连的图象的编码的视频数据;以及发送编码的视频数据到远端视频译码器,其中所述编码过程对于从远端视频译码器接收的更新请求消息作出响应,以更新视频数据的被请求的错误的部分,其特征在于如果对于被检测出有错误的编码视频数据的一个相应部分的以前的更新请求消息从所述远端视频译码器发送后已经经历了预定的时间间隔,则从所述视频译码器发送进一步的更新请求消息,由此限制更新消息的不必要的重复传送量。
11.按照权利要求10的编码视频信号的方法,其中所述更新过程是在逐个宏块的基础上实行的,更新的宏块在视频信号的顺序的图象上被更新。
12.一种视频译码设备(200),包括用于接收编码的视频数据的装置(50,60);用于译码所述视频数据以形成代表视频序列的接连的图象的译码的视频数据的装置(120,121,123,124),用于确定译码的视频数据是否包含错误的装置(124),和用于发送更新请求消息给发送视频编码器以请求至少更新包含错误的视频数据的相应部分的装置(124),其特征在于如果对于视频数据的一个相应部分从所述视频译码器发送到所述发送编码器后已经经历了预定的时间间隔,则从所述视频译码器发送进一步的更新请求消息,由此限制更新消息的不必要的复重传送量。
13.按照权利要求12的设备,其中用于确定译码的视频数据是否包含错误的装置(124)包括用于确定所述译码的视频数据相对于视频图象的相应区域的先前图象数据的改变量的装置,如果所述改变量超过预定的门限值,则发送更新消息。
14.按照权利要求12或13的设备,其中如果在先前的图象中的运动量超过预定的门限值,则产生更新消息。
15.视频信号编码设备(100),包括用于接收要被编码的视频信号的装置(101);用于编码视频信号以形成代表视频序列的接连的图象的编码的视频数据的装置(102,103,104,108,109,110,111);以及用于发送编码的视频数据到远端视频译码器(200)的装置(60),其中该编码装置(102,103,104,108,109,110,111)对于从远端视频译码器(200)接收的更新请求消息作出响应以更新视频数据的被请求的有错误的部分,其特征在于如果对于被检测出有错误的编码视频数据的一个相应部分的以前更新请求消息从所述远端视频译码器被发送后已经经历了预定的时间间隔,则从所述视频译码器发送进一步的更新请求消息,由此限制更新消息的不必要的重复传送量。
16.按照权利要求15的设备,其中更新是在逐个宏块的基础上实行的,更新的宏块在视频信号的顺序图象上被更新。
17.一种移动无线设备,包括视频译码设备,其中所述视频译码设备包括用于接收编码的视频数据的装置(50,60);用于译码所述视频数据以形成代表视频序列的接连的图象的译码的视频数据的装置(120,121,123,124),用于确定译码的视频数据是否包含错误的装置(124),和用于发送更新请求消息给发送视频编码器以请求至少更新包含错误的视频数据的相应部分的装置(124),其特征在于如果对于视频数据的一个相应部分从所述视频译码器发送到所述发送编码器后已经经历了预定的时间间隔,则从所述视频译码器发送进一步的更新请求消息,由此限制更新消息的不必要的复重传送量。
18.一种移动无线设备,包括视频信号编码设备,其中该视频信号编码设备包括用于接收要被编码的视频信号的装置(101);用于编码视频信号以形成代表视频序列的接连的图象的编码的视频数据的装置(102,103,104,108,109,110,111);以及用于发送编码的视频数据到远端视频译码器(200)的装置(60),其中该编码装置(102,103,104,108,109,110,111)对于从远端视频译码器(200)接收的更新请求消息作出响应以更新视频数据的被请求的有错误的部分,其特征在于如果对于被检测出有错误的编码视频数据的一个相应部分的以前更新请求消息从所述远端视频译码器被发送后已经经历了预定的时间间隔,则从所述视频译码器发送进一步的更新请求消息,由此限制更新消息的不必要的重复传送量。
全文摘要
视频译码的方法包括接收编码的视频数据;译码所述视频数据形成译码的视频数据,以及确定译码的视频数据是否包含错误。当确定存在错误时发送一个消息给发送视频编码器,以便请求至少更新包含错误的视频数据的那个部分,其中所述更新消息只在自从以前的更新消息被发送以来经历了预定的时间间隔时才被发送。也描述了互补的编码器。
文档编号H04N7/24GK1897697SQ20061010058
公开日2007年1月17日 申请日期2000年2月16日 优先权日1999年2月18日
发明者M·汉努克塞拉, A·霍伦兰塔 申请人:诺基亚移动电话有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1