基于KeyStone DSP的多核視頻處理技術(shù)
2.4 多內(nèi)核間的協(xié)作與同步
當(dāng)多個內(nèi)核處理同一視頻通道時,這些內(nèi)核之間必須相互通信,才能實現(xiàn)對輸入數(shù)據(jù)的同步、分離或共享,合并輸出數(shù)據(jù)或者在處理過程中交換數(shù)據(jù)。附錄 A - 解碼器性能依賴闡述了將視頻處理功能劃分成多個內(nèi)核的幾種算法。
并行處理法和流水線處理法是兩種常用的分區(qū)算法。并行處理的范例是兩個或兩個以上的內(nèi)核可以處理同一輸入通道。必須有一個不受競態(tài)條件影響的機制在多個內(nèi)核之間共享信息??蓪⑿盘枠?biāo)用來保護(hù)全局區(qū)域免受競態(tài)條件的干擾。硬件需要支持阻塞性和非阻塞性信號標(biāo),以有效消除競態(tài)條件,即消除兩個內(nèi)核同時占用同一存儲器地址的可能性。
如果使用流水線算法,一個或一個以上的內(nèi)核可執(zhí)行運算的第一部分,然后再將中間結(jié)果傳遞第二組內(nèi)核繼續(xù)處理。由于視頻處理負(fù)載取決于處理的內(nèi)容,因而這種傳遞機制可能面臨如下問題:
- 如果一個以上的內(nèi)核處理流水線的第一階段,那么第 N+1 幀可能先于第 N 幀被處理好。因此該傳遞機制必須能夠?qū)敵?輸入進(jìn)行排序。
- 即使流水線上的各內(nèi)核總體是均衡的(在處理負(fù)載方面),但個別幀未必如此。該傳遞機制必須在不同的流水線階段之間提供緩沖,以使內(nèi)核沒完成工作時不至于影響其他內(nèi)核停滯等待。
- 如果算法要求流水線的兩個階段間能穩(wěn)固實現(xiàn)緊密的鏈接(例如,為解決依賴性的問題),則該機制就必須能夠支持緊密鏈接與松散鏈接。
2.5 多芯片系統(tǒng)
實時處理超級視頻 (SVGA)、4K 及更高分辨率,或處理 5 級 H.264HP可能需要不止一個芯片一起協(xié)作。要構(gòu)建一個具有超高處理能力的雙芯片系統(tǒng),擁有可連接兩個芯片的超快速總線至關(guān)重要。
第三部分描述了可滿足上述所有要求及難題的 KeyStone系列 DSP架構(gòu)。
3.KeyStone DSP – TI 最新多內(nèi)核處理器
TI KeyStone 架構(gòu)描述了廣泛應(yīng)用于視頻處理等要求高性能和高帶寬的系列多內(nèi)核設(shè)備。圖 2 對 KeyStone DSP進(jìn)行了概括性描述。本章針對在第二部分中闡述的視頻處理硬件要求對 KeyStone DSP 特性進(jìn)行了介紹。
圖 2 KeyStone DSP 方框圖
表 1 說明 KeyStone DSP 如何滿足視頻處理要求。
附錄A - 解碼器性能相關(guān)性
編碼器所采用的工具和算法以及視頻內(nèi)容都會影響解碼器的性能。下列因素將影響解碼器性能:
- CABAC 或 CAVLC 熵解碼器的選擇
- 跳幀的數(shù)量
- 幀內(nèi)預(yù)測模式的復(fù)雜性
- 預(yù)測類型—運動估算或幀內(nèi)預(yù)測。(運動補償需要消耗的解碼周期數(shù)不同于幀內(nèi)預(yù)測補償。采用運動補償還是幀內(nèi)預(yù)測取決于編碼器。)
- 不同的運動估算工具(每個宏模塊一個運動矢量,每個宏模塊 4個運動矢量,或每個宏模塊 8 個運動矢量)能改變解碼器的復(fù)雜度和周期數(shù)。
- B 幀宏模塊的運動補償涉及兩個參考宏模塊,并消耗更多周期。
- 媒體流中的運動量不僅會更改跳過宏模塊的數(shù)目,同時還會改變解碼器的處理要求。
- 比特流在運動矢量、模塊值、標(biāo)記等各個不同值等之間的分配取決于媒體流的內(nèi)容和編碼器算法。不同的分配會相應(yīng)改變熵解碼器的周期數(shù)。
附錄B — 運動估算和速率控制
運動估算是 H.264 編碼中很大一部分內(nèi)容。H.264 編碼器的質(zhì)量取決于運動估算算法的質(zhì)量。運動估算所需的周期數(shù)取決于運動估算算法的功能特性及特征。以下是幾個影響運動估算周期消耗的主要因素:
- I 幀、P 幀和 B 幀的頻率
- L0(對于 P 幀和 B 幀)和 L1(對于 B 幀)中的參考幀數(shù)目
- 搜索區(qū)域的數(shù)目
- 搜索區(qū)的大小
- 搜索算法
良好的運動估算算法可能消耗總編碼周期的 40-50%,乃至更多。
速率控制算法是影響編碼質(zhì)量的主要因素。為了最大限度地提高視頻的感知質(zhì)量,智能速率控制算法可在宏模塊和幀之間分配可用的比特。
部分系統(tǒng)可執(zhí)行多重處理通道,以便在宏模塊之間更好的分配可用比特。多條通道雖然能提高感知質(zhì)量,但卻要求更密集的處理。
附錄C - 外部存儲器帶寬
由于運動估算算法的原因,編碼器通常比解碼器需要更高的內(nèi)部帶寬。編碼器的要求分兩種情況計算:低比特率 QCIF 和高比特率的 1080p。
- 第一種情況 -- QCIF 264 BP 編碼器:
兩個完整的 QCIF 幀能駐留在高速緩存或 L2 乒乓緩沖器中。每個幀需要的容量不到 40 KB。采用一個參考幀對某一幀進(jìn)行編碼時,系統(tǒng)應(yīng)為每次 QCIF 處理傳輸 80KB 的數(shù)據(jù),并輸出少量數(shù)據(jù)。200 個15 fps 的 QCIF 通道所需的總內(nèi)部帶寬為:
80KB * 15 (fps) * 200(通道數(shù))+ 200(通道數(shù))* 256/8 KB(QCIF 通道的輸出比特率)= 240MB + 6.4MB = 250MB/s
- 第二種情況 -- 1080p 60 H.264 HP:
假定采用最差情況中的算法來執(zhí)行運動參考幀的運動估算,該參考幀可能需要從外部存儲器移至內(nèi)部存儲器多達(dá)三次。此外,也可假定采用多達(dá)四個參考幀的高級算法。因此,單個 1080p60 通道的運動估算是:
3(復(fù)制 3 次)* 1920*1080*1(在運動估算中,每像素僅 1 個字節(jié))*60 (fps) * 4(參考通道) = 1492.992 MBps
是否移動可進(jìn)行處理和運動補償?shù)漠?dāng)前幀由以下情況來確定:
2(當(dāng)前幀和運動補償)* 1920 * 1080 * 1.5(字節(jié)/像素)* 60 = 373.248 MBps
綜上所述,以上兩個匯總結(jié)果規(guī)定了輸出比特流。一個通道的總和為1866.24 MBps,即兩個 H.264 HP 1080p60 編碼器為 3732.48 MBps,這意味著約占用外部存儲器原始數(shù)據(jù)帶寬的 30%。
評論