2022年6月2日 星期四

s1071552 作業6


1.作業說明

Run-Length Based Image Compression練習 請設計一個基於Run-Length的壓縮法方,對圖檔作無失真壓縮後儲存成新檔案。部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率(compression ratio)。


2.開發環境

ios 10.15.7 
Visual Studio Code 1.63 
OpenCV - 4.5.5

3.實作方法


Compress: 
1.讀取.bmp檔案 
2.將圖片RGB三通道分離 
3.RGB分別進行Run-Length壓縮 
4.將RLE壓縮結果存至.dat檔案 

Decompress: 
1. 讀取壓縮完成之.dat檔案 
2. 將資料還原長、寬、RGB三通道 
3. 三個channel各自復原 
4. 將RGB解壓縮後寫到.bmp檔


4.執行結果

img1原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小: 

壓縮比:14.7mb / 2.2mb = 6.68

img1原圖(.bmp)與解壓縮(.bmp)結果:



img2原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小: 





壓縮比:14.7mb / 3.6mb = 4.08

img2原圖(.bmp)與解壓縮(.bmp)結果:


img3原圖(.bmp)、壓縮(.dat)、解壓縮(.bmp)檔案大小:


 壓縮比:14.7mb / 2.1mb = 7

img3原圖(.bmp)與解壓縮(.bmp)結果:



壓縮檔格式:.dat 
平均壓縮率:(6.68 + 4.08 + 7) / 3 = 5.92







沒有留言:

張貼留言