1 引 言
近十年來, 高清數(shù)字電視(HDTV )業(yè)務(wù)在全球范圍內(nèi)得到廣泛的推廣應(yīng)用(美國(guó)03 年率先開通了HDTV 的路基有線網(wǎng), 中國(guó)也確定了幾年內(nèi)HDTV 逐漸取代傳統(tǒng)電視網(wǎng)的計(jì)劃) , 但是由于其視頻數(shù)據(jù)量巨大, 不便于存儲(chǔ)與傳輸, 而傳統(tǒng)的壓縮系統(tǒng)存在壓縮質(zhì)量不高及實(shí)時(shí)性不強(qiáng)等特點(diǎn), 因此, 研究基于高清視頻信號(hào)的壓縮系統(tǒng)變得意義重大。美國(guó)AD公司新推出的編解碼芯片ADV 212, 采用小波變換和自適應(yīng)算術(shù)編碼技術(shù), 具有層進(jìn)式傳輸, 焦點(diǎn)區(qū)域壓縮, 多尺度、多分辨率分析和時(shí)域局部化等特點(diǎn), 使壓縮后的信號(hào)可以輕易通過有線甚至窄帶無線信道傳遞給中央控制臺(tái), 具有壓縮可調(diào)范圍大, 壓縮質(zhì)量高等優(yōu)點(diǎn)。基如此, 本文設(shè)計(jì)了一種ADV212結(jié)合FPGA和DSP的高效視頻壓縮系統(tǒng)。
2 ADV212結(jié)構(gòu)及功能
2. 1 內(nèi)部結(jié)構(gòu)
ADV212是一種低價(jià)、單片、低功耗、全數(shù)字的CMOS超大規(guī)模集成電路。它在實(shí)現(xiàn)JPEG2000 圖像壓縮必需的高強(qiáng)度計(jì)算同時(shí)能產(chǎn)生適用于大多數(shù)應(yīng)用的碼流。該芯片的核工作電壓1. 5V, I /O 電壓2. 5V 到3. 3V, 主要包括一個(gè)專門的小波變換引擎,3個(gè)熵編碼器, 一個(gè)片內(nèi)存儲(chǔ)器, 一個(gè)內(nèi)置精簡(jiǎn)指令集( R ISC )處理器。圖像或視頻數(shù)據(jù)由AD 內(nèi)部12位像素接口輸入, 采樣結(jié)果隔行輸入小波變換引擎,然后采用5 /3或9 /7濾波器將每個(gè)圖塊或幀分解為子帶, 得到的小波系數(shù)寫入內(nèi)部存儲(chǔ)器。熵編解碼器將數(shù)據(jù)編碼為JPEG2000 標(biāo)準(zhǔn)。內(nèi)部DMA 引擎提供存儲(chǔ)器之間的高帶寬傳輸及各模塊和存儲(chǔ)器之間的高性能傳輸。圖1為ADV212的內(nèi)部功能圖。
圖1 ADV212的內(nèi)部功能結(jié)構(gòu)圖
2. 2 ADV212功能模塊分析
( 1)小波變換引擎。
DV212提供了一個(gè)高精度的小波變換處理器,可實(shí)現(xiàn)6級(jí)小波分解。在編碼模式下, 小波處理器對(duì)原始采樣數(shù)據(jù)進(jìn)行變換、量化, 并將小波系數(shù)存入內(nèi)部存儲(chǔ)器中。
在解碼模式下, 從內(nèi)部存儲(chǔ)器中讀取小波變換系數(shù), 并通過解碼計(jì)算, 得到編碼前的原始數(shù)據(jù)。
( 2)熵編碼器。
熵編解碼器用來對(duì)小波系數(shù)的編碼塊進(jìn)行背景建模和算術(shù)編碼, 同時(shí)可在壓縮過程中計(jì)算最佳速率和失真性能所必需的失真度。由于熵編碼過程在JPEG2000 壓縮工程中對(duì)計(jì)算要求最高, 因此,ADV202內(nèi)部提供了三個(gè)專用的硬件熵編解碼器。
( 3)內(nèi)部存儲(chǔ)器。
存儲(chǔ)系統(tǒng)的主要功能是管理小波系數(shù)數(shù)據(jù)和臨時(shí)的代碼塊特征數(shù)據(jù), 以及創(chuàng)建、分解、存儲(chǔ)JPEG2000代碼流的臨時(shí)工作空間。此外, 存儲(chǔ)系統(tǒng)還被用于R ISC處理器的程序和數(shù)據(jù)存儲(chǔ)。
( 4)嵌入式R ISC處理器。
ADV212內(nèi)嵌了一個(gè)32 位的R ISC 處理器, 可用來配置、控制和管理其它專用硬件模塊以及分解和產(chǎn)生JPEG2000視頻流。RISC 處理器具有和每一個(gè)程序和數(shù)據(jù)存儲(chǔ)器、中斷控制器、標(biāo)準(zhǔn)總線接口及定時(shí)器計(jì)數(shù)器所對(duì)應(yīng)的ROM 和RAM。
2. 3 主要特征
具有針對(duì)視頻和靜止圖像的單片JPEG2000壓縮和解壓解決方案。
與芯片ADV202管腳一致, 支持ADV 202的全部功能。
新增加了支持JTAG /boundary掃描功能, 功耗比ADV 202低30%。
采用獨(dú)特的空間超效率回歸濾波( SURF)技術(shù), 可實(shí)現(xiàn)低功耗和低成本小波束壓縮, 支持高達(dá)6級(jí)的9 /7和5 /3小波轉(zhuǎn)換。
使用5 /3小波可編程圖塊/圖像尺寸在3分量4: 2: 2隔行掃描中的寬度可達(dá)2048像素, 單壓縮模式可高達(dá)4096像素, 最大圖塊/圖像高度4096像素。
支持ITU - R B. T656、SMPTE 125M PAL /NTSC、SMPTE 274M、SMPTE 293M ( 525p )、ITU - RBT. 1358( 625p)等多種視頻接口協(xié)議, 以及不可逆模式最大輸入速度為65M sps、可逆模式最大輸入速度為40Msps的任何視頻格式。
兩個(gè)或多個(gè)ADV212 能組合滿幀SMPTE274M HDTV( 1080i)或SMPTE 296M ( 720p)。
能暫時(shí)隔行粘貼SD視頻源幀, 以改善質(zhì)量。
靈活的異步SRAM 類型主接口能無縫連接到16 /32位微控制器和ASIC。
2. 4 ADV 212的軟件配置
ADV212的工作模式是在初始化固件中通過寫寄存器的狀態(tài)字來設(shè)定, 固件程序的后綴名為* . sea, 通過USB 接口下載到ADV212的間接存儲(chǔ)器中, 其地址段為0x00050000~ 0x0005EFF, 數(shù)據(jù)寬度32b its。采用C語言的ADV212程序編碼流程如圖2所示。
3 基于ADV212芯片的高清視頻壓縮系統(tǒng)設(shè)計(jì)
本系統(tǒng)以ADV212為核心, 配以通用處理器, 可以實(shí)現(xiàn)分辨率達(dá)到1080 i的高清視頻信號(hào)壓縮。
3. 1 多片編碼模式
由于ADV212在不可逆和可逆模式下數(shù)據(jù)最大輸入速率分別為65Mbps和40Mbps, 而有效的視頻轉(zhuǎn)化輸入數(shù)據(jù)速率約為124Mbps, 因此, 至少需要兩片ADV 212才可以實(shí)現(xiàn)全分辨率1080 i視頻信號(hào)的編解碼。在編碼過程中, Y數(shù)據(jù)和CbCr數(shù)據(jù)通過不同的總線輸入到ADV212, 其中AD212_1處理1080i視頻信號(hào)的亮度數(shù)據(jù), 而ADV202 _2 則用于處理1080 i視頻信號(hào)的色度數(shù)據(jù)。為了對(duì)此應(yīng)用模式下對(duì)應(yīng)的輸出數(shù)據(jù)進(jìn)行同步, 其輸入數(shù)據(jù)必須是EAV /SAV 編碼格式。如果要獲取更高的性能, 例如1080 i視頻的無損壓縮, 可選用3 片或更多的ADV 212來處理信號(hào)。圖3 為兩片ADV212編碼硬件連接圖。
ADV 212的多片模式在編碼時(shí), 芯片通常作為從設(shè)備, 而在解碼時(shí)可分為主/從或從/從模式。在主從模式下, 主片的HVF 輸出和從片的HVF輸入連接在一起, 并且主片從片的SCOMM 也接在控制器的相同IO 引腳。在從從模式下, ADC212 的HVF由同一個(gè)外部同步信號(hào)生成并且SCOMM接到控制器的相同IO 引腳。在多片模式中, 所有ADV 212 的SW IRQ1 都不可被屏蔽, SW IRQ 1 在E IRQ IE (外部中斷使能)寄存器中。
3. 2 系統(tǒng)設(shè)計(jì)
基于ADV212芯片的多片連接模式和高效壓縮性能, 并結(jié)合FPGA + DSP的可編程性, 我們?cè)O(shè)計(jì)了一種如圖4所示的視頻壓縮系統(tǒng)。由圖可知, 該系統(tǒng)主要由A /D 轉(zhuǎn)換器、FPGA 模塊、DSP 模塊、ADV212編碼/解碼器四部分組成, 各部分的功能及技術(shù)途徑如下:
A /D轉(zhuǎn)換由ADV7402來完成, 它能自動(dòng)檢測(cè)和轉(zhuǎn)換標(biāo)準(zhǔn)模擬基帶電視信號(hào)成符合CC IR656 的4:2: 2 分量數(shù)字視頻數(shù)據(jù)。解壓時(shí)的D /A 轉(zhuǎn)換由ADV7321來完成。
圖4 系統(tǒng)結(jié)構(gòu)框圖。
FPGA 模塊作為整個(gè)系統(tǒng)的中樞, 對(duì)系統(tǒng)中各個(gè)芯片的信號(hào)起橋接作用。首先根據(jù)需要完成圖像數(shù)據(jù)的初步處理(如去噪) , 然后將數(shù)據(jù)分為大小相同的兩個(gè)子塊, 使其能分別在兩個(gè)ADV 212中處理。
同時(shí), 要向ADV212提供復(fù)位、片選、行場(chǎng)同步、讀寫以及時(shí)鐘等信號(hào)控制多片ADV212的工作時(shí)序和工作模式, 并為DSP提供復(fù)位信號(hào)。在工作過程中,F(xiàn)PGA 要不斷向外部發(fā)送工作狀態(tài)的反饋信息。在接到外部發(fā)來的!傳輸?指令后, 碼流將從存儲(chǔ)器中被取出, FPGA 將其轉(zhuǎn)換成比特流格式后發(fā)往信道。
DSP模塊是系統(tǒng)的主控者, 由它完成對(duì)ADV 212和ADV7402的初始化。ADV212 編碼后產(chǎn)生的JPEG2000格式碼流首先送入DSP進(jìn)行加密,然后存入SDRAM 中等待接收! 傳輸?指令, 在接到!傳輸?指令后DSP將存儲(chǔ)在SDRAM中待發(fā)送的碼流送入并/串轉(zhuǎn)換DPRAM, 最后在FPGA 中轉(zhuǎn)換成串行比特流發(fā)送出去。
系統(tǒng)開始工作后, 由外部的模擬視頻信號(hào)傳送給ADV 7402。ADV7402經(jīng)過采樣, 量化后輸出符合要求的數(shù)字視頻數(shù)據(jù)。視頻數(shù)據(jù)流通過FPGA 的橋接送給ADV 212進(jìn)行壓縮編碼。為了提高壓縮率,可以在視頻數(shù)據(jù)流流過FPGA 時(shí), 對(duì)數(shù)據(jù)進(jìn)行丟場(chǎng)處理, 以人為降低需要進(jìn)行壓縮編碼的源數(shù)據(jù)速率。
壓縮好的數(shù)據(jù)再由ADV212傳送給FPGA 里面的接口控制器, 由控制器按照規(guī)定接口協(xié)議輸出壓縮數(shù)據(jù)流。
4 結(jié)束語
結(jié)合FPGA 和DSP 的高度靈活性, 利用ADV 212的多片模式和高效的壓縮性, 設(shè)計(jì)出一個(gè)壓縮/解壓縮系統(tǒng), 較好的解決了高清視頻信號(hào)高壓縮、高保質(zhì)難的問題, 為高清數(shù)字電視業(yè)務(wù)的啟動(dòng)和普及打下了良好的基礎(chǔ)。