数据压缩装置及方法

xiaoxiao2020-9-10  14

专利名称:数据压缩装置及方法
技术领域
本发明涉及一种数据压缩装置及方法,且特别涉及一种具有流水线结构 以进行平行处理的数据压缩装置及方法。
背景技术
随着数字信号处理、存储媒体与传输方法等科技的发展,目前已出现许多压缩标准,包括H. 261、 H. 263、 MPEG-1、 MPEG-2、以及MPEG-4。与先前的 压缩标准相比,在编码品质相同的条件下,H. 264/AVC为新一代的视频压缩 标准,是由国际电信同盟(ITU-T)推荐的关于视频数据的编码/解码。 H. 264/AVC可广泛用于视频会议、视频广播或视频串流服务等。H. 264编码标准是以块(Block)为基本的编码单位,即是将一张图像分 割为多个宏块(Macro Block, MB),再分别对这些宏块进行编码动作。而在 执行图像编码时,H. 264编码标准实际上是以16x16的宏块为单位进行编码, 而一个16x16的宏块再细分为4x4的宏块以进行后续动作(即一个16x16的 宏块包括了 16个4x4的宏块)。图1示出了现有的数据压缩方法的流程图。请参照图1,首先,步骤SllO 是将输入的宏块经由变换与量化(Transform and Quantize)来减少重复多 余的数据。换言之,即是将去除图像之间的相似性后所获得的剩余(Residual ) 图像,藉由块变换来去除空间多余量,并经由量化来减少信息量,以获得系 数(Coefficient)数据。接着,步骤S120为将系数数据进行扫描次序,利用特殊的扫描算法,例 如锯齿状扫描(Zig-Zag scan)算法或场扫描(Field scan)算法,将二维 的系数数据变换成一维的系数数据。最后,步骤S130为熵编码,将步骤S120 所获得的一维系数数据进行反转后,再进行熵编码以获得比特流(Bit stream )数据。举例来说,图2示出了现有的4x4宏块扫描次序的示意图,图3示出了 现有的4x4宏块扫描次序的一维阵列的示意图。请参照图2以及图3,其中,图2(a)为锯齿状扫描,图2(b)为场扫描,图3(a)为4x4宏块扫描后所获得 的编号自0-15排列的一维阵列,图3(b)则为反转图3(a)所获得的结果。如 图2所示,扫描次序即为自编号O依照箭头指向处依序扫描至编号15,以获 得编号0-15的一维阵列,例如图3(a)。而步骤S130熵编码的计算过程需自 编号15处往前依序处理,因此,便将原本编号0-15的一维阵列反转为编号 15-0的一维阵列,例如图3(b)。
由上述概念可知,需等待获得全部4x4宏块中16个系数数据,才开始进 行步骤S130熵编码的运算。举例来说,图4示出了现有的数据压缩流程时钟 的示意图。请参照图4 ,假设获得系数数据41G的过程需耗费16个时钟(C1 ock ) 周期,而熵编码420的过程需耗费17个时钟周期,则现有作法的数据压縮将 耗费33个时钟周期。因此,如何缩短数据压缩的时间则为目前研究发展中重 要的一环。

发明内容
本发明提供一种数据压缩装置,将处理单元及熵编码器利用流水线结构 来进行熵编码,使得处理单元与熵编码器能够平行处理,以减少运算等待时间。
本发明提供一种数据压缩方法,依据编码次序逐一量化,并依据编码次 序,每获得一笔系数数据即进行熵编码,以加快运算时间。
本发明提出一种数据压缩装置,此数据压缩装置包括处理单元以及熵编 码器。其中,处理单元依照编码次序,将宏块的第一空间域数据变换为系数 数据。熵编码器依据编码次序,对系数数据进行熵编码。
在本发明的一实施例中,上述的处理单元包括减法器、块变换器、量化 器、输出緩沖器、反量化器、反块变换器、加法器以及寄存器。其中,块变 换器经由减法器接收宏块,并将第一空间域数据变换为第一频域数据。量化 器依照编码次序将第一频域数据量化为系数数据,并将系数数据输出至输出 緩沖器。反量化器是用以反量化系数数据为第二频域数据。反块变换器是用 以反变换第二频域数据为第二空间域数据。加法器则耦接于寄存器与反块变 换器之间,用以将第二空间域数据还原并输出至减法器。
在本发明的一实施例中,上述的在处理单元进行系数数据的变换过程中, 熵编码器根据编码次序对处理单元已完成变换的系数数据其中之一进行熵编码。
在本发明的一实施例中,上述的处理单元与熵编码器具有流水线结构。 本发明提出一种数据压缩方法,首先依据编码次序,将宏块的第一空间
域数据变换为系数数据。并且,与编码次序相同,对系数数据进行熵编码。
在本发明的一实施例中,上述的依据编码顺序,将宏块的第一空间域数
据变换为系数数据的步骤,首先,变换第一空间域数据为第一频域数据。并
且依据编码次序,量化第 一频域数据为系数数据。
在本发明的一实施例中,更包括将系数数据反量化为第二频域数据,并 且将第二频域数据反变换为第二空间域数据。最后,将第二空间域数据还原。
在本发明的一实施例中,上述的变换过程中,根据编码次序对已完成变 换的系数数据其中之一进行熵编码。
在本发明的一实施例中,上述的编码次序包括锯齿状扫描反转次序或场 扫描反转次序。而进行熵编码的方式包括基于上下文适应性可变长度编码或 基于上下文适应性二进制算术编码。
本发明因将处理单元及熵编码器利用流水线结构来进行熵编码,处理单 元依据编码次序逐一量化,而熵编码器依据编码次序,每获得一笔系数数据
即进行熵编码,使得处理单元以及熵编码器能够平行处理,进而减少运算等 待时间,而加快运算时间。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并
配合附图,作详细il明如下。


图1示出了现有的数据压缩方法的流程图。
图2 (a) ~图2 (b)示出了现有的4W宏块扫描次序的示意图。
图3 (a) ~图3 (b)示出了现有的4x4宏块扫描次序的一维阵列的示意图。
图4示出了现有的数据压缩流程时钟的示意图。
图5是依照本发明一实施例的数据压缩装置的方块图。
图6是依照本发明一实施例的另一数据压缩装置的方块图。
图7是依照本发明一实施例的数据压缩方法的流程图。
图8 (a) ~图8 (b)是依照本发明一实施例的编码次序的示意图。
图9是依照本发明一实施例的变换过程与熵编码的流水线处理的示意图。
图1 0是依照本发明 一 实施例的数据压缩流程时钟的示意图。 附图符号说明
410、 910、 1010:获得系数数据
420、 920、 1020:熵编码
510:处理单元
520:熵编码器
601:减法器
603:块变换器
605:量化器
607:输出緩冲器
609:反量化器
611:反块变换器
613:加法器
615:寄存器
S110-S130:现有的数据压缩方法的各步骤 S710-S730:本发明一实施例的数据压缩方法的各步骤
具体实施例方式
图5是依照本发明一实施例的数据压缩装置的方块图。请参照图5,此 数据压缩装置500是用来对输入的图像进行压缩编码,包括处理单元510与 熵编码器520。
处理单元510是依照编码次序,将宏块的空间域(Spatial domain)数 据变换为系数(Coefficient )数据,处理单元510对宏块的变换方式例如是 离散余弦变换(Discrete Cosine Transform, DCT )以及量化(Quantize)。 上述的编码次序例如锯齿状扫描反转次序(Zig-Zag scanning reverse order)或场扫描反转次序(Field scanning reverse order)。
详细地说,输入的图像会分割成许多矩形的小区域,称的为宏块(Macro Block, MB),处理单元510先将图像之间的相似性去除以获得到剩余 (Residual)图像,再将剩余图像施以离散余弦变换与量化来去除多余的数 据,以获得系数数据。处理单元510编码的顺序与熵编码器520编码的顺序相同。熵编码器520 对由处理单元510所输出的系数数据进行熵编码。由于处理单元510编码的 顺序与熵编码器520编码的顺序相同,因此,熵编码器520可随即针对处理 单元510已处理的系数数据进行熵编码。
举例来说,当处理单元510依照熵编码器520的编码顺序处理多笔数据 时,处理单元510依序对此多笔数据进行编码并依序输出系数数据,熵编码 器520即可同步对由处理单元510所输出的系数数据进行熵编码。熵编码器 520不需等待处理单元510全数输出此多笔系数数据后,才开始对此多笔系 数数据进行熵编码。故,此数据压缩装置500,在处理单元510与熵编码器 520处理数据的过程中,熵编码器520将节省等待处理单元510输出数据的 时间。
在此较佳实施例中,处理单元510与熵编码器520可具有流水线 (Pipeline)结构,使得一连串的指令动作能够平行处理,以加快熵编码器 520对数据的处理速度。
以下再以一实施例详加说明本发明的数据压缩装置。图6是依照本发明 一实施例的另一数据压缩装置的方块图。请参照图6,上述实施例的处理单 元510包括了减法器601、块变换器603、量化器605、反量化器609、反块 变换器611、加法器613以及寄存器615。处理单元510在压缩过程中,将输 入的图像藉由一连串计算变换之后,以得到系数数据。
块变换器603经由减法器601来接收宏块,并将空间域数据变换为频域 (Frequency domain)数据。由于人眼对于图像中高频部分敏感度不高,因 此,将图像中高频部分去除,对于图像的品质影响并不大,亦能增加压缩率。
量化器605基于熵编码器520的编码次序将频域数据量化为系数数据, 并将系数数据输出至输出緩冲器607。换言之,量化器605是用来将块变换 器603变换后的频域数据的值变小,以达到更好的压缩率。
然,根据本发明概念,亦可通过块变换器603基于熵编码器520的编码 次序,对数据进行处理,而使处理单元510所输出的系数数据次序,符合熵 编码器520的编码次序。
在此较佳实施例中,处理单元510更包括了输出緩沖器607是用来 寄存量化后的系数数据。当量化器605输出一笔系数数据时,便可交由熵编 码器520来进行处理,因此,当熵编码器520尚未处理完前一笔系数数据时,经由量化器605所输出的下一笔系数数据便寄存在输出緩冲器607中。而输 出緩冲器607的容量小于系数数据的数目,可视流水线的数目及熵编码器520 处理速度而决定,在此并不限制。
反量化器609与反块变换器611是为了进行预测内部的编码块。其中, 反量化器609是用以将量化器605所获得的系数数据反量化为频域数据,而 反块变换器611则将反量化器609所获得的频域数据反变换为空间域数据。
加法器613耦接于寄存器615与反块变换器611之间,用以将反块变换 器611所获得的空间域数据还原并输出至减法器601,以获得剩余图像。换 言之,即是反量化器609与反块变换器611将量化后的系数数据经由反量化 与反变换后,藉由加法器613加上先前的预测画面(寄存在寄存器615中) 而形成重建图像,并寄存在寄存器615中,当作下个画面移动预估与移动补 偿(Motion compensation)的参考画面。
为了更清楚表达上述概念,以下即搭配前述实施例的数据压缩装置,以 详细说明本发明的数据压缩方法。图7是依照本发明一实施例的数据压缩方 法的流程图。请参照图6及图7,此数据压缩方法为当宏块经过块变换器603 后,其频域数据再经过量化器605量化,最后量化的数据经过熵编码器520 传送出去。
首先,步骤S710藉由块变换器603将宏块的空间域数据变换为频域数据, 例如,使用离散余弦变换来减少空间域上的多余数据。
接着,步骤S720利用量化器605依据熵编码所需的编码次序,将频域数 据量化为系数数据。举例来说,可利用量化表来取得区间索引值,使得系数 数据皆为整数值。
在步骤S720中,由于宏块为二维矩阵数据,因此,在进行熵编码之前, 需将二维矩阵数据变换为一维阵列数据。例如利用锯齿状扫描算法或场扫描 算法,将二维矩阵数据变换为一维阵列数据。
请参考图8,图8是依照本发明一实施例的编码次序的示意图。请参照 图6、图7及图8,图8(a)为锯齿状扫描反转次序,图8(b)为场扫描反转次 序。步骤S720即是自图8(a)或图8(b)编号15往箭头方向依序逐一量化。
另外,为了获得下个画面移动预估与移动补偿的参考画面,利用反量化 器609将步骤S720所获得的系数数据反量化为频域数据,再藉由反块变换器 611将反量化后的频域数据反变换为空间域数据,以将宏块还原。最后,步骤S730利用熵编码器520对系数数据进行熵编码,将处理单元 510变换宏块的空间域数据所获得的系数数据,与编码次序相同,逐一对系 数数据进行熵编码。换言之,在处理单元510变换过程中,根据编码次序利 用熵编码器520对已完成变换的系数数据进行熵编码。而进行熵编码的方式 例如基于上下文适应性可变长度编码(Context Adaptive Variable Length Coding, CAVLC)以及基于上下文适应性二进制算术编码(Context Adaptive Binary Arithmetic Coding, CABAC)。举例来说,以4x4的宏块而言,其编号如图8所示,量化器605首先对 编号15的频域数据进行量化,在获得编号15的系数数据后,便随即将编号 15的系数数据送至熵编码器520以进行熵编码。而在进行编号15的系数数 据的熵编码时,量化器605则对编号14的频域数据进行量化,以获系数数据。 其余编号13-0则以此类推。为了更清楚地表达上述概念,以下再举一实施例说明。举例来说,以H. 264 编码标准所提出的基本组态(Baseline profile)而言,是将剩余图像的宏 块基于上下文适应性可变长度编码(CAVLC)进行编码,其它信息则以固定语 法的变长编码(Exp-Golomb)来编码。图9是依照本发明一实施例的变换过 程与熵编码的流水线处理的示意图。请参照图9,本实施例使用16条流水线 结构(即流水线0-15),使得获得系数数据910与熵编码92Q的过程能够平 行处理。获得系数数据910的过程即是4x4的宏块进行量化时,依照反转后的扫 描次序(即编码次序,如图8所示)逐一进行,从编号0-15为代表传统的扫 描次序,将系数数据由低频扫描至高频,而自编号15-0即为编码次序。因此, 每获得一笔系数数据后,便可进行熵编码920。其中,「 Tl」、「 Tl num」以及「 Run-before」为CAVLC的执行参数。 r丁l」代表判断系数数据为1或-l,而「Tl num」代表检测目前系数数据的 绝对值等于1的数目。「 Run-before」代表目前系数数据前面有几个连续的 系数数据为0。另外,r Suffix coding」及[Prefix coding」则为CAVLC 的处理LEVEL的必要过程,主要是将非0非1的系数计算出编码长度和数值。当获得编号15的系数数据时,即经由「流水线0」将编号15的系数数 据进行「Tl」过程,而当编号15的系数数据处于「Tl」过程时,则可对编号 14的频域数据进行量化,以获得编号14的系数数据。而当编号15的系数数据完成「 Tl」过程而进行至「 Tl num」过程时,编号14的系数数据则通过r流 水线1」以对编号14的系数数据进行「Tl」过程,而其余步骤以此类推。图10是依照本发明一实施例的数据压缩流程时钟的示意图。请参照图 10,由于本实施例使用流水线结构,因此,在获得系数数据1010的同时,可 平行处理熵编码1020的程序,因此,数据压缩仅耗费18个时钟周期。综上所述,本发明所提出的数据压缩装置及方法至少具有下列优点
1. 量化后的输出为根据熵编码次序输出,可节省熵编码时的等待时间。
2. 利用流水线结构来平行处理各个过程,可加快编码速度。
3. 由于利用流水线结构来平行处理各个过程,因此可减少输出緩沖器的 存储空间。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何 所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作 些许的更动与润饰,因此本发明的保护范围当视本发明的申请专利范围所界 定者为准。
权利要求
1. 一种数据压缩装置,包括一处理单元,将一宏块的多个第一空间域数据变换为多个系数数据;以及一熵编码器,对所述系数数据进行熵编码;其中,该处理单元根据该熵编码器的一编码次序,依序提供所述系数数据给该熵编码器。
2. 如权利要求l所述的数据压缩装置,其中,该处理单元包括 一块变换器,经由一减法器接收该宏块,并将所述第一空间域数据变换为多个第一频域数据;以及一量化器,依照该编码次序将所述第一频域数据量化为所述系数数据, 并输出所述系数数据。
3. 如权利要求2所述的数据压缩装置,其中,该处理单元更包括 一反量化器,用以反量化所述系数数据为多个第二频域数据; 一反块变换器,用以反变换所述第二频域数据为多个第二空间域数据;以及一加法器,耦接于一寄存器与该反块变换器之间,用以还原所述第二空 间域数据并输出至该减法器。
4. 如权利要求1所述的数据压缩装置,其中,该处理单元与该熵编码器 具有流水线结构。
5. —种数据压缩方法,包括根据一熵编码的一编码次序,依序提供多个系数数据;以及 对所述系数数据进行熵编码。
6. 如权利要求5所述的数据压缩方法,更包括依据该编码次序,将一宏块的多个第一空间域数据变换为所述系数数据, 以根据该编码次序,依序提供多个系数数据。
7. 如权利要求6所述的数据压缩方法,其中,根据该编码顺序,将该宏 块的所述第 一 空间域数据变换为所述系数数据的步骤包括变换所述第一空间域数据为多个第一频域数据;以及 依据该编码次序,量化所述第一频域数据为所述系数数据。
8. 如权利要求5所述的数据压缩方法,更包括 反量化所述系数数据为多个第二频域数据; 反变换所述第二频域数据为多个第二空间域数据;以及 还原所述第二空间域数据。
9. 如权利要求6所述的数据压缩方法,其中,该宏块的变换方式包括离 散余弦变换以及量化。
10. 如权利要求5所述的数据压缩方法,其中,该编码次序包括锯齿状 扫描反转次序或场扫描反转次序。
11. 如权利要求5所述的数据压缩方法,其中,熵编码的方式包括基于上 下文适应性可变长度编码或基于上下文适应性二进制算术编码。
全文摘要
一种数据压缩装置及方法。本发明利用处理单元依据编码次序,将宏块的空间域数据逐一变换为系数数据。并且,与编码次序相同,藉由熵编码器逐一对系数数据进行熵编码。如此一来,处理单元以及熵编码器便能够平行处理,进而减少运算等待时间,以加快运算时间。
文档编号H04N7/30GK101242529SQ20071000549
公开日2008年8月13日 申请日期2007年2月8日 优先权日2007年2月8日
发明者官宏霖, 沈中理, 钟育杰 申请人:硕颉科技股份有限公司

最新回复(0)