中圖分類號:TN919.81 文獻標識碼:A 文章編號:1009-2552 (2007) 02-0054-04
AVS游程解碼、反掃描、反量化和反變換優化設計
趙 策, 劉佩林
(上海交通大學電子工程系, 上海200240)
摘 要: 提出了一種適用于AVS的游程解碼、反掃描、反量化和反變換硬件結構優化設計方案。
根據AVS整數變換和量化的特性, 設計了可工作在不同模式的存儲器陣列, 既可用來進行反變
換器所需的轉置操作, 又可用來存儲中間結果, 將游程解碼、反掃描和反量化合并為一個流水
線單元并行處理。該設計省去了存儲中間結果所需的大量存儲器, 加快了處理速度, 滿足高清
視頻的處理要求。該設計通過了FPGA驗證, 綜合結果表明, 其邏輯門數僅為9076, 最高工作頻
率大于200MHz。
關鍵詞: AVS; 視頻解碼; 硬件結構; 存儲器陣列; 反量化; 反變換
Hardwarearchitectureoptimizingforrunlenth decoding,
inversescan ,inversequantizationandinversetransforminAVS
ZHAOCe,LIUPei 2lin
(DepartmentofElectronicEngineering ,ShanghaiJiaotongUniversity ,Shanghai200240 ,China)
Abstract: Anoptimizedhardwarearchitectureofrunlenthdecoding,inversescan,inversequantizationand
inversetransforminAVSvideodecoderispresented.Accordingtothespecificintegertransformandquantiza 2
tionalgorithmusedinAVS,aparallelmemoryarrayisdesignedtoperformthetransposeoperationwhilepro 2
vidingaplatformforacombinedblock-levelpipelinestage,whichintegratedrunlengthdecoding,inverse
scanandinversequantizationmoduletogether.Thisarchitectureresultedinhigherprocessingspeedandless
intermediatememoriesandfulfilledtherequirementofhighdefinitionvideoprocessing.Thewholedesignhas
beenverifiedbyFPGA.Thesynthesisresultshowsthatthegatecountisonly9076whilethefrequencyismore
than200MHz.
Keywords : AVS;videocoding;hardwarearchitecture;memoryarray;inversequantization;inverse
transform
0 引言
AVS(先進音視頻編碼標準) 是用于數字音視頻
的壓縮、解壓縮、處理和表示的技術方案,編碼效率
比第一代標準(MPEG-2 ) 高,而且技術方案簡潔,芯
片實現復雜度低,是一套我國具備自主知識產權的
包含系統、視頻、音頻、媒體版權管理在內的完整標
準體系,目前視頻部分已正式成為國家標準[1] 。
CongPeng 等人對AVS解碼器設計結構進行了
研究[2] ,但其文中未涉及游程解碼、反掃描、反量化
和反變換部分,這些單元耗費資源和處理時間,若不
進行合理設計則難以完成高速視頻處理。鄭國卿和
BinSheng 等人的論文[3-4] 中分別提出了并行處理反
掃描和反量化的結構,這些結構有一定并行性,但為
滿足流水線設計要求,各處理單元間需設置大量存
儲空間。另外,經過變換編碼一個像素塊中大部分
數據均為0, 但上述結構中均需對所有系數進行反
量化處理,存在較大時間冗余。
本文基于AVS編解碼標準,利用其所采用的帶
預縮放的整數余弦變換技術( PIT,Pre-scaled
收稿日期: 2006-08-18
作者簡介: 趙策(1983- ) ,男,碩士研究生,主要研究方向為數字視
頻壓縮編碼、VLSI設計。
— 45 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇
Integer Transform) [5] ,設計了一種并行處理結構,利
用高速并行反變換操作所需的轉置寄存器堆作為共
用存儲器陣列,將游程解碼、反掃描、反量化和反變
換融合在一個流水線單元中,可以節省存儲空間、提
高處理速度。
1 Zig-Zag 掃描、整數變換
1.1 Zig-Zag 掃描
變換編碼的目的在于去除系數之間的相關性,
以提高壓縮效率。一般而言,變換系數量化后,零值
系數占較大比例。為了更有效地進行編碼,通常在
變長編碼之前,要先進行Zig-Zag 掃描和游程編
碼,可選擇幀掃描模式或場掃描模式。圖1 為按幀
掃描順序排列量化后系數示意圖,掃描順序上最高
頻的非零系數稱為截點(如圖1 中粗箭頭終點處的
圓點所示) ,從左上角開始結束于截點的粗線條掃過
的路徑稱為有效掃描路徑,有效掃描路徑上的系數
稱為有效系數。利用5 個CIF 序列各100 幀測試,
編碼采用全I 幀,測試結果如圖2 所示,像素塊內有
效系數個數的平均值一般小于20, 最大不超過25。
圖1 Zig-Zag 掃描示意圖
圖2 變換量化后塊內有效系數個數統計
變換編碼后的系數幅度從高頻交流系數向低頻
交流系數呈現由小到大遞增的趨勢,AVS 按有效掃
描路徑的逆序從高頻到低頻進行游程編碼,使得已
編碼系數的幅度一般小于相鄰的后編碼系數的幅
度,從而便于動態切換碼表,使熵編碼器的性能更加
逼近理論信息熵[6] ,因此一般在解碼器中的游程解
碼之前,需要先存儲變長解碼結果,再按從低頻到高
頻的順序讀出。
1.2 帶PIT的8 ×8 整數變換技術
AVS采用8 ×8 整數變換。通過系數調整和分
解,可保證變換和反變換的核心操作沒有乘法運算,
只有加法和移位,降低了運算復雜度。
由于各變換基矢量的模大小不一,因此編碼時
必須對變換系數進行不同程度的縮放以達到歸一
化。H.264PAVC規定編解碼端都需要歸一化[7] ,即
在編碼端進行正縮放和量化,在解碼端進行反縮放
和反量化;而AVS采用了帶PIT(預縮放整數變換)
的8 ×8 整數余弦變換技術,即正向縮放、量化、反向
縮放結合在一起,而解碼端只進行反量化,不再需要
反縮放,即歸一化集中在編碼端。PIT 的使用可以
簡化解碼端運算和存儲,而性能又不會受影響[5] 。
因此,AVS解碼時一個像素塊內系數的量化參數相
同,所以所有系數的反量化公式均相同,與系數具體
位置無關。
2 硬件結構
本文設計的結構如圖3 所示,模式控制器控制從
變長解碼FIFO中讀出成對的游程Run, 幅度Level, 塊
結束標志和掃描方式;反量化器對幅度Level 值進行
反量化,得到變換系數,并由鏈式移動存儲控制器控
制存入并行設計的存儲器陣列,通過可配置存儲器陣
列進行并行游程解碼、反掃描;完成一個塊的游程解
碼和反掃描后,一維反變換單元從存儲器陣列中讀出
行數據,進行一維行反變換,其結果經過存儲器陣列
轉置操作后并行輸出,進行一維列反變換,輸出殘差
系數。下面將針對重點模塊詳細介紹。
圖3 設計結構框圖
2.1 一維反變換器
AVS反變換處理的像素塊為8 ×8 大小,順序地
對每個系數逐個做反變換,難以滿足實時處理高速
視頻碼流的要求。因此,必須設計并行的反變換結
構,其中包括所謂的“行列”結構,即重復使用同一個
一維反變換單元,先對像素塊每一行做一維反變換
(行反變換) ,再對其結果的每一列做一維反變換(列
— 55 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇
反變換) 。
毛訊等人對MPEG-2 中的IDCT硬件結構做了
詳細研究[8] ,提出了所謂“脈動陣列結構”,即將反變
換蝶形運算安排為三級流水線,每個時鐘周期可以
計算8 個數據。AVS中采用的是8 ×8 整數變換,因
此本設計中也采用了三級流水線的陣列結構實現高
速并行操作。
圖4 表示本設計完成一個塊的反變換處理的時
序安排,其中以數據并行輸入反變換單元作為起始
時刻。三級流水線陣列結構需3 個時鐘周期才能輸
出結果,而AVS標準中所規定的一維反變換后處理
操作也需要1 個時鐘周期,所以數據輸入4 個時鐘
周期后開始輸出行反變換結果,并同時存入轉置單
元;第12 個時鐘后行變換完成,結果存儲完畢,經過
轉置后的結果即可再次輸入一維反變換單元,開始
列變換;第16 個時鐘周期可開始輸出列反變換結果
(即殘差數據) ,第24 個時鐘周期結果輸出完畢,因
此完成一個8 ×8 像素塊的反變換處理的時間固定
為24 個時鐘周期。
圖4 并行反變換單元的時序安排
2.2 存儲器陣列
上述反變換處理單元中必須對結果作轉置處
理,該轉置單元要存儲一個塊的數據,且應按行或列
并行的方式輸入輸出數據。該單元可以用RAM來
實現,但由于RAM讀寫的時序限制,一般需要使用
多塊RAM,轉置操作需要的時間也較長。
本文采用寄存器陣列作為轉置單元,由8 ×8 個
寄存器單元完成,省去地址運算,控制明確。其結構
圖如圖5 所示,虛線所示為Zig-Zag 掃描中常用的
幀掃描順序。陣列中每個寄存器單元的組成如圖6
所示,由1 個選擇器控制1 個寄存器,所有寄存器單
元的模式信息相同,并可根據模式信息,選擇空閑數
據、鏈式移動存儲數據、行數據和列數據4 種輸入中
的一種進行存儲。
空閑數據即為該寄存器中原來的數據;鏈式移
動存儲數據即掃描順序上前一個單元中的數據,0
號寄存器單元的鏈式移動存儲數據即為存儲器陣列
的串行輸入數據;列數據即存儲器陣列中緊鄰右側
的寄存器單元中的數據,最后一列的寄存器單元的
列數據全部為0; 行數據即存儲器陣列中緊鄰下方
的寄存器單元的數據,最后一行的寄存器單元的行
數據為存儲器陣列的并行輸入數據。
圖5 存儲器陣列示意圖
圖6 寄存器單元結構
從整體來看,存儲器陣列工作在行模式時,其行
數據可從第一行并行讀出,從最后一行并行輸入;工
作在列模式時,其列數據可從第一列并行輸出,從最
后一列并行輸入;工作在鏈式存儲模式時,即按照圖
5 中虛線所示的掃描順序,將串行輸入數據存入0
號寄存器,將0 號寄存器內數值存入1 號寄存器,1
號寄存器內數值存入8 號寄存器??62 號寄存器
內數值存入63 號寄存器,上述63 個存儲器存儲過
程為并行處理。
2.3 鏈式移動存儲控制器、模式控制器
模式控制器根據變長解碼輸出的塊結束標志,向
存儲器陣列提供工作模式信息、向一維反變換器提供
啟動和停止信息,向變長解碼FIFO輸出讀控制信號。
鏈式移動存儲控制器中設置游程計數器,以每次
從FIFO中讀取的新的游程Run 值作為初值,對應的
Level值完成反量化時開始計數,并控制將反量化后
— 65 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇
有效的變換系數存入存儲器陣列,之后存入0; 每存
一次數據,計數值減少1, 已經存入存儲器陣列的數
據就沿掃描順序向后移動一次。到計數值減小為0
時,已完成該(Run,Level ) 對的反量化和游程解碼。
隨著不斷從變長解碼FIFO中讀入新數據,重復
以上操作直至讀入塊結束標志時,有效路徑上所有
變換系數均已存放在存儲器陣列中對應位置,而由
于其它位置上的寄存器均已被提前初始化為零,所
以此時已完成該塊內所有系數的并行游程解碼、反
掃描和反量化,模式控制器設置存儲器陣列工作模
式為行模式,開始進行行反變換。
3 結果比較與分析
3.1 處理周期和存儲空間統計
在鄭國卿和BinSheng 等人的設計中,其流水線
單元的處理時間固定為一個塊內的像素數目,即64
個時鐘周期。同時為順利完成流水線操作,各處理
單元之間均需要設置乒乓RAM或者FIFO[3-4] 。若
需處理高速視頻碼流,這兩個結構的反變換單元至
少需要64 個寄存器或大量RAM完成轉置操作。
本文設計的結構則將游程解碼、反掃描、反量
化、反變換融合為一個流水線處理單元。如前文統
計,變換編碼后一個塊內有效系數個數一般小于
25, 按本文設計的并行游程解碼、反掃描和反量化所
需時鐘周期數同樣小于25, 而反變換單元的處理時
間固定為24 個時鐘周期,所以完成一個塊的時間小
于49 個時鐘周期,同時也為作為上一個流水線單元
的變長解碼單元省去了堆棧操作相應的操作時間;
本文結構僅需要1 個16 單元的FIFO存儲變長解碼
數據,而將反變換所需的64 個寄存器作為整個流水
線單元的共用存儲器陣列。三種設計結構的處理周
期和存儲空間統計對比如表1 所示。
表1 本設計結構與其他設計結構的比較
名稱處理周期中間存儲空間轉置單元
鄭國卿設計64 cycles 4 個64×13bitRAM
2 個64 ×14bitRAM
64 個20bit 寄存器
BinSheng 設計64 cycles 2 個64 ×13bit 堆棧
2 個64 ×14bitRAM
64 個20bit 寄存器
本文設計小于49 cycles 1 個16 ×13bitFIFO 64 個20bit 寄存器
3.2 仿真與綜合結果
按照49 個時鐘周期的處理時間,針對HDTV
1920 ×1080Pixel@30Frames PSecond 和4∶2∶0 的圖
像格式,可計算得到
B=
1920 ×1080PixelsPFrame×30FramesPSecond×1.5
8 ×8PixelsPBlock
=
1458000BlocksPSecond
B 為每秒鐘處理的塊數。由于4∶2∶0 圖像格式中每
兩個亮度塊對應一個色度塊,故有一個1.5 的系數。
所以工作頻率
f =49CyclesPBlock ×B=71.4MHz
工作頻率較低,有利于降低功耗。
對本文所述結構用VerilogHDL 語言進行了實
現,用Modelsim進行了仿真,然后與AVS參考軟件
rm52c 生成的測試向量進行對比,仿真驗證結果表
明,該結構可以滿足視頻標準AVS的解碼要求。
對于上述設計,采用XilinxISE7.1i 綜合工具,選
擇Xilinx公司的virtex4 系列中的xc4vlx80器件,進行
了綜合,綜合后的資源占用情況如表2 所示,綜合布
線結果表明,關鍵路徑時延為3.710ns, 該結構的最高
工作頻率高于200MHz,總的等效門數為9,076 門。
表2 本設計硬件綜合結果
宏單元數量具體器件數量
ROMs 1 BELS 653
Registers (bits) 2244 FlipFlops 666
Multiplexers 65 IOBuffers 736
Adders 62 FIFO 1
Multipliers 1
Comparators 2
4 結束語
本文設計的并行游程解碼、反掃描、反量化和反
變換的結構,通過一個并行結構的寄存器陣列實現
反變換的轉置操作,同時采用優化結構安排處理單
元,共用該寄存器陣列完成游程解碼、反掃描和反量
化,不需再占用存儲器存儲中間結果,從而將游程解
碼、反掃描、反量化和反變換合并為一個流水線處理
單元,節省了存儲資源和芯片面積,并且該結構可以
滿足高清AVS解碼的處理要求。
參考文獻:
[1] 信息技術先進音視頻編碼第二部分:視頻[S].GB PT20090.
2006.
[2] CongPeng,etal.ArchitectureofAVSHardwareDecodingSystem
[C].Proceedingsof2004InternationalSymposiumonIntelligentMul 2
timedia,VideoandSpeechProcessing,2004:306-309.
[3] 鄭國卿. 專用集成電路并行結構研究及其在視頻解碼芯片設計
中的實踐[D]. 浙江大學碩士論文,2005.
[4] ShengBin,GaoWen,WuDi.AnImplementedVLSIArchitectureof
InverseQuantizerforAVSHDTVVideoDecoder[C].The6thIEEE
InternationalConferenceOnASIC (ASICON) ,Oct24-27,2005
(1) :306-309.
[5] ZhangCi-Xun,LouJian,YuLu,etal.TheTechniqueofPre-
ScaledIntegerTransform[C].Proc.ofIEEEInternationalSymposium
onCircuitsandSystems (ISCAS2005) ,2005 (1) :316-319.
[6] 劉宇, 田曉華.AVS 視頻標準中塊變換系數熵編碼器的優化設
計[J]. 微電子學與計算機,2004 (10) :27-31,35.
[7] JointVideoTeamofITU--TandISO PIECJTC1,DraftITU--T
RecommendationandFinalDraftInternationalStandardofJointVideo
Specification( ITU--TRec.H.264 ) [S].2003.
[8] 毛訊. 高速視頻解碼器設計研究[D]. 浙江大學博士論文,
2001.
責任編輯:肖濱
— 75 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇
AVS游程解碼、反掃描、反量化和反變換優化設計
趙 策, 劉佩林
(上海交通大學電子工程系, 上海200240)
摘 要: 提出了一種適用于AVS的游程解碼、反掃描、反量化和反變換硬件結構優化設計方案。
根據AVS整數變換和量化的特性, 設計了可工作在不同模式的存儲器陣列, 既可用來進行反變
換器所需的轉置操作, 又可用來存儲中間結果, 將游程解碼、反掃描和反量化合并為一個流水
線單元并行處理。該設計省去了存儲中間結果所需的大量存儲器, 加快了處理速度, 滿足高清
視頻的處理要求。該設計通過了FPGA驗證, 綜合結果表明, 其邏輯門數僅為9076, 最高工作頻
率大于200MHz。
關鍵詞: AVS; 視頻解碼; 硬件結構; 存儲器陣列; 反量化; 反變換
Hardwarearchitectureoptimizingforrunlenth decoding,
inversescan ,inversequantizationandinversetransforminAVS
ZHAOCe,LIUPei 2lin
(DepartmentofElectronicEngineering ,ShanghaiJiaotongUniversity ,Shanghai200240 ,China)
Abstract: Anoptimizedhardwarearchitectureofrunlenthdecoding,inversescan,inversequantizationand
inversetransforminAVSvideodecoderispresented.Accordingtothespecificintegertransformandquantiza 2
tionalgorithmusedinAVS,aparallelmemoryarrayisdesignedtoperformthetransposeoperationwhilepro 2
vidingaplatformforacombinedblock-levelpipelinestage,whichintegratedrunlengthdecoding,inverse
scanandinversequantizationmoduletogether.Thisarchitectureresultedinhigherprocessingspeedandless
intermediatememoriesandfulfilledtherequirementofhighdefinitionvideoprocessing.Thewholedesignhas
beenverifiedbyFPGA.Thesynthesisresultshowsthatthegatecountisonly9076whilethefrequencyismore
than200MHz.
Keywords : AVS;videocoding;hardwarearchitecture;memoryarray;inversequantization;inverse
transform
0 引言
AVS(先進音視頻編碼標準) 是用于數字音視頻
的壓縮、解壓縮、處理和表示的技術方案,編碼效率
比第一代標準(MPEG-2 ) 高,而且技術方案簡潔,芯
片實現復雜度低,是一套我國具備自主知識產權的
包含系統、視頻、音頻、媒體版權管理在內的完整標
準體系,目前視頻部分已正式成為國家標準[1] 。
CongPeng 等人對AVS解碼器設計結構進行了
研究[2] ,但其文中未涉及游程解碼、反掃描、反量化
和反變換部分,這些單元耗費資源和處理時間,若不
進行合理設計則難以完成高速視頻處理。鄭國卿和
BinSheng 等人的論文[3-4] 中分別提出了并行處理反
掃描和反量化的結構,這些結構有一定并行性,但為
滿足流水線設計要求,各處理單元間需設置大量存
儲空間。另外,經過變換編碼一個像素塊中大部分
數據均為0, 但上述結構中均需對所有系數進行反
量化處理,存在較大時間冗余。
本文基于AVS編解碼標準,利用其所采用的帶
預縮放的整數余弦變換技術( PIT,Pre-scaled
收稿日期: 2006-08-18
作者簡介: 趙策(1983- ) ,男,碩士研究生,主要研究方向為數字視
頻壓縮編碼、VLSI設計。
— 45 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇
Integer Transform) [5] ,設計了一種并行處理結構,利
用高速并行反變換操作所需的轉置寄存器堆作為共
用存儲器陣列,將游程解碼、反掃描、反量化和反變
換融合在一個流水線單元中,可以節省存儲空間、提
高處理速度。
1 Zig-Zag 掃描、整數變換
1.1 Zig-Zag 掃描
變換編碼的目的在于去除系數之間的相關性,
以提高壓縮效率。一般而言,變換系數量化后,零值
系數占較大比例。為了更有效地進行編碼,通常在
變長編碼之前,要先進行Zig-Zag 掃描和游程編
碼,可選擇幀掃描模式或場掃描模式。圖1 為按幀
掃描順序排列量化后系數示意圖,掃描順序上最高
頻的非零系數稱為截點(如圖1 中粗箭頭終點處的
圓點所示) ,從左上角開始結束于截點的粗線條掃過
的路徑稱為有效掃描路徑,有效掃描路徑上的系數
稱為有效系數。利用5 個CIF 序列各100 幀測試,
編碼采用全I 幀,測試結果如圖2 所示,像素塊內有
效系數個數的平均值一般小于20, 最大不超過25。
圖1 Zig-Zag 掃描示意圖
圖2 變換量化后塊內有效系數個數統計
變換編碼后的系數幅度從高頻交流系數向低頻
交流系數呈現由小到大遞增的趨勢,AVS 按有效掃
描路徑的逆序從高頻到低頻進行游程編碼,使得已
編碼系數的幅度一般小于相鄰的后編碼系數的幅
度,從而便于動態切換碼表,使熵編碼器的性能更加
逼近理論信息熵[6] ,因此一般在解碼器中的游程解
碼之前,需要先存儲變長解碼結果,再按從低頻到高
頻的順序讀出。
1.2 帶PIT的8 ×8 整數變換技術
AVS采用8 ×8 整數變換。通過系數調整和分
解,可保證變換和反變換的核心操作沒有乘法運算,
只有加法和移位,降低了運算復雜度。
由于各變換基矢量的模大小不一,因此編碼時
必須對變換系數進行不同程度的縮放以達到歸一
化。H.264PAVC規定編解碼端都需要歸一化[7] ,即
在編碼端進行正縮放和量化,在解碼端進行反縮放
和反量化;而AVS采用了帶PIT(預縮放整數變換)
的8 ×8 整數余弦變換技術,即正向縮放、量化、反向
縮放結合在一起,而解碼端只進行反量化,不再需要
反縮放,即歸一化集中在編碼端。PIT 的使用可以
簡化解碼端運算和存儲,而性能又不會受影響[5] 。
因此,AVS解碼時一個像素塊內系數的量化參數相
同,所以所有系數的反量化公式均相同,與系數具體
位置無關。
2 硬件結構
本文設計的結構如圖3 所示,模式控制器控制從
變長解碼FIFO中讀出成對的游程Run, 幅度Level, 塊
結束標志和掃描方式;反量化器對幅度Level 值進行
反量化,得到變換系數,并由鏈式移動存儲控制器控
制存入并行設計的存儲器陣列,通過可配置存儲器陣
列進行并行游程解碼、反掃描;完成一個塊的游程解
碼和反掃描后,一維反變換單元從存儲器陣列中讀出
行數據,進行一維行反變換,其結果經過存儲器陣列
轉置操作后并行輸出,進行一維列反變換,輸出殘差
系數。下面將針對重點模塊詳細介紹。
圖3 設計結構框圖
2.1 一維反變換器
AVS反變換處理的像素塊為8 ×8 大小,順序地
對每個系數逐個做反變換,難以滿足實時處理高速
視頻碼流的要求。因此,必須設計并行的反變換結
構,其中包括所謂的“行列”結構,即重復使用同一個
一維反變換單元,先對像素塊每一行做一維反變換
(行反變換) ,再對其結果的每一列做一維反變換(列
— 55 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇
反變換) 。
毛訊等人對MPEG-2 中的IDCT硬件結構做了
詳細研究[8] ,提出了所謂“脈動陣列結構”,即將反變
換蝶形運算安排為三級流水線,每個時鐘周期可以
計算8 個數據。AVS中采用的是8 ×8 整數變換,因
此本設計中也采用了三級流水線的陣列結構實現高
速并行操作。
圖4 表示本設計完成一個塊的反變換處理的時
序安排,其中以數據并行輸入反變換單元作為起始
時刻。三級流水線陣列結構需3 個時鐘周期才能輸
出結果,而AVS標準中所規定的一維反變換后處理
操作也需要1 個時鐘周期,所以數據輸入4 個時鐘
周期后開始輸出行反變換結果,并同時存入轉置單
元;第12 個時鐘后行變換完成,結果存儲完畢,經過
轉置后的結果即可再次輸入一維反變換單元,開始
列變換;第16 個時鐘周期可開始輸出列反變換結果
(即殘差數據) ,第24 個時鐘周期結果輸出完畢,因
此完成一個8 ×8 像素塊的反變換處理的時間固定
為24 個時鐘周期。
圖4 并行反變換單元的時序安排
2.2 存儲器陣列
上述反變換處理單元中必須對結果作轉置處
理,該轉置單元要存儲一個塊的數據,且應按行或列
并行的方式輸入輸出數據。該單元可以用RAM來
實現,但由于RAM讀寫的時序限制,一般需要使用
多塊RAM,轉置操作需要的時間也較長。
本文采用寄存器陣列作為轉置單元,由8 ×8 個
寄存器單元完成,省去地址運算,控制明確。其結構
圖如圖5 所示,虛線所示為Zig-Zag 掃描中常用的
幀掃描順序。陣列中每個寄存器單元的組成如圖6
所示,由1 個選擇器控制1 個寄存器,所有寄存器單
元的模式信息相同,并可根據模式信息,選擇空閑數
據、鏈式移動存儲數據、行數據和列數據4 種輸入中
的一種進行存儲。
空閑數據即為該寄存器中原來的數據;鏈式移
動存儲數據即掃描順序上前一個單元中的數據,0
號寄存器單元的鏈式移動存儲數據即為存儲器陣列
的串行輸入數據;列數據即存儲器陣列中緊鄰右側
的寄存器單元中的數據,最后一列的寄存器單元的
列數據全部為0; 行數據即存儲器陣列中緊鄰下方
的寄存器單元的數據,最后一行的寄存器單元的行
數據為存儲器陣列的并行輸入數據。
圖5 存儲器陣列示意圖
圖6 寄存器單元結構
從整體來看,存儲器陣列工作在行模式時,其行
數據可從第一行并行讀出,從最后一行并行輸入;工
作在列模式時,其列數據可從第一列并行輸出,從最
后一列并行輸入;工作在鏈式存儲模式時,即按照圖
5 中虛線所示的掃描順序,將串行輸入數據存入0
號寄存器,將0 號寄存器內數值存入1 號寄存器,1
號寄存器內數值存入8 號寄存器??62 號寄存器
內數值存入63 號寄存器,上述63 個存儲器存儲過
程為并行處理。
2.3 鏈式移動存儲控制器、模式控制器
模式控制器根據變長解碼輸出的塊結束標志,向
存儲器陣列提供工作模式信息、向一維反變換器提供
啟動和停止信息,向變長解碼FIFO輸出讀控制信號。
鏈式移動存儲控制器中設置游程計數器,以每次
從FIFO中讀取的新的游程Run 值作為初值,對應的
Level值完成反量化時開始計數,并控制將反量化后
— 65 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇
有效的變換系數存入存儲器陣列,之后存入0; 每存
一次數據,計數值減少1, 已經存入存儲器陣列的數
據就沿掃描順序向后移動一次。到計數值減小為0
時,已完成該(Run,Level ) 對的反量化和游程解碼。
隨著不斷從變長解碼FIFO中讀入新數據,重復
以上操作直至讀入塊結束標志時,有效路徑上所有
變換系數均已存放在存儲器陣列中對應位置,而由
于其它位置上的寄存器均已被提前初始化為零,所
以此時已完成該塊內所有系數的并行游程解碼、反
掃描和反量化,模式控制器設置存儲器陣列工作模
式為行模式,開始進行行反變換。
3 結果比較與分析
3.1 處理周期和存儲空間統計
在鄭國卿和BinSheng 等人的設計中,其流水線
單元的處理時間固定為一個塊內的像素數目,即64
個時鐘周期。同時為順利完成流水線操作,各處理
單元之間均需要設置乒乓RAM或者FIFO[3-4] 。若
需處理高速視頻碼流,這兩個結構的反變換單元至
少需要64 個寄存器或大量RAM完成轉置操作。
本文設計的結構則將游程解碼、反掃描、反量
化、反變換融合為一個流水線處理單元。如前文統
計,變換編碼后一個塊內有效系數個數一般小于
25, 按本文設計的并行游程解碼、反掃描和反量化所
需時鐘周期數同樣小于25, 而反變換單元的處理時
間固定為24 個時鐘周期,所以完成一個塊的時間小
于49 個時鐘周期,同時也為作為上一個流水線單元
的變長解碼單元省去了堆棧操作相應的操作時間;
本文結構僅需要1 個16 單元的FIFO存儲變長解碼
數據,而將反變換所需的64 個寄存器作為整個流水
線單元的共用存儲器陣列。三種設計結構的處理周
期和存儲空間統計對比如表1 所示。
表1 本設計結構與其他設計結構的比較
名稱處理周期中間存儲空間轉置單元
鄭國卿設計64 cycles 4 個64×13bitRAM
2 個64 ×14bitRAM
64 個20bit 寄存器
BinSheng 設計64 cycles 2 個64 ×13bit 堆棧
2 個64 ×14bitRAM
64 個20bit 寄存器
本文設計小于49 cycles 1 個16 ×13bitFIFO 64 個20bit 寄存器
3.2 仿真與綜合結果
按照49 個時鐘周期的處理時間,針對HDTV
1920 ×1080Pixel@30Frames PSecond 和4∶2∶0 的圖
像格式,可計算得到
B=
1920 ×1080PixelsPFrame×30FramesPSecond×1.5
8 ×8PixelsPBlock
=
1458000BlocksPSecond
B 為每秒鐘處理的塊數。由于4∶2∶0 圖像格式中每
兩個亮度塊對應一個色度塊,故有一個1.5 的系數。
所以工作頻率
f =49CyclesPBlock ×B=71.4MHz
工作頻率較低,有利于降低功耗。
對本文所述結構用VerilogHDL 語言進行了實
現,用Modelsim進行了仿真,然后與AVS參考軟件
rm52c 生成的測試向量進行對比,仿真驗證結果表
明,該結構可以滿足視頻標準AVS的解碼要求。
對于上述設計,采用XilinxISE7.1i 綜合工具,選
擇Xilinx公司的virtex4 系列中的xc4vlx80器件,進行
了綜合,綜合后的資源占用情況如表2 所示,綜合布
線結果表明,關鍵路徑時延為3.710ns, 該結構的最高
工作頻率高于200MHz,總的等效門數為9,076 門。
表2 本設計硬件綜合結果
宏單元數量具體器件數量
ROMs 1 BELS 653
Registers (bits) 2244 FlipFlops 666
Multiplexers 65 IOBuffers 736
Adders 62 FIFO 1
Multipliers 1
Comparators 2
4 結束語
本文設計的并行游程解碼、反掃描、反量化和反
變換的結構,通過一個并行結構的寄存器陣列實現
反變換的轉置操作,同時采用優化結構安排處理單
元,共用該寄存器陣列完成游程解碼、反掃描和反量
化,不需再占用存儲器存儲中間結果,從而將游程解
碼、反掃描、反量化和反變換合并為一個流水線處理
單元,節省了存儲資源和芯片面積,并且該結構可以
滿足高清AVS解碼的處理要求。
參考文獻:
[1] 信息技術先進音視頻編碼第二部分:視頻[S].GB PT20090.
2006.
[2] CongPeng,etal.ArchitectureofAVSHardwareDecodingSystem
[C].Proceedingsof2004InternationalSymposiumonIntelligentMul 2
timedia,VideoandSpeechProcessing,2004:306-309.
[3] 鄭國卿. 專用集成電路并行結構研究及其在視頻解碼芯片設計
中的實踐[D]. 浙江大學碩士論文,2005.
[4] ShengBin,GaoWen,WuDi.AnImplementedVLSIArchitectureof
InverseQuantizerforAVSHDTVVideoDecoder[C].The6thIEEE
InternationalConferenceOnASIC (ASICON) ,Oct24-27,2005
(1) :306-309.
[5] ZhangCi-Xun,LouJian,YuLu,etal.TheTechniqueofPre-
ScaledIntegerTransform[C].Proc.ofIEEEInternationalSymposium
onCircuitsandSystems (ISCAS2005) ,2005 (1) :316-319.
[6] 劉宇, 田曉華.AVS 視頻標準中塊變換系數熵編碼器的優化設
計[J]. 微電子學與計算機,2004 (10) :27-31,35.
[7] JointVideoTeamofITU--TandISO PIECJTC1,DraftITU--T
RecommendationandFinalDraftInternationalStandardofJointVideo
Specification( ITU--TRec.H.264 ) [S].2003.
[8] 毛訊. 高速視頻解碼器設計研究[D]. 浙江大學博士論文,
2001.
責任編輯:肖濱
— 75 —
? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
http://www.elecfans.com/ 電子發燒友 http://bbs.elecfans.com 電子技術論壇