色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CPU中的特殊指令可以加速編碼效率

LiveVideoStack ? 來源:LiveVideoStack ? 2023-02-14 13:38 ? 次閱讀

依據客戶真實需求,定制下一代CPU是我們的工作之一,我們選擇做視頻轉碼的另一個原因,是為了設計更好滿足音視頻領域需求的下一代硬件。所以今天還會給大家介紹下一代CPU中關于編解碼的特殊指令,這些特殊指令可以加速編碼效率。

今天,我分享的內容分為三個章節。首先,使用英特爾豐富的工具鏈對視頻轉碼進行分析。我們作為硬件廠商,本身不做音視頻轉碼業務,但俗話說“弄斧要到班門”,所以我們首先對視頻轉碼的一些典型場景進行了微架構層面的分析,為后面的優化做好鋪墊。然后,介紹方案的核心思想,即如何重用一次編碼的信息來提高二次編碼的效率。之前提到,計算復雜度在轉碼里占了很大的成本,所以要從源頭上降低計算復雜度。最后,介紹SIMD指令集。SIMD的全稱是Single Instruction Multiple Data,意思是單指令多數據,表明一條指令可以同時操作多個數據。

01 視頻轉碼分析

首先,我們對視頻轉碼進行分析。

7c053b66-ac23-11ed-bfe3-dac502259ad0.jpg

我們從相關市場獲取了圖中的數據。第一張圖表示在2020年,視頻數據在互聯網數據占比70%。到現在,視頻數據在互聯網數據占比已超過80%。第二張圖是PRC Video Cloud Market Forecast,圖中呈增長趨勢。雖然目前共有云市場的增速減緩,但是視頻云的增長仍有很大潛力。回到轉碼本身,第三張圖和第四張圖來自Video Developer report。從第四張圖可以看到,在2019年,H.264仍是主流視頻編碼技術,90%以上仍使用H.264。其次,較多使用的是H.265,然后是VP9和AV1,H.265也在逐漸成為一種趨勢。第三張圖表示視頻編碼器開發人員計劃在2022年投入的情況。其中,投入最多的是H.265,然后是AV1,再然后是H.266,這三個協議正在成為主流編碼器協議,我們后續將基于這些主流編碼器進行開發。

7c205e82-ac23-11ed-bfe3-dac502259ad0.jpg

接下來進行直播成本分析。這是一張直播的結構圖,主播上傳內容到上行CDN,然后再發送到轉碼中心進行內容識別、截屏、錄制和轉碼,接著再分發到下行CDN。這個過程中,成本最大的是網絡帶寬和轉碼服務器。之前提到,網絡帶寬取決于觀看人數和碼率。舉個例子,觀看2M的視頻和觀看500K的視頻所需的網絡帶寬不同,1000個人同時觀看視頻和10個人同時觀看視頻所需的網絡帶寬也不同。轉碼服務取決于分辨率、碼率和視頻編碼標準等。

7c5475d2-ac23-11ed-bfe3-dac502259ad0.jpg

我們對頭部的互聯網廠商進行了分析。如第一張圖所示,主要有兩個成本,一個是Traffic price,即帶寬成本,另一個是轉碼成本。第二張圖表示直播一小時內,轉碼和帶寬的比例,圖的橫軸是觀看人數,縱軸是轉碼和帶寬費用的比例。可以看到,當觀眾數大于等于50時,帶寬成為主要的成本。舉個例子,頂級流量主播的一場直播的帶寬成本要幾百萬,此時轉碼成本只有幾千塊,相對帶寬成本幾乎可以忽略。但對于數量眾多的小主播來講,觀眾數可能只有十幾個,此時的帶寬較低,所以轉碼成本成為主要的成本。針對這兩種情況,在帶寬成本較大時,我們以優化帶寬為主,在轉碼成本較大時,我們以優化轉碼速度/轉碼性能為主。

7c82b2a8-ac23-11ed-bfe3-dac502259ad0.jpg

接下來,介紹幾款好用的英特爾的工具。首先是V-Tune,是一個可以快速發現應用程序瓶頸的可視化的工具。左下圖展示了一個例子,可以看到,我們可以知道轉碼里每個函數占用的CPU時間,雙擊就可進入code,精確定位哪行code的占比較高,所以可以清楚地知道熱點函數在哪里。我們支持CPU、GPUFPGA,也支持多語言和多操作系統。V-Tune的優點是直觀,缺點是會為系統帶來一定的負擔。

另一個工具是Emon,其用于low-level層面的數據抓取。Emon的優點是可以直接抓取Performance Monitoring Units(PMUs),即寄存器的值,因此功率消耗較少。觀察右上圖,可以知道CPU的利用率、AVX指令集的使用比例,也可以知道該函數是Backend_Bound還是Frontend_Bound。因此,可以清楚知道系統的問題在哪里。

7cc77ac8-ac23-11ed-bfe3-dac502259ad0.jpg

利用剛才介紹的工具,可以估計轉碼消耗的算力。可以看到,在某一個轉碼場景里,編碼過程中的運動估計(Motion Estimation)占比超過40%,但不同的場景情況有所不同,舉個例子,將8K的數據轉換成360P的數據時,解碼消耗的算力大于轉碼消耗的算力。在大部分情況下,若考慮幀決策等,運動估計的占比將超過50%,因此這成為了我們關注的熱點。

02重用運動矢量等信息提高轉碼效率和質量

接下來,介紹方案的核心思想。

7cef2758-ac23-11ed-bfe3-dac502259ad0.jpg

我們現在考慮轉碼,比如將H.264或H.265轉換成H.266或AV1。在一次編碼時,我們可以獲得slice type、mb qp和mb partition等信息。在現在的編解碼方式中,解碼之后這些信息就會被舍棄。而我們的核心思想是,在二次編碼中重用一次編碼的信息。通過粗略計算,在大部分場景下,重用一次編碼信息可以減少大約67%的運算量。

對于這種思路,大家可能有很多問題。比如,當幀率或分辨率在轉碼前后發生變化時,會不會出現一些新的問題。因此,雖然方案的原理比較直接,但實際應用時需要解決很多“并發癥”。特別是,我們要考慮如何一方面提升轉碼速度,另一方面保證轉碼質量,否則轉碼質量不好,即使轉碼速度很快,也不能投入實用。

7d1ea988-ac23-11ed-bfe3-dac502259ad0.png

舉個例子說明如何重用一次編碼的信息來提高視頻質量。JND是一種感知編碼技術,在左上的圖中,四個block中只有左下的block的值為1,其余block的值為0。但對于人眼來說,可以忽略數值1,即四個block的值可以都為0。這是JND的核心思想:過濾人眼感觸不到的信息。對此,經典的方法是使用雙邊濾波器等進行過濾,但這些方法都是無差別的濾波,容易造成“誤傷”。而現在由于掌握一次編碼信息,我們知道哪些信息可以被平滑,哪些信息必須保留,通過設置權重的方式來進行“區別對待”。這樣做可以帶來兩個好處,一是可以提高主觀視覺的質量,二是在限定碼率的情況下,可以將碼率用在刀刃上,大幅度地提高客觀質量。比如,將一個原碼率是50Mbps的視頻轉碼為2Mbps的視頻,采用我們的方式就可以較大地提高質量。

7d42c566-ac23-11ed-bfe3-dac502259ad0.jpg

另一種方式是使用一次編碼的殘差。在H.264和H.265里,有two-path的算法,但這個算法通常不被使用。這是因為,雖然經過一次編碼可以掌握大概的信息,并且在此基礎上二次編碼的結果更精準,編碼質量更高且碼率更低,但是這會大幅度地增加計算量,推高轉碼成本和延遲。為了解決這個問題,我們直接重用一次編碼的信息來實現類似二次編碼的效果。

03SIMD指令集加速轉碼熱點函數

最后,介紹如何用SIMD指令集加速轉碼熱點函數。

至強服務器平臺SIMD指令集經迭代了很多代,大家比較熟知的比如AVX2,AVX512等。第二代至強可擴展平臺在AVX512的基礎上支持了INT8數據精度,第三代支持BF16指令集,2023年初量產的第四代平臺的AI性能在BF16和INT8上較上一代提升了8倍,其中加入了AMX 指令集,也可以理解為在CPU內部有一塊硬件加速器。比如INT8的算力,一顆CPU的性能接近200T,很多以前在CPU上無法完成的運算現在都成為可能。

7d6cc9e2-ac23-11ed-bfe3-dac502259ad0.jpg

最后介紹一個例子,說明如何使用SIMD指令集優化視頻編碼。在H.264中有一個大小為16×16的宏塊,需要對其求和或平方和,那么如何用avx512對其進行加速呢?需要執行以下幾步。首先,將16個int8的數據載入到mm128寄存器中。然后,將int8數據轉換成int32,這是因為有時候運算結果為負數,而int8無法表示負數。接著,將16個int32數據水平相加,這需要消耗0.5個指令周期,而手動計算則需要8次計算,因此極大地提高了效率。最后,將16個int32平方后再水平相加。經過這樣的處理,性能可提高16倍或8倍(若為一條指令則提高16倍,若為兩條指令則提高8倍)。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    45

    文章

    3646

    瀏覽量

    134638
  • 編解碼
    +關注

    關注

    1

    文章

    140

    瀏覽量

    19618
  • SIMD
    +關注

    關注

    0

    文章

    34

    瀏覽量

    10307
  • 視頻轉碼
    +關注

    關注

    0

    文章

    14

    瀏覽量

    7501

原文標題:基于運動矢量重用的轉碼優化

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何提高編碼器的工作效率與作用

    編碼器是一種將信號或數據從一種形式或格式轉換為另一種形式的設備。在工業自動化、通信、計算機等領域中,編碼器扮演著至關重要的角色。提高編碼器的工作效率和作用
    的頭像 發表于 11-24 10:12 ?187次閱讀

    如何限制容器可以使用的CPU資源

    默認情況下容器可以使用的主機 CPU 資源是不受限制的。和內存資源的使用一樣,如果不對容器可以使用的 CPU 資源進行限制,一旦發生容器內程序異常使用
    的頭像 發表于 10-24 17:04 ?249次閱讀
    如何限制容器<b class='flag-5'>可以</b>使用的<b class='flag-5'>CPU</b>資源

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架構分析」閱讀體驗】--了解算力芯片CPU

    并行執行不同的指令,這樣就可以同時處理多個指令,從而提高處理器的性能。CPU流水線的起點就是從指令緩存(ImstructionCache,簡
    發表于 10-20 12:03

    CPU時鐘周期、機器周期和指令周期的關系

    CPU時鐘周期、機器周期和指令周期是計算機體系結構中三個緊密相連且至關重要的概念,它們共同構成了CPU執行指令和處理數據的基本時間框架。以下是對這三個周期之間關系的詳細解析。
    的頭像 發表于 09-26 15:38 ?3111次閱讀

    CISC(復雜指令集)與RISC(精簡指令集)的區別  

    。這種架構會增加CPU結構的復雜性和對CPU工藝的要求,但對于編譯器的開發十分有利。比如上面的例子,C程序 的a*=b就可以直接編譯為一條乘法指令
    發表于 07-30 17:21

    AGV輪轂電機編碼

    編碼器還可以提供電機的絕對位置信息,這對于AGV系統的定位和校準至關重要。在AGV系統,一般會使用Z信號來表示編碼器的絕對位置。Z信號是一個特殊
    的頭像 發表于 07-22 11:33 ?525次閱讀
    AGV輪轂電機<b class='flag-5'>中</b>的<b class='flag-5'>編碼</b>器

    數控車床t指令對刀步驟

    精度的關鍵步驟。通過對刀,可以確保刀具與工件之間的相對位置準確,從而保證加工尺寸的準確性。 提高生產效率:通過對刀,可以減少加工過程的誤差,提高加工
    的頭像 發表于 06-07 09:50 ?1943次閱讀

    CPU寄存器的用途

    在計算機體系結構,中央處理單元(CPU)無疑是整個系統的核心。CPU負責執行指令、處理數據、控制計算機系統的運行等關鍵任務。而在這個過程
    的頭像 發表于 05-30 17:09 ?1465次閱讀

    微軟推進CPU指令集更新,舊版CPU或無法運行Edge瀏覽器

    按照微軟的計劃,Microsoft Edge 126.0正式版將于2024年6月13日發布。屆時,未支持SSE3指令集的舊CPU用戶可能需繼續使用現有的版本。
    的頭像 發表于 05-18 10:33 ?979次閱讀

    什么是RISC-V?RISC-V指令集的優勢

    CPU 支持的所有指令指令的字節級編碼就是這個 CPU指令集架構(Instruction
    發表于 03-05 10:31 ?873次閱讀
    什么是RISC-V?RISC-V<b class='flag-5'>指令</b>集的優勢

    服務器CPU核心和線程到底是什么?

    CPU核心作為CPU(中央處理單元)的主要處理單元。該組件從計算機內存讀取并執行指令。每個核心一次只能運行一項任務,因此具有多個核心的 CPU
    的頭像 發表于 03-04 17:09 ?1393次閱讀

    【米爾-全志T113-i開發板試用】JPG硬件編碼的實現、YUV轉換neon加速和對比測試

    T113-i只支持jpg/mjpg編碼,并不支持mpeg4/h263/h264/h265/av1這些 也行吧,我們還可以拿這個加速JPG圖片編碼 開發環境配置 基礎開發環境搭建參考上
    發表于 02-12 14:06

    ARM編碼方式與尋址方式有何不同?

    ARM的編指方式與尋址方式有何不同? ARM處理器是一種廣泛應用的微處理器架構,被廣泛用于移動設備、嵌入式設備以及智能家居等領域。在ARM架構編碼方式和尋址方式是兩個關鍵概念,它們在指令
    的頭像 發表于 01-29 18:10 ?701次閱讀

    一文詳解CPU概念及運作原理

    CPU指令集(Instruction Set)是CPU中計算和控制計算機系統所有指令的集合。計算機的程序最終需要轉化為“指令”才能在
    發表于 01-16 10:59 ?2022次閱讀
    一文詳解<b class='flag-5'>CPU</b>概念及運作原理

    PLCMove指令可以實現什么功能?

     Move指令是PLC編程的基本指令之一,常用于在程序對數據進行移動和傳輸。在使用Move指令時,需要注意數據類型、數據長度和地址的確定
    發表于 01-10 15:13 ?1.1w次閱讀
    主站蜘蛛池模板: 寂寞护士中文字幕 mp4| 日本高清免费观看| 亚洲AV无码乱码国产麻豆P| 国产高清砖码区| 亚洲精品人成电影网| 老师破女学生特级毛片| thermo脱色摇床安卓下载| 性感尼姑风流寺| 久久免费看少妇级毛片蜜臀| cntv官网| 亚洲国产成人精品青青草原100| 久久精品热只有精品| 草神被爆漫画羞羞漫画| 亚洲国产成人综合| 美女议员被泄裸照| 国产成人在线网站| 伊人久在线观看视频| 人妻少妇偷人精品无码洋洋AV| 国产亚洲精品视频在线网| 999久久狠狠免费精品| 无码一区二区三区| 秘密教学26我们在做一次吧免费| 国产精品日本无码久久一老A| 中国农村真实bbwbbwbbw| 日韩久久影院| 久久天天躁狠狠躁夜夜呲| 国产99久久久国产精品免费看| 在线观看成人3d动漫入口| 十分钟免费看完整视频| 蜜臀色欲AV无人A片一区| 国产精品一区二区AV白丝在线| 116美女写真成人午夜视频| 无人区大片中文字幕在线| 木凡的天空在线收听| 国产亚洲tv在线观看| 草比比过程图| 中文字幕无码亚洲视频| 胸大美女又黄的网站| 欧美另类极品videosbest| 久久re热线视频精品99| 国产精品999|