在有损耗传输环境中恢复数据的装置及方法 【发明背景】
1.相关申请
本申请是1998年1月30日提交的题为“Source Coding toProvide for Robust Error Recovery During Transmission Losses(在传输损耗时提供增强的差错恢复的信源编码)”的美国专利申请系列号No.09/016,083的继续申请,而它是1998年1月2日提交的题为“Image-to-Block Mapping to Provide for Robust ErrorRecovery During Transmission Losses(在传输损耗时提供增强的差错恢复的图象-到-块映射)”的申请系列号No.09/002,547、1998年1月2日提交的题为“Source Coding to Provide for Robust ErrorRecovery During Transmission Losses(在传输损耗时提供增强的差错恢复的信源编码)”的申请系列号No.09/002,470、以及1998年1月2日提交的题为“Multiple Block Based Recovery Method toProvide for Robust Error Recovery During Transmission Losses(在传输损耗时提供增强的差错恢复的基于多块恢复方法)”的申请系列号No.09/002,553的部分继续申请;它们是1997年10月23日提交地题为“Image-to-Block Mapping to Provide for Robust ErrorRecovery During Transmission Losses(在传输损耗时提供增强的差错恢复的图象-到-块映射)”的申请系列号No.08/965,632、1997年10月23日提交的题为“Source Coding to Provide for RobustError Recovery During Transmission Losses(在传输损耗时提供增强的差错恢复的信源编码)”的申请系列号No.08/957,555、以及1997年10月23日提交的题为“Multiple Block Based RecoveryMethod to Provide for Robust Error Recovery DuringTransmission Losses(在传输损耗时提供增强的差错恢复的基于多块恢复方法)”的申请系列号No.08/956,870的部分继续申请。1998年1月30日提交的申请系列号No.09/016,083、1998年1月2日提交的申请系列号No.09/002,547、1998年1月2日提交的申请系列号No.09/002,470、1998年1月2日提交的申请系列号No.09/002,553、1997年10月23日提交的申请系列号No.08/956,632、1997年10月23日提交的申请系列号No.08/957,555、以及1997年10月23日提交的申请系列号No.08/956,870都在这里结合参照。
2.发明领域
本发明涉及对由于信号传输过程中出现数据损耗而带来的差错提供增强的恢复。
3.技术背景
有很多技术用于重构由于信号传输过程中出现随机差错而造成的丢失数据。但是,这些技术不能处理连续数据分组的丢失。数据分组的连续丢失在本领域中描述为突发错误。突发错误导致对最终用户非常明显的重构信号质量下降。此外,用于促进高速通信的压缩方法使突发错误所引起的信号下降变得更严重,因此使重构信号变得更差。影响发送及/或存储信号的突发错误损耗的例子在其中压缩方法起了重要作用的高清晰度电视(“HDTV”)信号以及移动电信应用中可以看到。
HDTV的出现将电视系统引入比目前National TelevisionSystems Committee(“NTSC”国家电视系统委员会)所建议的标准更高的分辨率。所建议的HDTV信号主要是数字的。因此,当彩色电视信号转换为数字使用时,亮度和色度信号使用八比特数字化是常见的。彩色电视的数字传输要求每秒216兆比特的标称比特率。HDTV的传输速率要更高些,它标称地要求大约每秒1200兆比特。这种高传输速率大大超过当前无线标准所支持的带宽。因此,要求有效的压缩方法。
压缩方法也在移动电信应用中起着重要作用。通常,数据分组在移动电信应用的远程终端之间传递。移动通信中有限数目的传输信道要求分组传输之前具有有效的压缩方法。多种压缩方法用于促进高传输速率。
自适应动态范围编码(“ADRC”)和离散余弦变换(“DCT”)编码提供了本领域已知的图象压缩技术。两种技术都利用了图象内的局部相关性实现高压缩比。但是,有效的压缩算法导致更严重的差错传播,因为当随后解码时编码信号中的错误更显著。这种错误繁殖导致对用户非常明显的视频图象质量下降。
发明概要
本发明描述了对信号信源编码的方法。具体而言,对包括多个信号单元的信号进行处理。每个信号单元被编码构成比特流。给定比特流内的比特被分散到不同比特流中。因此,描述分段单元组成的参数被分散到不同比特流中。分散步骤导致错误分散到多级中。因此,当分散步骤由解码器逆向执行时,突发传输错误变成分散的局部损耗组。
也描述了另一种用于多级混洗(shuffling)处理的方法。信号被定义为多级的,其中每个级别包括多个帧、多个象素、以及多个比特。在一个实施例中,混洗出现在每一级和级之间。多级混洗使突发错误损耗被分散到多级中,因此有利于出现损耗的图象区域的图象重构。
附图的简要描述
本领域技术人员根据如下详细描述将明确本发明的目的、特性和优点,其中:
图1一般性说明了信号编码、传输及解码过程。
图2说明了分组结构的一个实施例。
图3是一个流程图,说明根据本发明概念的编码过程的一个实施例。
图4是一个流程图,说明根据本发明概念的解码过程的一个实施例。
图5说明根据本发明概念的图象-到-块映射的一个实施例。
图5a说明图象-到-块映射中使用的混洗模式的一个实施例。
图6说明示范的互补和互锁块结构。
图7a、7b、7c和7d说明帧组合内Y块的混洗模式的一个实施例。
图8说明缓存器0的累计DR分布的一个实施例。
图8a说明根据本发明概念的部分混洗处理的一个实施例。
图9说明根据本发明概念的缓存器内YUV块混洗处理的一个实施例。
图10说明根据本发明概念的组内VL数据混洗处理的一个实施例。
图11说明根据本发明概念的3-块组合内的Q码级联的一个实施例。
图11a说明根据本发明概念的包括运动块在内的帧对的Q码级联的一个实施例。
图12说明1/6突发错误损耗引起的象素数据差错的一个实施例。
图12a说明根据本发明概念的对Q码进行混洗和分布Q码比特的一个实施例。
图12b说明重新分布Q码的1/6突发错误损耗所引起的象素数据差错的一个实施例。
图12c说明重新指定Q码的1/6突发错误损耗所引起的象素数据差错的一个实施例。
图13说明根据本发明概念的MIN混洗的一个实施例。
图13a说明在一个帧对中运动标志混洗和固定长度数据损耗的一个实施例。
图14说明取模混洗的一个实施例。
图14a说明与取模混洗有关的取模混洗结果和固定长度数据损耗的一个实施例。
图14b说明与取模混洗有关的取模混洗结果和固定长度数据损耗的另一个实施例。
图14c说明与取模混洗有关的取模混洗结果和固定长度数据损耗的又一个实施例。
图15说明帧组合中可变长度数据缓存的一个实施例。
图16说明了根据本发明概念的段间VL-数据混洗的一个实施例。
图17是一般性说明本发明的数据恢复处理的一个实施例的流图。
图18是本发明的Q比特和运动标志恢复过程一个实施例的流图。
图19是说明候选解码一个实施例的表。
图20a、20b、20c、20d说明图18的Q比特和运动标志恢复过程中所用的测量的实施例。
图21说明用于图18的Q比特和运动标志恢复过程的确定误差平方概率函数的表的一个实施例。
图22说明根据本发明概念的Q比特,运动标志以及辅助信息恢复过程的一个实施例。
图23说明双向Q比特和运动标志恢复过程的一个实施例中后同步信号的使用。
图24a、24b和24c说明评价候选解码的另一个实施例。
图25根据本发明一个实施例的概念说明平滑措施的使用。
图26a、26b、26c、26d和26e说明评价候选解码过程的另一个实施例。
图27a说明评价候选解码的另一个过程,图27b说明确定权重值的一个实施例。
详细描述
本发明提供了一种编码及安排信号流以便提供增强的差错恢复的方法。在下面的描述中,为了说明起见,提出了很多细节,以便提供对本发明的完整理解。但是,对于本领域技术人员很显然的是,这些特定的细节是实施本发明所不必要的。另一方面,众所周知的电气结构和电路用框图的形式表示,这样就不会不必要地使本发明变得不清晰。
信号处理方法及结构是从信号是视频信号这样一个实施例的角度来描述的。但是,这里描述的方法及装置是希望应用于各种类型的信号的,包括声音信号或其它数字数据比特流,其中每个信号由多个信号单元组成。此外,这里描述的处理实施例使用自适应动态范围编码(“ADRC”)过程来压缩数据;但是也可以使用各种编码技术和算法。对于ADRC的更详细讨论,可以参见“Adpative Dynamic RangeCoding Scheme for Future HDTV Digital VTR(未来HDTV数字录象机的自适应动态范围编码方案)”,Kondo,Fujimori及Nakaya,Fourth International Workshop on HDTV and Beyond,1991年9月4日-6日,都灵,意大利。
在上述文章中,解释了三种不同类型的ADRC。它们都是根据下式实现的:
非边缘匹配ADRC:DR=MAX-MIN+1q=[(x-MIN+0.5)·2QDR]]]>x′=[(q+0.5)·DR2Q+MIN]]]>边缘匹配ADRC:DR=MAX-MINq=[(x-MIN)·(2Q-1)DR+0.5]]]>x′=[q·DR2Q-1+MIN+0.5]]]>多级ADRC:DR=MAX-MIN+1q=[(x-MIN+0.5)·2QDR]]]>x′=[(q+0.5)·DR2Q+MIN]]]>
这里MAX’是在q=2Q-1情况下x’的平均值;MIN’是在q=0情况下x’的平均值;而且
DR′=MAX′-MIN′q=[(x-MIN′)·(2Q-1)DR′+0.5]]]>x′=[q·DR′2Q-1+MIN′+0.5]]]>
这里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将Y、U及V信号分开,并分别根据ADRC算法独立地处理每组信号。为了使讨论简单,下面的叙述描述了Y信号的处理,但是编码步骤要对U和V信号重复。
在本实施例中,编码器110将信号100的跨越两个连续帧的Y信号组成三维块(“3D”),这里称为一个帧对。对于一个实施例,3D块由来自给定帧对上的同一局部区域的两个2D块的组合而产生,其中二维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码是用于存储或传输的相对压缩的图象数据。
在一个实施例中,Q比特选择是从3D块的DR中得到的。因此,给定3D块内的所有象素使用相同Q比特来编码,以得到一个3D编码块。3D编码块的Q码、MIN、运动标志以及DR的集合称为3D ADRC决。或者,对2D块编码,并且给定2D块的Q码、MIN以及DR的集合产生2D ADRC块。
可以实现多个门限表。在一个实施例中,门限表由一行DR门限值组成。Q比特对应于用来对门限表一行内两个相邻DR之间的一套DR值进行编码的量化比特数。在另一个实施例中,门限表包括多行,行的选择根据所需的传输速率。门限表中的每一行用门限索引来标识。门限选择的一个实施例的详细描述在下面讨论部分缓存时描述。ADRC编码及缓存的进一步描述在转让给本发明受让人的题为“HighEfficiency Coding Apparatus(高效编码装置)”的美国专利No.4,722,003以及同样题为“High Efficiency Coding Apparatus(高效编码装置)”的美国专利No.4,845,560中揭示。
由此Q码被称为可变长度数据(“VL-数据”)。此外,DR、MIN和运动标志称为块属性。块属性以及门限索引组成了固定长度数据(“FL-数据”)。此外,考虑到上面的讨论,术语块属性描述了与信号单元的成分有关的参数,其中信号单元包括多个成分。在另一个实施例中,FL-数据分组括Q比特码。其好处是Q比特信息不必在解码过程中从DR得到。因此,如果DR信息丢失或损坏,Q比特信息还可以从Q比特码中确定。此外,如果Q比特码丢失或损坏,Q比特信息可以从DR得到。因此,降低了恢复DR和Q比特的要求。
要求将Q比特码包括在内的缺点是每个ADRC块要发送附加的比特。但是,在一个实施例中,用于组合ADRC块的Q比特码被根据例如加法或级联这样的功能而合并。例如,如果ADRC块被组成三组,并且如果每个ADRC块的Q比特值分别为3、3和4,则编码为FL-数据的总和值是11。因此,代表总和所需的比特数少于代表每个单独值所需的比特数,而且组中没有损坏的Q比特值可以用于确定Q比特值而不必执行下面描述的那种Q比特恢复处理。
也考虑了其它实施例。例如,运动标志数据也可以被编码。可以产生带有Q比特和运动标志数据的标志并将其用于去查找码表。编码的配置和功能可以根据应用而变。
帧、块属性以及VL-数据描述了视频信号内的各种成分。这些成分的边界、位置及数量依赖于视频信号的传输及压缩特性。在本实施例中,这些成分在视频信号比特流中可变而且被混洗,以便确保传输损耗时增强的差错恢复。
为了说明起见,以下描述规定1/6连续分组传输损耗容限,遵循视频信号的ADRC编码和混洗。因此,以下的成分定义和划分被用于一个实施例中。也考虑了其它实施例。一个数据集合包括一个视频数据的一部分或其它类型的数据信号。因此,在一个实施例中,一个帧集合是包括一个或多个连续帧的一类数据集合。一个分段包括一个能够存储1/6部分的Q码以及被包括在帧集合中的块属性的存储器。此外,缓存器包括一个能够存储1/60部分的Q码以及被包括在帧集合中的块属性的存储器。数据混洗通过交换分段内及/或缓存器内的成分来进行。此后,存储在分段内的数据用于产生供传输的数据分组。因此,在如下描述中,如果分段丢失,所有从分段中产生的分组都在传输中丢失。类似地,如果一部分分段丢失,那么从分段中产生的相应数目的分组在传输中丢失。
尽管,以下描述提到了用ADRC编码的数据有1/6连续的分组损耗,但是考虑这里描述的方法和装置可用于被运用到各种编码/解码方案中的1/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信号被水平抽取到原有宽度的3/4,U和V信号每个被抽取到原有高度的1/2以及原有宽度的1/2。这样得到3∶1∶0的视频格式,每个帧对中有3960个Y块、660个U块以及660个V块。正如前面注意到的,讨论将描述Y信号的处理;但是该处理可用于U及V信号。在步骤2,两个Y帧图象被映射到3D块。在步骤3,3D块被混洗。在步骤4,使用ADRC缓存和编码。在步骤5,编码的Y、U及V块在缓存器内混洗。
在步骤6,一组编码3D块的VL-数据以及它们相应的块属性被混洗。在步骤7,FL-数据在不同分段上混洗。在步骤8,执行后同步信号填充,其中缓存器末尾的可变空间被填充了预定的比特流。在步骤9,VL-数据在不同分段上混洗。
为了说明起见,以下混洗描述提供了在编码之前和之后处理象素数据的方法。对于另一个实施例,独立的数据值通过硬件被混洗/去混洗。具体而言,硬件将块值地址映射到不同的地址,以便实现混洗/去混洗处理。但是,地址映射对于与数据相关的值是不可能的,因为混洗必须遵守数据的处理。下面描述的组内VL-数据混洗包括与数据相关的值。此外,为了说明起见,以下的混洗描述出现在不连续的数据集合上。但是,对于另一个实施例,信号基于多种数据级别——从比特到象素到帧——而定义。混洗对于信号中定义的每个级别都是可能的并且跨越不同的信号数据级别。
图4是说明解码器120所执行的解码处理的一个实施例的流图。优选地,转换和去混洗处理是图3所代表的逆过程。图4还以Q比特、运动标志、DR、MIN以及象素数据的不同组合描述了所发明的差错恢复过程。在下面以不同实施例的不同Q比特、运动标志、DR、MIN以及象素恢复的不同组合来描述差错恢复过程。
从图象到块的映射
在本实施例中,单帧一般包括5280个2D块,每个2D块包括64个象素。因此,一个帧对包括5280个3D块,因为来自第一帧的一个2D块和来自后一帧的2D块合起来构成一个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是一种用于重构图象550的互锁互补块结构,它的一个实施例在图5中表示。具体而言,用于产生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块指派被水平移了8个象素,垂直移了4个象素。这样当子图象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,图6中说明的这些2D块结构,无论给定2D块是否传输丢失,都确保提供周围的2D块。但是,在象素到随后的2D块映射过程中,模式610a、610b和610d使用水平及/或垂直移动。水平移动描述了:在开始新的2D块边界之前在水平方向上将瓦块结构移动预定数目的象素。垂直移动描述了:在开始新的2D块边界之前在垂直方向上将方块结构移动预定数目的象素。在应用中,可以只使用水平移动,也可以只使用垂直移动,或者可以使用水平和垂直移动的结合。
模式610a描述了用于图象-到-块映射的螺旋形模式。螺旋形模式遵循水平移动,在图象-到-块映射过程中产生随后的2D块。模式610b和610d说明了互补模式,其中象素选择被水平和垂直移动,从而在图象-到-块映射过程中产生随后的2D块。此外,模式610b和610d说明了2D块之间象素选择的交替偏移。模式610c说明使用不规则象素抽样来产生用于图象-到-块映射的2D块。因此,图象-到-块映射遵守任意映射结构,只要象素被映射到2D块仅一次。
图5、图5a和图6描述了用于产生2D块的图象-到-块映射。显然,该处理可以用于3D块。如上所述,3D块的产生遵守与2D块相同的边界定义,但是边界划分延伸到随后的帧上,从而产生了3D块。具体而言,3D块是通过收集用于定义第一帧中2D块的象素与来自随后帧中2D块的象素而产生的。在一个实施例中,来自第一帧的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块的指定按照2乘3列分段,这样,来自每个分段的一个3D Y块关联于一个分段。因此,如果不进行进一步的混洗而且出现了第一个880分组的突发损耗,与分段0关联的所有块属性都会丢失。尽管如此,正如后面所描述的,进行FL-数据混洗会进一步地分散块属性损耗。
图7b说明用于进入分段0的编号为“0”的3D Y块的扫描顺序。图7a的每个“0”3D Y块编号为0、1、2、3、…、659,表示它们在被输入分段0的流中的位置。使用块编号来分配分段指定,其余的3DY块输入到分段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占据缓存器的前三个位置。该过程对缓存器的其余部分重复。因此,三个3D Y块在数据传输过程中的丢失导致图象内相距很远的3D Y块的丢失。
图7a-d说明了帧集合的3D Y块的3D块分散的一个实施例。但是,在另一个实施例中,提供了3D U块和3D V块的3D块属性。3D U块通过将上述的图象-到-块映射处理提供给只包含U信号的帧集合而产生。类似地,3D V块通过将图象-到-块映射处理提供给只包含V信号的帧集合而产生。3D U块和3D V块遵循上述的3D Y块分布。但是,如前所述,3D U块和3D V块数量各相对3D Y块有1∶6的比例。
图7a-d用于说明Y信号的帧集合内块混洗的一个实施例,通过这样的操作,高达1/6传输过程中分组损耗的突发错误可以容忍而且进一步保证了均衡的缓存器利用。本领域技术人员会理解的是分段、缓存器以及ADRC块指定可以改变,以便确保对付1/n的突发错误损耗并修改缓存器利用。
部分缓存
如图3所示,ADRC编码和缓存过程在步骤4出现。根据编码技术,图象-到-块映射处理过程中产生的2D或3D块被编码,从而产生2D或3D ADRC块。一个3D ADRC块包含Q码、MIN值、运动标志以及DR。类似地,一个2D ADRC块包含Q码、MIN以及DR。但是2D ADRC块不包括运动标志,因为编码在单帧或单个域上执行。
多种缓存技术可以在现有技术中找到(例如,见High EfficiencyCoding Apparatus(高效编码装置),美国专利4,845,560,Kondo等,以及High Efficiency Coding Apparatus(高效编码装置),美国专利4,722,003,Kondo)。这两项高效编码装置专利都在这里结合参照。
下面提到的部分缓存处理描述了确定用于ADRC编码的编码比特的创造性方法。具体而言,部分缓存描述了从门限表中选择门限值的方法,该门限表设计为在远程终端之间提供恒定的传输率同时限制了差错传播。在另一个实施例中,门限表被进一步设计为提供最大的缓存器利用。在一个实施例中,缓存器是存储来自给定帧集合的1/60部分编码数据的存储器。门限值用于确定前面描述的图象-到-块映射处理所产生的2D或3D块中象素编码所用的Q比特数。
门限表包括多行门限值,也称为门限集合,门限表中的每一行用门限索引来编排。在一个实施例中,门限表按照如下方式组织:产生较大数量Q码比特的门限集合处于门限表的较高行。因此,对于具有可用的预定比特数的给定缓存器来说,编码器110在门限表中向下移动直到遇到产生小于预定比特数的门限集合。这个恰当的门限值用于对缓存器中的象素数据编码。
在一个实施例中,希望不超过30Mbps的传输速率。所希望的传输速率导致有31,152比特用于任何给定缓存器中的VL-数据存储。因此,对于每个缓存器,计算累积的DR分布并从门限表中选出门限集合,以便将3D或2D块中的象素编码为VL-数据。
图8说明缓存器0中所选的门限值和DR分布的一个实施例。图8的纵轴包括累积的DR分布。例如,值“b”等于其DR大于或等于L3的3D或2D块数。横轴包括可能的DR值。在一个实施例中,DR值的范围从0到255。门限值L4、L3、L2和L1描述了用于确定缓存器编码的门限集合。
在一个实施例中,存储在缓存器0中的所有块使用门限值L4、L3、L2和L1来进行编码。因此,DR值大于L4的块,其象素值使用4比特编码。类似地,属于那些DR值在L3和L4之间的块的所有象素用3比特来编码。属于那些DR值在L2和L3之间的块的所有象素用2比特来编码。属于那些DR值在L1和L2之间的块的所有象素用1比特来编码。最后,属于那些DR值小于L1的块的所有象素用0比特来编码。L4、L3、L2和L1的选择使得用于对缓存器0中的所有块编码的总比特数尽可能地接近31,152比特的极限,而不超过31,152极限。
图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块混洗处理的一个实施例,其中YUVADRC块分别从Y、U和V信号中得到。缓存器900说明了帧集合内块混洗之后的ADRC块指定。缓存器900包括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块组一起解码。组解码有利于差错恢复,因为在下面详述的数据恢复处理过程中附加信息可从相邻块提供。对于一个实施例,Q码级联独立地应用于存储在缓存器中的每个三ADRC块组。在另一个实施例中,组包括来自不同缓存器的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关联,有相应数目的N比特代表产生单个Qi的级联比特总数。
图11a说明从包括运动块的帧对中产生级联的ADRC瓦块的一个实施例。运动块是具有设置的运动标志的3D ADRC块。当前面描述的图象-到-块映射处理所产生的两个2D块结构内的预定数目象素在第一帧和后续帧之间改变其值时,就设置运动标志。在另一个实施例中,当第一帧和后续帧的2D块之间每个象素改变的最大值超过预定值时,就设置运动标志。相反,非运动(即静止)块包括一个未设运动标志的3D ADRC块。当第一帧和后续帧的两个2D块内的预定象素数的值没有改变时,运动标志保持不设置。在另一个实施例中,当第一帧和后续帧之间每个象素改变的最大值不超过预定值时,运动标志保持不设置。
运动块包括来自第一帧中编码的2D块以及后续帧中编码的2D块的Q码。对应于单个编码的2D块的Q码集合被称为ADRC瓦块。因此,一个运动块产生两个ADRC瓦块。但是由于没有运动,一个静止块只需包括运动块一半数目的Q码,因此只产生一个ADRC瓦块。在本实施例中,静止块的Q码通过在第一帧的2D块和后续帧中相应2D块之间对相应的象素值进行平均而产生。每个平均的象素值随后被编码,产生构成单个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码。或者,每个Q码(Qi)在级联的ADRC瓦块B中的产生由以下数学公式来进行描述:
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)用3比特来代表。2D ADRC块1210表示了当每6比特的第一比特丢失时的比特损耗模式,用加黑的方块表示,类似地,当每6比特的第二比特或第四比特丢失时的比特损耗模式分别在2D ADRC块1220和1230中表示。图12说明:没有Q码重指定时,对于1/6突发错误损耗,2D ADRC块1210、1220和1230所有象素的一半被破坏。
对于一个实施例,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码向6个分区的这种空间分离指定确保了1/6突发错误损耗将导致分散到一组连续象素上的比特损耗模式。
图12b说明重新分布Q码的1/6突发错误损耗所产生的比特模式损耗的一个实施例。具体而言,2D ADRC块1215、1225和1235中每个包括用3比特编码的64个象素。因此,每个2D ADRC块的每个象素(p0到P63)用3比特代表。在2D ADRC块1215、1225和1235中用加黑的方块表示的比特损耗模式被局限在一组连续的象素上。因此,对于给定的分段损耗,每个2D ADRC块1215、1225和1235内只有11个连续象素被破坏。在另一个实施例中,Q码到分区的指定包括来自不同运动块的Q码,因此提供到6个分段的空间和时间分离的Q码指定。这样就产生了在1/6突发错误损耗时附加的未损坏的空间-时间象素,并进一步促进了更增强的差错恢复。
参考图12a,表132中重分布的Q码比特在所产生的比特流上被混洗,这样,比特流中的相邻比特来自相邻的分区。表132中所有分区的Q码比特被级联成比特流130。对于给定的分区,比特流130中的相邻比特被分散到所产生的比特流140中的每个第6个位置上。因此,比特流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的正确值,以便解除对Q码比特流的屏蔽。
在一个实施例中,KEY用于屏蔽三个ADRC块的Q码重指定所产生的Q码比特流。正如前面所描述的,ADRC块包括FL-数据和Q码。屏蔽密钥的每个密钥元素(“di”)由FL-数据值和相应ADRC块所关联的量化比特(“qi”)数的组合来产生。在一个实施例中,运动标志和Q比特用于定义一个密钥。因此,在这个实施例中,密钥元素值从下面数学公式产生:
d1=5·mi+qi,这里i=0,1,2而且qi=0,1,2,3,4
变量mi等于运动标志。因此,当相应的ADRC块是静止块时,mi等于0,当相应的ADRC块是运动块时,mi等于1。此外,变量qi代表用于对相应ADRC块编码的量化比特。因此,对于四比特ADRC编码技术,qi具有的值为0、1、2、3或4。在一个实施例中,一组三个ADRC块的KEY根据下式用三个密钥元素(“di”)定义:
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值编号为0-879,根据给定的DR值所取自的块而定。在模三混洗中,三个分段的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中的计数1DR值移动到分段C,分段C中的计数1DR值移动到分段A。
属于计数2的DR值也被混洗。具体而言,分段A中的计数2DR值移动到分段C,分段B中的计数2DR值移动到分段A,分段C中计数2DR值移动到分段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进行混洗的接收数据上之后,DR、运动标志以及MIN值在6个分段上的丢失。如图14a所示,块属性丢失周期性地分散在分段0、2和4上,而分段1、3和5没有块属性丢失。此外,空间损耗模式1417说明了在传输过程中分段0丢失之后损坏的FL-数据的去混洗空间分布。空间损耗模式1417表示随后的去混洗被应用于接收数据之后的DR、运动标志以及MIN值的丢失。在空间损耗模式1417中,损坏的块被未损坏的块环绕,损坏的块属性可以用周围未损坏的块来恢复。
图14和图14a说明了模三混洗模式以及传输过程中分段丢失之后块属性丢失的分散。在另一个实施例中,计数变量或分段号可变以便改变丢失块属性的分布。图14b说明了取模混洗结果1421和损耗模式1420。类似地,图14c说明了取模混洗结果1426以及损耗模式1425。损耗模式1420和损耗模式1425说明了块属性丢失在6个分段上的分布,与前面描述的三个分段不同。
应该考虑到在另外的实施例中,将会分散各种块属性组合以便进行混洗处理。
分段内VL-数据混洗
在分段内VL-数据混洗过程中,在预定数目的分段(例如,6个分段)之间的比特被设计为:在高达1/6分组传输损耗过程中,可确保空间分开和周期性的VL-数据丢失。图15和16说明了分段内VL-数据混洗处理的一个实施例。
在本实施例中,需要接近于30Mbps的传输率。因此,所需的传输速率导致60个缓存器每个中的VL-数据有31,152比特。其余空间被缓存器中包括的88个块的FL-数据所用。图15包括传输率接近30Mbps的一个帧集合内VL-数据缓存器的组织。如前面所描述的,部分缓存用于使每个缓存器内可用VL-数据空间的使用最大化,而且未使用的VL-数据空间用后同步信号填充。
图16说明保证空间分开和周期性的VL-数据损耗的混洗过程的一个实施例。第一行说明来自图15的60个缓存器的VL-数据重新组织成1,869,120比特的级联流。第二行说明每个第6比特组成新的比特流。因此,当解码器后来将该过程逆转时,高达1/6被传输数据的突发损耗被转换为周期性损耗,其中至少5个未损坏的比特将每组两个损坏比特分开。
第三行说明将流2的每个10比特组成新比特流,即流3。组的边界也由分段中的比特数定义。每节10个比特的流2分组保证1/60数据损耗在每组2个损坏比特之间产生59个未损坏的比特。这样当88个连续数据分组丢失时提供空间分开和周期性的VL-数据丢失。
第四行说明将流3的每个11比特组成流4。组的边界也由分段中的比特数定义。每节11个比特的流3分组保证1/660数据损耗在损坏比特之间产生659个未损坏的比特,从而当8个连续分组传输丢失时产生空间分开和周期性的VL-数据丢失。
流4内的每个31,152比特组连续重存储在缓存器0-59中,第一比特组存储在缓存器0中,最后比特组存储在缓存器59中。
本领域技术人员会理解的是,图16的分组要求是可变的,以便在高达1/n传输损耗时保证空间分开和周期性的VL-数据丢失容限。
传输
前面描述的混洗过程产生带有混合了FL-数据和VL-数据的缓存器。对于一个实施例,按照分组结构200,分组从每个缓存器中产生并在传输介质135上发送。
数据恢复
正如前面所注意的,用于数据比特流编码的本发明方法能够进行由于数据分组丢失而通常出现的增强的数据恢复。解码过程的概述已经在图4中表示。
参考图4,分组中接收的数据通过多级去混洗过程(步骤425、430、435以及440)来处理,其中通过分组接收的不同级别或不同部分的比特流被去混洗以便恢复数据。根据本领域已知的概念(例如,Kondo,Fujimori,Nakaya,“Adaptive Dynamic Coding Scheme forFuture HDTV Digital VTR(未来HDTV数字录象机的自适应动态编码方案)”,Fourth International Workshop on HDTV and Beyond,1991年9月4-6日,意大利,都灵),ADRC解码在步骤445应用于数据。
然后进行帧集合内的块去混洗,随后执行块-到-图象映射,即步骤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比特和运动标志值。Q比特值通常由于DR丢失(由丢失分组造成)而丢失。当Q比特或运动标志值未知时,象素的Q码比特不能从数据比特流中确定。如果Q比特或运动标志值的确定不恰当,那么这个错误将作为随后块的起点而传播,因为缓存器中的数据将被错误地识别。
图17描述了恢复Q比特和运动标志值的一般过程。这个特定实施例描述了使用多数据块恢复Q比特和运动标志值的过程;但是,应该考虑到特定的块数不受这里的讨论所限制,而且可以是一块或多块。参考图17,基于步骤1705中比特流的出错检测,基于规定参数的候选解码针对所检测的三个块而产生。在步骤1715,每个候选解码在它是精确解码过程的几率上记分,在步骤1720,使用具有最佳记分的候选解码,该解码识别能够进行随后的受影响块的象素解码的Q比特和运动标志值。
返回参考图4的解码过程,一旦最佳解码被选出,由于丢失分组造成丢失的任何DR或MIN值在步骤465被恢复。本领域技术人员已知的各种恢复处理都可以用于恢复DR和MIN,包括相邻块值的最小二乘或平均。作为一个例子,见Kondo,Fujimori,Nakaya的“AdaptiveDynamic Coding Scheme for Future HDTV Digital VTR(未来HDTV数字录象机的自适应动态编码方案)”,Fourth InternationalWorkshop on HDTV and Beyond,1991年9月4-6日,意大利,都灵。在本实施例中,本发明的图象-到-块映射过程以及由此产生的数据结构增加了相邻块的数目,因此提供附加数据并有利于更精确的DR或MIN恢复。具体而言,在一个实施例中,DR和MIN如下恢复:
∑q2
这里DR’对应于恢复的DR,qi是ADRC块的第i值,而且qi∈{0,1…,2Q-1};对于边缘匹配ADRC,m=2Q-1,对于非边缘匹配ADRC,m=2Q;yi是相邻块象素的解码值,Q是Q比特值;而且MIN′=Σi(yi-DRm·qi)N]]>
这里MIN’对应于恢复的MIN,N是用于求和的项数(例如,当i=0-31时N=32)。在另一个实施例中,如果同一块的DR和MIN同时损坏,根据下式恢复DR和MIN:DR′=m·[N·Σiqi·yi-Σiqi·Σiyi]N·Σiqi2-[Σiqi]2]]>MIN′=Σi(yi-DR′mqi)N]]>
在步骤470,ADRC解码应用于在Q比特和运动标志恢复之前没有解码的那些块,并在步骤475执行象素恢复处理,以便恢复由于丢失分组或随机错误而可能出现的任何错误象素数据。此外在步骤480执行3∶1∶0→4∶2∶2的返回转换,以便将图象置于所选的显示格式。
图18说明了本发明的解码过程中Q比特和运动标志恢复处理的一个特定实施例。在这个特定实施例中,处理的输入是相邻块信息、将要处理的三个块的块属性以及象素数据。也要输入表示丢失数据位置的错误标志。错误标志可以用本领域技术人员已知的各种方式来产生,而且这里将不会进一步讨论,只是说明标志表示哪些比特是损坏或丢失的分组所发送的。
在步骤1805,产生候选解码。候选解码可以用各种方式产生。例如,尽管处理负担可能相当大,但是候选解码可以包括所有可能的解码。或者,候选解码可以基于预定的参数产生,以便减少待评估的候选解码数。
在本实施例中,候选解码基于对前面描述的组内VL-数据混洗处理的比特流进行随机化所用的可能的密钥值来确定。此外,应该注意候选解码还受等待解码的比特长度以及对剩下多少块的了解所限制。例如,正如将要讨论的,如果处理最后一块,通常该块的解码长度是已知的。
继续本例,图19说明了本发明的可能情况,其中值x表示未知值(可能由于分组丢失)。将进一步举例来解释。mi定义为第i块的运动标志,qi是第i块的量化比特数,ni是第i块的可能候选数,di是前面在组内VL-数据混洗中描述的第i块的密钥元素值。第i块在每个组内定义。在本例中,每个组内的块数是三。三块组的密钥按d0+10·d1+100·d2而产生。假设在第一块中运动标志未知,量化比特数是2,则m0等于x,q0等于2。根据上面描述的式子产生密钥元素,di=5·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、967中变化。这个处理优选地用于受数据丢失影响的每个组。
返回参考图17,在步骤1715,一旦根据密钥数据已经对数据解码,就评估所产生的候选解码或在它是正确的数据解码的几率上记分。在步骤1720,具有最佳分的候选解码被选择使用。
各种技术可以用于对候选解码记分。例如,记分数可以从特定候选解码中块的象素与图象其它象素一致程度的分析中得到。优选地,记分数基于表示错误(例如误差平方和相关)的准则中得到。例如,对于相关,假设相邻象素在某种程度上紧密相关是相当有把握的。因此,一个很大或很小的相关表示候选解码是不是正确解码。
正如图18所示,分析了四种不同的准则,以选择最佳候选解码。但是,考虑可以分析一、二、三或更多种不同的准则以便选择最佳的候选解码。
参考图18,本实施例利用四个子记分准则,它们最后合并成最后记分数。具体而言,在步骤1815产生误差平方测量,步骤1820确定水平相关,步骤1825确定垂直相关,在步骤1830测量时间活动性(根据M个候选、N个块以及2帧/数据块,每个是M乘2N矩阵)。尽管使用了水平和垂直相关,但是应该认识到包括对角线相关在内的各种相关测量都可以检查。在步骤1835、1840、1845、1850,对每个准则产生置信度测量,以便对所产生的测量归一化,并在步骤1855、1860、1865和1870产生每个不同准则的概率函数。这些概率函数然后通过(例如)将概率值相乘产生一个记分数来进行合并,例如图18所示的步骤1875中的似然函数。候选解码的记分数随后与所有候选解码记分数比较,以便确定最可能的候选者。
应该认识到可以使用各种技术评估候选解码并对每个候选产生“记分数”。例如,置信度测量是用来归一化准则的一种方式。此外,除了下面描述的以外,各种置信度测量都可使用。类似地,将基于每个准则的概率值相乘产生总似然函数只是合并所检查的各种准则的一种方式。
编码过程有利于确定最佳候选解码,因为不是最可能候选的候选解码一般有比较差的记分数,而最可能候选的解码会有比较好的记分数。具体而言,前面在组内VL-数据混洗过程中描述的Q码随机化过程在这方面有帮助。
图20a、20b、20c和20d提供了对图18的步骤1815、1820、1825以及1830处执行不同测量以便对特定候选解码产生记分和总分的说明。图20a说明评价候选解码的象素xi与它的解码的相邻yi,j比较的误差平方,其中下标“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是当前候选解码的相关。时间活动置信度测量根据下式确定:
置信度=(a-b)/(a+b)
这里a=max(X,M_TH),b=max(Y,M_TH),其中M_TH是候选块的运动门限,Y是最佳测量值,即最小的时间活动性,而且X等于时间活动性的当前候选测量。
在图18中步骤1855、1860、1865以及1870,为每个不同的准则产生概率函数。可使用各种方法产生概率测度。例如,可以规定置信度测量的记分数。如果置信度测量大于预定值,例如0.8,基分就降低10;如果是在0.5和0.8之间,基分就降低5。图21所示的实施例中,有一个表用于产生误差平方测度准则的概率函数。该表包括基于经验确定的任意存储的数据,包括置信度和误差平方测度以及已知的候选解码。更具体地说,该表可以通过使用未损坏数据并假设DR被破坏或丢失而产生。然后产生正确和非正确解码的密钥以及置信度测量。该表反映了正确与非正确解码的概率比。使用这个表,针对特定的误差平方值(行)以及置信度值(列),可以确定概率。例如,因此可以看到,对于置信度测量为0的各种误差平方测度,大约有40%到50%候选正确的概率。如果置信度不为0,而是很小,则概率下降很大。类似的概率表可以基于相应的经验确定的准则测度和置信度测度针对相关及时间测量而产生。
所产生的概率被认为是在本实施例中产生“记分数”的数据,正如前面注意到的,其它对候选解码记分的技术也可以使用。在步骤1875,不同的概率合并成似然函数Li=j·Pi,j,这里j是概率函数Pi,j的倍数函数,Pi,j是块j、候选i的概率函数。因此选择能使函数Li最大的候选。
返回参考图18,恢复某些在丢失分组中发送的块属性可能是必要的。因此,在步骤1810,DR和MIN值在必要情况下恢复。可以使用各种技术,从缺省值、平均、误差平方函数到更复杂的技术,包括如下文献中讨论的那些:Kondo、Fujimori和Nakaya的“AdaptiveDynamic Range Coding Scheme for Future HDTV Digital VTR(未来HDTV数字录象机的自适应动态范围编码方案)”以及Kondo、Fujimori、Nakaya和Uchida的“A New Concealment Method forDigital VCR(数字录象机的新隐蔽方法)”,IEEE Visual SingalProcessing and Communications,1993年9月20-22日,澳大利亚,墨尔本。所恢复的值用于产生候选解码,如上所述。
或者,DR和MIN值在Q比特确定过程中确定。在图22中说明了这种情况。具体而言,如上面注意到的,在本实施例中运动标志和量化比特数用于编码过程并在随后用于恢复过程以缩减可能的候选解码的数目。如前面注意到的,其它信息也可以用于对数据编码。因此,DR值及/或MIN值也可以用于对数据编码。或者DR的一部分比特用于编码(例如,DR的两个最低有效比特)。尽管DR数据被编码,可能的候选解码数随着变量的增加而大大增加了。参考图22,因此产生了K·M个候选解码,这里K是未知数据的候选值数,例如如果DR1、DR2和DR3之和的两比特被编码(DR1、DR2和DR3代表组中块的DR值),那么K=4。DR和MIN因此用提供的辅助信息恢复,例如被编码的DR1、DR2和DR3之和的两比特。这样以附加开销为代价改善了检查较大数目的候选解码的候选选择过程。
应该注意的是,通常被解码的块越邻近,Q比特和运动标志的恢复过程越好。此外,在一些实施例中,该处理被提供给缓存器内的每个随后的块;如果所有的或一些FL-数据可用,候选解码数就会减少,假定该块所有FL-数据都可用,候选解码可能减到1个。但是,希望Q比特和运动标志恢复过程全部避免,因为该处理是比较耗时的。此外,希望使用尽可能多的信息进行Q比特和运动标志恢复。在一个实施例中,从缓存器的开始处理各块,直到到达一个具有丢失Q比特/运动标志信息的块。这被定义为前向Q比特和运动标志恢复。在另一个实施例中,参考缓存器的末尾来确定缓存器最后块的结尾位置,并从缓存器的末尾恢复数据直到到达具有丢失Q比特/运动标志数据的块。这被定义为后向Q比特和运动标志恢复。
正如前面注意到的,由于VL-数据的长度,块在长度上可变;因此需要确定构成块的VL-数据的比特数以便正确地定位随后块在缓存器中的位置。在编码过程中,预定的而且优选为容易识别模式的后同步信号被放入缓存器,以便填充未用的比特位置。在解码过程中,后同步信号将处于该块和缓存器末尾之间。由于该模式是容易识别的一种,通过检查比特模式使系统能够定位后同步信号的开始,并因此定位缓存器中最后一块的结尾。这个信息可以按两种方式使用。如果最后一块包含损坏的Q比特/运动标志数据而且最后一块的开始是已知的(例如,前面的块已经被成功解码),那么紧接着的前面一块的结尾与后同步信号的开始之间的差对应于该块的长度。这个信息可以用于计算该块的Q比特及/或运动标志。后同步信号的开始位置也可以用于执行从最后一块开始并进行到缓存器开始的Q比特和运动标志恢复。因此,Q比特和运动标志恢复处理可以双向实现。
图23说明了后同步信号在双向Q比特和运动标志恢复过程中的使用。参考图23,缓存器2300包括N组VL-数据块的FL-数据2303。每组由多个块(例如,3块)组成。在本例中,前两组2305、2310被解码,第三组215不能立即被解码,因为DR/运动标志数据损坏了。在这里,需要Q比特/运动标志恢复过程以便恢复损坏的数据。不是继续在前向处理这些组,该处理参考通过查找后同步信号模式220而确定的缓存器结尾。确定了后同步信号的开始,由此得知最后块组的结尾。由于DR/运动标志数据表示了VL-数据的长度,最后一块的VL数据开始(因此也是紧接着前一块的结尾)就可以被确定了。因此,可以对这些块解码,例如块225、230、235,直到到达损坏数据的块240。然后,使用上述Q比特/运动标志恢复处理恢复损坏的215、240以及受阻的块250。
应该注意双向处理不限于一系列向前和向后处理;处理可以在任一方向或双向上进行。此外,在一些实施例中,可能希望与改善效率并行地进行这种处理。最后,注意未损坏的受阻块可以通过直接访问Q比特/运动标志信息、而不执行上述Q比特/运动标志恢复过程而恢复。
正如前面注意到的,各种记分技术可以用于确定最佳候选解码以便选用来进行解码。在另一个实施例中,评估使用每种候选解码的图象平滑度。在一个实施例中,进行拉普拉斯测量。拉普拉斯测量测出二阶图象表面性质,例如表面曲率。对于线性图象表面,即平滑表面,拉普拉斯测量产生接近于0的值。
该处理将参照图24a、24b和24c来解释。图24a说明拉普拉斯内核的一个实施例。注意,也可以使用其它实施例。内核“L”代表一个3×3区域。为了测量图象区域的平滑度,图象的3×3子区域(图24b)与内核卷积,而且卷积值被平均。区域和子区域的大小(以及有关的内核大小)可以根据应用而变。
该处理的一个实施例参考图24c描述。这个实施例使用一个内核和3×3的子区域尺寸以及8×8的区域尺寸,其中各个元素用i,j来标识。在步骤2460,候选解码值x[i][j]被归一化。例如,可以根据下式对这些值归一化:x′[i][j]=x[i][j]Σi,j(x[i][j]-Xmean)2,0≤i,j<8]]>这里,Xmean=Σi,jx[i][j]64,0≤i,j<8]]>
在步骤2465,根据下式归一化值被用于计算表示平滑度的块的拉普拉斯值Lx:l[i][j]=Σm=-1lΣn=-1lL[m][n]·x′[i+m][j+n],0≤i,j<8]]>Lx=Σi,j|l[i][j]64]]>
块拉普拉斯值越接近0,图象部分越平滑。因此,记分数可以基于块拉普拉斯值来测量,具有最小拉普拉斯值的解码是正确的解码。
拉普拉斯评估也可以使用候选编码值q[i][j]来实现。其基本过程与图24c的候选解码值情况相同。这个实施例使用一个内核和3×3的子区域尺寸以及8×8的区域尺寸,其各个元素用索引i,j标识。在步骤2460,候选解码值q[i][j]被归一化。例如,可以根据下式对这些值归一化:q′[i][j]=q[i][j]Σi,j(q[i][j]-Qmean)2,0≤i,j<8]]>这里,Qmean=Σi,jq[i][j]64,0≤i,j<8]]>
在步骤2465,根据下式归一化值被用于计算表示平滑度的块的拉普拉斯值Lq:l[i][j]=Σm=-1lΣn=-1lL[m][n]·q′[i+m][j+n],0≤i,j<8]]>Lq=Σi,j|l[i][j]36]]>
块拉普拉斯值越接近0,图象部分越平滑。因此,分数可以基于块拉普拉斯值来测量,具有最小拉普拉斯值的解码是正确的解码。
同时也要注意其它变化。在另一些实施例中,可以使用较高阶的图象表面性质作为平滑度测量。在那些情况下,会使用较高阶的内核。例如,四阶块拉普拉斯测量可以使用四阶内核来进行。级联使用二阶拉普拉斯计算可以实现四阶内核。
还要注意的是,评估过程取决于图象是否比预定水平具有更大的活动性或运动。如果被评估的图象部分具有比预定水平大的运动,那么优选地基于场而不是基于帧进行测量。参考图25对其进行解释。图25解释了使用平滑度测量的处理;但是注意这个处理可以使用各种类型的测量来实现。
图象区域的帧2505由场0和场1组成。如果没有在步骤2510检测到运动,平滑度测量就通过在步骤2515计算每帧内块的块拉普拉斯值来计算。如果检测到超过预定水平的较大运动,块拉普拉斯测量就在每个场上进行(步骤2520、2525),在步骤2530合并(例如,平均)两个测量,从而产生平滑度测度。
运动可以用各种方式检测/测量。在一个实施例中,评估场间的改变程度,如果它超过预定门限就检测到运动。
运动检测以及产生恢复值的帧信息和场信息的使用(通常取代丢失或损坏的值),都可以提供给要求产生恢复值的任一部分处理。例如,运动检测和产生恢复值的帧信息及场信息的选择性使用可以提供给DR/MIN恢复、象素恢复以及Q比特及运动标志恢复处理。因此,基于所检测的运动水平,恢复处理将基于场或基于帧利用现有信息。此外,这个处理可以与加权值的使用结合,加权值基于特定方向(例如,水平或垂直)上的相关水平来选择。
在Q比特和运动标志恢复处理的另一个实施例中,基于块内和块间测量来评估候选解码。在如下讨论中,术语“块”指帧或场的一部分。块内测量可评估候选解码的图象部分,例如图象部分的平滑度。块间测量可测出候选解码与相邻图象部分一致的程度。图26a和26b说明组合的块间及块内评估。具体而言,图26a表示一个可接受的候选解码,因为块间和块内测量均良好,而图26b中块间测量较差,即使块内测量相当好。
块内测量的例子包括上述的平滑度测量。块间测量的例子包括前面所述的误差平方测量。另一种块间测量是候选ADRC块上一致的边界象素与边界象素总数的比。
针对图26c、26d和26e解释ADRC编码的8×8块的块间和块内评估的一个例子。图26d说明由产生候选解码值x的q值组成的编码值2650、以及由y值组成的相邻的解码数据2655的数据的图象部分(块)。正如图26c的流程图所提出的,在步骤2605计算块内测量以便产生一个测度,例如块拉普拉斯Lx。在步骤2610,计算块间测量Sx以便产生相邻块之间一致性的一个测度。在步骤2615,产生组合测度Mx。组合测度提供用于选择候选解码的信息。
在本实施例中,作为处于候选解码的每个边界象素有效范围内的相邻数据数来计算Sx(见图26e)。作为一个实施例,图26e是说明有效范围的图,表示每个所观察的量化值qi的有效范围。因此LQDR<UQ,这里LQ、UQ分别代表对应于量化比特数=Q的DR的下界和上界。优选Sx根据下式归一化:Sx=Sx/边界象素数。
在本实施例中,合并的测度Mx根据下式计算: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为225。在本实施例中,在可用的情况下,UQ+1=LQ+1。
可以将准则合并成单个式子,得到DR的无限制的恢复值(val’),最后限幅的恢复值(val)从下式得到:
val=max(min(val,min(UQ,255-MIN)),LQ)
这里min和max分别代表最小和最大函数。
在另一个实施例中,用于产生恢复的DR及/或MIN的边界象素yi可以被过滤以便只使用其中呈现最佳相关的那些,因此更好地恢复DR和MIN。那些不满足准则的边界象素不使用。在一个实施例中,如果存在一个DR值使LQDR<UQ而且原始象素yi可能已经编码为qi,边界象素yi被认为对DR计算有效。因此,如果满足下式则象素有效:(yi-MIN)mmax(qi-0.5,0)≥LQ]]>(yi-MIN)mmin(qi-0.5,m)<UQ]]>
这里m代表最大量化级别=2Q-1。DR恢复值(val’)可以根据下式计算:val′=m·Σi(yi-MIN)qiΣiqi2]]>
然后该值可以被限幅到有效范围。因此这个过程迫使DR恢复值进入门限表定义的有效区域内部,降低了其真正DR处于门限表边界附近的点的精度。
已经注意到由于量化噪声,静止ADRC块的DR逐帧轻微变化。如果这个变化跨过ADRC编码边界,而且如果DR在几个连续帧上恢复,那么具有有效象素选择的DR恢复值在每个交叉点易于超过目标,导致显示中可觉察的闪烁现象。在尝试减少这种现象出现的努力中,一个实施例修改了有效象素选择过程,以便放宽上界和下界,从而允许越到相邻有效区域中的边界象素。通过包括仅在边界外的点,恢复值将更容易采取靠近上界或下界的值。放宽的边界L’Q以及U’Q通过放宽常数r计算。在一个实施例中,r被设置为0.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,加权的第一和第二恢复值被合并,以产生合并恢复值。应该注意该处理不限于只在两个方向上产生加权恢复值;很显然被加权并合并的恢复值数可以根据应用而变。各种已知技术可以用于产生表示特定方向上相关程度的相关值。此外,考虑到相关程度,有各种准则可以用于选择加权因子。通常,如果一个相关比另一个强,合并恢复值应该主要基于相应的恢复值。在一个实施例中,合并恢复值如下计算:val′={(1-α)hest+αvest:hc<vcαhest+(1-α)vest:hc>vc}]]>
这里hc代表水平相关,vc代表垂直相关,hest代表仅基于左及右边界信息的DR恢复值,vest代表仅基于上及下边界信息的DR恢复值,α代表加权值。加权值可以用各种方式确定。图27b说明了作为水平相关和垂直相关之差的函数来确定加权值的一个实施例。更具体来说,α被选为:α(|hc-vc|)={1-0.25·e-8(|hc-vc|-0.35):|hc-vc|≥0.350.5+0.25·e-8(0.35-|hc-vc|):|hc-vc|<0.35}]]>
正如上面注意到的,自适应相关处理用于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)是:(DR)uls=2Q·Σi(yi-MIN)·(0.5+qi)Σi(0.5+qi)2]]>
这里Q是量化比特数,MIN是作为块属性传输的最小值。上式假设非边缘匹配ADRC;对于边缘匹配ADRC,2Q被2Q-1代替,(0.5+qi)被qi代替。
优选地对非限制最小二乘估计进行限幅,以便保证与门限表和编码过程中实施的式子MIN+DR255的一致性(通常,对于非边缘匹配ADRC,允许的DR值在1-256范围内)。因此最小二乘估计被限幅(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:xi=MIN+(0.5+qi·DRlse2Q-1)]]>
非边缘匹配ADRC:xi=MIN+((qi+0.5)·DRlse2Q)]]>
假设DRlse是真正DR的合理估计,那么xi离yi比较近的任何地方可以被判决为低活动性区并因此是一个希望的匹配。新X和Y列表则可以通过只考虑xi和yi相接近地方的匹配而构成,并重新计算最小二乘估计以产生更新的估计。
用于确定“接近”的准则可以用各种方式来确定。在一个实施例中,使用误差函数的ADRC编码。这种方法的需求是因为它计算起来不昂贵。对于该处理,定义了由点ei=|yi-xi|组成的列表E。定义emin和emax分别作为列表中的最小和最大值,则eDR=emax-emin。编码误差值则可定义为:
gi=(ei-emin)nl/eDR
这里nl代表以类似于上述ADRC处理的方式重新量化ei的量化级别平数。
因此,新列表X和Y通过只选择那些gi小于一些门限的匹配而产生。如果新列表足够长,这些列表可用于产生精确的最小二乘估计DRrls。gi的门限和在精确确定最小二乘估计之前所需的匹配数优选地由经验确定。例如,在一个实施例中,对于包括8×8×2个水平二次抽样块的处理以及nl为10,只使用与gi=0对应的匹配,而且仅当新列表包含至少30个匹配时才对估计进行精确地确定。
在另一个实施例中,DR估计可以通过限幅潜在的DR值并重新计算DR估计来改善。具体而言,在一个实施例中列表D由成员di组成,该成员di包含使xi等于yi的DR值。更精确地:
di=2Q(yi-MIN)/(0.5+qi)
改善可以通过对每个di限幅而看到。即,
di’=max(min(UB,di),LB)
其中将DRcls计算为di’的平均值。限幅方法(DRcls)可以与其它DR估计(例如加权平均中的DRlse)合并,以便产生最后DR值。例如,根据下式确定加权平均DRest:
DRest=wl(DRcls)+w2(DRlse)
权重w1和w2优选地通过检查所得的估计以及从特定加权中产生的图象来经验性地确定。在一个实施例中,w1=0.22513,w2=0.80739。
本发明已经结合优选实施例进行了描述。对于本领域技术人员来说,根据前面的描述很多替换、修改、变化以及使用都是显而易见的。