摘? 要: 提出了一個利用小波視頻編解碼專用芯片搭建的視頻壓縮解壓縮卡,對其硬件實現做了具體描述。
關鍵詞: 小波變換? ADV612專用芯片? IIC總線? 視頻采集與壓縮
?
小波變換作為一種信號分析方法,具有多尺度、多分辨率分析和時域局部化與頻域局部化等優點。小波變換是一種頻率上伸縮自由的變換。當信號帶寬較窄時,它可以通過縮小的方式使得對窄帶信號的刻劃較為精細;當信號帶寬較寬時,它可以通過放大的方式使描述能夠滿足精度需要。因而小波變換是一種不受帶寬約束的圖像壓縮方法。與傳統的基于DCT變換的編碼方法相比,基于小波變換的圖像編碼是對整幅圖像進行變換,充分利用了圖像整體相關性并消除了傳統分塊編碼方法帶來的方塊效應。小波級數可以在不同分辨率下逼近某一函數,實現多分辨率分解。多分辨率分解使我們可以在不同的刻畫精度上對源圖像進行逼近,在不同層次上對原圖像進行壓縮,突破了傳統編碼方法的壓縮比限制,從而獲得很高的壓縮比。小波變換的優越性能使其在視頻圖像編碼領域得到廣泛應用,目前,利用小波變換進行圖像編碼的專用芯片已經問世。
本文介紹ANALOG公司最新推出的小波視頻編解碼專用芯片ADV612,并描述基于ADV612 的視頻壓縮卡的設計與實現。
1 小波視頻編解碼專用芯片ADV612
1.1 ADV612系統功能介紹
ADV612是本文所描述的視頻卡的核心部件,是由ANALOG公司推出的小波視頻編解碼專用芯片。ADV612采用了高密度CMOS集成電路技術,整個芯片由數字視頻I/O接口、高清晰取景框控制、小波變換與幀抽取、片內SRAM、片內DRAM控制器、自適應量化器與熵編碼器、FIFO壓縮數據緩存與主機接口等功能模塊搭成,如圖1所示。
?
?
數字視頻I/O接口支持CCIR601國際標準格式。編碼時,數字視頻從數字視頻接口輸入,經幀抽取和小波變換,送入量化器進行量化。量化后的數據送入熵編碼器,進行游程編碼和霍夫曼編碼,產生最后的壓縮數據流,送入集成于片內的512×32位大小的FIFO緩存。當片內FIFO的數據量達到主機的預設值時,ADV612發出中斷,通知主機取走數據。解碼過程與之相反,壓縮數據由主機送入FIFO,解碼后產生CCIR601格式的數字視頻數據,從數字視頻接口輸出。
1.2 ADV612的特性
1.2.1 高清晰度取景框功能
ADV612支持一種稱為高清晰度取景框的功能。該功能允許一幀中某一矩形區域相對于其他區域(我們稱之為背景)有較低的壓縮比,或完全不進行壓縮。矩形區域的位置和大小以及與背景的對比度由主機通過ADV612的主機接口輸入控制字來控制。該功能為用戶在不影響壓縮比的情況下選取某一感興趣的區域作高清晰度顯示提供了捷徑,從而使整個系統特別適用于監控場合。
1.2.2 精確的碼流控制
ADV612的自適應量化器允許主機控制量化步長。主機通過對前一幀圖像子帶編碼數據的統計計算出下一幀的量化步長,在下一幀壓縮開始前將其寫入量化步長寄存器。通過量化步長控制,主機可以獲得穩定的壓縮碼流輸出。這對帶寬有限的網絡傳輸特別有利,使其不會因為圖像內容的劇烈變化而引起壓縮碼流的突變,造成網絡擁塞。
1.2.3 硬件編碼實現小波變換
考慮到小波變換龐大的計算量,ADV612的小波變換模塊采用硬件編碼的方法實現了以Morlet小波為正交小波基的小波變換和小波逆變換,保證了視頻信號能夠實時處理。片內集成了一片SRAM,用作變換時的高速數據緩存。
1.3 ADV612的主機接口
為存儲主機設定的ADV612編解碼過程中所需參數和反映工作狀態,ADV612在片內集成了若干控制字寄存器和狀態寄存器??刂谱旨拇嫫骱蜖顟B寄存器稱為間接寄存器,ADV612將控制字寄存器和狀態寄存器統一編址。主機不能直接訪問間接寄存器。
為訪問間接寄存器和片內FIFO,ADV612設置了一組可由主機直接訪問的寄存器,稱為直接寄存器。共有四個32位直接寄存器:間接地址寄存器、間接數據寄存器、壓縮數據寄存器、中斷控制和狀態寄存器。間接地址寄存器存放欲訪問的間接寄存器的地址;間接數據寄存器存放從間接寄存器讀出的或欲寫入間接寄存器的數據;壓縮數據寄存器是片內FIFO的映射,讀寫該寄存器就會將數據讀出或寫入FIFO中;中斷控制和狀態寄存器的高16位是控制位,設置引起ADV612向主機發出中斷的條件,低16位是狀態位,反映觸發當前中斷的原因。
ADV612的主機接口包括:32位數據總線(D31~D0)、兩位地址線(ADR1,ADR0)、片選信號(CS)、讀信號(RD)、寫信號(WR)、響應信號(ACK)和中斷輸出(INT)。兩位地址線用來選擇四個直接寄存器:
ADR1,ADR0= (0,0)?? 間接地址寄存器
????????????????(0,1)?? 間接數據寄存器
????? ?????????(1,0)?? 壓縮數據寄存器
????????????????(1,1)?? 中斷控制和狀態寄存器
ADV612使用響應信號(ACK)通知主機本次操作成功與否,響應信號拉低表示操作成功,可進行下一個操作。
1.4 ADV612的典型電路
ADV612的典型電路如圖2所示。
?
2 視頻卡的設計與實現
視頻卡由模擬視頻采集量化、視頻壓縮解壓縮、控制信號發生、8位到32位復用、視頻模擬輸出、PCI總線接口等多個單元模塊構成,如圖3所示。
?
2.1 視頻采集量化單元
從視頻輸入插座輸入的全電視信號首先經過該單元。該單元先對模擬信號進行嵌位和抗混疊濾波。經過濾波的信號送A/D轉換電路實現模數轉換,數字視頻進入Y/C分離電路進行Y/C分離。分離的Y、UV信號分別送入亮度控制和色度對比度控制電路。在亮度控制電路與色度控制電路中,亮度和色度的信號電平根據用戶預設值得到增強或削弱。經過亮度色度處理過的Y、U、V信號在YUV到YCrCb的轉換電路中轉換成國際標準的CCIR-601的視頻數據流輸入到視頻壓縮解壓縮單元。視頻采集量化單元框圖如圖4所示。
?
2.2 視頻模擬輸出單元
進入該單元的視頻信號經過YCrCb到YUV轉換電路,由YCrCb信號轉化成Y、UV信號分別輸出。Y信號進入同步電路疊加視頻同步信號,UV信號進入峰值電路加入峰值信號。加入視頻同步的Y信號和加入峰值的UV信號在混合電路混合,YUV數字視頻經過D/A轉換電路轉換為模擬全電視信號,從模擬口輸出。視頻模擬輸出單元如圖5所示。
視頻采集量化單元與視頻模擬輸出單元都需要主機設定控制字,控制視頻信號的處理過程,如亮度、色度電平控制,帶通濾波的頻帶選擇等。視頻采集量化單元與視頻模擬輸出單元的控制字接口均采用IIC總線接口,且兩個單元都是IIC總線的從設備。IIC總線是由飛利浦公司開發的串行總線,通過一根時鐘線和一根數據線,總線上的IIC主設備就可以與IIC從設備通信。視頻卡用89C51單片機的兩個串口模擬IIC總線的時鐘線和數據線,單片機的控制信號由控制發生電路產生。
2.3 視頻壓縮解壓縮單元
視頻壓縮解壓縮單元由ADV612和一片256K×16Bit的DRAM構成,完成數字視頻的編解碼。ADV612的主機接口直接掛接在PCI接口單元的用戶總線上。ADV612的片內FIFO通過PCI接口電路映射主機內存地址空間中的一片512×32位大小的連續內存,ADV612的直接寄存器則映射主機I/O空間的連續的4個I/O地址。ADV612所需的RD、WR、CS、ADR1、ADR0均由控制發生電路產生??刂瓢l生電路由一片EPLD完成。它翻譯PCI接口單元電路的讀寫、片選、中斷信號,并對地址信號進行譯碼,產生ADV612所需的片選與讀寫信號和IIC讀寫控制器89C51所需的讀寫和中斷等控制信號,同時它將89C51和ADV612的響應信號發給PCI接口單元電路。視頻壓縮解壓縮單元電路如圖6所示。
?
2.4 復用單元電路
復用單元電路由8位到32位數據復用和復用數據緩存兩部分組成,如圖7所示。
復用單元電路在視頻卡處于解壓縮狀態時才開始工作。復用電路由一片EPLD構成,它將8位的視頻數據在視頻時鐘的驅動下復用成為32位寬度的數據。復用的目的是充分利用PCI總線的32位的數據總線。復用后的數據寫入作為數據緩存的雙口RAM中。雙口RAM的一個端口由復用電路控制,復用電路產生數據、地址、片選和寫信號;另一個端口的地址信號和讀信號來自PCI接口電路。當雙口RAM中的數據量達到預設值時,EPLD發出中斷,通知主機取走雙口RAM中的數據。
2.5 PCI接口單元電路
PCI接口單元電路完成PCI總線到板上局部邏輯電路的橋接器的功能。它一方面實現與PCI總線接口的各種協議和規范;另一方面將PCI總線信號翻譯為對局部邏輯電路的操作,產生對局部邏輯的各種控制如中斷、片選、讀寫等,同時也將局部邏輯的響應信號翻譯為PCI總線的響應,將中斷信號轉化成為對PCI總線的中斷,通知主機局部邏輯電路需要主機參與操作。
3 壓縮卡的性能
視頻卡能夠工作在編碼和解碼兩種狀態:編碼時能夠實時采集攝像頭從模擬視頻輸入口輸入的全電視信號,對模擬視頻信號進行量化和壓縮;解碼時能夠實時解壓縮主機送來的壓縮數據流,輸出的數字視頻信號可通過D/A轉換成全電視信號輸出到模擬視頻接口。壓縮卡具有如下性能:用戶可控制高清晰區域的位置和壓縮程度;精確的碼流控制,輸出壓縮碼率穩定;高速的數據傳輸,與主機交互的峰值速率可達132MB/s。小波壓縮解壓縮卡的性能參數的大范圍可調使系統可在各種不同的網絡帶寬下工作。表1為視頻卡性能參數表。
?
參考文獻
1 Grossman A, Morlet J. Decomposition of Hardy Functions into Square Integrable Wavelets of Constant Shape.Siam. J. Math.Anal.1984;15(4):723~736?
2 Vetterli M, Kovacevic, J. Wavelets And Subband Coding.Prentice Hall,1995 (ISBN 0-13-097080-8)
4 侯伯亨,顧 新.VHDL硬件描述語言與數字邏輯電路設計. 西安:西安電子科技大學出版社.1997
5 曾繁泰,馮保初.PCI總線與多媒體計算機.北京:電子工業出版社,1997