每块使用固定数目比特的数字图像压缩方法

文档序号:7889397阅读:210来源:国知局
专利名称:每块使用固定数目比特的数字图像压缩方法
技术领域
本发明涉及图像处理领域。更具体地,本发明涉及每块使用固定数目比特的图像压缩。
背景技术
传统图像压缩系统遭遇各种问题。它们不能够用于开发人类视觉系统(HVS)中的随着图像内容空间地变化的视觉掩蔽以及其他属性。原因之一是这些算法所使用的量化參数通常在图像范围上相对恒定。结果,图像不能被高效压縮。另外,为了利用这样的方法来实现目标比特率或视觉质量,图像必须经过多次压缩。
发明内容
描述了每块使用固定数目比特的数字图像压缩方法。帧内编码(Intra-coding)被用于数字图像的压缩。图像被分割为大小相同的块。编码器针对每个块生成固定的、预定数目的比持。编码处理包括应用于输入图像以生成数据的伽马(gamma)转换。附加阶段包括预测、量化、DPCM、熵编码和细化。在ー个方面中,一种被编程在设备中的控制器中的图像压缩方法包括以下步骤将图像分割为ー个或多个块,和编码所述ー个或多个块,其中在所述ー个或多个块的每个块中的比特数目是固定的。该方法还包括应用伽马转换来生成10比特数据。该方法还包括利用一种或多种预测模式来针对所述ー个或多个块中的当前块中的每个像素计算预测值。预测模式包括以下项中的至少ー个普通、DC、右上、右上上、上、左上上、左上、左左上以及左。该方法还包括应用量化。该方法还包括计算差分脉冲码调制来生成量化值的残差。该方法还包括实现熵编码来针对每个量化值的残差生成可变长度码。实现熵编码被分为两部分码值/长度计算和比特流生成,但是具有单个细化阶段和单个比特流生成。该方法还包括实现细化。实现细化包括用于姆个量化的独立细化阶段。实现细化包括单个细化阶段。该方法还包括计算脉冲码调制,该计算包括将每个像素值移位固定数目的比持。该方法还包括生成比特流。生成比特流包括选择差分脉冲码调制或脉冲码调制编码方法。控制器是从包括以下项的组中选出的经过编程的计算机可读介质和专用电路。设备是从包括以下项的组中选出的个人计算机、膝上型计算机、计算机工作站、服务器、大型机、手持计算机、个人数字助理、蜂窝/移动电话、智能家电、游戏手柄、数字相机、数字摄录机、相机电话、iPhone、iPod 、视频播放器、DVD写入器/播放器、电视和家庭娱乐系统。在另一方面中,一种被编程在设备中的控制器中的图像压缩系统包括分割模块,用于将图像分割为ー个或多个块,和编码模块,用于编码所述ー个或多个块,其中在所述ー个或多个块的每个块中的比特数目是固定的。该系统包括计算模块,用于利用ー种或多种预测模式来针对所述ー个或多个块中的当前块中的每个像素计算预测值。预测模式包括以下项中的至少ー个普通、DC、右上、右上上、上、左上上、左上、左左上以及左。在又一方面中,一种被编程在设备中的控制器中的图像压缩系统包括伽马模块,用于应用伽马转换来生成10比特数据;预测模块,用于利用一种或多种预测模式来针对所述ー个或多个块中的当前块中的每个像素计算预测值;量化模块,用于应用量化;DPCM模块,用于计算差分脉冲码调制来生成量化值的残差;细化模块,用于实现细化;PCM模块,用于计算脉冲码调制,该计算包括将每个像素值移位固定数目的比特;以及比特流模块,用于生成比特流,其中生成所述比特流包括选择差分脉冲码调制或脉冲码调制编码方法。预测模式包括以下项中的至少ー个普通、DC、右上、右上上、上、左上上、左上、左左上以及左。控制器是从包括以下项的组中选出的经过编程的计算机可读介质和专用电路。设备是从包括以下项的组中选出的个人计算机、膝上型计算机、计算机工作站、服务器、大型机、手持计算机、个人数字助理、蜂窝/移动电话、智能家电、游戏手柄、数字相机、数字摄录机、相机电话、iPhone、iPod 、视频播放器、DVD写入器/播放器、电视和家庭娱乐系统。在又一方面中,ー种相机设备包括用于获取视频的视频获取组件;用于存储应用的存储器,该应用用于将图像分割为ー个或多个块;和编码所述ー个或多个块,其中在 所述ー个或多个块的每个块中的比特数目是固定的;以及耦接到所述存储器的处理器组件,该处理器组件被配置为处理所述应用。所述应用还用于利用ー种或多种预测模式来针对所述一个或多个块中的当前块中的每个像素计算预测值。预测模式包括以下项中的至少ー个普通、DC、右上、右上上、上、左上上、左上、左左上以及左。


图I图示出根据ー些实施例的与图像中不同的可能方向相关联的7种可能的预测模式。图2图示出根据ー些实施例的示例性VLC计算。
图3图示出根据ー些实施例的示例性熵编码表。图4图示出根据ー些实施例的将剩余比特用于细化的示例。图5图示出根据ー些实施例的基于DPCM的编码和重建值的示例。图6图示出根据ー些实施例的编码器和解码器。图7图示出根据ー些实施例的在e = 0、1、2、3、4和5的情况下的桶(bin)及其重建值。图8图示出根据ー些实施例的用于DPCM模式的比特流结构。图9图示出根据ー些实施例的在块宽度等于16并且bps为4的情况下的针对PCM方法的比特发送顺序。图10图示出根据ー些实施例的针对PCM方法的块的重建。图11图示出根据ー些实施例的用于PCM模式的比特流结构。图12图示出根据ー些实施例的具有多个细化阶段的编码器结构。图13图示出根据ー些实施例的具有单个细化阶段的编码器结构。图14图示出根据ー些实施例的具有被划分为两部分的熵编码的编码器,这两部分是码值/长度计算和比特流生成。图15图示出根据ー些实施例的使码值和长度计算与比特流生成分离然而具有单个细化阶段和单个比特流生成的编码器。图16图示出根据ー些实施例的每块使用固定数目比特的压缩方法的流程图。
图17图示出根据ー些实施例的被配置为实现每块使用固定数目比特的图像压缩方法的示例性计算设备的框图。
具体实施例方式这里描述帧内编码数字图像的方法。对于帧内编码,图像被分割为垂直的条带。每个垂直条带中的每行被分割为称作块的小的行片段。每个条带是无需关于任何其他条带的信息就可解码的。在一些实施例中,所有的块具有相同的大小。编码器针对每个块生成固定的、预定数目的比持。如果以硬件实现,编解码器在实现方式所需的门电路数目方面具有十分低的复杂度。编解码器能够针 对某些比特率并且针对某些应用提供视觉上的无损压縮。在某些实施例中,编码处理的第一阶段是伽马转换。例如,编解码器使用10比特的伽马转换。伽马转换被应用于输入图像像素以生成10比特数据。伽马转换的输出被称作“原始像素值”。值10是ー示例,并且其他值也是可能的。在某些实施例中,编码和/或解码的各方面在2010年5月27日递交的题为“AN IMAGE COMPRESSION METHOD WITH RANDOM ACCESS CAPABILITY” 的美国专利申请No. 12/789,091中被进ー步详细描述,该美国专利申请的全部内容通过引用被结合于此。基于差分脉冲码调制(DPCM)的方法和预测在一些实施例中,编码器应用预測,然后是量化,然后是像素式DPCM,然后是熵编码和之后的细化。编码器首先针对当前块中的所有像素计算“预测”值。任何预测方法都是可行的,例如,使用当前像素左侧的最接近的相同顔色像素的重建值。在一些实施例中,在编解码器中使用若干种(例如9种)预测方法(或模式)。每种预测模式具有指派的名称和编号。在一示例中,九种预测模式是普通、DC、右上、右上上、上、左上上、左上、左左上和左。针对每个块,编码器选择上述预测模式中的ー种,并且那个预测模式被用于预测当前块中的像素的量化值。编码器使用当前块中像素值的原始值以及任何先前重建了的块的重建像素值来选择预测模式。编码器针对预测模式中的每ー种来计算预測。针对每种预测模式计算出的预测被表示。如果当前块中所有像素的像素值都已被表示,则针对每种表示出的预测模式,编码器计算当前块中所有像素的SAD(predNum) = abs (Pred (PredNum)的和>> (depth-predSelDepth)-B >> (depth-predSelDepth))。这里,B 包括当前块中像素的像素值,并且PredSelD印th是编码器的输入參数。这产生每种预测模式的SAD值。编码器选择SAD值最小的预测模式。如果不止一种预测模式产生了最小SAD值(例如,存在平局),则任何打破平局的规则可被使用,包括选择更接近predNumList的开头的预测模式的规则,这里predNumList是在编码器处被允许使用的预测模式的列表。用“predNumBest”表示的所选出预测模式和用“Pred(predNumBest) ”表示的相应预测然后被用于剩余的编码块的处理中。编码器然后将Pred(predNumBest)用于编码的下ー阶段。在基于DPCM的方法中,利用比特流中的ー个或多个比特将Pred(predNumBest)通知给解码器。 基于DPCM的方法中的量化编码的下一阶段是量化因子为qf = 2 的量化,其中qn被称作量化数(quantization number)。编码器针对在qnList (qn列表)中列出的姆个并且所有qn值应用量化数为qn的量化。然后,针对每个qn值,编码器应用量化之后的所有阶段。针对量化,编码器均匀地量化B中的所有像素以及Pred (predNumBest)中的所有值。通过量化数qn的值X的量化是计算X >> qn。如果x具有比特深度“cbpth”,则量化后的x具有比特深度 qDepth = depth-qn。DPCM 计算然后,针对当前块中的所有像素,编码器计算在量化后的原始值和量化后的预测值之间的差 Resq= (B >> qn) - (Pred (predNumBest) >> qn)这称作DPCM阶段。差Resq称作B的量化值的残差。Resq可以是负数、零或者正数。熵编码和编码准确度Resq被用作熵编码器的输入。熵编码器针对每个量化值的残差生成可变长度码(VLC)。VLC是其中所生成比特的数目和比特自身都取决于量化值的残差的值的比特序列。针对任意两个量化值的残差a和b,如果abs (a) > abs (b),则针对a生成的VLC的长度大于或等于针对b生成的VLC的长度。解码器能够使用由熵编码器生成的VLC码来无损地重建Resq值。解码器还能够无损地重建(Pred(predNumBest) >>qn)。在具有了 Resq和(Pred (predNumBest) > > qn) 二者后,解码器然后能够无损地重建B >> qn。这意味着B中像素的qD印th个最高有效比特能够被无损地编码和解码。在编码器处,DPCM阶段以qDepth个比特的“准确度”来编码原始像素值。基于DPCM的方法中的细化针对qnList中的每个qn值,早先提及的运算被针对块中的所有像素执行,然后针对整个块生成的总比特数目被測量。然后,存在可能发生的三种可能性。I、针对整个块生成的比特数目大于针对当前块所分配的比特预算,或者针对块中至少ー个像素生成的比特数目大于codeLengthLimit (码长度限制),那么,具有qn的当前值的DPCM不被允许。2、针对整个块生成的比特数目与针对当前块的比特预算相同,那么,具有qn的当前值的DPCM被允许。3、针对整个块生成的比特数目小于针对当前块所分配的比特预算,那么,具有qn的当前值的DPCM被允许。然而,更多比特然后将在称作“细化”的处理中被生成。细化阶段能够用尽剰余的允许比持。如果并不是所有的剰余比特都被使用了,那么所允许比特的余下部分被用零填充,这些零称作“补零”。细化阶段提高原始块中像素的编码准确度。由细化阶段生成的数据的每个比特将一像素的编码准确度提高ー个比持。脉冲码调制(PCM)方法除了基于DPCM的方法外,编码器还尝试另ー类型的方法,称作PCM方法。在PCM方法中,每个像素值被向右移位固定数目的比持。此固定数目的比特针对每个像素是恒定的,然而可以在块中依像素的不同而不同。移位后的像素值然后被放入比特流中而不进行任何进ー步的处理。准确度、模式选择和比特流生成
在编码器应用了使用不同qn值的基于DPCM的方法和PCM方法之后,编码器针对所有测试过的情形测量编码准确度。对于基于DPCM的方法,针对ー图像块,“准确度”或“覆盖度”被定义为该块中通过DPCM/VLC或通过细化编码了的原始像素比特的总数目。对于PCM方法,针对ー图像块,“准确度”或“覆盖度”被定义为该块中被编码了的原始像素比特的总数目。如果具有qn值中的任ー个的DPCM被允许并且通过基于DPCM的方法获得了最佳編码准确度,则编码器发送通知基于DPCM的方法的“ I”、通知最佳qn值的ー个或多个比特、通知predNumBest的一个或多个比特、由对块中所有像素的熵编码阶段生成的比特、细化比特(如果有的话)以及补零(如果有的话)。如果具有qn值中的任ー个的DPCM都不被允许,或者具有ー个或多个qn值的DPCM被允许然而最佳编码准确度是由PCM方法得到的,则编码器发送通知PCM方法的“0”,然后是由PCM方法生成的比持。重建DPCM情况在基于DPCM的方法中,在针对块中的每个像素编码了该块之后,qDepth =depth-qn个比特被利用DPCM/VLC编码。0到qn之间的比特被利用细化编码,并且针对每个像素,利用细化编码的比特数目用f来表示。记号e = qn-f被使用,其中e是针对一像素的“有效qn”。针对ー给定像素,depth-e个比特被通过DPCM/VLC或通过细化编码,而e个比特根本不被编码。出于重建的目的(在编码器和解码器处),最高有效的d印th-e个比特被设定为由编码器编码的值,最高有效的未编码比特被设定为“I”并且其他未编码比特被设定为“O”。重建PCM情况在PCM方法中,在编码了ー块之后,针对块中的每个像素,qDepth = depth-qnPCM个比特被利用PCM方法编码,并且qnPCM个比特根本不被编码。出于重建的目的(在编码器和解码器处),最高有效的d印th-qnPCM个比特被设定为由编码器编码的值。最高有效的未编码比特被设定为“I”并且其他未编码比特被设定为“O”。预测针对每个块,多种预测模式可被定义。预测模式中的一些可与图像中可能的边缘方向相关联。例如,图I图示出与图像中不同的可能方向相关联的7种可能的预测模式。其他一些预测模式可被定义为不与图像中可能的边缘方向相关联。例如,两种预测模式是“普通”和“DC”。通过使用额外的两种示例情況,存在九种预测模式。针对第一行的预测针对预测,对于大多数的预测模式而言,编码器和解码器需要前一行的重建后的值。然而,对于第一行,没有用于预测的前一行。在这种情况下,不可获得的、所需的前一行的重建值被假设为2(depth_D。对于Cbpth = 10,这产生512。对预测图案(Pattern)的限制为了获得针对当前块中的像素A的预测,通过两种预测可能方案中的一种来获得预测。第一种是使用先前编码了的块的ー个或多个重建值,这些值能够以任意希望的方法 被组合。第二种是确切地使用当前块中位于当前像素之前的原始像素值中的ー个。在比特流中通知qn和预测模式如果用于当前块的qn与顶部的块(the block on the top)的qn相同,贝U“ I”被发送。对于图像中的第一行,顶部块的qn被假设为qnList中的第一个qn。如果顶部块被用PCM方法编码(因此不具有与之相关联的qn),则替代顶部的qn,使用顶部上的qn。如果用于当前块的qn不同于顶部的块的qn,则“0”被发送,随后发送1-1的ニ进制表示,这里I是顶部块的qn从列表中被去除时qnList中的qn的索引。例如,如果qnList =
,并且顶部块的qn是3,则下表示出在将八个可能qn值用于当前块的情况下的通知比特
权利要求
1.一种被编程在设备中的控制器中的图像压缩方法,包括以下步骤 a.将图像分割为ー个或多个块;和 b.编码所述ー个或多个块,其中在所述ー个或多个块的每个块中的比特数目是固定的。
2.根据权利要求I所述的方法,还包括应用伽马转换来生成10比特数据。
3.根据权利要求I所述的方法,还包括利用一种或多种预测模式来针对所述ー个或多个块中的当前块中的每个像素计算预测值。
4.根据权利要求I所述的方法,还包括应用量化。
5.根据权利要求I所述的方法,还包括计算差分脉冲码调制来生成量化值的残差。
6.根据权利要求5所述的方法,还包括实现熵编码来针对每个量化值的残差生成可变长度码。
7.根据权利要求6所述的方法,其中,实现熵编码被分为两部分码值/长度计算和比特流生成。
8.根据权利要求I所述的方法,还包括实现细化,其中,实现细化包括单个细化阶段或者包括针对每个量化的分别的细化阶段。
9.根据权利要求I所述的方法,还包括计算脉冲码调制,该计算包括将每个像素值移位固定数目的比持。
10.根据权利要求I所述的方法,还包括生成比特流,其中生成比特流包括选择差分脉冲码调制或脉冲码调制的编码方法。
11.一种被编程在设备中的控制器中的图像压缩系统,包括 a.分割模块,用于将图像分割为ー个或多个块;和 b.编码模块,用于编码所述ー个或多个块,其中在所述ー个或多个块的每个块中的比特数目是固定的。
12.根据权利要求11所述的系统,还包括计算模块,所述计算模块用于利用一种或多种预测模式来针对所述ー个或多个块中的当前块中的每个像素计算预测值。
13.一种被编程在设备中的控制器中的图像压缩系统,包括 a.伽马模块,用于应用伽马转换来生成10比特数据; b.预测模块,用于利用一种或多种预测模式来针对所述ー个或多个块中的当前块中的每个像素计算预测值; c.量化模块,用于应用量化; d.DPCM模块,用于计算差分脉冲码调制来生成量化值的残差; e.细化模块,用于实现细化;f.PCM模块,用于计算脉冲码调制,该计算包括将每个像素值移位固定数目的比特;以及 g.比特流模块,用于生成比特流,其中生成比特流包括选择差分脉冲码调制或脉冲码调制的编码方法。
全文摘要
描述了每块使用固定数目比特的数字图像压缩方法。帧内编码被用于数字图像的无损压缩。图像被分割为大小相同的块。编码器针对每个块生成固定的、预定数目的比特。编码处理包括应用于输入图像以生成数据的伽马转换。更多阶段包括预测、量化、DPCM、熵编码和细化。
文档编号H04N7/50GK102651815SQ20121003225
公开日2012年8月29日 申请日期2012年2月10日 优先权日2011年2月25日
发明者矢崎阳一, 穆罕默德·格哈拉维-阿尔克汉萨利, 艾利·塔巴塔拜 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1