首页> 中国专利> 一种实时截断码流的JPEG2000编码方法及其实施系统

一种实时截断码流的JPEG2000编码方法及其实施系统

摘要

本发明公开了一种实时截断码流的JPEG2000编码方法,根据小波子带重要性和小波子带的通道数,给每个小波子带分配一定数量的字节数;小波子带内部,根据每个码块的通道数,对每个码块分配相应的字节数;编码过程中,当每个码块累计编码字节大于码块预分配字节数或者码块编码完毕时,停止当前码块编码,计算每个通道的率失真斜率,并累计总的压缩码流;每个小波子带编码完毕后,更新小波子带分配字节数,当累计总的压缩码流大于目标位流时,若存在小波子带未编码,则更改分配策略,重新为未编码小波子带分配一定的字节数,继续编码至所有码块编码完毕,利用最小斜率抛弃法寻找最佳门限,完成编码。提高了编码系统的实时性,减少不必要的存储和计算消耗。

著录项

  • 公开/公告号CN103152568A

    专利类型发明专利

  • 公开/公告日2013-06-12

    原文格式PDF

  • 申请/专利权人 西安理工大学;

    申请/专利号CN201310062111.0

  • 发明设计人 乔世杰;

    申请日2013-02-27

  • 分类号H04N7/26(20060101);

  • 代理机构61214 西安弘理专利事务所;

  • 代理人李娜

  • 地址 710048 陕西省西安市金花南路5号

  • 入库时间 2024-02-19 19:33:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-02-24

    授权

    授权

  • 2013-07-17

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20130227

    实质审查的生效

  • 2013-06-12

    公开

    公开

说明书

技术领域

本发明涉及VLSI设计技术领域,具体涉及一种实时截断码流的 JPEG2000编码方法,本发明还涉及实施该方法的系统。

背景技术

JPEG2000首先对原始图像进行预处理,然后对图像进行小波变换和量 化,量化后的小波系数进入EBCOT编码阶段。EBCOT编码包括Tier1编码 和Tier2编码两部分。Tier1编码对量化后的小波系数按码块进行位平面编码 和MQ算术编码,然后采用压缩后率失真优化算法PCRD得到最优截断门限, 将小于门限的压缩码字抛弃,将大于门限所对应的压缩码字经Tier2编码后 形成压缩码流。

JPEG2000压缩后率失真优化算法PCRD可以描述为在一定的码率限制 下,寻找优化的各码块截断点集合,使重构图像的总体失真最小的问题。

PCRD算法能在满足目标码率的情况下最优地分配码率,使总失真最小, 它实现了理论上最佳的率失真优化分配,但需要在整个Tier1编码完成后才 能进行最优分层截断。Tier1编码部分占整个编码的时间45%到60%,且在 低码率时,大多数已编码的码流会被抛弃,这大大增加了系统不必要的计算 量和储存损耗,使系统的实时性降低。因此,有必要设计一种实时截断码流 的JPEG2000编码方法及装置。

发明内容

本发明的目的是在于提供一种实时截断码流的JPEG2000编码方法,以提 高编码系统的实时性,减少不必要的存储和计算消耗。

本发明的技术方案为一种实时截断码流的JPEG2000编码方法,根据小 波子带重要性和小波子带的通道数,给每一个小波子带分配一定数量的字节 数;而在小波子带内部,则根据每个码块的通道数,对每个码块分配相应的 字节数;在编码过程中,当每个码块累计编码字节大于码块预分配字节数或 者码块编码完毕时,停止当前码块编码,计算每个通道的率失真斜率,并累 计总的压缩码流;在每个小波子带编码完毕后,更新小波子带分配字节数, 当累计总的压缩码流大于目标位流时,如果存在小波子带未编码,则更改分 配策略,重新为未编码小波子带分配一定的字节数,继续编码直到所有码块 编码完毕,并利用最小斜率抛弃法寻找最佳门限,完成编码。

该方法具体按照以下步骤实施:

1)计算小波加权系数、小波子带的总通道数以及总编码通道数

计算小波子带j的小波加权系数ωj

ωj=ωjΔ2

其中是小波滤波器的L2范数,Δ为量化步长;

计算小波子带j的总通道数Pj

Pj=ΣPji

其中i表示小波子带内的码块Bi的索引号,代表码块Bi的通道数,且 其中numbpsi为码块Bi的有效位平面数;

计算总编码通道数Ptotal

Ptotal=∑Pj

初始化字节调整系数和编码累加总字节数:

设shift_counter为字节调整系数,令字节调整系数shift_counter为0,设 enc_sumR为编码累加总字节数,令enc_sumR=0;

2)分配编码字节数

设Rallot为分配编码字节数,令Rallot=Rtarget/(1<<shift_counter),其中Rtarget为 目标字节数;

3)根据小波加权系数和小波子带通道数,为每个小波子带分配一定的 字节数

设为小波子带j分配字数为

为小波子带内每个码块根据其通道数分配一定的字节数,对于码块其分配的字节为

其中为码块通道数,Pj为小波子带j的总通道数,r为小波变换级 数,j为当前小波子带的索引号;

设sub_sumRj为当前小波子带累加字节数,初始化sub_sumRj为0;

4)对于小波子带j内的码块进行熵编码

设为码块的编码累加字节数,当大于或当前码块全部通道 编码完毕时,停止当前码块编码,

计算sub_sumRj与的和,并将结果赋给sub_sumRj来更新当前小波 子带累加字节数,

计算enc_sumR与的和,并将结果赋给enc_sumR来更新当前编码累 加总字节数,

根据率失真斜率计算公式计算当前已编码通道的编码字节增量ΔR和编 码失真量ΔD,从而得到当前已编码通道的率失真斜率S;

5)调整已编码字节数并抛弃最小斜率

如果编码累加总字节数enc_sumR大于等于目标字节数Rtarget,则查找4) 中计算出的已编码通道率失真斜率最小值,将编码累计总字节数enc_sumR减 去当前最小斜率通道所对应的编码码流,并抛弃此最小斜率,当编码累加总 字节数enc_sumR小于或等于目标字节数Rtarget,时,执行步骤6),否则继续 执行5);

6)更新码块

如果当前小波子带j内的所有码块编码完毕,则进执行8);否则返回4), 按照光栅扫描顺序进行小波子带j内下一个码块编码;

7)更新分配字节数

计算分配编码字节数Rallot和当前小波子带累加字节数sub_sumRj的差,并 将结果赋给Rallot来更新分配编码字节数,如果Rallot大于等于0,则返回4), 按照从低频到高频的扫描顺序,进行下一个小波子带编码;否则,将字节调 整系数shift_counter加1,返回2),重新计算分配编码字节数;

8)如果所有的小波子带编码完毕,则停止编码,将最小失真斜率作为 最佳门限截断已编码码流,完成图像的JPEG2000编码;如果还有未编码的 小波子带,则返回7)。

本发明的另一目的是提供一种实施上述方法的系统,包括总控制器,总 控制器分别与图像预处理模块、小波变换及量化模块、Tier1编码模块、Tier2 编码控制器模块和码块字节预控制器连接,图像预处理模块还与小波变换及 量化模块、小波系数存储模块、码块数据缓存模块和Tier1编码模块依次连 接,小波变换及量化模块还与小波子带信息模块、码块字节预分配模块、码 块字节预控制器和编码字节统计模块依次连接,Tier1编码模块还与Tier2编 码控制器模块、码流存储模块和编码字节统计模块连接,Tier2编码控制器 模块还与码流存储模块、最小率失真斜率计算MSD模块和Tier2编码模块连 接。

其中Tier1编码模块包括与总控制器和码块数据缓存模块连接的Tier1编 码控制器模块,Tier1编码控制器模块分别与位平面编码模块、异步FIFO模 块和MQ算术编码模块连接,位平面编码模块还与码块数据缓存模块连接, 所述位平面编码模块、异步FIFO模块和MQ算术编码模块依次连接,位平 面编码模块还与失真量累计模块和RD斜率计算模块依次连接,RD斜率计 算模块还与MQ算术编码模块和Tier2编码控制器模块连接,MQ算术编码 模块还与码流存储模块和编码字节统计模块连接。

本发明的有益效果是,根据小波子带的加权系数、小波子带内的码块数 以及每个码块的编码通道数,给各个码块预先分配一定的编码字节数,在 Tier1编码过程中利用最小斜率抛弃法得到码流的最佳截断点,并而实时完 成JPEG2000截断编码;并且编码系统根据可以在编码过程中实时截断码流, 并生成JPEG2000的压缩文件,提高了编码速度,降低了存储损耗。

附图说明

图1为本发明中实施实时截断码流的JPEG2000编码方法的系统结构图。

图中,1.总控制器,2.图像预处理模块,3.小波变换及量化模块,4. Tier1编码模块,41.Tier1编码控制器模块,42.位平面编码模块,43.异步 FIFO模块,44.MQ算术编码模块,45.失真量累计模块,46.RD斜率计算 模块,5.Tier2编码控制器模块,6.小波系数存储模块,7.码块数据缓存模 块,8.小波子带信息模块,9.码块字节预分配模块,10.码块字节预控制器, 11.编码字节统计模块,12.码流存储模块,13.最小率失真斜率计算MSD 模块,14.Tier2编码模块。

具体实施方式

码块的编码通道数和码块所在小波子带的重要性是决定图像质量的重要 因素。编码通道所在的子带越重要,对图像质量影响越大。同时,如果码块 被包含的编码通道数越多,该码块对图像质量影响越大。

基于以上认识,本发明提供一种实时截断码流的JPEG2000编码方法,根 据小波子带重要性和小波子带的通道数,给每一个小波子带分配一定数量的 字节数。而在小波子带内部,则根据每个码块的通道数,对每个码块分配相 应的字节数。在编码过程中,当每个码块累计编码字节大于码块预分配字节 数或者码块编码完毕时,停止当前码块编码,计算每个通道的率失真斜率, 并累计总的压缩码流。在每个小波子带编码完毕后,更新小波子带分配字节 数,当累计总的压缩码流大于目标位流时,如果存在小波子带未编码,则更 改分配策略,重新为未编码小波子带分配一定的字节数,继续编码直到所有 码块编码完毕,并利用最小斜率抛弃法寻找最佳门限。

在JPEG2000中,由于每个码块独立编码,而且采用的小波变换近似于 正交。因此,可以认为重构图像的失真是多个码块编码失真的累加,即 其中D是重构图像的失真,ni是码块Bi压缩码流的截断点,是 码块Bi的压缩码流在截断点ni处被截断所引起的图像失真。整个图像压缩后 的码流长度R可表示为其中为码块Bi在截断点ni截断时的码流 长度。

设Rmax为目标码流长度,所谓率失真优化,就是在满足R≤Rmax的条件下, 使得重构图像失真D最小,即:

从数学角度上看,率失真优化可等价于计算条件最小极值问题,可用拉 各朗日乘数法来解决,通过调节参数λ,在满足目标码率R=Rmax的条件下, 找到适当的ni点集合{ni},使得的值达到最小,从而将率失真优 化问题转化为:

在实际处理时,可以利用二分法来调节λ值,在整个压缩码流长度R逼 近目标码流长度Rmax的条件下,使得达到最小,最后选择其中最大 的λ值,与λ值相对应截断点点集合{ni}便是所需的截断点集合。在JPEG2000 中,码块的候选截断点集合就是码块的各个编码通道。码流在截断点ni处的 率失真斜率的计算公式为

Sini=ΔDΔR=Dini-Dini-1Rini-1-Rini

其中ΔD为失真增量,ΔR为编码字节增量。

在计算率失真斜率时,需要知道每个编码通道的失真。定义 其中vi[m,n]是码块Bi在[m,n]位置处小 波量化系数的二进制表示,2-pvi[m,n]表示小波量化系数在第p个位平面截取 的结果,表示在第p-1个位平面上截取的结果。重要性传播通道 (SPP)和清除通道(CUP)编码操作所减少的失真可以表示为:

22pωiΔi2{vip[m,n]2-(vip[m,n]-1.5)2}

其中是小波滤波器的L2范数,Δ为量化步长。而幅度细化通道(MRP)编 码操作所引起的失真减小量可以表示为:

22pωiΔi2{(vip[m,n]-1)2-(vip[m,n]-k)2}

如果当前编码的比特为0,则k=0.5,否则k=1.5。

1.具体按照以下步骤实施:

1)计算小波加权系数、小波子带的总通道数以及总编码通道数

计算小波子带j的小波加权系数ωj

ωj=ωjΔ2

其中是小波滤波器的L2范数,Δ为量化步长;

计算小波子带j的总通道数Pj

Pj=ΣPji

其中i表示小波子带内的码块Bi的索引号,代表码块Bi的通道数,且 其中numbpsi为码块Bi的有效位平面数;

计算总编码通道数Ptotal

Ptotal=∑Pj

初始化字节调整系数和编码累加总字节数:

设shift_counter为字节调整系数,令字节调整系数shift_counter为0,设 enc_sumR为编码累加总字节数,令enc_sumR=0;

2)分配编码字节数

设Rallot为分配编码字节数,令Rallot=Rtarget/(1<<shift_counter),其中Rtarget为 目标字节数;

3)根据小波加权系数和小波子带通道数,为每个小波子带分配一定的 字节数

设为小波子带j分配字数为

为小波子带内每个码块根据其通道数分配一定的字节数,对于码块其分配的字节为

其中为码块通道数,Pj为小波子带j的总通道数,r为小波变换级 数,j为当前小波子带的索引号;

设sub_sumRj为当前小波子带累加字节数,初始化sub_sumRj为0;

4)对于小波子带j内的码块进行熵编码

设为码块的编码累加字节数,当大于或当前码块全部通道 编码完毕时,停止当前码块编码,

计算sub_sumRj与的和,并将结果赋给sub_sumRj来更新当前小波 子带累加字节数,

计算enc_sumR与的和,并将结果赋给enc_sumR来更新当前编码累 加总字节数,

根据率失真斜率计算公式计算当前已编码通道的编码字节增量ΔR和编 码失真量ΔD,从而得到当前已编码通道的率失真斜率S;

5)调整已编码字节数并抛弃最小斜率

如果编码累加总字节数enc_sumR大于等于目标字节数Rtarget,则查找4) 中计算出的已编码通道率失真斜率最小值,将编码累计总字节数enc_sumR减 去当前最小斜率通道所对应的编码码流,并抛弃此最小斜率,当编码累加总 字节数enc_sumR小于或等于目标字节数Rtarget,时,执行步骤6),否则继续 执行5);

6)更新码块

如果当前小波子带j内的所有码块编码完毕,则进执行8);否则返回4), 按照光栅扫描顺序进行小波子带j内下一个码块编码;

7)更新分配字节数

计算分配编码字节数Rallot和当前小波子带累加字节数sub_sumRj的差,并 将结果赋给Rallot来更新分配编码字节数,如果Rallot大于等于0,则返回4), 按照从低频到高频的扫描顺序,进行下一个小波子带编码;否则,将字节调 整系数shift_counter加1,返回2),重新计算分配编码字节数;

8)如果所有的小波子带编码完毕,则停止编码,将最小失真斜率作为 最佳门限截断已编码码流,完成图像的JPEG2000编码;如果还有未编码的 小波子带,则返回7)。

根据提出的实时截断码流的JPEG2000码率控制方法,本发明提出一种实 施上述方法的系统,如图1所示,包括总控制器1、图像预处理模块2、小 波变换及量化模块3、小波系数存储模块6、码块数据缓存模块7、小波子带 信息模块8、Tier1编码模块4、码块字节预分配模块9、码块字节预控制器 10、编码字节统计模块11、码流存储模块12、最小率失真斜率计算MSD模 块13、Tier2编码控制器模块5以及Tier2编码模块14。

总控制器1分别与图像预处理模块2、小波变换及量化模块3、Tier1编 码模块4、Tier2编码控制器模块5和码块字节预控制器10连接,图像预处 理模块2还与小波变换及量化模块3、小波系数存储模块6、码块数据缓存 模块7和Tier1编码模块4依次连接,小波变换及量化模块3还与小波子带 信息模块8、码块字节预分配模块9、码块字节预控制器10和编码字节统计 模块11依次连接,所述Tier1编码模块4还与Tier2编码控制器模块5、码 流存储模块12和编码字节统计模块11连接,所述Tier2编码控制器模块5 还与码流存储模块12、最小率失真斜率计算MSD模块13和Tier2编码模块 14连接。

其中Tier1编码模块4由Tier1编码控制器模块41、位平面编码模块42、 异步FIFO模块43、MQ算术编码模块44、失真量累计模块45及RD斜率 计算模块46组成。

Tier1编码模块4包括与总控制器1和码块数据缓存模块7连接的Tier1 编码控制器模块41,Tier1编码控制器模块41分别与位平面编码模块42、 异步FIFO模块43和MQ算术编码模块44连接,位平面编码模块42还与码 块数据缓存模块7连接,所述位平面编码模块42、异步FIFO模块43和MQ 算术编码模块44依次连接,位平面编码模块42还与失真量累计模块45和 RD斜率计算模块46依次连接,RD斜率计算模块46还与MQ算术编码模 块44和Tier2编码控制器模块5连接,MQ算术编码模块44还与码流存储 模块12和编码字节统计模块11连接。

总控制器1是一个全局控制模块,它协调图像预处理模块2、小波变换及 量化模块3、Tier1编码控制器模块41、码块字节预控制器10及Tier2编码 控制器模块5协同工作。

该系统的工作原理为,

首先,在总控制器1的控制下,图像进入图像预处理模块2,图像预处 理模块2完成图像的直流变换、颜色分量变换及图像填充块分割等任务。图 像预处理完成后,总控制器1启动小波变换及量化模块3,完成图像填充块 的多级二维小波变换和量化任务,并将变换和量化后的小波系数存储到小波 系数存储模块6中。在存储小波系数的过程中计算步骤1)中小波子带的加 权系数ωj、小波子带的总通道数及总编码通道数,并将这些信息连同波变换 级数信息一并存储在小波子带信息模块8中。

接着总控制器1启动码块字节预控制器10和Tier1编码模块4中的Tier1 编码控制器模块41开始编码过程。在Tier1编码控制器模块41的控制下, 从小波系数存储模块6中读取码块数据到码块数据缓存模块7中,并提供给 Tier1编码模块4中的位平面编码器42进行位平面编码。同时码块字节预分 配模块9在码块字节预控制器10控制下将步骤1)中的字节调整系数和编码 累加总字节数初始化为0,并根据步骤2)中的公式分配编码字节数。与此 同时,码块字节预分配模块9根据从小波子带信息模块8中读取的小波子带 加权系数ωj、小波子带的总通道数、总编码通道数以及小波变换级数等信息, 根据步骤3)中的公式为小波子带和小波子带内的码块分配相应的字节数, 并初始化小波子带累加字节数为0。

完成上述步骤后,码块字节预控制器10通知总控制器1开始步骤4)中 的熵编码过程。在Tier1编码控制器模块41的控制下,位平面编码模块42 对码块的每个位平面进行重要性传播通道(SPP)、幅度细化通道(MRP)和 清除通道(CUP)编码,将编码结果写入异步FIFO模块43中。同时,MQ 算术编码模块44对异步FIFO模块43中的上下文进行编码。在编码的过程 中编码字节统计模块11统计步骤4)中的当前小波子带累加字节数、码块累 加字节数和当前编码累加字节数。失真量累计模块45统计当前已编码通道 的失真量ΔD,MQ算术编码模块44计算当前已编码通道的编码字节增量ΔR, RD斜率计算模块46根据ΔD和ΔR计算出当前已编码通道的率失真斜率S。 当码块的累加字节数大于码块分配字节数或者当前码块全部通道编码完毕 时,停止当前码块编码。码块字节预控制器10根据步骤7)判断分配编码字 节数和当前小波子带累加字节数的差是否大于等于0,如果满足大于等于0 的条件,则按照从低频到高频的扫描顺序,进行下一小波子带的编码,否则 更新分配编码字节数,并将更新值发给码块字节预分配模块9。如果当前小 波子带内的还有未编码的编码,则按照光栅扫描顺序编码下一个码块,即步 骤6),否则判断是否所有子带都已经编码完毕,则停止编码,即步骤8)。

在Tier1编码过程中,MQ算术编码模块44输出的码流存储在码流存储 模块12中,最小率失真斜率计算MSD模块13在Tier2编码控制器模块5 的控制下,根据编码累加总字节数和目标字节数,以及RD斜率计算模块46 输出的率失真斜率S,完成步骤5)中编码字节数调整和最小斜率抛弃功能, 寻找码流的最优截断点。将最小率失真斜率作为最佳门限截断码流,并将码流 传给Tier2编码模块14,Tier2编码模块14则从码流存储模块12中读取相 应的截断码流,并以包的形式将码流组织成JPEG2000的压缩文件JPC或者 JP2。

本发明提出的编码方法,根据小波子带的加权系数、小波子带内的码块 数以及每个码块的编码通道数,给各个码块预先分配一定的编码字节数,在 Tier1编码过程中利用最小斜率抛弃法得到码流的最佳截断点,并而实时完 成JPEG2000截断编码。根据提出的编码方法提出了一种实时截断码流的 JPEG2000编码系统,该系统根据可以在编码过程中实时截断码流,并生成 JPEG2000的压缩文件,提高了编码速度,降低了存储损耗,在图像编码方 面有广阔的应用前景。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号