(57)【要約】【課題】搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる符号化装置を提供する。【解決手段】符号化装置１２０は、レンジコーダーによりランレングス符号化データＨＤを符号化するレンジコーダー符号化部８０を備える。レンジコーダー符号化部８０は、分子指数算出部８０ｂと、分母指数算出部８０ｄとを含む。分子指数算出部８０ｂは、ランレングス符号化データＨＤを構成する複数の要素データＥＬの各々が表す要素値ごとに、要素値の出現確率の分子を２の累乗で表したときの指数ｉＣを算出し、要素値に指数ｉＣを対応付ける。分母指数算出部８０ｄは、出現確率の分母を２の累乗で表したときの指数ｉＴＲを算出する。【選択図】図５
2016171473.tif 000002
【特許請求の範囲】
【請求項１】
レンジコーダーにより画像データを符号化するレンジコーダー符号化部を備え、
前記レンジコーダー符号化部は、
前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける分子指数算出部と、
前記出現確率の分母を２の累乗で表したときの指数を算出する分母指数算出部と
を備える、符号化装置。
【請求項２】
前記要素値ごとに、前記要素値の前記出現確率の下限値の分子を算出する下限値分子算出部をさらに備え、
前記分子指数算出部は、前記要素値の前記出現確率の前記分子が２の累乗でない場合、２の累乗でない前記分子に代えて、前記分子よりも小さく前記分子に最も近似する２の累乗又は前記分子よりも大きく前記分子に最も近似する２の累乗を、前記要素値の前記出現確率の分子として設定し、前記設定した分子を２の累乗で表したときの指数を前記要素値に対応付け、
前記分母指数算出部は、前記要素値の各々の前記出現確率の前記下限値の前記分子のうちの最大値よりも大きく、前記最大値に最も近似する２の累乗を、前記出現確率の前記分母として設定する、請求項１に記載の符号化装置。
【請求項３】
前記レンジコーダー符号化部は、
前記複数の要素データのうちの処理対象の要素データを更新するたびに、数直線上に設定された区間を細分化し、前記画像データを符号化する符号化部をさらに含み、
前記符号化部は、式（１）により、前記区間の下限値Ｌｏｗを更新し、式（２）により、前記区間の区間長を２の累乗で表したときの指数ｉＲを更新し、
Ｌｒｃは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記下限値の前記分子を示し、
ｉＴＲは、前記出現確率の前記分母を２の累乗で表したときの前記指数を示し、
ｉＣは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数を示す、請求項２に記載の符号化装置。
Ｌｏｗ＝Ｌｏｗ＋Ｌｒｃ×２(iR-iTR)    …（１）
ｉＲ＝ｉＲ＋ｉＣ−ｉＴＲ    …（２）
【請求項４】
前記レンジコーダーによる符号化を実行する前に、前記画像データに対して離散ウェーブレット変換を実行し、前記離散ウェーブレット変換が実行された前記画像データを第１変換データとして出力する離散ウェーブレット変換部をさらに備え、
前記離散ウェーブレット変換部は、所定数の乗算値を記憶した記憶部を含み、
前記所定数の乗算値は、離散ウェーブレット変換のための数列を構成する各数値と前記画像データを構成する各画素データが取り得る各数値との乗算値を含み、
前記離散ウェーブレット変換部は、前記画像データを構成する前記各画素データが表す画素値に基づいて、前記乗算値を取得し、複数の前記乗算値に対して和算及び／又は減算を実行することによって、前記画像データに対して前記離散ウェーブレット変換を実行する、請求項１から請求項３のいずれか１項に記載の符号化装置。
【請求項５】
前記レンジコーダーによる符号化を実行する前に、前記第１変換データのうちの高周波成分を構成する複数のデータに対して、所定ビット数Ｂ（Ｂは１以上の整数）だけ右にシフトするビット演算を実行し、前記高周波成分を構成する前記複数のデータのうち、−（２B−１）以上（２B−１）以下の値を表すデータを０に変換し、前記ビット演算が実行された前記高周波成分を構成する前記複数のデータと、前記第１変換データのうちの低周波成分を構成する複数のデータとを、第２変換データとして出力するゼロ変換部をさらに備える、請求項４に記載の符号化装置。
【請求項６】
前記レンジコーダーによる符号化を実行する前に、前記第２変換データを構成する複数のデータがガウス分布を形成するように、前記第２変換データを処理し、前記処理された第２変換データを、ガウス分布データとして出力するガウス分布作成部をさらに備える、請求項５に記載の符号化装置。
【請求項７】
前記レンジコーダーによる符号化を実行する前に、前記ガウス分布データの高周波成分を走査して、前記高周波成分が形成するガウス分布の期待値と同一値が連続して出現する数を示すランレングスを検出し、所定値と前記ランレングスとを含むデータを作成するランレングス符号化部をさらに備え、
前記ランレングス符号化部は、複数の前記データの各々に含まれる前記ランレングスが前記期待値と同一値を期待値とするガウス分布を形成するように、前記複数のデータを処理し、前記処理された複数のデータと、前記ガウス分布データの前記高周波成分のうち前記期待値と異なる値を示す複数のデータと、前記ガウス分布データの低周波成分とをランレングス符号化データとして出力する、請求項６に記載の符号化装置。
【請求項８】
レンジコーダーにより画像データを符号化した符号化データを復号するレンジコーダー復号部を備え、
前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータであり、
前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理であり、
前記分母指数算出処理は、前記出現確率の分母を２の累乗で表したときの指数を算出する処理であり、
前記レンジコーダー復号部は、
前記要素値ごとに、前記要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出する下限値分子算出部と、
前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成するテーブル作成部と
を含む、復号装置。
【請求項９】
前記レンジコーダー復号部は、
前記要素値を復号するたびに、数直線上に設定された区間を細分化し、前記符号化データを復号する復号部をさらに含み、
前記復号部は、式（３）により、前記下限値の前記予測値の前記分子ｉＬｒｃを算出し、式（４）により、復号のための計算媒体Ｃｏｄｅを更新し、式（５）により、前記区間の区間長を２の累乗で表したときの指数ｉＲを更新し、
ｉＴＲは、前記出現確率の前記分母を２の累乗で表したときの前記指数を示し、
Ｌｒｃは、前記復号された要素値の前記出現確率の前記下限値の前記分子を示し、
ｉＣは、前記復号された要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数を示す、請求項８に記載の復号装置。
ｉＬｒｃ＝Ｃｏｄｅ×２-(iR-iTR)    …（３）
Ｃｏｄｅ＝Ｃｏｄｅ−Ｌｒｃ×２(iR-iTR)    …（４）
ｉＲ＝ｉＲ＋ｉＣ−ｉＴＲ    …（５）
【請求項１０】
請求項１から請求項７のいずれか１項に記載の符号化装置と、
請求項８又は請求項９に記載の復号装置と
を備える、符号化復号装置。
【請求項１１】
レンジコーダーにより画像データを符号化する符号化方法であって、
前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付けるステップと、
前記出現確率の分母を２の累乗で表したときの指数を算出するステップと
を含む、符号化方法。
【請求項１２】
レンジコーダーにより画像データを符号化した符号化データを復号する復号方法であって、
前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータであり、
前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理であり、
前記分母指数算出処理は、前記出現確率の分母を２の累乗で表したときの指数を算出する処理であり、
前記要素値ごとに、前記要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出するステップと、
前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成するステップと
を含む、復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、復号装置、符号化復号装置、符号化方法、及び復号方法に関する。
【背景技術】
【０００２】
特許文献１に記載された画像処理装置は、レンジコーダーにより画像データを符号化し、画像データを圧縮する。レンジコーダーは、主に整数を使用して演算を実行するデータ圧縮技術である。従って、符号化の処理速度は比較的高速である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−４２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載されたレンジコーダーにより画像データを符号化するときには、乗算及び除算を実行するため、符号化の処理速度の向上を妨げる一因となる。搭載するコンピューターに制約の少ない環境下では、高速なコンピューターを利用すれば、符号化の処理速度を向上させることができる。
【０００５】
しかしながら、例えば、遠隔操縦されるロボットでは、小型化及び軽量化の観点から、高速なコンピューターを搭載することが困難な場合がある。従って、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることが要求される。同様の理由により、レンジコーダーによる符号化データを復号するときの処理速度を向上させることが要求される。
【０００６】
本発明は上記課題に鑑みてなされたものであり、その目的は、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる符号化装置、符号化復号装置、及び符号化方法を提供することにある。
【０００７】
また、本発明の他の目的は、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データを復号するときの処理速度を向上させることができる復号装置、符号化復号装置、及び復号方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の観点によれば、符号化装置は、レンジコーダーにより画像データを符号化するレンジコーダー符号化部を備える。前記レンジコーダー符号化部は、分子指数算出部と、分母指数算出部とを含む。分子指数算出部は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける。分母指数算出部は、前記出現確率の分母を２の累乗で表したときの指数を算出する。
【０００９】
本発明の符号化装置は、下限値分子算出部をさらに備える。下限値分子算出部は、前記要素値ごとに、前記要素値の前記出現確率の下限値の分子を算出する。前記分子指数算出部は、前記要素値の前記出現確率の前記分子が２の累乗でない場合、２の累乗でない前記分子に代えて、前記分子よりも小さく前記分子に最も近似する２の累乗又は前記分子よりも大きく前記分子に最も近似する２の累乗を、前記要素値の前記出現確率の分子として設定し、前記設定した分子を２の累乗で表したときの指数を前記要素値に対応付ける。前記分母指数算出部は、前記要素値の各々の前記出現確率の前記下限値の前記分子のうちの最大値よりも大きく、前記最大値に最も近似する２の累乗を、前記出現確率の前記分母として設定する。
【００１０】
本発明の符号化装置において、前記レンジコーダー符号化部は、符号化部をさらに含む。符号化部は、前記複数の要素データのうちの処理対象の要素データを更新するたびに、数直線上に設定された区間を細分化し、前記画像データを符号化する。前記符号化部は、式（１）により、前記区間の下限値Ｌｏｗを更新し、式（２）により、前記区間の区間長を２の累乗で表したときの指数ｉＲを更新する。Ｌｒｃは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記下限値の前記分子を示す。ｉＴＲは、前記出現確率の前記分母を２の累乗で表したときの前記指数を示す。ｉＣは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数を示す。
【００１１】
Ｌｏｗ＝Ｌｏｗ＋Ｌｒｃ×２(iR-iTR)    …（１）
ｉＲ＝ｉＲ＋ｉＣ−ｉＴＲ    …（２）
【００１２】
本発明の符号化装置は、離散ウェーブレット変換部をさらに備える。離散ウェーブレット変換部は、前記レンジコーダーによる符号化を実行する前に、前記画像データに対して離散ウェーブレット変換を実行し、前記離散ウェーブレット変換が実行された前記画像データを第１変換データとして出力する。前記離散ウェーブレット変換部は、所定数の乗算値を記憶した記憶部を含む。前記所定数の乗算値は、離散ウェーブレット変換のための数列を構成する各数値と前記画像データを構成する各画素データが取り得る各数値との乗算値を含む。前記離散ウェーブレット変換部は、前記画像データを構成する前記各画素データが表す画素値に基づいて、前記乗算値を取得し、複数の前記乗算値に対して和算及び／又は減算を実行することによって、前記画像データに対して前記離散ウェーブレット変換を実行する。
【００１３】
本発明の符号化装置は、ゼロ変換部をさらに備える。ゼロ変換部は、前記レンジコーダーによる符号化を実行する前に、前記第１変換データのうちの高周波成分を構成する複数のデータに対して、所定ビット数Ｂ（Ｂは１以上の整数）だけ右にシフトするビット演算を実行し、前記高周波成分を構成する前記複数のデータのうち、−（２B−１）以上（２B−１）以下の値を表すデータを０に変換し、前記ビット演算が実行された前記高周波成分を構成する前記複数のデータと、前記第１変換データのうちの低周波成分を構成する複数のデータとを、第２変換データとして出力する。
【００１４】
本発明の符号化装置は、ガウス分布作成部をさらに備える。ガウス分布作成部は、前記レンジコーダーによる符号化を実行する前に、前記第２変換データを構成する複数のデータがガウス分布を形成するように、前記第２変換データを処理し、前記処理された第２変換データを、ガウス分布データとして出力する。
【００１５】
本発明の符号化装置は、ランレングス符号化部をさらに備える。ランレングス符号化部は、前記レンジコーダーによる符号化を実行する前に、前記ガウス分布データの高周波成分を走査して、前記高周波成分が形成するガウス分布の期待値と同一値が連続して出現する数を示すランレングスを検出し、所定値と前記ランレングスとを含むデータを作成する。前記ランレングス符号化部は、複数の前記データの各々に含まれる前記ランレングスが前記期待値と同一値を期待値とするガウス分布を形成するように、前記複数のデータを処理し、前記処理された複数のデータと、前記ガウス分布データの前記高周波成分のうち前記期待値と異なる値を示す複数のデータと、前記ガウス分布データの低周波成分とをランレングス符号化データとして出力する。
【００１６】
本発明の第２観点によれば、復号装置は、レンジコーダーにより画像データを符号化した符号化データを復号するレンジコーダー復号部を備える。前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータである。前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理である。前記分母指数算出処理は、前記出現確率の分母を２の累乗で表したときの指数を算出する処理である。前記レンジコーダー復号部は、下限値分子算出部と、テーブル作成部とを含む。下限値分子算出部は、前記要素値ごとに、前記要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出する。テーブル作成部は、前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成する。
【００１７】
本発明の復号装置において、前記レンジコーダー復号部は、復号部をさらに含む。復号部は、前記要素値を復号するたびに、数直線上に設定された区間を細分化し、前記符号化データを復号する。前記復号部は、式（３）により、前記下限値の前記予測値の前記分子ｉＬｒｃを算出し、式（４）により、復号のための計算媒体Ｃｏｄｅを更新し、式（５）により、前記区間の区間長を２の累乗で表したときの指数ｉＲを更新する。ｉＴＲは、前記出現確率の前記分母を２の累乗で表したときの前記指数を示す。Ｌｒｃは、前記復号された要素値の前記出現確率の前記下限値の前記分子を示す。ｉＣは、前記復号された要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数を示す。
【００１８】
ｉＬｒｃ＝Ｃｏｄｅ×２-(iR-iTR)    …（３）
Ｃｏｄｅ＝Ｃｏｄｅ−Ｌｒｃ×２(iR-iTR)    …（４）
ｉＲ＝ｉＲ＋ｉＣ−ｉＴＲ    …（５）
【００１９】
本発明の第３の観点によれば、符号化復号装置は、上記第１の観点による符号化装置と、上記第２の観点による復号装置とを備える。
【００２０】
本発明の第４の観点によれば、符号化方法は、レンジコーダーにより画像データを符号化する。符号化方法は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付けるステップと、前記出現確率の分母を２の累乗で表したときの指数を算出するステップとを含む。
【００２１】
本発明の第５の観点によれば、復号方法は、レンジコーダーにより画像データを符号化した符号化データを復号する。前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータである。前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を２の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理である。前記分母指数算出処理は、前記出現確率の分母を２の累乗で表したときの指数を算出する処理である。前記要素値ごとに、前記要素値の前記出現確率の前記分子を２の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出するステップと、前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成するステップとを含む。
【発明の効果】
【００２２】
本発明によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる。また、本発明によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データを復号するときの処理速度を向上させることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係るロボットシステムを示す機能ブロック図である。
【図２】本発明の実施形態に係るロボットの色形式変換部の処理を示す図である。
【図３】本発明の実施形態に係るロボットの離散ウェーブレット変換部の処理を示す図である。
【図４】（ａ）一般的な算術符号化で算出される出現確率テーブルを示す図である。（ｂ）一般的な算術符号化で算出される数直線上の区間を示す図である。（ｃ）一般的なレンジコーダーによる符号化の手順を示す図である。
【図５】本発明の実施形態に係るロボットのレンジコーダー符号化部を示す機能ブロック図である。
【図６】本発明の実施形態に係るロボットのレンジコーダー符号化部が実行するレンジコーダー符号化処理を示すフローチャートである。
【図７】（ａ）本発明の実施形態に係るロボットのレンジコーダー符号化部が作成する出現確率テーブルを示す図である。（ｂ）本発明の実施形態に係るロボットのレンジコーダー符号化部による符号化の手順を示す図である。
【図８】本発明の実施形態に係るロボットが実行する符号化方法を示すフローチャートである。
【図９】本発明の実施形態に係るロボットの電気的構成を示す図である。
【図１０】本発明の実施形態に係る操縦装置を示す機能ブロック図である。
【図１１】一般的なレンジコーダーによる符号化データの復号の手順を示す図である。
【図１２】本発明の実施形態に係る操縦装置のレンジコーダー復号部を示す機能ブロック図である。
【図１３】本発明の実施形態に係る操縦装置のレンジコーダー復号部が実行するレンジコーダー復号処理を示すフローチャートである。
【図１４】本発明の実施形態に係る操縦装置のレンジコーダー復号部が作成する復号テーブルを示す図である。
【図１５】本発明の実施形態に係る操縦装置のレンジコーダー復号部による復号の手順を示す図である。
【図１６】本発明の実施形態に係る操縦装置が実行する復号方法を示すフローチャートである。
【図１７】本発明の実施形態に係る操縦装置の電気的構成を示す図である。
【図１８】（ａ）本発明の実施例１に係る符号化装置による符号化対象の原画像を示す図である。（ｂ）〜（ｄ）本発明の実施例１に係る復号装置による復号画像を示す図である。
【図１９】（ａ）本発明の実施例２に係る符号化装置のＤＷＴ部が作成した変換データの表す画像を示す図である。（ｂ）本発明の実施例２に係る符号化装置のゼロ変換部が作成した近似データの表す画像を示す図である。（ｃ）本発明の実施例２に係る符号化装置のＤＷＴ部が作成した変換データの表す画像を示す図である。（ｄ）本発明の実施例２に係る符号化装置のゼロ変換部が作成した近似データの表す画像を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付して説明を繰り返さない。
【００２５】
図１は、本発明の実施形態に係るロボットシステム１を示す機能ブロック図である。ロボットシステム１は符号化復号装置として機能する。ロボットシステム１は、ロボット１００と、操縦装置２００とを備える。ロボット１００はネットワーク３００に接続され、操縦装置２００はネットワーク３００に接続される。従って、ロボット１００と操縦装置２００とはネットワーク３００を介して接続される。ネットワーク３００は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、及び公衆通信網を含む。
【００２６】
ロボット１００は、操縦装置２００によって、ネットワーク３００を介して遠隔操縦される。つまり、操縦者は、ロボット１００から操縦装置２００にネットワーク３００を介して送信された映像を見ながら、操縦装置２００を操作して、ネットワーク３００を介してロボット１００を遠隔操縦する。
【００２７】
ロボット１００は、撮影部１１０と、符号化装置１２０と、通信部１３０とを備える。撮影部１１０は、撮影部１１０の視野内の物体及び環境を撮影し、カラー画像を表す画像データＡＤを符号化装置１２０に出力する。本実施形態では、撮影部１１０は、１フレーム当たり、ＱＶＧＡ（Ｑｕａｒｔｅｒ  Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）の解像度を有する画像データＡＤを出力する。ＱＶＧＡは、３２０画素×２４０画素を示す。
【００２８】
また、本実施形態では、画像データＡＤの色形式は、ＲＧＢ形式又はＹＵＶ４２２形式である。ＲＧＢ形式は、Ｒ（赤）とＧ（緑）とＢ（青）とで色彩を表現する形式であり、１個の画素データのサイズは３バイトである。ＹＵＶ４２２形式は、Ｙ（輝度）とＵ（色差：輝度と青色との差）とＶ（色差：輝度と赤色との差）とで色彩を表現する形式であり、１個の画素データのサイズは２バイトである。
【００２９】
符号化装置１２０は、画像データＡＤを符号化することによって圧縮し、圧縮画像データを通信部１３０に出力する。符号化装置１２０は、例えば、コンピューターによって実現される。
【００３０】
通信部１３０は、ネットワーク３００を介して圧縮画像データを操縦装置２００に送信する。通信部１３０は、例えば、ネットワーク３００と無線で接続され、無線通信を実行する。本実施形態では、通信部１３０は、ネットワーク３００にアクセスするときの通信プロトコルとして、ＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を採用する。ＵＤＰは、コネクションレス型の通信プロトコルであり、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）よりも、高速に通信できる。従って、ＵＤＰ／ＩＰは、ロボット１００を遠隔操縦する場合のように、リアルタイムで画像を送受信する場合に特に好適である。なお、通信プロトコルとして、ＴＣＰ／ＩＰを採用することもできる。
【００３１】
以下、具体例を挙げながら、符号化装置１２０の詳細を説明する。符号化装置１２０は、色形式変換部１０と、画像分割部２０と、色成分結合部３０と、離散ウェーブレット変換部４０（以下、「ＤＷＴ部４０」と記載する。）と、ゼロ変換部５０と、ガウス分布作成部６０と、ランレングス符号化部７０と、レンジコーダー符号化部８０とを含む。ＤＷＴ部４０は記憶部４０ａを含む。なお、本実施形態では、色形式変換部１０、画像分割部２０、色成分結合部３０、ＤＷＴ部４０、ゼロ変換部５０、ガウス分布作成部６０、及びランレングス符号化部７０の各々の処理は、レンジコーダー符号化部８０がレンジコーダーによる符号化を実行する前に実行される。
【００３２】
色形式変換部１０は、撮影部１１０が出力する画像データＡＤの色形式を変換し、色形式の変換された画像データＡＤを画像データＢＤとして画像分割部２０に出力する。具体的には、色形式変換部１０は、ＲＧＢ形式又はＹＵＶ４２２形式の画像データＡＤをＹＵＶ４１１形式の画像データＢＤに変換する。ＹＵＶ４１１形式は、Ｙ（輝度）とＵ（色差）とＶ（色差）とで色彩を表現する形式であり、１個の画素データのサイズは１２ビットである。
【００３３】
画像分割部２０は、１フレームの画像データＢＤを複数の画像データに分割し、複数の画像データを複数の分割画像データＣＤとして色成分結合部３０に出力する。具体的には、画像分割部２０は、１フレームの画像データＢＤを、第１方向（本実施形態では、水平方向）にｍ分割するとともに、第１方向に直交する第２方向（本実施形態では、垂直方向）にｎ分割して、ｍ×ｎ個の分割画像データＣＤを生成する。ｍ及びｎのうちの少なくとも一方は２以上の整数であり、他方は１以上の整数である。本実施形態では、ｍ＝５、ｎ＝３であり、１フレームの画像データＢＤが１５分割される。分割前の画像データＢＤの解像度は３２０画素×２４０画素であるため、分割画像データＣＤの各々の解像度は６４画素×８０画素である。
【００３４】
図１及び図２を参照して、色成分結合部３０について説明する。図１に示すように、色成分結合部３０は、分割画像データＣＤごとに、分割画像データＣＤからＹ成分とＵ成分とＶ成分とを抽出し、Ｙ成分とＵ成分とＶ成分とを結合し、結合したＹ成分とＵ成分とＶ成分とを画像データＤＤとしてＤＷＴ部４０に出力する。
【００３５】
図２は、色成分結合部３０の処理を示す図である。図１及び図２に示すように、色成分結合部３０は、Ｍ画素×Ｎ画素の分割画像データＣＤから、Ｍ画素×Ｎ画素のＹ成分Ｉ１と、Ｋ画素×Ｌ画素のＵ成分Ｉ２と、Ｋ画素×Ｌ画素のＶ成分Ｉ３とを抽出する。Ｍ、Ｎ、Ｋ、及びＬは２以上の整数である。本実施形態では、Ｍ＝６４、Ｎ＝８０、Ｋ＝３２、Ｌ＝４０である。
【００３６】
そして、色成分結合部３０は、Ｙ成分Ｉ１とＵ成分Ｉ２とＶ成分Ｉ３とを、Ｙ成分Ｉ１の１辺にＵ成分Ｉ２の１辺とＶ成分Ｉ３の１辺とが隣接するように結合し、（Ｍ＋Ｋ）画素×Ｎ画素の画像データＤＤを作成する。本実施形態では、９６画素×８０画素の画像データＤＤが作成され、画像データＤＤを構成する各画素データのサイズは１バイトである。
【００３７】
図１及び図３を参照して、ＤＷＴ部４０について説明する。図１に示すように、ＤＷＴ部４０は、画像データＤＤごとに、画像データＤＤに対して離散ウェーブレット変換を実行し、離散ウェーブレット変換が実行された画像データＤＤを変換データＥＤ（第１変換データ）としてゼロ変換部５０に出力する。なお、離散ウェーブレット変換を好適に実行するため、４で割り切れる数値（６４と８０）を選択し、６４画素×８０画素の分割画像データＣＤ、及び９６画素×８０画素の画像データＤＤを生成した。
【００３８】
図３は、ＤＷＴ部４０の処理を示す図である。図１及び図３に示すように、ＤＷＴ部４０は、画像データＤＤに対して、所定の分解レベル２より下位の分解レベル１を有する低周波成分を作成することなく、１次元の離散ウェーブレット変換（ＤＷＴ：ｄｉｓｃｒｅｔｅ  ｗａｖｅｌｅｔ  ｔｒａｎｓｆｏｒｍ）を第１方向ｘ（本実施形態では、水平方向ｘ）に実行し、第１方向ｘに所定の分解レベル２を有する低周波成分Ｌ０（黒色の太線で囲まれた領域）と、第１方向ｘに所定の分解レベル２を有する高周波成分Ｈ０（右上がり斜線の領域）とを作成する。分解レベルは、離散ウェーブレット変換における展開階層を示す。低周波成分Ｌ０と高周波成分Ｈ０との各々は、複数の係数データを含む。
【００３９】
さらに、ＤＷＴ部４０は、低周波成分Ｌ０に対して、所定の分解レベル２より下位の分解レベル１を有する低周波成分を作成することなく、１次元の離散ウェーブレット変換を第１方向ｘに直交する第２方向ｙ（本実施形態では、垂直方向ｙ）に実行し、第２方向ｙに所定の分解レベル２を有する低周波成分Ｌ１（黒色の太線で囲まれた領域）と、第２方向ｙに所定の分解レベル２を有する高周波成分Ｈ１（右下がり斜線の領域）とを作成する。低周波成分Ｌ１と高周波成分Ｈ１との各々は、複数の係数データを含む。高周波成分Ｈ０と高周波成分Ｈ１とは、高周波成分Ｈ２を構成する。
【００４０】
そして、ＤＷＴ部４０は、低周波成分Ｌ１と高周波成分Ｈ２とを、変換データＥＤとして、ゼロ変換部５０に出力する。変換データＥＤは、（Ｍ＋Ｋ）×Ｎ個の係数データを含む。
【００４１】
具体的には、ＤＷＴ部４０は、次のようにして、画像データＤＤに対して、離散ウェーブレット変換を実行する。
【００４２】
記憶部４０ａは所定数の乗算値（以下、「ＤＷＴ用乗算値」と記載する。）を予め記憶する。所定数のＤＷＴ用乗算値は、離散ウェーブレット変換のための第１数列を構成する各数値と画像データＤＤを構成する各画素データが取り得る各数値（つまり、各画素値）との乗算値、離散ウェーブレット変換のための第２数列を構成する各数値と画像データＤＤを構成する各画素データが取り得る各数値（つまり、各画素値）との乗算値、及び離散ウェーブレット変換のための第３数列を構成する各数値と画像データＤＤを構成する各画素データが取り得る各数値（つまり、各画素値）との乗算値を含む。
【００４３】
第１数列は、スケーリングを表す数列であり、ドベシィ（Ｄａｕｂｅｃｈｉｅｓ）の数列（ドベシィのパラメーター＝２）である。なお、ハール（Ｈａａｒ）の数列を使用することもできる。第１数列は、一般的な離散ウェーブレット変換において、低周波成分を生成するために使用される。第１数列は、次に示すように、ｋＳ１［０］、ｋＳ１［１］、ｋＳ１［２］、ｋＳ１［３］、である。
【００４４】
【数１】
2016171473.tif 000003
【００４５】
第２数列は、次に示すように、ｋＳ２［０］、ｋＳ２［１］、ｋＳ２［２］、ｋＳ２［３］、ｋＳ２［４］、ｋＳ２［５］、ｋＳ２［６］、ｋＳ２［７］、ｋＳ２［８］、ｋＳ２［９］、であり、第１数列から作成されている。
【００４６】
【数２】
2016171473.tif 000004
【００４７】
第３数列は、次に示すように、ｋＷ２［０］、ｋＷ２［１］、ｋＷ２［２］、ｋＷ２［３］、ｋＷ２［４］、ｋＷ２［５］、ｋＷ２［６］、ｋＷ２［７］、ｋＷ２［８］、ｋＷ２［９］、であり、第１数列と第４数列とから作成されている。第４数列は、ウェーブレットを表す数列であり、第１数列から作成されている。第４数列は、次に示すように、ｋＷ１［０］、ｋＷ１［１］、ｋＷ１［２］、ｋＷ１［３］、である。第４数列は、一般的な離散ウェーブレット変換において、高周波成分を生成するために使用される。
【００４８】
【数３】
2016171473.tif 000005
【００４９】
【数４】
2016171473.tif 000006
【００５０】
第１数列は４項からなり、第２数列は１０項からなり、第３数列は１０項からなり、項数の合計は２４である。また、本実施形態では、画像データＤＤを構成する各画素データのサイズは、１バイトであり、各画素データは０〜２５５の数値を取り得る。従って、所定数のＤＷＴ用乗算値は、２４×２５６個のＤＷＴ用乗算値である。そこで、２４×２５６個のＤＷＴ用乗算値を記憶するために必要な容量は、９２１６バイト（＝２４×２５６×１．５バイト）であり、１２ビットで足りる。
【００５１】
ＤＷＴ部４０は、画像データＤＤを構成する各画素データが表す画素値に基づいて、ＤＷＴ用乗算値を取得し、複数のＤＷＴ用乗算値に対して和算及び／又は減算を実行することによって、画像データＤＤに対して離散ウェーブレット変換を実行し、変換データＥＤを作成する。従って、ＤＷＴ部４０は、乗算及び除算を実行することなく、離散ウェーブレット変換を実行する。
【００５２】
図１を参照して、ゼロ変換部５０に付いて説明する。ゼロ変換部５０は、変換データＥＤごとに、変換データＥＤに対して近似処理を実行し、近似処理後の変換データＥＤを、近似データＦＤ（第２変換データ）として、ガウス分布作成部６０に出力する。近似処理とは、０に近似する係数データを０に変換する処理のことである。
【００５３】
具体的には、ゼロ変換部５０は、変換データＥＤの高周波成分Ｈ２を構成する複数の係数データ（データ）に対して、所定ビット数Ｂ（Ｂは１以上の整数）だけ右にシフトするビット演算を実行し、高周波成分Ｈ２を構成する複数の係数データのうち、−（２B−１）以上（２B−１）以下の係数値（値）を表す係数データ（つまり、０に近似する係数データ）を０に変換する。
【００５４】
すなわち、所定ビット数Ｂだけ右にシフトするビット演算は、係数データの表す係数値を１／２B倍して、小数点以下の数を切り捨てる演算と同じである。従って、このビット演算を実行することによって、−（２B−１）以上（２B−１）以下の係数値を表す係数データが０に変換される。本実施形態では、ゼロ変換部５０は、２ビットだけ右にシフトするビット演算を実行する。従って、−（２2−１）以上（２2−１）以下の係数値を表す係数データが０に変換される。その結果、データ量を大幅に削減できる。
【００５５】
以下、ビット演算の実行によって近似処理された高周波成分Ｈ２を「高周波成分Ｈ３」と記載する。ゼロ変換部５０は、高周波成分Ｈ３を構成する複数の係数データと、変換データＥＤの低周波成分Ｌ１を構成する複数の係数データ（データ）とを、近似データＦＤとしてガウス分布作成部６０に出力する。近似データＦＤは、（Ｍ＋Ｋ）×Ｎ個の係数データを含む。
【００５６】
ガウス分布作成部６０は、近似データＦＤごとに、近似データＦＤを構成する複数の係数データ（データ）がガウス分布を形成するように、近似データＦＤを処理し、処理された近似データＦＤを、ガウス分布データＧＤとしてランレングス符号化部７０に出力する。
【００５７】
具体的には、ガウス分布作成部６０は、近似データＦＤの高周波成分Ｈ３を構成する係数データの各々の表す係数値に、１２８を加算することによって、負数を消す。その結果、高周波成分Ｈ３が表す複数の係数値は、１２８を期待値とし、６５を下限値とし、１９１を上限値とするガウス分布を形成する。
【００５８】
ガウス分布が形成される理由は、高周波成分Ｈ３を構成する係数データの各々が表す係数値は、次に示す理由により、−６３以上６３以下の整数値だからである。すなわち、変換データＥＤの高周波成分Ｈ２を構成する係数データの各々の表す係数値は、−２５５以上２５５以下の整数値である。従って、ゼロ変換部５０が高周波成分Ｈ２に対して２ビットだけ右にシフトするビット演算を実行した結果、作成される高周波成分Ｈ３を構成する係数データの各々の表す係数値は、−６３以上６３以下の整数値になる。
【００５９】
また、ガウス分布作成部６０は、近似データＦＤの低周波成分Ｌ１を構成する係数データの各々の表す係数値から、１２８を減算する。その結果、低周波成分Ｌ１の表す複数の係数値は、０を期待値とし、−１２８を下限値とし、１２７を上限値とするガウス分布を形成する。１２８を減算する前では、低周波成分Ｌ１を構成する係数データの各々が表す係数値は、０以上２５５以下の整数値だからである。さらに、ガウス分布作成部６０は、負数を消すために、ガウス分布を形成する低周波成分Ｌ１を構成する係数データの各々の表す係数値に、１２８を加算する。その結果、低周波成分Ｌ１の表す複数の係数値は、１２８を期待値とし、０を下限値とし、２５５を上限値とするガウス分布を形成する。
【００６０】
以下、負数を有しないガウス分布を形成する低周波成分Ｌ１を「低周波成分Ｇ１」と記載し、負数を有しないガウス分布を形成する高周波成分Ｈ３を「高周波成分Ｇ２」と記載する。また、低周波成分Ｇ１の表す複数の係数値が形成するガウス分布の期待値を「期待値ＥＰ１」と記載し、高周波成分Ｇ２の表す複数の係数値が形成するガウス分布の期待値を「期待値ＥＰ２」と記載する。期待値ＥＰ１と期待値ＥＰ２とは、同じ値、つまり、１２８である。
【００６１】
ガウス分布作成部６０は、低周波成分Ｇ１と高周波成分Ｇ２とを、ガウス分布データＧＤとしてランレングス符号化部７０に出力する。ガウス分布データＧＤは、（Ｍ＋Ｋ）×Ｎ個の係数データを含む。
【００６２】
ランレングス符号化部７０は、ガウス分布データＧＤごとに、ガウス分布データＧＤに対して、ランレングス符号化を実行し、ランレングス符号化後のガウス分布データＧＤを、ランレングス符号化データＨＤとして、レンジコーダー符号化部８０に出力する。
【００６３】
具体的には、ランレングス符号化部７０は、ガウス分布データＧＤの低周波成分Ｇ１を走査して、低周波成分Ｇ１を構成する複数の係数データを、それぞれ、複数の要素データＧＧ１として設定する。
【００６４】
また、ランレングス符号化部７０は、ガウス分布データＧＤの高周波成分Ｇ２を走査して、高周波成分Ｇ２における期待値ＥＰ２と同じ係数値が連続して出現する数を示すランレングスＲＬを順次検出する。係数値は高周波成分Ｇ２を構成する係数データが表す値である。そして、ランレングス符号化部７０は、ランレングスＲＬごとに、所定値ＰＶとランレングスＲＬとを含む要素データＧＧ２１（データ）を作成する。
【００６５】
ただし、ランレングス符号化部７０は、ランレングスＲＬが１の場合は、期待値ＥＰ２と同じ係数値を要素データＧＧ２１として設定する。また、ランレングス符号化部７０は、ランレングスＲＬが所定長ＰＬを超えた場合、所定長ＰＬを超えるたびに、所定長ＰＬを保持するとともに、ランレングスＲＬをリセットし、再びランレングスＲＬの検出を開始する。そして、ランレングス符号化部７０は、所定値ＰＶ及び所定長ＰＬと、所定値ＰＶ及びランレングスＲＬとを含む要素データＧＧ２１を作成する。この場合、所定長ＰＬを超えた回数をｇ（ｇは１以上の整数）と記載すると、要素データＧＧ２１に含まれる所定値ＰＶ及び所定長ＰＬの組は、ｇ回連続する。
【００６６】
さらに、ランレングス符号化部７０は、複数の要素データＧＧ２１の各々に含まれるランレングスＲＬが期待値ＥＰ２と同じ値を期待値とするガウス分布を形成するように、複数の要素データＧＧ２１を処理し、複数の要素データＧＧ２２を作成する。
【００６７】
また、ランレングス符号化部７０は、高周波成分Ｇ２を走査する際、高周波成分Ｇ２における期待値ＥＰ２と異なる係数値を表す複数の係数データを、それぞれ、複数の要素データＧＧ２３として設定する。
【００６８】
そして、ランレングス符号化部７０は、複数の要素データＧＧ１と、複数の要素データＧＧ２２と、複数の要素データＧＧ２３とを、ランレングス符号化データＨＤとしてレンジコーダー符号化部８０に出力する。
【００６９】
以下、具体例を挙げながら要素データＧＧ２１及び要素データＧＧ２２について説明する。ガウス分布の期待値ＥＰ２を、ガウス分布作成部６０の説明で例示した１２８とする。また、ランレングス符号化部７０は、要素データＧ２１を作成するときの所定値ＰＶを０に設定する。なぜなら、高周波成分Ｇ２の係数データの表す係数値が１２８であることは、ゼロ変換部５０によって作成された高周波成分Ｈ３の係数データの表す係数値が０であることを示すからである。
【００７０】
ランレングス符号化部７０は、例えば、高周波成分Ｇ２において、期待値ＥＰ２と同じ１２８が５個続いた場合、“１２８，１２８，１２８，１２８，１２８”を“０，５”と置き換える。“０，５”は、１つの要素データＧＧ２１を構成する。“０，５”のうち、“０”は所定値ＰＶを示し、“５”はランレングスＲＬを示す。本実施形態では、所定値ＰＶ及びランレングスＲＬの各々を１バイトで表す。
【００７１】
ただし、ランレングス符号化部７０は、１２８が１つの場合は、“１２８”を“０，１”と置き換えることなく、１２８を要素データＧＧ２１に設定する。本実施形態では、１２８を１バイトで表す。従って、“０，１”を要素データＧＧ２１に設定する場合よりも、データ保存量を少なくできる。
【００７２】
また、１２８が２５５個を超えて続いた場合は、ランレングスＲＬを１バイトで表すことができない。そこで、ランレングス符号化部７０は、例えば、１２８が３００個続いた場合は、“１２８，…，１２８”を“０，２５５，０，５”と置き換える。“０，２５５，０，５”は１つの要素データＧＧ２１を構成する。
【００７３】
要素データＧＧ２１を構成するランレングスＲＬを表す数値の出現確率は、２が最も高く、３、４、５、…と数値が大きくなるほど低下する。そこで、ランレングス符号化部７０は、“０，２”を“０，１２８”に、“０，３”を“０，１２７”に、“０，４”を“０，１２９”にというように、数値転換を実行する。この場合、“０，２”、“０，３”、及び“０，４”の各々は要素データＧ２１である。また、 “０，１２８”、“０，１２７”、及び“０，１２９”の各々は要素データＧ２２である。数値転換の結果、複数の要素データＧＧ２２は、期待値ＥＰ２と同じ値（つまり、１２８）を期待値とするガウス分布を形成する。
【００７４】
次に、レンジコーダー符号化部８０を説明する前に、一般的な算術符号化と一般的なレンジコーダーとについて説明する。一般的な算術的符号化は、０と１との間の実数区間を、画像を構成する各画素値の出現確率に応じて次々に細分化し、最終的な区間に含まれる１つの実数によって画像を表現し、画像を符号化する符号化技術である。これに対して、一般的なレンジコーダーは、０と所定の整数値との間の整数区間を、画像を構成する各画素値の出現確率に応じて次々に細分化し、最終的な区間に含まれる１つの整数によって画像を表現し、画像を符号化する符号化技術である。
【００７５】
図４（ａ）及び図４（ｂ）を参照して、一般的な算術符号化によって１０個の画素からなる画像を符号化する例を説明する。図４（ａ）は、一般的な算術符号化で算出される出現確率テーブルを示す図である。図４（ｂ）は、一般的な算術符号化で算出される区間を示す図である。
【００７６】
図４（ａ）に示すように、各画素の画素値は、１〜４のいずれかの整数値を取り得る。画像を構成する１０個の画素の画素値は、４、３、４、２、３、４、１、３、４、２、である。算術符号化では、各画素値の出現確率Ｃｒｃを算出する。例えば、３を示す画素値は１０画素中３回出現しているため、３を示す画素値の出現確率Ｃｒｃは３／１０である。
【００７７】
図４（ａ）及び図４（ｂ）に示すように、算術符号化では、０と１との間の数直線上の区間が、各画素値の出現確率Ｃｒｃに応じて分割される。例えば、３を示す画素値の出現確率Ｃｒｃの下限値Ｌｒは３／１０であり、上限値Ｈｒは６／１０である。
【００７８】
算術符号化では、図４（ａ）に示す出現確率テーブルを使用して、図４（ｂ）に示す０と１との間の区間を次々に細分化する。すなわち、１０個の画素値のうち第１番目の画素値が４であるため、下限値Ｌｒは６／１０であり、上限値Ｈｒは１０／１０である。従って、０〜１の区間のうち、６／１０〜１０／１０に対応する０．６〜１の区間が選択される。つまり、４から始まる数値群は、０．６〜１の区間に含まれる実数によって符号化可能であることが確定する。次に、第２番目の画素値が３であるため、下限値Ｌｒは３／１０であり、上限値Ｈｒは６／１０である。従って、０．６〜１の区間のうち、３／１０〜６／１０に対応する０．７２〜０．８４の区間が選択される。つまり、４と３とから始まる数値群は、０．７２〜０．８４の区間に含まれる実数によって符号化可能であることが確定する。以降、同様にして、後続する画素値に対応する出現確率Ｃｒｃの下限値Ｌｒ及び上限値Ｈｒに応じて次々に区間が選択され、第１０番目の画素値に対応する出現確率Ｃｒｃの下限値Ｌｒ及び上限値Ｈｒに応じた区間に含まれる１つの実数を、画像の符号化データとして決定する。
【００７９】
図４（ａ）及び図４（ｃ）を参照して、一般的なレンジコーダーによって１０個の画素からなる画像を符号化する例を説明する。各画素の画素値は、１〜４のいずれかの整数値を取り得る。画像を構成する１０個の画素の画素値は、４、３、４、２、３、４、１、３、４、２、である。レンジコーダーでは、図４（ａ）に示す出現確率テーブルを使用して、０と所定の整数値との間の区間を次々に細分化する。所定の整数値を１００００００に設定する。具体的には、次に示す演算が実行される。
【００８０】
図４（ｃ）は、一般的なレンジコーダーによる符号化の手順を示す図である。図４（ｃ）に示す数値は１０進数である。図４（ａ）及び図４（ｃ）に示すように、一般的なレンジコーダーでは、画素値の出現確率Ｃｒｃ及び画素値に対応する下限値Ｌｒを使用して、区間の下限値Ｌｏを式（１）により算出するとともに、区間の区間長ＲＮＧを式（２）により算出することによって、区間を次々に細分化する。式（１）及び式（２）において、演算子「＝」は代入を示す。
【００８１】
Ｌｏ＝Ｌｏ＋ＲＮＧ×Ｌｒ    …（１）
ＲＮＧ＝ＲＮＧ×Ｃｒｃ    …（２）
【００８２】
下限値Ｌｏの初期値として０を設定する。また、所定の整数値が１００００００であるため、区間長ＲＮＧの初期値を１００００００に設定する。区間長ＲＮＧが更新され、区間長ＲＮＧが１００００より小さくなった場合は、区間長ＲＮＧ及び下限値Ｌｏの各々を１００倍することによって、区間を拡張する。
【００８３】
図４（ｃ）に示すように、１０個の画素値のうち第１番目の画素値は４であるため、下限値Ｌｏは６０００００（＝０＋１００００００×０．６）に更新されるとともに、区間長ＲＮＧは４０００００（＝１００００００×０．４）に更新される。つまり、第１番目の画素値に対応して、６０００００の下限値Ｌｏと、１００００００の上限値と、４０００００の区間長ＲＮＧとを有する区間が選択される。
【００８４】
第２番目の画素値は３であるため、下限値Ｌｏは７２００００（＝６０００００＋４０００００×０．３）に更新されるとともに、区間長ＲＮＧは１２００００（＝４０００００×０．３）に更新される。つまり、第２番目の画素値に対応して、７２００００の下限値Ｌｏと、８４００００の上限値と、１２００００の区間長ＲＮＧとを有する区間が選択される。
【００８５】
同様の演算により、第３番目の画素値に対応して、７９２０００の下限値Ｌｏと、８４００００の上限値と、４８０００の区間長とを有する区間が選択される。
【００８６】
同様の演算により、第４番目の画素値に対応して、７９６８００の下限値Ｌｏと、８０６４００の上限値と、９６００の区間長ＲＮＧとを有する区間が選択される。この場合、区間長ＲＮＧが１００００より小さいため、区間長ＲＮＧの９６００を１００倍するとともに、下限値Ｌｏの７９６８００を１００倍することによって、区間を拡張する。従って、下限値Ｌｏは、７９６８００００になり、オーバーフローする。そこで、上位２桁の「７９」を取り出し、オーバーフロー値として保持するとともに、下限値Ｌｏを６８００００に修正する。
【００８７】
以降、第１番目の画素値から第４番目の画素値までの処理と同様にして、第５番目の画素値から第１０番目の画素値まで、式（１）及び式（２）に基づいて、区間を次々に細分化する。そして、オーバーフロー値「７９」と、オーバーフロー値「１１４」と、最終的な区間の下限値Ｌｏ「６４６７８４」とに基づいて、符号化データ「８０１４６４６７８４」を作成し、画像の符号化を完了する。
【００８８】
次に、図１、図５、図６、図７（ａ）、及び図７（ｂ）を参照して、レンジコーダー符号化部８０について説明する。図１に示すように、レンジコーダー符号化部８０は、ランレングス符号化部７０が出力したランレングス符号化データＨＤを受け取る。ランレングス符号化データＨＤは、複数の要素データＧＧ１と、複数の要素データＧＧ２２と、複数の要素データＧＧ２３とにより構成される。以下、要素データＧＧ１、要素データＧＧ２２、及び要素データＧＧ２３を総称して「要素データＥＬ」と記載し、「要素データＥＬ」が表す係数値を要素値と記載する場合がある。
【００８９】
レンジコーダー符号化部８０は、ランレングス符号化データＨＤごとに、レンジコーダーによりランレングス符号化データＨＤを符号化し、符号化データＩＤを作成して通信部１３０に出力する。レンジコーダーは、０と所定の整数値との間の整数区間を、ランレングス符号化データＨＤを構成する各要素値の出現確率に応じて次々に細分化し、最終的な区間に含まれる１つの整数によってランレングス符号化データＨＤを表現し、ランレングス符号化データＨＤを符号化する符号化技術である。この場合、所定の整数は１より大きい整数値である。所定の整数として、比較的大きい整数値が採用される。また、レンジコーダーでは、区間の区間長が一定値よりも小さくなった場合、区間長を整数倍することによって、区間を拡張し、要素値の出現確率に応じた区間の細分化を継続する。
【００９０】
ただし、本実施形態では、図４（ａ）及び図４（ｃ）を参照して説明した一般的なレンジコーダーの手順と異なる手順を採用する。
【００９１】
以下、レンジコーダー符号化部８０が、１０個の要素データＥＬから構成されるランレングス符号化データＨＤを符号化する例を参照しながら説明する。要素データＥＬの各々が表す要素値は、１〜４のいずれかの整数値を取り得る。１０個の要素データＥＬが表す要素値は、４、３、４、２、３、４、１、３、４、２、である。
【００９２】
図５は、レンジコーダー符号化部８０を示す機能ブロック図である。図６は、レンジコーダー符号化部８０が実行するレンジコーダー符号化処理を示すフローチャートである。図７（ａ）は、レンジコーダー符号化部８０が作成する出現確率テーブル８２を示す図である。出現確率テーブル８２は、要素値と、要素値の出現確率の分子の指数ｉＣと、要素値の出現確率の下限値の分子Ｌｒｃとを対応付けたテーブルである。図７（ｂ）は、レンジコーダー符号化部８０による符号化の手順を示す図である。図７（ｂ）において、「０ｘ」は数値が１６進数で表されていることを示す。
【００９３】
図５に示すように、レンジコーダー符号化部８０は、出現確率算出部８０ａと、分子指数算出部８０ｂと、下限値分子算出部８０ｃと、分母指数算出部８０ｄと、符号化部８０ｅとを含む。
【００９４】
図５、図６、及び図７（ａ）に示すように、レンジコーダー符号化部８０は、ステップＳ１〜ステップＳ７の処理を実行し、出現確率テーブル８２を作成する。
【００９５】
すなわち、ステップＳ１において、レンジコーダー符号化部８０の出現確率算出部８０ａは、ランレングス符号化データＨＤの要素データＥＬが表す要素値の出現確率を算出する。要素値が１の場合は、出現確率は１／１０であり、要素値が２の場合は、出現確率は２／１０であり、要素値が３の場合は、出現確率は３／１０であり、要素値が４の場合は、出現確率は４／１０である。
【００９６】
ステップＳ３において、分子指数算出部８０ｂは、要素値の出現確率の分子を２の累乗で表したときの指数ｉＣを算出し、要素値に指数ｉＣを対応付ける。ステップＳ３は分子指数算出処理に相当する。例えば、図７（ａ）に示すように、要素値が１の場合は、要素値の出現確率（＝１／１０）の分子は１（＝２0）であり、指数ｉＣは０である。要素値が２の場合は、要素値の出現確率（＝２／１０）の分子は２（＝２1）であり、指数ｉＣは１である。要素値が４の場合は、要素値の出現確率（＝４／１０）の分子は４（＝２2）であり、指数ｉＣは２である。
【００９７】
ただし、分子指数算出部８０ｂは、要素値の出現確率の分子が２の累乗でない場合、２の累乗でない分子に代えて、２の累乗でない分子よりも小さく、２の累乗でない分子に最も近似する２の累乗を、要素値の出現確率の分子として設定し、設定された分子を２の累乗で表したときの指数ｉＣを要素値に対応付ける。例えば、図７（ａ）に示すように、要素値が３の場合は、要素値の出現確率（＝３／１０）の分子（＝３）は２の累乗でないため、分子（＝３）よりも小さく分子（＝３）に最も近似する２の累乗（＝２1）を、要素値の出現確率の分子（＝２1）として設定し、設定された分子（＝２1）を２の累乗で表したときの指数ｉＣ（＝１）を要素値に対応付ける。
【００９８】
なお、分子指数算出部８０ｂは、要素値の出現確率の分子が２の累乗でない場合、２の累乗でない分子に代えて、２の累乗でない分子よりも大きく、２の累乗でない分子に最も近似する２の累乗を、要素値の出現確率の分子として設定し、設定された分子を２の累乗で表したときの指数ｉＣを要素値に対応付けてもよい。
【００９９】
ステップＳ５において、下限値分子算出部８０ｃは、式（３）により、要素値の出現確率の下限値の分子Ｌｒｃを算出する。式（３）において、Ｌｒｃｐは前回の処理対象としての要素値の出現確率の下限値の分子Ｌｒｃを示し、Ａｐは前回の処理対象としての要素値の出現確率の分子を示す。最初の処理対象の要素値の場合、本実施形態では、Ｌｒｃｐ及びＡｐの各々に０が入力される。
【０１００】
Ｌｒｃ＝Ｌｒｃｐ＋Ａｐ    …（３）
【０１０１】
例えば、図７（ａ）に示すように、最初の処理対象としての要素値（＝１）の場合は、Ｌｒｃｐ及びＡｐの各々には０が入力されるため、下限値の分子Ｌｒｃは０である。次の処理対象としての要素値（＝２）の場合は、Ｌｒｃｐに前回の処理対象としての要素値（＝１）の出現確率の下限値の分子Ｌｒｃ（＝０）が入力され、Ａｐに前回の処理対象としての要素値（＝１）の出現確率の分子（＝１）が入力されるため、下限値の分子Ｌｒｃは１である。更に次の処理対象としての要素値（＝３）の場合は、Ｌｒｃｐに前回の処理対象としての要素値（＝２）の出現確率の下限値の分子Ｌｒｃ（＝１）が入力され、Ａｐに前回の処理対象としての要素値（＝２）の出現確率の分子（＝２）が入力されるため、下限値の分子Ｌｒｃは３である。
【０１０２】
更に次の処理対象としての要素値（＝４）の場合は、Ｌｒｃｐに前回の処理対象としての要素値（＝３）の出現確率の下限値の分子Ｌｒｃ（＝３）が入力され、Ａｐに前回の処理対象としての要素値（＝３）の出現確率の分子（＝２）が入力されるため、下限値の分子Ｌｒｃは５である。なお、前回の処理対象としての要素値（＝３）の場合は、要素値の出現確率（＝３／１０）の分子（＝３）は２の累乗でないため、分子（＝３）よりも小さく分子（＝３）に最も近似する２の累乗（＝２1）が、要素値の出現確率の分子（＝２1）として設定されている（ステップＳ３）。
【０１０３】
なお、要素値の出現確率の下限値をＬｗ、前回の処理対象としての要素値の出現確率の下限値をＬｗｐ、前回の処理対象としての要素値の出現確率をＣｒｃで表すと、Ｌｗは、式（４）により算出される。Ｌｗｐ及びＣｒｃの初期値は０である。
【０１０４】
Ｌｗ＝Ｌｗｐ＋Ｃｒｃ    …（４）
【０１０５】
ステップＳ７において、下限値分子算出部８０ｃは、全ての要素値（１〜４）に対して、ステップＳ１〜ステップＳ５の処理が完了したか否か判定する。下限値分子算出部８０ｃは、処理が完了していないと判定した場合（ステップＳ７でＮｏ）、処理をステップＳ１に進め、処理が完了したと判定した場合（ステップＳ７でＹｅｓ）、出現確率テーブル８２が完成したため、処理をステップＳ９に進める。本実施形態では、要素値は４種類（１〜４）であるため、ステップＳ１〜ステップＳ７の処理が４回実行される。
【０１０６】
ステップＳ９において、分母指数算出部８０ｄは、要素値の出現確率の分母を２の累乗で表したときの指数ｉＴＲを算出する。ステップＳ９は分母指数算出処理に相当する。具体的には、分母指数算出部８０ｄは、要素値の各々の出現確率の下限値の分子Ｌｒｃのうちの最大値よりも大きく、最大値に最も近似する２の累乗を、要素値の出現確率の分母として設定し、指数ｉＴＲを算出する。例えば、図７（ａ）に示すように、要素値の出現確率の下限値の分子Ｌｒｃは、０、１、３、５であり、最大値は５である。従って、最大値（＝５）よりも大きく、最大値（＝５）に最も近似する２の累乗（＝２3）を、要素値の出現確率の分母として設定し、指数ｉＴＲ（＝３）を算出する。
【０１０７】
ステップＳ９の後、符号化部８０ｅは、ステップＳ１１〜ステップＳ２１の処理を実行し、ランレングス符号化データＨＤを構成する複数の要素データＥＬのうちの処理対象の要素データＥＬを更新するたびに、数直線上に設定された区間を細分化し、ランレングス符号化データＨＤを符号化する。
【０１０８】
すなわち、ステップＳ１１において、符号化部８０ｅは、処理対象の要素データＥＬが表す要素値の出現確率の下限値の分子Ｌｒｃ、要素値の出現確率の分母を２の累乗で表したときの指数ｉＴＲ、及び数直線上に設定された区間の区間長を２の累乗で表したときの指数ｉＲを使用して、式（５）により、数直線上に設定された区間の下限値Ｌｏｗを更新する。式（５）において、演算子「＝」は代入を示す。例えば、図７（ｂ）に示すように、下限値Ｌｏｗの初期値として、０ｘ０００を設定し、指数ｉＲの初期値として、１２を設定する。
【０１０９】
Ｌｏｗ＝Ｌｏｗ＋Ｌｒｃ×２(iR-iTR)    …（５）
【０１１０】
具体的には、符号化部８０ｅは、式（５）を演算するときには、２進数で表された分子Ｌｒｃを、「ｉＲ−ｉＴＲ」で表されるビット数だけ左にシフトするビット演算を実行して、Ｌｒｃ×２(iR-iTR)を算出する。なお、図６のステップＳ１１における演算子「＜＜」は、２進数で表された各ビットを左にシフトするビット演算（つまり、シフト演算）を示す。従って、「Ｌｒｃ＜＜（ｉＲ−ｉＴＲ）」は、２進数で表される「Ｌｒｃ」を、「ｉＲ−ｉＴＲ」で表されるビット数だけ左にシフトするビット演算を実行することを示す。その結果、１０進数で表される「Ｌｒｃ」が「２(iR-iTR)」倍される。
【０１１１】
ステップＳ１３において、符号化部８０ｅは、処理対象の要素データＥＬが表す要素値の出現確率の分子を２の累乗で表したときの指数ｉＣ、及び指数ｉＴＲを使用して、式（６）により、指数ｉＲを更新する。式（６）において、演算子「＝」は代入を示す。例えば、図７（ｂ）に示すように、指数ｉＲの初期値として、１２を設定する。
【０１１２】
ｉＲ＝ｉＲ＋ｉＣ−ｉＴＲ    …（６）
【０１１３】
ステップＳ１１及びステップＳ１３の処理について具体例を挙げて説明する。図７（ｂ）に示すように、１０個の要素データＥＬのうち第１番目の要素データＥＬが表す要素値は４であるため、下限値Ｌｏｗは０ｘＡ００（＝０ｘ００＋５×２12-3）に更新されるとともに、指数ｉＲは１１（＝１２＋２−３）に更新される。つまり、第１番目の要素データＥＬが表す要素値に対応して、０ｘＡ００の下限値Ｌｏｗと２11の区間長とを有する区間が選択される。
【０１１４】
次に、第２番目の要素データＥＬが表す要素値は３であるため、下限値Ｌｏｗは０ｘＤ００（＝０ｘＡ００＋３×２11-3）に更新されるとともに、指数ｉＲは９（＝１１＋１−３）に更新される。つまり、第２番目の要素データＥＬが表す要素値に対応して、０ｘＤ００の下限値Ｌｏと２9の区間長とを有する区間が選択される。以降、同様の演算により、下限値Ｌｏｗ及び指数ｉＲが更新される。
【０１１５】
ステップＳ１５において、符号化部８０ｅは、指数ｉＲが所定値ＭＡＸ以下か否かを判定する。符号化部８０ｅは、指数ｉＲが所定値ＭＡＸ以下でないと判定した場合（ステップＳ１５でＮｏ）、処理をステップＳ１９に進め、指数ｉＲが所定値ＭＡＸ以下でると判定した場合（ステップＳ１５でＹｅｓ）、処理をステップＳ１７に進める。本実施形態では、所定値ＭＡＸは１より大きい整数である。
【０１１６】
例えば、所定値ＭＡＸを４に設定する。この場合、図７（ｂ）に示すように、第５番目の要素データＥＬが表す要素値（＝３）に対応して算出された指数ｉＲは４であるため、処理はステップＳ１７に進む。
【０１１７】
ステップＳ１７において、符号化部８０ｅは、下限値Ｌｏｗに所定数２Cを掛け合わせるとともに（２C倍）、指数ｉＲで表される区間長（＝２iR）に所定数２Cを掛け合わせる（２C倍）。本実施形態では、所定数２Cの指数Ｃは０より大きい整数である。具体的には、区間長（＝２iR）に所定数２Cを掛け合わせる演算を実行する代わりに、指数ｉＲに指数Ｃを加算して、指数ｉＲを更新することによって区間を拡張する。
【０１１８】
例えば、所定数２Cを２8に設定する。この場合、図７（ｂ）に示すように、第５番目の要素データが表す要素値（＝３）に対応して算出された下限値Ｌｏ（＝０ｘＥ７８）を２8倍するとともに、指数ｉＲ（＝４）で表される区間長（＝２4）を２8倍することによって区間を拡張する。従って、指数ｉＲは１２になる。しかし、下限値Ｌｏｗが、０ｘＥ７８００になり、オーバーフローする。そこで、上位２桁の「Ｅ７」を取り出し、オーバーフロー値として保持するとともに、下限値Ｌｏｗを０ｘ８００に修正する。
【０１１９】
ステップＳ１９において、符号化部８０ｅは、ランレングス符号化データＨＤを構成する全ての要素データＥＬが表す要素値に対して、ステップＳ１１〜ステップＳ１７の処理が完了したか否かを判定する。符号化部８０ｅは、処理が完了していないと判定した場合（ステップＳ１９でＮｏ）、処理をステップＳ１１に進め、処理が完了したと判定した場合（ステップＳ１９でＹｅｓ）、処理をステップＳ２１に進める。本実施形態では、１０個の要素データＥＬを処理するため、ステップＳ１１〜ステップＳ１９の処理が１０回実行される。
【０１２０】
ステップＳ２１において、符号化部８０ｅは、最後尾の要素データＥＬの表す要素値に対応して算出された下限値Ｌｏｗ（つまり、区間長の最も短い区間の下限値Ｌｏｗ）に基づいて符号化データＩＤを作成し、ランレングス符号化データＨＤの符号化を完了する。さらに、符号化部８０ｅは、符号化データＩＤに、複数の指数データＥＸを付属データＡＴとして付属させる。複数の指数データＥＸは、それぞれ、複数の指数ｉＣを表す。複数の指数データＥＸは、それぞれ、複数の要素値と関連付けられている。本実施形態では、付属データＡＴは、１を示す要素値に対応する指数ｉＣ（＝０）を表す指数データＥＸと、２を示す要素値に対応する指数ｉＣ（＝１）を表す指数データＥＸと、３を示す要素値に対応する指数ｉＣ（＝１）を表す指数データＥＸと、４を示す要素値に対応する指数ｉＣ（＝２）を表す指数データＥＸとを含む。
【０１２１】
また、符号化部８０ｅは、オーバーフロー値を保持している場合は、オーバーフロー値と、最後尾の要素データＥＬの表す要素値に対応して算出された下限値Ｌｏｗとに基づいて符号化データＩＤを作成する。例えば、図７（ｂ）に示すように、オーバーフロー値（＝０ｘＥ７０００）と下限値Ｌｏｗ（＝０ｘＥ１２８Ｃ）とに基づいて、符号化データＩＤ（＝０ｘＥ８２８Ｃ）が作成される。なお、図７（ｂ）において、演算子「＆」は、ビット演算におけるビットごとの論理積を示す。また、１回だけ桁上がりをしているため、オーバーフロー値（＝０ｘＥ７）の下位に３桁の０ｘ０００を付加して、オーバーフロー値（＝０ｘＥ７０００）を作成している。０ｘ０００を付加したのは、下限値Ｌｏｗの初期値が３桁だからである。
【０１２２】
符号化部８０ｅは、圧縮画像データとして、符号化データＩＤ（＝０ｘＥ８２８Ｃ）と付属データＡＴとを通信部１３０に出力し、処理を終了する。
【０１２３】
図１を参照して、通信部１３０について説明する。通信部１３０は、レンジコーダー符号化部８０が出力した符号化データＩＤ及び付属データＡＴを、圧縮画像データとして、ネットワーク３００を介して、操縦装置２００に送信する。
【０１２４】
以上、図１及び図５〜図７を参照して説明したように、本実施形態に係る符号化装置によれば、レンジコーダー符号化部８０の分子指数算出部８０ｂが要素値の出現確率の分子を２の累乗で表したときの指数ｉＣを算出するとともに、分母指数算出部８０ｄが要素値の出現確率の分母を２の累乗で表したときの指数ｉＴＲを算出する。すなわち、要素値の出現確率の分子が２の累乗で表されるとともに、要素値の出現確率の分母が２の累乗で表される。
【０１２５】
従って、符号化の際に使用する式（５）には、除算が含まれず、乗算は、２の累乗（つまり、２(iR-iTR)）と整数（つまり、Ｌｒｃ）との乗算になる。その結果、２進数のシフト演算と和算とにより、数直線上の区間の下限値Ｌｏｗを算出できる。シフト演算及び和算は、乗算及び除算と比較して、コンピューターによる高速処理が可能な演算である。加えて、符号化の際に使用する式（６）には、除算及び乗算が含まれず、和算と減算とにより、数直線上の区間を表す指数ｉＲを算出できる。和算及び減算は、乗算及び除算と比較して、コンピューターによる高速処理が可能な演算である。
【０１２６】
式（５）及び式（６）を、シフト演算と和算と減算とで実行することにより、乗算及び／又は除算を実行する場合と比較して、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化を高速に実行できる。従って、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる。例えば、ロボット１００が高速なコンピューターを搭載することが困難な場合であっても、レンジコーダーによる符号化の処理速度を向上させることができる。また、レンジコーダー符号化部８０は、浮動小数点数を使用せず、整数値だけを使用するため、更に処理を高速化できる。
【０１２７】
また、本実施形態によれば、分子指数算出部８０ｂは、要素値の出現確率の分子が２の累乗でない場合、２の累乗でない分子よりも小さく、２の累乗でない分子に最も近似する２の累乗を、要素値の出現確率の分子として設定する。加えて、分母指数算出部８０ｄは、要素値の各々の出現確率の下限値の分子Ｌｒｃのうちの最大値よりも大きく、最大値に最も近似する２の累乗を、要素値の出現確率の分母として設定する。従って、簡易な処理により、出現確率の分子と分母との各々を確実に２の累乗で表すことができる。
【０１２８】
さらに、本実施形態によれば、式（５）及び式（６）を使用して、数直線上の区間の下限値Ｌｏｗと区間長を表す指数ｉＲとを更新することによって、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化を高速に実行できる。
【０１２９】
また、図１及び図３を参照して説明したように、本実施形態によれば、記憶部４０ａは、所定数のＤＷＴ用乗算値を予め記憶している。従って、ＤＷＴ部４０は、ＤＷＴ用乗算値を使用することで、乗算及び除算を実行することなく、離散ウェーブレット変換を実行できる。その結果、乗算を実行して離散ウェーブレット変換を実行する場合と比較して、高速に離散ウェーブレット変換を実行できる。なお、一般的な離散ウェーブレット変換でも除算は含まない。
【０１３０】
さらに、本実施形態によれば、ＤＷＴ部４０は、分解レベル０の画像データＤＤを、分解レベル１を経由することなく、分解レベル２の変換データＥＤに変換する。従って、記憶部４０ａに記憶されたＤＷＴ用乗算値を使用したＤＷＴ部４０による演算時の誤差の蓄積を抑制できる。その結果、復号後の画像の画質の低下を抑制できる。
【０１３１】
なお、分解レベル０の画像データを、分解レベル１を経由して、分解レベル２の変換データに変換する場合について説明する。この場合に、離散ウェーブレット変換で使用する複数の乗算値を予め記憶部に記憶して、離散ウェーブレット変換を実行すると、分解レベル１に変換した後、分解レベル２に変換するためには、ドベシィの数列と掛け算すべき画素値を０〜２５５の範囲の整数値に丸める必要がある。この丸める処理が頻発すると、丸め誤差が蓄積して画像の品質を低下させる可能性がある。そこで、本実施形態では、分解レベル１を経由していない。
【０１３２】
また、図１を参照して説明したように、本実施形態によれば、ゼロ変換部５０は、変換データＥＤの高周波成分Ｈ２に対して、所定ビット数Ｂだけ右にシフトするビット演算を実行し、０に近似する係数データを０に変換する。従って、変換データＥＤから近似データＦＤを作成する処理の高速化を図ることができる。
【０１３３】
さらに、本実施形態によれば、ガウス分布作成部６０は、近似データＦＤを構成する複数の係数データがガウス分布を形成するように、近似データＦＤを処理する。従って、ガウス分布作成部６０よりも後段に位置するレンジコーダー符号化部８０によるデータ圧縮率を向上させることができる。
【０１３４】
さらに、本実施形態によれば、ランレングス符号化部７０は、ランレングス符号化を実行するため、データ圧縮率を更に向上させることができる。また、ランレングス符号化部７０は、期待値ＥＰ２を有するガウス分布を形成するように、高周波成分Ｇ２に対応する複数の要素データＧＧ２２を作成する。一方、低周波成分Ｇ１に対応する複数の要素データＧＧ１は、期待値ＥＰ２と同じ期待値ＥＰ１を有するガウス分布を形成している。従って、複数の要素データＧＧ１のガウス分布と複数の要素データＧＧ２２のガウス分布とを重ねることができる。その結果、ランレングス符号化部７０よりも後段に位置するレンジコーダー符号化部８０によるデータ圧縮率を更に向上させることができる。
【０１３５】
さらに、本実施形態に係る符号化装置１２０によれば、６４画素×８０画素のカラー画像を表す画像データＡＤを、１５３６０バイトから約１３００バイトまで圧縮できる（後述する実施例１を参照）。無線ＬＡＮの規格では、一般的に、１パケットで送信できるデータのサイズの最大値は、１５００バイトである。従って、６４画素×８０画素のカラー画像を１パケットで送信できる。１フレーム（１枚）が３２０画素×２４０画素のカラー画像を送信する場合は、画像分割部２０により、カラー画像に対応する画像データＢＤを１５分割する。従って、３２０画素×２４０画素のカラー画像を１５パケットで送信できる。また、１３００バイト×１５は１９５００バイトである。従って、通信部１３０による通信速度が５Ｍｂｐｓの場合、操縦装置２００に１秒当たり３２フレーム（３２枚）のカラー画像を送信できる。その結果、撮影部１１０が１秒当たり３０フレーム（３０枚）のカラー画像を出力する場合に、リアルタイムで全てのカラー画像を送信でき、操縦装置２００でロボット１００を操縦する場合に好適である。
【０１３６】
ただし、１秒当たり３０フレームより少ないカラー画像を送信してもよい。例えば、平坦な路面においてロボット１００を水平移動させる場合、又は障害物のない垂直な場所においてロボット１００を垂直移動させる場合では、操縦装置２００に１秒当たり１０フレーム（１０枚）のカラー画像を送信できればよい。また、ロボット１００が静止している場合は、操縦装置２００に１秒当たり３フレーム（３枚）のカラー画像を送信できればよい。
【０１３７】
ロボット１００の置かれている環境によって、１秒当たりに送信するカラー画像のフレーム数（枚数）を調整できるが、データ圧縮率は高い程好ましい。必要なフレーム数のカラー画像の通信の完了後に、次の通信まで通信部１３０を待機させることにより、ロボット１００の消費エネルギーを抑制できる。
【０１３８】
ロボット１００の消費エネルギーを抑制できるため、ロボット１００に搭載するバッテリーを小型化できる。バッテリーの小型化によって、ロボット１００を軽量化できる。ロボット１００の軽量化によって、ロボット１００に搭載するモーターを小型化できる。その結果、更に消費エネルギーが抑制され、更にバッテリーを小型化できる。つまり、ロボット１００の開発において良質なスパイラルが生じ得る。
【０１３９】
次に、図１及び図８を参照して、ロボット１００が実行する符号化方法について説明する。図８は、ロボット１００が実行する符号化方法を示すフローチャートである。
【０１４０】
図１及び図８に示すように、ステップＳ１０１において、ロボット１００の撮影部１１０は、撮影部１１０の視野内の物体及び環境を撮影し、画像データＡＤを符号化装置１２０の色形式変換部１０に出力する。
【０１４１】
ステップＳ１０３において、色形式変換部１０は、画像データＡＤの色形式を変換し、画像データＢＤを画像分割部２０に出力する。
【０１４２】
ステップＳ１０５において、画像分割部２０は、画像データＢＤを複数の画像データに分割し、複数の画像データを複数の分割画像データＣＤとして色成分結合部３０に出力する。
【０１４３】
ステップＳ１０７において、色成分結合部３０は、分割画像データＣＤからＹ成分とＵ成分とＶ成分とを抽出し、Ｙ成分とＵ成分とＶ成分とを結合し、結合したＹ成分とＵ成分とＶ成分とを画像データＤＤとしてＤＷＴ部４０に出力する。
【０１４４】
ステップＳ１０９において、ＤＷＴ部４０は、画像データＤＤに対して離散ウェーブレット変換を実行し、離散ウェーブレット変換が実行された画像データＤＤを変換データＥＤ（第１変換データ）としてゼロ変換部５０に出力する。
【０１４５】
ステップＳ１１１において、ゼロ変換部５０は、変換データＥＤに対して近似処理を実行し、近似処理後の変換データＥＤを、近似データＦＤ（第２変換データ）として、ガウス分布作成部６０に出力する。近似処理とは、０に近似する係数データを０に変換する処理のことである。
【０１４６】
ステップＳ１１３において、ガウス分布作成部６０は、近似データＦＤを構成する複数の係数データがガウス分布を形成するように、近似データＦＤを処理し、処理された近似データＦＤを、ガウス分布データＧＤとしてランレングス符号化部７０に出力する。
【０１４７】
ステップＳ１１５において、ランレングス符号化部７０は、ガウス分布データＧＤに対して、ランレングス符号化を実行し、ランレングス符号化後のガウス分布データＧＤを、ランレングス符号化データＨＤとして、レンジコーダー符号化部８０に出力する。
【０１４８】
ステップＳ１１７において、レンジコーダー符号化部８０は、レンジコーダーによりランレングス符号化データＨＤを符号化し、符号化データＩＤ及び付属データＡＴを作成して通信部１３０に出力する。ステップＳ１１７の処理の詳細は、図６に示したレンジコーダー符号化処理と同様である。
【０１４９】
ステップＳ１１９において、通信部１３０は、圧縮画像データとしての符号化データＩＤ及び付属データＡＴを、ネットワーク３００を介して、操縦装置２００に送信する。以降、ステップＳ１０１で順次作成される画像データＡＤに対して、ステップＳ１０３〜ステップＳ１１９の処理が繰り返し実行される。
【０１５０】
なお、変換データＥＤ、近似データＦＤ、ガウス分布データＧＤ、ランレングス符号化データＨＤ、及び符号化データＩＤは、画像データＡＤに基づくデータであるため、画像データと称することもできる。
【０１５１】
以上、図８を参照して説明したように、本実施形態に係る符号化方法によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる。
【０１５２】
次に、図１及び図９を参照して、ロボット１００の電気的構成について説明する。図９は、ロボット１００の電気的構成を示す図である。ロボット１００は、コンピューターとしてのＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）１４０と、カメラ１１０Ａと、通信機１３０Ａと、単数又は複数のモーター１５０とを備える。ＦＰＧＡ１４０はメモリー１４０ａを含む。メモリー１４０ａは、各種データを記憶したり、ＦＰＧＡ１４０のワーク領域として機能したりする。メモリー１４０ａは、例えば、単数又は複数の半導体メモリーである。半導体メモリーは、例えば、フラッシュメモリー、ＲＡＭ、及び／又はＲＯＭである。
【０１５３】
ＦＰＧＡ１４０は、各種演算を実行して、カメラ１１０Ａ、通信機１３０Ａ、及び各モーター１５０を制御する。また、図１に示すように、ＦＰＧＡ１４０は、符号化装置１２０として機能する。メモリー１４０ａは記憶部４０ａとして機能する。カメラ１１０Ａは、ＦＰＧＡ１４０に制御され、撮影部１１０として機能する。カメラ１１０Ａは、例えば、イメージセンサーである。通信機１３０Ａは、ＦＰＧＡ１４０に制御され、通信部１３０として機能する。通信機１３０Ａは、アンテナを有し、ネットワーク３００と無線接続される。モーター１５０は、ロボット１００の機能に応じた数だけ備えられる。モーター１５０は、ＦＰＧＡ１４０に制御され、ロボット１００の被駆動部を駆動する。モーター１５０は、例えば、サーボモーターである。
【０１５４】
次に、図１０を参照して、操縦装置２００の詳細について説明する。図１０は、操縦装置２００を示す機能ブロック図である。操縦装置２００は、通信部２１０と、復号装置２２０と、表示部２３０とを備える。
【０１５５】
通信部２１０は、ネットワーク３００を介して圧縮画像データとしての符号化データＩＤ及び付属データＡＴをロボット１００から受信し、符号化データＩＤ及び付属データＡＴを復号装置２２０に出力する。通信部２１０は、例えば、ネットワーク３００と無線で接続され、無線通信を実行する。本実施形態では、通信部２１０は、ネットワーク３００にアクセスするときの通信プロトコルとして、ＵＤＰ／ＩＰを採用する。復号装置２２０は、符号化データＩＤを復号することによって解凍し、画像データＡＤ＃を表示部２３０に出力する。表示部２３０は、画像データＡＤ＃に基づく画像を表示する。
【０１５６】
以下、具体例を挙げながら、復号装置２２０の詳細について説明する。復号装置２２０は、レンジコーダー復号部１５と、ランレングス復号部２５と、ガウス分布解消部３５と、逆離散ウェーブレット変換部４５（以下、「ＩＤＷＴ部４５」と記載する。）と、分割画像復元部５５と、分割画像結合部６５と、色形式変換部７５とを備える。ＩＤＷＴ部４５は記憶部４５ａを含む。
【０１５７】
レンジコーダー復号部１５について説明する前に、一般的なレンジコーダーによる符号化データの復号について説明する。一般的なレンジコーダーによる復号では、画素値の出現確率Ｃｒｃ及び画素値に対応する下限値Ｌｒを使用して、復号のための計算媒体Ｃｏｄを式（７）により算出するとともに、区間の区間長ＲＮＧを式（８）により算出することによって、区間を次々に細分化する。式（７）及び式（８）において、演算子「＝」は代入を示す。
【０１５８】
Ｃｏｄ＝Ｃｏｄ−ＲＮＧ×Ｌｒ    …（７）
ＲＮＧ＝ＲＮＧ×Ｃｒｃ    …（８）
【０１５９】
以下、図４（ａ）及び図４（ｃ）を参照して説明した一般的なレンジコーダーによる符号化データ「８０１４６４６７８４」を復号する例を説明する。図１１を参照する。図１１は、一般的なレンジコーダーによる符号化データの復号の手順を示す図である。図１１に示す数値は１０進数である。
【０１６０】
図１１に示すように、符号化データ「８０１４６４６７８４」の上位６桁「８０１４６４」を抽出し、計算媒体Ｃｏｄとして扱う。区間長ＲＮＧとして、符号化のときと同じ１００００００を使用する。従って、画素値の出現確率の下限値の予測値（＝Ｃｏｄ／ＲＮＧ）は０．８０１と算出される。そして、図４（ａ）の出現確率テーブルを参照して、予測値「０．８０１」が属する下限値Ｌｒと上限値Ｈｒとにより形成される区間を探索し、探索した区間に対応する画素値を特定する。予測値「０．８０１」が属する区間は、０．６〜１．０の区間である。従って、０．６〜１．０の区間に対応する画素値が４であると特定される。つまり、最初の画素値が復号された。区間を探索して画素値を特定する手法としては、二分探索法等の反復法を使用する。
【０１６１】
以降、式（７）及び式（８）を使用して、計算媒体Ｃｏｄ及び区間長ＲＮＧを更新し、画素値の出現確率の下限値の予測値（＝Ｃｏｄ／ＲＮＧ）を順次算出する。そして、図４（ａ）の出現確率テーブルを参照して、順次算出される予測値に基づいて、画素値を順次特定し、復号を完了する。その結果、画像を構成する１０個の画素の画素値として、４、３、４、２、３、４、１、３、４、２を取得できる。
【０１６２】
例えば、第２番目の画素値を復号するために、計算媒体Ｃｏｄが２０１４６４（＝８０１４６４−１００００００×０．６）と算出され、区間長ＲＮＧが４０００００（＝１００００００×０．４）と算出される。その結果、予測値（＝Ｃｏｄ／ＲＮＧ）が０．５０４と算出される。そして、図４（ａ）の出現確率テーブルを参照して、画素値が３と特定される。
【０１６３】
次に、図１、図１０、及び図１２〜図１５を参照して、レンジコーダー復号部１５について説明する。図１及び図１０に示すように、レンジコーダー復号部１５は、通信部２１０が出力した符号化データＩＤ及び付属データＡＴを受け取る。レンジコーダー復号部１５は、符号化データＩＤごとに、符号化データＩＤを復号し、ランレングス符号化データＨＤをランレングス復号部２５に出力する。符号化データＩＤは、レンジコーダー符号化部８０がレンジコーダーによりランレングス符号化データＨＤを符号化した符号化データである。本実施形態では、図１１を参照して説明した一般的なレンジコーダーによる符号化データの復号の手順と異なる手順を採用する。
【０１６４】
以下、レンジコーダー復号部１５が、図７（ａ）及び図７（ｂ）を参照して説明した符号化データＩＤ（＝０ｘＥ８２８Ｃ）を復号する例を参照しながら説明する。
【０１６５】
図１２は、レンジコーダー復号部１５を示す機能ブロック図である。図１３は、レンジコーダー復号部１５が実行する処理を示すフローチャートである。図１４は、レンジコーダー復号部１５が作成する復号テーブル１７（テーブル）を示す図である。復号テーブル１７は、要素値の出現確率の下限値の予測値の分子ｉＬｒｃと、要素値と、要素値の出現確率の下限値の分子Ｌｒｃとを対応付けたテーブルである。図１５は、レンジコーダー復号部１５による復号の手順を示す図である。図１５において、「０ｘ」は数値が１６進数で表されていることを示す。
【０１６６】
図１２に示すように、レンジコーダー復号部１５は、下限値分子算出部１５ａと、分母指数算出部１５ｂと、テーブル作成部１５ｃと、復号部１５ｄとを含む。
【０１６７】
図１２及び図１３に示すように、レンジコーダー復号部１５は、ステップＳ５１〜ステップＳ７３の処理を実行することによって、符号化データＩＤを復号し、ランレングス符号化データＨＤを出力する。
【０１６８】
すなわち、レンジコーダー復号部１５の下限値分子算出部１５ａは、要素値の出現確率の分子を２の累乗で表したときの指数ｉＣに基づいて、要素値の出現確率の下限値の分子Ｌｒｃを算出する。具体的には、下限値分子算出部１５ａは、式（９）及び式（１０）により、出現確率の下限値の分子Ｌｒｃを算出する。式（９）において、Ｌｒｃｐは前回の対象としての要素値の出現確率の下限値の分子Ｌｒｃを示し、Ｗは、式（１０）で示される。式（１０）において、ｉＣは、前回の対象としての要素値に関連付けられた指数データＥＸが表す指数ｉＣを示す。指数データＥＸは付属データＡＴに含まれている。
【０１６９】
Ｌｒｃ＝Ｌｒｃｐ＋Ｗ    …（９）
Ｗ＝２iC    …（１０）
【０１７０】
例えば、最初の対象としての要素値（＝１）の場合は、Ｌｒｃｐ及びＷの各々には０が入力されるため、下限値の分子Ｌｒｃは０である。次の対象としての要素値（＝２）の場合は、Ｌｒｃｐに前回の対象としての要素値（＝１）に対応する下限値の分子Ｌｒｃ（＝０）が入力され、ｉＣに前回の対象としての要素値（＝１）に対応する指数ｉＣ（＝０）が入力されるため、下限値の分子Ｌｒｃは１である。更に次の対象としての要素値（＝３）の場合は、Ｌｒｃｐに前回の対象としての要素値（＝２）に対応する下限値の分子Ｌｒｃ（＝１）が入力され、ｉＣに前回の対象としての要素値（＝２）に対応する指数ｉＣ（＝１）が入力されるため、下限値の分子Ｌｒｃは３である。更に次の対象としての要素値（＝４）の場合は、Ｌｒｃｐに前回の対象としての要素値（＝３）に対応する下限値の分子Ｌｒｃ（＝３）が入力され、ｉＣに前回の対象としての要素値（＝３）に対応する指数ｉＣ（＝１）が入力されるため、下限値の分子Ｌｒｃは５である。
【０１７１】
ステップＳ５３において、下限値分子算出部１５ａは、付属データＡＴに含まれる各指数データＥＸに関連付けられている各要素値（１〜４）に対して、ステップＳ５１の処理が完了したか否か判定する。下限値分子算出部１５ａは、処理が完了していないと判定した場合（ステップＳ５３でＮｏ）、処理をステップＳ５１に進め、処理が完了したと判定した場合（ステップＳ５３でＹｅｓ）、処理をステップＳ５５に進める。
【０１７２】
本実施形態では、要素値は４種類（１〜４）であるため、ステップＳ５１の処理が４回実行される。その結果、操縦装置２００において、ロボット１００において作成された出現確率テーブル８２（図７（ａ））と同じ出現確率テーブル（以下、「出現確率テーブル８２」と記載する。）が作成される。つまり、下限値分子算出部１５ａは、ステップＳ５１を繰り返すことで、要素値と、出現確率の分子の指数ｉＣと、出現確率の下限値の分子Ｌｒｃとに基づいて、出現確率テーブル８２を算出する。
【０１７３】
ステップＳ５５において、分母指数算出部１５ｂは、要素値の出現確率の分母を２の累乗で表したときの指数ｉＴＲを算出する。具体的な処理は、図６のステップＳ９の処理と同様である。従って、分母指数算出部１５ｂは、指数ｉＴＲ（＝３）を算出する。
【０１７４】
図１２〜図１４に示すように、ステップＳ５７において、テーブル作成部１５ｃは、出現確率の下限値の分子Ｌｒｃに基づいて、出現確率の下限値の予測値の分子ｉＬｒｃと要素値とを対応付けた復号テーブル１７を作成する。具体的には、テーブル作成部１５ｃは、分子ｉＬｒｃを更新しながら、出現確率テーブル８２を参照して、分子ｉＬｒｃの各々に対して、分子Ｌｒｃを対応付け、対応付けた分子Ｌｒｃに基づき要素値を特定し、復号テーブル１７を作成する。
【０１７５】
例えば、テーブル作成部１５ｃは、予測値の分子ｉＬｒｃを、０を最初の値として、０に１を加算して更新する。テーブル作成部１５ｃは、例えば、分子ｉＬｒｃが０の場合、０を示す分子Ｌｒｃが出現確率テーブル８２に存在するため、分子Ｌｒｃに対応する要素値（＝１）を、分子ｉＬｒｃ（＝０）と対応付ける。
【０１７６】
例えば、テーブル作成部１５ｃは、分子ｉＬｒｃが４の場合、４を示す分子Ｌｒｃが出現確率テーブル８２に存在しないため、４より小さく４に最も近似する３を示す分子Ｌｒｃに対応する要素値（＝３）を、分子ｉＬｒｃ（＝４）と対応付ける。なお、例えば、テーブル作成部１５ｃは、分子ｉＬｒｃが４の場合、４を示す分子Ｌｒｃが出現確率テーブル８２に存在しないため、４より大きく４に最も近似する５を示す分子Ｌｒｃに対応する要素値（＝４）を、分子ｉＬｒｃ（＝４）と対応付けてもよい。
【０１７７】
ステップＳ５７の後、復号部１５ｄは、ステップＳ５９〜ステップＳ７１の処理を実行し、要素値を復号するたびに、数直線上に設定された区間を細分化し、符号化データＩＤを復号する。
【０１７８】
すなわち、ステップＳ５９において、復号部１５ｄは、復号のための計算媒体Ｃｏｄｅ、区間の区間長を２の累乗で表したときの指数ｉＲ、及び指数ｉＴＲを使用して、式（１１）により、要素値の出現確率の下限値の予測値の分子ｉＬｒｃを算出する。式（１１）において、演算子「＝」は代入を示す。例えば、図１５に示すように、計算媒体Ｃｏｄｅの初期値として、符号化データＩＤ「０ｘＥ８２８Ｃ」のうちの上位３桁０ｘＥ８２を設定し、指数ｉＲの初期値として、１２を設定する。指数ｉＴＲは３である（ステップＳ５５）。なお、符号化データＩＤの上位３桁を初期値に設定したのは、下限値Ｌｏｗの初期値が３桁だからである（図７（ｂ））。
【０１７９】
ｉＬｒｃ＝Ｃｏｄｅ×２-(iR-iTR)    …（１１）
【０１８０】
具体的には、復号部１５ｄは、式（１１）を演算するときには、２進数で表された計算媒体Ｃｏｄｅを、「ｉＲ−ｉＴＲ」で表されるビット数だけ右にシフトするビット演算を実行して、Ｃｏｄｅ×２-(iR-iTR)を算出する。なお、図１３のステップＳ５９における演算子「＞＞」は、２進数で表された各ビットを右にシフトするビット演算（つまり、シフト演算）を示す。従って、「Ｃｏｄｅ＞＞（ｉＲ−ｉＴＲ）」は、２進数で表される「Ｃｏｄｅ」を、「ｉＲ−ｉＴＲ」で表されるビット数だけ右にシフトするビット演算を実行することを示す。その結果、１０進数で表される「Ｃｏｄｅ」が「２-(iR-iTR)」倍される。
【０１８１】
ステップＳ６１において、復号部１５ｄは、復号テーブル１７を参照して、予測値の分子ｉＬｒｃに基づいて、要素値を決定する。例えば、図１４及び図１５に示すように、予測値の分子ｉＬｒｃが７の場合、復号テーブル１７の分子ｉＬｒｃが示す７に対応する４を、要素値として決定する。要素値を決定することは、要素値を復号することに相当する。
【０１８２】
ステップＳ６３において、復号部１５ｄは、復号された要素値の出現確率の下限値の分子Ｌｒｃ、指数ｉＲ、及び指数ｉＴＲを使用して、式（１２）により、計算媒体Ｃｏｄｅを更新する。式（１２）において、演算子「＝」は代入を示す。例えば、図１５に示すように、計算媒体Ｃｏｄｅの初期値として、０ｘＥ８２を設定し、指数ｉＲの初期値として、１２を設定する。指数ｉＴＲは３である（ステップＳ５５）。
【０１８３】
Ｃｏｄｅ＝Ｃｏｄｅ−Ｌｒｃ×２(iR-iTR)    …（１２）
【０１８４】
具体的には、復号部１５ｄは、式（１２）を演算するときには、２進数で表された分子Ｌｒｃを、「ｉＲ−ｉＴＲ」で表されるビット数だけ左にシフトするビット演算を実行して、Ｌｒｃ×２(iR-iTR)を算出する。なお、図１３のステップＳ６３における演算子「＜＜」は、２進数で表された各ビットを左にシフトするビット演算（つまり、シフト演算）を示す。従って、「Ｌｒｃ＜＜（ｉＲ−ｉＴＲ）」は、２進数で表される「Ｌｒｃ」を、「ｉＲ−ｉＴＲ」で表されるビット数だけ左にシフトするビット演算を実行することを示す。その結果、１０進数で表される「Ｌｒｃ」が「２(iR-iTR)」倍される。
【０１８５】
ステップＳ６５において、復号部１５ｄは、復号された要素値の出現確率の分子を２の累乗で表したときの指数ｉＣ、及び指数ｉＴＲを使用して、式（１３）により、指数ｉＲを更新する。式（１３）において、演算子「＝」は代入を示す。例えば、図１５に示すように、指数ｉＲの初期値として、１２を設定する。
【０１８６】
ｉＲ＝ｉＲ＋ｉＣ−ｉＴＲ    …（１３）
【０１８７】
ステップＳ５９〜ステップＳ６５の処理について具体例を挙げて説明する。図１５に示すように、まず、式（１１）により、最初の分子ｉＬｒｃとして７（＝０ｘＥ８２×２-(12-3)）が算出される。そして、復号テーブル１７を参照して、要素値として４が復号される。次に、式（１２）により、計算媒体Ｃｏｄｅが０ｘ４８２（＝０ｘＥ８２−５×２12-3）に更新され、式（１３）により、指数ｉＲが１１（＝１２＋２−３）に更新される。
【０１８８】
次に、式（１１）により、分子ｉＬｒｃとして４（＝０ｘ４８２×２-(11-3)）が算出される。そして、復号テーブル１７を参照して、要素値として３が復号される。次に、式（１２）により、計算媒体Ｃｏｄｅが０ｘ１８２（＝０ｘ４８２−３×２11-3）に更新され、式（１３）により、指数ｉＲが９（＝１１＋１−３）に更新される。以降、同様の演算により、分子ｉＬｒｃの算出及び要素値の復号、並びに計算媒体Ｃｏｄｅ及び指数ｉＲの更新が実行される。
【０１８９】
ステップＳ６７において、復号部１５ｄは、指数ｉＲが所定値ＭＡＸ以下か否かを判定する。復号部１５ｄは、指数ｉＲが所定値ＭＡＸ以下でないと判定した場合（ステップＳ６７でＮｏ）、処理をステップＳ７１に進め、指数ｉＲが所定値ＭＡＸ以下でると判定した場合（ステップＳ６７でＹｅｓ）、処理をステップＳ６９に進める。本実施形態では、所定値ＭＡＸは、符号化部８０ｅにおける所定値ＭＡＸと同じであり、１より大きい整数である。
【０１９０】
例えば、所定値ＭＡＸを４に設定する。この場合、図１５に示すように、第５番目に復号された要素値（＝３）に対応して算出された指数ｉＲは４であるため、処理はステップＳ６９に進む。
【０１９１】
ステップＳ６９において、復号部１５ｄは、計算媒体Ｃｏｄｅに所定数２Cを掛け合わせるとともに（２C倍）、指数ｉＲで表される区間長（＝２iR）に所定数２Cを掛け合わせる（２C倍）。本実施形態では、所定数２Cの指数Ｃは０より大きい整数である。具体的には、区間長（＝２iR）に所定数２Cを掛け合わせる演算を実行する代わりに、指数ｉＲに指数Ｃを加算して、指数ｉＲを更新することによって区間を拡張する。
【０１９２】
例えば、所定数２Cを２8に設定する。この場合、図１５に示すように、第５番目に復号された要素値（＝３）に対応して算出された計算媒体Ｃｏｄｅ（＝０ｘ００Ａ）を２8倍するとともに、指数ｉＲ（＝４）で表される区間長（＝２4）を２8倍することによって区間を拡張する。従って、計算媒体Ｃｏｄｅは、０ｘＡ００になり、指数ｉＲは１２になる。ただし、符号化のときの桁上げ（図６のステップＳ１７、図７（ｂ））に対応して、計算媒体Ｃｏｄｅの下位２桁の「００」に代えて、符号化データＩＤの下位２桁の「８Ｃ」を「Ａ」に付加する。
【０１９３】
ステップＳ７１において、復号部１５ｄは、全ての要素値の復号が完了したか否かを判定する。復号部１５ｄは、処理が完了していないと判定した場合（ステップＳ７１でＮｏ）、処理をステップＳ５９に進め、処理が完了したと判定した場合（ステップＳ７１でＹｅｓ）、処理をステップＳ７３に進める。本実施形態では、１０個の要素値を復号するため、ステップＳ５９〜ステップＳ７１の処理が１０回実行される。
【０１９４】
ステップＳ７３において、復号部１５ｄは、複数の要素データＥＬをランレングス符号化データＨＤとして、ランレングス復号部２５に出力し、処理を終了する。複数の要素データＥＬの各々は、復号した要素値を表す。
【０１９５】
以上、図１０、図１２、及び図１３〜図１５を参照して説明したように、本実施形態に係る復号装置２２０によれば、レンジコーダー復号部１５は、予測値の分子ｉＬｒｃと要素値と対応付けた復号テーブル１７を作成する。従って、予測値の分子ｉＬｒｃを算出し、復号テーブル１７を参照することにより、容易に要素値を決定できる。従って、反復法等の負荷の大きい処理が要求されない。その結果、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データＩＤを復号するときの処理速度を向上させることができる。例えば、操縦装置２００が高速なコンピューターを搭載することが困難な場合であっても、レンジコーダーによる符号化データＩＤを復号するときの処理速度を向上させることができる。
【０１９６】
また、本実施形態によれば、式（１１）〜式（１３）を使用して、予測値の分子ｉＬｒｃを算出するとともに、計算媒体Ｃｏｄｅ及び区間長を表す指数ｉＲを更新することによって、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化データＩＤを復号するときの処理速度を更に向上させることができる。
【０１９７】
また、本実施形態によれば、復号の際に使用する式（１１）には、除算が含まれず、乗算は、２の累乗（つまり、２-(iR-iTR)）と整数（つまり、Ｃｏｄｅ）との乗算になる。その結果、２進数のシフト演算により、予測値の分子ｉＬｒｃを算出できる。また、復号の際に使用する式（１２）には、除算が含まれず、乗算は、２の累乗（つまり、２(iR-iTR)）と整数（つまり、Ｌｒｃ）との乗算になる。その結果、２進数のシフト演算と減算とにより、計算媒体Ｃｏｄｅを算出できる。さらに、復号の際に使用する式（１３）には、除算及び乗算が含まれず、和算と減算とにより、指数ｉＲを算出できる。
【０１９８】
式（１１）〜式（１３）を、シフト演算と和算と減算とで実行することにより、乗算及び／又は除算を実行する場合と比較して、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化データＩＤの復号を高速に実行できる。従って、搭載するコンピューターに制約のある環境下においても、符号化データＩＤを復号するときの処理速度を向上させることができる。また、レンジコーダー復号部１５は、浮動小数点数を使用せず、整数値だけを使用するため、更に処理を高速化できる。
【０１９９】
次に、図１０及び図１６を参照して、操縦装置２００が実行する復号方法について、ランレングス復号部２５、ガウス分布解消部３５、ＩＤＷＴ部４５、分割画像復元部５５、分割画像結合部６５、及び色形式変換部７５を含めて説明する。図１６は、操縦装置２００が実行する復号方法を示すフローチャートである。
【０２００】
図１０及び図１６に示すように、ステップＳ２０１において、操縦装置２００の通信部２１０は、符号化データＩＤ及び付属データＡＴをロボット１００から受信し、符号化データＩＤ及び付属データＡＴを復号装置２２０のレンジコーダー復号部１５に出力する。
【０２０１】
ステップＳ２０３において、レンジコーダー復号部１５は、符号化データＩＤごとに、符号化データＩＤを復号し、ランレングス符号化データＨＤをランレングス復号部２５に出力する。ステップＳ２０３の処理の詳細は、図１３に示したレンジコーダー復号処理と同様である。
【０２０２】
ステップＳ２０５において、ランレングス復号部２５は、ランレングス符号化データＨＤごとに、ランレングス符号化データＨＤに対して、ランレングス符号化部７０（図１）の処理と逆の処理（ランレングス復号）を実行して、ランレングス符号化データＨＤを復号する。そして、ランレングス復号部２５は、ガウス分布データＧＤをガウス分布解消部３５に出力する。
【０２０３】
ステップＳ２０７において、ガウス分布解消部３５は、ガウス分布データＧＤごとに、ガウス分布データＧＤに対して、ガウス分布作成部６０（図１）の処理と逆の処理を実行して、ガウス分布データＧＤのガウス分布を解消する。そして、ガウス分布解消部３５は、近似データＦＤを変換データＥＤ＃としてＩＤＷＴ部４５に出力する。なお、変換データＥＤ＃は、変換データＥＤ（図１）に対応するが、ゼロ変換部５０（図１）によって０に近似する係数データが０に変換されている点で、変換データＥＤと完全には一致していない。
【０２０４】
ステップＳ２０９において、ＩＤＷＴ部４５は、変換データＥＤ＃ごとに、変換データＥＤ＃に対して、ＤＷＴ７０（図１）の処理と逆の処理（逆離散ウェーブレット変換）を実行して、変換データＥＤ＃を画像データＤＤ＃に変換し、画像データＤＤ＃を分割画像復元部５５に出力する。この場合、ＩＤＷＴ部４５は、分解レベル２の変換データＥＤ＃を、分解レベル１を経由することなく、分解レベル０の画像データＤＤ＃に変換する。なお、画像データＤＤ＃は、画像データＤＤ（図１）に対応し、画像データＤＤと同じデータ形式を有する。
【０２０５】
具体的には、記憶部４５ａは、記憶部４０ａ（図１）が記憶している所定数のＤＷＴ用乗算値と同じ所定数の乗算値（以下、「ＩＤＷＴ用乗算値」と記載する。）を記憶している。従って、ＩＤＷＴ部４５は、複数のＩＤＷＴ用乗算値に対して和算及び／又は減算を実行することによって、乗算及び除算を実行することなく、変換データＥＤ＃に対して逆離散ウェーブレット変換を実行する。なお、変換データＥＤ＃は、画像データＡＤに基づくデータであるため、画像データと称することもできる。
【０２０６】
ステップＳ２１１において、分割画像復元部５５は、画像データＤＤ＃ごとに、画像データＤＤ＃に対して、色成分結合部３０（図１）と逆の処理を実行して、画像データＤＤ＃から分割画像データＣＤ＃を復元する。そして、分割画像復元部５５は、分割画像データＣＤ＃を分割画像結合部６５に出力する。本実施形態では、６４画素×８０画素の分割画像データＣＤ＃が復元される。なお、分割画像データＣＤ＃は、分割画像データＣＤ（図１）に対応し、分割画像データＣＤと同じデータ形式を有する。
【０２０７】
ステップＳ２１３において、分割画像結合部６５は、複数の分割画像データＣＤ＃に対して、画像分割部２０（図１）と逆の処理を実行して、複数の分割画像データＣＤ＃を結合した画像データＢＤ＃を作成する。そして、分割画像結合部６５は、画像データＢＤ＃を色形式変換部７５に出力する。本実施形態では、５×３個の分割画像データＣＤ＃（６４画素×８０画素）が結合され、３２０画素×２４０画素の画像データＢＤ＃が作成される。なお、画像データＢＤ＃は、画像データＢＤ（図１）に対応し、画像データＢＤと同じデータ形式を有する。
【０２０８】
ステップＳ２１５において、色形式変換部７５は、画像データＢＤ＃の色形式を、ＹＵＶ４１１形式からＲＧＢ形式に変換し、画像データＡＤ＃を表示部２３０に出力する。なお、画像データＡＤ＃は、画像データＡＤ（図１）に対応し、画像データＡＤと同じデータ形式を有する。ステップＳ２０３〜ステップＳ２１５の実行によって、符号化データＩＤが復号されて解凍され、撮影部１１０（図１）が出力した画像データＡＤに対応する画像データＡＤ＃が作成された。
【０２０９】
ステップＳ２１７において、表示部２３０は、画像データＡＤ＃に基づく画像を表示する。操縦者は、順次出力される画像データＡＤ＃に基づく画像（つまり、動画）を見ながら、操縦装置２００を操作して、ロボット１００を操縦する。
【０２１０】
以上、図１０及び図１６を参照して説明したように、本実施形態に係る復号方法によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データＩＤを復号するときの処理速度を向上させることができる。
【０２１１】
次に、図１０及び図１７を参照して、操縦装置２００の電気的構成について説明する。図１７は、操縦装置２００の電気的構成を示す図である。図１７に示すように、操縦装置２００は、コンピューターとしてのＦＰＧＡ２４０と、通信機２１０Ａと、ディスプレー２３０Ａと、入力装置２５０とを備える。ＦＰＧＡ２４０はメモリー２４０ａを含む。メモリー２４０ａは、各種データを記憶したり、ＦＰＧＡ２４０のワーク領域として機能したりする。メモリー２４０ａとして、メモリー１４０ａ（図９）と同様の構成を採用できる。
【０２１２】
ＦＰＧＡ２４０は、各種演算を実行して、通信機２１０Ａ、ディスプレー２３０Ａ、及び入力装置２５０を制御する。また、図１０に示すように、ＦＰＧＡ２４０は、復号装置２２０として機能する。メモリー２４０ａは記憶部４５ａとして機能する。通信機２１０Ａは、ＦＰＧＡ２４０に制御され、通信部２１０として機能する。通信機２１０Ａは、アンテナを有し、ネットワーク３００と無線接続される。ディスプレー２３０Ａは、ＦＰＧＡ２４０に制御され、表示部２３０として機能する。ディスプレー２３０Ａは、例えば、液晶ディスプレーである。入力装置２５０は、操縦者と操縦装置２００とのインターフェースであり、操縦者の命令をＦＰＧＡ２４０に入力する。入力装置２５０は、例えば、スティック、ハンドル、ダイヤル、スイッチ、及び／又はスライダーである。
【０２１３】
以上、図１〜図３、図５〜図１０、及び図１２〜図１７を参照して説明したように、本実施形態に係るロボットシステム１によれば、符号化装置１２０の画像分割部２０の処理（ステップＳ１０５）からレンジコーダー符号化部８０の処理（ステップＳ１１７）まで、さらに、復号装置２２０のレンジコーダー復号部１５の処理（ステップＳ２０３）から分割画像結合部６５の処理（ステップＳ２１３）までは、整数だけを使用し、乗算と除算とを実行していない。つまり、画像分割部２０の処理からレンジコーダー符号化部８０の処理までと、レンジコーダー復号部１５の処理から分割画像結合部６５の処理までとにおいて、整数だけを使用するとともに、和算、減算、及びシフト演算だけを実行して、符号化及び復号を行っている。従って、符号化及び復号化の処理を高速化できる。
【０２１４】
（変形例）
図１及び図１０を参照して、本発明の実施形態の変形例に係るロボットシステム１について説明する。変形例に係るロボットシステム１では、主に、画像分割部２０及び分割画像結合部６５が、それぞれ、本発明の実施形態（本実施形態）に係る画像分割部２０及び分割画像結合部６５と異なる。以下、変形例が本実施形態と異なる点を主に説明する。
【０２１５】
画像分割部２０が画像データＢＤを第１方向ｘ（変形例では、水平方向ｘ）に２分割し、２個の分割画像データＣＤを作成する例について説明する。画像データＢＤの解像度は、１２８画素×８０画素であり、分割画像データＣＤの解像度は、６４画素×８０画素である。２個の分割画像データＣＤのうちの一方の分割画像データＣＤを「第１分割画像データＣＤＬ」と記載し、他方の分割画像データＣＤを「第２分割画像データＣＤＲ」と記載する。また、第１分割画像データＣＤＬを符号化後に復号した分割画像データＣＤ＃を第１復号分割画像データＣＤＬ＃と記載し、第２分割画像データＣＤＲを符号化後に復号した分割画像データＣＤ＃を第２復号分割画像データＣＤＲ＃と記載する。
【０２１６】
画像分割部２０に出力される画像データＢＤでは、１２８画素×８０画素の画素データは、１２８列×８０行のマトリクス状に配置されている。画像データＢＤでは、各行に１２８個の画素データが第１方向ｘに沿って配置されており、各列に８０個の画素データが第２方向ｙ（変形例では、垂直方向ｙ）に沿って配置されている。第１方向ｘに沿って配置された１２８個の画素データの第１座標ｘ（変形例では、水平座標ｘ）を、それぞれ、０〜１２７に設定する。また、第２方向ｙに沿って配置された８０個の画素データの第２座標ｙ（変形例では、垂直座標ｙ）を、それぞれ、０〜７９に設定する。
【０２１７】
画像分割部２０は、第２分割画像データＣＤＲが第１方向ｘに沿って所定画素数ＰＮだけ第１分割画像データＣＤＬと重複するように、画像データＢＤから、第２分割画像データＣＤＲを分割する。
【０２１８】
ＤＷＴ部４０は、第１分割画像データＣＤＬ及び第２分割画像データＣＤＲの各々に対して、離散ウェーブレット変換を実行する。一方、ＩＤＷＴ部４５は、第１分割画像データＣＤＬに対応する変換データＥＤ＃及び第２分割画像データＣＤＲに対応する変換データＥＤ＃に対して、逆離散ウェーブレット変換を実行し、それぞれに対応する画像データＤＤ＃を出力する。
【０２１９】
分割画像結合部６５は、画像データＤＤ＃に基づく第２復号分割画像データＣＤＲ＃のうち、画像データＤＤ＃に基づく第１復号分割画像データＣＤＬ＃と重複している画素データを破棄した後、第１復号分割画像データＣＤＬ＃と第２復号分割画像データＣＤＲ＃とを結合して、画像データＢＤ＃を作成する。
【０２２０】
例えば、画像分割部２０は、画像データＢＤのうち、第１座標ｘが０〜６３までの画素データを第１分割画像データＣＤＬとして取得する。また、画像分割部２０は、所定画素数ＰＮを２に設定し、画像データＢＤのうち、第１座標ｘが６２〜１２５までの画素データを第２分割画像データＣＤＲとして取得する。従って、第２分割画像データＣＤＲのうち、第１座標ｘが６２及び６３の画素データが、第１分割画像データＣＤＬと重複している。
【０２２１】
例えば、分割画像結合部６５は、第２復号分割画像データＣＤＲ＃のうち、第１座標ｘが６２及び６３の画素データを破棄する。その後、分割画像結合部６５は、第１復号分割画像データＣＤＬ＃と、第２復号分割画像データＣＤＲ＃とを結合して、画像データＢＤ＃を作成する。
【０２２２】
以上、本実施形態の変形例によれば、画像分割部２０を設けているため、所定画素数ＰＮだけ第１分割画像データＣＤＬと重複する第２分割画像データＣＤＲに対して離散ウェーブレット変換が実行されるとともに、そのような第２分割画像データＣＤＲに基づく変換データＥＤ＃に対して逆離散ウェーブレット変換が実行される。そして、分割画像結合部６５によって、第２復号分割画像データＣＤＲ＃のうち第１復号分割画像データＣＤＬ＃と重複している画素データを破棄した後、第１復号分割画像データＣＤＬ＃と第２復号分割画像データＣＤＲ＃とが結合される。その結果、第１復号分割画像データＣＤＬ＃と第２復号分割画像データＣＤＲ＃との境界領域の画質の劣化を抑制できる。例えば、第１復号分割画像データＣＤＬ＃と第２復号分割画像データＣＤＲ＃との境界領域に発生する可能性のある筋状の画質の劣化を抑制できる。
【０２２３】
次に、本発明が実施例に基づき具体的に説明されるが、本発明は以下の実施例によって限定されない。
【実施例】
【０２２４】
本発明の実施例では、図１に示す符号化装置１２０と図１０に示す復号装置２２０とをソフトウェアにより構築した。プログラム言語として、Ｃ言語を採用した。また、原画像を符号化装置１２０によって符号化し、符号化データＩＤを作成した。さらに、符号化データＩＤを復号装置２２０によって復号し、復号画像を作成した。
【０２２５】
（実施例１）
図１、図１０、図１８（ａ）〜図１８（ｄ）を参照して、本発明の実施例１について説明する。図１８（ａ）は、実施例１に係る符号化装置１２０による符号化対象の原画像ＳＡ０を示す図である。原画像ＳＡ０の解像度は１２８画素×８０画素であった。原画像ＳＡ０はカラー画像であった。
【０２２６】
符号化装置１２０の画像分割部２０は、色形式を変換した後の原画像ＳＡ０を２枚の画像（以下、「分割画像」と記載する。）に分割した。分割画像の各々の解像度は、６４画素×８０画素であった。そして、各分割画像に対して、色成分結合部３０、ＤＷＴ部４０、ゼロ変換部５０、ガウス分布作成部６０、ランレングス符号化部７０、及びレンジコーダー符号化部８０による符号化を実行し、符号化データＩＤを作成した。そして、この符号化データＩＤを、復号装置２２０によって復号し、復号画像を作成した。
【０２２７】
図１８（ｂ）〜図１８（ｄ）は、それぞれ、実施例１に係る復号装置２２０による復号画像ＳＡ１〜復号画像ＳＡ３を示す図である。
【０２２８】
図１８（ｂ）に示すように、復号画像ＳＡ１の画質は優良である。復号画像ＳＡ１では、ゼロ変換部５０によって、−１以上１（＝２1−１）以下の係数値が０に変換された（Ｂ＝１）。つまり、ゼロ変換部５０は、１ビットだけ右にシフトするビット演算を実行した。
【０２２９】
図１８（ｃ）に示すように、復号画像ＳＡ２の画質は優良である。復号画像ＳＡ２では、ゼロ変換部５０によって、−３以上３（＝２2−１）以下の係数値が０に変換された（Ｂ＝２）。つまり、ゼロ変換部５０は、２ビットだけ右にシフトするビット演算を実行した。
【０２３０】
図１８（ｄ）に示すように、復号画像ＳＡ１及び復号画像ＳＡ２の画質よりも多少の劣化が観測されるが、復号画像ＳＡ３の画質は良好であった。復号画像ＳＡ３では、ゼロ変換部５０によって、−７以上７（＝２2−１）以下の係数値が０に変換された（Ｂ＝３）。つまり、ゼロ変換部５０は、３ビットだけ右にシフトするビット演算を実行した。
【０２３１】
画像の圧縮の程度を検討した。原画像ＳＡ０のデータサイズは、３０７２０バイトであった。復号画像ＳＡ１を復号する前における符号化データＩＤのサイズは、４２９３バイトであった。１分割画像当たり、約２１００バイトであった。復号画像ＳＡ２を復号する前における符号化データＩＤのサイズは、２６１８バイトであった。１分割画像当たり、約１３００バイトであった。復号画像ＳＡ３を復号する前における符号化データＩＤのサイズは、２００９バイトであった。１分割画像当たり、約１０００バイトであった。最も圧縮されていたのが復号画像ＳＡ３であり、次に圧縮されていたのが復号画像ＳＡ２であり、次に圧縮されていたのが復号画像ＳＡ１であった。
【０２３２】
データ送信について検討した。無線ＬＡＮにおいて、１パケット当たりに送信できるデータサイズは、一般的に、１５００バイトであった。従って、復号画像ＳＡ２を復号する前における符号化データＩＤ（１分割画像に対応）及び復号画像ＳＡ３を復号する前における符号化データＩＤ（１分割画像に対応）の各々を、１パケットで送信可能なことが確認できた。また、符号化データＩＤの復号に必要な付属データＡＴを、符号化データＩＤとともに、１パケットで送信可能なことが確認できた。
【０２３３】
（実施例２）
図１９（ａ）〜図１９（ｄ）を参照して、本発明の実施例２について説明する。実施例２では、実施例１に係る復号画像ＳＡ２を復号する前における符号化データＩＤの作成過程について検討した。原画像は、図１８（ａ）に示す原画像ＳＡ０であった。
【０２３４】
図１９（ａ）は、実施例２に係る符号化装置１２０のＤＷＴ部４０が作成した変換データＥＤの表す画像ＷＩＬを示す図である。この画像ＷＩＬは、原画像ＳＡ０を２分割したうちの一方の分割画像に対応していた。画像ＷＩＬは、低周波領域ＬＡ１（本実施形態の低周波成分Ｌ１に相当）と、高周波領域ＬＢ１（本実施形態の高周波成分Ｈ２に相当）とを含んだ。低周波領域ＬＡ１には、原画像ＳＡ０に含まれる女性の像のうちの左半分がぼんやりと含まれていた。
【０２３５】
図１９（ｂ）は、実施例２に係る符号化装置１２０のゼロ変換部５０が作成した近似データＦＤの表す画像ＡＩＬを示す図である。この画像ＡＩＬは、画像ＷＩＬから作成された。画像ＡＩＬは、低周波領域ＬＡ１に対応する低周波領域ＬＡ２（本実施形態の低周波成分Ｌ１に相当）と、高周波領域ＬＢ１に対応する高周波領域ＬＢ２（本実施形態の高周波成分Ｈ３に相当）とを含んだ。図１９（ｂ）において、黒色の領域は、係数値が０の領域を示した。ゼロ変換部５０によって画像ＷＩＬの高周波領域ＬＢ１の大部分が０に変換されていることが確認できた。
【０２３６】
図１９（ｃ）は、実施例２に係る符号化装置１２０のＤＷＴ部４０が作成した変換データＥＤの表す画像ＷＩＲを示す図である。この画像ＷＩＲは、原画像ＳＡ０を２分割したうちの他方の分割画像に対応していた。画像ＷＩＲは、低周波領域ＲＡ１（本実施形態の低周波成分Ｌ１に相当）と、高周波領域ＲＢ１（本実施形態の高周波成分Ｈ２に相当）とを含んだ。低周波領域ＲＡ１には、原画像ＳＡ０に含まれる女性の像のうちの右半分がぼんやりと含まれていた。
【０２３７】
図１９（ｄ）は、実施例２に係る符号化装置１２０のゼロ変換部５０が作成した近似データＦＤの表す画像ＡＩＲを示す図である。この画像ＡＩＲは、画像ＷＩＲから作成された。画像ＡＩＲは、低周波領域ＲＡ１に対応する低周波領域ＲＡ２（本実施形態の低周波成分Ｌ１に相当）と、高周波領域ＲＢ１に対応する高周波領域ＲＢ２（本実施形態の高周波成分Ｈ３に相当）とを含んだ。図１９（ｄ）において、黒色の領域は、係数値が０の領域を示した。ゼロ変換部５０によって画像ＷＩＲの高周波領域ＲＢ１の大部分が０に変換されていることが確認できた。
【０２３８】
以上、図面を参照しながら本発明の実施形態及び実施例について説明した。但し、本発明は、上記の実施形態及び実施例に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能である（例えば、下記に示す（１）〜（６））。また、上記の実施形態に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明の形成が可能である。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。図面は、理解しやすくするために、それぞれの構成要素を主体に模式的に示しており、図示された各構成要素の厚み、長さ、個数、間隔等は、図面作成の都合上から実際とは異なる場合もある。また、上記の実施形態で示す各構成要素の材質、形状、寸法等は一例であって、特に限定されるものではなく、本発明の効果から実質的に逸脱しない範囲で種々の変更が可能である。
【０２３９】
（１）図９及び図１７を参照して説明したように、符号化装置１２０及び復号装置２２０を実現するコンピューターとして、ＦＰＧＡ１４０及びＦＰＧＡ２４０を例示した。ただし、符号化装置１２０及び復号装置２２０を実現するコンピューターは、ＦＰＧＡに限定されず、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、又はプロセッサーでもよい。
【０２４０】
また、符号化装置１２０及び復号装置２２０をハードウェアにより実現したが、ソフトウェアにより実現してもよいし、ハードウェアとソフトウェアとにより実現してもよい。例えば、ロボット１００に、図６のステップＳ１〜ステップＳ２１及び図８のステップＳ１０３〜ステップＳ１１７をコンピューターに実行させるコンピュータープログラムを実装して、コンピューターにコンピュータープログラムを実行させることによって、符号化装置１２０を実現できる。コンピュータープログラムは、ロボット１００に実装されたメモリーのような記憶媒体に記憶される。例えば、操縦装置２００に、図１３のステップＳ５１〜ステップＳ７３及び図１６のステップＳ２０３〜ステップＳ２１５をコンピューターに実行させるコンピュータープログラムを実装して、コンピューターにコンピュータープログラムを実行させることによって、復号装置２２０を実現できる。コンピュータープログラムは、操縦装置２００に実装されたメモリーのような記憶媒体に記憶される。
【０２４１】
さらに、図１〜図３、図５〜図１０、及び図１２〜図１７を参照して説明したように、本実施形態に係るロボットシステム１では、画像分割部２０の処理からレンジコーダー符号化部８０の処理までと、レンジコーダー復号部１５の処理から分割画像結合部６５の処理までとにおいて、整数だけを使用するとともに、和算、減算、及びシフト演算だけを実行している。
【０２４２】
従って、符号化の結果及び復号の結果が、符号化装置１２０及び復号装置２２０を実現するコンピューターの性能、ＣＰＵのような演算器の種別、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の種類、及びコンパイラーの種類に依存しない。また、符号化の結果及び復号の結果は、符号化装置１２０及び復号装置２２０を実現するＣＰＵ、ＭＣＵ、ＦＰＧＡ（１４０、２４０）、ＡＳＩＣ、及びパーソナルコンピューター等、ハードウェアに依存しない。従って、例えば、ＦＰＧＡ（１４０、２４０）のハードウェア記述言語（例えば、ＶＨＤＬ）でプログラムを作成する際には、Ｃ言語での計算結果を参考にしながら、一歩ずつ確実にプログラム開発が可能である。
【０２４３】
また、記憶装置としてのメモリー１４０ａはＦＰＧＡ１４０の内部に配置され、記憶装置としてのメモリー２４０ａはＦＰＧＡ２４０の内部に配置された。ただし、記憶装置は、ＦＰＧＡ１４０及びＦＰＧＡ２４０の各々の外部に配置してもよいし、ＦＰＧＡ１４０及びＦＰＧＡ２４０の各々の内部と外部とに配置されてもよい。
【０２４４】
（２）図１を参照して説明したように、符号化対象の画像データの例として、ＱＶＧＡの画像データＡＤについて説明したが、符号化対象の画像データの解像度及びサイズは特に限定されない。例えば、ＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）の画像データＡＤを符号化することもできる。ＶＧＡは、６４０画素×４８０画素の解像度を示す。この場合、画像分割部２０は、画像データＡＤを６０分割し、６０個の６４画素×８０画素の分割画像データＣＤを作成する。また、画像データＡＤは、カラー画像を示す画像データであってもよいし、白黒画像データを示す画像データであってもよい。
【０２４５】
（３）図２を参照して説明した色成分結合部３０は、Ｙ成分Ｉ１とＵ成分Ｉ２とＶ成分Ｉ３とを結合し、Ｍ画素×（Ｎ＋Ｌ）画素の画像データＤＤを生成して、ＤＷＴ部４０に出力してもよい。
【０２４６】
（４）ロボット１００は、例えば、魚型ロボットのような水中を移動するロボット、橋梁又は壁のような高所を移動するロボット、陸上を移動するロボット、又は空中を飛行するロボットである。また、符号化装置１２０は、ロボット１００に限らず、遠隔操縦される様々な機器に搭載できる。例えば、符号化装置１２０は、ラジオコントロールされる模型船舶、模型自動車、又は模型飛行機に搭載できる。
【０２４７】
（５）図１を参照して説明したＤＷＴ部４０、ゼロ変換部５０、ランレングス符号化部７０、及びレンジコーダー符号化部８０の各々は、単独で符号化を実行することもできる。この場合は、ＤＷＴ部４０に対応してＩＤＷＴ４５が用意され、ランレングス符号化部７０に対応してランレングス復号部２５が用意され、レンジコーダー符号化部８０に対応してレンジコーダー復号部１５が用意される。
【０２４８】
（６）未来社会において、社会インフラ等を小型ロボットの遠隔操縦で行う時代が訪れる可能性が高い。しかし、社会インフラ点検用等、落下の可能性を有する環境で用いるロボットにおいては、ロボット取得画像と操縦用画像の時間差を極力短くする必要がある。本発明の符号化技術は、移動ロボットの脆弱な演算装置に特に好適であり、操縦者の手元に送られる遠隔操縦用画像のリアルタイム性を向上させることができる。
【産業上の利用可能性】
【０２４９】
本発明は、符号化装置、復号装置、符号化復号装置、符号化方法、及び復号方法に関するものであり、産業上の利用可能性を有する。
【符号の説明】
【０２５０】
１    ロボットシステム
１０    色形式変換部
１５    レンジコーダー復号部
１５ａ    下限値分子算出部
１５ｂ    分母指数算出部
１５ｃ    テーブル作成部
１５ｄ    復号部
２０    画像分割部
２５    ランレングス復号部
３０    色成分結合部
３５    ガウス分布解消部
４０    離散ウェーブレット変換部
４５    逆離散ウェーブレット変換部
４５ａ    記憶部
４０ａ    記憶部
５０    ゼロ変換部
５５    分割画像復元部
６０    ガウス分布作成部
６５    分割画像結合部
７０    ランレングス符号化部
７５    色形式変換部
８０    レンジコーダー符号化部
８０ａ    出現確率算出部
８０ｂ    分子指数算出部
８０ｃ    下限値分子算出部
８０ｄ    分母指数算出部
８０ｅ    符号化部
１００    ロボット
１１０    撮影部
１２０    符号化装置
１３０    通信部
２００    操縦装置
２１０    通信部
２２０    復号装置
２３０    表示部
３００    ネットワーク
【図１】
2016171473.tif 000007
【図２】
2016171473.tif 000008
【図３】
2016171473.tif 000009
【図４】
2016171473.tif 000010
【図５】
2016171473.tif 000011
【図６】
2016171473.tif 000012
【図７】
2016171473.tif 000013
【図８】
2016171473.tif 000014
【図９】
2016171473.tif 000015
【図１０】
2016171473.tif 000016
【図１１】
2016171473.tif 000017
【図１２】
2016171473.tif 000018
【図１３】
2016171473.tif 000019
【図１４】
2016171473.tif 000020
【図１５】
2016171473.tif 000021
【図１６】
2016171473.tif 000022
【図１７】
2016171473.tif 000023
【図１８】
2016171473.tif 000024
【図１９】
2016171473.tif 000025