AVS游程解碼、反掃描、反量化和反變換優化設計

中圖分類號: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 電子技術論壇

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454469.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454469.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454469.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django REST framework介紹

現在前后端分離的架構設計越來越流行,業界甚至出現了API優先的趨勢。 顯然API開發已經成為后端程序員的必備技能了,那作為Python程序員特別是把Django作為自己主要的開發框架的程序員,Django REST framework(DRF)這個…

zabbix 安裝_安裝zabbix

準備一個純凈環境10.0.0.99首先修改yum源,修改為zabbix清華源,清華源玉zabbix官方源都是同步的,下載速度更快!zabbix官方Download Zabbix?www.zabbix.com點擊下載,下面有zabbix的歷史版本以及官方安裝文檔可以查看到不…

拓展歐幾里得 [Noi2002]Savage

對于一個野人,他(她?)所在的位置,(C[i]x*p[i])%ans,是的,暴力枚舉每一個ans,用拓展歐幾里得求出每兩個wildpeople(wildrage?)相遇的年份,如果小于最小的壽限…

CCNP-19 IS-IS試驗2(BSCI)

CCNP-19 IS-IS試驗2 實驗拓撲:試驗要求:R1 R2 R3全部采用集成的ISIS路由協議,R1 R2在區域49.0001內,R3在區域49.0002內,R1與R2之間的鏈路類型為L1,R2與R3之間的鏈路類型為L2。 試驗目的:掌握基…

正道的光用計算機,正道的光作文500字

當那熟悉的轟天巨雷般的呼嚕聲響起,我就知道,這又是睡不著的一天。同樣在宿舍;同樣是小翟;同樣的時間;同樣在我昏昏欲睡的時候,那個熟悉的呼嚕聲,它又來了。它將我從即將到來的美夢中驚醒了&…

AVS高清立體視頻編碼器

一、成果項目背景 電視技術在經歷了從黑白到彩色、從模擬到數字的技術變革之后正在醞釀另一場技術革命,從單純觀看二維場景的平面電視跨越到展現三維場景的立體電視。立體電視,又稱三維電視(3DTV),提供了更為豐富的視覺信息和更具臨場感的觀…

RESTful介紹

RESTful介紹 REST與技術無關,代表的是一種軟件架構風格,REST是Representational State Transfer的簡稱,中文翻譯為“表征狀態轉移”或“表現層狀態轉化”。阮一峰 理解RESTful架構 RESTful API設計指南 阮一峰 RESTful設計指南 API與用戶…

dijkstra算法代碼_數據科學家需要知道的5種圖算法(附代碼)

在本文中,我將討論一些你應該知道的最重要的圖算法,以及如何使用Python實現它們。作者:AI公園導讀因為圖分析是數據科學家的未來。作為數據科學家,我們對pandas、SQL或任何其他關系數據庫非常熟悉。我們習慣于將用戶的屬性以列的形…

大暴搜 chess

仔細讀題,會發現吃掉敵人點對方案數的貢獻很神奇。如果走的空格相同,而走的敵人點不同,對答案無貢獻,而對于走的空格相同,但一種走了敵人點,另一種沒走,算兩個方案。。。。sb出題人語文簡直是和…

網站的SEO以及它和站長工具的之間秘密

博客遷移沒有注意 URL 地址的變化,導致百度和 google 這兩只爬蟲引擎短時間內找不到路。近段時間研究了下國內最大搜索引擎百度和國際最大搜索引擎google的站長工具,說下感受。 百度的站長工具地址:http://zhanzhang.baidu.com/dashboard/ind…

html 縮略圖點擊預覽,[每天進步一點點~] uni-app 點擊圖片實現預覽圖片列表

點擊圖片,實現預覽圖片功能,并且可循環預覽圖片列表!image.png一、多張圖片預覽html代碼js代碼data(){return {photos:[{ src: 圖片路徑1},{ src: 圖片路徑2},{ src: 圖片路徑3},……]}},methods: {// 預覽圖片previewImage(index) {let phot…

git ssh拉取代碼_阿里云搭建git服務器

一.搭建步驟,分為兩步搭建中心倉庫自動同步代碼到站點目錄二.詳細步驟如下1.先檢查一下服務器上有沒有安裝gitgit --version如果出現版本號,說明服務器已經安裝git,如圖所示:2.如果沒有版本信息,則先安裝git&#xff1…

Django REST framework 序列化

創建一個序列化類 使用序列化有四種方式 使用json模塊,完全手寫使用django自帶的序列化模塊 1,# from django.core import serializers 2,# dataserializers.serialize(“json”,book_list)使用REST framework 帶的序列化方法&#xff0c…

基于SIMD的AVS整數反變換算法設計與優化

基于SIMD 的AVS 整數反變換算法設計與優化王玲娟,張剛**作者簡介:王玲娟,(1987-),女,在讀碩士,主要研究方向:視頻解碼算法通信聯系人:張剛,&#…

Word -- 列表重新編號

Word -- 列表重新編號office一言:我小心翼翼地灌溉,一日復一日地期待,那么費力,植成參天的喬木,豈愿見你終有一日從容赴死?問題 word 文檔早就想解決的一個問題,這次遇到了就上網找解決掉了&…

非持久連接和持久連接

非持久連接和持久連接 HTTP既可以使用非持久連接(nonpersistent connection),也可以使用持久連接(persistent connection)。HTTP/1.0使用非持久連接,HTTP/1.1默認使用持久連接。 非持久連接 讓我們查看一下非持久連接情況下從服務器到客戶傳送一個Web頁面…

計算機開機鍵鼠無法識別,我得電腦一開機就檢測不到鍵盤和鼠標

2005-10-18 16:06:131、開機后當出現dos界面時,按一下pause鍵(這個鍵在四個方向鍵的上邊,仔細找就能找到),如果計算機啟動停止,說明你的鍵盤起作用,主板在開機時就已經檢測到了鼠標鍵盤。啟動后不能使用鼠標鍵盤&#…

vs2003 局部友元訪問私有不可訪問_C++ 類:重載運算符與友元

18.類中重載運算符與友元上次節中學習了如何在類中重新定義賦值()運算符,實際上在一個自定義類中除了賦值()運算符外,類的對象是不可以直接使用運算符的,比如你在main函數中寫這樣的代碼會報錯:如果想解決這些報錯問題&#xff0c…

oracle sqlldr (一) 最基本語法

-- Create table create table DEPT2 (DEPTNO NUMBER(2) not null,DNAME VARCHAR2(14),LOC VARCHAR2(1000) ); alter table DEPT2add constraint DEPT_PK primary key (DEPTNO);------demo.ctl LOAD DATA INFILE * --數據在控制文件中 INTO TABLE DEPT2 INSERT ---默認加…

Django REST framework 視圖

上一部分代碼在序列化部分 類繼承順序 ############### mixins.py ################ # 類中調用的方法均在 GenericAPIView 類中實現,所以下列類需要結合 GenericAPIView 使用 class ListModelMixin(object) # 查看繼承類def list(self, reque…