(57)【要約】【課題】ＭＳＢ側のビット幅を削除してブロックマッチング処理を行うことで、映像信号の緩やかな変化に追従可能にする。【解決手段】符号化対象画像及び参照画像を用いて前記符号化対象画像の動き予測を行い符号化を行う映像符号化装置であって、前記符号化対象画像及び前記参照画像の差分絶対値和を算出する差分絶対値和計算部と、少なくとも前記差分絶対値和に基づいて前記符号化対象画像の動き予測を行う動き予測部と、符号化対象画像が平坦画像であるか否かを判定し判定結果を得る判定部と、を有し、前記差分絶対値和計算部は、前記判定結果が平坦画像である場合、前記符号化対象画像の輝度値の下位ビットと前記参照画像の輝度値の下位ビットとに基づいて前記差分絶対値和を算出する、映像符号化装置である。【選択図】図１
2018082351.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象画像及び参照画像を用いて前記符号化対象画像の動き予測を行い符号化を行う映像符号化装置であって、
前記符号化対象画像及び前記参照画像の差分絶対値和を算出する差分絶対値和計算部と、
少なくとも前記差分絶対値和に基づいて前記符号化対象画像の動き予測を行う動き予測部と、
符号化対象画像が平坦画像であるか否かを判定し判定結果を得る判定部と、
を有し、
前記差分絶対値和計算部は、前記判定結果が平坦画像である場合、前記符号化対象画像の輝度値の下位ビットと前記参照画像の輝度値の下位ビットとに基づいて前記差分絶対値和を算出する、
映像符号化装置。
【請求項２】
前記映像符号化装置は前記符号化対象画像を分割し符号化する、
請求項１に記載の映像符号化装置。
【請求項３】
前記判定部は前記符号化対象画像の輝度値の上位ビットに基づいて判定する、
請求項２に記載の映像符号化装置。
【請求項４】
前記判定部は、所定領域に含まれるすべての輝度値の上位ビットが同一の値であるか否かに基づいて前記符号化対象画像が平坦画像であるか否か判定を行う、
請求項３に記載の映像符号化装置。
【請求項５】
前記差分絶対値和計算部は、前記符号化対象画像の輝度値の上位ビットと前記参照画像の輝度値の上位ビットとが異なる場合、前記符号化対象画像の輝度値の上位ビットと前記参照画像の輝度値の上位ビットとの少なくともいずれか一方を補正することで差分絶対値和を算出する、
請求項１に記載の映像符号化装置。
【請求項６】
前記差分絶対値和計算部は、平坦画像と判定された前記符号化対象画像の上位ビットの値が平坦画像と判定された前記参照画像の上位ビットの値よりも大きい場合、平坦画像と判定された前記参照画像の上位ビットの値から平坦画像と判定された前記符号化対象画像の上位ビットの値を減じ、平坦画像と判定された前記参照画像の上位ビットの値が平坦画像と判定された前記符号化対象画像の上位ビットの値よりも大きい場合、平坦画像と判定された前記符号化対象画像の上位ビットの値から平坦画像と判定された前記参照画像の上位ビットの値を減じ、前記減じた結果に対して、所定ビット数の右ビットシフトを行い、前記符号化対象画像の面積を乗じた値に前記差分絶対値和を加算することで補正を行う、
請求項５に記載の映像符号化装置。
【請求項７】
符号化対象画像及び参照画像を用いて前記符号化対象画像の動き予測を行い符号化を行う映像符号化装置が実行する映像符号化方法であって、
前記符号化対象画像及び前記参照画像の差分絶対値和を算出する差分絶対値和計算ステップと、
少なくとも前記差分絶対値和に基づいて前記符号化対象画像の動き予測を行う動き予測ステップと、
符号化対象画像が平坦画像であるか否かを判定し判定結果を得る判定ステップと、
を有し、
前記差分絶対値和計算ステップは、前記判定結果が平坦画像である場合、前記符号化対象画像の輝度値の下位ビットと前記参照画像の輝度値の下位ビットとに基づいて前記差分絶対値和を算出する、
映像符号化方法。
【請求項８】
請求項７に記載の映像符号化方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像符号化装置、映像符号化方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
映像符号化技術として、MPEG-2、MPEG-4、MPEG-4/AVC等の国際標準化規格に基づく方式が多く用いられている。最近では次世代の映像符号化規格であるHEVCが規格化され、実用化が進められている。これらの符号化方式は、より多くのブロックサイズや符号化モードが選択できるが、いずれも、画像を正方形又は長方形のブロックに区切り、各ブロックに対して適切な符号化モード（動きベクトル、単方向/双方向予測などの予測方向、スキップ/マージなどの予測モード）を決定して符号化する。とりわけ、動きベクトルを決定するために、符号化対象ブロックと参照画像とでブロックマッチング処理を行い、ブロックマッチング誤差が最も小さくなる点を動きベクトルとして決定する方式が採用されている。
【０００３】
近年はブロックマッチング誤差に加えて、動きベクトルの表現に必要となる符号量も含めて符号化コストが最少となる点を動きベクトルとして決定する方式が一般的である。しかしながら、ブロックマッチング処理は、符号化対象ブロックに対して参照画像をずらせながら候補点数すべてについて差分絶対値和（以下「ＳＡＤ値」という。）を計算する必要がある。したがって、広い探索範囲から動きベクトルを探索するためには膨大なブロックマッチング処理を要し、演算量がきわめて大きい。
【０００４】
とりわけ、ＨＥＶＣリアルタイムエンコードＬＳＩは演算量が肥大化しており、それに伴い使用電力も大きくなっている。現在の大きさのＬＳＩで４Ｋ８Ｋに対応するためには使用電力を小さくする必要がある。使用電力を下げるため、既存とは異なるアルゴリズムを導入し、演算量を低減することで回路規模を小さくするアプローチと、使用していない回路を停止するような機構を組み込むアプローチと、の２つのアプローチがある。
【０００５】
この問題に対し、ブロックマッチング処理の演算量を減少させるためにこれまでに数多くの方法が提案されている。ひとつは＜非特許文献１＞に代表されるように、探索範囲すべての点について網羅的にブロックマッチング演算を行うのではなく、限定的な探索点のみの探索によって段階的に符号化コスト最小の点へ至ろうという方式（以下「方式ア」という。）である。
【０００６】
もうひとつは、ブロックマッチング処理の精度を下げることで演算量を削減する方式（以下「方式イ」という。）である。例えば映像信号が各点１０ビットの輝度値で表現されている場合に、下位５ビットを削除して上位５ビットのみでブロックマッチング処理を行うことで、演算器のビット幅を削減して規模を小さく構成する。具体的には、映像信号がｎビット、演算器がｋビットの場合、映像信号の輝度値のＬＳＢ（Least Significant Bit）（下位ビット）側ｎ−ｋビットを削除して、ＭＳＢ（Most Significant bit）（上位ビット）側ｋビットを抽出して演算する。例えば＜非特許文献２＞では、1/8縮小画像や1/2縮小画像を用いた概略的な動き探索を実施する部分において、１０ビットから８ビットに減じてブロックマッチング処理を行っている。ＬＳＢ２ビット部分、すなわち４未満の微小な輝度信号の差はブロックマッチング処理に反映されず、ブロックマッチング精度が低下する問題があるものの、ＭＳＢ部分を使用して概略的な動き探索を行うことができる。
【０００７】
また、輝度値のＬＳＢ側を削減するのではなく、＜非特許文献３＞のように、物体の境界を抽出するエッジ処理を行ったうえで2ビットに減じた画像をもとに動き探索を行うような方式も存在する。演算器のビット幅を大幅に減じても動き探索処理を行うことができる。上記の方式ア及び方式イはそれぞれ独立に、もしくは双方を組み合わせて適用することが可能である。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Shan Zhu and Kai-Kuang Ma, “A New Diamond Search Algorithm for Fast Block-Matching Motion Estimation,” IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 9, NO. 2, FEBRUARY 2000
【非特許文献２】Takayuki Onishi et al, “Single-chip 4K 60fps 4:2:2 HEVC Video Encoder LSI with 8K Scalability,”  2015 Symposium on VLSI Circuits Digest of Technical Papers, C55, June 2015.
【非特許文献３】Alp Erturk and Sarp Erturk, “Two-Bit Transform for Binary Block Motion Estimation,”, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 15, NO. 7, JULY 2005
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ブロックマッチング処理のビット幅を削除する方式は、映像信号のＬＳＢ側に由来する緩やかな変化を無視してブロックマッチング処理を行うため、映像信号の緩やかな変化に追従できないという問題があった。
【００１０】
上記事情に鑑み、本発明は、ＭＳＢ側のビット幅を削除してブロックマッチング処理を行うことで、映像信号の緩やかな変化に追従可能にする技術の提供を目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様は、符号化対象画像及び参照画像を用いて前記符号化対象画像の動き予測を行い符号化を行う映像符号化装置であって、前記符号化対象画像及び前記参照画像の差分絶対値和を算出する差分絶対値和計算部と、少なくとも前記差分絶対値和に基づいて前記符号化対象画像の動き予測を行う動き予測部と、符号化対象画像が平坦画像であるか否かを判定し判定結果を得る判定部と、を有し、前記差分絶対値和計算部は、前記判定結果が平坦画像である場合、前記符号化対象画像の輝度値の下位ビットと前記参照画像の輝度値の下位ビットとに基づいて前記差分絶対値和を算出する、映像符号化装置である。
【００１２】
本発明の一態様は、上記の映像符号化装置であって、前記映像符号化装置は前記符号化対象画像を分割し符号化する。
【００１３】
本発明の一態様は、上記の映像符号化装置であって、前記判定部は前記符号化対象画像の輝度値の上位ビットに基づいて判定する。
【００１４】
本発明の一態様は、上記の映像符号化装置であって、前記判定部は、所定領域に含まれるすべての輝度値の上位ビットが同一の値であるか否かに基づいて前記符号化対象画像が平坦画像であるか否か判定を行う。
【００１５】
本発明の一態様は、上記の映像符号化装置であって、前記差分絶対値和計算部は、前記符号化対象画像の輝度値の上位ビットと前記参照画像の輝度値の上位ビットとが異なる場合、前記符号化対象画像の輝度値の上位ビットと前記参照画像の輝度値の上位ビットとの少なくともいずれか一方を補正することで差分絶対値和を算出する。
【００１６】
本発明の一態様は、上記の映像符号化装置であって、前記差分絶対値和計算部は、平坦画像と判定された前記符号化対象画像の上位ビットの値が平坦画像と判定された前記参照画像の上位ビットの値よりも大きい場合、平坦画像と判定された前記参照画像の上位ビットの値から平坦画像と判定された前記符号化対象画像の上位ビットの値を減じ、平坦画像と判定された前記参照画像の上位ビットの値が平坦画像と判定された前記符号化対象画像の上位ビットの値よりも大きい場合、平坦画像と判定された前記符号化対象画像の上位ビットの値から平坦画像と判定された前記参照画像の上位ビットの値を減じ、前記減じた結果に対して、所定ビット数の右ビットシフトを行い、前記符号化対象画像の面積を乗じた値に前記差分絶対値和を加算することで補正を行う。
【００１７】
本発明の一態様は、符号化対象画像及び参照画像を用いて前記符号化対象画像の動き予測を行い符号化を行う映像符号化装置が実行する映像符号化方法であって、前記符号化対象画像及び前記参照画像の差分絶対値和を算出する差分絶対値和計算ステップと、少なくとも前記差分絶対値和に基づいて前記符号化対象画像の動き予測を行う動き予測ステップと、符号化対象画像が平坦画像であるか否かを判定し判定結果を得る判定ステップと、を有し、前記差分絶対値和計算ステップは、前記判定結果が平坦画像である場合、前記符号化対象画像の輝度値の下位ビットと前記参照画像の輝度値の下位ビットとに基づいて前記差分絶対値和を算出する、映像符号化方法である。
【００１８】
本発明の一態様は、上記の映像符号化装置であって、上記の映像符号化方法をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【００１９】
本発明により、ＭＳＢ側のビット幅を削除してブロックマッチング処理を行えるようになり、映像信号の緩やかな変化に追従することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施形態の映像符号化装置の構成例を表すブロック図である。
【図２】平坦画像及び非平坦画像の具体例を表す図である。
【図３】非平坦画像の画素値及び平坦画像の画素値におけるビット削減及びビット残存位置の具体例を示す図である。
【図４】ビット幅を１０、削減するビット数を５とした場合におけるビット削減及びビット残存位置の具体例を示す図である。
【図５】下位ｘビットを固定的に削除して、残るＭビットからＭ−ｋビットを残存させる場合の具体例を示す図である。
【図６】削減されたＭＳＢ側のｋビットの値をビット削減画像データに含める方法の具体例を示す図である。
【図７】削減されたＭＳＢ側のｋビットの値Ａを所定の画素に含める方法の具体例を示す図である。
【図８】画像特徴量を保持しない場合における、削減されたＭＳＢ側のｋビットの値を所定の画素に含める方法の具体例を示す図である。
【図９】ＳＡＤ値を求める範囲内において、参照画像として平坦画像及び非平坦画像、又はＡｒの異なる平坦画像が混在する場合を示す図である。
【図１０】映像符号化装置１００が動きベクトルを決定するまでの処理の流れを示すフローチャートである。
【図１１】探索器１１５が行うＳＡＤ値計算の処理の流れの具体例を示すフローチャートである。
【図１２】探索器１１５が行うＳＡＤ値計算の処理の流れの具体例を示すフローチャートである。
【図１３】第２の実施形態の映像符号化装置の構成例を表すブロック図である。
【発明を実施するための形態】
【００２１】
以下、図面を用いながら、本発明の実施形態における映像符号化装置、映像符号化方法及びコンピュータプログラムを説明する。本明細書における「符号化ブロック」はＭＰＥＧ−２やＨ．２６４／ＡＶＣにおけるマクロブロック、ＨＥＶＣにおけるコーディングユニット(ＣＵ)又はプレディクションユニット(ＰＵ)に相当する。以降の説明は、ＨＥＶＣを例にとって説明を行う。
【００２２】
（第１の実施形態）
図１は、第１の実施形態の映像符号化装置の構成例を表すブロック図である。映像符号化装置１００は、画像特徴量算出部１０１、画像バッファ１０２、探索結果評価部１０３及び動き探索部１１０を備える。動き探索部１１０は、符号化画像バッファ１１１、参照画像バッファ１１２、縮小フィルタ／サブペルフィルタ１１３、画像読み出し制御器１１４、探索器１１５及び探索結果評価器１１６を備える。映像符号化装置１００が備える構成のうち、画像特徴量算出部１０１及び動き探索部１１０が行う動作に特徴があり、従来技術とは異なる部分である。他の構成は、Ｈ．２６４／ＡＶＣやＨＥＶＣ等の規格に準拠した映像符号化装置における構成と同様である。
【００２３】
映像符号化装置１００は、符号化する対象の画像である符号化画像を入力する。映像符号化装置１００は、符号化画像を符号化対象ブロックに分割する。映像符号化装置１００は、符号化対象ブロックと参照画像とでブロックマッチング処理を行い、動きベクトルを決定する。ブロックマッチング処理では、符号化対象ブロックに対して参照画像をずらしながら候補点数すべてについて差分絶対値を計算する。動きベクトルを決定するため、各構成は以下のような動作を行う。
【００２４】
画像特徴量算出部１０１は、所定領域の画素ごとに符号化画像及び参照画像が平坦画像であるかあるいは非平坦画像であるかを判定する。画像特徴量算出部１０１は、平坦画像か非平坦画像であるかの結果である平坦判定結果を画像特徴量として画像バッファ１０２に記憶させる。画像特徴量算出部１０１は、平坦判定結果を、判定を行った符号化画像又は参照画像と対応付けて画像バッファ１０２に記憶させてもよい。所定領域とは、Ｎ×Ｎ（Ｎは１以上の自然数）で表される領域である。平坦画像及び非平坦画像を図２を用いて説明する。
【００２５】
図２は、平坦画像及び非平坦画像の具体例を表す図である。図２では、映像信号の本来のビット幅をＭ（Ｍは１以上の自然数）ビットとし、ブロックマッチング処理において、ビット幅としてｋ（ｋは１以上Ｍ未満の自然数）ビットを削減するものとする。このとき、平坦画像は、所定領域の画素に含まれる輝度値のＭＳＢ側ｋビットがすべて同じ値である画像をいう。これに対して、非平坦画像は、平坦画像ではない画像、すなわち、所定領域の画素について、ＭＳＢ側ｋビットが一部でも異なる値である画像をいう。
【００２６】
例えば、映像信号の本来のビット幅Ｍ＝１０、削減しようとするビット幅ｋ＝５とする。所定領域の画素の左上１画素値が６８（二進数表記すると０００１０  ００１００）とすると、その他の全ての画素値が６４（二進数表記すると０００１０  ０００００）〜９５（二進数表記すると０００１０  １１１１１）であれば、平坦画像と判定される。すなわち、ＭＳＢ側５ビットの値が、二進数表記ですべて０００１０で同一であれば、所定領域の画素を平坦画像と判定する。なお、Ｎが小さいほど狭い領域ごとに平坦画像か否かを画像特徴量算出部１０１は判定できるため、平坦画像と判定される確率が向上する。なお、参照画像における平坦画像及び非平坦画像が混在し、ブロックマッチング処理が中止される確率が増加するため、Ｎの値はブロックマッチングを行う最大の符号化ブロックサイズ以上としてもよい。例えばＨＥＶＣの場合、探索を行うブロックの最大サイズであるＮ＝６４に設定してもよい。この画像特徴量算出部１０１が行う処理は判定を行う処理部（例えば、判定部）の一態様であり、入力された画像が平坦画像か非平坦画像であるかを出力する処理であれば異なる処理であってもよい。また、平坦画像か非平坦画像であるかは平坦判定結果と言い換えてもよい。
【００２７】
図１に戻って映像符号化装置１００の説明を続ける。画像バッファ１０２には、符号化画像が記憶される。また、画像バッファ１０２には、すでに符号化及び復号が完了し、動きベクトルを用いた画面間予測を行うために参照するための画像（以下「参照画像」とする。）があわせて蓄積される。画面間予測とは、既に符号化された前後フレーム内の画素データを利用して符号化対象画素データの予測信号を生成する処理である。画像バッファ１０２には、平坦判定結果が画像特徴量として、符号化画像又は参照画像と対応して記憶される。
【００２８】
探索結果評価部１０３は、１つ以上の動き探索部１１０から出力される、異なる縮小率の探索結果ベクトルと拡大率の探索結果ベクトルとコスト値とに基づいて動きベクトルを決定する。
【００２９】
動き探索部１１０は、符号化画像を分割した符号化ブロックそれぞれに関する動きベクトルを求めるため、符号化ブロックと参照画像との間でブロックマッチング処理を行う。動き探索では、動き探索部１１０は、まず縮小画像を用いて大まかな動きベクトルを決定し、その近傍について非縮小画像、更に小数画素精度の画素値を用いて探索してもよい。動き探索部１１０は、段階的に精度を高めてもよい。したがって、動き探索部１１０は使用される画像の縮小率及び拡大率にあわせて１つ以上配置されてもよい。なお、本実施形態では、動き探索部１１０の動作は共通であるため、１つの動き探索部１１０について詳述する。
【００３０】
動き探索部１１０は、画像バッファ１０２から符号化画像及び参照画像を取得する。動き探索部１１０は、取得した符号化画像及び参照画像から、動き探索のブロックマッチング処理に必要な画像データを符号化画像バッファ１１１及び参照画像バッファ１１２に記憶させる。このとき、動き探索部１１０は、平坦判定結果も画像特徴量としてあわせて符号化画像バッファ１１１及び参照画像バッファ１１２記憶させる。動き探索部１１０は、必要に応じて縮小フィルタ／サブペルフィルタ１１３を符号化画像及び参照画像に経由させてもよい。
【００３１】
画像読み出し制御器１１４は、平坦判定結果に基づいて画像データのビット削減を行う。画像読み出し制御器１１４は、ビット削減された画像データ（以下「ビット削減画像データ」という）を探索器１１５に出力する。画像読み出し制御器１１４は画像特徴量も探索器１１５に出力する。
【００３２】
探索器１１５は、符号化画像の所定の探索範囲に対してブロックマッチング処理を行い、１探索点ごとのＳＡＤ値を計算する。１探索点のＳＡＤ値を計算すると、探索器１１５は、参照画像をずらして再度ブロックマッチング処理を行う。探索器１１５は、計算されたＳＡＤ値から補正ＳＡＤ値を算出する。補正ＳＡＤ値は、ＬＳＢ側ビットを削減した場合に算出される。補正ＳＡＤ値は、計算されたＳＡＤ値に対して、削減されたビット数と同じビット数だけ右ビットシフトを行うことで算出される。探索器１１５は、算出された補正ＳＡＤ値をコスト値として探索結果評価器１１６に出力する。探索器１１５の処理で用いるＳＡＤ値は一態様であり、異なる指標が用いられてもよい。探索器１１５は、差分絶対値和計算部の一態様である。
【００３３】
探索器１１５は、符号化対象ブロックが非平坦画像の場合、式（１）に基づいてＳＡＤ値Ｓを算出する。なお、得られたＳＡＤ値Ｓに対して削減されたｋビット分の右ビットシフトを行い補正ＳＡＤ値Ｓを算出する。
【００３４】
【数１】
2018082351.tif 000003
【００３５】
探索器１１５は、符号化対象ブロックが平坦画像かつ参照画像が非平坦画像の場合、各画像の画素値のビット幅Ｍと削減されるビット数ｋとの関係に基づいて式を切り替えてＳＡＤ値を算出する。
【００３６】
ｋ＝Ｍ／２の場合、探索器１１５は式（２）に基づいてＳＡＤ値Ｓを算出する。なお、得られたＳＡＤ値Ｓに対して削減されたｋビット分の右ビットシフトを行い補正ＳＡＤ値Ｓを算出する。
【００３７】
【数２】
2018082351.tif 000004
【００３８】
ｋ≠Ｍ／２の場合、探索器１１５は式（３）に基づいてＳＡＤ値Ｓを算出する。なお、得られたＳＡＤ値Ｓに対して削減されたビット分の右ビットシフトを行い補正ＳＡＤ値Ｓを算出する。
【００３９】
【数３】
2018082351.tif 000005
【００４０】
探索器１１５は、符号化対象ブロック及び参照画像が平坦画像の場合、平坦画像と判定された符号化対象ブロックのｋビットのＭＳＢの値（以下「Ａｔ」という。）と平坦画像と判定された参照画像のｋビットのＭＳＢの値（以下「Ａｒ」という。）との大小関係に基づいて式を切り替えてＳＡＤ値を算出する。
【００４１】
Ａｔ＝Ａｒの場合、探索器１１５は式（１）に基づいてＳＡＤ値Ｓを算出する。
【００４２】
Ａｔ＞Ａｒの場合、探索器１１５は式（４）に基づいてＳＡＤ値Ｓを算出する。なお、得られたＳＡＤ値Ｓに対して、式（５）を計算することで補正値Ｓを算出する。
【００４３】
【数４】
2018082351.tif 000006
【００４４】
【数５】
2018082351.tif 000007
【００４５】
Ａｔ＜Ａｒの場合、探索器１１５は式（６）に基づいてＳＡＤ値Ｓを算出する。なお、得られたＳＡＤ値Ｓに対して、式（７）を計算することで補正値Ｓを算出する。
【００４６】
【数６】
2018082351.tif 000008
【００４７】
【数７】
2018082351.tif 000009
【００４８】
ＳＡＤ値を算出する時に用いるビット列について、ＬＳＢとは最大でも全体のビット列の半分以下が望ましい。具体的には、ビット幅が１０ビットの場合、ＬＳＢとは５ビット以下が望ましい。
【００４９】
探索器１１５は、ブロックマッチングを行う符号化対象ブロック内に平坦画像及び非平坦画像又はＡｒの異なる平坦画像が複数混在する場合、現探索点においてＳＡＤ値の算出をせず、探索点を移動してＳＡＤ値算出する。
【００５０】
探索結果評価器１１６は、探索器１１５から受け付けたコスト値のうちコスト値が最小となる探索点を探索結果ベクトルとして出力する。探索結果評価器１１６は、探索結果ベクトルをコスト値と合わせて、探索結果評価部１０３に出力する。また、探索結果評価器１１６は、動きベクトルの記載に必要なビットコストをコスト値に加算し、加算した結果が最小となる探索点を探索結果ベクトルとしてもよい。探索結果評価器１１６は、動き予測部の一態様である。
【００５１】
図３は、非平坦画像の画素値及び平坦画像の画素の輝度値におけるビット削減及びビット残存位置の具体例を示す図である。図３では、各画像の画素の輝度値のビット幅をＭとし、削減するビット数をｋとする。画像読み出し制御器１１４は非平坦画像ではＬＳＢ側ｋビットを削除する。画像読み出し制御器１１４は平坦画像ではＭＳＢ側ｋビットを削除する。ＬＳＢ側ｋビットを削減する場合、残るＭＳＢ側はＬＳＢ側を切り捨てしてもよいし、ＬＳＢ側の値で四捨五入をしてもよい。また、平坦画像から削減されたＭＳＢ側のｋビットの値をＡとする。この場合、画像読み出し制御器１１４はＮ×Ｎ単位でＡをビット削減画像データに含める。なお、本実施形態では輝度値をビット削減の対象として用いているが、本発明としては輝度値に限定されず、画素に含まれるどのような値を対象としてもよい。例えば、輝度値に少なくとも色差値の一部を合成した値等の輝度値に基づく値を対象としてもよい。
【００５２】
図４は、ビット幅を１０、削減するビット数を５とした場合におけるビット削減及びビット残存位置の具体例を示す図である。図４では、画像読み出し制御器１１４は非平坦画像ではＬＳＢ側５ビットを削除する。画像読み出し制御器１１４は平坦画像ではＭＳＢ側５ビットを削除する。ＬＳＢ側５ビットを削減する場合、残るＭＳＢ側はＬＳＢ側を切り捨ててもよいし、ＬＳＢ側の値で四捨五入を行ってもよい。また、平坦画像から削減されたＭＳＢ側の５ビットの値をＡとする。この場合、画像読み出し制御器１１４はＮ×Ｎ単位でＡをビット削減画像データに含める。なお、画素値の全ビットを用いて削除部分及び残存部分を割り当てるのではなく、下位ｘビットを固定的に削除して、残るＭビットからＭ−ｋビットを残存させる場合の具体例を示す図である図５に示されるように下位ｘビットを固定的に削除し、残るＭビットを分割して（Ｍ−ｋ）ビットを抽出するように構成されてもよい。
【００５３】
図６は、削減されたＭＳＢ側のｋビットの値Ａをビット削減画像データに含める方法の具体例を示す図である。図６に示されるように、ビット削減データは各画素の値と値Ａとをそれぞれ個別に保有してもよい。従って、画像読み出し制御器１１４は、各画素の値に加えて値Ａを探索器１１５に出力する。
【００５４】
図７は、削減されたＭＳＢ側のｋビットの値Ａを所定の画素に含める方法の具体例を示す図である。図７に示されるように、画像読み出し制御器１１４はＮ×Ｎ画素の特定の１画素をＭＳＢデータとして探索器１１５に出力してもよい。ＭＳＢデータは、ＬＳＢ側ｋビットを削除し、ＭＳＢ側を残した値である。特定の1画素は、例えば左上１画素であってもよいし、他のどの画素であってもよい。なお、特定の１画素は、ＬＳＢ側のデータが削除される。これに対して、他の画素はＬＳＢ側のデータが保持される。従って、ブロックマッチング処理の精度に大きな影響は与えない。
【００５５】
図８は、画像特徴量を保持しない場合に、削減されたＭＳＢ側のｋビットの値を所定の画素に含める方法の具体例を示す図である。図８に示されるように、画像特徴量をＮ×Ｎ単位に保持しない場合、画像読み出し制御器１１４はＮ×Ｎ画素の特定の１画素を特殊ピクセルデータとしてもよい。特殊ピクセルデータは、画素値の最上位１ビットを平坦画像又は非平坦画像を判断できるビットを備えるデータである。特定の１画素は、例えば左上１画素であってもよいし、他のどの画素であってもよい。
【００５６】
図９は、ＳＡＤ値を求める範囲内において、参照画像として平坦画像及び非平坦画像、又はＡｒの異なる平坦画像が混在する場合を示す図である。ブロックマッチング処理を行うｗ×ｈの範囲内に平坦画像及び非平坦画像又はＡｒの異なる平坦画像が複数混合する場合、ＳＡＤ演算が複雑になることを防ぐため、ＳＡＤ値の算出は行わず（すなわち、探索動作を行わず）、探索点移動をして次の探索点のＳＡＤ値算出に移行する。実際の画像においては、参照画像で平坦画像と非平坦画像が交互に隣接したり、参照画像で異なるＡｒが隣接したりするケースはさほど頻繁ではないため、このような場合は探索を行わずとも探索性能には大きく影響しない。
【００５７】
図１０は、映像符号化装置１００が動きベクトルを決定するまでの処理の流れを示すフローチャートである。まず、映像符号化装置１００の画像バッファ１０２は、入力される符号化画像を記憶する（ステップＳ１０１）。映像符号化装置１００の画像特徴量算出部１０１は、符号化画像及び参照画像が平坦画像であるか又は非平坦画像であるかを判定する。画像特徴量算出部１０１は、平坦判定結果を画像特徴量として画像バッファ１０２に記憶させる（ステップＳ１０２）。動き探索部１１０は、画像バッファ１０２から符号化画像及び参照画像を取得する（ステップＳ１０３）。探索器１１５は、符号化画像に対してブロックマッチング処理を行い、１探索点ごとのＳＡＤ値を計算する（ステップＳ１０４）。探索結果評価器１１６は、計算されたＳＡＤ値に基づいて探索結果ベクトルとコスト値とを出力する（ステップＳ１０５）。探索結果評価部１０３は、探索結果ベクトルとコスト値とに基づいて動きベクトルを決定する。（ステップＳ１０６）。
【００５８】
図１１及び図１２は、ＳＡＤ値計算の処理の流れの具体例を示すフローチャートである。映像符号化装置１００の画像読み出し制御器１１４は、符号化対象ブロックの画像が平坦画像であるか否か判定する（ステップＳ２０１）。符号化対象ブロックは平坦画像ではない場合（ステップＳ２０１：ＮＯ）、ステップＳ２０２からステップＳ２０９までを実行する。画像読み出し制御器１１４は、符号化対象ブロックのＬＳＢを削除する。画像読み出し制御器１１４は、ＬＳＢが削除された符号化対象ブロックのビット削減画像データを探索器１１５へ出力する（ステップＳ２０２）。画像読み出し制御器１１４は、参照画像を非平坦画像とする（ステップＳ２０３）。画像読み出し制御器１１４は、参照画像のＬＳＢを削除する。画像読み出し制御器１１４は、ＬＳＢが削除された参照画像のビット削減画像データを探索器１１５へ出力する（ステップＳ２０４）。
【００５９】
探索器１１５は、各探索点において式（１）に基づいて、ＳＡＤ値Ｓを算出する（ステップＳ２０５）。探索器１１５は、ＳＡＤ値Ｓに対して、ｋビットの右ビットシフトすることで補正ＳＡＤ値を算出する（ステップＳ２０６）。探索器１１５は、符号化対象ブロックの最終探索点か否か判定する（ステップＳ２０７）。最終探索点でない場合（ステップＳ２０７：ＮＯ）、探索器１１５は、探索点を移動し、ステップＳ２０５へ遷移する（ステップＳ２０８）。最終探索点である場合（ステップＳ２０７：ＹＥＳ）、探索器１１５は、補正値Ｓをコスト値として探索結果評価器１１６へ出力する（ステップＳ２０９）。
【００６０】
符号化対象ブロックは平坦画像である場合（ステップＳ２０１：ＹＥＳ）、ステップＳ２１０からステップＳ２２９を実行する。画像読み出し制御器１１４は、符号化対象ブロックのＭＳＢを削除したビット削減画像データとＡｔとを探索器１１５へ出力する（ステップＳ２１０）。画像読み出し制御器１１４は、参照画像が平坦画像か否か判定する（ステップＳ２１１）。参照画像が平坦画像の場合（ステップＳ２１１：ＹＥＳ）、画像読み出し制御器１１４は、符号化対象ブロック単位で参照画像のＭＳＢを削除する。画像読み出し制御器１１４は、ＭＳＢが削除された参照画像のビット削減画像データとＡｒとを探索器１１５へ出力する（ステップＳ２１２）。参照画像が平坦画像ではない場合（ステップＳ２１１：ＮＯ）、画像読み出し制御器１１４は、符号化対象ブロック単位で参照画像のＬＳＢを削除する。画像読み出し制御器１１４は、ＬＳＢが削除された参照画像のビット削減画像データとＡｒとを探索器１１５へ出力する（ステップＳ２１３）。
【００６１】
探索器１１５は、ブロックマッチング処理範囲内の参照画像は全てＡｒが同じである平坦画像又は全て非平坦画像か否かを判定する（ステップＳ２１４）。参照画像は全てＡｒが同じである平坦画像又は全て非平坦画像ではない場合（ステップＳ２１４：ＮＯ）、ステップＳ２２８へ遷移する。参照画像は全てＡｒが同じである平坦画像又は全て非平坦画像である場合（ステップＳ２１４：ＹＥＳ）、探索器１１５は、ブロックマッチング処理範囲内の参照画像は平坦画像か否か判定する（ステップＳ２１５）。参照画像は平坦画像ではない場合（ステップＳ２１５：ＮＯ）、ステップＳ２１６からステップＳ２１９を実行する。探索器１１５は、ｋ＝Ｍ／２であるか否か判定する（ステップＳ２１６）。ｋ＝Ｍ／２である場合（ステップＳ２１６）、探索器１１５は、各探索点において式（２）に基づいて、ＳＡＤ値Ｓを算出する（ステップＳ２１７）。ｋ＝Ｍ／２でない場合（ステップＳ２１６：ＮＯ）、探索器１１５は、各探索点において式（３）に基づいて、ＳＡＤ値Ｓを算出する（ステップＳ２１８）。探索器１１５は、ステップＳ２１７又はステップＳ２１８で算出されたＳＡＤ値Ｓに対して、ｋビットの右ビットシフトすることで補正値Ｓを算出する（ステップＳ２１９）。
【００６２】
参照画像は平坦画像である場合（ステップＳ２１５：ＹＥＳ）、ステップＳ２２０からステップＳ２２６を実行する。探索器１１５は、Ａｔ＝Ａｒであるか否か判定する（ステップＳ２２０）。Ａｔ＝Ａｒである場合（ステップＳ２２１：ＹＥＳ）、探索器１１５は、各探索点において式（１）に基づいて、ＳＡＤ値Ｓを算出する（ステップＳ２２１）。Ａｔ＝Ａｒでない場合（ステップＳ２２１：ＮＯ）、探索器１１５は、Ａｔ＞Ａｒであるか否か判定する（ステップＳ２２２）。Ａｔ＞Ａｒである場合（ステップＳ２２２：ＹＥＳ）、探索器１１５は、各探索点において式（４）に基づいて、ＳＡＤ値Ｓを算出する（ステップＳ２２３）。探索器１１５は、ステップＳ２２３で算出されたＳＡＤ値Ｓに対して、式（５）に基づいて補正値Ｓを算出する（ステップＳ２２４）。Ａｔ＞Ａｒでない場合（ステップＳ２２２：ＮＯ）、探索器１１５は、各探索点において式（６）に基づいて、ＳＡＤ値Ｓを算出する（ステップＳ２２５）。探索器１１５は、ステップＳ２２５で算出されたＳＡＤ値Ｓに対して、式（７）に基づいて補正値Ｓを算出する（ステップＳ２２６）。
【００６３】
探索器１１５は、符号化対象ブロックの最終探索点か否か判定する（ステップＳ２２７）。最終探索点でない場合（ステップＳ２２７：ＮＯ）、探索器１１５は、探索点を移動し、ステップＳ２１４へ遷移する（ステップＳ２２８）。最終探索点である場合（ステップＳ２２７：ＹＥＳ）、探索器１１５は、補正値Ｓをコスト値として探索結果評価器１１６へ出力する（ステップＳ２２９）。
【００６４】
従来のソフトウェアエンコーダで動き予測を行う場合は処理を途中で止めることもできるが、ハードウェアエンコーダ(例えば上記ＬＳＩ)で動き予測を行う場合は途中で処理を止めることが難しいため、予測するためのアルゴリズム自体に工夫が必要という問題があった。しかし、このように構成された映像符号化装置１００では、符号化対象画像と参照画像との間でブロックマッチング処理を行い、ＳＡＤ値を求める過程において、符号化対象画像と参照画像とが平坦画像である場合、画素値のＭＳＢ側を削減してＬＳＢ側を残すことでブロックマッチング処理の精度を低下させずに動き探索が行える。したがって、実施形態の映像符号化装置１００は、計算量が低下することによるＬＳＩの使用電力を低下させつつ、グラデーションを含む画像を符号化した際に符号化歪みを大きく低減することができる。
【００６５】
（変形例）
映像符号化装置１００は、輝度値の代わりに輝度値に色差を一部加算した値を使用して、ブロックマッチング処理を実行してもよい。この場合、画像特徴量算出部１０１は、輝度値に色差を一部加算した値を用いて平坦画像及び非平坦画像を判定する。
【００６６】
参照画像において全て平坦画像と判定されたｋビットのＭＳＢの値が同じである平坦画像である場合又は全て非平坦画像ではない場合（図１２のステップＳ２１４：ＮＯの場合）、探索器１１５は探索点を移動させず、所定の処理を実行してもよい。所定の処理とは、例えば従来手法として公開される既知のアルゴリズム等であってもよい。
【００６７】
なお、本実施例においては画像特徴量算出部１０１において、符号化画像と参照画像それぞれについて平坦画像か非平坦画像であるかを判定しているが、処理の簡略化のため、外部から入力された入力画像に対して判定を一度のみ行い、参照画像についての判定を省略する構成とすることもできる。この場合、符号化画像については入力画像と一致するため判定結果にずれはないが、参照画像は映像符号化装置内部で一旦符号化されたあと復号された画像であるため、入力画像に対して劣化が発生し、入力画像と参照画像の判定結果が一致しない場合が発生し得る。具体的には、以下の（ア）又は（イ）の２種類が発生しえる。
（ア）入力画像に対して画像特徴量算出部１０１は非平坦と判定したが、実際の参照画像は平坦であった。
（イ）入力画像に対して画像特徴量算出部１０１は平坦と判定したが、実際の参照画像は非平坦であった。
（ア）の場合は画像特徴量算出部１０１の判定結果の通り、参照画像を非平坦として処理して差し支えない。（イ）の場合は、画像読み出し制御器１１４においてビット削減を行う際に、平坦と判定されているためにＭＳＢ側のｋビットを削減しようとしても、ＭＳＢ側ｋビットの値Ａを超える、もしくは下回る画素の輝度値が存在する可能性がある。この場合は、平坦領域の輝度値の最大値もしくは最小値でクリップする。具体的には以下のとおりとする。
・ＭＳＢ側ｋビットの値Ａを超える場合：ＭＳＢ側ｋビットの値はＡ、ＬＳＢ側Ｍ−ｋビットはすべて１（最大値）。
・ＭＳＢ側ｋビットの値Ａを下回る場合：ＭＳＢ側ｋビットの値はＡ、ＬＳＢ側Ｍ−ｋビットはすべて０（最小値）。
上記により、ＭＳＢ側ｋビットの値はすべてＡで統一され、平坦領域として以降の処理を差し支えなく行うことができる。以上のように参照画像の輝度値をクリップすることにより、以降のＳＡＤ演算の精度が悪化する可能性があるが、実際の画像において（イ）の場合が起こり得る頻度は非常に低いため、ＳＡＤ演算精度の劣化は事実上無視できる。
【００６８】
（第２の実施形態）
次に、第２の実施形態における映像符号化装置１００ａについて説明する。図１３は、第２の実施形態の映像符号化装置１００ａの機能構成を表す機能構成図である。第２の実施形態における映像符号化装置１００ａは、動き探索部１１０の代わりに動き探索部１１０ａを備え、画像読み出し制御部１０４をさらに備える点で第１の実施形態とは異なるが、それ以外の構成は同じである。以下、第１の実施形態と異なる点について説明する。
【００６９】
画像読み出し制御部１０４は、平坦判定結果に基づいて画像データのビット削減を行う。画像読み出し制御部１０４は、ビット削減画像データを動き探索部１１０ａの符号化画像バッファ１１１及び参照画像バッファ１１２に出力する。画像読み出し制御部１０４は、必要に応じて縮小フィルタ／サブペルフィルタ１１３を経由させて符号化画像バッファ１１１及び参照画像バッファ１１２に出力してもよい。
【００７０】
このように構成された映像符号化装置１００ａでは、画像読み出し制御部１０４によってビット削減されたビット削減画像データを符号化画像バッファ１１１及び参照画像バッファ１１２に記憶させることで、符号化画像バッファ１１１及び参照画像バッファ１１２の記憶ビット量もあわせて削減できる。このとき、画像特徴量及び平坦画像ＭＳＢ側のｋビットの代表値Ａを保持する方法として、図６又は図７にて詳述された方法を用いてもよい。
【００７１】
上述した実施形態における映像符号化装置をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【００７２】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００７３】
本発明は、ブロックマッチング処理のビット幅を削減しつつ、画像信号の輝度が緩やかに変化する平坦部分において映像品質を保った符号化が可能な映像符号化装置及び映像符号化プログラムに適用できる。
【符号の説明】
【００７４】
１００…映像符号化装置，  １０１…画像特徴量算出部，  １０２…画像バッファ，  １０３…探索結果評価部，  １１０…動き探索部，  １１１…符号化画像バッファ，  １１２…参照画像バッファ，  １１３…縮小フィルタ／サブペルフィルタ，  １１４…画像読み出し制御器，  １１５…探索部，  １１６…探索結果評価器，  １００ａ…映像符号化装置，  １０４…画像読み出し制御部，  １１０ａ…動き探索部
【図１】
2018082351.tif 000010
【図２】
2018082351.tif 000011
【図３】
2018082351.tif 000012
【図４】
2018082351.tif 000013
【図５】
2018082351.tif 000014
【図６】
2018082351.tif 000015
【図７】
2018082351.tif 000016
【図８】
2018082351.tif 000017
【図９】
2018082351.tif 000018
【図１０】
2018082351.tif 000019
【図１１】
2018082351.tif 000020
【図１２】
2018082351.tif 000021
【図１３】
2018082351.tif 000022