国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Tilera平臺的AVS視頻編碼器的研究與實現(xiàn)

2016-12-31 19:41:14許昌滿1陳兆龍21上海應用技術學院巢湖學院
數(shù)碼世界 2016年6期
關鍵詞:共享內存編碼器內存

許昌滿1陳兆龍21.上海應用技術學院 2.巢湖學院

?

基于Tilera平臺的AVS視頻編碼器的研究與實現(xiàn)

許昌滿1陳兆龍2
1.上海應用技術學院2.巢湖學院

摘要:Tile處理器是Tilera公司研發(fā)的一種新型的多核處理器,文章在介紹Tilera平臺的多核處理器的基礎上,根據(jù)該處理器的架構特點,在該平臺上實現(xiàn)了AVS和H.264的標清/高清實時視頻編碼器。

關鍵字:AVS Tilera 多核處理器 視頻編碼 H.264

1 Tilera平臺簡介

Tile處理器是Tilera公司研發(fā)的一種新型的多核處理器,它能夠在一顆高度集成的芯片上提供前所未有的高性能,靈活性以及低能耗,它主要由一個二維的計算引擎陣列組成,每個計算引擎可以看作一個tile核,并且每個tile都支持c語言編程,同時每 個tile都被一個二維的網絡結構相互連接起來。這種結構可擴展性很強,可以做成8×8,可以做成 10×10,他們之間通過二維網狀網絡達到連接的效果,它克服了傳統(tǒng)的以一維總線架構做的多核處理 器的信號通信方面的瓶頸,因為這種多核處理器當核的個數(shù)超過了8個核或者16個核的時候,一維總線就會非常繁忙,這樣會使得數(shù)據(jù)傳輸與交換緩慢,大大的影響了處理器的性能。在處理器芯片上,Tile 處理器結合外部緩存和I/O接口組成了完備的可編程的多核處理器,外部緩存和I/O接口也是通過iMesh 技術與tile進行相連通信的。TILEPro64就是Tilera的 一個8*8的64核的處理器。每一個tile都是一個強大的,性能完備的計算系統(tǒng),都可以獨立的運行一個操作系統(tǒng),例如SMP Linux操作系統(tǒng)等。每一個tile有一個32位的整數(shù)處理器引擎,這個處理器引擎中包含一個3通道的超長指令字架構,該架構有自己的指令計數(shù)器(PC), 高速緩沖存儲器(cache)和DMA子系統(tǒng)。每一個獨立的tile在一個時鐘周期都最多能執(zhí)行三條指令。Tilera處理器中有配合該硬件設備的特定指令集來處理視頻編碼或者網絡數(shù)據(jù)處理的一些復雜的計算,這些指令集使得運算的效率更高,這些指令集包括:差的絕對值的和的計算(SAD),搜索與計數(shù),加擾,SIMD指令,不對齊的數(shù)據(jù)的訪問等。

Tilera處理器的每個tile都有自己獨立的cache,并且有和其它的tile相連的共享內存,每個tile都包括一個一級的數(shù)據(jù)cache(L1D),一個一級的指令cache(L1I)和一個共享的二級cache(L2)。Tile通過訪問L1I來讀寫指令,在執(zhí)行指令的過程中都會檢查 L1D和L2來讀取或者更新數(shù)據(jù),如果指令需要的數(shù)據(jù)在這個tile中沒有找到,則tilera的內存系統(tǒng)就會在旁邊相連的tile中尋找數(shù)據(jù)。I/O接口:Tile處理器采用了軟I/O結構,這種結構使得原本通常在硬件中實現(xiàn)的一些應用,通過在一些tile上運行一些代碼來實現(xiàn)。

2 基于Tilera平臺的視頻編碼器的架構

基于Tilera平臺的視頻編碼器的架 構主要由5部分組成,即采集模塊,視頻編碼模塊,音頻編碼模塊,碼流復用模塊和碼流輸出模塊。

2.1模塊

(1)采集模塊:該模塊的功能是接收標清SDI 的信號或者高清SDI信號,采集視頻和音頻的數(shù)據(jù),將SDI信號中的視頻數(shù)據(jù)轉換成一幀一幀的YUV數(shù)據(jù)存在Tile的共享內存中,同時將SDI附屬數(shù)據(jù)中的音頻數(shù)據(jù)解析成音頻的PCM數(shù)據(jù)存在Tile的共享內存中。

(2)視頻編碼模塊:該模塊的功能是實現(xiàn)高清/標清的AVS[4](PAL/NTSC)或者H.264[5](PAL/NTSC)的實時編碼,它通過共享內存,讀取采集模塊采集到的視頻的YUV數(shù)據(jù),將YUV數(shù)據(jù)編碼壓縮成為符合AVS1.0標準的ES流或者編碼壓縮成為符合H.264標準的ES流,同時將這些視頻ES流存入到Tile的共享內存中。

(3)音頻編碼模塊:該模塊的功能是實現(xiàn)音 頻的MPEG-1 layer2的實時編碼,它通過共享內存, 讀取采集模塊采集到的音頻的PCM數(shù)據(jù),將PCM數(shù) 據(jù)編碼壓縮成為MPEG-1 layer2的ES流,并且將這些音頻ES流存入到Tile的共享內存中。

(4)碼流復用模塊:該模塊的功能是從共享內存中讀取輸入的AVS視頻ES流或者H.264視頻ES 流和MPEG-1音頻ES流,將這些數(shù)據(jù)實時的復用成符合13818-1標準的TS流,并且將這些TS流數(shù)據(jù)存在Tile的共享內存中。

(5)碼流輸出模塊:該模塊的功能是將碼流 復用模塊中輸出的TS流,通過IP接口實時輸出傳輸 流或者通過ASI接口實時輸出TS流。

(6)管理控制模塊:該模塊主要包括兩個部分,即網絡控制模塊和LED液晶面板控制模塊,網絡控制模塊的功能是接收用戶通過網絡發(fā)過來的啟動編碼器或者停止編碼器,以及設置編碼器的一些參數(shù)的命令,然后根據(jù)命令啟動或者關閉其它軟件模塊,LED液晶面板控制模塊是用戶通過設置前面板對編碼器的編碼參數(shù)以及編碼器的開啟與關閉進行設置和管理。

2.2模塊間的通訊和CPU的分配

(1) 每個模塊之間的通訊與數(shù)據(jù)傳輸 從2.1節(jié)中編碼器的每個模塊的介紹中,我們可以看出,模塊間的數(shù)據(jù)傳輸是通過Tile提供的共 享內存來實現(xiàn)的。每個模塊之間的通訊是通過Linux的信號傳輸來完成的。

(2)每個模塊的CPU的分配與綁定

Tile平臺提供了一些讓Linux下的任務進程與該平臺的某些CPU綁定的函數(shù),這樣被綁定的線程函數(shù),就只能在其個CPU或者某個CPU集合上運行。

3 基于Tilera平臺的AVS視頻編碼器的實現(xiàn)

3.1基于Tilera平臺的AVS視頻編碼器中多線程的管理

任務實時調度模塊完成任務隊列的創(chuàng)建、銷毀,以及向隊列添加、刪除任務,還有線程的創(chuàng)建,任務的執(zhí)行,線程與tile處理器的綁定等功能;這里的任務的優(yōu)先級我們分為兩級,一級是幀級的編碼,一級是Slice的編碼,幀級的編碼的優(yōu)先級高于Slice的編碼,當有空閑得CPU,該CPU就會去任務欄中尋找可以執(zhí)行的任務,先尋找優(yōu)先級高的任務,再尋找優(yōu)先級較低的任務。為了在保證圖像編碼質量的情況下,提高編碼的速度,我們對I幀和 B、P幀采取了不同的編碼架構,I幀是單slice的 編碼,B幀和P幀采用了多slice的編碼方式。

3.2基于Tilera平臺的AVS視頻編碼器中的內存 的管理與平衡

(1)共享內存的申請與使用

(2)Tilera平臺的4個內存控制器的平衡

Tile處理器有四個獨立的DDR2內存控制器, 64個核分成四個象限,每個象限都有一個內存控制器,同時每一個控制器都可以分別控制外部的DRAM部件,Tile處理器有內存striping的功能,這個功能可以自動的平衡四個內存控制器中的內存訪問頻率。

在H.264/AVS的視頻編碼的CPU的分配過程中, 我們根據(jù)Tile的內存控制器的結構,將4路標清編碼,每一路的進程分配在了同一個象限中。

3.3基于Tilera平臺的AVS視頻編碼器的優(yōu)化

AVS視頻編碼性能優(yōu)化主要從以下幾個方面進行:

(1)編譯選項參數(shù)優(yōu)化為了獲得更好的性能,提高指令在緩存中的命中率,編譯選項設置為-o3進行最優(yōu)級別的優(yōu)化。

(2)緩存的存取模式 AVS視頻編碼為多線程、多任務的應用,系統(tǒng)默認緩存模式是Hash-for-home(Distributed L3 Cathing), Hash-for-home 允許定義一個CPUs的集合作為分配的緩存L3,當L2Cache不能命中時,也不需要去訪 問DRAM,而是轉到了L3.

(3)任務的同步tmc庫提供了經過優(yōu)化的一些用于線程同步的API,系統(tǒng)的pthread_mutex_lock()相比,性能有明顯提高。在進行任務同步的時候,我們采用了 tmc_spin_mutex_unlock()函數(shù)替代pthread_ mutex_lock(),這樣提高了編碼的速率。

(4)指令集的應用 指令集方面的優(yōu)化主要是兩個方面的優(yōu)化,一方面是SIMD指令的使用,Tilera處理器的SIMD(單指 令多數(shù)據(jù)流)指令可將同一寄存器中的高十六位與低十六位作為兩個半字整形進行處理,甚至可將它細分成4個8位整形。這樣就可以在一條指令中執(zhí)行4個8位加法,或移位等操作。我們對AVS/H.264的視頻編碼的量化與反量化模塊,DCT與IDCT模塊,CAVLC模塊,運動估計模塊和Deinterlace模塊的優(yōu)化中都使用SIMD語句,應用SIMD語句讀寫或計算一組數(shù)據(jù)可以顯著提高執(zhí)行效率。

另一方面是一些預處理指令的使用,例如預取指令prefetch,在Tilera平臺中,L1I高速緩沖支持硬件預取指令引擎,這可以在cache中預測取出最有可能執(zhí)行的下一條指令,對于要處理的數(shù)據(jù)也是如此,我們通過prefetch指令給硬件一些暗示,讓處理器能夠提前知道這些數(shù)據(jù)下面要處理了。

4 總結

AVS是具有我國自主知識產權的視頻壓縮標準,在保證與國際先進標準相當?shù)木幋a性能的同時,顯著降低了算法復雜度,加之專利費用較低,在各種數(shù)字多媒體應用領域或者廣播電視領域有廣泛的應用前景,H.264是目前替代MPEG-2標準的已被廣泛使用的標準,本文在Tilera的多核的平臺上,實現(xiàn)了一路AVS/H.264高清或者多路AVS/H.264標清編碼器的研發(fā),編碼器的輸入為SDI信號,輸出為 ASI信號或者傳輸流通過網絡UDP輸出。實驗結果證明,該平臺具有計算能力強,性能穩(wěn)定等特點,在該平臺上實現(xiàn)了AVS和H.264的標清/高清實時視頻編碼器。

參考文獻

[1]Tile Processor User Architecture Manual March 2011 TILERA CORPORATION;

[2]Application Libraries Reference Manual April 2011 TILERA CORPORATION;

[3]Programming The Tile Processor March 2011 TILERA CORPORATION;

[4]GB/T 20090《信息技術先進音視頻編碼第二部分:視頻》;

猜你喜歡
共享內存編碼器內存
通過QT實現(xiàn)進程間的通信
“春夏秋冬”的內存
當代陜西(2019年13期)2019-08-20 03:54:22
基于FPGA的同步機軸角編碼器
基于PCI總線的多處理器協(xié)同機制研究
科技風(2017年20期)2017-07-10 18:56:06
基于PRBS檢測的8B/IOB編碼器設計
JESD204B接口協(xié)議中的8B10B編碼器設計
電子器件(2015年5期)2015-12-29 08:42:24
QNX下PEX8311多路實時數(shù)據(jù)采集的驅動設計
電子世界(2014年21期)2014-04-29 06:41:36
多總線式光電編碼器的設計與應用
基于內存的地理信息訪問技術
一種高效RTAI 共享內存管理層的研究與實現(xiàn)*
鹿邑县| 阿拉善盟| 崇仁县| 佛山市| 阳谷县| 三河市| 和硕县| 东兴市| 堆龙德庆县| 乃东县| 闻喜县| 县级市| 海伦市| 泰顺县| 沂水县| 赫章县| 于田县| 翁牛特旗| 德阳市| 舞钢市| 太和县| 舟山市| 阿巴嘎旗| 武乡县| 蓝田县| 南澳县| 余姚市| 马边| 于都县| 婺源县| 蒲城县| 利辛县| 留坝县| 磐石市| 永昌县| 东至县| 永丰县| 太湖县| 双辽市| 柳河县| 庄浪县|