<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于FPGA的視頻格式轉換系統設計

基于FPGA的視頻格式轉換系統設計

作者: 時(shí)間:2011-03-14 來(lái)源:網(wǎng)絡(luò ) 收藏

  2. 3. 3 幀率和隔行逐行模塊

  隔行轉逐行的方法可以分為空域和時(shí)域兩個(gè)方面??沼蛩惴ê?jiǎn)單,易于硬件實(shí)現,常見(jiàn)有直接重復行和在垂直方向上進(jìn)行插值得到缺失的行。時(shí)域方法涉及到相鄰場(chǎng)之間的運算,常見(jiàn)方法有場(chǎng)混合、運動(dòng)自適應去隔行算法以及復雜度最高的運動(dòng)補償去隔行算法。本文折衷考慮使用場(chǎng)混合方法,即將場(chǎng)數據相鄰場(chǎng)兩兩合成為逐行的幀數據,如圖8所示。

場(chǎng)混合法實(shí)現隔行逐行變換

圖8 場(chǎng)混合法實(shí)現隔行逐行變換

  PAL和SECAM 制式的場(chǎng)頻為50 Hz,而NTSC 為60H z,當需要進(jìn)行不同場(chǎng)頻信號的疊加就需要進(jìn)行場(chǎng)頻。大多設備使用的幀頻為60 H z,因此本文只涉及50~ 60 H z的幀率轉換。常用方法有場(chǎng)重復、場(chǎng)插值、運動(dòng)補償法,其中場(chǎng)插值算法如圖9所示。

9.jpg
圖9 50 Hz轉60 Hz的場(chǎng)插值方法

  對于PAL制式從上面兩圖可知,只要能同時(shí)讀取3行場(chǎng)數據即可以實(shí)現隔行逐行變換和幀率轉換一次完成。如輸出的第1幀由輸入的第1,2 場(chǎng)數據決定,而輸出的第2 幀由輸入的第1,2,3場(chǎng)數據決定,而輸出的第3幀由輸入的第2,3,4 場(chǎng)數據決定,依次類(lèi)推。

  使用位寬為48的DDR2存儲器作為場(chǎng)存儲器,而在 內部DDR2控制器端數據寬度為96。如產(chǎn)生第2 幀輸出的處理過(guò)程為,在第1場(chǎng)存入時(shí),把高64bit屏蔽掉不寫(xiě)入,而低32 b it寫(xiě)入場(chǎng)數據(實(shí)際只利用30 b it)。在第2場(chǎng)存入時(shí),把高32 位和低32 b it屏蔽掉不寫(xiě)入,而中間32 bit寫(xiě)入場(chǎng)數據。在第3 場(chǎng)存入時(shí),把低64 b it屏蔽掉不寫(xiě)入,而高32 bit寫(xiě)入場(chǎng)數據。這樣在數據讀取的時(shí)候可以順序同時(shí)讀出3場(chǎng)數據,然后進(jìn)行上述的組合插值運算,即可得到輸出。場(chǎng)存儲器數據內如圖10所示。

10.jpg
  

圖10 可以實(shí)現同時(shí)去隔行和幀率轉換的場(chǎng)存儲器

  注意新的輸入場(chǎng)數據不能覆蓋掉相鄰的數據,因此在數據存入時(shí)屏蔽位是在不斷跳動(dòng)的,并以5 場(chǎng)為一個(gè)周期。雖然這樣降低了寫(xiě)入的效率,但由于所有數據讀寫(xiě)都是順序操作,因此從整體上來(lái)說(shuō)仍然提高了DDR2 的存取效率,并且使操作變得簡(jiǎn)單。對于NTSC 制式,由于幀率轉換部分可不用考慮,可以將只使用低64位部分進(jìn)行兩場(chǎng)存儲。

  2. 3. 4 縮放模塊

  縮放包括放大( up scaling ) 和縮小( downsca ling )兩個(gè)方面,而進(jìn)行縮放的基本方法為空間插值。下式為對圖像進(jìn)行插值的一般數學(xué)表達式,其中g(shù) ( i,j)為縮放圖像中待插值點(diǎn)的像素值,f ( k,l)為原始圖像中坐標( k,l)處的像素值,h( i- k,j - l)為插值基函數。



  插值基函數的選擇可以有很多種,通常有二維的矩形函數、線(xiàn)性函數、三次函數及S inc 函數等,它們分別對應于最近鄰插值、線(xiàn)性插值、三次插值以及理想插值(實(shí)際中利用S inc函數截斷后插值) ,其插值效果為從差到好排列,但實(shí)現難度也依次提高。在實(shí)際處理中是利用濾波器來(lái)實(shí)現插值基函數,而且由于這些插值的對稱(chēng)性,可以將其分解為橫向和縱向插值兩部分分開(kāi)進(jìn)行,如二維線(xiàn)性插值函數對應雙線(xiàn)性插值( Bilinear Interpo lation),三次函數對應雙三次插值( B icub ic Interpo lation) ,對于Sinc 插值函數實(shí)際中為多相位插值( Po lyphase Interpo lation)。本文使用多相位插值法實(shí)現圖像縮放,實(shí)際上在4 ? 4領(lǐng)域大小內進(jìn)行多相位插值和三次插值幾乎是一樣的,只是對應插值函數值略微不同。多相位插值法是通過(guò)對輸出點(diǎn)對應原圖中的領(lǐng)域進(jìn)行Lanczos2 函數移相插值來(lái)產(chǎn)生輸出點(diǎn)的。如圖11所示。

11.jpg


圖11 Lanczos2 函數



關(guān)鍵詞: 系統 設計 轉換 格式 FPGA 視頻 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>