91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

使用Catapult HLS流程實現(xiàn)G2 VP9解碼器IP的示例

西門子EDA ? 來源:西門子EDA ? 2026-02-09 10:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

WebM 項目定義了一種開放文件格式,用于在 Web 上分發(fā)壓縮媒體內(nèi)容。Google 是 WebM 項目的主要貢獻者,最近著手設計和開發(fā)了第一個用于 WebM 的硬件解碼器 IP,也稱為 VP9 G2 解碼器。利用這種免版權的硬件 IP,開發(fā)多媒體片上系統(tǒng) (SoC) 設計的公司能夠?qū)崿F(xiàn)下一代性能和功效,在智能電視、平板電腦、移動電話以及傳統(tǒng)個人計算機和筆記本電腦等消費電子設備上實現(xiàn)高達 4K (2160p 60FPS) 分辨率的播放效果。VP9 G2 IP 采用全新硬件架構實現(xiàn),主要是用標準 C++ 編碼和驗證,并利用西門子 EDA(西門子數(shù)字化工業(yè)軟件的一部分)的 Catapult High-Level Synthesis (HLS) 綜合為寄存器傳輸級 (RTL) 邏輯,以支持不同的目標技術和性能點。

簡介

本文介紹用于開發(fā) VP9 G2 硬件解碼器的 HLS 方法,并說明它如何支持實現(xiàn) WebM 項目的目標和戰(zhàn)略。本文解釋了為什么 HLS 方法令設計實現(xiàn)和驗證比傳統(tǒng) RTL 設計流程快 50%,以及它如何讓不同最終產(chǎn)品的設計團隊能夠協(xié)作并為同一 IP 做出貢獻。

本文還會介紹 WebM 團隊在成功實現(xiàn) G2 VP9 的過程中如何實際使用 Catapult HLS,并分享一些結果和感想。圖 1 顯示了該硬件,包括 HLS 生成的 RTL 模塊和手寫 RTL 模塊。順便提一下,該硬件大約有 200 萬門電路,采用 65 納米 TSMC 技術,支持 4K (2160p) @ 60fps。

369bc24e-0264-11f1-90a1-92fbcf53809c.png

▲圖 1. VP9 G2 解碼器硬件

WebM 項目和 G2 VP9

Google WebM 項目的主要目的是改善終端用戶的網(wǎng)絡視頻體驗。用戶收看的視頻質(zhì)量在很大程度上取決于所使用的壓縮格式,但遺憾的是,與消費者對在線視頻的期望相比,壓縮格式的發(fā)展慢如龜速。例如,高效視頻編碼標準(HEVC,也稱為 H.265)花了 10 年時間才從 H.264 發(fā)展出來。而后,IP 設計人員又花了 1 年時間編寫和驗證 RTL,總共耗費 11 年時間才推出一代可用硬件。

WebM 項目的目標是大幅縮短編解碼器設計周期,并計劃每隔幾年更新一次開放格式視頻編解碼器。

WebM 項目的主要好處是促進硬件 IP 協(xié)作,加速創(chuàng)新,并加快部署新的和更好的視頻壓縮標準。在 WebM 模型中,Google 為其半導體合作伙伴提供全功能基礎 IP,鼓勵他們增強 IP 并與 Google 共享這些改進,使 IP 迅速發(fā)展。

目前有十億多終端提供 VP9 解碼支持,包括 Chrome 瀏覽器、Android、FFmpeg 和 Firefox。通過 WebM 網(wǎng)站 可索取使用 Catapult C 開發(fā)的 VP9 硬件編碼器和解碼器。該網(wǎng)站包含有關編碼器和解碼器性能的詳細信息。

快速硬件創(chuàng)新的挑戰(zhàn)

在 VP9 G2 硬件項目即將開始時,WebM 團隊意識到需要一種新的硬件設計方法來支持快速創(chuàng)新。理想情況下,初始硬件和軟件將與技術規(guī)范在同一天交付,這意味著設計人員必須能夠隨著規(guī)范發(fā)展而輕松調(diào)整和更新代碼。

與前一代硬件相比,VP9 G2 視頻硬件的復雜度增加了一倍。這意味著仿真運行時間會過于漫長,全部驗證工作預計要花費數(shù)月時間。另外,在這個特定領域中,測試向量的數(shù)量相當巨大。復雜度的增加不僅會影響總驗證時間,還會影響在合理時間范圍內(nèi)可以測試的內(nèi)容。采用 RTL 仿真時,若不大幅增加測試資源,團隊將無法達到所需的測試水平。

以不同產(chǎn)品或應用為目標的多個設計團隊和公司會提出不同的 RTL 變更,合并這些變更也是不切合實際的。以 RTL 代碼編寫的 IP 包含一定程度的與實現(xiàn)相關的細節(jié),這會顯著降低 IP 的可復用性。如果設計人員想要針對不同的 ASIC 技術復用該代碼,或者以更高時鐘速度運行,或者改變吞吐率,他們要么必須大幅重寫 RTL,要么就得接受次優(yōu)的功耗、性能或面積。

WebM 團隊評估了若干較高抽象層次的工具流程,發(fā)現(xiàn) Catapult C 最符合其需求。

使用 C++ 相比使用 RTL 的優(yōu)勢

C++ 是大多數(shù)微電子工程師熟悉的語言,常用于硬件和軟件工程設計。C++ 描述代表了一種比 RTL 更抽象的編碼風格,其給出的是算法和架構的描述,而不是精確到每個周期的信號和寄存器行為。與 VHDL 和 Verilog 的情況非常相似,C++ 有一個可綜合子集可用于建模和硬件設計。絕大部分標準 C++ 的結構體和方法都是可以使用的,只有少數(shù)例外,其依賴于底層軟件處理器架構來執(zhí)行(例如 “malloc” ),這在硬件實現(xiàn)中是沒有意義的。與 RTL 相比,可綜合 C++ 表示的代碼行數(shù)平均減少 80%,冗長細節(jié)的縮減使其對人類更有意義,調(diào)試也更容易、更快捷。類似的功能用 C++ 仿真的速度要比用 RTL 快 50-1000 倍;當設計和調(diào)試復雜硬件時,使用 C++ 的硬件開發(fā)人員只需大約一半的時間。

C++ 模型常常被開發(fā)為黃金參考模型,硬件設計對照該模型進行驗證。這些參考模型用作硬件實現(xiàn)的起點。如果 C++ 模型本身是可綜合的,則可以避免手動重寫入 RTL,軟件或算法工程師與硬件團隊之間將能實現(xiàn)平滑交接。這會減少因為規(guī)范模糊和誤讀而出錯的機率。在硬件設計過程中,系統(tǒng)架構師和硬件設計工程師均可使用相同的共享代碼庫。以這種方式共享可執(zhí)行代碼意味著概念易于傳達,構思不會有被誤解的風險,并且從概念到實現(xiàn),所有人都可以共享并明確無誤地使用統(tǒng)一的規(guī)范。

在很多不同小組之間共享代碼還需要一個標準化環(huán)境。對用 C++ 建模的設計進行功能驗證時,可以使用眾多行業(yè)標準編譯器和調(diào)試工具中的任何一個,例如 gcc 或 MSVisual C++。還有許多其他工具可用于分析源代碼,對源代碼數(shù)據(jù)庫版本加以控制,以及合并來自多個開發(fā)人員的 C++ 更改。

對于 WebM 團隊的硬件 IP 開發(fā),可在該 IP 仍處于開發(fā)階段時,將 C++ 代碼和標準化開發(fā)環(huán)境與其 IP 合作伙伴共享。反過來,合作伙伴在此過程中也能分享見解并糾正錯誤,使得生產(chǎn)硬件幾乎可以在標準最終確定并發(fā)布的同時交付。

用 C++ 能夠準確描述硬件的一個重要方面是使用比特精確數(shù)據(jù)類型,運用 C++ 類庫可以在任何標準 C++ 環(huán)境中執(zhí)行。其他硬件設計特性,如時鐘頻率、并行性、寄存器和組件共享以及許多其他微架構細節(jié),均未寫入 C++ 代碼中。C++ 模型中僅描述了算法和功能行為。這意味著只需修改用于驅(qū)動綜合工具的命令和約束,同一 C++ 表示便可輕松適用于不同的微架構或性能點以及不同的實現(xiàn)技術(ASIC 和 FPGA)。

總之,基于 C 代碼的 HLS 流程大大減輕了整體 RTL 驗證工作,因為它讓工程團隊可以更迅速地測試源代碼的每項更改,并在不同的硬件和軟件團隊之間共享代碼。源代碼中的低層實現(xiàn)細節(jié)越少,仿真、調(diào)試和修改的速度越快。更高的仿真性能意味著可以運行更多測試以更充分地演練源代碼;利用行業(yè)標準工具來監(jiān)視和檢查測試集提供的功能覆蓋率。設計人員可以快速高效地修改并重新驗證 C++ 模型來對備選算法和架構執(zhí)行一系列假設評估,從而能夠基于實際功耗、性能和面積(而非理論估計)來選擇理想的實現(xiàn)。C++ 就是這樣支持 Google 實現(xiàn)快速創(chuàng)新目標的。

結果和感想

為了管理其第一個 HLS 項目的風險,WebM 團隊決定將視頻解碼器的每個模塊作為一個單獨的項目來實現(xiàn)。該流程允許多個模塊由不同工程師并行優(yōu)化,而頂層互連模型則是手動編寫。它還支持將 Catapult 用在能夠產(chǎn)生極大益處的地方,對算法模塊進行一些必要的探索以確定理想架構。其他包含 SoC 集成關鍵部件(例如時鐘門控、SRAM 容器)的模塊則是用 RTL 實現(xiàn)。其結果便是圖 1 所示的硬件劃分,相應的設計和驗證流程如圖 2 所示。

36fe434c-0264-11f1-90a1-92fbcf53809c.png

▲圖 2. G2 VP9 設計和驗證流程

WebM 工程師需要接受培訓才能使用 HLS,但他們很快意識到,用 C++ 編寫與用 VHDL 或 Verilog 編寫具有相同的 “體驗” 。就像用 RTL 一樣,設計人員首先需要可視化其想要構建的硬件,然后以該硬件為目標來編寫代碼。要學習的主要內(nèi)容是編寫什么樣的 C++ 代碼。

通過轉(zhuǎn)向使用 C++ 的 HLS 流程來開發(fā) VP9 G2 硬件,團隊獲得了以下好處:

一個包含14個模塊設計的總代碼行數(shù)約為69,000。硬件設計團隊估計,要描述相同的模塊,基于 RTL 的方法將需要大約 300,000 行代碼。

C++ 仿真運行比 RTL 快 50 多倍。這大大減少了驗證工作的跟蹤需求,開發(fā)人員可以整天編寫代碼,晚上離開后開始進行回歸處理,第二天早上獲得套件中每項測試的結果。

使用 C++ 實現(xiàn)了 IP 協(xié)作,允許多個貢獻者共享對同一文件的改進,并支持標準工具和流程來合并更改。

HLS 可以在大約一個小時內(nèi)處理完單個模塊。因此,通過修改 C 代碼或改變工具的約束,可以快速完成對模塊不同架構的探索。設計和驗證硬件的總工作量大約為六個月,而用 RTL 手動編寫代碼預計需要一年。

使用 Catapult HLS 流程實現(xiàn)

G2 VP9 解碼器 IP 的示例

幀間預測模塊是 VP9 硬件中較復雜的部分之一。如圖 1 顯示,它是幀間 / 幀內(nèi)預測模塊的一部分。該模塊負責計算連續(xù)視頻幀之間的像素預測值。

376435f8-0264-11f1-90a1-92fbcf53809c.png

▲圖 3. 幀間預測模塊的高層次框圖

如圖 3 所示,幀間預測模塊中有八個進程。該模塊以三種方式進行控制。首先,使用存儲器映射寄存器配置該模塊。其次,將命令流發(fā)送到控制進程,然后控制進程向幀內(nèi)預測模塊中的核心引擎發(fā)出命令。還有一個單獨的預取控制進程會監(jiān)視設計中參考存儲器的狀態(tài),并預取新數(shù)據(jù)。最后,使用流控制握手功能將數(shù)據(jù)流送到 “寫入?yún)⒖即鎯ζ鳌?(Write Ref Mem) 進程。

一旦參考存儲器中有足夠的存儲器可用,該架構便允許幀間預測模塊預取數(shù)據(jù)。然后在正向和反向預測數(shù)據(jù)合并為一個輸出流之前,控制核心 Ref 和 Pred 引擎盡可能快地處理數(shù)據(jù)。幀間預測模塊隨后將數(shù)據(jù)和命令轉(zhuǎn)發(fā)到子系統(tǒng)中的下一模塊,即去塊濾波器

在硬件中,各模塊必須并行運行,速率常常不同。但是,源代碼是順序 C++,因此使用算法 C (AC) ac_channel 數(shù)據(jù)類型來模擬模塊之間的并行性和不同速率。以下代碼是幀間預測模塊的頂層源代碼的簡化版本。

幀間預測模塊大約有 8000 行 C++ 代碼,包括所有相關的頭文件。設計的結構使用 ac_channel 和函數(shù)調(diào)用來描述,然后將每個函數(shù)映射到進程或其他級別的層次結構。ac_channel 的方向取決于 C 代碼中如何使用它,Catapult 檢查每個通道只有一個進程寫入。

在 C++ 仿真中,ac_channel 是一個無限深度的FIFO,支持簡單的分層子系統(tǒng)仿真,就好像函數(shù)并行運行一樣。然后在用 C++ 編寫的完整子系統(tǒng)內(nèi)部仿真源代碼,以確認硬件和軟件都正常工作。為了測試該模塊,每個函數(shù)調(diào)用都包含一個循環(huán),其迭代到所有輸入數(shù)據(jù)都消耗完畢為止。

接下來,pred_inter 函數(shù)被綜合為 RTL。在綜合期間,函數(shù)轉(zhuǎn)換為模塊之間具有固定深度 FIFO 的并行進程。Catapult 為 RTL 生成 SystemC 封裝器,以便可以使用原始測試環(huán)境來確認 RTL 是否正常運行。

然后,pred_inter 的 RTL 需要與其他生成的 RTL 模塊集成,如圖 2 所示。對于 VP9,這種集成是在 Verilog 中手動完成。圖 1 顯示了此子系統(tǒng)中的模塊以及用來連接它們的手工編碼 FIFO。然后運行該子系統(tǒng),使用的仿真激勵與測試原始可綜合 C++ 子系統(tǒng)所用的激勵相同。

最后將 RTL 用于 FPGA 進行原型開發(fā),或用于 ASIC 以完成最終實現(xiàn)。對于這兩個目標,C++ 代碼相同,因此 FPGA 原型開發(fā)可以輕松完成而不會犧牲最終 ASIC 實現(xiàn)的質(zhì)量。

與 VP9 子系統(tǒng)的其余部分一樣,該模塊最初僅針對 VP9 開發(fā),然后做了改進以支持 H.265。根據(jù)編譯時轉(zhuǎn)換,可以將整個子系統(tǒng)重新配置和重新優(yōu)化為僅支持 VP9 或同時支持 VP9 與 H.265。

總結和結語

與許多前沿硬件設計團隊一樣,WebM 硬件團隊需要找到更好的辦法來構建硬件。驗證預計要占開發(fā)工作量的相當大一部分,而且硬件難以復用。最重要的是,這意味著團隊沒有足夠的時間去構建較小、較快、功率效率較高的硬件。

現(xiàn)在,Google 工程師已完成第一個項目,他們學會了在編寫可綜合 C++ 的同時 “考慮硬件” 。他們還學會了為特定類型的硬件編寫什么樣的代碼。截至 2015 年 3 月,該團隊還完成了 VP9 硬件編碼器。此硬件也可以在簡介中提到的 WebM 網(wǎng)站上找到。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 谷歌
    +關注

    關注

    27

    文章

    6254

    瀏覽量

    111333
  • 西門子
    +關注

    關注

    98

    文章

    3310

    瀏覽量

    120351
  • eda
    eda
    +關注

    關注

    72

    文章

    3113

    瀏覽量

    182819

原文標題:谷歌利用 High-Level Synthesis 開發(fā) WebM 視頻解壓縮硬件 IP

文章出處:【微信號:Mentor明導,微信公眾號:西門子EDA】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    2路高性能的網(wǎng)絡(IP)高清視頻解碼器

      九視電子科技JS2020 高清解碼器是一款高性能的網(wǎng)絡(IP)高清視頻解碼器。JS2020可從網(wǎng)絡獲取IP-Camera、流媒體服務
    發(fā)表于 06-02 16:12

    維特比解碼器IP內(nèi)核的輸入

    大家好, 我對Xilinx提供的維特比解碼器IP內(nèi)核的輸入有些輕微的混淆。讓我們假設,我已經(jīng)將來自某些先前塊(1位寬度)的數(shù)據(jù)打孔到去穿孔單元,我可以告訴維特比解碼器關于擦除位的位置。說到這一點,我
    發(fā)表于 04-01 09:35

    G.726語音編解碼器在SoPC中的實現(xiàn)

    在對G.726 語音編解碼標準分析的基礎上給出了基于FPGA 的DSP 設計流程,利用MATLAB/Simulink、DSP Builder 和SOPC Builder 工具設計了G.
    發(fā)表于 11-30 14:59 ?12次下載

    G.726語音編解碼器在SoPC中的實現(xiàn)

    在對G.726語音編解碼標準分析的基礎上給出了基于FPGA的DSP設計流程,利用MATLAB/Simulink、DSP Builder和SOPC Builder工具設計了G.726語音
    發(fā)表于 07-16 15:06 ?18次下載

    On2 Technologies將VP6視頻解碼器技術授權許

    On2 Technologies將VP6視頻解碼器技術授權許可予videantis 視頻壓縮解決方案的領導廠商 On2 Technologies 公司宣布,videantis已經(jīng)獲得
    發(fā)表于 11-11 09:08 ?920次閱讀

    芯原發(fā)布支持HEVC和VP9的Hantro G2視頻解碼IP

    今天,客戶定制化IC與半導體IP領先代工商芯原公司宣布推出Hantro G2多格式視頻解碼IP,支持高效率視頻編碼(HEVC或H.265)標準下超高清4K視頻
    發(fā)表于 06-18 10:52 ?2087次閱讀

    基于ARM Cortex_A9平臺的G_729AB語音編解碼器實現(xiàn)

    基于ARM Cortex_A9平臺的G_729AB語音編解碼器實現(xiàn)
    發(fā)表于 09-28 09:40 ?3次下載
    基于ARM Cortex_A<b class='flag-5'>9</b>平臺的<b class='flag-5'>G</b>_729AB語音編<b class='flag-5'>解碼器</b>的<b class='flag-5'>實現(xiàn)</b>

    姜?。篧ebRTC與VP9優(yōu)化的進展

    LiveVideoStack對Google軟件工程師姜健進行了采訪,聊到了在Google工作的幸福感,WebRTC與VP9的優(yōu)化,以及多媒體工程師發(fā)展空間等。
    的頭像 發(fā)表于 05-16 09:41 ?5250次閱讀

    Achronix與Mentor攜手帶來高等級邏輯綜合(HLS)與FPGA技術之間的連接

    Achronix的Speedcore系列eFPGA可得到Catapult HLS的全面支持。 Catapult HLS為FPGA流程提供集
    的頭像 發(fā)表于 08-30 10:09 ?8355次閱讀

    下載Blackfin H.264解碼器的免費生產(chǎn)版本以及示例和演示代碼。

    下載Blackfin H.264解碼器的免費生產(chǎn)版本以及示例和演示代碼。
    發(fā)表于 04-13 08:40 ?0次下載
    下載Blackfin H.264<b class='flag-5'>解碼器</b>的免費生產(chǎn)版本以及<b class='flag-5'>示例</b>和演示代碼。

    下載Blackfin H.264解碼器的免費生產(chǎn)版本以及示例和演示代碼。

    下載Blackfin H.264解碼器的免費生產(chǎn)版本以及示例和演示代碼。
    發(fā)表于 06-16 11:28 ?0次下載
    下載Blackfin H.264<b class='flag-5'>解碼器</b>的免費生產(chǎn)版本以及<b class='flag-5'>示例</b>和演示代碼。

    VP9視頻標準

    本文檔描述了VP9位流格式的一部分。它涵蓋了高層幀、超幀的格式,以及幀未壓縮報頭的完整格式,以及超幀索引。
    發(fā)表于 09-13 14:58 ?0次下載

    1-of-2解碼器/解復用器-74LVC1G19

    1-of-2 解碼器/解復用器-74LVC1G19
    發(fā)表于 02-10 19:07 ?0次下載
    1-of-<b class='flag-5'>2</b><b class='flag-5'>解碼器</b>/解復用器-74LVC1<b class='flag-5'>G</b>19

    H.265與VP9編碼質(zhì)量的對比

    幾乎不存在差異。 在編碼時間對比中,VP9 完勝 H.265,無論是 4K 視頻還是 1920、1280 分辨率的視頻,VP9 的編碼 耗時都比 H.265 短很多。但是 H.265 的解碼效率略高于
    的頭像 發(fā)表于 07-30 10:07 ?3316次閱讀

    將VIVADO HLS設計移植到CATAPULT HLS平臺

    電子發(fā)燒友網(wǎng)站提供《將VIVADO HLS設計移植到CATAPULT HLS平臺.pdf》資料免費下載
    發(fā)表于 09-13 09:12 ?2次下載
    將VIVADO <b class='flag-5'>HLS</b>設計移植到<b class='flag-5'>CATAPULT</b> <b class='flag-5'>HLS</b>平臺