TOP > 国内特許検索 > サンプル適応オフセット決定装置 > 明細書

明細書 :サンプル適応オフセット決定装置

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2018-061094 (P2018-061094A)
公開日 平成30年4月12日(2018.4.12)
発明の名称または考案の名称 サンプル適応オフセット決定装置
国際特許分類 H04N  19/86        (2014.01)
H04N  19/117       (2014.01)
H04N  19/136       (2014.01)
H04N  19/147       (2014.01)
H04N  19/176       (2014.01)
H04N  19/42        (2014.01)
FI H04N 19/86
H04N 19/117
H04N 19/136
H04N 19/147
H04N 19/176
H04N 19/42
請求項の数または発明の数 6
出願形態 OL
全頁数 37
出願番号 特願2016-195958 (P2016-195958)
出願日 平成28年10月3日(2016.10.3)
新規性喪失の例外の表示 特許法第30条第2項適用申請有り 平成28年8月9日、http://ieeexplore.ieee.org/document/7536655/
発明者または考案者 【氏名】木村 晋二
【氏名】吉村 猛
【氏名】後藤 敏
【氏名】周 剣斌
【氏名】周 大江
出願人 【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
個別代理人の代理人 【識別番号】100121371、【弁理士】、【氏名又は名称】石田 和人
審査請求 未請求
テーマコード 5C159
Fターム 5C159KK03
5C159KK06
5C159KK13
5C159MA05
5C159PP04
5C159TA68
5C159TB08
5C159TC02
5C159TC08
5C159TC19
5C159TD05
5C159TD07
5C159UA02
要約 【課題】面積効率が高く低消費電力を実現可能なサンプル適応オフセット(SAO)決定装置の提供。
【解決手段】SAO補正処理のための各CTBに対するSAOの分類及びオフセット値集合を決定するSAO決定装置であって、統計量収集(SC)モジュールと、パラメータ決定(PD)モジュールとを備え、SCモジュールは、高速動作周波数fの高速クロックにより作動するよう構成し、PDモジュールは、高速クロックをM分周した低速動作周波数f/Mの低速クロックにより作動するように構成した。これにより、SCモジュールとPDモジュールとの間の極めて不均一なデータフローが緩和され、装置全体のスループットが向上し、また高速クロックをM分周して低速クロックを生成することで、各クロックの立ち上がりエッジを同期させるための回路を必要とせず、ハードウェアコストが削減される。
【選択図】図2
特許請求の範囲 【請求項1】
ブロック単位で符号化された動画像の復号画像データにおいて、輝度及び2つの色差の前記復号画像データを構成する各再構成サンプルに対し、各ブロック単位で設定される分類及びオフセット値集合に応じて、当該再構成サンプルのサンプル値に前記オフセット値集合に属する何れかのオフセット値を適応的に加算するサンプル適応オフセット補正処理のための、前記復号画像データの各ブロックに対する前記分類及び前記オフセット値集合を決定するサンプル適応オフセット決定装置であって、
再構成サンプルのサンプル値のレンジを複数の区間に区画した各区間帯域をバンドとし、
連続する4つの前記バンドの組を定めた前記分類をバンド・グループとし、
ブロック内の互いに隣接する3つの再構成サンプルの大小関係のパターンを評価する際の隣接方向を定めた前記分類をクラスとし、
前記各クラスに対して、ブロック内の各再構成サンプルのサンプル値と該再構成サンプルに対し該クラスの隣接方向に隣接する2つの隣接再構成サンプルのサンプル値との大小関係のパターンを類別した小分類をカテゴリとするとき、
前記復号画像データの各ブロックについて、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの数であるサンプル数を算出するとともに、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出し、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの歪み値の和である累計歪み値を算出する統計量収集モジュールと、
前記各ブロックに対し、前記統計量収集モジュールが算出する、前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、前記バンド・グループ又は前記クラスを決定するとともに、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定するパラメータ決定モジュールと、を備え、
前記統計量収集モジュールは、所定の高速動作周波数fの高速クロックにより作動するように構成されているとともに、前記パラメータ決定モジュールは、前記高速クロックを分周比Mで分周した低速動作周波数f/Mの低速クロックにより作動するように構成されていることを特徴とするサンプル適応オフセット決定装置。
【請求項2】
前記統計量収集モジュールが、色差の前記復号画像データの各ブロックに対して、前記各バンド、及び前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値を算出する処理に要する前記高速クロックのクロック・サイクル数をNCSCとし、
前記パラメータ決定モジュールが、輝度及び色差の前記復号画像データの各ブロックに対して、レート歪みコストが最小となる前記バンド・グループ又は前記クラス、及び前記オフセット値集合を決定する処理に要する前記低速クロックのクロック・サイクル数をNCPDとしたとき、
前記分周比Mは、
【数1】
JP2018061094A_000022t.gif
であることを特徴とする請求項1記載のサンプル適応オフセット補正装置。
【請求項3】
前記統計量収集モジュールは、前記復号画像データの各ブロックについて、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値を算出する処理を実行する前に、該ブロック内の一部の再構成サンプルに対して前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出する粗レンジ選択部を備え、
且つ、前記各バンドに対して該ブロック内のサンプル数及び累計歪み値を算出する際には、前記粗レンジ選択部で選出されたバンドのみに対して該ブロック内のサンプル数及び累計歪み値を算出するものであり、
前記パラメータ決定モジュールは、前記各ブロックに対し、前記統計量収集モジュールが算出する、前記粗レンジ選択部で選出された前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、連続する所定数の前記バンドの組合せであるバンド・グループ又は前記クラスを決定し、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定することを特徴とする請求項1又は2記載のサンプル適応オフセット決定装置。
【請求項4】
前記粗レンジ選択部は、前記復号画像データの各ブロックについて所定数のバンドを選出する際に、該ブロック全体に亘り分散して所定のサイズのサンプル・ウィンドウを設定し、前記各サンプル・ウィンドウにより順次取り出される再構成サンプルに対して、前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出することを特徴とする請求項3記載のサンプル適応オフセット決定装置。
【請求項5】
前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する歪み値演算部と、
前記各バンド及び前記各クラスの前記各カテゴリに対して、該ブロック内の各再構成サンプルが該バンド又は該クラスの該カテゴリに属するか否かを判定するカテゴリ分類部と、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内のサンプル数をカウントするカウンタと、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内の再構成サンプルの前記歪み値を累算する累算器と、を備え、
前記カウンタは、カウント値が所定の閾値以上になると、該ブロックに対するサンプル数のカウント動作を終止し、
前記カウンタに対応する前記累算器は、該カウンタがカウント動作を終止することに伴って、該ブロック内の再構成サンプルの前記歪み値を累算する動作を終止することを特徴とする、請求項1乃至4の何れか一記載のサンプル適応オフセット決定装置。
【請求項6】
前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロックをサイズが2×2の部分ブロックに分割し、該ブロック内の前記各部分ブロックに対して順次、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値の累算処理を実行するとともに、
前記各部分ブロックの各サンプル位置に対しては並列に、各サンプル位置の再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する処理、及び該再構成サンプルが属する前記バンド及び前記各クラスの前記カテゴリを決定する処理を実行することを特徴とする請求項1乃至5の何れか一記載のサンプル適応オフセット決定装置。
発明の詳細な説明 【技術分野】
【0001】
本発明は、映像符号化器のループ内フィルタにおいて用いられるサンプル適応オフセット決定装置に関する。
【背景技術】
【0002】
近年、1080p高精細(HD)及び4K(解像度3840×2160)ウルトラHD(UHD)が映像アプリケーションに於いては主流である。そして、次世代の映像アプリケーションに於いては、8K UHD(解像度7680×4320)/120fps(フレーム毎秒)の研究・開発が行われており、これに対する映像符号化規格としてITU-T勧告のH.265/HEVC(以下「HEVC」という。)が策定されている。HEVCにおいては、ループ内フィルタ(in-loop filter:ILF)として、ブロックノイズを低減するためのデブロッキング・フィルタ(deblocking filter:DBF)とモスキートノイズ及び直流成分誤差を低減するためのサンプル適応オフセット(sample adaptive offset:SAO)とが採用された。SAOのVLSIアーキテクチャ設計は、復号器(デコーダ)に於いては計算複雑性が低いため、然程困難ではない。然し乍ら、符号化器(エンコーダ)においては、特にHEVCに対応して低消費電力で且つ小実装面積となるように、リアルタイム処理に適したSAOのハードウェア設計を行うことは難しい技術課題である。
【0003】
SAOは、HEVCにおいて新たに追加された新しいILFであるため、特にここ3年の間に多くの研究がなされている。これらの研究のうちの幾つかは、アルゴリズムをより高速化し、又はハードウェアとの親和性を高めるためにアルゴリズムを改良することを目的としている。非特許文献1,2では、イントラ予測とSAOとの関係について検討がされており、エッジ・オフセット(Edge Offset:EO)のタイプ数を削減して符号化時間を更に削減するため、EOタイプを予測するためにイントラ予測モードを用いることが記載されている。非特許文献3には、幾つかのSAOアルゴリズムが記載されており、それらの間での性能の比較が行われている。非特許文献4には、DBFにおけるデブロック強度(デブロックをかける強度)に基づくSAOカテゴリ決定方法が記載されている。非特許文献5には、クラス結合、事前決定及び結合分離カテゴリに基づくSAOの低複雑度アルゴリズムが記載されている。
【0004】
また、幾つかの文献では、符号化器のためのリアルタイムVLSIアーキテクチャの実装に関する技術が開示されている。非特許文献6では、SAOでの統計収集のためのアーキテクチャが開示されている。非特許文献7では、SAOにおけるパラメータ決定に関するアーキテクチャが開示されている。非特許文献8では、統計収集とパラメータ決定を含むSAOのハードウェア・アーキテクチャが開示されており、当該アーキテクチャを4K@60fps符号化に適用した例が示されている。非特許文献9では、高速SAO推定アルゴリズムが開示されており、当該アルゴリズムに対するVLSIアーキテクチャが開示され、それを8K符号化に適用した例が示されている。
【先行技術文献】
【0005】

【特許文献1】特開2015-32982号公報
【特許文献2】特表2016-506687号公報
【特許文献3】特表2015-521443号公報
【特許文献4】米国特許公開2015/0010052号明細書
【0006】

【非特許文献1】J. Joo, Y. Choi, and K. Lee, “Fast sample adaptive offset encoding algorithm for HEVC based on intra prediction mode”, 3rd IEEE International Conference on Consumer Electronics (ICCE), Berlin, 米国, The Institute of Electrical and Electronics Engineers, Inc., 2013年9月, pp.50-53.
【非特許文献2】J. Joo and Y. Choi, “Dominant edge direction based fast parameter estimation algorithm for sample adaptive offset in HEVC”, in Image Processing (ICIP), 2014 IEEE International Conference on. IEEE, 2014, 米国, The Institute of Electrical and Electronics Engineers, Inc., 2014年10月, pp. 3749-3752.
【非特許文献3】Y. Choi and J. Joo, “Exploration of practical HEVC/H.265 sample adaptive offset encoding policies,” Signal Processing Letters, IEEE, 米国, The Institute of Electrical and Electronics Engineers, Inc., 2015年, Vol. 22, No. 4, pp. 465-468.
【非特許文献4】G. Chen, Z. Pei, Z. Liu, and T. Ikenaga, “Deblocking strength prediction based CUT-level SAO category determination in HEVC encoder,” in Visual Communications and Image Processing Conference, 2015 IEEE. 米国, The Institute of Electrical and Electronics Engineers, Inc., 2015年, pp. 1-4.
【非特許文献5】Gaoxing Chen, Zhenyu Pei, Zhenyu Liu and Takeshi Ikenaga, “Low Complexity SAO in HEVC Base on Class Combination, Pre-decision and Merge Separation”, in Digital Signal Processing (DSP), 2014 19th International Conference on, 米国, The Institute of Electrical and Electronics Engineers, Inc., 2014年8月, pp. 259-262.
【非特許文献6】F. Rediess, R. Conceicao, B. Zatt, M. Porto, and L. Agostini, “Sample adaptive offset filter hardware design for HEVC encoder,” in Visual Communications and Image Processing Conference, 2014 IEEE. 米国, The Institute of Electrical and Electronics Engineers, Inc., 2014年, pp. 299-302.
【非特許文献7】Luciano Agostini, Ruhan Conceicao, Marcelo Porto, Fabiane Rediess, Bruno Zatt, “Cost function optimization and its hardware design for the sample adaptive offset of HEVC standard,” in Signal Processing Conference (EUSIPCO), 2014 Proceedings of the 22nd European. 米国, The Institute of Electrical and Electronics Engineers, Inc., 2014年9月, pp. 206-210.
【非特許文献8】M. Mody, H. Garud, S. Nagori, and D. K. Mandal, “High throughput VLSI architecture for HEVC SAO encoding for ultra HDTV”, in Circuits and Systems (ISCAS), 2014 IEEE International Symposium on. 米国, The Institute of Electrical and Electronics Engineers, Inc., 2014年7月, pp. 2620-2623.
【非特許文献9】J. Zhu, D. Zhou, S. Kimura, and S. Goto, “Fast SAO estimation algorithm and its VLSI architecture”, in Image Processing (ICIP), 2014 IEEE International Conference on. 米国, The Institute of Electrical and Electronics Engineers, Inc., 2014年10月, pp. 1278-1282.
【非特許文献10】Chih-Ming Fu, etc., “Sample Adaptive Offset in the HEVC Standard”, IEEE Transactions on Circuits and Systems for Video Technology, Volume 22, Issue 12, 米国, The Institute of Electrical and Electronics Engineers, Inc., 2012年12月, pp. 1278-1282.
【非特許文献11】F. Bossen, “Common test conditions and software reference configurations,”Joint Collaborative Team on Video Coding (JCT-VC), JCTVCF900, 2011.
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述の非特許文献6~9に開示された符号化器のためのリアルタイムVLSIアーキテクチャの中で、非特許文献8,9に記載のものはSAOの全プロセスを含んでいる。然し乍ら、依然として、更に回路面積を小さくし、更にハードウェア利用率を高めるための改良の余地は多く残されている。
【0008】
そこで、本発明の目的は、上記の従来技術と比べて、より多くの回路面積の削減を行うことが可能であり、且つ更にハードウェア利用率を高めることが可能なリアルタイム処理に適したサンプル適応オフセット決定装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明に係るサンプル適応オフセット決定装置の第1の構成は、ブロック単位で符号化された動画像の復号画像データにおいて、輝度及び2つの色差の前記復号画像データを構成する各再構成サンプルに対し、各ブロック単位で設定される分類及びオフセット値集合に応じて、当該再構成サンプルのサンプル値に前記オフセット値集合に属する何れかのオフセット値を適応的に加算するサンプル適応オフセット補正処理のための、前記復号画像データの各ブロックに対する前記分類及び前記オフセット値集合を決定するサンプル適応オフセット決定装置であって、
再構成サンプルのサンプル値のレンジを複数の区間に区画した各区間帯域をバンドとし、
連続する4つの前記バンドの組を定めた前記分類をバンド・グループとし、
ブロック内の互いに隣接する3つの再構成サンプルの大小関係のパターンを評価する際の隣接方向を定めた前記分類をクラスとし、
前記各クラスに対して、ブロック内の各再構成サンプルのサンプル値と該再構成サンプルに対し該クラスの隣接方向に隣接する2つの隣接再構成サンプルのサンプル値との大小関係のパターンを類別した小分類をカテゴリとするとき、
前記復号画像データの各ブロックについて、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの数であるサンプル数を算出するとともに、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出し、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの歪み値の和である累計歪み値を算出する統計量収集モジュールと、
前記各ブロックに対し、前記統計量収集モジュールが算出する、前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、前記バンド・グループ又は前記クラスを決定するとともに、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定するパラメータ決定モジュールと、を備え、
前記統計量収集モジュールは、所定の高速動作周波数fの高速クロックにより作動するように構成されているとともに、前記パラメータ決定モジュールは、前記高速クロックを分周比Mで分周した低速動作周波数f/Mの低速クロックにより作動するように構成されていることを特徴とする。
【0010】
この構成によれば、統計量収集モジュールを高速クロックで作動させ、パラメータ決定モジュールを低速クロックにより作動させることにより、統計量収集モジュールとパラメータ決定モジュールとの間の極めて不均一なデータフローが緩和され、装置全体のスループットが向上する。また、低速クロックを、高速クロックをM分周して生成することで、各クロックの立ち上がりエッジを同期させるための回路を必要とせず、ハードウェア・コストが削減される。
【0011】
ここで、サンプル適応オフセット決定装置が決定する「分類」とは、サンプル適応オフセット補正処理の類別であり、分類には、所定数のバンド・グループと所定数のクラスとがある。「サンプル」とは、画素を構成する輝度成分及び2つの色差細分のそれぞれの成分のことをいう。「原サンプル」とは、符号化される前の動画像に属するサンプル、「再構成サンプル」とは、ブロック単位で符号化された後に復号された動画像の復号画像データに属するサンプルをいう。「歪み値」とは、再構成サンプルとそれに対応する符号化前の原サンプルとの差をいう。「サンプル値のレンジ」とは、サンプル値が取り得る値の範囲をいう(図4参照)。「バンド」とは、サンプル値のレンジを複数の区間に区画したときの其々の区間帯域をいう(図4参照)。「バンド・グループ」とは、連続する4つのバンドの組を定めた分類をいう(図4参照)。「クラス」とは、それぞれの隣接方向を定めた分類をいい、水平方向、垂直方向、45度斜め方向、135度斜め方向のそれぞれの隣接方向に対応する(図3(a)参照)。「カテゴリ」とは、分類対象の再構成サンプルとそれに隣接する2つの隣接再構成サンプルのサンプル値の大小関係のパターンを類別した小分類をいう(図3(b)参照)。ブロックのバンド・グループ又はクラスに対する「レート歪みコスト」とは、該ブロックのデルタ歪みに、該ブロックを該バンド・グループ又は該クラスによるサンプル適応オフセット補正処理を行い符号化した際に符号化により得られるビットストリームのビット数(ビットレート)とラグランジェ定数との積を加えた値をいう(後述の式(1)参照)。「デルタ歪み」とは、サンプル適応オフセット補正処理を行った後のブロック全体の累計歪み値から、サンプル適応オフセット補正処理を行う前のブロック全体の累計歪み値を差し引いた差をいう(後述の式(4)参照)。「オフセット値集合」とは、一のバンド・グループに属する各バンドに対応するオフセット値の集合又は一のクラスに属する各カテゴリに対応するオフセット値の集合をいう。
【0012】
本発明に係るサンプル適応オフセット決定装置の第2の構成は、前記第1の構成に於いて、前記統計量収集モジュールが、色差の前記復号画像データの各ブロックに対して、前記各バンド、及び前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値を算出する処理に要する前記高速クロックのクロック・サイクル数をNCSCとし、
前記パラメータ決定モジュールが、輝度及び色差の前記復号画像データの各ブロックに対して、レート歪みコストが最小となる前記バンド・グループ又は前記クラス、及び前記オフセット値集合を決定する処理に要する前記低速クロックのクロック・サイクル数をNCPDとしたとき、
前記分周比Mは、
【0013】
【数1】
JP2018061094A_000003t.gif
であることを特徴とする。
【0014】
この構成によれば、統計量収集モジュールとパラメータ決定モジュールをパイプライン処理により並列演算する場合に、両ステージ間のアイドル時間を最小化し、効率よく各ブロックの分類及びオフセット値集合の決定処理を行うことができる。
【0015】
本発明に係るサンプル適応オフセット決定装置の第3の構成は、前記第1又は2の構成に於いて、前記統計量収集モジュールは、前記復号画像データの各ブロックについて、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値を算出する処理を実行する前に、該ブロック内の一部の再構成サンプルに対して前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出する粗レンジ選択部を備え、
且つ、前記各バンドに対して該ブロック内のサンプル数及び累計歪み値を算出する際には、前記粗レンジ選択部で選出されたバンドのみに対して該ブロック内のサンプル数及び累計歪み値を算出するものであり、
前記パラメータ決定モジュールは、前記各ブロックに対し、前記統計量収集モジュールが算出する、前記粗レンジ選択部で選出された前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、連続する所定数の前記バンドの組合せであるバンド・グループ又は前記クラスを決定し、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定することを特徴とする。
【0016】
この構成によれば、粗レンジ選択部により全バンド中から所定数のバンドを高尤度候補バンドとして選出することにより、統計量収集モジュールにおける、各バンドに対するブロック内のサンプル数及び累計歪み値を算出する際の並列度と、パラメータ決定モジュールにおける、各バンド・グループのレート歪みコストを演算する際の並列度を削減することができる。これにより、最適バンド・グループ又はクラスの誤選択に起因する符号化効率の低下を抑えつつ、ハードウェアに実装する際の実装面積及び消費電力を大幅に削減することが可能となる。
【0017】
ここで、「度数が最も大きいバンドを中心とする連続する所定数のバンド」とは、度数が最も大きいバンド・インデックス(各バンドをレンジが小さい順に0から順に附番したインデックスをいう。)を中央値とする連続する所定数のバンド・インデックスの集合の各要素に対応するバンドを意味する。即ち、度数が最も大きいバンド・インデックスをi、選択するバンド数である「所定数」をNとすると、バンド・インデックスがi-[N/2-1]からi-[N/2-1]+N-1(但し、[ ]はガウス記号)まで、又はi-[N/2]からi-[N/2]+N-1までのバンドをいう。但し、i-[N/2-1]<0の場合はバンド・インデックスが0からN-1まで、i-[N/2-1]+N-1>indmax(但し、indmaxはバンド・インデックスの最大値)の場合はバンド・インデックスがindmax-N+1からindmaxまでとする。また、選択するバンド数をNは、バンド・グループのバンド数以上で且つ全バンド数よりも小さい値とする。Nがバンド・グループのバンド数よりも小さいとバンド・グループのレート歪みコストの評価ができなくなり、また、Nが全バンド数と同じだと粗レンジ選択の意味を成さないからである。本発明では所定数Nは特に限定しないが、Nとして適切な値としては、8(=2)~16(=2)が好適である。
【0018】
本発明に係るサンプル適応オフセット決定装置の第4の構成は、前記第3の構成に於いて、前記粗レンジ選択部は、前記復号画像データの各ブロックについて所定数のバンドを選出する際に、該ブロック全体に亘り分散して所定のサイズのサンプル・ウィンドウを設定し、前記各サンプル・ウィンドウにより順次取り出される再構成サンプルに対して、前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出することを特徴とする。
【0019】
この構成によれば、粗レンジ選択部による所定数の高尤度候補バンドを選出する際に、ブロック全体に亘って評価サンプルが選択されるため、誤った高尤度候補バンドが選出される確率が低下し、最適バンド・グループ又はクラスの誤選択に起因する符号化効率の低下を抑制することが出来る。
【0020】
ここで、本発明では、ブロック内におけるサンプル・ウィンドウのサイズや数や位置設定に関しては特に限定しないが、ブロック全体のバンドの分布をできるだけ正確に抽出する観点から、サンプル・ウィンドウの位置はできるだけブロック全体に亘り一様に分散して設けることが好ましい。例えば、サンプル・ウィンドウを一定間隔で格子状に設定する方法などを採ることが出来る。
【0021】
本発明に係るサンプル適応オフセット決定装置の第5の構成は、前記第1乃至4の何れか一の構成に於いて、前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する歪み値演算部と、
前記各バンド及び前記各クラスの前記各カテゴリに対して、該ブロック内の各再構成サンプルが該バンド又は該クラスの該カテゴリに属するか否かを判定するカテゴリ分類部と、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内のサンプル数をカウントするカウンタと、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内の再構成サンプルの前記歪み値を累算する累算器と、を備え、
前記カウンタは、カウント値が所定の閾値以上になると、該ブロックに対するサンプル数のカウント動作を終止し、
前記カウンタに対応する前記累算器は、該カウンタがカウント動作を終止することに伴って、該ブロック内の再構成サンプルの前記歪み値を累算する動作を終止することを特徴とする。
【0022】
この構成によれば、各カウンタ及びそれに対応する累算器を、該カウンタのカウント値が一定の閾値を超えた時点で早期に終止させることで、最適バンド・グループ又はクラスの誤選択に起因する符号化効率の低下を抑えつつ、統計量収集モジュールの消費電力を削減することが出来る。また、カウンタが出力するカウント値及び累算器が出力する累算した歪み値の上限が制限されるため、これらカウンタ及び累算器の出力ラインのデータ幅を、早期終止しない場合に比べて削減することが出来、これにより実装面積を削減するとともに消費電力も削減することができる。
【0023】
ここで、「カウンタに対応する累算器」とは、「該カウンタに対応するバンド又はクラス/カテゴリ」に対応する累算器をいう。
【0024】
本発明に係るサンプル適応オフセット決定装置の第6の構成は、前記第1乃至5の何れか一の構成に於いて、前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロックをサイズが2×2の部分ブロックに分割し、該ブロック内の前記各部分ブロックに対して順次、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値の累算処理を実行するとともに、
前記各部分ブロックの各サンプル位置に対しては並列に、各サンプル位置の再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する処理、及び該再構成サンプルが属する前記バンド及び前記各クラスの前記カテゴリを決定する処理を実行することを特徴とする。
【0025】
この構成によれば、SMIC 40nmプロセス下において、HEVCにおける8K@120fpsに対して、ハードウェア並列度と最大クロック周波数とを相互最適化することが可能となる。
【発明の効果】
【0026】
以上のように、本発明のサンプル適応オフセット決定装置によれば、統計量収集モジュールを高速クロックで作動させ、パラメータ決定モジュールを低速クロックにより作動することにより、統計量収集モジュールとパラメータ決定モジュールとの間の極めて不均一なデータフローを緩和し、装置全体のスループットを向上させつことが可能となる。また、低速クロックを、高速クロックをM分周して生成することで、各クロックの立ち上がりエッジを同期させるための回路を必要としたいため、装置全体のハードウェア・コストが削減される。
【0027】
また、粗レンジ選択部により全バンド中から所定数の高尤度候補バンドを選出し、バンドに関しては、全バンドではなく高尤度候補バンドに対してのみ統計収集及びパラメータ決定処理を実施することで、統計量収集モジュールにおけるサンプル数及び累計歪み値を算出する各累算器の並列度と、パラメータ決定モジュールにおける、各バンド・グループのレート歪みコストを演算する演算器の並列度を削減することができ、符号化効率の低下を抑えつつ、ハードウェアに実装する際の実装面積及び消費電力を大幅に削減することが可能となる。
【0028】
また、各カウンタ及びそれに対応する累算器を、該カウンタのカウント値が一定の閾値を超えた時点で早期終止させることで、符号化効率の低下を抑えつつ、統計量収集モジュールの消費電力を削減することが出来る。また、これらカウンタ及び累算器の出力ラインのデータ幅を、早期終止しない場合に比べて削減することが出来、これにより実装面積を削減するとともに消費電力も削減することができる。
【図面の簡単な説明】
【0029】
【図1】映像符号化装置全体の構成を表すブロック図である。
【図2】実施例1におけるサンプル適応オフセット決定装置の全体構成を表すブロック図である。
【図3】EOにおけるサンプル分類(クラス/カテゴリ)の各パターンを示す図である。
【図4】BOにおける32のバンドを示す図である。
【図5】実施例1のサンプル適応オフセット決定装置における統計量収集手順の一例を表す図である。
【図6】図2のサンプル適応オフセット決定装置における統計量収集モジュール21のハードウェア構成を表すブロック図である。
【図7】カテゴリ及びバンドのビットマップの例を示す図である。
【図8】図2のサンプル適応オフセット決定装置におけるパラメータ決定モジュール22のハードウェア構成を表すブロック図である。
【図9】SMIC 40nmプロセス下での、SCにおける並列度Nと、NAND換算ゲート数,8K@120fpsのための必要最小周波数,及び達成可能な最大周波数との関係を示す図である。
【図10】SCとPDのためのパイプライン処理におけるCTB処理のスケジュールを表す図である。
【図11】1CTB内の各バンド内のサンプル数の度数分布の一例を表す図である。
【図12】各種映像シーケンスの1CTB内のバンド数の分布を測定した結果を表す図である。
【図13】粗レンジ選択部におけるBOに対するバンドの粗レンジ選択処理の流れを示す図である。
【図14】実施例1のサンプル適応オフセット決定装置の実装例のレイアウトを示した図である。
【発明を実施するための形態】
【0030】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【実施例1】
【0031】
(1)映像符号化装置全体の構成
図1は、映像符号化装置全体の構成を表すブロック図である。図1の映像符号化装置は、HEVCに準拠して構成されている。図1において、映像符号化装置1は、ブロック分割部2、イントラ予測部3、変換・量子化部4、エントロピ符号化部5、符号化制御部6、逆量子化・逆変換部10、ループ内フィルタ11、フレームメモリ12、動き検出部13、動き補償部14、動き差分画像生成部15、イントラ・インター予測切替部16,17、及び動き差分画像合成部18を備えている。また、ループ内フィルタ11は、デブロッキング・フィルタ11a及びサンプル適応オフセット決定装置11bにより構成されている。この映像符号化装置1の構成については、HEVCにおける標準的なものであるため、詳細については省略して概要のみを簡単に説明する。
【実施例1】
【0032】
入力された映像データの各ピクチャは、ブロック分割部2において符号化ツリーブロック(Coding Tree Block:CTU)にブロック分割される。CTUは、輝度成分(以下「luma」という。)及び2つの色差成分(以下「chroma」という。)Cr,Cbに対する符号化ツリーブロック(Coding Tree Block:CTB)により構成される。各CTUは、イントラ予測部3でフレーム内予測(イントラ予測)が実行される。変換・量子化部4は、イントラ予測部3が出力するイントラ予測符号化画像又は後述の動き動き差分画像生成部15が出力するインター予測符号化画像を、CTBから分割生成される変換ユニット(Transform Unit:TU)単位で直交変換し量子化する。HEVCでは、直交変換にはDCTを整数演算で近似した整数DCTが用いられる。エントロピ符号化部5は、変換・量子化部4が出力する符号化画像をエントロピ符号化により圧縮し、符号化映像のビットストリームとして出力する。HEVCでは、エントロピ符号化として文脈ベース適応二値算術符号化(Context-based Adaptive Binary Arithmetic Coding:CABAC)が採用されている。符号化制御部6は、量子化パラメータ等の付帯情報によりエントロピ符号化部5の符号化動作を制御する。
【実施例1】
【0033】
逆量子化・逆変換部10は、変換・量子化部4が出力する符号化画像を、逆量子化し逆変換することにより、変換符号化前のCTUを再構成する。ループ内フィルタ11は、再構成されたCTUをフィルタ処理することにより歪みの低減を行う。ここで、HEVCでは、ループ内フィルタ11としてデブロッキング・フィルタ11a及びサンプル適応オフセット決定装置11bが採用されている。デブロッキング・フィルタ11aは、各CTB間のブロック境界を平滑化することにより、変換符号化と量子化により生じるブロックノイズの低減を行う。また、サンプル適応オフセット決定装置11bは、luma及びchromaの各CTBについて、CTB内のサンプル(画素)ごとに、適応的にオフセット補正を行うことにより、動き補償のずれ等により生じるDCオフセットや変換符号化により生じるリンギング・アーティファクト等のモスキートノイズの低減を行う。フレームメモリ12は、ループ内フィルタ11によりフィルタ処理された再生フレーム(再生映像の各フレーム画像)を一時的に保存するメモリである。
【実施例1】
【0034】
動き検出部13は、フレーム間において、CTBから分割生成される予測ユニット(Prediction Unit:PU)単位でフレーム間動き補償推定を行い、各PUの動きベクトルを算出する。動き補償部14は、動き検出部13が算出する各PUの動きベクトルに基づき、他のフレーム画像から動き予測画像を合成する。動き差分画像生成部15は、ブロック分割部2でブロック分割された原フレームに対して、動き補償部14で合成された動き予測画像を差し引くことにより、動き差分画像(インター予測符号化画像)を生成する。イントラ・インター予測切替部16,17は、イントラ予測とインター予測の切り換えを行うスイッチであり、イントラ・インター予測切替部16は、変換・量子化部4に入力するフレーム画像を、イントラ予測符号化画像又はインター予測符号化画像の何れかに選択的に切り替える。イントラ・インター予測切替部17は、逆量子化・逆変換部10が出力する再構成されたCTUに対して、さらに動き補償の復号を行うか否かを選択的に切り替える。動き差分画像合成部18は、逆量子化・逆変換部10が出力する再構成された再構成フレーム画像に対して、動き差分画像生成部15で合成されたインター予測符号化画像を加えることにより、インター予測符号化前の再構成画像の再生を行う。
【実施例1】
【0035】
(2)SAOアルゴリズムの概要
次に、SAOにおいて実行されるサンプル適応オフセット(Sample Adaptive Offset:SAO)アルゴリズムの概要について説明する。尚、このSAOで行われるべき標準的な補正処理については、HEVCにおいて具体的に規定されている。
【実施例1】
【0036】
SAOでは、CTUにおける符号化歪みを低減させるために、サンプル値(画素値)に対して、当該サンプル毎に適応したオフセットを加える補正を行う。各サンプルに適用されるオフセットは、当該サンプルの分類に従って定められる。このサンプルの分類は、エッジ・オフセット(Edge Offset:EO)とバンド・オフセット(Band Offset:BO)の2種類がある。EOとは、4つの隣接方向(水平方向、垂直方向、45度斜め方向、135度斜め方向)を定めるクラスのうち一のクラスに対し、処理対象サンプルのサンプル値と、該クラスの隣接方向に該処理対象サンプルと隣接する2つの隣接サンプルのサンプル値との大小関係のパターンに応じて、処理対象サンプルにオフセット値を加える補正処理をいう。BOとは、サンプル値のレンジを均等に32個のバンドに分割し、連続する4つのバンドからなる一のバンド・グループに属する処理対象サンプルに対して、該処理対象サンプルのサンプル値に、該サンプル値が属するバンドに応じて、オフセット値を加える補正処理をいう。
【実施例1】
【0037】
図2は、実施例1におけるサンプル適応オフセット決定装置11bの全体構成を表すブロック図である。サンプル適応オフセット決定装置11bは、統計量収集モジュール21、パラメータ決定モジュール22、サンプル・レジスタ23,24、オフセット補正モジュール25、分周器26を備えている。サンプル・レジスタ23,24は、それぞれ、各CTBにおける原サンプル,再構成サンプルのサンプル値を一時保存するレジスタである。ここで、「原サンプル」とは、映像符号化装置1による符号化がされる前のオリジナル映像の各フレームの画素(サンプル)をいう。「再構成サンプル」とは、変換・量子化部4で符号化された後、逆量子化・逆変換部10、動き差分画像合成部18及びDBF11aで再構成されたフレームのサンプルをいう。統計量収集モジュール21は、再構成サンプルの各CTBに対して、原サンプルの対応するCTBを参照して、SAOの各EOクラスの各EOカテゴリ、及びBOの各バンドに対する歪み値の統計量を演算するモジュールである。パラメータ決定モジュール22は、統計量収集モジュール21において収集された各EOカテゴリ及び各バンドに対する歪み値の統計量に基づき、最適なSAOパラメータを決定するモジュールである。オフセット補正モジュール25は、パラメータ決定モジュール22において決定されたSAOパラメータにより、デブロッキング・フィルタ11aが出力する再構成フレーム画像に対してオフセット補正を行い、補正した再構成フレーム画像をフレームメモリ12へ出力するモジュールである。分周器26は、外部から入力される統計量収集モジュール21に対するクロックclkbaseを分周し、パラメータ決定モジュール22のためのクロックclklowを生成する。
【実施例1】
【0038】
符号化器側に於いて行うべきタスクは、各CTUに対して最適なサンプルの分類とオフセット値とを決定することである。図2のグレーに附色した構成部分で示すように、このタスクを実行する全体過程は、大きく分けて統計量収集(Statistics Collection:SC)過程(統計量収集モジュール21の処理)とパラメータ決定(Parameter Decision:PD)過程(パラメータ決定モジュール22の処理)とからなる。図1に示すように、SAOはデブロッキング・フィルタ(Deblocking Filter:DBF)の後段に置かれ、DBFが出力する再構成サンプルに対して、CTB単位でSC及びPDが実行される。SCでは、最初に、CTB内のそれぞれの再構成サンプルに対して、BOとEOのそれぞれについて、バンド又はカテゴリが決定され、続いて、当該CTBにおける各バンド及びカテゴリの統計量が収集される。PDでは、前記SCにおいて収集された当該CTBにおける統計量と、当該CTBの左側及び上側に隣接するCTBのSAOパラメータ・セットとに基づき、レート歪みコストが最小となる最適パラメータ・セットを決定し、これを当該CTBのSAOパラメータ・セットとして出力する。SAOパラメータ・セットは、表1に示すように、SAOモード、SAOタイプ、SAOオフセットを含んでいる。尚、表1において、SAOモード0(SAO OFF)はSAOを適用しないモード、SAOモード2(Merge_Mode)は隣接CTUのSAOパラメータ・セットを現CTUのSAOパラメータ・セットにコピーするマージ・モードであり、Merge_Upper,Merge_Leftは、それぞれ上側,左側のCTUのSAOパラメータ・セットをコピーして用いる。SAOモード1(New_Mode)は、新たなSAOパラメータ・セットを使用するモード(新RDOモード:New Rate-distortion optimization (RDO) mode)である。また、「BO」はバンド・オフセット、SAOタイプの「EO_*」はエッジ・オフセットであり、EO_0,EO_90,EO_135,EO_45は、それぞれ図3(a)の同符号に対応する。
【実施例1】
【0039】
【表1】
JP2018061094A_000004t.gif
【実施例1】
【0040】
(2.1)統計量収集
EOに関しては、図3(a)に示すように、クラス0~クラス3の4つの1次元方向パターン(EO_0,EO_90,EO_135,EO_45)に沿って、注目サンプルc及び1次元方向に隣接する隣接サンプルa,bのサンプル値の大小関係がそれぞれ検査され、その大小関係に従って、各クラスに対する注目サンプルcのカテゴリが、図3(b)に示すような4つのEOカテゴリ(カテゴリ1~4)の何れかに決定される。尚、カテゴリ1~4の何れにも該当しない場合は、注目サンプルcのカテゴリは、カテゴリ0はオフセット非適用のカテゴリ0とされる。尚、カテゴリ1~4については、オフセットの符号はそのカテゴリ番号に対応して一意的に決められており、各EOカテゴリのオフセット符号は図3(b)の矢印で示した通りとされている。統計量収集(Statistics Collection:SC)では、CTB内の全サンプルについて、各EOクラスの各EOカテゴリに属するサンプルの度数統計及び歪み値の統計をとる。
【実施例1】
【0041】
BOに関しては、各サンプルのサンプル値が属するバンドが決定される。図4に示したように、サンプルのダイナミック・レンジ(0~2BitDepth-1;BitDepth = 8 はサンプルのビット深度)は32バンドに等分割される。サンプル値が区間[8k, 8k+7]に属する場合には、当該サンプルはバンドkに分類される。SCでは、CTB内の全サンプルについて、属するバンドの度数統計をとり、最も度数の大きい連続した4つのバンドが、各EOクラスの各EOカテゴリと比較するための、BOに対する候補として選定される。
【実施例1】
【0042】
具体的なSCの手順について説明する。図5は、サンプル適応オフセット決定装置11bにおける統計量収集手順の一例を表す図である。CTB内の各原サンプル(符号化前のサンプル)及び各再構成サンプル(変換・量子化部4で符号化された後、逆量子化・逆変換部10、動き差分画像合成部18及びDBF11aで再構成されたサンプル)は、ラスタ走査順に走査される。図5では、CTB内の各原サンプル及び各再構成サンプルは、2×2画素の部分ブロック(Org. samples 2×2)を単位ブロックとして走査が行われ、原サンプルは走査点位置に対応する2×2部分ブロック31が一度に読み出され、再構成サンプルについては、原サンプルの2×2部分ブロック31を中心としそれに隣接するサンプルを含む4×4画素の部分ブロック(Rec. samples 4×4)が一度に読み出される。図5においては、再構成サンプルの4×4部分ブロック32内のグレーで附色した部分が、原サンプルの2×2部分ブロック31と同じ位置に対応している。
【実施例1】
【0043】
尚、本実施例では、一度に処理する部分ブロックのサイズを2×2とした例を示すが、このサイズは任意に設定することができ、例えば、部分ブロックのサイズを4×4とし、図5の原サンプルの2×2部分ブロック31のサイズを4×4に、図5の再構成サンプルの4×4部分ブロック32のサイズを6×6に変更することもできる。
【実施例1】
【0044】
歪み値演算部33は、原サンプルの2×2部分ブロック31内の各画素と、それに対応する再構成サンプルの2×2部分ブロック32a内の各画素との差分(原サンプル値-再構成サンプル値)を演算し、算出される差分値を区間[-15,15]内にクリップする(即ち、(差分値)<-15の場合は差分値を-15とし、(差分値)>15の場合は差分値を15とする)。クリップされた2×2個の差分値は歪みマップ34に一時保存される。歪みマップ34に保存された値が、走査点の再構成サンプルの4×4部分ブロック32の中央の2×2部分ブロック32a内の各画素の歪み値である。
【実施例1】
【0045】
EOに関しては、EO分類部35aが、走査点の再構成サンプルの4×4部分ブロック32の中央の2×2部分ブロック32aについて、当該2×2部分ブロック32a内の各サンプルを、EOクラス0~3(EO_0, RO_90, EO_45, EO_135)のそれぞれの1次元方向について、カテゴリ0~4のEOカテゴリに分類する。このとき、分類対象の注目サンプルcに対して各クラスの1次元方向に隣接するサンプルa,bが参照される(図3(a)参照)。分類された各EOクラスのカテゴリの番号は、各EOクラスに対応したカテゴリマップ36a1~36a4に一時保存される。
【実施例1】
【0046】
一方、BOに関しては、BO分類部35bが、走査点の再構成サンプルの4×4部分ブロック32の中央の2×2部分ブロック32aについて、当該2×2部分ブロック32a内の各サンプルを、そのサンプルのサンプル値が属するバンド(バンド0~31の何れか)に分類する。分類されたバンドの番号は、バンドマップ36b(図5では16進数表示)に一時保存される。
【実施例1】
【0047】
そして、各EOクラスに対応したカテゴリマップ36a1~36a4及びバンドマップ36bに保存された各EOクラスのカテゴリ番号及びBOのバンド番号に応じて、各EOクラスのカテゴリ番号及びBOのバンド番号に対応して設けられた累算器40及びカウンタ41の値が更新される。累算器40及びカウンタ41のセットは、4(クラス)×4(カテゴリ)=16個のEOカテゴリ及び32個のBOバンド(以下、これらをまとめて「48分類」という。)に対応して、合計48セット設けられている。例えば、図5に例示したように、再構成サンプルの2×2部分ブロック32aの左上画素について、EO_0, EO_90, EO_45, EO_135の各EOクラスのカテゴリがそれぞれ1,1,2,1,BOクラスのバンドが4の場合、スイッチング部39は、EOクラスEO_0のカテゴリ1,EOクラスEO_90のカテゴリ1,EOクラスEO_45のカテゴリ2,EOクラスEO_135のカテゴリ1,BOのバンド4に対応する累算器40を歪みマップ34の左上画素に接続し、接続されたそれぞれの累算器40は、自己が保持している値に当該レジスタの値を加算する。そして、前記加算が行われた累算器40に対応するカウンタは、カウント値を1だけインクリメントする(尚、図5はアルゴリズムを説明する図であり、実際にハードウェアに実装して行われる処理(図6参照)は並列化されるため、これとは若干異なる)。同様の操作を、再構成サンプルの2×2部分ブロック32aの右上画素,左下画素,右下画素について行い、1走査点(2×2ブロック)についての統計値収集操作が完了する。このようにして、各EOクラスの各EOカテゴリの発生度数及びBOの各バンドの発生度数は、そのEOクラス/EOカテゴリ又はBOバンドに対応するカウンタ41で累算され、それぞれに対応する歪み値は累算器40で累算される。CTB内の各走査点についての統計値収集操作が完了すると、各累算器40で累算された歪み累計値、及び各カウンタ41でカウントされた度数値が、パラメータ決定モジュール22へ出力される。
【実施例1】
【0048】
(2.2)パラメータ決定
PDの目的は、上記SCで収集された統計量に基づき、各CTUに対するSAOパラメータを決定することである。SAOパラメータは、表1に示したように、SAOモード、SAOタイプ、タイプ補助情報、及び4つのオフセット値を含む。SAOパラメータの決定に際しては、レート歪みコスト(以下「RDコスト」という。)が最小となるパラメータ・セットが選択される。ここで、48分類のそれぞれに対するRDコスト Cost は次式により定義される。
【実施例1】
【0049】
【数2】
JP2018061094A_000005t.gif
【実施例1】
【0050】
ここで、δDは現CTB内におけるSAO補正後の累計歪み値DpostとSAO補正前の累計歪み値Dpreとの差(以下「デルタ歪み(delta distortion)」という。)、rateは当該CTBを符号化するためのビット数(エントロピ符号化部5の出力ビット数)、λはラグランジェ定数である。CTB内の原サンプルとSAO補正後のサンプルとの間の累計歪み値Dpost及び原サンプルとSAO補正前(DBF適用後)のサンプルとの間の累計歪み値Dpreは次式で表される。
【実施例1】
【0051】
【数3】
JP2018061094A_000006t.gif
【実施例1】
【0052】
ここで、cは注目サンプル、CはCTB内の特定のSAOタイプ(BO又はEO),特定のバンド・グループ又はEOクラス,及び特定のバンド又はカテゴリに所属するサンプルの集合である。「バンド・グループ」とは、連続する4つのBOのバンドを一組としたグループをいう。org(c)は注目サンプルcの原サンプルのサンプル値、recpre(c)は注目サンプルcのSAO補正前の再構成サンプルのサンプル値、recpost(c)は注目サンプルcのSAO補正後の再構成サンプルのサンプル値、offsetはオフセット値である。尚、オフセット値offsetは、1つの分類に対しては1つのCTB内で共通の値が使用される。オフセット値offsetは、SCの結果である歪み累計値Sum及び度数値Countから次式で算出される。
【実施例1】
【0053】
【数4】
JP2018061094A_000007t.gif
また、デルタ歪みδDの演算は、式(2a),(2b)より、SCの結果である歪み累計値Sum及び度数値Countから、次のように簡単に計算することができる。
【実施例1】
【0054】
【数5】
JP2018061094A_000008t.gif
【実施例1】
【0055】
2つのマージ候補(Merge_Upper,Merge_Left)、29の全てのバンド・グループの候補、4つの全てのEOクラスの候補、並びにSAO非適用(δD=0)の候補のRDコストCostを比較し、最小のRDコストを有する候補のパラメータ・セットが、当該CTBに対するSAOパラメータに決定される。
【実施例1】
【0056】
尚、BOのために32のバンドがあるが、SAOにおけるBOでは、連続する4つのバンドからなるバンド・グループが用いられるため、BOに関する候補は29のバンド・グループである。各バンド・グループのRDコストは、当該バンド・グループに属する4つのバンドのRDコストCostの合計である。また、EOについては、SCにより各EOクラスに対して4つのEOカテゴリのRDコストが得られるが、それぞれのEOクラスに対するRDコストは、当該EOクラスに属する4つのEOカテゴリのRDコストCostの合計である。
【実施例1】
【0057】
(2.3)ハードウェア・フレンドリなSAO
ハードウェア実装に適したものとするため、最適なバンド・グループの開始バンド番号band_positionの決定に際しては、バンド・グループに属する各バンドのRDコストCostの合計の代わりに、バンド・グループに属する各バンドのδDの合計を用いる(即ち、λ=0とする)。また、式(1)のビットレートrateについては、表2に記載するような定数で近似する。
【実施例1】
【0058】
【表2】
JP2018061094A_000009t.gif
【実施例1】
【0059】
また、マージ・モード(Merge_Upper,Merge_Left)では、上側及び左側のCTUのSAOパラメータがCTU単位でコピーして用いられるが、式(1)のRDコスト計算は、1つの輝度及び2つの色差Cr,Cbの其々のCTBについての式であり、RDコストの比較の際の評価基準が問題となる。そこで、マージ・モードとの比較に際しては、輝度及び2つの色差Cr,Cbの其々のRDコストを次式で変換したCOT(cost_transformed)を使用する。
【実施例1】
【0060】
【数6】
JP2018061094A_000010t.gif
【実施例1】
【0061】
ここで、添字“y”は輝度に対する値、添字“c”は色差Cr,Cbに対する共通の値、添字“cr”,“cb”はそれぞれ色差Cr,Cbに対する個別の値を意味する。ratey, ratecについては、それぞれ、表2に示した定数luma_param_rate, chroma_param_rateが用いられる。
【実施例1】
【0062】
SAOにおいて、上述のSCとPDは直列に順次実行される。然し乍ら、SCとPDでは、必要とする処理すべき計算量に大きな違いがあり、これにより極めて不均一なデータフローが生じ、効率的なSAOの実装を妨げる要因となる。そこで、本実施例のサンプル適応オフセット決定装置11bでは、SCとPDとを別々のクロックで駆動する「デュアルクロック・アーキテクチャ(dual-clock architecture)」を採用する。その詳細については後述する。
【実施例1】
【0063】
また、一般的なSAOでは、BOに関して32バンドのSCが実行されるが、本実施例のサンプル適応オフセット決定装置11bでは、各CTBにおいて、最も選択される可能性が高いバンドを推定し、最良のバンドを探索する領域を32バンドから8バンドへ減少させる。この方法を、「BOの為の粗レンジ選択(Coarse Range Selection for BO)」と呼ぶ。その詳細については後述する。
【実施例1】
【0064】
また、SCにおける処理時間を短縮するため、本実施例のサンプル適応オフセット決定装置11bでは、累算器40及びカウンタ41による統計量収集処理が終止する閾値を設定する「累算器の早期終止(Accumulators' Early Termination)」スキームを採用する。その詳細についても後述する。
【実施例1】
【0065】
(3)サンプル適応オフセット決定装置のハードウェア実装
(3.1)統計量収集モジュール
図6は、図2のサンプル適応オフセット決定装置11bにおける統計量収集モジュール21のハードウェア構成を表すブロック図である。図6において、統計量収集モジュール21は、歪み値演算部33、カテゴリ分類部35、歪み値集計部37a,37b、ビットマップ・レジスタ38、スイッチング部39a,39b、累算器40a,40b、カウンタ41a,41b、及び粗レンジ選択部42を備えている。尚、図6において図5と同符号が附されている部分は、図5の同符号が附されている部分に対応している。
【実施例1】
【0066】
図5と同様、統計量収集モジュール21には、CTBをラスタ走査して順次抽出される原サンプルの2×2部分ブロック31及び再構成サンプルの4×4部分ブロック32が入力される。再構成サンプルの4×4部分ブロック32は、中央の2×2部分ブロック32aが原サンプルの2×2部分ブロック31と同一の位置である。図6に示すように、2×2部分ブロック31,32aの左上,右上,左下,右下のサンプルを、それぞれA,B,C,Dと附号する。
【実施例1】
【0067】
歪み値演算部33は、原画像の2×2部分ブロック31内の各原サンプルのサンプル値(式(2)のorg(c))と、それに対応する再構成画像の2×2部分ブロック32a内の各再構成サンプルのサンプル値(式(2)のrecpre(c))との差分(org(c)-recpre(c))を演算し、算出される差分値を区間[-15,15]内にクリップする。このクリップされた2×2ブロックの各差分値(歪み値)をまとめてdiffと記し、サンプル位置A,B,C,Dに対応する歪み値を、それぞれdiff_A,diff_B,diff_C,diff_Dと記す。歪み値演算部33が出力する差分値diffは、図5に示した歪みマップ34のようになる。
【実施例1】
【0068】
カテゴリ分類部35は、再構成サンプルの4×4部分ブロック32に基づき、4つのEOクラスの其々に対して、サンプル位置A,B,C,Dの再構成サンプルのEOカテゴリを決定するとともに、サンプル位置A,B,C,Dの再構成サンプルのBOのバンドを決定する。ここで、EOカテゴリの決定は、例えば以下の高速アルゴリズムを用いて行うことができる(非特許文献10参照)。
【実施例1】
【0069】
【数7】
JP2018061094A_000011t.gif
【実施例1】
【0070】
ここで、a,b,cは、図3(a)のa,b,cの位置関係にある各サンプルのサンプル値である。式(6a)はエッジ・インデックスIdxedgeからカテゴリ番号categoryへの変換配列であり、カテゴリ番号は図3(b)に示した通りである(但し、カテゴリ0はEO非適用を表す)。式(6b)は符号決定式であり、C言語に規定する3項演算子で表記されている。式(6c)は注目サンプルcに対するエッジ・インデックスIdxedge(c)の決定式、式(6d)は注目サンプルcに対するエッジ・インデックスIdxedge(c)からカテゴリ番号category(c)への変換式である。
【実施例1】
【0071】
また、BOのバンド数32は2の5乗なので、BOのバンドの決定は、注目サンプルのサンプル値の上位5ビットを用いて容易に行うことができる。
【実施例1】
【0072】
カテゴリ分類部35による決定結果は、ビットマップ・レジスタ38に一時保存される。ビットマップ・レジスタ38は、EOの16カテゴリ(4つのEOクラスの4つのカテゴリ)及びBOの8又は32バンドのそれぞれに対して、上記2×2ブロック(CTB内のA,B,C,Dの位置のブロック。以下「注目ブロック」という。)内の各サンプルが当該カテゴリ又は当該バンドに属するか否かの真理値を表すビットマップを生成する。図7に、ビットマップ・レジスタ38が生成するカテゴリ及びバンドのビットマップの例を示す。尚、図7においては、BOのバンドのビットマップについてはバンド16~19のみを示している。
【実施例1】
【0073】
歪み値集計部37a,37bは、それぞれ、16のカテゴリ,8又は32のバンドの各々に対して1つずつ設けられている。歪み値集計部37a,37bは、歪み値演算部33が出力する差分値diffとカテゴリ分類部35が出力する各再構成サンプルの各EOクラスに対する所属カテゴリ及び所属バンドとに基づき、それぞれ、4つのEOクラスの4つのカテゴリに対する2×2ブロックの歪み値の集計、及び8又は32のBOのバンドに対する2×2ブロックの歪み値の集計を行う。歪み値集計部37a,37bは、EOに対する16カテゴリ及びBOに対する8又は32バンドのそれぞれに対して並列に設けられ、各カテゴリ及び各バンドに対して並列に計算を実行する。各歪み値集計部37a,37bの内部構成は、図6(a)に示した通りである。各歪み値集計部37a,37bの入力は、歪み値演算部33が出力する歪み値diff=(diff_A, diff_B, diff_C, diff_D)と、カテゴリ分類部35が出力するEOカテゴリ又はBOのバンドの番号(以下、EOカテゴリ又はBOのバンドの番号を纏めて「カテゴリ番号」といい、Cate(X)(Xはサンプル位置)と記す。)である。図6(a)より、各歪み値集計部37a,37bの出力はsA,sB,sC,sDである。sA,sB,sC,sDは、次式の通りに算出される。
【実施例1】
【0074】
【数8】
JP2018061094A_000012t.gif
【実施例1】
【0075】
スイッチング部39a,39bは、それぞれ、16のカテゴリ,8又は32のバンドの各々に対して1つずつ設けられており、ビットマップ・レジスタ38に保存された当該カテゴリ又は当該バンドのビットマップに基づいて0, sA,sB,sC,sDの何れかを選択し、当該カテゴリ又は当該バンドに対応する累算器40aへ出力する。ここで、スイッチング部39a,39bにおける選択規則は次式の通りである。
【実施例1】
【0076】
【数9】
JP2018061094A_000013t.gif
【実施例1】
【0077】
ここで、Sはスイッチング部39a,39bの出力値、b(A), b(B), b(C), b(D)は、其々、位置A,B,C,Dにおける当該カテゴリ又は当該バンドのビットマップの真理値(図7参照)である。
【実施例1】
【0078】
累算器40a,40bは、それぞれ、16のカテゴリ,8又は32のバンドの各々に対して1つずつ設けられており、当該累算器40a,40bのカテゴリ又はバンドに対応するスイッチング部39a,39bが出力する歪みの集計値Sが入力される。累算器40a,40bは、図6(b)に示すように、内部にレジスタ45、加算器46、コンパレータ47、マルチプレクサ(MUX)48を備えている。レジスタ45は15ビットの値Sumを保持する。累算器40a,40bは、加算器46において入力された値Sをレジスタ45の保持値Sumに加算し、加算値Sum+Sでレジスタ45の保持値を更新する。
【実施例1】
【0079】
カウンタ41a,41bは、それぞれ、16のカテゴリ,8又は32のバンドの各々に対して1つずつ設けられており、ビットマップ・レジスタ38に保存された当該カテゴリ又は当該バンドのビットマップの真値を累算する。これにより、CTB内において各カテゴリ及び各バンドに属するサンプル数がカウンタ41a,41bで集計される。
【実施例1】
【0080】
粗レンジ選択部42は、各CTBにおいてBOに対するバンドの粗レンジ選択を行うモジュールである。この粗レンジ選択の詳細については(3.6)において詳述する。
【実施例1】
【0081】
(3.2)パラメータ決定モジュール
図8は、図2のサンプル適応オフセット決定装置11bにおけるパラメータ決定モジュール22のハードウェア構成を表すブロック図である。図8において、パラメータ決定モジュール22は、歪み値レジスタ51、度数レジスタ52、オフセット演算部53、オフセット・レジスタ54、隣接CTU情報レジスタ55、マルチプレクサ56、レート歪み演算部57、レート歪み集計部58、RDコスト演算部59、RDコスト・レジスタ部60、RDコスト比較部61、最適パラメータ・セット・レジスタ61、マルチプレクサ63、及びSAOパラメータセット・メモリ64を備えている。
【実施例1】
【0082】
歪み値レジスタ51は、統計量収集モジュール21が出力する、24分類(16のEOカテゴリ及び8のBOのバンド)又は48分類(16のEOカテゴリ及び32のBOのバンド)に対する、現CTB内の歪み累計値Sum[Idxcategory](Idxcategoryは各分類(カテゴリ又はバンド)を特定するインデックス)を一時保存するレジスタである。度数レジスタ52は、統計量収集モジュール21が出力する、24分類又は48分類に対する、現CTB内の当該分類に所属するサンプルの度数値Count[Idxcategory]を一時保存するレジスタである。オフセット演算部53は、24分類又は48分類の其々について、歪み値レジスタ51に保存された歪み累計値Sum[Idxcategory]及び度数レジスタ52に保存された所属サンプルの度数値Count[Idxcategory]に基づき、当該分類に対するオフセット値Offset[Idxcategory]を、式(3a)により算出する。オフセット・レジスタ54は、オフセット演算部53が算出する24分類又は48分類のオフセット値Offset[Idxcategory]を一時保存する。隣接CTU情報レジスタ55は、現在のCTBが属するCTUの上側及び左側に隣接するCTU(以下「隣接CTU」という。)のSAOパラメータ情報を、SAOパラメータセット・メモリ64がら読み出し、一時保存する。ここで、「SAOパラメータ情報」には、表1に示したSAOタイプ、SAOオフセット、及びタイプ補助情報の他に、当該隣接CTUの輝度Y及び色差Cr,CbのCTBに対するオフセット値(offsety,offsetcr,offsetcb)も含む。
【実施例1】
【0083】
マルチプレクサ56は、計算中のSAOモードに従って、オフセット演算部53が出力するオフセット値、若しくは隣接CTU情報レジスタ55に保存された上側又は左側の隣接CTUの各々3つのCTB(Y,Cr,Cb)に対するオフセット値のうちの何れかを選択し、レート歪み演算部57へ出力する。
【実施例1】
【0084】
レート歪み演算部57は、歪み値レジスタ51が保持する歪み累計値Sum[Idxcategory]及び度数レジスタ52が保持する度数値Count[Idxcategory]を読み出し、マルチプレクサ56を通してオフセット演算部53又は隣接CTU情報レジスタ55から入力されるオフセット値Offset[Idxcategory]に基づき、式(4)によりデルタ歪みDist[Idxcategory](式(4)のδD)の演算を行う。
【実施例1】
【0085】
レート歪み集計部58は、新RDOモードに対しては、各EOクラス(class 0~class 3。図3(a)参照)について、当該EOクラスの4つのEOカテゴリ(図3(b)参照)のデルタ歪みDist[Idxcategory]を集計し、当該EOクラスに対するデルタ歪み累計値Dist_accu[Idxclass]を算出する。また、BOの各バンド・グループの4つのバンド(図4参照)のデルタ歪みDist[Idxcategory]を集計し、当該バンド・グループに対するデルタ歪み累計値Dist_accu[Idxclass]を算出する。ここで、“Idxclass”は、クラス又はバンド・グループを特定するインデックスである。また、レート歪み集計部58は、マージ・モードに対しては、1つのCTU内の3つのCTB(Y,Cr,Cb)に対するデルタ歪みの累計を行う(式(5)の右辺第1項~第3項)。
【実施例1】
【0086】
RDコスト演算部59は、レート歪み集計部58が算出したデルタ歪み累計値Dist_accu[Idxclass]に基づき、式(1)により、各EOクラス及びバンド・グループのRDコストCost[Idxclass]の演算を行う。ここで、ラグランジェ定数λは、輝度(Y)及び色差(Cr,Cb)に対して予め定数λ,λとして設定されている。また、ビットレートrateについては、表2に記載した近似値を定数として使用する。また、マージ・モードに対しては、RDコスト演算部59は、RDコストの代わりに、式(5)によりCOTを算出する。RDコスト・レジスタ部60は、RDコスト演算部59が算出する新RDOモードの4クラス又は5又は29バンド・グループに対するRDコストCost[Idxclass]、及びマージ・モードの上側及び左側CTUに対するCOTを一時保存する。
【実施例1】
【0087】
RDコスト比較部61は、RDコスト・レジスタ部60に保存された各EOクラス、各バンド・グループに対するRDコスト、及びSAO非適用に対するRDコスト(定数)、並びにマージ・モードに対する上側及び左側CTUに対するCOTを比較して、RDコスト又はCOTが最小となるSAOモード、SAOタイプ、及びタイプ補助情報(表1参照)を決定し、最適パラメータ・セット・レジスタ61に一時保存する。そして、決定されたSAOモードが新RDOモードの場合、マルチプレクサ63は、当該SAOタイプ及びタイプ補助情報に基づき、オフセット・レジスタ54に一時保存されている、当該SAOタイプ及びタイプ補助情報に対応する4つのオフセット値を選択し、SAOパラメータセット・メモリ64へ出力する。SAOパラメータセット・メモリ64は、マルチプレクサ63が出力する4つのオフセット値を、最適パラメータ・セット・レジスタ61に一時保存されたSAOパラメータとともに、当該CTBのSAOパラメータ・セットとして保存する。一方、RDコスト比較部61により決定されたSAOモードがマージ・モードの場合、SAOパラメータセット・メモリ64は、最適パラメータ・セット・レジスタ61に一時保存されたSAOモード及びSAOタイプ(Merge_Upper又はMerge_Left)を当該CTUのSAOパラメータ・セットとして保存する。
【実施例1】
【0088】
図6及び図8から分かるように、統計量収集モジュール21におけるSCでは、各EO分類及び各BO分類に対する歪み値の集計のために、簡単な反復演算が多数実行される。一方、パラメータ決定モジュール22におけるPDでは、SCに比べて反復演算の数はかなり少ない(各CTUあたり56以下)。然し乍ら、それらの反復演算の各々は、SCの場合に比べて遥かに複雑であることがわかる。
【実施例1】
【0089】
ここで、システムのスループット(throughput:TP)を、クロック周期当たりで処理されるサンプル数における、動作周波数freqと並列度Nとの積とみなし、次式によって定義する。
【実施例1】
【0090】
【数10】
JP2018061094A_000014t.gif
【実施例1】
【0091】
動作周波数freqか並列度Nの何れかを増やすことにより、TPを増加させることが可能である。然し乍ら、統計量収集モジュール21におけるSC処理のうち累算器40a,40b及びカウンタ41a,41bは順序論理回路であり、多数の反復演算を含むことから、SCの演算を並列処理で行うと効率が低下する。図6及び図8において、グレーに附色した構成部分は、並列度Nが増加すると、実装面積はNの2乗に比例して増加する。SCは短いクリティカルパスで実行することができることも併せて考えると、SCの演算は高い動作周波数freqで実行することが、TPを増加させる上では好ましい。一方、パラメータ決定モジュール22におけるPDの演算は、高い動作周波数freqで実行するのは好ましくないと考えられる。なぜなら、各CTUに対する限られた数の反復演算を実行するには、あまり多くのクロック周期を必要とせず、また、各反復演算の中では、長いクリティカルパスを齎すような複雑な演算が行われるからである。従って、SCとPDでは、動作周波数freqの選択における優先的傾向が完全に相違し、その結果、SCとPDとの間で不均一なデータフローが生じる。そのため、SCとPDとを如何に効率よく組合わせるかが、ハードウェア実装上における重要な課題となる。そこで、次に、SCとPDにおける最適クロック周波数について、詳細に説明する。
【実施例1】
【0092】
(3.3)SCの最適クロック周波数
式(9)より、あるスループットを実現するには、数多くの並列度Nと動作周波数freqとの組み合わせが考えられる。例えば、非特許文献9の第10図においては、N=16として構成した例が記載されている。一方、実際のハードウェア設計上は、実装面積やタイミング等の考慮すべき事項があるため、並列度Nの選択の自由度は制限される。表3に、統計量収集モジュール21の幾つかの重要なモジュールにおける、各並列度N(=1,2,34,8,16,32)に対するハードウェア使用量の評価結果を示す。
【実施例1】
【0093】
【表3】
JP2018061094A_000015t.gif
【実施例1】
【0094】
表3にリストアップされ、且つ図6においてグレーで附色された各モジュールは、SCにおいては、図6の他のモジュールに比べ、面積消費量に於いて支配的である。並列度Nの増加に対するこれらのモジュールの実装面積の増加率が、SCの実装面積を決定づける。表3に示したように、SCの実装面積の増加は、主として、EO及びBOの歪み値集計部37a,37b内の機能ユニット(Function Unit:FU)の実装面積が略Nの2乗に比例して増加することに起因している。尚、EO及びBOの処理は、図6に示した通りであり、アーキテクチャに於いて同様である。そこで、以下の説明では、代表としてEOの処理について説明する。
【実施例1】
【0095】
並列度Nが1の場合、各サンプルに対して順次処理が実行され、処理対象のサンプルは5つのEOカテゴリ(カテゴリ0~5)のうちの何れかに属するので、このサンプルが属するカテゴリを検査することにより、Sum及びCountに相当する累算器(図6における累算器40a及びカウンタ41a)が作動する。
【実施例1】
【0096】
並列度Nが2の場合、2番目のサンプルPが、1番目のサンプルPと同じカテゴリに属する場合と、異なるカテゴリに属する場合との2通りがある。前者の場合、サンプルP,Pのカテゴリに対応する歪み値集計部37aは、サンプルP,Pの歪み値の合計を加え累算器40a(SAccユニット)が当該合計値を累算し、サンプルP,Pのカテゴリに対応するカウンタ41aは度数値を2だけ増加させる。それに対し、後者の場合、各サンプルに対する演算処理は、N=1の場合と同様となる。同じカテゴリ又はバンドのサンプルに対する歪み値は加合されるため、後のサンプルの歪み値の加算は、前者の結果に依存することが分かる。
【実施例1】
【0097】
同様に、並列度Nが3以上の場合、1番目のサンプルPに続く残りのN-1個のサンプルP,…,Pが、サンプルPと同じカテゴリに属するか否かを考慮する場合、2N-1通りの選択肢が存在し、N-1個のマルチプレクサ及び加算器が必要となる。同様に、サンプルPに続く残りのN-2個のサンプルP,…,Pが、サンプルPと同じカテゴリに属するか否かを考慮する場合、2N-2通りの選択肢が存在し、N-2個のマルチプレクサ及び加算器が必要となる。故に、一般に、並列度NのEO及びBOの各歪み値集計部37a,37bに対しては、N(N-1)/2個の加算器、マルチプレクサ、及びコンパレータが必要となる(図6(a)参照。図6(a)はN=4の場合を表す。)。
【実施例1】
【0098】
更に、Nの増加と共に、各累算器40a,40bへの入力数も必然的に増加する。例えば、図6に示したように、N=4の場合、各累算器40a,40bあたり4つの入力(sA~sD)がある。更に、各累算器40a,40b及びカウンタ41a,41bにおいて、Nの増加に伴い各加算器のデータ幅が増加することによっても、実装面積が増加する(表3の第3列)。従って、全体的に見て、同じスループットでは、並列度Nが小さいほど面積効率が良いことが、上記解析によって示される。
【実施例1】
【0099】
次に、動作周波数freqについて考察する。式(9)より、並列度Nが小さくなるほど、目標TPを維持するにはより高い動作周波数freqが必要となる。然し乍ら、図6(b)に示したように、累算器40a,40b及びカウンタ41a,41bの内部には帰還ループがあるため、最大周波数は制約される。主として、加算器46により生じる経路遅延は、並列度Nとは無関係に動作速度の限界をもたらす。その上、パイプライン処理によっては斯かるループの経路遅延を減少させることはできない。従って、動作周波数に上限があり、即ち式(9)より、これは与えられた目標TPに対して並列度Nに下限があることを意味する。
【実施例1】
【0100】
図9は、SMIC 40nmプロセス下での、SCにおける並列度Nと、NAND換算ゲート数,8K@120fpsのための必要最小周波数,及び達成可能な最大動作周波数との関係を示す図である。図9において、横軸は並列度Nである。棒グラフのグレーで附色されたビン(棒)は、表3に記載された各モジュールで必要とされるNAND換算ゲート数を表す。細い方の点線は、8K@120fpsをサポートするために必要とされる必要最小周波数(Require Freq.)を表す。太い方の点線は、達成可能な最大動作周波数(Max Freq.)を表す。
【実施例1】
【0101】
8K@120fpsをサポートするには、スループットとして(7680×4320)[pixcel]×120[fps]×1.5[Gbps]が必要である。式(9)及び図9より、並列度Nが1,2の場合、要求される必要最小周波数は、それぞれ5.2 GHz,2.6 GHzであり、達成可能な最大動作周波数(1.5~1.6 GHz)よりも大きくなるため、実装上実現できない。累算器40a,40b及びカウンタ41a,41bの内部の帰還ループにおいて安定余裕を補償するためには、最大動作周波数は必要最小周波数よりも常に大きくなければならない。従って、並列度Nが小さいほど面積効率が良いことを考慮すると、安定余裕が補償される並列度Nの候補の中ではN=4が最適であることが分かる。従って、式(9)より、対応する最適周波数は1.3GHzである。
【実施例1】
【0102】
(3.4)PDの最適クロック周波数
各CTBに対する最適なSAOパラメータ・セットは、4つのEOクラス(其々、4つのEOカテゴリ)、32のBOのバンド、及び2つのマージ・カテゴリ(各カテゴリで評価される4つのオフセット)の各候補の間で決定される。PDでは、1サイクルで1つのEO/BO候補のRDコストが演算され、4サイクルで各マージ候補のコストが演算される。このプロセスは、3ステージでパイプライン化される。合計としては、各CTBに対するPD処理を実行するためには、16+32+4+4+4=60サイクル(ここで、16:PDのEO処理,32:PDのBO処理,4:マージ候補処理,4+4:コスト比較処理及びメモリー・ライト処理)が必要とされる。PDでは、レジスタ(歪み値レジスタ51,度数レジスタ52)に保存されるSCの結果(Sum及びCount)が使用されるので、PDにおけるクロック周波数freqPDは次式の右辺で決まる下限値よりも大きくしておくべきである。
【実施例1】
【0103】
【数11】
JP2018061094A_000016t.gif
【実施例1】
【0104】
ここで、NCPDは1CTB当たりのPDが終了するまでのサイクル数、NCTBは1フレーム当たりのCTBの数、Nframeは1秒間に符号化されるフレームの数である。
【実施例1】
【0105】
(3.5)デュアルクロック・アーキテクチャ
以上の分析に基づき、本実施例のサンプル適応オフセット補正装置11bでは、SC及びPDの各部分の特徴を最大限利用できるようにするため、SCを高速クロックclkhighで駆動し、PDを低速クロックclklowで駆動する、デュアルクロック・アーキテクチャ(dual-clk architecture)を採用する。8K@120fpsをサポートする場合、高速クロックclkhighは1.3GHz、低速クロックclklowは、高速クロックclkhighの1/4又は1/6の周波数とする。尚、これらのクロックの具体的な周波数については、要求されるTPに応じて適宜変更することができる。
【実施例1】
【0106】
尚、2つのクロックの間の歪みを完全に除去し、デルタ時間(遅延によるタイム・ラグを補正するための時間)において其々のクロックのエッジを揃えるために、高速クロックclkhighは低速クロックclklowの整数倍とすることが好ましい。図2に示した本実施例のサンプル適応オフセット決定装置11bにおいては、高速クロックclkhighとして外部から入力されるベース・クロックclkbaseを使用し、低速クロックclklowとしては、ベース・クロックclkbaseを分周器26により4分周又は6分周したクロックを使用するように構成されている。ベース・クロックclkbase、高速クロックclkhigh、及び低速クロックclklowの関係は次式の通りである。
【実施例1】
【0107】
【数12】
JP2018061094A_000017t.gif
【実施例1】
【0108】
ここで、NCSCは1CTB当たりのSCが終了するまでのサイクル数の最小値、NCPDは1CTB当たりのPDが終了するまでのサイクル数である。分周比Mは、後述する粗レンジ選択を行う場合には4、行わない場合には6とされる。
【実施例1】
【0109】
SCに対してLuma,Cr,CbのCTBを順次処理するには、それぞれ、905,240,240高速クロック・サイクルが必要である。SCにおいて費やされるクロック・サイクルの最小値は、Cb/Crチャネルにより決定されるので、NCSCは240となる。PDについては、Luma,Cr,Cbの各チャネルの最適パラメータ候補を決定するには60低速クロック・サイクルが必要である。従って、この場合、分周比Mは4となる。一方、後述する粗レンジ選択を用いると、BOの候補バンド数は32から8に減少するので、最適パラメータ候補を決定するためのサイクル数は36低速クロック・サイクルに減少し、分周比Mは6に増加する。
【実施例1】
【0110】
図10は、SCとPDのためのパイプライン処理におけるCTB処理のスケジュールを表す図である。図10において、SCとPDは、異なるクロック領域で実行され、それぞれ、パイプライン・ステージs1,s2において処理される。図10におけるステージs1のLuma,Cb,Crの処理期間は、それぞれ、870,210,210高速クロック・サイクルであり、これらの処理期間において、それぞれ、Luma,Cb,CrのCTBに対するSC処理が実行される。また、ステージs1のLuma,Cb,Crの処理期間の末尾には、それぞれ、30高速クロック・サイクルのPre_Cb,Pre_Cr,Pre_Lumaが設けられている。このPre_Cb,Pre_Cr,Pre_Lumaにおいて、ステージs1のデータは、少なくともM(4又は6)サイクルは変化せずに維持され、この期間に、ステージs1のデータは、ステージs2の低速クロックの立ち上がりエッジで捉えられステージs2へ転送される。一方、ステージs2のLuma,Cb,Crの処理期間は、40又は64低速クロック・サイクルであり、これらの処理期間において、それぞれ、Luma,Cb,CrのCTBに対するPD処理が実行される。
【実施例1】
【0111】
ここで、高速クロックclkhighと低速クロックclklowがM分周の周波数関係を有しており、共にベース・クロックclkbaseによって生成されることに注意しておく。これにより、各クロックの立ち上がりエッジ揃えるための専用の回路を必要とせず、両者はデルタ時間で周期的に揃えられる。従って、完全に独立な2つのクロックを使用する場合に比べ、立ち上がりエッジ揃えるための位相同期回路(PLL)を必要としない分だけハードウェア・コストが削減される。
【実施例1】
【0112】
(3.6)BOの為の粗レンジ選択
基本的なSAOアルゴリズムにおいては、BOの最適バンドを探すために32バンド全てについての探索を行う。このバンドの全数探索は、ハードウェア設計上、ハードウェア・リソースの2/3(=32/48)を消費し、残り1/3はEOに対するカテゴリ探索が消費する。そこで、本実施例のサンプル適応オフセット決定装置11bでは、バンドの全数探索を行うことを止め、探索範囲をより小さい範囲に削減する。
【実施例1】
【0113】
BOの事前決定については、非特許文献5に記載されている。しかし、非特許文献5のBO事前決定方式は、最適な1つのバンドを探すため、32バンドの全てを探索する。これは、ソフトウェア指向のアルゴリズムであり、バンド決定プロセスの高速化を目的とするものである。然し乍ら、最適バンドの事前決定のためのCTU内のサンプルをフェッチするために多くのサイクルが必要となり、SRAMバンド幅の制限により、この方法はハードウェア実装においては実用的ではない。
【実施例1】
【0114】
図11は、1CTB内の各バンド内のサンプル数の度数分布の一例を表す図である。図11では、ピクチャ・サンプルとして、Racehorce_832×480のビデオシーケンスの中のCTBを用いた。図11より、CTB内の殆どのサンプルは特定の幾つかのバンド内に分布していることが分かり、その傾向は色差サンプルに於いては特に顕著である。そこで、1CTB内において殆どのサンプルのバンドを効率的に分類するには、どの程度の範囲のバンドを探索すれば十分であるかを調査するために、多くの映像シーケンス内の各CTB内で実際に使用されるバンド数の統計を収集した。この調査には、映像シーケンスとして、HEVCのCfP(Call for Proposals)テストシーケンスであるBQTerrace,BasketballDrill及びBlowingBubblesを使用した。これらは、表4の第3列に示した通り、それぞれ、SAOオンにおいて、アンカー(SAOオフのHM-16.0リファレンス・ソフトウェアモデル)に対し、最大、中間、及び最小のBDレート(Bjontegarrd Delta rate)の低減率を有するテストシーケンスである。これらの映像を、量子化パラメータ22,27,32,及び37のもとで評価した。尚、表4の各欄の評価条件は、後記の(4)において述べる。
【実施例1】
【0115】
図12は、各種映像シーケンスの1CTB内のサンプルが属するバンドの数の分布を測定した結果を表す図である。図12では、各種映像シーケンスの各ピクチャ内の各CTBにおいて、当該CTB内の各サンプルが属するバンドを調べ、当該CTB内で使用されたバンド数を集計し、全てのCTBについてこのバンド数の統計をとった結果を表している。図12より、約82%のCTBが、8つ以下のバンド中に90%のサンプルが存在知ることが分かる。映像シーケンスが大きくなるほど、各CTBに含まれるテクスチャは少なくなるので、バンド分布はより集中する。これらの結果は、BOに対しては、8つのバンドを用いて統計量を収集することにより、殆ど全てのサンプルを分類することが可能であることが補償されることを示唆している。
【実施例1】
【0116】
そこで、本実施例のサンプル適応オフセット決定装置11bでは、粗レンジ選択部42において、以下に説明するような、高尤度バンド評価に基づくBOに対する粗レンジ選択が実行される。粗レンジ選択部42は、各CTBにおいて、SCの開始前に、輝度CTBに対しては32サイクル、色差CTBに対しては16サイクルの粗レンジ選択処理を実行し、BOの32バンドの中から、実際にSCを実施する8バンドを選択する。これにより、BOに関するハードウェア資源を8/32=1/4に削減することができる。
【実施例1】
【0117】
【表4】
JP2018061094A_000018t.gif
【実施例1】
【0118】
図13は、粗レンジ選択部42におけるBOに対するバンドの粗レンジ選択処理の流れを示す図である。粗レンジ選択では、CTB内のバンド分布の評価を行い、バンド分布の中心を見つける。具体的には、粗レンジ選択部42は、再構成サンプルのCTBに対し、当該CTBの2×2サンプル・ブロック(以下「標本部分ブロック」という。)を順次取り出し(図13のStep.1)、全ての標本部分ブロックのサンプル値の平均を計算する(図13のStep.2)。ここで、標本部分ブロックの取り出し型としては、図13(a)のように、左上隅から右下隅(又は、右上隅から左下隅)への対角線に沿って対角線上の標本部分ブロックを取り出す方法や、図13(b)のように、CTB全体に亘り略一様となるように分散してサイズが2×2のサンプル・ウィンドウを一定間隔で格子状に設定し、各サンプル・ウィンドウにより順次標本部分ブロックを取り出す方法などを用いることが出来る。粗レンジ選択処理の最後のサイクルに於いて、最終的な平均値(整数値に丸めた値)が算出される。そして、粗レンジ選択部42は、この平均値が属するバンドbが、現在のCTBの中におけるサンプル分布の中央であるとみなし、当該バンドb、バンドbの左側(バンド・インデックスが小さい側)の3バンド、及び右側(バンド・インデックスが大きい側)の4バンドを、粗選択した8つのバンド候補とする(図13のStep.3)。尚、バンドbのバンド・インデックスが3以下の場合には、バンド・インデックス0~7のバンドが粗選択した8つのバンド候補とされ、バンドbのバンド・インデックスが27以上の場合には、バンド・インデックス24~31のバンドが粗選択した8つのバンド候補とされる。カテゴリ分類部35は、BOについては、粗選択した8つのバンド候補のみについてのビットマップを生成し、また、歪み値集計部37bはこれらの8つのバンド候補のみについて歪み値の集計を行い、また、累算器40b,カウンタ41bは、これらの8つのバンド候補のみについての累算処理を行う。また、PDにおいては、これらの8つのバンド候補の中から、最小のRDコストを有する4つの連続したバンド・グループがBOに関するSAOパラメータ候補として選択される。
【実施例1】
【0119】
表4は、CfPの各種テスト用シーケンスを用いて、各種アルゴリズムのBDレートの低減率を求めた結果である。アンカーをSAOオフのHM-16.0リファレンス・ソフトウェアモデルとし、比較対象としてHM-16.0のSAOオンモード(3列目)及び非特許文献9のICIP14(4列目)を用いている。5列目は、粗レンジ選択部42によるBOに対するバンドの粗レンジ選択処理を実施せず32のバンド候補すべてに対してSC及びPDを行った場合のBDレートの低減率であり、6列目は、粗レンジ選択部42によるBOに対するバンドの粗レンジ選択処理を実施して8つのバンド候補に対してSC及びPDを行った場合のBDレートの低減率である。尚、粗レンジ選択は、図13(b)の方法により実施している。実験の結果、それぞれのテスト用映像シーケンスに対して、BOに対する粗レンジ選択を実施した場合も、32のバンド候補すべてを評価した場合と、BDレートの低減率は殆ど変わらないことが実証された。
【実施例1】
【0120】
【表5】
JP2018061094A_000019t.gif
【実施例1】
【0121】
表5に、粗レンジ選択を行う場合と行わない場合とでの実装面積及び処理サイクル数の比較を示す。表5において、粗レンジ選択は、図13(b)の方法により実施している。SCにおいては、各カテゴリ及び各バンドは並列処理されるため、実際の統計収集の処理サイクル数は変わらないが、粗レンジ選択を行う場合には、前処理として8つのバンド候補の選択が加わる分だけ処理サイクル数は増加する。逆に、PDでは、BOのバンド候補数が32から8に減少するため、処理サイクル数は大きく減少する。また、実装面積は、BOの並列度が32から8に減少するため、全体として大きく減少する。
【実施例1】
【0122】
(3.7)累算器の早期終止
図6に示したように、本実施例のサンプル適応オフセット決定装置11bの統計量収集モジュール21は、粗レンジ選択有りの場合は24、粗レンジ選択無しの場合は48の累算器40(累算器40a,40b)及びカウンタ41(カウンタ41a,41b)を備えている。理論上は、各カウンタ41は64×64=4096までカウント値が増加することができる。然し乍ら、各再構成サンプルは、BOに対しては1バンド、EOに対しては各クラスにつき1カテゴリのみに分類されるため、多くの場合、1CTB当たりの各カウンタ41の終値は数百よりも小さい値に留まる。
【実施例1】
【0123】
そこで、本実施例の統計量収集モジュール21では、各カウンタ41(カウンタ41a,41b)は、それぞれ、自己のカウント値が所定の閾値cTh以上となると現CTBについてのカウントを終止すると共に、当該カウンタ41に対応する累算器40(累算器40a,40b)に対してカウントアップ信号count_upを出力する。各累算器40は、カウンタ41からカウントアップ信号count_upが入力されると、現CTBについての歪み値の累算を終止する。これを「累算器の早期終止」スキームと呼ぶ。これにより、Sum及びCountのデータ幅を減少させることが出来るとともに、消費電力を抑えることが出来る。
【実施例1】
【0124】
各カウンタ41を停止されるカウント値の閾値cThは、実験によって決めることが出来る。表4に示した各テスト用映像シーケンスを用いて、閾値cThを1024,2048,4096とした場合について、アンカー(SAOオフのHM-16.0リファレンス・ソフトウェアモデル)に対するBDレートの減少率を求めて比較した。実験の結果、何れの閾値cThを用いた場合にも、BDレートの減少率の上ではロスは見られなかった。その理由として、1つのカウンタ41が閾値に達した場合、それに対応するバンド又はカテゴリは、バンド・グループ又はクラス内に於いて優位であるため、当該CTBにおいては強力な候補(優位候補)であるとみなされることによる。このバンド又はカテゴリは、他の候補よりも高いで最適候補に選択されると推測される。この推測は、時々誤るが、推測が誤る場合には他のバンド又はカテゴリに属するサンプル数は、優位候補と推測したバンド又はカテゴリに属するサンプル数と比べて然程小さくはなく、この推測の誤りが符号化効率に及ぼす影響は小さいと考えられる。従って、上記実験の結果、閾値cThは1024に設定することができ、その結果、各カウンタ41及び各累算器40におけるデータ幅を減少させることが出来、実装面積を5K gate、全面積の約10%削減することができる。
【実施例1】
【0125】
(4)実験結果
上記本実施例のサンプル適応オフセット決定装置11bについて、SystemVerilog(登録商標)を用いてRTL(Register Transfer Level)での設計を行った。論理設計と物理設計は、それぞれ、Synopsys Design Compiler(登録商標)及びCadence SoC Encounter(登録商標)により、SMIC 40nm CMOS標準セルライブラリで行った。入力データとそれに対して予想される出力データは、HEVCのハードウェア設計のためのスティミュラス(ベンチマーク)及びリファレンスであるHM-16.0ソフトウェアモデルから作出した。
【実施例1】
【0126】
図14は、実施例1のサンプル適応オフセット決定装置11bの実装例のレイアウトを示した図である。コアサイズは0.073mmであり、チップ面積利用率は73%である。レイアウト前のクリティカルパス遅延は0.66ns、レイアウト後のクリティカルパス遅延は0.76nsであった。図14において、「Parameter Decision」と表記された領域がパラメータ決定モジュール22、「Statistics Collection」と表記された領域が統計量収集モジュール21の占める領域であり、「SRAM」と表記された白色の領域はラインバッファの占める領域である。
【実施例1】
【0127】
この実装例を用いて、量子化パラメータがQP=37のBasketballDrillビデオシーケンス(表4参照)について消費電力を評価したところ、本設計例における消費電力は48mWであった。
【実施例1】
【0128】
【表6】
JP2018061094A_000020t.gif
【実施例1】
【0129】
本実施例のサンプル適応オフセット決定装置11bの符号化効率を評価するため、非特許文献11に提示されている一般的なテスト条件により、以下の2つのグループのテストを実施した。
【実施例1】
【0130】
第1のグループにおいては、(I)SAOオフのHM-16.0デフォルト環境のアルゴリズム(アンカー)、(II)SAOオンのHM-16.0デフォルト環境のアルゴリズム、(III)非特許文献9に記載のアルゴリズム、(IV)粗レンジ選択を行わない実施例1のサンプル適応オフセット決定装置11bのアルゴリズム、及び(V)粗レンジ選択を行う実施例1のサンプル適応オフセット決定装置11bのアルゴリズムの5つのアルゴリズムの評価を行った。このグループは、低遅延・メイン・Pスライスオンリー(low delay, main, P slices only:LDP)設定とする。この条件下では、SAOの効果が最も明確となる。評価結果は表4に示した通りである。
【実施例1】
【0131】
第2のグループにおいては、(i)SAOオンでのHM-16.0デフォルト環境のアルゴリズム(アンカー)及び(ii)粗レンジ選択を行う実施例1のサンプル適応オフセット決定装置11bのアルゴリズムの2つのアルゴリズムの評価を行った。このグループに於いては、ALL_INTRA(AI),RANDOM_ACCESS(RA),及びLOWDELAY_MAIN(LD)の3つの設定での評価を行った。評価結果は表6に示した通りである。
【実施例1】
【0132】
また、表7に、本実施例のサンプル適応オフセット決定装置11bの設計例と従来技術(非特許文献9及び非特許文献8)との比較結果を示す。
【実施例1】
【0133】
【表7】
JP2018061094A_000021t.gif
【実施例1】
【0134】
表4及び表7において、非特許文献9のSAOの実装例と比較すると、本実施例のサンプル適応オフセット決定装置11bでは、BDレートにおける符号化損失無しで、実装面積が約70%縮小されることが分かる。また、表6において、様々な設定においてアンカーと比較すると、本実施例のサンプル適応オフセット決定装置11bでは、粗レンジ選択を行うことによって、BDレートに於いて0.3%程度の符号化効率の損失しか生じないことが分かる。
【実施例1】
【0135】
SCにおける並列度Nは、8K@120fpsのスループットに適合する条件下では、非特許文献9ではN=16であったものが、本実施例ではN=4に減少した。これにより、同じ仕様及び設定(粗レンジ選択なし)において、本実施例のサンプル適応オフセット決定装置11bは、非特許文献9のものと比べ、実装面積が67%に減少し、ゲート数が156.3Kから68K(表5参照)に減少させることが出来た。
【実施例1】
【0136】
BOに対して粗レンジ選択を行う場合でも、BDレートにおける符号化効率の損失は殆ど生じないことが分かった。図11に示したデータから、粗レンジ選択により選択されたバンド・レンジがCTB内の殆どのサンプル値をカバーしていることが明らかである。表5に示したように、粗レンジ選択によりアルゴリズムとアーキテクチャの相互最適化を位個なうことで、回路面積を25%削減し、ゲート数を68Kから55Kに削減することができる。
【符号の説明】
【0137】
1 映像符号化装置
2 ブロック分割部
3 イントラ予測部
4 変換・量子化部
5 エントロピ符号化部
6 符号化制御部
10 逆量子化・逆変換部
11 ループ内フィルタ
11a デブロッキング・フィルタ
11b サンプル適応オフセット決定装置
12 フレームメモリ
13 動き検出部
14 動き補償部
15 動き差分画像生成部
16,17 イントラ・インター予測切替部
18 動き差分画像合成部
21 統計量収集モジュール
22 パラメータ決定モジュール
23,24 サンプル・レジスタ
25 オフセット補正モジュール
26 分周器
31 原サンプルの2×2部分ブロック
32 再構成サンプルの4×4部分ブロック
32a 再構成サンプルの2×2部分ブロック
33 歪み値演算部
34 歪みマップ
35 カテゴリ分類部
35a EO分類部
35b BO分類部
36a1~36a4 カテゴリマップ
36b バンドマップ
37a,37b 歪み値集計部
38 ビットマップ・レジスタ
39,39a,39b スイッチング部
40,40a,40b 累算器
41,41a,41b カウンタ
42 粗レンジ選択部
45 レジスタ
46 加算器
47 コンパレータ
48 マルチプレクサ
51 歪み値レジスタ
52 度数レジスタ
53 オフセット演算部
54 オフセット・レジスタ
55 隣接CTU情報レジスタ
56 マルチプレクサ
57 レート歪み演算部
58 レート歪み集計部
59 RDコスト演算部
60 RDコスト・レジスタ部
61 RDコスト比較部
61 最適パラメータ・セット・レジスタ
63 マルチプレクサ
64 SAOパラメータセット・メモリ
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11
【図13】
12
【図14】
13