TWI384862B - 影像解碼裝置及方法 - Google Patents
影像解碼裝置及方法 Download PDFInfo
- Publication number
- TWI384862B TWI384862B TW97136052A TW97136052A TWI384862B TW I384862 B TWI384862 B TW I384862B TW 97136052 A TW97136052 A TW 97136052A TW 97136052 A TW97136052 A TW 97136052A TW I384862 B TWI384862 B TW I384862B
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- unit
- bit
- coefficient
- block
- Prior art date
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本發明係有關於影像解碼,特別是有關於一種影像解碼器及其解碼方法,用以於低顯示解析度時進行高速處理。
聯合照相專家群(joint photographic expert group, JPEG)格式為一種常用的影像壓縮格式。聯合照相專家群格式有助於處理多媒體通訊,像是具有大量像素之影像,在使用聯合照相專家群格式壓縮後,即可相容於數位相機、行動電話或電腦。雖然聯合照相專家群格式之好處在於能夠減少影像儲存設備之需求,但於解碼及編碼時,特別是對高通量(high throughput demands)而言,往往需要大量之計算與時間。
對聯合照相專家群之壓縮位元流進行解壓縮時,通常解碼程序包括:標頭剖析(header parsing)、霍夫曼解碼(Huffman decoding)、反量化(de-quantization)、反離散餘弦變換(inverse discrete cosine transform, IDCT)、縮小(downscaling)與顏色空間轉換(color space converting)。一般而言,數位相機所擷取與預存影像之解析度會遠大於顯示裝置之解析度,例如電視或印表機。當由高解析度轉換或解碼至低解度時,將略過該原始影像所不需要的詳細資訊。舉例而言,於美國專利H1684、6,067,384與7,050,656中,係揭露一些技術,用以改善反離散餘弦變換與縮小
過程之解碼效率。
除此之外,於霍夫曼解碼過程中,亦有各種技術被提出,像是美國專利RE039,925、6,798,365與5,825,312,用以改善解碼之效率。然而,於一原始影像之一單位區塊中,全部的編碼資料,例如:一個8x8區塊之離散餘弦變換(discrete cosine transform, DCT)係數,於霍夫曼解碼程序進行時,仍然需要完全地導出或解出。
第1圖係顯示一習知霍夫曼解碼程序10流程圖,用以說明一個8x8區塊之解碼操作。於一原始影像中,每一個8x8區塊通常會被變換為64個頻率係數,稱為離散餘弦變換係數,係包括一直流係數(DC coefficient)與隨後的63個交流係數(AC coefficients)。於一位元流中,當取得對應於該區塊之一特定單元時,首先對該特定單元執行一直流解碼程序,以得到該區塊之一直流係數(步驟S102)。接著,執行一交流解碼程序,對該特定單元之剩餘部份執行解碼,用以產生該區塊之交流參數(步驟S104)。同時,提供一判斷程序,用以判斷是否已解出該區塊之全部交流係數(步驟S106)。也就是說,只有在該區塊之63個交流係數產生時,該習知霍夫曼解碼程序10才全部完成。對於低顯示解析度之使用情況而言,冗長且耗時之交流解碼操作變得相當不切實際,其中,因為僅需要有限數目之交流係數,對該特定單元進行部份解碼,即可產生足夠交流係數,用以維持可接受之
傳真度(fidelity)。
因此,需要一種改進之解碼方法及裝置,於霍夫曼解碼程序中,能夠即時略過一區塊所不需要之交流係數,從而改善整體之解碼效率。
因此,本發明提供一影像解碼裝置及方法,於低顯示解析度時,不需額外之處理成本,藉由有效地略過不需要之交流係數來改善區塊之解碼效能。
一方面,本發明揭露一種影像解碼裝置,用以於霍夫曼解碼程序中,能夠快速地略過一區塊所不需要之交流係數。該影像解碼裝置包括:一剖析器與一交流解碼器。該剖析器剖析一位元流,用以取得一第一單元。該第一單元包括:一直流碼與複數之交流碼,分別對應於該影像之一第一區塊之一直流係數與交流係數。該交流解碼器對該第一單元之該等交流碼進行解碼,用以產生該第一區塊之複數之第一交流係數,並判斷該等第一交流係數之個數是否超過一既定參數。若超過,該交流解碼器對該第一單元執行一交流係數略過程序,用以取得該位元流之一第二單元,係對應於一第二區塊,其中,每一交流碼包括一霍夫曼碼與一可變長度整數碼。
另一方面,本發明提供一影像解碼方法,用以於霍夫曼解碼程序中,略過一區塊所不需要之交流係數。該影像解碼方法首先取得一位元流之一第一單元。該第一單元包括:一直流碼與複數之交流碼,分
別對應於該影像之一第一區塊之一直流係數與交流係數。然後,對該第一單元執行一影像解碼程序之一第一階段,依據該等交流碼,產生該第一區塊之複數之第一交流係數。接著,判斷該等第一交流係數之個數是否超過一既定參數。若超過,對該第一單元執行該影像解碼程序之一第二階段,用以取得該位元流之一第二單元,係對應於一第二區塊。該交流碼包括:一霍夫曼碼與一可變長度整數碼。
為使本發明之上述目的、特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖示,詳細說明如下。
下文係說明本發明之較佳實施方式,用以更容易瞭解本發明,並非用以限制本發明。本發明之保護範圍當視後附之申請專利範圍所界定者為準。
第2圖係顯示依據本發明實施例之一解碼程序20流程圖,用以說明一個8x8區塊(例如:一第一區塊)之解碼操作。該解碼程序20大體上類似於第1圖之習知霍夫曼解碼程序10。具體地,第2圖與第1圖最大不同之處在於一交流係數略過程序。
於一實施例中,取得一位元流之一第一單元,作為解碼使用。如前所述,該第一單元包括:一直流碼(DC code)與複數之交流碼(AC codes),分別對應於一影像之該第一區塊之一直流碼(DC coefficient)與交流碼(AC coefficients)。
參考第2圖,利用一直流解碼程序(步驟S202)產生該第一
區塊之一直流係數。依據該等交流碼,執行一交流解碼程序,用以產生該第一區塊之複數之第一交流係數(步驟S204)。再者,利用一既定參數AClimit
判斷是否執行該交流係數略過程序(步驟S208)。該既定參數AClimit
相關於一顯示解析度及對該第一區塊執行該交流解碼程序所產生之交流係數。
於本發明之一實施例中,該既定參數AClimit
之一範例方程式,但非限定,係定義如下:,其中,64表示一個8x8區塊之所有離散餘弦變換係數的個數總和,意即,1個直流係數與63個交流係數,而n表示一原始解析度與一顯示解析度之縮放比率,係取決於該影像之一水平解析度或一垂直解析度。
舉例來說,若該影像具有一原始解析度為2560x1920,而該影像之一顯示解析度為1280x960。由於或,該原始解析度與該顯示解析度之縮放比率為2,。
因此,該既定參數。
於此實施例中,針對該第一區塊,當已產生至少15個交流係數時,由於已到達該既定參數AClimit
,接著便決定執行該交流係數略過程序(步驟S210)。
於本發明之一實施例中,於該交流係數略過程序中,對於該第一區塊而言,將剩餘交流係數直接設定為0,而不需進一步解碼,從而減少交流係數之解碼時間。繼續執行該交流係數略過程序,直到該第一區塊所有63個直流係數均被解出或設為零值(步驟S206)。於該交流係數略過程序完成後,取得該位元流之一第二單元,係對應於該第一區塊後面之一第二區塊。依據本發明之該交流係數略過程序將參考第4與5圖說明如下。
值得注意的是,當該影像之該顯示解析度(例如:1280x960)大於該原始解析度(例如:2560x1920)時,也就是,當縮放比率n
<1時,則定義該既定參數AClimit
為該區塊之交流係數之總數(意即,AClimit
=63),用以表示該區塊之所有交流係數均需要被解出。
另外,值得注意的是,若該原始解析度顯著地大於該顯示解析度,例如,當縮放比率為n 8時,則設定該既定參數AClimit
之值為0,用以略過該區塊所有交流係數。就此而言,針對該顯'示解析度,僅該直流係數為必須的。
第3圖係顯示依據本發明實施例之一影像解碼裝置30方塊圖。參考第3圖,該影像解碼裝置30包括:一剖析器310、一直流(DC)解碼器314與一交流解碼器312。該剖析器310剖析一位元流302,用以取得欲進行解碼之一編碼單元資料304,例如,一第一單元。該第一單元包括:一直流碼與複數之交流碼,且對
應於該影像之一第一區塊之一直流係數與交流係數。舉例來說,該第一區塊為一個8x8區塊,且包括一個直流係數與隨後之63個交流係數。該位元流302為一霍夫曼編碼位元流。該直流解碼器314耦接於該剖析器310,用以接收該第一單元之直流碼,且重新產生該第一區塊之一直流係數330。該交流解碼器312耦接於該直流解碼器314。該交流解碼器312對該第一單元之該等交流碼進行解碼,以產生該第一區塊之複數之第一交流係數332與334。產生該第一區塊之該等第一交流係數332與334之程序將於底下做詳細說明。更進一步,該直流解碼器312判斷該等第一交流係數332與334之個數是否超過一既定參數AClimit
。若超過,該交流解碼器312對該第一單元執行一交流係數略過程序,以便取得下一個編碼單元資料304,像是該位元流302之一第二單元,係對應於該第一區塊後面之一第二區塊。值得注意的是,於該編碼單元資料304中,每一交流碼包括:一霍夫曼碼(Huffman code)與一可變長度整數碼(VLI code)。
更具體地,該交流解碼器312進一步包括:一霍夫曼解碼單元340、一可變長度整數(VLI)解碼單元342、一計數器344與一決策單元346。該霍夫曼解碼單元340依據每一交流碼之霍夫曼碼,用以擷取出具有一零值長度與一非零值長度之長度資訊306。因此,依據該零值長度,該等第一交流係數332會被設定為0。然後,該可變長度整數解碼單元342接收該非零值長度,且依
據每一交流碼之該可變長度整數碼與霍夫曼解碼單元340之該非零值長度,用以產生一既定交流係數334。該計數器344累加該霍夫曼解碼單元340所產生交流係數之個數。如此一來,該決策單元346,則依據該既定參數AClimit
、該長度資訊306與該計算器344累加之數目,用以判斷是否對該第一單元執行該交流係數略過程序。值得注意的是,該交流係數略過程序,用以略過該第一區塊內不需要之交流係數,將配合第4與5圖詳細說明如下。
第4圖係依本發明實施例之一交流係數略過程序示意圖,用以說明將一位元流之一編碼單元資料解碼為離散餘弦係數404。於此實施例中,該編碼單元資料為一位元流302,如第3圖所示,之一第一單元402。除此之外,該交流係數略過程序為一單一步驟略過程序428。
參考第4圖,該第一單元402包括:DC_code 406及複數之交流碼,例如:AC_code1,
…,
AC_codei-1,
…,
AC_codei
、AC_codei+1
、AC_codei+2
等。對於一影像之一第一區塊而言,DC_code 406與該等交流碼分別對應於離散餘弦變換係數404之DC_coefficient 408與交流係數,由AC_coefficient1
至AC_coefficient63
。
於操作上,每一交流碼,例如:AC_code1
410,包括Huffman_codei
412與VLI_codei
414。如上所述,將該交流碼410傳送至第3圖之該交流解碼器312,用以產生一些對應之交流係數,如第4圖所示,例如:包括ri
個零值之係數416與一既定交
流係數AC_coefficientj
418。更具體地,該霍夫曼解碼單元340對Huffman_codei
412執行一霍夫曼解碼方法424,用以擷取出一零值長度與一非零值長度,例如:Run_Lengthi
420與VLI_lengthi
422。再者,該已產生之既定交流係數418利用VLI_codei
414與VLI_lengthi
422。也就是說,第3圖之該可變長度整數解碼單元342藉由對VLI_codei
414與VLI_lengthi
422執行一可變長度整數解碼方法426,用以決定該既定交流係數418。
於此實施例中,假設該零值長度之值為ri
,則表示該既定交流係數418前面為0值之個數。因此,自AC_codei
410所得到的交流係數之全部個數為(ri
+1)。此外,同樣透過該霍夫曼解碼單元340,以取得Huffman_codei
412與VLI_codei
414之位元長度。參考第4圖,根據該霍夫曼碼412(如hi
位元)與可變長度整數碼414(如si
位元)之位元長度,該位元長度等於(hi
+si
)位元。
當VLI_codei
414之位元長度為0(也就是,si
等於0)時,則用連續零值長度(ZRL)及區塊終點(EOB)兩個標記來處理,係分別用來表示16個零值之交流係數、以及該第一區塊結束前所剩餘之交流係數全為零值。
上述解碼該第一單元402之程序,用以產生第4圖之該離散餘弦變換係數404,以下將配合第3與4圖詳述該單一步驟略過程序428。
如前所述,第3圖之該決策單元346判斷是否對第4圖之該
第一單元402執行該單一步驟略過程序428。需注意在此假設該影像之原始解析度為2560x1920而顯示解析度為1280x960。因此,該縮放比率n等於2,進而決定該既定參數AClimit
=15。所以,針對上述顯示解析度,大體上15個交流係數即足夠,而不用解出該第一區塊之63個交流係數。
如第4圖所示,對一交流碼進行解碼後,如AC_codei
410,假設已達到該既定係數AClimit
。緊接著,第3圖之該決策單元346決定執行第4圖之該單一步驟略過程序428。
於此實施例中,如第4圖所示,該霍夫曼解碼單元340解碼一目前交流碼,例如:AC_codei+1
430,係具有Huffman_codei+1
432及VLI_codei+1
434。隨後,重新產生Huffman_codei+1
432之一零值長度與一非零值長度。此外,Huffman_codei+1
432之位元長度(例如:hi+1
位元)與VLI_codei+1
434之位元長度(例如:si+1
位元)為(hi+1
+si+1
)位元。然後,丟棄該資料之(hi+1
+si+1
)位元,以從該第一單元402取得一下一個交流碼,例如:AC_codei+2
436。該計數器344利用該零值長度決定一第一數值,用以累加所得到之交流係數總數。舉例而言,若Huffman_codei+1
432之零值長度為3,則該第一數值為15(AC_codei
410之交流係數)+3+1(AC_codei+1
430之一既定交流係數)=19。由於該第一數值小於該第一區塊之交流係數總數,該霍夫曼解碼單元340繼續對AC_codei+1
430後面之AC_codei+2
436之Huffman_code1+2
438進行
解碼,更進一步,如第4圖所示,擷取出AC_codei+2
436之Huffman_codei+2
438與VLI_codei+2
440之位元長度。除此之外,不管VLI_codei+1
434之內容,將AC_codei+1
430之4個交流係數全部設為0。
特別地是,當該第一數值大於63時,或當零值長度與該非零值長度均為0(例如:區塊終點標記)時,則表示目前為一區塊之結束位置,而必須開始執行一新區塊之解碼程序。因此,AC_codei+1
430為該第一單元402之最後交流碼,且完成該第一區塊之該單一步驟略過程序428。
第5圖係依第3及4圖實施例之一單一步驟略過程序50流程圖。
參考第3、4及5圖,依據本發明之一實施例,當該決策單元346決定執行一單一步驟略過程序50時,接著對一目前交流碼(例如:AC_codei+1
430)之霍夫曼碼執行一霍夫曼解碼方法,用以擷取出一零值長度(像是AC_codei+1
430之ri+1
)與該目前交流碼之一非零值長度。亦取得該目前交流碼之霍夫曼碼與該可變長度整數碼之位元長度,例如,各自為AC_codei+1
430之hi+1
位元及AC_codei+1
430之si+1
位元(步驟S502)。
接著,如第4圖所示,計算用以略過該目前交流碼之略過位元,例如:對應於AC_codei+1
430之(hi+1
+si+1
)位元。也就是,該略過位元為(hi+1
+si+1
)位元,且將(hi+1
+si+1
)位元丟棄,用
以取得該目前交流碼後面之一下一個交流碼,如第4圖所示之AC_codei+2
436(步驟S504)。
然後,判斷該目前交流碼之該可變長度整數碼之位元長度與該零值長度是否均為0(步驟S506)。若均為0,以ri+1
=si+1
=0為例,AC_codei+1
430則為目前所處理區塊之區塊終點標記(步驟S508)。若不全為0,則依據該目前交流碼所取得之零值長度,於該目前交流碼中,決定要略過的零值交流係數總數(步驟S510)。最後,於目前所處理區塊中,累加所有已產生的交流係數個數。上述累加值用以判斷是否執行該霍夫曼解碼方法,以繼續對下一個交流碼進行解碼。透過此單一步驟略過程序50,較先前技術大幅改善了解碼速度與通量。
第6圖係依本發明另一實施例之一交流係數略過程序示意圖,用說明將一位元流之一編碼單元資料解碼為離散餘弦變換係數604。於此實施例中,該編碼單位資料為一位元流302(第3圖)之一第一單元602,係對應於一影像之一第一區塊。進一步,該交流係數略過程序為一多重步驟略過程序628。
同樣地,如前所述,對一交流碼進行解碼後,如AC_codei
610,假設已達到一既定參數AClimit
。則將該第一區塊之剩餘交流係數設為零值。
接著,第3圖之該決策單元346決定執行第6圖之該多重步驟略過程序628。第3圖之該霍夫曼解碼單元340對該第一單元
602之一N位元資料642進行解碼,以重新產生總略過位元(L)、總交流係數計數值(R)與一旗標,其中,該總交流係數計數值表示由該N位元資料642解出之交流係數。值得注意的是,該N位元資料642包括複數之交流碼,例如:AC_codei+1
630、AC_codei+2
636等等。解碼該N位元資料642之程序將考第8圖詳細說明如下。
於此實施例中,該旗標為一區塊終點標記,包括一第一狀態與一第二狀態,分別表示是否已找到該第一區塊之該第一單元602之結束位置。同樣地,該旗標之判斷將參考第8圖詳細說明如下。
於第3圖中,該決策單元346自該計數器344取得一第二數值,係透過將該總交流係數計數值(R)及交流係數之累加個數相加而得,其中,後者之交流係數係由第6圖之該第一單元602所產生。
更進一步,該決策單元346判斷該第二數值是否超過該第一區塊之63個交流係數。若超過,則決定該旗標之狀態(例如:一區塊終點標記)。當該旗標為該第二狀態時,將略過個數為該總交流係數計數值之交流係數,並將對應之交流係數全設為0。於第6圖中,丟棄該第一單元602之該總略過位元(L),用以取得該N位元資料642後面之一下一個N位元資料644。第3圖之該霍夫曼解碼單元340繼續對該下一個N位元資料644進行解碼,其中,該下一個N位元資料644包括:AC_codej
638、AC_codej+1
640等等。同時,當該旗標為該第一狀態時,該決策單元346檢查該第二數值是否等於63。根據上述之判斷結果、該總略過位元與該既定略過位元,執行略過之操作,用以取得該位元流之一第二單元,係對應於一第二區塊,其中,該既定略過位元為一常數,並與該旗標之位元長度相關,例如:該區塊終點標記之位元長度。如此一來,便完成了該第一區塊之第一單元之解碼。
若該第二數值大於該第二單元602之63個交流係數,接著,略過該第一區塊之該總略過位元(未圖示)。換句話說,利用該單一步驟略過程序取代該多重步驟略過程序,每次對一交流碼進行解碼,直到取得該第一單元602後面之一第二單元。更詳細地來說,該霍夫曼解碼單元340依序繼續解碼每一交流碼(例如:AC_codei
630、AC_codei+1
636等),直到取得對應於一第二區塊之該第二單元。
第7圖係顯示依據第6圖實施例之一多重步驟略過程序流程圖。
參考第3、6與7圖,依據本發明之一實施例,當該決策單元346決定執行一多重步驟略過程序時,由一位元流之該第一單元602所取得之一N位元資料642將利用一霍夫曼解碼方馬進行解碼。因此,重新產生總略過位元(L)、總交流係數計數值(R)與一旗標(步驟S702),其中,該總交流係數計數值(R)表示自該N位元資料642解碼之交流係數。如上所述,該旗標為一區
塊終點標記,且具有一第一狀態與一第二狀態,分別表示是否已找到該第一單元602之結束位置。再者,該旗標之判斷與該N位元資料642之解碼程序將配合第8圖詳述如下。
其次,於略過個數為該總交流係數計數值(R)之交流係數後,判斷是否超過該第一區塊之結束位置(步驟S704)。更明確地,如第6圖所示,藉由比較一第二數值與該第一區塊之63個交流係數來完成上述判斷,其中,該第二數值為該總交流係數計數值(R)與交流係數所累加個數之和,而後者之交流係數由AC_codei
630前面之交流碼所產生。略過該第二數值後,若超過該第一區塊之結束位置,則以一單一步驟略過方法取代該多重步驟略過方法,以便取得該第一單元602後面之一第二單元(步驟S720)。若沒有超過,則進一步判斷及確認該旗標之狀態,例如:一區塊終點標記EOB是否被設定(步驟S710)。
當確認該旗標為該第二狀態時,該N位元資料642所對應之交流係數將被設為零值,且利用總交流係數計數值(R)來略過交流係數之個數(步驟S706)。也就是說,將63個交流係數減去總交流係數計數值(R),以決定需要進一步處理之交流係數的個數。另外,丟棄該第一單元602之總略過位元(L),以便取得該N位元資料後面之下一個N位元資料(步驟S708),像是第6圖中之一N位元資料644。
當確認該旗標為該第一狀態時,進一步判斷,在略過個數為
總交流係數計數值(R)之交流係數後,是否到達該第一區塊之結束位置(步驟S712)。具體而言,即判斷該第二數值是否等於該第一區塊之63個交流係數。
若是,則該旗標並非表示該第一單元602之結束位置,且需要額外略過該第一單元602,以取得與一第二區塊相關之該第二單元(步驟S716)。於一實施例中,該額外略過取決於該總略過位元(L)與一既定略過位元LE
,意即,(L+LE
)位元,其中,該既定略過位元LE
為一常數,相關於該旗標之位元長度,像是該區塊終點標記之位元長度。
若否,則丟棄該總略過位元(L),以取得該第二單元(步驟S714)。
因此,如上所述,在丟棄(L)或(L+LE
)位元後,該多重步驟略過程序70完成該第一區塊之略過程序(步驟S718)。
第8圖係依第6及7圖實施例之一程序80示範流程圖,用以說明於一位元流之一編碼單元資料中,對一N位元資料進行解碼。
首先,一N位元資料,標示為DN-bit
,從對應於一第一區塊之一第一單元取得。分別初始化變數L(總略過位元)、R(總交流係數計數值)與一旗標之狀態。於此實施例中,該旗標為一區塊終點標記EOB,用以表示對應於該第一區塊之該第一單元之結束位置是否已經被找到(步驟S802)。
類似於第4圖所示之實施例,對該N位元資料DN-bit
執行一霍
夫曼解碼方法424,以擷取出一零值長度(r)。依據一解碼結果,亦可取得該霍夫曼碼(h位元)與該非零值長度(s位元)之位元長度(步驟S804)。
進一步,進行解碼時,判斷該N位元資料DN-bit
之位元長度是否太短(步驟S806)。若是,直接輸出該變數L、R與該旗標狀態,該程序80完成(步驟S820)。
另一方面,若該N位元資料DN-bit
之位元長度足夠用於解碼,則接著判斷該非零值長度(s位元)與該零值長度(r)之值是否均為0(步驟S808)。
若是,則該旗標為該第一狀態,表示找到一區塊終點標記EOB,於此實施例中,設定區塊終點標記EOB=1。再者,該(h)位元被用以更新該總略過位元(L)(步驟S810),然後再輸出該變數L、R與該區塊終點標記(步驟S820)。
若(s)或(r)之值不等於0,則該零值長度(r)被加至該總交流係數計數值R中,用以更新R值。然後,判斷該更新的R值是否等於63或大於63(步驟S812)。若是,如上所述,該程序80繼續更新且輸出該變數L、R與該旗標之狀態(步驟S810與S820)。
進一步,若該更新的R值小於63,則該程序80將L與R值更新如下(步驟S814):L=L+h+s,以及
R=R+r+1。
之後,判斷該總略過位元(L)是否到達N位元(步驟S816)。若判斷結果為是,則輸出該變數L、R與該旗標狀態以完成該程序80(步驟S820)。否則,於該N位元資料DN-bit
中,藉由丟棄該(h+s)位元來進行更新(步驟S818)。然後,該程序80回到執行該霍夫曼解碼方法之步驟,以便針對更新之N位元資料DN-bit
重複前述之程序。
依據前述,由於冗長的判斷程序,使得該N位元資料DN-bit
之解碼程序80變得非常耗時而無法順利進行,進而降低解碼效能。進一步,參考第3圖,上述情況可藉著事先建立一N位元預先解碼表350來改善,用以紀錄該N位元資料DN-bit
所有可能的解碼結果。
第9圖係依本發明另一實施例之一程序90,用以說明建立一N位元預先解碼表350之示範流程圖。首先,取得一記憶體並加以初始化,用以建立該表350(步驟S902)。接著,設定一輸入資料D之初始值為0(步驟S904)。該程序90解碼該輸入資料D,用以產生總略過位元(L)、總交流係數計數值(R)與一旗標狀態(例如:一區塊終點標記)(步驟S906)。舉例來說,利用上述第8圖之該程序80來對該輸入資料(D)進行解碼。值得注意的是,該總略過位元(L)、該總交流係數計數值(R)與該旗標狀態已詳述於第6與7圖及其相關實施例中,於此不加贅述。
其次,該總略過位元(L)、該總交流係數計數值(R)與該旗標狀態均被儲存於該表350之一對應位址中(步驟S910)。例如:若N為16位元且該輸入資料D為0x0000,則解碼該輸入資料D所產生之上述變數將儲存於一對應位址920中。
進一步,判斷該輸入資料D是否等於(2N
-1)(步驟S914)。若相等,則表示該程序完成,建立具有2N
個元素之N位元預先解碼表350。否則,將該輸入資料D加上1,意即,D=D+1,且該程序90返回,對新的輸入資料(D+1)進行解碼,例如:D為0x0001(步驟S908)。
使用第3圖之N位元預先解碼表350,依據該N位元資料,該決策單元346能夠透過一對應位址,對所預存之解碼結果進行查表,,以直接執行一多重步驟略過程序。舉例而言,若N為16位元且該N位元資料642為(216
-2),依據(216
-2)所指定之一對應位址,直接從該表350中讀出(216
-2)之解碼結果。因此,能夠執行一高效率之解碼程序。
如上所述,相較於習知技術,本發明所揭露之影像解碼裝置及方法,能夠於低顯示解析度時,略過區塊中不需要之交流係數,進而減少解碼時間,並利用一種簡單且可實行之方法,毋需大量犧牲影像傳真度,而能大幅提昇整體之解碼效能。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,
當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
30‧‧‧影像解碼裝置
310‧‧‧剖析器
312‧‧‧交流解碼器
314‧‧‧直流(DC)解碼器
340‧‧‧霍夫曼解碼單元
342‧‧‧可變長度整數(VLI)解碼單元
344‧‧‧計數器
346‧‧‧決策單元;及
350‧‧‧N位元預先解碼表
第1圖係顯示一習知霍夫曼解碼程序流程圖,用以說明一區塊之解碼操作;第2圖係顯示依據本發明實施例之一解碼程序流程圖,用以說明一區塊之解碼操作;第3圖係顯示依據本發明實施例之一影像解碼裝置方塊圖;第4圖係依本發明實施例之一交流係數略過程序示意圖,用以說明將一位元流之一編碼單元資料解碼為離散餘弦係數;第5圖係依第3及4圖實施例之一單一步驟略過程序流程圖;第6圖係依本發明另一實施例之一交流係數略過程序示意圖,用說明將一位元流之一編碼單元資料解碼為離散餘弦變換係數;第7圖係顯示依據第6圖實施例之一多重步驟略過程序流程圖;第8圖係依第6及7圖實施例之一程序示範流程圖,用以說明於一位元流之一編碼單元資料中,對一N位元資料進行解碼;以及第9圖係依本發明另一實施例之一程序,用以說明建立一N位元預先解碼表之示範流程圖。
30‧‧‧影像解碼裝置
310‧‧‧剖析器
312‧‧‧交流解碼器
314‧‧‧直流(DC)解碼器
340‧‧‧霍夫曼解碼單元
342‧‧‧可變長度整數(VLI)解碼單元
344‧‧‧計數器
346‧‧‧決策單元;及
350‧‧‧N位元預先解碼表
Claims (27)
- 一種影像解碼裝置,包括:一剖析器,用以剖析一位元流而取得一第一單元,其中,該第一單元包括一直流碼與複數之交流碼,分別對應於該影像之一第一區塊之一直流係數與交流係數;以及一交流解碼器,對該第一單元之該等交流碼進行解碼,用以產生該第一區塊之複數之第一交流係數,以及判斷該等第一交流係數之個數是否超過一既定參數,若超過,則對該第一單元執行一交流係數略過程序,用以取得該位元流之一第二單位,係對應於一第二區塊;其中,每一交流碼包括一霍夫曼碼與一可變長度整數碼;其中,當該等第一交流係數之個數超過該既定參數時,該交流解碼器將該第一區塊之剩餘交流係數設定為0。
- 如申請專利範圍第1項所述之影像解碼裝置,其中,該位元流為一霍夫曼編碼位元流。
- 如申請專利範圍第1項所述之影像解碼裝置,更包括:一直流解碼器,耦接於該剖析器與該交流解碼器之間,用以依據該第一單元之直流碼,取得該第一區塊之該直流係數。
- 如申請專利範圍第3項所述之影像解碼裝置,其中,該既定參數由一方程式決定:
- 如申請專利範圍第1項所述之影像解碼裝置,其中,該交流解碼器包括:一霍夫曼解碼單元,用以依據每一交流碼之霍夫曼碼產生具有一零值長度與一非零值長度之長度資訊;一可變長度整數解碼單元,用以接受該非零值長度,並依據每一交流碼之可變長度整數碼與該非零值長度,用以產生一既定交流係數;一計數器,用以累加該霍夫曼解碼單元所產生之交流係數之個數;以及一決策單元,依據該計數器累加之數值、該既定參數及該長度資訊,用以判斷該第一單元是否執行該交流係數略過程序。
- 如申請專利範圍第5項所述之影像解碼裝置,其中,該決策單元藉由操作該霍夫曼解碼單元以產生一目前交流碼之零值長度與非零值長度,並從該計數器接收一第一數值,係為該目前交流碼之該等第一交流係數之個數與零值長度所累加之結果,用以執行該交流係數略過程序;其中,依據該霍夫曼碼之位元長度所計算之一略過位元與對應於該目前交流碼之可變長度整數碼,用以取得該目前交流碼後面之一下一個交流碼,以及其中,依據該第一數值,該決策單元判斷該霍夫曼解碼單元是否 對該下一個交流碼之霍夫曼碼進行解碼。
- 如申請專利範圍第6項所述之影像解碼裝置,其中,於該目前交流碼中,當該可變長度整數碼之位元長度與該零值長度均為0時,該目前交流碼為該第一單元之最後交流碼。
- 如申請專利範圍第5項所述之影像解碼裝置,其中,該決策單元執行該交流係數略過程序,藉由操作該霍夫曼解碼單元,使其對該位元流之該第一單元之N位元資料進行解碼,用以產生總略過位元、總交流係數計數值與一旗標,該旗標具有一第一狀態與一第二狀態,分別表示是否找到該第一區塊之第一單元之結束位置;自該計數器取得一第二數值,係由累加該總交流係數計數值與該等第一交流係數之個數而得;以及,判斷該第二數值是否超過該第一區塊之交流係數總數;若超過,則操作該霍夫曼解碼單元,每次解碼一交流碼,直到於該位元流中取得該第二區塊所對應之第二單元。
- 如申請專利範圍第8項所述之影像解碼裝置,其中,當該第二數值小於該第一區塊之交流係數總數時,丟棄該第一單元之總略過位元,用以取得該N位元資料後面之一下一個N位元資料。
- 如申請專利範圍第8項所述之影像解碼裝置,其中,當該旗標具有該第一狀態時,該決策單元判斷該第二數值是否等於該第一區塊之交流係數總數,並操作該霍夫曼解碼單元,依據該總略過位元與對應於上述判斷結果之一既定略過位元,用以於該位元流中,取得該第二區塊所對應之該第二單元; 其中,該既定略過位元為一常數,與該旗標之位元長度相關。
- 如申請專利範圍第5項所述之影像解碼裝置,其中,該決策單元執行該交流係數略過程序,藉由一N位元預先解碼表來搜尋該位元流之第一單元中,一N位元資料之一解碼結果;取得總略過位元、總交流係數計數值與與一旗標,該旗標具有一第一狀態與一第二狀態,分別表示是否找到該第一區塊之第一單元之結束位置;當該旗標具有該第二狀態時,自該計數器取得一第二數值,係由累加該總交流係數計數值與該等第一交流係數之個數而得;以及判斷該第二數值是否超過該第一區塊之交流係數總數;若超過,則操作該霍夫曼解碼單元,每次解碼一交流碼,直到於該位元流中,取得該第二區塊所對應之第二單元。
- 如申請專利範圍第4項所述之影像解碼裝置,其中,當該縮放比率n 8時,則該既定參數為0。
- 如申請專利範圍第4項所述之影像解碼裝置,其中,當該縮放比率n <1時,則該既定參數為63。
- 一種影像解碼方法,係包括:取得一位元流之一第一單元,其中,該第一單元包括一直流碼與複數之交流碼,分別對應於該影像之一第一區塊之一直流係數與交流係數;對該第一單元執行一影像解碼程序之一第一階段,並且依據該等交流碼,產生該第一區塊之複數之第一交流係數; 判斷該等第一交流係數之個數是否超過一既定參數;當該等第一交流係數之個數超過該既定參數時,則對該第一單元執行該影像解碼程序之一第二階段,用以取得該位元流之一第二單元,係對應於一第二區塊;以及當該等第一交流係數之個數超過該既定參數,將該第一區塊之剩餘交流係數設定為0;其中,每一交流碼包括一霍夫曼碼與一可變長度整數碼。
- 如申請專利範圍第14項所述之該影像解碼方法,其中,該位元流為一霍夫曼編碼位元流。
- 如申請專利範圍第14項所述之該影像解碼方法,更包括:於取得該第一單元後,依據該直流碼,用以產生該第一區塊之該直流係數。
- 如申請專利範圍第16項所述之該影像解碼方法,其中,該既定參數由一方程式決定:
- 如申請專利範圍第14項所述之該影像解碼方法,其中,該影像解碼程序之該第一階段包括:對每一交流碼之該霍夫曼碼執行一霍夫曼解碼方法,用以產生一 零值長度與一非零值長度;以及對每一交流碼之可變長度整數碼執行一可變長度整數解碼方法,用以依據該非零值長度,產生一既定交流係數。
- 如申請專利範圍第14項所述之該影像解碼方法,其中,該影像解碼程序之該第二階段為一單一步驟略過程序,包括:對一目前交流碼之霍夫曼碼執行一霍夫曼解碼方法,用以取得該目前交流碼之一零值長度與一非零值長度;依據對應該目前交流碼之該霍夫曼碼與該可變長度整數碼,用以計算略過位元;依據該略過位元,用以取得該目前交流碼後面之一下一個交流碼:累加該目前交流碼之該等第一交流係數之個數與零值長度,用以輸出一第一數值;以及依據該第一數值,判斷是否對該下一個交流碼之該霍夫曼碼執行該霍夫曼解碼方法。
- 如申請專利範圍第19項所述之該影像解碼方法,其中,於該目前交流碼中,當該可變長度整數碼之位元長度與該零值長度均為0時,該目前交流碼為該第一單元之最後交流碼。
- 如申請專利範圍第19項所述之該影像解碼方法,其中該影像解碼程序之該第二階段為一多重步驟略過方法,包括:自該位元流之該第一單元,取得一N位元資料;對該N位元資料進行解碼,用以取得總略過位元、總交流係數計 數值與一旗標,該旗標具有一第一狀態與一第二狀態,分別表示是否找到該第一區塊之第一單元之結束位置;以及判斷一第二數值是否超過該第一區塊之交流係數總數,其中,累加該總交流係數計數值與該等第一交流之個數而產生該第二數值;若超過,對該N位元資料執行該單一步驟略過程序,用以於該位元流中,取得該第二區塊所對應之該第二單元。
- 如申請專利範圍第21項所述之該影像解碼方法,其中,若該第二數值小於該第一區塊之交流係數總數,包括:判斷該旗標是否為該第二狀態;若是,丟棄該第一單元之總略過位元,用以取得該N位元資料後面之一下一個N位元資料。
- 如申請專利範圍第22項所述之該影像解碼方法,其中,若該旗標被判斷為一第一狀態,包括:判斷該第二數值是否等於該第一區塊之交流係數總數;以及依據該總略過位元與對應於上述判斷結果之一既定略過位元,用以於該位元流中,取得該第二區塊所對應之該第二單元;其中,該既定略過位元為一常數,與該旗標之位元長度相關。
- 如申請專利範圍第21項所述之該影像解碼方法,其中,該霍夫曼解碼方法用以對該N位元資料進行解碼。
- 如申請專利範圍第21項所述之該影像解碼方法,其中,藉由一N位元預先解碼表對該N位元資料進行解碼,以查表方式取得指 定給該N位元資料之該總略過位元、該總交流係數計數值與該旗標。
- 如申請專利範圍第17項所述之該影像解碼方法,其中,當該縮放比率為n 8時,則該既定參數為0。
- 如申請專利範圍第17項所述之該影像解碼方法,其中,當該縮放比率為n <1時,則該既定參數為63。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97136052A TWI384862B (zh) | 2008-09-19 | 2008-09-19 | 影像解碼裝置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW97136052A TWI384862B (zh) | 2008-09-19 | 2008-09-19 | 影像解碼裝置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201014336A TW201014336A (en) | 2010-04-01 |
TWI384862B true TWI384862B (zh) | 2013-02-01 |
Family
ID=44829602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97136052A TWI384862B (zh) | 2008-09-19 | 2008-09-19 | 影像解碼裝置及方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI384862B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI401965B (zh) * | 2010-06-04 | 2013-07-11 | Altek Corp | Image Compression Method with Variable Quantization Parameters |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479527A (en) * | 1993-12-08 | 1995-12-26 | Industrial Technology Research Inst. | Variable length coding system |
US20050152608A1 (en) * | 2003-11-18 | 2005-07-14 | Sami Niemi | Method for processing a digital image and image representation format |
US6956511B2 (en) * | 2004-01-06 | 2005-10-18 | Sharp Laboratories Of America, Inc. | Multi-symbol/coefficient decode operation for Huffman codes |
TW200701791A (en) * | 2005-06-30 | 2007-01-01 | Mavs Lab Inc | Method and apparatus for encrypting and decrypting digital data |
-
2008
- 2008-09-19 TW TW97136052A patent/TWI384862B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479527A (en) * | 1993-12-08 | 1995-12-26 | Industrial Technology Research Inst. | Variable length coding system |
US20050152608A1 (en) * | 2003-11-18 | 2005-07-14 | Sami Niemi | Method for processing a digital image and image representation format |
US6956511B2 (en) * | 2004-01-06 | 2005-10-18 | Sharp Laboratories Of America, Inc. | Multi-symbol/coefficient decode operation for Huffman codes |
TW200701791A (en) * | 2005-06-30 | 2007-01-01 | Mavs Lab Inc | Method and apparatus for encrypting and decrypting digital data |
Also Published As
Publication number | Publication date |
---|---|
TW201014336A (en) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8401321B2 (en) | Method and apparatus for context adaptive binary arithmetic coding and decoding | |
US8102911B2 (en) | Picture coding device | |
JP2009260977A (ja) | 不可逆圧縮及び可逆圧縮を組み合わせて用いたビデオデータ圧縮 | |
WO2007111292A1 (ja) | 画像符号化装置および画像復号化装置 | |
US9516331B2 (en) | Data substream de-encapsulation method for plural symmetrical substreams and corresponding computer programs | |
JP5133290B2 (ja) | 動画像符号化装置および復号装置 | |
JP4831547B2 (ja) | 画像圧縮および伸張加速化のための方法 | |
JP2010193398A (ja) | 画像符号化装置及び画像符号化方法 | |
JP5800362B2 (ja) | 動画像送出装置、動画像受信装置、動画像伝送システム、動画像送出方法、動画像受信方法、およびプログラム | |
CN112672164B (zh) | 视频压缩系统及方法、视频解压缩系统及方法 | |
KR101710619B1 (ko) | 단계적인 영상 부호화, 복호화 방법 및 장치 | |
US10595033B2 (en) | Variable length coding of header data for image compression | |
US9681131B2 (en) | Methods and devices for encoding and decoding at least one image implementing an estimation in the transform domain, and corresponding signal and computer program | |
TWI384862B (zh) | 影像解碼裝置及方法 | |
JP4644290B2 (ja) | 高域係数用符号化ブロックパターン生成方法及び装置 | |
US8073270B2 (en) | Image decoding apparatus and method | |
EP3190793A1 (en) | Method for re-encoding image and apparatus therefor | |
JP3952116B2 (ja) | 画像圧縮装置及び方法 | |
US20130177241A1 (en) | Image processing apparatus and method thereof | |
CN102215384B (zh) | 图像压缩方法和系统 | |
JP2008544621A (ja) | ビデオエラー隠蔽を向上させる符号化及び復号の方法及び装置 | |
CN112449201B (zh) | 解码方法、编码方法、相应的装置、电子设备及存储介质 | |
US20070036445A1 (en) | Method and apparatus of efficient lossless data stream coding | |
JP2009260747A (ja) | 画像符号化装置及びその制御方法 | |
CN101673392B (zh) | 影像译码装置及方法 |