2021年6月6日 星期日

s1061460 影像處理作業6

 作業說明:

Run-Length Based Image Compression練習

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

 

操作環境:

l  作業系統 :  Windows10

l  編譯軟體 :  Jupyter Notebook

l  使用語言 :  Python / OpenCV 4.5.1

 

實作方法:

     Compress

1.     讀取.bmp檔案

2.     將圖片RGB三通道分離

3.     RGB分別進行Run-Length壓縮

4.     RLE壓縮結果存至.dat檔案

 

Decompress

1. 讀取壓縮完成之.dat檔案

2. 將資料還原長、寬、RGB三通道

3. 三個channel各自復原

4. RGB解壓縮後寫到.bmp


執行結果:

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

壓縮比:2,157kb / 14,322kb *100% = 15%




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


   





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

壓縮比:3,544kb / 14,322kb *100% = 24.7%




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



  




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

壓縮比:2,056kb / 14,322kb *100% = 14.3%


    


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



    




壓縮檔格式:.dat

平均壓縮率:(15% + 24.7% +14.3%) / 3 = 18%




沒有留言:

張貼留言