TW201315236A - 布林熵解碼器及影像播放系統之布林熵解碼方法 - Google Patents
布林熵解碼器及影像播放系統之布林熵解碼方法 Download PDFInfo
- Publication number
- TW201315236A TW201315236A TW100135360A TW100135360A TW201315236A TW 201315236 A TW201315236 A TW 201315236A TW 100135360 A TW100135360 A TW 100135360A TW 100135360 A TW100135360 A TW 100135360A TW 201315236 A TW201315236 A TW 201315236A
- Authority
- TW
- Taiwan
- Prior art keywords
- boolean
- value
- bit
- register
- boolean value
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本發明提供之布林熵解碼器包含解碼模組、暫存器及更新模組。解碼模組依序根據一位元流產生第一布林值、第二布林值及第三布林值。第一及第二布林值係於同一工作週期中產生。解碼模組產生對應於第一布林值之一數值時需要第一位元量,於產生對應於第二布林值之一數值時需要第二位元量。暫存器係用以暫存該位元流中之一位元區段,供該解碼模組使用。更新模組根據第一位元量及第二位元量自位元流擷取一新位元區段後更新暫存器。解碼模組係於暫存器被更新後選擇性地調整對應於第三布林值之一數值。
Description
本發明係與影像處理技術相關,並且尤其與縮短解碼時間以提升影像處理效率的技術相關。
現今多媒體播放系統的發展趨勢之一是持續增加影像顯示器的尺寸。相對應地,影像處理裝置的運算速度也必須隨之提升。以採用高畫質電視系統(high-definition television,HDTV)標準的顯示器為例,其解碼裝置的運算速度必須達到至少足以處理每秒60張解析度為1920*1080的畫面。據此,如何縮短解碼裝置的工作週期以增加解碼效率是愈來愈受到重視的議題。
布林熵解碼器(boolean entropy decoder)是一種廣泛使用在影像處理系統中的解碼器,其功用在於將位元流(bitstream)轉換為對應於影像資料的布林值。圖一為典型的布林熵解碼器區塊圖。於此架構中,解碼器100在每個工作週期T內依序產生兩個布林值。在產生布林值B0時,首先須根據下列方程式計算對應於布林值B0之一分離數(split)S0:
其中,對應於布林值B0之一範圍R0及一數值V0係與前一個布林值相關,可預先得知;機率P0可藉由查表產生。電路組合12A負責執行式一中的運算,以產生分離數S0。實務上,範圍R0、分離數S0和數值V0皆為整數,可用二進位八位元表示。整張畫面的第一個布林值之數值V0通常預設在為位元流的最前端八個位元。
比較器12B係用以比較分離數S0和數值V0,以決定布林值B0為1或0。若分離數S0小於等於數值V0,布林值B0等於1。相對地,若分離數S0大於數值V0,布林值B0等於0。
對應於下一個布林值B1的範圍R1和數值V1與布林值B0相關,並且會在決定布林值B0之後透過一重整(renormalization)程序產生。若布林值B0為1,R1的初始值R1(0)將為R0減去S0,V1的初始值V1(0)將為V0減去S0。若布林值B0為0,R1的初始值R1(0)將等於S0,V1的初始值V1(0)等於V0。如圖一所示,減法器12C負責產生範圍R0及分離數S0的差值。布林值B0被提供至多工器12D,用以控制將提供至重整單元12E的初始值R1(0)是分離數S0或範圍R0及分離數S0的差值。同樣地,布林值B0也被提供至多工器12F,用以控制將提供至重整單元12E的初始值V1(0)是數值V0或數值V0與分離數S0的差值。
隨後,重整單元12E負責選擇性調整並確定範圍R1和數值V1,其調整方式可表示如下:
while(R1<128){
R1=R1*2;
V1=[(V1*2)+nbit(1)]}。(式二)
也就是說,若目前的R1小於128,R1會被乘以2,直到R1大於等於128。在每次提高R1的過程中,V1也會被相對應地乘以2,再加上位元流中尚未被使用的部分的第一個位元。以R1是在被乘以2三次之後才大於128的情況為例,重整單元12E會擷取位元流中尚未被使用的前三個位元供產生數值V1使用。如圖一所示,數值N1代表重整單元12E在產生數值V1的過程中需要自尚未被使用的位元流中擷取的位元量。數值N2則是代表重整單元14E在產生數值V2的過程中需要自尚未被使用的位元流中擷取的位元量。圖一中的暫存器18即係用以暫存位元流中尚未被使用的部分區段,供重整單元12E/14E產生數值V1時使用。也就是說,於重整單元12E以及重整單元14E分別產生數值V1以及數值V2時,暫存器18中必須存有所需之特定位元,俾使重整單元12E以及重整單元14E得以運作。
在確認了範圍R1和數值V1之後,組合電路14A即可根據範圍R1、機率P1(可藉由查表產生)與式一計算分離數S1。藉由比較分離數S1與由重整單元12E產生的數值V1,比較器14B可決定布林值B1為1或0。
同樣地,對應於下一個布林值B2的範圍R2和數值V2與布林值B1相關,並且會在決定布林值B1之後透過重整程序產生。如圖一所示,減法器14C負責產生範圍R1及分離數S1的差值。布林值B1被提供至多工器14D,用以控制將提供至重整單元14E的R2初始值R2(0)是分離數S1或範圍R1及分離數S1的差值。布林值B1也被提供至多工器14F,用以控制將提供至重整單元14E的V2初始值V2(0)是數值V1或數值V1與分離數S1的差值。隨後,重整單元14E負責決定下一個布林值B2的範圍R2和數值V2。
實務上,電路12A~12E可再次被利用以產生布林值B2,而電路14A~14E可用以產生後續的布林值B3,依此循環,逐步產生一連串的布林值。
如圖一所示,更新單元16分別接收重整單元12E提供的數值N1和重整單元14E提供的數值N2。數值N1代表重整單元12E在產生數值V1的過程中需要自尚未被使用的位元流中擷取的位元量。數值N2則是代表重整單元14E在產生數值V2的過程中需要自尚未被使用的位元流中擷取的位元量。根據數值N1和數值N2,更新單元16計算出在這個工作週期T中總共使用了位元流中的幾個位元,並據此更新暫存器18的內容。
圖二為暫存器18的內容範例。假設暫存器18的容量為16位元且在第一個週期T1內存有位元流中的位元[20:35](標號為20的位元開始至標號為35的位元)。若數值N1和數值N2的總和為8,表示位元[20:35]中的前8個位元[20:27]在工作週期T1中已被重整單元12E/14E使用。因此,更新單元16將向儲存該位元流的記憶體(未繪示於圖中)請求擷取該位元流中後續的8個位元[36:43],並令暫存器18的內容在第二工作週期T2開始前被更新為位元[28:43],亦即刪去前端已被使用的八個位元,使其內容被更新為存有16個未使用位元的狀態,供重整單元12E/14E於第二工作週期T2中產生數值V3、V4時使用。同理,更新單元16下一次係根據產生數值V3、V4時使用的位元數量(數值N3和數值N4的總和)在工作週期T3開始前更新暫存器18。
在每次的重整過程中,產生一個數值V時至多會自位元流中取用7個位元。暫存器18的容量通常被設計為足夠單一週期中供產生對應於兩個布林值的數值V使用。如圖二所示,布林熵解碼器100在每個工作週期中會產生兩個布林值,而暫存器18的內容會隨著各週期中消耗的位元數量不同而改變或者維持不變。
就圖一的架構而言,數值N1的產生必然早於數值N2,但更新單元16必須等待重整單元14E產生數值N2後才能決定應擷取多少位元量來更新暫存器18的內容。以圖二為例,重整單元14E在時間點tA1產生數值N2,自時間點tA1到工作週期T1結束之前的時間則是供更新單元16自位元流擷取後續更新暫存器18時所需的位元。要等到暫存器18的內容更新完畢,下一個工作週期T2才能開始。由此可看出,擷取資料和更新暫存器的時間會使布林熵解碼器100的各個工作週期T增長,因而導致其工作頻率降低,甚至可能會造成布林熵解碼器100無法達成某些高解析度影像系統之要求的結果。
針對上述問題,本發明提出一種新的布林熵解碼器架構,藉由改變擷取資料的時間點來縮短每一次的工作週期。此外,利用多組電路同時計算多種可能結果,解碼所需要的時間可被進一步縮短。
根據本發明之一具體實施例為一布林熵解碼器,用以將一位元流轉換為複數個布林值。該解碼器包含一解碼模組、一暫存器及一更新模組。該解碼模組依序根據該位元流產生一第一布林值、一第二布林值及一第三布林值。該第一布林值及該第二布林值係於同一工作週期中產生。該解碼模組產生對應於該第一布林值之一數值時需要一第一位元量,且於產生對應於該第二布林值之一數值時需要一第二位元量。該暫存器係用以暫存該位元流中之一位元區段,供該解碼模組使用。該位元區段至少涵蓋該第一位元量及該第二位元量。該更新模組根據該第一位元量及該第二位元量自該位元流擷取一新位元區段後更新該暫存器。該解碼模組係於該暫存器被更新後選擇性地調整對應於該第三布林值之一數值。
根據本發明之另一具體實施例為一種應用於影像播放系統之布林熵解碼方法,用以將一位元流轉換為對應於影像資料之複數個布林值。該影像播放系統包含一暫存器,用以暫存該位元流中之一位元區段。首先,利用該位元區段中具有一第一位元量之一第一區段,對應於一第一布林值之一數值被產生。接著,於一第一工作週期中,第一布林值被產生。隨後,利用該位元區段中具有一第二位元量之一第二區段,對應於一第二布林值之一數值被產生。根據該第一位元量及該第二位元量一新位元區段自該位元流被擷取,並且該暫存器根據該新位元區段被更新。同樣在該第一工作週期中,該第二布林值以及對應於一第三布林值之一數值被產生。於該暫存器被更新後,對應於該第三布林值之該數值被選擇性地調整。接著,於一第二工作週期中,該第三布林值被產生。
關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
根據本發明之一具體實施例為一布林熵解碼器,用以將一位元流轉換為複數個布林值;圖三為其電路方塊圖。布林熵解碼器200包含解碼模組20、更新模組26和暫存器28。於實際應用中,布林熵解碼器200可被整合在各種採用布林熵編碼的多媒體系統內,例如VP8規格的影像處理系統。
實務上,解碼模組20可被設計為包含圖一中的電路12A~12E及電路14A~14E,但不以此為限。根據輸入至布林熵解碼器200的位元流,解碼模組20依序產生一第一布林值B1、一第二布林值B2及一第三布林值B3。須說明的是,於此實施例中,第一布林值B1和第二布林值B2是在同一個工作週期中產生,而第三布林值B3是在後一個工作週期中產生。以圖四所示之布林值B1~B3為例,第一布林值B1可以是在第一週期T1的前段由電路12A~12E產生,第二布林值B2可以是在第一週期T1的後段由電路14A~14E產生,而第三布林值B3可以是在第二週期T2的前段由電路12A~12E產生,依此類推。
解碼模組20產生對應於第一布林值B1之數值V1時需要一第一位元量N1,產生對應於第二布林值B2之數值V2時需要一第二位元量N2。第一位元量N1代表在重整(renormalization)程序中產生數值V1時,總共需要自位元流中擷取的,尚未被使用的位元量,第二位元量N2代表在重整程序中產生數值V2時,總共需要自位元流中擷取的,尚未被使用的位元量。暫存器28係用以暫存位元流中之一位元區段,供解碼模組20產生該等數值V時取用。以圖四所示之布林值B1~B3為例,第一位元量N1是在工作週期T0中產生布林值B0後之重整程序決定的,也就是解碼模組20於時間點t1自暫存器28中取用所需之特定N1個位元;而第二位元量N2是在工作週期T1中產生布林值B1後之重整程序決定的,也就是解碼模組20於時間點t2自暫存器28中取用所需之特定N2個位元。
在解碼模組20於工作週期T1中決定第二位元量N2後,此實施例中的更新模組26根據第二位元量N2及在前一個工作週期T0中產生的第一位元量N1自位元流擷取一新位元區段。不同於先前技術,更新模組26並非根據於同一工作週期中決定的兩個位元量(例如同在工作週期T1中決定的位元量N2、N3)來計算隨後將要自位元流擷取的位元量,而係採用橫跨兩個工作週期的,前一工作週期之後段決定之位元量以及後一工作週期之前段決定之位元量,計算隨後將要自位元流擷取的位元量。以圖四所繪示的情況為例,第一位元量N1產生的時間點為t1,第二位元量N2產生的時間點為t2。在時間點t2確認位元量N2後,此實施例中的更新模組26即根據N1和N2的總和決定接下來應如何更新暫存器28的內容。
另一方面,如同圖四所示,此實施例中之暫存器28被更新的時間仍然是在每個工作週期結束時(例如在第三位元量N3產生的時間點t3)。藉由令更新模組26將擷取所需位元以及更新暫存器之步驟分時執行,而提早在時間點t2和t3之間擷取後續更新暫存器28所需的位元,更新模組26於時間點t3後僅需更新暫存器28之內容,而省去擷取所需位元之時間;據此,布林熵解碼器200的工作週期可被縮短,等同於提高其工作頻率。
以圖四為例,假設解碼模組20在時間點t1判定第一位元量N1等於5,在時間點t2判定第二位元量N2等於0。更新模組26即可根據N1和N2的總和得知,在目前暫存器28儲存的位元[28:43]當中,前五個位元(也就是位元[28:32])已被解碼模組20使用。因此,更新模組26於時間點t2開始向儲存位元流的記憶體(未繪示於圖中)請求擷取位元流中後續五個尚未被使用的位元(位元[44:48])。實務上,這段擷取資料的時間會短於時間點t2和t3的間隔,更新模組26因此可在時間點t3之前完成資料擷取的程序。在時間點t3,更新模組26將新的位元區段載入暫存器28,使暫存器28的內容被更新為位元[33:48]。於另一實施例中,更新模組26亦可在完成擷取資料程序之後隨即更新暫存器28的內容,不一定要等到時間點t3才開始更新暫存器28。
圖五為暫存器28內容的另一範例。先看工作週期T0,假設在時間點tA1之前的兩次重整程序共使用了暫存器28中的[20:27]八個位元,更新模組26在時間點tA1會請求自位元流擷取後續八個位元[36:43],藉此在下次更新暫存器28時,使其儲存內容更新為位元[28:43]。如圖五所示,更新模組26是在布林值B0產生後之重整程序完成時(也就是工作週期T0結束時)更新暫存器28的內容。如先前所述,在工作週期T0後段進行的重整程序會決定對應於第一布林值B1的數值V1。於此範例中,產生數值V1時需使用位元流中七個位元的資料(位元[28:34]),因此第一位元量N1等於7。
在時間點tA2,解碼模組20完成在布林值B1產生後之重整程序。於此範例中,產生數值V2時也需使用位元流中七個位元的資料(位元[35:41]),因此第二位元量N2等於7。更新模組26隨即得知產生數值V1、V2總共需要[28:41]十四個位元,因此可在時間點tA2後馬上請求自位元流擷取後續十四個尚未被載入暫存器28的位元(位元[44:57]),並且在工作週期T1結束時更新暫存器28,使其儲存內容能被更新為位元[42:57]。
如圖五所示,產生數值V3時也需使用位元流中七個位元的資料(位元[42:48])。須說明的是,雖然工作週期T1這段時間內暫存器28儲存的內容不足以供應產生數值V3的重整程序所需,但解碼模組20可以等到暫存器28的內容被更新為位元[42:57]後(甚至可以是在工作週期T2開始後)才根據此時暫存器28的內容(位元[42:57])更新數值V3。更明確地說,解碼模組20在工作週期T1後段的重整程序可以先計算出R3(0)是在被乘以2七次之後才大於128,據此得知第三位元量N3等於7。相對應地,在上述重整程序中,V3(0)也會被乘以2七次,以得出待更新的V3。在暫存器28的內容被更新為位元[42:57]後,解碼模組20隨即自暫存器28中取得位元[42:48],並將位元[42:48]與先前待更新的V3相加,使數值V3被更新為正確的結果,供產生布林值B3使用。
須說明的是,若工作週期T1這段時間內暫存器28儲存的內容已足以供應產生數值V3所需,解碼模組20即無須在暫存器28更新後調整數值V3。綜上所述,解碼模組20係於暫存器28被更新後選擇性地調整對應於第三布林值B3之數值V3。由以上範例可看出,工作週期T1這段時間內暫存器28儲存的內容實際上是供布林值B0、B1產生後的重整程序使用。同理,工作週期T2這段時間內暫存器28儲存的內容是供布林值B2、B3產生後的重整程序使用。因此,工作週期T1期間暫存器28所儲存的位元區段只要至少涵蓋第一位元量N1及第二位元量N2即可。舉例而言,若第一位元量N1及第二位元量N2各自至多為7位元,第一位元量N1及第二位元量N2相加至多為14位元,則一具有16位元容量的暫存器28即為已足。
以下將以在同一工作週期T內產生布林值B0、B1的情況為例,來說明解碼模組20之另一實施方式。如先前所述,布林值B0可能為1或0,而產生布林值B0之後的重整程序可能產生的結果至多是八種(分別對應於N1=0~7)。因此,布林值B0產生後之重整程序的結果([R1,V1])共有16種可能性。以下定義當布林值B0為0時機率P1為PL,當布林值B0為1時機率P1為PM。
首先討論布林值B0為0且N1=0的狀況。這樣的狀況表示,R1的初始值R1(0)等於S0且大於等於128,因此:
由式一A可得出:
若以數值S0_m1代表一調整後分離數,則式一B可被改寫為:
S0_m1>126。(式一C)
也就是說,若布林值B0為0且N1=0,則式一C成立。換言之,於布林值B0之情況下,式一C為以S0_m1之大小範圍判定N1值之判斷式。
此外,V1的初始值V1(0)等於V0,且重整程序無須調整R1(0)和V1(0)。易言之,R1等於R1(0)等於S0,V1等於V1(0)等於V0。因此,接著在比較V1和S1以決定布林值B1為1或0時,係比較V0是否大於等於,等同於比較V0是否大於。綜上所述,決定布林值B1為1或0時之比較式可表示如下:
若以數值S0_m1代表,則式一D可被改寫為:
由上述式一C及式一E可知,藉由定義該數值S0_m1,本實施例可同時簡化判定N1值以及決定布林值B1之判斷式,使得本實施例可以較少之硬體產生布林值B1以及相關參數之判斷。以下狀況亦依此精神簡化判定N1值以及決定布林值B1之判斷式,茲詳述如下。接著討論布林值B0為0且N1=1的狀況。這樣的狀況表示,R1的初始值R1(0)等於S0且小於128大於等於64,因此:
由式二A可得出:126 S 0_m1>62。(式二B)
也就是說,若布林值B0為0且N1=1,則式二B成立。
此外,V1的初始值V1(0)等於V0,且重整程序須調整R1(0)和V1(0)。易言之,R1等於R1(0)乘以2,也等於S0乘以2;V1等於V1(0)乘以2後加上位元流中尚未被使用的1位元,也等於等於V0乘以2後加上位元流中尚未被使用的1位元。因此,接著在比較V1和S1以決定布林值B1為1或0時,係判斷下列關係式是否成立:
其中{V0,nbit(1)}表示對V0進行一次如式二所述之調整(乘以2後加上一個未使用過的位元)。
式二C等同於:
綜上所述,決定布林值B1為1或0之比較式可表示如下:
式二E可再被改寫為:
依此類推,若布林值B0為0且N1=2,下列方程式成立:
62 S 0_m1>30,(式三A)
且決定布林值B1為1或0時之比較式可表示為:
其中{V0,nbit(2)}表示對V0進行兩次如式二所述之調整。
若布林值B0為0且N1=3,下列方程式成立:
30 S 0_m1>14,(式四A)
且決定布林值B1為1或0時之比較式可表示為:
若布林值B0為0且N1=4,下列方程式成立:
14 S 0_m1>6,(式五A)
且決定布林值B1為1或0時之比較式可表示為:
若布林值B0為0且N1=5,下列方程式成立:
6 S 0_m1>2,(式六A)
且決定布林值B1為1或0時之比較式可表示為:
若布林值B0為0且N1=6,下列方程式成立:
2 S 0_m1>0,(式七A)
且決定布林值B1為1或0時之比較式可表示為:
若布林值B0為0且N1=7,下列方程式成立:
S 0_m1=0,(式八A)
且決定布林值B1為1或0時之比較式可表示為:
綜上所述,根據數值S0_m1是落在0、2、6、14、30、62、126等七個數字劃分的哪一個範圍之內,即可判斷N1為0~7中的哪一個數值。圖六係繪示實現上述各組判斷式之一電路範例。首先,乘法器61A和除法器61B負責初步運算,產生S0_m1。判斷單元62負責根據數值S0_m1判斷N1為0~7中的哪一個數值。
另一方面,由第一調整單元63、第二調整單元64、及電路組合65A~65H根據上述決定布林值B1之各組判斷式,分別產生八個對應於不同N1值之布林值B1,並由多工器66負責根據判斷單元62所輸出的N1,由電路組合65A~65H的輸出中選出正確的布林值B1。第一調整單元63係用以根據除法器61B輸出的S0_m1計算S0_m1*2+1、S0_m1*4+3、S0_m1*8+7、S0_m1*16+15、S0_m1*32+31、S0_m1*64+63、S0_m1*128+127等七個參考範圍分別是多少。第二調整單元64負責根據V0計算{V0,nbit(1)}、{V0,nbit(2)}、{V0,nbit(3)}、{V0,nbit(4)}、{V0,nbit(5)}、{V0,nbit(6)}、{V0,nbit(7)}等七個參考數值分別是多少。實務上,第一調整單元63僅需將S0_m1左移並在最低次位元補上1即可產生上述七個參考範圍,無須加法器和乘法器等額外的硬體。
電路組合65A接收V0及除法器61B輸出的S0_m1,並執行式一E所表示的運算,以產生布林值B0為0且N1=0時所對應的布林值B1。電路組合65B接收第一調整單元63輸出的S0_m1*2+1及第二調整單元64輸出的{V0,nbit(1)},並執行式二F所表示的運算,產生布林值B0為0且N1=1時所對應的布林值B1。如圖六所示,電路組合65C~65H分別產生對應於其他六種狀況的布林值B1。最後,多工器66負責根據判斷單元62所輸出的N1,由電路組合65A~65H的輸出中選出正確的布林值B1。
如圖六所示,乘法器61A所接收的輸入信號為(R0-1)而非R0。實務上,(R0-1)的運算可以被合併在先前產生R0的重整程序中,藉此省去一個減法器。
請參閱圖七。除了圖六所示之電路組合60之外,根據本發明之一實施例中的解碼模組20還可以包含如圖七所示之多工器67A~67C、68A~68B以及重整單元69。多工器67A負責根據電路組合60產生的N1由圖六所示之S1_00~S1_07中選出對應於該N1的S1。多工器67B負責根據N1由V0及{V0,nbit(1)}...{V0,nbit(7)}等八個數值中選出對應於該N1的V1。多工器67C負責根據N1由S0_m1*2+1~S0_m1*128+127等八個數值中選出對應於該N1的R1。
隨後,多工器68A會根據電路組合60產生的B1選擇對應於布林值B2的R2初始值R2(0)應為S1或R1與S1的差值。多工器68B會根據B1選擇對應於布林值B2的V2初始值V2(0)應為V1或V1與S1的差值。上述初始值R2(0)和V2(0)被提供至重整單元69,供重整單元69決定對應於布林值B2的R2、V2及N2。根據重整單元69輸出的N2及先前電路組合60產生的N1,更新模組26即可決定將如何更新暫存器28的內容,其更新方式可參考先前的說明,不再贅述。
同理,布林值B0為1的八種狀況也可被歸納為另外八組不同的關係式,並且被實現為類似圖六所示之電路組合,與圖七中的電路整合。也就是說,同樣透過該定義好之數值S0_m1,本實施例可同時簡化布林值B0為1時判定N1值以及決定布林值B1之判斷式,使得本實施例可以較少之硬體產生布林值B1以及相關參數之判斷。圖八為整合涵蓋十六種可能性的電路範例。如圖八所示,數值(R0-1)減去S0_m1的差值更進一步被定義為S0_m2,用以簡化判定N1值以及決定布林值B1之判斷式。此範例中的判斷單元62可根據數值S0_m1和S0_m20判斷布林值B0為1或0,以及N1為0~7中的哪一個數值。舉例而言,若布林值B0為1且N1=0,表示R1的初始值R1(0)等於(R0-S0)且大於等於128。因此:
R 0-S 0=R 0-(1+S 0_m1)=(R 0-1)-S 0_m1128。(式九A)
式九A可被改寫為:
S 0_m2>127。(式九B)
若數值S0_m1和R0的關係符合式九B所述者,判斷單元62可判定布林值B0為1且N1=0。
此外,V1的初始值V1(0)等於(V0-S0),且重整程序無須調整R1(0)和V1(0)。接著在比較V1和S1以決定布林值B1為1或0時,係判斷下列關係式是否成立:
式九C可被改寫為:
其他七組布林值B0為1且N1=1~7的關係式可依此類推。
圖八中的第三調整單元70係用以根據數值S0_m2計算S0_m1*2+1、S0_m1*4+3、S0_m1*8+7、S0_m1*16+15、S0_m1*32+31、S0_m1*64+63、S0_m1*128+127等七個數值分別是多少。此範例中的多工器66負責根據判斷單元62提供的布林值B0和數值N1選出相對應的布林值B1。同理,對應於該布林值B0和數值N1的S1、V1、R1也會根據判斷單元62提供的布林值B0和數值N1被選出,供後續電路產生布林值B2時使用。
圖九係繪示將圖八精簡後之一電路範例。於此範例中,布林值B0為1或0首先被判斷,隨後再由判斷單元62決定數值N1。其後各調整單元、乘法器、除法器、比較器皆為供布林值B0為1或0兩種狀況共用。因此,布林值B0被用以控制多個多工器,選擇將輸入判斷單元62、各乘法器、各比較器的數值為何。圖九中的電路之詳細運作方式可參考前述範例,不再贅述。
由以上範例可知,根據解碼過程中可能產生的結果,解碼模組20可被拆解為多組電路,同時計算各種可能性所對應的輸出結果。以圖八所示之電路為例,無須等待如圖一之重整單元12E決定V1、R1為何才能繼續產生布林值B1。藉此,布林熵解碼器200的工作週期T可被進一步縮短,提升其工作頻率。值得注意的是,如圖八所示,上述拆解電路運算的方式只採用的元件大多是乘法器、除法器、比較器,這樣的電路架構相較於額外涵蓋許多加減法器的電路單純,實現時可節省晶片面積。
根據本發明之另一實施例為一種應用於影像播放系統之布林熵解碼方法,圖十為其流程圖。該影像播放系統包含一暫存器,用以暫存該位元流中之一位元區段。首先,步驟S11為利用該位元區段中具有第一位元量N1之一第一區段,產生對應於第一布林值B1之數值V1。以圖四所繪示的狀況為例,第一位元量N1是在工作週期T0後段的重整程序中產生。接著,步驟S12為於第一工作週期中產生第一布林值B1。步驟S13則是利用該位元區段中具有第二位元量N2之一第二區段,產生對應於第二布林值B2之數值V2。以圖四為例,第二位元量N2是在工作週期T1前段的重整程序中產生。隨後,步驟S14為根據第一位元量N1及第二位元量N2自該位元流擷取一新位元區段。可與步驟S14同時進行的步驟S15是繼續在第一工作週期中產生第二布林值B2。
接著,步驟S16為產生對應於第三布林值B3之數值V3。步驟S17則是在暫存器根據該新位元區段被更新後選擇性地調整數值V3。以圖四為例,數值V3是在工作週期T1後段的重整程序中產生,而更新暫存器的時間可被安排在工作週期T2開始前或開始時;在暫存器被更新後,即可根據數值V3所需要的位元量選擇性地調整數值V3。隨後的步驟S18就是在工作週期T2中利用被選擇性更新後的數值V3產生第三布林值B3。
圖十所示之流程可被實現於各種布林熵解碼器,不以圖一或圖六等電路架構為限。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
100...布林熵解碼器
12A、14A...電路組合
12B、14B...比較器
12C、14C...減法器
12D、14D...多工器
12E、14E...重整單元
12F、14F...多工器
16...更新單元
18...暫存器18
200...布林熵解碼器
20...解碼模組
26...更新模組
28...暫存器
60...電路組合
61A...乘法器
61B...除法器
62...判斷單元
63...第一調整單元
64...第二調整單元
65A~65H...電路組合
66...多工器
67A~67C、68A~68B...多工器
69...重整單元
70...第三調整單元
S11~S18...流程步驟
圖一為典型的布林熵解碼器區塊圖。
圖二為傳統布林熵解碼器中之暫存器內容範例。
圖三為根據本發明之一具體實施例中布林熵解碼器的電路方塊圖。
圖四及圖五為根據本發明之布林熵解碼器中的暫存器內容範例。
圖六、圖七、圖八、圖九分別為根據本發明之解碼模組的局部電路方塊圖範例。
圖十為根據本發明之一具體實施例中布林熵解碼方法的流程圖。
S11~S18...流程步驟
Claims (10)
- 一種布林熵解碼器(boolean entropy decoder),用以解碼有關於影像資料之一位元流(bitstream),包含:一解碼模組,根據該位元流產生一啟始布林值、一第一布林值及一第二布林值,該解碼模組產生對應於該第一布林值之一第一數值時需要一第一位元量,且於產生對應於該第二布林值之一第二數值時需要一第二位元量,其中該第一布林值、該第二數值、該第二布林值及一對應於一第三布林值之一暫定第三數值係於同一工作週期中產生;一暫存器,用以暫存該位元流中之一位元區段,供該解碼模組使用,該位元區段涵蓋該第一位元量及該第二位元量;以及一更新模組,根據該第一位元量及該第二位元量自該位元流擷取一新位元區段後更新該暫存器;其中該解碼模組係於該暫存器被更新後選擇性地調整對應於該第三布林值之該暫定第三數值。
- 如申請專利範圍第1項所述之布林熵解碼器,其中該第一位元量及該第二位元量各自至多為7位元,且該暫存器之容量為16位元。
- 如申請專利範圍第1項所述之布林熵解碼器,其中該第一位元量有N種可能性,N為一正整數,該解碼模組包含:一初步運算單元,用以根據對應於該啟始布林值之一範圍及一機率產生一調整後分離數;一判斷單元,用以根據該調整後分離數決定該第一位元量;一第一調整單元,用以根據該調整後分離數產生(N-1)個參考範圍;一第二調整單元,用以根據對應於該啟始布林值之一啟始數值產生(N-1)個參考數值;N組計算電路,用以根據該調整後分離數、對應於該啟始布林值之該啟始數值、該(N-1)個參考範圍以及該(N-1)個參考數值產生N個候選布林值;以及一第一多工器,用以根據該第一位元量自該N個候選布林值中選出該第二布林值。
- 如申請專利範圍第3項所述之布林熵解碼器,其中該N組計算電路各自產生一參考分離數,該解碼模組進一步包含:一第二多工器,用以根據該第一位元量自該N個參考分離數中選出對應於該第一布林值之一分離數;一第三多工器,用以根據該第一位元量自對應於該啟始布林值之該啟始數值及該(N-1)個參考數值中選出對應於該第一布林值之該第一數值;以及一第四多工器,用以根據該第一位元量自該調整後分離數及該(N-1)個參考範圍中選出對應於該第一布林值之一範圍。
- 如申請專利範圍第3項所述之布林熵解碼器,其中N等於八。
- 如申請專利範圍第3項所述之布林熵解碼器,其中該第一調整單元係利用一個或多個移位器產生該等參考範圍。
- 一種應用於一影像播放系統之布林熵解碼方法,用以解碼一位元流,該影像播放系統包含一暫存器,用以暫存該位元流中之一位元區段,該解碼方法包含:利用該位元區段中具有一第一位元量之一第一區段,產生對應於一第一布林值之一第一數值;於一第一工作週期中產生一第一布林值;利用該位元區段中具有一第二位元量之一第二區段,產生對應於一第二布林值之一第二數值;根據該第一位元量及該第二位元量自該位元流擷取一新位元區段;於該第一工作週期中產生該第二布林值;產生對應於一第三布林值之一暫定第三數值,並於該暫存器根據該新位元區段被更新後,選擇性地調整該暫定第三數值;以及於一第二工作週期中利用該被選擇性地調整的暫定第三數值產生該第三布林值。
- 如申請專利範圍第7項所述之布林熵解碼方法,其中該第一位元量及該第二位元量各自至多為7位元,且該暫存器之容量為16位元。
- 如申請專利範圍第7項所述之布林熵解碼方法,其中更新該暫存器的時間可被安排在自該位元流擷取完該新位元區段時或該第二工作週期開始時。
- 如申請專利範圍第7項所述之布林熵解碼方法,其中該第一布林值、該第二數值及該第二布林值係於該第一工作週期中產生。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100135360A TWI455595B (zh) | 2011-09-29 | 2011-09-29 | 布林熵解碼器及影像播放系統之布林熵解碼方法 |
US13/336,870 US9214955B2 (en) | 2011-09-29 | 2011-12-23 | Boolean entropy decoder and boolean entropy decoding method for video display system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100135360A TWI455595B (zh) | 2011-09-29 | 2011-09-29 | 布林熵解碼器及影像播放系統之布林熵解碼方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201315236A true TW201315236A (zh) | 2013-04-01 |
TWI455595B TWI455595B (zh) | 2014-10-01 |
Family
ID=47992576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100135360A TWI455595B (zh) | 2011-09-29 | 2011-09-29 | 布林熵解碼器及影像播放系統之布林熵解碼方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9214955B2 (zh) |
TW (1) | TWI455595B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI552579B (zh) * | 2013-04-19 | 2016-10-01 | 三星電子股份有限公司 | 視訊編碼方法與裝置以及非暫時性電腦可讀記錄媒體 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828907A (en) * | 1992-06-30 | 1998-10-27 | Discovision Associates | Token-based adaptive video processing arrangement |
US5603012A (en) * | 1992-06-30 | 1997-02-11 | Discovision Associates | Start code detector |
US7681013B1 (en) * | 2001-12-31 | 2010-03-16 | Apple Inc. | Method for variable length decoding using multiple configurable look-up tables |
US7519728B1 (en) * | 2002-07-18 | 2009-04-14 | Juniper Networks, Inc. | Merge systems and methods for transmit systems interfaces |
US7262719B2 (en) * | 2006-01-30 | 2007-08-28 | International Business Machines Corporation | Fast data stream decoding using apriori information |
TWI376959B (en) * | 2008-05-02 | 2012-11-11 | Novatek Microelectronics Corp | Entropy decoding circuit, entropy decoding method, and entropy decoding method using a pipeline manner |
US8660261B2 (en) * | 2009-06-04 | 2014-02-25 | Mediatek Singapore Pte. Ltd. | System and apparatus for integrated video/image encoding/decoding and encryption/decryption |
US8824569B2 (en) * | 2011-12-07 | 2014-09-02 | International Business Machines Corporation | High bandwidth decompression of variable length encoded data streams |
-
2011
- 2011-09-29 TW TW100135360A patent/TWI455595B/zh not_active IP Right Cessation
- 2011-12-23 US US13/336,870 patent/US9214955B2/en active Active - Reinstated
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI552579B (zh) * | 2013-04-19 | 2016-10-01 | 三星電子股份有限公司 | 視訊編碼方法與裝置以及非暫時性電腦可讀記錄媒體 |
Also Published As
Publication number | Publication date |
---|---|
US20130083860A1 (en) | 2013-04-04 |
TWI455595B (zh) | 2014-10-01 |
US9214955B2 (en) | 2015-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3532781B2 (ja) | 画像入力装置の画像処理回路 | |
CN109275011B (zh) | 智能电视运动模式切换的处理方法及装置、用户设备 | |
JP2005204310A (ja) | 映像符号化装置 | |
US10430931B2 (en) | High dynamic range processing | |
US20210090220A1 (en) | Image de-warping system | |
TWI455595B (zh) | 布林熵解碼器及影像播放系統之布林熵解碼方法 | |
JP4113098B2 (ja) | ラスタスキャン順序の画像データとブロックスキャン順序の画像データとの間の変換のための画像処理装置及び方法 | |
TWI593272B (zh) | 壓縮影像資料的方法及影像資料壓縮系統 | |
JP2002237755A (ja) | データストリーム生成装置とその方法、可変長符号化データストリーム生成装置とその方法、および、カメラシステム | |
JP7355763B2 (ja) | ビデオコンテンツの色の色調マッピング | |
KR101675802B1 (ko) | 영상 처리 시스템 | |
US20110157465A1 (en) | Look up table update method | |
JP2005025752A (ja) | ディジタル画像データを処理するための装置及び方法 | |
US8072359B2 (en) | Binary arithmetic coding device | |
JP2723486B2 (ja) | 自動高輝度圧縮方法及びその回路 | |
JP5594055B2 (ja) | 画像処理装置、電子機器及び画像処理方法 | |
JP7017542B2 (ja) | 映像復号装置および映像復号方法 | |
US20180316938A1 (en) | Method and apparatus for k-th order exp-golomb binarization | |
CN103037213B (zh) | 布林熵解码器及影像播放系统的布林熵解码方法 | |
US20130003870A1 (en) | Apparatus and method for video data processing | |
US20110069759A1 (en) | Interpolation method and video codec device using the same | |
JP4622043B2 (ja) | 情報処理装置および方法 | |
TW202207641A (zh) | 轉換數位影像資料 | |
JP2004153849A (ja) | 画像入力装置の画像処理回路 | |
JPH05292329A (ja) | 画像圧縮装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |