本申请是1998年1月30日提交的题为“Source Coding toProvide for Robust Error Recovery During TransmissionLosses”专利申请系列号为09/016,083的美国专利申请的继续;本申请是1998年1月2日提交的题为“Image-to-Block Mapping toProvide for Robust Error Recovery During TransmissionLosses”的申请系列号为09/002,547、1998年1月2日提交的题为“Source Coding to Provide for Robust Error Recovery DuringTransmission Losses”的申请系列号为09/002,470、1998年1月2日提交的题为“Multiple Block Based Recovery Method to Providefor Robust Error Recovery During Transmission Losses”的申请系列号为09/002,553的部分继续申请;这些申请系列号的申请是1997年10月23日提交的题为“Image-to-Block Mapping to Providefor Robust Error Recovery During Transmission Losses”的申请系列号为08/956,632、1997年10月23日提交的题为“SourceCoding to Provide for Robust Error Recovery DuringTransmission Losses”的申请系列号为08/957,555和1997年10月23日提交的题为“Multiple Block Based Recovery Method toProvide for Robust Error Recovery During TransmissionLosses”的申请系列号为08/956,870的部分继续。现将1998年1月30日提交的申请系列号09/016,083、1998年1月2日提交的申请系列号09/002,547、1998年1月2日提交的申请系列号09/002,470、1998年1月2日提交的申请系列号09/002,553、1997年10月23日提交的申请系列号08/956,632、1997年10月23日提交的申请系列号08/957,555和1997年10月23日提交的申请系列号08/956,870引入在此作为参考。
本发明提供一种方法,用于编码与安排信号流,以提供强有力的差错恢复。在下面的描述中,为解释目的,陈述许多细节,以提供本发明的完全理解。然而,对于本领域技术人员来说,显然实践本发明不要求这些特定细节。在其他示例中,公知的电子结构与电路以方框图来表示,以便不徒然地使本发明难于理解。
从其中信号为视频信号的一个实施例的观点出发来描述信号处理方法与结构。然而,本文所述的方法与设备打算可应用于各种类型的包括音频信号的信号和数据的其他数字比特流,其中每个信号由多个信号码元组成。而且,本文所述的处理的实施例使用自适应动态距离编码(“ADRC”)处理来压缩数据;然而可以使用许多编码技术与算法。至于有关ADRC的更具体的讨论,参见1991年9月4-6日在意大利都灵召开的Fourth International Wotkshop on HDTV and Beyond会议上Kondo、Fujimori与Nakaya的“Adaptive Dynamic RangeCoding Scheme for Future HDTV Digital VTR”。
在上面文件中,解释三种不同类型的ADRC。这些ADRC根据以下等式来实现:非边缘匹配ADRC:
边缘匹配ADRC:DR=MAX-MIN
多级ADRC:DR=MAX-MIN+1
其中如果q=2Q-1,则MAX′为X的平均值;如果q=0,则MIN′为X的平均值;和
其中MAX表示块的最大电平,MIN表示块的最小电平,X表示每个抽样值的电平,Q表示量化比特的数量,q表示量化码(编码的数据),X表示每个抽样值的解码电平,和方括号[]表示对方括号内的值执行的舍位操作。
在图1中概括地表示信号编码、传输和随后的解码处理。信号100是输入到编码器110的数据流。编码器110遵循自适应动态距离编码(“ADRC”)压缩算法并生成用于通过传输介质135传输的数据分组1,…N。解码器120从传输介质135中接收数据分组1,…N并生成信号130。信号130是信号100的再现。
编码器110与解码器120能以各种方式来实施,以执行本文所述的功能。在一个实施例中,编码器110和/或解码器120实施为存储在介质上并利用通用或特殊配置的一般包括中央处理单元、存储器与一个或多个输入/输出装置和协同处理器的计算机系统来执行的软件。或者,编码器110和/或解码器120可以实施为逻辑电路来执行本文所述的功能。另外,编码器110和/或解码器120能实施为硬件、软件或固件的组合。
在本实施例中,信号100是包括视频帧序列的彩色视频图像,每帧包括表示隔行扫描视频系统中图像的信息。每帧由两场组成,其中一场包含此图像偶数行的数据,而另一场包含此图像奇数行的数据。此数据包括描述此图像中相应位置的彩色分量的像素值。例如,在本实施例中,彩色分量由亮度信号Y和色差信号U与V组成。显然:本发明的处理能应用于除隔行扫描视频信号之外的其他信号。而且,本发明显然不限于以Y、U、V彩色空间来实施,而能应用于以其他彩色空间表示的图像。
再参见图1,编码器110根据ADRC算法划分Y、U与V信号并且独立地处理每一组信号。为简化讨论,下文描述Y信号的处理;然而,对于U与V信号,重复这些编码步骤。
在本实施例中,编码器110将信号100的两个后续帧(在此称为帧对)上的Y信号组合为三维(“3D”)数据块。对于一个实施例而言,通过组合来自给定帧对上同一定位区域的两个2D块来生成3D块,其中通过组合一帧或一场内的定位像素来生成二维2D块。打算本文所述的处理能应用于不同的块结构。下面在图像-块变换部分中将进一步描述信号的组合。
继续本实施例,对于给定的3D块,编码器110来计算形成3D块的2D块之间的像素值是否有变化。如果这些值有显著变化,则集运动标志。如本领域所公知的,运动标志的使用允许编码器110在每个帧对内具有定位图像重复时减少量化码的数量。编码器110也检测3D块内最大像素强度值(“MAX”)与最小像素强度值(“MIN”)。利用值MAX与MIN,编码器110计算给定的3D数据块的动态范围(“DR”)。在非边缘匹配ADRC的情况中,对于一个实施例,DR=MAX-MIN+1。对于边缘匹配ADRC,DR=MAX-MIN。在可选择的实施例中,编码器110逐帧编码代表视频帧序列的帧流的信号。在另一实施例中,编码器110逐场编码代表视频场序列的场流的信号。因此,不使用运动标志,而使用2D决来计算MIN、MAX和DR值。
在本实施例中,编码器110将计算的DR与门限表(未示出)进行比较来确定用于编码对应于此DR的块内的像素的量化比特(“Q比特”)的数量。像素的编码得到量化码(“Q码”),Q码是用于存储或传输目的的相关压缩的图像数据。
在一个实施例中,从3D决的DR中导出Q比特选择。因此,给定3D块内所有的像素使用同一Q比特来编码,得到3D编码的决。Q码、MIN、运动标志和3D编码块一起称为3D ADRC块。可选择地,编码2D块,并且给定2D块的Q码、MIN与DR一起形成2D ADRC块。
能实施许多门限表。在一个实施例中,门限表由一行DR门限值组成。Q比特对应于用于编码此门限表的一行内二个相邻的DR之间DR值范围的量化比特的数量。在可选择的一个实施例中,此门限表包括多个行并且行的选择取决于所需的传输速率。此门限表中的每一行利用门限索引来识别。下面在部分缓冲的讨论中描述门限选择的一个实施例的详细说明。ADRC编码与缓冲的进一步描述公开在转让给本发明的受让人的题为“High efficiency Coding Apparatus”的US专利号4,722,003和题目也为“High efficiency CodingApparatus”的US专利号4,845,560中。
本文在下面将Q码称为可变长度数据(“VL数据”)。另外,DR、MIN和运动标志称为块属性。块属性与门限索引一起构成固定长度数据(“FL数据”)。而且,鉴于上面的讨论,术语块属性描述与信号码元的分量相关的参数,其中信号码元包括多个分量。在一个可选择的实施例中,FL数据包括Q比特码。优点是在解码处理期间不必从DR中导出Q比特信息。因而,如果DR信息丢失或损坏,仍然能从Q比特码中确定Q比特信息。而且,如果Q比特码丢失或损坏,能从DR中导出Q比特信息。因而减少恢复DR与Q比特的要求。
包括Q比特码的缺点是要为每个ADRC块发送附加比特。然而,在一个实施例中,例如,根据诸如加法或链接的函数组合ADRC块组的Q比特码。例如,如果ADRC块三个成组并且如果每个ADRC块的Q比特值分别为3、4与4,则编码为FL数据的相加值为11。因而,表示此和所要求的比特数量少于表示每个单个值所要求的比特数量,并且此组未损坏的Q比特值能用于确定Q比特值而无需执行诸如接着要描述的Q比特恢复处理。
再考虑其他的实施例。例如,也可以编码运动标志数据。具有Q比特与运动标志数据的标记能生成并用于标注码表。编码的结构与功能能根据应用而变化。
帧、块属性与VL数据描述视频信号内的各个分量。这些分量的边界、位置与数量取决于视频信号的传输与压缩特性。在目前的实施例中,视频信号的比特流内的这些分量进行变化与混洗,以保证传输损耗期间强有力的差错恢复。
为说明目的,下面的描述根据视频信号的ADRC编码与混洗提供1/6连续分组传输损耗容限。因此,下面的分量的定义与划分是对一个实施例而言。也考虑其他的实施。数据集包括视频数据或其他类型的数据信号的分区。因而,在一个实施例中,帧集是包括一个或多个连续帧的一种类型的数据集。分段包括具有存储包括在帧集中的Q码与块属性的六分之一部分的容量的存储器。而且,缓冲器包括具有存储包括在帧集中的Q码与块属性的六十分之一部分的容量的存储器。通过互换分段和/或缓冲器中的分量来执行数据的混洗。然后,存储在分段中的数据用于生成用于传输的数据分组。因而,在下面的描述中,如果丢失分段,则在传输期间丢失从此分段中生成的所有分组。同样地,如果丢失分段的一部分,则在传输期间丢失从此分段中生成的相应数量的分组。
虽然下面的描述涉及使用ADRC编码来编码的数据的1/6连续分组损耗,但本文所述的方法与设备打算可应用于与各种编码/解码方案耦合的l/n连续分组损耗容限的设计。
图2表示用于点对点连接以及网络上的数据传输的分组结构200的一个实施例。分组结构200由编码器110生成并通过传输介质135进行发送。对于一个实施例而言,分组结构200包括5个字节的标题信息、8个DR比特、8个MIN比特、一个运动标志比特、5比特门限索引和354个比特的Q码。本文所述的分组结构是示意性的并且一般可以实施为用于异步传送模式(“ATM”)网络中的传输。但是,本发明不限于所述的分组结构,而能利用各种网络中使用的各种分组结构。
如上所述,不假定传输介质(例如,介质)135提供无差错传输并因此可能丢失或损坏分组。如上所述,存在常规的方法来检测这样的丟失或损坏,但一般将出现严重的图像质量恶化。本发明的系统与方法因此教导源编码来提供从这样的丢失或损坏中进行强有力的恢复。在整个下面的讨论中假定是几个连续分组丢失的突发损耗是最有可能的差错形式,但是也可能出现一些随机的分组损耗。
为了保证一个或多个连续的数据分组损耗的强有力恢复,本发明的系统与方法提供多级混洗。特别地,包括在发送分组中的FL数据与VL数据分组包括来自图像的空间与时间上不连续位置的数据。混洗数据保证分散任何一个突发差错和便于差错恢复。如下面将要描述的,混洗允许块属性与Q比特值的恢复。
数据编码/解码
图3是表示编码器110所执行的编码处理的一个实施例的流程图。图3还描述用于抵抗图像恶化和实施强有力的差错恢复的混洗处理的概要。
在图3的步骤1中,抽取也称为显示分量的输入帧集,以减少传输要求。水平抽取Y信号为其原始宽度的四分之三,并将U与V信号均抽取为其原始高度的一半与其原始宽度的一半,这得到每个帧对中具有3960个Y块、660个U块与660个V块的3∶1∶0视频格式。如上所述,此讨论将描述Y信号的处理,但是此处理可应用于U与V信号。在步骤2,将两个Y帧图像变换为3D块。在步骤3,混洗3D块。在步骤4,使用ADRC缓冲与编码。在步骤5,在缓冲器内混洗所编码的Y、U与V块。
在步骤6,混洗一组编码的3D块的VL数据及其相应的块属性。在步骤7,混洗不同分段上的FL数据。在步骤8,执行后置码填充,其中在缓冲器末尾的可变空间利用预定的比特流来填充。在步骤9,混洗不同分段上的VL数据。
为说明目的,下面的混洗描述提供在编码之前与之后像素数据处理的方法。对一个可选择的实施例而言,利用硬件混洗/去混洗独立的数据值。特别地,此硬件将块值的地址变换为不同的地址来实施混洗/去混洗处理。然而,因为混洗得在数据处理之后进行,所以地址变换对于数据依赖值是不可能的。下面所描述的VC数据组内混洗包括数据依赖值。还有,为说明目的,下面的混洗描述发生在离散的数据集上。然而,对可选择的实施例而言,根据从比特到像素和到帧的范围内的多个数据电平来定义信号。对于此信号中定义的和此信号不同的数据电平之中的每个电平,混洗是有可能的。
图4是表示解码器120所执行的解码处理的一个实施例的流程图。优选地,变换与去混洗处理是图3所示处理的逆处理。图4以Q比特、运动标志、DR、MIN与像素数据的不同组合进一步描述用于差错恢复的创新处理。下面以不同实施例的Q比特、运动标志、DR、MIN与像素恢复的不同组合描述差错恢复处理。
图像-块变换
在本实施例中,单个帧一般包括5280个2D块,其中每个2D块包括64个像素。因此,由于来自第一帧的一个2D块与来自随后一帧的一个2D块一起形成一个3D块,所以一个帧对包括5280个3D块。
为了将数据帧或帧集分别划分为2D块与3D块而执行图像-块变换。而且,图像-块变换包括使用互补和/或互锁模式将像素划分为帧,以便在传输损耗期间实施强有力的差错恢复。但是,为了提高给定的DR值不太大的概率,从定位区域的像素中构造每个2D块。
图5表示示例性的图像的16像素部分的图像-块变换处理的一个实施例。图像500包括形成单个帧的定位区域的16个像素。图像500中的每个像素利用强度值来表示。例如,此图像左上侧的像素具有等于100的强度值,而此图像右底部的像素具有为10的强度值。
在一个实施例中,来自图像500不同区域的像素用于生成2D块510、520、530与540。编码、混洗(如下所示)并发送2D块510、520、530与540。在发送之后,2D块510、520、530与540进行重新组合并用于形成图像550。图像550是图像500的再现。
尽管有可能的传输损耗,但为了保证图像500的准确表示,图5是一种互锁互补块结构,图5所示的一个实施例用于再现图像500。特别地,用于生成2D决510、520、530与540的像素选择保证互补和/或互锁模式用于在再现图像550时组合这些块。因此,当在传输期间丢失特定2D块的属性时,图像550的相邻部分在再现期间不失真。例如,如图5所示,2D块540的DR在数据传输期间丢失。然而,在图像550的再现期间,解码器利用相邻块的多个相邻像素,从中能恢复2D块540丢失的DR。另外,如下面将要描述的,互补模式与移位的组合增加相邻像素的数量,更好地最大化源于其他块的相邻像素的数量,显著改善DR与MIN恢复。
图5a表示在图像-块变换处理的一个实施例中用于形成2D块的混洗模式的一个实施例。一个图像根据选择的像素分解为二个子图像,即子图像560与子图像570。在子图像560中形成矩形来描述2D块边界。为讨论目的,2D块编号为0、2、4、7、9、11、12、14、16、19、21与23。瓷砖(tile)565表示子图像560内2D块的像素分布。
在子图像570中,2D块分配水平移位八个像素并且垂直移位四个像素。这在再现期间组合子图像560与570时得到环绕处理的2D块分配与重叠。2D块编号为1、3、5、6、8、10、13、15、17、18、20与22。瓷砖575表示子图像570内2D块的像素分布。瓷砖575是瓷砖565的互补结构。因此,当在传输期间丢失特定块的属性时,存在从中能恢复丢失2D块的块属性的相邻像素。另外,存在具有相似的块属性集的像素的重叠2D块。因此,在图像的再现期间,解码器具有来自从中能恢复丢失的块属性的相邻2D块的多个相邻像素。
图6表示其他的互补与互锁2D块结构。也可以利用其他的结构。与图5相似,尽管给定的2D块的传输有损耗,但图6中所示的2D块结构保证周围的2D块出现。然而,模式610a、610b与610d在像素变换为后续的2D块期间使用水平和/或垂直移位。水平移位描述在开始新的2D块边界之前在水平方向上将瓷砖结构移位预定数量的像素。垂直移位描述在开始新的2D块边界之前在垂直方向上将瓷砖结构移位预定数量的像素。在应用中,可以只采用水平移位,可以只采用垂直移位,或者可以采用水平与垂直移位的组合。
模式610a表示用于图像-块变换的螺旋形模式,此螺旋形模式进行水平移位以便在图像-块变换处理期间生成后续的2D块。模式610b与610d表示互补模式,其中将像素选择进行水平或垂直移位以便在图像-块变换处理期间生成后续的2D块。还有,模式610b与610d表示2D块之间像素选择的选择偏移。模式610c表示利用不规则的像素抽样来生成用于图像-块变换的2D块。因此,图像-块变换遵循任意一种变换结构,假定像素只变换为2D块一次。
图5、图5a与图6描述用于2D块生成的图像-块变换。显然这些处理可应用于3D块。如上所述,3D块生成遵循与2D块相同的边界定义,但是此边界划分扩展到后一帧,得到3D块。特别地,通过收集用于定义第一帧中的2D块的像素与来自后一帧中2D块的像素来生成3D块。在一个实施例中,来自第一帧的2D块和来自后一帧的2D块中的像素都来自完全相同的位置。
帧集块内混洗
给定图像的像素值与定位区域紧密相关。然而,在相同图像的另一区域中,像素值可以具有明显不同的值。因而,在编码之后,一部分图像中空间相近的2D或3D块的DR与MIN值具有相似的值,而另一部分图像中块的DR与MIN值可以完全不同。因此,在缓冲器顺序地利用来自图像的空间相近的2D或3D块的编码数据进行填充时,出现缓冲器空间不成比例的使用。帧集块内混洗出现在ADRC编码之前并包括混洗在图像-块变换处理期间生成的2D或3D块。此混洗处理保证在随后的ADRC编码期间均衡的缓冲器使用。
图7a-7d表示混洗3D Y块的一个实施例。图7a-7d中的3D Y块通过对只包含Y信号的帧对应用上述的图像-块变换处理来生成。混洗3D Y块,以保证用于存储编码帧对的缓冲器包含来自此帧对的不同部分的3D Y块,这导致ADRC编码期间相似的DR分布。每个缓冲器内相似的DR分布导致一致的缓冲器利用。
图7a-7d还表示利用物理上不相连的3D块的3D块混洗以保证连续分组的传输损耗导致损坏的块属性分散在此图像上,这与此图像的定位区域相反。
块混洗设计为在出现小、中等或大的突发分组损耗时广泛分布块属性。在本实施例中,小的突发损耗认为是丢失几个分组的损耗;中等损耗是丢失能保持在一个缓冲器中的数据量的损耗;而大的损耗是丢失能保持在一个分段中的数据量的损耗。在3D块混洗期间,从此图像相对遥远的部分中选择每一组的三个邻近块。因此,在随后的(下文将详细描述的)组VL数据内混洗期间,从具有不同统计特性的3D块中形成每个组。因为未损坏的3D块包围着损坏的3D块并且未损坏的3D块能用于恢复丢失的数据,所以分布的块属性损耗允许强有力的差错恢复。
图7a表示包含水平方向上的66个3D Y块与垂直方向上的60个3D Y决的帧对,这些3D Y块部署在分段0-5中。如所示的,3D Y块分配遵循二乘三列部分,以致来自每个部分的一个3D块与一个分段相关。因而,如果不执行另外的混洗并且出现第一880分组的突发损耗,则丢失与分段0相关的所有块属性。然而,如下文所述的,执行FL数据混洗以便进一步分散块属性损耗。
图7b表示用于输入分段0的编号为“0”的3D Y块的扫描顺序。图7a的每个“0”3D Y块编号为0,1,2,3,…,659来表示其在输入到分段0中的数据流中的位置。利用此块编号来进行分段分配,将剩余的3D Y块输入到分段1-5中,从而得到在多个分段上混洗的帧对。
图7c表示包括一个分段的660个3D Y块。编号为0-65的3D Y块输入到缓冲器0中。同样,与编号的3D Y块相邻的3D Y块输入到缓冲器1中。重复此处理来填充缓冲器2-9。因此,数据传输期间缓冲器的损坏导致丢失来自此图像不同部分的3D Y块。
图7d表示缓冲器上“0”3D Y块的最后顺序。3D Y块0、1与2占用缓冲器中前面三个位置。对于此缓冲器的其余部分,重复此处理。因此,数据传输期间3个3D Y块的丢失导致丢失来自此图像内远端位置的3D Y块。
图7a-d表示用于帧集的3D Y块的3D块分布的一个实施例。然而,在可选择的实施例中,用于3D U块与3D V块的3D块分布是可利用的。通过对仅包含U信号的帧集采用上述的图像-块变换处理来生成3D U块。同样地,通过对仅包含V信号的帧集采用图像-块变换处理来生成3D V块。3D U块与3D V块都遵循上述的3D Y块分布。然而,如先前所述的,3D U块与3D V块的数量相对3D Y块均具有1∶6比例。
图7a-d用于表示Y信号的帧集块内混洗以致容许传输期间多达1/6的分组丢失的突发差错并且还保证均衡的缓冲器使用的一个实施例。本领域技术人员将认识到:分段、缓冲器与ADRC块分配能进行变化以保证抵抗l/n突发差错损耗或修改缓冲器利用。
部分缓冲
如图3所示,ADRC编码与缓冲处理发生在步骤4。根据编码技术,编码在图像-块变换处理期间生成的2D或3D块,得到2D或3D ADRC块。一个3D ADRC块包含Q码、MIN值、运动标志和DR。同样地,一个2D ADRC块包含Q码、MIN和DR。但是,由于对单个帧或单个场执行编码,所以2D ADRC块不包括运动标志。
在现有技术找到许多缓冲技术(例如,参见Kondo等人的美国专利号4,845,560“High Efficiency Coding Apparatus”和Kondo的美国专利号4,722,003“High Efficiency CodingApparatus”)。这两个“High Efficiency Coding Apparatus”专利引入在此作为参考。
下述的部分缓冲处理描述用于确定在ADRC编码中利用的编码比特的一种创新方法。特别地,部分缓冲描述在限制差错传播的同时从设计为在远程终端之间提供恒定传输速率的门限表中选择门限值的一种方法。在可选择的一个实施例中,门限表还设计为提供最大的缓冲器利用。在一个实施例中,缓冲器是存储来自给定帧集的编码数据的六十分之一部分的存储器。门限值用于确定编码从上述的图像-块变换处理中生成的2D或3D块中的像素所使用的Q比特的数量。
此门限表包括也称为门限集的门限值行,并且门限表中的每一行利用门限索引来标引。在一个实施例中,门限表利用生成位于此门限表的上面行中更高数量的Q码比特的门限集来构造。因此,对于具有预定数量的可利用比特的给定缓冲器,编码器110下移此门限表,直至遇到生成小于预定数量的比特的门限集。合适的门限值用于编码此缓冲器中的像素数据。
在一个实施例中,需要不大于30Mb/s的传输速率。所需要的传输速率得到可用于任意一个给定缓冲器中VL数据存储的31152个比特。因此,对于每个缓冲器,计算累积的DR分布并从此门限表中选择门限集来将3D或2D块中的像素编码为VL数据。
图8表示所选择的门限值和用于缓冲器0的DR分布的一个实施例。图8的垂直轴包括累积的DR分布。例如,值“b”等于其DR大于或等于L3的3D或2D块的数量。水平轴包括可能的DR值。在一个实施例中,DR值的范围从0到255。门限值L4、L3、L2与L1描述用于确定缓冲器的编码的门限集。
在一个实施例中,利用门限值L4、L3、L2与L1编码存储在缓冲器0中的所有块。因此,具有大于L4的DR值的块使其像素值利用4个比特来编码。同样地,利用3个比特来编码属于具有L3与L4之间的DR值的块的所有像素。利用2个比特来编码属于具有L2与L3之间的DR值的块的所有像素,利用1个比特来编码属于具有L1与L2之间的DR值的块的所有像素。最后,利用0个比特来编码属于具有小于L1的DR值的块的所有像素。选择L4、L3、L2与L1,以使用于编码缓冲器0中所有块的比特总数尽可能接近31152个比特的极限值而不超出31152的极限值。
图8a表示一个实施例中部分缓冲的使用。帧800进行编码并存储在缓冲器0-59中。假定传输差错禁止数据恢复,对帧800进行解码处理,直至对丢失的数据执行差错恢复。然而,部分缓冲限制缓冲器内的差错传播,从而允许其余缓冲器的解码。在一个实施例中,传输差错禁止缓冲器0中块80的Q比特与运动标志恢复。部分缓冲限制差错传播到缓冲器0中的剩余块。因为由于固定的缓冲器长度而知道缓冲器0的末尾和缓冲器1的开头,所以差错传播限制到缓冲器0。因此,解码器120能立即开始缓冲器1内的块的处理。另外,使用不同的门限集来编码不同的缓冲器允许编码器110最大化/控制包括在给定缓冲器中的Q码的数量,从而允许更高的压缩比率。而且,因为缓冲器0-59由固定长度组成,所以部分缓冲处理允许恒定的传输速率。
在一个实施例中,因为存在有限数量的门限集,所以缓冲器的可变空间不完全利用Q码比特来填充。因此,固定长度缓冲器中的其余比特利用称为后置码的预定比特流模式来填充。如随后将要描述的,因为后置码在缓冲器的末尾之前描述VL数据的末尾,所以后置码能进行双向数据恢复。
缓冲器内YUV块混洗
Y、U与V均具有独特的统计特性。为改善(下述的)Q比特与运动标志恢复处理,在缓冲器内多路复用Y、U与V信号。因此,传输损耗对特定信号没有显著的影响。
图9表示缓冲器内YUV块混洗处理的一个实施例,其中分别从Y、U与V信号中导出YUV ADRC决。缓冲器900表示帧集块内混洗之后ADRC块分配。缓冲器900包括在11个U-ADRC块之前的66个Y-ADRC块,在这11个U-ADRC块之后又为11个V-ADRC块。缓冲器910表示在缓冲器内YUV块混洗之后YUV ADRC块结构。如所示的,三个Y-ADRC块之后为一个U-ADRC块或三个Y-ADRC块之后为一个V-ADRC块。缓冲器内YUV块混洗减少缓冲器内相邻块的比特流之间的相似性。利用不同信号(即,YUV比率或其他彩色空间)的缓冲器内YUV块混洗的可选择实施例根据初始图像格式是有可能的。
组内VL数据混洗
组内VL数据混洗包括三个处理步骤。这三个处理步骤包括Q码链接、Q码重新分配和随机化链接的Q码。图10表示组内VL数据混洗的一个实施例,其中对存储在缓冲器中的Q码连续采用三个处理步骤。在可选择的一个实施例中,在组内VL数据混洗中采用处理步骤的子集。每个处理步骤独立地辅助在传输期间丢失的数据的差错恢复。因此,分别描述每个处理步骤。下面在数据恢复的讨论中提供差错恢复的详细描述。
1.Q码链接
Q码链接保证一起解码ADRC块组。因为在下面详细描述的数据恢复处理期间可从相邻块中获得附加信息,所以组解码便于差错恢复。对于一个实施例而言,对缓冲器中存储的三个ADRC块的每个组独立地进行Q码链接。在另一可选择实施例中,组包括来自不同缓冲器的ADRC块。三个ADRC块上的Q码链接描述为生成一个链接的ADRC瓷砖。图11与图11a表示生成链接的ADRC瓷砖的一个实施例。
图11表示从2D ADRC块中生成链接的ADRC瓷砖的一个实施例。特别地,对包括在2D ADRC块0、1与2中的每个Q码(q0-q63)执行链接,得到链接的ADRC瓷砖A的64个Q码。例如,2D ADRC块0的第一Q码q0,0(第0量化值)链接到2D ADRC块1的第一Q码q0,1。这两个链接的Q码又链接到2D ADRC块2的第一Q码q0,2,从而得到链接的ADRC瓷砖A的Q0。重复这些处理,直至生成Q63。或者,利用下面等式来描述链接的ADRC瓷砖A中Qi的生成:Qi=[qi,0,qi,1,qi,2]i=0,1,2,…63
另外,与链接的ADRC瓷砖A中每个Qi相关具有表示链接生成单个Qi的比特总数的相应数量的N比特。
图11a表示从包括运动块的帧对中生成链接的ADRC瓷砖的一个实施例。运动块是具有设置运动标志的3D ADRC块。当在利用上述的图像-块变换处理生成的两个2D块结构内像素的预定数量在第一帧与后一帧之间的值中变化时,设置运动标志。在另一可选择实施例中,当在第一帧与后一帧的2D块之间的每个像素变化的最大值超过预定值时,设置运动标志。相反地,无运动(即,静止)块包括具有未设置的运动标志的3D ADRC块。当在第一帧与后一帧的两个2D块内像素的预定数量的值未变化时,运动标志保持不设置。在另一可选择实施例中,当在第一帧与后一帧之间的每个像素变化的最大值没有超过预定值时,运动标志保持不设置。
运动块包括来自第一帧中编码的2D块与后一帧中编码的2D块的Q码。相应于单个编码的2D块的Q码的集合称为ADRC瓷砖。因此,一个运动块生成两个ADRC瓷砖。然而,由于缺乏运动,静止块只需包括运动块一半数量的Q码,从而只生成一个ADRC瓷砖。在本实施例中,通过平均第一帧中的2D块与后一帧中相应的2D块之间相应的像素值来生成静止块的Q码。随后编码每个平均的像素值,得到形成单个ADRC瓷砖的Q码的集合。因此,运动块1110与1130生成ADRC瓷砖0、1、3与4。静止块1120生成ADRC瓷砖2。
图11a的链接的ADRC瓷砖生成将ADRC瓷砖0-4的Q码链接为链接的ADRC瓷砖B。特别地,对包括在ADRC瓷砖0、1、2、3与4中的每个Q码(q0-q63)执行链接,得到链接的ADRC瓷砖B的64个Q码。或者,利用下面的数学等式来描述链接的ADRC瓷砖B中的每个Q码(Qi)的生成:
Qi=[qi,0,qi,1,qi,2,qi,3,qi,4]i=0,1,2,…63
2.Q码重新分配
Q码重新分配保证在空间上不连续的像素内定位由于传输损耗而引起的比特差错。特别地,在Q码重新分配期间,Q码进行重新分布并混洗重新分布的Q码的比特。因此,因为未损坏的像素包围着每个损坏的像素,所以Q码的重新分配便于差错恢复。而且,因为像素损坏均匀分布在整个ADRC块上,所以有助于DR与MIN恢复,下面在数据恢复讨论中具体描述DR与MIN恢复。
图12表示在1/6突发差错损耗的传输损耗期间像素恶化的一个实施例。特别地,2D ADRC块1210、1220与1230均包括利用3个比特编码的64个像素。因此,2D ADRC块的每个像素(从P0到P63)利用三个比特来表示。2D ADRC块1210表示在丢失每六个比特之中的第一比特时比特的比特损耗模式,这利用暗方框来表示。同样地,分别以2D ADRC块1220与1230来表示每六个比特之中第二比特或第四比特丢失时的比特损耗模式。图12表示在Q码不重新分配的情况下2D ADRC块1210、1220与1230的所有像素的一半由于1/6突发差错损耗而被破化。
就一个实施例而言,Q码重新分配独立应用于存储在缓冲器中的每个链接的ADRC瓷砖,因而保证在去混洗时在空间上不相交的像素内定位比特差错。在另一可选择实施例中,Q码的重新分配应用于存储在缓冲器中的每个ADRC块。
图12a表示从链接的ADRC瓷砖中生成混洗的Q码比特的比特流的Q码重新分配的一个实施例。表122与表132表示Q码重新分布。比特流130与140表示Q码比特的混洗。
表122表示用于链接的ADRC瓷砖A的链接的Q码。Q0是第一链接的Q码,而Q63是最后一个链接的Q码。表132表示Q码重新分布。对一个实施例而言,Q0、Q6、Q12、Q18、Q24、Q30、Q36、Q42、Q48、 Q54与Q60包括在第一集、分区0中。根据表132,后面的11个链接的Q码包括在分区1中。这些步骤对分区2-5重复。利用表132中的垂直线来描述分区的边界。链接Q码的此不相交的空间分配到六个分区保证1/6突发差错损耗导致分布在一组连续像素上的比特损耗模式。
图12b表示由于重新分布的Q码的1/6突发差错损耗而引起的比特模式损耗的一个实施例。特别地,2D ADRC块1215、1225与1235均包括利用三个比特编码的64个像素。因此,每个2D ADRC块的每个像素P0-P63利用三个比特来表示。在2D ADRC块1215、1225与1235中,利用暗方框表示的比特损耗模式定位在一组连续的像素上。因此,对于给定的分段损耗来说,每个2D ADRC块1215、1225与1235内只有11个连续的像素被破化。在另一可选择实施例中,Q码分配分区包括来自不同运动块的Q码,从而给六个分段提供Q码的不相连的空间与时间分配。这在1/6突发差错损耗期间得到另外的未损坏的空间-时间像素并且进一步有助于强有力的差错恢复。
参见图12a,表132中重新分布的Q码的比特在生成的比特流上进行混洗,于是比特流中相邻的比特来自相邻的分区。表132中所有分区的Q码比特链接到比特流130中。对于给定的分区,比特流130中相邻比特分散到所生成的比特流140中的每一个第六比特位置上。因此,比特流140的比特号0-5包括每个分区中第一Q码的第一比特。同样地,比特流140的比特号6-11包括每个分区中第一Q码的第二比特。对所有的Q码比特重复此处理。因此,1/6差错损耗将导致空间上不相连的像素损耗。
图12c表示重新分配(即,重新分布与混洗)的Q码的1/6突发差错损耗所引起的比特模式损耗的一个实施例。特别地,2D ADRC块1217、1227与1237均包括利用三个比特编码的64个像素。因此,每个2D ADRC块的每个像素P0-P63利用三个比特来表示。在2D ADRC块1217、1227与1237中,利用暗方框表示的比特损耗模式分布在空间上不相连的像素上,从而有助于像素差错恢复。
3.Q码比特的随机化
Q码比特利用掩蔽密钥进行随机化,以辅助解码器恢复丢失与损坏的数据。特别地,在编码期间利用KEY表示的密钥用于掩蔽Q码的比特流。因此,解码器必须识别KEY的正确值来去混洗(unmask)Q码的比特流。
在一个实施例中,KEY用于掩蔽利用三个ADRC块的Q码重新分配生成的Q码的比特流。如前文所述,一个ADRC块包括FL数据与Q码。利用FL数据值和与相应的ADRC块相关的量化比特(“qi”)数量的组合来生成掩蔽密钥的每个密钥元素(“di”)。在一个实施例中,运动标志与Q比特用于定义一个密钥。因此,在此实施例中,从下面的数学等式中生成密钥元素的值:
di=5·mi+qi其中i=0,1,2和qi=0,1,2,3,4
变量mi等于运动标志。因此,在相应的ADRC块为静止块时,mi等于0,而在相应的ADRC块为运动块时,mi等于1。而且,变量qi表示用于编码相应的ADRC块的量化比特。因此,qi具有用于四比特ADRC编码技术的0、1、2、3或4的值。在一个实施例中,根据下面的等式利用三个密钥元素(“di”)定义用于三个ADRC块的一个组的KEY:
KEY=d0+10.d1+100.d2
因而,在运动标志或Q比特数据的恢复期间,根据用于生成掩蔽密钥的值来再生可能的密钥值。所再生的密钥值用于去混洗接收的Q码的比特流,得到候选的解码。下面在数据恢复的讨论中提供再生密钥值与特定候选解码选择的具体描述。
在另一可选择实施例中,从各种密钥元素中生成掩蔽密钥。因而,给解码器提供涉及一个密钥元素的特定信息而不必通过传输介质发送此元素。在一个实施例中,与ADRC块相对应的DR或MIN值用于生成掩蔽密钥来掩蔽表示此ADRC块的比特流。
图10-12表示容许传输期间高达1/6分组数据损耗的组内VL数据混洗。本领域技术人员将意识到,能改变总的分区数量与比特间隔,以保证抵抗1/n突发差错损耗。
分段之间FL数据混洗
分段之间FL数据混洗描述在不同分段之间重新调整块属性。重新调整块属性提供分布的数据损耗。特别地,当在传输期间丢失来自一个分段的FL数据时,丢失的DR值、MIN值与运动标志值不属于同一块。图13与14表示分段之间FL数据混洗的一个实施例。
图13表示分段0-5的内容。对一个实施例而言,每个分段包括880个DR,880个MIN、880个运动标志和与660个Y块、110个U块及110个V块相对应的VL数据。如图MIN混洗1300所示的,用于分段0的MIN值移到分段2,用于分段2的MIN值移到分段4,而用于分段4的MIN值移到分段0。另外,用于分段1的MIN值移到分段3,用于分段3的MIN值移到分段5,而用于分段5的运动标志移到分段1。
图13a表示运动标志混洗。如所示的,在图运动标志混洗1305中,用于分段0的运动标志值移到分段4,用于分段2的运动标志值移到分段0,而用于分段4的运动标志值移动到分段2。另外,用于分段1的运动标志值移到分段5,用于分段3的运动标志值移到分段1,而用于分段5的运动标志值移到分段3。损耗模式1310表示传输期间分段0丢失之后FL数据损耗。
对于特定的块属性,图13与图13a都表示在分段之间混洗特定块属性的所有示例。例如,在图13中,来自分段0的880个MIN值与分段2中的880个MIN值一起进行交换。同样地,在图13a中,用于分段0的880个运动标志与分段4中的880个运动标志一起进行交换。在连续分组的传输损耗期间,此块属性的集中混洗导致块组的不成比例的特定块属性的损耗。在一个实施例中,一个块组包括三个ADRC块。
图14表示用于DR、MIN与运动标志值的模块化三混洗处理的一个实施例。模块化三混洗描述三个不同分段中的三个块(即,一个块组)上共享的混洗模式。对于三个不同分段内的所有块组,重复此混洗模式。然而,对于不同的组属性,使用不同的混洗模式。因此,模块化三混洗处理在所有三个分段上分布块属性。特别地,对于给定的一个块组,模块化三混洗保证在分段传输损耗期间只丢失一种特定块属性示例。因此,在下述的数据恢复处理期间,生成减少数量的候选解码来恢复块内的数据损耗。
如DR模块化混洗1410中所示,一个分段存储880个DR值。因此,根据从中导出给定DR值的块给这些DR值编号0-879。在模块化三混洗中,混洗三个分段的FL数据的内容。0-2的计数用于识别用于模块化混洗的三个分段中的每个DR值。因此,属于编号为0,3,6,9…的块的DR值属于计数0。同样,属于编号为1,4,7,10…的块的DR值属于计数1,而属于编号为2,5,8,11…的块的DR值属于计数2。因而,对于给定的计数,与那个计数相关的DR值在分段0、2与4上进行混洗。同样,与同一计数相关的DR值在分段1、3与5上进行混洗。
在DR模块化混洗1410中,属于计数0的DR值不进行混洗。属于计数1的DR值进行混洗。特别地,分段A中的计数1DR值移到分段B,分段B中的计数1 DR值移到分段C,而分段C中的计数1 DR值移到分段A。
属于计数2的DR值也进行混洗。特别地,分段A中的计数2 DR值移到分段C,分段B中的计数2 DR值移到分段A,而分段C中的计数2 DR值移到分段B。
MIN模块化混洗1420表示MIN值的模块化三块属性混洗处理的一个实施例。一个分段包括880个MIN值。在MIN模块化混洗1420中,用于DR模块化混洗1410中的计数1与计数2的混洗模式移到计数0与计数1。特别地,用于DR模块化混洗1410中的计数1的混洗模式应用于计数0。用于DR模块化混洗1410中的计数2的混洗模式应用于计数1,而属于计数2的MIN值不进行混洗。
运动标志模块化混洗1430表示运动标志值的模块化三块属性混洗处理的一个实施例。一个分段包括880个运动标志值。在运动标志模块化混洗1430中,用于DR模块化混洗1410中的计数1与计数2的混洗模式分别移到计数2与计数0。特别地,用于DR模块化混洗1410中的计数2的混洗模式应用于计数0。用于DR模块化混洗1410中的计数1的混洗模式应用于计数2,并且属于计数1的运动标志值不进行混洗。
图14a表示模块化混洗1410、1420与1430的模块化混洗结果。模块化混洗结果1416表示属于分段0的块的每个属性目的地。在此示例中,分段0对应于图14的分段A。根据图14的模块化混洗1410、1420与1430来定义此目的地。图14a也表示在传输期间丢失分段0之后块属性的分布损耗。特别地,损耗模式1415表示在对初始利用模块化混洗1410、1420与1430进行混洗的接收数据进行随后的去混洗之后6个分段上的DR、运动标志与MIN值损耗。如图14a所示,块属性损耗周期性地分布在分段0、2与4上,而分段1、3与5没有块属性损耗。因此,空间损耗模式1417表示在传输期间丢失分段0之后损坏的FL数据的去混洗的空间分布。空间损耗模式1417表示在对接收的数据进行随后的去混洗之后DR、运动标志与MIN值损耗。在空间损耗模式1417中,损坏的块四周是未被损坏的决,并且能利用四周未被损坏的块来恢复损坏的块属性。
图14与14a表示模块化三混洗模式与在传输期间丢失分段之后块属性的分布损耗。在可选择的一个实施例中,改变计数变量或分段数量来改变丢失的块属性的分布。图14b表示模块化混洗结果1421与损耗模式1420。同样地,图14c表示模块化混洗结果1426与损耗模式1425。损耗模式1420与损耗模式1425都表示与前述的3个分段相对的6个分段上的块属性的分布损耗。
打算在可选择的实施例中将分布块属性的各种组合来执行混洗处理。
分段之间VL数据混洗
在分段之间VL数据混洗处理期间,安排例如6个分段的预定数量的分段之间的比特来保证在高达1/6分组传输损耗期间空间隔开与周期性的VL数据损耗。图15与16表示分段之间VL数据混洗处理的一个实施例。
在本实施例中,希望达到30Mb/s的传输速率。因此,此所需的传输速率导致可用于60个缓冲器之中每一个缓冲器中VL数据的31152个比特。其余空间由包括在一个缓冲器中的88个块的FL数据使用。图15包括达到30Mb/s传输速率的帧集内的VL数据缓冲器结构。如上所述,部分缓冲用于最大化每个缓冲器内可利用的VL数据空间的使用,并且未使用的VL空间利用后置码来填充。
图16表示保证空间上隔开与周期性VL数据损耗的混洗处理的一个实施例。第一行表示来自图15的60个缓冲器的VL数据重新安排在链接的1869120比特流中。第二行表示新的比特流中每个第六比特的集合。因而,在解码器随后反向此处理时,高达1/6的发送数据的突发损耗变换为周期性的损耗,其中至少5个未被损坏的比特隔开每个集合的两个损坏的比特。
第三行表示将流2的每10个比特组合为新的比特流,即流3。组合的边界也利用一个分段中的比特数量来定义。每个第十比特的流2的组合保证1/60数据损耗得到每个集合的两个损坏的比特之间59个未被损坏的比特,这在丢失88个连续的数据分组的情况中提供空间上隔开与周期性的VL数据损耗。
第四行表示将流3的每11个比特组合为流4。组合边界也利用一个分段中的比特数量来定义。每个第11比特的流3的组合保证1/660数据损耗得到两个损坏的比特之间659个未被损坏的比特,导致8个连续分组的传输损耗期间空间上隔开与周期性的VL数据损耗。
流4内的每组31152个比特连续存储在缓冲器0-59中,其中第一组的比特存储在缓冲器0中,而最后一组的比特存储在缓冲器59中。
本领域技术人员将意识到,图16的组合要求可用于保证高达1/n传输损耗的空间上隔开与周期性的VL数据损耗容限。
传输
上述的混洗处理生成具有混合的FL数据与VL数据的缓冲器。对于一个实施例来说,分组根据分组结构200从每个缓冲器中生成并通过传输介质135进行发送。
数据恢复
如上所述,用于编码数据比特流的创新方法能进行一般由于丢失的数据分组而出现的数据的强有力恢复,已经在图4中示出此解码处理的概要。
参见图4,利用多级去混洗处理(步骤425、430、435与440)来处理分组中接收的数据,其中利用分组接收的比特流的不同级或部分进行去混洗来检索数据。然后根据本领域(例如,1991年9月4-6日在意大利都灵召开的Fourth International Workshop on HDTVand Beyond会议上Kondo、Fujimori、Nakaya的文章“AdaptiveDynamic Coding Scheme for Future HDTV Digital VTR”)公知的教导对此数据进行ADRC解码。
随后执行帧集块内去混洗并接着执行块-图像变换,步骤450、455。步骤425、430、435、440、445、450与455是为编码数据而执行的上述处理步骤的逆处理并且在此不再进行详细描述。然而,应注意:在一个实施例中,利用步骤425、430与440表示的去混洗级是数据独立的。例如,所执行的去混洗处理利用地址变换或表查找来预定或规定。由于去混洗步骤425、430与440和数据内容无关,所以例如由于分组损耗而引起的数据损耗不阻止执行去混洗步骤。同样地,步骤450与455是数据独立的。然而,组内VL数据去混洗处理取决于数据的内容。更特别地,组内VL数据去混洗处理用于确定用于这些组的块的量化码。因此,在步骤435,如果丢失分组,则不能处理受影响的组。
在执行去混洗、解码与变换(步骤425、430、435、440、445、450与455)之后,执行恢复处理,以恢复位于丢失的分组中的Q比特与运动标志值。一般由于DR损耗(由于丢失的分组)而丢失Q比特值。在不知道Q比特或运动标志值时,不能从数据比特流中确定像素的Q码比特。如果未正确确定Q比特或运动标志值,则此差错将传播为其中将不正确识别缓冲器中数据的后续块的开始点。
图17描述用于恢复Q比特与运动标志值的一般处理。此特别实施例描述利用多个数据块来恢复Q比特与运动标志值的处理,然而,打算特定数量的块不受本文讨论的限制并能是一个或多个块。参见图17,根据比特流中差错的检测,步骤1705,为所检查的3个块生成基于特定参数的候选解码。在步骤1715,每个候选解码根据其是正确解码的可能性进行评分,并在步骤1720,使用具有最佳评分的候选解码,此解码识别能进行受影响的决的像素的后续解码的Q比特与运动标志值。
再参见图4的解码处理,一旦选择最佳的解码,恢复由于丢失的分组而丢失的任意DR或MIN值,步骤465。能采用本领域技术人员公知的各种恢复处理来恢复DR与MIN,包括相邻块的值的最小平方或平均值。例如,参见1991年9月4-6日在意大利都灵召开的FourthInternational Workshop on HDTV and Beyond会议上Kondo、Fujimori、Nakaya的文章“Adaptive Dynamic Coding Scheme forFuture HDTV Digital VTR”。在本实施例中,创新的图像-块变换处理与从中生成的数据结构增加相邻块的数量,从而提供附加的数据并有助于更准确的DR或MIN恢复。特别地,在一个实施例中,根据下式恢复DR与MIN:
其中DR’对应于恢复的DR,qi是ADRC块中的第i个值并且qi∈{0,1,…2Q-1};对于边缘匹配ADRC,m=2Q-1,而对于非边缘匹配ADRC,m=2Q;Yi是相邻块像素的解码值;Q是Q比特值;和
其中MIN’对应于恢复的MIN和N是相加中使用的项的数量(例如,当i=0-31时,N=32)。在另一实施例中,如果同一块的DR与MIN同时被损坏,根据下面等式来恢复DR与MIN:
在步骤470,在步骤475对先前未在Q比特与运动标志恢复之前解码的那些块进行ADRC解码并执行像素恢复处理来恢复由于丢失的分组或随机差错而可能出现的任何有差错的像素数据。另外,在步骤480执行3∶1∶0→4∶2∶2后变换,以便以显示所需的格式来设置图像。
图18表示本发明的解码处理的Q比特与运动标志恢复处理的一个特殊实施例。在此特殊实施例中,此处理的输入是相邻块信息,和三个块的块属性与像素数据将进行处理。也输入表示丢失数据位置的差错标志。这些差错标志能以本领域技术人员公知的各种方法来生成并且除了假定这些标志表示哪些比特是利用损坏的或丢失的分组发送的之外在本文将不再进一步进行讨论。
在步骤1805,生成候选解码。能以各种方式来生成候选解码。例如,虽然处理负担相当重要,但候选解码能包括所有可能的解码。或者,能根据预先规定的参数生成候选解码来减小要进行评估的候选解码的数量。
在本实施例中,根据用于随机化上述的组内VL数据混洗处理的比特流的可能的密钥值确定候选解码。另外,应注意:候选解码还受仍要进行解码的比特的长度和多少块保留的知识的限制。例如,如下文将要讨论的,如果处理最后的一块,一般知道那个块的解码长度。
继续本实施例,图19表示本实施例的可能情况,其中值X表示(可能由于分组损耗而)未知的值。这利用示例进一步进行解释,mi定义为第i块的运动标志,qi是第i块的量化比特的数量,ni是第i块可能候选的数量,而di是组内VL数据混洗中上述的第i块的密钥元素的值。在每个组内定义第i块。在此示例中,每组内的块数量为3,用于这3块组的密钥生成为d0+10d1+100d2。假设不知道第一块中的运动标志并且量化比特数量为2,m。等于X,而q0等于2。根据上述的等式来生成密钥元素,di=15·mi+qi,用于d0的可能的数字集合由{2与7}构成。因而,可能值(n0)的数量为2。假设第二块具有值为1的运动标志值和一个量化比特,并且d1的值为5*1+1=6和n1=1。第三块具有为1的运动标志值和未知数量的量化比特。因而,数字比特d2包括由{6,7,8,9}组成的集合和n2=4。因而,此组可能的候选数量M为2·1·4=8,并且用于生成候选解码的密钥为662、667、762、767、862、867、962、976的变量。此处理最好用于受数据损耗影响的每一组。
再参见图17,在步骤1715,一旦根据密钥数据解码此数据,所生成的候选解码进行评估或根据其是此数据的正确解码的可能性进行评分。在步骤1720,选择使用具有最佳评分的候选解码。
各种技术能用来对候选编码进行评分。例如,此评分能从特定候选解码的块的像素如何与此图像的其他像素相符的分析中导出。此评分最好根据诸如平方差错与相关性的表示差错的准则来导出。例如,对于相关性,假设相邻像素将多少有点密切相关是相当安全的。因而,相关的多或少表示候选解码是否是正确解码。
如图18所示,分析四种不同的准则来选择最佳的候选解码。但是,打算能分析一、二、三或更多的不同准则来选择最佳的候选解码。
参见图18,本实施例利用随后组合为一个最后评分的四个子评分准则。特别地,在步骤1815,生成平方差错测量,在步骤1820,确定水平相关性,在步骤1825,确定垂直相关性,并在步骤1830,测量时间活动(根据M个候选、N个块和数据的2个帧/块的每个M乘2*N矩阵)。虽然使用水平与垂直相关性,但应认识到能检查包括对角相关性的许多相关性测量。在步骤1835、1840、1845、1850,为每个准则生成置信测量来标准化所生成的测量,并在步骤1855、1860、1865与1870,生成每个不同准则的概率函数。这些概率函数然后例如通过乘以一个概率值来进行组合以生成一个评分,例如图18中所示的似然函数。用于候选解码的评分随后与所有候选解码评分进行比较来确定可能的候选。
应认识到:各种技术能用来评估候选解码并为每个候选生成“评分”。例如,置信测量是标准化准则的一种方式。而且,能使用除上述之外的各种置信测量。同样地,乘以基于每个准则的概率值来生成总的似然函数仅仅是组合检查的各种准则的一种方式。
编码处理有助于最佳候选解码的确定,这是因为不是可能候选的候选解码一般将具有相对差的评分,而是非常可能的候选的解码将具有明显较好的评分。特别地,组内VL数据混洗处理中前述的Q码随机化处理有助于这方面。
图20a、20b、20C与20d提供为生成特定候选解码的评分与总评分而在图18的步骤1815、1820、1825与1830上执行的不同测量的说明。图20a表示在与其解码的相邻Yi,j相比较时评估候选解码像素Xi的平方差错,其中下标“i,j”与“i”的相邻地址相对应。最好除去一些最大的项以消除由于尖峰值(这是由于图像中的合法边缘而引起的项)引起的任何影响。最好地,抛弃(Xi-Yi,j)2的三个最大项以消除可能出现的尖峰值。图20b表示时间活动准则。这只有在其是或假定是运动块时才可应用。此时间活动准则假定:候选解码越好,块之间的差异越小。因此,候选解码越坏,块之间的差异就越大。空间相关性假定:最有可能的候选解码将导致大的相关性,这是因为真实图像趋于以缓慢不变的方式变化。图20c所示的水平相关处理与图20d所示的垂直相关处理利用那个假定。
图18的步骤1835、1840、1845与1850上的置信测量提供用于标准化以前步骤(步骤1815、1820、1825与1830)中确定的准则的处理。在一个实施例中,例如,平方差错的置信测量从间隔[0,1]中取值,而置信度在差错相等时等于0并在一个差错为0时等于1。也考虑标准化的其他测量或方法。
同样地,空间相关性的置信测量是:
最大(Y,0)-最大(X,0)
其中Y是最佳相关值,而X是当前候选解码的相关值。根据下式确定时间活动置信测量:
conf=(a-b)/(a+b)
其中a=最大(X,M-TH)和b=最大(Y,M-TH),其中M-TH是候选块的运动门限,而Y是最佳测量,即最小的时间活动,并且X等于时间活动的当前候选测量。
在图18的步骤1855、1860、1865与1870上,为每个不同准则生成概率函数。能利用许多方法来生成概率测量。例如,评分能规定为置信测量。如果置信测量大于预定的值,例如0.8,则基本评分减10;如果置信测量在0.5与0.8之间,则基本评分减5。图21表示其中一张表用来生成用于平方差错测量准则的概率函数的一个实施例。此表包括根据经验确定的包含置信与平方差错测量的任意存储的数据和已知的候选解码。更特别地,此表可以利用未损坏的数据并假定DR被破坏或丢失来生成,然后生成正确或不正确解码的密钥与置信测量。此表反映正确与不正确解码的概率比率。利用此表,对于特定平方差错值(行)与置信值(列),能确定概率。例如,因此能明白:对于零的置信测量时的各种平方差错测量,具有近似40%-50%的候选是正确的概率。如果置信不是0,但是小,概率显著地下降。根据相应经验确定的准则测量与置信测量为相关性与时间测量生成相似的概率表。
在本实施例中所生成的概率认为是生成“评分”的数据,并如前所述,可以使用其他的技术来对候选解码进行评分。在步骤1875,不同的概率组合为似然函数Li=j*Pi,j,其中j是概率函数Pi,j的放大函数,而Pi,j是候选I、块j的概率函数,因此此候选选择为最大化函数Li的一个候选。
再参见图18,可能需要恢复在丢失的分组中发送的某些块属性。因此,在步骤1810,在需要时恢复DR与MIN值。可以利用从缺省值、平均、平方差错函数到更复杂技术的包括在1993年9月20-22日在澳大利亚墨尔本召开的IEEE Visuol Signal Proccssing andCommunications会议上Kondo、Fujimori、Nakaya的文章“AdaptiveDynamic Range Coding Scheme for Future HDTV Digital VTR”以及Kondo、Fujimori、Nakaya与Uchida的文章“A New ConcealmentMethod for Digital VCR”中讨论的各种技术来如上所述生成候选解码。
或者,在Q比特确定处理期间确定DR与MIN值,这在图22示出。特别地,如前所述,在本实施例中,运动标志与量化比特的数量用于编码处理中并在以后在恢复处理期间进行使用来减少可能的候选解码的数量。如前所述,也能使用其他的信息。因而,DR的值和/或MIN的值也可以用于编码此数据。或者,DR比特的一部分用于编码(例如,DR的二个最低有效比特)。虽然编码DR数据,但在增加变量时可能的候选解码的数量明显地增加。参见图22,因此生成K*.M候选解码,其中K是未知数据的候选值的数量,例如,如果编码DR1、DR2与DR3之和的二个比特(DR1、DR2与DR3代表此组的块的DR值),则K=4。因此,利用提供的辅助信息,例如DR1、DR2与DR3之和的编码的二个比特来恢复DR与MIN。这以附加开销为代价来改善候选选择的处理,以检查更大数量的候选解码。
应注意:一般地,解码的相邻块越多,Q比特与运动标志恢复处理就越好。而且,在一些实施例中,此处理应用于缓冲器的每个后续块;如果所有或一些FL数据可利用,则能减少候选解码的数量,有可能减少到一个候选解码,假定一个块的所有FL数据可利用的话。但是,由于Q比特与运动标志恢复处理是相对耗时的一个处理,所以希望一起避免此Q比特与运动标志恢复处理。而且,希望使用尽可能多的信息来执行Q比特与运动标志恢复处理。在一个实施例中,从缓冲器的开头开始处理块,直至到达具有丢失的Q比特/运动标志信息的块,这定义为前向Q比特与运动标志恢复。在另一个实施例中,参照缓冲器的末尾来确定缓冲器的最后一块的末尾位置并从此缓冲器的末尾中恢复数据,直至到达具有丢失的Q比特/运动标志数据的块。这定义为后向Q比特与运动标志恢复。
如前所述,块的长度由于VL数据的长度而是变化的,因此需要确定形成块的VL数据的比特的数量,以便能准确定位此缓冲器中后续块的位置。在编码处理期间,预定的与最好易于识别的模式的后置码放置在缓冲器中以填充未用的比特位置。在解码处理期间,后置码将放置在此块与缓冲器的末尾之间。由于此模式是易于识别的,所以比特模式的检查能使系统定位后置码的开头并因此定位此缓冲器中最后一块的末尾。此信息能以两种方式来使用。如果最后一块包含损坏的Q比特/运动标志数据并已知最后一块的开头(例如,已成功解码前面的块),紧接在前面的块的末尾与后置码的开头之间的差与此块的长度相对应。此信息能用于计算块的Q比特和/或运动标志。后置码的开始位置也能用于执行在此缓冲器的最后一块上开始并朝向此缓冲器的开头继续的Q比特与运动标志恢复。因而,能双向实施Q比特与运动标志恢复处理。
图23表示在双向Q比特与运动标志恢复处理中后置码的使用。参见图23,缓冲器2300包括VL数据块的N个组的FL数据2303。每组由多个块(例如,3个块)构成。在本实施例中,解码前面两个组2305、2310,并由于损坏的DR/运动标志数据而不能立即解码第三组215。此时,为了恢复损坏的数据而要求Q比特/运动标志恢复处理。不以前向方向继续处理这些组,此处理反而参照通过查找后置码模式220确定的缓冲器的末尾。确定后置码的开头并因此确定块的最后一组的末尾。因为DR/运动标志数据表示VL数据的长度,所以确定最后一块的VL数据的开头并因此确定紧接在前面的一块的末尾。因此,能解码这些块,例如块225、230、235,直至到达具有损坏数据的块240。然后最好利用上述的Q比特/运动标志恢复处理来恢复损坏的215、240和阻塞的块250。
应注意:双向处理不限于前向与反向处理的顺序;处理能以任一方向或双向进行。而且,在一些实施例中,可以要求并行执行这样的处理来提高效率。最后,打算通过直接存取Q比特/运动标志信息可以恢复未损坏的阻塞的块而不执行上述的Q比特/运动标志恢复处理。
如上所述,各种评分技术可以用来确定选择为解码的最佳候选解码。在另一可选择实施例中,评估使用每个候选解码的图像的平滑度。在一个实施例中,完成Laplacian(拉氏)测量。Laplacian测量测量第二阶图像表面特性,例如表面曲率。对于线性图像表面,即光滑平面,Laplacian测量将得到近似为0的值。
将参考图24a、24b与24c来说明此处理。图24a表示Laplacian内核的一个实施例。打算也可以使用其他的实施例。内核“L”表示3×3区域。为测量图像区域的平滑度,图像(图24b)的3×3子区域利用内核进行卷积并平均卷积值。能根据应用改变区域与子区域的尺寸(并因此改变内核尺寸)。
参考图24c描述此处理的一个实施例。此实施例利用内核和3×3的子区域尺寸以及8×8的区域尺寸,利用下标i,j来识别各个元素。在步骤2460,标准化候选解码的值X[i][j]。例如,可根据下式标准化这些值:
在步骤2465,这些标准化的值用于根据下式计算表示平滑度的块Laplacian值Lx。
块Laplacian值越接近0,图像部分就越平滑。因而,能根据块Laplacian值测量评分,并且具有最小的Laplacian值的解码为正确的解码。
也能利用候选编码的值q[i][j]来实现Laplacian评估。基本处理与图24c的候选解码值情况相同。此实施例使用内核与3×3的区域尺寸以及区域尺寸8×8,利用下标i,j来识别各个元素。在步骤2460,标准化候选编码的值q[i][j]。例如,能根据下式标准化这些值:
在步骤2465,标准化的值用于根据下列等式计算表示平滑度的块Laplacian值Lg:
块Laplacian值越接近0,图像部分就越平滑。因而能根据块Laplacian值测量评分,并且具有最小的Laplacian值的候选是正确的。
再考虑其他的变化。在可选择实施例中,更高阶图像表面特性能用作平滑测量。在那些情况中,使用更高阶内核。例如,可以利用第四阶内核执行第四阶块Laplacian测量。利用级联的两个第二阶Laplacian计算能实现这样的第四阶内核。
还认为评估处理取决于图像是否具有大于预定级别的活动或运动。如果图像部分评估为具有大于预定级的运动,则最好在场的基础上而不在帧的基础上执行测量,这结合图25来解释。图25解释利用平滑度测量的处理;然而,认为能利用各种类型的测量来实施此处理。
图像区域的帧2505由场0与场1构成。如果未检测到运动,步骤2510,通过计算每个帧内块的块Laplacian值来计算平滑度测量,步骤2515。如果检测到大于预定级的运动,则对每个场执行块Laplacian测量,步骤2520、2525,并组合这两个测量,步骤2530,例如,进行平均来生成平滑度测量。
能以各种方法来检测/测量运动。在一个实施例中,评估场之间变化的程度并在此变化程度超过预定门限时检测到运动。
运动检测和帧信息及场信息的使用来生成恢复的值(一般替换丢失或损坏的值)能应用于要求生成恢复值的处理的任何一个部分。例如,运动检测和帧信息及场信息的选择使用来生成恢复的值能应用于DR/MINF恢复、像素恢复以及Q比特与运动标志恢复处理。因而,根据所检测的运动的级别,此恢复处理将利用场基础上或帧基础上已有的信息。而且,此处理能与特定方向(例如,水平或垂直)上根据相关级别选择的加权值的应用进行组合。
在Q比特与运动标志恢复处理的另一实施例中,根据块内与块之间测量来评估候选解码。在下面的讨论中,术语“块”指帧或场的一部分。块内测量评估候选解码的图像部分,例如,图像部分的平滑度。块之间测量测量候选解码怎样与相邻图像部分相符。图26a与图26b表示组合的块之间与块内评估。特别地,图26a表示可作为块之间与块内测量接受的候选解码是好的,而在图26b中即使块内测量相当好,但块之间测量是差的。
块内测量的示例包括上述的平滑度测量。块之间测量的示例包括上述的平方差错测量。另一可选择的块之间测量是相容的边界像素与候选ADRC块上边界像素总数的比值。
将参见图26c、26d和26e解释进行ADRC编码的8×8块的块之间与块内评估的示例。图26d表示由从中生成候选解码值X的q个值构成的编码值2650与由Y个值构成的相邻解码数据2655的数据的图像部分(块)。如图26C的流程图所示的,在步骤2605,计算块内测量来生成测量,例如块Laplacian Lx。在步骤2610,计算块之间测量Sx,以便生成相邻块之间的相容性的测量。在步骤2615,生成组合的测量Mx,此组合的测量提供用于选择候选解码的信息。
在当前实施例中,Sx计算为位于候选解码(参见图26e)的每个边界像素的有效范围内的相邻数据的数量。图26e是表示一个实施例的有效范围的表,表示每个观察的量化值qi的有效范围。因而,LQDR<UQ,其中LQ、UQ分别表示与量化比特=Q的数量相对应的DR的下与上边界。最好根据下式标准化Sx:Sx=Sx/边界像素的数量
在本实施例中,根据下列等式计算组合的测量:Mx=Sx+(1-Lx)。或者,可以加权组合的测量,以致将使用下式:Mx=W·Sx+(1-w)·(1-Lx),其中W是加权值,一般是根据经验确定的加权值。
再考虑用于确定已丢失/损坏的DR与MIN值的其他实施例。例如,上述等式能修改为利用较高的准确性来恢复DR与MIN值。在另一可选择实施例中,应用中值技术。在中值技术的一个实施例中,MIN的值恢复为如下计算的所有MINi值的中值:
MINi=Yi-qi·s
其中qi表示编码的像素值,而Yi表示与qi相邻的解码像素。对于边缘匹配ADRC,s=DR/(2Q-1)。对于非边缘匹配ADRC,s=DR/2Q,其中Q表示每个像素的量化比特的数量(Q比特值)。
所使用的值可以是时间上近似或空间上近似。Yi的值可以是相邻帧/场或同一场中相邻像素的解码的值。Yi的值可以是来自与相邻帧/场中或同一场中的qi相同的位置的像素的解码值。
另外,任意一个DR和/或MIN恢复技术可以与剪切处理进行组合来提高恢复准确度并在恢复处理期间阻止数据溢出。此剪切处理将恢复的数据限制到值的预定范围;因而,在此范围之外的值剪切到最接近的范围界限。在一个实施例中,剪切处理将值限制在[LQ,UQ]的范围内,其中LQ、UQ分别表示利用量化比特数量=Q个量化比特表示的像素值范围的下与上边界,并且还将值限制为:MIN+DR Num,其中Num表示最大的像素值;在本实施例中,Num是255。在本实施例中,可应用UQ+1=LQ+1。
将此准则组合在单个等式中得到DR的无界的恢复值(val’),从下式中获得最后剪切的恢复值(val):
Val=max(min(val,min(UQ,255-MIN)),LQ)
其中min与max分别表示最小与最大函数。
在另一可选择实施例中,能过滤用于生成恢复的DR和/或MIN的边界像素y
i为只使用显示最佳相关的那些边界像素,从而更好地恢复DR与MIN。不使用不满足此准则的那些边界像素。在一个实施例中,如果存在使L
Q D
R<U
Q的DR的值并且原始像素y
i已编码为q
i,则认为边界像素y
i对于DR计算是有效的。因而,如果满足下列等式,则像素是有效的:
其中m表示最大的量化级=2Q-1。然后能根据下式计算DR恢复值(val′):
随后能将此值剪切到有效范围内。因而,此处理强迫DR恢复值到利用门限表定义的有效区域内,减少其真的DR位于门限表边界附近的点的准确性。
已经说明:由于量化噪音,静止ADRC块的DR在帧与帧之间轻微地变化。如果此变化经过ADRC编码边界,和如果DR在几个连续帧上进行恢复,那么具有有效像素选择的DR恢复值在每个交叉点趋于过冲,导致显示时明显的闪烁效果。在为减少此效果出现的尝试中,在一个实施例中,修改有效像素选择处理以便松弛(relax)上与下边界,允许边界像素侵入相邻有效区域。通过包括正好在边界外部的点,恢复值将更有可能取靠近上或下边界的值。利用松弛常数r计算松弛边界L′Q与U′Q。在一个实施例中,r设置为5,能使用其他值:
L′Q=rLQ-1+(1-r)LQ
U′Q=(1-r)UQ+rUQ+1
上述讨论提出在DR与MIN值被损坏或丢失时恢复这些值的许多方法。通过检查时间和/或空间上数据之间的相关性并因此根据计算的恢复值进行加权能实现进一步的增强。更特别地,如果在特定方向或时间上具有大的相关性,例如水平相关性,则很有可能在具有大相关性的那个方向上图像特性继续平滑,并因此使用高相关数据恢复的值一般生成较好的估算。为利用此,边界数据分散在相应的方向(例如,垂直、水平、场-场)中并根据相关测量加权来生成最终恢复的值。
参考图27a描述此处理的一个实施例。在步骤2710,在一个方向上生成将要恢复的DR或MIN值的恢复值,并在步骤2715,在另一方向上生成恢复的值。例如,如果此处理在空间上是自适应的,那么沿水平边界的边界像素用于生成第一恢复值,即“hest”,而沿垂直边界的边界像素用于生成第二恢复值,即“vest”。或者,如果此处理在时间上是自适应的,则相邻场之间的边界像素用于生成第一恢复值,而相邻帧之间的边界像素用于生成第二恢复值。
在步骤2720,根据表示每个方向上相关级的相关计算加权所恢复的值。组合加权的第一与第二恢复值,以生成组合的恢复值,步骤2725。应注意:此处理不限于只在两个方向上生成加权的恢复值;很显然:加权与组合的恢复值的数量能根据应用而改变。各种公知技术可以用来生成表示特定方向上相关级的相关值。而且,各种准则可以用来根据相关级选择加权因子。一般地,如果一个相关性大于另一个,则组合的恢复值应主要基于相应的恢复值。在一个实施例中,组合的恢复值如下进行计算:
其中hc表示水平相关性,vc表示垂直相关性,hest表示只基于左与右边界信息的DR恢复值,和vest表示只基于上与下边界信息的DR恢复值,而a表示加权值,此加权值能以许多方法来确定。图27b表示用于确定为水平相关性与垂直相关性之间差函数的加权值的一个实施例。更特别地,a选择为:
如上所述,自适应相关处理可应用于DR与MIN恢复。然而,最好剪切MIN恢复以保证MIN+DR 255,因此能使用函数val=max(min(val′,255-MIN),0)。而且,如上所述,时间相关性能进行评估并用于加权恢复的值。另外,能执行时间与空间相关性的组合。例如,在场之间生成一个恢复值作为时间恢复值。在一个场内生成另一个恢复值作为空间恢复值。最终恢复的值计算为具有时间与空间相关性组合的组合值。可以利用运动数量代替相关性组合。也考虑其他的不同情况。此方法也能应用于音频数据。
在另一可选择实施例中,使用低复杂性修改为最小平方技术。利用此实施例,减少由于恢复的DR值而经历的闪烁。为了下面的讨论,QV表示来自其DR正在进行恢复的具有一组点qi的图像部分或ADRC块的编码值的表,并且Y是从QV中的垂直或水平相邻点中取出的解码值的表,其中Yi表示qi垂直或水平相邻点。在每个点qi上可以具有多达4个的解码的相邻点,一个像素或点可以增加到四(qi,yi)对。DR(DRUlS)的无限的最少平方估算因而为:
其中Q是量化比特的数量,MIN是作为块属性发送的最小值。上式假定非边缘匹配ADRC;对于边缘匹配ADRC而言,利用2Q-1代替2Q并利用qi代替(0.5+qi)。
无限的最少平方估算最好进行剪切,以保证与门限表和在编码期间(一般地,对于非边缘匹配ADRC,允许的DR值在1-256的范围内)执行的等式MIN+DR 255一致。因而,通过下式剪切此最少平方估算(DRlsc):
(DR)lsc=max(min(UB,DRuls),LB)
其中UB表示上边界,而LB表示下边界,并且min与max分别表示最小与最大函数。
在另一可选择实施例中,通过选择更适于DR估算的像素来计算DR的估算值能改善估算。例如,图像中平坦区域提供比其中高活动性出现的那些区域更适于DR估算的像素。特别地,边缘中的锐边缘可能减少估算的准确性。下面的实施例提供用于选择用来计算DR的估算值的像素的计算量少的方法。
在一个实施例中,计算最少平方估算(DRlse),例如,DRuls或DRlsc。利用此估算,编码值QV的表变换为候选解码值X,其中Xi是从qi中导出的X的成员。此Xi值是利用DR的第一估算值形成的恢复的解码值。根据下式定义此Xi值:边缘匹配ADRC:
非边缘匹配ADRC:
假设DRlsc是真的DR的合理估算值,则Xi相对靠近yi的地方可以判断为低活动区域并因而是希望的匹配。新的X与Y表随后可以通过仅考虑其中Xi与Yi接近的匹配来形成,并重新计算最少平方估算来生成更新的估算值。
能以许多方法来确定用于确定认为什么是“接近(close)”的准则。在一个实施例中,使用差错函数的ADRC编码。此方法由于计算上便宜而是希望的。对于此处理而言,定义由点ei=|yi-xi|构成的表E。分别定义emin与emax为此表中的最小与最大值,则eDR=emax-emin。编码的差错值则能定义为:
gi=(ei-emin)nl/eDR
其中nl表示用于以类似于上述ADRC处理的方法重新量化ei的量化级的数量。
因而,通过仅选择其中gi小于某一门限的匹配来生成新表X与Y。如果新表足够长,则这些表可以用来生成精细的最小平方估算DRrls。最好根据经验确定在精细化最少平方估算之前所需的gi的门限和匹配的数量。例如,在一个实施例中,对于涉及8×8×2水平二次取样块并且nl为10的处理,只使用与gi=0相对应的匹配,并且只在这些新表至少包含30种匹配时才精细化此估算。
在另一可选择实施例中,通过剪切可能的DR值和重新计算DR估算值能改善DR估算。特别地,在一个实施例中,表D由包含将使xi等于yi的DR值的成员di组成。更精确地:
di=2Q(yi-MIN)/(0.5+qi)
通过剪切每个di发现改善。即:
di'=max(min(UB,di),LB)
其中DRcls随后计算为di’的平均值。剪切的方法(DRcls)可以与其他的DR估算值进行组合,例如,与加权的平均值中的DRlst组合来生成最终的DR值。例如,根据下式确定加权的平均值DRest:
DRest=W1(DRcls)+W2(DRlse)
最好通过检查得到的估算值和从特定加权中生成的图像根据经验确定权值W1与W2。在一个实施例中,W1=0.22513,而W2=0.80739。
已结合优选实施例解释本发明。很显然根据前文的描述对于本领域技术人员来说许多替换、修改、变化和使用将是显而易见的。