CN102088598B - 基于哈达马特转换的影像压缩方法 - Google Patents

基于哈达马特转换的影像压缩方法 Download PDF

Info

Publication number
CN102088598B
CN102088598B CN200910246181.5A CN200910246181A CN102088598B CN 102088598 B CN102088598 B CN 102088598B CN 200910246181 A CN200910246181 A CN 200910246181A CN 102088598 B CN102088598 B CN 102088598B
Authority
CN
China
Prior art keywords
value
conversion
hadamard
pixel value
special
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200910246181.5A
Other languages
English (en)
Other versions
CN102088598A (zh
Inventor
梁仁宽
吴振禧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MStar Software R&D Shenzhen Ltd
MStar Semiconductor Inc Taiwan
Original Assignee
MStar Software R&D Shenzhen Ltd
MStar Semiconductor Inc Taiwan
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MStar Software R&D Shenzhen Ltd, MStar Semiconductor Inc Taiwan filed Critical MStar Software R&D Shenzhen Ltd
Priority to CN200910246181.5A priority Critical patent/CN102088598B/zh
Publication of CN102088598A publication Critical patent/CN102088598A/zh
Application granted granted Critical
Publication of CN102088598B publication Critical patent/CN102088598B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

本发明是一种基于哈达马特转换的影像压缩电路及方法,其可依据2k阶的哈达马特矩阵与2k×2k的调整矩阵的乘积,对2k个像素值执行哈达马特转换,以产生2k个转换值,k为正整数,其中至少有一转换值为零。调整矩阵须满足以下条件:若将2k个像素值分成G个像素组,每一像素组包含2k/G个相邻像素值,且将调整矩阵乘以2k个像素值所组成的2k×1的第一矩阵,以转换第一矩阵为2k×1的第二矩阵,则在第二矩阵中,第一矩阵的各像素值是转换为该像素值所属的像素组的平均像素值。

Description

基于哈达马特转换的影像压缩方法
技术领域
本发明有关影像压缩,尤指一种基于哈达马特转换的影像压缩方法。
背景技术
在进行影像压缩时,哈达马特转换(Hadamard transform)是种常用的技术。在先前技术中,对影像(通常为静态画面)执行哈达马特正转换(forward Hadamardtransform,为行文方便,下文亦以哈达马特转换称之)时,是以同属一条扫描线的8个像素为单位影像区块,并将8阶(即8×8)哈达马特矩阵(Hadamard matrix)乘上8个像素值所组成的8×1矩阵,以转换至频域,而相乘所得的8×1矩阵的8个矩阵元素即为转换值,如下所示: H 8 * P [ 8 ] = 1 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 - 1 - 1 1 1 - 1 - 1 - 1 - 1 1 1 1 1 - 1 - 1 1 1 - 1 - 1 1 - 1 - 1 1 1 - 1 - 1 1 1 - 1 - 1 1 - 1 1 1 - 1 1 - 1 1 - 1 - 1 1 - 1 1 1 - 1 1 - 1 1 - 1 1 - 1 P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 = DC AC 0 AC 1 AC 2 AC 3 AC 4 AC 5 AC 6 式(1)
式(1)中,H8为8阶哈达马特矩阵,P[8]为8个像素P0~P7所组成的8×1矩阵;H8*P[8]则为8×1矩阵,其包含8个转换值,即1个直流(DC)值及7个交流(AC)值AC0~AC6,其中DC值代表8个像素P0~P7的平均值,AC0~AC6则依序代表从低频至高频的部份。在执行完哈达马特转换后,再对转换值进行量化(quantization),亦即将转换值的数个最低位(LSB)舍弃,以减少位数,达到影像压缩的目的。
哈达马特转换的优点之一,在于执行哈达马特反转换(inverse Hadamardtransform)时,所使用的哈达马特反矩阵就是原本进行正转换时所用的哈达马特矩阵,以式(1)而言,若以H8 -1代表H8的反矩阵,则H8 -1=H8;另一优点则是,转换过程只需执行简单的加减法,这点从式(1)可看出。
由于哈达马特转换具有如上所述的优点,因此,如能基于哈达马特转换,设计出更具弹性及效率的影像压缩电路,则可达到更好的影像压缩效果。
发明内容
有鉴于此,本发明的一目的,在于提供一种基于哈达马特转换的影像压缩方法,以提供更具弹性及效率的影像压缩功能。
本发明揭露一种基于哈达马特转换的影像压缩方法,包含下列步骤:依据2k×2k的哈达马特矩阵,对2k个像素值执行哈达马特转换,以产生2k个转换值,其中k为正整数,每一转换值包含一大小部分;对至少一转换值进行量化;以及将所有量化与未量化的转换值储存至一存储器;其中,若2k个转换值中,至少有一第一转换值的大小部份之前n个最高位皆为零,n为正整数,则在将第一转换值储存至存储器时,省略该前n个最高位,并产生一对应的省略记录,储存至存储器。
本发明另揭露一种基于哈达马特转换的影像压缩方法,包含下列步骤:依据2k×2k的哈达马特矩阵与2k×2k的调整矩阵的乘积,对2k个像素值执行哈达马特转换,以产生2k个转换值,k为正整数,其中至少有一转换值为零;以及储存所有非零转换值至一存储器;其中,调整矩阵满足以下条件:若将2k个像素值分成G个像素组,每一像素组包含2k/G个相邻像素值,且将调整矩阵乘以2k个像素值所组成的2k×1的第一矩阵,以转换第一矩阵为2k×1的第二矩阵,则在第二矩阵中,第一矩阵的各像素值是转换为该像素值所属的像素组的平均像素值。
本发明另揭露一种基于哈达马特转换的影像压缩方法,包含下列步骤:选取第一模式或第二模式的哈达马特转换;若选取第一模式,则依据2k×2k的哈达马特矩阵,k为正整数,对2k个像素值执行哈达马特转换,以产生2k个第一转换值,并对至少一第一转换值进行量化;以及若选取第二模式,则依据该哈达马特矩阵与2k×2k的调整矩阵的乘积,对2k个像素值执行哈达马特转换,以产生2k个第二转换值,其中至少有一第二转换值为零;其中,调整矩阵满足以下条件:若将2k个像素值分成G个像素组,每一像素组包含2k/G个相邻像素值,且将调整矩阵乘以2k个像素值所组成的2k×1的第一矩阵,以转换第一矩阵为2k×1的第二矩阵,则在第二矩阵中,第一矩阵的各像素值是转换为该像素值所属的像素组的平均像素值;且该选取步骤是依据在第二模式下,2k个像素值的各像素值与其所属像素组的平均像素值的差值,来决定选取第一模式或第二模式的哈达马特转换。
附图说明
图1是本发明的影像压缩电路的第一实施例的方块图。
图2是本发明的影像压缩电路的第二实施例的方块图。
图3A是显示2×4的8个像素值如何分成四个像素组的一实例。
图3B是显示2×4的8个像素值如何分成四个像素组的另一实例。
图3C是显示2×4的8个像素值如何分成二个像素组的一实例。
图3D是显示2×4的8个像素值如何分成二个像素组的另一实例。
图4是本发明的影像压缩电路的第三实施例的方块图。
图5是本发明的影像压缩方法的第一实施例的流程图。
图6是本发明的影像压缩方法的第二实施例的流程图。
图7是本发明的影像压缩方法的第三实施例的流程图。
具体实施方式
在叙述本发明的实施例前,先说明2k阶(即2k×2k)的哈达马特矩阵的产生方式,其中k为正整数。若H是d阶的哈达马特矩阵,则通过 H H H - H 可产生2d阶的哈达马特矩阵,而反复执行此过程,即可依序产生1阶、2阶、4阶…的哈达马特矩阵如下:
H1=[1]
H 2 = 1 1 1 - 1
H 4 = 1 1 1 1 1 - 1 1 - 1 1 1 - 1 - 1 1 - 1 - 1 1 . . . . . .
因此,通过以上方式,可产生任何2k阶的哈达马特矩阵。
以下所述的各实施例皆是基于哈达马特转换来进行影像压缩,以提供更具弹性及效率的影像压缩功能。此处的影像可为静态画面或影片,而实施例中所提及的像素值可为像素的亮度值或色度值。图1是本发明的影像压缩电路的第一实施例的方块图,其中,影像压缩电路10包含哈达马特转换单元11及存储器12。哈达马特转换单元11是依据2k阶哈达马特矩阵,对2k个像素值执行哈达马特转换,以产生2k个转换值。因此,在此第一实施例中,是以2k个像素为单位影像区块来执行哈达马特转换。此2k个像素可属于同一条扫描线(即1×2k的影像区块),或是分属于2m条扫描线(即2m×2k-m的影像区块),m为正整数。哈达马特转换单元11在执行哈达马特转换时,是将2k×2k的哈达马特矩阵乘上2k个像素值所组成的2k×1矩阵,而相乘所产生的2k×1矩阵的2k个矩阵元素即为转换值,其包含1个DC值及2k-1个AC值。AC值的值域涵盖正负范围,因此AC值包含一符号位(sign bit,即第1个最高位(MSB)),其余位则属大小部份(magnitude part);DC值的值域为不小于零,所以其所有位皆属大小部份,而不包含符号位。
接着,为了达到影像压缩的目的,哈达马特转换单元11须对至少一转换值进行量化(quantization),以减少2k个转换值的总位数。哈达马特转换单元11可预先设定哪个(或哪些)转换值需进行量化以及每个需量化的转换值的量化位数(quantization bit number)。由于人眼对于低频的影像讯号较为敏感,因此对于低频的转换值可保留较多量化位,而高频的转换值则保留较少量化位。接着,哈达马特转换单元11依据所设定的量化位数(以b表示),保留转换值的前b个最高位,其余位则舍弃,以完成量化。另一种作法则是,若转换值的第b+1个最高位为1,则进位至第b个最高位,并保留进位后的前b个最高位,舍弃其它位;若第b+1个最高位值为0,则不进位而保留原来的前b个最高位,其余位直接舍弃。在执行完量化后,哈达马特转换单元11将所有量化与未量化的转换值储存至存储器12。
须注意的是,当2k个转换值中,至少有一转换值(在第一实施例中称为第一转换值)的大小部份的前n个最高位皆为零,n为正整数时,若第一转换值不需执行量化,则哈达马特转换单元11在将第一转换值储存至存储器12时,可省略其大小部分的前n个最高位不予储存,并产生一对应的省略记录;若第一转换值需执行量化,则哈达马特转换单元11在对第一转换值进行量化时,亦可先省略其大小部分的前n个最高位,并产生对应的省略记录,接着再就剩下的位进行量化,量化后再储存至存储器12。前述省略记录亦需储存至存储器12,惟其格式并无限制,只要能记录是哪个转换值省略了多少个最高位即可。省略记录的用处,在于进行影像解压缩时,可依据省略记录将储存于存储器12中的转换值还原,以便正确执行哈达马特反转换。前述省略前n个为零的最高位的作法有两个好处,一是当n值较大或是有较多第一转换值时,需要储存的位数(即省略后的转换值+省略记录的总位数)可减少,以节省存储器空间;另一是若第一转换值需量化,则经过省略后的第一转换值,在量化后可比未省略的情形保留更多信息,提升影像压缩的品质。为了确保达到影像压缩的目的,在经过前述量化与省略处理后,所有储存至存储器12的转换值的总位数与省略记录的位数两者之和,应小于原本2k个像素值的总位数。
较佳地,哈达马特转换单元11是于2k个转换值中所有2k-1个AC值的大小部分的前n个最高位皆为零时,才进行前述的省略处理,亦即,在储存任一AC值至存储器12时,不论该AC值有无经过量化,其大小部分的前n个为零的最高位皆省略而不储存。而由于事先已知道是哪些转换值(即所有AC值)会执行此省略动作,因此省略记录只需记录n值,使省略记录本身的位数可以降低。举例而言,若k=3且每个像素值为8个位(亦即,像素值的值域为0~255),则依前述式(1)可知,所有AC值AC0~AC6的值域为±(255*4)的区间,所以每个AC值为11个位,其包含1个符号位及10位的大小部份。通过以下方式,可判断n值的大小,即可知每个AC值可省略多少位:
若28<=max(|ACx|)<29,x=0~6,则n=1;27<=max(|ACx|)<28,则n=2…依此类推,其中max()代表取最大值。
图2是本发明的影像压缩电路的第二实施例的方块图,其中,影像压缩电路20包含哈达马特转换单元21及存储器22。哈达马特转换单元21是依据2k×2k的哈达马特矩阵与一2k×2k的调整矩阵的乘积,对2k个像素值执行哈达马特转换,以产生2k个转换值,其中至少有一转换值为零。若所有非零转换值的总位数不小于2k个像素值的总位数,则哈达马特转换单元21再对至少一非零转换值进行量化,以使所有量化与未量化的非零转换值的总位数小于2k个像素值的总位数,而达到影像压缩的效果。接着,哈达马特转换单元21将所有量化与未量化的非零转换值储存至存储器22,以供后续要进行影像解压缩时使用。另一种作法则是,哈达马特转换单元21预先设定好影像压缩率,并依据此影像压缩率决定哪个(或哪些)非零转换值需进行量化以及各个需量化的非零转换值的量化位数,以使所有量化与未量化的非零转换值的总位数等于2k个像素值的总位数乘上影像压缩率,以实现该影像压缩率。例如,若k=3且每个像素值为8位,则2k个像素值的总位数为64位,此时若设定影像压缩率为75%,则所有量化与未量化的非零转换值的总位数须等于64*75%=48。
第二实施例的特征之一,在于将哈达马特矩阵乘上调整矩阵后,可产生一简化的哈达马特矩阵,利用此简化的哈达马特矩阵进行哈达马特转换,可使所产生的2k个转换值中,至少有一个为零,以达到更高的影像压缩率,或者在进行转换值的量化时可保留更多的量化位。此调整矩阵满足以下条件:若将2k个像素值分成G个像素组,每一像素组包含2k/G个相邻像素值,且将调整矩阵乘以2k个像素值所组成的2k×1的第一矩阵,以转换第一矩阵为2k×1的第二矩阵,则在第二矩阵中,第一矩阵的各像素值是转换为该像素值所属像素组的平均像素值。以下以数个实例来说明调整矩阵如何产生:
<例1>G等于2k-1,而每一像素组包含两个垂直相邻像素值。以k=3为例,则以2k=8个像素值为单位影像区块来执行哈达马特转换,且此8个像素分成G=4个像素组。假设8个像素值(表示为P0~P7)是来自两条扫描线,亦即此8个像素值为2×4的影像区块,则P0、P2、P4、P6各与其垂直相邻像素P1、P3、P5、P7形成一像素组,如图3A所示。此时,调整矩阵(在例1中以Av表示)应满足下式: Av * M 1 = Av * P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 = M 2 = P 0 + P 1 2 P 0 + P 1 2 P 2 + P 3 2 P 2 + P 3 2 P 4 + P 5 2 P 4 + P 5 2 P 6 + P 7 2 P 6 + P 7 2 式(2)
从式(2)可看出第一矩阵M1中的各像素值在第二矩阵M2中皆转换为该像素值所属像素组的平均像素值。从式(2)可推得:
Av = 1 2 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
将8阶的哈达马特矩阵H8乘上调整矩阵Av,可得到大幅简化的8阶哈达马特矩阵,如下所示:
H 8 * Av = 1 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 - 1 - 1 1 1 - 1 - 1 - 1 - 1 1 1 1 1 - 1 - 1 1 1 - 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
利用此大幅简化的8阶哈达马特矩阵来对像素值P0~P7进行哈达马特转换,可得:
1 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 - 1 - 1 1 1 - 1 - 1 - 1 - 1 1 1 1 1 - 1 - 1 1 1 - 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 = DC AC 0 AC 1 AC 2 0 0 0 0
亦即,所产生的8个转换值包含1个DC值及3个AC值(AC0~AC2),其余4个皆为零。
<例2>G等于2k-1,而每一像素组包含两个水平相邻像素值。同样以k=3为例,则以8个像素值为单位影像区块,并分成4个像素组。同样假设8个像素值P0~P7来自两条扫描线,则P0、P1、P4、P5各与其水平相邻像素P2、P3、P6、P7形成一像素组,如图3B所示。此时,调整矩阵(在例2中以Ah表示)应满足下式: Ah * M 1 = Ah * P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 = M 2 = P 0 + P 2 2 P 0 + P 2 2 P 1 + P 3 2 P 1 + P 3 2 P 4 + P 6 2 P 4 + P 6 2 P 5 + P 7 2 P 5 + P 7 2 式(3)
从式(3)可看出第一矩阵M1中的各像素值在第二矩阵M2中皆转换为该像素值所属像素组的平均像素值。从式(3)可推得:
Ah = 1 2 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1
将8阶的哈达马特矩阵H8乘上调整矩阵Ah,可得到大幅简化的8阶哈达马特矩阵,如下所示:
H 8 * Ah = 1 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 - 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 - 1 1 - 1 - 1 1 - 1 1 1 - 1 1 - 1 1 - 1 1 - 1
利用此大幅简化的8阶哈达马特矩阵来对像素值P0~P7进行哈达马特转换,可得:
1 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 - 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 - 1 1 - 1 - 1 1 - 1 1 1 - 1 1 - 1 1 - 1 1 - 1 * P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 = DC AC 0 0 0 0 0 AC 5 AC 6
亦即,所产生的8个转换值包含1个DC值及3个AC值(AC0、AC5及AC6),其余4个皆为零。
<例3>G等于2k-2,而每一像素组包含排列方式为2×2的四个像素值,亦即每一像素组为2×2的影像区块。同样以k=3为例,则以8个像素值为单位影像区块,并分成2个像素组。同样假设8个像素值P0~P7来自两条扫描线,则P0与相邻像素P1、P2、P3形成一像素组,P4与相邻像素P5、P6、P7形成另一像素组,如图3C所示。此时,调整矩阵(在例3中以Aq表示)应满足下式: Aq * M 1 = Aq * P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 = M 2 = P 0 + P 1 + P 2 + P 3 4 P 0 + P 1 + P 2 + P 3 4 P 0 + P 1 + P 2 + P 3 4 P 0 + P 1 + P 2 + P 3 4 P 4 + P 5 + P 6 + P 7 4 P 4 + P 5 + P 6 + P 7 4 P 4 + P 5 + P 6 + P 7 4 P 4 + P 5 + P 6 + P 7 4 式(4)
从式(4)可看出第一矩阵M1中的各像素值在第二矩阵M2中皆转换为该像素值所属像素组的平均像素值。从式(4)可推得:
Aq = 1 4 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
将8阶的哈达马特矩阵H8乘上调整矩阵Aq,可得到更大幅简化的8阶哈达马特矩阵,如下所示:
H 8 * Aq = 1 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 - 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
利用此更大幅简化的8阶哈达马特矩阵来对像素值P0~P7进行哈达马特转换,可得:
1 1 1 1 1 1 1 1 1 1 1 1 - 1 - 1 - 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * P 0 P 1 P 2 P 3 P 4 P 5 P 6 P 7 = DC AC 0 0 0 0 0 0 0
亦即,所产生的8个转换值包含1个DC值及1个AC值(AC0),其余6个皆为零。
<例4>G等于2k-2,而每一像素组包含排列方式为1×4的四个像素值,亦即此四个像素值属于同一条扫描线。同样以k=3为例,则以8个像素值为单位影像区块,并分成2个像素组。同样假设8个像素值P0~P7来自两条扫描线,则P0与P2、P4、P6形成一像素组,P1与P3、P5、P7形成另一像素组,如图3D所示。通过与<例3>类似的方式,可推导出对应的调整矩阵Ar以及大幅简化后的哈达马特矩阵如下:
Ar = 1 4 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
H 8 * Ar = 1 1 1 1 1 1 1 1 1 - 1 1 - 1 1 - 1 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
而利用此大幅简化的哈达马特矩阵对像素值P0~P7进行哈达马特转换时,所产生的8个转换值包含1个DC值及1个AC值(AC0),其余6个皆为零。
在第二实施例中,除了可利用简化的哈达马特矩阵进行哈达马特转换外,还可使用原本未简化的哈达马特矩阵来执行哈达马特反转换,只是此时反转换的结果并非原本的像素值,而是原像素值所属像素组的平均像素值,如下式所示:
H-1*(H*A*M)=(H-1*H)*(A*M)=A*M  式(5)
式(5)中,H与H-1分别为哈达马特矩阵与哈达马特反矩阵(H-1=H),A为调整矩阵,M为单位影像区块内的所有像素值所组成的矩阵,H*A*M则为利用简化的哈达马特矩阵(即H*A)所进行的哈达马特转换。式(5)中,将H-1乘上(H*A*M)以执行反转换,可得结果为A*M,亦即将调整矩阵A乘上M,如此可将M中各像素值转换为该像素值所属像素组的平均像素值,而此即是原本调整矩阵所须满足的条件,如前文所述。因此,原本2k个像素值在分成G个像素组,并经过简化过后的哈达马特矩阵的正转换及原本哈达马特矩阵的反转换后,会产生G个影像区块,每一影像区块内的各像素值皆相同。换言的,当G值越大,影像分辨率越大,反之亦然。应注意的是,实际在执行哈达马特反转换时,由于原本正转换(即H*A*M)所产生的转换值至少有一部分已执行过量化,因此反转换的结果会与式(5)有所误差,不过此误差为量化所造成,与哈达马特正转换或反转换本身无关。
从上述几个例子可看出,G值越小,影像压缩率越高,但代价是某些频率的AC值会消失,造成影像分辨率变小及影像细节的流失。实作上,可依实际需要来选择适当的G值,例如,若希望提高影像分辨率及保留较多的影像细节,可选择较大的G值;若希望提高影像压缩率以节省存储器间,则可选择较小的GG值。
在此第二实施例中,作为哈达马特转换的单位影像区块的2k个像素值,可属于同一条扫描线,或是分属于2m条扫描线。在像素组数相同(即G值相同)的情况下,若2k个像素值分属于2m条扫描线,像素组可具有较多种的像素排列方式;但若属于同一条扫描线,则像素组仅具有一种像素排列方式。举例来说,在前述例3与例4中,当2k=8个像素值分属两条扫描线时,像素组可有1×4与2×2两种像素排列方式,但若8个像素值同属一条扫描线,则像素组仅有1×4的像素排列方式。
进一步言,调整矩阵的形态,还依据以下因素而决定:
(1)第一矩阵中2k个像素值的排列顺序。例如,在式(2)与式(3)的第一矩阵M1中,若像素值P0~P7的排列顺序改变,则所推得的调整矩阵Av与Ah也会随的改变,且仍可用以简化8阶的哈达马特矩阵。
(2)G值的大小。从前述例子可知,调整矩阵的形态会随着G值的大小而改变:当k=3时,若G=4,则可推得如例1与例2中的调整矩阵Av与Ah;若G=2,则可推得如例3与例4中的调整矩阵Aq与Ar。
(3)每一像素组中2k/G个相邻像素值的排列方式。例如,在例1中,每一像素组包含两个垂直相邻像素值,所推得的调整矩阵为Av;在例2中,每一像素组包含两个水平相邻像素值,而所推得的调整矩阵则为Ah。
总而言之,调整矩阵除了满足前述「在第二矩阵中,第一矩阵的各像素值是转换为该像素值所属像素组的平均像素值」的条件外,其形态还依据前述(1)~(3)的因素而决定。
在一较佳实施例中,哈达马特转换单元21可提供至少两种形态的调整矩阵,于执行哈达马特转换时择一使用。哈达马特转换单元21可依据所需的影像分辨率及压缩率(例如,由使用者所设定的),选择适当形态的调整矩阵来使用。另一种作法是,哈达马特转换单元21估计2k个像素值在分别使用各种形态的调整矩阵执行哈达马特转换时,所分别对应的转换误差,并依据此转换误差,选取其中一种形态的调整矩阵来执行哈达马特转换。此转换误差代表着2k个像素值在执行哈达马特正转换与反转换之前与之后的差异度。由于各像素值在执行哈达马特正转换及反转换后,会转变为其所属像素组的平均像素值(虽然可能有量化误差,但为求简化计算,此处可忽略不计),因此哈达马特转换单元21可依据各像素值与其所属像素组的平均像素值的差值,来估计每一种形态的调整矩阵所对应的转换误差。例如,哈达马特转换单元21可依据各像素值与其所属像素组的平均像素值的差值的总和,来估计转换误差;或者,亦可依据各像素值与其所属像素组的平均像素值的差值中的最大者,来估计转换误差。
当每一像素组仅包含两个相邻像素时,不论是水平相邻或垂直相邻,估计转换误差的方式可进一步简化。假设任一像素组包含两像素P1与P2,则P1、P2与此像素组的平均像素值(即
Figure GDA00002557746700121
)的差值分别为
Figure GDA00002557746700122
Figure GDA00002557746700123
将此两差值相加即得|P1-P2|,亦即此像素组的两像素值的差值。因此,前述估计转换误差时所依据的「各像素值与其所属像素组的平均像素值的差值的总和或最大者」即可简化为「各像素组的两像素值的差值的总和或最大者」。
在此较佳实施例中,哈达马特转换单元21还产生一对应的形态记录(其格式并无限制),储存至存储器22,用以记录选用何种形态的调整矩阵来执行哈达马特转换。此时,为达影像压缩目的,所有量化与未量化的非零转换值的总位数与该形态记录的位数两者之和,需小于2k个像素值的总位数。由于不同形态的调整矩阵会产生对应的不同频率的非零转换值,如前述例1中,调整矩阵Av产生DC及AC0~AC2的非零转换值,例2中,调整矩阵Ah则产生DC、AC0、AC5及AC6的非零转换值,因此后续在进行影像解压缩时,通过参照存储器22所储存的形态记录,即可知道存储器22所储存的是哪些频率的非零转换值,以便正确地执行哈达马特反转换。
此较佳实施例还有一优点:不管选用何种形态的调整矩阵来执行哈达马特转换,后续执行哈达马特反转换时所使用的哈达马特反矩阵皆相同(即原本未经简化的哈达马特矩阵),因此,后续在进行影像解压缩时,可共享同一套哈达马特反转换电路(图未显示),以节省硬件。
前述第一实施例中,将转换值的大小部分的前n个为零的最高位予以省略的作法,亦可应用于第二实施例。由于作法相同,此处不再赘述。
图4是本发明的影像压缩电路的第三实施例的方块图,其中,影像压缩电路40包含哈达马特转换单元41及存储器42。哈达马特转换单元40可依据第一模式或第二模式执行哈达马特转换,而第一模式与第二模式分别为前述第一实施例与第二实施例的作法。换言的,第三实施例为第一实施例与第二实施例的结合。具体而言,在第一模式下,哈达马特转换单元41依据2k×2k的哈达马特矩阵,对2k个像素值执行哈达马特转换,以产生2k个第一转换值,并对至少一第一转换值进行量化;在第二模式下,哈达马特转换单元41依据2k×2k的哈达马特矩阵与2k×2k的调整矩阵的乘积,对2k个像素值执行哈达马特转换,以产生2k个第二转换值,其中至少有一第二转换值为零。存储器42耦接至哈达马特转换单元41,用以储存在第一模式下的所有量化与未量化的第一转换值以及在第二模式下的所有非零的第二转换值。
进一步言,在第一模式下,每一第一转换值包含一大小部分,若2k个第一转换值中,至少有一第三转换值的大小部分的前n个最高位皆为零,则当哈达马特转换单元41在将第三转换值储存至存储器42时,省略该前n个最高位,并产生一对应的省略记录,储存至存储器42。此外,若哈达马特转换单元41对此第三转换值进行量化,则量化后的第三转换值不包含该前n个最高位。另一方面,在第二模式下,若所有非零的第二转换值的总位数不小于2k个像素值的总位数,哈达马特转换单元41对至少一非零的第二转换值进行量化,以使所有量化与未量化的非零的第二转换值的总位数小于2k个像素值的总位数,其中,该至少一非零的第二转换值是于量化后才储存至存储器42。至于第二模式所使用的调整矩阵所须满足的条件,已如第二实施例中所述,此处不再赘述。
第三实施例除了结合第一实施例与第二实施例,还提供如何选取适当模式以执行哈达马特转换的方法。哈达马特转换单元41可依据在第二模式下,2k个像素值的各像素值与其所属像素组的平均像素值的差值,来决定选取第一模式或是第二模式。举例来说,哈达马特转换单元41可将各像素值与其所属像素组的平均像素值的差值的总和与一临界值做比较,再依据比较结果来决定选取第一模式或第二模式,例如,当该总和小于该临界值时,表示以第二模式执行哈达马特转换的转换误差是可接受的,因此选取第二模式,而当该总和不小于该临界值时,表示第二模式的转换误差过大,因此改选第一模式较为妥当;或者,哈达马特转换单元41亦可将各像素值与其所属像素组的平均像素值的差值中的最大者与另一临界值做比较,并依据比较结果来决定选取第一模式或第二模式。
另一种选取适当模式的方法则是,哈达马特转换单元41除了计算在第二模式下,2k个像素值的各像素值与其所属像素组的平均像素值的差值,还计算在第一模式下,各第一转换值在经过哈达马特反转换后与原本2k个像素值中的对应像素值的差值,再将前述此两种差值做比较,以决定选取第一模式或第二模式。举例来说,哈达马特转换单元41可将第一模式与第二模式下计算所得的差值分别加总,以比较此两种差值的总和来选取适当模式;哈达马特转换单元41亦可直接将第一模式下所得的差值中的最大者,直接与第二模式下所得的差值中的最大者做比较,以决定选取哪个模式。
图5是本发明的影像压缩方法的第一实施例的流程图,其是对应于前述影像压缩装置的第一实施例。在步骤51中,依据2k×2k的哈达马特矩阵,对2k个像素值执行哈达马特转换,以产生2k个转换值,其中每一转换值包含一大小部分。在步骤52中,对至少一转换值进行量化。在步骤53中,将所有量化与未量化的转换值储存至一存储器。其中,若该2k个转换值中,至少有一第一转换值的该大小部份的前n个最高位皆为零,n为正整数,则在将该第一转换值储存至该存储器时,省略该前n个最高位,并产生一对应的省略记录,储存至该存储器。
图6是本发明的影像压缩方法的第二实施例的流程图,其是对应于前述影像压缩装置的第二实施例。在步骤61中,依据2k×2k的哈达马特矩阵与一2k×2k的调整矩阵的乘积,对2k个像素值执行哈达马特转换,以产生2k个转换值,其中至少有一转换值为零。在步骤62中,若所有非零转换值的总位数不小于2k个像素值的总位数,则对至少一非零转换值进行量化,以使所有量化与未量化的非零转换值的总位小于22k个像素值的总位数。在步骤63中,储存所有量化与未量化的非零转换值至一存储器。至于调整矩阵所须满足的条件,已如影像压缩装置的第二实施例中所述,此处不再赘述。
在一较佳实施例中,调整矩阵具有至少两种形态,而步骤61还包含产生一形态记录,用以记录使用何种形态的调整矩阵来执行哈达马特转换,其中所有非零转换值的总位数与该形态记录的位数两者之和,小于2k个像素值的总位数。并且,在步骤61中,还估计2k个像素值在分别使用各种形态的调整矩阵执行哈达马特转换时,所分别对应的转换误差,藉以依据该转换误差,选取其中一种形态的调整矩阵来执行哈达马特转换。至于如何估计转换误差,已如影像压缩装置的第二实施例中所述,此处不再赘述。
图7是本发明的影像压缩方法的第三实施例的流程图,其是对应于前述影像压缩装置的第三实施例。在步骤71中,选取第一模式或第二模式的哈达马特转换。若选取第一模式,则继续步骤72;若选取第二模式,则跳至步骤75。在步骤72中,依据2k×2k的哈达马特矩阵,对2k个像素值执行哈达马特转换,以产生2k个第一转换值;在步骤73中,对至少一第一转换值进行量化;在步骤74中,将所有量化与未量化的第一转换值储存至一存储器。另一方面,在步骤75中,依据2k×2k的哈达马特矩阵与一2k×2k的调整矩阵的乘积,对2k个像素值执行哈达马特转换,以产生2k个第二转换值,其中至少有一第二转换值为零;在步骤76中,将所有非零的第二转换值储存至该存储器。前述的调整矩阵所须满足的条件,已如影像压缩装置的第二实施例中所述,此处不再赘述。
在步骤71中,是依据在第二模式下,2k个像素值的各像素值与其所属像素组的平均像素值的差值,来决定选取第一模式或第二模式的哈达马特转换。或者,还计算在第一模式下,各第一转换值在经过哈达马特反转换后与2k个像素值中的对应像素值的差值,以与各像素值与其所属像素组的平均像素值的差值来做比较,藉以决定选取第一模式或第二模式。至于进一步的实例,已如影像压缩装置的第三实施例中所述,此处不再赘述。
以上所述是利用较佳实施例详细说明本发明,而非限制本发明的范围。凡熟知本技术的人士皆能明了,可根据以上实施例的揭示而做出诸多可能变化,仍不脱离本发明的精神和范围。

Claims (14)

1.一种基于哈达马特转换的影像压缩方法,包含:
依据一2k×2k的哈达马特矩阵,对2k个像素值执行哈达马特转换,将该2k×2k的哈达马特矩阵乘上该2k个像素值所组成的2k×1矩阵,以产生2k个转换值,其中k为正整数,该2k个像素值属于同一条扫描线或分属于2m条扫描线,m为正整数,每一转换值包含一大小部分;
对这些转换值中至少一转换值进行量化;
将所有量化与未量化的转换值储存至一存储器;以及
其中,若该2k个转换值中,至少有一第一转换值的该大小部份的前n个最高位为零,n为正整数,则在将该第一转换值储存至该存储器时,省略该前n个最高位,并产生一对应的省略记录,储存至该存储器。
2.根据权利要求1所述的影像压缩方法,其特征在于,所有量化与未量化的转换值的总位数与该省略记录的位数两者之和,小于该2k个像素值的总位数。
3.根据权利要求1所述的影像压缩方法,其特征在于,若对该第一转换值进行量化,则量化后的该第一转换值不包含该前n个最高位。
4.根据权利要求1所述的影像压缩方法,其特征在于,该2k个转换值包含一直流值(DC),其余为交流值(AC),其中该第一转换值为交流值。
5.一种基于哈达马特转换的影像压缩方法,包含:
选取一第一模式或一第二模式的哈达马特转换;
若选取该第一模式,则依据一2k×2k的哈达马特矩阵,k为正整数,对2k个像素值执行哈达马特转换,将该2k×2k的哈达马特矩阵乘上该2k个像素值所组成的2k×1矩阵,以产生2k个第一转换值,该2k个像素值属于同一条扫描线或分属于2m条扫描线,m为正整数,每一第一转换值包含一大小部分;
对该2k个第一转换值中至少一第一转换值进行量化;
将所有量化与未量化的第一转换值储存至一存储器;
若该2k个第一转换值中,至少有一第三转换值的该大小部分的前n个最高位皆为零,n为正整数,则在将该第三转换值储存至该存储器时,省略该前n个最高位,并产生一对应的省略记录,储存至该存储器;以及
若选取该第二模式,则依据该哈达马特矩阵与一2k×2k的调整矩阵的乘积,对该2k个像素值执行哈达马特转换,以产生2k个第二转换值,其中该2k个第二转换值中至少有一第二转换值为零;
其中,该调整矩阵满足以下条件:若将该2k个像素值分成G个像素组,每一像素组包含2k/G个相邻像素值,且将该调整矩阵乘以该2k个像素值所组成的一2k×1的第一矩阵,以转换该第一矩阵为一2k×1的第二矩阵,则在该第二矩阵中,该第一矩阵的各像素值转换为该像素值所属的像素组的一平均像素值;且该选取步骤是依据在该第二模式下,该2k个像素值的各像素值与其所属像素组的该平均像素值的差值,来决定选取该第一模式或该第二模式的哈达马特转换。
6.根据权利要求5所述的影像压缩方法,其特征在于,若该第二模式被选取,则将所有非零的第二转换值储存至该存储器。
7.根据权利要求6所述的影像压缩方法,其特征在于,若对该第三转换值进行量化,则量化后的该第三转换值不包含该前n个最高位。
8.根据权利要求5所述的影像压缩方法,其特征在于,在该第二模式下,若所有非零的第二转换值的总位数不小于该2k个像素值的总位数,则对至少一非零的第二转换值进行量化,以使所有量化与未量化的非零的第二转换值的总位数小于该2k个像素值的总位数,其中,该至少一非零的第二转换值是于量化后才储存至该存储器。
9.根据权利要求5所述的影像压缩方法,其特征在于,该选取步骤是依据在该第二模式下,该2k个像素值的各像素值与其所属像素组的该平均像素值的差值的总和,来决定选取该第一模式或该第二模式的哈达马特转换。
10.根据权利要求9所述的影像压缩方法,其特征在于,该选取步骤是将该2k个像素值的各像素值与其所属像素组的该平均像素值的差值的总和与一临界值做比较,以决定选取该第一模式或该第二模式的哈达马特转换。
11.根据权利要求5所述的影像压缩方法,其特征在于,该选取步骤是依据在该第二模式下,该2k个像素值的各像素值与其所属像素组的该平均像素值的差值中的最大者,来决定选取该第一模式或该第二模式的哈达马特转换。
12.根据权利要求11所述的影像压缩方法,其特征在于,该选取步骤是将该2k个像素值的各像素值与其所属像素组的该平均像素值的差值中的最大者与一临界值做比较,以决定选取该第一模式或该第二模式的哈达马特转换。
13.根据权利要求5所述的影像压缩方法,其特征在于,该选取步骤还计算在第一模式下,各第一转换值在经过哈达马特反转换后与该2k个像素值中的对应像素值的差值的总和,来与在该第二模式下该2k个像素值的各像素值与其所属像素组的该平均像素值的差值的总和作比较,以决定选取该第一模式或该第二模式的哈达马特转换。
14.根据权利要求5所述的影像压缩方法,其特征在于,该选取步骤还计算在第一模式下,各第一转换值在经过哈达马特反转换后与该2k个像素值中的对应像素值的差值中的最大者,来与在该第二模式下该2k个像素值的各像素值与其所属像素组的该平均像素值的差值中的最大者作比较,以决定选取该第一模式或该第二模式的哈达马特转换。
CN200910246181.5A 2009-12-02 2009-12-02 基于哈达马特转换的影像压缩方法 Expired - Fee Related CN102088598B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910246181.5A CN102088598B (zh) 2009-12-02 2009-12-02 基于哈达马特转换的影像压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910246181.5A CN102088598B (zh) 2009-12-02 2009-12-02 基于哈达马特转换的影像压缩方法

Publications (2)

Publication Number Publication Date
CN102088598A CN102088598A (zh) 2011-06-08
CN102088598B true CN102088598B (zh) 2014-01-29

Family

ID=44100176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910246181.5A Expired - Fee Related CN102088598B (zh) 2009-12-02 2009-12-02 基于哈达马特转换的影像压缩方法

Country Status (1)

Country Link
CN (1) CN102088598B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3940554C2 (de) * 1988-12-10 1997-06-26 Fuji Photo Film Co Ltd Vorrichtung zur Kompression von Bildsignalen und System zur Kompression und Expansion von Bildsignalen
JP2845098B2 (ja) * 1992-08-26 1999-01-13 国際電信電話株式会社 多値画像圧縮符号の復号方法および装置
US7168028B2 (en) * 2002-10-31 2007-01-23 Lucent Technologies Inc. Method and apparatus for MAP decoding of binary hamming codes and related error correction codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3940554C2 (de) * 1988-12-10 1997-06-26 Fuji Photo Film Co Ltd Vorrichtung zur Kompression von Bildsignalen und System zur Kompression und Expansion von Bildsignalen
JP2845098B2 (ja) * 1992-08-26 1999-01-13 国際電信電話株式会社 多値画像圧縮符号の復号方法および装置
US7168028B2 (en) * 2002-10-31 2007-01-23 Lucent Technologies Inc. Method and apparatus for MAP decoding of binary hamming codes and related error correction codes

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于并行技术的图像压缩方法研究;王少飞 等;《福建电脑》;20070930(第9期);107-108 *
王少飞 等.基于并行技术的图像压缩方法研究.《福建电脑》.2007,(第9期),107-108.

Also Published As

Publication number Publication date
CN102088598A (zh) 2011-06-08

Similar Documents

Publication Publication Date Title
KR950004117B1 (ko) 직교변환 부호화장치
CN106062816B (zh) 用于对hdr图像进行编码和解码的方法和装置
RU2612613C2 (ru) Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
Balasubramanian et al. Sequential scalar quantization of color images
JP2011233972A (ja) 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US20030016878A1 (en) Dynamic image compression coding apparatus
CN101938654A (zh) 一种变换系数的优化量化方法及装置
JP2005513588A (ja) バタフライプロセッサを使用して離散コサイン変換をエンコードする及び計算する装置及び方法
CN108322749A (zh) Rdoq的系数优化方法、rdoq的加速方法及装置
CN109361922B (zh) 预测量化编码方法
CN101547352B (zh) 影像压缩方法和解压缩方法
CN101415119B (zh) 用以压缩图像数据的装置及方法
US20100103464A1 (en) Image processing apparatus and image processing method
CN103957343A (zh) 一种彩色误差扩散方法
CN110267049B (zh) 一种稀疏编码的存储优化方法
US7672914B2 (en) Apparatus and method for generating coefficient data, apparatus and method for generating coefficient-seed data, information-signal processing apparatus, program, and medium having recorded the program thereon
CN107018430B (zh) 用于二进制数据的压缩和解压缩的方法和设备
CN102088598B (zh) 基于哈达马特转换的影像压缩方法
TWI462057B (zh) 基於哈達瑪轉換之影像壓縮電路及方法
CN115103185A (zh) 视频编解码方法、电子设备及计算机可读存储介质
US20060239570A1 (en) Method of Encoding and Decoding Image Data by Applying Image Capturing Device
JP2003256405A5 (zh)
JP4814826B2 (ja) 画像処理装置及び画像処理方法
US7443397B2 (en) Method and apparatus for nonlinear coding with 1st order power functions in digital imaging system
US20100183234A1 (en) Apparatus, method, and program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140129

Termination date: 20191202