编辑“︁
JPEG 2000
”︁(章节)
跳转到导航
跳转到搜索
Template:Editnotice load/content
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== 編碼技術 == [[File:Lichtenstein jpeg2000 difference.png|thumb|225px|此圖標示出JPEG 2000(品質50%模式)與原始圖片有差異之處。]] === 概論 === JPEG 2000為了達成[[可適性視訊編碼|可適性]]的效果,將圖片的編碼分為眾多層級(由大至小):圖片(Image)、區塊(Tile)、頻塊(Sub-band)、編碼區段(Code-block)、位元層(Bit-plane)、分流(Pass)。依照壓縮編碼動作可以粗略分為: * 單元處理(Word Level Processing):負責圖片、區塊、頻塊層級,主要以「[[小波分析|小波轉換]]」將圖片信號轉換至[[頻域|頻率世界]],以利後續壓縮。 * 位元處理(Bit Level Processing):負責編碼區段、位元層、位元條層級,以「內嵌區段編碼」方式壓縮資料。以下將簡單解釋各個分段步驟 === 轉換(Transform) === ==== 前處理 ==== * 區塊化(Tiling):對影像作分割,把完整的影像分割為數個相同大小(邊界的區塊除外)、彼此間沒有重疊且為長方形的區塊,作為[[小波分析|小波轉換]]的基本單位。此處的區塊通常遠大於[[JPEG#離散餘弦變換(Discrete cosine transform)|JPEG的8×8區塊]],甚至整張圖片也可作為一個[[JPEG 2000#編碼技術|區塊]]。(JPEG 2000的[[JPEG 2000#編碼技術|區塊]]大小非固定值) * 零頻位移(或翻直流位移,DC shifting):對於區塊中的資料平移其數值,使區塊內的資料(如色彩數值)成為以0為中心,帶有正負號的數值資料。 * 色彩空間轉換(Color Transformation):將傳統的[[RGB]](紅綠藍)色域轉換至其他[[色彩空間]]。 # 對於[[破壞性資料壓縮|失真壓縮]],採用不可完全回復色彩空間轉換(Irreversible Color Transform),轉換至一般熟悉的[[YCbCr]]色彩空間。 # 對於[[非破壞性資料壓縮|非失真壓縮]],採用可完全回復色彩空間轉換(Reversible Color Transform),使用簡化後的[[YCbCr]]色彩空間。理由是人眼對於明暗([[YCbCr]]中的Y)較[[色度 (物理學)|色度]]敏感([[YCbCr]]中的CbCr),分開處理可以較單純的[[RGB]]更有視覺上的意義。簡化後的[[YCbCr]]色彩空間因為不需要小數計算,不會有運算上精確度的失真,但因為其係數較粗略,後續壓縮效果可能會稍差一些。 ==== 離散小波轉換(Discrete Wavelet Transform) ==== [[File:Wavelet Bior2.2.svg|thumb|非失真壓縮所採用的CDF 5/3離散小波濾波器。]] [[File:Jpeg2000 2-level wavelet transform-lichtenstein.png|thumb|256px|離散小波變換應用於JPEG 2000的例子。此圖為二階CDF 9/7離散小波濾波器之結果。]] 詳見[[離散小波變換]]條目。<br> 係以階層式的[[採樣]](down sampling)、[[升採樣]](up sampling)、相減(取差異部分)的方式來取得階層狀的[[頻域|頻率資訊]]。把影像區塊分為多層次的高頻[[JPEG 2000#編碼技術|頻塊]]和低頻[[JPEG 2000#編碼技術|頻塊]]:其中低頻[[JPEG 2000#編碼技術|頻塊]]是直接[[採樣]]的結果,可以視為影像的近似,反映影像的大略情形;高頻[[JPEG 2000#編碼技術|頻塊]]則是剩餘部分,反映了影像的高頻資訊,可以理解為影像的細節。此處的[[濾波器]]選擇主要有兩種:Daubechies 9-tap/7-tap filter(用於[[破壞性資料壓縮|失真壓縮]])和Le Gall 5tap/3-tap filter(用於[[非破壞性資料壓縮|非失真壓縮]])。 === 量化(Quantization) === 量化的意義在於將一組連續訊號對應到一組離散訊號,後續的離散訊號以單純的位元表示,可達到壓縮資料並數位化的條件。簡言之為將[[JPEG 2000#編碼技術|頻塊]]帶有小數的資料分段、近似,以較為單純的[[位元]]表示。(從[[JPEG 2000#編碼技術|單元處理]]過渡到[[JPEG 2000#編碼技術|位元處理]]) === 內嵌區段編碼與最佳化(EBCOT) === 此技術先將資料作好適當的切割、歸類後,利用[[熵編碼法#模型|搭配統計分布模型的]][[熵編碼法]]壓縮資料。由於資料經有條理的適當分割,具備[[可適性視訊編碼|可適性]]的特性,在最後可以衡量所需要的資料大小與品質,找出最佳分割點。捨棄該點以後的資料,仍保有高品質的特性。以下就三者分開描述 ==== 內嵌區段編碼(Embedded Block Coding) ==== 首先對資料作適當的切割、歸類,如此有兩大好處:其一不同類型的資料其0、1位元的統計特性不同,分開處理可以增進壓縮效率;其二為依資料重要性的不同作出區隔,從最重要到不重要作排列,以達成[[可適性視訊編碼|可適性]](Scaling)的效果。在切割歸類上,有以下名詞作為單位: * 編碼區段(Code-block):通常會將上一步動作算好的[[JPEG 2000#編碼技術|頻塊]]進一步切成32×32或64×64的區段,分開來平行運算,作為內嵌區段編碼的對象。 * 位元層(Bit-plane):把編碼區段內的資料依照[[位元深度]],從高位元([[最高有效位|MSB]])到低位元([[最低有效位|LSB]])分成數個位元層(不同於圖片水平、垂直方向,而是依[[位元深度]]的第三個維度)。如每筆數值利用P個[[位元]](bit)來記錄,將會從高位元到低位元受分解為P個位元層面。位元層較高的通常有認為比較重要(通俗想像:一般人覺得「百位數」比「十位數」或「個位數」重要)。 * 分流(Pass):每個位元層都再依「重要性」分為三個分流,分開套用[[熵編碼法#模型|內容統計模型]](context modeling)處理。分流依據最高有效位元(對於正數,第一個從0變1的位置)的出現與否(以σ記,通俗想像:判斷一個人究竟有「幾十萬」跟「幾萬」元的那個「幾」),以及該位元鄰近的八格範圍內,是否有其他位置出現最高有效位元(以φ記,想像:鄰近處出現了,自己也很可能會出現)。 ** 分流一(Pass 1):最重要的資料,該處上一層還沒出現過最高有效位元但鄰近處出現者,將分流至此。 ** 分流二(Pass 2):該位置已經出現過最高有效位元,對於較低位元繼續記錄其位元值。 ** 分流三(Pass 3):該處上一層還沒出現過最高有效位元,且鄰近處也都不曾出現過。這些不同的分流還會依照與鄰近的八格範圍的關係,再分別查表套用不同的[[熵編碼法#模型|內容統計模型]]。大致上有以下四大類: ** 零編碼(zero coding):用於分流一、三,紀錄非最高有效位元者。 ** 正負號編碼(sign coding):用於分流一、三,紀錄出現最高有效位元者。 ** 精細編碼(Magnitude refinement coding):用於分流二。 ** [[遊程編碼]](Run-length coding):用於分流三,紀錄全都不是最高有效位元的狀況。 ==== 算術編碼(Arithmetic coding) ==== 詳見[[算術編碼]]條目。<br> [[算術編碼]]是一種無損的[[熵編碼法]]。[[算術編碼]]把輸入資料視為一種0~1之間的切割,根據[[熵編碼法#模型|內容統計模型]]決定這次輸入資料的切割位置。當所有資料輸入畢以後,可以得到一個0~1之間的小數,該小數的數值以資料形式表示(如[[位元]])即為壓縮編碼後的結果。[[算術編碼]]較其他的[[熵編碼法]](如[[哈夫曼編碼]])還要更接近[[熵編碼法]]的數學理論極限。 ==== 最佳化 ==== 由於上述壓縮後的資料,具備[[可適性視訊編碼|可適性]]的特性,在壓縮的最後可以視需求衡量最後資料大小與品質,找出最佳分割點。捨棄該點以後的資料,仍保有在該需求的衡量下,最高品質的特性。做到良好的壓縮率控制。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息