TOP > 国内特許検索 > 符号化装置、復号装置、符号化復号装置、符号化方法、及び復号方法 > 明細書

明細書 :符号化装置、復号装置、符号化復号装置、符号化方法、及び復号方法

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2016-171473 (P2016-171473A)
公開日 平成28年9月23日(2016.9.23)
発明の名称または考案の名称 符号化装置、復号装置、符号化復号装置、符号化方法、及び復号方法
国際特許分類 H04N   1/41        (2006.01)
H04N  19/63        (2014.01)
H04N  19/91        (2014.01)
H03M   7/40        (2006.01)
FI H04N 1/41 Z
H04N 19/63
H04N 19/91
H03M 7/40
請求項の数または発明の数 12
出願形態 OL
全頁数 42
出願番号 特願2015-050181 (P2015-050181)
出願日 平成27年3月13日(2015.3.13)
発明者または考案者 【氏名】高田 洋吾
出願人 【識別番号】506122327
【氏名又は名称】公立大学法人大阪市立大学
個別代理人の代理人 【識別番号】100168583、【弁理士】、【氏名又は名称】前井 宏之
審査請求 未請求
テーマコード 5C159
5C178
5J064
Fターム 5C159KK61
5C159MA00
5C159MA41
5C159MC38
5C159ME05
5C159PP01
5C159PP04
5C159PP14
5C159SS08
5C159SS26
5C159UA02
5C159UA05
5C178AC07
5C178BC11
5C178BC21
5C178CC53
5C178CC69
5C178DC60
5C178DC71
5J064AA03
5J064BA08
5J064BB05
5J064BC28
5J064BD04
5J064CC09
要約 【課題】搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる符号化装置を提供する。
【解決手段】符号化装置120は、レンジコーダーによりランレングス符号化データHDを符号化するレンジコーダー符号化部80を備える。レンジコーダー符号化部80は、分子指数算出部80bと、分母指数算出部80dとを含む。分子指数算出部80bは、ランレングス符号化データHDを構成する複数の要素データELの各々が表す要素値ごとに、要素値の出現確率の分子を2の累乗で表したときの指数iCを算出し、要素値に指数iCを対応付ける。分母指数算出部80dは、出現確率の分母を2の累乗で表したときの指数iTRを算出する。
【選択図】図5
特許請求の範囲 【請求項1】
レンジコーダーにより画像データを符号化するレンジコーダー符号化部を備え、
前記レンジコーダー符号化部は、
前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける分子指数算出部と、
前記出現確率の分母を2の累乗で表したときの指数を算出する分母指数算出部と
を備える、符号化装置。
【請求項2】
前記要素値ごとに、前記要素値の前記出現確率の下限値の分子を算出する下限値分子算出部をさらに備え、
前記分子指数算出部は、前記要素値の前記出現確率の前記分子が2の累乗でない場合、2の累乗でない前記分子に代えて、前記分子よりも小さく前記分子に最も近似する2の累乗又は前記分子よりも大きく前記分子に最も近似する2の累乗を、前記要素値の前記出現確率の分子として設定し、前記設定した分子を2の累乗で表したときの指数を前記要素値に対応付け、
前記分母指数算出部は、前記要素値の各々の前記出現確率の前記下限値の前記分子のうちの最大値よりも大きく、前記最大値に最も近似する2の累乗を、前記出現確率の前記分母として設定する、請求項1に記載の符号化装置。
【請求項3】
前記レンジコーダー符号化部は、
前記複数の要素データのうちの処理対象の要素データを更新するたびに、数直線上に設定された区間を細分化し、前記画像データを符号化する符号化部をさらに含み、
前記符号化部は、式(1)により、前記区間の下限値Lowを更新し、式(2)により、前記区間の区間長を2の累乗で表したときの指数iRを更新し、
Lrcは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記下限値の前記分子を示し、
iTRは、前記出現確率の前記分母を2の累乗で表したときの前記指数を示し、
iCは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数を示す、請求項2に記載の符号化装置。
Low=Low+Lrc×2(iR-iTR) …(1)
iR=iR+iC-iTR …(2)
【請求項4】
前記レンジコーダーによる符号化を実行する前に、前記画像データに対して離散ウェーブレット変換を実行し、前記離散ウェーブレット変換が実行された前記画像データを第1変換データとして出力する離散ウェーブレット変換部をさらに備え、
前記離散ウェーブレット変換部は、所定数の乗算値を記憶した記憶部を含み、
前記所定数の乗算値は、離散ウェーブレット変換のための数列を構成する各数値と前記画像データを構成する各画素データが取り得る各数値との乗算値を含み、
前記離散ウェーブレット変換部は、前記画像データを構成する前記各画素データが表す画素値に基づいて、前記乗算値を取得し、複数の前記乗算値に対して和算及び/又は減算を実行することによって、前記画像データに対して前記離散ウェーブレット変換を実行する、請求項1から請求項3のいずれか1項に記載の符号化装置。
【請求項5】
前記レンジコーダーによる符号化を実行する前に、前記第1変換データのうちの高周波成分を構成する複数のデータに対して、所定ビット数B(Bは1以上の整数)だけ右にシフトするビット演算を実行し、前記高周波成分を構成する前記複数のデータのうち、-(2B-1)以上(2B-1)以下の値を表すデータを0に変換し、前記ビット演算が実行された前記高周波成分を構成する前記複数のデータと、前記第1変換データのうちの低周波成分を構成する複数のデータとを、第2変換データとして出力するゼロ変換部をさらに備える、請求項4に記載の符号化装置。
【請求項6】
前記レンジコーダーによる符号化を実行する前に、前記第2変換データを構成する複数のデータがガウス分布を形成するように、前記第2変換データを処理し、前記処理された第2変換データを、ガウス分布データとして出力するガウス分布作成部をさらに備える、請求項5に記載の符号化装置。
【請求項7】
前記レンジコーダーによる符号化を実行する前に、前記ガウス分布データの高周波成分を走査して、前記高周波成分が形成するガウス分布の期待値と同一値が連続して出現する数を示すランレングスを検出し、所定値と前記ランレングスとを含むデータを作成するランレングス符号化部をさらに備え、
前記ランレングス符号化部は、複数の前記データの各々に含まれる前記ランレングスが前記期待値と同一値を期待値とするガウス分布を形成するように、前記複数のデータを処理し、前記処理された複数のデータと、前記ガウス分布データの前記高周波成分のうち前記期待値と異なる値を示す複数のデータと、前記ガウス分布データの低周波成分とをランレングス符号化データとして出力する、請求項6に記載の符号化装置。
【請求項8】
レンジコーダーにより画像データを符号化した符号化データを復号するレンジコーダー復号部を備え、
前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータであり、
前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理であり、
前記分母指数算出処理は、前記出現確率の分母を2の累乗で表したときの指数を算出する処理であり、
前記レンジコーダー復号部は、
前記要素値ごとに、前記要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出する下限値分子算出部と、
前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成するテーブル作成部と
を含む、復号装置。
【請求項9】
前記レンジコーダー復号部は、
前記要素値を復号するたびに、数直線上に設定された区間を細分化し、前記符号化データを復号する復号部をさらに含み、
前記復号部は、式(3)により、前記下限値の前記予測値の前記分子iLrcを算出し、式(4)により、復号のための計算媒体Codeを更新し、式(5)により、前記区間の区間長を2の累乗で表したときの指数iRを更新し、
iTRは、前記出現確率の前記分母を2の累乗で表したときの前記指数を示し、
Lrcは、前記復号された要素値の前記出現確率の前記下限値の前記分子を示し、
iCは、前記復号された要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数を示す、請求項8に記載の復号装置。
iLrc=Code×2-(iR-iTR) …(3)
Code=Code-Lrc×2(iR-iTR) …(4)
iR=iR+iC-iTR …(5)
【請求項10】
請求項1から請求項7のいずれか1項に記載の符号化装置と、
請求項8又は請求項9に記載の復号装置と
を備える、符号化復号装置。
【請求項11】
レンジコーダーにより画像データを符号化する符号化方法であって、
前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付けるステップと、
前記出現確率の分母を2の累乗で表したときの指数を算出するステップと
を含む、符号化方法。
【請求項12】
レンジコーダーにより画像データを符号化した符号化データを復号する復号方法であって、
前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータであり、
前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理であり、
前記分母指数算出処理は、前記出現確率の分母を2の累乗で表したときの指数を算出する処理であり、
前記要素値ごとに、前記要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出するステップと、
前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成するステップと
を含む、復号方法。
発明の詳細な説明 【技術分野】
【0001】
本発明は、符号化装置、復号装置、符号化復号装置、符号化方法、及び復号方法に関する。
【背景技術】
【0002】
特許文献1に記載された画像処理装置は、レンジコーダーにより画像データを符号化し、画像データを圧縮する。レンジコーダーは、主に整数を使用して演算を実行するデータ圧縮技術である。従って、符号化の処理速度は比較的高速である。
【先行技術文献】
【0003】

【特許文献1】特開2010-4279号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載されたレンジコーダーにより画像データを符号化するときには、乗算及び除算を実行するため、符号化の処理速度の向上を妨げる一因となる。搭載するコンピューターに制約の少ない環境下では、高速なコンピューターを利用すれば、符号化の処理速度を向上させることができる。
【0005】
しかしながら、例えば、遠隔操縦されるロボットでは、小型化及び軽量化の観点から、高速なコンピューターを搭載することが困難な場合がある。従って、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることが要求される。同様の理由により、レンジコーダーによる符号化データを復号するときの処理速度を向上させることが要求される。
【0006】
本発明は上記課題に鑑みてなされたものであり、その目的は、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる符号化装置、符号化復号装置、及び符号化方法を提供することにある。
【0007】
また、本発明の他の目的は、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データを復号するときの処理速度を向上させることができる復号装置、符号化復号装置、及び復号方法を提供することにある。
【課題を解決するための手段】
【0008】
本発明の第1の観点によれば、符号化装置は、レンジコーダーにより画像データを符号化するレンジコーダー符号化部を備える。前記レンジコーダー符号化部は、分子指数算出部と、分母指数算出部とを含む。分子指数算出部は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける。分母指数算出部は、前記出現確率の分母を2の累乗で表したときの指数を算出する。
【0009】
本発明の符号化装置は、下限値分子算出部をさらに備える。下限値分子算出部は、前記要素値ごとに、前記要素値の前記出現確率の下限値の分子を算出する。前記分子指数算出部は、前記要素値の前記出現確率の前記分子が2の累乗でない場合、2の累乗でない前記分子に代えて、前記分子よりも小さく前記分子に最も近似する2の累乗又は前記分子よりも大きく前記分子に最も近似する2の累乗を、前記要素値の前記出現確率の分子として設定し、前記設定した分子を2の累乗で表したときの指数を前記要素値に対応付ける。前記分母指数算出部は、前記要素値の各々の前記出現確率の前記下限値の前記分子のうちの最大値よりも大きく、前記最大値に最も近似する2の累乗を、前記出現確率の前記分母として設定する。
【0010】
本発明の符号化装置において、前記レンジコーダー符号化部は、符号化部をさらに含む。符号化部は、前記複数の要素データのうちの処理対象の要素データを更新するたびに、数直線上に設定された区間を細分化し、前記画像データを符号化する。前記符号化部は、式(1)により、前記区間の下限値Lowを更新し、式(2)により、前記区間の区間長を2の累乗で表したときの指数iRを更新する。Lrcは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記下限値の前記分子を示す。iTRは、前記出現確率の前記分母を2の累乗で表したときの前記指数を示す。iCは、前記処理対象の前記要素データが表す前記要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数を示す。
【0011】
Low=Low+Lrc×2(iR-iTR) …(1)
iR=iR+iC-iTR …(2)
【0012】
本発明の符号化装置は、離散ウェーブレット変換部をさらに備える。離散ウェーブレット変換部は、前記レンジコーダーによる符号化を実行する前に、前記画像データに対して離散ウェーブレット変換を実行し、前記離散ウェーブレット変換が実行された前記画像データを第1変換データとして出力する。前記離散ウェーブレット変換部は、所定数の乗算値を記憶した記憶部を含む。前記所定数の乗算値は、離散ウェーブレット変換のための数列を構成する各数値と前記画像データを構成する各画素データが取り得る各数値との乗算値を含む。前記離散ウェーブレット変換部は、前記画像データを構成する前記各画素データが表す画素値に基づいて、前記乗算値を取得し、複数の前記乗算値に対して和算及び/又は減算を実行することによって、前記画像データに対して前記離散ウェーブレット変換を実行する。
【0013】
本発明の符号化装置は、ゼロ変換部をさらに備える。ゼロ変換部は、前記レンジコーダーによる符号化を実行する前に、前記第1変換データのうちの高周波成分を構成する複数のデータに対して、所定ビット数B(Bは1以上の整数)だけ右にシフトするビット演算を実行し、前記高周波成分を構成する前記複数のデータのうち、-(2B-1)以上(2B-1)以下の値を表すデータを0に変換し、前記ビット演算が実行された前記高周波成分を構成する前記複数のデータと、前記第1変換データのうちの低周波成分を構成する複数のデータとを、第2変換データとして出力する。
【0014】
本発明の符号化装置は、ガウス分布作成部をさらに備える。ガウス分布作成部は、前記レンジコーダーによる符号化を実行する前に、前記第2変換データを構成する複数のデータがガウス分布を形成するように、前記第2変換データを処理し、前記処理された第2変換データを、ガウス分布データとして出力する。
【0015】
本発明の符号化装置は、ランレングス符号化部をさらに備える。ランレングス符号化部は、前記レンジコーダーによる符号化を実行する前に、前記ガウス分布データの高周波成分を走査して、前記高周波成分が形成するガウス分布の期待値と同一値が連続して出現する数を示すランレングスを検出し、所定値と前記ランレングスとを含むデータを作成する。前記ランレングス符号化部は、複数の前記データの各々に含まれる前記ランレングスが前記期待値と同一値を期待値とするガウス分布を形成するように、前記複数のデータを処理し、前記処理された複数のデータと、前記ガウス分布データの前記高周波成分のうち前記期待値と異なる値を示す複数のデータと、前記ガウス分布データの低周波成分とをランレングス符号化データとして出力する。
【0016】
本発明の第2観点によれば、復号装置は、レンジコーダーにより画像データを符号化した符号化データを復号するレンジコーダー復号部を備える。前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータである。前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理である。前記分母指数算出処理は、前記出現確率の分母を2の累乗で表したときの指数を算出する処理である。前記レンジコーダー復号部は、下限値分子算出部と、テーブル作成部とを含む。下限値分子算出部は、前記要素値ごとに、前記要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出する。テーブル作成部は、前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成する。
【0017】
本発明の復号装置において、前記レンジコーダー復号部は、復号部をさらに含む。復号部は、前記要素値を復号するたびに、数直線上に設定された区間を細分化し、前記符号化データを復号する。前記復号部は、式(3)により、前記下限値の前記予測値の前記分子iLrcを算出し、式(4)により、復号のための計算媒体Codeを更新し、式(5)により、前記区間の区間長を2の累乗で表したときの指数iRを更新する。iTRは、前記出現確率の前記分母を2の累乗で表したときの前記指数を示す。Lrcは、前記復号された要素値の前記出現確率の前記下限値の前記分子を示す。iCは、前記復号された要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数を示す。
【0018】
iLrc=Code×2-(iR-iTR) …(3)
Code=Code-Lrc×2(iR-iTR) …(4)
iR=iR+iC-iTR …(5)
【0019】
本発明の第3の観点によれば、符号化復号装置は、上記第1の観点による符号化装置と、上記第2の観点による復号装置とを備える。
【0020】
本発明の第4の観点によれば、符号化方法は、レンジコーダーにより画像データを符号化する。符号化方法は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付けるステップと、前記出現確率の分母を2の累乗で表したときの指数を算出するステップとを含む。
【0021】
本発明の第5の観点によれば、復号方法は、レンジコーダーにより画像データを符号化した符号化データを復号する。前記符号化データは、分子指数算出処理と分母指数算出処理とを実行して生成されたデータである。前記分子指数算出処理は、前記画像データを構成する複数の要素データの各々が表す要素値ごとに、前記要素値の出現確率の分子を2の累乗で表したときの指数を算出し、前記要素値に前記指数を対応付ける処理である。前記分母指数算出処理は、前記出現確率の分母を2の累乗で表したときの指数を算出する処理である。前記要素値ごとに、前記要素値の前記出現確率の前記分子を2の累乗で表したときの前記指数に基づいて、前記出現確率の下限値の分子を算出するステップと、前記下限値の前記分子に基づいて、前記下限値の予測値の分子と前記要素値とを対応付けたテーブルを作成するステップとを含む。
【発明の効果】
【0022】
本発明によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる。また、本発明によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データを復号するときの処理速度を向上させることができる。
【図面の簡単な説明】
【0023】
【図1】本発明の実施形態に係るロボットシステムを示す機能ブロック図である。
【図2】本発明の実施形態に係るロボットの色形式変換部の処理を示す図である。
【図3】本発明の実施形態に係るロボットの離散ウェーブレット変換部の処理を示す図である。
【図4】(a)一般的な算術符号化で算出される出現確率テーブルを示す図である。(b)一般的な算術符号化で算出される数直線上の区間を示す図である。(c)一般的なレンジコーダーによる符号化の手順を示す図である。
【図5】本発明の実施形態に係るロボットのレンジコーダー符号化部を示す機能ブロック図である。
【図6】本発明の実施形態に係るロボットのレンジコーダー符号化部が実行するレンジコーダー符号化処理を示すフローチャートである。
【図7】(a)本発明の実施形態に係るロボットのレンジコーダー符号化部が作成する出現確率テーブルを示す図である。(b)本発明の実施形態に係るロボットのレンジコーダー符号化部による符号化の手順を示す図である。
【図8】本発明の実施形態に係るロボットが実行する符号化方法を示すフローチャートである。
【図9】本発明の実施形態に係るロボットの電気的構成を示す図である。
【図10】本発明の実施形態に係る操縦装置を示す機能ブロック図である。
【図11】一般的なレンジコーダーによる符号化データの復号の手順を示す図である。
【図12】本発明の実施形態に係る操縦装置のレンジコーダー復号部を示す機能ブロック図である。
【図13】本発明の実施形態に係る操縦装置のレンジコーダー復号部が実行するレンジコーダー復号処理を示すフローチャートである。
【図14】本発明の実施形態に係る操縦装置のレンジコーダー復号部が作成する復号テーブルを示す図である。
【図15】本発明の実施形態に係る操縦装置のレンジコーダー復号部による復号の手順を示す図である。
【図16】本発明の実施形態に係る操縦装置が実行する復号方法を示すフローチャートである。
【図17】本発明の実施形態に係る操縦装置の電気的構成を示す図である。
【図18】(a)本発明の実施例1に係る符号化装置による符号化対象の原画像を示す図である。(b)~(d)本発明の実施例1に係る復号装置による復号画像を示す図である。
【図19】(a)本発明の実施例2に係る符号化装置のDWT部が作成した変換データの表す画像を示す図である。(b)本発明の実施例2に係る符号化装置のゼロ変換部が作成した近似データの表す画像を示す図である。(c)本発明の実施例2に係る符号化装置のDWT部が作成した変換データの表す画像を示す図である。(d)本発明の実施例2に係る符号化装置のゼロ変換部が作成した近似データの表す画像を示す図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付して説明を繰り返さない。

【0025】
図1は、本発明の実施形態に係るロボットシステム1を示す機能ブロック図である。ロボットシステム1は符号化復号装置として機能する。ロボットシステム1は、ロボット100と、操縦装置200とを備える。ロボット100はネットワーク300に接続され、操縦装置200はネットワーク300に接続される。従って、ロボット100と操縦装置200とはネットワーク300を介して接続される。ネットワーク300は、例えば、LAN(Local Area Network)、インターネット、及び公衆通信網を含む。

【0026】
ロボット100は、操縦装置200によって、ネットワーク300を介して遠隔操縦される。つまり、操縦者は、ロボット100から操縦装置200にネットワーク300を介して送信された映像を見ながら、操縦装置200を操作して、ネットワーク300を介してロボット100を遠隔操縦する。

【0027】
ロボット100は、撮影部110と、符号化装置120と、通信部130とを備える。撮影部110は、撮影部110の視野内の物体及び環境を撮影し、カラー画像を表す画像データADを符号化装置120に出力する。本実施形態では、撮影部110は、1フレーム当たり、QVGA(Quarter Video Graphics Array)の解像度を有する画像データADを出力する。QVGAは、320画素×240画素を示す。

【0028】
また、本実施形態では、画像データADの色形式は、RGB形式又はYUV422形式である。RGB形式は、R(赤)とG(緑)とB(青)とで色彩を表現する形式であり、1個の画素データのサイズは3バイトである。YUV422形式は、Y(輝度)とU(色差:輝度と青色との差)とV(色差:輝度と赤色との差)とで色彩を表現する形式であり、1個の画素データのサイズは2バイトである。

【0029】
符号化装置120は、画像データADを符号化することによって圧縮し、圧縮画像データを通信部130に出力する。符号化装置120は、例えば、コンピューターによって実現される。

【0030】
通信部130は、ネットワーク300を介して圧縮画像データを操縦装置200に送信する。通信部130は、例えば、ネットワーク300と無線で接続され、無線通信を実行する。本実施形態では、通信部130は、ネットワーク300にアクセスするときの通信プロトコルとして、UDP/IP(User Datagram Protocol/Internet Protocol)を採用する。UDPは、コネクションレス型の通信プロトコルであり、TCP(Transmission Control Protocol)よりも、高速に通信できる。従って、UDP/IPは、ロボット100を遠隔操縦する場合のように、リアルタイムで画像を送受信する場合に特に好適である。なお、通信プロトコルとして、TCP/IPを採用することもできる。

【0031】
以下、具体例を挙げながら、符号化装置120の詳細を説明する。符号化装置120は、色形式変換部10と、画像分割部20と、色成分結合部30と、離散ウェーブレット変換部40(以下、「DWT部40」と記載する。)と、ゼロ変換部50と、ガウス分布作成部60と、ランレングス符号化部70と、レンジコーダー符号化部80とを含む。DWT部40は記憶部40aを含む。なお、本実施形態では、色形式変換部10、画像分割部20、色成分結合部30、DWT部40、ゼロ変換部50、ガウス分布作成部60、及びランレングス符号化部70の各々の処理は、レンジコーダー符号化部80がレンジコーダーによる符号化を実行する前に実行される。

【0032】
色形式変換部10は、撮影部110が出力する画像データADの色形式を変換し、色形式の変換された画像データADを画像データBDとして画像分割部20に出力する。具体的には、色形式変換部10は、RGB形式又はYUV422形式の画像データADをYUV411形式の画像データBDに変換する。YUV411形式は、Y(輝度)とU(色差)とV(色差)とで色彩を表現する形式であり、1個の画素データのサイズは12ビットである。

【0033】
画像分割部20は、1フレームの画像データBDを複数の画像データに分割し、複数の画像データを複数の分割画像データCDとして色成分結合部30に出力する。具体的には、画像分割部20は、1フレームの画像データBDを、第1方向(本実施形態では、水平方向)にm分割するとともに、第1方向に直交する第2方向(本実施形態では、垂直方向)にn分割して、m×n個の分割画像データCDを生成する。m及びnのうちの少なくとも一方は2以上の整数であり、他方は1以上の整数である。本実施形態では、m=5、n=3であり、1フレームの画像データBDが15分割される。分割前の画像データBDの解像度は320画素×240画素であるため、分割画像データCDの各々の解像度は64画素×80画素である。

【0034】
図1及び図2を参照して、色成分結合部30について説明する。図1に示すように、色成分結合部30は、分割画像データCDごとに、分割画像データCDからY成分とU成分とV成分とを抽出し、Y成分とU成分とV成分とを結合し、結合したY成分とU成分とV成分とを画像データDDとしてDWT部40に出力する。

【0035】
図2は、色成分結合部30の処理を示す図である。図1及び図2に示すように、色成分結合部30は、M画素×N画素の分割画像データCDから、M画素×N画素のY成分I1と、K画素×L画素のU成分I2と、K画素×L画素のV成分I3とを抽出する。M、N、K、及びLは2以上の整数である。本実施形態では、M=64、N=80、K=32、L=40である。

【0036】
そして、色成分結合部30は、Y成分I1とU成分I2とV成分I3とを、Y成分I1の1辺にU成分I2の1辺とV成分I3の1辺とが隣接するように結合し、(M+K)画素×N画素の画像データDDを作成する。本実施形態では、96画素×80画素の画像データDDが作成され、画像データDDを構成する各画素データのサイズは1バイトである。

【0037】
図1及び図3を参照して、DWT部40について説明する。図1に示すように、DWT部40は、画像データDDごとに、画像データDDに対して離散ウェーブレット変換を実行し、離散ウェーブレット変換が実行された画像データDDを変換データED(第1変換データ)としてゼロ変換部50に出力する。なお、離散ウェーブレット変換を好適に実行するため、4で割り切れる数値(64と80)を選択し、64画素×80画素の分割画像データCD、及び96画素×80画素の画像データDDを生成した。

【0038】
図3は、DWT部40の処理を示す図である。図1及び図3に示すように、DWT部40は、画像データDDに対して、所定の分解レベル2より下位の分解レベル1を有する低周波成分を作成することなく、1次元の離散ウェーブレット変換(DWT:discrete wavelet transform)を第1方向x(本実施形態では、水平方向x)に実行し、第1方向xに所定の分解レベル2を有する低周波成分L0(黒色の太線で囲まれた領域)と、第1方向xに所定の分解レベル2を有する高周波成分H0(右上がり斜線の領域)とを作成する。分解レベルは、離散ウェーブレット変換における展開階層を示す。低周波成分L0と高周波成分H0との各々は、複数の係数データを含む。

【0039】
さらに、DWT部40は、低周波成分L0に対して、所定の分解レベル2より下位の分解レベル1を有する低周波成分を作成することなく、1次元の離散ウェーブレット変換を第1方向xに直交する第2方向y(本実施形態では、垂直方向y)に実行し、第2方向yに所定の分解レベル2を有する低周波成分L1(黒色の太線で囲まれた領域)と、第2方向yに所定の分解レベル2を有する高周波成分H1(右下がり斜線の領域)とを作成する。低周波成分L1と高周波成分H1との各々は、複数の係数データを含む。高周波成分H0と高周波成分H1とは、高周波成分H2を構成する。

【0040】
そして、DWT部40は、低周波成分L1と高周波成分H2とを、変換データEDとして、ゼロ変換部50に出力する。変換データEDは、(M+K)×N個の係数データを含む。

【0041】
具体的には、DWT部40は、次のようにして、画像データDDに対して、離散ウェーブレット変換を実行する。

【0042】
記憶部40aは所定数の乗算値(以下、「DWT用乗算値」と記載する。)を予め記憶する。所定数のDWT用乗算値は、離散ウェーブレット変換のための第1数列を構成する各数値と画像データDDを構成する各画素データが取り得る各数値(つまり、各画素値)との乗算値、離散ウェーブレット変換のための第2数列を構成する各数値と画像データDDを構成する各画素データが取り得る各数値(つまり、各画素値)との乗算値、及び離散ウェーブレット変換のための第3数列を構成する各数値と画像データDDを構成する各画素データが取り得る各数値(つまり、各画素値)との乗算値を含む。

【0043】
第1数列は、スケーリングを表す数列であり、ドベシィ(Daubechies)の数列(ドベシィのパラメーター=2)である。なお、ハール(Haar)の数列を使用することもできる。第1数列は、一般的な離散ウェーブレット変換において、低周波成分を生成するために使用される。第1数列は、次に示すように、kS1[0]、kS1[1]、kS1[2]、kS1[3]、である。

【0044】
【数1】
JP2016171473A_000003t.gif

【0045】
第2数列は、次に示すように、kS2[0]、kS2[1]、kS2[2]、kS2[3]、kS2[4]、kS2[5]、kS2[6]、kS2[7]、kS2[8]、kS2[9]、であり、第1数列から作成されている。

【0046】
【数2】
JP2016171473A_000004t.gif

【0047】
第3数列は、次に示すように、kW2[0]、kW2[1]、kW2[2]、kW2[3]、kW2[4]、kW2[5]、kW2[6]、kW2[7]、kW2[8]、kW2[9]、であり、第1数列と第4数列とから作成されている。第4数列は、ウェーブレットを表す数列であり、第1数列から作成されている。第4数列は、次に示すように、kW1[0]、kW1[1]、kW1[2]、kW1[3]、である。第4数列は、一般的な離散ウェーブレット変換において、高周波成分を生成するために使用される。

【0048】
【数3】
JP2016171473A_000005t.gif

【0049】
【数4】
JP2016171473A_000006t.gif

【0050】
第1数列は4項からなり、第2数列は10項からなり、第3数列は10項からなり、項数の合計は24である。また、本実施形態では、画像データDDを構成する各画素データのサイズは、1バイトであり、各画素データは0~255の数値を取り得る。従って、所定数のDWT用乗算値は、24×256個のDWT用乗算値である。そこで、24×256個のDWT用乗算値を記憶するために必要な容量は、9216バイト(=24×256×1.5バイト)であり、12ビットで足りる。

【0051】
DWT部40は、画像データDDを構成する各画素データが表す画素値に基づいて、DWT用乗算値を取得し、複数のDWT用乗算値に対して和算及び/又は減算を実行することによって、画像データDDに対して離散ウェーブレット変換を実行し、変換データEDを作成する。従って、DWT部40は、乗算及び除算を実行することなく、離散ウェーブレット変換を実行する。

【0052】
図1を参照して、ゼロ変換部50に付いて説明する。ゼロ変換部50は、変換データEDごとに、変換データEDに対して近似処理を実行し、近似処理後の変換データEDを、近似データFD(第2変換データ)として、ガウス分布作成部60に出力する。近似処理とは、0に近似する係数データを0に変換する処理のことである。

【0053】
具体的には、ゼロ変換部50は、変換データEDの高周波成分H2を構成する複数の係数データ(データ)に対して、所定ビット数B(Bは1以上の整数)だけ右にシフトするビット演算を実行し、高周波成分H2を構成する複数の係数データのうち、-(2B-1)以上(2B-1)以下の係数値(値)を表す係数データ(つまり、0に近似する係数データ)を0に変換する。

【0054】
すなわち、所定ビット数Bだけ右にシフトするビット演算は、係数データの表す係数値を1/2B倍して、小数点以下の数を切り捨てる演算と同じである。従って、このビット演算を実行することによって、-(2B-1)以上(2B-1)以下の係数値を表す係数データが0に変換される。本実施形態では、ゼロ変換部50は、2ビットだけ右にシフトするビット演算を実行する。従って、-(22-1)以上(22-1)以下の係数値を表す係数データが0に変換される。その結果、データ量を大幅に削減できる。

【0055】
以下、ビット演算の実行によって近似処理された高周波成分H2を「高周波成分H3」と記載する。ゼロ変換部50は、高周波成分H3を構成する複数の係数データと、変換データEDの低周波成分L1を構成する複数の係数データ(データ)とを、近似データFDとしてガウス分布作成部60に出力する。近似データFDは、(M+K)×N個の係数データを含む。

【0056】
ガウス分布作成部60は、近似データFDごとに、近似データFDを構成する複数の係数データ(データ)がガウス分布を形成するように、近似データFDを処理し、処理された近似データFDを、ガウス分布データGDとしてランレングス符号化部70に出力する。

【0057】
具体的には、ガウス分布作成部60は、近似データFDの高周波成分H3を構成する係数データの各々の表す係数値に、128を加算することによって、負数を消す。その結果、高周波成分H3が表す複数の係数値は、128を期待値とし、65を下限値とし、191を上限値とするガウス分布を形成する。

【0058】
ガウス分布が形成される理由は、高周波成分H3を構成する係数データの各々が表す係数値は、次に示す理由により、-63以上63以下の整数値だからである。すなわち、変換データEDの高周波成分H2を構成する係数データの各々の表す係数値は、-255以上255以下の整数値である。従って、ゼロ変換部50が高周波成分H2に対して2ビットだけ右にシフトするビット演算を実行した結果、作成される高周波成分H3を構成する係数データの各々の表す係数値は、-63以上63以下の整数値になる。

【0059】
また、ガウス分布作成部60は、近似データFDの低周波成分L1を構成する係数データの各々の表す係数値から、128を減算する。その結果、低周波成分L1の表す複数の係数値は、0を期待値とし、-128を下限値とし、127を上限値とするガウス分布を形成する。128を減算する前では、低周波成分L1を構成する係数データの各々が表す係数値は、0以上255以下の整数値だからである。さらに、ガウス分布作成部60は、負数を消すために、ガウス分布を形成する低周波成分L1を構成する係数データの各々の表す係数値に、128を加算する。その結果、低周波成分L1の表す複数の係数値は、128を期待値とし、0を下限値とし、255を上限値とするガウス分布を形成する。

【0060】
以下、負数を有しないガウス分布を形成する低周波成分L1を「低周波成分G1」と記載し、負数を有しないガウス分布を形成する高周波成分H3を「高周波成分G2」と記載する。また、低周波成分G1の表す複数の係数値が形成するガウス分布の期待値を「期待値EP1」と記載し、高周波成分G2の表す複数の係数値が形成するガウス分布の期待値を「期待値EP2」と記載する。期待値EP1と期待値EP2とは、同じ値、つまり、128である。

【0061】
ガウス分布作成部60は、低周波成分G1と高周波成分G2とを、ガウス分布データGDとしてランレングス符号化部70に出力する。ガウス分布データGDは、(M+K)×N個の係数データを含む。

【0062】
ランレングス符号化部70は、ガウス分布データGDごとに、ガウス分布データGDに対して、ランレングス符号化を実行し、ランレングス符号化後のガウス分布データGDを、ランレングス符号化データHDとして、レンジコーダー符号化部80に出力する。

【0063】
具体的には、ランレングス符号化部70は、ガウス分布データGDの低周波成分G1を走査して、低周波成分G1を構成する複数の係数データを、それぞれ、複数の要素データGG1として設定する。

【0064】
また、ランレングス符号化部70は、ガウス分布データGDの高周波成分G2を走査して、高周波成分G2における期待値EP2と同じ係数値が連続して出現する数を示すランレングスRLを順次検出する。係数値は高周波成分G2を構成する係数データが表す値である。そして、ランレングス符号化部70は、ランレングスRLごとに、所定値PVとランレングスRLとを含む要素データGG21(データ)を作成する。

【0065】
ただし、ランレングス符号化部70は、ランレングスRLが1の場合は、期待値EP2と同じ係数値を要素データGG21として設定する。また、ランレングス符号化部70は、ランレングスRLが所定長PLを超えた場合、所定長PLを超えるたびに、所定長PLを保持するとともに、ランレングスRLをリセットし、再びランレングスRLの検出を開始する。そして、ランレングス符号化部70は、所定値PV及び所定長PLと、所定値PV及びランレングスRLとを含む要素データGG21を作成する。この場合、所定長PLを超えた回数をg(gは1以上の整数)と記載すると、要素データGG21に含まれる所定値PV及び所定長PLの組は、g回連続する。

【0066】
さらに、ランレングス符号化部70は、複数の要素データGG21の各々に含まれるランレングスRLが期待値EP2と同じ値を期待値とするガウス分布を形成するように、複数の要素データGG21を処理し、複数の要素データGG22を作成する。

【0067】
また、ランレングス符号化部70は、高周波成分G2を走査する際、高周波成分G2における期待値EP2と異なる係数値を表す複数の係数データを、それぞれ、複数の要素データGG23として設定する。

【0068】
そして、ランレングス符号化部70は、複数の要素データGG1と、複数の要素データGG22と、複数の要素データGG23とを、ランレングス符号化データHDとしてレンジコーダー符号化部80に出力する。

【0069】
以下、具体例を挙げながら要素データGG21及び要素データGG22について説明する。ガウス分布の期待値EP2を、ガウス分布作成部60の説明で例示した128とする。また、ランレングス符号化部70は、要素データG21を作成するときの所定値PVを0に設定する。なぜなら、高周波成分G2の係数データの表す係数値が128であることは、ゼロ変換部50によって作成された高周波成分H3の係数データの表す係数値が0であることを示すからである。

【0070】
ランレングス符号化部70は、例えば、高周波成分G2において、期待値EP2と同じ128が5個続いた場合、“128,128,128,128,128”を“0,5”と置き換える。“0,5”は、1つの要素データGG21を構成する。“0,5”のうち、“0”は所定値PVを示し、“5”はランレングスRLを示す。本実施形態では、所定値PV及びランレングスRLの各々を1バイトで表す。

【0071】
ただし、ランレングス符号化部70は、128が1つの場合は、“128”を“0,1”と置き換えることなく、128を要素データGG21に設定する。本実施形態では、128を1バイトで表す。従って、“0,1”を要素データGG21に設定する場合よりも、データ保存量を少なくできる。

【0072】
また、128が255個を超えて続いた場合は、ランレングスRLを1バイトで表すことができない。そこで、ランレングス符号化部70は、例えば、128が300個続いた場合は、“128,…,128”を“0,255,0,5”と置き換える。“0,255,0,5”は1つの要素データGG21を構成する。

【0073】
要素データGG21を構成するランレングスRLを表す数値の出現確率は、2が最も高く、3、4、5、…と数値が大きくなるほど低下する。そこで、ランレングス符号化部70は、“0,2”を“0,128”に、“0,3”を“0,127”に、“0,4”を“0,129”にというように、数値転換を実行する。この場合、“0,2”、“0,3”、及び“0,4”の各々は要素データG21である。また、 “0,128”、“0,127”、及び“0,129”の各々は要素データG22である。数値転換の結果、複数の要素データGG22は、期待値EP2と同じ値(つまり、128)を期待値とするガウス分布を形成する。

【0074】
次に、レンジコーダー符号化部80を説明する前に、一般的な算術符号化と一般的なレンジコーダーとについて説明する。一般的な算術的符号化は、0と1との間の実数区間を、画像を構成する各画素値の出現確率に応じて次々に細分化し、最終的な区間に含まれる1つの実数によって画像を表現し、画像を符号化する符号化技術である。これに対して、一般的なレンジコーダーは、0と所定の整数値との間の整数区間を、画像を構成する各画素値の出現確率に応じて次々に細分化し、最終的な区間に含まれる1つの整数によって画像を表現し、画像を符号化する符号化技術である。

【0075】
図4(a)及び図4(b)を参照して、一般的な算術符号化によって10個の画素からなる画像を符号化する例を説明する。図4(a)は、一般的な算術符号化で算出される出現確率テーブルを示す図である。図4(b)は、一般的な算術符号化で算出される区間を示す図である。

【0076】
図4(a)に示すように、各画素の画素値は、1~4のいずれかの整数値を取り得る。画像を構成する10個の画素の画素値は、4、3、4、2、3、4、1、3、4、2、である。算術符号化では、各画素値の出現確率Crcを算出する。例えば、3を示す画素値は10画素中3回出現しているため、3を示す画素値の出現確率Crcは3/10である。

【0077】
図4(a)及び図4(b)に示すように、算術符号化では、0と1との間の数直線上の区間が、各画素値の出現確率Crcに応じて分割される。例えば、3を示す画素値の出現確率Crcの下限値Lrは3/10であり、上限値Hrは6/10である。

【0078】
算術符号化では、図4(a)に示す出現確率テーブルを使用して、図4(b)に示す0と1との間の区間を次々に細分化する。すなわち、10個の画素値のうち第1番目の画素値が4であるため、下限値Lrは6/10であり、上限値Hrは10/10である。従って、0~1の区間のうち、6/10~10/10に対応する0.6~1の区間が選択される。つまり、4から始まる数値群は、0.6~1の区間に含まれる実数によって符号化可能であることが確定する。次に、第2番目の画素値が3であるため、下限値Lrは3/10であり、上限値Hrは6/10である。従って、0.6~1の区間のうち、3/10~6/10に対応する0.72~0.84の区間が選択される。つまり、4と3とから始まる数値群は、0.72~0.84の区間に含まれる実数によって符号化可能であることが確定する。以降、同様にして、後続する画素値に対応する出現確率Crcの下限値Lr及び上限値Hrに応じて次々に区間が選択され、第10番目の画素値に対応する出現確率Crcの下限値Lr及び上限値Hrに応じた区間に含まれる1つの実数を、画像の符号化データとして決定する。

【0079】
図4(a)及び図4(c)を参照して、一般的なレンジコーダーによって10個の画素からなる画像を符号化する例を説明する。各画素の画素値は、1~4のいずれかの整数値を取り得る。画像を構成する10個の画素の画素値は、4、3、4、2、3、4、1、3、4、2、である。レンジコーダーでは、図4(a)に示す出現確率テーブルを使用して、0と所定の整数値との間の区間を次々に細分化する。所定の整数値を1000000に設定する。具体的には、次に示す演算が実行される。

【0080】
図4(c)は、一般的なレンジコーダーによる符号化の手順を示す図である。図4(c)に示す数値は10進数である。図4(a)及び図4(c)に示すように、一般的なレンジコーダーでは、画素値の出現確率Crc及び画素値に対応する下限値Lrを使用して、区間の下限値Loを式(1)により算出するとともに、区間の区間長RNGを式(2)により算出することによって、区間を次々に細分化する。式(1)及び式(2)において、演算子「=」は代入を示す。

【0081】
Lo=Lo+RNG×Lr …(1)
RNG=RNG×Crc …(2)

【0082】
下限値Loの初期値として0を設定する。また、所定の整数値が1000000であるため、区間長RNGの初期値を1000000に設定する。区間長RNGが更新され、区間長RNGが10000より小さくなった場合は、区間長RNG及び下限値Loの各々を100倍することによって、区間を拡張する。

【0083】
図4(c)に示すように、10個の画素値のうち第1番目の画素値は4であるため、下限値Loは600000(=0+1000000×0.6)に更新されるとともに、区間長RNGは400000(=1000000×0.4)に更新される。つまり、第1番目の画素値に対応して、600000の下限値Loと、1000000の上限値と、400000の区間長RNGとを有する区間が選択される。

【0084】
第2番目の画素値は3であるため、下限値Loは720000(=600000+400000×0.3)に更新されるとともに、区間長RNGは120000(=400000×0.3)に更新される。つまり、第2番目の画素値に対応して、720000の下限値Loと、840000の上限値と、120000の区間長RNGとを有する区間が選択される。

【0085】
同様の演算により、第3番目の画素値に対応して、792000の下限値Loと、840000の上限値と、48000の区間長とを有する区間が選択される。

【0086】
同様の演算により、第4番目の画素値に対応して、796800の下限値Loと、806400の上限値と、9600の区間長RNGとを有する区間が選択される。この場合、区間長RNGが10000より小さいため、区間長RNGの9600を100倍するとともに、下限値Loの796800を100倍することによって、区間を拡張する。従って、下限値Loは、79680000になり、オーバーフローする。そこで、上位2桁の「79」を取り出し、オーバーフロー値として保持するとともに、下限値Loを680000に修正する。

【0087】
以降、第1番目の画素値から第4番目の画素値までの処理と同様にして、第5番目の画素値から第10番目の画素値まで、式(1)及び式(2)に基づいて、区間を次々に細分化する。そして、オーバーフロー値「79」と、オーバーフロー値「114」と、最終的な区間の下限値Lo「646784」とに基づいて、符号化データ「8014646784」を作成し、画像の符号化を完了する。

【0088】
次に、図1、図5、図6、図7(a)、及び図7(b)を参照して、レンジコーダー符号化部80について説明する。図1に示すように、レンジコーダー符号化部80は、ランレングス符号化部70が出力したランレングス符号化データHDを受け取る。ランレングス符号化データHDは、複数の要素データGG1と、複数の要素データGG22と、複数の要素データGG23とにより構成される。以下、要素データGG1、要素データGG22、及び要素データGG23を総称して「要素データEL」と記載し、「要素データEL」が表す係数値を要素値と記載する場合がある。

【0089】
レンジコーダー符号化部80は、ランレングス符号化データHDごとに、レンジコーダーによりランレングス符号化データHDを符号化し、符号化データIDを作成して通信部130に出力する。レンジコーダーは、0と所定の整数値との間の整数区間を、ランレングス符号化データHDを構成する各要素値の出現確率に応じて次々に細分化し、最終的な区間に含まれる1つの整数によってランレングス符号化データHDを表現し、ランレングス符号化データHDを符号化する符号化技術である。この場合、所定の整数は1より大きい整数値である。所定の整数として、比較的大きい整数値が採用される。また、レンジコーダーでは、区間の区間長が一定値よりも小さくなった場合、区間長を整数倍することによって、区間を拡張し、要素値の出現確率に応じた区間の細分化を継続する。

【0090】
ただし、本実施形態では、図4(a)及び図4(c)を参照して説明した一般的なレンジコーダーの手順と異なる手順を採用する。

【0091】
以下、レンジコーダー符号化部80が、10個の要素データELから構成されるランレングス符号化データHDを符号化する例を参照しながら説明する。要素データELの各々が表す要素値は、1~4のいずれかの整数値を取り得る。10個の要素データELが表す要素値は、4、3、4、2、3、4、1、3、4、2、である。

【0092】
図5は、レンジコーダー符号化部80を示す機能ブロック図である。図6は、レンジコーダー符号化部80が実行するレンジコーダー符号化処理を示すフローチャートである。図7(a)は、レンジコーダー符号化部80が作成する出現確率テーブル82を示す図である。出現確率テーブル82は、要素値と、要素値の出現確率の分子の指数iCと、要素値の出現確率の下限値の分子Lrcとを対応付けたテーブルである。図7(b)は、レンジコーダー符号化部80による符号化の手順を示す図である。図7(b)において、「0x」は数値が16進数で表されていることを示す。

【0093】
図5に示すように、レンジコーダー符号化部80は、出現確率算出部80aと、分子指数算出部80bと、下限値分子算出部80cと、分母指数算出部80dと、符号化部80eとを含む。

【0094】
図5、図6、及び図7(a)に示すように、レンジコーダー符号化部80は、ステップS1~ステップS7の処理を実行し、出現確率テーブル82を作成する。

【0095】
すなわち、ステップS1において、レンジコーダー符号化部80の出現確率算出部80aは、ランレングス符号化データHDの要素データELが表す要素値の出現確率を算出する。要素値が1の場合は、出現確率は1/10であり、要素値が2の場合は、出現確率は2/10であり、要素値が3の場合は、出現確率は3/10であり、要素値が4の場合は、出現確率は4/10である。

【0096】
ステップS3において、分子指数算出部80bは、要素値の出現確率の分子を2の累乗で表したときの指数iCを算出し、要素値に指数iCを対応付ける。ステップS3は分子指数算出処理に相当する。例えば、図7(a)に示すように、要素値が1の場合は、要素値の出現確率(=1/10)の分子は1(=20)であり、指数iCは0である。要素値が2の場合は、要素値の出現確率(=2/10)の分子は2(=21)であり、指数iCは1である。要素値が4の場合は、要素値の出現確率(=4/10)の分子は4(=22)であり、指数iCは2である。

【0097】
ただし、分子指数算出部80bは、要素値の出現確率の分子が2の累乗でない場合、2の累乗でない分子に代えて、2の累乗でない分子よりも小さく、2の累乗でない分子に最も近似する2の累乗を、要素値の出現確率の分子として設定し、設定された分子を2の累乗で表したときの指数iCを要素値に対応付ける。例えば、図7(a)に示すように、要素値が3の場合は、要素値の出現確率(=3/10)の分子(=3)は2の累乗でないため、分子(=3)よりも小さく分子(=3)に最も近似する2の累乗(=21)を、要素値の出現確率の分子(=21)として設定し、設定された分子(=21)を2の累乗で表したときの指数iC(=1)を要素値に対応付ける。

【0098】
なお、分子指数算出部80bは、要素値の出現確率の分子が2の累乗でない場合、2の累乗でない分子に代えて、2の累乗でない分子よりも大きく、2の累乗でない分子に最も近似する2の累乗を、要素値の出現確率の分子として設定し、設定された分子を2の累乗で表したときの指数iCを要素値に対応付けてもよい。

【0099】
ステップS5において、下限値分子算出部80cは、式(3)により、要素値の出現確率の下限値の分子Lrcを算出する。式(3)において、Lrcpは前回の処理対象としての要素値の出現確率の下限値の分子Lrcを示し、Apは前回の処理対象としての要素値の出現確率の分子を示す。最初の処理対象の要素値の場合、本実施形態では、Lrcp及びApの各々に0が入力される。

【0100】
Lrc=Lrcp+Ap …(3)

【0101】
例えば、図7(a)に示すように、最初の処理対象としての要素値(=1)の場合は、Lrcp及びApの各々には0が入力されるため、下限値の分子Lrcは0である。次の処理対象としての要素値(=2)の場合は、Lrcpに前回の処理対象としての要素値(=1)の出現確率の下限値の分子Lrc(=0)が入力され、Apに前回の処理対象としての要素値(=1)の出現確率の分子(=1)が入力されるため、下限値の分子Lrcは1である。更に次の処理対象としての要素値(=3)の場合は、Lrcpに前回の処理対象としての要素値(=2)の出現確率の下限値の分子Lrc(=1)が入力され、Apに前回の処理対象としての要素値(=2)の出現確率の分子(=2)が入力されるため、下限値の分子Lrcは3である。

【0102】
更に次の処理対象としての要素値(=4)の場合は、Lrcpに前回の処理対象としての要素値(=3)の出現確率の下限値の分子Lrc(=3)が入力され、Apに前回の処理対象としての要素値(=3)の出現確率の分子(=2)が入力されるため、下限値の分子Lrcは5である。なお、前回の処理対象としての要素値(=3)の場合は、要素値の出現確率(=3/10)の分子(=3)は2の累乗でないため、分子(=3)よりも小さく分子(=3)に最も近似する2の累乗(=21)が、要素値の出現確率の分子(=21)として設定されている(ステップS3)。

【0103】
なお、要素値の出現確率の下限値をLw、前回の処理対象としての要素値の出現確率の下限値をLwp、前回の処理対象としての要素値の出現確率をCrcで表すと、Lwは、式(4)により算出される。Lwp及びCrcの初期値は0である。

【0104】
Lw=Lwp+Crc …(4)

【0105】
ステップS7において、下限値分子算出部80cは、全ての要素値(1~4)に対して、ステップS1~ステップS5の処理が完了したか否か判定する。下限値分子算出部80cは、処理が完了していないと判定した場合(ステップS7でNo)、処理をステップS1に進め、処理が完了したと判定した場合(ステップS7でYes)、出現確率テーブル82が完成したため、処理をステップS9に進める。本実施形態では、要素値は4種類(1~4)であるため、ステップS1~ステップS7の処理が4回実行される。

【0106】
ステップS9において、分母指数算出部80dは、要素値の出現確率の分母を2の累乗で表したときの指数iTRを算出する。ステップS9は分母指数算出処理に相当する。具体的には、分母指数算出部80dは、要素値の各々の出現確率の下限値の分子Lrcのうちの最大値よりも大きく、最大値に最も近似する2の累乗を、要素値の出現確率の分母として設定し、指数iTRを算出する。例えば、図7(a)に示すように、要素値の出現確率の下限値の分子Lrcは、0、1、3、5であり、最大値は5である。従って、最大値(=5)よりも大きく、最大値(=5)に最も近似する2の累乗(=23)を、要素値の出現確率の分母として設定し、指数iTR(=3)を算出する。

【0107】
ステップS9の後、符号化部80eは、ステップS11~ステップS21の処理を実行し、ランレングス符号化データHDを構成する複数の要素データELのうちの処理対象の要素データELを更新するたびに、数直線上に設定された区間を細分化し、ランレングス符号化データHDを符号化する。

【0108】
すなわち、ステップS11において、符号化部80eは、処理対象の要素データELが表す要素値の出現確率の下限値の分子Lrc、要素値の出現確率の分母を2の累乗で表したときの指数iTR、及び数直線上に設定された区間の区間長を2の累乗で表したときの指数iRを使用して、式(5)により、数直線上に設定された区間の下限値Lowを更新する。式(5)において、演算子「=」は代入を示す。例えば、図7(b)に示すように、下限値Lowの初期値として、0x000を設定し、指数iRの初期値として、12を設定する。

【0109】
Low=Low+Lrc×2(iR-iTR) …(5)

【0110】
具体的には、符号化部80eは、式(5)を演算するときには、2進数で表された分子Lrcを、「iR-iTR」で表されるビット数だけ左にシフトするビット演算を実行して、Lrc×2(iR-iTR)を算出する。なお、図6のステップS11における演算子「<<」は、2進数で表された各ビットを左にシフトするビット演算(つまり、シフト演算)を示す。従って、「Lrc<<(iR-iTR)」は、2進数で表される「Lrc」を、「iR-iTR」で表されるビット数だけ左にシフトするビット演算を実行することを示す。その結果、10進数で表される「Lrc」が「2(iR-iTR)」倍される。

【0111】
ステップS13において、符号化部80eは、処理対象の要素データELが表す要素値の出現確率の分子を2の累乗で表したときの指数iC、及び指数iTRを使用して、式(6)により、指数iRを更新する。式(6)において、演算子「=」は代入を示す。例えば、図7(b)に示すように、指数iRの初期値として、12を設定する。

【0112】
iR=iR+iC-iTR …(6)

【0113】
ステップS11及びステップS13の処理について具体例を挙げて説明する。図7(b)に示すように、10個の要素データELのうち第1番目の要素データELが表す要素値は4であるため、下限値Lowは0xA00(=0x00+5×212-3)に更新されるとともに、指数iRは11(=12+2-3)に更新される。つまり、第1番目の要素データELが表す要素値に対応して、0xA00の下限値Lowと211の区間長とを有する区間が選択される。

【0114】
次に、第2番目の要素データELが表す要素値は3であるため、下限値Lowは0xD00(=0xA00+3×211-3)に更新されるとともに、指数iRは9(=11+1-3)に更新される。つまり、第2番目の要素データELが表す要素値に対応して、0xD00の下限値Loと29の区間長とを有する区間が選択される。以降、同様の演算により、下限値Low及び指数iRが更新される。

【0115】
ステップS15において、符号化部80eは、指数iRが所定値MAX以下か否かを判定する。符号化部80eは、指数iRが所定値MAX以下でないと判定した場合(ステップS15でNo)、処理をステップS19に進め、指数iRが所定値MAX以下でると判定した場合(ステップS15でYes)、処理をステップS17に進める。本実施形態では、所定値MAXは1より大きい整数である。

【0116】
例えば、所定値MAXを4に設定する。この場合、図7(b)に示すように、第5番目の要素データELが表す要素値(=3)に対応して算出された指数iRは4であるため、処理はステップS17に進む。

【0117】
ステップS17において、符号化部80eは、下限値Lowに所定数2Cを掛け合わせるとともに(2C倍)、指数iRで表される区間長(=2iR)に所定数2Cを掛け合わせる(2C倍)。本実施形態では、所定数2Cの指数Cは0より大きい整数である。具体的には、区間長(=2iR)に所定数2Cを掛け合わせる演算を実行する代わりに、指数iRに指数Cを加算して、指数iRを更新することによって区間を拡張する。

【0118】
例えば、所定数2Cを28に設定する。この場合、図7(b)に示すように、第5番目の要素データが表す要素値(=3)に対応して算出された下限値Lo(=0xE78)を28倍するとともに、指数iR(=4)で表される区間長(=24)を28倍することによって区間を拡張する。従って、指数iRは12になる。しかし、下限値Lowが、0xE7800になり、オーバーフローする。そこで、上位2桁の「E7」を取り出し、オーバーフロー値として保持するとともに、下限値Lowを0x800に修正する。

【0119】
ステップS19において、符号化部80eは、ランレングス符号化データHDを構成する全ての要素データELが表す要素値に対して、ステップS11~ステップS17の処理が完了したか否かを判定する。符号化部80eは、処理が完了していないと判定した場合(ステップS19でNo)、処理をステップS11に進め、処理が完了したと判定した場合(ステップS19でYes)、処理をステップS21に進める。本実施形態では、10個の要素データELを処理するため、ステップS11~ステップS19の処理が10回実行される。

【0120】
ステップS21において、符号化部80eは、最後尾の要素データELの表す要素値に対応して算出された下限値Low(つまり、区間長の最も短い区間の下限値Low)に基づいて符号化データIDを作成し、ランレングス符号化データHDの符号化を完了する。さらに、符号化部80eは、符号化データIDに、複数の指数データEXを付属データATとして付属させる。複数の指数データEXは、それぞれ、複数の指数iCを表す。複数の指数データEXは、それぞれ、複数の要素値と関連付けられている。本実施形態では、付属データATは、1を示す要素値に対応する指数iC(=0)を表す指数データEXと、2を示す要素値に対応する指数iC(=1)を表す指数データEXと、3を示す要素値に対応する指数iC(=1)を表す指数データEXと、4を示す要素値に対応する指数iC(=2)を表す指数データEXとを含む。

【0121】
また、符号化部80eは、オーバーフロー値を保持している場合は、オーバーフロー値と、最後尾の要素データELの表す要素値に対応して算出された下限値Lowとに基づいて符号化データIDを作成する。例えば、図7(b)に示すように、オーバーフロー値(=0xE7000)と下限値Low(=0xE128C)とに基づいて、符号化データID(=0xE828C)が作成される。なお、図7(b)において、演算子「&」は、ビット演算におけるビットごとの論理積を示す。また、1回だけ桁上がりをしているため、オーバーフロー値(=0xE7)の下位に3桁の0x000を付加して、オーバーフロー値(=0xE7000)を作成している。0x000を付加したのは、下限値Lowの初期値が3桁だからである。

【0122】
符号化部80eは、圧縮画像データとして、符号化データID(=0xE828C)と付属データATとを通信部130に出力し、処理を終了する。

【0123】
図1を参照して、通信部130について説明する。通信部130は、レンジコーダー符号化部80が出力した符号化データID及び付属データATを、圧縮画像データとして、ネットワーク300を介して、操縦装置200に送信する。

【0124】
以上、図1及び図5~図7を参照して説明したように、本実施形態に係る符号化装置によれば、レンジコーダー符号化部80の分子指数算出部80bが要素値の出現確率の分子を2の累乗で表したときの指数iCを算出するとともに、分母指数算出部80dが要素値の出現確率の分母を2の累乗で表したときの指数iTRを算出する。すなわち、要素値の出現確率の分子が2の累乗で表されるとともに、要素値の出現確率の分母が2の累乗で表される。

【0125】
従って、符号化の際に使用する式(5)には、除算が含まれず、乗算は、2の累乗(つまり、2(iR-iTR))と整数(つまり、Lrc)との乗算になる。その結果、2進数のシフト演算と和算とにより、数直線上の区間の下限値Lowを算出できる。シフト演算及び和算は、乗算及び除算と比較して、コンピューターによる高速処理が可能な演算である。加えて、符号化の際に使用する式(6)には、除算及び乗算が含まれず、和算と減算とにより、数直線上の区間を表す指数iRを算出できる。和算及び減算は、乗算及び除算と比較して、コンピューターによる高速処理が可能な演算である。

【0126】
式(5)及び式(6)を、シフト演算と和算と減算とで実行することにより、乗算及び/又は除算を実行する場合と比較して、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化を高速に実行できる。従って、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる。例えば、ロボット100が高速なコンピューターを搭載することが困難な場合であっても、レンジコーダーによる符号化の処理速度を向上させることができる。また、レンジコーダー符号化部80は、浮動小数点数を使用せず、整数値だけを使用するため、更に処理を高速化できる。

【0127】
また、本実施形態によれば、分子指数算出部80bは、要素値の出現確率の分子が2の累乗でない場合、2の累乗でない分子よりも小さく、2の累乗でない分子に最も近似する2の累乗を、要素値の出現確率の分子として設定する。加えて、分母指数算出部80dは、要素値の各々の出現確率の下限値の分子Lrcのうちの最大値よりも大きく、最大値に最も近似する2の累乗を、要素値の出現確率の分母として設定する。従って、簡易な処理により、出現確率の分子と分母との各々を確実に2の累乗で表すことができる。

【0128】
さらに、本実施形態によれば、式(5)及び式(6)を使用して、数直線上の区間の下限値Lowと区間長を表す指数iRとを更新することによって、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化を高速に実行できる。

【0129】
また、図1及び図3を参照して説明したように、本実施形態によれば、記憶部40aは、所定数のDWT用乗算値を予め記憶している。従って、DWT部40は、DWT用乗算値を使用することで、乗算及び除算を実行することなく、離散ウェーブレット変換を実行できる。その結果、乗算を実行して離散ウェーブレット変換を実行する場合と比較して、高速に離散ウェーブレット変換を実行できる。なお、一般的な離散ウェーブレット変換でも除算は含まない。

【0130】
さらに、本実施形態によれば、DWT部40は、分解レベル0の画像データDDを、分解レベル1を経由することなく、分解レベル2の変換データEDに変換する。従って、記憶部40aに記憶されたDWT用乗算値を使用したDWT部40による演算時の誤差の蓄積を抑制できる。その結果、復号後の画像の画質の低下を抑制できる。

【0131】
なお、分解レベル0の画像データを、分解レベル1を経由して、分解レベル2の変換データに変換する場合について説明する。この場合に、離散ウェーブレット変換で使用する複数の乗算値を予め記憶部に記憶して、離散ウェーブレット変換を実行すると、分解レベル1に変換した後、分解レベル2に変換するためには、ドベシィの数列と掛け算すべき画素値を0~255の範囲の整数値に丸める必要がある。この丸める処理が頻発すると、丸め誤差が蓄積して画像の品質を低下させる可能性がある。そこで、本実施形態では、分解レベル1を経由していない。

【0132】
また、図1を参照して説明したように、本実施形態によれば、ゼロ変換部50は、変換データEDの高周波成分H2に対して、所定ビット数Bだけ右にシフトするビット演算を実行し、0に近似する係数データを0に変換する。従って、変換データEDから近似データFDを作成する処理の高速化を図ることができる。

【0133】
さらに、本実施形態によれば、ガウス分布作成部60は、近似データFDを構成する複数の係数データがガウス分布を形成するように、近似データFDを処理する。従って、ガウス分布作成部60よりも後段に位置するレンジコーダー符号化部80によるデータ圧縮率を向上させることができる。

【0134】
さらに、本実施形態によれば、ランレングス符号化部70は、ランレングス符号化を実行するため、データ圧縮率を更に向上させることができる。また、ランレングス符号化部70は、期待値EP2を有するガウス分布を形成するように、高周波成分G2に対応する複数の要素データGG22を作成する。一方、低周波成分G1に対応する複数の要素データGG1は、期待値EP2と同じ期待値EP1を有するガウス分布を形成している。従って、複数の要素データGG1のガウス分布と複数の要素データGG22のガウス分布とを重ねることができる。その結果、ランレングス符号化部70よりも後段に位置するレンジコーダー符号化部80によるデータ圧縮率を更に向上させることができる。

【0135】
さらに、本実施形態に係る符号化装置120によれば、64画素×80画素のカラー画像を表す画像データADを、15360バイトから約1300バイトまで圧縮できる(後述する実施例1を参照)。無線LANの規格では、一般的に、1パケットで送信できるデータのサイズの最大値は、1500バイトである。従って、64画素×80画素のカラー画像を1パケットで送信できる。1フレーム(1枚)が320画素×240画素のカラー画像を送信する場合は、画像分割部20により、カラー画像に対応する画像データBDを15分割する。従って、320画素×240画素のカラー画像を15パケットで送信できる。また、1300バイト×15は19500バイトである。従って、通信部130による通信速度が5Mbpsの場合、操縦装置200に1秒当たり32フレーム(32枚)のカラー画像を送信できる。その結果、撮影部110が1秒当たり30フレーム(30枚)のカラー画像を出力する場合に、リアルタイムで全てのカラー画像を送信でき、操縦装置200でロボット100を操縦する場合に好適である。

【0136】
ただし、1秒当たり30フレームより少ないカラー画像を送信してもよい。例えば、平坦な路面においてロボット100を水平移動させる場合、又は障害物のない垂直な場所においてロボット100を垂直移動させる場合では、操縦装置200に1秒当たり10フレーム(10枚)のカラー画像を送信できればよい。また、ロボット100が静止している場合は、操縦装置200に1秒当たり3フレーム(3枚)のカラー画像を送信できればよい。

【0137】
ロボット100の置かれている環境によって、1秒当たりに送信するカラー画像のフレーム数(枚数)を調整できるが、データ圧縮率は高い程好ましい。必要なフレーム数のカラー画像の通信の完了後に、次の通信まで通信部130を待機させることにより、ロボット100の消費エネルギーを抑制できる。

【0138】
ロボット100の消費エネルギーを抑制できるため、ロボット100に搭載するバッテリーを小型化できる。バッテリーの小型化によって、ロボット100を軽量化できる。ロボット100の軽量化によって、ロボット100に搭載するモーターを小型化できる。その結果、更に消費エネルギーが抑制され、更にバッテリーを小型化できる。つまり、ロボット100の開発において良質なスパイラルが生じ得る。

【0139】
次に、図1及び図8を参照して、ロボット100が実行する符号化方法について説明する。図8は、ロボット100が実行する符号化方法を示すフローチャートである。

【0140】
図1及び図8に示すように、ステップS101において、ロボット100の撮影部110は、撮影部110の視野内の物体及び環境を撮影し、画像データADを符号化装置120の色形式変換部10に出力する。

【0141】
ステップS103において、色形式変換部10は、画像データADの色形式を変換し、画像データBDを画像分割部20に出力する。

【0142】
ステップS105において、画像分割部20は、画像データBDを複数の画像データに分割し、複数の画像データを複数の分割画像データCDとして色成分結合部30に出力する。

【0143】
ステップS107において、色成分結合部30は、分割画像データCDからY成分とU成分とV成分とを抽出し、Y成分とU成分とV成分とを結合し、結合したY成分とU成分とV成分とを画像データDDとしてDWT部40に出力する。

【0144】
ステップS109において、DWT部40は、画像データDDに対して離散ウェーブレット変換を実行し、離散ウェーブレット変換が実行された画像データDDを変換データED(第1変換データ)としてゼロ変換部50に出力する。

【0145】
ステップS111において、ゼロ変換部50は、変換データEDに対して近似処理を実行し、近似処理後の変換データEDを、近似データFD(第2変換データ)として、ガウス分布作成部60に出力する。近似処理とは、0に近似する係数データを0に変換する処理のことである。

【0146】
ステップS113において、ガウス分布作成部60は、近似データFDを構成する複数の係数データがガウス分布を形成するように、近似データFDを処理し、処理された近似データFDを、ガウス分布データGDとしてランレングス符号化部70に出力する。

【0147】
ステップS115において、ランレングス符号化部70は、ガウス分布データGDに対して、ランレングス符号化を実行し、ランレングス符号化後のガウス分布データGDを、ランレングス符号化データHDとして、レンジコーダー符号化部80に出力する。

【0148】
ステップS117において、レンジコーダー符号化部80は、レンジコーダーによりランレングス符号化データHDを符号化し、符号化データID及び付属データATを作成して通信部130に出力する。ステップS117の処理の詳細は、図6に示したレンジコーダー符号化処理と同様である。

【0149】
ステップS119において、通信部130は、圧縮画像データとしての符号化データID及び付属データATを、ネットワーク300を介して、操縦装置200に送信する。以降、ステップS101で順次作成される画像データADに対して、ステップS103~ステップS119の処理が繰り返し実行される。

【0150】
なお、変換データED、近似データFD、ガウス分布データGD、ランレングス符号化データHD、及び符号化データIDは、画像データADに基づくデータであるため、画像データと称することもできる。

【0151】
以上、図8を参照して説明したように、本実施形態に係る符号化方法によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化の処理速度を向上させることができる。

【0152】
次に、図1及び図9を参照して、ロボット100の電気的構成について説明する。図9は、ロボット100の電気的構成を示す図である。ロボット100は、コンピューターとしてのFPGA(Field Programmable Gate Array)140と、カメラ110Aと、通信機130Aと、単数又は複数のモーター150とを備える。FPGA140はメモリー140aを含む。メモリー140aは、各種データを記憶したり、FPGA140のワーク領域として機能したりする。メモリー140aは、例えば、単数又は複数の半導体メモリーである。半導体メモリーは、例えば、フラッシュメモリー、RAM、及び/又はROMである。

【0153】
FPGA140は、各種演算を実行して、カメラ110A、通信機130A、及び各モーター150を制御する。また、図1に示すように、FPGA140は、符号化装置120として機能する。メモリー140aは記憶部40aとして機能する。カメラ110Aは、FPGA140に制御され、撮影部110として機能する。カメラ110Aは、例えば、イメージセンサーである。通信機130Aは、FPGA140に制御され、通信部130として機能する。通信機130Aは、アンテナを有し、ネットワーク300と無線接続される。モーター150は、ロボット100の機能に応じた数だけ備えられる。モーター150は、FPGA140に制御され、ロボット100の被駆動部を駆動する。モーター150は、例えば、サーボモーターである。

【0154】
次に、図10を参照して、操縦装置200の詳細について説明する。図10は、操縦装置200を示す機能ブロック図である。操縦装置200は、通信部210と、復号装置220と、表示部230とを備える。

【0155】
通信部210は、ネットワーク300を介して圧縮画像データとしての符号化データID及び付属データATをロボット100から受信し、符号化データID及び付属データATを復号装置220に出力する。通信部210は、例えば、ネットワーク300と無線で接続され、無線通信を実行する。本実施形態では、通信部210は、ネットワーク300にアクセスするときの通信プロトコルとして、UDP/IPを採用する。復号装置220は、符号化データIDを復号することによって解凍し、画像データAD#を表示部230に出力する。表示部230は、画像データAD#に基づく画像を表示する。

【0156】
以下、具体例を挙げながら、復号装置220の詳細について説明する。復号装置220は、レンジコーダー復号部15と、ランレングス復号部25と、ガウス分布解消部35と、逆離散ウェーブレット変換部45(以下、「IDWT部45」と記載する。)と、分割画像復元部55と、分割画像結合部65と、色形式変換部75とを備える。IDWT部45は記憶部45aを含む。

【0157】
レンジコーダー復号部15について説明する前に、一般的なレンジコーダーによる符号化データの復号について説明する。一般的なレンジコーダーによる復号では、画素値の出現確率Crc及び画素値に対応する下限値Lrを使用して、復号のための計算媒体Codを式(7)により算出するとともに、区間の区間長RNGを式(8)により算出することによって、区間を次々に細分化する。式(7)及び式(8)において、演算子「=」は代入を示す。

【0158】
Cod=Cod-RNG×Lr …(7)
RNG=RNG×Crc …(8)

【0159】
以下、図4(a)及び図4(c)を参照して説明した一般的なレンジコーダーによる符号化データ「8014646784」を復号する例を説明する。図11を参照する。図11は、一般的なレンジコーダーによる符号化データの復号の手順を示す図である。図11に示す数値は10進数である。

【0160】
図11に示すように、符号化データ「8014646784」の上位6桁「801464」を抽出し、計算媒体Codとして扱う。区間長RNGとして、符号化のときと同じ1000000を使用する。従って、画素値の出現確率の下限値の予測値(=Cod/RNG)は0.801と算出される。そして、図4(a)の出現確率テーブルを参照して、予測値「0.801」が属する下限値Lrと上限値Hrとにより形成される区間を探索し、探索した区間に対応する画素値を特定する。予測値「0.801」が属する区間は、0.6~1.0の区間である。従って、0.6~1.0の区間に対応する画素値が4であると特定される。つまり、最初の画素値が復号された。区間を探索して画素値を特定する手法としては、二分探索法等の反復法を使用する。

【0161】
以降、式(7)及び式(8)を使用して、計算媒体Cod及び区間長RNGを更新し、画素値の出現確率の下限値の予測値(=Cod/RNG)を順次算出する。そして、図4(a)の出現確率テーブルを参照して、順次算出される予測値に基づいて、画素値を順次特定し、復号を完了する。その結果、画像を構成する10個の画素の画素値として、4、3、4、2、3、4、1、3、4、2を取得できる。

【0162】
例えば、第2番目の画素値を復号するために、計算媒体Codが201464(=801464-1000000×0.6)と算出され、区間長RNGが400000(=1000000×0.4)と算出される。その結果、予測値(=Cod/RNG)が0.504と算出される。そして、図4(a)の出現確率テーブルを参照して、画素値が3と特定される。

【0163】
次に、図1、図10、及び図12~図15を参照して、レンジコーダー復号部15について説明する。図1及び図10に示すように、レンジコーダー復号部15は、通信部210が出力した符号化データID及び付属データATを受け取る。レンジコーダー復号部15は、符号化データIDごとに、符号化データIDを復号し、ランレングス符号化データHDをランレングス復号部25に出力する。符号化データIDは、レンジコーダー符号化部80がレンジコーダーによりランレングス符号化データHDを符号化した符号化データである。本実施形態では、図11を参照して説明した一般的なレンジコーダーによる符号化データの復号の手順と異なる手順を採用する。

【0164】
以下、レンジコーダー復号部15が、図7(a)及び図7(b)を参照して説明した符号化データID(=0xE828C)を復号する例を参照しながら説明する。

【0165】
図12は、レンジコーダー復号部15を示す機能ブロック図である。図13は、レンジコーダー復号部15が実行する処理を示すフローチャートである。図14は、レンジコーダー復号部15が作成する復号テーブル17(テーブル)を示す図である。復号テーブル17は、要素値の出現確率の下限値の予測値の分子iLrcと、要素値と、要素値の出現確率の下限値の分子Lrcとを対応付けたテーブルである。図15は、レンジコーダー復号部15による復号の手順を示す図である。図15において、「0x」は数値が16進数で表されていることを示す。

【0166】
図12に示すように、レンジコーダー復号部15は、下限値分子算出部15aと、分母指数算出部15bと、テーブル作成部15cと、復号部15dとを含む。

【0167】
図12及び図13に示すように、レンジコーダー復号部15は、ステップS51~ステップS73の処理を実行することによって、符号化データIDを復号し、ランレングス符号化データHDを出力する。

【0168】
すなわち、レンジコーダー復号部15の下限値分子算出部15aは、要素値の出現確率の分子を2の累乗で表したときの指数iCに基づいて、要素値の出現確率の下限値の分子Lrcを算出する。具体的には、下限値分子算出部15aは、式(9)及び式(10)により、出現確率の下限値の分子Lrcを算出する。式(9)において、Lrcpは前回の対象としての要素値の出現確率の下限値の分子Lrcを示し、Wは、式(10)で示される。式(10)において、iCは、前回の対象としての要素値に関連付けられた指数データEXが表す指数iCを示す。指数データEXは付属データATに含まれている。

【0169】
Lrc=Lrcp+W …(9)
W=2iC …(10)

【0170】
例えば、最初の対象としての要素値(=1)の場合は、Lrcp及びWの各々には0が入力されるため、下限値の分子Lrcは0である。次の対象としての要素値(=2)の場合は、Lrcpに前回の対象としての要素値(=1)に対応する下限値の分子Lrc(=0)が入力され、iCに前回の対象としての要素値(=1)に対応する指数iC(=0)が入力されるため、下限値の分子Lrcは1である。更に次の対象としての要素値(=3)の場合は、Lrcpに前回の対象としての要素値(=2)に対応する下限値の分子Lrc(=1)が入力され、iCに前回の対象としての要素値(=2)に対応する指数iC(=1)が入力されるため、下限値の分子Lrcは3である。更に次の対象としての要素値(=4)の場合は、Lrcpに前回の対象としての要素値(=3)に対応する下限値の分子Lrc(=3)が入力され、iCに前回の対象としての要素値(=3)に対応する指数iC(=1)が入力されるため、下限値の分子Lrcは5である。

【0171】
ステップS53において、下限値分子算出部15aは、付属データATに含まれる各指数データEXに関連付けられている各要素値(1~4)に対して、ステップS51の処理が完了したか否か判定する。下限値分子算出部15aは、処理が完了していないと判定した場合(ステップS53でNo)、処理をステップS51に進め、処理が完了したと判定した場合(ステップS53でYes)、処理をステップS55に進める。

【0172】
本実施形態では、要素値は4種類(1~4)であるため、ステップS51の処理が4回実行される。その結果、操縦装置200において、ロボット100において作成された出現確率テーブル82(図7(a))と同じ出現確率テーブル(以下、「出現確率テーブル82」と記載する。)が作成される。つまり、下限値分子算出部15aは、ステップS51を繰り返すことで、要素値と、出現確率の分子の指数iCと、出現確率の下限値の分子Lrcとに基づいて、出現確率テーブル82を算出する。

【0173】
ステップS55において、分母指数算出部15bは、要素値の出現確率の分母を2の累乗で表したときの指数iTRを算出する。具体的な処理は、図6のステップS9の処理と同様である。従って、分母指数算出部15bは、指数iTR(=3)を算出する。

【0174】
図12~図14に示すように、ステップS57において、テーブル作成部15cは、出現確率の下限値の分子Lrcに基づいて、出現確率の下限値の予測値の分子iLrcと要素値とを対応付けた復号テーブル17を作成する。具体的には、テーブル作成部15cは、分子iLrcを更新しながら、出現確率テーブル82を参照して、分子iLrcの各々に対して、分子Lrcを対応付け、対応付けた分子Lrcに基づき要素値を特定し、復号テーブル17を作成する。

【0175】
例えば、テーブル作成部15cは、予測値の分子iLrcを、0を最初の値として、0に1を加算して更新する。テーブル作成部15cは、例えば、分子iLrcが0の場合、0を示す分子Lrcが出現確率テーブル82に存在するため、分子Lrcに対応する要素値(=1)を、分子iLrc(=0)と対応付ける。

【0176】
例えば、テーブル作成部15cは、分子iLrcが4の場合、4を示す分子Lrcが出現確率テーブル82に存在しないため、4より小さく4に最も近似する3を示す分子Lrcに対応する要素値(=3)を、分子iLrc(=4)と対応付ける。なお、例えば、テーブル作成部15cは、分子iLrcが4の場合、4を示す分子Lrcが出現確率テーブル82に存在しないため、4より大きく4に最も近似する5を示す分子Lrcに対応する要素値(=4)を、分子iLrc(=4)と対応付けてもよい。

【0177】
ステップS57の後、復号部15dは、ステップS59~ステップS71の処理を実行し、要素値を復号するたびに、数直線上に設定された区間を細分化し、符号化データIDを復号する。

【0178】
すなわち、ステップS59において、復号部15dは、復号のための計算媒体Code、区間の区間長を2の累乗で表したときの指数iR、及び指数iTRを使用して、式(11)により、要素値の出現確率の下限値の予測値の分子iLrcを算出する。式(11)において、演算子「=」は代入を示す。例えば、図15に示すように、計算媒体Codeの初期値として、符号化データID「0xE828C」のうちの上位3桁0xE82を設定し、指数iRの初期値として、12を設定する。指数iTRは3である(ステップS55)。なお、符号化データIDの上位3桁を初期値に設定したのは、下限値Lowの初期値が3桁だからである(図7(b))。

【0179】
iLrc=Code×2-(iR-iTR) …(11)

【0180】
具体的には、復号部15dは、式(11)を演算するときには、2進数で表された計算媒体Codeを、「iR-iTR」で表されるビット数だけ右にシフトするビット演算を実行して、Code×2-(iR-iTR)を算出する。なお、図13のステップS59における演算子「>>」は、2進数で表された各ビットを右にシフトするビット演算(つまり、シフト演算)を示す。従って、「Code>>(iR-iTR)」は、2進数で表される「Code」を、「iR-iTR」で表されるビット数だけ右にシフトするビット演算を実行することを示す。その結果、10進数で表される「Code」が「2-(iR-iTR)」倍される。

【0181】
ステップS61において、復号部15dは、復号テーブル17を参照して、予測値の分子iLrcに基づいて、要素値を決定する。例えば、図14及び図15に示すように、予測値の分子iLrcが7の場合、復号テーブル17の分子iLrcが示す7に対応する4を、要素値として決定する。要素値を決定することは、要素値を復号することに相当する。

【0182】
ステップS63において、復号部15dは、復号された要素値の出現確率の下限値の分子Lrc、指数iR、及び指数iTRを使用して、式(12)により、計算媒体Codeを更新する。式(12)において、演算子「=」は代入を示す。例えば、図15に示すように、計算媒体Codeの初期値として、0xE82を設定し、指数iRの初期値として、12を設定する。指数iTRは3である(ステップS55)。

【0183】
Code=Code-Lrc×2(iR-iTR) …(12)

【0184】
具体的には、復号部15dは、式(12)を演算するときには、2進数で表された分子Lrcを、「iR-iTR」で表されるビット数だけ左にシフトするビット演算を実行して、Lrc×2(iR-iTR)を算出する。なお、図13のステップS63における演算子「<<」は、2進数で表された各ビットを左にシフトするビット演算(つまり、シフト演算)を示す。従って、「Lrc<<(iR-iTR)」は、2進数で表される「Lrc」を、「iR-iTR」で表されるビット数だけ左にシフトするビット演算を実行することを示す。その結果、10進数で表される「Lrc」が「2(iR-iTR)」倍される。

【0185】
ステップS65において、復号部15dは、復号された要素値の出現確率の分子を2の累乗で表したときの指数iC、及び指数iTRを使用して、式(13)により、指数iRを更新する。式(13)において、演算子「=」は代入を示す。例えば、図15に示すように、指数iRの初期値として、12を設定する。

【0186】
iR=iR+iC-iTR …(13)

【0187】
ステップS59~ステップS65の処理について具体例を挙げて説明する。図15に示すように、まず、式(11)により、最初の分子iLrcとして7(=0xE82×2-(12-3))が算出される。そして、復号テーブル17を参照して、要素値として4が復号される。次に、式(12)により、計算媒体Codeが0x482(=0xE82-5×212-3)に更新され、式(13)により、指数iRが11(=12+2-3)に更新される。

【0188】
次に、式(11)により、分子iLrcとして4(=0x482×2-(11-3))が算出される。そして、復号テーブル17を参照して、要素値として3が復号される。次に、式(12)により、計算媒体Codeが0x182(=0x482-3×211-3)に更新され、式(13)により、指数iRが9(=11+1-3)に更新される。以降、同様の演算により、分子iLrcの算出及び要素値の復号、並びに計算媒体Code及び指数iRの更新が実行される。

【0189】
ステップS67において、復号部15dは、指数iRが所定値MAX以下か否かを判定する。復号部15dは、指数iRが所定値MAX以下でないと判定した場合(ステップS67でNo)、処理をステップS71に進め、指数iRが所定値MAX以下でると判定した場合(ステップS67でYes)、処理をステップS69に進める。本実施形態では、所定値MAXは、符号化部80eにおける所定値MAXと同じであり、1より大きい整数である。

【0190】
例えば、所定値MAXを4に設定する。この場合、図15に示すように、第5番目に復号された要素値(=3)に対応して算出された指数iRは4であるため、処理はステップS69に進む。

【0191】
ステップS69において、復号部15dは、計算媒体Codeに所定数2Cを掛け合わせるとともに(2C倍)、指数iRで表される区間長(=2iR)に所定数2Cを掛け合わせる(2C倍)。本実施形態では、所定数2Cの指数Cは0より大きい整数である。具体的には、区間長(=2iR)に所定数2Cを掛け合わせる演算を実行する代わりに、指数iRに指数Cを加算して、指数iRを更新することによって区間を拡張する。

【0192】
例えば、所定数2Cを28に設定する。この場合、図15に示すように、第5番目に復号された要素値(=3)に対応して算出された計算媒体Code(=0x00A)を28倍するとともに、指数iR(=4)で表される区間長(=24)を28倍することによって区間を拡張する。従って、計算媒体Codeは、0xA00になり、指数iRは12になる。ただし、符号化のときの桁上げ(図6のステップS17、図7(b))に対応して、計算媒体Codeの下位2桁の「00」に代えて、符号化データIDの下位2桁の「8C」を「A」に付加する。

【0193】
ステップS71において、復号部15dは、全ての要素値の復号が完了したか否かを判定する。復号部15dは、処理が完了していないと判定した場合(ステップS71でNo)、処理をステップS59に進め、処理が完了したと判定した場合(ステップS71でYes)、処理をステップS73に進める。本実施形態では、10個の要素値を復号するため、ステップS59~ステップS71の処理が10回実行される。

【0194】
ステップS73において、復号部15dは、複数の要素データELをランレングス符号化データHDとして、ランレングス復号部25に出力し、処理を終了する。複数の要素データELの各々は、復号した要素値を表す。

【0195】
以上、図10、図12、及び図13~図15を参照して説明したように、本実施形態に係る復号装置220によれば、レンジコーダー復号部15は、予測値の分子iLrcと要素値と対応付けた復号テーブル17を作成する。従って、予測値の分子iLrcを算出し、復号テーブル17を参照することにより、容易に要素値を決定できる。従って、反復法等の負荷の大きい処理が要求されない。その結果、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データIDを復号するときの処理速度を向上させることができる。例えば、操縦装置200が高速なコンピューターを搭載することが困難な場合であっても、レンジコーダーによる符号化データIDを復号するときの処理速度を向上させることができる。

【0196】
また、本実施形態によれば、式(11)~式(13)を使用して、予測値の分子iLrcを算出するとともに、計算媒体Code及び区間長を表す指数iRを更新することによって、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化データIDを復号するときの処理速度を更に向上させることができる。

【0197】
また、本実施形態によれば、復号の際に使用する式(11)には、除算が含まれず、乗算は、2の累乗(つまり、2-(iR-iTR))と整数(つまり、Code)との乗算になる。その結果、2進数のシフト演算により、予測値の分子iLrcを算出できる。また、復号の際に使用する式(12)には、除算が含まれず、乗算は、2の累乗(つまり、2(iR-iTR))と整数(つまり、Lrc)との乗算になる。その結果、2進数のシフト演算と減算とにより、計算媒体Codeを算出できる。さらに、復号の際に使用する式(13)には、除算及び乗算が含まれず、和算と減算とにより、指数iRを算出できる。

【0198】
式(11)~式(13)を、シフト演算と和算と減算とで実行することにより、乗算及び/又は除算を実行する場合と比較して、コンピューターに対する負荷を抑制しつつ、レンジコーダーによる符号化データIDの復号を高速に実行できる。従って、搭載するコンピューターに制約のある環境下においても、符号化データIDを復号するときの処理速度を向上させることができる。また、レンジコーダー復号部15は、浮動小数点数を使用せず、整数値だけを使用するため、更に処理を高速化できる。

【0199】
次に、図10及び図16を参照して、操縦装置200が実行する復号方法について、ランレングス復号部25、ガウス分布解消部35、IDWT部45、分割画像復元部55、分割画像結合部65、及び色形式変換部75を含めて説明する。図16は、操縦装置200が実行する復号方法を示すフローチャートである。

【0200】
図10及び図16に示すように、ステップS201において、操縦装置200の通信部210は、符号化データID及び付属データATをロボット100から受信し、符号化データID及び付属データATを復号装置220のレンジコーダー復号部15に出力する。

【0201】
ステップS203において、レンジコーダー復号部15は、符号化データIDごとに、符号化データIDを復号し、ランレングス符号化データHDをランレングス復号部25に出力する。ステップS203の処理の詳細は、図13に示したレンジコーダー復号処理と同様である。

【0202】
ステップS205において、ランレングス復号部25は、ランレングス符号化データHDごとに、ランレングス符号化データHDに対して、ランレングス符号化部70(図1)の処理と逆の処理(ランレングス復号)を実行して、ランレングス符号化データHDを復号する。そして、ランレングス復号部25は、ガウス分布データGDをガウス分布解消部35に出力する。

【0203】
ステップS207において、ガウス分布解消部35は、ガウス分布データGDごとに、ガウス分布データGDに対して、ガウス分布作成部60(図1)の処理と逆の処理を実行して、ガウス分布データGDのガウス分布を解消する。そして、ガウス分布解消部35は、近似データFDを変換データED#としてIDWT部45に出力する。なお、変換データED#は、変換データED(図1)に対応するが、ゼロ変換部50(図1)によって0に近似する係数データが0に変換されている点で、変換データEDと完全には一致していない。

【0204】
ステップS209において、IDWT部45は、変換データED#ごとに、変換データED#に対して、DWT70(図1)の処理と逆の処理(逆離散ウェーブレット変換)を実行して、変換データED#を画像データDD#に変換し、画像データDD#を分割画像復元部55に出力する。この場合、IDWT部45は、分解レベル2の変換データED#を、分解レベル1を経由することなく、分解レベル0の画像データDD#に変換する。なお、画像データDD#は、画像データDD(図1)に対応し、画像データDDと同じデータ形式を有する。

【0205】
具体的には、記憶部45aは、記憶部40a(図1)が記憶している所定数のDWT用乗算値と同じ所定数の乗算値(以下、「IDWT用乗算値」と記載する。)を記憶している。従って、IDWT部45は、複数のIDWT用乗算値に対して和算及び/又は減算を実行することによって、乗算及び除算を実行することなく、変換データED#に対して逆離散ウェーブレット変換を実行する。なお、変換データED#は、画像データADに基づくデータであるため、画像データと称することもできる。

【0206】
ステップS211において、分割画像復元部55は、画像データDD#ごとに、画像データDD#に対して、色成分結合部30(図1)と逆の処理を実行して、画像データDD#から分割画像データCD#を復元する。そして、分割画像復元部55は、分割画像データCD#を分割画像結合部65に出力する。本実施形態では、64画素×80画素の分割画像データCD#が復元される。なお、分割画像データCD#は、分割画像データCD(図1)に対応し、分割画像データCDと同じデータ形式を有する。

【0207】
ステップS213において、分割画像結合部65は、複数の分割画像データCD#に対して、画像分割部20(図1)と逆の処理を実行して、複数の分割画像データCD#を結合した画像データBD#を作成する。そして、分割画像結合部65は、画像データBD#を色形式変換部75に出力する。本実施形態では、5×3個の分割画像データCD#(64画素×80画素)が結合され、320画素×240画素の画像データBD#が作成される。なお、画像データBD#は、画像データBD(図1)に対応し、画像データBDと同じデータ形式を有する。

【0208】
ステップS215において、色形式変換部75は、画像データBD#の色形式を、YUV411形式からRGB形式に変換し、画像データAD#を表示部230に出力する。なお、画像データAD#は、画像データAD(図1)に対応し、画像データADと同じデータ形式を有する。ステップS203~ステップS215の実行によって、符号化データIDが復号されて解凍され、撮影部110(図1)が出力した画像データADに対応する画像データAD#が作成された。

【0209】
ステップS217において、表示部230は、画像データAD#に基づく画像を表示する。操縦者は、順次出力される画像データAD#に基づく画像(つまり、動画)を見ながら、操縦装置200を操作して、ロボット100を操縦する。

【0210】
以上、図10及び図16を参照して説明したように、本実施形態に係る復号方法によれば、搭載するコンピューターに制約のある環境下においても、レンジコーダーによる符号化データIDを復号するときの処理速度を向上させることができる。

【0211】
次に、図10及び図17を参照して、操縦装置200の電気的構成について説明する。図17は、操縦装置200の電気的構成を示す図である。図17に示すように、操縦装置200は、コンピューターとしてのFPGA240と、通信機210Aと、ディスプレー230Aと、入力装置250とを備える。FPGA240はメモリー240aを含む。メモリー240aは、各種データを記憶したり、FPGA240のワーク領域として機能したりする。メモリー240aとして、メモリー140a(図9)と同様の構成を採用できる。

【0212】
FPGA240は、各種演算を実行して、通信機210A、ディスプレー230A、及び入力装置250を制御する。また、図10に示すように、FPGA240は、復号装置220として機能する。メモリー240aは記憶部45aとして機能する。通信機210Aは、FPGA240に制御され、通信部210として機能する。通信機210Aは、アンテナを有し、ネットワーク300と無線接続される。ディスプレー230Aは、FPGA240に制御され、表示部230として機能する。ディスプレー230Aは、例えば、液晶ディスプレーである。入力装置250は、操縦者と操縦装置200とのインターフェースであり、操縦者の命令をFPGA240に入力する。入力装置250は、例えば、スティック、ハンドル、ダイヤル、スイッチ、及び/又はスライダーである。

【0213】
以上、図1~図3、図5~図10、及び図12~図17を参照して説明したように、本実施形態に係るロボットシステム1によれば、符号化装置120の画像分割部20の処理(ステップS105)からレンジコーダー符号化部80の処理(ステップS117)まで、さらに、復号装置220のレンジコーダー復号部15の処理(ステップS203)から分割画像結合部65の処理(ステップS213)までは、整数だけを使用し、乗算と除算とを実行していない。つまり、画像分割部20の処理からレンジコーダー符号化部80の処理までと、レンジコーダー復号部15の処理から分割画像結合部65の処理までとにおいて、整数だけを使用するとともに、和算、減算、及びシフト演算だけを実行して、符号化及び復号を行っている。従って、符号化及び復号化の処理を高速化できる。

【0214】
(変形例)
図1及び図10を参照して、本発明の実施形態の変形例に係るロボットシステム1について説明する。変形例に係るロボットシステム1では、主に、画像分割部20及び分割画像結合部65が、それぞれ、本発明の実施形態(本実施形態)に係る画像分割部20及び分割画像結合部65と異なる。以下、変形例が本実施形態と異なる点を主に説明する。

【0215】
画像分割部20が画像データBDを第1方向x(変形例では、水平方向x)に2分割し、2個の分割画像データCDを作成する例について説明する。画像データBDの解像度は、128画素×80画素であり、分割画像データCDの解像度は、64画素×80画素である。2個の分割画像データCDのうちの一方の分割画像データCDを「第1分割画像データCDL」と記載し、他方の分割画像データCDを「第2分割画像データCDR」と記載する。また、第1分割画像データCDLを符号化後に復号した分割画像データCD#を第1復号分割画像データCDL#と記載し、第2分割画像データCDRを符号化後に復号した分割画像データCD#を第2復号分割画像データCDR#と記載する。

【0216】
画像分割部20に出力される画像データBDでは、128画素×80画素の画素データは、128列×80行のマトリクス状に配置されている。画像データBDでは、各行に128個の画素データが第1方向xに沿って配置されており、各列に80個の画素データが第2方向y(変形例では、垂直方向y)に沿って配置されている。第1方向xに沿って配置された128個の画素データの第1座標x(変形例では、水平座標x)を、それぞれ、0~127に設定する。また、第2方向yに沿って配置された80個の画素データの第2座標y(変形例では、垂直座標y)を、それぞれ、0~79に設定する。

【0217】
画像分割部20は、第2分割画像データCDRが第1方向xに沿って所定画素数PNだけ第1分割画像データCDLと重複するように、画像データBDから、第2分割画像データCDRを分割する。

【0218】
DWT部40は、第1分割画像データCDL及び第2分割画像データCDRの各々に対して、離散ウェーブレット変換を実行する。一方、IDWT部45は、第1分割画像データCDLに対応する変換データED#及び第2分割画像データCDRに対応する変換データED#に対して、逆離散ウェーブレット変換を実行し、それぞれに対応する画像データDD#を出力する。

【0219】
分割画像結合部65は、画像データDD#に基づく第2復号分割画像データCDR#のうち、画像データDD#に基づく第1復号分割画像データCDL#と重複している画素データを破棄した後、第1復号分割画像データCDL#と第2復号分割画像データCDR#とを結合して、画像データBD#を作成する。

【0220】
例えば、画像分割部20は、画像データBDのうち、第1座標xが0~63までの画素データを第1分割画像データCDLとして取得する。また、画像分割部20は、所定画素数PNを2に設定し、画像データBDのうち、第1座標xが62~125までの画素データを第2分割画像データCDRとして取得する。従って、第2分割画像データCDRのうち、第1座標xが62及び63の画素データが、第1分割画像データCDLと重複している。

【0221】
例えば、分割画像結合部65は、第2復号分割画像データCDR#のうち、第1座標xが62及び63の画素データを破棄する。その後、分割画像結合部65は、第1復号分割画像データCDL#と、第2復号分割画像データCDR#とを結合して、画像データBD#を作成する。

【0222】
以上、本実施形態の変形例によれば、画像分割部20を設けているため、所定画素数PNだけ第1分割画像データCDLと重複する第2分割画像データCDRに対して離散ウェーブレット変換が実行されるとともに、そのような第2分割画像データCDRに基づく変換データED#に対して逆離散ウェーブレット変換が実行される。そして、分割画像結合部65によって、第2復号分割画像データCDR#のうち第1復号分割画像データCDL#と重複している画素データを破棄した後、第1復号分割画像データCDL#と第2復号分割画像データCDR#とが結合される。その結果、第1復号分割画像データCDL#と第2復号分割画像データCDR#との境界領域の画質の劣化を抑制できる。例えば、第1復号分割画像データCDL#と第2復号分割画像データCDR#との境界領域に発生する可能性のある筋状の画質の劣化を抑制できる。

【0223】
次に、本発明が実施例に基づき具体的に説明されるが、本発明は以下の実施例によって限定されない。
【実施例】
【0224】
本発明の実施例では、図1に示す符号化装置120と図10に示す復号装置220とをソフトウェアにより構築した。プログラム言語として、C言語を採用した。また、原画像を符号化装置120によって符号化し、符号化データIDを作成した。さらに、符号化データIDを復号装置220によって復号し、復号画像を作成した。
【実施例】
【0225】
(実施例1)
図1、図10、図18(a)~図18(d)を参照して、本発明の実施例1について説明する。図18(a)は、実施例1に係る符号化装置120による符号化対象の原画像SA0を示す図である。原画像SA0の解像度は128画素×80画素であった。原画像SA0はカラー画像であった。
【実施例】
【0226】
符号化装置120の画像分割部20は、色形式を変換した後の原画像SA0を2枚の画像(以下、「分割画像」と記載する。)に分割した。分割画像の各々の解像度は、64画素×80画素であった。そして、各分割画像に対して、色成分結合部30、DWT部40、ゼロ変換部50、ガウス分布作成部60、ランレングス符号化部70、及びレンジコーダー符号化部80による符号化を実行し、符号化データIDを作成した。そして、この符号化データIDを、復号装置220によって復号し、復号画像を作成した。
【実施例】
【0227】
図18(b)~図18(d)は、それぞれ、実施例1に係る復号装置220による復号画像SA1~復号画像SA3を示す図である。
【実施例】
【0228】
図18(b)に示すように、復号画像SA1の画質は優良である。復号画像SA1では、ゼロ変換部50によって、-1以上1(=21-1)以下の係数値が0に変換された(B=1)。つまり、ゼロ変換部50は、1ビットだけ右にシフトするビット演算を実行した。
【実施例】
【0229】
図18(c)に示すように、復号画像SA2の画質は優良である。復号画像SA2では、ゼロ変換部50によって、-3以上3(=22-1)以下の係数値が0に変換された(B=2)。つまり、ゼロ変換部50は、2ビットだけ右にシフトするビット演算を実行した。
【実施例】
【0230】
図18(d)に示すように、復号画像SA1及び復号画像SA2の画質よりも多少の劣化が観測されるが、復号画像SA3の画質は良好であった。復号画像SA3では、ゼロ変換部50によって、-7以上7(=22-1)以下の係数値が0に変換された(B=3)。つまり、ゼロ変換部50は、3ビットだけ右にシフトするビット演算を実行した。
【実施例】
【0231】
画像の圧縮の程度を検討した。原画像SA0のデータサイズは、30720バイトであった。復号画像SA1を復号する前における符号化データIDのサイズは、4293バイトであった。1分割画像当たり、約2100バイトであった。復号画像SA2を復号する前における符号化データIDのサイズは、2618バイトであった。1分割画像当たり、約1300バイトであった。復号画像SA3を復号する前における符号化データIDのサイズは、2009バイトであった。1分割画像当たり、約1000バイトであった。最も圧縮されていたのが復号画像SA3であり、次に圧縮されていたのが復号画像SA2であり、次に圧縮されていたのが復号画像SA1であった。
【実施例】
【0232】
データ送信について検討した。無線LANにおいて、1パケット当たりに送信できるデータサイズは、一般的に、1500バイトであった。従って、復号画像SA2を復号する前における符号化データID(1分割画像に対応)及び復号画像SA3を復号する前における符号化データID(1分割画像に対応)の各々を、1パケットで送信可能なことが確認できた。また、符号化データIDの復号に必要な付属データATを、符号化データIDとともに、1パケットで送信可能なことが確認できた。
【実施例】
【0233】
(実施例2)
図19(a)~図19(d)を参照して、本発明の実施例2について説明する。実施例2では、実施例1に係る復号画像SA2を復号する前における符号化データIDの作成過程について検討した。原画像は、図18(a)に示す原画像SA0であった。
【実施例】
【0234】
図19(a)は、実施例2に係る符号化装置120のDWT部40が作成した変換データEDの表す画像WILを示す図である。この画像WILは、原画像SA0を2分割したうちの一方の分割画像に対応していた。画像WILは、低周波領域LA1(本実施形態の低周波成分L1に相当)と、高周波領域LB1(本実施形態の高周波成分H2に相当)とを含んだ。低周波領域LA1には、原画像SA0に含まれる女性の像のうちの左半分がぼんやりと含まれていた。
【実施例】
【0235】
図19(b)は、実施例2に係る符号化装置120のゼロ変換部50が作成した近似データFDの表す画像AILを示す図である。この画像AILは、画像WILから作成された。画像AILは、低周波領域LA1に対応する低周波領域LA2(本実施形態の低周波成分L1に相当)と、高周波領域LB1に対応する高周波領域LB2(本実施形態の高周波成分H3に相当)とを含んだ。図19(b)において、黒色の領域は、係数値が0の領域を示した。ゼロ変換部50によって画像WILの高周波領域LB1の大部分が0に変換されていることが確認できた。
【実施例】
【0236】
図19(c)は、実施例2に係る符号化装置120のDWT部40が作成した変換データEDの表す画像WIRを示す図である。この画像WIRは、原画像SA0を2分割したうちの他方の分割画像に対応していた。画像WIRは、低周波領域RA1(本実施形態の低周波成分L1に相当)と、高周波領域RB1(本実施形態の高周波成分H2に相当)とを含んだ。低周波領域RA1には、原画像SA0に含まれる女性の像のうちの右半分がぼんやりと含まれていた。
【実施例】
【0237】
図19(d)は、実施例2に係る符号化装置120のゼロ変換部50が作成した近似データFDの表す画像AIRを示す図である。この画像AIRは、画像WIRから作成された。画像AIRは、低周波領域RA1に対応する低周波領域RA2(本実施形態の低周波成分L1に相当)と、高周波領域RB1に対応する高周波領域RB2(本実施形態の高周波成分H3に相当)とを含んだ。図19(d)において、黒色の領域は、係数値が0の領域を示した。ゼロ変換部50によって画像WIRの高周波領域RB1の大部分が0に変換されていることが確認できた。
【実施例】
【0238】
以上、図面を参照しながら本発明の実施形態及び実施例について説明した。但し、本発明は、上記の実施形態及び実施例に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能である(例えば、下記に示す(1)~(6))。また、上記の実施形態に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明の形成が可能である。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。図面は、理解しやすくするために、それぞれの構成要素を主体に模式的に示しており、図示された各構成要素の厚み、長さ、個数、間隔等は、図面作成の都合上から実際とは異なる場合もある。また、上記の実施形態で示す各構成要素の材質、形状、寸法等は一例であって、特に限定されるものではなく、本発明の効果から実質的に逸脱しない範囲で種々の変更が可能である。
【実施例】
【0239】
(1)図9及び図17を参照して説明したように、符号化装置120及び復号装置220を実現するコンピューターとして、FPGA140及びFPGA240を例示した。ただし、符号化装置120及び復号装置220を実現するコンピューターは、FPGAに限定されず、例えば、CPU(Central Processing Unit)、MCU(Micro Controller Unit)、ASIC(Application Specific Integrated Circuit)、又はプロセッサーでもよい。
【実施例】
【0240】
また、符号化装置120及び復号装置220をハードウェアにより実現したが、ソフトウェアにより実現してもよいし、ハードウェアとソフトウェアとにより実現してもよい。例えば、ロボット100に、図6のステップS1~ステップS21及び図8のステップS103~ステップS117をコンピューターに実行させるコンピュータープログラムを実装して、コンピューターにコンピュータープログラムを実行させることによって、符号化装置120を実現できる。コンピュータープログラムは、ロボット100に実装されたメモリーのような記憶媒体に記憶される。例えば、操縦装置200に、図13のステップS51~ステップS73及び図16のステップS203~ステップS215をコンピューターに実行させるコンピュータープログラムを実装して、コンピューターにコンピュータープログラムを実行させることによって、復号装置220を実現できる。コンピュータープログラムは、操縦装置200に実装されたメモリーのような記憶媒体に記憶される。
【実施例】
【0241】
さらに、図1~図3、図5~図10、及び図12~図17を参照して説明したように、本実施形態に係るロボットシステム1では、画像分割部20の処理からレンジコーダー符号化部80の処理までと、レンジコーダー復号部15の処理から分割画像結合部65の処理までとにおいて、整数だけを使用するとともに、和算、減算、及びシフト演算だけを実行している。
【実施例】
【0242】
従って、符号化の結果及び復号の結果が、符号化装置120及び復号装置220を実現するコンピューターの性能、CPUのような演算器の種別、OS(Operating System)の種類、及びコンパイラーの種類に依存しない。また、符号化の結果及び復号の結果は、符号化装置120及び復号装置220を実現するCPU、MCU、FPGA(140、240)、ASIC、及びパーソナルコンピューター等、ハードウェアに依存しない。従って、例えば、FPGA(140、240)のハードウェア記述言語(例えば、VHDL)でプログラムを作成する際には、C言語での計算結果を参考にしながら、一歩ずつ確実にプログラム開発が可能である。
【実施例】
【0243】
また、記憶装置としてのメモリー140aはFPGA140の内部に配置され、記憶装置としてのメモリー240aはFPGA240の内部に配置された。ただし、記憶装置は、FPGA140及びFPGA240の各々の外部に配置してもよいし、FPGA140及びFPGA240の各々の内部と外部とに配置されてもよい。
【実施例】
【0244】
(2)図1を参照して説明したように、符号化対象の画像データの例として、QVGAの画像データADについて説明したが、符号化対象の画像データの解像度及びサイズは特に限定されない。例えば、VGA(Video Graphics Array)の画像データADを符号化することもできる。VGAは、640画素×480画素の解像度を示す。この場合、画像分割部20は、画像データADを60分割し、60個の64画素×80画素の分割画像データCDを作成する。また、画像データADは、カラー画像を示す画像データであってもよいし、白黒画像データを示す画像データであってもよい。
【実施例】
【0245】
(3)図2を参照して説明した色成分結合部30は、Y成分I1とU成分I2とV成分I3とを結合し、M画素×(N+L)画素の画像データDDを生成して、DWT部40に出力してもよい。
【実施例】
【0246】
(4)ロボット100は、例えば、魚型ロボットのような水中を移動するロボット、橋梁又は壁のような高所を移動するロボット、陸上を移動するロボット、又は空中を飛行するロボットである。また、符号化装置120は、ロボット100に限らず、遠隔操縦される様々な機器に搭載できる。例えば、符号化装置120は、ラジオコントロールされる模型船舶、模型自動車、又は模型飛行機に搭載できる。
【実施例】
【0247】
(5)図1を参照して説明したDWT部40、ゼロ変換部50、ランレングス符号化部70、及びレンジコーダー符号化部80の各々は、単独で符号化を実行することもできる。この場合は、DWT部40に対応してIDWT45が用意され、ランレングス符号化部70に対応してランレングス復号部25が用意され、レンジコーダー符号化部80に対応してレンジコーダー復号部15が用意される。
【実施例】
【0248】
(6)未来社会において、社会インフラ等を小型ロボットの遠隔操縦で行う時代が訪れる可能性が高い。しかし、社会インフラ点検用等、落下の可能性を有する環境で用いるロボットにおいては、ロボット取得画像と操縦用画像の時間差を極力短くする必要がある。本発明の符号化技術は、移動ロボットの脆弱な演算装置に特に好適であり、操縦者の手元に送られる遠隔操縦用画像のリアルタイム性を向上させることができる。
【産業上の利用可能性】
【0249】
本発明は、符号化装置、復号装置、符号化復号装置、符号化方法、及び復号方法に関するものであり、産業上の利用可能性を有する。
【符号の説明】
【0250】
1 ロボットシステム
10 色形式変換部
15 レンジコーダー復号部
15a 下限値分子算出部
15b 分母指数算出部
15c テーブル作成部
15d 復号部
20 画像分割部
25 ランレングス復号部
30 色成分結合部
35 ガウス分布解消部
40 離散ウェーブレット変換部
45 逆離散ウェーブレット変換部
45a 記憶部
40a 記憶部
50 ゼロ変換部
55 分割画像復元部
60 ガウス分布作成部
65 分割画像結合部
70 ランレングス符号化部
75 色形式変換部
80 レンジコーダー符号化部
80a 出現確率算出部
80b 分子指数算出部
80c 下限値分子算出部
80d 分母指数算出部
80e 符号化部
100 ロボット
110 撮影部
120 符号化装置
130 通信部
200 操縦装置
210 通信部
220 復号装置
230 表示部
300 ネットワーク
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10
【図12】
11
【図13】
12
【図14】
13
【図15】
14
【図16】
15
【図17】
16
【図18】
17
【図19】
18