Compress image with PCM encoder
8 ビュー (過去 30 日間)
古いコメントを表示
For an equation like x(t) = A*sin(2*pi*f*t) the result is code like this:
% Analog signal
f=2; % Maximum freq of the input signal
fs=5*f;
t=0:1/fs:1;
a=2;
x=a*sin(2*pi*f*t);
% Amplitude shifting
x_pos=x+a;
% Quantization
quant=round(x_pos);
% Decimal to binary
encoder=de2bi(quant, 'left-msb');
% Receiver
decoder=bi2de(encoder,'left-msb');
% Shifting the amplitude back
x_out=decoder-a;
My question is, for a given .PGM image, how can I compress it with a PCM encoder following these steps (analog signal- sampler-quantizer-encoder-decoder) and change its bits per pixel?
2 件のコメント
Walter Roberson
2020 年 2 月 24 日
The numeric values read in by imread() can already be considered to be quantized. However if you wanted, you could quantize further. For example, you might do
quant = round(TheImage, -1);
which would round uint8 or uint16 values to the nearest 10.
encoder=de2bi(quant, 'left-msb');
For consistency you should be passing in N, the minimum number of digits to use.
回答 (1 件)
Pujitha Narra
2020 年 2 月 26 日
Hi,
This is one of the several submissions in MATLAB File Exchange. Feel free to contact the author of this submission directly for specific questions about the implementation.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で PCM についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!