專利名稱:解碼被破壞的jpeg2000碼流的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像編碼的誤差回復(fù)特性(error resilienceproperties),并且具體地說涉及JPEG2000圖像編碼算法,且特別地涉及用于改進(jìn)數(shù)字圖像、JPEG2000圖像和圖像視頻序列中的誤差回復(fù)性能的方法。
背景技術(shù):
隨著使用數(shù)字成像的應(yīng)用繼續(xù)擴(kuò)展,產(chǎn)生和處理的數(shù)字成像的量快速增加。刺激這種增長的關(guān)鍵技術(shù)之一是圖像壓縮。因為在圖像中的數(shù)據(jù)量可能非常大,圖像的發(fā)送或存儲不采用壓縮幾乎是不可能的。圖像壓縮的目的在于以盡可能少的比特表現(xiàn)圖像而是保存所需的質(zhì)量級別。壓縮可以用于減少傳輸或存儲圖像需要的信道帶寬。
圖像壓縮技術(shù)的標(biāo)準(zhǔn)促進(jìn)了圖像易于交換并顯著減少了用于圖像壓縮系統(tǒng)的專用硬件和軟件的成本。如果每個網(wǎng)站使用它自己的圖像壓縮技術(shù)將及其難以瀏覽因特網(wǎng)。每次瀏覽新的網(wǎng)站都需要下載和安裝不同圖像壓縮軟件。
可論證的,最成功的圖像壓縮標(biāo)準(zhǔn)是由國際標(biāo)準(zhǔn)組織(ISO)和國際電工委員會(IEC)的聯(lián)合委員會開發(fā)的JPEG(聯(lián)合圖像專家組)標(biāo)準(zhǔn)。在因特網(wǎng)上發(fā)布的大量圖像是使用JPEG壓縮的。
因為原來的JPEG標(biāo)準(zhǔn)化努力,該圖像壓縮技術(shù)具有很多優(yōu)點。引入了幾種新的圖像壓縮技術(shù),其不僅提供改進(jìn)的壓縮性能,而且提供增強的功能。另外,ISO/IEC聯(lián)合委員會認(rèn)識到幾個其中當(dāng)前標(biāo)準(zhǔn)不能解決或產(chǎn)生滿意結(jié)果的領(lǐng)域。因此,在1996年,開始開發(fā)新的標(biāo)準(zhǔn)。這個新的標(biāo)準(zhǔn)化努力計劃于2000年產(chǎn)生國際化標(biāo)準(zhǔn);因此標(biāo)準(zhǔn)被命名為JPEG2000。參考ISO/IEC 15444-1,“JPEG2000 Image CodingSystem”,2000和D.S.Taubman和M.W.Marcellin,JPEG2000ImageCompression Fundamentals,Practice and Standards,Kluwer AcademicPublishers,Massachusetts,2002。
除了提供原有技術(shù)的壓縮性能,JPEG2000提供解決新出現(xiàn)的成像應(yīng)用的需要的很多功能性。JPEG2000創(chuàng)建其中圖像壓縮系統(tǒng)更多地像圖像處理系統(tǒng)而不是像簡單的輸入-輸出存儲過濾器一樣工作的框架。關(guān)于幾個關(guān)鍵壓縮參數(shù),比如質(zhì)量或分辨率的決定能夠延遲到創(chuàng)建碼流之后,并且可以從單一碼流提取幾個不同的圖像產(chǎn)品。這個新的框架增強了現(xiàn)有成像應(yīng)用的功效并使得能夠使用新出現(xiàn)的成像應(yīng)用。
JPEG2000使用基于上下文(context)的算法位面(bitplane)編碼器用于熵編碼(entropy coding)。這個編碼器的工作高度依賴系統(tǒng)的狀態(tài),并且保持編碼器和解碼器的同步很重要。在比特流的算法編碼分段中的單一比特誤碼能夠破壞這個同步,并且造成錯誤解壓。
運動JPEG2000是用于處理視頻的JPEG2000標(biāo)準(zhǔn)的一部分。運動JPEG2000本身定義包括JPEG2000圖像、音頻、時序信息和元數(shù)據(jù)的一個或多個運動序列的文件格式。運動JPEG2000不使用幀內(nèi)(inte-frame)編碼。使用JPEG2000編碼在視頻序列中的每個圖像。可以使用其它視頻格式來處理JPEG2000圖像的序列。JPEG2000概述JPEG2000是新的國際圖像壓縮標(biāo)準(zhǔn)(ISO/IEC 15444-1,“JPEG2000 Image Coding System”,2000)。JPEG2000提供原有技術(shù)的壓縮性能以及相對先前的壓縮標(biāo)準(zhǔn)的改進(jìn)的功能。具體地說,JPEG2000標(biāo)準(zhǔn)的誤差回復(fù)特性(error resilience properties)提供幾個機制來對抗(combat)碼流中的誤差。雖然JPEG2000標(biāo)準(zhǔn)僅指定解碼器和碼流語法,描述代表性的編碼器來使得能夠更容易地解釋算法和理解誤差回復(fù)特性。更為平衡的觀點能夠在M.W.Marcellin,M.J.Gormish,A.Bilgin和M.P.Goliek的“An overview of JPEG-2000”,Data Compression Conference,pp.523-541,March 2000,Snowbird,UT.找到。對于JPEG2000的完全概述,參考D.S.Tarubman和M.W.Marcellin的JPEG2000Image Compression Fundamentals,Practice and Standards,Kluwer Academic Publishers,Massachusetts,2002。
JPEG2000編碼器10的基本框圖如圖1所示。這里,首先將輸入圖像12劃分為非重疊矩形窗口配置(tiles)14。如果圖像具有多個分量,可以應(yīng)用可選的分量變換16以解相關(guān)分量。在特定窗口配置中的每個分量的采樣被稱為窗口配置分量(tile-component)。之后使用小波變換18變換每個窗口配置分量并且將小波子帶分區(qū)位幾個不同的幾何結(jié)構(gòu),如圖2所示。這些幾何結(jié)構(gòu)是啟用低存儲器實現(xiàn)的工具并且提供空間隨機存取,并且實現(xiàn)碼流的誤差回復(fù)。
JPEG2000中的最小幾何結(jié)構(gòu)是碼塊。通過分區(qū)小波子帶形成碼塊。如圖2所示,特定分辨率的碼塊28被一起分組以形成區(qū)域(precinct)30a、30b和30c(最低到最高分辨率)。一旦量化小波子帶(20),使用位面編碼器22單獨壓縮每個碼塊。位面編碼器在碼塊的每個位面上形成三個通道(pass)。這些通道被稱為編碼通道或子位面。來自每個碼塊的壓縮的數(shù)據(jù)被認(rèn)為是嵌入的碼塊比特流24。之后基于任意需要的標(biāo)準(zhǔn),產(chǎn)生(27)JPEG2000碼流26以包括來自每個單獨的碼塊比特流24的不同數(shù)目的編碼通道。
位面編碼如先前部分所述的,獨立于每個碼塊執(zhí)行熵編碼。將這個編碼執(zhí)行為位面的內(nèi)容相關(guān)的、二進(jìn)制的算術(shù)編碼。采用的算術(shù)編碼器是在JBIG-2標(biāo)準(zhǔn)中指定的MQ編碼器(ISO/IEC 14492,“informationTechnology-Lossy/Lossless Coding of Bi-level Images,1999)。考慮是在符號-數(shù)量表示中的整數(shù)陣列的量化模塊,使得q[n]指示在碼塊的位置n=[n1,n2]的量化索引。使得χ[n]=Δsign(q[n])]]>和v[n]=Δ|q[n]|]]>分別指示符號和數(shù)量陣列。當(dāng)q[n]=0時x[n]是不能確定的。但是,這個情況不引起任意問題,因為當(dāng)q[n]=0時不需要編碼符號。之后,考慮具有來自每個系數(shù)的一個比特的二進(jìn)制陣列的序列。這些二進(jìn)制陣列被稱為位面。一旦這種陣列能夠存儲每個系數(shù)的符號,例如,符號面32,如圖3a所示。使得用于當(dāng)前子帶的數(shù)量位面的數(shù)目由Kmax指示。最上面的數(shù)量位面34包括所有數(shù)量的最高(有效)位(MSB)。下一個位面包括所有數(shù)量的下一個MSB,以這種方式繼續(xù)直到最終位面36包括所有數(shù)量的LSB。
使得 表示由從v[n]下降p個LSB產(chǎn)生的值。在位面p的采樣的“有效性”由下面的定義σ(p)[n]=1v(p)[n]>00v(p)[n]=0]]>因此,如果σ(p)[n]=1,在位置n的采樣被認(rèn)為相對于位面p是有效的。否則,認(rèn)為采樣沒有效。對于子帶中的給定碼塊,編碼器首先確定合適數(shù)量的位面,K≤Kmax,需要其來表示在碼塊中的采樣。典型地,將K選擇為使得對于所有n,v[n]<2K的最小整數(shù)。將等于零的位面的數(shù)目(從MSB開始),Kmsbs=Kmax-K作為附屬信息通知解碼器。每個子帶的Kmax還可用于解碼器。然后,從位面K-1開始,在三個通道(稱為編碼通道)中編碼每個位面。
在每個模塊(在所有子帶中)中的位面編碼之后的掃描圖形38如圖3b所示。在三個編碼通道的每個中之后是這個掃描圖形?;谀莻€比特的位置的有效性和相鄰位置的有效性決定在哪個通道中編碼給定比特。使用內(nèi)容相關(guān)的二進(jìn)制算法編碼進(jìn)行所有位面編碼,除了有時在第三通道中采用游程的編碼。定義σ[n]為編碼處理期間采樣的“有效性狀態(tài)”。在編碼處理的開始對于所有采樣將σ[n]設(shè)置為零,并且一旦編碼采樣的第一非零數(shù)量比特,就將其重新設(shè)置為1。
在新的位面中的第一圖形被稱為有效性傳播通道。如果它的位置是無效的,但是它連接的八個相鄰比特中至少一個是有效的,那么在這個通道中編碼比特。換句話說,如果σ[n]=0且Σk1=-11Σk2=-11σ[n1+k1,n2+k2]≥1]]>則在有效性傳播路徑中編碼在位置n的比特。如果編碼比特且編碼的比特是1,編碼當(dāng)前采樣的符號比特且立即將σ[n]=0設(shè)置到1。
在JPEG2000中,根據(jù)當(dāng)前比特的內(nèi)容選擇用于驅(qū)動算術(shù)編碼器的概率估計。另外,JPEG2000根據(jù)編碼通道和子帶類型采用不同的上下文模型。對于有效性編碼(significance coding),使用9個不同上下文。上下文標(biāo)簽κsig[n]是根據(jù)當(dāng)前比特44的八個連接的相鄰比特42的有效性狀態(tài),如圖4所示。使用這些相鄰的有效性狀態(tài),從三個量形成κsig[n]κh[n]=σ[n1,n2-1]+σ[n1,n2+1]κv[n]=σ[n1-1,n2]+σ[n1+1,n2]κd[n]=Σk1∈{-1,1}Σk2∈{-1,1}σ[n1+k1,n2+k2]]]>表1示出了給定κh[n]、κv[n]和κd[n]怎樣產(chǎn)生κsig[n]。之后κsig[n]確定用于算術(shù)編碼的概率估計。
本發(fā)明所制備的桐酸甲酯酸(酐)型低分子聚酰胺與環(huán)氧樹脂固化物的耐熱性、硬度、拉伸強度和拉伸剪切強度比現(xiàn)有技術(shù)的比較例的固化物性能均有所提高。
表實施例和比較例性能比較
實施例4一種由桐油制備低分子聚酰胺的方法第一步將100份重量的桐油與50-100份重量的甲醇在占桐油重量0.1%-5%的無機堿或路易斯酸催化劑作用下,于50℃-80℃進(jìn)行酯交換2小時以上得到桐酸甲酯,該無機堿可采用氫氧化鈉或氫氧化鉀或氫氧化鈣或氫氧化鎂,路易斯酸可以是三氯化鋁或三氯化鐵或氧化鋅;第二步將100份重量的桐酸甲酯與10~80份重量的不飽和二元酸(酐)在占投料重量的2%~5%的路易斯酸催化下,在80℃-180℃下進(jìn)行加成反應(yīng)2小時以上,得到桐酸甲酯酸(酐),該路易斯酸催化劑可以是三氯化鋁、三氯化鐵、氧化鋅、氧化鎂或碘;第三步將100份重量的桐酸甲酯酸(酐)與50~150份重量的多元胺在于150℃-230℃下酰胺化反應(yīng)2小時以上,負(fù)壓蒸出未反應(yīng)物,得到桐酸甲酯酸(酐)型低分子聚酰胺,該多元胺可以是脂肪族多元胺、脂環(huán)族多元胺或芳香族多元胺。
實施例5
表2 符號編碼的上下文標(biāo)簽
第二通道是數(shù)量求精通道。在這個通道中,編碼來自在先前位面中有效的位置的所有比特。如名字所暗示的,這個通道求精在先前位面中已經(jīng)很有效的采樣的數(shù)量。如表3所示的選擇該數(shù)量求精內(nèi)容標(biāo)簽κmag[n]。在表中,σ[n]指示由一個位面延遲的σ[n]的有效性狀態(tài)變量。換句話說,類似于σ[n],在開始將σ[n]初始化到0,并且僅在編碼采樣的第一數(shù)量求精比特之后設(shè)置到1。
表3用于數(shù)量求精編碼的上下文表“-表示忽略”
第三和最終通道是清掃(clean-up)通道,其考慮沒有在前兩個通道中編碼的任意比特。通過定義,這個通道是“有效性”通道,所以如在有效性傳播通道中所述的,有效性編碼用于編碼在這個通道中的采樣。但是,不像有效性傳播通道,游程編碼模式也可以出現(xiàn)在這個通道中。當(dāng)在掃描39的列中的所有四個位置(參考圖3b)沒有效,且每個僅具有不重要的相鄰位置時發(fā)生游程編碼。然后編碼單一比特以指示列是否是相同的零。如果不是,編碼零游程的長度(0到3),反轉(zhuǎn)到“正?!钡囊槐忍匾槐忍鼐幋a用于在終止零游程的1之后的位置JPEG2000碼流的解析JPEG2000碼流的結(jié)構(gòu)如圖5所示。為了形成碼流的目的,布置來自每個區(qū)域的壓縮數(shù)據(jù)以形成分組46。對于每個區(qū)域可以有多個分組,對應(yīng)于多個“質(zhì)量層”(quality layers)。每個分組包括來自區(qū)域中的每個碼塊的零或多個編碼通道。以這種方式,可以在多個分組上分區(qū)來自碼塊的編碼通道。分組在組織JPEG2000碼流的數(shù)據(jù)中擔(dān)任重要角色。每個分組包括報頭48和分組主體50。分組報頭包括關(guān)于在區(qū)域中的每個碼塊在分組中的分布的信息。而分組主體包括碼塊的編碼通道。數(shù)據(jù)特定窗口配置的分組被一起分組以形成窗口配置流52,并且將窗口配置流一起分組以形成JPEG2000碼流54。類似于分組,窗口配置流包括報頭56和主體58??梢詫⒋翱谂渲昧鞣纸鉃槎鄠€窗口配置部分。在這個情況中,第一窗口配置部分包括窗口配置報頭,且剩余的窗口配置部分包括窗口配置部分報頭。在碼流的開始還有一個主要報頭60。EOC62標(biāo)記表示碼流的結(jié)尾。
誤差回復(fù)使用基于上下文的算術(shù)位面編碼器來實現(xiàn)JPEG2000中的熵編碼。這個編碼器的操作高度依賴系統(tǒng)的狀態(tài),并且保持在編碼器和解碼器之間的同步很重要。在比特流的算術(shù)編碼分段中的單一比特錯誤能破壞這個同步,并且造成錯誤的解壓。為了解決這個問題,在JPEG2000中提供了幾個誤差回復(fù)工具。
將碼流分區(qū)為不同的分區(qū)組是解決的第一步??紤]誤差回復(fù),分區(qū)意在隔離在一個分區(qū)組中誤差到那個特定分區(qū)組中,并且防止誤差傳播通過分區(qū)組邊界。因為以分層方式組織碼流,這個隔離發(fā)生在幾個級別。每個碼流以主要報頭開始。主要報頭包括比如圖像和碼塊尺寸的判據(jù)信息,并且對于碼流的校正解壓很重要。如果主要包頭的區(qū)域(section)在解碼器不可用,解碼器可能不能夠解碼碼流。類似地,如果在傳輸期間窗口配置流報頭丟失,解碼器可能不能確定那個窗口配置的正確解壓需要的幾個參數(shù)。這可能造成丟棄整個窗口配置。如果使用窗口配置部分且第一窗口配置部分報頭丟失可能出現(xiàn)類似的情況。但是,如果任意剩余的窗口配置部分的報頭丟失,解碼器將能夠解壓以前的窗口配置部分并可能需要丟棄屬于當(dāng)前窗口配置的剩余的窗口配置部分。如果丟失分組報頭,在對應(yīng)于相應(yīng)區(qū)域的當(dāng)前和將來的分組中的所有數(shù)據(jù)將不得不被丟棄。因為碼塊是被獨立編碼的,誤差不在碼塊之間傳播。因為來自一個碼塊的編碼通道可能在多個分組中出現(xiàn),即使分組報頭沒有被破壞,誤差可以在分組之間傳播。
JPEG2000提供其中可以從每個分組中提取分組報頭并存儲在窗口配置部分報頭或主報頭中的機制。這被稱為填滿的分組報頭(packedpacket header)。如果能夠以無損方式發(fā)送主報頭和窗口配置部分報頭,填滿的分組報頭能夠提供誤差回復(fù)的顯著優(yōu)點。因為分組報頭包括在分組中所有編碼通道的字節(jié)長度,解碼器能夠使用這個信息隔離誤差。
誤差檢測和重同步。
為了實現(xiàn)分級的數(shù)據(jù)分區(qū),JPEG2000提供用于誤差檢測和重同步的幾個機制。一個這種機制是JPEG2000中的字節(jié)填塞過程(byte-stuffing procedure)。通過使用這個字節(jié)填塞過程,JPEG2000算術(shù)編碼器不產(chǎn)生編碼通道內(nèi)的特定值(0xFF90到0xFFFF)。這些被稱為定界標(biāo)記碼(delimiting marker code)的值保存用于碼流標(biāo)記。這些值之一的未期望檢測表示發(fā)生了誤差。
通過模式變量啟用一些誤差檢測和重同步機制。這些對于編解碼的默認(rèn)模式的選項允許在壓縮效率的某些稍微降低的交換的附加性能。通過在報頭內(nèi)部信號通知的標(biāo)志(flag)控制模式變量。這些模式切換如表4所列,并不是都意在增強誤差回復(fù)。
表4模式變量
當(dāng)使用RESET模式時,將上下文狀態(tài)(也就是,用于算術(shù)編碼的概率)復(fù)位到在每個編碼通道的結(jié)尾的它們的初始值。如果不指定RESET切換,這個初始化僅發(fā)生在碼塊的第一編碼通道之前。雖然這個模式略微減少了壓縮效率,對于并行處理應(yīng)用是有用的。
該RESTART切換使得MQ編碼器在每個編碼通道的開始被重啟。因此,當(dāng)使用這個模式時,每個編碼通道具有自己的MQ代碼字分段。在分組報頭中信號通知這些分段的每個的長度。這樣這個模式減少了壓縮效率并增加了總開銷量。但是,RESTART模式對于誤差回復(fù)非常有用,這是因為它增加了解碼器的數(shù)據(jù)恢復(fù)能力。
BYPASS模式的目的是提供高速下復(fù)雜度的降低,以及壓縮效率的較少損失。當(dāng)選擇這個模式時,當(dāng)p<K-4時,在第一(有效性傳播)和第二(數(shù)量求精)編碼通道期間MQ編碼器被分路。換句話說,僅在每個碼塊的第十編碼通道之后激活這個模式。因為在第十編碼通道之后,來自前兩個編碼通道的碼元對于多數(shù)圖像不顯示出高度傾斜的概率,這個模式通常不造成壓縮效率的可觀損失。當(dāng)分路MQ編碼器時,在原始分段中存儲二進(jìn)制碼元。為了避免在這些原始分段內(nèi)部出現(xiàn)定界標(biāo)記碼,采用簡單的比特填塞過程。將原始分段插入比特流需要終止先前的MQ編碼分段。而且需要在開始MQ分段(清除編碼通道)之前終止原始分段。如果也選擇了RESTART模式,則在每個編碼通道的結(jié)尾發(fā)生終止。應(yīng)該在相關(guān)分組報頭內(nèi)信號通知每個終止的分段的長度。
由標(biāo)準(zhǔn)定義的另一模式是SEGMARK模式。如果啟用這個模式,在每個位面的第三編碼通道的結(jié)尾插入四個碼元代碼(“1010”)。因為在任意編碼通道中的比特誤差易于破壞這些碼元的至少一個,解碼器能夠檢測發(fā)生誤差,并且丟棄錯誤的編碼通道。
該標(biāo)準(zhǔn)沒有定義編碼器需要采用的特定代碼字終止方針。總的來說,編碼器可以以造成矯正解碼的任意方式自由地終止代碼字。但是,當(dāng)使用ERTERM模式時,編碼器對于每個MQ和/或原始代碼字分段采用可預(yù)測的終止方針。因此,解碼器能夠檢測在特定編碼通道中發(fā)生誤差。
由標(biāo)準(zhǔn)定義CAUSAL模式以允許并行處理編碼通道。當(dāng)使用CAUSAL模式時,略微修改上下文形成過程?;叵朐诖a塊中采樣的掃描圖形,如圖3b所示,其是4-采樣條紋定向掃描。在CAUSAL模式中,編碼在當(dāng)前條紋64中的采樣而不根據(jù)將來的條紋66的值。因此,當(dāng)形成上下文時,來自將來條紋的所有采樣被認(rèn)為無效。為了澄清,假定編碼在位置n的采樣67,如圖6所示。如圖所示,假定這個采樣屬于條紋的第四行。如果使用CAUSAL模式,認(rèn)為對于κ2=-1,0,1,有效性狀態(tài)σ[n1+1,n2+κ2]是0。
JPEG2000的誤差回復(fù)特性在比如因特網(wǎng)或無線網(wǎng)絡(luò)的有損通信信道上的圖像傳輸是快速擴(kuò)展的市場,其提供了額外的技術(shù)挑戰(zhàn)。當(dāng)在這種信道上發(fā)送壓縮的圖像時,在解碼器接收的壓縮的碼流包括誤差。解碼器應(yīng)該能夠使用這些有噪聲的碼流重建圖像。很多圖像壓縮方法依靠依賴系統(tǒng)狀態(tài)的有效熵編碼器。這種編碼器對于碼流中的誤差很敏感。JPEG2000標(biāo)準(zhǔn)沒有定義當(dāng)檢測到碼流中的誤差時解碼器的行為。
在有損通信信道上的高性能圖像編解碼器的操作需要仔細(xì)的設(shè)計,以避免當(dāng)碼流被破環(huán)時完全失敗。設(shè)計高度依賴信道的損失特性。例如,假定信道引入擦除使得一些發(fā)送的數(shù)據(jù)不由解碼器接收。這種模型實際上被用于表現(xiàn)因特網(wǎng)的傳輸特性。假定反饋信道可用,一個方法是向發(fā)送者請求重發(fā)丟失的數(shù)據(jù)。這是如何在因特網(wǎng)上使用TCP/IP協(xié)議實現(xiàn)可靠的通信。如果用戶接收被破壞的圖像(或數(shù)據(jù)分組),用戶丟棄數(shù)據(jù)且發(fā)送消息到數(shù)據(jù)被破壞的服務(wù)器。服務(wù)器重發(fā)數(shù)據(jù)直到無誤差地接收。這個方法的優(yōu)點在于最終無誤差地接收圖像。但是,存在很多缺點。首先,這個方法需要反饋信道。在一些情況下,這種信道可能不存在,或者解碼器因為安全性考慮不希望接觸發(fā)送者。如果信道經(jīng)歷大量損失,重發(fā)請求將進(jìn)一步洪流(flood)信道并且信道的有效帶寬將可能相當(dāng)?shù)?。另外,這個方法引入延遲且不可應(yīng)用于實時應(yīng)用。
JPEG2000圖像的當(dāng)前實踐是當(dāng)在特定編碼通道中檢測到誤差時,丟棄用于碼塊的當(dāng)前和將來的編碼通道。如前所述的,從MSB開始到LSB壓縮每個碼塊的位面。對于每個碼塊執(zhí)行三個編碼通道。如果解碼器檢測在特定編碼通道中的誤差,保持從之前編碼通道重建的位面,并且丟棄屬于當(dāng)前碼塊的當(dāng)前和將來的編碼通道。不影響其它碼塊。這將造成對于由碼塊影響的區(qū)域的重建圖像的質(zhì)量降低。這個實踐在所有現(xiàn)有的軟件實現(xiàn)中采用,包括ISO/IEC JTC1/SC29/WG1N2165,“JPEG2000 Verification Model 9.1(技術(shù)描述),”2001;D.Tarbman,“KakaduA comprehensive,heavily optimized,fullycompliant software toolkit for JPEG2000 developers,”http//www.kakadusoftware.com;M.D.Adams,“JasPer,”http//www.ece.ubc.ca/~mdadams/jasper;和“JJ2000An implementationof JPEG2000 standard in Java,”http/jj2000.epfl.ch,且在文件中不存在本方法的其它選擇。
發(fā)明內(nèi)容
考慮上述問題,本發(fā)明提供了用于解碼編碼的數(shù)字圖像/視頻的被破壞的碼流的解碼技術(shù),并且具體地說,提供具有改進(jìn)的誤差回復(fù)特性的JPEG2000碼流。
解碼技術(shù)應(yīng)用于一系列編碼算法,比如其中以在數(shù)據(jù)中引入確定已知相關(guān)性的方式編碼在其下的圖像的JPEG2000。將數(shù)據(jù)分區(qū)為n個分區(qū)組以限定相關(guān)性到(例如)有限空間區(qū)域。n=1的概率對應(yīng)于包括所有數(shù)據(jù)的一個分區(qū)組。當(dāng)在分區(qū)組中發(fā)生誤差時,在每個分區(qū)組中的相關(guān)性確定搶救在誤差之后那個分區(qū)組中剩余數(shù)據(jù)的一些、全部或不搶救。另外,當(dāng)在分區(qū)組發(fā)生誤差時,在分區(qū)組之間的相關(guān)性確定是否搶救在其它相關(guān)組中的數(shù)據(jù)。
通過在分區(qū)組中檢測誤差,分析在分區(qū)組中,且可能在分區(qū)組之間的相關(guān)性,確定當(dāng)誤差發(fā)生時能夠搶救數(shù)據(jù)的哪些部分,以及解碼那些部分,能夠以改進(jìn)的圖像質(zhì)量解碼被破壞的碼流。當(dāng)可用時使用關(guān)于誤差位置的外部信息。這是基于根據(jù)(可能)在碼流創(chuàng)建期間使用的確定的模式或“切換”,即使在特定分區(qū)組中存在誤差,那個組的一部分(以及另外的相關(guān)組)可能仍然完全或部分可解碼的事實來實現(xiàn)的。
在JPEG2000中,以很多級別來分區(qū)壓縮的碼流。首先將碼流分區(qū)為窗口配置流(tile-streams)。窗口配置流被分區(qū)為分組,并且分組包括來自不同碼塊的編碼通道(coding passes)。獨立于每個碼塊執(zhí)行熵編碼。執(zhí)行這個編碼為位面的上下文相關(guān)、二進(jìn)制的算術(shù)編碼。在碼塊的每個位面上執(zhí)行三個通道,并且對于每個碼塊產(chǎn)生單獨的比特流?;谀莻€比特位置的有效性和相鄰位置的有效性決定哪個通道編碼給定比特。這些通道被分別稱為有效性傳播通道(significancepropagation pass)、數(shù)量求精通道(magnitude refinement pass)、和清除通道(clean-up pass)。解碼技術(shù)是基于即使在先前的編碼通道中存在誤差,根據(jù)在創(chuàng)建碼流期間使用的特定模式切換(RESET、BYPASS和CAUSAL)和在誤差位置上外部信息是否可用,一些(或全部)將來的編碼通道仍可能完全或部分可解碼。即使它們形成相同碼塊,可能可解碼的將來的編碼通道被在多個分組之間分區(qū)。當(dāng)在碼流中發(fā)生誤差時,解碼器基于這些切換的狀態(tài)小心確定誤差怎樣傳播通過碼流。解碼不由誤差影響的碼流的區(qū)域而不是丟棄。
本領(lǐng)域普通技術(shù)人員通過下面結(jié)合附圖的優(yōu)選實施例的詳細(xì)說明能夠更加清楚本發(fā)明的這些和其它特征及優(yōu)點,在附圖中
圖1是如上所述的JPEG2000編碼器的框圖;圖2是如上所述的用于窗口配置分量的小波子帶的分區(qū);圖3a和3b分別是如上所述的表示碼塊的位面和用于位面編碼的掃描圖形;圖4是如上所述的用于形成有效性上下文模型的相鄰采樣;圖5是如上所述的簡單的JPEG2000的碼流;圖6示出了如上所述的CAUSAL模式中上下文的形成;圖7a和7b是用于根據(jù)本發(fā)明解碼被破壞的數(shù)據(jù)的解碼技術(shù)的流程圖;圖8是碼塊比特流;圖9-14是根據(jù)本發(fā)明的沒有外部誤差檢測的編碼通道相關(guān)性;圖15-24輸出了根據(jù)本發(fā)明的具有外部誤差檢測的編碼通道相關(guān)性;圖25-26是示出了能夠搶救的采樣的實例;圖27是由CCP在KDU上提供的PSNR增益的分布;以及圖28是JPEG-2000成像和分布系統(tǒng)的框圖。
具體實施例方式
本發(fā)明提供用于解碼編碼的數(shù)字圖像和視頻序列的被破壞的碼流的解碼技術(shù),并且具體地說,提供具有改進(jìn)的誤差回復(fù)特性的JPEG2000碼流。很清楚當(dāng)圖像是視頻序列的一部分時可應(yīng)用本發(fā)明,可以采用或不采用運動JPEG2000文件格式。
解碼技術(shù)應(yīng)用于一系列編碼算法,比如其中以在數(shù)據(jù)中引入確定已知相關(guān)性的方式編碼在其下的圖像的JPEG2000。將數(shù)據(jù)分區(qū)為n個分區(qū)組以限定相關(guān)性到(例如)有限空間區(qū)域。n=1的概率對應(yīng)于包括所有數(shù)據(jù)的一個分區(qū)組。該數(shù)據(jù)可以不是文字圖像像素,但是可以由像素的一些處理獲得例如,量化小波系數(shù)。當(dāng)在分區(qū)組中發(fā)生誤差時,在每個分區(qū)組中的相關(guān)性確定在誤差之后可被搶救的那個分區(qū)組中剩余數(shù)據(jù)的一些、全部或不搶救。另外,當(dāng)在分區(qū)組發(fā)生誤差時,在分區(qū)組之間的相關(guān)性確定是否搶救在其它相關(guān)組中的數(shù)據(jù)。
如圖7a所示,通過觀察以在下面的算法(200)實行的分區(qū)、檢測分區(qū)組中的誤差(202)、分析在分區(qū)組之中且可能在分區(qū)組之間的相關(guān)性,確定當(dāng)誤差發(fā)生時搶救數(shù)據(jù)的哪些部分(206)和解碼那些搶救部分(208),以改進(jìn)的圖像質(zhì)量解碼被破壞的碼流。當(dāng)可用時使用關(guān)于誤差的位置的外部信息。這是基于即使在特定分區(qū)組中存在誤差,根據(jù)(可能)在創(chuàng)建碼流期間使用的特定模式或“切換”,那個組的一部分(或其它相關(guān)的組)仍然可完全或部分解碼的事實決定的。即使在分區(qū)組的第一誤差之后發(fā)生的部分(完全或部分可解碼)也是正確的;事實上,即使根據(jù)其中發(fā)生誤差的分區(qū)組,可解碼的部分位于另一分區(qū)組。這個情況,例如,關(guān)于何時在多個分組中進(jìn)一步分區(qū)來自碼塊的編碼通道。
下面參考JPEG2000詳細(xì)描述解碼技術(shù),但是應(yīng)該理解在這里描述的原理可以應(yīng)用于靜態(tài)和視頻圖像的其它壓縮算法,其中以相關(guān)方式編碼在下面的數(shù)據(jù)并且管理相關(guān)性的規(guī)則是已知的。例如,運動JPEG2000。
如上所述,在JPEG2000中,獨立于每個碼塊執(zhí)行熵編碼。這個編碼被執(zhí)行為位面的上下文相關(guān)的、二進(jìn)制的算術(shù)編碼。在從最高有效的位面68到最低有效的位面70的碼塊的每個位面上執(zhí)行三個通道,并且對于每個碼塊產(chǎn)生單獨的比特流,如圖8所示。基于比特位置的有效性和相鄰位置的有效性決定編碼哪個通道的給定比特。這些通道分別被稱為significance propagation pass(有效性傳播通道)72,magnitude refinement pass(數(shù)量求精通道)73和clean-up pass(清除通道)74。
解碼技術(shù)是基于這樣的觀察即使在先前的編碼通道中存在誤差,根據(jù)在創(chuàng)建碼流期間使用的某些模式,一些(或全部)將來的編碼通道仍可能完全或部分可解碼。為了效率,必須知道管理在分區(qū)組之中且可能在分區(qū)組之間的相關(guān)性的規(guī)則。具體地說,如用于JPEG2000圖像的圖7b所示,通過觀察由JPEG2000算法(210)實行的分區(qū),檢測在特定編碼通道中的誤差(212),分析在編碼通道之中由BYPASS、RESET和CAUSAL切換214、216和218的狀態(tài)定義的相關(guān)性(步驟220),確定當(dāng)發(fā)生誤差時數(shù)據(jù)的哪些部分(222)可被搶救并解碼那些搶救部分(224)來解碼被破壞的碼流。在JPEG2000中,分區(qū)組可以是窗口配置、分量、窗口配置分量、窗口配置部分、區(qū)域(precinct)、分組或碼塊。在下面的特定情況中,在由碼塊給定的分區(qū)組中分析相關(guān)性。當(dāng)在多個分組上進(jìn)一步分區(qū)來自碼塊的編碼通道時,在分組給定的分區(qū)組之間分析相關(guān)性。
可以在不同情況下恢復(fù)碼塊比特流的不同部分。在解碼期間可以使用關(guān)于誤差的位置的外部信息??梢詮脑趥鬏斨皯?yīng)用到JPEG2000碼流的信道代碼收集這種信息。對于分組切換網(wǎng)絡(luò),比如因特網(wǎng),可以從網(wǎng)絡(luò)層容易地獲得這個信息。對于編碼通道中的第一誤差的位置具有特定興趣。如果這個信息可用,可以獲得當(dāng)前和未來的編碼通道的部分解壓縮。
沒有外部誤差檢測在沒有關(guān)于誤差位置的外部信息可用的情況下,使用JPEG2000的內(nèi)部機制執(zhí)行誤差檢測。假定在編碼器設(shè)置了RESTART和ERTERM開關(guān),其允許識別單獨編碼通道和將碼塊比特流解析為在解碼器的單獨的編碼通道。
考慮由是否設(shè)置RESET和BYPASS切換以在編碼器創(chuàng)建碼流確定的四個不同情況。對于四個情況的每一個,考慮在有效性傳播、數(shù)量求精、以及清除通道中單獨發(fā)生的誤差。如附圖所示,需要丟棄的比特流部分畫上了交叉陰影。使用下面的標(biāo)簽指示不同編碼通道有效性傳播1,數(shù)量求精2,清除3。這形成單獨分析的十二個不同情況。
RESET=False(假),BYPASS=False(假),Error in significancePropagation(在有效性傳播中的誤碼)當(dāng)在有效性傳播通道78中存在誤差76時,κsig和σ[j]被破壞。因此,下面的編碼通道都不能被解碼(參考圖9)。對于每個位面,執(zhí)行三個編碼通道并且基于比特以及它的相鄰比特的有效性狀態(tài)σ[j]決定在哪個編碼通道編碼特定的比特。因為在編碼開始之前將有效性信息初始化到零,并且在編碼期間更新,在有效性信息中的單一誤差將傳遞到所有將來的編碼通道。一旦有效性信息被破壞,其中在位面中訪問采樣的順序被破壞。這個誤差傳播到所有將來的編碼通道,并且它們都不能被解碼。
RESET=False(假),BYPASS=False(假),Error in magnitudeRefinement(數(shù)量求精通道中的誤碼)當(dāng)在數(shù)量求精通道82中存在誤差80時,雖然κsig沒有被破壞,用在用于數(shù)量求精通道的算術(shù)編碼中的狀態(tài)信息被破壞。因此,應(yīng)該丟棄所有下面的數(shù)量求精編碼通道。但是,可以解碼編碼通道的兩個其它類型。參考圖11。
RESET=False(假),BYPASS=False(假),Error in Clean-up(清除通道中的誤差)類似于有效性傳播通道,當(dāng)在清除通道86中存在誤差84時,κsig和σ[j]被破壞。因此,下面的編碼通道都應(yīng)該被丟棄。參考圖10。
RESET=False(假),BYPASS=True(真),Error in SignificancePropagation(有效性傳播中的誤差)當(dāng)在有效性傳播通道90中存在誤差88時,κsig和σ[j]被破壞。雖然沒有進(jìn)一步的有效性傳播或清除通道能夠被解碼,可以使用更多的數(shù)量求精通道,因為分路選項關(guān)閉算術(shù)編碼。參考圖10。
RESET=False(假),BYPASS=True(假),Error in MagnitudeRefinement(數(shù)量求精通道中的誤碼)因為不使用算術(shù)編碼且存儲原始比特。在數(shù)量求精通道94中的誤差92僅影響單一采樣(除了其中字節(jié)填塞需要用于避免產(chǎn)生受限的標(biāo)記代碼)。因此,解碼器應(yīng)該繼續(xù)解碼當(dāng)前和所有將來的編碼通道。參考圖12。
RESET=False(假),BYPASS=True(真),Error in Clean-up(清除通道中的誤碼)當(dāng)在清除通道86中存在誤差84時,κsig和σ[j]被破壞,且所有下面的編碼通道都應(yīng)該被丟棄。參考圖14。
RESET=True(真),BYPASS=False(假),Error in SignificancePropagation(有效性傳播通道中的誤差)當(dāng)在有效性傳播通道78中存在誤差76時,κsig和σ[j]被破壞且使用算術(shù)編碼,所有下面的編碼通道都應(yīng)該被丟棄。參考圖9。
RESET=True(真),BYPASS=False(假),Error in MagnitudeRefinement(數(shù)量求精通道的誤差)在數(shù)量求精通道98中的誤差96將破壞κmag。因為有效性傳播和清除通道都不和κmag相關(guān),可以解碼所有這種通道。另外,因為復(fù)位切換將重新初始化κmag,用于下一個數(shù)量求精編碼通道,也可以解碼所有將來的數(shù)量求精編碼通道。參考圖13。
RESET=True(真),BYPASS=False(假),Error in Clean-up(清除通道中的誤差)當(dāng)在清除通道86中存在誤差84時,κsig和σ[j]被破壞,且所有下面的編碼通道都應(yīng)該被丟棄。參考圖14。
RESET=True(真),BYPASS=True(真),Error in SignificancePropagation(有效性傳播通道中的誤差)當(dāng)在有效性傳播通道90中存在誤差88時,κsig和σ[j]被破壞。雖然沒有將來的有效性傳播或清除通道能夠被解碼,可以使用多個數(shù)量求精通道,因為分路選項關(guān)閉算術(shù)編碼。參考圖10。
RESET=True(真),BYPASS=True(真),Error in MagnitudeRefinement(數(shù)量求精通道中的誤碼)因為不使用算術(shù)編碼,且存儲原始比特。在數(shù)量求精通道94中的誤差92僅影響單一采樣(除了其中字節(jié)填塞需要用于避免產(chǎn)生受限的標(biāo)記代碼)。因此,解碼器應(yīng)該繼續(xù)解碼當(dāng)前和所有將來的編碼通道。參考圖12。
RESET=True(真),BYPASS=True(真),Error in Clean-up(清除通道中的誤差)當(dāng)在清除通道86中存在誤差84時,κsig和σ[j]被破壞,且所有下面的編碼通道都應(yīng)該被丟棄。參考圖14。
具有外部誤差檢測當(dāng)用于誤差檢測的外部機制可用時,關(guān)于誤差位置的信息可以用于改進(jìn)JPEG2000的性能。存在能夠用于誤差檢測的幾個機制。在分組交換網(wǎng)絡(luò)中,將數(shù)據(jù)劃分為網(wǎng)絡(luò)分組并發(fā)送。在解碼器,一些分組可能不可用,因為它們因為擁塞而由網(wǎng)絡(luò)丟棄。在這個情況中,解碼器能夠識別誤差在碼流中的確切位置。類似地,如果使用糾錯編碼技術(shù)防止碼流的傳輸誤差,能夠使用糾錯解碼器估計誤差在碼流中的位置??梢蚤_發(fā)外部機制以定位在JPEG2000碼流本身中的誤差。總的來說,外部機制提供關(guān)于誤差在碼流中的位置的附加信息,檢測機制存在在碼流內(nèi)部或外部。
在編碼通道中的第一誤差的位置特別重要。如果這個位置已知或能夠被估計,可以解壓編碼通道的無誤差區(qū)域。我們將此稱為部分解碼。另外,僅和當(dāng)前編碼通道的無誤差部分相關(guān)的將來的編碼通道的部分也能被解壓。
類似于先前部分的部分解碼,其和用于創(chuàng)建碼流的切換相關(guān)。除了RESET和BYPASS切換,CAUSAL切換也在這個情況中擔(dān)任重要作用。假定對于所有碼流設(shè)置RESTRAT和ERTERM切換。首先分析RESET和BYPASS切換在部分解碼上的效果。然后分析CAUSAL切換在部分解碼上的效果。
RESET=False(假),BYPASS=False(假),Error in significancePropagation(有效性傳播通道中的誤差)當(dāng)在有效性傳播通道102中存在誤差100時,κsig和σ[j]被破壞。雖然沒有進(jìn)一步的編碼通道能夠被完全解碼,可以部分解碼多個數(shù)量求精通道,能夠解碼的數(shù)量求精通道的部分由κsig和σ[j]的未被破壞的部分確定。參考圖15。
RESET=False(假),BYPASS=False(假),Error in magnitudeRefinement(數(shù)量求精通道中的誤碼)當(dāng)在數(shù)量求精通道106中存在誤差104時,雖然κsig沒有被破壞,用在用于數(shù)量求精通道的算術(shù)編碼中的狀態(tài)信息被破壞。因此,應(yīng)該丟棄所有下面的數(shù)量求精編碼通道。但是,可以完全解碼編碼通道的兩個其它類型。參考圖19。
RESET=False(假),BYPASS=False(假),Error in Clean-up(清除通道中的誤差)當(dāng)在清除通道110中存在誤差108時,κsig和σ[j]被破壞。因此,下面的編碼通道都應(yīng)該被丟棄。參考圖22。
RESET=False(假),BYPASS=True(真),Error in SignificancePropagation(有效性傳播通道中的誤差)當(dāng)在有效性傳播通道114中存在誤差112時,σ[j]被破壞。雖然沒有將來的有效性傳播或清除通道能夠被完全解碼,可以完全解碼多個數(shù)量求精通道。另外,能夠部分解碼清除、有效性傳播和數(shù)量求精通道的每一個的再一個。參考圖16。
RESET=False(假),BYPASS=True(真),Error in MagnitudeRefinement(數(shù)量求精通道中的誤碼)因為不使用算術(shù)編碼且存儲原始比特。在數(shù)量求精通道118中的誤差116僅影響單一采樣(除了其中字節(jié)填塞需要用于避免產(chǎn)生受限的標(biāo)記代碼)。因此,解碼器應(yīng)該繼續(xù)解碼當(dāng)前和所有將來的編碼通道。參考圖20。
RESET=False(假),BYPASS=True(真),Error in Clean-up(清除通道中的誤差)當(dāng)在清除通道122中存在誤差120時,雖然κsig和σ[j]被破壞,能夠部分解碼再一個有效性傳播通道和數(shù)量求精。參考圖23。
RESET=True(真),BYPASS=False(假),Error in SignificancePropagation(有效性傳播通道中的誤差)當(dāng)在有效性傳播通道126中存在誤差124時,κsig和σ[j]被破壞。但是,因為對于每個編碼通道復(fù)位算術(shù)編碼狀態(tài),可以進(jìn)行所有下面的編碼通道的部分解碼。參考圖17。
RESET=True(真),BYPASS=False(假),Error in MagnitudeRefinement(數(shù)量求精通道中的誤碼)在數(shù)量求精通道130中的誤差128將破壞κmag。因為有效性傳播和清除通道都不和κmag相關(guān),可以解碼所有這種通道。另外,因為復(fù)位切換將重新初始化κmag用于下一個數(shù)量求精編碼通道,也可以解碼所有將來的數(shù)量求精編碼通道。參考圖21。
RESET=True(真),BYPASS=False(假),Error in Clean-up(清除通道中的誤差)當(dāng)在清除通道134中存在誤差132時,κsig和σ[j]被破壞。但是,因為對于每個編碼通道復(fù)位算術(shù)編碼狀態(tài),可以進(jìn)行所有下面的編碼通道的部分解碼。參考圖24。
RESET=True(真),BYPASS=True(真),Error in SignficancePropagation(有效性傳播通道中的誤差)當(dāng)在有效性傳播通道138中存在誤差136時,κsig和σ[j]被破壞。能夠完全解碼多個數(shù)目求精通道并且可以部分解碼所有剩余通道。參考圖18。
RESET=True(真),BYPASS=True(真),Error in MagnitudeRefinement(數(shù)量求精通道中的誤碼)因為不使用算術(shù)編碼且存儲原始比特。在數(shù)量求精通道118中的誤差116僅影響單一采樣(除了其中字節(jié)填塞需要用于避免產(chǎn)生受限的標(biāo)記代碼外)。因此,解碼器應(yīng)該繼續(xù)解碼當(dāng)前和所有將來的編碼通道。參考圖20。
RESET=True(真),BYPASS=True(真),Error in Clean-up(清除通道中的誤差)當(dāng)在清除通道134中存在誤差132時,κsig和σ[j]被破壞。但是,因為對于每個編碼通道復(fù)位算術(shù)編碼狀態(tài),可以進(jìn)行所有下面的編碼通道的部分解碼。參考圖24。
在所有上述情況中,能夠搶救的編碼通道的部分和誤差依賴于怎樣從一個編碼通道傳播到另一個編碼通道。這個傳播依賴于其中在編碼期間訪問采樣的順序。誤差傳播還依賴于使用CAUSAL=True(假)或CAUFAL=False(假)創(chuàng)建碼流。當(dāng)CAUSAL切換被打開時,當(dāng)形成上下文標(biāo)簽時在將來條紋中的采樣將處理為無效的。這影響誤差傳播。因此,當(dāng)誤差發(fā)生時,如果CAUSL=True(真)相對CAUSAL=False(假)時誤差傳播慢得多。通過仔細(xì)分析這個誤差傳播,解碼器識別在將來編碼通道中能夠搶救的所有采樣。對于對應(yīng)于圖25的在有效性傳播通道中具有誤差位置141和143的情況,CAUSAL=True 140和CAUFAL=False 142的采樣分別如圖25(CAUSAL=True)和圖26(CAUFAL=False)所示。能夠搶救的采樣如白色圓圈所示,而應(yīng)該丟棄的采樣由有交叉陰影的圓圈所示。對于一些情況,能夠搶救的采樣可能不在諸如如圖25和26所示的簡單的分區(qū)之后。但是,可以使用列表跟蹤這些采樣。
實驗結(jié)果在這個部分中,考慮在多種誤差情況下JPEG2000的誤差回復(fù)。在所有仿真中,保護(hù)主要報頭和窗口配置報頭不受誤差影響,并且使用PPM標(biāo)記。每個仿真執(zhí)行1000次。比較兩個方法的性能。第一方法是在Kakadu(KDU)實現(xiàn)的已知的一個。在這個方法中,解碼器和JPEG2000的內(nèi)部誤差檢測機制相關(guān)。一旦在編碼通道中檢測到誤差,丟棄來自當(dāng)前碼塊的所有剩余編碼通道。第二方法(CCP)具體表現(xiàn)在這里所述的解碼技術(shù)。一旦解碼器通過外部裝置識別碼塊碼流中的初始誤差,該解碼被執(zhí)行直到包括第一誤差的字節(jié)。然后,解碼器執(zhí)行分析以識別能夠解碼哪個剩余的編碼通道。使用不同模式的KDU和CCP的性能分別如表5和表6所示。這些圖表說明在具有誤碼率=10-4的二進(jìn)制對稱信道(BSC)上KDU和CCP的平均峰值信噪比(PSNR)性能。表6的結(jié)果示出CCP解碼技術(shù)的使用能夠提供誤差回復(fù)的顯著改善。
表5在BSC上KDU的平均PSNR(以dB為單位)性能
表6在BSC上CCP的平均PSNR(以dB為單位)性能
為進(jìn)一步分析這些增益,考慮在圖27表示的圖144。在圖中,在BSC信道上使用Lenna圖像以BER10-4以1.0比特/像素比較KDU和CCP方法。在這些仿真中,使用BYPASS、RESET、RESTART、CAUSAL和ERTERM模式產(chǎn)生JPEG2000碼流。這個圖示出了通過使用CCP代替KDU獲得的PSNR增益的分布。圖的x軸表示PSNR(以dB為單位),且y軸表示實現(xiàn)的累積百分比。從這個圖中,可以看到在這些仿真中CCP提供的增益大小是8.6dB。且CCP提供的增益在大約20%的情況中大2.7dB。
JPEG2000成像系統(tǒng)JPEG-2000提供原有技術(shù)的低比特率壓縮性能,通過質(zhì)量、分辨率、分量或空間位置的漸進(jìn)傳輸、有損和無損壓縮、對比特流的隨機存取、分區(qū)存取(pan)和放大(zoom)、轉(zhuǎn)動和剪切、通過級數(shù)和有限存儲器實現(xiàn)的感興趣編碼的區(qū)域。另外,單一JPEG2000碼流能夠使用不同顯示設(shè)備同時提供所有這些特征給在有線和無線網(wǎng)絡(luò)上的很多不同用戶。本發(fā)明經(jīng)硬件或軟件完全包括在可變的無線顯示設(shè)備中,這增強了用戶看到的圖像質(zhì)量。
如圖28所示,圖像內(nèi)容150可以由世界范圍內(nèi)使用多種JPEG2000可兼容編碼器154的很多不同源152,比如照相機或掃描儀提供,該編碼器154壓縮圖像數(shù)據(jù)為JPEG2000語法。僅有的編碼需要是必須將RESTART和ERTERM切換設(shè)置以對于噪聲信道編碼。這將文件尺寸增加了大約一倍(couple percent),但是需要其在被破壞的信道上分布圖像。另外,內(nèi)容提供者將確定RESET、BYPASS和CAUSAL切換的狀態(tài)。如前所述,解碼技術(shù)采用這些切換的狀態(tài)并且在一些情況中,了解關(guān)于信道誤差的發(fā)生的知識來改進(jìn)解碼的圖像的質(zhì)量。
如圖所示,發(fā)送編碼的圖像并存儲在中心服務(wù)器156中。服務(wù)器接收用于特定圖像的一個或多個請求,基于用戶請求和特定的用戶顯示確定應(yīng)該發(fā)送圖像的哪個部分(JPEG2000碼流的分組),并且在有線和/或無線網(wǎng)絡(luò)158上發(fā)送數(shù)據(jù)給一個或多個用戶。用戶經(jīng)歷的反應(yīng)時間和網(wǎng)絡(luò)的帶寬相關(guān)但是典型地因為JPEG2000漸進(jìn)傳輸特征提供的有效壓縮而最多幾秒。注意到,編碼的圖像數(shù)據(jù)直接分布到用戶而不到達(dá)中心服務(wù)器。
實現(xiàn)本發(fā)明的硬件和/或軟件位于多種顯示設(shè)備160處的解碼器,經(jīng)有線和無線信道的接收可能破壞JPEG2000碼流。典型的顯示設(shè)備160包括計算機顯示器、筆記本計算機、手機、比如掌機(plam)的手持顯示器、電子圖書、個人GPS系統(tǒng)、打印機、投影儀和監(jiān)視系統(tǒng)顯示器。本發(fā)明可以直接包括或者和JPEG2000一起包括在解碼器芯片,提供其作為軟件解碼器或瀏覽器的一部分,或者作為軟件插件下載。用戶或顯示設(shè)備的成本在需要解碼圖像數(shù)據(jù)的計算量上只有很小的增加。這比圖像質(zhì)量的增加小得多。
雖然示出和描述了本發(fā)明的幾個實施例,本領(lǐng)域普通技術(shù)人員可以做出多種改變和替換。這種改變和替換的實施例不脫離本發(fā)明如所附的權(quán)利要求定義的精神和范圍。
權(quán)利要求
1.一種解碼被破壞的碼流的方法,其中來自在下面的數(shù)字圖像的數(shù)據(jù)被分區(qū)為分區(qū)組并且由編碼器編碼,且其中管理在分區(qū)組中的所述數(shù)據(jù)的規(guī)則是已知的,該方法包括步驟觀察編碼器實行的分區(qū),檢測分區(qū)組中的誤差,分析在分區(qū)組中的相關(guān)性,確定在分區(qū)組中的誤差之后的編碼的數(shù)據(jù)的哪些部分能夠被搶救,以及解碼在分區(qū)組中編碼的圖像數(shù)據(jù)的所述部分。
2.如權(quán)利要求1所述的方法,其中,所述數(shù)據(jù)被分區(qū)以允許解碼數(shù)字圖像的不同空間部分或更加有效地壓縮非靜態(tài)源。
3.如權(quán)利要求1所述的方法,其中,根據(jù)在編碼期間特定切換組的狀態(tài)來分析相關(guān)性。
4.如權(quán)利要求3所述的方法,其中,可搶救的數(shù)據(jù)是根據(jù)所述切換的狀態(tài)和誤差的發(fā)生來確定的。
5.如權(quán)利要求4所述的方法,進(jìn)一步包括步驟基于所述切換的狀態(tài)確定所述誤差怎樣通過碼流傳播,且解碼碼流沒有由誤差影響的部分。
6.如權(quán)利要求5所述的方法,其中,沒有關(guān)于在碼流中的誤差的位置的外部信息可用。
7.如權(quán)利要求5所述的方法,其中,外部誤差檢測提供關(guān)于在數(shù)據(jù)部分中誤差的位置的信息。
8.如權(quán)利要求1所述的方法,其中,該數(shù)字圖像是以JPEG2000碼流編碼的。
9.如權(quán)利要求8所述的方法,其中,數(shù)字圖像的序列是以包括JPEG2000碼流的文件格式編碼的。
10.如權(quán)利要求9所述的方法,其中,該文件格式是運動JPEG2000。
11.如權(quán)利要求1所述的方法,其中,該規(guī)則還管理在分區(qū)組之間的相關(guān)性,并且進(jìn)一步包括基于在分區(qū)組中誤差的發(fā)生來確定在相關(guān)分區(qū)組中的哪些數(shù)據(jù)能夠被搶救的步驟。
12.一種解碼被破壞的JPEG2000碼流的方法,其中將來自在下面的數(shù)字圖像的數(shù)據(jù)已經(jīng)被分區(qū)為分區(qū)組,并且由JPEG2000編碼器以有效性傳播、數(shù)量求精和清除通道編碼,且其中管理在分區(qū)組中相關(guān)性的規(guī)則是已知的,該方法包括步驟觀察由JPEG2000編碼器實行的分區(qū),檢測分區(qū)組中的誤差,根據(jù)RESET和BYPASS切換的狀態(tài)分析在分區(qū)組中的相關(guān)性,以確定在有效性傳播、數(shù)量求精和清除通道期間誤差怎樣通過碼流傳播,確定在分區(qū)組的所述誤差之后的編碼的圖像數(shù)據(jù)的哪些部分能夠被搶救,以及解碼在分區(qū)組中的編碼的圖像數(shù)據(jù)的所述部分。
13.如權(quán)利要求12所述的方法,其中,該分區(qū)組是碼塊。
14.如權(quán)利要求13所述的方法,其中,該數(shù)據(jù)被進(jìn)一步分區(qū)為由分組給定的分區(qū)組,且該規(guī)則還管理在分區(qū)組之間的相關(guān)性,其進(jìn)一步包括基于在分區(qū)組中誤差的發(fā)生來確定能夠完全或部分搶救哪些相關(guān)分區(qū)組的步驟。
15.如權(quán)利要求12所述的方法,其中,外部誤差檢測提供關(guān)于所述誤差在碼流中的位置的信息。
16.如權(quán)利要求15所述的方法,其中,分析該相關(guān)性并且通過下面的步驟確定編碼的數(shù)據(jù)的可搶救的部分當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=False時,根據(jù)κsig和σ[j]的未被破壞的部分解碼在所述碼塊中下一個數(shù)量求精通道的部分;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中的所有后面的數(shù)量求精編碼通道并且解碼編碼通道的兩個其它類型;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=True時,部分解碼下一個有效性傳播和清除通道,完全解碼下一個數(shù)量求精通道,部分解碼再一個數(shù)量求精通道,并且丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=True時,繼續(xù)解碼在所述碼塊中的當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=True時,根據(jù)κsig和σ[j]的未被破壞的部分解碼在所述碼塊中下一個有效性傳播和數(shù)量求精通道的部分;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=False時,根據(jù)κsig和σ[j]的未被破壞的部分解碼在所述碼塊中所有后面的編碼通道的部分;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=False時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=False時,根據(jù)κsig和σ[j]的未被破壞的部分解碼在所述碼塊中所有后面的編碼通道的部分;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=True時,根據(jù)κsig和σ[j]的未被破壞的部分完全解碼再一個數(shù)量求精通道和解碼在所述碼塊中剩余編碼通道的部分;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=True時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=True時,根據(jù)κsig和σ[j]的未被破壞的部分解碼在所述碼塊中所有后面的編碼通道的部分。
17.如權(quán)利要求12所述的方法,其中,沒有關(guān)于碼流中誤差的位置的外部信息可用。
18.如權(quán)利要求17所述的方法,其中,分析該相關(guān)性并且通過下面的步驟確定編碼的數(shù)據(jù)的可搶救的部分當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中的所有后面的數(shù)量求精編碼通道,并且解碼編碼通道的兩個其它類型;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=True時,丟棄在所述碼塊中所有后面的有效性傳播和清除通道并解碼下一個數(shù)量求精通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=True時,繼續(xù)解碼在所述碼塊中的當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=True時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=False時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=False時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=False時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=True時,在所述碼塊中丟棄將來的有效性傳播和清除通道并解碼再一個數(shù)量求精通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=True時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=True時,丟棄在所述碼塊中的所有后面的編碼通道。
19.如權(quán)利要求12所述的方法,其中,該規(guī)則進(jìn)一步包括管理相關(guān)性的CAUSAL切換。
20.一種解碼被破壞的JPEG2000碼流的方法,其中沒有關(guān)于誤差位置的外部信息可用,其中來自在下面的數(shù)字圖像的數(shù)據(jù)已經(jīng)被分區(qū)為分區(qū)組并且以有效性傳播、數(shù)量求精和清除通道編碼,且其中管理在所述分區(qū)組之中和之間的相關(guān)性的規(guī)則由RESET和BYPASS切換的狀態(tài)定義,該方法包括步驟當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中的所有后面的數(shù)量求精編碼通道并且解碼編碼通道的兩個其它類型;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=True時,在所述碼塊中丟棄所有后面的有效性傳播和清除通道并解碼下一個數(shù)量求精通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=True時,繼續(xù)解碼在所述碼塊中的當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=True時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=False時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=False時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=False時,丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=True時,在所述碼塊中丟棄將來的有效性傳播和清除通道并解碼再一個數(shù)量求精通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=True時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=True時,丟棄在所述碼塊中的所有后面的編碼通道。
21.如權(quán)利要求20所述的方法,其中,該規(guī)則進(jìn)一步包括管理該相關(guān)性的CAUSAL切換。
22.一種解碼其中沒有關(guān)于誤差位置的外部信息可用的被破壞的JPEG2000碼流的方法,其中來自在下面的數(shù)字圖像的數(shù)據(jù)被分區(qū)為分區(qū)組并且以有效性傳播、數(shù)量求精和清除通道來編碼,且其中管理在所述分區(qū)組之中和之間的相關(guān)性的規(guī)則由RESET和BYPASS切換的狀態(tài)定義,該方法包括步驟當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=False時,根據(jù)κsig和σ[j]的未被破壞的部分解碼在所述碼塊中下一個數(shù)量求精通道的部分;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中的所有后面的數(shù)量求精編碼通道并且解碼編碼通道的兩個其它類型;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=False時,丟棄在所述碼塊中所有后面的編碼通道;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=False,BYPASS=True時,部分解碼下一個有效性傳播和清除通道,完全解碼下一個數(shù)量求精通道,部分解碼再一個數(shù)量求精通道,并且丟棄在所述碼塊中的所有后面的編碼通道;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=False,BYPASS=True時,繼續(xù)解碼在所述碼塊中的當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=False,BYPASS=True時,根據(jù)κsig和σ[j]的未被破壞的部分來解碼在所述碼塊中下一個有效性傳播和數(shù)量求精通道的部分;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=False時,根據(jù)κsig和σ[j]的未被破壞的部分來解碼在所述碼塊中所有后面的編碼通道的部分;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=False時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=False時,根據(jù)κsig和σ[j]的未被破壞的部分來解碼在所述碼塊中所有后面的編碼通道的部分;當(dāng)在給定碼塊的有效性傳播通道中發(fā)生誤差且RESET=True,BYPASS=True時,根據(jù)κsig和σ[j]的未被破壞的部分來完全解碼再一個數(shù)量求精通道和解碼在所述碼塊中剩余編碼通道的部分;當(dāng)在給定碼塊的數(shù)量求精通道中發(fā)生誤差且RESET=True,BYPASS=True時,繼續(xù)解碼在所述碼塊中當(dāng)前和所有將來的編碼通道;當(dāng)在給定碼塊的清除通道中發(fā)生誤差且RESET=True,BYPASS=True時,根據(jù)κsig和σ[j]的未被破壞的部分來解碼在所述碼塊中所有后面的編碼通道的部分。
23.如權(quán)利要求22所述的方法,其中,該規(guī)則進(jìn)一步包括管理該相關(guān)性的CAUSAL切換。
24.一種發(fā)送圖像數(shù)據(jù)的方法,其包括步驟以被啟用成為JPEG2000碼流的RESTART切換通過JPEG2000可兼容編碼器編碼圖像數(shù)據(jù),在易受誤差影響的信道上發(fā)送JPEG2000碼流,和以JPEG2000解碼器解碼被破壞的碼流,配置該解碼器以觀察由JPEG2000編碼器實行的分區(qū),根據(jù)RESET和BYPASS切換的狀態(tài)分析在分區(qū)組中的相關(guān)性以確定在有效性傳播、數(shù)量求精和清除通道期間誤差怎樣傳播通過碼流,并且當(dāng)發(fā)生誤差時,確定在分區(qū)組中的誤差之后的編碼的圖像數(shù)據(jù)的哪些部分能夠被搶救且解碼所述搶救的部分。
25.如權(quán)利要求24所述的方法,其中,該JPEG2000碼流包括多個分組,其進(jìn)一步包括在服務(wù)器中存儲分組,響應(yīng)于終端用戶請求,僅提取需要滿足終端用戶請求的碼流的那些附加分組,在易受誤差影響的信道上發(fā)送分組,以及解碼被破壞的分組。
26.一種JPEG2000成像系統(tǒng),其包括一個或多個JPEG2000可兼容圖像編碼器,其用于產(chǎn)生采用JPEG2000碼流形式的內(nèi)容,服務(wù)器,其存儲用于每個圖像的JPEG2000碼流,分布網(wǎng)絡(luò),其包括易受誤差影響的信道,以及一個或多個顯示設(shè)備,其設(shè)置有JPEG2000解碼器,配置該解碼器以觀察由JPEG2000編碼器實行的分區(qū),根據(jù)RESET和BYPASS切換的狀態(tài)分析在分區(qū)組中的相關(guān)性以確定在有效性傳播、數(shù)量求精和清除通道期間誤差怎樣傳播通過碼流,并且當(dāng)發(fā)生誤差時,確定在分區(qū)組中的誤差之后的編碼的圖像數(shù)據(jù)的哪些部分能夠被搶救并解碼所述搶救的部分。
27.如權(quán)利要求26所述的系統(tǒng),其中,該解碼器是通過上市之后的可下載的插件來配置的。
28.一種包括JPEG解碼器的顯示設(shè)備,配置該解碼器以觀察由JPEG2000編碼器實行的分區(qū),根據(jù)RESET和BYPASS切換的狀態(tài)分析在分區(qū)組中的相關(guān)性以確定在有效性傳播、數(shù)量求精和清除通道期間誤差怎樣傳播通過碼流,并且當(dāng)發(fā)生誤差時,確定在分區(qū)組中的誤差之后的編碼的圖像數(shù)據(jù)的哪些部分能夠被搶救并解碼所述搶救的部分。
29.如權(quán)利要求28所述的顯示設(shè)備,其中,該解碼器分析在分區(qū)組之間的相關(guān)性,并且當(dāng)發(fā)生誤差時,確定哪些相關(guān)分區(qū)組能夠被搶救。
全文摘要
一種用于解碼編碼的數(shù)字圖像和視頻的被破壞的碼流的方法,其提供具有改進(jìn)的誤差回復(fù)特性的JPEG2000碼流。該解碼技術(shù)應(yīng)用于其中分區(qū)來自在下面的圖像的數(shù)據(jù)的一系列編碼算法允許解碼圖像的不同空間區(qū)域,并且管理在分區(qū)組之中而可能在分區(qū)組之間的相關(guān)性的規(guī)則已知。通過觀察由JPEG2000編碼器實行的分區(qū)(200),檢測分區(qū)組中的誤差(202),分析在分區(qū)組之中且可能在分區(qū)組之間的相關(guān)性(204),確定在分區(qū)組中的誤差之后的編碼的數(shù)據(jù)的哪些區(qū)域(206)能夠被搶救和解碼那些區(qū)域(208),能夠以改進(jìn)的圖像質(zhì)量解碼被破壞的碼流。即使在特定分區(qū)存在誤差,根據(jù)在創(chuàng)建碼流期間使用的確定模式或“切換”,那個分區(qū)的部分可能仍然是完全或部分可解碼的。
文檔編號H04N7/26GK1711552SQ200380103338
公開日2005年12月21日 申請日期2003年11月15日 優(yōu)先權(quán)日2002年11月15日
發(fā)明者邁克爾·W·馬塞蘭, 阿里·比爾金, 吳振宇 申請人:代表亞利桑那大學(xué)的亞利桑那大學(xué)董事會