Comments
Description
Transcript
HEVC方式による SHVリアルタイムエンコーダ開発 への高位
HEVC方式による SHVリアルタイムエンコーダ開発 への高位合成適用事例 三菱電機株式会社 情報技術総合研究所 山本亮、坂手寛治、本山信明、峯岸孝行 概要 日本では2016年のSHV (Super Hi‐Vision) 実用化試験放送開始を目指している 膨大な信号量を有するSHV映像を 限られた帯域で伝送するために、 高圧縮なリアルタイムエンコーダが必須 HEVC符号化方式を採用し、高位合成で 世界初の、HEVC方式SHVエンコーダを開発 報道資料(13.05.09) 「世界初! スーパーハイビジョン(8K) HEVC符号化装置を開発」 HEVC: High Efficiency Video Coding 2 アウトライン • 背景 – HEVC規格 – 映像系LSI開発の現状 • アルゴリズム開発者による高位合成を使った 設計 – 課題 – 対策 • 実装結果 • 高位合成ツールへの改善要望 • まとめと今後の課題 3 映像符号化の進化 SHV (7680x4320) SHV 高圧縮性能 HEVC/H.265 Cinema (2013年成立) (4096x2048) HDTV IPTV IPTV Blu-ray デジタル放送 家庭用レコーダ 家庭用レコーダ Blu-ray (1920x1080) 解 像 度 2倍 SDTV (720x480) SHV放送 2016年 試験放送(計画) AVC/H.264 監視、ストリーミング 2倍 DVD H.262/MPEG-2 (1994年成立) (2003年成立) QVGA 1セグ放送 (320x240) QCIF (176x144) MPEG-4 (1999年成立) 携帯TV電話 64k 256k 1M 4M ビットレート(bit/sec) 低圧縮性能 16M 64M 4 HEVC規格 HEVCの符号化にはH.264の2~5倍程度の演算量を要する 予測 ブロック サイズ 動きベク トル精度 参照ピ クチャ 数 イントラ 予測 直交変換 ループ ブロック フィルタ サイズ MPEG‐2 MPEG‐4 16x16 半画素 2以下 DC予測 8x8 ― 8x8, 16x16 1/4画素 (8tap) 2以下 AC/DC予 測 8x8 ― H.264 4x4~ 16x16 & H/V shape 1/4画素 (6tap) 5 9モード (通常) 空間予測 4x4, 8x8 デブロッキン 整数変換 グフィルタ HEVC 4x4~ 1/4画素 64x64 & (8&7tap) H/V shape & AMP 5 35モード (通常) 空間予測 4x4~ デブロッキン 32x32 ク、画素 整数変換 適応オフ セット 5 映像系LSI開発の現状 ①早期の市場投入が重要 ・符号化規格後、早期に市場に製品を投入することで、シェア獲得 ②専門のLSI開発者の減少 ・映像系LSI開発は、常時あるわけではなく、映像系専門のLSI設計者 を常に大量に抱えるわけにはいかない ③低コスト化が必須 ・海外との競争の激化により開発コストの削減要求が強い 少人数かつ短期間で、LSI開発をする必要性がある 6 開発の課題(従来の開発体制) ■従来の開発体制だと短期間での開発が困難 ・専門外の分野を理解する必要がある ‐ HEVCのような複雑なアルゴリズムの理解には多大な時間を要する ・情報のやり取りが多い ‐ 伝えることのドキュメント化に時間を要する ‐ 正しく伝わらないことで、仕様誤解釈を招きバグを生じさせる可能性も ⇒一人で両方をカバーできれば、効率化できる アルゴリズム RTL設計 開発担当者 担当者 アルゴリズムの提供 QAリスト ・アルゴリズムのStudy ・RTL設計の検討 仕様書のレビュー アルゴリズムの変更 ・RTL設計の再検討 回路規模など問題点の提示 …. 7 アルゴリズムとRTL設計の両方ができる人材の育て方の比較 ①RTL設計者がアルゴリズム習得する ・アルゴリズム習得に時間がかかる ・プロジェクト毎に工数が必要 ②アルゴリズム開発者がRTL設計を習得する ・RTL設計の習得に時間がかかる ・これまでの環境・言語から大きく変わる ③アルゴリズム開発者が高位合成を習得する ・アルゴリズムは熟知しているので、アルゴリズムのStudyは不要 ・C/C++は得意なので、言語(SystemC)習得に時間を要さない ・アルゴリズムの変更にも柔軟かつ迅速に対応可能 ・アルゴリズムと回路性能(処理サイクル数・回路規模)の探索が容易 8 アルゴリズム設計者が高位合成で設計できるように するための課題と対策 【課題】 RTL設計未経験でも、ちゃんと(設計効率よく、品質に問題なく) 設計できるようにするためには? 【対策】 ①全体のアーキテクチャを仕切れるハード設計者を置く ‐ 大事な箇所は、LSI専門の開発者が仕切る ②事前に高位合成での設計のルールやテクニックを指示 ③All in SystemCで設計する ‐制御回路も含めてSystemCで設計 ‐今回、RTLの資産がある回路やベンダIPを除く全てを高位合成 以降②について説明 9 ツールと言語 【高位合成ツール】 Cyber Work Bench(CWB) ・数年前に数社の高位合成ツールを評価し、CWBを導入を決定 ・これまでにCWBによる高位合成のノウハウを蓄積 【言語】 SystemC ○メリット ・高位合成ツールベンダの言語依存性がない ・制御回路も記述できる ・C++の動作環境さえあれば、シミュレーションができる (ライセンスを気にせず、複数人で同時に実行できる) 10 アルゴリズム開発者が高位合成で設計するための方針 事前に以下のルール・テクニックを指示 • 型にはめる • 回路規模・動作周波数の事前対策 • SystemC実装&高位合成テクニック 11 型にはめる ■型にはめる ・あらかじめ用意したデザインパターンから所望のパターンを選択 ・合成後のRTL品質の確保等のために、アンチパターンも示す アルゴリズム 選択 デザイン パターン ・アーキテクチャ ・SystemCコーディングスタイル ・合成オプション ・検証注意点 参照 アンチ パターン アーキテクチャ (デザインパターン) ・禁止コーディングスタイル デザインパターンにアルゴリズムを埋め込む アルゴリズム 12 回路規模・動作周波数の事前対策 • 回路規模の基本を知る – どんな演算が回路規模が大きいか – 論理等価で回路規模が小さくなるコーディングの仕方 – なんでもできる関数>限定したことしかできない関数 • 単体ブロックで論理合成まで実施し評価 • 論理合成を見据えた対策 – クリティカルパスになりそうな箇所への対策 • DSP、RAMまわり – ボトムアップでの論理合成に備えた実装 13 SystemCの実装テクニックで効率化(パラメータ化) ■似て非なる回路をそれぞれ設計しては、工数がかかる 機能はほぼ同じだが、違う箇所あり ‐ ビット幅、メモリ容量、メモリワード数、段数、演算式、サイクル、、、 回路A1 回路A2 回路A3 … ■テンプレートによるIP化で設計効率改善 ・型や数をパラメータとしてコーディングできるC++言語の構文の1つ ・相違点をパラメータ化し、似て非なる回路の設計効率を改善 パラメータ1 回路A パラメータ2 パラメータ3 回路A1 回路A2 回路A3 14 高位合成ツールの機能を使って効率化(最適化) 【ループアンローリングによるループ展開数の最適化】 最適な(要求サイクル数を満たす最小回路構成)ループ展開数を探索 回路 規模 //ループ展開数指定 = NUM for(int i = 0; i < N; i++){ …… } 処理サイクル数 【配列のメモリorレジスタ指定による最適化】 sc_int<M> Array[SIZE] /*メモリ指定 or レジスタ指定*/; 15 高位合成ツールの機能を使って効率化(実装・デバッグ) 【スケジューリングブロックで細かなタイミング制御】 ・細かな制御を部分的に挿入可能 ・わざわざモジュール分割して 設計する必要なし …….. //{}内のタイミングはユーザが指定できる { a = b; wait(); c = d; wait(); } 【出力更新タイミング】 ・RTLシミュレーションやFPGA実機デバッグに利用 doutが更新されたタイミング でvalidが上がる clk sc_out<bool> dout/*出力更新タイミング信号指定*/; …. dout.write(d); dout valid 16 実装結果 • HEVCリアルタイム符号化アルゴリズムをH.264 の2倍程度(当社比)の回路規模で実現 • RTL設計(従来)比55%の工数削減を達成 3個のFPGAに 機能分割して HEVC符号化 制御回路含む 99%以上の回路を 高位合成で回路作成 HEVC符号化基板 17 装置外観 17枚の符号化基板が 7680×256画素領域の HEVC符号化を実行 18 合成ツールへの改善要望 • 動作周波数改善に苦労 – 配線混雑箇所がクリティカルパスになりやすいが、合 成ツールはそこまで見てくれない – FPGAが大規模がしてくると、より顕著な問題となる • 合成時間の短縮 – 1時間程度、合成に時間がかかった回路あり • ライブラリ・マニュアルの強化 – 汎用的なコンポーネントの充実化 – ノウハウのオープン化 19 高位合成ツールにどこまで期待するか 高位合成ツールに、アーキテクチャ合成を期待 性能や回路 規模に与え る影響度 アルゴリズム レベル アーキテクチャ レベル 回路レベル (FF配置や回路 共有など) ・ツールに任せることができる ・探索もできる ・人手でやるべき箇所 ・人が考えて作り込まないといけない =>アーキテクチャを設計者がコードと オプションで具現化する必要がある ・センスや経験が必要 抽象度 20 HLSツールの今後目指すターゲットユーザ ■SW設計者 ・SoC FPGAのニーズは高まっていく ・SW設計者がFPGAでHW設計する機会は増えると予想 ‐ FPGAツールベンダが高位合成ツールを市販化開始 ■アルゴリズム開発者 ・アルゴリズムは複雑化 ・アルゴリズムの性能だけ追求しては、勝てない ‐ コストとの兼ね合いが重要 高位合成は、HW設計者のためだけのツールではなく、SW 設計者やアルゴリズム開発者にとって、なくてはならない モノになる! 21 まとめと今後の課題 • 高位合成で世界初の、HEVC方式SHVエンコーダ を開発 • RTL設計の経験がないアルゴリズム開発者が中 心となり、高位合成を使って設計 • 今後の課題 – 高位合成のさらなるノウハウの蓄積 – 高位合成の社内普及と高位合成で設計できる人材 の育成 22