dcencode.m
来自「用离散余弦变换实现JPEG编码」· M 代码 · 共 36 行
M
36 行
%jpeg直流系数HUFFMAN编码function b = dcencode(x)% x == 0 的情况不查表编码if x == 0 b = [0 0]; return else %数值范围分类 c = floor(log2(abs(x)))+1;end% Hoffman table% 码长 编码tbl = [2 0 0 0 0 0 0 0 0 0 3 0 1 0 0 0 0 0 0 0 3 0 1 1 0 0 0 0 0 0 3 1 0 0 0 0 0 0 0 0 3 1 0 1 0 0 0 0 0 0 3 1 1 0 0 0 0 0 0 0 4 1 1 1 0 0 0 0 0 0 5 1 1 1 1 0 0 0 0 0 6 1 1 1 1 1 0 0 0 0 7 1 1 1 1 1 1 0 0 0 8 1 1 1 1 1 1 1 0 0 9 1 1 1 1 1 1 1 1 0];%前缀码查表获得 b = tbl( c+1 ,2:tbl(c+1,1)+1 );%将输入值转换成二进制数作为尾码tmp = x_int2bin(x);%确定输出原码还是补码if x > 0 b = [ b tmp(1:c) ];elseif x < 0 b = [ b ones(1,c)-tmp(1:c) ];end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?