<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è) > 嵌入式系統 > 設計應用 > 利用可配置處理器來(lái)創(chuàng )建多標準多分辨率視頻引擎

利用可配置處理器來(lái)創(chuàng )建多標準多分辨率視頻引擎

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

 隨著(zhù)消費類(lèi)電子產(chǎn)品,尤其是手機、PDA和便攜式媒體播放器(PMP)的急劇發(fā)展,其對于終端硅供應商的要求也大大提高。對這些供應商來(lái)說(shuō),設計僅僅能夠適用于一到兩個(gè)多媒體編解碼器或無(wú)線(xiàn)的IC已經(jīng)遠遠不夠了。消費者希望他們的設備能夠播放各種采用不同的編碼和無(wú)線(xiàn)下載的媒體。因此,必須采取一個(gè)新的更具靈活性的途徑來(lái)更好地適配新的媒體標準。在本文中,我們主要談一談解碼器和編碼器所面對的挑戰和機遇。

本文引用地址:http://dyxdggzs.com/article/151141.htm

  基于RTL的傳統設計方法

  上一代ASIC設計的目的是為了解碼和編碼MPEG-2,因為這是DVD所使用的標準。其中也有些支持MPEG-1,可以播放VCD。大多數情況下,這種單個(gè)應用的邏輯實(shí)現策略就是:RTL(寄存器轉換層,寄存器轉換邏輯)來(lái)設計定制化MPEG-2解碼器和編碼器。下圖1是一個(gè)典型的MPEG-2視頻ASIC結構,展示了由視頻子系統、主控制器和片上存儲器組成的RTL功能塊。

  圖1:典型的MPEG-2視頻ASIC結構

  隨著(zhù)市場(chǎng)形勢的改變,現在的視頻ASIC必須能夠支持多種視頻標準,并具有多個(gè)。由于下列原因,傳統的RTL方法已經(jīng)不再有效:

  ·隨著(zhù)標準數量的增加,RTL功能塊的數量和復雜性也增加;

  ·無(wú)論是執行一個(gè)新的視頻標準,還是升級現有的已執行的標準,或者修改bug,都需要進(jìn)行硅芯片重制;

  ·在第一代硅執行之后的這4-5年內,視頻編解碼器,尤其是編碼器在性能上(比特率、性能)有很大的改進(jìn)。要執行這些改進(jìn)的成果,也必須在所有的RTL方法中進(jìn)行硅芯片重制。

  在視頻中使用,而不是固定的RTL

  那么,有沒(méi)有其它辦法呢?使用一個(gè)可編程是最佳方案,因為它可以解決上面提到的所有問(wèn)題:(1)和編解碼器之間很容易建立連接端口;(不論是采用新的視頻標準,還是升級現有的編解碼器或者修改bug,都可以很容易地在軟件中進(jìn)行);(3)通過(guò)軟件升級,可以很容易地應用視頻編解碼器執行中的改進(jìn)。

  但是,由于其性能瓶頸,傳統的處理器只能用于一般的編碼,而不能用于視頻引擎。嵌入式DSP也不是專(zhuān)為視頻而設計的,但擁有通用DSP應用所需的硬件功能單元、指令和接口。因此,要在傳統的RISC和DSP處理器上執行視頻編解碼,就意味著(zhù)這些處理器必須以非常高的速度運行(MHz),而且還需要大量?jì)却娌⑾拇罅抗β?,但是在便攜式設備中,這顯然是行不通的。

  只要我們對某個(gè)視頻內核中所需的計算次數作一個(gè)簡(jiǎn)單分析,就很容易得出這一點(diǎn)。絕對誤差和是大多數視頻解碼運算的動(dòng)作估計中所進(jìn)行的一個(gè)重要計算步驟。SAD運算的目的在于發(fā)現兩個(gè)連續視頻幀之間的宏模塊的運動(dòng)。它是通過(guò)計算這兩個(gè)宏模塊中每套相應的象素值之間的絕對誤差之和來(lái)實(shí)現這一目的的。

  下面的C代碼展示了SAD運算的一次簡(jiǎn)單執行:

  圖2展示了SAD運算中的基本計算步驟。如圖所示,其中主要進(jìn)行的計算有減、算絕對值和結果累計。

  圖2:絕對誤差和(SAD)內核中進(jìn)行的主要計算

  計算一個(gè)RISC上的兩個(gè)16x16宏模塊的SAD需要進(jìn)行256次減法、256次求絕對值和256次相加DD總共進(jìn)行了768次計算,還不包括傳輸數據所需的負載與內存。由于每一幀當中所有的宏模塊都必須進(jìn)行這一運算,很顯然這在計算上成本是很昂貴的,而且會(huì )隨著(zhù)視頻幀的增加而越來(lái)越難。

  實(shí)際上,在一個(gè)帶有一些如相乘和乘法累加等指令的中等范圍通用型RISC處理器上,如果要以CIF的進(jìn)行H。26?Baseline解碼,需要250MHz的速率,而如果進(jìn)行H。26?Baseline編碼,所需速率更是超過(guò)1GHz。這意味著(zhù)光是處理器內核就要消耗將近500mW的功率,更不用提內存和視頻片上系統中其它部分消耗的功率了。很顯然這種處理器不能作為嵌入式多媒體處理器用于便攜式設備中。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(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>