Compress image with PCM encoder
4 次查看(过去 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!