日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]利用多內(nèi)核處理器的并行編程功能實(shí)現(xiàn)視頻代碼轉(zhuǎn)換

視頻代碼轉(zhuǎn)換是指從一種壓縮視頻格式轉(zhuǎn)換為另一種壓縮視頻格式,通常先要把某種格式解碼為原始視頻幀,然后用新的格式重新編碼。在許多應(yīng)用中高效的代碼轉(zhuǎn)換至關(guān)重要。例如,為了支持視頻點(diǎn)播數(shù)據(jù)流,視頻數(shù)據(jù)要以某種主流格式存儲(chǔ)起來(lái)以節(jié)省空間,但必須支持眾多不同的觀看設(shè)備和解碼器。為了做到這一點(diǎn),需要在數(shù)據(jù)發(fā)送前以實(shí)時(shí)或者快于實(shí)時(shí)的速度進(jìn)行代碼轉(zhuǎn)換。在視頻節(jié)目制作階段進(jìn)行視頻編輯時(shí),也必須對(duì)視頻數(shù)據(jù)進(jìn)行解碼、修改和重新編碼。在普通家庭,為了能在家用視頻服務(wù)器上使用視頻,視頻數(shù)據(jù)可能也需要轉(zhuǎn)換才能適應(yīng)服務(wù)器支持的格式。

支持高清視頻點(diǎn)播要求高性能的代碼轉(zhuǎn)換。RapidMind公司開(kāi)發(fā)的軟件開(kāi)發(fā)平臺(tái)利用統(tǒng)一的并行編程模型充分發(fā)揮各種多內(nèi)核處理器的性能。通過(guò)在RapidMind平臺(tái)上建立代碼轉(zhuǎn)換器,應(yīng)用程序如今能運(yùn)行在多種處理器上,包括CPU、GPU和Cell BE,并且還能通過(guò)擴(kuò)展適應(yīng)未來(lái)多內(nèi)核(和眾內(nèi)核)處理器環(huán)境。

代碼轉(zhuǎn)換器自然需要支持各種視頻壓縮格式。然而,許多格式在實(shí)現(xiàn)它們所需的運(yùn)算類型方面有很多相似性。另外,編碼器通常要比解碼器貴得多。一般一種視頻標(biāo)準(zhǔn)僅規(guī)定了壓縮數(shù)據(jù)流中存儲(chǔ)什么類型的數(shù)據(jù)以及解碼器該怎樣譯碼,并不規(guī)定編碼器如何從原始輸入數(shù)據(jù)流中提取需要的信息。

通常一種壓縮視頻格式不僅要求實(shí)現(xiàn)對(duì)單幀的壓縮,而且要求使用視頻序列中的相鄰幀實(shí)現(xiàn)對(duì)中間幀的預(yù)測(cè)。為了能從傳輸產(chǎn)生的任何錯(cuò)誤中恢復(fù)數(shù)據(jù),并允許用戶從視頻序列中間位置開(kāi)始解壓縮,有些幀是在不參考其它幀的情況下進(jìn)行壓縮的。

單幀壓縮

單幀壓縮有點(diǎn)類似于普通的圖像壓縮,通常包含了到不同基礎(chǔ)幀的轉(zhuǎn)換,如使用不同頻率和方向的余弦變換(離散余弦變換或DCT),或小波變換。這種轉(zhuǎn)換通常作用于塊,并且從數(shù)學(xué)上可精簡(jiǎn)到塊中像素上的一組點(diǎn)積(雖然一些基本函數(shù)允許理論上更快的因數(shù)分解)。轉(zhuǎn)換后的系數(shù)再經(jīng)過(guò)量化刪除那些對(duì)圖像可視無(wú)用的信息,形成一幅近似的圖像,最后使用編碼器編碼去除數(shù)據(jù)中任何殘留的冗余性。

上述轉(zhuǎn)換的目的不僅是通過(guò)將圖像中的能量集中為更小的一組數(shù)字而使代碼器變得更有效率,而且允許量化器顯著地去除感知上不那么重要的信息。例如,DCT就會(huì)對(duì)圖像的高頻和低頻成分進(jìn)行分析。由于人眼對(duì)高頻時(shí)的量化誤差不甚敏感,因此這些頻率的量化可以粗放一些。另外,在上述壓縮步驟之前通常先要從亮度中分離出色度(顏色)和將色度欠采樣到較低分辨率,因?yàn)槿搜蹖?duì)亮度邊緣較敏感,但對(duì)色度邊緣不太敏感。

一些較復(fù)雜的壓縮格式還支持根據(jù)空間相鄰的塊對(duì)一些圖像塊作出預(yù)測(cè)。選擇哪個(gè)塊用于預(yù)測(cè)極具挑戰(zhàn)性,而且支持解碼器中的必要排序在并行系統(tǒng)中也相當(dāng)復(fù)雜。然而,如果塊的內(nèi)容能夠被準(zhǔn)確預(yù)測(cè),那么對(duì)該塊壓縮時(shí)只需編碼預(yù)測(cè)值和實(shí)際值之間的(少量)差異。

如此詳細(xì)地介紹單幀圖像壓縮的原因是,實(shí)際上作為編碼過(guò)程的一部分,無(wú)論是塊還是單幀壓縮/解壓縮都有必要。特別是中間幀(數(shù)據(jù)流中的大部分幀)估計(jì),它是通過(guò)融合和混合數(shù)據(jù)流前后發(fā)生的幀、然后從輸入數(shù)據(jù)中減去這個(gè)融合后的幀、最后壓縮差異圖像(一般使用類似于單幀編碼器的編碼器)實(shí)現(xiàn)的。對(duì)這種融合的估計(jì)被稱為運(yùn)動(dòng)估計(jì),是編碼過(guò)程中運(yùn)算量最大的步驟之一。

然而在解碼器中,原始的源數(shù)據(jù)幀是沒(méi)有的,只有解壓縮后的幀。因此,這種融合要求圖像能在解碼器之前還原。因此它們不僅必須在編碼器中壓縮,而且需要被解壓縮。這種對(duì)前面壓縮的數(shù)據(jù)進(jìn)行解壓縮的需求將導(dǎo)致數(shù)據(jù)的依賴性,并影響到在具有不同存儲(chǔ)器系統(tǒng)的處理器之間如何并行使用和分配編碼器。

視頻序列中的圖像組(GOP)中的一些幀(I,幀內(nèi)編碼幀)使用單幀壓縮算法進(jìn)行編碼,但基于運(yùn)動(dòng)估計(jì)的幀間預(yù)測(cè)被用來(lái)改進(jìn)幀內(nèi)幀間(雙向預(yù)測(cè)編碼幀B,前向預(yù)測(cè)編碼幀P)的壓縮。只有預(yù)測(cè)幀和實(shí)際幀之間的差異值需要被壓縮。由于B幀和P幀是根據(jù)I幀的解壓縮版本預(yù)測(cè)出來(lái)的,因此有必要作為編碼過(guò)程的一部分對(duì)I幀進(jìn)行壓縮和解壓縮。


圖1:RapidMind是一個(gè)開(kāi)發(fā)和運(yùn)行時(shí)間平臺(tái),它支持能充分利用多內(nèi)核處理器的單線程可管理應(yīng)用程序。開(kāi)發(fā)人員可以用標(biāo)準(zhǔn)的C++語(yǔ)言編寫(xiě)代碼,RapidMind平臺(tái)則可以將這些代碼在多個(gè)內(nèi)核間“并行利用”。 [!--empirenews.page--]

運(yùn)動(dòng)估計(jì)

運(yùn)動(dòng)估計(jì)是很有價(jià)值的。一般需要發(fā)現(xiàn)將像素從輸入圖像中的一個(gè)位置挎貝到融合后的圖像上的這種融合,以便融合后的圖像與該幀實(shí)際圖像間的差異盡可能小。首先,像素塊之間的相似性指標(biāo)需要被定義,通常是SSD(差值平方和)或SSA(絕對(duì)差值和)。然后使用這種相似性指標(biāo)測(cè)試各個(gè)候選源塊的位置,以確定良好的匹配。

有兩點(diǎn)需要注意。第一,如果有較強(qiáng)的運(yùn)算能力,那么可以測(cè)試較多的候選位置,從而可能找到更好的匹配,并提高壓縮率??梢杂眠\(yùn)算能力的增強(qiáng)來(lái)降低帶寬要求,反之亦然。其次,相似性指標(biāo)是非線性的。這意味著使用多分辨率等技巧來(lái)加快相似性匹配速度是不合適的。低分辨率時(shí)的最佳匹配不一定是高分辨率時(shí)的最佳匹配。

這里有兩個(gè)基本點(diǎn):數(shù)據(jù)位置和并行體系。首先,GPU是具有很高性能的處理器,但目前位于PCI Express卡上,這些卡有自己的存儲(chǔ)器。因此為了壓縮視頻流,數(shù)據(jù)需要傳送到視頻卡上的存儲(chǔ)器中,然后將壓縮結(jié)果傳回來(lái)。這一過(guò)程需要以流的形式完成,而這種流式處理與運(yùn)算隨時(shí)交疊,因此數(shù)據(jù)傳送不會(huì)成為瓶頸。RapidMind平臺(tái)正常情況下可自動(dòng)管理數(shù)據(jù),而且(能在內(nèi)部硬件API支持的地方)提供深層分析功能來(lái)管理這種重疊式流處理。GPU存儲(chǔ)器架構(gòu)的其它意義還在于互相依賴的一系列步驟應(yīng)盡可能保持在相同的存儲(chǔ)器空間中。

最大程度的加速

通常在考慮一個(gè)應(yīng)用是否能被加速時(shí),人們首先會(huì)分析應(yīng)用程序的各個(gè)單元,判斷每個(gè)單元上需花多長(zhǎng)時(shí)間,并利用阿姆達(dá)爾定律估計(jì)可能的加速程度。

舉例來(lái)說(shuō),考慮到某個(gè)應(yīng)用程序在單元A上要花10%的時(shí)間,在單元B上要花75%的時(shí)間,單元C上花5%的時(shí)間,單元D上花10%的時(shí)間。該應(yīng)用程序的流程是A運(yùn)行一次,然后B和C輪流多次反復(fù)運(yùn)行(取決于彼此關(guān)系),最后才是運(yùn)行D。

同時(shí)假設(shè)單元A估計(jì)能加速1.5倍,B能加速20倍,C能加速2倍,D不能做任何加速。

這樣理論上的最大時(shí)間縮短值是:

0.1/1.5+0.75/20+0.05/2+0.1/1=0.23

相當(dāng)于加速1/0.23(正好超過(guò)4)倍。值得注意的是,雖然單元B(75%的運(yùn)行時(shí)間)的加速系數(shù)達(dá)到了很大的20,但只有使所有加速步驟對(duì)總運(yùn)行時(shí)間的影響比較接近的情況下才能取得最好的效果。

事實(shí)上,如果只是以B為目標(biāo),并設(shè)法使之無(wú)限加速,但總的性能仍將受限于其余單元。

使用GPU

進(jìn)一步考慮使用GPU。大家可以看到B和C是反復(fù)進(jìn)行的。如果只是在GPU上加速B,而讓C留在主機(jī)上,那么需要不斷地從主機(jī)那兒來(lái)回傳送數(shù)據(jù),從而嚴(yán)重影響性能。因此,即使單元C的加速幅度很小,但根據(jù)阿姆達(dá)爾定律,它對(duì)總的加速效果影響也很小。事實(shí)上,我們可能也想把C移動(dòng)到GPU上以避免這些傳送。

這正是視頻編碼所面臨的境況。即使運(yùn)動(dòng)估計(jì)是視頻壓縮中最昂貴的成分,我們也不能忽略其它因素,尤其是單幀壓縮和解壓縮,因?yàn)檫\(yùn)動(dòng)估計(jì)的其它階段還需要這些結(jié)果。在考慮這些因素后,階段優(yōu)化工作量就需要正比于它對(duì)總體性能的影響程度。

RapidMind平臺(tái)

RapidMind平臺(tái)能夠用來(lái)快速實(shí)現(xiàn)和測(cè)試算法,并將算法應(yīng)用于GPU或?qū)嶋H上多內(nèi)核的CPU。如果有大量依附于數(shù)據(jù)的算法單元,Rapid實(shí)現(xiàn)就相當(dāng)重要,因?yàn)樗袉卧仨氁苿?dòng)到加速器的存儲(chǔ)空間,以避免出現(xiàn)上述數(shù)據(jù)搬移問(wèn)題。然而,根據(jù)它們的總體影響,優(yōu)化所有這些單元可能不具成本效益,或沒(méi)有太大作用。優(yōu)化工作容易使代碼復(fù)雜化,并且更難維護(hù)。

RapidMind通過(guò)公共特性集向所有支持的硬件目標(biāo)提供可移植性。僅使用這組公共特性也可能獲得優(yōu)異的性能。然而,RapidMind還提供了深層機(jī)制來(lái)訪問(wèn)特殊硬件特性,這種深層機(jī)制對(duì)優(yōu)化可能有用,但也會(huì)影響可移植性。因此推薦的做法是軟件項(xiàng)目首先只用公共特性實(shí)現(xiàn)所有必要的單元,然后(在實(shí)現(xiàn)完整功能后)對(duì)單元進(jìn)行剖析以確定瓶頸及最有可能的改進(jìn)之處,最后調(diào)整特殊單元,可能的話調(diào)整應(yīng)保持在內(nèi)核可移植功能集中。如果有必要進(jìn)行特殊硬件的深層分析,使用RapidMind的提取功能可以隔離它的影響,原始的內(nèi)核特性參考實(shí)現(xiàn)也可以用于實(shí)現(xiàn)可移植性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

2020 年,公司處理器產(chǎn)品四核龍芯 3A5000/3B5000 研制成功。龍芯 3A5000/3B5000 基于龍芯 3A4000/3B4000 進(jìn)行工藝升級(jí),主頻 2.3-2.5GHz, 單核通用處理性能是龍芯 3A...

關(guān)鍵字: 處理器 芯片 市場(chǎng)化

自主研發(fā)芯片對(duì)其自身有更為實(shí)際的意義。首先,自主研發(fā)芯片可以減輕對(duì)上游供應(yīng)鏈的依賴。其次,自主芯片更方便打造出獨(dú)家特色產(chǎn)品,增強(qiáng)產(chǎn)品在市場(chǎng)上的競(jìng)爭(zhēng)力。再次,自主研發(fā)芯片能降低成本,提高利潤(rùn)。

關(guān)鍵字: 芯片 處理器 市場(chǎng)

本文中,小編將對(duì)無(wú)線模塊予以介紹,如果你想對(duì)無(wú)線模塊的詳細(xì)情況有所認(rèn)識(shí),或者想要增進(jìn)對(duì)它的了解程度,不妨請(qǐng)看以下內(nèi)容哦。

關(guān)鍵字: 無(wú)線模塊 寄存器 處理器

北京2022年10月11日 /美通社/ -- 在四川大涼山深處,有一只"涼山黑鷹"少年籃球隊(duì):隊(duì)員平均年齡12歲,平均身高1米3,球隊(duì)剛成立時(shí),連個(gè)像樣的球場(chǎng)都沒(méi)有。然而,憑著一腔熱情和驚人天賦,這只...

關(guān)鍵字: 網(wǎng)絡(luò) BSP 內(nèi)核 騰訊

(全球TMT2022年10月11日訊)近日,昆侖芯(北京)科技有限公司的第二代云端通用人工智能計(jì)算處理器昆侖芯2代AI芯片及AI加速卡與飛槳完成III級(jí)兼容性測(cè)試,兼容性表現(xiàn)良好。 產(chǎn)品兼容性證明 本次...

關(guān)鍵字: 人工智能 加速卡 處理器 模型

(全球TMT2022年10月8日訊)愛(ài)立信全新上線超過(guò)200個(gè)AI App的業(yè)務(wù)持續(xù)性解決方案,進(jìn)一步保障并增強(qiáng)了CSP移動(dòng)網(wǎng)絡(luò)業(yè)務(wù)持續(xù)運(yùn)行的效率和健壯性。該方案由愛(ài)立信與運(yùn)營(yíng)商聯(lián)合開(kāi)發(fā),主要用于運(yùn)維過(guò)程中的預(yù)測(cè)性維護(hù)...

關(guān)鍵字: AMD 處理器 愛(ài)立信 EPYC

臺(tái)北2022年10月3日 /美通社/ -- AMD EPYC在CPU市場(chǎng)上始終處于變革性顛覆者的地位。從早期7001系列處理器推出高達(dá)32核、128 條PCIe Gen3通道到現(xiàn)在的"米蘭"7003系...

關(guān)鍵字: AMD 處理器 EPYC BSP

據(jù)外媒報(bào)導(dǎo),日本軟銀集團(tuán)旗下的半導(dǎo)體IP公司Arm于當(dāng)?shù)貢r(shí)間8月31日表示,該公司已經(jīng)對(duì)移動(dòng)處理器大廠高通(Qualcomm) 與其子公司Nuvia 發(fā)起訴訟,控告這兩家公司侵犯Arm專利。

關(guān)鍵字: ARM 高通 服務(wù)器 處理器

intel處理器(Intel cpu)是英特爾公司開(kāi)發(fā)的中央處理器,有移動(dòng)、臺(tái)式、服務(wù)器三個(gè)系列,是計(jì)算機(jī)中最重要的一個(gè)部分,由運(yùn)算器和控制器組成。如果把計(jì)算機(jī)比作一個(gè)人,那么CPU就是他的大腦,其重要作用由此可見(jiàn)一斑。

關(guān)鍵字: 英特爾 處理器 Intel Processor

ARM的全稱為Advanced RISC Machines,直譯為高級(jí)精簡(jiǎn)指令集處理器;RISC即為精簡(jiǎn)指令集,那么對(duì)應(yīng)的就存在CISC,其為復(fù)雜指令集。

關(guān)鍵字: ARM 內(nèi)核 SoC

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉