基于KeyStone DSP的多核視頻處理技術(shù)
隨著越來越多的移動(dòng)手持終端支持視頻功能,對(duì)于流媒體內(nèi)容及實(shí)時(shí)通信的網(wǎng)絡(luò)支持需求也在顯著上升。雖然對(duì)已部署的 3G 媒體網(wǎng)關(guān)進(jìn)行升級(jí)可以支持較低的分辨率和幀速率,但這種由于自身的有限處理能力而進(jìn)行的升級(jí)并不能滿足視頻成為主流應(yīng)用的需求。
為了使可擴(kuò)展視頻應(yīng)用能夠支持高密度 (HD),需要顯著提高視頻處理能力,而多核數(shù)字信號(hào)處理器 (DSP) 不但擁有能滿足此類需求的增強(qiáng)型視頻處理功能,同時(shí)還能充分滿足運(yùn)營商在可擴(kuò)展性和低功耗方面的需求。
本文旨在介紹一種全新的多內(nèi)核平臺(tái),其能夠通過優(yōu)化內(nèi)核通信、任務(wù)管理及存儲(chǔ)器接入實(shí)現(xiàn)高密度視頻處理能力,此外,本文還闡述了擴(kuò)展實(shí)施的結(jié)果如何支持多通道和多內(nèi)核 HD 視頻應(yīng)用的高密度視頻處理。
1 介紹
3G 與 4G 移動(dòng)網(wǎng)絡(luò)在全球范圍內(nèi)的廣泛部署以及無線創(chuàng)新熱點(diǎn)的不斷涌現(xiàn),催生了手持終端用戶所需的關(guān)鍵數(shù)據(jù)帶寬。除了 web/數(shù)據(jù)應(yīng)用以外,視頻已成為移動(dòng)數(shù)據(jù)普及的另一推動(dòng)力。
隨著越來越多的用戶轉(zhuǎn)而使用視頻應(yīng)用,網(wǎng)絡(luò)基礎(chǔ)局端需要實(shí)現(xiàn)顯著的性能提升才能支持視頻內(nèi)容,這從最近蘋果公司 Facetime 視頻呼叫應(yīng)用及類似應(yīng)用的流行上可見一斑。
手持終端能夠以更高的分辨率和幀速率支持視頻捕獲與播放。傳統(tǒng)部署的 3G 媒體網(wǎng)關(guān)專用于支持低分辯率視頻應(yīng)用中的高密度多語音通道,但通常不能滿足用戶對(duì)于高質(zhì)量的預(yù)期。
此外,由于手持終端因電池使用壽命和存儲(chǔ)器大小等技術(shù)局限性,通常僅能以有限的參數(shù)集支持幾種標(biāo)準(zhǔn),因而媒體網(wǎng)關(guān)需要支持更多的編解碼器和轉(zhuǎn)碼模式,如轉(zhuǎn)碼、傳輸量以及傳輸速率等。例如,當(dāng)移動(dòng)手機(jī)用戶駕車高速駛過某個(gè)區(qū)域時(shí),讓網(wǎng)絡(luò)去適應(yīng)由當(dāng)時(shí)瞬時(shí)鏈接條件提供的帶寬并提供相應(yīng)的壓縮、分辨率及比特率更具高效性,這樣視頻鏈不致中斷,而且手持終端也不會(huì)因支持縮放或剪輯造成帶寬或電池電量的浪費(fèi)。
為了充分滿足這些需求,我們需要顯著提高高密度媒體網(wǎng)關(guān)的視頻處理能力。多內(nèi)核 DSP 能夠以較低運(yùn)營成本提供可擴(kuò)展的解決方案,從而全面解決運(yùn)營商重點(diǎn)關(guān)注的功耗與空間占用問題。
本文的組織結(jié)構(gòu)如下:
首先,闡述了處理高分辨率視頻面臨的挑戰(zhàn)和資源需求,以及如何有效地實(shí)現(xiàn)帶可擴(kuò)展實(shí)施功能的視頻編碼算法,以便同時(shí)支持低分辨率和高分辨率通道。
其次,還對(duì)軟硬件選項(xiàng)如何提高多內(nèi)核運(yùn)行的效率展開了討論。
最后,本文回顧性介紹了多內(nèi)核 DSP 領(lǐng)域前沿技術(shù)的發(fā)展歷程,并探討了開發(fā)人員可資利用的平臺(tái)。
2 基礎(chǔ)局端 HD 視頻面臨的挑戰(zhàn)
圖 1 描述了基于基礎(chǔ)局端網(wǎng)絡(luò)的視頻通信系統(tǒng)。一個(gè)典型的系統(tǒng)應(yīng)支持多種功能,其中包括:
- 高密度媒體的碼制轉(zhuǎn)換與速率適應(yīng)
- 與視頻轉(zhuǎn)碼相關(guān)的音頻轉(zhuǎn)碼
- 大型多方視頻會(huì)議
- 諸如語音等其他媒體形式的處理
圖 1 基于網(wǎng)路的視頻通信
轉(zhuǎn)碼是一種典型的通信基礎(chǔ)局端視頻應(yīng)用,我們可在其中通過已壓縮的輸入流對(duì) YUV 域視頻流進(jìn)行解碼,然后再使用不同的標(biāo)準(zhǔn)(轉(zhuǎn)碼)、不同的比特率(碼流速率)、分辨率(傳輸大?。┗蛏鲜龈黜?xiàng)的任意組合重新進(jìn)行編碼。從高質(zhì)量的高清專業(yè)相機(jī)到低分辨率的智能電話錄制,視頻內(nèi)容來源廣泛;而視頻內(nèi)容接收器也是種類繁多,從大型的高清電視屏幕到低分辨率的手持終端,無所不包。視頻基礎(chǔ)局端必須全方位滿足各種需求,其中包括:
- 多重編碼和解碼標(biāo)準(zhǔn),如 DV、MPEG2/4、H.264 以及未來的 H.265 等。
- 多種分辨率和幀速率,從 128×96 像素的次 1/4 公用中分辨率格式 (SQCIF) 乃至更低分辨率,到高清 (1920x1080) 甚至是超高清 (4320P, 8K),從每秒 10 幀到每秒 60 幀不等。
- 各種編碼的輸入/輸出 (I/O) 比特率,如從低分辨率低質(zhì)量手持終端視頻流的 48 Kbps 到專業(yè)質(zhì)量的 50 Mbps(H.264 級(jí) 4.2)甚至更高。YUV域視頻流的帶寬要求非常高,例如,采用 4:2:0 配色方案的 YUV 1080p60 視頻流需要 1.5 Gbps 左右的帶寬。
延遲要求因應(yīng)用而異:視頻會(huì)議和實(shí)時(shí)游戲應(yīng)用對(duì)延遲的要求非常嚴(yán)格,不能超過 100 毫秒;視頻點(diǎn)播應(yīng)用則可以接受中等延遲(可達(dá)幾秒鐘),而且存儲(chǔ)等非實(shí)時(shí)應(yīng)用的處理能夠允許更長時(shí)間的延遲。
通信基礎(chǔ)局端網(wǎng)絡(luò)面臨的挑戰(zhàn)在于,如何才能夠?qū)⑺械膬?nèi)容交付給所有所需用戶,同時(shí)又能維持硬件資源的高利用率和高效性。為了進(jìn)一步闡述這一挑戰(zhàn),不妨考慮一下這個(gè)事實(shí),單個(gè) 1080i60 通道要求的處理負(fù)載與 164 個(gè)幀速率為 15 fps(假定負(fù)載與分辨率和幀數(shù)量之間呈線性關(guān)系)的 1/4 公用中分辨率格式 (QCIF)的通道相同。因此,支持單個(gè) 1080i60通道的硬件也應(yīng)該能夠以同等的高效性和高利用率支持 164 個(gè) QCIF 通道。但是,以如此數(shù)量級(jí)實(shí)現(xiàn)的可擴(kuò)展性是一大挑戰(zhàn)。
為了符合高可擴(kuò)展性要求,必須采用可編程的硬件解決方案。部分視頻應(yīng)用要求處理器具有極高比特率的信號(hào)輸入與輸出,因此,基于處理器的解決方案必須擁有可支持足夠外部接口的理想外設(shè)。這種處理器必須具備足夠的處理能力,可處理實(shí)時(shí)的高清高質(zhì)量視頻,同時(shí)還需配備足夠的本機(jī)資源,如快速存儲(chǔ)器、內(nèi)部總線和 DMA 支持等,以使處理器的處理能力獲得高效利用。
單內(nèi)核 DSP 具有高度的靈活,能夠高效執(zhí)行各種算法。DSP 不僅能夠處理話音、音頻、視頻,還可以執(zhí)行其他功能。但是,由于單內(nèi)核 DSP 的計(jì)算能力不足,因而不能自由地處理任何分辨率的實(shí)時(shí)視頻,而只能處理 SQCIF、QCIF 以及公用中分辨率格式 (CIF) 等較低分辨率的視頻;而且,單內(nèi)核 DSP 的功耗也使其無法應(yīng)用在高密度視頻處理系統(tǒng)中。
新型的多內(nèi)核 DSP 具備非常高的處理能力,且其每次運(yùn)行的功耗也比單內(nèi)核 DSP 低。為了確定多內(nèi)核處理器對(duì)于通信基礎(chǔ)局端而言是否能夠成為有效的硬件解決方案,需要對(duì)其接口、處理性能、存儲(chǔ)器要求以及多內(nèi)核合作與同步機(jī)制針對(duì)各種不同的使用案例進(jìn)行符合性驗(yàn)證。
2.1 外部 I/O 接口
典型轉(zhuǎn)碼應(yīng)用的比特流是以 IP 數(shù)據(jù)包形式進(jìn)行打包。轉(zhuǎn)碼應(yīng)用所需的帶寬與分辨率以及用戶所需網(wǎng)絡(luò)的可用帶寬相關(guān)。以下針對(duì)單通道消費(fèi)類質(zhì)量 H.264 編碼視頻流作為分辨率函數(shù)時(shí)列出的公用帶寬要求:
- HD 分辨率,720p 或 1080i - 6 至 10 Mbps
- D1 分辨率,720×480,30 幀/秒 (fps),或 720×576,25 幀/秒 – 1 至 3 Mbps
- CIF 分辨率,352×288,30 幀/秒 – 300 至 768 Kbps
- QCIF 分辨率,176×144,15 幀/秒 – 64 至 256 Kbps
轉(zhuǎn)碼應(yīng)用所需的總外部接口是輸入媒體流與輸出媒體流所需帶寬的總和。為了支持多個(gè) HD 分辨率通道或大量較低分辨率通道,至少需要一個(gè)串行千兆位介質(zhì)獨(dú)立接口 (SGMII)。
非轉(zhuǎn)碼視頻應(yīng)用涉及從 YUV(或同等)域?qū)υ家曨l媒體流進(jìn)行編碼或解碼。原始視頻流具有較高的比特率,且通常通過 PCI、PCI Express 或串行快速輸入/輸出 (SRIO) 等高比特率的快速多通道總線直接從處理器輸入或輸出信號(hào)。
以下列出了使用 8 位像素?cái)?shù)據(jù)和 4:2:0 或 4:1:1 配色方案?jìng)鬏?YUV 域中單通道原始視頻流所需的帶寬:
- 1080i60 - 745.496 Mbps
- 720p60 - 663.552 Mbps
- D1(30fps NTSC 或 25 fps PAL)- 124.415 Mbps
- CIF(30 fps)- 36.49536 Mbps
- QCIF(15 fps)- 4.56192 Mbps
因此,可對(duì) 4 個(gè) 1080i60 H.264 通道進(jìn)行解碼的處理器要求能夠支持超過 4 Gbps 速率的總線,從而可假定總線的利用率為 60%。
2.2 處理性能
在可編程處理器的 H.264 通道上進(jìn)行視頻處理所需的處理性能取決于眾多參數(shù),其中包括分辨率、比特率、影像質(zhì)量以及視頻剪輯內(nèi)容等。本章不僅將討論影響周期消耗的因素,而且還將給出普通應(yīng)用實(shí)例平均周期消耗的經(jīng)驗(yàn)法則。
與其他視頻標(biāo)準(zhǔn)一樣,H.264 僅定義解碼器算法。對(duì)于既定編碼媒體流而言,所有的解碼器都可生成相同的 YUV 視頻域數(shù)據(jù)。
因此,解碼器不決定影像質(zhì)量,而由編碼器決定。不過,編碼器質(zhì)量能影響解碼器的周期消耗。
熵解碼器的周期消耗取決于熵解碼器的類型和比特率。H.264 MP/HP 為熵解碼器定義了兩種無損算法,即上下文環(huán)境自適應(yīng)二進(jìn)制算術(shù)編碼 (CABAC) 和上下文環(huán)境自適應(yīng)可變長度編碼 (CAVLC)。CABAC 能提供更高的壓縮比,因此,比特?cái)?shù)相同時(shí)影像質(zhì)量會(huì)更佳,但相比 CAVLC 在每個(gè)媒體流比特上約多消耗 25% 的周期。用于解碼 CABAC 或者 CAVLC 媒體流所需的周期量是比特?cái)?shù)的一個(gè)非線性單調(diào)函數(shù)。
所有其他解碼器功能的處理負(fù)載均是分辨率的函數(shù)。更高分辨率需要更多的周期,幾乎與宏模塊的總數(shù)量呈線性關(guān)系。視頻流內(nèi)容、編碼器算法與工具能在一定程度上影響解碼器的周期消耗。附錄 A – 解碼器性能依賴性 (Decoder Performance Dependency) 列舉了可能會(huì)影響解碼器周期消耗的編碼器算法和工具。
在可編程器件上實(shí)施既定比特率的編碼器需要在質(zhì)量與處理負(fù)載之間進(jìn)行權(quán)衡。附錄 B – 運(yùn)動(dòng)估算與比特率控制 分析了可能影響編碼器質(zhì)量并消耗大量周期的兩種編碼器算法。
對(duì)于典型的運(yùn)動(dòng)消費(fèi)類電子設(shè)備的高質(zhì)量視頻流而言,以下列表給出的經(jīng)驗(yàn)法則,可用以判斷常見使用案例中 H.264 編碼器消耗的周期數(shù)。
- QCIF 分辨率、15 fps、128 Kbps - 每通道 2,700 萬個(gè)周期
- CIF 分辨率、30 fps、300 Kbps – 每通道 2 億個(gè)周期
- D1 分辨率、NTSC 或 PAL、2 Mbps –每通道 6.6 億個(gè)周期
- 720p 分辨率、30 fps、6 Mbps – 每通道 18.5 億個(gè)周期
- 1080i60、每秒 60 場(chǎng)、9 Mbps – 每通道 34.5 億個(gè)周期
與此類似,H.264 解碼器消耗的周期數(shù)為:
- QCIF 分辨率、15 fps、128IKbps – 每通道 1400 萬個(gè)周期
- CIF 分辨率、30 fps、300 Kbps – 每通道 7050 萬個(gè)周期
- D1 分辨率、NTSC 或 PAL、2 Mbps –每通道 2.92 億個(gè)周期
- 720p 分辨率、30 fps、6 Mbps – 每通道 7.8 億個(gè)周期
- 1080i60、每秒 60 場(chǎng)、9 Mbps –每通道 16.6 億個(gè)周期
轉(zhuǎn)碼應(yīng)用(包括完整的解碼器和編碼器)消耗的周期數(shù)是編碼器和解碼器所消耗的總和,在需要的情況下也會(huì)加上擴(kuò)展的消耗。
2.3 存儲(chǔ)器的考慮事項(xiàng)
在成本與存儲(chǔ)器要求之間進(jìn)行權(quán)衡折中是任何硬件設(shè)計(jì)都需要考慮的重要因素。在分析多核視頻處理解決方案的存儲(chǔ)器要求時(shí),需要明確以下幾個(gè)問題:
- 需要多大存儲(chǔ)量的存儲(chǔ)器,以及存儲(chǔ)器的類型(專有還是共享)是什么?
- 存儲(chǔ)器的速度是否足夠支持流量需求?
- 接入總線的速度是否足以支持流量需求?
- 存儲(chǔ)器架構(gòu)是否能夠以最少的多核性能損失支持多核接入?
- 存儲(chǔ)器架構(gòu)是否能以最小的數(shù)據(jù)沖突支持處理器數(shù)據(jù)流的輸入與輸出?
- 支持存儲(chǔ)器接入(諸如 DMA 通道、DMA 控制器、預(yù)取機(jī)制和快速智能高速緩沖架構(gòu) )的現(xiàn)有硬件有哪些?所需存儲(chǔ)器的存儲(chǔ)量取決于應(yīng)用。以下三個(gè)應(yīng)用實(shí)例介紹了三種不同的存儲(chǔ)器要求:
無線傳輸速率:在單幀運(yùn)動(dòng)估算參考 (single-motion estimation reference frame) 中以極低的延遲從 QCIF H.264BP 轉(zhuǎn)換至 QCIF H.264BP 需要足夠的存儲(chǔ)容量才能存儲(chǔ) 5 個(gè)幀。每幀需要 38016 個(gè)字節(jié),那么一個(gè)通道(包括輸入和輸出媒體流的存儲(chǔ))所需存儲(chǔ)器的存儲(chǔ)量為每通道不足 256KB。同時(shí)處理 200 個(gè)通道則需 50MB 的數(shù)據(jù)存儲(chǔ)。
多通道解碼器應(yīng)用實(shí)例:對(duì)于 H264 HP 1080p 解碼器,如果兩個(gè)連續(xù)的 P 幀和 I 幀之間的 B 幀數(shù)目等于或少于 5,那么我們只需要足夠存儲(chǔ) 7~8 個(gè)幀的存儲(chǔ)空間,因而單個(gè)通道(包含存儲(chǔ)輸入和輸出媒體流)所需的存儲(chǔ)量應(yīng)少于每通道 25MB。同時(shí)處理 5 個(gè)通道需要 125MB 的數(shù)據(jù)存儲(chǔ)器。
包含實(shí)時(shí)電視廣播的高質(zhì)量視頻流示例:應(yīng) FCC 的要求在系統(tǒng)中有 7 秒的延遲時(shí),對(duì)實(shí)時(shí)電視節(jié)目采用 H.264HP 720P60 編碼需要每個(gè)通道存儲(chǔ) 600MB。并行處理兩個(gè)通道需要 1.2GB 的數(shù)據(jù)存儲(chǔ)量。
為了最大限度地提高視頻處理系統(tǒng)的低成本優(yōu)勢(shì),數(shù)據(jù)必須駐留在外部存儲(chǔ)器中,其大小需要根據(jù)系統(tǒng)存儲(chǔ)器最差的應(yīng)用狀態(tài)來選擇。與此同時(shí),處理過的數(shù)據(jù)必須存放在內(nèi)部存儲(chǔ)器中才能支持處理器的高吞吐量。優(yōu)化的系統(tǒng)會(huì)使用乒乓機(jī)制將數(shù)據(jù)從外部存儲(chǔ)器移至內(nèi)部存儲(chǔ)器,而將數(shù)據(jù)從內(nèi)存移至外部存儲(chǔ)器的同時(shí)還要處理來自內(nèi)部存儲(chǔ)器的數(shù)據(jù)。典型的處理器具有一個(gè)可配置為高速緩存或 RAM 的小型 L1 存儲(chǔ)器,用于每個(gè)內(nèi)核(可配置為高速緩存或 RAM)的較大型專用 L2 存儲(chǔ)器,以及處理器中每個(gè)內(nèi)核都能夠存取的共享 L2 存儲(chǔ)器均可使用。為加強(qiáng)乒乓機(jī)制,需要用多個(gè)相互獨(dú)立的 DMA 通道從外部存儲(chǔ)器中讀寫數(shù)據(jù)。
附錄C 外部存儲(chǔ)器帶寬-為支持乒乓機(jī)制用于上述三個(gè)應(yīng)用實(shí)例,估算了將數(shù)據(jù)從外部存儲(chǔ)器移至內(nèi)部存儲(chǔ)器所需的帶寬。外部存儲(chǔ)器的有效帶寬必須大于 3.5Gbps。
評(píng)論