CN107105245B - 基于tms320c6678芯片的高速jpeg图像压缩方法 - Google Patents

基于tms320c6678芯片的高速jpeg图像压缩方法 Download PDF

Info

Publication number
CN107105245B
CN107105245B CN201710384714.0A CN201710384714A CN107105245B CN 107105245 B CN107105245 B CN 107105245B CN 201710384714 A CN201710384714 A CN 201710384714A CN 107105245 B CN107105245 B CN 107105245B
Authority
CN
China
Prior art keywords
block
sub
coefficient
image
compressed
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.)
Active
Application number
CN201710384714.0A
Other languages
English (en)
Other versions
CN107105245A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201710384714.0A priority Critical patent/CN107105245B/zh
Publication of CN107105245A publication Critical patent/CN107105245A/zh
Application granted granted Critical
Publication of CN107105245B publication Critical patent/CN107105245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明属于图像处理技术领域,公开了基于TMS320C6678芯片的高速JPEG图像压缩方法,该方法包括如下步骤:读取待压缩图像;将待压缩图像的数据沿距离向连续不重叠地分割为8段数据块,令TMS320C6678芯片的8个处理核同时对各自所指向的数据块进行扫描,完成图像分块;对各子块进行DCT变换;确定各子块对应的校正量化表,并利用校正量化表进行量化;对量化后的各子块进行Huffman熵编码;根据JPEG标准以及待压缩图像格式确定标记码,将标记码和各子块的编码后数据组成位比特流。本发明能够降低数据冗余度,减少图像压缩的处理时间,实现高速JPEG图像实时压缩。

Description

基于TMS320C6678芯片的高速JPEG图像压缩方法
技术领域
本发明涉及图像处理技术领域,尤其涉及基于TMS320C6678芯片的高速JEPG(Joint Photographic Expert Group,联合图像专家组)图像压缩方法,可应用于对大规模雷达回波数据的高速JPEG图像压缩处理中。
背景技术
高效性和实时性是计算机处理图像信息的两个主要问题,因此如何在保证图像质量的前提下对图像进行快速存储和传输就成为了问题的关键。图像压缩技术应运而生,图像压缩技术通过去除图像数据中存在的冗余信息来减小图像表示的数据量,从而用更加高效的格式存储和传输图像数据,以满足图像处理的高效性和实时性。
现有图像压缩技术中,对于静态图像的压缩,多采用JEPG标准算法。JEPG标准算法先将整体图像分成N×N的像素块,然后对N×N的像素块逐一进行DCT变换,之后对每个像素块的DCT系数进行量化,进而对量化后的DCT系数进行熵编码,并在编码结束后将编码得到的数据和图像的各种标记码组成压缩数据流,即完成了对图像的压缩。
发明人发现,现有技术至少存在如下问题:
(1)在JPEG标准算法中,需要对各像素块逐一进行DCT变换,而DCT变换包含复杂的乘法、加法等四则运算以及多重循环的嵌套,因此DCT变换会耗费较多时间,使得处理时间变长,无法满足图像压缩的实时性要求。
(2)JPEG标准算法中使用JPEG标准推荐的量化表,统一对各像素块的DCT系数进行量化。在该量化表中低频分量对应的量化步长较小、高频分量对应的量化步长较大,以实现对图像低频部分的精准量化、高频部分的粗量化,这与人的视觉及图像特征是相符的。
但是图像的块与块之间是存在差异性的,如果使用现有的标准量化表对各子块统一进行量化会存在以下问题:有的子块细节较多,高频分量多、低频分量少,若按照现有的标准量化表,对高频分量采用较大的量化步长进行量化,就会使得图像高频分量的损失较大,致使压缩质量下降;有的子块细节较少,低频分量少、高频分量多,若按照现有的标准量化表,对低频分量采用较小的量化步长进行量化,即会使得数据冗余度大,导致压缩效率降低。
发明内容
针对上述现有技术的不足,本发明提供基于TMS320C6678芯片的高速JPEG图像压缩方法,能够降低数据冗余度,减少图像压缩的处理时间,实现高速JPEG图像实时压缩。
为达到上述目的,本发明采用如下技术方案:
提供一种基于TMS320C6678芯片的高速JPEG图像压缩方法,TMS320C6678芯片具有8个处理核,该方法包括以下步骤:
步骤1,读取待压缩图像,待压缩图像为包含距离向和方位向的二维图像,且将待压缩图像的距离向的像素个数作为所述待压缩图像的长度,将待压缩图像的方位向的像素个数作为所述待压缩图像的宽度;
确定待压缩图像的长度和宽度是否为8的倍数:若待压缩图像的长度或者宽度是8的倍数,则转至步骤2;若待压缩图像的长度或者宽度不是8的倍数,则在待压缩图像的数据末尾补零,使得补零后待压缩图像的长度和宽度均为8的倍数,进而转至步骤2;
步骤2,将待压缩图像的数据沿距离向连续不重叠地分割为8段数据块,令TMS320C6678芯片的8个处理核分别指向8段数据块中1段数据块的首地址,以使8个处理核同时对各自所指向的数据块进行扫描,共同完成对待压缩图像的分块,从而得到每段数据块对应的N个8×8的子块,且每一子块的第一个像素点表示为像素点(0,0);N为整数,N≥1;
步骤3,每个处理核分别对其所指向的数据块对应的N个8×8的子块进行DCT变换,得到各子块对应的DCT系数;其中,每一子块在其每一像素点处有对应的一个DCT系数;各子块在像素点(0,0)处的DCT系数为子块的直流系数,在除像素点(0,0)之外的63个像素点处的DCT系数为子块的交流系数;
步骤4,分别对每一子块的全部63个交流系数的绝对值求平均,得到对应的N个平均值P1,P2,…Pi,…PN,并确定N个平均值P1,P2,…Pi,…PN中的最大值Pmax=max(P1,P2,…Pi,…PN);其中,P1表示N个8×8的子块中第1个子块对应的平均值,P2表示N个8×8的子块中第2个子块对应的平均值,Pi表示N个8×8的子块中第i个子块对应的平均值,i=1,2…,N,PN表示N个8×8的子块中第N个子块对应的平均值,max()表示取最大值;
利用最大值Pmax,根据预设公式:计算得到每一子块的DCT系数对应的校正系数;其中,Xi(u,v)表示子块在像素点(u,v)处的DCT系数对应的校正系数,u表示像素点(u,v)的行坐标,v表示像素点(u,v)的列坐标,u=0,1,2…,7,v=0,1,2…,7;
读取预先存储的标准量化表,利用所得的校正系数对标准量化表中对应位置处的量化步长进行校正,得到每一子块对应的校正量化表;
利用每一子块对应的校正量化表对该子块的DCT系数进行量化,得到该子块量化后的DCT系数;
步骤5,读取预先存储的Huffman编码表,利用Huffman编码表对各子块量化后的DCT系数进行Huffman熵编码,得到各子块的编码后数据;
步骤6,根据JPEG标准以及待压缩图像格式确定标记码,并将标记码和各子块的编码后数据组成位比特流,位比特流即为待压缩图像对应的压缩数据流。
基于本发明上述方案,在对各子块进行量化时,先计算得到每一子块的DCT系数对应的校正系数,利用校正系数对标准量化表进行校正,得到每一子块对应的校正量化表,进而利用每一子块对应的校正量化表对该子块的DCT系数进行量化,即,对各子块分别根据图像低频、高频出现的比率重新计算得到各子块对应的量化表,进而用各子块对应的量化表进行量化。如此一来,即可对不同子块有针对性的进行量化:对细节较多的子块进行量化时,由于其高频分量较多,因此计算得到的校正系数较大,对应的量化步长也就相对较大,采用该相对较大的量化步长对该细节较多的子块进行量化,即可有效减少高频分量的损失,确保压缩质量;对细节较少的子块进行量化时,由于其低频分量较多,因此计算得到的校正系数较小,对应的量化步长也就相对较小,采用该相对较小的量化步长对该细节较少的子块进行量化,即可有效降低数据冗余度,提高压缩效率。综上所述,基于本发明实施例的上述量化步骤,能够避免现有技术由于对图像的全部子块统一采用标准量化表进行量化所导致的压缩质量差及数据冗余度高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于TMS320C6678芯片的高速JPEG图像压缩方法的流程示意图;
图2为本发明实施例仿真实验中使用的原始图像;
图3为采用现有的JPEG标准算法对图2所示的图像进行压缩后的图像;
图4为采用本发明方法对图2所示的图像进行压缩的图像。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1所示为本发明实施例提供的一种基于TMS320C6678芯片的高速JPEG图像压缩方法的流程示意图。
如图1所示,本发明实施例提供的基于TMS320C6678芯片的高速JPEG图像压缩方法包括以下步骤:
步骤1,读取待压缩图像,所述待压缩图像为包含距离向和方位向的二维图像,且将待压缩图像的距离向的像素个数作为待压缩图像的长度,将待压缩图像的方位向的像素个数作为待压缩图像的宽度;分别确定待压缩图像的长度和宽度是否为8的倍数:若待压缩图像的长度和宽度是8的倍数,则转至步骤2;若待压缩图像的长度或者宽度不是8的倍数,则在待压缩图像的数据末尾补零,使得补零后待压缩图像的长度和宽度均为8的倍数,进而转至步骤2。
其中,TMS320C6678芯片是基于KeyStone架构的高性能多核DSP芯片,其具有8个处理核,每个核具有32KB的数据存储器和一级程序存储器、512KB的二级存储器,并共享4MB的多核共享存储空间,每个核的频率最高为1.25GHz。
步骤2,将待压缩图像的数据沿距离向连续不重叠地分割为8段数据块,令TMS320C6678芯片的8个处理核分别指向8段数据块中1段数据块的首地址,以使8个处理核同时对各自所指向的数据块进行扫描,共同完成对待压缩图像的分块,从而得到每段数据块对应的N个8×8的子块,且每一子块的第一个像素点表示为像素点(0,0)。
其中,N为整数,N≥1。
优选的,为了提高后续的编码效率,减少压缩时间,在对待压缩图像分块后可以对图像进行幅度移位。具体来说,假设顺序编码模式下输入的图像数据限制为8位,则图像分量的取值范围即被限制在0~2p-1(p=8)之间的无符号整数,为使图像均值接近0,则需要将图像幅值移位2p-1,形成-2p-1~-(2p-1+1)的有符号整数。可以理解,经过移位操作后在后续的编码过程中,若采用“之”字型编码即会有更多的0字符行程,因此能够提高编码效率。
步骤3,每个处理核分别对其所指向的数据块对应的N个8×8的子块进行DCT变换,得到各子块对应的DCT系数。
其中,每一子块在其每一像素点处有对应的一个DCT系数;各子块在像素点(0,0)处的DCT系数为子块的直流系数,在除像素点(0,0)之外的63个像素点处的DCT系数为子块的交流系数。
优选的,对N个8×8的子块中的第i个子块进行DCT变换,得到对应的DCT系数,具体可以包括以下步骤:
步骤3.1,读取第i个子块的数据。
步骤3.2,对于第i个子块的任一像素点(u,v),执行以下操作:
(3.2a)根据像素点(u,v)的行坐标u,读取与行坐标u对应的第一系数表。
其中,u=0,1,2…,7,第一系数表为8×8的二维矩阵,该二维矩阵每一行的8个元素依次为x取0,1,2,…,7时第一系数的取值。
示例性的,当行坐标u=1时,与行坐标u对应的第一系数表如表1所示。表中任意两行都相同,且每行的8个元素依次为x取0,1,2,…,7时的取值,例如,每行的第一个元素即是x=1,u=1时的取值,也即
表1 u=1时对应的第一系数表
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
0.9807 0.8314 0.5555 0.1950 -0.1950 -0.5555 -0.8314 -0.9807
(3.2b)根据像素点(u,v)的列坐标v,读取与列坐标v对应的第二系数表。
其中,v=0,1,2…,7,第二系数表为8×8的二维矩阵,该二维矩阵每一列的8个元素依次为y取0,1,2,…,7时第二系数的取值。
示例性的,当列坐标v=1时,与列坐标v对应的第二系数表如表2所示。表中任意两列都相同,且每行列的8个元素依次为y取0,1,2,…,7时的取值,例如,每列的第一个元素即是v=1且y=1时的取值,也即
表2 v=1时对应的第二系数表
0.9807 0.9807 0.9807 0.9807 0.9807 0.9807 0.9807 0.9807
0.8314 0.8314 0.8314 0.8314 0.8314 0.8314 0.8314 0.8314
0.5555 0.5555 0.5555 0.5555 0.5555 0.5555 0.5555 0.5555
0.1950 0.1950 0.1950 0.1950 0.1950 0.1950 0.1950 0.1950
-0.1950 -0.1950 -0.1950 -0.1950 -0.1950 -0.1950 -0.1950 -0.1950
-0.5555 -0.5555 -0.5555 -0.5555 -0.5555 -0.5555 -0.5555 -0.5555
-0.8314 -0.8314 -0.8314 -0.8314 -0.8314 -0.8314 -0.8314 -0.8314
-0.9807 -0.9807 -0.9807 -0.9807 -0.9807 -0.9807 -0.9807 -0.9807
(3.2c)根据像素点(u,v)的行坐标u和列坐标v,读取第三系数表data_pr[64],并根据第三系数表确定与像素点(u,v)对应的第三系数的取值。
其中,第三系数表为8×8的二维矩阵,该二维矩阵在坐标(u,v)处的元素为的取值,
具体的,第三系数表如表3所示。以坐标(3,3)为例,第三系数表在坐标(3,3)处的元素即为
表3第三系数表
0.1249 0.1767 0.1767 0.1767 0.1767 0.1767 0.1767 0.1767
0.1767 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
0.1767 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
0.1767 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
0.1767 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
0.1767 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
0.1767 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
0.1767 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
(3.2d)将第i个子块、第一系数表以及第二系数表中相同位置的元素对应相乘后求和,将所得求和值与像素点(u,v)对应的第三系数相乘,得到第i个子块在像素点(u,v)处的DCT系数。
即,第i个子块在像素点(u,v)处的DCT系数F(u,v)可表示为:
式中,t=8×v+u,u和v为0,1,2…,7中之一,data_pr[t]表示像素点(u,v)对应的第三系数第三系数,data_u_new[u][k]表示与行坐标u对应的第一系数表的第k个元素,data_v_new[v][k]表示与列坐标v对应的第二系数表的第k个元素,f[k]表示第i个子块的第k个像素值,k=0,1,2,…,63。其中,第一系数表的第k个元素为将第一系数表的全部元素按行排成一列后的第k个元素,第二系数表的第k个元素为将第二系数表的全部元素按行排成一列后的第k个元素,第i个子块的第k个像素值为将第i个子块的全部像素点按行坐标排成一列后的第k个像素点的像素值。
以下对本发明实施例方法上述步骤3的原理进行详细介绍:
首先,给出DCT变换的公式如公式(1)所示:
其中,f(x,y)为像素值,-128≤f(x,y)≤127;当u,v=0时,当u,v≠0时;C(u),C(v)=1;u=0,1,2…,7,v=0,1,2…,7。
从公式(1)中可以看出,求一个像素点对应的DCT系数需要执行4次循环操作,包括2次外循环(u、v的循环)以及嵌套的2次内循环(变量x、y的循环),每次循环的次数都是8次,也就是说一共要循环8*8*8*8次。为了下面描述的方便约定:循环[1]为内层变量x、y的循环,循环[2]为次外层变量u、v的循环。
(1)展开循环[1]
对于循环[1]来说,每次循环都要执行2次乘法运算和1次加法运算,每次运算都要计算2个余弦系数:本实施例中用data_x表示data_y表示对于每一个确定的u、v值,每个余弦系数共有8种可能的取值,分别为依次用C1、C3、…C15来表示。在循环时,当v=0时,u的变化范围为0~7;当v=1时,u的变化范围为0~7,……,以此类推,当v=7时,u的变化范围为0~7。也就是说,在v的每次循环时都会用到这8个相同的系数,所以可以把这8个系数存放在一张表里这样就不用每次重新计算了。因为u的变化范围为0~7,所以可以将u的取值存放在一张二维表中,形如data_u[u][8],记号中的[u]称为表的第一个维度,u的范围为0~7表示u的取值,记号中的[8]称为表的第二个维度,它表示C1~C15这8个系数。同时,根据三角函数的对称性这8个系数中前4个系数与后面的4个互为相反数,也就是C1=-C15,C3=-C13,C5=-C11,…,所以在计算data_x系数时只需要算出前面的4个系数就可以了。
同理,对于系数data_y来说,根据x与y、u与v的等价性也可以建一个关于v值变化的二维表data_v[v][8],具体含义与data_u相同。
对于循环[1]而言,只要u、v的值确定了则系数data_x与data_y也就确定了,但为了加快执行效率,需要将循环[1]进行展开。在展开前,对于每一个x的取值y都要循环8次,也就是说系数data_x会隔8个循环出现,每次循环出现的值都相等。因此,为了将循环[1]展开只需要将表data_u[u][8]扩充为data_u_new[u][64],其中[64]表示一个8*8的二维矩阵,矩阵中每一行的数都相等,每一行的8个元素就是data_u[u][8]中的8个系数。表data_u_new[u][64]即本发明实施例中的第一系数表。
(2)展开循环[2]
对于循环[2],需要将这个关于u、v的2重循环变为关于u的1次循环,与v有关的就是系数data_y,为了去掉v必须找到u与v之间的关系,从公式中可以知道对于每一个v值u都要循环8次,当v=0~7时,u一共要循环64次。因此可以将这个8*8的二重循环看成是关于t的一个64次的单循环,每循环8次v就递增一次,因此u与v之间的关系就可以由t来构造。具体来说,t与u和v的关系可通过如下所示的程序实现:
如此一来,即可通过t的值得到u、v的值,u、v的初始值都为0。因此,为将循环[2]展开,需要将二维表data_v[v][8]扩充为data_v_new[v][64],其中[64]表示一个8*8的二维矩阵,矩阵中每一列的数都相等,每一列的8个元素就是data_v[v][8]中的8个系数。这样,u每循环8次v即递增一次,所以data_v_new[v][64]表中系数值隔8个才变化一次。其中,表data_v_new[v][64]即本发明实施例中的第二系数表。
另外,经分析知,u每循环8次v才递增一次,所以data_u_new[u][64]中的第一行元素与data_v_new[v][64]中第一列的对应元素值相等,所以将data_u_new[u][64]进行矩阵转置就可以得到data_v_new[v][64],因此无需另外计算data_v_new[v][64]的各个元素值。
此外,根据公式(1),还需要建立一个关于表达式的系数表,此即本发明实施例中的第三系数表。
综上,将8*8图像块变换后的DCT系数记作F(u,v),则有:
式中各参数的含义同上。
至此,即可将一次DCT变换由复杂的乘法和加法运算转换为简单的查表法。
需要说明的是,本领域技术人员可以理解,在按照本发明实施例提供的图像压缩方法压缩图像时,可在压缩之前预先生成并存储u取0,1,2,…,7时对应的第一系数表、v取0,1,2,…,7时对应的第二系数表以及第三系数表,这样一来,在对各子块进行DCT变换时,即可直接读取第一系数表、第二系数表以及第三系数表中的数据,从而快速完成对各子块的DCT变换,大大减少图像压缩的处理时间,实现高速JPEG图像实时压缩。
步骤4,分别对每一子块的全部63个交流系数的绝对值求平均,得到N个对应的平均值P1,P2,…Pi,…PN,并确定N个平均值P1,P2,…Pi,…PN中的最大值Pmax=max(P1,P2,…Pi,…PN);利用最大值Pmax,根据预设公式:计算得到每一子块的DCT系数对应的校正系数;读取预先存储的标准量化表,利用所得的校正系数对标准量化表中对应位置处的量化步长进行校正,得到每一子块对应的校正量化表;利用每一子块对应的校正量化表对该子块的DCT系数进行量化,得到该子块量化后的DCT系数。
其中,P1表示N个8×8的子块中第1个子块对应的平均值,P2表示N个8×8的子块中第2个子块对应的平均值,PN表示N个8×8的子块中第N个子块对应的平均值,Pi表示N个8×8的子块中第i个子块对应的平均值,i=1,2…,N,Fi(u,v)表示第i个子块在像素点(u,v)处的DCT系数;max()表示取最大值;Xi(u,v)表示子块在像素点(u,v)处的DCT系数对应的校正系数,Pmean表示N个平均值P1,P2,…Pi,…PN的平均值,u表示像素点(u,v)的行坐标,v表示像素点(u,v)的列坐标,u=0,1,2…,7,v=0,1,2…,7。
优选的,步骤4中,利用所得的校正系数对标准量化表中对应位置处的量化步长进行校正,得到各子块对应的校正量化表,具体可以包括:
对于N个子块中的第i个子块,利用第i个子块在像素点(u,v)处的DCT系数对应的校正系数Xi(u,v)以及公式Q'(u,v)=Q(u,v)*Xi(u,v),对标准量化表中(u,v)处的量化步长Q(u,v)进行校正,得到校正后的量化步长Q'(u,v),校正后的量化步长Q'(u,v)即为第i个子块对应的校正量化表在像素点(u,v)处的量化步长。
其中,所述的第i个子块为N个子块中的任一子块,i=1,2,…N。所述的标准量化表即JPEG标准算法中推荐的量化表,该量化表具体如表4所示。
表4标准量化表
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
需要说明的是,本领域技术人员可以理解,步骤4中所述的利用每一子块对应的校正量化表对该子块的DCT系数进行量化,得到该子块量化后的DCT系数,具体是指:对每一子块,分别将步骤3中得到的64个DCT系数除以步骤4中得到的校正量化表在对应位置处的量化步长后,进行四舍五入取整,即得到该子块量化后的DCT系数。示例性的,对于N个子块中的某一子块F,其在(u,v)处的DCT系数为F(u,v)(u=0,1,2…,7,v=0,1,2…,7),且子块F对应的校正量化表在(u,v)处的量化步长为Q'(u,v),则子块F在(u,v)处量化后的DCT系数即为F'(u,v)=IntegerRound[F(u,v)/Q'(u,v)],其中,IntegerRound[]表示四舍五入取整函数。
在本发明上述步骤4中,在对各子块进行量化时,先计算得到每一子块的DCT系数对应的校正系数,利用校正系数对标准量化表进行校正,得到每一子块对应的校正量化表,进而利用每一子块对应的校正量化表对该子块的DCT系数进行量化,即,对各子块分别根据图像低频、高频出现的比率重新计算得到各子块对应的量化表,进而用各子块对应的量化表进行量化。如此一来,即可对不同子块有针对性的进行量化:对细节较多的子块进行量化时,由于其高频分量较多,因此计算得到的校正系数较大,对应的量化步长也就相对较大,采用该相对较大的量化步长对该细节较多的子块进行量化,即可有效减少高频分量的损失,确保压缩质量;对细节较少的子块进行量化时,由于其低频分量较多,因此计算得到的校正系数较小,对应的量化步长也就相对较小,采用该相对较小的量化步长对该细节较少的子块进行量化,即可有效降低数据冗余度,提高压缩效率。综上所述,基于本发明实施例的上述量化步骤,能够避免现有技术由于对图像的全部子块统一采用标准量化表进行量化所导致的压缩质量差及数据冗余度高的问题。
步骤5,读取预先存储的Huffman编码表,利用Huffman编码表分别对每一子块量化后的DCT系数进行Huffman熵编码,得到各子块的编码后数据。
步骤6,根据JPEG标准以及待压缩图像格式,并将标记码和各子块的编码后数据组成位比特流,位比特流即为待压缩图像对应的压缩数据流。
其中,常用的8个标记码及其结构、作用如表5所示。其中,每个标记码都是由2个字节组成,其前一个字节是固定值0xFF,并且每个标记之前还可以添加数目不限的0xFF填充字节。
表5 JPEG标准中的标记码
需要说明的是,具体如何确定标记码以及将标记码和各子块的编码后数据组成位比特流,属于本领域技术人员所公知的基本常识,具体可参考JPEG标准,本发明实施例对此不再赘述。
基于本发明实施例上述方案,在对各子块进行量化时,先计算得到每一子块的DCT系数对应的校正系数,利用校正系数对标准量化表进行校正,得到每一子块对应的校正量化表,进而利用每一子块对应的校正量化表对该子块的DCT系数进行量化,即,对各子块分别根据图像低频、高频出现的比率重新计算得到各子块对应的量化表,进而用各子块对应的量化表进行量化。如此一来,即可对不同子块有针对性的进行量化:对细节较多的子块进行量化时,由于其高频分量较多,因此计算得到的校正系数较大,对应的量化步长也就相对较大,采用该相对较大的量化步长对该细节较多的子块进行量化,即可有效减少高频分量的损失,确保压缩质量;对细节较少的子块进行量化时,由于其低频分量较多,因此计算得到的校正系数较小,对应的量化步长也就相对较小,采用该相对较小的量化步长对该细节较少的子块进行量化,即可有效降低数据冗余度,提高压缩效率。综上所述,基于本发明实施例的上述量化步骤,能够避免现有技术由于对图像的全部子块统一采用标准量化表进行量化所导致的压缩质量差及数据冗余度高的问题。
进一步的,以下通过仿真实验来对本发明实施例上述方案的有效性进行验证:
1、实验条件
原始图像采用512×512的8位bmp灰度图像,如图2所示,处理芯片的型号为TMS320C6678,处理芯片的存储空间如表6所示:
表6 TMS320C6678处理芯片存储空间
2、实验内容
分别采用现有的JPEG标准算法和本发明方法对图4所示的图像进行压缩(压缩倍数取5),并对比二者的DCT处理时间、均方误差以及压缩后图像大小。
3、实验结果分析
采用现有的JPEG标准算法对图2所示的图像进行压缩后的图像如图3所示,采用本发明方法对图2所示的图像进行压缩的图像如图4所示,二者的DCT处理时间、均方误差以及压缩后图像大小如表7所示。
表7 JPEG标准算法和本发明方法实验结果比较
算法类型 DCT处理时间(ms) 均方误差 压缩后图像大小(字节)
JPEG标准算法 15.67 6.7235 50Kb
本发明方法 1.83 6.1657 52Kb
3、实验结果分析
从表7可以看出,JPEG标准算法的DCT处理时间较长,在压缩倍数相同的情况下标准算法的均方误差较大,均方误差越大则图像的压缩质量越差。而本发明方法用时较少,压缩质量好,并且压缩后图像大小与与JPEG标准算法的相差不大。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (3)

1.一种基于TMS320C6678芯片的高速JPEG图像压缩方法,其特征在于,所述TMS320C6678芯片具有8个处理核,所述方法包括以下步骤:
步骤1,读取待压缩图像,所述待压缩图像为包含距离向和方位向的二维图像,且将所述待压缩图像的距离向的像素个数作为所述待压缩图像的长度,将所述待压缩图像的方位向的像素个数作为所述待压缩图像的宽度;
分别确定所述待压缩图像的长度和宽度是否为8的倍数:若所述待压缩图像的长度和宽度是8的倍数,则转至步骤2;若所述待压缩图像的长度或者宽度不是8的倍数,则在所述待压缩图像的数据末尾补零,使得补零后所述待压缩图像的长度和宽度均为8的倍数,进而转至步骤2;
步骤2,将所述待压缩图像的数据沿距离向连续不重叠地分割为8段数据块,令所述TMS320C6678芯片的8个处理核分别指向所述8段数据块中1段数据块的首地址,以使所述8个处理核同时对各自所指向的数据块进行扫描,共同完成对所述待压缩图像的分块,从而得到每段数据块对应的N个8×8的子块,且每一子块的第一个像素点表示为像素点(0,0);N为整数,N≥1;
步骤3,每个处理核分别对其所指向的数据块对应的N个8×8的子块进行DCT变换,得到各子块对应的DCT系数;其中,每一子块在其每一像素点处有对应的一个DCT系数;各子块在像素点(0,0)处的DCT系数为子块的直流系数,在除像素点(0,0)之外的63个像素点处的DCT系数为子块的交流系数;
步骤4,分别对每一子块的全部63个交流系数的绝对值求平均,得到对应的N个平均值P1,P2,…Pi,…PN,并确定所述N个平均值P1,P2,…Pi,…PN中的最大值Pmax=max(P1,P2,…Pi,…PN);其中,P1表示N个8×8的子块中第1个子块对应的平均值,P2表示N个8×8的子块中第2个子块对应的平均值,Pi表示N个8×8的子块中第i个子块对应的平均值,i=1,2…,N,PN表示N个8×8的子块中第N个子块对应的平均值,max()表示取最大值;
利用所述最大值Pmax,根据预设公式:计算得到每一子块的DCT系数对应的校正系数;其中,Xi(u,v)表示N个8×8的子块中第i个子块在像素点(u,v)处的DCT系数对应的校正系数,u表示像素点(u,v)的行坐标,v表示像素点(u,v)的列坐标,i=1,2…,N,u=0,1,2…,7,v=0,1,2…,7;
读取预先存储的标准量化表,利用所得的校正系数对所述标准量化表中对应位置处的量化步长进行校正,得到每一子块对应的校正量化表;
利用每一子块对应的校正量化表对该子块的DCT系数进行量化,得到该子块量化后的DCT系数;
步骤5,读取预先存储的Huffman编码表,利用所述Huffman编码表分别对每一子块量化后的DCT系数进行Huffman熵编码,得到各子块的编码后数据;
步骤6,根据JPEG标准以及所述待压缩图像格式确定标记码,将所述标记码和各子块的编码后数据组成位比特流,所述位比特流即为所述待压缩图像对应的压缩数据流。
2.根据权利要求1所述的方法,其特征在于,对所述N个8×8的子块中的第i个子块进行DCT变换,得到对应的DCT系数,具体包括以下步骤:
步骤3.1,读取所述第i个子块的数据;
步骤3.2,对于所述第i个子块的任一像素点(u,v),执行以下操作:
(3.2a)根据所述像素点(u,v)的行坐标u,读取与所述行坐标u对应的第一系数表;其中,u=0,1,2…,7,所述第一系数表为8×8的二维矩阵,该二维矩阵每一行的8个元素依次为x取0,1,2,…,7时第一系数的取值;
(3.2b)根据所述像素点(u,v)的列坐标v,读取与所述列坐标v对应的第二系数表;其中,v=0,1,2…,7,所述第二系数表为8×8的二维矩阵,该二维矩阵每一列的8个元素依次为y取0,1,2,…,7时第二系数的取值;
(3.2c)根据所述像素点(u,v)的行坐标u和列坐标v,读取第三系数表,并根据所述第三系数表确定与所述像素点(u,v)对应的第三系数的取值;其中,所述第三系数表为8×8的二维矩阵,该二维矩阵在坐标(u,v)处的元素为的取值,
(3.2d)将所述第i个子块、所述第一系数表以及所述第二系数表中相同位置的元素对应相乘后求和,将所得求和值与所述像素点(u,v)对应的第三系数相乘,得到所述第i个子块在所述像素点(u,v)处的DCT系数。
3.根据权利要求1所述的方法,其特征在于,步骤4中,所述利用所得的校正系数对所述标准量化表中对应位置处的量化步长进行校正,得到各子块对应的校正量化表,具体包括:
对于所述N个子块中的第i个子块,利用所述第i个子块在像素点(u,v)处的DCT系数对应的校正系数Xi(u,v)以及公式Q'(u,v)=Q(u,v)*Xi(u,v),对所述标准量化表中(u,v)处的量化步长Q(u,v)进行校正,得到校正后的量化步长Q'(u,v),所述校正后的量化步长Q'(u,v)即为所述第i个子块对应的校正量化表在像素点(u,v)处的量化步长;其中,所述第i个子块为所述N个子块中的任一子块,i=1,2,…N。
CN201710384714.0A 2017-05-26 2017-05-26 基于tms320c6678芯片的高速jpeg图像压缩方法 Active CN107105245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710384714.0A CN107105245B (zh) 2017-05-26 2017-05-26 基于tms320c6678芯片的高速jpeg图像压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710384714.0A CN107105245B (zh) 2017-05-26 2017-05-26 基于tms320c6678芯片的高速jpeg图像压缩方法

Publications (2)

Publication Number Publication Date
CN107105245A CN107105245A (zh) 2017-08-29
CN107105245B true CN107105245B (zh) 2019-08-06

Family

ID=59670182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710384714.0A Active CN107105245B (zh) 2017-05-26 2017-05-26 基于tms320c6678芯片的高速jpeg图像压缩方法

Country Status (1)

Country Link
CN (1) CN107105245B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108769704A (zh) * 2018-06-04 2018-11-06 浙江工业大学 一种基于动态能量分析的离散余弦变换图像压缩方法
CN109842803B (zh) * 2018-09-19 2021-06-29 华为技术有限公司 一种图像压缩的方法及装置
CN116318174B (zh) * 2023-05-15 2023-08-15 青岛国源中创电气自动化工程有限公司 一种污水处理厂的垃圾运输管理系统的数据管理方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05161016A (ja) * 1990-10-16 1993-06-25 Samsung Electron Co Ltd Dct変換ac係数を利用した量子化幅調整回路
US6112219A (en) * 1993-09-23 2000-08-29 Realnetworks, Inc. Method and apparatus for performing fast discrete cosine transforms and fast inverse discrete cosine transforms using look-up tables
CN1553707A (zh) * 2003-06-02 2004-12-08 杭州高特信息技术有限公司 一种dct快速变换结构
CN1882083A (zh) * 2005-06-15 2006-12-20 华为技术有限公司 一种降低图像方块效应的方法
CN101771868A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 对图像的量化处理方法及装置
US7856054B1 (en) * 2003-11-14 2010-12-21 Apple Inc. Scene change identification during encoding of compressed video
CN102065309A (zh) * 2010-12-07 2011-05-18 青岛海信信芯科技有限公司 一种dct实现方法及dct实现电路
CN102395031A (zh) * 2011-11-23 2012-03-28 清华大学 一种数据压缩方法
CN103841419A (zh) * 2014-01-28 2014-06-04 福州大学 基于人眼视觉特性的hevc量化矩阵设计

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979969B2 (en) * 2015-04-24 2018-05-22 Fingram Co., Ltd. Method and system for image compression using image block characteristics

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05161016A (ja) * 1990-10-16 1993-06-25 Samsung Electron Co Ltd Dct変換ac係数を利用した量子化幅調整回路
US6112219A (en) * 1993-09-23 2000-08-29 Realnetworks, Inc. Method and apparatus for performing fast discrete cosine transforms and fast inverse discrete cosine transforms using look-up tables
CN1553707A (zh) * 2003-06-02 2004-12-08 杭州高特信息技术有限公司 一种dct快速变换结构
US7856054B1 (en) * 2003-11-14 2010-12-21 Apple Inc. Scene change identification during encoding of compressed video
CN1882083A (zh) * 2005-06-15 2006-12-20 华为技术有限公司 一种降低图像方块效应的方法
CN101771868A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 对图像的量化处理方法及装置
CN102065309A (zh) * 2010-12-07 2011-05-18 青岛海信信芯科技有限公司 一种dct实现方法及dct实现电路
CN102395031A (zh) * 2011-11-23 2012-03-28 清华大学 一种数据压缩方法
CN103841419A (zh) * 2014-01-28 2014-06-04 福州大学 基于人眼视觉特性的hevc量化矩阵设计

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Ting Jin等.Design of a flexible high-performance real-time SAR signal processing system.《2016 IEEE 13th International Conference on Signal Processing (ICSP)》.2016,
汪荣贵等.基于 Retinex 理论的 JPEG压缩方法研究.《中国科学技术大学学报》.2011,第41卷(第8期),
纪秀花等.适于图像压缩的二维 8 ×8 DCT查表快速算法研究.《计算机研究与发展》.2009,(第4期),

Also Published As

Publication number Publication date
CN107105245A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
Huang et al. 3d point cloud geometry compression on deep learning
US10939123B2 (en) Multi-angle adaptive intra-frame prediction-based point cloud attribute compression method
WO2021000658A1 (zh) 点云编解码方法、编码器、解码器及计算机存储介质
CN107105245B (zh) 基于tms320c6678芯片的高速jpeg图像压缩方法
CN109495744B (zh) 基于联合生成对抗网络的大倍率遥感影像压缩方法
CN108921910B (zh) 基于可伸缩卷积神经网络的jpeg编码压缩图像复原的方法
CN107301194B (zh) 瓦片式栅格地图的压缩存储及发布方法
CN104867165B (zh) 一种基于变换域下采样技术的图像压缩方法
CN102625126A (zh) 一种基于预测的三维网格编码方法
CN101917622B (zh) 14bit位宽图像压缩硬件编码器
CN102523453B (zh) 一种图像超大压缩传输方法及传输系统
CN101827268B (zh) 一种基于对象的分形视频压缩与解压缩方法
CN101860753B (zh) 一种基于分形的视频压缩与解压缩方法
Ismail et al. Improved fractal image compression using range block size
CN103297776B (zh) 星上未配准多光谱图像无损/有损编码系统与方法
He et al. A point cloud compression framework via spherical projection
CN117528120A (zh) 一种基于切片的深度学习点云几何压缩方法
CN104935928A (zh) 一种基于空域下采样模式的高效图像压缩方法
CN115102934B (zh) 点云数据的解码方法、编码方法、装置、设备及存储介质
CN106559668B (zh) 一种基于智能量化技术的低码率图像压缩方法
Kondo et al. Digital image compression using directional sub-block DCT
CN100518323C (zh) 一种使用旋转压缩码书对图像进行匹配压缩的方法
CN103761753B (zh) 基于纹理图像相似性的解压缩方法
CN102685531A (zh) 一种三维视频编码的深度和彩色码率分配方法
CN105376578A (zh) 图像压缩方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant