專利名稱:熵編碼電路及其編碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理裝置與其運算方法,且特別是涉及一種可同時
編碼TILE —HIGHPASS和TILE—FLEXBITS的編碼電3各及其編碼方法。
背景技術(shù):
在 一般的圖像壓縮編碼方式,主要是由 一個原始的圖像數(shù)據(jù)經(jīng)過轉(zhuǎn)換與 編碼壓縮后產(chǎn)生編碼串流(Encoded Stream)的方式,請參照圖1所示,包括 步驟110,進(jìn)行取樣及色彩空間轉(zhuǎn)換(Downsampling & Color Space Transform) 的處理。而后,經(jīng)由步驟120進(jìn)行重迭轉(zhuǎn)換(Lapped Transform)的處理。接 著如步驟130,進(jìn)行量化(Quantization)及系數(shù)預(yù)測(Predict ion)并產(chǎn)生區(qū) 塊類型信息(Coded Block Pattern)。而后經(jīng)由步驟140,運用可調(diào)式掃瞄 (Adaptive Scan)及進(jìn)行熵編碼(Entropy Coding),以產(chǎn)生編碼串流。
以JPEG標(biāo)準(zhǔn)為例,先將色彩轉(zhuǎn)換至YCbCr色彩空間,再經(jīng)過離散余弦轉(zhuǎn) 換(Discrete Cosine Transform),經(jīng)過量化處理后,再對DC項系數(shù)進(jìn)行預(yù) 測差分,最后再將系數(shù)以鋸齒形掃描(Zig-Zag Scan)順序掃描成游程編碼 (Run-Length Encoding),再以可變長度編碼(Var iable Length Coding)完成 編碼。
例如美國微軟(Microsoft)公司所推出新的靜態(tài)圖像壓縮格式,稱為HD Photo格式,目前已進(jìn)入JPEG國際標(biāo)準(zhǔn)制訂過程中,而命名為JPEG-XR。此 HD Photo格式為了減少獨立區(qū)塊轉(zhuǎn)換帶來的區(qū)塊效應(yīng),使用了以4乘4區(qū)塊 為單位的重迭轉(zhuǎn)換(Lapped Transform, LT),其中先對4乘4區(qū)塊交接處的 4乘4區(qū)塊進(jìn)行重迭濾波(Overlap Filter),再對4乘4區(qū)塊進(jìn)行核心轉(zhuǎn)換 (Core Transform),重迭濾波與核心轉(zhuǎn)換皆使用了提升式結(jié)構(gòu)(Lif t)來確保 無失真壓縮的可能性。
請參照圖2,主要是說明符合HD Photo格式的重迭濾波轉(zhuǎn)換與核心轉(zhuǎn)換 流程示意圖。此內(nèi)容揭露在美國專利申請案第2006/013682號公開案 r Reversible Overlap Operator For Efficient Lossless DataCompression」,與美國專利申請案第2007/0036223號公開案「 Efficient Coding And Decoding Of Transform Blocks J 。這些都是提到上述的HD Photo 格式,先將例如圖示的2維(2-D)輸入數(shù)據(jù)進(jìn)行分割(Tiling),而后為了減少 獨立區(qū)塊轉(zhuǎn)換帶來的區(qū)塊效應(yīng),因此先進(jìn)行重迭轉(zhuǎn)換,如圖所示的向前重迭 (Forward Overlap)濾波轉(zhuǎn)換。而后再對原切割的區(qū)塊進(jìn)行區(qū)塊轉(zhuǎn)換,也就是 HD Photo格式的核心轉(zhuǎn)換(HD Photo Core Transform, PCT),可以取得一個 DC系數(shù)(DC coefficient)與十五個AC系數(shù)(AC coefficients)。而此HD Photo 格式采用兩階式的轉(zhuǎn)換,因此再將DC值集合成區(qū)塊,并再次進(jìn)行重迭濾波轉(zhuǎn) 換與區(qū)塊轉(zhuǎn)換。
上述重迭濾波轉(zhuǎn)換與核心轉(zhuǎn)換皆使用了提升式(Li f t i ng)結(jié)構(gòu)來確保無 失真(Lossless)壓縮的可能性。由于提升式結(jié)構(gòu)每一步驟都是完全可逆 (Reversible),若編碼過程采取無失真的壓縮轉(zhuǎn)換領(lǐng)域的信號,則在譯碼時 先進(jìn)行逆核心轉(zhuǎn)換,再進(jìn)行逆重迭濾波轉(zhuǎn)換,就可得到一模一樣的原圖。在 HD Photo格式可自行選擇是否進(jìn)行第一階的重迭濾波轉(zhuǎn)換與第二階的重迭濾 波轉(zhuǎn)換。得到的DC系數(shù)與AC系數(shù)經(jīng)過量化(Quantization)與熵編碼(Entropy Coding)處理后,經(jīng)過封包化(Packe t i za t ion)后即可得到壓縮比特流 (Compressed Bitstream)。
此HD Photo規(guī)格,與以往JPEG標(biāo)準(zhǔn)有許多不同之處,其中包括可以接 受更大范圍的像素值域,采用自訂的YCoCg色彩空間,自訂的兩階重迭轉(zhuǎn)換 (Lapped Transform)運算與系數(shù)預(yù)測(Prediction)運算。請參照圖3,主要 是說明根據(jù)HD Photo格式進(jìn)行兩階段轉(zhuǎn)換后的結(jié)果,在熵編碼的部分,依轉(zhuǎn) 換之后的不同位置,可以將系數(shù)分為不同的類型,例如標(biāo)號310所指的內(nèi)容 即屬于經(jīng)由第一階轉(zhuǎn)換后得到的結(jié)果的大區(qū)塊(Macroblock),而標(biāo)號320則 是寄存第一階轉(zhuǎn)換后得到的結(jié)果的所有DC值。并且接著進(jìn)行第二階轉(zhuǎn)換,而 其結(jié)果則如標(biāo)號330所示的L0WPASS方塊內(nèi)容。而整個轉(zhuǎn)換的結(jié)果,則分為 四種不同類型的數(shù)據(jù),包括DC、 L0WPASS、 HIGHPASS及FLEXBITS,再才艮據(jù)這 些數(shù)據(jù)進(jìn)行編碼。
如圖3經(jīng)過轉(zhuǎn)換、量化及系K預(yù)測后得到一個大區(qū)塊(Macroblock) 310 的系數(shù),包括16個小方塊,每個小方塊有4乘4個系數(shù)。這些系數(shù)包括一個 DC方塊(Tile—DC)與十五個AC系數(shù),而這些AC系數(shù)則是屬于HIGHPASS方塊 (Tile—HIGHPASS)類型的系數(shù)及FLEXBITS方塊(Tile一FLEXB工TS)類型的系數(shù)而經(jīng)過第一階轉(zhuǎn)換后將所有DC方塊(Tile—DC)集合成為標(biāo)號320所指的4乘 4區(qū)塊。而標(biāo)號330內(nèi)則包括一個DC系數(shù)以及其它十五個圖示中標(biāo)示為LP 的LOWPASS方塊(Ti le—LOWPASS)。
DC方塊(Ti 1 e—DC)中的系數(shù)首先會經(jīng)過系數(shù)正規(guī)化(No簡1 i za t i on)的動 作,接著進(jìn)行編碼,首先依正規(guī)化后的系數(shù)是否為零,產(chǎn)生區(qū)塊類型信息 (Coded Block Pattern),并對其編碼,接著將正規(guī)化后的系數(shù)利用自訂的可 調(diào)式(Adaptive)可變長度編碼來編碼,最后則將系數(shù)因正規(guī)化所余下的位利 用固定長度編碼來編碼,并依系數(shù)是否為零來決定是否對系數(shù)的正負(fù)號進(jìn)行 固定長度編碼。
LOWPASS方塊(Tile丄OWPASS)的編碼和TILE—DC類似,在系數(shù)經(jīng)過正規(guī) 化后,首先依4乘4區(qū)塊中15個系數(shù)是否全為零產(chǎn)生區(qū)塊類型信息并對其編 碼,接著正規(guī)化后的系數(shù)將經(jīng)由可調(diào)式掃描(Adaptive Scan)的順序轉(zhuǎn)成游程 編碼,再進(jìn)行可調(diào)式可變長度編碼。對正規(guī)化所余下的位則依固定的掃描方 式利用固定長度編碼來編碼,當(dāng)系數(shù)不為零而正規(guī)化后為零時,系數(shù)的正負(fù) 號也會進(jìn)行固定長度編碼。
HIGHPASS方塊(Tile—HIGHPASS)和FLEXBITS方塊(Ti le—FLEXBITS)的編 碼和TILE—LOWPASS類似,同樣是對AC系^:部分進(jìn)^f亍編碼,TILE —HIGHPASS 中的串流包括了區(qū)塊類型信息和正規(guī)化后的系數(shù)編碼,而TILE-FLEXBITS中 的串流則包括了正規(guī)化所余下的位和某些系數(shù)的正負(fù)號固定長度編碼。
HD Photo格式提供了兩種不同的串流格式,第 一種空間域模式(Spatial Mode)和傳統(tǒng)的編碼相同,以大區(qū)塊的串接為主,.每一個大區(qū)塊中先有DC方 塊(Tile—DC)與LOWPASS方塊(Tile-LOWPASS)的串流,也就是壓縮比特流。 接著,依4乘4區(qū)塊的順序,每一個區(qū)塊中以HIGHPASS方塊(Ti le — HIGHPASS) 和FLEXBITS方塊(TUe —FLEXBITS)的順序?qū)⒕幋a串起來。
另外一種串流格式為頻率域模式(Frequency Mode),以方塊(Tile)的串 接為主,將四種不同類性的方塊(Ti 1 e)各別依照大區(qū)塊編碼的順序編碼完后, 再將四種不同類性的方塊(Tile)的串流串接起來。
根據(jù)上述HD Photo格式的編碼處理過程,若是以硬件來實現(xiàn)HD Photo 格式的熵編碼(Entropy Encoding),由于HD Photo 4各式會對一個系:數(shù)進(jìn)行正 規(guī)化的動作,使得對一個系數(shù)而言,除了必需對正規(guī)化后的系數(shù)進(jìn)行編碼外, 正規(guī)化后余下的位也必需進(jìn)行編碼,造成了所需運算時鐘數(shù)的增加,影響處理的效率。
發(fā)明內(nèi)容
本發(fā)明提供一種編碼電路,適用于同時對編碼系數(shù)進(jìn)行第一類編碼程序 與第二類編碼程序。此第一類編碼程序為對編碼系數(shù)進(jìn)行可調(diào)式掃描,第二 類編碼程序為對編碼系數(shù)進(jìn)行固定式掃描。此編碼電路包括讀取與寫入控制 電路、第一燏編碼器、第二熵編碼器與寄存裝置。此讀取與寫入控制電路用 以讀取與寄存編碼系數(shù),并用以同時輸出第 一類編碼系數(shù)與第二類編碼系數(shù)。 此第一熵編碼器連接到讀取與寫入控制電路,并且用以接收第一類編碼系數(shù), 并對第 一類編碼系數(shù)進(jìn)行第 一類編碼程序,并據(jù)以輸出第 一類編碼串流數(shù)據(jù)。 第二熵編碼器連接到讀取與寫入控制電路,此第二熵編碼器用以接收第二類 編碼系數(shù)與正規(guī)化判斷信號,并據(jù)以對第二類編碼系數(shù)進(jìn)行第二類編碼程序, 并據(jù)以輸出第二類編碼串流數(shù)據(jù)。上述寄存裝置連接到第一熵編碼器與第二 熵編碼器,用以寄存第一類編碼串行數(shù)據(jù)與第二類編碼串行數(shù)據(jù),并以時間 上交錯的方式輸出。
上述的編碼電路,在一實施例中,第一類編碼程序與第二類編碼程序分
別為符合HD Photo規(guī)格的TILE—HIGHPASS和T工LE一FLEXBITS的系數(shù)熵編碼程 序。
本發(fā)明提供一種熵編碼方法,包括寄存用以進(jìn)行熵編碼的編碼系數(shù),并 據(jù)以同時提供第一類編碼系數(shù)與第二類編碼系數(shù),其中,第一類編碼系數(shù)是 對編碼系數(shù)進(jìn)行可調(diào)式掃描而取得,第二類編碼系數(shù)是對編碼系數(shù)進(jìn)行固定 式掃描而取得。接著根據(jù)第一類編碼系數(shù)進(jìn)行第一類編碼程序,并據(jù)以輸出 第一類編碼串流數(shù)據(jù),同時接收正規(guī)化判斷信號,并根據(jù)第二類編碼系數(shù)該 與該正規(guī)化判斷信號進(jìn)行第二類編碼程序,據(jù)以輸出第二類編碼串流數(shù)據(jù)。 寄存第 一類編碼串行數(shù)據(jù)與第二類編碼串行數(shù)據(jù),并以時間上交錯的方式輸 出。
為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并 配合附圖,作詳細(xì)說明如下。
圖1說明傳統(tǒng)的圖像壓縮編碼方式,主要是由一個原始的圖像數(shù)據(jù)經(jīng)過轉(zhuǎn)換與編碼壓縮后產(chǎn)生編碼串流(Encoded Stream)流程示意圖。
圖2為說明符合HD Photo格式的重迭濾波轉(zhuǎn)換與核心轉(zhuǎn)換流程示意圖。
圖3是說明根據(jù)HD Photo格式進(jìn)行兩階段轉(zhuǎn)換后的結(jié)果示意圖。
圖4是說明本發(fā)明實施例的可同時編碼TI LE — HIGHP A S S和TI LE—FLEXB ITS
的硬件架構(gòu)的編碼電路方塊示意圖。
圖4A與4B是說明本發(fā)明圖4實施例的可同時編碼TILE—H工GHPASS和
TILE-FLEXBITS的硬件架構(gòu)中,分別采用實時執(zhí)行正規(guī)化運算,或是預(yù)先正
規(guī)化運算并將結(jié)果存在正規(guī)化系數(shù)判斷單元的實施例電路方塊示意圖。
圖5A是i兌明可同時編碼TILE-HIGHPASS和TILE-FLEXBITS的編碼電路,
運用在編碼器時的電路方塊示意圖。
圖5 B是說明本發(fā)明的可同時編碼TI LE - HI GHPAS S和TI LE - FLEXB ITS的硬
件架構(gòu)中,采用實時執(zhí)行正規(guī)化運算的實施例電路方塊示意圖。 附圖符號說明
110:進(jìn)行取樣及色彩空間轉(zhuǎn)換的處理模塊
120:進(jìn)4亍重迭轉(zhuǎn)換(Lapped Transform)的處理才莫塊
130:進(jìn)行取樣及色彩空間轉(zhuǎn)換的處理模塊
140:進(jìn)行進(jìn)行量化(Quantization)及系數(shù)預(yù)測(Prediction)并產(chǎn)生區(qū) 塊類型信息(Coded Block Pattern)的處理才莫塊 400:編碼電3各 410:讀取/寫入控制電路
420: TILE—HIGHPASS熵編碼器(Entropy Encoder) 430: TILE —FLEXBITS熵編碼器
440:正規(guī)化系數(shù)(Normalized Coef f icient)判斷單元 450: TILE-HIGHPASS和TILE—FLEXBITS位串流緩存單元(Bitstream Buffer)
500:熵編碼電,各 510:讀取/寫入控制電路 511:可調(diào)式掃描位置產(chǎn)生器 515:系數(shù)緩存單元
520:處理TILE—DC、 TILE—L0WPASS與TILE—HIGHPASS熵編碼器 530: TILE-FLEXB工TS熵編碼器540:正規(guī)化系數(shù)判斷單元
560:寄存裝置
562:TILE一DC、 TILE —L0WPASS與TILE —HIGHPASS位串流緩存單元
564:TILE-FLEXBITS位串流緩存單元
570:寫出電路
572:多路復(fù)用器
574:內(nèi)存寫入單元
580:內(nèi)存單元。
具體實施例方式
HD Photo格式的編碼處理過程,若是以硬件來實現(xiàn)HD Photo格式的熵 編碼(Entropy Encoding),由于HD Photo格式會對一個系數(shù)進(jìn)行正規(guī)化的動 作,使得對一個系數(shù)而言,除了必需對正規(guī)化后的系數(shù)進(jìn)行編碼外,正規(guī)化 后余下的位也必需進(jìn)行編碼。而這些運算處理過程中,HIGHPASS方塊 (Tile—HIGHPASS)和FLEXBITS方塊(Tile—FLEXBITS)負(fù)責(zé)AC部分所有系數(shù)的 編碼,占整個圖像全部系數(shù)的90%以上,是硬件進(jìn)行HD Photo格式熵編碼中 最消耗時鐘的部份。
本發(fā)明針對HD Photo格式的熵編碼,提出一套可同時編碼TILE—HIGHPASS 和TILE-FLEXBITS的硬件架構(gòu),藉以降低硬件編碼所需要的運算時鐘數(shù)。
由于TILE-HIGHPASS和TILE—FLEXBITS是針對同樣的系數(shù)進(jìn)行編碼,差 別在于編碼時系數(shù)掃描的順序不同及負(fù)責(zé)正規(guī)化后產(chǎn)生的不同位區(qū)段, TILE —HIGHPASS負(fù)責(zé)前段,例如最高有效位(Most Significant Bits, MSB) 區(qū)段。TILE—FLEXBITS負(fù)責(zé)后段,例如最低有效位(Least Significant Bi ts , LSB)區(qū)段,而經(jīng)由正規(guī)化后的結(jié)果就是由此前位區(qū)段與后位區(qū)段所組成。因 此,本發(fā)明針對TILE—HIGHPASS及TILE—FLEXBITS所要編碼的系數(shù)提供有兩 個讀取端口的寄存區(qū),使得TILE—HIGHPASS及TILE—FLEXBITS所需的不同位 置系凄t可同時4皮讀耳又,配合可以編碼TILE—HIGHPASS和TILE—FLEXBITS的電 路及可以同時寫入兩組串流的串流緩沖區(qū),使兩個tile同時進(jìn)行編碼,來下 降硬件編碼的時鐘數(shù)。
最后,編碼產(chǎn)生的分屬不同類性的方塊(Tile)的串流,將可在整個圖像 編碼完成之后以頻率域模式(Frequency Mode)的串流格式,將四個不同類性
l的方塊(Tile)的串流進(jìn)行串接,來完成符合HD Photo規(guī)格的串流。
請參照圖4A或4B,說明本發(fā)明實施例的可同時編碼TILE-HIGHPASS和 TILE-FLEXBITS的硬件架構(gòu)的編碼電路方塊示意圖。在此編碼電路400中, 包括用以讀取與寄存系數(shù)的讀取/寫入控制電路410、連接到讀取/寫入控制 電路410的TILE-HIGHPASS熵編碼器(Entropy Encoder) 420與TILE一FLEXBITS 熵編碼器430 、正規(guī)化系數(shù)(Normalized Coefficient)判斷單元440與 TILE—HIGHPASS和TILE—FLEXBITS位串流緩存單元(Bi tstream Buffer) 450。
在此編碼電路400架構(gòu)中,藉由同時進(jìn)行TILE-HIGHPASS和 TILE—FLEXBITS的編碼,使得硬件進(jìn)行熵編碼時所需要的時鐘數(shù)。根據(jù)HD Photo格式所進(jìn)行的編碼處理過程中,上述兩種編碼所需要的處理時間占整 個圖像處理時間90%以上,因此,若能有效采用此架構(gòu),將可有效增加處理 的效率與減少處理的時間。由于TILE—HIGHPASS和TILE一FLEXBITS中對系數(shù)進(jìn)行編碼的掃描順序不 同,TILE —HIGHPASS為可調(diào)式掃描(Adaptive Scan),而TILE—FLEXBITS為固 定式掃描。本實施例的讀取/寫入控制電路410,可以接受兩種目前編碼的順 序,依各別的掃描方式轉(zhuǎn)變成正確的系數(shù)位置,再同時將兩者所需的系數(shù)讀 出給下一階的編碼器進(jìn)行編碼。
此讀取/寫入控制電路410包括一個符合HD Photo Mi各的可調(diào)式掃描位 置產(chǎn)生器411與系數(shù)緩存單元(Coefficient Buffer)415,并可依照底下的任 何一種方式,完成所需的讀取與寫入正確位置的動作。
其中一種方式為,寫入系數(shù)至系數(shù)緩存單元415時,依不同擺放的順序 存儲兩組系數(shù)陣列,其中一組依可調(diào)式掃描順序擺放,而另一組則依固定式 掃描順序擺放。如此,在讀取時,只要分別從兩組系數(shù)陣列,依陣列擺放順 序讀出即可。
另外一種方式為,在寫入系數(shù)至系數(shù)緩存單元415時,依固定式掃描順 序存儲一組系數(shù)陣列。如此,在讀取時,固定式掃描順序即為系數(shù)陣列中的 系數(shù)位置,再利用可調(diào)式掃描位置產(chǎn)生器411,將可調(diào)式掃描順序轉(zhuǎn)成系數(shù) 位置,再將兩個位置的系數(shù)由系數(shù)陣列中讀出即可。
而又另一種方式為,在寫入系數(shù)至系數(shù)緩存單元415時,依可調(diào)式掃描 順序存儲一組系數(shù)陣列。 如此,在讀取時,可調(diào)式掃描順序即為系數(shù)陣列 中的系數(shù)位置,再利用可反向的可調(diào)式掃描位置產(chǎn)生器411,將固定式掃描順序轉(zhuǎn)成可調(diào)式掃描順序,即系數(shù)位置,再將兩個位置的系數(shù)由系數(shù)陣列中 讀出即可。
系數(shù)緩存單元415必需可以同時讀兩個以上不同位置的系數(shù),在選^%實
施例中,此系數(shù)緩存單元415可以由內(nèi)存,例如多端口靜態(tài)隨機(jī)存取內(nèi)存 (Static Random Access Memory, SRAM),或由緩存器搭配兩組多路復(fù)用選擇 器來實現(xiàn)。
因為TILE—FLEXBITS在HD Photo規(guī)格的規(guī)定中,最多只會用到系數(shù)中后 段的15個位進(jìn)行編碼,所以,其實,只要系數(shù)中后段的15個位可以支持兩 個系數(shù)同時讀取即可。
為了決定系數(shù)的正負(fù)號是否需要在TILE-FLEXBITS中進(jìn)行編碼,本實施 例利用一個可以得知依TILE_FLEXBITS需求讀出的系數(shù),其正規(guī)化后是否為 零的電路,來達(dá)成此項要求,也就是如圖4中的正規(guī)化系數(shù)(Normalized Coefficient)判斷單元440。而其判斷正規(guī)化系數(shù)是否為零的結(jié)果,經(jīng)由信 號442傳送鄉(xiāng)合TILE—FLEXBITS熵編碼器430。
此判斷正規(guī)化系數(shù)是否為零的電路,可以按照不同的方法加以實現(xiàn)。例 如,在選擇實施例中,可以提供另一寄存區(qū),在將輸入的系數(shù)信息寫入系數(shù) 緩存單元415時,同時以實時的方式計算并依固定式掃描寫入系數(shù),并加以 正規(guī)化后判斷是否為零,編碼時再藉由讀取此寄存區(qū)數(shù)據(jù)得知系數(shù)正規(guī)化后 是否為零。
在一實施例中,上述判斷正規(guī)化系數(shù)是否為零的電路,包括運算電路與 緩存器,都可置于正規(guī)化系數(shù)判斷單元440內(nèi)。此正規(guī)化系數(shù)判斷單元440 的運算電路可進(jìn)行正規(guī)化的運算,而緩存器則用以存儲正規(guī)化的結(jié)果。
另一種作法,是直接自系數(shù)緩存單元415中讀出給TILE_FLEXBITS熵編 碼器430使用的系數(shù),進(jìn)行正規(guī)化是否為零的計算。
TILE_HIGHPASS熵編碼器420接收由讀取/寫入控制電路410所輸出,經(jīng) 由可調(diào)式掃描順序掃描而取得,并且適用于TILE—HIGHPASS熵編碼方式的系 數(shù)412 (如圖所示的Coeff-0),并據(jù)以進(jìn)行TILE—HIGHPASS熵編碼處理程序。 除此之外,經(jīng)由TILE—HIGHPASS熵編碼處理程序后,TILE-HIGHPASS熵編碼 器420也會輸出控制信號422反饋給讀取/寫入控制電路410,用以調(diào)整掃描 方式。而經(jīng)由TILE—HIGHPASS熵編碼處理后的結(jié)果經(jīng)由信號424傳送到下一 階的位串流緩存單元450。而TILE—FLEXBITS熵編碼器430接收由讀取/寫入控制電路410所輸出, 經(jīng)由固定式掃描順序掃描而取得,并且適用于TILE-FLEXBITS熵編碼方式的 系數(shù)414(如圖所示的Coeff —1),以及正規(guī)化系數(shù)是否為零的結(jié)果的信號442, 并據(jù)以進(jìn)行TILE_FLEXBITS熵編碼處理程序。而經(jīng)由TILE_FLEXBITS熵編碼 處理后的結(jié)果經(jīng)由信號434傳送到下一階的位串流緩存單元450 。 TILE-FLEXBITS熵編碼器430也會輸出控制信號432 (如圖所示的Index —1)反 饋給讀取/寫入控制電路410,用以達(dá)成上述可調(diào)式掃描位置產(chǎn)生器411與系 數(shù)緩存單元415之間所需的讀取與寫入正確位置的操作依據(jù)。
當(dāng)TILE-HIGHPASS熵編碼器420和TILE —FLEXBITS熵編碼器4 30同時進(jìn) 行編碼時,為了處理同時產(chǎn)生的兩組編碼。本實施例利用一個可以同時將兩 組編碼分別進(jìn)行連接,再同時將兩組串流寫入的串流緩沖區(qū)以進(jìn)行緩沖的位 串流緩存單元450。此位串流緩存單元45Q可以利用兩個以上的SRAM或緩存 器加以實現(xiàn)。
當(dāng)上述條件滿足時,TILE-HIGHPASS和TILE—FLEXBITS便可以同時進(jìn)行 編碼,并將連接好的編碼串流存儲于位串流緩存單元45Q中暫時存儲。
最后,可以利用一組寫出電路,并在時間上以交錯的方式,寫出位串流 緩存單元450中的數(shù)據(jù)至內(nèi)存中。配合其它可進(jìn)行TILE—DC和TILE—LOWPASS 編碼的電^^將編碼完成后,將四組串流再進(jìn)行串接的動作,完成HD Photo中 頻率域模式的編碼串流處理。
上述正規(guī)化系數(shù)判斷單元44G包括可進(jìn)行正規(guī)化運算的運算電路與用以 存儲正規(guī)化結(jié)果的緩存器。具體實施例中可參照圖4A所示,系分別說明采用 實時計算正規(guī)化結(jié)果的實施例示意圖。當(dāng)TILE-FLEXBITS熵編碼器430接收 由讀取/寫入控制電路41G所輸出,經(jīng)由固定式掃描順序掃描而取得,并且適 用于TILE—FLEXBITS熵編碼方式的系數(shù)414(如圖所示的Coeff —1)時,這些系 數(shù)414(Coeff —1)同時傳送到正規(guī)化系數(shù)判斷單元440進(jìn)行實時的正規(guī)化運 算。而正規(guī)化系數(shù)判斷單元440則接著將正規(guī)化系數(shù)是否為零的結(jié)果,經(jīng)由 信號442傳送到TILE—FLEXBITS熵編碼器430。
另一正規(guī)化的運算的具體實施例可參照圖4B所示,直接將系數(shù)輸入至正 規(guī)化系數(shù)判斷單元440中,并經(jīng)過正規(guī)化運算后,將其結(jié)果存在正規(guī)化系數(shù) 判斷單元440內(nèi)。當(dāng)TILE—FLEXBITS熵編碼器430輸出控制信號432 (Index一l) 反饋給讀取/寫入控制電路410,用以達(dá)成可調(diào)式掃描位置產(chǎn)生器411與系數(shù)緩存單元415之間所需的讀取與寫入正確位置操作的依據(jù)。并同時傳送到正 規(guī)化系數(shù)判斷單元440,讀出正確位置的正規(guī)化運算結(jié)果,并經(jīng)由信號442 傳送到TILE-FLEXBITS熵編碼器430。
上述實施例所提出可同時編碼TILE _ HIG HP AS S和TILE _ FLEXBITS的電路, 運用在熵編碼器時,其電路方塊示意圖如圖5A所示,是提出一種具有可以完 成HIGHPASS方塊(Tile — HIGHPASS)和FLEXBITS方塊(Ti le —FLEXBITS)同時編 碼,以降低編碼處理時鐘數(shù)的熵編碼電路架構(gòu)500。
此熵編碼電路架構(gòu)500包括讀取與寄存系數(shù)的讀取/寫入控制電路510 的可調(diào)式掃描位置產(chǎn)生器511與系數(shù)緩存單元515,還包括可處理TILE—DC、 TILE-LOWPASS與 TILE—HIGHPASS熵編碼器(Entropy Encoder)520與 TILE—FLEXBITS熵編碼器530、正規(guī)化系數(shù)(Normal ized Coef f icient)判斷單 元540、寄存裝置560、寫出電路570與內(nèi)存單元580。而此寄存裝置560包 括TILE —DC、 TILE—LOWPASS與TILE—HGHPASS位串流緩存單元(Bi ts tream Buffer) 562和TILE—FLEXBITS位串流緩存單元(Bi ts tream Buffer) 564。而 寫出電路570則包括一個多路復(fù)用器572與內(nèi)存寫入單元574。
此系數(shù)緩存單元515可同時讀出兩個不同位置系數(shù)的寄存區(qū),并輸出兩 種不同位置的系數(shù)512(如圖的系數(shù)Coeff —O)與514 (如圖的系數(shù)Coef f — l)分 別傳送到熵編碼器520與TILE-FLEXBITS熵編碼器530。而此系數(shù)緩存單元 515在選擇實施例中可以使用多個緩存器搭配兩組多路復(fù)用選擇器加以實現(xiàn)。
而此讀取/寫入控制電路510是利用一個符合HD Photo規(guī)格的可調(diào)式掃 描位置產(chǎn)生器511,在讀取時將可調(diào)式掃描順序轉(zhuǎn)成讀出的系數(shù)位置。如圖 中所示的可調(diào)式掃描位置產(chǎn)生器511接收熵編碼器520所輸出的調(diào)整控制信 號522,而據(jù)以調(diào)整輸出的地址信號Addr —0,而系數(shù)緩存單元515可根據(jù)此 地址信號Addr一O將對應(yīng)的系數(shù)(Coeff —O)讀出。
為了決定系數(shù)的正負(fù)號是否需要在TILE-FLEXBITS中進(jìn)行編碼,本實施 例利用一個可以得知依TILE—FLEXBITS需求讀出的系數(shù),其正規(guī)化后是否為 零的電路,來達(dá)成此項要求,也就是正規(guī)化系數(shù)判斷單元540,其用以判斷 系數(shù)正規(guī)化后是否為零。在實施例中,此正規(guī)化系數(shù)判斷單元540可利用多 個緩存器搭配多路復(fù)用選擇器來實現(xiàn),緩存器中的內(nèi)容可以在將系數(shù)寫入系 數(shù)緩存單元515時,同步計算此系數(shù)正規(guī)化后是否為零,并將此結(jié)果傳送給 TILE-FLEXBITS熵編碼器530。熵編碼器520為可以進(jìn)^亍TILE-DC、 TILE — L0WPASS及TILE — HIGHPASS熵 編碼三種運算的的編碼器,并輸出調(diào)整控制信號522到可調(diào)式掃描位置產(chǎn)生 器511,以便調(diào)整掃瞄的方式。而TILE-FLEXBITS熵編碼器530為可以進(jìn)行 TILE—FLEXBITS熵編碼的編碼器,可以由讀入的系數(shù)、系數(shù)正規(guī)化后是否為 零、及正規(guī)化系數(shù)進(jìn)行固定長度的編碼。
TILE_FLEXBITS熵編碼器5 30輸出地址控制信號5 32 (如圖所示的Addr — 1) 反饋給讀取/寫入控制電路510,用以達(dá)成上述可調(diào)式掃描位置產(chǎn)生器511與 系數(shù)緩存單元515之間所需的讀取與寫入正確位置的操作依據(jù)。而同時將此 地址控制信號532 (Addr-1)傳送到正規(guī)化系數(shù)判斷單元540,讀出正確位置的 正規(guī)化運算結(jié)果傳送到TILE—FLEXBITS熵編碼器5 30。
另外,熵編碼器520與TILE-FLEXBITS熵編碼器530的編碼結(jié)果,分別 經(jīng)由信號524與5 34傳送到寄存裝置560。此寄存裝置560為可同時寫入兩 組編碼結(jié)果的位串流緩沖區(qū),包括用以寄存TILE—DC、 TILE-L0WPASS與 TILE-HIGHPASS編碼后的結(jié)果的位串流緩存單元562,以及用以存儲 TILE-FLEXBITS編碼后的結(jié)果的位串流緩存單元564。
上述的寄存裝置560在選擇實施例中,可以利用兩個內(nèi)存,例如多端口 靜態(tài)隨機(jī)存取內(nèi)存(SRAM)來實現(xiàn)。其中一個SRAM存儲TILE_DC、TILE-LOWPASS 及TILE_HIGHPASS編碼后的串流,另外一個SRAM存儲TILE—FLEXBITS編碼后 的串流。
寫出電路570可由一個多路復(fù)用器572與內(nèi)存寫入單元574所組成。此 多路復(fù)用器572的兩個輸入端分別經(jīng)由線路56 3與565連接到位串流緩存單 元562與564。而多路復(fù)用器572的輸出則傳送到內(nèi)存寫入單元574。而利用 內(nèi)存寫入單元574,可將多路復(fù)用器572的輸出575傳送到內(nèi)存單元580。此 寫出電路570可以利用時間上交錯的方式,將位串流緩存單元562與564所 寄存的數(shù)據(jù)讀出并寫出至內(nèi)存單元580中;亦即,寫出電路570 —次僅進(jìn)行 其中一個串流緩存單元562/564的數(shù)據(jù)的讀出,并且交錯地讀取不同串流緩 存單元564/562的數(shù)據(jù),以將全部數(shù)據(jù)讀取出來。
在圖像壓縮編碼方式,經(jīng)過HD Photo格式的色彩空間轉(zhuǎn)換、重迭轉(zhuǎn)換、 量化及系數(shù)預(yù)測后的系數(shù),將依固定式掃描順序?qū)懭胫料禂?shù)緩存單元515中。 同時,經(jīng)過計算后,寫入正規(guī)化系數(shù)判斷單元540中紀(jì)錄系數(shù)正規(guī)化是否為 零的緩存器。接著,本實施例會根據(jù)輸入的區(qū)塊類型信息(Coded BlockPa Uern)及正M/f匕系l丈(Normalized Coefficient),利用墑編碼器520進(jìn)4亍 TILE—DC及TILE—L0WPASS的編碼,并存儲到寄存裝置560。
接著同時利用熵編碼器520及TILE—FLEXBITS熵編碼器530分別同時進(jìn) 行TILE—HIGHPASS及TILE-FLEXBITS的編碼,存儲到寄存裝置560,并藉由 寫出電路570交錯地將寄存裝置560的位串流緩存單元562與564串流位數(shù) 據(jù)寫出到內(nèi)存單元580。最后,再將內(nèi)存單元580中的四份分屬不同tile的 串流,以頻率域模式的方式,進(jìn)行串流重組,完成符合HD Photo格式的編碼。
上述正規(guī)化系數(shù)判斷單元54G包括可進(jìn)行正規(guī)化運算的運算電路與用以 存儲正規(guī)化結(jié)果的緩存器。在此實施例中,是直接將系數(shù)輸入至正規(guī)化系數(shù) 判斷單元540中,并經(jīng)過正規(guī)化運算后,將其結(jié)果存在正規(guī)化系數(shù)判斷單元 540內(nèi)。當(dāng)TILE —FLEXBITS熵編碼器530輸出地址控制信號532 (Add-1)反饋 給系數(shù)緩存單元515,用以達(dá)成與系數(shù)緩存單元515之間所需的讀取與寫入 正確位置操作的依據(jù)。并同時將地址控制信號532 (Add-1)傳送到正規(guī)化系數(shù) 判斷單元540,讀出正確位置的正規(guī)化運算結(jié)果,并傳送到TILE—FLEXBITS 熵編碼器530。
另一具體實施例,可參照圖4A所示的電路設(shè)計架構(gòu),請參照圖5B所示, 也就是可以采用具有實時計算正規(guī)化的設(shè)計。當(dāng)TILE-FLEXBITS熵編碼器 接收由讀取/寫入控制電路510所輸出,經(jīng)由固定式掃描順序掃描而取得,并 且適用于TILE—FLEXBITS熵編碼方式的系數(shù)514(如圖所示的Coeff_l)時,這 些系數(shù)514 (Coef f 一 1)則同時傳送到正規(guī)化系數(shù)判斷單元540進(jìn)行實時的正規(guī) 化運算。而正規(guī)化系數(shù)判斷單元540則接著將正規(guī)化系數(shù)是否為零的結(jié)果傳 送到TILE_FLEXBITS熵編碼器5 30。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何 所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作 些許的更動與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視本發(fā)明的申請專利范圍所界 定者為準(zhǔn)。
權(quán)利要求
1.一種編碼電路,其用來同時對一編碼系數(shù)進(jìn)行第一類編碼程序與第二類編碼程序,其中,該第一類編碼程序為對該編碼系數(shù)進(jìn)行可調(diào)式掃描,該第二類編碼程序為對該編碼系數(shù)進(jìn)行固定式掃描,該編碼電路包括讀取與寫入控制電路,用以讀取與寄存該編碼系數(shù),并用以同時輸出第一類編碼系數(shù)與第二類編碼系數(shù);第一熵編碼器,連接到該讀取與寫入控制電路,該第一熵編碼器用以接收該第一類編碼系數(shù),并對該第一類編碼系數(shù)進(jìn)行該第一類編碼程序,并據(jù)以輸出第一類編碼串流數(shù)據(jù);第二熵編碼器,連接到該讀取與寫入控制電路,該第二熵編碼器用以接收該第二類編碼系數(shù)與一正規(guī)化判斷信號,并據(jù)以對該第二類編碼系數(shù)進(jìn)行該第二類編碼程序,并據(jù)以輸出第二類編碼串流數(shù)據(jù);以及一寄存裝置,連接到該第一熵編碼器與該第二熵編碼器,用以寄存該第一類編碼串行數(shù)據(jù)與該第二類編碼串行數(shù)據(jù),并以時間上交錯的方式輸出。
2. 如權(quán)利要求1所述的編碼電路,還包括一正規(guī)化系數(shù)判斷單元,連接到該讀取與寫入控制電路,用來對該編碼 系數(shù)進(jìn)行正規(guī)化處理,判斷經(jīng)過正規(guī)化處理后的編碼系數(shù)是否為零,并據(jù)以 輸出該正規(guī)化判斷信號給第二熵編碼器。
3. 如權(quán)利要求1所述的編碼電路,其中,該第一類編碼程序與該第二類 編碼程序分別為符合HD Photo規(guī)格的TILE-HIGHPASS和TILE—FLEXBITS的系 數(shù)熵編碼程序。
4. 如權(quán)利要求1所述的編碼電路,其中,該第一熵編碼器更接收該編碼 系數(shù)正規(guī)化后的第 一位區(qū)段,該第二熵編碼器更接收該編碼系數(shù)正規(guī)化后的 第二位區(qū)段,其中,該編碼系數(shù)進(jìn)行正規(guī)化后由該第一位區(qū)段與該第二位區(qū) 段所組成。
5. 如權(quán)利要求4所述的編碼電路,其中,該第一位區(qū)段為該編碼系數(shù)進(jìn) 行正規(guī)化后,得到的多個最高有效位,而該第二位區(qū)段為該編碼系數(shù)進(jìn)行正 規(guī)化后,得到的多個最低有效位。
6. 如權(quán)利要求1所述的編碼電路,其中,該第一熵編碼器傳送可調(diào)控制 信號反饋到該讀取與寫入控制電路,用以調(diào)整該可調(diào)式掃描進(jìn)行的方式。
7. 如權(quán)利要求1所述的編碼電路,其中,該讀取與寫入控制電路包括兩 讀取端口緩存單元,其中,該第一熵編碼器與該第二熵編碼器可同時經(jīng)由該 兩讀取端口分別讀取該編碼系數(shù)不同位置的數(shù)據(jù)。
8. 如權(quán)利要求7所述的編碼電路,其中,該讀取與寫入控制電路緩存單元對接收的該編碼系數(shù),依不同擺放的順序存儲在兩組系數(shù)陣列,其中,該 兩組其中的一組依可調(diào)式掃描順序擺放,而該兩組其中的另 一組則依固定式 掃描順序擺放。
9. 如權(quán)利要求7所述的編碼電路,其中該讀取與寫入控制電^^緩存單元 還包括可調(diào)式掃描位置產(chǎn)生器,其中,對接收的該編碼系數(shù),依固定式掃描 順序存儲一組系數(shù)陣列,在讀取時,該固定式掃描順序即為該系數(shù)陣列中的 固定掃瞄的系數(shù)位置,用以提供給該第二熵編碼器,而根據(jù)可調(diào)式掃描順序 讀取時,藉由該可調(diào)式掃描位置產(chǎn)生器,將該可調(diào)式掃描順序轉(zhuǎn)成另一系數(shù) 位置,再將另 一 系數(shù)位置的系數(shù)由該系數(shù)陣列中讀出并提供給該第 一熵編碼 器。
10. 如權(quán)利要求7所述的編碼電路,其中,該讀取與寫入控制電路緩存單 元還包括可調(diào)式掃描位置產(chǎn)生器,其中,對接收的該編碼系數(shù),依可調(diào)式掃 描順序存儲一組系數(shù)陣列,在讀取時,該可調(diào)式掃描順序即為該系數(shù)陣列中 的可調(diào)式掃描的系數(shù)位置,用以提供給該第一熵編碼器,而根據(jù)固定掃瞄順 序讀取時,藉由該可調(diào)式掃描位置產(chǎn)生器的反向操作,將該固定式掃描順序轉(zhuǎn)成另 一 系數(shù)位置,再將另 一 系數(shù)位置的系數(shù)由該系數(shù)陣列中讀出并提供給 該第二熵編碼器。
11. 如權(quán)利要求7所述的編碼電路,其中,該兩讀取端口緩存單元為多端 口靜態(tài)隨機(jī)存取內(nèi)存。
12. 如權(quán)利要求7所述的編碼電路,其中,該兩讀取端口緩存單元包括多個緩存器與兩組多路復(fù)用選擇器。
13. —種熵編碼方法,包括寄存用以進(jìn)行熵編碼的編碼系數(shù),并據(jù)以同時提供第 一類編碼系數(shù)與第 二類編碼系數(shù),其中該第一類編碼系數(shù)是對該編碼系數(shù)進(jìn)行可調(diào)式掃描而取 得,該第二類編碼系數(shù)是對該編碼系數(shù)進(jìn)行固定式掃描而取得;根據(jù)該第一類編碼系數(shù)進(jìn)行第一類編碼程序,并據(jù)以輸出第一類編碼串 流數(shù)據(jù),同時接收正規(guī)化判斷信號,并根據(jù)該第二類編碼系數(shù)該與該正規(guī)化判斷信號進(jìn)行第二類編碼程序,據(jù)以輸出第二類編碼串流數(shù)據(jù);以及寄存該第 一類編碼串行數(shù)據(jù)與該第二類編碼串行^:據(jù),并以時間上交錯 的方式輸出。
14. 如權(quán)利要求13所述的熵編碼方法,其中,該第一類編碼程序與該第 二類編碼程序分別為符合HD Photo規(guī)格的TILE—HIGHPASS和TILE—FLEXBITS 的系數(shù)熵編碼程序。
15. 如權(quán)利要求13所述的熵編碼方法,其中,該第一類編碼程序完成后, 傳送可調(diào)控制信號反饋調(diào)整該可調(diào)式掃描進(jìn)行的方式。
16. 如權(quán)利要求13所述的熵編碼方法,其中,寄存該編碼系數(shù)并同時提 供該第 一 類編碼系數(shù)與該第二類編碼系數(shù)的方式為經(jīng)由兩讀取端口寄存區(qū), 可同時經(jīng)由該兩讀取端口分別讀取該編碼系數(shù)不同位置的數(shù)據(jù)。
17.如權(quán)利要求16所述的熵編碼方法,其中,寄存該編碼系數(shù)是依不同 擺放的順序存儲在兩組系數(shù)陣列,其中,該兩組其中的一組依可調(diào)式掃描順 序擺放,而該兩組其中的另一組則依固定式掃描順序擺放。
18. 如權(quán)利要求16所述的熵編碼方法,其中,寄存該編碼系數(shù)時,還包 括進(jìn)行可調(diào)式掃描位置產(chǎn)生程序,其中,對接收的該編碼系數(shù),依固定式掃 描順序存儲一組系數(shù)陣列,在讀取時,該固定式掃描順序即為該系數(shù)陣列中 的固定掃瞄的系數(shù)位置,用以提供作為該第二類編碼系數(shù),而根據(jù)可調(diào)式掃 描順序讀取時,藉由該可調(diào)式掃描位置產(chǎn)生程序,將該可調(diào)式掃描順序轉(zhuǎn)成 另 一 系數(shù)位置,再將另 一 系數(shù)位置的系數(shù)由該系數(shù)陣列中讀出并提供作為該 第一類編碼系數(shù)。
19. 如權(quán)利要求16所述的熵編碼方法,其中,寄存該編碼系數(shù)時,還包 括進(jìn)行可調(diào)式掃描位置產(chǎn)生程序,其中,對接收的該編碼系數(shù),依可調(diào)式掃 描順序存儲一組系數(shù)陣列,在讀取時,該可調(diào)式掃描順序即為該系數(shù)陣列中 的可調(diào)式掃描的系數(shù)位置,用以提供作為該第一類編碼系數(shù),而根據(jù)固定掃 瞄順序讀取時,藉由該可調(diào)式掃描位置產(chǎn)生程序的反向搡作,將該固定式掃 描順序轉(zhuǎn)成另 一 系數(shù)位置,再將另 一 系數(shù)位置的系數(shù)由該系數(shù)陣列中讀出并 提供作為該第二類編碼系數(shù)。
20. —種編碼電^各,包4舌讀取與寫入控制電路,用以讀取與寄存該編碼系數(shù),并用以同時輸出第 一類編碼系數(shù)與第二類編碼系數(shù);第一熵編碼器,連接到該讀取與寫入控制電路,該第一熵編碼器用以接 收該第一類編碼系數(shù),并對該第一類編碼系數(shù)進(jìn)行多個第一類編碼程序,并據(jù)以輸出多個編碼串流數(shù)據(jù);第二熵編碼器,連接到該讀取與寫入控制電路,該第二熵編碼器用以接 收該第二類編碼系數(shù)與正規(guī)化判斷信號,并據(jù)以對該第二類編碼系數(shù)進(jìn)行第二類編碼程序,并據(jù)以輸出第二類編碼串流數(shù)據(jù);以及一寄存裝置,連接到該第一熵編碼器與該第二熵編碼器,用以寄存該些 第 一類編碼串行數(shù)據(jù)與該第二類編碼串行數(shù)據(jù),并以時間上交錯的方式輸出。
21.如權(quán)利要求20所述的編碼電路,其中,該些第一類編碼程序為符合 HD Photo規(guī)格的TILE一DC、 TILE—LOWPASS與TILE—HIGHPASS的系數(shù)熵編碼程 序,而該第二類編碼程序分別為符合HD Photo規(guī)格的TILE—FLEXBITS的系數(shù) 熵編碼程序。
全文摘要
一種熵編碼電路,具有兩個熵編碼器,分別適用于對編碼系數(shù)以可調(diào)式掃描與固定式掃描方式,讀取后進(jìn)行兩類的編碼程序。當(dāng)一熵編碼器進(jìn)行第一類編碼程序時,另一熵編碼器接收第二類編碼系數(shù)與正規(guī)化判斷信號,并據(jù)以對第二類編碼系數(shù)進(jìn)行第二類編碼程序。而上述兩類編碼程序所產(chǎn)生的第一類編碼串行數(shù)據(jù)與第二類編碼串行數(shù)據(jù),以時間上交錯的方式作為熵編碼電路的輸出。
文檔編號H04N7/36GK101557515SQ20081009100
公開日2009年10月14日 申請日期2008年4月8日 優(yōu)先權(quán)日2008年4月8日
發(fā)明者林家平, 黃朝宗 申請人:聯(lián)詠科技股份有限公司