• 大小: 13.38MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-26
  • 语言: 其他
  • 标签: 小波变换  97    SPIHT  

资源简介

该程序主要实现图像的无损压缩,具体算法包括: (1)整数小波变换+SPIHT无损压缩 其中整数小波可以采用JPEG2000提供的5-3小波,也可以采用S+P变换,本程序均已给出。 (2)DPCM+算术编码 DPCM采用的是JPEG中采用的方法; (3)JPEG-LS标准 JPEG-LS的无损压缩性能非常好,超过JPEG2000。

资源截图

代码片段和文件信息

// ARITHCoding.cpp: implementation of the CARITHCoding class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “HIC.h“
#include “ARITHCoding.h“
#include “math.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

static unsigned short qe_value[47]=
{0x56010x34010x18010x0ac10x05210x02210x56010x5401
 0x48010x38010x30010x24010x1c010x16010x56010x5401
 0x51010x48010x38010x34010x30010x28010x24010x2201
 0x1c010x18010x16010x14010x12010x11010x0ac10x09c1
 0x08a10x05210x04410x02a10x02210x01410x01110x0085
 0x00490x00250x00150x00090x00050x00010x5601};
static unsigned short nmps[47]=
{1 2 3 4 5 387 8 9 1011121329151617181920
 2122232425262728293031323334353637383940
 41424344454546};
static unsigned short nlps[47]=
{1 6 9 1229336 14141417182021141415161718
 1919202122232425262728293031323334353637
 38394041424346};
static unsigned short flag[47]=
{10000010000000100000000000000
 00000000000000000};


static unsigned short a_registerctmps[20]index[20];
static unsigned long c_registerbpb0b1CC;
static long BytesLimitscTByteLimit;              // size limited by compressed image size.
static long num_of_packed_bytes=0;                 // total bytes written out.
static long num_of_unpacked_bytes=0;               // total bytes read in.
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CARITHCoding::CARITHCoding()
{

}

CARITHCoding::~CARITHCoding()
{

}
/**************************************************************************
 完成算术编码的初始化 MQ_EncoderInit()
 **************************************************************************/
void CARITHCoding::MQ_EncoderInit()
{
short i;
    a_register=0x8000;
    c_register=0;
    ct=12;
    bp=0;
    sc=0;
    for(i=0;i<20;i++)
{
  index[i]=0;
  mps[i]=0;
  if(i==0)  index[i]=4;
  if(i==17) index[i]=3;
  if((i==18)||(i==19)) index[i]=46;
}

}

/**************************************************************************
 算术编码的主函数 pack1()
 **************************************************************************/
long CARITHCoding::pack1(short bit_num short bit_value short con)
{
short  if_bit;
for(i=0;i {
f_bit=bit_value>>i;
if((f_bit&1)==mps[con])
{
a_register-=qe_value[index[con]];
if((a_register&0x8000)==0)
{
if(a_register else c_register+=qe_value[index[con]];
index[con]=nmps[index[con]];
do{
a_register<<=1;
c_register<<=1;
ct--;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      10429  2007-09-01 20:27  Lossless+coding\Lossless coding\ARITHCoding.cpp

     文件       1389  2007-08-31 10:30  Lossless+coding\Lossless coding\ARITHCoding.h

     文件      26167  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\ARITHCoding.obj

     文件      50326  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\Dib.obj

     文件     209003  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\HIC.exe

     文件     438128  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\HIC.ilk

     文件      23628  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\HIC.obj

     文件    5711384  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\HIC.pch

     文件     467968  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\HIC.pdb

     文件       6756  2011-08-13 10:09  Lossless+coding\Lossless coding\Debug\HIC.res

     文件      47208  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\HICDoc.obj

     文件      26851  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\HICView.obj

     文件      15904  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\IntDwt53.obj

     文件      50197  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\JPEG_LS.obj

     文件      10406  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\linkList.obj

     文件      20708  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\MainFrm.obj

     文件       2656  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\MATRIX2D.obj

     文件      34781  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\SPIHTCoder.obj

     文件      16720  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\SPTransform.obj

     文件     106739  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\StdAfx.obj

     文件     377856  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\vc60.idb

     文件     372736  2012-07-21 13:48  Lossless+coding\Lossless coding\Debug\vc60.pdb

     文件      22791  2003-06-28 21:16  Lossless+coding\Lossless coding\Dib.cpp

     文件       2530  2007-08-19 16:32  Lossless+coding\Lossless coding\Dib.h

     文件      28532  2007-11-01 16:57  Lossless+coding\Lossless coding\HIC.APS

     文件       1916  2007-11-01 16:57  Lossless+coding\Lossless coding\HIC.clw

     文件       4155  2005-09-15 21:12  Lossless+coding\Lossless coding\HIC.cpp

     文件       5517  2005-10-29 17:18  Lossless+coding\Lossless coding\HIC.dsp

     文件        531  2005-09-15 21:12  Lossless+coding\Lossless coding\HIC.dsw

     文件       1323  2005-09-15 21:12  Lossless+coding\Lossless coding\HIC.h

............此处省略45个文件信息

评论

共有 条评论