Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

MÔN:THÔNG TIN SỐ

BÀI TẬP 2
Nhóm 18N39

NHÓM 4: TỪ TRƯỜNG CHINH 18DT1


NGUYỄN THÁI BÌNH 18DT1
PHAN QUỐC BẢO 18DT1

Đề bài: Thực hiện mã hoá nén trang tài liệu quét TestRLC.bmp và TestFax.bmp dùng kỹ
thuật mã hóa RLC. Cho biết trước số điểm ảnh trên một dòng quét tài liệu. Tính tỉ lệ nén.
Giải mã. Nhận xét.
clc;
im=imread('TestRLC.bmp');
subplot(1,2,1)
imshow(im)
title('Anh goc');
%Ma Hoa

SoBitSauKhiNen=0;
KyTuMaHoa=[];
ChieuDaiKyTu=[];
mahoa=[];
for i=1:250
x=im(i,:);
DemLap=[];
KyTuLap=[];
a=1;
KyTuLap(a)=x(1);
DemLap(a)=1;
count=1;
for j=2:250
if x(j)==x(j-1)
DemLap(a)=DemLap(a)+1;
else
a=a+1;
KyTuLap(a)=im(i,j);
DemLap(a)=1;
count=count+1;
end
end
display(DemLap);
display(KyTuLap);
mahoa=KyTuLap;
for j=1:length(KyTuLap)
if mahoa(j)==1
mahoa(j)=255;
end
end
SoBitSauKhiNen = SoBitSauKhiNen + count*8*2;

KyTuMaHoa = [KyTuMaHoa KyTuLap];


ChieuDaiKyTu = [ChieuDaiKyTu DemLap];
display([dec2bin(DemLap,8),dec2bin(mahoa,8)]);
end
fprintf('\nSo bit sau khi nen =%.3f
bit\n',SoBitSauKhiNen);
%Giai Ma
x=[];
MaTranGiaiMa=zeros(250,250);
for a=1:length(ChieuDaiKyTu)
x=[x KyTuMaHoa(a)*ones(1,ChieuDaiKyTu(a))];
end
count=1;
for i=1:250
for j=1:250
MaTranGiaiMa(i,j)= x(count);
count=count+1;
end
end
kq=0;
if im==MaTranGiaiMa
kq=1;
end
fprintf('Kiem tra xem day có phai nen khong ton hao hay
khong? \n');
if kq==0
fprintf('Nen co ton hao \n');
else
fprintf('Nen Khong ton hao\n');
end
TyLeNen=(8062/(SoBitSauKhiNen/8));
fprintf('\nTy Le Nen RLC :%.4f\n\n',TyLeNen);
subplot(1,2,2)
imshow(MaTranGiaiMa);
title('Anh Giai Ma');
clc;
im=imread('TestFax.bmp');
subplot(1,2,1)
imshow(im)
title('Anh truoc giai ma');
%Ma Hoa

SoBitSauKhiNen=0;
KyTuMaHoa=[];
ChieuDaiKyTu=[];
for i=1:250
x=im(i,:);
DemLap=[];
KyTuLap=[];
a=1;
KyTuLap(a)=x(1);
DemLap(a)=1;
count=1;
for j=2:250
if x(j)==x(j-1)
DemLap(a)=DemLap(a)+1;
else
a=a+1;
KyTuLap(a)=im(i,j);
DemLap(a)=1;
count=count+1;
end
end
display(DemLap)
display(KyTuLap)
SoBitSauKhiNen = SoBitSauKhiNen + count*8*2;
KyTuMaHoa = [KyTuMaHoa KyTuLap];
ChieuDaiKyTu = [ChieuDaiKyTu DemLap];
display([dec2bin(DemLap,8),dec2bin(KyTuLap,8)]);
end

%Giai Ma
x=[];
MaTranGiaiMa=zeros(250,250);
for a=1:length(ChieuDaiKyTu)
x=[x KyTuMaHoa(a)*ones(1,ChieuDaiKyTu(a))];
end
count=1;
for i=1:250
for j=1:250
MaTranGiaiMa(i,j)= x(count);
count=count+1;
end
end
kq=0;
if im==MaTranGiaiMa
kq=1;
end
fprintf('Kiem tra xem day có phai nen khong ton hao hay
khong?\n');
if kq==0
fprintf('Nen co ton hao\n');
else
fprintf('Nen khong ton hao\n');
end
TyLeNenFax=(64078/(SoBitSauKhiNen/8));
fprintf('\nTy Le Nen Fax :%.4f\n\n',TyLeNenFax);
subplot(1,2,2)
imshow(MaTranGiaiMa)
title('Anh sau giai ma');
Nhận xét:
- Tỉ lệ nén của ảnh Fax cao hơn tỉ lệ nén của ảnh RLC.Vì RLC chỉ có 1 bit nên tỉ số
nén không được nhiều.
- Sau khi giải nén, file giải nén vẫn giữ nguyên được chất lượng so với file gốc,

You might also like