(57)【要約】【課題】面積効率が高く低消費電力を実現可能なサンプル適応オフセット（ＳＡＯ）決定装置の提供。【解決手段】ＳＡＯ補正処理のための各ＣＴＢに対するＳＡＯの分類及びオフセット値集合を決定するＳＡＯ決定装置であって、統計量収集（ＳＣ）モジュールと、パラメータ決定（ＰＤ）モジュールとを備え、ＳＣモジュールは、高速動作周波数ｆ０の高速クロックにより作動するよう構成し、ＰＤモジュールは、高速クロックをＭ分周した低速動作周波数ｆ０／Ｍの低速クロックにより作動するように構成した。これにより、ＳＣモジュールとＰＤモジュールとの間の極めて不均一なデータフローが緩和され、装置全体のスループットが向上し、また高速クロックをＭ分周して低速クロックを生成することで、各クロックの立ち上がりエッジを同期させるための回路を必要とせず、ハードウェアコストが削減される。【選択図】図２
2018061094.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位で符号化された動画像の復号画像データにおいて、輝度及び２つの色差の前記復号画像データを構成する各再構成サンプルに対し、各ブロック単位で設定される分類及びオフセット値集合に応じて、当該再構成サンプルのサンプル値に前記オフセット値集合に属する何れかのオフセット値を適応的に加算するサンプル適応オフセット補正処理のための、前記復号画像データの各ブロックに対する前記分類及び前記オフセット値集合を決定するサンプル適応オフセット決定装置であって、
再構成サンプルのサンプル値のレンジを複数の区間に区画した各区間帯域をバンドとし、
連続する４つの前記バンドの組を定めた前記分類をバンド・グループとし、
ブロック内の互いに隣接する３つの再構成サンプルの大小関係のパターンを評価する際の隣接方向を定めた前記分類をクラスとし、
前記各クラスに対して、ブロック内の各再構成サンプルのサンプル値と該再構成サンプルに対し該クラスの隣接方向に隣接する２つの隣接再構成サンプルのサンプル値との大小関係のパターンを類別した小分類をカテゴリとするとき、
前記復号画像データの各ブロックについて、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの数であるサンプル数を算出するとともに、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出し、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの歪み値の和である累計歪み値を算出する統計量収集モジュールと、
前記各ブロックに対し、前記統計量収集モジュールが算出する、前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、前記バンド・グループ又は前記クラスを決定するとともに、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定するパラメータ決定モジュールと、を備え、
前記統計量収集モジュールは、所定の高速動作周波数ｆ０の高速クロックにより作動するように構成されているとともに、前記パラメータ決定モジュールは、前記高速クロックを分周比Ｍで分周した低速動作周波数ｆ０／Ｍの低速クロックにより作動するように構成されていることを特徴とするサンプル適応オフセット決定装置。
【請求項２】
前記統計量収集モジュールが、色差の前記復号画像データの各ブロックに対して、前記各バンド、及び前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値を算出する処理に要する前記高速クロックのクロック・サイクル数をＮＣＳＣとし、
前記パラメータ決定モジュールが、輝度及び色差の前記復号画像データの各ブロックに対して、レート歪みコストが最小となる前記バンド・グループ又は前記クラス、及び前記オフセット値集合を決定する処理に要する前記低速クロックのクロック・サイクル数をＮＣＰＤとしたとき、
前記分周比Ｍは、
【数１】
2018061094.tif 000022
であることを特徴とする請求項１記載のサンプル適応オフセット補正装置。
【請求項３】
前記統計量収集モジュールは、前記復号画像データの各ブロックについて、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値を算出する処理を実行する前に、該ブロック内の一部の再構成サンプルに対して前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出する粗レンジ選択部を備え、
且つ、前記各バンドに対して該ブロック内のサンプル数及び累計歪み値を算出する際には、前記粗レンジ選択部で選出されたバンドのみに対して該ブロック内のサンプル数及び累計歪み値を算出するものであり、
前記パラメータ決定モジュールは、前記各ブロックに対し、前記統計量収集モジュールが算出する、前記粗レンジ選択部で選出された前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、連続する所定数の前記バンドの組合せであるバンド・グループ又は前記クラスを決定し、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定することを特徴とする請求項１又は２記載のサンプル適応オフセット決定装置。
【請求項４】
前記粗レンジ選択部は、前記復号画像データの各ブロックについて所定数のバンドを選出する際に、該ブロック全体に亘り分散して所定のサイズのサンプル・ウィンドウを設定し、前記各サンプル・ウィンドウにより順次取り出される再構成サンプルに対して、前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出することを特徴とする請求項３記載のサンプル適応オフセット決定装置。
【請求項５】
前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する歪み値演算部と、
前記各バンド及び前記各クラスの前記各カテゴリに対して、該ブロック内の各再構成サンプルが該バンド又は該クラスの該カテゴリに属するか否かを判定するカテゴリ分類部と、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内のサンプル数をカウントするカウンタと、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内の再構成サンプルの前記歪み値を累算する累算器と、を備え、
前記カウンタは、カウント値が所定の閾値以上になると、該ブロックに対するサンプル数のカウント動作を終止し、
前記カウンタに対応する前記累算器は、該カウンタがカウント動作を終止することに伴って、該ブロック内の再構成サンプルの前記歪み値を累算する動作を終止することを特徴とする、請求項１乃至４の何れか一記載のサンプル適応オフセット決定装置。
【請求項６】
前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロックをサイズが２×２の部分ブロックに分割し、該ブロック内の前記各部分ブロックに対して順次、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値の累算処理を実行するとともに、
前記各部分ブロックの各サンプル位置に対しては並列に、各サンプル位置の再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する処理、及び該再構成サンプルが属する前記バンド及び前記各クラスの前記カテゴリを決定する処理を実行することを特徴とする請求項１乃至５の何れか一記載のサンプル適応オフセット決定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化器のループ内フィルタにおいて用いられるサンプル適応オフセット決定装置に関する。
【背景技術】
【０００２】
近年、１０８０ｐ高精細（ＨＤ）及び４Ｋ（解像度３８４０×２１６０）ウルトラＨＤ（ＵＨＤ）が映像アプリケーションに於いては主流である。そして、次世代の映像アプリケーションに於いては、８Ｋ  ＵＨＤ（解像度７６８０×４３２０）／１２０ｆｐｓ（フレーム毎秒）の研究・開発が行われており、これに対する映像符号化規格としてＩＴＵ−Ｔ勧告のＨ．２６５／ＨＥＶＣ（以下「ＨＥＶＣ」という。）が策定されている。ＨＥＶＣにおいては、ループ内フィルタ（in-loop filter：ＩＬＦ）として、ブロックノイズを低減するためのデブロッキング・フィルタ（deblocking filter：ＤＢＦ）とモスキートノイズ及び直流成分誤差を低減するためのサンプル適応オフセット（sample adaptive offset：ＳＡＯ）とが採用された。ＳＡＯのＶＬＳＩアーキテクチャ設計は、復号器（デコーダ）に於いては計算複雑性が低いため、然程困難ではない。然し乍ら、符号化器（エンコーダ）においては、特にＨＥＶＣに対応して低消費電力で且つ小実装面積となるように、リアルタイム処理に適したＳＡＯのハードウェア設計を行うことは難しい技術課題である。
【０００３】
ＳＡＯは、ＨＥＶＣにおいて新たに追加された新しいＩＬＦであるため、特にここ３年の間に多くの研究がなされている。これらの研究のうちの幾つかは、アルゴリズムをより高速化し、又はハードウェアとの親和性を高めるためにアルゴリズムを改良することを目的としている。非特許文献１，２では、イントラ予測とＳＡＯとの関係について検討がされており、エッジ・オフセット（Edge Offset：ＥＯ）のタイプ数を削減して符号化時間を更に削減するため、ＥＯタイプを予測するためにイントラ予測モードを用いることが記載されている。非特許文献３には、幾つかのＳＡＯアルゴリズムが記載されており、それらの間での性能の比較が行われている。非特許文献４には、ＤＢＦにおけるデブロック強度（デブロックをかける強度）に基づくＳＡＯカテゴリ決定方法が記載されている。非特許文献５には、クラス結合、事前決定及び結合分離カテゴリに基づくＳＡＯの低複雑度アルゴリズムが記載されている。
【０００４】
また、幾つかの文献では、符号化器のためのリアルタイムＶＬＳＩアーキテクチャの実装に関する技術が開示されている。非特許文献６では、ＳＡＯでの統計収集のためのアーキテクチャが開示されている。非特許文献７では、ＳＡＯにおけるパラメータ決定に関するアーキテクチャが開示されている。非特許文献８では、統計収集とパラメータ決定を含むＳＡＯのハードウェア・アーキテクチャが開示されており、当該アーキテクチャを４Ｋ＠６０ｆｐｓ符号化に適用した例が示されている。非特許文献９では、高速ＳＡＯ推定アルゴリズムが開示されており、当該アルゴリズムに対するＶＬＳＩアーキテクチャが開示され、それを８Ｋ符号化に適用した例が示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−３２９８２号公報
【特許文献２】特表２０１６−５０６６８７号公報
【特許文献３】特表２０１５−５２１４４３号公報
【特許文献４】米国特許公開２０１５／００１００５２号明細書
【非特許文献】
【０００６】
【非特許文献１】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.
【非特許文献２】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.
【非特許文献３】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.
【非特許文献４】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.
【非特許文献５】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.
【非特許文献６】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.
【非特許文献７】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.
【非特許文献８】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.
【非特許文献９】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.
【非特許文献１０】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.
【非特許文献１１】F. Bossen, “Common test conditions and software reference configurations,”Joint Collaborative Team on Video Coding (JCT-VC), JCTVCF900, 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の非特許文献６〜９に開示された符号化器のためのリアルタイムＶＬＳＩアーキテクチャの中で、非特許文献８，９に記載のものはＳＡＯの全プロセスを含んでいる。然し乍ら、依然として、更に回路面積を小さくし、更にハードウェア利用率を高めるための改良の余地は多く残されている。
【０００８】
そこで、本発明の目的は、上記の従来技術と比べて、より多くの回路面積の削減を行うことが可能であり、且つ更にハードウェア利用率を高めることが可能なリアルタイム処理に適したサンプル適応オフセット決定装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係るサンプル適応オフセット決定装置の第１の構成は、ブロック単位で符号化された動画像の復号画像データにおいて、輝度及び２つの色差の前記復号画像データを構成する各再構成サンプルに対し、各ブロック単位で設定される分類及びオフセット値集合に応じて、当該再構成サンプルのサンプル値に前記オフセット値集合に属する何れかのオフセット値を適応的に加算するサンプル適応オフセット補正処理のための、前記復号画像データの各ブロックに対する前記分類及び前記オフセット値集合を決定するサンプル適応オフセット決定装置であって、
再構成サンプルのサンプル値のレンジを複数の区間に区画した各区間帯域をバンドとし、
連続する４つの前記バンドの組を定めた前記分類をバンド・グループとし、
ブロック内の互いに隣接する３つの再構成サンプルの大小関係のパターンを評価する際の隣接方向を定めた前記分類をクラスとし、
前記各クラスに対して、ブロック内の各再構成サンプルのサンプル値と該再構成サンプルに対し該クラスの隣接方向に隣接する２つの隣接再構成サンプルのサンプル値との大小関係のパターンを類別した小分類をカテゴリとするとき、
前記復号画像データの各ブロックについて、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの数であるサンプル数を算出するとともに、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出し、前記各バンド及び前記各クラスの前記各カテゴリに属する該ブロック内の再構成サンプルの歪み値の和である累計歪み値を算出する統計量収集モジュールと、
前記各ブロックに対し、前記統計量収集モジュールが算出する、前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、前記バンド・グループ又は前記クラスを決定するとともに、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定するパラメータ決定モジュールと、を備え、
前記統計量収集モジュールは、所定の高速動作周波数ｆ０の高速クロックにより作動するように構成されているとともに、前記パラメータ決定モジュールは、前記高速クロックを分周比Ｍで分周した低速動作周波数ｆ０／Ｍの低速クロックにより作動するように構成されていることを特徴とする。
【００１０】
この構成によれば、統計量収集モジュールを高速クロックで作動させ、パラメータ決定モジュールを低速クロックにより作動させることにより、統計量収集モジュールとパラメータ決定モジュールとの間の極めて不均一なデータフローが緩和され、装置全体のスループットが向上する。また、低速クロックを、高速クロックをＭ分周して生成することで、各クロックの立ち上がりエッジを同期させるための回路を必要とせず、ハードウェア・コストが削減される。
【００１１】
ここで、サンプル適応オフセット決定装置が決定する「分類」とは、サンプル適応オフセット補正処理の類別であり、分類には、所定数のバンド・グループと所定数のクラスとがある。「サンプル」とは、画素を構成する輝度成分及び２つの色差細分のそれぞれの成分のことをいう。「原サンプル」とは、符号化される前の動画像に属するサンプル、「再構成サンプル」とは、ブロック単位で符号化された後に復号された動画像の復号画像データに属するサンプルをいう。「歪み値」とは、再構成サンプルとそれに対応する符号化前の原サンプルとの差をいう。「サンプル値のレンジ」とは、サンプル値が取り得る値の範囲をいう（図４参照）。「バンド」とは、サンプル値のレンジを複数の区間に区画したときの其々の区間帯域をいう（図４参照）。「バンド・グループ」とは、連続する４つのバンドの組を定めた分類をいう（図４参照）。「クラス」とは、それぞれの隣接方向を定めた分類をいい、水平方向、垂直方向、４５度斜め方向、１３５度斜め方向のそれぞれの隣接方向に対応する（図３（ａ）参照）。「カテゴリ」とは、分類対象の再構成サンプルとそれに隣接する２つの隣接再構成サンプルのサンプル値の大小関係のパターンを類別した小分類をいう（図３（ｂ）参照）。ブロックのバンド・グループ又はクラスに対する「レート歪みコスト」とは、該ブロックのデルタ歪みに、該ブロックを該バンド・グループ又は該クラスによるサンプル適応オフセット補正処理を行い符号化した際に符号化により得られるビットストリームのビット数（ビットレート）とラグランジェ定数との積を加えた値をいう（後述の式（１）参照）。「デルタ歪み」とは、サンプル適応オフセット補正処理を行った後のブロック全体の累計歪み値から、サンプル適応オフセット補正処理を行う前のブロック全体の累計歪み値を差し引いた差をいう（後述の式（４）参照）。「オフセット値集合」とは、一のバンド・グループに属する各バンドに対応するオフセット値の集合又は一のクラスに属する各カテゴリに対応するオフセット値の集合をいう。
【００１２】
本発明に係るサンプル適応オフセット決定装置の第２の構成は、前記第１の構成に於いて、前記統計量収集モジュールが、色差の前記復号画像データの各ブロックに対して、前記各バンド、及び前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値を算出する処理に要する前記高速クロックのクロック・サイクル数をＮＣＳＣとし、
前記パラメータ決定モジュールが、輝度及び色差の前記復号画像データの各ブロックに対して、レート歪みコストが最小となる前記バンド・グループ又は前記クラス、及び前記オフセット値集合を決定する処理に要する前記低速クロックのクロック・サイクル数をＮＣＰＤとしたとき、
前記分周比Ｍは、
【００１３】
【数１】
2018061094.tif 000003
であることを特徴とする。
【００１４】
この構成によれば、統計量収集モジュールとパラメータ決定モジュールをパイプライン処理により並列演算する場合に、両ステージ間のアイドル時間を最小化し、効率よく各ブロックの分類及びオフセット値集合の決定処理を行うことができる。
【００１５】
本発明に係るサンプル適応オフセット決定装置の第３の構成は、前記第１又は２の構成に於いて、前記統計量収集モジュールは、前記復号画像データの各ブロックについて、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値を算出する処理を実行する前に、該ブロック内の一部の再構成サンプルに対して前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出する粗レンジ選択部を備え、
且つ、前記各バンドに対して該ブロック内のサンプル数及び累計歪み値を算出する際には、前記粗レンジ選択部で選出されたバンドのみに対して該ブロック内のサンプル数及び累計歪み値を算出するものであり、
前記パラメータ決定モジュールは、前記各ブロックに対し、前記統計量収集モジュールが算出する、前記粗レンジ選択部で選出された前記各バンドに対する該ブロック内のサンプル数及び累計歪み値、並びに前記各クラスの前記各カテゴリに対する該ブロック内のサンプル数及び累計歪み値に基づき、レート歪みコストが最小となる、連続する所定数の前記バンドの組合せであるバンド・グループ又は前記クラスを決定し、決定された前記バンド・グループ又は前記クラスに対する前記オフセット値集合を決定することを特徴とする。
【００１６】
この構成によれば、粗レンジ選択部により全バンド中から所定数のバンドを高尤度候補バンドとして選出することにより、統計量収集モジュールにおける、各バンドに対するブロック内のサンプル数及び累計歪み値を算出する際の並列度と、パラメータ決定モジュールにおける、各バンド・グループのレート歪みコストを演算する際の並列度を削減することができる。これにより、最適バンド・グループ又はクラスの誤選択に起因する符号化効率の低下を抑えつつ、ハードウェアに実装する際の実装面積及び消費電力を大幅に削減することが可能となる。
【００１７】
ここで、「度数が最も大きいバンドを中心とする連続する所定数のバンド」とは、度数が最も大きいバンド・インデックス（各バンドをレンジが小さい順に０から順に附番したインデックスをいう。）を中央値とする連続する所定数のバンド・インデックスの集合の各要素に対応するバンドを意味する。即ち、度数が最も大きいバンド・インデックスをｉ、選択するバンド数である「所定数」をＮとすると、バンド・インデックスが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までとする。また、選択するバンド数をＮは、バンド・グループのバンド数以上で且つ全バンド数よりも小さい値とする。Ｎがバンド・グループのバンド数よりも小さいとバンド・グループのレート歪みコストの評価ができなくなり、また、Ｎが全バンド数と同じだと粗レンジ選択の意味を成さないからである。本発明では所定数Ｎは特に限定しないが、Ｎとして適切な値としては、８（＝２３）〜１６（＝２４）が好適である。
【００１８】
本発明に係るサンプル適応オフセット決定装置の第４の構成は、前記第３の構成に於いて、前記粗レンジ選択部は、前記復号画像データの各ブロックについて所定数のバンドを選出する際に、該ブロック全体に亘り分散して所定のサイズのサンプル・ウィンドウを設定し、前記各サンプル・ウィンドウにより順次取り出される再構成サンプルに対して、前記各バンドにそれらの再構成サンプルのサンプル値が属する度数を算出し、該度数が最も大きいバンドを中心とする連続する所定数のバンドを選出することを特徴とする。
【００１９】
この構成によれば、粗レンジ選択部による所定数の高尤度候補バンドを選出する際に、ブロック全体に亘って評価サンプルが選択されるため、誤った高尤度候補バンドが選出される確率が低下し、最適バンド・グループ又はクラスの誤選択に起因する符号化効率の低下を抑制することが出来る。
【００２０】
ここで、本発明では、ブロック内におけるサンプル・ウィンドウのサイズや数や位置設定に関しては特に限定しないが、ブロック全体のバンドの分布をできるだけ正確に抽出する観点から、サンプル・ウィンドウの位置はできるだけブロック全体に亘り一様に分散して設けることが好ましい。例えば、サンプル・ウィンドウを一定間隔で格子状に設定する方法などを採ることが出来る。
【００２１】
本発明に係るサンプル適応オフセット決定装置の第５の構成は、前記第１乃至４の何れか一の構成に於いて、前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロック内の各再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する歪み値演算部と、
前記各バンド及び前記各クラスの前記各カテゴリに対して、該ブロック内の各再構成サンプルが該バンド又は該クラスの該カテゴリに属するか否かを判定するカテゴリ分類部と、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内のサンプル数をカウントするカウンタと、
前記各バンド及び前記各クラスの前記各カテゴリに対してそれぞれ設けられ、前記カテゴリ分類部の判定結果に従って、前記各バンド及び前記各クラスの前記各カテゴリに対して、該バンド又は該クラスの該カテゴリに属する、該ブロック内の再構成サンプルの前記歪み値を累算する累算器と、を備え、
前記カウンタは、カウント値が所定の閾値以上になると、該ブロックに対するサンプル数のカウント動作を終止し、
前記カウンタに対応する前記累算器は、該カウンタがカウント動作を終止することに伴って、該ブロック内の再構成サンプルの前記歪み値を累算する動作を終止することを特徴とする。
【００２２】
この構成によれば、各カウンタ及びそれに対応する累算器を、該カウンタのカウント値が一定の閾値を超えた時点で早期に終止させることで、最適バンド・グループ又はクラスの誤選択に起因する符号化効率の低下を抑えつつ、統計量収集モジュールの消費電力を削減することが出来る。また、カウンタが出力するカウント値及び累算器が出力する累算した歪み値の上限が制限されるため、これらカウンタ及び累算器の出力ラインのデータ幅を、早期終止しない場合に比べて削減することが出来、これにより実装面積を削減するとともに消費電力も削減することができる。
【００２３】
ここで、「カウンタに対応する累算器」とは、「該カウンタに対応するバンド又はクラス／カテゴリ」に対応する累算器をいう。
【００２４】
本発明に係るサンプル適応オフセット決定装置の第６の構成は、前記第１乃至５の何れか一の構成に於いて、前記統計量収集モジュールは、
前記復号画像データの各ブロックについて、該ブロックをサイズが２×２の部分ブロックに分割し、該ブロック内の前記各部分ブロックに対して順次、前記各バンド、及び前記各クラスの前記各カテゴリに対する、該ブロック内のサンプル数及び累計歪み値の累算処理を実行するとともに、
前記各部分ブロックの各サンプル位置に対しては並列に、各サンプル位置の再構成サンプルに対し、該再構成サンプルとそれに対応する符号化前の原サンプルとの差である歪み値を算出する処理、及び該再構成サンプルが属する前記バンド及び前記各クラスの前記カテゴリを決定する処理を実行することを特徴とする。
【００２５】
この構成によれば、SMIC 40nmプロセス下において、ＨＥＶＣにおける8K@120fpsに対して、ハードウェア並列度と最大クロック周波数とを相互最適化することが可能となる。
【発明の効果】
【００２６】
以上のように、本発明のサンプル適応オフセット決定装置によれば、統計量収集モジュールを高速クロックで作動させ、パラメータ決定モジュールを低速クロックにより作動することにより、統計量収集モジュールとパラメータ決定モジュールとの間の極めて不均一なデータフローを緩和し、装置全体のスループットを向上させつことが可能となる。また、低速クロックを、高速クロックをＭ分周して生成することで、各クロックの立ち上がりエッジを同期させるための回路を必要としたいため、装置全体のハードウェア・コストが削減される。
【００２７】
また、粗レンジ選択部により全バンド中から所定数の高尤度候補バンドを選出し、バンドに関しては、全バンドではなく高尤度候補バンドに対してのみ統計収集及びパラメータ決定処理を実施することで、統計量収集モジュールにおけるサンプル数及び累計歪み値を算出する各累算器の並列度と、パラメータ決定モジュールにおける、各バンド・グループのレート歪みコストを演算する演算器の並列度を削減することができ、符号化効率の低下を抑えつつ、ハードウェアに実装する際の実装面積及び消費電力を大幅に削減することが可能となる。
【００２８】
また、各カウンタ及びそれに対応する累算器を、該カウンタのカウント値が一定の閾値を超えた時点で早期終止させることで、符号化効率の低下を抑えつつ、統計量収集モジュールの消費電力を削減することが出来る。また、これらカウンタ及び累算器の出力ラインのデータ幅を、早期終止しない場合に比べて削減することが出来、これにより実装面積を削減するとともに消費電力も削減することができる。
【図面の簡単な説明】
【００２９】
【図１】映像符号化装置全体の構成を表すブロック図である。
【図２】実施例１におけるサンプル適応オフセット決定装置の全体構成を表すブロック図である。
【図３】ＥＯにおけるサンプル分類（クラス／カテゴリ）の各パターンを示す図である。
【図４】ＢＯにおける３２のバンドを示す図である。
【図５】実施例１のサンプル適応オフセット決定装置における統計量収集手順の一例を表す図である。
【図６】図２のサンプル適応オフセット決定装置における統計量収集モジュール２１のハードウェア構成を表すブロック図である。
【図７】カテゴリ及びバンドのビットマップの例を示す図である。
【図８】図２のサンプル適応オフセット決定装置におけるパラメータ決定モジュール２２のハードウェア構成を表すブロック図である。
【図９】SMIC 40nmプロセス下での、ＳＣにおける並列度Ｎと、ＮＡＮＤ換算ゲート数，8K@120fpsのための必要最小周波数，及び達成可能な最大周波数との関係を示す図である。
【図１０】ＳＣとＰＤのためのパイプライン処理におけるＣＴＢ処理のスケジュールを表す図である。
【図１１】１ＣＴＢ内の各バンド内のサンプル数の度数分布の一例を表す図である。
【図１２】各種映像シーケンスの１ＣＴＢ内のバンド数の分布を測定した結果を表す図である。
【図１３】粗レンジ選択部におけるＢＯに対するバンドの粗レンジ選択処理の流れを示す図である。
【図１４】実施例１のサンプル適応オフセット決定装置の実装例のレイアウトを示した図である。
【発明を実施するための形態】
【００３０】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【実施例１】
【００３１】
（１）映像符号化装置全体の構成
図１は、映像符号化装置全体の構成を表すブロック図である。図１の映像符号化装置は、ＨＥＶＣに準拠して構成されている。図１において、映像符号化装置１は、ブロック分割部２、イントラ予測部３、変換・量子化部４、エントロピ符号化部５、符号化制御部６、逆量子化・逆変換部１０、ループ内フィルタ１１、フレームメモリ１２、動き検出部１３、動き補償部１４、動き差分画像生成部１５、イントラ・インター予測切替部１６，１７、及び動き差分画像合成部１８を備えている。また、ループ内フィルタ１１は、デブロッキング・フィルタ１１ａ及びサンプル適応オフセット決定装置１１ｂにより構成されている。この映像符号化装置１の構成については、ＨＥＶＣにおける標準的なものであるため、詳細については省略して概要のみを簡単に説明する。
【００３２】
入力された映像データの各ピクチャは、ブロック分割部２において符号化ツリーブロック（Coding Tree Block：ＣＴＵ）にブロック分割される。ＣＴＵは、輝度成分（以下「luma」という。）及び２つの色差成分（以下「chroma」という。）Ｃｒ，Ｃｂに対する符号化ツリーブロック（Coding Tree Block：ＣＴＢ）により構成される。各ＣＴＵは、イントラ予測部３でフレーム内予測（イントラ予測）が実行される。変換・量子化部４は、イントラ予測部３が出力するイントラ予測符号化画像又は後述の動き動き差分画像生成部１５が出力するインター予測符号化画像を、ＣＴＢから分割生成される変換ユニット（Transform Unit：ＴＵ）単位で直交変換し量子化する。ＨＥＶＣでは、直交変換にはＤＣＴを整数演算で近似した整数ＤＣＴが用いられる。エントロピ符号化部５は、変換・量子化部４が出力する符号化画像をエントロピ符号化により圧縮し、符号化映像のビットストリームとして出力する。ＨＥＶＣでは、エントロピ符号化として文脈ベース適応二値算術符号化（Context-based Adaptive Binary Arithmetic Coding：ＣＡＢＡＣ）が採用されている。符号化制御部６は、量子化パラメータ等の付帯情報によりエントロピ符号化部５の符号化動作を制御する。
【００３３】
逆量子化・逆変換部１０は、変換・量子化部４が出力する符号化画像を、逆量子化し逆変換することにより、変換符号化前のＣＴＵを再構成する。ループ内フィルタ１１は、再構成されたＣＴＵをフィルタ処理することにより歪みの低減を行う。ここで、ＨＥＶＣでは、ループ内フィルタ１１としてデブロッキング・フィルタ１１ａ及びサンプル適応オフセット決定装置１１ｂが採用されている。デブロッキング・フィルタ１１ａは、各ＣＴＢ間のブロック境界を平滑化することにより、変換符号化と量子化により生じるブロックノイズの低減を行う。また、サンプル適応オフセット決定装置１１ｂは、luma及びchromaの各ＣＴＢについて、ＣＴＢ内のサンプル（画素）ごとに、適応的にオフセット補正を行うことにより、動き補償のずれ等により生じるＤＣオフセットや変換符号化により生じるリンギング・アーティファクト等のモスキートノイズの低減を行う。フレームメモリ１２は、ループ内フィルタ１１によりフィルタ処理された再生フレーム（再生映像の各フレーム画像）を一時的に保存するメモリである。
【００３４】
動き検出部１３は、フレーム間において、ＣＴＢから分割生成される予測ユニット（Prediction Unit：ＰＵ）単位でフレーム間動き補償推定を行い、各ＰＵの動きベクトルを算出する。動き補償部１４は、動き検出部１３が算出する各ＰＵの動きベクトルに基づき、他のフレーム画像から動き予測画像を合成する。動き差分画像生成部１５は、ブロック分割部２でブロック分割された原フレームに対して、動き補償部１４で合成された動き予測画像を差し引くことにより、動き差分画像（インター予測符号化画像）を生成する。イントラ・インター予測切替部１６，１７は、イントラ予測とインター予測の切り換えを行うスイッチであり、イントラ・インター予測切替部１６は、変換・量子化部４に入力するフレーム画像を、イントラ予測符号化画像又はインター予測符号化画像の何れかに選択的に切り替える。イントラ・インター予測切替部１７は、逆量子化・逆変換部１０が出力する再構成されたＣＴＵに対して、さらに動き補償の復号を行うか否かを選択的に切り替える。動き差分画像合成部１８は、逆量子化・逆変換部１０が出力する再構成された再構成フレーム画像に対して、動き差分画像生成部１５で合成されたインター予測符号化画像を加えることにより、インター予測符号化前の再構成画像の再生を行う。
【００３５】
（２）ＳＡＯアルゴリズムの概要
次に、ＳＡＯにおいて実行されるサンプル適応オフセット（Sample Adaptive Offset：ＳＡＯ）アルゴリズムの概要について説明する。尚、このＳＡＯで行われるべき標準的な補正処理については、ＨＥＶＣにおいて具体的に規定されている。
【００３６】
ＳＡＯでは、ＣＴＵにおける符号化歪みを低減させるために、サンプル値（画素値）に対して、当該サンプル毎に適応したオフセットを加える補正を行う。各サンプルに適用されるオフセットは、当該サンプルの分類に従って定められる。このサンプルの分類は、エッジ・オフセット（Edge Offset：ＥＯ）とバンド・オフセット（Band Offset：ＢＯ）の２種類がある。ＥＯとは、４つの隣接方向（水平方向、垂直方向、４５度斜め方向、１３５度斜め方向）を定めるクラスのうち一のクラスに対し、処理対象サンプルのサンプル値と、該クラスの隣接方向に該処理対象サンプルと隣接する２つの隣接サンプルのサンプル値との大小関係のパターンに応じて、処理対象サンプルにオフセット値を加える補正処理をいう。ＢＯとは、サンプル値のレンジを均等に３２個のバンドに分割し、連続する４つのバンドからなる一のバンド・グループに属する処理対象サンプルに対して、該処理対象サンプルのサンプル値に、該サンプル値が属するバンドに応じて、オフセット値を加える補正処理をいう。
【００３７】
図２は、実施例１におけるサンプル適応オフセット決定装置１１ｂの全体構成を表すブロック図である。サンプル適応オフセット決定装置１１ｂは、統計量収集モジュール２１、パラメータ決定モジュール２２、サンプル・レジスタ２３，２４、オフセット補正モジュール２５、分周器２６を備えている。サンプル・レジスタ２３，２４は、それぞれ、各ＣＴＢにおける原サンプル，再構成サンプルのサンプル値を一時保存するレジスタである。ここで、「原サンプル」とは、映像符号化装置１による符号化がされる前のオリジナル映像の各フレームの画素（サンプル）をいう。「再構成サンプル」とは、変換・量子化部４で符号化された後、逆量子化・逆変換部１０、動き差分画像合成部１８及びＤＢＦ１１ａで再構成されたフレームのサンプルをいう。統計量収集モジュール２１は、再構成サンプルの各ＣＴＢに対して、原サンプルの対応するＣＴＢを参照して、ＳＡＯの各ＥＯクラスの各ＥＯカテゴリ、及びＢＯの各バンドに対する歪み値の統計量を演算するモジュールである。パラメータ決定モジュール２２は、統計量収集モジュール２１において収集された各ＥＯカテゴリ及び各バンドに対する歪み値の統計量に基づき、最適なＳＡＯパラメータを決定するモジュールである。オフセット補正モジュール２５は、パラメータ決定モジュール２２において決定されたＳＡＯパラメータにより、デブロッキング・フィルタ１１ａが出力する再構成フレーム画像に対してオフセット補正を行い、補正した再構成フレーム画像をフレームメモリ１２へ出力するモジュールである。分周器２６は、外部から入力される統計量収集モジュール２１に対するクロックclkbaseを分周し、パラメータ決定モジュール２２のためのクロックclklowを生成する。
【００３８】
符号化器側に於いて行うべきタスクは、各ＣＴＵに対して最適なサンプルの分類とオフセット値とを決定することである。図２のグレーに附色した構成部分で示すように、このタスクを実行する全体過程は、大きく分けて統計量収集（Statistics Collection：ＳＣ）過程（統計量収集モジュール２１の処理）とパラメータ決定（Parameter Decision：ＰＤ）過程（パラメータ決定モジュール２２の処理）とからなる。図１に示すように、ＳＡＯはデブロッキング・フィルタ（Deblocking Filter：ＤＢＦ）の後段に置かれ、ＤＢＦが出力する再構成サンプルに対して、ＣＴＢ単位でＳＣ及びＰＤが実行される。ＳＣでは、最初に、ＣＴＢ内のそれぞれの再構成サンプルに対して、ＢＯとＥＯのそれぞれについて、バンド又はカテゴリが決定され、続いて、当該ＣＴＢにおける各バンド及びカテゴリの統計量が収集される。ＰＤでは、前記ＳＣにおいて収集された当該ＣＴＢにおける統計量と、当該ＣＴＢの左側及び上側に隣接するＣＴＢのＳＡＯパラメータ・セットとに基づき、レート歪みコストが最小となる最適パラメータ・セットを決定し、これを当該ＣＴＢのＳＡＯパラメータ・セットとして出力する。ＳＡＯパラメータ・セットは、表１に示すように、ＳＡＯモード、ＳＡＯタイプ、ＳＡＯオフセットを含んでいる。尚、表１において、ＳＡＯモード０（SAO OFF）はＳＡＯを適用しないモード、ＳＡＯモード２（Merge_Mode）は隣接ＣＴＵのＳＡＯパラメータ・セットを現ＣＴＵのＳＡＯパラメータ・セットにコピーするマージ・モードであり、Merge_Upper，Merge_Leftは、それぞれ上側，左側のＣＴＵのＳＡＯパラメータ・セットをコピーして用いる。ＳＡＯモード１（New_Mode）は、新たなＳＡＯパラメータ・セットを使用するモード（新ＲＤＯモード：New Rate-distortion optimization (RDO) mode）である。また、「BO」はバンド・オフセット、ＳＡＯタイプの「EO_*」はエッジ・オフセットであり、EO_0，EO_90，EO_135，EO_45は、それぞれ図３（ａ）の同符号に対応する。
【００３９】
【表１】
2018061094.tif 000004
【００４０】
（２．１）統計量収集
ＥＯに関しては、図３（ａ）に示すように、クラス０〜クラス３の４つの１次元方向パターン（EO_0，EO_90，EO_135，EO_45）に沿って、注目サンプルｃ及び１次元方向に隣接する隣接サンプルａ，ｂのサンプル値の大小関係がそれぞれ検査され、その大小関係に従って、各クラスに対する注目サンプルｃのカテゴリが、図３（ｂ）に示すような４つのＥＯカテゴリ（カテゴリ１〜４）の何れかに決定される。尚、カテゴリ１〜４の何れにも該当しない場合は、注目サンプルｃのカテゴリは、カテゴリ０はオフセット非適用のカテゴリ０とされる。尚、カテゴリ１〜４については、オフセットの符号はそのカテゴリ番号に対応して一意的に決められており、各ＥＯカテゴリのオフセット符号は図３（ｂ）の矢印で示した通りとされている。統計量収集（Statistics Collection：ＳＣ）では、ＣＴＢ内の全サンプルについて、各ＥＯクラスの各ＥＯカテゴリに属するサンプルの度数統計及び歪み値の統計をとる。
【００４１】
ＢＯに関しては、各サンプルのサンプル値が属するバンドが決定される。図４に示したように、サンプルのダイナミック・レンジ（0〜2BitDepth-1；BitDepth = 8 はサンプルのビット深度）は３２バンドに等分割される。サンプル値が区間［8k, 8k+7］に属する場合には、当該サンプルはバンドｋに分類される。ＳＣでは、ＣＴＢ内の全サンプルについて、属するバンドの度数統計をとり、最も度数の大きい連続した４つのバンドが、各ＥＯクラスの各ＥＯカテゴリと比較するための、ＢＯに対する候補として選定される。
【００４２】
具体的なＳＣの手順について説明する。図５は、サンプル適応オフセット決定装置１１ｂにおける統計量収集手順の一例を表す図である。ＣＴＢ内の各原サンプル（符号化前のサンプル）及び各再構成サンプル（変換・量子化部４で符号化された後、逆量子化・逆変換部１０、動き差分画像合成部１８及びＤＢＦ１１ａで再構成されたサンプル）は、ラスタ走査順に走査される。図５では、ＣＴＢ内の各原サンプル及び各再構成サンプルは、２×２画素の部分ブロック（Org. samples 2×2）を単位ブロックとして走査が行われ、原サンプルは走査点位置に対応する２×２部分ブロック３１が一度に読み出され、再構成サンプルについては、原サンプルの２×２部分ブロック３１を中心としそれに隣接するサンプルを含む４×４画素の部分ブロック（Rec. samples 4×4）が一度に読み出される。図５においては、再構成サンプルの４×４部分ブロック３２内のグレーで附色した部分が、原サンプルの２×２部分ブロック３１と同じ位置に対応している。
【００４３】
尚、本実施例では、一度に処理する部分ブロックのサイズを２×２とした例を示すが、このサイズは任意に設定することができ、例えば、部分ブロックのサイズを４×４とし、図５の原サンプルの２×２部分ブロック３１のサイズを４×４に、図５の再構成サンプルの４×４部分ブロック３２のサイズを６×６に変更することもできる。
【００４４】
歪み値演算部３３は、原サンプルの２×２部分ブロック３１内の各画素と、それに対応する再構成サンプルの２×２部分ブロック３２ａ内の各画素との差分（原サンプル値−再構成サンプル値）を演算し、算出される差分値を区間［−１５，１５］内にクリップする（即ち、（差分値）＜−１５の場合は差分値を−１５とし、（差分値）＞１５の場合は差分値を１５とする）。クリップされた２×２個の差分値は歪みマップ３４に一時保存される。歪みマップ３４に保存された値が、走査点の再構成サンプルの４×４部分ブロック３２の中央の２×２部分ブロック３２ａ内の各画素の歪み値である。
【００４５】
ＥＯに関しては、ＥＯ分類部３５ａが、走査点の再構成サンプルの４×４部分ブロック３２の中央の２×２部分ブロック３２ａについて、当該２×２部分ブロック３２ａ内の各サンプルを、ＥＯクラス０〜３（EO_0, RO_90, EO_45, EO_135）のそれぞれの１次元方向について、カテゴリ０〜４のＥＯカテゴリに分類する。このとき、分類対象の注目サンプルｃに対して各クラスの１次元方向に隣接するサンプルａ，ｂが参照される（図３（ａ）参照）。分類された各ＥＯクラスのカテゴリの番号は、各ＥＯクラスに対応したカテゴリマップ３６ａ１〜３６ａ４に一時保存される。
【００４６】
一方、ＢＯに関しては、ＢＯ分類部３５ｂが、走査点の再構成サンプルの４×４部分ブロック３２の中央の２×２部分ブロック３２ａについて、当該２×２部分ブロック３２ａ内の各サンプルを、そのサンプルのサンプル値が属するバンド（バンド０〜３１の何れか）に分類する。分類されたバンドの番号は、バンドマップ３６ｂ（図５では１６進数表示）に一時保存される。
【００４７】
そして、各ＥＯクラスに対応したカテゴリマップ３６ａ１〜３６ａ４及びバンドマップ３６ｂに保存された各ＥＯクラスのカテゴリ番号及びＢＯのバンド番号に応じて、各ＥＯクラスのカテゴリ番号及びＢＯのバンド番号に対応して設けられた累算器４０及びカウンタ４１の値が更新される。累算器４０及びカウンタ４１のセットは、４（クラス）×４（カテゴリ）＝１６個のＥＯカテゴリ及び３２個のＢＯバンド（以下、これらをまとめて「４８分類」という。）に対応して、合計４８セット設けられている。例えば、図５に例示したように、再構成サンプルの２×２部分ブロック３２ａの左上画素について、EO_0, EO_90, EO_45, EO_135の各ＥＯクラスのカテゴリがそれぞれ１，１，２，１，ＢＯクラスのバンドが４の場合、スイッチング部３９は、ＥＯクラスEO_0のカテゴリ１,ＥＯクラスEO_90のカテゴリ１,ＥＯクラスEO_45のカテゴリ２,ＥＯクラスEO_135のカテゴリ１，ＢＯのバンド４に対応する累算器４０を歪みマップ３４の左上画素に接続し、接続されたそれぞれの累算器４０は、自己が保持している値に当該レジスタの値を加算する。そして、前記加算が行われた累算器４０に対応するカウンタは、カウント値を１だけインクリメントする（尚、図５はアルゴリズムを説明する図であり、実際にハードウェアに実装して行われる処理（図６参照）は並列化されるため、これとは若干異なる）。同様の操作を、再構成サンプルの２×２部分ブロック３２ａの右上画素，左下画素，右下画素について行い、１走査点（２×２ブロック）についての統計値収集操作が完了する。このようにして、各ＥＯクラスの各ＥＯカテゴリの発生度数及びＢＯの各バンドの発生度数は、そのＥＯクラス／ＥＯカテゴリ又はＢＯバンドに対応するカウンタ４１で累算され、それぞれに対応する歪み値は累算器４０で累算される。ＣＴＢ内の各走査点についての統計値収集操作が完了すると、各累算器４０で累算された歪み累計値、及び各カウンタ４１でカウントされた度数値が、パラメータ決定モジュール２２へ出力される。
【００４８】
（２．２）パラメータ決定
ＰＤの目的は、上記ＳＣで収集された統計量に基づき、各ＣＴＵに対するＳＡＯパラメータを決定することである。ＳＡＯパラメータは、表１に示したように、ＳＡＯモード、ＳＡＯタイプ、タイプ補助情報、及び４つのオフセット値を含む。ＳＡＯパラメータの決定に際しては、レート歪みコスト（以下「ＲＤコスト」という。）が最小となるパラメータ・セットが選択される。ここで、４８分類のそれぞれに対するＲＤコスト Cost は次式により定義される。
【００４９】
【数２】
2018061094.tif 000005
【００５０】
ここで、δＤは現ＣＴＢ内におけるＳＡＯ補正後の累計歪み値DpostとＳＡＯ補正前の累計歪み値Dpreとの差（以下「デルタ歪み（delta distortion）」という。）、rateは当該ＣＴＢを符号化するためのビット数（エントロピ符号化部５の出力ビット数）、λはラグランジェ定数である。ＣＴＢ内の原サンプルとＳＡＯ補正後のサンプルとの間の累計歪み値Dpost及び原サンプルとＳＡＯ補正前（ＤＢＦ適用後）のサンプルとの間の累計歪み値Dpreは次式で表される。
【００５１】
【数３】
2018061094.tif 000006
【００５２】
ここで、ｃは注目サンプル、ＣはＣＴＢ内の特定のＳＡＯタイプ（ＢＯ又はＥＯ），特定のバンド・グループ又はＥＯクラス，及び特定のバンド又はカテゴリに所属するサンプルの集合である。「バンド・グループ」とは、連続する４つのＢＯのバンドを一組としたグループをいう。org(ｃ)は注目サンプルｃの原サンプルのサンプル値、recpre(ｃ)は注目サンプルｃのＳＡＯ補正前の再構成サンプルのサンプル値、recpost(ｃ)は注目サンプルｃのＳＡＯ補正後の再構成サンプルのサンプル値、offsetはオフセット値である。尚、オフセット値offsetは、１つの分類に対しては１つのＣＴＢ内で共通の値が使用される。オフセット値offsetは、ＳＣの結果である歪み累計値Sum及び度数値Countから次式で算出される。
【００５３】
【数４】
2018061094.tif 000007
また、デルタ歪みδＤの演算は、式（２ａ），（２ｂ）より、ＳＣの結果である歪み累計値Sum及び度数値Countから、次のように簡単に計算することができる。
【００５４】
【数５】
2018061094.tif 000008
【００５５】
２つのマージ候補（Merge_Upper，Merge_Left）、２９の全てのバンド・グループの候補、４つの全てのＥＯクラスの候補、並びにＳＡＯ非適用（δＤ＝０）の候補のＲＤコストCostを比較し、最小のＲＤコストを有する候補のパラメータ・セットが、当該ＣＴＢに対するＳＡＯパラメータに決定される。
【００５６】
尚、ＢＯのために３２のバンドがあるが、ＳＡＯにおけるＢＯでは、連続する４つのバンドからなるバンド・グループが用いられるため、ＢＯに関する候補は２９のバンド・グループである。各バンド・グループのＲＤコストは、当該バンド・グループに属する４つのバンドのＲＤコストCostの合計である。また、ＥＯについては、ＳＣにより各ＥＯクラスに対して４つのＥＯカテゴリのＲＤコストが得られるが、それぞれのＥＯクラスに対するＲＤコストは、当該ＥＯクラスに属する４つのＥＯカテゴリのＲＤコストCostの合計である。
【００５７】
（２．３）ハードウェア・フレンドリなＳＡＯ
ハードウェア実装に適したものとするため、最適なバンド・グループの開始バンド番号band_positionの決定に際しては、バンド・グループに属する各バンドのＲＤコストCostの合計の代わりに、バンド・グループに属する各バンドのδＤの合計を用いる（即ち、λ＝０とする）。また、式（１）のビットレートrateについては、表２に記載するような定数で近似する。
【００５８】
【表２】
2018061094.tif 000009
【００５９】
また、マージ・モード（Merge_Upper，Merge_Left）では、上側及び左側のＣＴＵのＳＡＯパラメータがＣＴＵ単位でコピーして用いられるが、式（１）のＲＤコスト計算は、１つの輝度及び２つの色差Ｃｒ，Ｃｂの其々のＣＴＢについての式であり、ＲＤコストの比較の際の評価基準が問題となる。そこで、マージ・モードとの比較に際しては、輝度及び２つの色差Ｃｒ，Ｃｂの其々のＲＤコストを次式で変換したＣＯＴ（cost_transformed）を使用する。
【００６０】
【数６】
2018061094.tif 000010
【００６１】
ここで、添字“y”は輝度に対する値、添字“c”は色差Ｃｒ，Ｃｂに対する共通の値、添字“cr”，“cb”はそれぞれ色差Ｃｒ，Ｃｂに対する個別の値を意味する。ratey, ratecについては、それぞれ、表２に示した定数luma_param_rate, chroma_param_rateが用いられる。
【００６２】
ＳＡＯにおいて、上述のＳＣとＰＤは直列に順次実行される。然し乍ら、ＳＣとＰＤでは、必要とする処理すべき計算量に大きな違いがあり、これにより極めて不均一なデータフローが生じ、効率的なＳＡＯの実装を妨げる要因となる。そこで、本実施例のサンプル適応オフセット決定装置１１ｂでは、ＳＣとＰＤとを別々のクロックで駆動する「デュアルクロック・アーキテクチャ（dual-clock architecture）」を採用する。その詳細については後述する。
【００６３】
また、一般的なＳＡＯでは、ＢＯに関して３２バンドのＳＣが実行されるが、本実施例のサンプル適応オフセット決定装置１１ｂでは、各ＣＴＢにおいて、最も選択される可能性が高いバンドを推定し、最良のバンドを探索する領域を３２バンドから８バンドへ減少させる。この方法を、「ＢＯの為の粗レンジ選択（Coarse Range Selection for BO）」と呼ぶ。その詳細については後述する。
【００６４】
また、ＳＣにおける処理時間を短縮するため、本実施例のサンプル適応オフセット決定装置１１ｂでは、累算器４０及びカウンタ４１による統計量収集処理が終止する閾値を設定する「累算器の早期終止（Accumulators' Early Termination）」スキームを採用する。その詳細についても後述する。
【００６５】
（３）サンプル適応オフセット決定装置のハードウェア実装
（３．１）統計量収集モジュール
図６は、図２のサンプル適応オフセット決定装置１１ｂにおける統計量収集モジュール２１のハードウェア構成を表すブロック図である。図６において、統計量収集モジュール２１は、歪み値演算部３３、カテゴリ分類部３５、歪み値集計部３７ａ，３７ｂ、ビットマップ・レジスタ３８、スイッチング部３９ａ，３９ｂ、累算器４０ａ，４０ｂ、カウンタ４１ａ，４１ｂ、及び粗レンジ選択部４２を備えている。尚、図６において図５と同符号が附されている部分は、図５の同符号が附されている部分に対応している。
【００６６】
図５と同様、統計量収集モジュール２１には、ＣＴＢをラスタ走査して順次抽出される原サンプルの２×２部分ブロック３１及び再構成サンプルの４×４部分ブロック３２が入力される。再構成サンプルの４×４部分ブロック３２は、中央の２×２部分ブロック３２ａが原サンプルの２×２部分ブロック３１と同一の位置である。図６に示すように、２×２部分ブロック３１，３２ａの左上，右上，左下，右下のサンプルを、それぞれＡ，Ｂ，Ｃ，Ｄと附号する。
【００６７】
歪み値演算部３３は、原画像の２×２部分ブロック３１内の各原サンプルのサンプル値（式（２）のorg(ｃ)）と、それに対応する再構成画像の２×２部分ブロック３２ａ内の各再構成サンプルのサンプル値（式（２）のrecpre(ｃ)）との差分（org(ｃ)−recpre(ｃ)）を演算し、算出される差分値を区間［−１５，１５］内にクリップする。このクリップされた２×２ブロックの各差分値（歪み値）をまとめてdiffと記し、サンプル位置Ａ，Ｂ，Ｃ，Ｄに対応する歪み値を、それぞれdiff_A，diff_B，diff_C，diff_Dと記す。歪み値演算部３３が出力する差分値diffは、図５に示した歪みマップ３４のようになる。
【００６８】
カテゴリ分類部３５は、再構成サンプルの４×４部分ブロック３２に基づき、４つのＥＯクラスの其々に対して、サンプル位置Ａ，Ｂ，Ｃ，Ｄの再構成サンプルのＥＯカテゴリを決定するとともに、サンプル位置Ａ，Ｂ，Ｃ，Ｄの再構成サンプルのＢＯのバンドを決定する。ここで、ＥＯカテゴリの決定は、例えば以下の高速アルゴリズムを用いて行うことができる（非特許文献１０参照）。
【００６９】
【数７】
2018061094.tif 000011
【００７０】
ここで、ａ，ｂ，ｃは、図３（ａ）のａ，ｂ，ｃの位置関係にある各サンプルのサンプル値である。式（６ａ）はエッジ・インデックスIdxedgeからカテゴリ番号categoryへの変換配列であり、カテゴリ番号は図３（ｂ）に示した通りである（但し、カテゴリ０はＥＯ非適用を表す）。式（６ｂ）は符号決定式であり、Ｃ言語に規定する３項演算子で表記されている。式（６ｃ）は注目サンプルｃに対するエッジ・インデックスIdxedge(c)の決定式、式（６ｄ）は注目サンプルｃに対するエッジ・インデックスIdxedge(c)からカテゴリ番号category(c)への変換式である。
【００７１】
また、ＢＯのバンド数３２は２の５乗なので、ＢＯのバンドの決定は、注目サンプルのサンプル値の上位５ビットを用いて容易に行うことができる。
【００７２】
カテゴリ分類部３５による決定結果は、ビットマップ・レジスタ３８に一時保存される。ビットマップ・レジスタ３８は、ＥＯの１６カテゴリ（４つのＥＯクラスの４つのカテゴリ）及びＢＯの８又は３２バンドのそれぞれに対して、上記２×２ブロック（ＣＴＢ内のＡ，Ｂ，Ｃ，Ｄの位置のブロック。以下「注目ブロック」という。）内の各サンプルが当該カテゴリ又は当該バンドに属するか否かの真理値を表すビットマップを生成する。図７に、ビットマップ・レジスタ３８が生成するカテゴリ及びバンドのビットマップの例を示す。尚、図７においては、ＢＯのバンドのビットマップについてはバンド１６〜１９のみを示している。
【００７３】
歪み値集計部３７ａ，３７ｂは、それぞれ、１６のカテゴリ，８又は３２のバンドの各々に対して１つずつ設けられている。歪み値集計部３７ａ，３７ｂは、歪み値演算部３３が出力する差分値diffとカテゴリ分類部３５が出力する各再構成サンプルの各ＥＯクラスに対する所属カテゴリ及び所属バンドとに基づき、それぞれ、４つのＥＯクラスの４つのカテゴリに対する２×２ブロックの歪み値の集計、及び８又は３２のＢＯのバンドに対する２×２ブロックの歪み値の集計を行う。歪み値集計部３７ａ，３７ｂは、ＥＯに対する１６カテゴリ及びＢＯに対する８又は３２バンドのそれぞれに対して並列に設けられ、各カテゴリ及び各バンドに対して並列に計算を実行する。各歪み値集計部３７ａ，３７ｂの内部構成は、図６（ａ）に示した通りである。各歪み値集計部３７ａ，３７ｂの入力は、歪み値演算部３３が出力する歪み値diff=(diff_A, diff_B, diff_C, diff_D)と、カテゴリ分類部３５が出力するＥＯカテゴリ又はＢＯのバンドの番号（以下、ＥＯカテゴリ又はＢＯのバンドの番号を纏めて「カテゴリ番号」といい、Cate(X)（Ｘはサンプル位置）と記す。）である。図６（ａ）より、各歪み値集計部３７ａ，３７ｂの出力はsA，sB，sC，sDである。sA，sB，sC，sDは、次式の通りに算出される。
【００７４】
【数８】
2018061094.tif 000012
【００７５】
スイッチング部３９ａ，３９ｂは、それぞれ、１６のカテゴリ，８又は３２のバンドの各々に対して１つずつ設けられており、ビットマップ・レジスタ３８に保存された当該カテゴリ又は当該バンドのビットマップに基づいて0, sA，sB，sC，sDの何れかを選択し、当該カテゴリ又は当該バンドに対応する累算器４０ａへ出力する。ここで、スイッチング部３９ａ，３９ｂにおける選択規則は次式の通りである。
【００７６】
【数９】
2018061094.tif 000013
【００７７】
ここで、Ｓはスイッチング部３９ａ，３９ｂの出力値、b(A), b(B), b(C), b(D)は、其々、位置Ａ，Ｂ，Ｃ，Ｄにおける当該カテゴリ又は当該バンドのビットマップの真理値（図７参照）である。
【００７８】
累算器４０ａ，４０ｂは、それぞれ、１６のカテゴリ，８又は３２のバンドの各々に対して１つずつ設けられており、当該累算器４０ａ，４０ｂのカテゴリ又はバンドに対応するスイッチング部３９ａ，３９ｂが出力する歪みの集計値Ｓが入力される。累算器４０ａ，４０ｂは、図６（ｂ）に示すように、内部にレジスタ４５、加算器４６、コンパレータ４７、マルチプレクサ（ＭＵＸ）４８を備えている。レジスタ４５は１５ビットの値Sumを保持する。累算器４０ａ，４０ｂは、加算器４６において入力された値Sをレジスタ４５の保持値Sumに加算し、加算値Sum+Sでレジスタ４５の保持値を更新する。
【００７９】
カウンタ４１ａ，４１ｂは、それぞれ、１６のカテゴリ，８又は３２のバンドの各々に対して１つずつ設けられており、ビットマップ・レジスタ３８に保存された当該カテゴリ又は当該バンドのビットマップの真値を累算する。これにより、ＣＴＢ内において各カテゴリ及び各バンドに属するサンプル数がカウンタ４１ａ，４１ｂで集計される。
【００８０】
粗レンジ選択部４２は、各ＣＴＢにおいてＢＯに対するバンドの粗レンジ選択を行うモジュールである。この粗レンジ選択の詳細については（３．６）において詳述する。
【００８１】
（３．２）パラメータ決定モジュール
図８は、図２のサンプル適応オフセット決定装置１１ｂにおけるパラメータ決定モジュール２２のハードウェア構成を表すブロック図である。図８において、パラメータ決定モジュール２２は、歪み値レジスタ５１、度数レジスタ５２、オフセット演算部５３、オフセット・レジスタ５４、隣接ＣＴＵ情報レジスタ５５、マルチプレクサ５６、レート歪み演算部５７、レート歪み集計部５８、ＲＤコスト演算部５９、ＲＤコスト・レジスタ部６０、ＲＤコスト比較部６１、最適パラメータ・セット・レジスタ６１、マルチプレクサ６３、及びＳＡＯパラメータセット・メモリ６４を備えている。
【００８２】
歪み値レジスタ５１は、統計量収集モジュール２１が出力する、２４分類（１６のＥＯカテゴリ及び８のＢＯのバンド）又は４８分類（１６のＥＯカテゴリ及び３２のＢＯのバンド）に対する、現ＣＴＢ内の歪み累計値Sum[Idxcategory]（Idxcategoryは各分類（カテゴリ又はバンド）を特定するインデックス）を一時保存するレジスタである。度数レジスタ５２は、統計量収集モジュール２１が出力する、２４分類又は４８分類に対する、現ＣＴＢ内の当該分類に所属するサンプルの度数値Count[Idxcategory]を一時保存するレジスタである。オフセット演算部５３は、２４分類又は４８分類の其々について、歪み値レジスタ５１に保存された歪み累計値Sum[Idxcategory]及び度数レジスタ５２に保存された所属サンプルの度数値Count[Idxcategory]に基づき、当該分類に対するオフセット値Offset[Idxcategory]を、式（３ａ）により算出する。オフセット・レジスタ５４は、オフセット演算部５３が算出する２４分類又は４８分類のオフセット値Offset[Idxcategory]を一時保存する。隣接ＣＴＵ情報レジスタ５５は、現在のＣＴＢが属するＣＴＵの上側及び左側に隣接するＣＴＵ（以下「隣接ＣＴＵ」という。）のＳＡＯパラメータ情報を、ＳＡＯパラメータセット・メモリ６４がら読み出し、一時保存する。ここで、「ＳＡＯパラメータ情報」には、表１に示したＳＡＯタイプ、ＳＡＯオフセット、及びタイプ補助情報の他に、当該隣接ＣＴＵの輝度Ｙ及び色差Ｃｒ，ＣｂのＣＴＢに対するオフセット値（offsety，offsetcr，offsetcb）も含む。
【００８３】
マルチプレクサ５６は、計算中のＳＡＯモードに従って、オフセット演算部５３が出力するオフセット値、若しくは隣接ＣＴＵ情報レジスタ５５に保存された上側又は左側の隣接ＣＴＵの各々３つのＣＴＢ（Ｙ，Ｃｒ，Ｃｂ）に対するオフセット値のうちの何れかを選択し、レート歪み演算部５７へ出力する。
【００８４】
レート歪み演算部５７は、歪み値レジスタ５１が保持する歪み累計値Sum[Idxcategory]及び度数レジスタ５２が保持する度数値Count[Idxcategory]を読み出し、マルチプレクサ５６を通してオフセット演算部５３又は隣接ＣＴＵ情報レジスタ５５から入力されるオフセット値Offset[Idxcategory]に基づき、式（４）によりデルタ歪みDist[Idxcategory]（式（４）のδＤ）の演算を行う。
【００８５】
レート歪み集計部５８は、新ＲＤＯモードに対しては、各ＥＯクラス（class 0〜class 3。図３（ａ）参照）について、当該ＥＯクラスの４つのＥＯカテゴリ（図３（ｂ）参照）のデルタ歪みDist[Idxcategory]を集計し、当該ＥＯクラスに対するデルタ歪み累計値Dist_accu[Idxclass]を算出する。また、ＢＯの各バンド・グループの４つのバンド（図４参照）のデルタ歪みDist[Idxcategory]を集計し、当該バンド・グループに対するデルタ歪み累計値Dist_accu[Idxclass]を算出する。ここで、“Idxclass”は、クラス又はバンド・グループを特定するインデックスである。また、レート歪み集計部５８は、マージ・モードに対しては、１つのＣＴＵ内の３つのＣＴＢ（Ｙ，Ｃｒ，Ｃｂ）に対するデルタ歪みの累計を行う（式（５）の右辺第１項〜第３項）。
【００８６】
ＲＤコスト演算部５９は、レート歪み集計部５８が算出したデルタ歪み累計値Dist_accu[Idxclass]に基づき、式（１）により、各ＥＯクラス及びバンド・グループのＲＤコストCost[Idxclass]の演算を行う。ここで、ラグランジェ定数λは、輝度（Ｙ）及び色差（Ｃｒ，Ｃｂ）に対して予め定数λｙ，λｃとして設定されている。また、ビットレートrateについては、表２に記載した近似値を定数として使用する。また、マージ・モードに対しては、ＲＤコスト演算部５９は、ＲＤコストの代わりに、式（５）によりＣＯＴを算出する。ＲＤコスト・レジスタ部６０は、ＲＤコスト演算部５９が算出する新ＲＤＯモードの４クラス又は５又は２９バンド・グループに対するＲＤコストCost[Idxclass]、及びマージ・モードの上側及び左側ＣＴＵに対するＣＯＴを一時保存する。
【００８７】
ＲＤコスト比較部６１は、ＲＤコスト・レジスタ部６０に保存された各ＥＯクラス、各バンド・グループに対するＲＤコスト、及びＳＡＯ非適用に対するＲＤコスト（定数）、並びにマージ・モードに対する上側及び左側ＣＴＵに対するＣＯＴを比較して、ＲＤコスト又はＣＯＴが最小となるＳＡＯモード、ＳＡＯタイプ、及びタイプ補助情報（表１参照）を決定し、最適パラメータ・セット・レジスタ６１に一時保存する。そして、決定されたＳＡＯモードが新ＲＤＯモードの場合、マルチプレクサ６３は、当該ＳＡＯタイプ及びタイプ補助情報に基づき、オフセット・レジスタ５４に一時保存されている、当該ＳＡＯタイプ及びタイプ補助情報に対応する４つのオフセット値を選択し、ＳＡＯパラメータセット・メモリ６４へ出力する。ＳＡＯパラメータセット・メモリ６４は、マルチプレクサ６３が出力する４つのオフセット値を、最適パラメータ・セット・レジスタ６１に一時保存されたＳＡＯパラメータとともに、当該ＣＴＢのＳＡＯパラメータ・セットとして保存する。一方、ＲＤコスト比較部６１により決定されたＳＡＯモードがマージ・モードの場合、ＳＡＯパラメータセット・メモリ６４は、最適パラメータ・セット・レジスタ６１に一時保存されたＳＡＯモード及びＳＡＯタイプ（Merge_Upper又はMerge_Left）を当該ＣＴＵのＳＡＯパラメータ・セットとして保存する。
【００８８】
図６及び図８から分かるように、統計量収集モジュール２１におけるＳＣでは、各ＥＯ分類及び各ＢＯ分類に対する歪み値の集計のために、簡単な反復演算が多数実行される。一方、パラメータ決定モジュール２２におけるＰＤでは、ＳＣに比べて反復演算の数はかなり少ない（各ＣＴＵあたり５６以下）。然し乍ら、それらの反復演算の各々は、ＳＣの場合に比べて遥かに複雑であることがわかる。
【００８９】
ここで、システムのスループット（throughput：ＴＰ）を、クロック周期当たりで処理されるサンプル数における、動作周波数freqと並列度Ｎとの積とみなし、次式によって定義する。
【００９０】
【数１０】
2018061094.tif 000014
【００９１】
動作周波数freqか並列度Ｎの何れかを増やすことにより、ＴＰを増加させることが可能である。然し乍ら、統計量収集モジュール２１におけるＳＣ処理のうち累算器４０ａ，４０ｂ及びカウンタ４１ａ，４１ｂは順序論理回路であり、多数の反復演算を含むことから、ＳＣの演算を並列処理で行うと効率が低下する。図６及び図８において、グレーに附色した構成部分は、並列度Ｎが増加すると、実装面積はＮの２乗に比例して増加する。ＳＣは短いクリティカルパスで実行することができることも併せて考えると、ＳＣの演算は高い動作周波数freqで実行することが、ＴＰを増加させる上では好ましい。一方、パラメータ決定モジュール２２におけるＰＤの演算は、高い動作周波数freqで実行するのは好ましくないと考えられる。なぜなら、各ＣＴＵに対する限られた数の反復演算を実行するには、あまり多くのクロック周期を必要とせず、また、各反復演算の中では、長いクリティカルパスを齎すような複雑な演算が行われるからである。従って、ＳＣとＰＤでは、動作周波数freqの選択における優先的傾向が完全に相違し、その結果、ＳＣとＰＤとの間で不均一なデータフローが生じる。そのため、ＳＣとＰＤとを如何に効率よく組合わせるかが、ハードウェア実装上における重要な課題となる。そこで、次に、ＳＣとＰＤにおける最適クロック周波数について、詳細に説明する。
【００９２】
（３．３）ＳＣの最適クロック周波数
式（９）より、あるスループットを実現するには、数多くの並列度Ｎと動作周波数freqとの組み合わせが考えられる。例えば、非特許文献９の第１０図においては、Ｎ＝１６として構成した例が記載されている。一方、実際のハードウェア設計上は、実装面積やタイミング等の考慮すべき事項があるため、並列度Ｎの選択の自由度は制限される。表３に、統計量収集モジュール２１の幾つかの重要なモジュールにおける、各並列度Ｎ（＝１，２，３４，８，１６，３２）に対するハードウェア使用量の評価結果を示す。
【００９３】
【表３】
2018061094.tif 000015
【００９４】
表３にリストアップされ、且つ図６においてグレーで附色された各モジュールは、ＳＣにおいては、図６の他のモジュールに比べ、面積消費量に於いて支配的である。並列度Ｎの増加に対するこれらのモジュールの実装面積の増加率が、ＳＣの実装面積を決定づける。表３に示したように、ＳＣの実装面積の増加は、主として、ＥＯ及びＢＯの歪み値集計部３７ａ，３７ｂ内の機能ユニット（Function Unit：ＦＵ）の実装面積が略Ｎの２乗に比例して増加することに起因している。尚、ＥＯ及びＢＯの処理は、図６に示した通りであり、アーキテクチャに於いて同様である。そこで、以下の説明では、代表としてＥＯの処理について説明する。
【００９５】
並列度Ｎが１の場合、各サンプルに対して順次処理が実行され、処理対象のサンプルは５つのＥＯカテゴリ（カテゴリ０〜５）のうちの何れかに属するので、このサンプルが属するカテゴリを検査することにより、Sum及びCountに相当する累算器（図６における累算器４０ａ及びカウンタ４１ａ）が作動する。
【００９６】
並列度Ｎが２の場合、２番目のサンプルＰ２が、１番目のサンプルＰ１と同じカテゴリに属する場合と、異なるカテゴリに属する場合との２通りがある。前者の場合、サンプルＰ１，Ｐ２のカテゴリに対応する歪み値集計部３７ａは、サンプルＰ１，Ｐ２の歪み値の合計を加え累算器４０ａ（SAccユニット）が当該合計値を累算し、サンプルＰ１，Ｐ２のカテゴリに対応するカウンタ４１ａは度数値を２だけ増加させる。それに対し、後者の場合、各サンプルに対する演算処理は、Ｎ＝１の場合と同様となる。同じカテゴリ又はバンドのサンプルに対する歪み値は加合されるため、後のサンプルの歪み値の加算は、前者の結果に依存することが分かる。
【００９７】
同様に、並列度Ｎが３以上の場合、１番目のサンプルＰ１に続く残りのＮ−１個のサンプルＰ２，…，ＰＮが、サンプルＰ１と同じカテゴリに属するか否かを考慮する場合、２Ｎ−１通りの選択肢が存在し、Ｎ−１個のマルチプレクサ及び加算器が必要となる。同様に、サンプルＰ２に続く残りのＮ−２個のサンプルＰ３，…，ＰＮが、サンプルＰ２と同じカテゴリに属するか否かを考慮する場合、２Ｎ−２通りの選択肢が存在し、Ｎ−２個のマルチプレクサ及び加算器が必要となる。故に、一般に、並列度ＮのＥＯ及びＢＯの各歪み値集計部３７ａ，３７ｂに対しては、Ｎ（Ｎ−１）／２個の加算器、マルチプレクサ、及びコンパレータが必要となる（図６（ａ）参照。図６（ａ）はＮ＝４の場合を表す。）。
【００９８】
更に、Ｎの増加と共に、各累算器４０ａ，４０ｂへの入力数も必然的に増加する。例えば、図６に示したように、Ｎ＝４の場合、各累算器４０ａ，４０ｂあたり４つの入力（sA〜sD）がある。更に、各累算器４０ａ，４０ｂ及びカウンタ４１ａ，４１ｂにおいて、Ｎの増加に伴い各加算器のデータ幅が増加することによっても、実装面積が増加する（表３の第３列）。従って、全体的に見て、同じスループットでは、並列度Ｎが小さいほど面積効率が良いことが、上記解析によって示される。
【００９９】
次に、動作周波数freqについて考察する。式（９）より、並列度Ｎが小さくなるほど、目標ＴＰを維持するにはより高い動作周波数freqが必要となる。然し乍ら、図６（ｂ）に示したように、累算器４０ａ，４０ｂ及びカウンタ４１ａ，４１ｂの内部には帰還ループがあるため、最大周波数は制約される。主として、加算器４６により生じる経路遅延は、並列度Ｎとは無関係に動作速度の限界をもたらす。その上、パイプライン処理によっては斯かるループの経路遅延を減少させることはできない。従って、動作周波数に上限があり、即ち式（９）より、これは与えられた目標ＴＰに対して並列度Ｎに下限があることを意味する。
【０１００】
図９は、SMIC 40nmプロセス下での、ＳＣにおける並列度Ｎと、ＮＡＮＤ換算ゲート数，8K@120fpsのための必要最小周波数，及び達成可能な最大動作周波数との関係を示す図である。図９において、横軸は並列度Ｎである。棒グラフのグレーで附色されたビン（棒）は、表３に記載された各モジュールで必要とされるＮＡＮＤ換算ゲート数を表す。細い方の点線は、8K@120fpsをサポートするために必要とされる必要最小周波数（Require Freq.）を表す。太い方の点線は、達成可能な最大動作周波数（Max Freq.）を表す。
【０１０１】
8K@120fpsをサポートするには、スループットとして(7680×4320)[pixcel]×120[fps]×1.5[Gbps]が必要である。式（９）及び図９より、並列度Ｎが１，２の場合、要求される必要最小周波数は、それぞれ5.2 GHz，2.6 GHzであり、達成可能な最大動作周波数（1.5〜1.6 GHz）よりも大きくなるため、実装上実現できない。累算器４０ａ，４０ｂ及びカウンタ４１ａ，４１ｂの内部の帰還ループにおいて安定余裕を補償するためには、最大動作周波数は必要最小周波数よりも常に大きくなければならない。従って、並列度Ｎが小さいほど面積効率が良いことを考慮すると、安定余裕が補償される並列度Ｎの候補の中ではＮ＝４が最適であることが分かる。従って、式（９）より、対応する最適周波数は１．３ＧＨｚである。
【０１０２】
（３．４）ＰＤの最適クロック周波数
各ＣＴＢに対する最適なＳＡＯパラメータ・セットは、４つのＥＯクラス（其々、４つのＥＯカテゴリ）、３２のＢＯのバンド、及び２つのマージ・カテゴリ（各カテゴリで評価される４つのオフセット）の各候補の間で決定される。ＰＤでは、１サイクルで１つのＥＯ／ＢＯ候補のＲＤコストが演算され、４サイクルで各マージ候補のコストが演算される。このプロセスは、３ステージでパイプライン化される。合計としては、各ＣＴＢに対するＰＤ処理を実行するためには、１６＋３２＋４＋４＋４＝６０サイクル（ここで、１６：ＰＤのＥＯ処理，３２：ＰＤのＢＯ処理，４：マージ候補処理，４＋４：コスト比較処理及びメモリー・ライト処理）が必要とされる。ＰＤでは、レジスタ（歪み値レジスタ５１，度数レジスタ５２）に保存されるＳＣの結果（Sum及びCount）が使用されるので、ＰＤにおけるクロック周波数freqPDは次式の右辺で決まる下限値よりも大きくしておくべきである。
【０１０３】
【数１１】
2018061094.tif 000016
【０１０４】
ここで、NCPDは１ＣＴＢ当たりのＰＤが終了するまでのサイクル数、NCTBは１フレーム当たりのＣＴＢの数、Nframeは１秒間に符号化されるフレームの数である。
【０１０５】
（３．５）デュアルクロック・アーキテクチャ
以上の分析に基づき、本実施例のサンプル適応オフセット補正装置１１ｂでは、ＳＣ及びＰＤの各部分の特徴を最大限利用できるようにするため、ＳＣを高速クロックclkhighで駆動し、ＰＤを低速クロックclklowで駆動する、デュアルクロック・アーキテクチャ（dual-clk architecture）を採用する。8K@120fpsをサポートする場合、高速クロックclkhighは１．３ＧＨｚ、低速クロックclklowは、高速クロックclkhighの１／４又は１／６の周波数とする。尚、これらのクロックの具体的な周波数については、要求されるＴＰに応じて適宜変更することができる。
【０１０６】
尚、２つのクロックの間の歪みを完全に除去し、デルタ時間（遅延によるタイム・ラグを補正するための時間）において其々のクロックのエッジを揃えるために、高速クロックclkhighは低速クロックclklowの整数倍とすることが好ましい。図２に示した本実施例のサンプル適応オフセット決定装置１１ｂにおいては、高速クロックclkhighとして外部から入力されるベース・クロックclkbaseを使用し、低速クロックclklowとしては、ベース・クロックclkbaseを分周器２６により４分周又は６分周したクロックを使用するように構成されている。ベース・クロックclkbase、高速クロックclkhigh、及び低速クロックclklowの関係は次式の通りである。
【０１０７】
【数１２】
2018061094.tif 000017
【０１０８】
ここで、NCSCは１ＣＴＢ当たりのＳＣが終了するまでのサイクル数の最小値、NCPDは１ＣＴＢ当たりのＰＤが終了するまでのサイクル数である。分周比Ｍは、後述する粗レンジ選択を行う場合には４、行わない場合には６とされる。
【０１０９】
ＳＣに対してLuma，Cr，CbのＣＴＢを順次処理するには、それぞれ、９０５，２４０，２４０高速クロック・サイクルが必要である。ＳＣにおいて費やされるクロック・サイクルの最小値は、Ｃｂ／Ｃｒチャネルにより決定されるので、NCSCは２４０となる。ＰＤについては、Luma，Cr，Cbの各チャネルの最適パラメータ候補を決定するには６０低速クロック・サイクルが必要である。従って、この場合、分周比Ｍは４となる。一方、後述する粗レンジ選択を用いると、ＢＯの候補バンド数は３２から８に減少するので、最適パラメータ候補を決定するためのサイクル数は３６低速クロック・サイクルに減少し、分周比Ｍは６に増加する。
【０１１０】
図１０は、ＳＣとＰＤのためのパイプライン処理におけるＣＴＢ処理のスケジュールを表す図である。図１０において、ＳＣとＰＤは、異なるクロック領域で実行され、それぞれ、パイプライン・ステージｓ１，ｓ２において処理される。図１０におけるステージｓ１のLuma，Cb，Crの処理期間は、それぞれ、８７０，２１０，２１０高速クロック・サイクルであり、これらの処理期間において、それぞれ、Luma，Cb，CrのＣＴＢに対するＳＣ処理が実行される。また、ステージｓ１のLuma，Cb，Crの処理期間の末尾には、それぞれ、３０高速クロック・サイクルのPre_Cb，Pre_Cr，Pre_Lumaが設けられている。このPre_Cb，Pre_Cr，Pre_Lumaにおいて、ステージｓ１のデータは、少なくともＭ（４又は６）サイクルは変化せずに維持され、この期間に、ステージｓ１のデータは、ステージｓ２の低速クロックの立ち上がりエッジで捉えられステージｓ２へ転送される。一方、ステージｓ２のLuma，Cb，Crの処理期間は、４０又は６４低速クロック・サイクルであり、これらの処理期間において、それぞれ、Luma，Cb，CrのＣＴＢに対するＰＤ処理が実行される。
【０１１１】
ここで、高速クロックclkhighと低速クロックclklowがＭ分周の周波数関係を有しており、共にベース・クロックclkbaseによって生成されることに注意しておく。これにより、各クロックの立ち上がりエッジ揃えるための専用の回路を必要とせず、両者はデルタ時間で周期的に揃えられる。従って、完全に独立な２つのクロックを使用する場合に比べ、立ち上がりエッジ揃えるための位相同期回路（ＰＬＬ）を必要としない分だけハードウェア・コストが削減される。
【０１１２】
（３．６）ＢＯの為の粗レンジ選択
基本的なＳＡＯアルゴリズムにおいては、ＢＯの最適バンドを探すために３２バンド全てについての探索を行う。このバンドの全数探索は、ハードウェア設計上、ハードウェア・リソースの２／３（＝３２／４８）を消費し、残り１／３はＥＯに対するカテゴリ探索が消費する。そこで、本実施例のサンプル適応オフセット決定装置１１ｂでは、バンドの全数探索を行うことを止め、探索範囲をより小さい範囲に削減する。
【０１１３】
ＢＯの事前決定については、非特許文献５に記載されている。しかし、非特許文献５のＢＯ事前決定方式は、最適な１つのバンドを探すため、３２バンドの全てを探索する。これは、ソフトウェア指向のアルゴリズムであり、バンド決定プロセスの高速化を目的とするものである。然し乍ら、最適バンドの事前決定のためのＣＴＵ内のサンプルをフェッチするために多くのサイクルが必要となり、ＳＲＡＭバンド幅の制限により、この方法はハードウェア実装においては実用的ではない。
【０１１４】
図１１は、１ＣＴＢ内の各バンド内のサンプル数の度数分布の一例を表す図である。図１１では、ピクチャ・サンプルとして、Racehorce_832×480のビデオシーケンスの中のＣＴＢを用いた。図１１より、ＣＴＢ内の殆どのサンプルは特定の幾つかのバンド内に分布していることが分かり、その傾向は色差サンプルに於いては特に顕著である。そこで、１ＣＴＢ内において殆どのサンプルのバンドを効率的に分類するには、どの程度の範囲のバンドを探索すれば十分であるかを調査するために、多くの映像シーケンス内の各ＣＴＢ内で実際に使用されるバンド数の統計を収集した。この調査には、映像シーケンスとして、ＨＥＶＣのＣｆＰ（Call for Proposals）テストシーケンスであるBQTerrace，BasketballDrill及びBlowingBubblesを使用した。これらは、表４の第３列に示した通り、それぞれ、ＳＡＯオンにおいて、アンカー（SAOオフのHM-16.0リファレンス・ソフトウェアモデル）に対し、最大、中間、及び最小のＢＤレート（Bjontegarrd Delta rate）の低減率を有するテストシーケンスである。これらの映像を、量子化パラメータ２２，２７，３２，及び３７のもとで評価した。尚、表４の各欄の評価条件は、後記の（４）において述べる。
【０１１５】
図１２は、各種映像シーケンスの１ＣＴＢ内のサンプルが属するバンドの数の分布を測定した結果を表す図である。図１２では、各種映像シーケンスの各ピクチャ内の各ＣＴＢにおいて、当該ＣＴＢ内の各サンプルが属するバンドを調べ、当該ＣＴＢ内で使用されたバンド数を集計し、全てのＣＴＢについてこのバンド数の統計をとった結果を表している。図１２より、約８２％のＣＴＢが、８つ以下のバンド中に９０％のサンプルが存在知ることが分かる。映像シーケンスが大きくなるほど、各ＣＴＢに含まれるテクスチャは少なくなるので、バンド分布はより集中する。これらの結果は、ＢＯに対しては、８つのバンドを用いて統計量を収集することにより、殆ど全てのサンプルを分類することが可能であることが補償されることを示唆している。
【０１１６】
そこで、本実施例のサンプル適応オフセット決定装置１１ｂでは、粗レンジ選択部４２において、以下に説明するような、高尤度バンド評価に基づくＢＯに対する粗レンジ選択が実行される。粗レンジ選択部４２は、各ＣＴＢにおいて、ＳＣの開始前に、輝度ＣＴＢに対しては３２サイクル、色差ＣＴＢに対しては１６サイクルの粗レンジ選択処理を実行し、ＢＯの３２バンドの中から、実際にＳＣを実施する８バンドを選択する。これにより、ＢＯに関するハードウェア資源を８／３２＝１／４に削減することができる。
【０１１７】
【表４】
2018061094.tif 000018
【０１１８】
図１３は、粗レンジ選択部４２におけるＢＯに対するバンドの粗レンジ選択処理の流れを示す図である。粗レンジ選択では、ＣＴＢ内のバンド分布の評価を行い、バンド分布の中心を見つける。具体的には、粗レンジ選択部４２は、再構成サンプルのＣＴＢに対し、当該ＣＴＢの２×２サンプル・ブロック（以下「標本部分ブロック」という。）を順次取り出し（図１３のStep.1）、全ての標本部分ブロックのサンプル値の平均を計算する（図１３のStep.2）。ここで、標本部分ブロックの取り出し型としては、図１３（ａ）のように、左上隅から右下隅（又は、右上隅から左下隅）への対角線に沿って対角線上の標本部分ブロックを取り出す方法や、図１３（ｂ）のように、ＣＴＢ全体に亘り略一様となるように分散してサイズが２×２のサンプル・ウィンドウを一定間隔で格子状に設定し、各サンプル・ウィンドウにより順次標本部分ブロックを取り出す方法などを用いることが出来る。粗レンジ選択処理の最後のサイクルに於いて、最終的な平均値（整数値に丸めた値）が算出される。そして、粗レンジ選択部４２は、この平均値が属するバンドｂｃが、現在のＣＴＢの中におけるサンプル分布の中央であるとみなし、当該バンドｂｃ、バンドｂｃの左側（バンド・インデックスが小さい側）の３バンド、及び右側（バンド・インデックスが大きい側）の４バンドを、粗選択した８つのバンド候補とする（図１３のStep.3）。尚、バンドｂｃのバンド・インデックスが３以下の場合には、バンド・インデックス０〜７のバンドが粗選択した８つのバンド候補とされ、バンドｂｃのバンド・インデックスが２７以上の場合には、バンド・インデックス２４〜３１のバンドが粗選択した８つのバンド候補とされる。カテゴリ分類部３５は、ＢＯについては、粗選択した８つのバンド候補のみについてのビットマップを生成し、また、歪み値集計部３７ｂはこれらの８つのバンド候補のみについて歪み値の集計を行い、また、累算器４０ｂ，カウンタ４１ｂは、これらの８つのバンド候補のみについての累算処理を行う。また、ＰＤにおいては、これらの８つのバンド候補の中から、最小のＲＤコストを有する４つの連続したバンド・グループがＢＯに関するＳＡＯパラメータ候補として選択される。
【０１１９】
表４は、ＣｆＰの各種テスト用シーケンスを用いて、各種アルゴリズムのＢＤレートの低減率を求めた結果である。アンカーをSAOオフのHM-16.0リファレンス・ソフトウェアモデルとし、比較対象としてHM-16.0のＳＡＯオンモード（３列目）及び非特許文献９のICIP14（４列目）を用いている。５列目は、粗レンジ選択部４２によるＢＯに対するバンドの粗レンジ選択処理を実施せず３２のバンド候補すべてに対してＳＣ及びＰＤを行った場合のＢＤレートの低減率であり、６列目は、粗レンジ選択部４２によるＢＯに対するバンドの粗レンジ選択処理を実施して８つのバンド候補に対してＳＣ及びＰＤを行った場合のＢＤレートの低減率である。尚、粗レンジ選択は、図１３（ｂ）の方法により実施している。実験の結果、それぞれのテスト用映像シーケンスに対して、ＢＯに対する粗レンジ選択を実施した場合も、３２のバンド候補すべてを評価した場合と、ＢＤレートの低減率は殆ど変わらないことが実証された。
【０１２０】
【表５】
2018061094.tif 000019
【０１２１】
表５に、粗レンジ選択を行う場合と行わない場合とでの実装面積及び処理サイクル数の比較を示す。表５において、粗レンジ選択は、図１３（ｂ）の方法により実施している。ＳＣにおいては、各カテゴリ及び各バンドは並列処理されるため、実際の統計収集の処理サイクル数は変わらないが、粗レンジ選択を行う場合には、前処理として８つのバンド候補の選択が加わる分だけ処理サイクル数は増加する。逆に、ＰＤでは、ＢＯのバンド候補数が３２から８に減少するため、処理サイクル数は大きく減少する。また、実装面積は、ＢＯの並列度が３２から８に減少するため、全体として大きく減少する。
【０１２２】
（３．７）累算器の早期終止
図６に示したように、本実施例のサンプル適応オフセット決定装置１１ｂの統計量収集モジュール２１は、粗レンジ選択有りの場合は２４、粗レンジ選択無しの場合は４８の累算器４０（累算器４０ａ，４０ｂ）及びカウンタ４１（カウンタ４１ａ，４１ｂ）を備えている。理論上は、各カウンタ４１は６４×６４＝４０９６までカウント値が増加することができる。然し乍ら、各再構成サンプルは、ＢＯに対しては１バンド、ＥＯに対しては各クラスにつき１カテゴリのみに分類されるため、多くの場合、１ＣＴＢ当たりの各カウンタ４１の終値は数百よりも小さい値に留まる。
【０１２３】
そこで、本実施例の統計量収集モジュール２１では、各カウンタ４１（カウンタ４１ａ，４１ｂ）は、それぞれ、自己のカウント値が所定の閾値ｃＴｈ以上となると現ＣＴＢについてのカウントを終止すると共に、当該カウンタ４１に対応する累算器４０（累算器４０ａ，４０ｂ）に対してカウントアップ信号count_upを出力する。各累算器４０は、カウンタ４１からカウントアップ信号count_upが入力されると、現ＣＴＢについての歪み値の累算を終止する。これを「累算器の早期終止」スキームと呼ぶ。これにより、Sum及びCountのデータ幅を減少させることが出来るとともに、消費電力を抑えることが出来る。
【０１２４】
各カウンタ４１を停止されるカウント値の閾値ｃＴｈは、実験によって決めることが出来る。表４に示した各テスト用映像シーケンスを用いて、閾値ｃＴｈを１０２４，２０４８，４０９６とした場合について、アンカー（SAOオフのHM-16.0リファレンス・ソフトウェアモデル）に対するＢＤレートの減少率を求めて比較した。実験の結果、何れの閾値ｃＴｈを用いた場合にも、ＢＤレートの減少率の上ではロスは見られなかった。その理由として、１つのカウンタ４１が閾値に達した場合、それに対応するバンド又はカテゴリは、バンド・グループ又はクラス内に於いて優位であるため、当該ＣＴＢにおいては強力な候補（優位候補）であるとみなされることによる。このバンド又はカテゴリは、他の候補よりも高いで最適候補に選択されると推測される。この推測は、時々誤るが、推測が誤る場合には他のバンド又はカテゴリに属するサンプル数は、優位候補と推測したバンド又はカテゴリに属するサンプル数と比べて然程小さくはなく、この推測の誤りが符号化効率に及ぼす影響は小さいと考えられる。従って、上記実験の結果、閾値ｃＴｈは１０２４に設定することができ、その結果、各カウンタ４１及び各累算器４０におけるデータ幅を減少させることが出来、実装面積を5K gate、全面積の約１０％削減することができる。
【０１２５】
（４）実験結果
上記本実施例のサンプル適応オフセット決定装置１１ｂについて、SystemVerilog（登録商標）を用いてＲＴＬ（Register Transfer Level）での設計を行った。論理設計と物理設計は、それぞれ、Synopsys Design Compiler（登録商標）及びCadence SoC Encounter（登録商標）により、SMIC 40nm CMOS標準セルライブラリで行った。入力データとそれに対して予想される出力データは、ＨＥＶＣのハードウェア設計のためのスティミュラス（ベンチマーク）及びリファレンスであるHM-16.0ソフトウェアモデルから作出した。
【０１２６】
図１４は、実施例１のサンプル適応オフセット決定装置１１ｂの実装例のレイアウトを示した図である。コアサイズは０．０７３ｍｍ２であり、チップ面積利用率は７３％である。レイアウト前のクリティカルパス遅延は０．６６ｎｓ、レイアウト後のクリティカルパス遅延は０．７６ｎｓであった。図１４において、「Parameter Decision」と表記された領域がパラメータ決定モジュール２２、「Statistics Collection」と表記された領域が統計量収集モジュール２１の占める領域であり、「SRAM」と表記された白色の領域はラインバッファの占める領域である。
【０１２７】
この実装例を用いて、量子化パラメータがＱＰ＝３７のBasketballDrillビデオシーケンス（表４参照）について消費電力を評価したところ、本設計例における消費電力は４８ｍＷであった。
【０１２８】
【表６】
2018061094.tif 000020
【０１２９】
本実施例のサンプル適応オフセット決定装置１１ｂの符号化効率を評価するため、非特許文献１１に提示されている一般的なテスト条件により、以下の２つのグループのテストを実施した。
【０１３０】
第１のグループにおいては、（I）ＳＡＯオフのHM-16.0デフォルト環境のアルゴリズム（アンカー）、（II）ＳＡＯオンのHM-16.0デフォルト環境のアルゴリズム、（III）非特許文献９に記載のアルゴリズム、（IV）粗レンジ選択を行わない実施例１のサンプル適応オフセット決定装置１１ｂのアルゴリズム、及び（V）粗レンジ選択を行う実施例１のサンプル適応オフセット決定装置１１ｂのアルゴリズムの５つのアルゴリズムの評価を行った。このグループは、低遅延・メイン・Ｐスライスオンリー（low delay, main, P slices only：ＬＤＰ）設定とする。この条件下では、ＳＡＯの効果が最も明確となる。評価結果は表４に示した通りである。
【０１３１】
第２のグループにおいては、（i）ＳＡＯオンでのHM-16.0デフォルト環境のアルゴリズム（アンカー）及び（ii）粗レンジ選択を行う実施例１のサンプル適応オフセット決定装置１１ｂのアルゴリズムの２つのアルゴリズムの評価を行った。このグループに於いては、ALL_INTRA（ＡＩ），RANDOM_ACCESS（ＲＡ），及びLOWDELAY_MAIN（ＬＤ）の３つの設定での評価を行った。評価結果は表６に示した通りである。
【０１３２】
また、表７に、本実施例のサンプル適応オフセット決定装置１１ｂの設計例と従来技術（非特許文献９及び非特許文献８）との比較結果を示す。
【０１３３】
【表７】
2018061094.tif 000021
【０１３４】
表４及び表７において、非特許文献９のＳＡＯの実装例と比較すると、本実施例のサンプル適応オフセット決定装置１１ｂでは、ＢＤレートにおける符号化損失無しで、実装面積が約７０％縮小されることが分かる。また、表６において、様々な設定においてアンカーと比較すると、本実施例のサンプル適応オフセット決定装置１１ｂでは、粗レンジ選択を行うことによって、ＢＤレートに於いて０．３％程度の符号化効率の損失しか生じないことが分かる。
【０１３５】
ＳＣにおける並列度Ｎは、8K@120fpsのスループットに適合する条件下では、非特許文献９ではＮ＝１６であったものが、本実施例ではＮ＝４に減少した。これにより、同じ仕様及び設定（粗レンジ選択なし）において、本実施例のサンプル適応オフセット決定装置１１ｂは、非特許文献９のものと比べ、実装面積が６７％に減少し、ゲート数が１５６．３Ｋから６８Ｋ（表５参照）に減少させることが出来た。
【０１３６】
ＢＯに対して粗レンジ選択を行う場合でも、ＢＤレートにおける符号化効率の損失は殆ど生じないことが分かった。図１１に示したデータから、粗レンジ選択により選択されたバンド・レンジがＣＴＢ内の殆どのサンプル値をカバーしていることが明らかである。表５に示したように、粗レンジ選択によりアルゴリズムとアーキテクチャの相互最適化を位個なうことで、回路面積を２５％削減し、ゲート数を６８Ｋから５５Ｋに削減することができる。
【符号の説明】
【０１３７】
１  映像符号化装置
２  ブロック分割部
３  イントラ予測部
４  変換・量子化部
５  エントロピ符号化部
６  符号化制御部
１０  逆量子化・逆変換部
１１  ループ内フィルタ
１１ａ  デブロッキング・フィルタ
１１ｂ  サンプル適応オフセット決定装置
１２  フレームメモリ
１３  動き検出部
１４  動き補償部
１５  動き差分画像生成部
１６，１７  イントラ・インター予測切替部
１８  動き差分画像合成部
２１  統計量収集モジュール
２２  パラメータ決定モジュール
２３，２４  サンプル・レジスタ
２５  オフセット補正モジュール
２６  分周器
３１  原サンプルの２×２部分ブロック
３２  再構成サンプルの４×４部分ブロック
３２ａ  再構成サンプルの２×２部分ブロック
３３  歪み値演算部
３４  歪みマップ
３５  カテゴリ分類部
３５ａ  ＥＯ分類部
３５ｂ  ＢＯ分類部
３６ａ１〜３６ａ４  カテゴリマップ
３６ｂ  バンドマップ
３７ａ，３７ｂ  歪み値集計部
３８  ビットマップ・レジスタ
３９，３９ａ，３９ｂ  スイッチング部
４０，４０ａ，４０ｂ  累算器
４１，４１ａ，４１ｂ  カウンタ
４２  粗レンジ選択部
４５  レジスタ
４６  加算器
４７  コンパレータ
４８  マルチプレクサ
５１  歪み値レジスタ
５２  度数レジスタ
５３  オフセット演算部
５４  オフセット・レジスタ
５５  隣接ＣＴＵ情報レジスタ
５６  マルチプレクサ
５７  レート歪み演算部
５８  レート歪み集計部
５９  ＲＤコスト演算部
６０  ＲＤコスト・レジスタ部
６１  ＲＤコスト比較部
６１  最適パラメータ・セット・レジスタ
６３  マルチプレクサ
６４  ＳＡＯパラメータセット・メモリ
【図１】
2018061094.tif 000023
【図２】
2018061094.tif 000024
【図３】
2018061094.tif 000025
【図４】
2018061094.tif 000026
【図５】
2018061094.tif 000027
【図６】
2018061094.tif 000028
【図７】
2018061094.tif 000029
【図８】
2018061094.tif 000030
【図９】
2018061094.tif 000031
【図１０】
2018061094.tif 000032
【図１１】
2018061094.tif 000033
【図１２】
2018061094.tif 000034
【図１３】
2018061094.tif 000035
【図１４】
2018061094.tif 000036