资源简介
该程序主要实现图像的无损压缩,具体算法包括:
(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\li
文件 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个文件信息
相关资源
- 小波变换的基本原理及其应用-带书签
- 在unity中制作随波起伏的船只
- 数字下变频 DDC cic hb fir滤波器的设
- 剪切波变换图像滤波
- 扩频通信系统实用仿真技术源码
- 基于中值滤波与小波变换的图像去噪
- 多载波宽带无线通信技术 [尹长川,罗
- OptiGrating.v4.2
- 电磁场与电磁波第二版焦其祥 课后答
- fir16阶数字低通滤波器代码
- 微波集成电路设计作者: 顾其诤 项家
- 图像处理与分析-变分、PDE、小波及随
- 微波工程 Microwave Engineering 第四版习题
- STM32数字示波器源码+数字信号处理教
- Unity水面交互.zip
- xilium-CEF3.2623.1397+Chromium49.0.2623.110 整合
- 自适应滤波器原理(中文第四版)
- STM32智能车舵机控制,电磁寻迹,带滤
- 超声波雷达测距系统
- 基于STM32的数字示波器设计
- 基于STM32和MAX262的可程控滤波器代码
- pelc cm9700 编程工具
- 简明微波-西电梁昌洪-完整版.zip
- 毫米波大规模MIMO 5G A Paradigm for 5G体制
- 水文小波分析
- 测量电子电路设计-滤波器篇
- 宁波市路网矢量数据
- 3D波束赋形仿真
- 光波导课件哈尔滨工业大学
- CST教程
评论
共有 条评论