<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于Altera FPGA高清晰視頻去隔行功能的實現

          基于Altera FPGA高清晰視頻去隔行功能的實現

          作者: 時間:2013-10-09 來源:網絡 收藏

          引言

            開發(fā)去隔行算法是為了解決一個老問題:模擬電視的隔行必須進行轉換才能在當今數字電視上顯示。

            隔行是每秒50/60 連續(xù)場,每一場只傳送一半的掃描行,這些行顯示在的每一幀中。對于以前采用陰極射線管(CRT) 的顯示技術,隔行視頻是一種基本壓縮方法。

            今天,去隔行是重要的視頻處理功能,很多系統都需要它。大部分視頻內容采用了隔行格式,而LCD 或者等離子體等所有新出現的顯示器幾乎都需要逐行視頻輸入。但是,去本質上非常復雜,沒有一種算法能夠產生完美的逐行圖像。

            背景

            在隔行視頻中,一幀視頻被分成兩場,一場含有偶數行掃描線,一場含有奇數行掃描線。然而,為了能夠在LCD 或者等離子體顯示器上顯示任意的隔行視頻,必須進行去隔行處理。所有新出現的顯示器都是逐行的,每一幀被壓縮為一組像素( 例如, 1920 x 1080)。圖1 顯示了一幀中的象素是怎樣組成兩個場的。每一場都記錄了在時間上分開的象素值。

            基于Altera FPGA高清晰視頻去隔行功能的實現

            如果假設每秒30 幀(fps),即每秒60 場,那么,第0 場是在時間“t”,第1 場是在時間“t + 1/60”。由于在略有不同的時間間隔上對場進行記錄,因此,無法將兩個場連起來為運動視頻產生逐行幀。去隔行技術

            之所以復雜,是因為需要估算并補償可能出現的每秒1/60 的運動圖像。

            基本去隔行技術

            基本上,去隔行是處理隔行幀流,將其轉換為逐行幀流的過程。兩種基本的去隔行方法通常被稱為“單場插值”法和“場合并”法。

            采用“單場插值”去隔行法,每一場自己可以變成視頻幀,因此, 29.97-fps 隔行NTSC 剪輯視頻流變成了59.94-fps 的逐行幀。由于每一場只有整個幀一半的掃描線,因此,必須進行插值處理來構成丟失的掃描線。

            也可以說,單場插值去隔行技術是在空間上將掃描線加倍,每一場的掃描線被加倍。所產生的新行既可以是簡單的復制前一行( 掃描線復制),也可以是前后行的平均值( 掃描線插值),如圖2 所示。當圖像亮度變化比較平穩(wěn)時,單場插值去隔行技術的結果比較好,但是由于該技術降低了垂直分辨率,因此,圖像變得更柔和。

            單場插值去隔行技術是在空間上將掃描線加倍,每一場的掃描線被加倍。

            去隔行場合并技術涉及到將兩個場進行合并,這兩個在時間上分開的場形成一個完整的幀,如圖3 所示。如果在兩場分開的1/60 秒內,圖像沒有運動部分( 對于NTSC 視頻),那么,場合并的結果比較好。有時候,當一對隔行場來自最初的逐行幀時,場合并算法結果會非常好。但是,如果有運動部分時,會出現“鋸齒”等假像。

            去隔行場合并技術涉及到將兩個場進行合并,

          fpga相關文章:fpga是什么



          上一頁 1 2 下一頁

          關鍵詞: Altera FPGA 高清晰 視頻 隔行功能

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();