(57)【要約】【課題】符号化処理を効率よく行う符号化装置を提供する。【解決手段】複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成する符号化装置であって、符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納する格納部と、前記単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが前記格納部に格納される前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記格納部に格納される前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する選択部と、前記単位ブロックデータに、前記選択部が選択した符号化処理を行い、符号化データを生成する符号化部と、を備える符号化装置とした。【選択図】図１
2011024085.tif 000002
【特許請求の範囲】
【請求項１】
複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成する符号化装置であって、
符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納する格納部と、
前記単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが前記格納部に格納される前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記格納部に格納される前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する選択部と、
前記単位ブロックデータに、前記選択部が選択した符号化処理を行い、符号化データを生成する符号化部と、
を備える符号化装置。
【請求項２】
前記単位ブロックデータに含まれる数値データから、絶対値が最大である数値データを検出する検出部を備え、
前記選択部は、前記検出部が検出した数値データの絶対値が前記格納部に格納される前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、前記検出部が検出した数値データの絶対値が前記格納部に格納される前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する、
請求項１に記載の符号化装置。
【請求項３】
前記選択部が、前記単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが前記格納部に格納される前記所定の値以上である場合に選択する前記符号化処理は、０方向への丸めの演算による量子化を含む符号化処理である、
請求項１に記載の符号化装置。
【請求項４】
前記選択部が、前記単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが前記格納部に格納される前記所定の値以上である場合に選択する前記符号化処理は、ストレートバイナリで伝送することを含む符号化処理である、
請求項１に記載の符号化装置。
【請求項５】
コンピュータが、複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成することを実行する符号化方法であって、
前記コンピュータが、
符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、少なくとも１つが前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択し、
前記単位ブロックデータに、選択された符号化処理を行い、符号化データを生成する、ことを実行する符号化方法。
【請求項６】
コンピュータが、複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成することを実行する符号化プログラムであって、
前記コンピュータが、
符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、少なくとも１つが前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択し、
前記単位ブロックデータに、選択された符号化処理を行い、符号化データを生成する、ことを実行するための符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの符号化をする符号化装置、符号化方法、及び、符号化プログラムに関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置の発達により、情報処理装置は、膨大な情報量を有する画像データ等のデジタルデータを処理できるようになっている。このようなデジタルデータを効率よく伝送、蓄積するために、直交変換を使用してデジタルデータを圧縮する符号化方法が使用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３４８２０７号公報
【特許文献２】特開平９−２６１６３９号公報
【特許文献３】特開平１１−００４４３７号公報
【非特許文献】
【０００４】
【非特許文献１】ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４
【発明の概要】
【発明が解決しようとする課題】
【０００５】
動画圧縮規格であるＨ．２６４では、符号化側の装置は、画像を４画素×４画素毎あるいは８画素×８画素毎の単位ブロックに分割して、この単位ブロック毎に、直交変換し、量子化して、符号化データを生成する。また、復号側の装置は、符号化データを逆量子化し、逆直交変換して、元の画像を復元する。ここで、符号化方法によっては、復号された画像の画素値が、量子化の影響により、値の許容範囲（許容レンジ）を超えることがある。この場合、符号化側の装置は、符号化方法を変更して、再度、符号化データを生成することがある。
【０００６】
本発明の一態様は、符号化処理を効率よく行う符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示の態様の１つは、
複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成する符号化装置であって、
符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納する格納部と、
前記単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが前記格納部に格納される前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記格納部に格納される前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する選択部と、
前記単位ブロックデータに、前記選択部が選択した符号化処理を行い、符号化データを生成する符号化部と、
を備える符号化装置である。
【発明の効果】
【０００８】
開示の一態様によれば、符号化処理を効率よく行う符号化装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】符号化装置１０の構成例を示す図である。
【図２】通信システムの例を示す図である。
【図３】２次元空間の座標系の直交変換及び量子化の例を示す図である。
【図４】Ｎ次元直交空間の点の量子化を説明する図である。
【図５】符号化装置１００の構成例を示す図である。
【図６】符号化装置１００の動作フローの例を示す図である。
【図７】第２量子化部１２４による量子化を説明する図である。
【図８】符号化装置１０１の構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態について説明する。実施形態の構成は例示であり、本発明は開示の実施形態の構成に限定されない。
【００１１】
〔実施形態１〕
図１は、符号化装置１０の構成例を示す図である。符号化装置１０は、入力された複数の数値データを含む単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成する。符号化装置１０は、格納部１２、選択部１３、符号化部１４を有する。符号化装置１０は、検出部１１を備えてもよい。
【００１２】
符号化装置１０には、複数の数値データを有するデータが入力される。複数の数値データを有するデータは、例えば、画像データである。複数の数値データを有するデータは、所定の数の複数の数値データ毎に、単位ブロックデータとして、分割される。
【００１３】
格納部１２は、数値データの値が符号化処理及び復号処理の後に所定の許容範囲を超えない範囲で最大値である、所定の値を格納する。
【００１４】
選択部１３は、単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが格納部１２に格納される所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択する。選択部１３は、単位ブロックデータに含まれる数値データの絶対値のうち、すべてが格納部１２に格納される所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する。
【００１５】
検出部１１は、単位ブロックデータから、絶対値が最大である数値データを検出してもよい。このとき、選択部１３は、格納部１２に格納される所定の値以上である場合、検出部１１が検出した数値データの絶対値が符号化処理及び復号処理の後に許容範囲を超えない符号化処理を選択してもよい。また、選択部１３は、検出部１１が検出した数値データの絶対値が、格納部１２に格納される所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択してもよい。検出部１１が絶対値が最大である数値データを検出し、選択部１３が検出された数値データの絶対値と格納部１２に格納される閾値とを比較することで、符号化装置１０の計算処理量が軽減される。
【００１６】
符号化処理及び復号処理の後に許容範囲を超えない符号化処理は、０方向への丸めの演算による量子化を含む符号化処理であってもよい。また、符号化処理及び復号処理の後に許容範囲を超えない符号化処理は、ストレートバイナリで伝送することを含む符号化処理であってもよい。
【００１７】
符号化部１４は、単位ブロックデータに、選択部１３が選択した符号化処理を行う。
【００１８】
符号化装置１０は、パーソナルコンピュータ（ＰＣ、Personal Computer）のような汎
用のコンピュータまたはサーバマシンのような専用のコンピュータを使用して実現可能である。符号化装置１０は、ワークステーション（ＷＳ、Work Station）、ＰＤＡ（Personal Digital Assistant）のような専用または汎用のコンピュータ、あるいは、コンピュータを搭載した電子機器を使用して実現可能である。また、符号化装置１０は、スマートフォン、携帯電話、カーナビゲーション装置のような専用または汎用のコンピュータ、あるいは、コンピュータを搭載した電子機器を使用して実現可能である。
【００１９】
コンピュータ、すなわち、情報処理装置は、プロセッサ、主記憶装置、及び、二次記憶装置や、通信インタフェース装置のような周辺装置とのインタフェース装置を含む。主記憶装置及び二次記憶装置は、コンピュータ読み取り可能な記録媒体である。
【００２０】
コンピュータは、プロセッサが記録媒体に記憶されたプログラムを主記憶装置の作業領域にロードして実行し、プログラムの実行を通じて周辺機器が制御されることによって、所定の目的に合致した機能を実現することができる。
【００２１】
プロセッサは、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Data Signal Processor）である。主記憶装置は、例えば、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）を含む。
【００２２】
二次記憶装置は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、ハードディス
クドライブ（ＨＤＤ、Hard Disk Drive）である。また、二次記憶装置は、リムーバブル
メディア、即ち可搬記録媒体を含むことができる。リムーバブルメディアは、例えば、ＵＳＢ（Universal Serial Bus）メモリ、あるいは、ＣＤ（Compact Disk）やＤＶＤ（Digital Versatile Disk）のようなディスク記録媒体である。
【００２３】
通信インタフェース装置は、例えば、ＬＡＮ（Local Area Network）インタフェースボードや、無線通信のための無線通信回路である。
【００２４】
周辺装置は、上記の二次記憶装置や通信インタフェース装置の他、キーボードやポインティングデバイスのような入力装置や、ディスプレイ装置やプリンタのような出力装置を含む。また、入力装置は、カメラのような映像や画像の入力装置や、マイクロフォンのような音声の入力装置を含むことができる。また、出力装置は、スピーカのような音声の出力装置を含むことができる。
【００２５】
符号化装置１０として使用されるコンピュータは、プロセッサが二次記憶装置に記憶されているプログラムを主記憶装置にロードして実行することによって、検出部１１、選択部１３、符号化部１４としての機能を実現する。一方、格納部１２は、主記憶装置または二次記憶装置の記憶領域に設けられる。
【００２６】
（実施形態１の作用効果）
実施形態１の符号化装置１０は、単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが格納部に格納される所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択する。符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、例えば、０方向への丸めの演算による量子化を含む符号化処理をする。また、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、例えば、ストレートバイナリで伝送することを含む符号化処理をする。符号
化装置１０によれば、符号化処理及び復号処理の後に値の許容範囲を超える可能性があることが符号化処理前に判定できるので、符号化装置１０は、再度の符号化処理をしなくてもよい。符号化装置１０によれば、符号化処理を効率よく行うことができる。
【００２７】
〔実施形態２〕
次に実施形態２について説明する。実施形態２は、実施形態１との共通点を有する。従って、主として相違点について説明し、共通点については、説明を省略する。実施形態２の通信システムは、画像データを対象としているが、実施形態２の通信システムは、画像データと同様に連続して入力されるデータについて適用され得る。
【００２８】
（通信システムの構成例）
図２は、実施形態２の通信システムの例を示す図である。通信システム３００は、符号化装置１００、及び、復号装置２００を含む。
【００２９】
符号化装置１００は、画像データ（入力データ）に、直交変換及び量子化等の符号化処理を施し、符号化データを生成する。符号化装置１００は、生成した符号化データを復号装置２００に対して出力する。
【００３０】
復号装置２００は、符号化装置１００から入力された符号化データに、逆量子化、逆直交変換等の復号処理を施し、復号画像を取得する。
【００３１】
（直交変換、量子化）
図３は、２次元空間の座標系の直交変換及び量子化の例を示す図である。図３の例は、２個の画素を有する単位ブロックを直交変換し、量子化する例である。図３の例では、量子化ステップはＱであるとする。図３の２次元空間上のｘｙ座標系での座標（ｘ，ｙ）の２個の成分は、それぞれ、単位ブロックの２個の画素の値を示す。図３の例では、２次元の例であるが、Ｎ次元（Ｎは自然数）であっても同様である。例えば、単位ブロックが４画素×４画素の単位ブロックである場合、次元は１６（＝４×４）次元となる。
【００３２】
図３において、ｕｖ座標系は、ｘｙ座標系を直交変換した座標系である。２次元空間上のある点がｕｖ座標系における量子化ステップＱで量子化されると、当該ある点の位置は、ｕ軸に平行な直線及びｖ軸に平行な直線による格子の格子点Ｐ（格子点Ｐ１を含む）の１つに変換される。ここでは、当該ある点の位置は、当該ある点の位置から一番近い格子点Ｐの位置に変換される。格子点Ｐの１つは、原点である。この格子における隣接する格子点間の距離は、Ｑである。
【００３３】
例えば、図３で領域Ｒ１の範囲に存在するすべての点は、ｕｖ座標系において量子化ステップＱで量子化されることにより、点Ｐ１に変換される。ｕｖ座標系における点Ｐ１の座標は、（−Ｑ，Ｑ）である。点Ｐ１に変換された点の、変換前のｕｖ座標系における座標（ｕ，ｖ）は、次の式に示される範囲にある。
【００３４】
【数１】
2011024085.tif 000003
【００３５】
【数２】
2011024085.tif 000004
【００３６】
ここで、ｕｖ座標系で座標が（ｕ，ｖ）である点が、量子化ステップＱで量子化されて、ｕｖ座標系で座標が（iＱ、ｊＱ）である点に変換されるとする（上述の例では、ｉ＝
−１、ｊ＝１）。ｉ、ｊは、整数である。ｉ及びｊは、それぞれ、ｕ／Ｑ及びｊ／Ｑの小数点以下を四捨五入した値として算出される。このとき、ｕ及びｖと、ｉ及びｊとの関係は、次のようになる。
【００３７】
【数３】
2011024085.tif 000005
【００３８】
【数４】
2011024085.tif 000006
【００３９】
直交変換の結果、ｘｙ座標系の座標が（ｘ，ｙ）である点は、ｕｖ座標系の座標で（ｕ，ｖ）と表現される。また、量子化の結果、ｕｖ座標系の座標で（ｕ，ｖ）である点は、ｕｖ座標系の座標で（ｉＱ，ｊＱ）である点に変換され、（ｉ，ｊ）と表現される。量子化ステップＱが１より大きい値をとることにより、ｉ及びｊが、それぞれ、ｕ及びｖよりも小さい値をとることになる。よって、ｕｖ座標系の座標で（ｕ，ｖ）である点が、量子化後に（ｉ，ｊ）として表現されることで、点（ｕ，ｖ）を示す情報量が削減される。
【００４０】
量子化されたｕｖ座標系の座標で（ｉＱ，ｊＱ）である点の位置は、逆量子化、逆直交変換後に、変化しない。
【００４１】
図４は、Ｎ次元直交空間の点の量子化を説明する図である。Ｎ次元直交空間の点は、ｘ軸、ｙ軸等のＮ個の軸を有するＮ次元直交空間のｘｙ座標系で、例えば（ｘ，ｙ，．．．）と表され、各成分は、それぞれ、ブロック画像のＮ個の画素の値を表す。各画素の値の取り得る範囲（即ち、ｘｙ座標系で、各成分が取り得る範囲）は、予め決められている。図４の例では、各画素の値のとり得る範囲は、−２５６から＋２５５までである。ｘｙ座標系の座標で（ｘ，ｙ，．．．）である点は、直交変換後のＮ次元のｕｖ座標系では、例えば（ｕ，ｖ，．．．）と表される。
【００４２】
量子化は、直交変換後のＮ次元のｕｖ座標系の点に対して行われる。量子化ステップＱで線形量子化した場合は、量子化誤差の大きさは、最大Ｑ／２となる。即ち、量子化後の点は、ｕｖ座標系の各成分がそれぞれ、最大Ｑ／２の量子化誤差を有する。量子化後の点が取り得る範囲は、ｕｖ座標系の座標軸に平行な一辺Ｑの、点（ｕ，ｖ，．．．）を中心とするＮ次元超立方体の内側となる。
【００４３】
量子化前の点は、量子化後に、各辺が直交変換後のＮ次元のｕｖ座標系の何れかの軸に平行であるＮ次元超立方体であり、かつ、量子化前の点を中心とする一辺の長さがＱであるＮ次元超立方体の範囲の点に変換される。量子化前の点と量子化後の点と距離が取り得る最大の距離は、当該超立方体の対角線の長さの半分である、Ｎ１／２×Ｑ／２となる。
【００４４】
したがって、Ｎ次元のｕｖ座標系での各成分の量子化誤差が最大Ｑ／２である場合、逆量子化、逆直交変換後のＮ次元のｘｙ座標系での各成分がとり得る誤差の最大値は、Ｎ１／２×Ｑ／２となる。よって、直交変換後のＮ次元のｕｖ座標系で、量子化誤差がＱ／２であったとしても、逆直交変換後のＮ次元のｘｙ座標系では、各成分に、最大で、量子化誤差のＮ１／２倍の誤差が生じる可能性がある。
【００４５】
直交変換、量子化、逆量子化、逆直交変換後の点のＮ次元のｘｙ座標系で各成分が取り得る範囲（許容レンジ）は、予め決められている。この許容レンジは、復号画像の各画素の値の許容レンジである。図４の例では、直交変換、量子化、逆量子化、逆直交変換後の点のＮ次元のｘｙ座標系で各成分が取り得る範囲は、−５１２から＋５１１までである。
【００４６】
Ｎ次元のｘｙ座標系での各成分が−２５６から＋２５５までの範囲である点が、直交変換、量子化、逆量子化、逆直交変換された後の点の、Ｎ次元のｘｙ座標系での成分の１つが−５１２から＋５１１までの範囲（許容レンジ）を超える場合がある。直交変換、量子化、逆量子化、逆直交変換した後の点のｘｙ座標系の各成分が、最大Ｎ１／２×Ｑ／２の誤差を有するからである。
【００４７】
ｘｙ座標系の点の各成分のうち絶対値が最大である成分が、Ｐｍａｘであるとする。この点を、直交変換、量子化、逆量子化、逆直交変換した後の点のｘｙ座標系のこの成分が、許容レンジを超えない条件は、次のようになる。
【００４８】
【数５】
2011024085.tif 000007
【００４９】
ここで、右辺の「５１１」は、直交変換、量子化、逆量子化、逆直交変換された後の点のＮ次元のｘｙ座標系での各成分がとり得る値（許容レンジ）の絶対値の最大値である。ｘｙ座標系の点の各成分のうち絶対値が最大である成分が、この式の右辺の値以下であるとき、この点を、直交変換、量子化、逆量子化、逆直交変換した後の点のｘｙ座標系のすべての成分は、許容レンジを超えない。ｘｙ座標系の点の各成分のうち絶対値が最大でない成分は、Ｐｍａｘの絶対値より小さいからである。よって、直交変換、量子化、逆量子化、逆直交変換した後の点のｘｙ座標系のすべての成分が許容レンジを超えない場合の、元の、ｘｙ座標系の点の各成分の絶対値の最大値である閾値Ｐｔｈは、次のように表される。
【００５０】
【数６】
2011024085.tif 000008
【００５１】
ここで、右辺の「５１１」は、許容レンジの絶対値の最大値である。閾値Ｐｔｈは、量子化ステップＱが大きくなると、小さくなる。また、閾値Ｐｔｈは、直交変換の直交座標系の次元数Ｎが大きくなると、小さくなる。
【００５２】
ｘｙ座標系の点の各成分の絶対値のうち最大値が閾値Ｐｔｈ以上である場合、復号画像の各画素の値が許容レンジを超える可能性があるため、符号化方法（符号化モード）が変更される。
【００５３】
（符号化装置の構成例）
図５は、実施形態２の符号化装置１００の構成例を示す図である。符号化装置１００は、符号化部１１０、減算器１３２、逆量子化部１３４、逆直交変換部１３６、加算器１３８、復号画像記憶部１４０、予測画像生成部１４２、動きベクトル計算部１４４を有する。また、符号化装置１００は、ベクトルエントロピー符号化部１４６、ＭＵＸ１５０、検出選択部１６０、格納部１６２を有する。符号化部１１０は、第１直交変換部１１２、第１量子化部１１４、第２直交変換部１２２、第２量子化部１２４、係数エントロピー符号化部１２６を有する。
【００５４】
符号化装置１００は、原画像データが入力されると、入力された原画像データを分割することによって得られる複数の単位ブロックについて順番に符号化処理を実行する。原画像データは、フレーム毎に入力される。
【００５５】
減算器１３２は、入力された原画像データと予測画像生成部１４２によって生成された予測画像データとの差分である差分画像データを生成する。動きベクトル計算部１４４が予測画像データを使用しないと選択した場合、差分画像データは、原画像データと等しくなる。減算器１３２は、差分画像データを単位ブロックに分割して、出力する。
【００５６】
検出選択部１６０は、減算器１３２の出力である単位ブロックに含まれる値のうち、絶対値が最大である値を検出する。
【００５７】
検出選択部１６０は、量子化ステップＱ、直交変換の次元数Ｎ等に基づいて、閾値Ｐｔｈを算出する。閾値Ｐｔｈは、図３で示したように直交変換した後の座標系の各成分を量子化ステップＱで除した値を四捨五入することで量子化することを含む符号化処理及び復号処理の後に、許容レンジを超えない場合の値の最大値である。
【００５８】
検出選択部１６０は、閾値Ｐｔｈと、量子化ステップＱ及び直交変換の次元数Ｎ等との関係を示す閾値テーブルをあらかじめ、格納部１６２に格納してもよい。このとき、検出選択部１６０は、格納部１６２に格納された閾値テーブルから、量子化ステップＱ及び直交変換の次元数Ｎに基づいて、閾値Ｐｔｈを抽出する。
【００５９】
検出選択部１６０は、検出結果と閾値Ｐｔｈとに基づいて、単位ブロックを、第１直交変換部１１２及び第１量子化部１１４で処理する第１符号化モード、又は、第２直交変換部１２２及び第２量子化部１２４で処理する第２符号化モードを選択する。検出選択部１６０は、選択した符号化モードの第１直交変換部１１２又は第２直交変換部１２２に、単位ブロックを出力する。検出選択部１６０は、選択した符号化モードを、ベクトルエントロピー符号化部１４６に出力する。
【００６０】
格納部１６２は、閾値Ｐｔｈと、量子化ステップＱ及び直交変換の次元数Ｎ等との関係を示す閾値テーブルを格納することができる。
【００６１】
符号化部１１０は、入力されたデータに対し、符号化処理を行う。
【００６２】
第１直交変換部１１２は、入力されたデータを、単位ブロック毎に離散コサイン変換（ＤＣＴ）等の直交変換をする。第１量子化部１１４は、第１直交変換部１１２の出力を、量子化ステップＱを使用して、量子化する。第１量子化部１１４は、図３で示したように直交変換した後の座標系の各成分を量子化ステップＱで除した値を四捨五入することで量子化する。
【００６３】
第２直交変換部１２２は、入力されたデータを、単位ブロック毎に離散コサイン変換（ＤＣＴ）等の直交変換をする。第２量子化部１２４は、第２直交変換部１２２の出力を、量子化ステップＱを使用して、符号化及び復号後の値が、許容レンジを超えないように、量子化する。
【００６４】
係数エントロピー符号化部１２６は、第１量子化部１１４または第２量子化部１２４の出力に対し、ハフマン符号化や算術符号化等のエントロピー符号化をする。エントロピー符号化とは、出現頻度の高いシンボルに短い符号、出現頻度の低いシンボルに長い符号を割り当てることである。エントロピー符号化により、符号化データのデータ量が小さくなる。
【００６５】
逆量子化部１３４、逆直交変換部１３６、及び、加算器１３８は、第１量子化部１１４または第２量子化部１２４の出力から、復号装置２００において再生される画像信号と同じ画像データ（復号画像データ）を生成する。加算器１３８の出力（復号画像データ）は、復号画像記憶部１４０に格納される。
【００６６】
動きベクトル計算部１４４は、復号画像記憶部１４０に格納されている復号画像データ、及び、新たに入力された原画像データに基づいて動きベクトルを計算する。動きベクトル計算部１４４は、予測画像生成部１４２が生成した予測画像データを使用するか否かを選択する。動きベクトル計算部１４４は、計算した動きベクトルをベクトルエントロピー符号化部１４６に出力する。
【００６７】
予測画像生成部１４２は、復号画像記憶部１４０に格納されている復号画像データおよび動きベクトル計算部１４４によって計算された動きベクトルに基づいて、予測画像データを生成する。
【００６８】
ベクトルエントロピー符号化部１４６は、動きベクトル計算部１４４により得られた動きベクトル及び検出選択部１６０により得られた符号化モードを符号化する。ベクトルエントロピー符号化部１４６は、動きベクトル及び符号化モードの情報をハフマン符号化や算術符号化等によりエントロピー符号化する。
【００６９】
ＭＵＸ１５０は、係数エントロピー符号化部１２６及びベクトルエントロピー符号化部１４６により得られた符号化結果を多重化して出力する。
【００７０】
符号化装置１００及び復号装置２００は、パーソナルコンピュータ（ＰＣ、Personal Computer）のような汎用のコンピュータまたはサーバマシンのような専用のコンピュータ
を使用して実現可能である。符号化装置１００及び復号装置２００は、ワークステーション（ＷＳ、Work Station）、ＰＤＡ（Personal Digital Assistant）のような専用または汎用のコンピュータ、あるいは、コンピュータを搭載した電子機器を使用して実現可能である。また、符号化装置１００及び復号装置２００は、スマートフォン、携帯電話、カーナビゲーション装置のような専用または汎用のコンピュータ、あるいは、コンピュータを搭載した電子機器を使用して実現可能である。
【００７１】
符号化装置１００として使用されるコンピュータは、プロセッサが二次記憶装置に記憶されているプログラムを主記憶装置にロードして実行することによって、各機能部としての機能を実現する。この各機能部は、符号化部１１０、減算器１３２、逆量子化部１３４、逆直交変換部１３６、加算器１３８、予測画像生成部１４２、動きベクトル計算部１４４、ベクトルエントロピー符号化部１４６、ＭＵＸ１５０を含む。一方、復号画像記憶部１４０、格納部１６２は、主記憶装置または二次記憶装置の記憶領域に設けられる。
【００７２】
（動作例）
図６は、符号化装置１００の符号化処理の動作フローの例を示す図である。符号化装置１００は、原画像データが入力されることを契機として、符号化処理を開始する。
【００７３】
符号化装置１００の減算器１３２は、原画像データが入力されると、予測画像生成部１４２が生成した予測画像データとの差分である差分画像データを生成する。減算器１３２は、差分画像データを、単位ブロックに分割して出力する。例えば、動画圧縮規格であるＨ．２６４では、符号化装置１００は、例えば、差分画像データを４画素×４画素毎あるいは８画素×８画素毎の単位ブロックに分割する。
【００７４】
符号化装置１００の検出選択部１６０は、減算器１３２の出力である単位ブロック毎に、単位ブロックに含まれる値のうち、絶対値が最大である値Ｐｍａｘを検出する（Ｓ１０１）。
【００７５】
検出選択部１６０は、第１量子化部１１４及び第２量子化部１２４の量子化ステップＱ、第１直交変換部１１２及び第２直交変換部１２２による直交変換の次元数Ｎ等に基づいて、閾値Ｐｔｈを算出する（Ｓ１０２）。例えば、画像データの単位ブロックが４画素×４画素である場合、直交変換の次元数Ｎは、１６（＝４×４）次元となる。閾値Ｐｔｈは、上記の式６のように算出される。閾値Ｐｔｈは、図３で示したように直交変換した後の座標系の各成分を量子化ステップＱで除した値を四捨五入することで量子化することを含む符号化処理及び復号処理の後に、許容レンジを超えない場合の値の最大値である。
【００７６】
検出選択部１６０は、閾値Ｐｔｈと量子化ステップＱ及び直交変換の次元数Ｎ等との関係を示す閾値テーブルをあらかじめ、格納部１６２に格納してもよい。このとき、検出選択部１６０は、格納部１６２に格納された閾値テーブルから、量子化ステップＱ及び直交変換の次元数Ｎに基づいて、閾値Ｐｔｈを抽出する。
【００７７】
検出選択部１６０は、単位ブロック毎に、ステップＳ１０１で得られた値Ｐｍａｘの絶対値が、ステップＳ１０２で得られた閾値Ｐｔｈを超えているか否かを判定する（Ｓ１０３）。
【００７８】
また、検出選択部１６０は、ステップＳ１０１で値Ｐｍａｘを取得せずに、単位ブロック含まれる各値の絶対値と閾値Ｐｔｈとを比較してもよい。このとき、検出選択部１６０は、単位ブロックに含まれる各値の絶対値のうち、すべてが閾値Ｐｔｈ未満である場合、ステップＳ１０４の処理を行う。また、検出選択部１６０は、単位ブロックに含まれる各値の絶対値のうち、少なくとも１つが閾値Ｐｔｈ以上である場合、ステップＳ１０６の処理を行う。
【００７９】
ステップＳ１０１で検出した値Ｐｍａｘの絶対値が、ステップＳ１０２で算出した閾値Ｐｔｈ未満である場合（Ｓ１０３；ＮＯ）、検出選択部１６０は、差分画像データを、第１直交変換部１１２、第１量子化部１１４で処理することを選択する。動きベクトル計算部１４４は、選択した処理（符号化モード）をベクトルエントロピー符号化部１４６に出
力する。第１直交変換部１１２は、動きベクトル計算部１４４がステップＳ１０３で判定した単位ブロックに、直交変換を行う（Ｓ１０４）。第１量子化部１１４は、第１直交変換部１１２の出力に対して、量子化ステップＱで、量子化を行う（Ｓ１０５）。第１量子化部１１４は、図３で示したように、直交変換した後の座標系の各成分を、量子化ステップＱで除した値を四捨五入することで、量子化を行う。ステップＳ１０１で検出した値Ｐｍａｘの絶対値がステップＳ１０２で得られた閾値Ｐｔｈ未満である場合、図３で示したように量子化しても、復号画像の画素の値が、許容レンジを超えない。
【００８０】
ステップＳ１０１で検出した値Ｐｍａｘの絶対値が、ステップＳ１０２で算出した閾値Ｐｔｈ以上である場合（Ｓ１０３；ＹＥＳ）、検出選択部１６０は、差分画像データを、第２直交変換部１１２、第２量子化部１１４で処理することを選択する（Ｓ１０６）。第２量子化部１２４による量子化では、値Ｐｍａｘの絶対値が閾値Ｐｔｈ以上である場合でも、復号画像の画素の値が許容レンジを超えない。第２量子化部１２４による量子化については、後に詳述する。検出選択部１６０は、選択した処理（符号化モード）をベクトルエントロピー符号化部１４６に出力する。第２直交変換部１２２は、ステップＳ１０３で判定した単位ブロックに、直交変換を行う。第２量子化部１２４は、第２直交変換部１２２の出力に対して、量子化ステップＱで、量子化を行う。第２量子化部１２４は、直交変換した後の座標系の各成分を、量子化ステップＱで除した値を０方向へ丸めることで、量子化を行う。
【００８１】
符号化装置１００の係数エントロピー符号化部１２６は、第１量子化部１１４または第２量子化部１２４の出力に対して、ハフマン符号化や算術符号化等のエントロピー符号化をする（Ｓ１０７）。符号化装置１００は、符号化処理を終了する。
【００８２】
図７は、第２量子化部１２４による量子化を説明する図である。図７の例は、２個の画素を有する単位ブロックを直交変換し、量子化する例である。図７の２次元空間上のｘｙ座標系での座標（ｘ，ｙ）の２個の成分は、それぞれ、単位ブロックの２個の画素の値を示す。図７の例では、２次元の例であるが、Ｎ次元（Ｎは自然数）であっても同様である。
【００８３】
図７において、ｕｖ座標系は、ｘｙ座標系を直交変換した座標系である。２次元空間上のある点がｕｖ座標系における量子化ステップＱで量子化されると、当該ある点の位置は、ｕ軸に平行な直線及びｖ軸に平行な直線による格子の格子点Ｐ（格子点Ｐ２を含む。）の１つの位置に変換される。ここでは、当該ある点の位置は、当該ある点の位置のｕｖ座標系の各成分の値よりも、格子点Ｐのｕｖ座標系の各成分が０に近い値を有する格子点Ｐであって、当該ある点の位置に一番近い格子点Ｐの位置に変換される。格子点Ｐの１つは、原点である。この格子における隣接する格子点間の距離は、Ｑである。
【００８４】
例えば、図７で領域Ｒ２の範囲に存在するすべての点は、ｕｖ座標系において量子化ステップＱで量子化されることにより、点Ｐ２に変換される。
【００８５】
量子化後の点のｕｖ座標系での座標のｕ成分及びｖ成分は、量子化前のｕｖ座標系での値よりも、０に近い値となる。よって、量子化前の点の位置は復号後の許容レンジ内の位置であることから、量子化後の点の位置は復号後の許容レンジ内の位置である。
【００８６】
量子化の結果、ｕｖ座標系の座標で（ｕ，ｖ）である点は、ｕｖ座標系の座標で（ｉＱ，ｊＱ）である点に変換されるとする。このとき、ｉ及びｊは、それぞれ、ｕ／Ｑ及びｊ／Ｑの小数点以下を０方向へ丸めた値として算出される。たとえば、ｕ／Ｑ＝１．３の場合、ｉ＝１となる。また、ｊ／Ｑ＝−２．９の場合、ｊ＝−２となる。これにより、復号画像の画素の値が、元の画像の画素の値を超えることはない。よって、第２量子化部１２
４による量子化を行っても、復号画像の画素の値が許容レンジを超えることはない。
【００８７】
（変形例）
図８は、符号化装置１０１の構成例を示す図である。図８の符号化装置１０１は、図５の符号化装置１００と共通点を有する。従って、主として相違点について説明し、共通点については、説明を省略する。
【００８８】
符号化装置１０１の符号化部１１１は、第１直交変換部１１２、第１量子化部１１４、係数エントロピー部１２６、及び、ＩＰＣＭ部１２５を有する。
【００８９】
ＩＰＣＭ部１２５は、入力されたデータを、ＰＣＭ（Pulse Code Modulation、ストレ
ートバイナリ）データとして、出力する。
【００９０】
検出選択部１６１は、値Ｐｍａｘの絶対値が、閾値Ｐｔｈ以上である場合（図６のＳ１０３；ＹＥＳ）、差分画像データを、ＩＰＣＭ部１２５で処理することを選択する。ＩＰＣＭ部１２５は、差分画像データが入力されると、直交変換及び量子化をせずに、ＰＣＭデータとして、出力する（図６のＳ１０６）。ＩＰＣＭ部１２５は直交変換及び量子化を行わないため、量子化誤差が生じることはない。よって、復号画像の画素の値は許容レンジを超えない。
【００９１】
また、ＩＰＣＭ部１２５は直交変換及び量子化を行わないため、符号化装置１０１の符号化処理の処理量が減少する。
【００９２】
（その他）
ここでは、線形量子化を行う符号化装置について説明したが、符号化処理においては、量子化過程が非線形である場合がある。また、H.264のHigh ProfileでQMatrixが使用される場合がある。これらの場合、量子化誤差が表す空間は、上記のように超立方体ではなく、超直方体となり得る。しかし、量子化誤差が表す空間が超直方体となる場合でも、この超直方体の対角線を算出することにより、閾値Ｐｔｈを算出することができる。よって、符号化装置１００及び符号化装置１０１は、量子化過程が非線形である場合でも、H.264
のHigh ProfileでQMatrixが使用される場合でも、同様に、適用できる。
【００９３】
（実施形態２の作用効果）
実施形態２の符号化装置は、単位ブロック毎に符号化処理を行い、符号化データを出力する。実施形態２の符号化装置は、単位ブロック含まれる値のうち、絶対値が最大である値Ｐｍａｘを検出する。実施形態２の符号化装置は、符号化処理及び復号処理の後に許容レンジを超えない場合の値の最大値である閾値Ｐｔｈを算出する。実施形態２の符号化装置は、値ＰｍａｘがＰｔｈ以上である場合は、符号化処理及び復号処理の後に値の許容レンジを超えない符号化処理を選択する。符号化装置１０によれば、符号化処理及び復号処理の後に値の許容範囲を超える可能性があることが符号化処理前に判定できる。符号化装置１０によれば、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択することができる。実施形態２の符号化装置によれば、符号化処理を効率よく行うことができる。
【００９４】
（付記）
以上の実施形態１及び２に関し、さらに以下の付記を開示する。
【００９５】
（付記１）
複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成する符号化装置であって、
符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納する格納部と、
前記単位ブロックデータに含まれる数値データの絶対値のうち少なくとも１つが前記格納部に格納される前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記格納部に格納される前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する選択部と、
前記単位ブロックデータに、前記選択部が選択した符号化処理を行い、符号化データを生成する符号化部と、
を備える符号化装置。（１）
【００９６】
（付記２）
前記単位ブロックデータに含まれる数値データから、絶対値が最大である数値データを検出する検出部を備え、
前記選択部は、前記検出部が検出した数値データの絶対値が前記格納部に格納される前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、前記検出部が検出した数値データの絶対値が前記格納部に格納される前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する、
付記１に記載の符号化装置。（２）
【００９７】
（付記３）
前記符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、０方向への丸めの演算による量子化を含む符号化処理である、
付記１または２に記載の符号化装置。（３）
【００９８】
（付記４）
前記符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、ストレートバイナリで伝送することを含む符号化処理である、
付記１または２に記載の符号化装置。（４）
【００９９】
（付記５）
コンピュータが、複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成することを実行する符号化方法であって、
前記コンピュータが、
符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、少なくとも１つが前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択し、
前記単位ブロックデータに、選択された符号化処理を行い、符号化データを生成する、ことを実行する符号化方法。（５）
【０１００】
（付記６）
前記コンピュータが、
前記単位ブロックデータに含まれる数値データから、絶対値が最大である数値データを検出し、
検出された数値データの絶対値が前記所定の値以上である場合、符号化処理及び復号処
理の後に値の許容範囲を超えない符号化処理を選択し、
検出された数値データの絶対値が前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する
ことを実行する付記５に記載の符号化方法。
【０１０１】
（付記７）
前記符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、０方向への丸めの演算による量子化を含む符号化処理である、
付記５または６に記載の符号化方法。
【０１０２】
（付記８）
前記符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、ストレートバイナリで伝送することを含む符号化処理である、
付記５または６に記載の符号化方法。
【０１０３】
（付記９）
コンピュータが、複数の数値データを有する単位ブロックデータに対し符号化処理を行い、復号処理によって復号される符号化データを生成することを実行する符号化プログラムであって、
前記コンピュータが、
符号化処理及び復号処理の後に所定の許容範囲を超えない値のうち最大値である、所定の値を格納し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、少なくとも１つが前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、
前記単位ブロックデータに含まれる数値データの絶対値のうち、すべてが前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択し、
前記単位ブロックデータに、選択された符号化処理を行い、符号化データを生成する、ことを実行するための符号化プログラム。（６）
【０１０４】
（付記１０）
前記コンピュータが、
前記単位ブロックデータに含まれる数値データから、絶対値が最大である数値データを検出し、
検出された数値データの絶対値が前記所定の値以上である場合、符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理を選択し、
検出された数値データの絶対値が前記所定の値未満である場合、直交変換及び量子化を含む符号化処理を選択する
ことを実行するための付記９に記載の符号化プログラム。
【０１０５】
（付記１１）
前記符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、０方向への丸めの演算による量子化を含む符号化処理である、
付記９または１０に記載の符号化プログラム。
【０１０６】
（付記１２）
前記符号化処理及び復号処理の後に値の許容範囲を超えない符号化処理は、ストレートバイナリで伝送することを含む符号化処理である、
付記９または１０に記載の符号化プログラム。
【符号の説明】
【０１０７】
１０        符号化装置
１１          検出部
１２          格納部
１３          選択部
１４          符号化部
１００        符号化装置
１０１        符号化装置
１１０          符号化部
１１１          符号化部
１１２            第１直交変換部
１１４            第１量子化部
１２２            第２直交変換部
１２４            第２量子化部
１２５            ＩＰＣＭ部
１２６            係数エントロピー符号化部
１３２          減算器
１３４          逆量子化部
１３６          逆直交変換部
１３８          加算器
１４０          復号画像記憶部
１４２          予測画像生成部
１４４          動きベクトル計算部
１４６          ベクトルエントロピー符号化部
１５０          ＭＵＸ
１６０          検出選択部
１６１          検出選択部
１６２          格納部
２００        復号装置
３００        通信システム
【図１】
2011024085.tif 000009
【図２】
2011024085.tif 000010
【図３】
2011024085.tif 000011
【図４】
2011024085.tif 000012
【図５】
2011024085.tif 000013
【図６】
2011024085.tif 000014
【図７】
2011024085.tif 000015
【図８】
2011024085.tif 000016