CN101401438B - 视频编码 - Google Patents
视频编码 Download PDFInfo
- Publication number
- CN101401438B CN101401438B CN2007800088896A CN200780008889A CN101401438B CN 101401438 B CN101401438 B CN 101401438B CN 2007800088896 A CN2007800088896 A CN 2007800088896A CN 200780008889 A CN200780008889 A CN 200780008889A CN 101401438 B CN101401438 B CN 101401438B
- Authority
- CN
- China
- Prior art keywords
- frame
- picture
- message
- memory
- decoder
- 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.)
- Active
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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/58—Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
-
- 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/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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
- H04N19/895—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 in combination with error concealment
Abstract
一种使用帧间差分编码的视频编码器,该视频编码器具有用于包含多个参考画面的存储器(3)。对于每个输入的画面,其选择一个(或多个)所存储的参考画面来使用。控制装置(10)选择哪个本地解码画面将被输入到存储器或者从存储器中移除,从而该存储器总是包含至少一个处于定义的时间窗口内的相对较老的画面和至少一个比该时间窗口更近的相对较年轻的画面。当其从接收器接收到差错消息时,其将编码器从正常状态(该状态下允许选择任意画面作为预测器)切换到只允许选择所述相对较老的画面进行预测的状态。该时间窗口的开始最好根据估计(或观测)到的编码器与解码器之间的往返时间来设定,使得至少一个相对较老的画面总是早于差错消息。
Description
技术领域
本发明涉及视频编码,尤其是在采用帧间差分编码的视频编码器环境下的视频编码。
背景技术
相关技术有:Yasuhiro Tomita et al的“Error Resilient ModifiedInter-Frame Coding System for Limited Reference PictureMemories”(Visual Communication Laboratory,NTT Human InterfaceLaboratories),其中描述了改进的错误恢复帧内编码系统,该系统通过使用从解码器到编码器的后信道信号来防止时间和空间的错误传播与帧内编码之间的干扰。
发明内容
本发明涉及一种传输视频信号的方法,该方法包括以下步骤:存储多个参考画面;对输入视频信号进行编码,并将它们传输到解码器,所述编码是如下执行的:针对至少一些画面,选择所存储的参考画面中的一个或多个并利用相对于它的帧间差分编码对该画面的至少一部分进行编码;以及对编码信号进行本地解码以产生本地解码后的画面,存储为所述参考画面;其中,该方法包括接收差错消息并响应于它来禁止将相对较年轻的参考画面用作预测器,并且仅仅选择相对较老的画面用于预测;其中所述参考画面存储在缓冲区中,该缓冲区的尺寸小于容纳用于对所述输入视频信号进行编码的信道的往返时间内传输的所有帧所需的尺寸;并且其中所述方法包括以下步骤:选择要从存储器中删除的画面以便为新解码后的画面提供空间,所述选择是根据持续时间为多个帧时段的限定时间窗口来执行的,并且根据以下规则被安排为,该窗口中最年轻的帧比当前帧老了至少往返时间除以帧时段的时间间隔:(a)如果只有一个帧落在该限定时间窗口内,则该帧不应该被删除;以及(b)如果该缓冲区中次老帧和次新帧之间的时间差超过了该窗口长度,则不应该删除帧。
本发明还涉及一种视频编码器,该视频编码器包括:存储器,用于包含多个参考画面;差分编码装置,用于对输入视频信号进行编码,其可针对每个画面来选择所存储的参考画面中的一个或多个并利用相对于它的帧间差分编码对它进行编码;本地解码装置,用于生成本地解码画面,以便输入到该存储器中;用于从接收器接收差错消息的装置,其响应于差错消息将该编码器从允许选择相对较年轻的画面作为预测器的状态切换到允许仅选择相对较老的画面作为预测器的状态;控制装置,可选择将哪些本地解码画面输入到所述存储器和从所述存储器中删除哪些本地解码画面,该控制装置可根据持续时间为多个帧时段的限定时间窗口来操作,并且根据以下规则被安排为,该窗口中最年轻的帧比当前帧老了至少所述编码器与所述接收器之间的往返时间除以帧时段的时间间隔:(a)如果只有一个帧落在该限定时间窗口内,则该帧不应该被删除;以及(b)如果该存储器中次老帧和次新帧之间的时间差超过了该窗口长度,则不应该删除帧;该控制装置还可接收往返时间的测量值并相应地改动该时间窗口。
本发明还涉及一种视频链路,该视频链路包括:发送器,其包括视频编码器;接收器,其能够向该发送器发送差错消息;以及用于测量该视频编码器与该接收器之间的往返时间并将该测量值传送到该控制装置的装置。
本发明又涉及一种视频解码器,该视频解码器包括:存储器,其用于包含多个参考画面;存储器控制装置,其响应于从编码器接收到删除消息,从该存储器中移除该消息中指定的画面;差分解码装置,用于对帧间编码的输入视频信号进行解码,并可将新解码的画面输入到该存储器中;其特征在于包括差错恢复装置,其可从编码器接收额外消息,该额外消息指定了哪些画面应该在该存储器中,并且被构造为,在要存储解码后的画面并且还未接收到删除消息的情况下,通过参考其中一条额外消息来选择要从该存储器中删除的画面。
本发明还涉及一种视频解码器,该视频解码器包括:存储器,用于包含多个参考画面;存储器控制装置,其响应于从编码器接收到删除消息,从该存储器中移除该消息中指定的画面;差分解码装置,用于对帧间编码的输入视频信号进行解码,并可将新解码的画面输入到该存储器中;其特征在于包括差错恢复装置,其可在要存储解码后的画面并且还未接收到删除消息的情况下选择要从该存储器中删除的画面,其中,该差错恢复装置包括用于估计哪个画面将在该存储器处被删除的装置,所述估计是根据持续时间为多个帧时段的限定时间窗口来执行的,并且根据以下规则被安排为,该窗口中最年轻的帧比当前帧老了至少信道的往返时间除以帧时段的时间间隔:(a)如果只有一个帧落在该限定时间窗口内,则该帧不应该被删除;以及(b)如果该存储器中次老帧和次新帧之间的时间差超过了该窗口长度,则不应该删除帧。
附图说明
现在将结合附图举例来说明本发明的某些实施方式,图中:
图1是并入了根据本发明实施方式的装置的视频传输系统的框图;
图2A是图1的编码器的框图;
图2B是图1的解码器的框图;而
图2、3和4是示出编码器和解码器的操作的流程图。
具体实施方式
图1中例示了实时多参考H.264编码器和解码器的通用结构。该结构执行以下功能:
-视频帧捕获和H.264实时编码。
-H.264实时解码和显示。
-使用RFC 3984的H.264/RTP打包。
-基于UDP/IP的传输。
-H.264/RTP解包。
-RTCP/AVPF客户计线程(产生RTP丢失,抖动状态)
-RTCP/AVPF服务器线程(轮询RTCP反馈)
使用这个特定编码标准和这些特定传输协议当然仅仅是示例,如果需要的话也可以选择其他的标准和协议。需要注意的是,RTCP提供了定期接收报告(RR)并且AVPF配置文件现在允许立即(或者是在反馈带宽限制允许的条件下尽可能地立即)反馈包丢失差错。
图2A示出了视频编码器。视频信号(一般是数字格式)在输入1处被接收。减法器2形成了输入信号和来自预测器缓冲区3中的预测信号之间的差分,该差分随后在框4中被进一步编码。对本发明而言,这里执行的编码并不是重要的,但可以包括例如阈值(为了抑制零或微小差分的传输)量化、变换编码和/或可变长度编码。预测器缓冲区3的输入是在加法器5中形成的,预测信号和在解码器6中解码出的编码差分信号之和(从而编码和解码过程中消息的丢失被包含在预测器循环中)。解码器6和加法器5连同缓冲区3和运动补偿器8形成了本地解码器。
图2B示出了解码器。首先,任何在框4中执行的编码操作都在框6’(与图1的框6相同)中被反转以产生帧间差分信号。然后,该信号在从编码器接收运动向量的运动补偿单元8’中经过运动补偿后被加到预测信号中,该预测信号来自帧存储器3’。加法器5’的输出形成了解码器输出,并被送到帧存储器3’的输入。因此,图2的远程解码器具有与图1所示本地解码器相同的结构,尽管如我们稍后将看到的那样,某些控制功能可能会不同。
尽管没有示出,但是按照常规技术,可以在编码器输出和解码器输入处设置缓冲区,以允许在恒定比特流信道上进行传输。
差分编码基本上是帧间的,尽管有时可以使用帧间编码(对于整个帧或是对于帧的选定块)来限制传输差错的增长。该预测可以简单地包含来自预测器缓冲区3的早期(或者,在某些系统中是后期)解码后的帧;然而如图所示还包括运动估计器7。对被编码画面的帧和来自缓冲区的帧进行比较:对于当前帧的每个块(该画面被视为分割成块),其标识出之前帧的哪个区域和该块最相似。所标识区域与关注的块在位置上的向量差被称作运动向量(因为它通常表示了物体在由电视画面描绘场景中的运动),并且被提供给用于将之前帧的所标识区域移动到当前帧的相关块的位置上的运动补偿单元8,从而产生更好的预测。这使得减法器2产生的差分结果的平均值更小,允许编码器4利用比其他情形更低的比特率对画面进行编码。
预测器缓冲区3和3’可以包含多个帧,在本例中是4个。编码器在原理上可以使用任何存储的帧作为预测器,或者,甚至多于一个:例如,H.264和H.263允许每8×8块来选择参考帧。
图3示出了编码器的操作。在步骤100中,在输入处接收被称作帧n的帧。在步骤101中,对于每个8×8块,编码器检查缓冲区3中的所有候选帧(或者时间允许下尽量多些),来确定哪些给予最好的压缩。然后在步骤102中,对该帧进行编码;并在103中传输。也可在104中由本地解码器5、6等来解码。一般地,传输的消息包括该预测器或者所有预测器的参考索引,利用它们,解码器可以使用正确的那个(那些)来进行解码。步骤101-104的处理是公知的,因而不再进行详细描述。
在步骤105中,控制单元10确定预测器缓冲区3中是否有空间来容纳新解码的帧,如果没有,则在步骤106中删除其中一个已有的帧。删除帧的算法稍后进行说明。然后,在步骤107中新解码的帧被存储在缓冲区3中并且针对n的下一个值重复该处理。
在H.264编码器的情况下,我们希望编码器以“短期帧”的形式存储它的所有参考帧,如在标准中定义的那样;可以使用长期参考帧,但是相对于短期帧而言,它们被认为对“存储器管理控制操作”的丢失缺乏弹性。
无论何时,在步骤106中,编码器从缓冲区3中删除一帧,步骤103中的传输也包括发送给解码器指示它删除那个帧的消息。在这个例子中,这种消息是利用在H.264中定义的“存储器管理控制操作”来发送的。通过对这些存储器应用已经由编码器放置在比特流中的存储器管理控制操作,解码缓冲区遵循编码缓冲区。
我们希望这些消息在被发送的每个片断(NAL单元)中被发送,因此,例如如果一画面被编码为4个片段,则这些组“存储器管理控制操作”(MMCO命令)都被发送四次。MMCO命令可用于从缓冲区中移除短期或者长期画面、将短期映射为长期、清空缓冲区等。多个MMCO命令可以在同一个片断(NAL单元)中发送。
如果解码器丢失了一组MMCO命令,那么编码器缓冲区与解码器缓冲区的内容之间就会产生失配。为了缓解这个问题,我们提出了一个改进的版本,其中每个片断都包含一消息,该消息确切地告知解码器在那时哪个帧应该在解码缓冲区中。实现该目的的一种方式是利用由H.264定义的“参考画面列表重排”命令。该方式有如下这些功能。编码器有一组参考帧。在对帧进行编码时,它可以选择使用一个、一些或者所有这些参考帧。从概念上讲,这些帧以缺省顺序放置,以最近的帧开始按照长期索引的升序进行排列(最大的帧号,忽略wrap因素,之后是最久的短期帧,之后是长期帧(如果有的话))。编码器可以随意在比特流中包含一组重映射指令,该指令可以将缺省顺序改变为某些其它的顺序,被称为重映射顺序。在该标准中,这个顺序的主要目的是为了促进对熵编码的使用以识别出将使用的参考帧。重映射指令被定义为将帧号直接映射到重映射索引(为了效率,使用帧号预测)。编码器也可以指出有多少参考将被使用。用于指代参考帧的可变长度代码取决于那些声明要被使用的参考帧的数量(如果只有一个,就是零比特,如果有两个,就是一个单独的比特,其它的情况是一个可变长度代码表);码字的长度取决于重映射索引,短码(1比特)对应于索引0等等。当缺省顺序对于熵编码效率不是最佳时,重映射是很有用的。这些重映射指令在本文中可以用于向解码器指示哪些帧(通过它们的帧号)应该在它的缓冲区中。
我们实现它的方式是,对于编码器而言,将重映射指令插入到参考其缓冲区中所有帧的每个片断(NAL单元)中(不需要对缺省顺序作任何改变),而对于解码器而言,使用这些指令来确定当没有所需的知识时,应该从它的缓冲区中移除哪个帧——也许是因为编码器的缓冲区中的帧太少导致没有MMCO移除命令,或者因为MMCO删除命令针对的是解码器没有的帧。
因此,我们可以看出,可从编码器接收额外消息的差错恢复装置使用这些重映射指令,该额外消息指定了哪些画面应该在存储器中,并被配置为在要存储解码后的画面并且还未收到删除消息的情况下,通过参考其中一条额外消息来选择要从存储器中删除的画面。另选的是,解码器可以配备差错恢复装置,该装置在要存储解码后的画面并且还未收到删除消息的情况下,可使用与在编码器中选择将被删除的画面的算法相同的算法来选择要从存储器中删除的画面。
图4示出了远程接收器的操作。在步骤200中,接收到片断。NALU是网络适配层单元,适于封装在RTP包中。NALU包含编码H.264片断数据,该数据可以是整个画面的数据或者画面一部分的数据。在我们的实施中,我们使用了被公知为灵活宏块排序(FMO)的技术,其中,画面的宏块被分为片断组,这些片断组的每一个都被编码为一到多个片断。FN是当前片断头内的帧号,PrevFN是之前出现的FN。如果在超时时段内没有接收到片断(201),则在步骤202中向编码器发送差错消息。然后,在步骤203中检查每个包是否为所期待的那个包,如果不是(例如包丢失),就在204中将向编码器回发差错消息。202和204中的差错消息的功能是识别丢失帧,或者更恰当地讲,在本示例中,用于识别最后收到的好帧。它可以是帧号,但在本例中,我们假设数据是利用RTP协议传输的,并且差错消息发送RTP包号。事实上,在本例中,步骤200到204是在RTP接收器中执行的。在207中,解码器检查当前片断是否针对与之前片断相同的帧。如果不是,还要检查(208)之前帧是否已经被完全解码。如果没有(也就是丢失了一个或多个片断),则在209中使用常规的掩盖技术来生成替代片断进行显示(例如,通过从之前帧中复制像素)。然后,在步骤210、211和212中(它们和编码器处的步骤105、106和107是相同的),将掩盖帧插入到缓冲区中,如果必要的话,删除已有的帧。
在213中,检查正在接收的帧是否是之前帧的下一个。如果不是(即,丢失了一个或多个整帧),则利用适当的掩盖步骤来生成替代的一帧或多帧进行显示。替代帧的数量为FN-PrevFN-1。这里注意的是,(这些)替代帧并不存储在预测器缓冲区3’中。
然后,在步骤215中对当前片断进行解码。如果出现差错,需要的话,就可以使用掩盖技术来消除差错。如果(步骤216)该帧仍然不完整,则处理回到200接收另一片段。如果是完整的,那么在步骤217、218和219(它们和编码器处的步骤105、106和107相同)中,将新解码后的帧插入到缓冲区中,如果有必要,就删除已有的帧。在步骤220中,将指向之前帧号的变量PrevFN设为FN。
可能发生的情况是,帧在没有差错的情况被接收,但是由于缓冲区中没有它的参考帧而导致不能被正确解码。这可以通过在该解码器中存在的替换帧在框215中对NAL单元进行解码来得到处理。需要注意的是,某些宏块可以被正确解码,因为它们的参考是存在且正确的,而仅某些宏块可以参考丢失或损坏参考。
另选的是,与没有接收到帧的情况相同,该条件可以被识别并且使控制转到步骤214。
需要注意的是,在某些系统中,并非所有的帧都被用作编码其它帧的预测器:例如,在MPEG-2标准中,B-帧,尽管是使用帧间差分编码技术进行编码的,但从不会把其自身作为编码另一帧的参考帧。在这种情况下,无论编码器还是解码器都不需要存储解码后的帧。
所使用的差错掩盖技术可以是任意常规应用的技术。例如,解码器可通过从之前帧中复制帧的不正确部分或者利用更复杂的掩盖技术(例如,使用诸如灵活宏块排序列(FMO)的编码工具)来掩盖差错。FMO允许按照与光栅扫描顺序不同的顺序对宏块进行编码,这反过来意味着,如果在传输中有些数据丢失了,那么周围的数据可能被正确地接收,可以利用它们来掩盖丢失的信息。
图5是流程图,示出了在编码器处,控制单元10响应于从远程解码器接收到(在步骤300中)的差错消息而采取的动作。在步骤301中,将消息中的RTP包号翻译为相应的最后一个知道的好帧的帧号NLKG。具体来讲,RTCP AVPF传送反馈指示被发送以识别丢失的RTP有效载荷的RTP序号。通过存储序号和帧号的表,编码器处的RTP打包器和RTCP管理器可以推知最新的参考已被正确地接收。
然后,在步骤302中,从缓冲区中删除任何在帧NLKG之后被传输的帧(如果存在于缓冲区3中的话)。其效果是防止编码器使用这个或者这些帧——它们被视为没有被远程解码器可靠地解码(或者至少不被视为已经被可靠地解码)——为用于任何其它编码帧的预测器。在步骤303中,向解码器发送MMCO消息,从而解码器可以从它自己的缓冲区中删除相应帧(当然,如果它们实际上存在的话)。在另选实施方式中,在帧NLKG之后被传输的帧可以被简单地标记为“不使用”,而不是从缓冲区3中删除,在这种情况下不需要向解码器发送该消息。
需要注意的是,如果通常情况下,那些将被用作预测器的帧是按照捕获-然后-显示的顺序被编码和传输的,则这些响应差错消息而要被删除的帧是那些帧号大于或等于NLKG的帧。然而在其它情况下,预测模式不同于简单的由帧n-1来预测帧n,例如,在视频冗余编码中,每个偶数帧通过先前的偶数帧来预测,并且对于奇数帧来说是类似的——即,帧n是通过帧n-1预测的。在通常情况下,将要被删除的帧是那些有错的、用作预测(直接或者间接)帧的后-编码的帧。
这里我们返回到从缓冲区例行地删除帧,以便为新的进入帧提供空间的问题上来。目的是管理缓冲区内容以便在前述多参考框架中对参考进行选择,特别是当存在反馈信道时,在包丢失的环境中,出于编码效率和差错恢复这两个目的,便于将参考随时间分布。这在高延迟(>100msRTT)的环境中可能是非常重要的,例如在ADSL或者使用RTP/RTCP的移动网络上应用的视频电话(或低缓冲视频流)。我们设想缓冲区尺寸小于容纳往返时间内传输的所有帧所需的尺寸――即缓冲区容量小于RTT除以数据速率。目标是选择那些及时被关闭的以及来自其范围由信道的往返时间决定某些先前定义的时间段的参考(例如帧n-1、帧n-2)的组合。当帧被编码时,这些参考能够得到管理,从而总是同时有用于良好压缩率的最近参考,以及适用于高延时反馈的差错修复的老帧。
在本例中,当前帧n前面的两个帧(n-1和n-2)总是会被保留,以便在没有包丢失的情况下,仍然有多个最近参考可用,所以压缩效率应该保持良好。另外,比当前帧要早大于或等于往返时间的量的至少一个帧被保留,以便在包丢失的情况下,当编码器从解码器接收到差错消息时,对于解码器而言很有可能利用解码器已经正确接收到的帧作为潜在预测器,而不必发送帧内更新。然而该保留面临一个上限,任何早于该限的帧都将被丢弃。为了尽可能将这种情况保持在一个稳定的状态下,通常需要保留一个或多个年龄在最近两个帧与比往返时间更老的一个(多个)帧之间的帧。在本例中,表示帧的年龄是容易的:因而,如果当前帧是帧n,那么帧j的年龄是n-j。
我们基本上定义了三个窗口——最近帧、中间帧和老帧。在本例中,中间帧和老帧的窗口大小为m,也就是说:
“最近”第一个窗口是从年龄1到2;
“中间”窗口是从年龄3到年龄m+2;
“老”窗口是从年龄m+3到2m+2。
如果m+3大于等于往返时间除以帧时段,例如,大于等于往返时间除以帧时段的最小整数,那么“老”窗口中的帧通常会比当前帧要早至少往返时间。
用于参考缓冲管理的规则如下:
1)除非缓冲区满了,否则不删除帧;
2)总是保存最近的两个帧,即,年龄1和2;
3)受限于2m+2,总是保存最老的帧;
4)保持足够的帧以便当最老的帧的年龄超过“老”窗口时,依然有帧在“老”窗口中。这意味着如果缓冲区中的次老帧和缓冲区中的次新帧之间的时间差超过了“老”窗口的尺寸(即,m),那么该帧就不应该从缓冲区中删除。其它地方,和上面一样,中间和“老”窗口具有相同的尺寸,这需要至少一个帧总在中间窗口内。
理想的情况是在稳定状态下以分布在时间上的参考作为结束。实现这一点的一种方式是重新处理最老的帧并且保持其余的参考均匀分布。(最老-m)、(最老-2m)等等,如果没有的话也可以是最接近的。
因此,在缓冲区容量为4个帧的示例且m=3的条件下,该范围是1,2,[3到5],[6到8]。
该缓冲区的内容从空的开始,进程如下,其中每个数都代表了缓冲区中帧的年龄,而保留标准是保留那些年龄最接近nMAX-m的帧,其中nMAX是缓冲区中年龄最老的帧,而m和上面一样是“老”窗口的长度。
1
1,2
1,2,3
1,2,3,4
1,2,3,4,5可能(范围[3到5]中最接近5-m的是3)=>保留1,2,3,5
1,2,3,4,6可能(最接近6-m的是3)=>保留1,2,3,6
1,2,3,4,7可能(最接近7-m的是4)=>保留1,2,4,7
1,2,3,5,8可能(最接近8-m的是5)=>保留1,2,5,8
1,2,3,6,9可能(9超出了范围)=>1,2,3,6回到稳定状态。
该特殊算法还适用于m=5的情况(这里,1,2,3,8是稳定状态),且在该范围内任何m值的长度都是相同的而不会交迭。
另外一个会出现的问题是(在步骤202或者204中发送的)反馈包本身丢失。解码器可以被配置成在它发送了差错消息之后,检测应当示出在编码器处产生的补救动作的证据的帧(例如在(反馈时间+RTT)时到达的帧)是否未进行示出。期望看到的是MMCO命令移除最近的帧,或者重映射指令(如果使用)来将它们移到列表末端,或者完全移出列表。相反,不希望接收到使用应该已经被删除的帧作为参考帧而预测出的帧。对于没有出现这些命令的响应或者非正确参考使用的响应,将会发送另一条差错消息。如果范围直接关联到RTT,则在这种情况下,我们可能多于一次尝试进行恢复,恢复次数等于范围的号。
如果编码器有较老帧的第三(或者更多)窗口,那么它依然可以在接收到重复反馈消息时进行修复,即使消息来得太迟,它也能够对帧进行帧内编码并且清除它的缓冲区。
需要注意的是,在图4示出的解码器操作中,返回到接收器的差错消息是响应于包丢失而仅在RTP级别上产生的。然而,如果需要,步骤215的解码处理过程中识别的差错也可以用于触发差错消息。
在以上说明中,已经解释了期望的目标是确保缓冲区总是包含比当前帧早了一裕度(margin)的帧,该裕度大于等于往返时间。样例建议m+3应设置成大于等于往返时间除以帧时段的最小整数。
在实践当中可以用多种方法来实现。可以针对使用或要使用的信道的期望RTT来手动设置编码器。要注意的是,接近以上范围意味着最老参考的年龄将在范围[m+3....2m+2]中变化,因此RTT应该小于m+3个帧时段;然而,如果(例如因为m已经设置得太低,或者因为RTT发生超出预期的改变)有一种可能——但不敢保证——可以适应长达2m+2个帧周期的RTT。在想要的帧缺失的情况下,不管是由于这个原因还是由于多个差错,编码器都可以通过编码内帧和清空所有早期帧的缓冲来进行修复。
另选的是,在一种更为成熟的方法中,可以例如通过处理RTCP接收报告来测量实际的RTT,并被用来修正上述分布参数。
解码器应该能够通过检查已经收到的数据包中的RTP序号来确定哪些帧被正确解码而哪些没有被正确解码。然而,可能并不是什么时候都能很完美地操作:例如,解码器可能认为参考帧是正确的,而编码器却使用了解码器根本没有接收到的不同参考帧。这些测量的一个目的是避免对内刷新帧的需要,这种未检测的失配可能不确定地存在于解码画面中。为了避免这种可能性,如果需要,编码器和解码器可以配备差错检测结构,诸如在我们2005年6月8日递交的共同未决欧洲专利申请05253512.7(代理号A30778)中所描述的。
通过示例的方式,利用上述带有反馈机制的系统,该反馈机制能够在发生(利用RTP/AVPF)利用m=5-年龄{[1-2],[3-7],[8-12],[13-17]}的4参考帧窗口的5参考25fps H.264流时立即在解码器上指示丢失,可以容纳以高达480ms的信道RTT到达的反馈。
为了在没有该方案的情况下完成同样的保护,编码器不得不利用12个短期参考帧的滑动窗口来进行编码。在实时编码器上搜寻12个参考所需的时间是受到限制的,并且根据编码器和解码器的结构和容量水平,如此大量的参考甚至都不被允许。
一些用于各种各样网络的典型RTT延迟被引用如下:
GSM RTT时间报告为920ms
GPRS通常的延迟为6-700ms
EDGE/UMTS好一些,但延迟为2-500ms
ADSL(单链路~40ms)
因此,所述结构可以针对相同复杂度来扩展现有技术的参考历史窗口,或者针对相同RTT窗口来显著降低复杂性,都是为了在没有差错的情况下获得编码效率的微小潜在丢失。复杂性降低来自于,针对多个参考运动估计和二进制树型建模和上述差错模型存储需求的参考子集的减少。
其他的消息可以参照:
“H.264/AVC over IP”,Wenger,S,IEEE Transactions on Circuits and Systems for VideoTechnology,vol.13,no.7 July 2003,http://ieeexplore.ieee.org/iel5/76/27384/01218197.pdf“Overview of the H.264/AVC video coding standard”,Wiegand,T.,Sullivan,G,J.,Bjontegaard,G.,Luthra,A.,IEEE Transactions on Circuits and Systems for VideoTechnology,vol.13,no.7July 2003,http://ieeexplore.ieee,org/iel5/76/27384/01218189.pdf
Claims (15)
1.一种传输视频信号的方法,该方法包括以下步骤:
存储多个参考画面;
对输入视频信号进行编码,并将它们传输到解码器,所述编码是如下执行的:针对至少一些画面,选择所存储的参考画面中的一个或多个并利用相对于它的帧间差分编码对该画面的至少一部分进行编码;以及
对编码信号进行本地解码以产生本地解码后的画面,存储为所述参考画面;
其中,该方法包括接收差错消息并响应于它来禁止将相对较年轻的参考画面用作预测器,并且仅仅选择相对较老的画面用于预测;
其中所述参考画面存储在缓冲区中,该缓冲区的尺寸小于容纳信道的往返时间内传输的所有帧所需的尺寸;
并且其中所述方法包括以下步骤:选择要从存储器中删除的画面以便为新解码后的画面提供空间,所述选择是根据持续时间为多个帧时段的限定时间窗口来执行的,并且根据以下规则被安排为,该窗口中最年轻的帧比当前帧老了至少往返时间除以帧时段的时间间隔:
(a)如果只有一个帧落在该限定时间窗口内,则该帧不应该被删除;以及
(b)如果该缓冲区中次老帧和次新帧之间的时间差超过了该窗口长度,则不应该删除帧。
2.根据权利要求1所述的方法,其中,该差错消息包含关于哪个帧存在差错的指示,并且用于接收差错消息的装置可禁止将被指示为存在差错的帧以及直接或间接从它预测出的后续编码帧用作预测器。
3.根据权利要求1或2所述的方法,该方法包括以下步骤:测量往返时间并相应地改动该时间窗口。
4.根据权利要求1或2所述的方法,该方法包括以下步骤:向解码器发送标识了被选择要删除的参考画面的消息。
5.根据权利要求3所述的方法,该方法包括以下步骤:向解码器发送标识了被选择要删除的参考画面的消息。
6.一种视频编码器,该视频编码器包括:
存储器,用于包含多个参考画面;
差分编码装置,用于对输入视频信号进行编码,其可针对每个画面来选择所存储的参考画面中的一个或多个并利用相对于它的帧间差分编码对它进行编码;
本地解码装置,用于生成本地解码画面,以便输入到该存储器中;
用于从接收器接收差错消息的装置,其响应于差错消息将该编码器从允许选择相对较年轻的画面作为预测器的状态切换到允许仅选择相对较老的画面作为预测器的状态;
控制装置,可选择将哪些本地解码画面输入到所述存储器和从所述存储器中删除哪些本地解码画面,该控制装置可根据持续时间为多个帧时段的限定时间窗口来操作,并且根据以下规则被安排为,该窗口中最年轻的帧比当前帧老了至少所述编码器与所述接收器之间的往返时间除以帧时段的时间间隔:
(a)如果只有一个帧落在该限定时间窗口内,则该帧不应该被删除;以及
(b)如果该存储器中次老帧和次新帧之间的时间差超过了该窗口长度,则不应该删除帧;
该控制装置还可接收往返时间的测量值并相应地改动该时间窗口。
7.根据权利要求6所述的视频编码器,其中,该差错消息包含关于在该接收器处哪个帧存在差错的指示,并且用于接收差错消息的装置可禁止将被指示为存在差错的帧以及直接或间接从它预测出的后续编码帧用作预测器。
8.根据权利要求6或7所述的视频编码器,其中该控制装置被构造为,基于对要删除的参考画面的选择,向该接收器发送标识该参考画面的消息。
9.一种视频链路,该视频链路包括:
发送器,其包括根据权利要求6、7或8所述的视频编码器;
接收器,其能够向该发送器发送差错消息;以及
用于测量该视频编码器与该接收器之间的往返时间并将该测量值传送到该控制装置的装置。
10.一种视频解码器,该视频解码器包括:
存储器,其用于包含多个参考画面;
存储器控制装置,其响应于从编码器接收到删除消息,从该存储器中移除该消息中指定的画面;
差分解码装置,用于对帧间编码的输入视频信号进行解码,并可将新解码的画面输入到该存储器中;
其特征在于包括差错恢复装置,其可从编码器接收额外消息,该额外消息指定了哪些画面应该在该存储器中,并且该差错恢复装置被构造为,在要存储解码后的画面并且还未接收到删除消息的情况下,通过参考其中一条额外消息来选择要从该存储器中删除的画面。
11.一种视频解码器,该视频解码器包括:
存储器,用于包含多个参考画面;
存储器控制装置,其响应于从编码器接收到删除消息,从该存储器中移除该消息中指定的画面;
差分解码装置,用于对帧间编码的输入视频信号进行解码,并可将新解码的画面输入到该存储器中;
其特征在于包括差错恢复装置,其可在要存储解码后的画面并且还未接收到删除消息的情况下选择要从该存储器中删除的画面,其中,该差错恢复装置包括用于估计哪个画面将在该存储器处被删除的装置,所述估计是根据持续时间为多个帧时段的限定时间窗口来执行的,并且根据以下规则被安排为,该窗口中最年轻的帧比当前帧老了至少信道的往返时间除以帧时段的时间间隔:
(a)如果只有一个帧落在该限定时间窗口内,则该帧不应该被删除;以及
(b)如果该存储器中次老帧和次新帧之间的时间差超过了该窗口长度,则不应该删除帧。
12.根据权利要求10或11所述的解码器,该解码器包括:差错检测装置;以及这样的装置,其可在出现差错的情况下向该编码器发送标识了被成功解码的最近画面的差错消息。
13.根据权利要求12所述的解码器,该解码器包括这样的装置,其可跟踪差错消息的传输,并且在没有接收到对应删除消息时发送额外差错消息。
14.根据权利要求12所述的解码器,该解码器包括这样的装置,其可跟踪差错消息的传输,并且在往返时间结束后接收到编码画面后,发送额外差错消息,该编码画面将该差错消息应当对其触发删除消息的画面指定为参考画面。
15.根据权利要求13所述的解码器,该解码器包括这样的装置,其可跟踪差错消息的传输,并且在往返时间结束后接收到编码画面后,发送额外差错消息,该编码画面将该差错消息应当对其触发删除消息的画面指定为参考画面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06251368.4 | 2006-03-15 | ||
EP06251368 | 2006-03-15 | ||
PCT/GB2007/000669 WO2007104919A1 (en) | 2006-03-15 | 2007-02-27 | Video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101401438A CN101401438A (zh) | 2009-04-01 |
CN101401438B true CN101401438B (zh) | 2013-03-27 |
Family
ID=36570798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800088896A Active CN101401438B (zh) | 2006-03-15 | 2007-02-27 | 视频编码 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8259802B2 (zh) |
EP (1) | EP1994764B1 (zh) |
KR (1) | KR101335214B1 (zh) |
CN (1) | CN101401438B (zh) |
WO (1) | WO2007104919A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100118991A (ko) * | 2008-02-04 | 2010-11-08 | 아이데닉스 파마슈티칼스, 인코포레이티드 | 매크로시클릭 세린 프로테아제 억제제 |
US8886022B2 (en) * | 2008-06-12 | 2014-11-11 | Cisco Technology, Inc. | Picture interdependencies signals in context of MMCO to assist stream manipulation |
US9609341B1 (en) * | 2012-04-23 | 2017-03-28 | Google Inc. | Video data encoding and decoding using reference picture lists |
US9407923B2 (en) * | 2013-05-20 | 2016-08-02 | Gamefly Israel Ltd. | Overconing lost IP packets in streaming video in IP networks |
US10313685B2 (en) * | 2015-09-08 | 2019-06-04 | Microsoft Technology Licensing, Llc | Video coding |
US10595025B2 (en) | 2015-09-08 | 2020-03-17 | Microsoft Technology Licensing, Llc | Video coding |
US20170295099A1 (en) * | 2016-04-11 | 2017-10-12 | Arista Networks, Inc. | System and method of load balancing across a multi-link group |
US10291936B2 (en) | 2017-08-15 | 2019-05-14 | Electronic Arts Inc. | Overcoming lost or corrupted slices in video streaming |
CN108282541A (zh) * | 2018-02-12 | 2018-07-13 | 安徽千云度信息技术有限公司 | 基于大数据的信息推送方法及其推送系统 |
WO2020159993A1 (en) * | 2019-01-28 | 2020-08-06 | Op Solutions, Llc | Explicit signaling of extended long term reference picture retention |
US11595652B2 (en) * | 2019-01-28 | 2023-02-28 | Op Solutions, Llc | Explicit signaling of extended long term reference picture retention |
BR112021024071A2 (pt) * | 2019-06-03 | 2022-01-11 | Nokia Technologies Oy | Um aparelho e um método para codificação e decodificação de vídeo |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3068002B2 (ja) * | 1995-09-18 | 2000-07-24 | 沖電気工業株式会社 | 画像符号化装置、画像復号化装置及び画像伝送システム |
JPH10191356A (ja) * | 1996-12-27 | 1998-07-21 | Oki Electric Ind Co Ltd | 画像符号化装置 |
US20060083298A1 (en) * | 2004-10-14 | 2006-04-20 | Nokia Corporation | Reference picture management in video coding |
US20060188025A1 (en) * | 2005-02-18 | 2006-08-24 | Nokia Corporation | Error concealment |
-
2007
- 2007-02-27 KR KR1020087022390A patent/KR101335214B1/ko active IP Right Grant
- 2007-02-27 CN CN2007800088896A patent/CN101401438B/zh active Active
- 2007-02-27 US US12/281,701 patent/US8259802B2/en active Active
- 2007-02-27 EP EP07712792.6A patent/EP1994764B1/en active Active
- 2007-02-27 WO PCT/GB2007/000669 patent/WO2007104919A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN101401438A (zh) | 2009-04-01 |
US8259802B2 (en) | 2012-09-04 |
EP1994764A1 (en) | 2008-11-26 |
US20090052531A1 (en) | 2009-02-26 |
KR20080108457A (ko) | 2008-12-15 |
WO2007104919A1 (en) | 2007-09-20 |
EP1994764B1 (en) | 2016-01-13 |
KR101335214B1 (ko) | 2013-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101401438B (zh) | 视频编码 | |
CN101352044B (zh) | 解码视频信号的方法 | |
KR102058759B1 (ko) | 디코딩된 픽쳐 버퍼 및 참조 픽쳐 목록들에 관한 상태 정보의 시그널링 기법 | |
AU2006250203B2 (en) | Method of transmitting picture information when encoding video signal and method of using the same when decoding video signal | |
CN1965587B (zh) | 在允许时域分级的混合视频压缩中进行帧预测的方法和装置 | |
ES2348730T3 (es) | Uso de almacenamiento en cache de trama para mejorar la recuperacion de perdidas de paquetes. | |
US20120195372A1 (en) | Joint frame rate and resolution adaptation | |
US20040017951A1 (en) | Video encoding method and apparatus, and video decoding method and apparatus | |
US9584832B2 (en) | High quality seamless playback for video decoder clients | |
CN101185333A (zh) | 编码视频信号时发送画面信息的方法以及解码视频信号时使用该画面信息的方法 | |
CN101810007A (zh) | 具有附加信息容量的多媒体编码和解码 | |
CN101573883A (zh) | 用于在可分级视频编码中信令并执行时间级切换的系统和方法 | |
US8542735B2 (en) | Method and device for coding a scalable video stream, a data stream, and an associated decoding method and device | |
US20070053445A1 (en) | System and method for providing video content and concealment dependent error protection and scheduling algorithms | |
WO1998002002A1 (en) | Image communication system and method | |
EP0763948B1 (en) | Video data storing device | |
ES2807259T3 (es) | Sistema interactivo y procedimiento para transmitir imágenes clave seleccionadas de un flujo de vídeo sobre una red de ancho de banda bajo | |
CN103733615B (zh) | 用于端到端编码的视频传输系统的按需内部更新 | |
US20080104648A1 (en) | System for providing a video service, and apparatus and method for the same | |
JPH0993592A (ja) | 画像符号化装置 | |
KR100385620B1 (ko) | 개량된 엠펙 부호화 방법 및 이를 이용한 동영상 전송시스템 및 그 방법 | |
JP3183301B2 (ja) | フレーム間差分信号変化検出通信方法 | |
US8040945B1 (en) | System and method for encoding a single video stream at a plurality of encoding rates | |
CN102655604A (zh) | 视频处理方法和设备 | |
KR19990001583A (ko) | 부호화 장치, 복호화 장치 및 전송 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |