フィルターのクリア

Compress image with PCM encoder

10 ビュー (過去 30 日間)
Marian-Catalin Pirvulescu
Marian-Catalin Pirvulescu 2020 年 2 月 24 日
回答済み: Pujitha Narra 2020 年 2 月 26 日
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
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.
Marian-Catalin Pirvulescu
Marian-Catalin Pirvulescu 2020 年 2 月 24 日
Thank you, Walter!
For exemple, if my image is 8 bits per pixel and I want to change it to 5 bits per pixel and keep the .PGM format, how should I write the code?

サインインしてコメントする。

回答 (1 件)

Pujitha Narra
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.

カテゴリ

Help Center および File ExchangePCM についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by