一种图像编码方法、图像解码方法及装置的制作方法

文档序号:7852447阅读:256来源:国知局
专利名称:一种图像编码方法、图像解码方法及装置的制作方法
技术领域
本发明属于图像处理技术领域,尤其涉及一种图像编码方法、图像解码方法及装置。
背景技术
目前,互联网尤其是社交网络的兴起可以使人们随时随地的自由的上传分享图片,然而,却缺乏对图像中敏感区域进行有效地保护手段,如对人脸、商标、文字等等敏感区域的保护。在利用现有技术对图像敏感区域进行加密后,经常会影响非敏感区域的图像质量,加密后的图像压缩比也发生较大变化,且存在非授权用户可以很容易获取加密的敏感区域的位置信息,导致敏感区域信息易泄漏,也使得在解密端不能够准确定位和恢复被加密的敏感区域。因而,如何在不产生多余信息或者保持非敏感区域原始图像质量、加密后 的图像压缩比变化较小情况下,安全、准确对图像敏感区域进行加密、解密是急需解决的问题。

发明内容
本发明实施例的目的在于提供一种图像编码方法、图像解码方法及装置,旨在解决由于利用现有技术对图像加密及压缩后,存在非敏感区域的图像质量受到影响,加密后 的图像压缩比发生较大变化,加密安全性不高的问题。本发明实施例是这样实现的,一种图像编码方法,所述方法包括下述步骤将原始图像分解成多个最小编码单元MCU ;根据DCT变换及量化算法,获取每一 MCU的量化DCT系数;当判断任一 MCU包含敏感区域时,将所述任一 MCU的量化DCT系数进行加密,并添加预设区域标识至加密后的所述量化DCT系数中,以更新所述任一 MCU的量化DCT系数为标识加密后的量化DCT系数;将所述每一 MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像。本发明实施例的另一目的在于提供一种图像编码装置,所述装置包括MCU分解单元,用于将原始图像分解成多个最小编码单元MCU ; 变换及量化单元,用于根据DCT变换及量化算法,获取每一 MCU的量化DCT系数;加密及标识单元,用于当判断任一 MCU包含敏感区域时,将所述任一 MCU的量化DCT系数进行加密,并添加预设区域标识至加密后的所述量化DCT系数中,以更新所述任一MCU的量化DCT系数为标识加密后的量化DCT系数;以及编码单元,用于将所述每一 MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像。本发明实施例是这样实现的,一种图像解码方法,所述方法包括下述步骤解码加密压缩后的图像,获取每一最小编码单元MCU的DCT系数;当判断任一 MCU含有预设区域标识时,去除所述任一 MCU对应的DCT系数中的所述预设区域标识,并解密所述MCU的去除所述预设区域标识后的DCT系数,以更新所述任一MCU的DCT系数为去标识解密后的DCT系数;将所述每一 MCU的DCT系数进行反量化、IDCT处理,生成解密解压缩后的图像。本发明实施例的另一目的在于提供一种图像解码装置,所述装置包括解码单元,用于解码加密压缩后的图像,获取每一最小编码单元MCU的DCT系数;标识去除及解密单元,用于当判断任一 MCU含有预设区域标识时,去除所述任一MCU对应的DCT系数中的所述预设区域标识,并解密所述MCU的去除所述预设区域标识后的DCT系数,以更新所述任一 MCU的DCT系数为去标识解密后的DCT系数;以及反量化及逆变换单元,用于将所述每一 MCU的DCT系数进行反量化、IDCT处理,获 取解密解压缩后的图像。本发明实施例通过对原始图像进行分解生成多个最小编码单元MCU,接着获取每一 MCU的量化DCT系数,对包含敏感区域的任一 MCU的量化DCT系数进行加密以及添加预设区域标识的处理操作,可以更新该任一 MCU的量化DCT系数为标识加密后的量化DCT系数,而不包含敏感区域的任一 MCU的量化DCT系数保持不变,最后将该每一 MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像,解决了由于利用现有技术对图像加密及压缩后,存在非敏感区域的图像质量受到影响,加密后的图像压缩比发生较大变化,加密安全性不高的问题,使得在保持非敏感区域的图像质量的情况下,加密后的图像压缩比变化较小,加密安全性较高。


图I是本发明第一实施例提供的图像编码方法的实现流程图;图2是本发明实施例提供的之字形扫描方式示意图;图3是本发明实施例提供的对测试图像中人脸进行加密的示意图;图4是本发明实施例提供的测试图像分级加密的示意图;图5是本发明实施例提供的图像编码前后的产生的文件大小变化示意图;图6是本发明第二实施例提供的图像编码装置的结构图;图7是本发明第三实施例提供的图像解码方法的实现流程图;图8是本发明实施例提供的图像解码前后的图像示意图;图9是本发明第四实施例提供的图像解码装置的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合具体实施例对本发明的具体实现进行详细描述实施例一:图I示出了本发明第一实施例提供的图像编码方法的实现流程,详述如下在步骤SlOl中,将原始图像分解成多个最小编码单元MCU。在步骤S102中,根据DCT变换及量化算法,获取每一 MCU的量化DCT系数。
其中,该MCU (Minimum Coding Unit,是JPEG图像中的最小编码单元)为8*8的区域块,该量化DCT系数为64位量化DCT系数。在本发明实施例中,在原始图像中预设敏感区域为用户预先指定的需要进行加密的区域。针对任意一幅能够进行DCT(Discrete Cosine Transform,离散余弦变换)变换的图像,对该图像进行JPEG (Joint Photographic Experts Group,联合图像专家小组)压缩位图格式的编码压缩成时,则首先需要将该图像分解成多个最小编码单元MCU,根据国际静态图像压缩标准,该MCU为8*8的像素块,也即每一 MCU的水平、垂直像素个数均为8,比如,一幅 512*512 的图像包括 8*8 的 MCU 个数 n 为(512/8) * (512/8) =4096,而当一幅 817*768的图像包括8*8的MCU个数为(817/8) * (768/8),n约为9888,需要说明的是,当一幅图像的水平或者垂直像素个数不是8的整数倍,而需要将该图像分成多个8*8的MCU时,则使用值为0的像素点补齐不足64个像素点的MCU。进一步地,根据DCT变换,获取每一 MCU的64位DCT系数,并对每一块的DCT系数进行量化处理,最终获取到每一 MCU的64位量化DCT系数。 在步骤S 103中,当判断任一 MCU包含敏感区域时,将该任一 MCU的量化DCT系数进行加密,并添加预设区域标识至加密后的该量化DCT系数中,以更新该任一 MCU的量化DCT系数为标识加密后的量化DCT系数。其中,该步骤S103中,将该任一 MCU的量化DCT系数进行加密具体包括使用预设密钥生成63位的常数序列L ;根据该L中数值为奇数或者偶数的位置,将该量化DCT系数的后63位系数中该位置处的系数进行符号取反处理。在具体实施过程中,在获取每一 MCU的64位量化DCT系数之后,需要依次判断每一 MCU是否属于预设的敏感区域,当某一 MCU属于敏感区域或者说落入预设敏感区域范围内时,则需要对该MCU的量化DCT系数进行加密处理。具体地,首先可以将该64位的量化DCT系数按照之字形扫描获取,如图2所示之字形扫描方式示意图,以实现方便、准确地获取量化DCT系数的序列CC= [ccO,ccl,…,cc63],其中ccO为直流系数,后63位系数[ccl,…,cc63]为交流系数,则使用预设密钥生成一个63位的常数序列L,记为L= [11,…,163],根据该L中数值为奇数或者偶数的位置,将该交流系数中对应位置处的系数的符号进行取反处理,直流系数ccO不变,例如,可以设置当11为偶数时,ccl数值不变,当11为奇数时,将ccl数值符号取反等。其中,该步骤S103中,添加预设区域标识至加密后的该量化DCT系数中具体包括使用该预设密钥生成第一范围内的起始搜索位置S、第二范围内的整数X及第三范围内的正整数k,记加密后的该量化DCT系数MC为[c0,cl,…,c63];判断[cs,…,c63]中是否出现k个值连续为0的序列;当判断结果为是时,将第一次出现该k个值连续为0的序列中的所有值使用X或者-X代替;当判断结果为否时,将[cs,一,c63]中的系数顺序两两分组形成N个2位的存储单元,使用该预设密钥生成N位的二进制序列,并按照整数变换方法,将该二进制序列中的比特值存入对应的一个存储单元中。
在具体实施过程中,使用该预设密钥生成第一范围内的起始搜索位置S、第二范围内的整数X及第三范围内的正整数k,记加密后的该量化DCT系数MC为[CO,Cl,…,C63]。由于DCT变换后的系数按照从大到小排列,排在靠前位置的系数较大,一般不会出现值为0情况,且为了减少图像加密后产生虚景,避免在解密时产生错误,根据图像实际加密压缩的经验值,可以取s的第一范围为[10,20],X的第二范围为[10,1023]或者[-1023,-10],k的第三范围为[2,5],以s=20, X=55, k=2, [c0, ...,c (s-1)]值保持不变以MC’ =[cs,...,c63] = [2,-l,0,0,0,1,...,0,0]为例,则可以判断出 MC’ 中存在 2个值连续为0的序列,分别为c22=c23=0,则可以根据可恢复常数替换方法添加区域标识,具体地,使用55或者-55对c22、c23进行替换,比如可以替换为c22=55,c23=_55等,此时[cs,…,c63]更新为[2,-1,55,-55,0, I,…,0,0],最终在添加预设区域标识至加密后的该量化DCT系数中后,更新该任一 MCU的量化DCT系数为标识加密后的量化DCT系数LMC。以MC =[cs,…,c63] = [2,_l,1,3,0, I, - ,4,0]为例,则可以判断出 MC,中并不存在2个值连续为0的序列,则可以使用可恢复整数变换方法添加区域标识,具体地,将[cs,…,c63]中的系数顺序两两分组形成N个2位的存储单元,此时 N=floor( (63-20+1)/2) =22,其中,floor (X)表示取不大于表达式的最大整数,此时,第I个存储单元[2,-I],第2个存储单元[1,3],……,第22个存储单元[4,0],当(^到(63的为数为奇数时,舍去c63位,也即不对其添加区域标识,继续使用该预设密钥生成22位的二进制序列LL=
,并按照整数变换方法,将该LL中的比特值存入对应的一个存储单元中。该整数变换方法为获取任一存储单元中两个DCT系数的差的绝对值d以及与该存储单元对应的比特值b,根据该绝对值d以及比特值b,将该两个DCT系数中的较大系数进行增大处理,较小系数进行变小处理,以将该比特值b存入该存储单元中。在该可恢复整数变换方法中,以第N-I个存储单元(ci,c(i+l))为例,对应第N-I个比特值b,将该比特值b存入该存储单元后,更新该存储单元为(c’ i,c’(i+1)),若ci < c (i+1),则d=Ic(i+1)_ciI, C, (i+1)=c(i+1)+ceil(d/2)+b, c’ i=c(i)-ceil(d/2)_b,若ci>c(i+l),则d=Ic(i+1)_ciI , c,(i+1)=c(i+1)-ceil(d/2)-b, cf i=c(i)+ceil(d/2)+b.其中,ceil表示取大于或者等于表达式的最大整数。进一步地,若MC’ =[cs, ...,c63] = [2,_l,1,3,0, I,…,4,0],22 位的二进制序列LL=
为例,则通过上述处理后,MC” = [4,-3,-1,5,-2,3,…,7,-3],也即通过加载一位比特值信息,扩大了每两个系数之间的差值,实现了将该二进制序列中的比特值存入对应的一个存储单元中的目的。在本发明实施例中,通过使用可恢复常数替换方法,仅对属于敏感区域的任意MCU中的极少加密后的量化DCT系数进行处理,保证了在编码过程中的高压缩比,而在无法使用该可恢复常数替换方法的情况下,使用可恢复整数变换方法进行处理,由于此时加密后的量化DCT系数中缺少连续的指定个数的0值,则使得编码压缩后,图像压缩前后,压缩比变化不大。另外,对于不包含敏感区域的MCU,直接对该MCU的量化DCT系数进行编码压缩,而不需要利用步骤S103获取标识加密后的量化DCT系数,以更新其量化DCT系数的操作,直接执行步骤S104。在步骤S104中,将该每一 MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像。为了更直观地比较加密压缩前后图像的质量,如图3 (a)所示为一幅名为testpic的测试图,该图像中包含有人脸、脸谱、以及人衣服上的胸章三个部分,若对该图像中人脸的区域进行加密处理,可以有效防 止个人肖像在未经许可的情况下被窃取盗用,则使用本发明实施例提供的图像压缩加密方法,在保证对敏感区域加密的同时不影响其他区域的图像质量的情况下,加密压缩后的JPEG图像如图3 (b)所示。该图像编码方法还包括当包含敏感区域的MCU为多个时,使用不同的预设密钥对不同的MCU的量化DCT系数进行加密及添加区域标识处理,以支持不同MCU分别密钥授权的功能。在具体实施过程中,在将预设敏感区域的原始图像分解成多个8*8的MCU,根据DCT变换及量化算法,获取每一 MCU的64位量化DCT系数之后,当判断有多个MCU属于敏感区域,则可以使用相同或者不同的预设密钥对该多个MCU进行加密、添加标识等处理,若对图像中不同的敏感区域使用不同的密钥进行分别加密,然后将不同的密钥分给不同的用户使用,则能够达到对不同的区域进行不同的密钥加密授权、图像分级管理的目的。如图4所示为对图4 Ca)中原始图像中人脸、胸章以及脸谱区域分别对应的三个敏感区域按照不同的密钥进行加密,加密后的图像如图4 (b)所示。作为本发明一实例,以图3 Ca)中的817*768的testpic图像作为第一幅测试图像,预设的512*512的Iena图像为第二幅测试图像,该testpic图像包括9988个MCU,该Iena图像包括4096个MCU为例,在固定JPEG图像质量为80%的情况下,针对对不同比例数量的MCU进行加密后,产生的加密压缩后的文件大小比例变化如图5所示,其中,图中方块曲线表示针对测试图片testpic的处理数据,圆形曲线表示针对测试图片Iena的处理数据,从该图中可以看出,随着加密MCU所占整幅图像的大小比例的增加,生成的加密压缩JPEG图像产生的额外文件大小的比例也增加,然而在对一幅图像中的30%的MCU加密的情况下,使用本发明实施例提供的图像编码方法,仅仅产生约20%的额外的文件大小,相对于现有的图像加密压缩技术能够保持极高的压缩比。在本发明实施例中,通过上述方法能够对针对所有包含敏感区域的MCU本身进行加密,加密过程中能够使得非敏感区域不受影响,保持非敏感区域原始图像的质量,加密后的图像能够保持高压缩比;由于没有对文件格式做出任何改变,则加密过的图像可以在任意通用的JPEG图像浏览器中被查看;由于加密位置信息等被隐藏在加密后的MCU的DCT系数中,预设区域标识信息也是预设密钥生成,故需要该密钥来定位该图像中的加密位置信息,使得无授权用户无法通过文件或者流获得加密区域的位置信息,也无法获取原始图像数据,加密安全性得到提高,用户的体验效果也得到极大提升。实施例二 :图6示出了本发明第二实施例提供的图像编码装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。该图像编码装置可以应用到所有以DCT为基础的图像压缩或者视频压缩格式中,也可以用于具有图像加密、压缩处理功能等的图像编辑器中,可以是运行于这些图像编辑器内的软件单元,也可以作为独立的挂件集成到这些图像编辑器中,该图像编码装置包括MCU分解单元61、变换及量化单元62、加密及标识单元63以及编码单元64,其中MCU分解单元61,用于将预设敏感区域的原始图像分解成多最小编码单元MCU。变换及量化单元62,用于根据DCT变换及量化算法,获取每一 MCU的量化DCT系数。其中,该MCU为8*8的区域块,该量化DCT系数为64位量化DCT系数。在本发明实施例中,通过MCU分解单元61能够将任意一幅能够进行DCT变换的图像进行分解,形成多个最小编码单元MCU,由于该图像中预先设置或者指定了敏感区域,则分解后,该敏感区域可以被分解在一个或者多个MCU中,根据DCT变换,能够获取每一 MCU的64位DCT系数,根据现有的量化算法等,可以对该每一块的DCT系数进行量化处理,最终获取到每一 MCU的64位量化DCT系数。加密及标识单元63,用于当判断任一 MCU包含敏感区域时,将该任一 MCU的量化DCT系数进行加密,并添加预设区域标识至加密后的该量化DCT系数中,以更新该任一 MCU的量化DCT系数为标识加密后的量化DCT系数。其中,该加密及标识单元63具体包括以下单元常数序列生成单元631,用于使用预设密钥生成63位的常数序列L ;加密子单元632,用于根据该L中数值为奇数或者偶数的位置,将该量化DCT系数的后63位系数中该位置处的系数进行符号取反处理;参数生成单元633,用于使用该预设密钥生成第一范围内的起始搜索位置S、第二范围内的整数X及第三范围内的正整数k,记加密后的该量化DCT系数MC为[CO,Cl,…,c63];判断单元634,用于判断[cs,…,c63]中是否出现k个值连续为0的序列;第一标识添加子单元635,用于当该判断单元634输出结果为是时,将第一次出现该k个值连续为0的序列中的所有值使用X或者-X代替;以及第二标识添加子单元636,用于当该判断单元634输出结果为否时,将[cs,…,c63]中的系数顺序两两分组形成N个2位的存储单元,使用该预设密钥生成N位的二进制序列,并按照整数变换方法,将该二进制序列中的比特值存入对应的一个存储单元中。在本发明实施例中,在获取每一 MCU的64位量化DCT系数之后,需要依次判断每一 MCU是否属于预设的敏感区域,当某一 MCU属于敏感区域或者说落入预设敏感区域范围内时,则需要对该MCU的量化DCT系数进行加密处理。通过常数序列生成单元631使用预设密钥生成63位的常数序列L,该加密子单元632根据该L中数值为奇数或者偶数的位置,将该量化DCT系数的后交流系数中对应位置处的系数进行符号取反处理,直流系数不做加密处理,保持不变。在本发明实施例中,利用参数生成单元633可以获取s的第一范围为[10,20],X的第二范围为[10,1023]或者[-1023,-10],k 的第三范围为[2,5],以 s=20,X=55,k=2,[cO,…,c(s-l)]值保持不变,当该判断单元634判断该[cs,…,c63]中出现k个值连续为0的序列时,则触发第一标识添加子单元635根据可恢复常数替换方法添加预设区域标识,否则触发第二标识添加子单元636使用可恢复整数变换方法添加预设区域标识至该加密后的量化DCT系数中,以获取包含敏感区域的MCU对应的更新后的量化DCT系数。另外,当、判断某一 MCU不包含敏感区域时,则可以在获取该区域卡的量化DCT系数后,直接触发编码单元64,执行量化DCT系数的编码压缩操作。编码单元64,用于将该每一 MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像。在本发明实施例中,通过在图像编码过程中,利用加密及标识单元在JPEG编码的量化和编码过程之间加入对包含敏感区域的MCU的量化DCT系数进行加密和添加区域标识,可以实现对图像中任意区域或者整个图像进行加密处理,加密过后的图像仍保持很高的压缩比,图像中非敏感区域不受影响,没有授权的用户既无法获得加密区域的位置信息,也不能恢复原始图片的目的。该图像编码装置还包括分级加密及标识单元,用于当包含敏感区域的MCU为多个时,使用不同的预设密钥对不同的MCU的量化DCT系数进行加密及添加区域标识处理,以支持不同MCU分别密钥 授权的功能。在本发明实施例中,还可以对不同分块区域或者敏感区域使用不同的密钥进行加密,通过对不同的用户分发不同的密钥,达到图像分级管理的目的。由于不同的密钥可以产生不同的区域标识,所以在解密恢复的过程中,一个密钥仅仅能够恢复它所对应的加密区域,实现图像的分级管理,从而安全、准确地对图像敏感区域进行加密。实施例三:图7示出了本发明第三实施例提供的图像解码方法的实现流程,详述如下在步骤S701中,解码加密压缩后的图像,获取每一最小编码单元MCU的DCT系数。在具体实施过程中,对于任意一幅使用本发明实施例提供的图像编码方法处理后的加密压缩后的JPEG图像,在需要获取该加密压缩后的JPEG图像对应的原始图像时,首先同样需要先解码加密压缩后的JPEG图像,获取每一最小编码单元MCU对应的DCT系数。在步骤S702中,当判断任一MCU含有预设区域标识时,去除该任一MCU对应的DCT系数中的该预设区域标识,并解密该MCU的去除该预设区域标识后的DCT系数,以更新该任一 MCU的DCT系数为去标识解密后的DCT系数。其中,该MCU为8*8的区域块,该DCT系数为64位DCT系数,且该步骤S702中,去除该任一 MCU对应的DCT系数中的该预设区域标识的步骤具体包括根据预设密钥获取第一范围内的起始搜索位置s及第二范围内的整数X,记该DCT系数 LMC 为[lmcO, Imcl,…,lmc63];判断[lmcs,…,lmc63]中是否出现关于X或者-X的至少2位的序列;当判断结果为是时,将该序列中的X或者-X使用0代替;当判断结果为否时,将[lmcs, - , lmc63]中的系数顺序两两分组形成N个2位的存储单元,获取该预设密钥生成N位的二进制序列,并按照反整数变换方法,将每一存储单元中对应的该二进制序列中的比特值去除。在具体实施过程中,加密图像的解密过程首先需要定位哪些MCU被加密过,然后去掉该MCU中别嵌入的预设区域标识,具体地,根据预设密钥获取第一范围内的起始搜索位置s及第二范围内的整数X,该预设密钥等参数与本发明实施例一中所述的预设密钥相同,同理,该处s、X值也与本发明实施例一中所述的s、X值相同,当判断任一 MCU含有预设区域标识时,记该任一 MCU对应的DCT系数LMC为[lmcO, Imcl,…,lmc63],判断[lmcs, ...,lmc63]中是否出现关于X或者-X的至少2位的序列,当判断结果为是时,说明该MCU对应的相关DCT系数是通过可恢复常数替换方法进行的加密处理,则将该序列中的X或者-X使用0代替,以去除区域标识。而当判断结果为否时,则将[lmcs,…,lmc63]中的系数顺序两两分组形成N个2位的存储单元,N=floor( (63-20+1)/2) =22,其中,floor (x)表示取不大于表达式的最大整数,同时获取该预设密钥生成N位的二进制序列LL,并按照反整数变换方法,将每一存储单元中对应的该二进制序列中的比特值去除。该反整数变换方法的原理为根据本发明实施例一中所述整数变换方法获取,假设经过加密及添加区域标识处理后的某一存储单元的两个系数为(c’ i,c’(i+1)),处理前的该存储单元对应的两个系数分别为(ci,c (i+1)),则存在如下关系c(i+1)+c(i)=c,(i+1)+C,i,d,=c,(i+l)_c,i=d+2*ceil(d/2)+2*b,则得出d=(d’ -LSB(d’))/2_b,其中LSB表示二进制中最低值的比特值,且当d’为偶数时,该b值为0,当当d’为奇数时,该b值为1,因而,在已知d’的情况下,可以唯一地确定b、d值,则根据该以下关系可以得知原始系数或称处理前的该存储单元对应的两个系数若ci Sc (i+1),则d=Ic(i+1)—ciI, C, (i+1)=c(i+1)+ceil(d/2)+b, c’ i=c(i)—ceil(d/2)_b,若ci>c(i+l),则d=Ic(i+1) -ciI, c, (i+1)=c(i+1)-ceil(d/2)-b, cf i=c(i)+ceil(d/2)+b.其中,该步骤S702中,解密该MCU的去除该预设区域标识后的DCT系数的步骤具体包括获取该预设密钥生成的63位的常数序列L ;根据该L中数值为奇数或者偶数的位置,将该去除该预设区域标识后的DCT系数的后63位系数中对应位置处的系数进行符号取反处理。在具体实施过程中,由于DCT系数的符合为正或者负,则根据负负得正的原理,根据该L中数值为奇数或者偶数的位置,将去除该预设区域标识后的DCT系数的后63位系数中对应位置处的系数进行符号取反处理,则可以获取去标识解密后的DCT系数,从而更新该任一含有预设区域标识的MCU的DCT系数为去标识解密后的DCT系数,进而可以获取任一包含敏感区域的MCU对应的去标识解密后的DCT系数。在步骤S703中,将该每一 MCU的DCT系数进行反量化、IDCT处理,生成解密解压缩后的图像。在获取任一包含敏感区域的MCU对应的去标识解密后的DCT系数,以及不包含敏感区域的MCU对应的DCT系数后,对该每一 MCU的DCT系数进行反量化、IDCT (InverseDiscrete Cosine Transform,离散余弦反变换)处理操作,贝U可以获取原始图像或称解密解压缩之后的图像。另外,该图像解码方法还包括当含有预设区域标识的MCU为多个时,使用不同的预设密钥对不同的MCU的DCT系数进行去除区域标识及解密处理。具体地,当对图像的不同区域使用不同的密钥进行加密及添加预设标识之后,此时含有预设区域标识的MCU的个数为多个,则在解密解压缩过程中,需要使用不同的预设密钥对相应使用该密钥加密的MCU的DCT系数进行去除区域标识及解密处理,以支持不同MCU分别密钥授权的功能,使得拥有其中一个密钥仅仅能够恢复其所对应的加密区域的原始内容,必须拥有全部区域的密钥才可获得完整的原始图像,实现了图像加密区域的分级管理。在对图像4 (a)进行分级加密后的图像如图4 (b)所示,如果用户拥有对人脸进行加密的密钥,则利用本发明实施例的图像解压缩及解密方法,仅对该图像4 (b)中的人脸进行解密恢复后的图像如图8 (a)所示;基于图4 (b),如果用户拥有对脸谱和胸章进行加密的密钥,对该脸谱和胸章进行解密恢复后的图像如图8 (b)所示;若用户同时拥有图4 (b)中所有加密区域的密钥,则解密恢复后的图像如图4 (a)。在本发明实施例中,通过判断任一 MCU含有预设区域标识时,说明该任一 MCU为敏感MCU,去除该MCU对应的DCT系数中的预设区域标识,并解密该任一 MCU的去除该预设区域标识后的DCT系数,以更新该任一 MCU的DCT系数为去标识解密后的DCT系数,当判断 任一 MCU不含有预设区域标识时,则直接获取该MCU对应的DCT系数,从而在获取每一 MCU的DCT系数进行反量化、IDCT处理,生成解码后的图像,实现了非敏感区域图像质量不受影响,只有授权用户才可以准确获知加密区域的位置信息、恢复原始图像等,提高了敏感区域加密的安全性,提高了 JPEG图像的解密、解压缩操作准确度。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。实施例四图9示出了本发明第四实施例提供的图像解码装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。该图像解码装置可以应用到所有以DCT为基础的图像解压缩或者视频解压缩格式中,也可以用于具有图像解密、解压缩处理功能等的图像编辑器中,可以是运行于这些图像编辑器内的软件单元,也可以作为独立的挂件集成到这些图像编辑器中,该图像解码装置包括解码单元91、标识去除及解密单元92以及反量化及逆变换单元93,其中解码单元91,用于解码加密压缩后的JPEG图像,获取每一最小编码单元MCU的DCT系数。在本发明实施例中,对于任意一幅使用本发明实施例提供的图像编码方法处理后的加密压缩后的JPEG图像,在需要获取该加密压缩后的JPEG图像对应的原始图像时,首先同样需要先解码加密压缩后的JPEG图像,获取每一最小编码单元MCU对应的DCT系数。标识去除及解密单元92,用于当判断任一 MCU含有预设区域标识时,去除该任一MCU对应的DCT系数中的该预设区域标识,并解密该MCU的去除该预设区域标识后的DCT系数,以更新该任一 MCU的DCT系数为去标识解密后的DCT系数。其中,该MCU为8*8的区域块,该DCT系数为64位DCT系数,该标识去除及解密单元92具体包括参数生成单元921,用于根据预设密钥获取第一范围内的起始搜索位置s及第二范围内的整数X,记该DCT系数LMC为[lmcO, Imcl, ...,lmc63];
判断单元922,用于判断[lmcs,…,lmc63]中是否出现关于X或者-X的至少2位的序列;第一标识去除单元923,用于当判断结果为是时,将该序列中的X或者-X使用0代替;第二标识去除单元924,用于当判断结果为否时,将[lmcs,…,lmc63]中的系数顺序两两分组形成N个2位的存储单元,获取该预设密钥生成N位的二进制序列,并按照反整数变换方法,将每一存储单元中对应的该二进制序列中的比特值去除;常数序列生成单元925,用于获取该预设密钥生成的63位的常数序列L ;以及解密单元926,用于根据该L中数值为奇数或者偶数的位置,将该去除该预设区域标识后的DCT系数的后63位系数中对应位置处的系数进行符号取反处理。在本发明实施例中,利用该参数生成单元921根据预设密钥获取第一范围内的起 始搜索位置s及第二范围内的整数X,该预设密钥等参数与本发明实施例一中所述的预设密钥相同,同理,该处s、X值也与本发明实施例一中所述的s、X值相同,利用判断单元922判断[lmcs,…,lmc63]中是否出现关于X或者-X的至少2位的序列,是则通过第一标识去除单元923将该序列中的X或者-X使用0代替,否则通过第二标识去除单元924将每一存储单元中对应的该二进制序列中的比特值去除,最终实现了去除该任一 MCU或称区域块对应的DCT系数中的该预设区域标识。接着继续结合常数序列生成单元925及解密单元926,根据常数序列L中数值为奇数或者偶数的位置,将去除该预设区域标识后的DCT系数的后63位系数中对应位置处的系数进行符号取反处理,获取去标识解密后的DCT系数,从而更新该任一含有预设区域标识的MCU的DCT系数为去标识解密后的DCT系数,达到了准确地对任一包含敏感区域的MCU的DCT系数进行去标识、解密的目的。反量化及逆变换单元93,用于将该每一 MCU的DCT系数进行反量化、IDCT处理,生成解密解压缩后的图像。另外,该图像解码装置还包括分级去标识及解密单元,用于当含有预设区域标识的MCU为多个时,使用不同的预设密钥对不同的MCU的DCT系数进行去除区域标识及解密处理。在本发明实施例中,当对图像的不同区域使用不同的密钥进行加密及添加预设标识之后,此时含有预设区域标识的MCU的个数为多个,则在解密解压缩过程中,需要分级去标识及解密单元使用不同的预设密钥对相应使用该密钥加密的MCU的DCT系数进行去除区域标识及解密处理,以支持不同MCU分别密钥授权的功能。在本发明实施例中,通过包括解码单元91、标识去除及解密单元92以及反量化及逆变换单元93的图像解码装置,使得在对解码加密压缩后的JPEG图像进行解密解压缩时,相对于现有技术,具有对加密区域的解密更准确、解密后的图像的质量更高等的优点。本发明实施例提供了一种图像编码方法,通过对包含敏感区域的任一 MCU的量化DCT系数进行加密,并添加预设区域标识至加密后的该量化DCT系数中,以更新该任一 MCU的量化DCT系数为标识加密后的量化DCT系数,进而将该每一 MCU的量化DCT系数进行编码压缩,获取加密压缩后的JPEG图像,解决了由于利用现有技术对图像编码后,存在非敏感区域的图像质量受到影响,加密后的图像压缩比发生较大变化,加密安全性不高的问题,使得在保持较高的压缩比及非敏感区域质量的前提下,可以对图像中任意区域或者整个图像进行加密处理,且加密过后的图像可以在任意通用的JPEG图像浏览器中观看,没有授权用户无法恢复或者查看敏感区域的原始图像,具有较高的加密安全性及用户体验效果。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的 保护范围之内。
权利要求
1.一种图像编码方法,其特征在于,所述方法包括下述步骤 将原始图像分解成多个最小编码单元MCU ; 根据DCT变换及量化算法,获取每一 MCU的量化DCT系数; 当判断任一 MCU包含敏感区域时,将所述任一 MCU的量化DCT系数进行加密,并添加预设区域标识至加密后的所述量化DCT系数中,以更新所述任一 MCU的量化DCT系数为标识加密后的量化DCT系数; 将所述每一 MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像。
2.如权利要求I所述的方法,其特征在于,所述MCU为8*8的区域块,所述量化DCT系数为64位量化DCT系数,所述将所述任一 MCU的量化DCT系数进行加密具体包括 使用预设密钥生成63位的常数序列L ; 根据所述L中数值为奇数或者偶数的位置,将所述量化DCT系数的后63位系数中所述位置处的系数进行符号取反处理。
3.如权利要求2所述的方法,其特征在于,所述添加预设区域标识至加密后的所述量化DCT系数中具体包括 使用所述预设密钥生成第一范围内的起始搜索位置S、第二范围内的整数X及第三范围内的正整数k,记加密后的所述量化DCT系数MC为[cO,cl,…,c63]; 判断[cs, c63]中是否出现k个值连续为O的序列; 当判断结果为是时,将第一次出现所述k个值连续为O的序列中的所有值使用X或者-X代替; 当判断结果为否时,将[cs,…,c63]中的系数顺序两两分组形成N个2位的存储单元,使用所述预设密钥生成N位的二进制序列,并按照整数变换方法,将所述二进制序列中的 比特值存入对应的一个存储单元中。
4.如权利要求I所述的方法,其特征在于,所述方法还包括 当包含敏感区域的MCU为多个时,使用不同的预设密钥对不同的MCU的量化DCT系数进行加密及添加区域标识处理。
5.一种图像编码装置,其特征在于,所述装置包括 MCU分解单元,用于将原始图像分解成多个最小编码单元MCU ; 变换及量化单元,用于根据DCT变换及量化算法,获取每一 MCU的量化DCT系数; 加密及标识单元,用于当判断任一 MCU包含敏感区域时,将所述任一 MCU的量化DCT系数进行加密,并添加预设区域标识至加密后的所述量化DCT系数中,以更新所述任一 MCU的量化DCT系数为标识加密后的量化DCT系数;以及 编码单元,用于将所述每一 MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像。
6.如权利要求5所述的装置,其特征在于,所述MCU为8*8的区域块,所述量化DCT系数为64位量化DCT系数,所述加密及标识单元具体包括 常数序列生成单元,用于使用预设密钥生成63位的常数序列L ; 加密子单元,用于根据所述L中数值为奇数或者偶数的位置,将所述量化DCT系数的后63位系数中所述位置处的系数进行符号取反处理; 参数生成单元,用于使用所述预设密钥生成第一范围内的起始搜索位置S、第二范围内的整数X及第三范围内的正整数k,记加密后的所述量化DCT系数MC为[cO,cl,…,C63]; 判断单元,用于判断[cs,…,c63]中是否出现k个值连续为O的序列; 第一标识添加子单元,用于当所述判断单元输出结果为是时,将第一次出现所述k个值连续为O的序列中的所有值使用X或者-X代替;以及 第二标识添加子单元,用于当所述判断单元输出结果为否时,将[cs,…,c63]中的系数顺序两两分组形成N个2位的存储单元,使用所述预设密钥生成N位的二进制序列,并按照整数变换方法,将所述二进制序列中的比特值存入对应的一个存储单元中。
7.如权利要求5所述的装置,其特征在于,所述装置还包括 分级加密及标识单元,用于当包含敏感区域的MCU为多个时,使用不同的预设密钥对不同的MCU的量化DCT系数进行加密及添加区域标识处理。
8.一种基于权利要求I所述图像编码方法的图像解码方法,其特征在于,所述方法包括下述步骤 解码加密压缩后的图像,获取每一最小编码单元MCU的DCT系数; 当判断任一 MCU含有预设区域标识时,去除所述任一 MCU对应的DCT系数中的所述预设区域标识,并解密所述MCU的去除所述预设区域标识后的DCT系数,以更新所述任一 MCU的DCT系数为去标识解密后的DCT系数; 将所述每一 MCU的DCT系数进行反量化、IDCT处理,生成解密解压缩后的图像。
9.如权利要求8所述的方法,其特征在于,所述MCU为8*8的区域块,所述DCT系数为64位DCT系数,所述去除所述任一 MCU对应的DCT系数中的所述预设区域标识的步骤具体包括 根据预设密钥获取第一范围内的起始搜索位置s及第二范围内的整数X,记所述DCT系数 LMC 为[lmcO, Imcl,…,lmc63]; 判断[lmcs,…,lmc63]中是否出现关于X或者-X的至少2位的序列; 当判断结果为是时,将所述序列中的X或者-X使用0代替; 当判断结果为否时,将[lmcs,…,lmc63]中的系数顺序两两分组形成N个2位的存储单元,获取所述预设密钥生成N位的二进制序列,并按照反整数变换方法,将每一存储单元中对应的所述二进制序列中的比特值去除。
10.如权利要求9所述的方法,其特征在于,所述解密所述MCU的去除所述预设区域标识后的DCT系数的步骤具体包括 获取所述预设密钥生成的63位的常数序列L ; 根据所述L中数值为奇数或者偶数的位置,将去除所述预设区域标识后的DCT系数的后63位系数中对应位置处的系数进行符号取反处理。
11.如权利要求8所述的方法,其特征在于,所述方法还包括 当含有预设区域标识的MCU为多个时,使用不同的预设密钥对不同的MCU的DCT系数进行去除区域标识及解密处理。
12.—种图像解码装置,其特征在于,所述装置包括解码单元,用于解码加密压缩后的图像,获取每一最小编码单元MCU的DCT系数;标识去除及解密单元,用于当判断任一 MCU含有预设区域标识时,去除所述任一 MCU对应的DCT系数中的所述预设区域标识,并解密所述MCU的去除所述预设区域标识后的DCT系数,以更新所述任一 MCU的DCT系数为去标识解密后的DCT系数;以及 反量化及逆变换单元,用于将所述每一 MCU的DCT系数进行反量化、IDCT处理,获取解密解压缩后的图像。
13.如权利要求12所述的装置,其特征在于,所述MCU为8*8的区域块,所述DCT系数为64位DCT系数,所述标识去除及解密单元具体包括 参数生成单元,用于根据预设密钥获取第一范围内的起始搜索位置s及第二范围内的整数 X,记所述 DCT 系数 LMC 为[lmcO, Imcl, ...,lmc63]; 判断单元,用于判断[lmcs,…,lmc63]中是否出现关于X或者-X的至少2位的序列;第一标识去除单元,用于当所述判断单元输出结果为是时,将所述序列中的X或者-X使用0代替; 第二标识去除单元,用于当所述判断单元输出结果为否时,将[lmcs,…,lmc63]中的系数顺序两两分组形成N个2位的存储单元,获取所述预设密钥生成N位的二进制序列,并按照反整数变换方法,将每一存储单元中对应的所述二进制序列中的比特值去除; 常数序列生成单元,用于获取所述预设密钥生成的63位的常数序列L ;以及解密单元,用于根据所述L中数值为奇数或者偶数的位置,将去除所述预设区域标识后的DCT系数的后63位系数中对应位置处的系数进行符号取反处理。
14.如权利要求12所述的装置,其特征在于,所述装置还包括 分级去标识及解密单元,用于当含有预设区域标识的MCU为多个时,使用不同的预设密钥对不同的MCU的DCT系数进行去除区域标识及解密处理。
全文摘要
本发明适用于图像处理技术领域,提供了一种图像编码方法、图像解码方法及装置,所述方法包括下述步骤将原始图像分解成多个最小编码单元MCU;根据DCT变换及量化算法,获取每一MCU的量化DCT系数;当判断任一MCU包含敏感区域时,将该MCU的量化DCT系数进行加密,添加预设区域标识至加密后的该量化DCT系数中,以更新该任一MCU的量化DCT系数为标识加密后的量化DCT系数;将该每一MCU的量化DCT系数进行编码压缩,生成加密压缩后的图像。本发明仅对包含敏感区域的MCU量化DCT系数进行加密及添加区域标识,使得非敏感区域的图像质量不会受到影响,加密后的图像能够保持较高的压缩比,加密安全性也得到提高。
文档编号H04N21/44GK102724552SQ20121017257
公开日2012年10月10日 申请日期2012年5月30日 优先权日2012年5月30日
发明者廉士国 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1