数目可变的位的打包和解包的制作方法

文档序号:6409698阅读:146来源:国知局
专利名称:数目可变的位的打包和解包的制作方法
技术领域
本发明涉及把来自于输入位流的数目可变的位打包成输出位流。本发明还涉及对来自于位流的数目可变的位进行解包。
打包器的任务是将数目可变的位打包成位流。文献EP0390310A2公开了一种数据打包器,该数据打包器接收n位宽的并行数据字并输出m位宽的并行数据字,其中n是变量并且可以在操作期间变化,而m是固定整数。
US5079548公开了一种数据打包器,用于无间隔地连续将具有可变长度的外层(coat)打包成具有预定长度的连续位单元。AaaUS4667305公开了一种数据处理系统,其包括用于在数据处理系统中单元之间,以可变宽度字段或块并行传输数据的可变宽度数据总线,其中所述数据是由起始位置和长度来描述的,并且假若在数据总线上可用的数据字段大于位位置数目的话就执行校准。
本发明的一个目的是,提供有利地将数目可变的位打包成位流或对来自于位流的数目可变的位进行解包。为此目的,本发明提供了如独立权利要求所限定的打包方法、解包方法、打包器、解包器、计算机程序产品、发送器和接收器。从属权利要求限定了优选实施例。
一种根据本发明的第一方面把来自于输入流的数目可变的位打包成输出位流的方法,开始于定义将要在一个时钟周期内打包成输出位流的位的最大数目n,且进一步包括提供验证位流,该验证位流将所述输入位流中的那些位的位置定义成将选用来打包的输出位,选择输出位,以及只向所述输出位流添加输出位。不把尚未选择的位打包成输出位流,因为它们不包含相关的信息。
解包方法对应于打包方法,但是从位串中删除了许多位。当删除选用来解包的位时,再次使用验证位流来定义所述位流中的那些位的位置。然后,从位流中仅删去那些选定的删除位。
在优选实施例中,可以按模块化方式来执行打包和解包方法。对于该例,就n位的打包器来说,它由n行移位单元组成,所述移位单元能够被载单个比特的位置上移位。
打包器和解包器分别包括控制装置,用于定义将要在一个时钟周期内打包或解包的位的最大数目n;以及用于提供具有上述特性的验证位流的装置。在打包的情况下,选择器选择想要的位并将它们添加到现有的输出位流中,或者在解包的情况下,选择器从位流中删除它们。
打包和解包数目可变的位的方法可以通过计算机程序来实现。
新的移动式多媒体应用出现了。在它们当中,有带有视频工具的便携式电话、带有摄像机的个人电脑和信息技术终端。只有当这类应用在功耗和成本方面都很低时,才能够成功地被接受。两者都可以通过将组件数目减少到绝对极小值而获得。然而,这要求像用以存储压缩用的参考图像的存储器那样,压缩核心也应该位于相同的集成电路上。根据本发明实施例的打包和解包优选地应用于这类应用中。
本发明在嵌入式压缩环境下是有利的,特别是在诸如WO01/17268-A1中所描述的在循环存储器前面所进行的可伸缩的压缩方面是有利的。
现在,将进一步参照附图来解释本发明,在附图中

图1示出了根据本发明实施例的打包过程的示意图;图2进一步按举例的方式示出了解释图1的过程的示例图。
图3是根据本发明实施例的解包过程的例图;和图4是本发明的应用的示意性框图。
图1使用了例如以串的形式转换的总计8×8个像素的块。提供承载验证位或有效位的第二个串,其中数值1表示在应该打包成输出位流的输入位流中的位置。例如,通过各个验证位选择像素nr.0、5和64。由此,就使打包行为变得有规律了,并降低了数据相关性。虽然已经就串形式的块转换描述了该实施例,但是这种转换不是必要条件。相反,可以直接通过使用在其验证串中具有n个位单元的打包器来处理块结构。
图2举例说明了输出位的选择。输入位流已经包含了串″abcdefgh″。假定每个块周期能够打包最大4位。必须要打包的那些位用验证位wxyz来表示。在这种情况下,在验证位与新的位之间不存在任何重合(coincidence),从而输出位流包含″ABCDEFGH″。每当新的位到达时,就将存在于输入位流中的输入左移位,以便为新的位创建所需的空间。
在第一个具体示例中,新的位是1*0*,而验证位是1010。因此,只选择来自于新位的第一和第三位,并将它们当作10添加到输入流的末尾处。在第二个具体示例中,由于根据验证序列只选择了新位的第三位,因而将1添加到前面的输入位流中,得到最后三位为101。类似地,在第三个具体示例中,最初的三的新位都被添加到前面的输入数据流中。
图3作为举例说明了解包过程。如果将要处理的位串与验证串wxyz存在重合的话,则从位流中删除jklh。在第一具体示例中,根据验证串,从所述串中删除最后三位,在第二个示例中,删除末尾位,在第三个具体示例中,删除在位串末尾的第一位置和第三位置处的那些数字。
图4是举例说明本发明的应用的框图。用于个人电脑的摄像机1(PC照相机)把视频信号Ivideo输入到本发明的打包器2中,其中所述数据是压缩后的。然后,将压缩的数据流Opacked发送到个人电脑3,其中在解包器4中对其进行解压缩。最后,使用解包数据流Ounpacked来在显示器5上显示视频序列。在图4中,在现有技术中公知的摄像机或个人电脑的所有其它组件均未示出。
目前,PC照相机最多只包含有限的视频压缩功能。这需要照相机与PC之间的直接连接以便发送视频序列。然而,这一连接的可用带宽不够大到足以采用高帧速率来处理大的图像尺寸,例如4:2:0格式的、每秒30帧的未压缩的VGA需要每秒105兆位的带宽。因此,高压缩比是必要的。由于这种连接的有限得多的带宽,因而与个人电脑之间具有无线连接的PC照相机强制地要求高压缩比。可拆卸式PC照相机当其从个人电脑上被拆下时能够捕获视频序列。视频序列是存储在存储介质上的,例如硬盘或固态存储器。为了能在这种内部存储介质上存储更长的序列或者减少其容量,高压缩比是必要的。本发明的实施例提供了以可变长度编码来对位进行打包(解包)的快速而小巧的解决方案,在这种应用中是尤其有益的。
在包括视频电话功能的手持式多媒体终端中,或者在基于许多连接于现有低带宽网络的可拆卸式照相机的侦察照相机中,能够找到进一步的应用。每个照相机都利用本发明的方法在它的本地存储介质上记录视频序列。然后,安全操作者连接于需要的照相机并下载其记录下的视频序列。本发明还可以应用于具有更多高级功能的智能化照相机,例如在目标识别、目标跟踪和字符识别领域中就是如此。
下面,给出计算机程序来定义打包和解包过程。
打包器<pre listing-type="program-listing"><![CDATA[ LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.numeric_std.ALL;ENTITY packer IS GENERIC (bitsINTEGER=257; shifts INTEGER=32);PORT(clk IN std_logic); data_in IN signed(0 TO bits+shifts-1); valid_inIN signed(bits TO bits+shifts-1); data_outOUT signed(0 TO bits-1));END;ARCHITECTURE rtl OF packer ISBEGIN packPROCESS(data_in,valid_in) VARIABLE tmp_bitssigned(0 TO bits+shifts-1); BEGIN tmp_bits=data_in; FOR i IN bits TO bits+shifts-1 LOOPIF valid_in(i)=‘1’AND tmp_bits(0)=‘0’thentmp_bits(0 TO bits-1);=tmp_bits(1 TO bits-1) &amp; tmp_bits(i);END IF; END LOOP; data out<=tmp_bits(0 TO bits-1); END PROCESS;END;]]></pre>解包器
<pre listing-type="program-listing"><![CDATA[ LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.numeric_std.ALL;ENTITY unpacker IS GENERIC (bitsINTEGER=256;shifts INTEGER=32);   PORT(clk INstd_logic;   data_in IN signed(0 TO bits-1);   valid_inIN signed(0 TO shifts-1);   data_outOUT signed(0 TO bits+shifts-1));  END;   ARCHITECTUR rtl OF unpacker IS   BEGIN   unpackPROCESS(data_in,valid_in)   VARIABLE tmp_bitssigned(0 to bits+shifts-1);   BEGIN   tmp_bits=data in(0 TO bits-1) &amp; data_in(0 TO shifts-1);   FOR i IN 0 TO shifts-1 loop   IF valid_in(i)=‘0’THEN   tmp_bits(i+1 TO bits+shifts-1)=tmp_bits(i to bits+shifts-2);   END IF;   data_out(i)<=tmp_bits(i);   END LOOP;   data_out(shifts TO bits+shifts-1)<=tmp_bits(shifts TO bits+shifts-1);   END PROCESS;   END;]]></pre>应当注意的是,上述实施例是对本发明的举例说明而非限制本发明,并且本领域的技术人员将能在不背离所附权利要求的范围的情况下,设计出许多可选的实施例。在权利要求中,不应该把括号内的任何附图标记看作是限制该权利要求。除那些列在权利要求上的元件或步骤外,术语‘包括’不排除其它元件或步骤的存在。本发明能够通过包括几个不同元件的硬件和通过适当编程的计算机来实现。在列举了几个装置的装置权利要求中,这些装置的几个装置都可以利用完全一样硬件项目来实现。仅有事实就是,在相互不同的从属权利要求中阐述的确定的手段并不表示不能优选地使用这些手段的组合。
权利要求
1.一种用于把来自于输入位流的数目可变的位打包成输出位流的方法,所述方法包括以下步骤定义将要在一个时钟周期内打包成输出位流的位的最大数目n;提供验证位流,所述验证位流把所述输入位流中的那些位的位置定义成将要选用来打包的输出位;选择输出位;并且只把输出位添加到所述输出位流。
2.一种对来自于位流的数目可变的位进行解包的方法,所述方法包括以下步骤定义将要在一个时钟周期内从所述位流中解包的位的最大数目n;提供验证位流,所述验证位流把所述位流中的那些位的位置定义成将要选用来解包的删除位;选择删除位;并且只从所述位流中删除掉所述删除位。
3.如权利要求1或2所述的方法,其中所述验证位流是按n个位的单元构造的。
4.一种用于把来自于输入位流的数目可变的位打包成输出位流的打包器,所述打包器包括控制装置,用于定义将要在一个时钟周期内打包成输出位流的位的最大数目n;用于提供验证位流的装置,所述验证位流把所述输入位流中的那些位的位置定义成将要选用来打包的输出位;选择器,用于选择输出位;和加法器,用于只把输出位添加到所述输出位流。
5.一种用于对来自于位流的数目可变的位进行解包的解包器,所述解包器包括控制装置,用于定义将要在一个时钟周期内从所述位流中解包的位的最大数目n;用于提供验证位流的装置,所述验证位流把所述位流中的那些位的位置定义成将要选用来解包的删除位;选择器,用于选择删除位;和用于只从所述位流中删除掉所述删除位的装置。
6.如权利要求4所述的打包器或权利要求5所述的解包器,其特征在于所述验证位流是按n个位的单元构造的。
7.一种包括计算机程序代码装置的计算机程序产品,当加载所述程序时,使计算机执行一个过程,该过程把来自于输入位流的数目可变的位打包成输出位流,该打包实现方式为通过定义将要在一个时钟周期内打包成输出位流的位的最大数目n,提供把所述位流中的那些位的位置定义成将要选用来打包的输出位的验证位流,选择输出位并且只把输出位添加到所述输出位流。
8.一种包括计算机程序代码装置的计算机程序产品,当加载所述程序时,使计算机执行一个过程,该过程对来自于比特流的数目可变的位进行解包,该解包方式为通过定义将要在一个时钟周期内从所述位流中解包的位的最大数目n,提供把所述为流中的那些位的位置定义成将要选用来解包的删除位的验证位流,选择删除位并且只从所述位流中删除掉所述删除位。
9.一种诸如照相机系统之类的发送器,包括输入单元,用于获得视频信号;编码单元,用于压缩视频信号,所述编码单元包括如权利要求4中所述的打包器,用于把来自于视频信号的数目可变的位打包成输出位流;输出单元,用于输出所述输出位流。
10.一种接收器,包括输入单元,用于接收编码后的视频信号;解码单元,用于对编码后的视频信号进行解码,所述解码单元包括解包器,用于对来自于编码后的视频信号的数目可变的位进行解包,以便获得解码后的视频信号;和输出单元,用于输出解码后的视频信号。
全文摘要
一种用于把来自于输入位流的数目可变的位打包成输出位流的方法,包括以下步骤定义将要在一个时钟周期内打包成输出位流的位的最大数目n;提供把所述输入位流中的那些位的位置定义成将要选用来打包的输出位的验证位流;选择输出位,并且只把输出位添加到所述输出位流中。
文档编号G06F5/00GK1656689SQ03811776
公开日2005年8月17日 申请日期2003年4月29日 优先权日2002年5月24日
发明者R·佩塞特洛皮斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1