當前位置:首頁 » 文件管理 » 壓縮位流

壓縮位流

發布時間: 2022-07-11 09:22:28

① 數字圖像的無損壓縮是指

答案是A,解壓後重建的圖像與原始圖像完全相同。

雖然不能完全恢復原始數據,但是所損失的部分對理解原始圖像的影響縮小,卻換來了大得多的壓縮比,即指使用壓縮後的數據進行重構,重構後的數據與原來的數據有所不同,但不影響人對原始資料表達的信息造成誤解。有損壓縮適用於重構信號不一定非要和原始信號完全相同的場合。

圖像和聲音的壓縮(因為其中包含的數據往往多於我們的視覺系統和聽黨系統所能接收的信息,丟掉一些數據而不至於對聲音或者圖像所表達的意思產生誤解但可大大提高壓縮比)。有損壓縮廣泛應用於語音,圖像和視頻數據的壓縮。

2、無損壓縮格式則是利用數據的統計冗餘進行壓縮,可完全恢復原始數據而不引起任何失真,但壓縮率是受到數據統計冗餘度的理論限制,一般為2:1到5:1。

這類方法廣泛用於文本數據,程序和特殊應用場合的圖像數據(如指紋圖像,醫學圖像等)的壓縮。即指使用壓縮後的數據進行重構(或者叫做還原,解壓縮),重構後的數據與原來的數據完全相同;無損壓縮用於要求重構的信號與原始信號完全致的場合。

② 壓縮空氣流量怎麼計算

壓力為7kg/m3是的流速p=v2p/2

其中p是空氣壓力(帕)=700000帕

v是流速p為空氣密度=1.2千克/立方米

計算的v=1080米/秒

以內徑10厘米為例計算:由v=sv=1/4πd2v=1/4x3.14x0.1x0.1x1080=8.5立方米/秒=30600立方米/小時,注意這是在沒有阻力情況下計算的,實際流量要小一些

流量計量

壓縮空氣是企事業單位重要的二次能源,大多由電能或熱能經壓縮機轉化而來。當空氣壓力值要求較低時,則由鼓風機產生。對由大量能源轉化而來的工質進行管理,以收到節約能源和提高設備管理水平的效果,是壓縮空氣流量計量的主要目的。

在化工等生產過程中,有一種重要的工藝過程氧化反應,它是以空氣作原料,和另外某種原料在規定的條件下進行化學反應。空氣質量流量過大和過小,都會對安全生產、產品質量和貴重原料的消耗產生關鍵影響。在這種情況下,空氣流量測量精確度要求特別高,多半還配有自動調節。

以上內容參考:網路-壓縮空氣流量計

③ 壓縮演算法原理

哈夫曼
哈夫曼編碼是無損壓縮當中最好的方法。它使用預先二進制描述來替換每個符號,長度由特殊符號出現的頻率決定。常見的符號需要很少的位來表示,而不常見的符號需要很多為來表示。

哈夫曼演算法在改變任何符號二進制編碼引起少量密集表現方面是最佳的。然而,它並不處理符號的順序和重復或序號的序列。

2.1 原理
我不打算探究哈夫曼編碼的所有實際的細節,但基本的原理是為每個符號找到新的二進製表示,從而通常符號使用很少的位,不常見的符號使用較多的位。

簡短的說,這個問題的解決方案是為了查找每個符號的通用程度,我們建立一個未壓縮數據的柱狀圖;通過遞歸拆分這個柱狀圖為兩部分來創建一個二叉樹,每個遞歸的一半應該和另一半具有同樣的權(權是 ∑ N K =1 符號數 k , N 是分之中符號的數量,符號數 k 是符號 k出現的次數 )

這棵樹有兩個目的:

1. 編碼器使用這棵樹來找到每個符號最優的表示方法

2. 解碼器使用這棵樹唯一的標識在壓縮流中每個編碼的開始和結束,其通過在讀壓縮數據位的時候自頂向底的遍歷樹,選擇基於數據流中的每個獨立位的分支,一旦一個到達葉子節點,解碼器知道一個完整的編碼已經讀出來了。

壓縮後的數據流是 24 位(三個位元組),原來是 80 位( 10 個位元組)。當然,我應該存儲哈夫曼樹,這樣解碼器就能夠解碼出對應的壓縮流了,這就使得該例子中的真正數據流比輸入的流數據量大。這是相對較短的數據上的副作用。對於大數據量來說,上面的哈夫曼樹就不佔太多比例了。

解碼的時候,從上到下遍歷樹,為壓縮的流選擇從左 / 右分支,每次碰到一個葉子節點的時候,就可以將對應的位元組寫到解壓輸出流中,然後再從根開始遍歷。

2.2 實現
哈夫曼編碼器可以在基本壓縮庫中找到,其是非常直接的實現。

這個實現的基本缺陷是:

1. 慢位流實現

2. 相當慢的解碼(比編碼慢)

3. 最大的樹深度是 32 (編碼器在任何超過 32 位大小的時候退出)。如果我不是搞錯的話,這是不可能的,除非輸出的數據大於 2 32位元組。

另一方面,這個實現有幾個優點:

1. 哈夫曼樹以一個緊密的形式每個符號要求 12 位(對於 8 位的符號)的方式存儲,這意味著最大的頭為 384 。

2. 編碼相當容易理解

哈夫曼編碼在數據有噪音的情況(不是有規律的,例如 RLE )下非常好,這中情況下大多數基於字典方式的編碼器都有問題。

④ 如何設置流媒體壓縮比特率,使視頻最清晰

用格式工廠吧
壓成 FLV 第二代
H.264編碼 默認的比特率就行了

PS: FLV 第二代 比第一代(優酷,土豆上的) 好的多 而其支持高清 因為用了H.264編碼 方式

⑤ 圖像壓縮的圖像壓縮原理

1.圖像壓縮的概念
減少表示數字圖像時需要的數據量
2.圖像壓縮的基本原理
圖像數據之所以能被壓縮,就是因為數據中存在著冗餘。圖像數據的冗餘主要表現為:圖像中相鄰像素間的相關性引起的空間冗餘;圖像序列中不同幀之間存在相關性引起的時間冗餘;不同彩色平面或頻譜帶的相關性引起的頻譜冗餘。數據壓縮的目的就是通過去除這些數據冗餘來減少表示數據所需的比特數。由於圖像數據量的龐大,在存儲、傳輸、處理時非常困難,因此圖像數據的壓縮就顯得非常重要。
信息時代帶來了「信息爆炸」,使數據量大增,因此,無論傳輸或存儲都需要對數據進行有效的壓縮。在遙感技術中,各種航天探測器採用壓縮編碼技術,將獲取的巨大信息送回地面。
圖像壓縮是數據壓縮技術在數字圖像上的應用,它的目的是減少圖像數據中的冗餘信息從而用更加高效的格式存儲和傳輸數據。
3。圖像壓縮基本方法
圖像壓縮可以是有損數據壓縮也可以是無損數據壓縮。對於如繪制的技術圖、圖表或者漫畫優先使用無損壓縮,這是因為有損壓縮方法,尤其是在低的位速條件下將會帶來壓縮失真。如醫療圖像或者用於存檔的掃描圖像等這些有價值的內容的壓縮也盡量選擇無損壓縮方法。有損方法非常適合於自然的圖像,例如一些應用中圖像的微小損失是可以接受的(有時是無法感知的),這樣就可以大幅度地減小位速。
無損圖像壓縮方法有:
行程長度編碼
熵編碼法
如 LZW 這樣的自適應字典演算法
有損壓縮方法有:
將色彩空間化減到圖像中常用的顏色。所選擇的顏色定義在壓縮圖像頭的調色板中,圖像中的每個像素都用調色板中顏色索引表示。這種方法可以與 抖動(en:dithering)一起使用以模糊顏色邊界。
色度抽樣,這利用了人眼對於亮度變化的敏感性遠大於顏色變化,這樣就可以將圖像中的顏色信息減少一半甚至更多。
變換編碼,這是最常用的方法。首先使用如離散餘弦變換(DCT)或者小波變換這樣的傅立葉相關變換,然後進行量化和用熵編碼法壓縮。
分形壓縮(en:Fractal compression)。
4.圖像壓縮的主要目標就是在給定位速(bit-rate)或者壓縮比下實現最好的圖像質量。但是,還有一些其它的圖像壓縮機制的重要特性:
可擴展編碼 (en:Scalability) 通常表示操作位流和文件產生的質量下降(沒有解壓縮和再壓縮)。可擴展編碼的其它一些叫法有 漸進編碼(en:progressive coding)或者嵌入式位流(en:embedded bitstreams)。盡管具有不同的特性,在無損編碼中也有可擴展編碼,它通常是使用粗糙到精細像素掃描的格式。尤其是在下載時預覽圖像(如瀏覽器中)或者提供不同的圖像質量訪問時(如在資料庫中)可擴展編碼非常有用 有幾種不同類型的可擴展性:
質量漸進(en:Quality progressive)或者層漸進(en:layer progressive):位流漸進更新重建的圖像。
解析度漸進(en:Resolution progressive):首先在低解析度編碼圖像,然後編碼與高解析度之間的差別。
成分漸進(en:Component progressive):首先編碼灰度數據,然後編碼彩色數據。
感興趣區域編碼,圖像某些部分的編碼質量要高於其它部分,這種方法可以與可擴展編碼組合在一起(首先編碼這些部分,然後編碼其它部分)。
元數據信息,壓縮數據可以包含關於圖像的信息用來分類、查詢或者瀏覽圖像。這些信息可以包括顏色、紋理統計信息、小預覽圖像以及作者和版權信息。
5.圖像壓縮目前的標准
經典的視頻壓縮演算法已漸形成一系列的國際標准體系,如H.26x系列建議,H.320系列建議以及MPEG系列建議等。
6.圖像壓縮效果的評估
壓縮方法的質量經常使用峰值信噪比來衡量,峰值信噪比用來表示圖象有損壓縮帶來的雜訊。但是,觀察者的主觀判斷也認為是一個重要的、或許是最重要的衡量標准。

⑥ 霍夫曼 解壓縮

哈夫曼編碼(Huffman Coding)是一種編碼方式,以哈夫曼樹—即最優二叉樹,帶權路徑長度最小的二叉樹,經常應用於數據壓縮。 在計算機信息處理中,「哈夫曼編碼」是一種一致性編碼法(又稱"熵編碼法"),用於數據的無損耗壓縮。這一術語是指使用一張特殊的編碼表將源字元(例如某文件中的一個符號)進行編碼。這張編碼表的特殊之處在於,它是根據每一個源字元出現的估算概率而建立起來的(出現概率高的字元使用較短的編碼,反之出現概率低的則使用較長的編碼,這便使編碼之後的字元串的平均期望長度降低,從而達到無損壓縮數據的目的)。這種方法是由David.A.Huffman發展起來的。 例如,在英文中,e的出現概率很高,而z的出現概率則最低。當利用哈夫曼編碼對一篇英文進行壓縮時,e極有可能用一個位(bit)來表示,而z則可能花去25個位(不是26)。用普通的表示方法時,每個英文字母均佔用一個位元組(byte),即8個位。二者相比,e使用了一般編碼的1/8的長度,z則使用了3倍多。倘若我們能實現對於英文中各個字母出現概率的較准確的估算,就可以大幅度提高無損壓縮的比例。

本文描述在網上能夠找到的最簡單,最快速的哈夫曼編碼。本方法不使用任何擴展動態庫,比如STL或者組件。只使用簡單的C函數,比如:memset,memmove,qsort,malloc,realloc和memcpy。
因此,大家都會發現,理解甚至修改這個編碼都是很容易的。

背景
哈夫曼壓縮是個無損的壓縮演算法,一般用來壓縮文本和程序文件。哈夫曼壓縮屬於可變代碼長度演算法一族。意思是個體符號(例如,文本文件中的字元)用一個特定長度的位序列替代。因此,在文件中出現頻率高的符號,使用短的位序列,而那些很少出現的符號,則用較長的位序列。
編碼使用
我用簡單的C函數寫這個編碼是為了讓它在任何地方使用都會比較方便。你可以將他們放到類中,或者直接使用這個函數。並且我使用了簡單的格式,僅僅輸入輸出緩沖區,而不象其它文章中那樣,輸入輸出文件。
bool CompressHuffman(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen);
bool DecompressHuffman(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen);
要點說明
速度
為了讓它(huffman.cpp)快速運行,我花了很長時間。同時,我沒有使用任何動態庫,比如STL或者MFC。它壓縮1M數據少於100ms(P3處理器,主頻1G)。
壓縮
壓縮代碼非常簡單,首先用ASCII值初始化511個哈夫曼節點:
CHuffmanNode nodes[511];
for(int nCount = 0; nCount < 256; nCount++)
nodes[nCount].byAscii = nCount;
然後,計算在輸入緩沖區數據中,每個ASCII碼出現的頻率:
for(nCount = 0; nCount < nSrcLen; nCount++)
nodes[pSrc[nCount]].nFrequency++;
然後,根據頻率進行排序:
qsort(nodes, 256, sizeof(CHuffmanNode), frequencyCompare);
現在,構造哈夫曼樹,獲取每個ASCII碼對應的位序列:
int nNodeCount = GetHuffmanTree(nodes);
構造哈夫曼樹非常簡單,將所有的節點放到一個隊列中,用一個節點替換兩個頻率最低的節點,新節點的頻率就是這兩個節點的頻率之和。這樣,新節點就是兩個被替換節點的父節點了。如此循環,直到隊列中只剩一個節點(樹根)。
// parent node
pNode = &nodes[nParentNode++];
// pop first child
pNode->pLeft = PopNode(pNodes, nBackNode--, false);
// pop second child
pNode->pRight = PopNode(pNodes, nBackNode--, true);
// adjust parent of the two poped nodes
pNode->pLeft->pParent = pNode->pRight->pParent = pNode;
// adjust parent frequency
pNode->nFrequency = pNode->pLeft->nFrequency + pNode->pRight->nFrequency;
這里我用了一個好的訣竅來避免使用任何隊列組件。我先前就直到ASCII碼只有256個,但我分配了511個(CHuffmanNode nodes[511]),前255個記錄ASCII碼,而用後255個記錄哈夫曼樹中的父節點。並且在構造樹的時候只使用一個指針數組(ChuffmanNode *pNodes[256])來指向這些節點。同樣使用兩個變數來操作隊列索引(int nParentNode = nNodeCount;nBackNode = nNodeCount –1)。
接著,壓縮的最後一步是將每個ASCII編碼寫入輸出緩沖區中:
int nDesIndex = 0;
// loop to write codes
for(nCount = 0; nCount < nSrcLen; nCount++)
{
*(DWORD*)(pDesPtr+(nDesIndex>>3)) |=
nodes[pSrc[nCount]].dwCode << (nDesIndex&7);
nDesIndex += nodes[pSrc[nCount]].nCodeLength;
}
(nDesIndex>>3): >>3 以8位為界限右移後到達右邊位元組的前面
(nDesIndex&7): &7 得到最高位.
注意:在壓縮緩沖區中,我們必須保存哈夫曼樹的節點以及位序列,這樣我們才能在解壓縮時重新構造哈夫曼樹(只需保存ASCII值和對應的位序列)。
解壓縮
解壓縮比構造哈夫曼樹要簡單的多,將輸入緩沖區中的每個編碼用對應的ASCII碼逐個替換就可以了。只要記住,這里的輸入緩沖區是一個包含每個ASCII值的編碼的位流。因此,為了用ASCII值替換編碼,我們必須用位流搜索哈夫曼樹,直到發現一個葉節點,然後將它的ASCII值添加到輸出緩沖區中:
int nDesIndex = 0;
DWORD nCode;
while(nDesIndex < nDesLen)
{
nCode = (*(DWORD*)(pSrc+(nSrcIndex>>3)))>>(nSrcIndex&7);
pNode = pRoot;
while(pNode->pLeft)
{
pNode = (nCode&1) ? pNode->pRight : pNode->pLeft;
nCode >>= 1;
nSrcIndex++;
}
pDes[nDesIndex++] = pNode->byAscii;
}

⑦ 你認為圖像壓縮的方式有哪些

但是,觀察者的主觀判斷也認為是一個重要的、或許是最重要的衡量標准。無損壓縮的基本原理是相同的顏色信息只需保存一次。壓縮圖像的軟體首先會確定圖像中哪些區域是相同的,哪些是不同的。包括了重復數據的圖像(如藍天) 就可以被壓縮,只有藍天的起始點和終結點需要被記錄下來。但是藍色可能還會有不同的深淺,天空有時也可能被樹木、山峰或其他的對象掩蓋,這些就需要另外記錄。從本質上看,無損壓縮的方法可以刪除一些重復數據,大大減少要在磁碟上保存的圖像尺寸。但是,無損壓縮的方法並不能減少圖像的內存佔用量,這是因為,當從磁碟上讀取圖像時,軟體又會把丟失的像素用適當的顏色信息填充進來。如果要減少圖像佔用內存的容量,就必須使用有損壓縮方法。無損壓縮方法的優點是能夠比較好地保存圖像的質量,但是相對來說這種方法的壓縮率比較低。但是,如果需要把圖像用高解析度的列印機列印出來,最好還是使用無損壓縮幾乎所有的圖像文件都採用各自簡化的格式名作為文件擴展名。從擴展名就可知道這幅圖像是按什麼格式存儲的,應該用什麼樣的軟體去讀/寫等等。

⑧ 壓縮空氣流量如何計算

兄弟 可能你都不會信,昨天回去翻了一下書,公式簡單的要死
P=0.5ρV2

ρ---密度
V2---速度平方
P--靜壓(作用於物體表面)
壓縮的啊,那我就不大曉得了,我這是風管內

⑨ 我想要JPEG2000編碼基本原理及其應用的有關文獻,請問那裡可以找到謝謝

JPEG2000圖像壓縮標准及其關鍵演算法

周 寧 湯曉軍 徐維朴

(西安交通大學人工智慧與機器人研究所西安710049)

摘 要:JPEG2000是為適應不斷發展的圖像壓縮應用而出現的新的靜止圖像壓縮標准。闡述了JPEG2000圖像編碼系統的實現過程, 對其中採用的基本演算法和關鍵技術進行了描述,介紹了這一新標準的特點及應用場合,並對其性能進行了分析。�
關鍵詞:JPEG2000; 圖像壓縮;離散小波變換; 速率控制;感興趣區域��
1 引言�
隨著多媒體應用領域的快速增長和網路的不斷發展,傳統的JPEG壓縮技術已無法滿足人們對數字化多媒體圖像資料的要求,一種功能更強大、效率更卓越的靜止圖像壓縮標准被提到制定日程上,這就是JPEG2000。�
JPEG(Joint Photographic Experts Group)是在國際標准化組織(ISO)領導之下制定靜態圖像壓縮標準的委員會,第一套國際靜態圖像壓縮標准ISO 10918-1(JPEG)就是該委員會制定的。由於JPEG優良的品質,使他在短短幾年內獲得了極大的成功,被廣泛應用於互聯網和數碼相機領域,網站上80%的圖像都採用了JPEG壓縮標准。然而,目前的JPEG靜止圖像壓縮標准,具有中端和高端比特速率上的良好的速率畸變特性,但在低比特率范圍內,將會出現很明顯的方塊效應,其質量變得不可接受。JPEG不能在單一碼流中提供有損和無損壓縮,並且不能支持大於64×64 K的圖像壓縮。同時,盡管當前的JPEG標准具有重新啟動間隔的規定,但當碰到比特差錯時圖像質量將受到嚴重的損壞。�
針對這些問題,自1997年3月起,JPEG圖像壓縮標准委員會開始著手制定新一代的圖像壓縮標准以解決上述問題。2000年3月的東京會議,確定了彩色靜態圖像的新一代編碼方式JPEG2000圖像壓縮標準的編碼演算法。�
JPEG2000系統分為下列7個部分:�
①JPEG2000圖像編碼系統;�
②擴充(給①的核心定義添加更多的特徵和完善度);�
③運動JPEG2000;�
④一致性;�
⑤參考軟體(目前包含Java和C實現);�
⑥復合圖像文件格式(用於文件掃描和傳真應用程序);�
⑦對①的最小支持(技術報告)。�
①為完全被認可的ISO標准,定義了核心壓縮技術和最小文件格式,②~⑥定義壓縮和文件格式的擴充。其中,①已經制定完成,其餘部分還在制定過程中。本文所討論的JPEG2000標准就是基於第1部分的。
2 JPEG2000系統的特點�
JPEG2000以其特有的優點彌補了現行JPEG標準的不足。離散小波變換演算法中,圖像可以轉換成一系列可更加有效存儲像素模塊的子帶,因此,JPEG2000格式的圖像壓縮比可在現在的JPEG基礎上再提高10%~30%,而且壓縮後的圖像顯得更加細膩平滑。也就是說,在網上觀看採用JPEG2000壓縮的圖像時,不僅下載速率比採用JPEG格式的快近30%,而且品質也將更好。對於目前的JPEG標准,在同一個壓縮碼流中不能同時提供有損和無損壓縮,而在JPEG2000系統中,通過選擇參數, 能夠對圖像進行有損和無損壓縮,可滿足圖像質量要求很高的醫學圖像、圖像庫等方面的處理需要。現在網路上的JPEG圖像下載時是按"塊"傳輸的,因此只能逐行地顯示,而採用JPEG2000格式的圖像支持漸進傳輸(Progressive Transmission),這就允許圖像按照所需的解析度或像素精度進行重構,用戶根據需要,對圖像傳輸進行控制,在獲得所需的圖像解析度或質量要求後,便可終止解碼,而不必接收整個圖像的壓縮碼流。由於JPEG2000採用小波技術,利用其局部分辨特性,在不解壓的情況下,可隨機獲取某些感興趣的圖像區域(ROI)的壓縮碼流,對壓縮的圖像數據進行傳輸、濾波等操作。�
3 JPEG2000圖像編解碼系統�
本節主要介紹JPEG2000圖像編解碼系統。其編碼器和解碼器的框圖如圖1所示。�

在編碼器中,首先對源圖像進行前期預處理,對處理的結果進行離散小波變換,得到小波系數。然後對小波系數進行量化和熵編碼,最後組成標準的輸出碼流(位流)。解碼器是編碼器的反過程,首先對碼流進行解包和熵解碼,然後是反向量化和離散小波反變換,對反變換的結果進行後期處理合成,就得到重構的圖像數據。盡管JPEG2000編解碼過程與JPEG類似,但是對於每一步的具體實現兩者卻有非常大的差異。編碼過程的一般步驟如下:�
(1) 將有多個顏色分量組成的圖像分解成單一顏色分量的圖像。分量之間存在一定的相關性,通過分解相關的分量變換,可減少數據間的冗餘度,提高壓縮效率;�
(2) 分量圖像被分解成大小統一的矩形片——圖像片。圖像片是進行變換和編解碼的基本單元;�
(3) 每一個圖像片進行小波變換。產生多級系數圖像。這些不同級數的系數圖像可以重構出不同解析度的圖像;�
(4) 多級分解的結果是由小波系數組成的多個子帶。他們表示圖像片中局部區域(而不是整幅圖像)的頻率特性;�
(5) 對系數子帶進行量化,並且組成矩形數組的"碼塊";�
(6) 對一個碼塊中的系數位平面(也就是一個碼塊中整個系數中具有同樣權值的那些位)進行熵編碼;�
(7) 相對於圖像的背景區域,可以對感興趣區域進行更高質量的編碼;�
(8) 通過在位流中加入掩碼來增加抗干擾性;�
(9) 在每一個碼流的最前部都有一個頭結構,他描述的是源圖像的屬性,各種分解情況和編碼風格。這個頭結構可以用來進行定位、抽取、解碼和重構圖像,得到的圖像可以具有所期望的解析度、重現精度、感興趣的區域或是其他特性。�
編碼過程主要分為以下幾個過程:預處理、核心處理和位流組織。預處理部分包括對圖像分片、直流電平(DC)位移和分量變換。核心處理部分由離散小波變換、量化和熵編碼組成。位流組織部分則包括區域劃分、碼塊、層和包的組織。�
3.1 預處理�
(1)圖像分片�
分片指的是把源圖像分割成相互不重疊的矩形塊——圖像片,每一個圖像片作為一個獨立的圖像進行壓縮編碼。編碼中的所有操作都是針對圖像片進行的。圖像片是進行變換和編解碼的基本單元。圖像的分片降低了對存儲空間的要求,並且由於他們重構時也是獨立進行的,所以可以用來對圖像的特定區域而不是整幅圖像進行解碼。當然,圖像分片會影響圖像質量。比較小的圖像片會比大圖像片產生更大的失真。圖像分片在低比特率表示圖像的時候所造成的圖像失真會更加嚴重。
(2)DC電平位移�
在對每一圖像片進行正向離散小波變換之前,都要進行直流電平位移。目的是在解碼時,能夠從有符號的數值中正確恢復重構的無符號樣本值。直流電平位移是對僅有無符號數組成的圖像片的像素進行的。電平位移並不影響圖像的質量。在解碼端,在離散小波反變換之後,對重構的圖像進行反向直流電平位移。�
(3)分量變換�
JPEG2000支持多分量圖像。不同的分量不需要有相同的比特深度,也不需要都是無符號或有符號數。對於可恢復(無損)系統,唯一的要求就是每一個輸出分量圖像的比特深度必須跟相應輸入分量圖像的比特深度保持一致。�
3.2 核心處理�
(1)小波變換�
不同於傳統的DCT變換,小波變換具有對信號進行多解析度分析和反映信號局部特徵的特點。通過對圖像片進行離散小波變換,得到小波系數圖像,而分解的級數視具體情況而定。小波系數圖像由幾種子帶系數圖像組成。這些子帶系數圖像描述的是圖像片水平和垂直方向的空間頻率特性。不同子帶的小波系數反映圖像片不同空間解析度的特性。通過多級小波分解,小波系數既能表示圖像片中局部區域的高頻信息(如圖像邊緣),也能表示圖像片中的低頻信息(如圖像背景)。這樣,即使在低比特律的情況下,我們也能保持較多的圖像細節(如邊緣)。另外,下一級分解得到的系數所表示圖像在水平和垂直方向的解析度只有上一級小波系數所表示的圖像的一半。所以,通過對系數圖像的不同級數進行解碼,就可以得到具有不同空間解析度(或清晰,或模糊)的圖像。�
小波變換因其具有的這種優點被JPEG2000標准所採用。在編碼系統中,對每個圖像片進行Mallat塔式小波分解。經過大量的測試,JPEG2000選用兩種小波濾波器:LeGall 5/3濾波器和Daubechies 9/7濾波器。前者可用於有損或無損圖像壓縮,後者只能用於有損壓縮。�
在JPEG2000標准中,小波濾波器可以有2種實現模式:基於卷積的和基於提升機制的。而具體實現時,對圖像邊緣都要進行周期對稱延伸,這樣可以防止濾波器對圖像邊緣操作時產生失真。另外,為了減小變換時所需空間的開銷,標准中還應用了基於行的小波變換技術。�
(2)量化�
由於人類視覺系統對圖像的解析度要求有一定的局限,通過適當的量化減小變換系數的精度,可在不影響圖像主觀質量的前提下,達到圖像壓縮的目的。量化的關鍵是根據變換後圖像的特徵、重構圖像質量要求等因素設計合理的量化步長。量化操作是有損的,會產生量化誤差。不過一種情況除外,那就是量化步長是1,並且小波系數都是整數,利用可恢復整數5/3拍小波濾波器進行小波變換得到的結果就符合這種情況。�
在JPEG2000標准中,對每一個子帶可以有不同的量化步長。但是在一個子帶中只有一個量化步長。量化以後,每一個小波系數有2部分來表示:符號和幅值。對量化後的小波系數進行編碼。對於無損壓縮,量化步長必須是1。�
(3)熵編碼�
圖像經過變換、量化後,在一定程度上減少了空域和頻域上的冗餘度,但是這些數據在統計意義上還存在一定的相關性,為此採用熵編碼來消除數據間的統計相關。將量化後的子帶系數劃分成小的矩形單元——碼塊(code block)。

如圖2所示,採用兩層編碼策略,首先使用基於上下文的算術編碼器,每個碼塊進行獨立的嵌入式碼塊編碼,得到碼塊的嵌入式壓縮位流。然後,根據率失真優化原則,採用PCRD(Post Compression Rate Distortion)優化演算法思想,將所有碼塊的壓縮位流適當截取,組織成具有不同質量級的壓縮位流層。每一層上的壓縮位流連同其前面的所有層的壓縮位流,可重構出一定質量的圖像。在分層組織壓縮位流時,須對每個碼塊在每一層上的貢獻信息進行編碼,即對碼塊位流在該層的截斷點信息等編碼。由於圖像採用小波變換,整個圖像壓縮碼流具有解析度可分級性,從而,壓縮碼流可同時具有質量上和解析度上的可分級性。由於對碼塊進行獨立編碼,因此,可根據需要,隨機獲取並解碼相應的碼塊壓縮位流,重構出所需的圖像區域。
①第一層編碼演算法�
與傳統的依次對每個系數進行算術熵編碼不同,JPEG2000編碼系統把碼塊中的量化系數組織成若干個位平面,從最高有效位平面(MSB)開始,依次對每個位平面上的小波系數位進行算術編碼。�
第一層編碼可以看作2部分:上下文的生成(CF)和算術編碼器(AE)。在上下文的生成中,以一定的順序掃描碼塊中的所有位。在碼塊的每個位平面上,從左上角系數開始,從左到右,從上到下進行掃描,並為每一位生成一個上下文。算術編碼器根據生成的上下文,對每一位進行編碼。
在量化後,小波系數被轉換為符號-振幅模式。在從MSB到LSB編碼時,當遇到第一個為1的比特時,這個像素被稱作是顯著的,否則,為不顯著的。所有比特的上下文都是由他們的鄰域通過以下的4種方法產生:�
零編碼(zero coding,ZC)用來編碼非顯著像素在當前的位平面中是否將變得顯著;�
遊程編碼(run-length coding, RLC)用來編碼位於同一列中的4個非顯著性像素,如果他們的鄰域都是非顯著的;�
符號編碼(sign coding, SC)當該位變得顯著後,編碼他的符號位;
幅度編碼(Magnitude Refinement, MR)用來編碼顯著位。�
每個位平面都在3個編碼通道中進行編碼。通道1是重要性傳播通道(Significance Propagation Pass),至少有一個重要性鄰域的像素,在此通道進行編碼,使用ZC和SC。通道2是幅度細化通道(Magnitude Refinement Pass),所有的重要位在此通道進行編碼,使用MR。通道3是清除通道(Cleanup Pass),所有沒有在上兩個通道中進行編碼的像素,在此通道中進行編碼,使用ZC,LRC和SC。位平面中的每一位在3個通道中進行檢查來確定是否應當被編碼。
由編碼通道得到的上下文和與其對應的數據一起,送至算術編碼器進行編碼。在這里,採用了自適應二進制算術編碼〔1〕,主要是考慮到計算的復雜度以及實現的方便性。在進行算術編碼後,對每一個碼塊,得到一個獨立的嵌入式碼塊壓縮位流。�
②第二層編碼演算法�
在第二層編碼演算法中,採用PCRD率失真優化演算法思想〔1,2〕,對所有碼塊的嵌入式壓縮位流進行適當的截取,分層組織,形成整個圖像的具有質量可分級的壓縮碼流。第二層編碼演算法也可以看作兩部分:速率控制和分層組織壓縮位流。速率控制是指通過一定的編解碼措施,獲得給定壓縮碼率下的最佳重構圖像質量。分層組織壓縮位流根據編碼參數所規定的分層層數以及每一層的編碼速率,估算每一層的率失真門限,然後根據每一層估計出的率失真門限,按照碼塊率失真演算法,找到每個碼塊嵌入式壓縮位流在該層上的截斷點,將截斷的碼塊壓縮位流進行打包,按照規定的格式存儲,形成圖像壓縮碼流。將碼流分層組織,每一層含有一定的質量信息,在前面層的基礎上改善圖像質量。這樣用戶可以根據自己的需要,控制圖像的傳輸,在取得滿意的圖像效果後,中止傳輸,在某種程度上緩解當前網路帶寬有限而圖像數據量大而造成的瓶頸問題。
3.3 位流組織�
為了適合圖像交換,更好地應用JPEG2000壓縮碼流的功能,JPEG2000標准規定了存放壓縮位流和解碼所需參數的格式,把壓縮碼流以包為單元進行組織,形成最終的碼流。
4 JPEG2000中的關鍵技術�
在這一節中,對JPEG2000中所使用的關鍵技術加以說明。�
4.1 離散小波變換�
JPEG2000與傳統JPEG最大的不同在於他放棄了JPEG所採用的以離散餘弦變換(DCT)為主的區塊編碼方式,轉而採用以小波變換(DWT)為主的多解析編碼方式。 �
餘弦變換是經典的譜分析工具,他考察的是整個時域過程的頻域特徵或整個頻域過程的時域特徵,因此對於平穩過程,他有很好的效果,但對於非平穩過程,他卻有諸多不足。在JPEG中,離散餘弦變換將圖像壓縮為8×8 的小塊,然後依次放入文件中,這種演算法靠丟棄頻率信息實現壓縮,因而圖像的壓縮率越高,頻率信息被丟棄的越多。在極端情況下,JPEG圖像只保留了反映圖像外貌的基本信息,精細的圖像細節都損失了。小波變換是現代譜分析工具,他既能考察局部時域過程的頻域特徵,又能考察局部頻域過程的時域特徵,因此即使對於非平穩過程,處理起來也得心應手。他能將圖像變換為一系列小波系數,這些系數可以被高效壓縮和存儲,此外,小波的粗略邊緣可以更好地表現圖像,因為他消除了DCT壓縮普遍具有的方塊效應。
4.2 速率控制演算法�
JPEG2000通過採用速率控制方法來計算碼流的理想截斷點,從而獲得給定壓縮碼率下的最佳重構圖像質量。速率控制使用了PCRD率失真優化演算法。率失真優化,即給定整個壓縮碼流的最大編碼速率,找出每個碼塊壓縮位流的適當截斷點,在滿足的條件下,使重構圖像失真最小。從而使得嵌入式碼塊編碼具有如下特點:生成的壓縮位流可根據需要,被截斷成不同長度的位流子集;將所有碼塊的截斷位流組織起來,可重構出一定質量的圖像。�
4.3 漸進傳輸特性�
現在網路上的JPEG圖像下載時是按"塊"傳輸的,因此只能逐行顯示,而採用JPEG2000格式的圖像支持漸進傳輸。JPEG2000中的漸進傳輸有2種,按照解析度的漸進傳輸和按照質量的漸進傳輸。按照質量的漸進傳輸就是先傳輸圖像輪廓數據,然後再逐步傳輸細節數據來不斷提高圖像質量,而按照解析度的漸進傳輸則先傳輸解析度較低的圖像,後一幅圖像在前一幅圖像的基礎上提高其解析度。圖像的漸進傳輸使得用戶不需要像以前那樣等圖像全部下載後才決定是否需要,有助於快速地瀏覽和選擇大量圖片,從而有效的解決了網路傳輸的瓶頸問題。�
4.4 感興趣區域壓縮�
JPEG2000一個極其重要的優點就是ROI(Region of Interest,感興趣區域)。用戶可以任意指定圖片上感興趣的區域,然後在壓縮時對這些區域指定壓縮質量,或在恢復時指定某些區域的解壓縮要求。這是因為子波在空間和頻率域上具有局域性,要完全恢復圖像中的某個局部,並不需要所有編碼都被精確保留,只要對應他的一部分編碼沒有誤差就可以了。在實際應用中,我們就可以對一幅圖像中感興趣的部分採用低壓縮比以獲取較好的圖像效果,而對其他部分採用高壓縮比以節省存儲空間。這樣就能在保證不丟失重要信息的同時又有效地壓縮了數據量,實現了真正的"互動式"壓縮。�
5 JPEG2000標準的應用�
隨著科技的發展,網路已經滲透到每個人的生活之中。然而,受到網路帶寬的限制,高質量的圖像由於數據量很大,在網路上的傳輸延遲很大。因此,對於使用PC機、筆記本、掌上電腦或PDA,通過Modem接入網際網路訪問圖像數據的用戶來說,允許根據需要選擇恰當的圖像解析度進行瀏覽和傳輸是非常必要的。�
在軍事偵察和氣象預報中,由衛星遙感得到的圖像必須通過遠距離無線信道傳輸,傳輸誤碼的出現不可避免。JPEG2000編碼器特有的碼流組織形式是輸出碼流具有有效抑制誤碼的能力。這樣,碼流通過無線衛星通訊信道發還給地面接收站後,地面接收站在解碼過程中可以利用JPEG2000內部的碼流組織形式來避免由於傳輸誤碼而造成的錯誤解碼。�
此外,在安全確認、身份認證及醫學領域,JPEG2000都有著其廣泛的應用。可以預測,在不久的將來,JPEG2000將在以下領域得到廣泛的應用:網際網路、移動和便攜設備、印刷、掃描(出版物預覽)、數碼相機、遙感、傳真(包括彩色傳真和網際網路傳真)、醫學應用、數字圖書館和電子商務等。
6 結論�
JPEG2000旨在創建一個新的圖像編碼系統,該壓縮編碼系統的率失真和主觀圖像質量優於現有的JPEG標准,能夠提供對圖像的低碼率的壓縮,並且對壓縮碼流可進行靈活的處理,如隨機獲取部分壓縮碼流、圖像的漸進傳輸、感興趣區域的實現以及壓縮碼流較強的容錯性能等,該標准將與現行JPEG標准兼容。JPEG2000圖像壓縮標准以其優秀的性能,必將在數碼相機、遙感、傳真、醫療以及電子商務等多個領域得到廣泛的應用,成為21世紀的主流靜態圖像壓縮標准。

參考文獻

〔1〕JPEG 2000 Image Coding ystem.JPEG 2000 Final Committee Draft Version 1.0, 2000,16(3)�
〔2〕Taubman D. High Performance Scable Image Compression with EBCOT.IEEE Trans� Image Processing,1994,3(9):572~578�
〔3〕張曉娣,等.新一代的靜止圖像壓縮標准 JPEG2000.電信科學,2001(5)�
〔4〕李冬梅.發展中的靜止圖像壓縮標准JPEG2000.電視技術,2001(6)�
〔5〕王瑞軒.面向JPEG2000的二維DWT的VLSI設計與模擬,2002

wisher_lxy | 已被瀏覽119次 0 評論 | 引用(0) | 加入博採中心

最新發表
再別康橋
做人最重要的是積極!
無言
xml四種解析器及性能比較(轉載)
JPEG2000綜述 [轉]
為什麼人總是這么復雜?
從來不懂得放棄是種美麗!
我要一個人自由自在!
我要一個人自由自在!
生命如此之輕

最新回復
嘿嘿,復雜就復雜吧

Powered by BlogChina.com

熱點內容
八代雅閣壓縮機不工作 發布:2025-01-19 08:24:20 瀏覽:875
網頁與資料庫如何連接到伺服器地址 發布:2025-01-19 08:12:55 瀏覽:509
c語言單元測驗 發布:2025-01-19 07:58:56 瀏覽:990
c語言貪吃蛇源代碼 發布:2025-01-19 07:58:53 瀏覽:879
c語言char數組長度 發布:2025-01-19 07:46:23 瀏覽:10
淘寶如何清理緩存垃圾 發布:2025-01-19 07:42:07 瀏覽:438
電腦輸入密碼階段如何改語言 發布:2025-01-19 07:42:05 瀏覽:786
存儲器國產率 發布:2025-01-19 07:04:36 瀏覽:567
銳程cc藍鯨版選什麼配置 發布:2025-01-19 06:56:28 瀏覽:169
城鎮居民醫保卡的原始密碼是多少 發布:2025-01-19 06:55:54 瀏覽:788