s1091506 作業6
題目: 附件中為三張利用將晶片高度以色彩視覺化後的圖片。 請設計一個基於 Run-Length 的壓縮方法,對圖檔作無失真壓縮後儲存成新檔案。 部落格上應敘述你的壓縮方法,提供壓縮檔之格式,並計算三張圖的平均壓縮率 (compression ratio)。 開發環境: Window 11 + Python 3.10 + Vscode 執行方法: 用Run-Length進行壓縮 def run_length_encode ( data ): encoded_data = [] # 儲存壓縮後的資料 count = 1 # 目前的重複計數器 for i in range ( 1 , len ( data )): if data [ i ] == data [ i - 1 ]: # 若與前一個元素相同,增加重複計數器 count += 1 else : encoded_data . append (( count , data [ i - 1 ])) # 若不同,將前一個元素及計數器加入壓縮資料 count = 1 # 重設重複計數器 encoded_data . append (( count , data [ - 1 ])) # 加入最後一個元素及計數器 return encoded_data 執行結果: 下面為壓縮前後對照圖 壓縮率=2.7618 壓縮率=1.6590 壓縮率=2.8970 平均壓縮率=2.2900