利用基数近似或利用差分码和转义码的帧压缩的制作方法

文档序号:7952120阅读:239来源:国知局
专利名称:利用基数近似或利用差分码和转义码的帧压缩的制作方法
技术领域
本发明一般涉及视频信号处理,更具体地说,本发明涉及减少处理符合ITU-T H.263和MPEG-4 ISO/IEC标准的编码数字视频数据流所需的存储量。
背景技术
存储器是昂贵的,并且处理编码数字视频数据流所需的大多数存储空间用于存储数据帧中各像素的亮度和色度值。在对帧进行解码和处理时,有关该帧的信息必须被存储在存储器中。尽管对任何应用来说,减少存储需要都是吸引人的,但对于如移动电话和所谓的个人数字助理(PDA)等手持和低功率装置的用应格外重要,因为有限的电路板空间和功率严格限制了存储器芯片的尺寸和功率要求。
许多应用符合通过利用数据压缩技术减少存储需求的两种编码标准之一。由国际电信联盟(ITU)颁布的H.263标准支持电视会议和可视电话应用的视频压缩。MPEG-4标准正式名称为ISO/IEC14496,是由国际标准化组织(ISO)颁布的并便于数字电视、交互式图形技术和交互式多媒体的整合。这些技术能够通过发送或存储信息的过程来减少所需存储空间,但它们不针对对编码信息进行解码的过程所需的存储量。
尝试提供进一步的压缩面临几个问题。一个问题是这样引起的,许多压缩方案将小误差引入数字视频数据,并且这些误差的幅度在解码期间累积。小的不准确由例如舍入或舍位引起,这些不准确在用于确码过程的预测滤波器中被放大。因为各级中的误差在后面的预测级中导致更大的误差。
另一问题是由这样的事实导致的在例如运动补偿等过程中必须快速对整个图像上的各个像素进行存取。这种要求使得依赖于变长符号的压缩技术没有吸引力,因为在存储器中进行随机存取更困难。

发明内容
本发明的一个目的是提供用于减少存储和处理编码数字视频数据帧所需的存储量的技术。
根据本发明的一个方面,通过以下步骤对各个像素执行对表示多个像素的亮度值、第一色度值和第二色度值的数字视频数据的压缩将各个像素的亮度值的压缩表示存储在存储器中;响应于各个像素的第一色度值和第二色度值生成查找关键字;确定数据结构中的项目是否具有与查找关键字匹配的关键字,其中该数据结构包括多个项目,每个项目具有各自的关键字、各自的标识符以及各自的第一和第二色度值对;当数据结构中的项目具有与查找关键字匹配的关键字时,将数据结构中具有与查找关键字匹配的关键字的项目的标识符存储在存储器中;以及当数据结构中没有项目具有与查找关键字匹配的关键字时,或者在所述方法在近似操作模式下工作时,将数据结构中具有与查找关键字近似匹配的关键字的项目的标识符存储在存储器中,或者向数据结构中添加一个项目,该项目具有与查找关键字匹配的关键字、具有唯一标识符以及具有从相应像素的第一色度值和第二色度值得出的第一和第二色度值对,将添加到数据结构中的项目的唯一标识符存储在存储器中,并在没有其它项目要添加到数据结构中时设置近似操作模式。
根据本发明的一个方面,通过以下步骤执行对表示排列在一个组中的像素序列的亮度值、第一色度值和第二色度值的数字视频数据的压缩,其中所述像素序列具有第一像素,其后跟着一个或多个其它像素将亮度值的压缩表示存储在存储器中;将该组像素中第一像素的第一色度值的表示存储在存储器中,将该组像素中第一像素的第二色度值的表示存储在存储器中;确定该组中第二像素的第一色度值和该组中紧挨在第二像素前面的另一像素的第一色度值之间的第一差异;当第一差异没有超出第一阈值时,将第一差异的表示存储在存储器中,以及当第一差异超出第一阈值时,将存储器中的第一代码存储在存储器中,其中第一代码由一个不同于所存储的表示第一差异的值的值表示;确定第二像素的第二色度值和紧挨在第二像素前面的另一像素的第二色度值之间的第二差异;以及当第二差异没有超出第二阈值时,将第二差异的表示存储在存储器中,而当第二差异超出第二阈值时,将存储器中的第二代码顾储在存储器中,其中第二代码由一个不同于所存储的表示第二差异的值的值表示。
根据本发明的另一方面,通过以下步骤执行对表示排列在像素段中的像素序列的亮度值、第一色度值和第二色度值的数字视频数据的解压缩,其中所述像素段中的每一段具有第一像素,其后跟着一个或多个其它像素从存储器中检索并扩展亮度值;从存储器中检索第一像素段中的第一像素的第一色度值;从存储器中检索第一像素段中的第一像素的第二色度值;从存储器中检索对应于第一像素段中的第二像素的第一色度值的第一值,其中第一值或者表示第二像素的第一色度值和第一像素段中紧挨在第二像素前面的另一像素的第一色度值之间的第一差异,或者第一值是不同于表示第一差异的值的第一代码;当第一值是第一代码时,从第二像素段中第一像素的第一色度值建立第二像素的第一色度值,当第一值不是第一代码时,通过将第一差异与所述另一像素的第一色度值进行组合来建立第二像素的第一色度值;从存储器中检索对应于第一像素段中的第二像素的第二色度值的第二值,其中第二值或者表示第二像素的第二色度值和第一段中另一像素的第二色度值之间的第二差异,或者第二值是不同于表示第二差异的值的第二代码;以及当第二值是第二代码时,从第二像素段中第一像素的第二色度值建立第二像素的第二色度值,当第二值不是第二代码时,通过将第二差异与所述另一像素的第二色度值进行组合来建立第二像素的第二色度值。
本发明的各种特征及其优选实现可以参照以下描述和附图来更好地理解,其中相同的标号表示几个图中相同的部件。以下描述的内容以及附图仅作为例示陈述,并不应被理解为表示对本发明的范围的限制。


图1到2是接收和处理数字视频数据流的装置的示意方框图。
图3是说明方法中可用于执行数字视频信息的数据压缩的步骤的流程图。
图4A和4B是基数树的图形表示。
图5是说明方法中可用于从压缩表示恢复数字视频信息的步骤的流程图。
图6到7是说明方法中可用于执行数字视频信息的数据压缩的步骤的流程图。
图8到9是说明方法中可用于从压缩表示恢复数字视频信息的步骤的流程图。
具体实施例方式
图1是接收和处理数字视频数据流并且结合本发明的各方面的装置10,如移动电话或个人数字助理(PDA)的示意方框图。从路径11收到数字视频数据流,该路径可以是具有另一提供数据流的有线或无线通信路径。处理器13对排列成信息帧的数据流进行处理,将信息帧存储在随机存取存储器(RAM)15中,并随后从RAM 15中检索所存储的信息,对信息帧进行处理以将它们准备用于应用中,以及将所处理的信息传递到应用。在所示例示中,应用是显示部件17,它可以由例如液晶显示器(LCD)或薄膜晶体管(TFT)平板实现。其它应用例示包括录像机、视频编辑器和视频广播发射机。
本发明针对存储在RAM 15中的数字视频信息的数据压缩,从而能够减少存储信息所需的RAM量。在图1所示的实现中,本发明由通过处理器13执行的功能来实现。在图2所示的另一实现中,本发明由插入在处理器13和RAM 15之间的数据压缩器/扩展器14来实现。这种实现可以将本发明的一些方面与现有处理装置相结合,不需要对处理器13执行的功能作任何改变。这种实现能够使得处理器13工作时就好像它直接用RAM 15进行数字视频信息的存储和检索一样。数据压缩器/扩展器14截取处理器13对RAM 15中存储和检索数字视频信息的存储器访问请求,并且它使用比其它情况少的RAM量对那些请求进行处理。
这些附图所示的示意方框图省略了可能对实际实现是重要但是说明本发明时不需要的那些部件。例如,方框图省去了与电源、电源管理和输入/输出接口有关的功能部件。
装置10以及任何其它结合本发明的一些方面的装置中的部件可以用任何适当的方式实现,其中包括分立和集成电子部件、程序设计的逻辑部件、门阵列、通用程序控制的处理器、数字信号处理器和专用集成电路。对于采用程序控制的处理器的实现,可以通过包括磁和光存储媒体的基本上任何装置可读媒体和固态存储装置传达控制程序的指令。实现方式原则上对本发明不是关键的。
以下描述针对本发明的实现,这些实现可用于压缩符合ITU-TH.263和MPEG-4 ISO/IEC标准的数字视频数据流中表示画面元素(“像素”)的信息,以及用于从压缩表示中恢复解压缩的视频信息。但是,应该理解,本发明可以应用于符合其它标准的数据流。下述方法可以通过实现为如图1所示装置10的处理器13执行,可以通过实现为如图2所示数据压缩/扩展处理器14执行,或者可以通过基本上任何其它可以想到的处理电路配置执行。
基数近似技术数据压缩图3说明方法100中对数据流中数字视频信息的帧序列中像素的信息进行压缩的步骤。步骤S101将程序和硬件部件初始化。存储在存储器中表示基数树的信息被清零,并设置变量模式以表示要根据步骤S102中从数字视频信息得到的信息来建立新树,下面将对基数树作更详细的描述。
步骤S103从数字视频信息中提取数据以得到像素的亮度值Y和色度值Cb、Cr。最好在步骤S104对亮度值Y进行舍入和舍位,并将舍位值存储在RAM 15中。舍入和舍位运算应该没有任何偏差,否则通过利用预测方法的互补数据扩展过程得到的亮度将很快根据偏差的方向衰减为白或黑。与两个有效舍位值中的任一个等距离的亮度值应该被舍入到偶舍位值。如果扩展过程中没有使用预测方法,则纯舍位引入的偏差就不那么明显。
步骤S105利用从色度值Cb、Cr对得出的查找关键字K横穿基数树,而步骤S106确定是否在树中找到具有这个关键字的节点。如果找到这样一个节点,则从树中得到此节点的代码值X,该值X接着被用于表示压缩形式的色度信息。
如果没有找到具有关键字值K的节点,则在步骤S108确定变量模式是否表示正在建立基数树。如果正在建立基数树,则步骤S110在树中创建一个新节点,得到其代码值X,并根据需要更新模式变量以表示基数树的建立已经完成。如果步骤S108确定变量模式表示基数树的建立已经完成,则在步骤S109得到具有与没有在树中找到的值K接近的关键字值的节点的代码值X。
步骤S111将代码值X存储在RAM 15中,以表示压缩形式的色度值Cb、Cr对。
步骤S112确定是否已压缩和存储了当前帧的所有数字视频信息。如果还没有完成当前帧中所有信息的压缩,则方法100继续到步骤S103,以压缩帧中的下一像素。如果已经到达数据流的结尾,则方法100在步骤S110终止。
如果已经压缩了当前帧中的所有信息,则处理继续的方式取决于帧序列中当前帧后面的内容。如果数字视频信息被组织为若干帧,这些帧传达由预测或差分编码方法生成的数据,则这些帧在不访问某个具有形成预测或差分编码基础的值的“I帧(intraframe)”的情况下无法被解码。I帧传达不需访问任何其它帧就可以被解码的数据。方法100可用于对利用提供I帧的编码技术编码的数字视频数据进行压缩。如果序列中的下一帧是I帧,则方法100继续到步骤S102,以建立新的基数树并利用这棵新树压缩后续帧中的数据。如果下一帧不是I帧,则通过继续到步骤S103来压缩下一帧中的第一像素。
基数树发明人确定色度值的极少的唯一组合一般发生在视频图像中。图像中的对象趋向于在其边缘具有基本均匀的颜色;因此,色度值Cb、Cr趋向于彼此相关。本发明通过建立颜色的调色板以及相关的树结构来利用此特征。为树中的节点分配简单的标识符,并用标识符建立节点和存储在调色板中的颜色之间的联系。通过数字视频数据流在一遍中建立该树。
“基数树”被用于存储关于调色板的信息。基数树具有根节点和一个或多个其它节点。除根节点之外的各节点具有到唯一一个父节点的链接。包括根节点的各节点可以具有到多至两个子节点的链接,其中这两个子节点具有二进制值零和一。各个父节点的两个子节点必须具有不同的值。“叶节点”是没有子节点的节点。树中的各个相应节点与唯一查找关键字相关,该查找关键字等于在横穿从根节点到相应节点的链接期间遇到的节点的值。参照图4A所示的树200,例如,从根节点220到节点222横穿树只遇到节点222本身,该节点具有值“1”;因此,“1”是节点222的查找关键字。从根节点220到节点224横穿树遇到节点222,该节点具有值“1”,然后遇到节点224,它具有值“0”;因此“10”是节点224的查找关键字。继续横穿该树,可以看到“101”和“1010”分别是节点226和228的查找关键字。
参照图4A所示的树,搜索具有查找关键字“100”的节点是设法寻找节点225。关键字“100”中的第一符号“1”引导从根节点220横穿树到节点222。关键字中的第二符号“0”引导从节点222横穿树到节点224。关键字中的第三符号“0”引导搜索设法从节点224横穿到节点225;但是,节点225没有存储在树中。节点224和遗漏节点225之间的虚线表示没有要穿越的链接。图4A所示对树中关键字“100”的搜索返回一个没有找到节点的表示。
如果在建立基数树时没有找到节点,则方法100中的步骤S110通过创建所有的遗漏链接来创建树中的新节点。在上述例示中,当变量模式表示正在建立树时,将创建节点225以响应于寻找关键字“100”的尝试。此节点的创建反映在图4B所示的树201中。当节点创建时,将各节点的一个简单标识符存储在树中。在将树限定在指定数目的节点的一种实现中,该标识符是固定长度的二进制数,等于树中节点的计数。参照图中所示例示,图4A所示的树200中存在20个节点。当节点225被加到树中时,它变成第二十一个节点。在此实现中,为它分配等于十进制21的二进制标识符10101。与节点相关的标识符不同于节点的查找关键字。标识符用作上述的代码值X。
在一个特定实现中,对具有176×144像素(QCIF格式)的画面或具有352×288像素(CIF格式)的画面的数字视频信息进行压缩,输入数字视频数据流中的亮度值Y和色度值Cb、Cr的长度都是8比特。在步骤S104中,亮度值Y被舍入和舍位为6比特的长度。利用可以存储多至256节点的基数树对色度值进行编码。各节点的标识符是8比特数字。
调色板为在数字视频信息的帧序列中遇到的前256对Cb、Cr值构建调色板。从两个值的交织表示的前8比特获得各对值的查找关键字。查找关键字K的第一比特等于Cb值的最高有效位(MSB)。查找关键字K的第二比特等于Cr值的MSB。K的第三比特是Cb值的第二MSB而K的第四比特是Cr值的第二MSB。换句话说,从与Cr的四个MSB交织Cb的四个MSB形成8比特查找关键字。
调色板中的各项目存储一对色度值Cb、Cr的16比特。可以将调色板存储在单独的阵列中,其中根据它们存储在阵列中的顺序排列这些项目,或者它可以存储在定义基数树链接和节点标识符的数据结构中。存储在调色板中的值不同于相关的查找关键字。8比特查找关键字只包括各个色度值的前4比特,16比特凋色板项目包括值Cb、Cr对中各色度值的全部8比特。这样确保了调色板中的各项目表示数字视频数据流中出现至少一次的颜色。
步骤S110创建基数树中的新节点直到调色板被填满。如果调色板的容量是例如256种颜色,则在调色板的颜色计数,或者等效的,树节点计数到达256时,步骤S110改变变量模式以表示基数树的构建完成。接着,当步骤S106确定在树中没有找到查找关键字K时,步骤S109通过从调色板得到最近匹配来提供Cb、Cr值的近似值。
近似通过沿着查找关键字K指示的路径经过尽可能多的节点穿越树来提供近似颜色。之后,横穿树就像查找关键字K中的剩余比特与第一个表示树中遗漏链接的比特相同。例如,假定在步骤S103中获得的色度值Cb、Cr对提供图4A所示的树200的查找关键字K=“1001”。如果变量模式表示树的构建已经完成,则步骤S109通过穿越树200到达节点224来提供色度的近似值,其中查找关键字中的第三符号“0”指的是遗漏链接,因为节点225没有存储在树中。之后,横穿树200就像查找关键字K中的剩余符合为“0”一样。这导致此穿越到达节点228。存储在调色板中与节点228相关的项目中的颜色表示存储在调色板中与Cb、Cr值所表示的颜色最近的匹配。
备选实现可以用许多方式形成查找关键字。可以从两个色度值的结合获得查找关键字,或者从基本上可以想到的任何其它色度值的组合获得查找关键字。在一个实现中,利用忽略了查找关键字K的几个最低有效位的值建立基数树。这样通过减少树中所需的节点数量,进一步减少了存储视频信息所需的存储量,并且它也越于使调色板中的颜色更均匀地分布在数字视频信息中出现的色空间部分上。
采用基数树是方便的但不是本质的。可以采用其它类型的数据结构,其中包括能够被搜索和更新的项目阵列或项目表。原则上没有什么特定的结构是必不可少的。
数据扩展图5说明方法140中对来自数据流中数字视频信息的帧序列的像素的编码信息进行解压缩的步骤。步骤S141对程序和硬件部件进行初始化。在步骤S142获得表示颜色的调色板的信息。
步骤S143从RAM 15中检索信息,获得表示像素的亮度值和色度值的代码。步骤S144用零比特填充亮度值Y的代码以将其扩展到其适当的长度。步骤S145利用色度值的代码来识别调色板中的项目,并获得存储在该调色板项目中的色度值Cb、Cr。
步骤S146确定是否已对当前帧的所有数字视频信息进行了解压缩。如果还没有完成当前帧中所有信息的解压缩,则方法140继续到步骤S143,对帧中的下一像素进行解压缩。如果已经到达数据流的结尾,则方法140在步骤S147终止。
如果已对当前帧中的所有信息进行了解压缩,则处理继续的方式取决于当前帧后面的内容。如果下一帧是I帧,则方法140继续到步骤S142,得到新的调色板并利用这个新调色板对后续帧中的数据进行解压缩。如果下一帧不是I帧,则通过继续到步骤S143来对下一帧中的第一像素进行解压缩。
差分码和转义码技术数据压缩图6说明方法200中将数字视频信息的帧中像素组的信息压缩成各段压缩信息的步骤。步骤S201初始化程序和硬件部件。在步骤S202中将用于对压缩成特定段的像素进行计数的变量K设置为等于1的初始值。步骤S203从数字视频数据流中提取信号以得到像素的亮度值Y和色度值Cb、Cr。
在步骤S204对亮度值Y进行舍入和舍位,并将舍位值存储在RAM15中。舍入和舍位运算最好应该没有任何偏差,否则通过利用预测方法的互补数据扩展过程得到的亮度将很快根据偏差的方向衰减成白或黑。与两个有效舍位值中的任一个等距离的亮度值应该被舍入到偶舍位值。如果扩展过程中没有使用预测方法,则纯舍位引入的偏差就不那么明显。
步骤S205确定变量K是否等于1。如果K等于1,则对相应段中的第一像素的信息进行压缩,同时处理进行到步骤S206。在步骤S206中,将色度信息Cb、Cr的全长或未压缩值存储在RAM 15中。将Cb、Cr值分别保存在变量Cb_Save、Cr_Save中,同时清除标志Cb_Flag和Cr_Flag以便在步骤S207中使用。如果K不等于1,则处理继续到步骤S207,该步骤将色度值Cb、Cr压缩成代码x_Cb、x_Cr并将这些代码以下述方式存储在RAM中。
步骤S208确定是否已压缩和存储了当前帧的所有数字视频信息。如果是,则方法200在步骤S209终止。如果还有更多数字视频数据要进行压缩,则处理继续到步骤S210,该步骤将变量K加一,从而对当前段中迄今处理过的像素数目进行计数。步骤S211确定计数K是否大于要压缩到各段中的像素数量Segm。如果计数K不大于Segm,则方法200通过继续到步骤S203来继续将下一像素的信息压缩到当前段中。如果计数K大于Segm,则方法200通过继续到步骤S202来开如将信息压缩到新段中。
差分编码发明人已确定相邻像素之间色度值的差异一般非常小,只除了图像中对象边界处以外。本发明通过将像素排列成组,将第一像素的色度值存储在各组中,并对各组中剩余像素之间色度值的差异进行编码,从而利用此特征。如果色度值中出现大的差异,则假定已遇到对象的边缘,并且用下一组中第一像素的色度值对边缘处像素的色度值进行近似。这种情形由一个特殊的“转义”码表示,该“转义”码具有不同于所有有效差分码的值。这种技术尝试用对象内部另一像素的色度值来对边缘处像素的色度值进行近似。组中剩余像素的色度值通过用“转义”码表示其中的每一个来以相同的方式进行近似。
在一个特定实现中,对具有176×144像素(QCIF格式)的画面或具有352×288像素(CIF格式)的画面的数字视频信息进行压缩,其中输入数字视频数据流中的亮度值Y和色度值Cb、Cr的长度都是8位。亮度值Y被舍入和舍位为6位的长度。如下所示,差分色度值被编码为三位码。为“转义”码保留一个特定的三位模式。Segm设置为等于8。
图7说明了可用于为这些类型的数字视频数据流执行步骤S207的方法220。在此方法中,步骤S221分别根据以下表达式计算色度值Cb、Cr的差分值(differential value)ΔCb、ΔCrΔCb=Cb-Cb_SaveΔCr=Cr-Cr_Save其中Cb=特定定像素的第一色度值;Cr=特定定像素的第二色度值;Cb_Save=前一像素的第一色度值;以及Cr_Save=该前一像素的第二色度值。
在方法200的步骤S206中,通过将这两个变量设置为等于段中第一像素的各个色度值Cb、Cr,从而初始化所保存的值Cb_Save、Cr_Save。在步骤S230中更新每个像素的这些“保存”值。
步骤S222确定是否设置了Cb_Flag。各段的这个标志开始在步骤S206中被清零。如果设置了该标志,则方法220继续到步骤S225。如果没有设置该标志,则步骤S223确定差分值ΔCb的绝对值是否超出阈值Cb_Th。如果没有超出,则步骤S224将差分值ΔCb编码成代码x_Cb并将该代码存储到RAM 15中。如果差分值的绝对值确实超出了阈值,则方法进行到步骤S225,该步骤将“转义”码存储到RAM15中并设置标志Cb_Flag。
标志Cb_Flag表示是否为当前段中任一像素的Cb色度值将“转义”码存储到RAM 15中。如果设置了标志,表示已经存储了“转义”码,则为该段中所有剩下的Cb色度值存储“转义”码。
利用类似的过程压缩Cr色度值。步骤S226确定是否设置了Cr_Flag。各段的这个标志开始在步骤S206中被清零。如果设置了该标志,则方法220继续到步骤S229。如果没有设置该标志,则步骤S227确定差分值ΔCr的绝对值是否超出阈值Cr_Th。如果没有超出,则步骤S228将差分值ΔCr编码到代码x_Cr中并将该代码存储到RAM 15中。如果差分值的绝对值确实超出了阈值,则方法继续到步骤S229,该步骤将“转义”码存储到RAM 15中并设置标志Cr_Flag。以与以上针对Cb_Flag描述的类似方式使用Cr_Flag。
步骤S230更新程序变量Cb_Save、Cr_Save以表示刚刚压缩并存储到RAM 15中的色度值Cb、Cr。
在上述特定实现中,压缩QCIF或CIF格式的画面的数字视频信息,对差分值ΔCr、ΔCb和“转义”码进行编码并以三比特2的互补二进制数形式存储在RAM 15中。两个阈值Cb_Th、Cr_Th彼此相等,都为20,三比特码x的一种方案如下
其中ΔC=色度的三比特2的互补差分值;以及Th色度阈值。
数据扩展图8说明方法240中对数字视频信息帧中的像素段的编码信息进行解压缩的步骤。步骤S241对程序和硬件部件进行初始化。在步骤S242中,将用于对从特定段中解压缩的像素进行计数的变量K设置为等于1的初始值。步骤S243从RAM 15中检索信息以得到像素的亮度值Y和色度值Cb、Cr的代码。
步骤S244用零比特填充亮度值Y以将其扩展到其适当的长度。
步骤S45确定计数器变量K是否等于1。如果K等于1,则对相应段中第一像素的信息进行解压缩,同时处理进行到步骤S246。步骤S246将Cb、Cr值分别保存在变量Cb_Save、Cr_Save中。不需要进一步的处理来得到色度信息Cb、Cr的未压缩值,因为这些值是直接在步骤S243中从RAM 15中检索到的。如果K不等于1,则处理继续到步骤S247,该步骤以下述方式对编码色度值x_Cb、x_Cr进行解压缩。
步骤S248确定是否已对当前帧的所有数字视频信息进行了解压缩。如果是,则方法240在步骤S249终止。如果还有数字视频数据要解压缩,则处理继续到步骤S250,该步骤将变量K加一,从而对当前段中迄今处理过的像素数量进行计数。步骤S251确定计数K是否大于要从各段解压缩的像素数量Segm。如果计数K不大于Segm,则方法240通过继续到步骤S243来继续将当前帧中的下一像素的信息解压缩。如果K大于Segm,则方法240通过继续到步骤S242来开始对新段中的信息进行解压缩。
在方法240的一个特定实现中,其中该实现是上述方法200的特定实现的补充,从存储器中检索亮度值Y的六位代码产填充为八比特值,并且如下所述从三比特代码解压缩度值Cb、Cr。Segm设置为八。
差分解码图9说明可用于执行步骤S247的方法260。在此方法中,步骤S261确定RAM 15中表示Cb色度值的代码x_Cb是否等于特殊的“转义”码。如果不等,则方法继续到步骤S262。如果代码值等于“转义”码,处理继续到步骤S263。
步骤S262通过将编码值x_Cb加上Cb的保存值,从而对Cb色度值进行解压缩,如下所示Cb*=x_Cb+Cb_Save其中Cb*=特定像素的解压缩第一色度值;x_Cb=Cb的压缩表示;以及Cb_Save=上一像素的第一色度值。
在方法240的步骤S266中,通过将变量Cb_Save设置为等于该段中第一像素的色度值Cb,从而初始化保存的Cb_Save。在步骤S269中对该段中各像素的“保存”值进行更新。
如果编码值x_Cb等于“转义”码,则处理继续到步骤S263。步骤S263从RAM 15得到下一段中第一像素的Cb色度值。该值被称为Cb_Base值。对于利用定长码表示段中各像素的亮度和色度值,并且其中这些值都存储在RAM 15的相邻存储单元中的实现来说,RAM中下一段的基值相对于当前像素的“转义”码的位置的位置可以利用以下事实进行计算(Segm-k)个像素的编码信息存储在当前像素和下一段的开始之间的存储区中。步骤S264通过将解压缩值Cb*设置为等于下一段的基值Cb_Base,从而对当前像素的Cb色度信息进行解压缩。
利用类似的过程对Cr色度值解压缩。步骤S265确定表示RAM 15中的Cr色度值的代码x_Cr是否等于特殊“转义”码。如果不是,则方法继续到步骤S266。如果编码值等于“转义”码,则处理进行到步骤S267。
步骤S266通过将编码值x_Cr加上Cr的保存值,从而对Cr色度值进行解压缩,如下所示Cr*=x_Cr+Cr_Save其中Cr*=特定像素的解压缩第二色度值;x_Cr=Cr的压缩表示;以及Cr_Save=上一像素的第二色度值。
在方法240的步骤S266中,通过将变量Cr_Save设置为等于该段中第一像素的色度值Cr,从而初始化保存值Cr_Save。在步骤S269中对该段中各像素的“保存”值进行更新。
如果编码值x_Cr等于“转义”码,则处理继续到步骤S267。步骤S267从RAM 15得到下一段中第一像素的Cr色度值。该值被称为Cr_Base值。步骤S268通过将解压缩值Cr*设置为等于下一段的基值Cr_Base,从而对当前像素的Cr色度信息进行解压缩。步骤S269更新程序变量Cb_Save、Cr_Save以表示刚刚从RAM 15解压缩的像素的色度值Cb、Cr。
权利要求
1.一种用于对表示像素序列的亮度值、第一色度值和第二色度值的数字视频数据进行压缩的方法,所述像素序列排列在一个组中,其中具有第一像素,所述第一像素后面跟着一个或多个其它像素,其中所述方法包括在存储器中存储所述亮度值的压缩表示;将所述像素组中所述第一像素的所述第一色度值的表示存储在存储器中;将所述像素组中所述第一像素的所述第二色度值的表示存储在存储器中;确定所述组中第二像素的所述第一色度值和所述组中紧挨在所述第二像素前面的另一像素的所述第一色度值之间的第一差值;当所述第一差值没有超出第一阈值时,将所述第一差值的表示存储在存储器中,以及当所述第一差值超出所述第一阈值时,将存储器中的第一代码存储在存储器中,其中所述第一代码由一个不同于所存储的表示所述第一差值的值的值表示;确定所述第二像素的所述第二色度值和紧挨在所述第二像素前面的所述另一像素的所述第二色度值之间的第二差值;以及当所述第二差值没有超出第二阈值时,将所述第二差值的表示存储在存储器中,以及当所述第二差值超出所述第二阈值时,将存储器中的第二代码存储在存储器中,其中所述第二代码由一个不同于所存储的表示所述第二差值的值的值表示。
2.如权利要求1所述的通过对所述亮度值舍入和舍位来获得亮度值的所述压缩表示的方法,其特征在于将到偶数舍位值和奇数舍位值等距离的亮度值舍入和舍位到所述偶数舍位值。
3.如权利要求1所述的方法,其特征在于所述第一代码和所述第二代码相同。
4.如权利要求3所述的方法,其特征在于所述第一和第二差值以及所述第一和第二代码的表示具有相同的比特长度,所述第一差值的所述表示是所述第一差值的二进制表示,所述第二差值的所述表示是所述第二差值的二进制表示,以及所述第一和第二代码由表示没有用于表示所述第一和第二差值的二进制差值的值表示。
5.如权利要求1所述的方法,其特征在于所述第一差值、所述第二差值、所述第一代码和所述第二代码的表示是三比特值,以及所述第一和第二阈值等于二十。
6.一种用于对表示排列在像素段中的像素序列的亮度值、第一色度值和第二色度值的数字视频数据进行解压缩的方法,其中各段具有第一像素,其后跟着一个或多个其它像素,以及其中第一像素段紧挨在所述序列中第二像素段之前,其中所述方法包括从存储器中检索并扩展所述亮度值;从存储器中检索所述第一像素段中的所述第一像素的所述第一色度值;从存储器中检索所述第一像素段中的所述第一像素的所述第二色度值;从存储器中检索对应于所述第一像素段中第二像素的所述第一色度值的第一值,其中所述第一值或者表示所述第二像素的所述第一色度值和所述第一像素段中紧挨在所述第二像素前面的另一像素的所述第一色度值之间的第一差值,或者所述第一值是不同于表示所述第一差值的值的第一代码;当所述第一值是所述第一代码时,根据所述第二像素段中所述第一像素的所述第一色度值建立所述第二像素的所述第一色度值,当所述第一值不是所述第一代码时,通过将所述第一差值与所述另一像素的所述第一色度值进行组合来建立所述第二像素的所述第一色度值;从存储器中检索对应于所述第一像素段中所述第二像素的所述第二色度值的第二值,其中所述第二值或者表示所述第二像素的所述第二色度值和所述第一段中所述另一像素的所述第二色度值之间的所述第二差值,或者所述第二值是不同于表示所述第二差值的值的第二代码;以及当所述第二值是所述第二代码时,根据所述第二像素段中所述第一像素的所述第二色度值建立所述第二像素的所述第二色度值,以及当所述第二值不是所述第二代码时,通过将所述第二差值与所述另一像素的所述第二色度值进行组合来建立所述第二像素的所述第二色度值。
7.如权利要求6所述的方法,其特征在于通过用具有为零的二进制值的比特填充所述亮度值来扩展所述亮度值。
8.如权利要求6所述的方法,其特征在于所述第一代码和所述第二代码相同。
9.如权利要求8所述的方法,其特征在于所述第一和第二差值以及所述第一和第二代码的表示具有相同的比特长度,所述第一差值的所述表示是所述第一差值的二进制表示,所述第二差值的所述表示是所述第二差值的二进制表示,以及所述第一和第二代码由表示没有用于表示所述第一和第二差值的二进制差值的值表示。
全文摘要
压缩符合如ITU-T H.263和MPEG-4 ISO/IEC标准的数字视频数据流以减少存储这些流所需的存储量。一种技术通过对亮度值舍入和舍位以及利用基数树和调色板对色度值编码来压缩帧序列结构。调色板中各项目存储表示帧序列中实际出现至少一次的颜色的信息。基数树提供生成存储在调色板中的颜色的压缩表示的有效方式,还提供识别调色板中与未存储在调色板中的数据流中其它颜色最匹配的颜色。另一技术将像素组信息压缩成编码信息段。各段编码信息包括舍入舍位的亮度值、组中第一像素的色度信息全长值和表示组中剩余部分相邻像素间色度值之差的代码。当像素和前一像素之色度值差超出阈值时,用特殊“转义”码表示像素色度值。
文档编号H04N9/79GK1825978SQ20061000378
公开日2006年8月30日 申请日期2003年4月17日 优先权日2002年4月19日
发明者K·C·高尔德 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1