资源简介

本资源介绍了JPEG2000编码方式,还包括多种JPEG2000编码的MATLAB程序代码实现。另外还对编码的原理及核心算法进行详细讲解。

资源截图

代码片段和文件信息

function y = im2jpeg2k(x n q) 
%IM2JPEG2K Compresses an image using a JPEG 2000 approximation.
%   Y = IM2JPEG2K(X N Q) compresses image X using an N-scale JPEG
%   2K wavelet transform implicit or explicit coefficient
%   quantization and Huffman symbol coding augmented by zero
%   run-length coding. If quantization vector Q contains two
%   elements they are assumed to be implicit quantization
%   parameters; else it is assumed to contain explicit subband step
%   sizes.  Y is an encoding structure containing Huffman-encoded
%   data and additional parameters needed by JPEG2K2IM for decoding.
%
%   See also JPEG2K2IM.

%   Copyright 2002-2004 R. C. Gonzalez R. E. Woods & S. L. Eddins
%   Digital Image Processing Using MATLAB Prentice-Hall 2004
%   $Revision: 1.5 $  $Date: 2003/10/26 18:38:13 $

global RUNS

error(nargchk(3 3 nargin));         % Check input arguments

if ndims(x) ~= 2 | ~isreal(x) | ~isnumeric(x) | ~isa(x ‘uint8‘)
   error(‘The input must be a UINT8 image.‘);   
end

if length(q) ~= 2 & length(q) ~= 3 * n + 1
   error(‘The quantization step size vector is bad.‘);  
end

% Level shift the input and compute its wavelet transform.
x = double(x) - 128;
[c s] = wavefast(x n ‘jpeg9.7‘);

% Quantize the wavelet coefficients.
q = stepsize(n q);
sgn = sign(c);     sgn(find(sgn == 0)) = 1;     c = abs(c);
for k = 1:n
   qi = 3 * k - 2;
   c = wavepaste(‘h‘ c s k wavecopy(‘h‘ c s k) / q(qi));
   c = wavepaste(‘v‘ c s k wavecopy(‘v‘ c s k) / q(qi + 1));
   c = wavepaste(‘d‘ c s k wavecopy(‘d‘ c s k) / q(qi + 2));
end
c = wavepaste(‘a‘ c s k wavecopy(‘a‘ c s k) / q(qi + 3));
c = floor(c);       c = c .* sgn;

% Run-length code zero runs of more than 10. Begin by creating
% a special code for 0 runs (‘zrc‘) and end-of-code (‘eoc‘) and
% making a run-length table. 
zrc = min(c(:)) - 1;      eoc = zrc - 1;      RUNS = [65535];

% Find the run transition points: ‘plus‘ contains the index of the
% start of a zero run; the corresponding ‘minus‘ is its end + 1.
z = c == 0;                 z = z - [0 z(1:end - 1)];
plus = find(z == 1);        minus = find(z == -1);

% Remove any terminating zero run from ‘c‘.
if length(plus) ~= length(minus)
   c(plus(end):end) = [];      c = [c eoc];        
end

% Remove all other zero runs (based on ‘plus‘ and ‘minus‘) from ‘c‘.
for i = length(minus):-1:1
   run = minus(i) - plus(i);
   if run > 10
      ovrflo = floor(run / 65535);    run = run - ovrflo * 65535;
      c = [c(1:plus(i) - 1) repmat([zrc 1] 1 ovrflo) zrc ...
           runcode(run) c(minus(i):end)];
   end
end

% Huffman encode and add misc. information for decoding.
y.runs    = uint16(RUNS);
y.s       = uint16(s(:));
y.zrc     = uint16(-zrc);
y.q       = uint16(100 * q‘);
y.n       = uint16(n);
y.huffman = mat2huff(c);

%-------------------------------------------------------------------%
function y = runcode(x)
% Find a

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

     文件    1260049  2020-05-27 16:41  9-JPEG2000编码方式的MATLAB实现+原理讲解\49369719matlab-for-JPEG2000.rar

     文件       2871  2020-05-27 16:34  9-JPEG2000编码方式的MATLAB实现+原理讲解\85170556jpeg2000.rar

     文件      97409  2020-05-27 16:35  9-JPEG2000编码方式的MATLAB实现+原理讲解\9651191jpeg2000_matlab.rar

     文件       4070  2004-12-16 13:36  9-JPEG2000编码方式的MATLAB实现+原理讲解\im2jpeg2k.m

     文件        641  2000-03-28 21:16  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\aff_image.m

     文件        791  2000-05-17 12:56  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Aff_step.m

     文件        780  2000-04-14 12:20  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\aff_weight.m

     文件        852  2000-03-28 21:20  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Ajuste.m

     文件         98  2000-04-14 00:18  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Cal_R.m

     文件       1587  2000-02-10 23:47  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\CMP_MRK.M

     文件        846  2000-03-07 19:25  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\code_blocs.m

     文件       1168  2000-07-21 10:19  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Compare.m

     文件       1126  2000-03-03 18:51  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\DD_arrange.m

     文件       1149  2000-03-06 22:22  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\DD_inv_arrange.m

     文件       1036  2000-03-15 17:38  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\decode_blocs.m

     文件       1132  2000-03-05 19:50  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\down_sample.m

     文件        681  2000-04-27 00:05  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\eb2_get_delta.m

     文件        255  2000-03-29 10:50  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\ENTROPY.M

     文件         69  1998-08-20 16:32  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\ETROPY.M

     文件       1295  2000-03-06 16:03  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Fdwt.m

     文件       2801  2000-05-23 09:09  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\gen_table.m

     文件        821  2000-04-26 01:28  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\get_alpha.m

     文件        291  2000-04-25 23:27  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Get_pond.m

     文件        448  2000-05-23 09:10  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Get_Qstep.m

     文件        856  2000-04-27 14:16  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\get_RI.m

     文件        570  2000-06-26 12:09  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Get_step.m

     文件        245  2000-04-14 12:13  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\get_weight.m

     文件       1292  2000-03-03 19:20  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\Idwt.m

     文件       1246  2000-07-21 14:30  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\init_image.m

     文件       1141  2000-03-04 11:41  9-JPEG2000编码方式的MATLAB实现+原理讲解\jpeg2000_matlab\inv_trans_color.m

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

评论

共有 条评论