(57)【特許請求の範囲】
【請求項１】
２次元画像空間上にデータをマッピングするデータ符号化装置であって、
前記２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段と、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手段と、
を具備することを特徴とするデータ符号化装置。
【請求項２】
前記データ・マッピング手段は、低解像度の画像空間にマッピングされたデータのパターンを満たすようにより高解像度の画像空間へのデータのマッピングを行なう、
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項３】
前記２次元画像空間は複数の発光素子を２次元平面上に配列して構成され、
前記データ・マッピング手段は、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする（但し、ｊ＜ｋであればｎj＜ｎkとする）、
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項４】
前記データ・マッピング手段は、符号化対象データのサイズに応じてマッピングすべき画像空間の解像度を決定する、
ことを特徴とする請求項１に記載のデータ符号化装置。
【請求項５】
２次元画像空間上にデータをマッピングするデータ符号化方法であって、
前記２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解ステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング・ステップと、
を具備することを特徴とするデータ符号化方法。
【請求項６】
２次元画像空間上にマッピングされたデータを解読するデータ復号化装置であって、
前記２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解手段と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元手段と、
を具備することを特徴とするデータ復号化装置。
【請求項７】
前記データ復元手段は、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元する（但し、ｊ＜ｋであればｎj＜ｎkとする）、
ことを特徴とする請求項６に記載のデータ復号化装置。
【請求項８】
２次元画像空間上にマッピングされたデータを解読するデータ復号化方法であって、
前記２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解ステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元ステップと、
を具備することを特徴とするデータ復号化方法。
【請求項９】
光学的信号の形式でデータを送出するデータ送信装置であって、
複数の発光素子を２次元平面上に配列してなる２次元発光手段と、
前記２次元発光手段の各発光素子の点滅により構成される２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段と、
各解像度の画像空間に対してそれぞれ送信データをマッピングするデータ・マッピング手段を具備し、
前記データ・マッピング手段によりマッピングされた点滅パターンを前記２次元発光手段の各発光素子を用いて出力する、
ことを特徴とするデータ送信装置。
【請求項１０】
前記データ・マッピング手段は、低解像度の画像空間にマッピングされたデータのパターンを満たすようにより高解像度の画像空間へのデータのマッピングを行なう、
ことを特徴とする請求項９に記載のデータ送信装置。
【請求項１１】
前記データ・マッピング手段は、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする（但し、ｊ＜ｋであればｎj＜ｎkとする）、
ことを特徴とする請求項９に記載のデータ送信装置。
【請求項１２】
前記データ・マッピング手段は、送信データのサイズに応じてマッピングすべき画像空間の解像度を決定する、
ことを特徴とする請求項９に記載のデータ送信装置。
【請求項１３】
前記データ・マッピング手段によりマッピングされた点滅パターンの表示時間を各解像度の画像空間毎に異ならせる、
ことを特徴とする請求項９に記載のデータ送信装置。
【請求項１４】
より低解像度の画像空間ほど点滅パターンの表示時間を長くする、
ことを特徴とする請求項１３に記載のデータ送信装置。
【請求項１５】
光学的信号の形式で送出されたデータを受信するデータ受信装置であって、
２次元平面上に展開された光の点滅パターンを撮影する撮影手段と、
前記撮影手段により撮影された２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解手段と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復号化手段と、
を具備することを特徴とするデータ受信装置。
【請求項１６】
前記撮影手段により撮影された２次元画像空間を射影変換する射影変換手段をさらに備える、
ことを特徴とする請求項１５に記載のデータ受信装置。
【請求項１７】
前記データ復元手段は、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元する（但し、ｊ＜ｋであればｎj＜ｎkとする）、
ことを特徴とする請求項１５に記載のデータ受信装置。
【請求項１８】
前記撮影手段は、点滅パターンの撮影時間を各解像度の画像空間毎に異ならせる、
ことを特徴とする請求項１５に記載のデータ受信装置。
【請求項１９】
前記撮影手段は、より低解像度の画像空間ほど点滅パターンの表示時間を長くする、
ことを特徴とする請求項１５に記載のデータ受信装置。
【請求項２０】
２次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、前記コンピュータ・システムに対し、
前記２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手順と、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手順と、
を実行させることを特徴とする記憶媒体。
【請求項２１】
２次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、前記コンピュータ・システムに対し、
前記２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解手順と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元手順と、
を実行させることを特徴とする記憶媒体。
【請求項２２】
２次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータ・システムに対し、
前記２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手順と、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手順と、
を実行させることを特徴とするコンピュータ・プログラム。
【請求項２３】
２次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータ・システムに対し、
前記２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解手順と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元手順と、
を実行させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、実空間上で転送するデータを符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに係り、特に、光の点滅パターンで表現した光学的信号により転送されるデータを符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに関する。
【０００２】
さらに詳しくは、本発明は、２次元マトリックス状に配置された光源の点滅パターンで表現される転送データを符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに係り、特に、２次元マトリックス状に配置された光源の点滅パターンで表現されるデータを距離に応じたビットレートで転送する符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに関する。
【０００３】
【従来の技術】
情報処理技術や情報通信技術が高度に発達した現代においては、パーソナル・コンピュータや携帯情報端末を始めとする情報機器がオフィスや家庭内などの実世界上のいたるところに遍在する。このような環境下では、機器どうしを接続して、いつでもどこでも欲しい情報を入手する「ユビキタス（Ubiquitous）・コンピューティング」や、実世界における状況（実世界の事物やユーザの位置など）を積極的に利用した拡張現実システム（Augmented Reality：ＡＲ）の実現が期待される。
【０００４】
ユビキタス・コンピューティングの概念は、人がどこに移動しても利用できるコンピュータの環境が同じであることである。すなわち、「いつでもどこでも」なのだから、究極のユビキタス・コンピューティングは、必ずしもコンピュータやＰＤＡ（Personal Digital Assistant）や携帯電話機などの情報端末を必ずしも必要とはしない。
【０００５】
ところが、ネットワーク上でデータ転送先となるコンピュータや周辺機器（すなわちユーザ端末などのターゲット）を指定したり、あるいはユーザの位置や実世界オブジェクトに関連した情報など実世界状況を入手しようとすると、すぐ目の前にある相手であっても、その名前（若しくは、機器固有のＩＤやネットワーク・アドレス、ホスト・ネーム、ＵＲＬ／ＵＲＩなどの資源識別子）を知る必要がある。すなわち、ユーザ操作に関して言えば、間接的な形式でしかコンピュータ間の連携がなされておらず、直感性にやや欠ける。
【０００６】
このような煩雑な手続を省略して、ユーザの識別情報を転送したり、ユーザの位置などの実世界状況を取得するための技術として、「サイバーコード（Ｃｙｂｅｒｃｏｄｅ）」などのビジュアルコードやＲＦタグのような、実世界コンピューティングを利用した手法が提案されている。これらの手法によれば、ユーザは意識してネットワークにアクセスする必要はなく、自動的に拾われたオブジェクトのＩＤなどから、オブジェクトに関連する情報を獲得することができる。
【０００７】
例えば、ビジュアルコードやＲＦタグの識別情報に対してあらかじめアプリケーションなどの機能や、機器ＩＤ、ネットワーク・アドレス、ホスト・ネーム、ＵＲＬやその他のオブジェクト関連情報を登録しておく。そして、カメラの撮影画像からサイバーコードを認識したことに応答して、コンピュータは、登録されたアプリケーションを実行させたり（例えば「メールを起動する」など）、認識されたＩＤを基に相手のネットワーク・アドレスを探索して自動的に接続を果たしたり、認識されたＵＲＬを基に資源アクセスを行ったりすることができる。
【０００８】
しかしながら、ビジュアルコードのような視認性の識別情報を用いた場合、距離に応じてコードの大きさが変化する。すなわち、オブジェクトが遠く離れるとコードが小さくなるので、遠くのものを認識するには大きなパターンを持つコードを形成する必要がある。言い換えれば、この手法に基づく情報伝達手法は距離に対するロバスト性に欠ける。例えば、遠くにあるビルを認識するためには、ビルに巨大なコードを貼り付ける必要があり、現実的でない。
【０００９】
また、ＲＦタグの場合、ユーザはＲＦタグをタグ読み取り装置に向けたり接触させたりしなければならない。すなわち、至近距離の物体のみ認識が可能であり、遠くのものを認識することはできない。
【００１０】
そこで、本出願人に既に譲渡されている特願２００２−５７８３６号明細書には、光学的な形式で識別情報やその他のデータを担持又は伝送する光学的信号と、これを捕捉する高速な２次元イメージ・センサを利用することで、空間解像度を持つとともに、遠距離でも利用可能なデータ伝送を実現するデータ通信システムについて提案されている。
【００１１】
送信機側では、送信データを構成するビット系列を所定長ずつ切り出し、所定の変換テーブルを基に表示パターンに変換して、これを例えばＬＥＤのような点滅する光源を光学信号とする。したがって、ビジュアルコードのように色の空間パターンに符号化するのではなく、距離に応じてデータが変化しない点滅パターンなどの時系列の光学信号に符号化してデータを送信する。
【００１２】
また、受信機を構成するイメージ・センサは、例えばＣＭＯＳ（Complementary Metal Oxide Semiconductor：相補性金属酸化膜半導体）センサやＣＣＤ（Charge Coupled Device：電荷結合素子）センサなどのように、無数の受光素子すなわち画素が２次元アレイ上に配置された構成であり、光学信号並びにその空間的情報を全画素でデコードする。イメージ・センサは、普通のカメラとしてシーンを撮影するとともに、そのイメージ・センサの視界中に配置された光学信号を長距離から受信することができる。
【００１３】
例えば室内の家具や電化製品あるいは屋外のビルなどの実世界オブジェクトには、所定の物理的な配置がなされた２以上のＬＥＤなどの発光部からなる送信機が設置される。そして、送信データを構成するビット系列を所定長ずつ切り出し、所定の変換テーブルを基に光源の点滅からなる表示パターンに変換して、各発光部を明滅することによりデータ送信が行なわれる。一方の受信機は、２次元受光面からなる受光部を備え、変換テーブルを基に受光した点滅パターンから送信データをデコードするとともに、２次元受光面上における点滅パターンの検出位置を基にオブジェクトの空間情報を認識することができる。
【００１４】
送信機が出力する送信データとして、例えば、オブジェクトのＩＤやそのネットワーク・アドレス、ホスト・ネーム、ＵＲＬやＵＲＩなどの資源識別子、その他のオブジェクト関連情報などが挙げられる。
【００１５】
【発明が解決しようとする課題】
光学的信号を利用したデータ通信システムの応用例として、多数のＬＥＤをマトリックス状に組み合わせて２次元的な点滅パターンとして光学的信号を送信する方式を挙げることができる。この場合、一度に複数ビットのデータを送出できることからシステムのビットレートを格段に向上させることができる。
【００１６】
ところが、このような２次元的な点滅パターンを伝送媒体に用いたシステムの場合、送信装置と受信装置間の距離が問題となる。例えば、送受信装置間の距離に比べて受信装置側のイメージ・センサの解像度が充分でないと、一切の情報を得ることができない。すなわち、マトリックス配置されたＬＥＤの点滅を完全に判別できるまで接近しなければ何の情報も受信することができず、距離に対するロバスト性に欠ける。
【００１７】
このような場合、受信者側は送信装置のより近くに歩いていけばよいが、実際に近づいてみると自分にはまったく必要でない情報であることが判明するという無駄な作業を強いることになりかねない。要言すれば、２次元的な点滅パターンを伝送媒体に用いたシステムは、距離に対するロバスト性がよくない。
【００１８】
本発明は上述したような技術的課題を鑑みたものであり、その主な目的は、光の点滅パターンからなる光学的信号により転送されるデータを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００１９】
本発明のさらなる目的は、２次元マトリックス状に配置された光源の点滅パターンで表現される転送データを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００２０】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、２次元画像空間上にデータをマッピングするデータ符号化装置又はデータ符号化方法であって、
前記２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段又はステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手段又はステップと、
を具備することを特徴とするデータ符号化装置又はデータ符号化方法である。
【００２１】
また、本発明の第２の側面は、２次元画像空間上にマッピングされたデータを解読するデータ復号化装置又はデータ復号化方法であって、
前記２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解手段又はステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復号化手段又はステップと、
を具備することを特徴とするデータ復号化装置又はデータ復号化方法である。
【００２２】
光学的信号を利用したデータ通信システムの応用例として、多数のＬＥＤをマトリックス状に組み合わせて２次元的な点滅パターンとして光学的信号を送信する方式を挙げることができる。ところが、このような２次元的な点滅パターンを伝送媒体に用いたシステムの場合、送信装置と受信装置間の距離が問題となる。例えば、送受信装置間の距離に比べて受信装置側のイメージ・センサの解像度が充分でないと、一切の情報を得ることができない。
【００２３】
そこで、本発明では、２次元画像空間を複数の解像度レベルに分解して、各解像度の空間毎にそれぞれデータをマッピングするようにした。したがって、離れていた場所から十分でない解像度で２次元画像空間を観察しても、低解像度の空間にマッピングされた２次元点滅パターンを読み取ることができる。また、近い場所から十分な解像度で２次元画像空間を観察することにより、高解像度の空間にマッピングされた２次元点滅パターンを読み取ることができる。これによって、離れている場所からでもある程度の情報を得ることができるとともに、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【００２４】
ここで、前記２次元画像空間は、例えば複数の発光素子を２次元平面上に配列して構成される。したがって、前記データ・マッピング手段又はステップは、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする（但し、ｊ＜ｋであればｎj＜ｎkとする）ことができる。また、前記データ復元手段又はステップは、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元することができる。
【００２５】
前記データ・マッピング手段又はステップは、符号化対象データのサイズに応じてマッピングすべき画像空間の解像度を決定するようにしてもよい。
【００２６】
また、前記データ・マッピング手段又はステップは、前記２次元画像空間を十分でない解像度で観察しても識別可能な状態にしたいデータをより低解像度の画像空間にマッピングするようにしてもよい。
【００２７】
また、前記データ・マッピング手段又はステップは、より詳細なデータを高解像度の画像空間にマッピングするとともに、抽象化された概略的なデータを低解像度の画像空間にマッピングするようにしてもよい。
【００２８】
また、前記データ・マッピング手段又はステップは、各解像度の画像空間にそれぞれエラー訂正のためのデータを付加するようにしてもよい。このような場合、受信側では、各階層の情報にどれくらいエラーがあるかを知ることができる。このようなシステムを使用するのなら、受信側で検知されたエラー量が多過ぎる場合は、その階層よりも高周波数側の階層は解読しないようにしてもよい。
【００２９】
また、前記データ・マッピング手段又はステップは、コンピュータ・グラフィックスのデータを符号化するに際し、描画オブジェクトの幾何データを低解像度の画像空間にマッピングするとともに、該描画オブジェクトのテクスチャ・データを高解像度の画像空間にマッピングするようにしてもよい。また、テクスチャ・データの周波数成分に応じてマッピングすべき画像空間の解像度を切り替えるようにしてもよい。
【００３０】
通常、一般の人は、興味のある情報発信源（送信装置）に対して、受信装置のカメラを真正面に向けるであろう。そして、興味のない情報発信源に対しては、もしカメラが捕らえたとしても、カメラの画面の端に写る程度であろう。情報発信源に対してカメラが真正面に向いていれば、情報発信源を真正面から見ることになり、すべての解像度の画像空間を識別することができる。つまり、この情報発信源から発せられたコンピュータ・グラフィックスのデータをすべて受信することができ、３次元仮想物体の輪郭、高精細なテクスチャの情報からその３次元仮想物体を正確に再現して、モニタ上で表示することができる。
【００３１】
また、本発明の第３の側面は、光学的信号の形式でデータを送出するデータ送信装置であって、
複数の発光素子を２次元平面上に配列してなる２次元発光手段と、
前記２次元発光手段の各発光素子の点滅により構成される２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段と、
各解像度の画像空間に対してそれぞれ送信データをマッピングするデータ・マッピング手段を具備し、
前記データ・マッピング手段によりマッピングされた点滅パターンを前記２次元発光手段の各発光素子を用いて出力する、
ことを特徴とするデータ送信装置である。
【００３２】
また、本発明の第４の側面は、光学的信号の形式で送出されたデータを受信するデータ受信装置であって、
２次元平面上に展開された光の点滅パターンを撮影する撮影手段と、
前記撮影手段により撮影された２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解手段と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復号化手段と、
を具備することを特徴とするデータ受信装置である。
【００３３】
本発明の第３及び第４の各側面によれば、データ送信装置側では、２次元画像空間を複数の解像度レベルに分解して、各解像度の空間毎にそれぞれデータをマッピングしてデータを送出する。したがって、データ受信装置側では、離れていた場所から十分でない解像度で２次元画像空間を観察しても、低解像度の空間にマッピングされた２次元点滅パターンを読み取ることができる。また、近い場所から十分な解像度で２次元画像空間を観察することにより、高解像度の空間にマッピングされた２次元点滅パターンを読み取ることができる。これによって、離れている場所からでもある程度の情報を得ることができるとともに、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【００３４】
ここで、前記２次元画像空間は、例えば複数の発光素子を２次元平面上に配列して構成される。したがって、前記データ・マッピング手段又はステップは、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする（但し、ｊ＜ｋであればｎj＜ｎkとする）ことができる。また、前記データ復元手段又はステップは、ｉ番目の解像度を持つ画像空間ではｎi個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元することができる。
【００３５】
ここで、データ受信装置側では、前記撮影手段により撮影された２次元画像空間を射影変換する射影変換手段をさらに備えていてもよい。このような場合、２次元画像空間と撮影手段の視線方向の位置関係が斜めであった場合などに、２次元画像空間を正面から見た画像に変換することができる。
【００３６】
また、データ送信装置側では、前記データ・マッピング手段によりマッピングされた点滅パターンの表示時間を各解像度の画像空間毎に異ならせるようにしてもよい。例えば、より低解像度の画像空間ほど点滅パターンの表示時間を長くする。つまり、送信側が低周波数部分を低速（Ｐ（ｑ）：ｑは比較的小さい値）で送信することができるので、受信側では、露光時間を長くとり、Ｐ（ｑ）単位で撮影することが可能である。これにより、遠く離れているために受信装置側のカメラが露光不足になりがちな場合にでも、低周波数部分の情報の送受信が可能となる。
【００３７】
また、本発明の第５の側面は、２次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
前記２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解ステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング・ステップと、
を具備することを特徴とする記憶媒体である。
【００３８】
また、本発明の第６の側面は、２次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
前記２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解ステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元ステップと、
を具備することを特徴とする記憶媒体である。
【００３９】
本発明の第５及び第６の各側面に係る記憶媒体は、例えば、さまざまなプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で提供する媒体である。このような媒体は、例えば、ＤＶＤ（Digital Versatile Disc）やＣＤ（Compact Disc）、ＦＤ（Flexible Disk）、ＭＯ（Magneto-Optical disc）などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク（ネットワークは無線、有線の区別を問わない）などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムに提供することも技術的に可能である。
【００４０】
また、本発明の第５及び第６の各側面に係る記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第５及び第６の各側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係るデータ符号化装置又はその方法、及び、第２の側面に係るデータ復号化装置又はその方法と同様の作用効果を得ることができる。
【００４１】
また、本発明の第７の側面は、２次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記２次元画像空間を解像度が異なる複数の画像空間に分解する空間分解ステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング・ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００４２】
また、本発明の第８の側面は、２次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記２次元画像空間を１以上の異なる解像度の画像空間に分解する空間分解ステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００４３】
本発明の第７及び第８の各側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第７及び第８の各側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係るデータ符号化装置又はその方法、及び、第２の側面に係るデータ復号化装置又はその方法と同様の作用効果を得ることができる。
【００４４】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００４５】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４６】
本発明は、視認性の識別情報をカメラで撮影して認識することによりデータ伝送が行なわれるというユビキタス・ネットワークを利用して実現される。すなわち、実世界上に存在する物理オブジェクトに対して複数の光学的な識別情報を取り付けるとともに、これを２次元イメージ・センサで撮影して画像処理・画像認識することにより、オブジェクトからの送信データを解釈する。
【００４７】
実世界オブジェクトに取り付ける光学的な識別情報として、色の空間パターンに符号化されたビジュアルコードの他に、ＬＥＤ（Light Emitting Diode：発光ダイオード）のような点滅する光源からなる光学的信号を利用することができる。後者の場合、時系列的な点滅パターンで構成される信号に符号化してデータを送信することにより、距離に対してロバストなデータ通信を行なうことができる。
【００４８】
また、点滅パターンの撮影に用いられるイメージ・センサは、例えばＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサやＣＣＤ（Charge Coupled Device）センサなどのように、無数の受光素子すなわち画素が２次元アレイ上に配置された構成であり、光学信号並びにその空間的情報を全画素でデコードする。イメージ・センサは、普通のカメラとしてシーンを撮影するとともに、そのイメージ・センサの視界中に配置された光学的信号を長距離から受信することができる。
【００４９】
まず、光学的信号をデータ伝送媒体として用いたデータ通信システムの原理について説明する。
【００５０】
図１には、光学的信号を使用するデータ通信システム１０の基本的構成を模式的に示している。同図に示すように、このデータ通信システム１０は、実空間に散在する各オブジェクトに設置された送信機２０Ａ，２０Ｂ，２０Ｃ…と、ユーザが携行して用いる受信機５０とで構成される。
【００５１】
送信機２０は、送信データとしてのバイト列を光学的に分別可能な１以上のパターンとして表示した光学的信号を送出する。一方の受信機５０は、表示された光学的パターンを受光して、その受光画像を認識して、光学的信号が表わす点滅パターンを基に送信されたバイト列を算出するとともに、光学的信号の受光面上での検出位置を算出する。そして、バイト列と受光位置の組み合わせに応じた処理サービスを実行する。
【００５２】
各送信機２０Ａ…が送出する送信データとしては、オブジェクトのＩＤやそのネットワーク・アドレス、ホスト・ネーム、ＵＲＬやＵＲＩなどの資源識別子、その他のオブジェクト関連情報などが挙げられる。
【００５３】
各送信機２０Ａ…は、ビルの外壁や看板など実世界オブジェクト表面の見え易い場所に設置されており、１又はそれ以上の発光部を備えている。発光部は、例えばマイコン制御のＬＥＤで構成される。そして、所定ビット長のデジタル形式の送信データを所定の変調方式により変調し、ＬＥＤの点灯及び消滅動作によりビット１及びビット０を表わすという表示形式に符号化して、所定ビット（仮にＮビットとする）長の送信データに相当する光学的信号を生成する。このような送信機のことを、以下では、「光ビーコン」とも呼ぶ。
【００５４】
送信機２０のデータ転送レートは、ＬＥＤを点滅させる駆動速度によって決まる。例えば、現在市販されている一般的な発光ダイオード製品であれば、４ｋＨｚ程度の周波数で点滅駆動させることができる。但し、これは、受信機５０側の受光ブロック５１が持つ応答速度の制限を受ける。
【００５５】
例えば、受光ブロック５１が２次元マトリックス状に配設された受光部として、ＣＣＤイメージ・センサを用いた場合、その応答速度は６０Ｈｚ程度であり、ＬＥＤの点滅データを送受信するには遅すぎる。他方、ＣＭＯＳイメージ・センサであれば、１２ｋＨｚ又はそれ以上の応答速度を持つので、送信機２０側でＬＥＤを最高速で駆動させても、受信機５０側では充分にその点滅パターンを検出することができるであろう。
【００５６】
送信データを８ビット長とした場合、２５５通りのデータを送信することが可能である。８ビット長の送信データを４ｋＨｚのキャリアでマンチェスタ符号化して２２ビット長のパケットとして送信する。これにより、光学信号が障害物などによってパケット送信中に隠れても、パケット単位でデータを送ることができる。
【００５７】
さらに本実施形態では、送信機２０は、複数（Ｎ個）のＬＥＤを２次元マトリックス状に並べ、各ＬＥＤ がオン又はオフの状態をとることによって、Ｎビットの情報を空間的パターンとして表示する。この場合、一度に複数ビットのデータを送出できることからシステムのビットレートを格段に向上させることができる。
【００５８】
図２には、２次元の点滅パターンにより光学的信号を送受信するデータ通信システム１０−２の構成を模式的に示している。このデータ通信システム１０−２は、送信装置１００と受信装置２００で構成される。
【００５９】
送信装置１００内の１０１はエンコーダであり、送信したい内容（仮に「情報Ａ」とする）が入力端子１０２から入力されると、その内容を１６×１６個の時系列２次元点滅パターンに変換する。つまり、入力された送信データは、集合Ｄ＝｛ｄ（ｘ，ｙ，ｔ）｜ｄ（ｘ，ｙ，ｔ）∈｛０，１｝、ｘは１以上１６以下の整数、ｙは１以上１６以下の整数、ｔは時刻を表すパラメータであり１以上Ｔ以下の整数｝へと変換される。
【００６０】
ここで、Ｔは、情報Ａの情報量に依存する。そして、２次元発光部１０３は、例えば、縦横それぞれ１６個以上のＬＥＤを２次元上に配置して構成されている。時刻ｔにおいて発光部の中の位置（ｘ，ｙ）から、情報ｄ（ｘ，ｙ，ｔ）が発せられる。即ち、ｄ（ｘ，ｙ，ｔ）が１の時は、位置（ｘ，ｙ）のＬＥＤが点灯し、ｄ（ｘ，ｙ，ｔ）が０の時は、位置（ｘ，ｙ）のＬＥＤが点灯しない。このようにして、情報Ａは複数のＬＥＤの点滅パターンとして送信される。
【００６１】
図２に示す例は、１６×１６＝２５６個のＬＥＤのうち、数個のみ図示している。なお、ここでは、簡単のため、ＬＥＤの数は１６×１６個よりなるとしているが、本発明の要旨は１６×１６個に限定されるものではない。
【００６２】
受信装置２００内の２０１は、受信側の動画撮影用のカメラであり、その解像度は例えば５１２×５１２画素程度で、上記の２次元発光部１０３を撮影することができる。カメラ２０１の撮影するタイミングは、２次元発光部１０３の発光タイミングと同期している。すなわち、時刻ｔ＝１、２、…、Ｔに撮影が行われる。あるいは、カメラ２０１は、より高速に撮影することで、非同期にもできる。なぜなら、高速に撮影することで、各時刻ｔ（ｔは整数）における２次元発光部１０３からの１６×１６個より成る２次元発光パターンｄ（ｘ，ｙ，ｔ）を少なくとも１枚は撮影することができるからである。カメラ２０１が同期している場合、あるいは、非同期であるが高速に撮影している場合、いずれの場合においても、カメラ２０１から、時刻ｔ＝１、２、…、Ｔにおける映像ｄ（ｘ，ｙ，ｔ）を得ることができる。
【００６３】
カメラ２０１から時々刻々入力される画像は、射影変換部２０２に送られる。この射影変換部２０２は、２次元発光部１０３とカメラ２０１の位置関係が斜めであった場合などに、２次元発光部を正面から見た画像に変換するための回路である。例えば、図３に示す画像は２次元発光部１０３を斜めから撮影した場合の画像（カメラ２０１で撮影された画像）であり、射影変換部２０２からこの画像データを射影変換して、図４に示す正面画像を作成する。具体的には、図３における左上のＬＥＤの投影像が変換後の画面上の座標（１，１）に、右上のＬＥＤの投影像が変換後の画面上の座標（１６，１）に、左下のＬＥＤの投影像が変換後の画面上の座標（１，１６）に、右下のＬＥＤの投影像が変換後の画面上の座標（１６，１６）に変換されるように、カメラ画像に２次元アフィン変換を施す。図４に示す画像のサイズは、１６×１６画素である。
【００６４】
デコーダ２０３には、射影変換部２０２の出力画像（各時刻ｔにおける１６×１６画素の画像）を入力すると、各時刻ｔにおける１６×１６画素の画像より、送信されたデータをデコードする。すなわち、時刻ｔ、位置（ｘ，ｙ）における画像が１であればｅ（ｘ，ｙ，ｔ）＝１とし、時刻ｔ、位置（ｘ，ｙ）における画像が０であればｅ（ｘ，ｙ，ｔ）＝０とする。そして、集合Ｅ＝｛ｅ（ｘ，ｙ，ｔ）｜ｅ（ｘ，ｙ，ｔ）∈｛０，１｝、ｘは１以上１６以下の整数、ｙは１以上１６以下の整数、ｔは１以上Ｔ以下の整数｝を作成して、この集合から、送信装置１００から送信された情報Ａを復元する。この復元された情報Ａは、出力端子２０４より出力される。
【００６５】
なお、エンコーダ１０１における情報Ａから時系列２次元点滅パターン（すなわち集合Ｄ）への変換（符号化）と、デコーダ２０３における時系列２次元点滅パターン（すなわち集合Ｅ）から情報Ａへの変換（復号化）は、送信装置１００と受信装置２００間であらかじめ取り決められた方式が採用され、ちょうど逆変換の関係になっている。また、送信装置１００は、エラー対策のため、情報Ａに対してパリティを加えて、受信装置２００でエラー訂正を行えるようにして送信している。
【００６６】
送信装置１００は、例えば、ビルの外壁や広告看板など街頭に設置されている。また、２次元発光部１０３は、数メートル四方の大きさであり、有益な情報（例えば、ビル内で営業しているレストランの営業時間や、割引情報など）を送信している。一般の人は、受信装置２００を所持して街に出かける。そして、受信装置２００のカメラ２０１を送信装置１００の２次元発光部１０３に向けることで、送信装置１００が発している有益な情報を得ることができる。
【００６７】
ここで、受信装置２００を持ったユーザが、送信装置１００が設置されている場所から遠く離れている場所にいる場合について考察してみる。
【００６８】
この場合、カメラ２０１で撮影した画像には、２次元発光部１０３が小さく写ってしまう。例えば、カメラ２０１の撮影画像の中で、２次元発光部１０３の投影像が８×８画素程度であったとしよう。射影変換部２０２では、縦横ともに２倍程度拡大され、１６×１６画素の画像を作成するが、この場合、発光部１０３で発せられた１６×１６個のＬＥＤ１つずつの点滅を、受信装置２００で判別することは不可能である。なぜなら、カメラ２０１で撮影された２次元発光部１０３の投影像は８×８画素程度であるから、およそ２×２個のＬＥＤが、カメラ２０１の１つの画素に撮影されたことになる。つまり、射影変換部２０２により作成された画像の１画素１画素が、それぞれ１つのＬＥＤに対応できず、２×２個程度のＬＥＤの平均的な明るさが、射影変換部２０２により作成された画像の２×２画素に対応する。このため、ＬＥＤ１個ずつの点滅パターンを識別することができない。
【００６９】
例えば、送信装置１００からはレストラン情報が送出されているのに対して、受信装置２００を持ったユーザはレストラン情報ではなく遊園地情報が知りたかったとしよう。街頭にある送信装置１００から何についての情報が発信されているか、遠くにいては分からないので、近くまで歩いて行く必要がある。そして、送信装置１００の近くに来てはじめて遊園地情報ではなくレストラン情報が発信されているのに気付き、落胆する。もし、遠くにいながら、何についての情報を発しているか（詳細な情報でなくても、簡単な情報だけでも）分かれば、近くに行く必要はなかった筈である。
【００７０】
このように、２次元点滅パターンを利用したデータ通信においては、受信装置２００は１６×１６個のＬＥＤが完全に１つずつ判別できるまで近づかなければ、何の情報も得られない。すなわち、送信装置１００と受信装置２００の間の距離に比べて受信装置２００のカメラ２０１の解像度が十分でないと一切の情報を得ることができない。
【００７１】
そこで、本実施形態では、送信装置１００の２次元発光部１０３が出力する２次元点滅パターンの空間を複数の解像度レベルに分解して、各解像度空間にデータをマッピングするようにした。したがって、送信装置１００から離れていたり解像度が十分でない受信装置２００は低解像度空間にマッピングされた２次元点滅パターンを読み取ることができ、また、送信装置１００に近づき又は解像度が十分な受信装置１００はより高解像度の空間にマッピングされた２次元点滅パターンを読み取ることができる。これによって、ユーザは、送信装置１００から離れている場所からでもある程度の情報を得ることができ、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【００７２】
ここで、２次元発光部１０３が１６×１６個のＬＥＤで構成されている場合の解像度空間の構成方法について説明する。解像度が最も低い第１の解像度空間は、１６×１６個のＬＥＤからなる２次元マトリックスを縦横の各方向に２等分して、８×８個のＬＥＤを１ブロックとする合計４ブロックに対してデータをマッピングする（図５を参照のこと）。例えば、４ブロック中でＬＥＤが消滅（又は大部分が消滅）しているブロックの位置により、００，０１，１０，１１のように２ビットのデータを符号化することができる（図６を参照のこと）。
【００７３】
続いて、次に解像度が低い第２の解像度空間は、各８×８個のＬＥＤのブロックをさらに縦横の各方向に２等分して、４×４個のＬＥＤを１ブロックとする合計１６ブロックに対してデータをマッピングする（図７を参照のこと）。このときも同様に、図６に示したように４ブロックを一組にして、４ブロック中でＬＥＤが消滅（又は大部分が消滅）しているブロックの位置により、００，０１，１０，１１のように２ビットのデータを全体で４組だけ符号化することができる。但し、第１の解像度空間にデータがマッピングされたパターンを崩さないように第２の解像度空間のマッピングを行なう必要がある。
【００７４】
図８には、第２の解像度空間にデータがマッピングされている様子を示している。第１の解像度空間では（０，０）がマッピングされ、第２の解像度空間では、左上、右上、右下の各ブロックにおいてそれぞれ（０，０）、（１，０）、（０，０）がマッピングされている。第２の解像度空間の左下のブロックは、第１の解像度空間においてＬＥＤ消滅となっていることから、未使用である。
【００７５】
続いて、次に解像度が低い第３の解像度空間は、各４×４個のＬＥＤのブロックをさらに縦横の各方向に２等分して２×２個のＬＥＤを１ブロックとする合計６４ブロックに対してデータをマッピングする（図９を参照のこと）。このときも同様に、図６に示したように４ブロックを一組にして、４ブロック中でＬＥＤが消滅（又は大部分が消滅）しているブロックの位置により、００，０１，１０，１１のように２ビットのデータを全体で１６組だけ符号化することができる。但し、第１及び第２の解像度空間にデータがマッピングされたパターンを崩さないように第３の解像度空間のマッピングを行なう必要がある。図１０には、図８に示した第１及び第２の解像度空間のマッピング・パターンを満たすように、第３の解像度空間でデータのマッピングを行なった様子を示している。
【００７６】
解像度が最も高い第４の解像度空間では、ＬＥＤ１個ずつの点滅パターンでデータを表現する。このときも同様に、図６に示したように、２×２個のＬＥＤを一組にして、合計６４組の２×２マトリックスを形成して、各マトリックス中でＬＥＤが消滅（又は大部分が消滅）しているＬＥＤの位置により、００，０１，１０，１１のように２ビットのデータを符号化することができる。但し、第１及び第２、第３の解像度空間にデータがマッピングされたパターンを崩さないように第４の解像度空間のマッピングを行なう必要がある。図１１には、図１０に示した第１、第２、及び第３の解像度空間のマッピング・パターンを満たすように、第４の解像度空間でデータのマッピングを行なった様子を示している。
【００７７】
第１〜第４の各解像度の空間にマッピングされた転送情報を、それぞれ第１〜第４の情報と呼ぶことにする。低解像度の空間は情報の転送レートが低く、高解像度になるにつれて転送レートが高くなる。一方、低解像度の空間にマッピングされた情報は、送信装置１００と受信装置２００の距離に対して受信装置２００のカメラ２０１の解像度が十分でなくても、すなわち遠くからでも読み取ることができる。したがって、最終的に送りたい詳細な（すなわちビット数の大きな）データは第４の情報として第４の解像度空間にマッピングし、以下、情報の粒度やデータ長に応じて第３、第２、第１の情報にそれぞれ割り当てて、各解像度空間上で表現するようにすればよい。あるいは、遠くからでも知らしめたい重要な情報を低解像度の空間にマッピングするようにしてもよい。
【００７８】
本実施形態に係る送信装置１００では、エンコーダ１０１におけるエンコード方法を工夫することにより、解像度の異なる各空間に対して第１〜第４の情報を生成している。第１の情報は、解像度の低い受信装置のカメラでも（すなわち、受信装置２００のカメラ２０１で撮影された２次元発光部１０３の投影像がたとえ小さくても）、受信可能である。また、第２の情報は、解像度の低い受信装置のカメラでは（すなわち、カメラ２０１で撮影された２次元発光部１０３の投影像が小さい場合は）受信できないが、ある程度の解像度を持つ受信装置のカメラでは（すなわち、カメラ２０１で撮影された２次元発光部１０３の投影像がある程度大きい場合は）受信することができる。また、第３の情報は、解像度の高い受信装置のカメラでのみ（すなわち、カメラ２０１で撮影された２次元発光部１０３の投影像が大きい場合のみ）受信することができる。第４の情報は、解像度のとても高い受信装置のカメラでのみ（すなわち、カメラ２０１で撮影された２次元発光部１０３の投影像がとても大きい場合のみ）、受信することができる。
【００７９】
第１の情報、第２の情報、第３の情報、及び、第４の情報が与えられたとき、１６×１６個のＬＥＤの時系列２次元点滅パターンの求め方、すなわち、送信装置１００のエンコーダ１０１における各解像度空間への情報の符号化方法、並びに受信装置２００のデコーダ２０３において各解像度空間にマッピングされた情報を復号化する方法について、以下に説明する。ここでは、２次元発光部１０３の素子数（ＬＥＤの数）が１６×１６個の場合に限定せず一般の場合を述べながら、且つ、具体例として、１６×１６個の場合についても適宜述べていくことにする。
【００８０】
まず、以下の説明で使用する幾つかの記号について定義する。
【００８１】
Ｑは、情報の数、すなわち階層数（低解像度から高解像度まで幾つの解像度空間を利用するか）を示す値である。変数ｑは、処理中の解像度空間を指示するために用いられ、１からＱまでの値をとる。ｑ＝１は最も低い解像度空間に関する事柄を示すのに使われる。ｑ＝２は、その次に低い解像度空間に関する事柄を示すのに使われる。以下、同様で、ｑ＝Ｑは、最も高い解像度空間に関する事柄を示すのに使われる。上記の例ではＱ＝４である。
【００８２】
Ｈは、横方向のＬＥＤの個数を示す。また、Ｈ１×Ｈ２×…×ＨＱ＝Ｈとなる整数Ｈ１、Ｈ２、…、ＨＱを決める。Ｖは、縦方向のＬＥＤの個数を示す。Ｖ１×Ｖ２×…×ＶＱ＝Ｖとなる整数Ｖ１、Ｖ２、…、ＶＱを決める。Ｈ１は１以上であり、Ｖ１は１以上であり、任意の２以上のｑに対して（Ｈｑ×Ｖｑ）という値は２以上の整数である。
【００８３】
２次元発光部１０３のＬＥＤを横方向に（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）個、縦方向に（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個より成る長方形部分のＬＥＤの組毎に分けると、（Ｈ１×Ｈ２×…×Ｈｑ）×（Ｖ１×Ｖ２×…×Ｖｑ）組だけできる。第ｑ番目の情報は、この組を使用して伝送する。但し、ｑ＝Ｑ階層目は、１×１個より成るＬＥＤ（すなわち、１つのＬＥＤ）を１つの組と考えて、この組を使用して伝送する。
【００８４】
第（ｑ−１）番目のための（Ｈｑ  ×  Ｈｑ＋１  ×  …  ×  ＨＱ）×（Ｖｑ  ×  Ｖｑ＋１  ×  …  ×  ＶＱ）個より成るＬＥＤの組の１つに注目すると、その中には、第ｑ番目のための（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個よりなるＬＥＤの組が、Ｈｑ×Ｖｑ個だけ存在する。このＨｑ×Ｖｑ個の組に番号付けをする。この番号付けは、左上を１番とし、ラスタスキャン順に番号を振っていく。したがって、右上はＨｑ番目となり、左下はＨｑ×（Ｖｑ  −  １）＋１番目となり、右下はＨｑ×Ｖｑ番目となる。これにより、第１番目から第（ｑ−１）番目までにおける番号を指定して、さらに、ｑ階層目の番号を指定することで、２次元発光部１０３内の「（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×Ｖｑ＋２  ×  …  ×  ＶＱ）個よりなるＬＥＤの組＝ｑ階層目の情報のために使われる組」を、一意に決定できる。
【００８５】
さらに、時間の概念も導入して、ある時刻における２次元発光部１０３内の「（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個より成るＬＥＤの組＝ｑ階層目の情報のために使われる組」というものを考える。この一意に決定される時刻ｔにおける組を、以下ではＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）と記述することにする。
【００８６】
ここで、ｉ１は、１階層目の組を決定する番号であり、１からＨ１×Ｖ１までの整数のいずれかである。ｉ２は、２階層目の組を決定する番号であり、１からＨ２×Ｖ２までの整数のいずれかである。以下、同様であり、ｉｑは、ｑ階層目の組を決定する番号であり、１からＨｑ×Ｖｑまでの整数のいずれかである。
【００８７】
特に、ｑ＝Ｑの場合、２次元発光部内の「（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個よりなるＬＥＤの組＝ｑ階層目の情報のために使われる組」とは、１×１個のＬＥＤを示しているので、記号Ｓ（ｔ，ｉ１，ｉ２，…，ｉＱ）は、時刻ｔにおける１つのＬＥＤの点滅を指定していることになる。
【００８８】
２次元発光部１０３が１６×１６個のＬＥＤで構成される場合、例えば、Ｈ＝Ｖ＝１６であり、Ｈ１＝Ｈ２＝Ｈ３＝Ｈ４＝Ｖ１＝Ｖ２＝Ｖ３＝Ｖ４＝２である。
【００８９】
第１の情報は、（Ｈ２×Ｈ３×Ｈ４）×（Ｖ２×Ｖ３×Ｖ４）＝８×８個のＬＥＤの組を１つの２次元光学信号と考えて、データ伝送すなわち２次元点滅パターンの表示を行なう。この組は、２次元発光部１０３の中に全部でＨ１×Ｖ１＝２×２＝４組ある。この４組は順番付けられており、それぞれ、１番目から４番目のいずれかである。図１２には、時刻ｔにおいて第１の情報を構成するＬＥＤの組み合わせＳ（ｔ，１），Ｓ（ｔ，２），Ｓ（ｔ，３），Ｓ（ｔ，４）の定義を示している。
【００９０】
第１の情報を送るためのそれぞれの組Ｓ（ｔ，１），Ｓ（ｔ，２）…（すなわち、８×８個のＬＥＤの組）の中には、第２の情報を送るための組（すなわち、（Ｈ３×Ｈ４）×（Ｖ３×Ｖ４）＝４×４個のＬＥＤの組）が、Ｈ２×Ｖ２＝２×２＝４組ある。この４組は順番付けられており、それぞれ、１番目から４番目のいずれかである。図１３には、時刻ｔにおいて第２の情報を構成するＬＥＤの組み合わせＳ（ｔ，１，１），Ｓ（ｔ，１，２）…の定義を示している。
【００９１】
第２の情報を送るための組（すなわち、４×４個のＬＥＤの組）の中には、第３の情報を送るための組（すなわち、Ｈ４×Ｖ４＝２×２個のＬＥＤの組）が、Ｈ３×Ｖ３＝２×２＝４組ある。この４組は順番付けられており、それぞれ、１番目から４番目のいずれかである。図１４には、時刻ｔにおいて第３の情報を構成するＬＥＤの組み合わせＳ（ｔ，１，１，１），Ｓ（ｔ，１，１，２）…の定義を示している（但し、紙面の都合上、一部のみ示す）。
【００９２】
第３の情報を送るための組（すなわち、２×２個のＬＥＤの組）の中には、第４の情報を送るための組（すなわち、１×１個のＬＥＤの組）が、Ｈ４×Ｖ４＝２×２＝４組ある。この４組は、順番付けられており、それぞれ、１番目から４番目のいずれかである。図１５には、時刻ｔにおいて第４の情報を構成するＬＥＤの組み合わせＳ（ｔ，１，１，１，１），Ｓ（ｔ，１，１，１，２）…の定義を示している（但し、紙面の都合上、一部のみ示す）。
【００９３】
送信装置１００内のエンコーダ１０１が行なう処理は、入力端子１０２から入力されてきた第１から第Ｑまでの各階層の情報から、２次元発光部１０３での時系列２次元発光パターンを作成することであり、すなわち、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示されるそれぞれのＬＥＤの点滅を決めることに相当する。
【００９４】
ここで、０又は１いずれかの値をとる変数Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）を導入する。ｑ＝Ｑ以外、すなわち、Ｒ（ｔ，ｉ１）やＲ（ｔ，ｉ１，ｉ２）や、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ−１）は、単なる内部での中間処理のための変数である。一方、ｑ＝Ｑの場合、その変数は、「Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）＝１の場合、Ｓ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示される時刻ｔの１つのＬＥＤを点灯させ、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）＝０の場合、点灯しない」という意味を持つ。したがって、送信装置１００内のエンコーダ１０１が行なう処理は、入力端子１０２から入力されてきた第１から第Ｑまでの情報から、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）の値を０か１に決定することである。
【００９５】
なお、ｑ＝Ｑ以外、すなわち、Ｒ（ｔ，ｉ１）やＲ（ｔ，ｉ１，ｉ２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ−１）は、それぞれ、Ｓ（ｔ，ｉ１）やＳ（ｔ，ｉ１，ｉ２）や、…、Ｓ（ｔ，ｉ１，ｉ２，…，ｉＱ−１）に関係している変数であるが（後述）、ここでは、単なる中間処理のための変数として説明する。
【００９６】
まず、第１の情報からＲ（ｔ，ｉ１）を決定し、次いで、Ｒ（ｔ，ｉ１）と第２の情報からＲ（ｔ，ｉ１，ｉ２）を決定し、次いで、Ｒ（ｔ，ｉ１，ｉ２）と第３の情報からＲ（ｔ，ｉ１，ｉ２，ｉ３）を決定する。以下同様にして、最後に、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ−１）と第Ｑの情報からＲ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）を決定する。
【００９７】
本実施形態では、所定のマッピング方法を用いて、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）と入力されてきた第ｑ（ｑ＝１，２，…，Ｑ）の情報から、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）を作成する。送信装置１００内のエンコーダ１０１と受信装置２００内のデコーダ２０３では、同一のマッピング方法が使われており、送信装置１００で変換されたデータは、受信装置２００で同じマッピング方法により元の情報に復元することができる。このマッピング方法は、例えば、以下の条件を満たすように設定されている。
【００９８】
条件１：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝１の場合、Ｎｑビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する。但し、任意のＮｑビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝のＨｑ×Ｖｑ個からなる要素のうち、１であるものの数と０であるものの数は一定であり、その割合はＵｑ：（１−Ｕｑ）である。つまり、１であるものの個数はＵｑ×（Ｈｑ×Ｖｑ）であり、０であるものの個数は(１−Ｕｑ)×（Ｈｑ×Ｖｑ）である。また、Ｎｑビットの入力データの値が異なれば、上述した｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンも異なるようにする。
【００９９】
ここで、Ｎｑは定数であり、Ｎｑビットの入力データとは第ｑの情報の中のＮｑビット分のデータのことである。特にＮｑ＝０であれば、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常にある特定の１つのパターンとなる。
【０１００】
このＮｑビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定するという対応関係を、「第ｑの正の場合のマッピング表」と呼ぶことにする。
【０１０１】
条件２：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝０の場合、Ｍｑビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する。但し、任意のＭｑビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝のＨｑ×Ｖｑ個の要素のうち、１であるものの数と０であるものの数は一定で、その割合はＺｑ：（１−Ｚｑ）である。つまり、１であるものの個数はＺｑ×（Ｈｑ×Ｖｑ）であり、０であるものの個数は(１−Ｚｑ)×（Ｈｑ×Ｖｑ）である。また、Ｍｑビットの入力データの値が異なれば、上述した｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンも異なるようにする。
【０１０２】
ここで、Ｍｑは定数であり、Ｍｑビットの入力データとは第ｑの情報の中のＭｑビット分のデータである。特にＭｑ＝０であれば、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常に、ある特定の１つのパターンとなる。
【０１０３】
このＭｑビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する」という対応関係を、「第ｑの負の場合のマッピング表」と呼ぶことにする。
【０１０４】
条件３：
任意のｑに対して、ＮｑあるいはＭｑのいずれか１つは、少なくとも１以上である。
【０１０５】
条件４：
任意のｑに対して、ＵｑはＺｑを越える。すなわち、Ｕｑ＞Ｚｑである。
【０１０６】
但し、ｑ＝１の場合、対応する１つ上の階層がない。このような場合は、条件２は無視して条件１を満たすようなマッピング表とする。すなわち、以下の条件１’を満たす。
【０１０７】
条件１'：
Ｎｑ（すなわち、Ｎ１）ビットの入力データに対して、｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンを決定する。但し、任意のＮ１ビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝のＨ１×Ｖ１個の要素のうち、１であるものの数と０であるものの数は一定であり、その割合はＵ１：（１−Ｕ１）である。つまり、１であるものの個数はＵ１×（Ｈ１×Ｖ１）であり、０であるものの個数は(１−Ｕ１)×（Ｈ１×Ｖ１）である。また、Ｎ１ビットの入力データの値が異なれば、上記｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンも異なるようにする。ここで、Ｎ１は定数であり、Ｎ１ビットの入力データとは第１の情報の中のＮ１ビット分のデータである。但し、Ｎ１は１以上である。
【０１０８】
このＮ１ビットの入力データに対して、｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンを決定するという対応関係を、「第１の正の場合のマッピング表」と呼ぶことにする。
【０１０９】
この条件１’は、説明の都合上、他の階層との統一性を保つためのものであり、この性質を満たさなくてはいけないという理由は特にない。
【０１１０】
上述した条件１、条件２、条件３、条件４、及び条件１’を満たすマッピング方法は複数考えられるが、それらの中から１つの方法を選び、それをエンコーダ１０１及びデコーダ２０３で共通に使用する。
【０１１１】
これら条件１、条件２、条件３、条件４、及び条件１’を満たすマッピング方法により、第１から第Ｑまでの情報から、Ｒ（ｔ，ｉ１）やＲ（ｔ，ｉ１，ｉ２）や、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）が決定される。
【０１１２】
ここで、時刻ＴにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合について考えて見る。
【０１１３】
あるｑ（ｑ＝２、…、Ｑ）に対して、任意のｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、任意のｉ２（ｉ１＝１、２、…、Ｈ１×Ｖ１）、…、任意のｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）、及び、任意の時刻ｔ（ｔ＝１、２、…、Ｔ）において、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１なら、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤの点灯している割合が確定していると仮定する。この値をＦ１（ｑ）とする。つまり、２次元発光部１０３内のＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個よりなるＬＥＤのうち、点灯しているものが、Ｆ１（ｑ）×（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個であるとする。そして、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０なら、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤの点灯している割合が確定していると仮定する。この値をＦ０（ｑ）とする。つまり、２次元発光部１０３内のＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個よりなるＬＥＤのうち、点灯しているものがＦ０（ｑ）×（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個であるとする。さらに、Ｆ１（ｑ）＞Ｆ０（ｑ）であると仮定する。
【０１１４】
このように仮定すると、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝１なら、上記の条件１から分かるように、Ｓ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）で示される時刻ｔにおける領域内のＬＥＤの点灯している割合は、Ｕｑ×Ｆ１（ｑ）＋（１−Ｕｑ）×Ｆ０（ｑ）＝Ｆ０（ｑ）＋Ｕｑ×（Ｆ１（ｑ）−Ｆ０（ｑ））となる。この値をＦ１（ｑ−１）とする。また、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝０なら、上記の条件２から分かるように、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）で示される領域内のＬＥＤの点灯している割合は、Ｚｑ×Ｆ１（ｑ）＋（１−Ｚｑ ）×Ｆ０（ｑ）＝Ｆ０（ｑ）＋Ｚｑ× （Ｆ１（ｑ）−Ｆ０（ｑ））となる。この値をＦ０（ｑ−１）とする。
【０１１５】
Ｆ１（ｑ）＞Ｆ０（ｑ）という仮定、並びに上記の条件４より、Ｆ１（ｑ−１）＞Ｆ０（ｑ−１）であることが分かる。
【０１１６】
さて、Ｓ（ｔ，ｉ１，ｉ２，…，ｉＱ）は、先述したように、時刻ｔにおける１つのＬＥＤを示している。そして、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）＝１なら、そのＬＥＤは点灯しているので、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示される領域内で点灯しているＬＥＤの割合Ｆ１（Ｑ）は１となる。同様に、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）＝０なら、そのＬＥＤは消灯しているので、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示される領域内で点灯しているＬＥＤの割合Ｆ０（Ｑ）は０となる。したがって、ｑ＝Ｑの場合は、Ｆ１（ｑ）＝１、Ｆ０（ｑ）＝０である。
【０１１７】
以上より、再帰的に、Ｆ１（Ｑ−１）、Ｆ０（Ｑ−１）、Ｆ１（Ｑ−２）、Ｆ０（Ｑ−２）、…、Ｆ１（１）、Ｆ０（０）が求まり、且つ、Ｆ１（Ｑ−１）＞Ｆ０（Ｑ−１）、Ｆ１（Ｑ−２）＞Ｆ０（Ｑ−２）、…、Ｆ１（１）＞Ｆ０（０）である。繰言になるが、Ｆ１（ｑ）は、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１の場合に、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内にあるＬＥＤの点灯している割合である。また、Ｆ０（ｑ）は、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０の場合に、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内にあるＬＥＤの点灯している割合である。
【０１１８】
図１６には、Ｆ１（ｑ）とＦ０（ｑ）を求めるための処理手順をフローチャートの形式で示している。
【０１１９】
まず、変数ｑにＱをセットして（ステップＳ１）、Ｆ１（ｑ）＝１、Ｆ０（ｑ）＝０とする（ステップＳ２）。
【０１２０】
次いで、ｑが２以上であるか調べ（ステップＳ３）、２以上であれば、ステップ４に進み、それ以外なら終了する。
【０１２１】
ステップＳ４では、Ｆ０（ｑ）＋Ｕｑ×（Ｆ１（ｑ）−Ｆ０（ｑ））を計算し、この値をＦ１（ｑ−１）とする。さらに、Ｆ０（ｑ）＋Ｚｑ×（Ｆ１（ｑ）−Ｆ０（ｑ））も計算し、この値をＦ０（ｑ−１）とする。
【０１２２】
ステップＳ５では、ｑを１だけデクリメントする。そして、ステップＳ３に戻りｑが２に到達するまで上述と同様の処理を繰り返し実行する。
【０１２３】
ここで、上記の説明をまとめておく。２次元発光部１０３の素子数（ＬＥＤの個数）が決められており、その数は、横方向にＨ個、縦方向にＶ個である。また、Ｈ１×Ｈ２×…×ＨＱ＝ＨとなるＨ１、Ｈ２、…、ＨＱ、及びＶ１×Ｖ２×…×ＶＱ＝ＶとなるＶ１、Ｖ２、…、ＶＱが決められている。定数Ｕ１、Ｕ２、Ｕ３、…、ＵＱ及びＺ２、Ｚ３、…、ＺＱが決められている。定数Ｎ１、Ｎ２、Ｎ３、…、ＮＱ及びＭ２、Ｍ３、…、ＭＱが決められており、上記の条件１、条件２、条件３、条件４、及び条件１’を満たすマッピング方法（すなわち、第１の正の場合のマッピング表、第２の正の場合のマッピング表、第３の正の場合のマッピング表、…、第Ｑの正の場合のマッピング表、及び、第２の負の場合のマッピング表、第３の負の場合のマッピング表、…、第Ｑの負の場合のマッピング表）が決められている。さらに、マッピング方法が決まることで、図１６に示したフローチャートに従って、Ｆ１（１）、Ｆ０（１）、Ｆ１（２）、Ｆ０（２）、…、Ｆ１（Ｑ）、Ｆ０（Ｑ）も決定される。これら値、及びマッピング表は、送信装置１００のエンコーダ１０１と受信装置２００のデコーダ２０３にあらかじめ与えられており、送信装置１００と受信装置２００間で整合性がとれている。
【０１２４】
なお、Ｆ１（ｑ）、Ｆ０（ｑ）とは、それぞれ、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１あるいは０の場合に時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内にあるＬＥＤの点灯している割合を示している。これら割合Ｆ１（ｑ）とＦ０（ｑ）は、入力されてくる第１から第Ｑの情報の値によらず常に一定であり、先に述べたようにあらかじめ確定されている。そして、Ｆ１（ｑ）＞Ｆ０（ｑ）である。
【０１２５】
図１７には、送信装置１００のエンコーダ１０３が行なう処理手順をフローチャートの形式で示している。
【０１２６】
まず、階層を表す変数ｑに１をセットして（ステップＳ１１）、第ｑの情報から｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を決定する（ステップＳ１２）。ステップＳ１２において実行される処理の詳細については図１８に示している（後述）。
【０１２７】
ステップＳ１３ではｑがＱ未満であるかどうかを調べ、Ｑ未満であれば、まだ高周波数側の階層があるので、ステップＳ１４に進む。また、ｑがＱ未満でなければ、ステップＳ１５に進む。
【０１２８】
ステップＳ１４では、ｑを１だけインクリメントした後、ステップＳ１０２に戻って、上述と同様の処理を繰り返し実行する。
【０１２９】
また、ステップＳ１５では、ステップＳ１２で求めたＲ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）に従い、２次元発光部１０３を発光する。つまり、時刻ｔ（ｔ＝１、２、…、Ｔ）におけるＳ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）で指定される１つのＬＥＤを、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）＝１なら点灯、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）＝０なら消灯する。そして、２次元点滅パターンを出力した後、本処理ルーチン全体を終了する。
【０１３０】
なお、時刻Ｔは、十分に大きな値であり、第１から第Ｑまでの情報すべてを送るのに十分な時間であるとする。また、各階層毎にビットレートが相違するので、ある階層の情報（例えば、第ｑの情報）は、時刻Ｔ未満で送り終わってしまう（すなわち、他の階層の情報伝送よりも先に終了してしまう）可能性がある。このような場合は、第ｑの情報の最後の方にダミー・データを加えて、時刻Ｔまでダミー・データも含めてエンコードして送信処理すなわち２次元点滅パターンの出力を続行する。
【０１３１】
図１８〜図２０には、ステップＳ１２における、与えられたｑに対して第ｑの情報から｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を決定するためのサブルーチンをフローチャートの形式で詳細に示している。なお、図１７で示したフローチャートからも明らかなように、この段階までに、すべてのｔ、ｉ１、ｉ２、…、ｉｑ−１に対してＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）は確定している。
【０１３２】
まず、ｑが１であるかどうかをチェックして（ステップＳ２１）、１であれば次ステップＳ２２に進み、１以外であればステップＳ２６に進む。
【０１３３】
ステップＳ２２では時刻を表す変数ｔに１をセットし、続くステップＳ２３では、第１の情報の先頭からＮ１ビットを取り出し、第１の正の場合のマッピング表を参照して、そのＮ１ビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の値とする。すなわち、Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）の値を確定させる。ここで読み出された第１の情報の先頭Ｎ１ビットは破棄され、次のビットが先頭に繰上げされる。
【０１３４】
次いで、ｔがＴ未満であるかどうかを判断する（ステップＳ２４）。Ｔ未満であれば、次ステップＳ２５に行く。それ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）についてＲ（ｔ，ｉ１）が確定したことになるので、本処理ルーチン全体を終了する。
【０１３５】
ステップＳ２５では、次の時刻を処理するために、ｔを１だけインクリメントしてから、ステップＳ２３に戻る。
【０１３６】
次いで、時刻を表す変数ｔに１をセットし（ステップＳ２６）、変数ｉ１に１をセットし（ステップＳ２７−１）、変数ｉ２に１をセットし、・・・、変数ｉｑ−１に１をセットする（ステップＳ２７−（ｑ−１））。
【０１３７】
ステップＳ２８では、現在のｔ、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）の値をチェックする。
【０１３８】
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が１なら、第ｑの情報の先頭からＮｑビットを取り出し、第ｑの正の場合のマッピング表を参照して、そのＮｑビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の値とする。すなわち、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）の値を確定させる。ここで読み出された第ｑの情報の先頭Ｎｑビットは破棄され、次のビットが先頭に繰上げされる。
【０１３９】
なお、上述した条件１により、Ｎｑ＝０なら、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常に、ある特定の１つのパターンとなるので、その値をセットする。この場合は、第ｑの情報の先頭ビットは破棄されない。
【０１４０】
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が０なら、第ｑの情報の先頭からＭｑビットを取り出し、第ｑの負の場合のマッピング表を参照して、そのＭｑビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の値とする。すなわち、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）の値を確定させる。ここで読み出された第ｑの情報の先頭Ｍｑビットは破棄され、次のビットが先頭に繰上げされる。
【０１４１】
なお、上述した条件２により、Ｍｑ＝０なら、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常に、ある特定の１つのパターンとなるので、その値をセットする。この場合は、第ｑの情報の先頭ビットは破棄されない。
【０１４２】
ステップＳ２９−１では、ｉｑ−１が（Ｈｑ−１  ×  Ｖｑ−１）未満であるかどうかを判断する。（Ｈｑ−１  ×  Ｖｑ−１）未満であれば、ステップＳ３０−１に進み、それ以外なら、ステップＳ２９−２に進む。
【０１４３】
ステップＳ３０−１では、ｉｑ−１を１だけインクリメントして、ステップＳ２８に戻る。
【０１４４】
ステップＳ２９−２では、ｉｑ−２が（Ｈｑ−２  ×  Ｖｑ−２）未満であるかどうかを判断する。（Ｈｑ−２  ×  Ｖｑ−２）未満であれば、ステップＳ３０−２に進み、それ以外なら、ステップＳ２９−３に進む。
【０１４５】
ステップＳ３０−２では、ｉｑ−２を１だけインクリメントして、ステップＳ２７−（ｑ−１）に戻る。
【０１４６】
ステップＳ２９−３では、ｉｑ−３が（Ｈｑ−３  ×  Ｖｑ−３）未満であるかどうかを判断する。（Ｈｑ−３  ×  Ｖｑ−３）未満であれば、ステップＳ３０−３に進み、それ以外なら、ステップＳ２９−４に行く。
【０１４７】
ステップＳ３０−３では、ｉｑ−３を１だけインクリメントして、図示省略したステップＳ２７−（ｑ−２）に戻る。
【０１４８】
以降、同様にして、ステップＳ２９−（ｑ−１）では、ｉ１が（Ｈ１×Ｖ１）未満であるかどうかを判断する。（Ｈ１×Ｖ１）未満であれば、ステップＳ３０−（ｑ−１）に進み、それ以外なら、ステップＳ３１に進む。なお、ステップＳ２９−４からステップＳ２９−（ｑ−２）、及び、ステップＳ３０−４からステップＳ３０−（ｑ−２）は、図面の錯綜を回避するため省略している。
【０１４９】
ステップＳ３０−（ｑ−１）では、ｉ１を１だけインクリメントして、ステップＳ２７−２に戻る。
【０１５０】
ステップＳ３１では、ｔがＴ未満であるかどうかを判断する。Ｔ未満であれば、ステップＳ３２に進み、それ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、ｉ２（ｉ２＝１、２、…、Ｈ２×Ｖ２）、…、ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）についてＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）が確定したことになるので、本処理ルーチン全体を終了する。
【０１５１】
ステップＳ３２では、次の時刻を処理するために、ｔを１だけインクリメントして、ステップＳ２７−１に戻る。
【０１５２】
以上、図１７、及び図１８〜図２０を参照しながら、エンコーダ１０１において、入力端子１０２から入力された第１〜第Ｑの情報から２次元発光部１０３での時系列２次元発光パターンを作成するための処理手順について説明した。
【０１５３】
次いで、受信装置２００内のデコーダ２０３において実行される、２次元点滅パターンからデータを復元するための処理について説明する。
【０１５４】
既に述べたように、送信装置１００から遠い距離にいる場合は、受信装置２００のカメラ２０１は２次元発光部１０３の２次元点滅パターンを十分な解像度で撮影することができない。このような場合、受信装置２００の射影変換部２０２で変換された横Ｈ画素、縦Ｖ画素よりなる画像は、多少ぼけた画像となる。しかし、複数の画素を１つの組として扱い、それぞれの組における平均的な明るさは知ることができる。もし、Ｈ１×Ｖ１個の（Ｈ２×Ｈ３×…×ＨＱ）×（Ｖ２×Ｖ３×…×ＶＱ）個より成るＬＥＤの組を判別することができれば、第１の情報をデコーダで解読できる。さらに、細かく判別できるのであれば、例えば、（Ｈ１×Ｈ２）×（Ｖ１×Ｖ２）個の（Ｈ３×Ｈ４×…×ＨＱ）×（Ｖ３×Ｖ４×…×ＶＱ）個よりなるＬＥＤの組を判別することができるのであれば、第２の情報もデコーダで解読できる。以下、同様に、受信装置２００の射影変換部２０２で変換されたＨ×Ｖ画素よりなる画像のぼけ具合で、どの階層の情報まで解読できるかが決まる。
【０１５５】
図２１には、受信装置２００内のデコーダ２０３における２次元点滅パターンをデコードする処理手順をフローチャートの形式で示している。
【０１５６】
まず、受信装置２００の射影変換部２０２で変換されたＨ×Ｖ画素よりなる画像の実質的な解像度を調べる（ステップＳ４１）。
【０１５７】
この解像度を表す数値として、識別できる横方向の単位をＧ０、縦方向の単位をＧ１とする。例えば、受信装置２００のカメラ２０１で撮影された画像上において２次元発光部の投影像が（Ｈ／３）×（Ｖ／４）画素程度であったとすると、射影変換部２０２ではＨ×Ｖ画素の画像に変換されるが、オリジナルの画像（カメラで撮影した画像）を横３倍、縦４倍に拡大することを意味する。したがって、受信装置２００の射影変換部２０２で変換されたＨ×Ｖ画素よりなる画像の実質的な解像度は、（Ｈ／３）×（Ｖ／４）画素となる。換言すれば、Ｈ×Ｖ個のＬＥＤを持つ２次元発光部１０３で発光される発光パターンは、受信装置２００側では、１つずつのＬＥＤの点滅を識別することはできないが、３×４個のＬＥＤの平均的な発光量（点灯しているＬＥＤの数）を識別することはできる。この場合、Ｇ０＝３、Ｇ１＝４である。カメラ２０１のレンズの性能や、射影変換部２０２での変換に使われる補間フィルターの性能により、多少、余裕を持って、例えば、Ｇ０＝５、Ｇ１＝７とした方がよい場合もある。
【０１５８】
次いで、どの階層まで解読できるかを決定する（ステップＳ４２）。具体的には、（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）≧Ｇ０となり、且つ、（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）≧Ｇ１となる最小のｑを求める。これをｑｍａｘとする。但し、Ｇ０＝Ｇ１＝１のときは、ｑｍａｘ＝Ｑである。
【０１５９】
次いで、階層を表す変数ｑに１をセットして（ステップＳ４３）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）の値を求める（ステップＳ４４）。ステップＳ４４で実行される処理手順の詳細については後述に譲る。
【０１６０】
次いで、第ｑの情報を復元する（ステップＳ４５）。第ｑの情報の復元方法の詳細については後述に譲る。
【０１６１】
次いで、ｑがｑｍａｘ未満であるかどうかをチェックする（ステップＳ４６）。そして、ｑがｑｍａｘ未満であれば、ステップＳ４７に進んで次の階層を復元するための処理を実行するが、それ以外であれば、本処理ルーチン全体を終了する。
【０１６２】
ステップＳ４７では、変数ｑを１だけインクリメントして、ステップＳ４４に戻る。
【０１６３】
図２２には、与えられたｑに対して、ステップＳ４４で実行される、２次元発光部１０３の撮影画像からＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を決定するための処理手順をフローチャートの形式で示している。ここで言う撮影画像をより正確に述べるならば、カメラ２０１による撮影画像をアフィン変換したＨ×Ｖ画素の画像、すなわち射影変換部２０２による変換後の画像のことである。
【０１６４】
まず、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合がＦ１（ｑ）であるか、あるいはＦ０（ｑ）であるかをチェックする（ステップＳ５１）。
【０１６５】
該領域内でＬＥＤが点灯している割合がＦ１（ｑ）である場合にはステップＳ５２に進むが、Ｆ０（ｑ）である場合にはステップＳ５３に進む。実際には、ノイズもあるので、（Ｆ１（ｑ）＋Ｆ０（ｑ））÷２以上であるか未満であるかによって判断を行なうとよい。
【０１６６】
ステップＳ５２では、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１として、本処理ルーチン全体を終了する。
【０１６７】
ステップＳ５３では、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０として、本処理ルーチン全体を終了する。
【０１６８】
なお、図２２に示した処理ルーチンは、すべてのｔ（ｔ＝１、２、…、Ｔ）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、ｉ２（ｉ２＝１、２、…、Ｈ２×Ｖ２）、…、ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）について実行する。
【０１６９】
Ｆ１（ｑ）、Ｆ０（ｑ）は、それぞれＲ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１又は０の場合に、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤの点灯している割合を示しているので、図２２に示したＲ（ｔ，ｉ１，ｉ２，…，ｉｑ）の決め方が妥当であることは、当業者には容易に理解できるであろう。
【０１７０】
図２３〜図２５には、ステップＳ４５において、与えられたｑに対して、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を決定するための処理手順をフローチャートの形式で示している。なお、図２１に示した処理手順から明らかなように、この段階までに、すべてのｔ、ｉ１、ｉ２、…、ｉｑ−１に対してＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）は確定している。
【０１７１】
まず、ｑが１であるかどうかを調べ（ステップＳ６１）、１であればステップＳ６２に進み、１以外であればステップＳ６６に進む。
【０１７２】
ステップＳ６２では時刻を表す変数ｔに１をセットし、次いで、パターン｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝から、第１の正の場合のマッピング表を参照して、対応する第１の情報のＮ１ビット分のデータを確定させる（ステップＳ６３）。このＮ１ビット分のデータは、受信装置２００内の第１の情報を逐次格納していくメモリ（図示しない）の最後尾に付け加える。
【０１７３】
次いで、ｔがＴ未満であるかどうかを判断する（ステップＳ６４）。ｔがＴ未満であれば、次ステップＳ６５に進む。それ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）についてＲ（ｔ，ｉ１）から第１の情報を復元したことになるので、本処理ルーチン全体を終了する。
【０１７４】
ステップＳ６５では、次の時刻を処理するために、ｔを１だけインクリメントして、ステップＳ６３に戻る。
【０１７５】
一方、ステップＳ６６では、時刻を表す変数ｔに１をセットする。そして、ステップＳ６７−１では変数ｉ１に１をセットし、ステップＳ６７−２では変数ｉ２に１をセットする。
【０１７６】
以降、同様にして、ステップＳ６７−（ｑ−１）では、変数ｉｑ−１に１をセットして、次ステップＳ６８に進む。なお、ステップＳ６７−３からステップＳ６７−（ｑ−２）は、図面の簡素化のため図２４からは省略する。
【０１７７】
次いで、現在のｔ、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）の値を調べる（ステップＳ６８）。
【０１７８】
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が１なら、パターン｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝から、第ｑの正の場合のマッピング表を参照して、対応する第ｑの情報のＮｑビット分のデータを確定させる。このＮｑビット分のデータは、受信装置２００内の第ｑの情報を逐次格納していくメモリ（図示しない）の最後尾に付け加える。
【０１７９】
なお、条件１として既に述べたように、Ｎｑ＝０なら、第ｑビットの情報は含まれていないので、第ｑの情報を逐次格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このときの｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常に、ある特定の１つのパターンとなっている筈である。
【０１８０】
一方、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が０なら、パターン｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝から、第ｑの負の場合のマッピング表を参照して、対応する第ｑの情報のＭｑビット分のデータを確定させる。このＭｑビット分のデータは、受信装置２００内の第ｑの情報を逐次格納していくメモリの最後尾に付け加える。
【０１８１】
なお、条件２として既に述べたように、Ｍｑ＝０なら、第ｑビットの情報は含まれていないので、第ｑの情報を逐次格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このときの｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常にある特定の１つのパターンとなっている筈である。
【０１８２】
ステップＳ６９−１では、ｉｑ−１が（Ｈｑ−１  ×  Ｖｑ−１）未満であるかどうかを判断する。ｉｑ−１が（Ｈｑ−１  ×  Ｖｑ−１）未満であればステップＳ７０−１に進み、それ以外ならステップＳ６９−２に進む。
【０１８３】
ステップＳ７０−１では、ｉｑ−１を１だけインクリメントして、ステップＳ６８に戻る。
【０１８４】
ステップＳ６９−２では、ｉｑ−２が（Ｈｑ−２  ×  Ｖｑ−２）未満であるかどうかを判断する。ｉｑ−２が（Ｈｑ−２  ×  Ｖｑ−２）未満であればステップＳ７０−２に進み、それ以外ならステップＳ６９−３に進む。
【０１８５】
ステップＳ７０−２では、ｉｑ−２を１だけインクリメントして、ステップＳ６７−（ｑ−１）に戻る。
【０１８６】
ステップＳ６９−３では、ｉｑ−３が（Ｈｑ−３  ×  Ｖｑ−３）未満であるかどうかを判断する。ｉｑ−３が（Ｈｑ−３  ×  Ｖｑ−３）未満であればステップＳ７０−３に進み、それ以外ならステップＳ６９−４に進む。
【０１８７】
ステップＳ７０−３では、ｉｑ−３を１だけインクリメントして、図示を省略したステップＳ６７−（ｑ−２）に戻る。
【０１８８】
以降、同様にして、ステップＳ６９−（ｑ−１）では、ｉ１が（Ｈ１×Ｖ１）未満であるかどうかを判断する。ｉ１が（Ｈ１×Ｖ１）未満であればステップＳ７０−（ｑ−１）に進み、それ以外ならステップＳ７１に進む。なお、ステップＳ６９−４からステップＳ６９−（ｑ−２）、及び、ステップＳ７０−４からステップＳ７０−（ｑ−２）は、図面の錯綜を回避するため図示を省略している。
【０１８９】
ステップＳ７０−（ｑ−１）では、ｉ１を１だけインクリメントして、ステップＳ６７−２に戻る。
【０１９０】
ステップＳ７１では、ｔがＴ未満であるかどうかを判断する。ｔがＴ未満であればステップＳ７２に進み、それ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、ｉ２（ｉ２＝１、２、…、Ｈ２×Ｖ２）、…、ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）についてＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を復元したことになるので、本処理ルーチン全体を終了する。
【０１９１】
ステップＳ７２では、次の時刻を処理するために、ｔを１だけインクリメントして、ステップＳ６７−１に戻る。
【０１９２】
以上、図２１、図２２、及び図２３〜図２５を用いて、デコーダ２０３による、２次元発光部１０３による時系列２次元発光パターンが入力されてきたときの、第１から第ｑｍａｘまでの情報の復元方法について説明してきた。
【０１９３】
なお、上述した処理手順では、どの階層までを解読するかを判定するために、ステップＳ４１において、縦横それぞれの方向で識別可能な単位Ｇ０及びＧ１を導入し、ステップＳ４２で階層数を決定している。エラー訂正のためのパリティを各階層の情報に付加して送信している場合には、受信側では、各階層の情報にどれくらいエラーがあるかを知ることができる。このようなシステムを使用するのなら、受信側で検知されたエラー量が多過ぎる場合は、その階層よりも高周波数側の階層は解読しないようにしてもよい。このようにして、どの階層までを解読するかを決めてもよい。
【０１９４】
続いて、２次元発光部１０３の素子数（ＬＥＤの数）が１６×１６個の場合の具体例について、以下に詳解する。
【０１９５】
前述したように、Ｈ＝Ｖ＝１６、Ｑ＝４、Ｈ１＝Ｖ１＝Ｈ２＝Ｖ２＝Ｈ３＝Ｖ３＝Ｈ４＝Ｖ４＝２である。ここで、Ｎ１＝Ｎ２＝Ｎ３＝Ｎ４＝２、Ｍ１＝Ｍ２＝Ｍ３＝Ｍ４＝２、Ｕ１＝Ｕ２＝Ｕ３＝Ｕ４＝０．７５、Ｚ１＝Ｚ２＝Ｚ３＝Ｚ４＝０．２５とし、上記の条件１、条件２、条件３、条件４、及び条件１’を満たすマッピング方法（すなわち、第１の正の場合のマッピング表、第２の正の場合のマッピング表、第３の正の場合のマッピング表、第４の正の場合のマッピング表、及び、第２の負の場合のマッピング表、第３の負の場合のマッピング表、第４の負の場合のマッピング表）の具体例は、以下の通りとする。
【０１９６】
第ｑ（ｑ＝２、３、４）の正の場合のマッピング表の具体例：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝１の場合、２ビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，３）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，４）｝の組み合わせパターンを決定する。すなわち、入力データが０、１、２，３であるとき、それぞれ、｛０，１，１，１｝、｛１，０，１，１｝、｛１，１，０，１｝、｛１，１，１，０｝とする。この対応関係を、「第ｑの正の場合のマッピング表」と呼ぶことにする。
【０１９７】
第ｑ（ｑ＝２、３、４）の負の場合のマッピング表の具体例：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝０の場合、２ビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，３）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，４）｝の組み合わせパターンを決定する。すなわち、入力データが０、１、２，３であるとき、それぞれ、｛１，０，０，０｝、｛０，１，０，０｝、｛０，０，１，０｝、｛０，０，０，１｝とする。この対応関係を、「第ｑの負の場合のマッピング表」と呼ぶことにする。
【０１９８】
第１の正の場合のマッピング表の具体例：
２ビットの入力データに対して、｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、Ｒ（ｔ，３）、Ｒ（ｔ，４）｝の組み合わせパターンを決定する。すなわち、入力データが０、１、２，３であるとき、それぞれ、｛０，１，１，１｝、｛１，０，１，１｝、｛１，１，０，１｝、｛１，１，１，０｝とする。この対応関係を、「第１の正の場合のマッピング表」と呼ぶことにする。
【０１９９】
このとき、Ｆ１（４）＝１、Ｆ０（４）＝０、Ｆ１（３）＝３／４、Ｆ０（３）＝１／４、Ｆ１（２）＝１０／１６、Ｆ０（２）＝６／１６、Ｆ１（１）＝３６／６４、Ｆ０（１）＝２８／６４となる。
【０２００】
本発明に係るデータ通信システムは２次元点滅パターンからなる光学的信号をデータ伝送媒体とするものであるが、上述したように、必ずＦ１（ｑ）＞Ｆ０（ｑ）となるように２次元発光部１０３を作動させるようにしている。すなわち、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１の場合に、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤの点灯している割合Ｆ１（ｑ）と、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０の場合に、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤの点灯している割合Ｆ０（ｑ）が相違するということである。
【０２０１】
したがって、受信装置２００側では、ある時刻ｔにおけるＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）の領域内に含まれるＬＥＤの平均的な明るさ（すなわち、点灯しているＬＥＤ数÷領域内のＬＥＤの総個数）を求め、その値が、Ｆ１（ｑ）であるかＦ０（ｑ）であるかを判断（あるいは、（Ｆ１（ｑ）＋Ｆ０（ｑ））÷２以上であるか未満であるかを判断）することによって、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）の値を求めることができる訳である。
【０２０２】
Ｆ１（ｑ）＞Ｆ０（ｑ）となるようなマッピング方法として、上記の条件１、２、３、４及び１’を満たす方法について説明してきたが、勿論、それ以外の条件を用いたマッピング方法を利用することもできる。例えば、以下のような条件を満たすマッピング方法でもよい。
【０２０３】
条件１１：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝１の場合、Ｌｑビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する。但し、任意のＬｑビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝のＨｑ×Ｖｑ個からなる要素のうち１であるものの数は、少なくとも１つ以上あるとする。また、Ｌｑビットの入力データの値が違えば、上記｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンも異なるようにする。
【０２０４】
ここで、Ｌｑは１以上の定数であり、Ｌｑビットの入力データとは第ｑの情報の中のＬｑビット分のデータのことである。Ｌｑビットの入力データに対して｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定するという対応関係を、以下では「第ｑの場合のマッピング表」と呼ぶことにする。
【０２０５】
条件１２：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝０の場合、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）は、すべて０とする。したがって、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を使って、第ｑの情報は伝送しない。
【０２０６】
但し、ｑ＝１の場合、対応する１つ上の階層がない。このような場合は、条件１２は無視して条件１１を満たすようなマッピング表とする。すなわち、以下の条件１１’を満たす。
【０２０７】
条件１１’（ｑ＝１の場合）：
Ｌｑ（すなわち、Ｌ１）ビットの入力データに対して、｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンを決定する。但し、任意のＬ１ビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝のＨ１×Ｖ１個の要素のうち１であるものの数は、少なくとも１つ以上あるとする。また、Ｌ１ビットの入力データの値が違えば、上記｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンも異なるようにする。
【０２０８】
ここで、Ｌ１は１以上の定数であり、Ｌ１ビットの入力データとは第１の情報の中のＬ１ビット分のデータである。Ｌ１ビットの入力データに対して｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンを決定するという対応関係を、「第１の場合のマッピング表」と呼ぶことにする。
【０２０９】
上記の条件１１、条件１２、及び条件１１’を満たすマッピング方法は複数考えられるが、それらの中から１つの方法を選んでエンコーダ１０１及びデコーダ２０３で共通に使用する。
【０２１０】
上記条件１１、条件１２、及び条件１１’を満たすマッピング方法により、第１から第Ｑまでの情報からＲ（ｔ，ｉ１）やＲ（ｔ，ｉ１，ｉ２）や、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）が決定される。
【０２１１】
ここで、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合について考えてみる。
【０２１２】
あるｑ（ｑ＝１、…、Ｑ−１）に対して、任意のｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、任意のｉ２（ｉ１＝１、２、…、Ｈ１×Ｖ１）、…、任意のｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）、及び任意の時刻ｔ（ｔ＝１、２、…、Ｔ）において、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０なら、条件１２より、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１）はすべて０である。したがって、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０なら、任意のｉｑ＋１（ｉｑ＋１＝１、２、…、Ｈｑ＋１  ×  Ｖｑ＋１）、任意のｉｑ＋２（ｉｑ＋１＝１、２、…、Ｈｑ＋２  ×  Ｖｑ＋２）、…、任意のｉＱ（ｉＱ＝１、２、…、ＨＱ  ×  ＶＱ）により示されるＲ（ｔ，ｉ１，ｉ２，…，ｉＱ）は０である。時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合は、常に０である。この値をＦ０（ｑ）とする。
【０２１３】
あるｑ（ｑ＝１、…、Ｑ−１）に対して、任意のｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、任意のｉ２（ｉ１＝１、２、…、Ｈ１×Ｖ１）、…、任意のｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）、及び任意の時刻ｔ（ｔ＝１、２、…、Ｔ）において、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１なら、条件１１より、少なくとも１つのＲ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１）は１である。さらに、そのＲ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１）を考えると、条件１１より、少なくとも１つのＲ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１，ｉｑ＋２）は１である。
【０２１４】
これを繰り返すことで、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１なら、少なくとも１つのｉｑ＋１（ｉｑ＋１＝１、２、…、Ｈｑ＋１  ×  Ｖｑ＋１）、少なくとも１つのｉｑ＋２（ｉｑ＋１＝１、２、…、Ｈｑ＋２  ×  Ｖｑ＋２）、…、少なくとも１つのｉＱ（ｉＱ＝１、２、…、ＨＱ  ×  ＶＱ）により示されるＲ（ｔ，ｉ１，ｉ２，…，ｉＱ）は１である。これは、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示される１×１個のＬＥＤが点灯していることを意味する。換言すれば、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１なら、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤの点灯している割合は、常に一定とは限らないが、少なくとも０を越えていることは確かである。この値をＦ１（ｑ）とする。
【０２１５】
したがって、このような条件でマッピング方法を決めても、Ｆ１（ｑ）＞Ｆ０（ｑ）である。そして、Ｆ０（ｑ）＝０であるから、受信装置２００側では、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤの点灯している割合が０であるか、又は０を越えているかによって、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）を判定することができる。
【０２１６】
この場合の送信装置１００側のエンコーダ１０１が行なう処理は、図１７及び図１８〜図２０を用いて説明した前述の処理と略同一である。但し、ステップＳ２３とステップＳ２８での処理は相違する。
【０２１７】
この場合のステップＳ２３では、第１の情報の先頭からＬ１ビットを取り出し、第１の場合のマッピング表を参照して、そのＬ１ビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の値とする。すなわち、Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）の値を確定させる。ここで読み出された第１の情報の先頭Ｌ１ビットは破棄され、次のビットが先頭に繰上げされる。
【０２１８】
また、この場合のステップＳ２８では、現在のｔ、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）の値を調べる。
【０２１９】
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が１なら、第ｑの情報の先頭からＬｑビットを取り出し、第ｑの場合のマッピング表を参照して、そのＬｑビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の値とする。すなわち、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）の値を確定させる。ここで読み出された第ｑの情報の先頭Ｌｑビットは破棄され、次のビットが先頭に繰上げされる。
【０２２０】
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が０なら、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）は、すべて０とする。第ｑの情報の先頭ビットは破棄されない。
【０２２１】
また、この場合の受信装置２００のデコーダ２０３が行う処理は、図２１、図２２、及び図２３〜図２５を用いて説明した前述の処理と略同一である。但し、ステップＳ５１と、ステップＳ６３、ステップＳ６８での処理が相違する。
【０２２２】
この場合のステップＳ５１では、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合が０でないか、あるいは０であるかを調べる。そして、０でない場合には次ステップＳ５２に進むが、０である場合にはステップＳ５３に進む。
【０２２３】
また、この場合のステップＳ６３では、パターン｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝から、第１の場合のマッピング表を参照して、対応する第１の情報のＬ１ビット分のデータを確定させる。このＬ１ビット分のデータは、受信装置２００内の第１の情報を逐次格納していくメモリ（図示しない）の最後尾に付け加える。
【０２２４】
また、この場合のステップＳ６８では、現在のｔ、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）の値を調べる。
【０２２５】
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が１なら、パターン｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝から、第ｑの場合のマッピング表を参照して、対応する第ｑの情報のＬｑビット分のデータを確定させる。このＬｑビット分のデータは、受信装置２００内の第ｑの情報を逐次格納していくメモリ（図示しない）の最後尾に付け加える。
【０２２６】
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）が０なら、パターン｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝はすべて０であり、第ｑビットの情報は含まれていないので、第ｑの情報を格納して行くメモリの最後尾に付け加えるものは何もない。
【０２２７】
このようにして、上述した条件１１、条件１２、及び条件１１’を満たすマッピング方法を採用することによって、同様に、送信装置１００から発せられる第１から第Ｑまでの情報のうち、第１から第ｑｍａｘまでの情報を受信装置２００で受信することができる。
【０２２８】
さて、２次元発光部１０３の素子数（ＬＥＤの数）が１６×１６個の場合の具体例について以下に詳解する。先に述べたように、Ｈ＝Ｖ＝１６、Ｑ＝４、Ｈ１＝Ｖ１＝Ｈ２＝Ｖ２＝Ｈ３＝Ｖ３＝Ｈ４＝Ｖ４＝２である。ここで、Ｌ１＝Ｌ２＝Ｌ３＝Ｌ４＝３とし、上記の条件１１、条件１２、及び条件１１’を満たすマッピング方法（すなわち、第１の場合のマッピング表、第２の場合のマッピング表、第３の場合のマッピング表、第４の場合のマッピング表）の具体例は、以下の通りとする。
【０２２９】
第ｑ（ｑ＝２、３、４）の場合のマッピング表の具体例：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝１の場合、３ビットの入力データに対して、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，３）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，４）｝の組み合わせパターンを決定する。すなわち、入力データが０、１、２，３、４、５、６、７であるとき、それぞれ、｛０，１，１，１｝、｛１，０，１，１｝、｛１，１，０，１｝、｛１，１，１，０｝、｛０，０，１，１｝、｛１，１，０，０｝、｛０，１，０，１｝、｛１，０，１，０｝とする。この対応関係を、「第ｑの場合のマッピング表」と呼ぶことにする。
【０２３０】
第１の場合のマッピング表の具体例：
３ビットの入力データに対して、｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、Ｒ（ｔ，３）、Ｒ（ｔ，４）｝の組み合わせパターンを決定する。すなわち、入力データが０、１、２，３、４、５、６、７であるとき、それぞれ、｛０，１，１，１｝、｛１，０，１，１｝、｛１，１，０，１｝、｛１，１，１，０｝、｛０，０，１，１｝、｛１，１，０，０｝、｛０，１，０，１｝、｛１，０，１，０｝とする。この対応関係を、「第１の場合のマッピング表」と呼ぶことにする。
【０２３１】
このとき、Ｆ１（４）＞０、Ｆ０（４）＝０、Ｆ１（３）＞０、Ｆ０（３）＝０、Ｆ１（２）＞０、Ｆ０（２）＝０、Ｆ１（１）＞０、Ｆ０（１）＝０となる。
【０２３２】
これまで、条件１、条件２、条件３、条件４、及び条件１’を満たすようなマッピング方法、あるいは条件１１、条件１２、及び条件１１’を満たすようなマッピング方法を以って、本発明の実施形態について説明してきた。しかしながら、本発明の要旨はこれらのマッピング方法に限定されるものではなく、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１の場合に時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合と、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０の場合に時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合が相違するようなマッピング方法であれば何でもよい。このようなマッピング方法は他にもあるが、紙面の都合によりこれ以上の説明を省略する。そして、このようなマッピング方法のいずれかを採用することにより、送信装置１００から発せられる第１から第Ｑまでの情報のうち、第１から第ｑｍａｘまでの情報を受信装置２００で受信することができる。ここで、ｑｍａｘは、受信装置２００のカメラ２０１の解像度により決定される。
【０２３３】
また、デジタル通信では、一般に送信データは受信装置２００側で安定して受信できるように、送信装置１００において符号化される。すなわち、エンコーダ１０１により生成された時系列２次元点滅パターンＲ（ｔ，ｉ１，ｉ２，…，ｉＱ）は、さらにマンチェスタ符号を用いて点滅させてもよい。マンチェスタ符号によれば、時間をさらに半分の単位（０．５単位）で区切り、エンコーダ１０１で作成された時系列２次元点滅パターンＲ（ｔ，ｉ１，ｉ２，…，ｉＱ）が１のときは、対応する時刻の前半の０．５の期間では１（点灯）を、後半の０．５の期間では０（消灯）とする。また、エンコーダ１０１で作成された時系列２次元点滅パターンＲ（ｔ，ｉ１，ｉ２，…，ｉＱ）が０のときは、対応する時刻の前半の０．５の期間では０（消灯）を、後半の０．５の期間では１（点灯）とする。
【０２３４】
マンチェスタ符号を用いることで、２次元発光部１０３が有効なデータを発信しているときは必ず各ＬＥＤは輝度変化が起こる。したがって、受信装置２００側では時間方向の輝度変化を調べることにより、点滅のパターンを受信すなわち識別することができる。勿論、この場合は、受信装置２００側のカメラ２０１も、０．５という時間間隔で撮影を繰り返すだけの動作速度が要求される。つまり、時刻ｔ＝０．５、１、１．５、２、２．５、３、３．５…、Ｔにおける映像を撮影していく必要がある。
【０２３５】
上述したような構成をとることで、例えば、第１の情報として、「レストラン情報」であるか「遊園地情報」であるかを、送信装置１００から発信する。また、第２の情報として「営業時間」を発信する。そして、第３の情報として「料金情報」を発信する。さらに、第４の情報として「会員割引に関する情報」を発信する。
【０２３６】
受信装置２００を所持して送信装置１００が設置してある街に行った人は、遠くの場所からでも、第１の情報は受信することができる。そして、もしその情報に興味があれば、さらに、その送信装置１００に近づいていくことにより、第２の情報も得ることができる。そして、より詳細な情報を知りたければ、さらに近づいていくことで、第３の情報や第４の情報も得ることができる。勿論、遠くにいたときに、第１の情報を受信してそれに関して興味がなければ、送信装置１００にこれ以上近づく必要はない。
【０２３７】
このように、情報を受信する人々は、送信装置１００から遠い場所にいても、少なくとも概略的な情報（第１の情報）を知ることができるので、送信装置１００に近づいて詳細情報を入手したいか、あるいは、自分にとって必要ないかを判断することができる。
【０２３８】
また、本発明をコンピュータ・グラフィックスのデータ送信と、それを受信して表示するシステムとして適用することもできる。第１の情報として、３次元仮想物体の輪郭情報（ポリゴン情報、あるいはワイヤフレーム情報）を送信装置１００から発信する。また、第２の情報として、各ポリゴンに貼り付ける模様（テクスチャ）の低周波数成分（テクスチャをフーリエ変換したときの低周波数成分）を発信する。また、第３の情報として、各ポリゴンに貼り付ける模様（テクスチャ）の中周波数成分（テクスチャをフーリエ変換したときの中周波数成分）を発信する。そして、第４の情報として、各ポリゴンに貼り付ける模様（テクスチャ）の高周波数成分（テクスチャをフーリエ変換したときの高周波数成分）を発信する。
【０２３９】
通常、一般の人は、興味のある情報発信源（送信装置１００）に対して、受信装置２００のカメラ２０１を真正面に向けるであろう。そして、興味のない情報発信源に対しては、もしカメラ２０１が捕らえたとしても、カメラ２０１の画面の端に写る程度であろう。情報発信源に対してカメラ２０１が真正面に向いていれば、２次元発光部１０３を真正面から見ることになり、第１、２、３、及び４の情報すべてを受信できる。つまり、この情報発信源から発せられたコンピュータ・グラフィックスのデータをすべて受信することができ、３次元仮想物体の輪郭、高精細なテクスチャの情報から、正確に、その３次元仮想物体を受信装置２００側のモニタ（図示しない）上で表示することができる。
【０２４０】
カメラ２０１の端の方で捕捉した情報発信源は、斜め方向からの撮影となり、真正面からの撮影に比べて、その投影像は小さくなる。このため、第１と第２と第３の情報のみしか受信できない。この場合は、テクスチャの高周波数成分のない、すなわちテクスチャが多少ぼけた３次元仮想物体のみが復元され、受信装置２００側のモニタに表示される。さらに斜めの方向から情報発信源を撮影した場合には、第１と第２の情報のみ受信可能であり、テクスチャの高周波数成分と中周波数成分のない、すなわちテクスチャがかなりぼけた３次元仮想物体のみが復元され、受信装置２００側のモニタに表示される。さらに、もっと斜め方向から撮影されると、第１の情報しか得られず、３次元仮想物体のワイヤフレーム（輪郭）のみが、受信装置２００側のモニタに表示される。これは、興味のあるものに関してはより詳しい情報を受信して３次元仮想物体をより詳しく表示することができる一方、興味のないものに関してはラフに表示される。すなわち興味の度合いに応じた緻密さで物体が表示されることとなり、まさに受信装置２００を持っている人の意思に適ったものとなる。
【０２４１】
なお、１６×１６個のＬＥＤにより送信している場合について詳しく述べたが、本発明の要旨は、このような２次元発光部１０３の構成に限定されるものではない。例えば、９×９個のＬＥＤによる送信をしてもよい。そして、３×３個のＬＥＤを１つの組とみなす。これにより、３×３個のＬＥＤの組を３×３個だけ構成することができる。この場合は、２つの異なる情報（第１の情報と第２の情報）を送ることができる。つまり、３×３個のＬＥＤの組からなる３×３個の点滅パターンにより、第１の情報を送る。そして、各々の３×３個のＬＥＤの組内での３×３個のＬＥＤの点滅パターンによって、第２の情報を送ることができる。このとき、Ｈ＝Ｖ＝９、Ｑ＝２、Ｈ１＝Ｈ２＝Ｖ１＝Ｖ２＝３である。
【０２４２】
また、極端な例としては、Ｈ＝１も考えられる。具体的には、１×３２個のＬＥＤでもよい。この場合は、２次元発光部というよりもむしろ１次元発光部と呼ぶ方がふさわしい。
【０２４３】
これまでは２次元発光部１０３が１６×１６個のＬＥＤ（素子）よりなる構成例に沿って、本発明の実施形態について説明してきた。以下では、本発明の他の実施形態として、２×２個のＬＥＤよりなる２次元発光部１０３を用いて、２つの情報（第１の情報と第２の情報）を光伝送する場合について説明する。
【０２４４】
第１の情報として、２×２個のＬＥＤ（すなわち、２次元発光部１０３のすべてのＬＥＤ）を１つの組と考えて、光伝送する。そして、第２の情報として、１×１個のＬＥＤを１つの組と考えて、光伝送する。つまり、Ｑ＝２、Ｈ１＝Ｖ１＝１、Ｈ２＝Ｖ２＝２である。また、マッピング方法は、ｑが１でない場合は、上記条件１１と条件１２を満たし、ｑ＝１の場合は上記条件１１’の代わりに、以下の条件１１”を満たすとする。
【０２４５】
条件１１”（ｑ＝１の場合）：
Ｌｑ（すなわち、Ｌ１）ビットの入力データに対して、｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンを決定する。Ｌ１ビットの入力データの値が異なれば、上記の｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンも異なるようにする。ここで、Ｌ１は１以上の定数であり、Ｌ１ビットの入力データとは第１の情報の中のＬ１ビット分のデータのことである。このＬ１ビットの入力データに対して、｛Ｒ（ｔ，１）、Ｒ（ｔ，２）、…、Ｒ（ｔ，Ｈ１×Ｖ１）｝の組み合わせパターンを決定する、という対応関係を、「第１の場合のマッピング表」と呼ぶことにする。
【０２４６】
なお、ここで示す例では、Ｌ１＝１、Ｌ２＝３である。また、上記の条件１１”で規定している第１の場合のマッピング表は、１ビットの入力データが１又は０のとき、それぞれ、｛Ｒ（ｔ，１）｝として１又は０とする表である。そして、条件１１に書かれている第２の場合のマッピング表は、３ビットの入力データが０、１、２、３、４、５、６、７であるとき、それぞれ、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛０，０，１，１｝、｛０，１，１，０｝、｛１，１，０，０｝、｛１，０，０，１｝、｛１，１，１，０｝、｛１，１，０，１｝、｛１，０，１，１｝、｛０，１，１，１｝とする表である。
【０２４７】
図２６〜図２７には、この実施形態において、受信装置２００内のエンコーダ２０３で実行される処理手順をフローチャートの形式で示している。
【０２４８】
まず、時刻を表す変数ｔに１をセットしてから（ステップＳ８１）、第１の情報の先頭から１ビットを取り出し、その値が１であれば、Ｒ（ｔ，１）＝１とし、０であれば、Ｒ（ｔ，１）＝０とする（ステップＳ８２）。なお、ここで読み出された第１の情報の先頭の１ビットは破棄され、次のビットが先頭に来る。
【０２４９】
次いで、ｔがＴ未満であるかどうかを判断する（ステップＳ８３）。ｔがＴ未満であれば、次ステップＳ８４に進み、それ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）について、Ｒ（ｔ，１）が確定したことになるので、ステップＳ８５に進む。
【０２５０】
ステップＳ８４では、次の時刻を処理するために、ｔを１だけインクリメントして、ステップＳ８２に戻る。
【０２５１】
また、ステップＳ８５では、時刻を表す変数ｔに再び１をセットしてから、次ステップＳ８６に進む。
【０２５２】
ステップＳ８６では、先行ステップＳ８２で求めたＲ（ｔ，１）が１又は０のどちらであるかを判断する。そして、Ｒ（ｔ，１）が１であればステップＳ８７に進むが、０であればステップＳ８８に進む。
【０２５３】
ステップＳ８７では、第２の情報から先頭３ビットを取り出し、その値が０、１、２、３、４、５、６、７であるとき、それぞれ、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛０，０，１，１｝、｛０，１，１，０｝、｛１，１，０，０｝、｛１，０，０，１｝、｛１，１，１，０｝、｛１，１，０，１｝、｛１，０，１，１｝、｛０，１，１，１｝とする。その後、後続のステップＳ８９に進む。
【０２５４】
また、ステップＳ８８では、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛０，０，０，０｝をセットする。すなわち、すべてのＲ（ｔ，１，ｉ）に０をセットする。その後、後続のステップＳ８９に進む。
【０２５５】
ステップＳ８９では、ｔがＴ未満であるかどうかを判断する。ｔがＴ未満であれば次ステップＳ９０に進む。それ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）についてＲ（ｔ，１，１）、Ｒ（ｔ，１，２）、Ｒ（ｔ，１，３）、Ｒ（ｔ，１，４）が確定したことになるので、ステップＳ９１に進む。
【０２５６】
ステップＳ９０では、次の時刻を処理するためにｔを１だけインクリメントして、ステップＳ８６に戻る。
【０２５７】
また、ステップＳ９１では、Ｒ（ｔ，１，１）の値が１であるときは、時刻ｔ（ｔ＝１、２、…、Ｔ）における位置（１，１）のＬＥＤを点灯させ、Ｒ（ｔ，１，１）の値が０であるときには、時刻ｔにおける位置（１，１）のＬＥＤを消灯する。同様に、Ｒ（ｔ，１，２）の値によって、時刻ｔにおける位置（１，２）のＬＥＤの点灯／消灯を行う。また、Ｒ（ｔ，１，３）の値によって、時刻ｔにおける位置（２，１）のＬＥＤの点灯／消灯を行う。また、Ｒ（ｔ，１，４）の値によって、時刻ｔにおける位置（２，２）のＬＥＤの点灯／消灯を行う。
【０２５８】
このようにして２次元点滅パターンの出力を行なった後、本処理ルーチン全体を終了する。
【０２５９】
以上のような処理手続きに従うことによって、２×２個のＬＥＤを持つ２次元発光部１０３からは、時系列２次元発光パターンが発光される。このようにして決められる発光パターンには、第１の情報から決定されたＲ（ｔ，１）が１のときは、２×２個のＬＥＤ（すなわち、２次元発光部１０３のすべてのＬＥＤ）を１つの組と考えると、少なくともその組の中には２個あるいは３個のＬＥＤが点灯している。つまり、割合で言うと、０．５以上の割合で点灯している。一方、第１の情報から決定されたＲ（ｔ，１）が０のときは、２×２個のＬＥＤ（すなわち、２次元発光部すべてのＬＥＤ）を１つの組と考えると、その組の中には０個のＬＥＤが点灯している。つまり、割合で言うと、０の割合で点灯している。このことから、受信装置２００側で、時刻ｔにおける２×２個のＬＥＤ（すなわち、２次元発光部１０３のすべてのＬＥＤ）の平均的な明るさを調べ、その値が０．５以上であるか、あるいは０であるかに応じて、Ｒ（ｔ，１）を決定することができる。そして、Ｒ（ｔ，１）が１ならば第１の情報の中の対応する１ビットが１であり、Ｒ（ｔ，１）が０ならば第１の情報の中の対応する１ビットが０である。このようにして、第１の情報を復元することができる。
【０２６０】
また、第２の情報については、時刻ｔにおける４つのＬＥＤの発光パターンより、３ビット分が復元できる。
【０２６１】
図２８には、受信装置２００側のデコーダ２０３によって実行される処理手順をフローチャートの形式で示している。デコーダ２０３は、上述した事柄を踏まえてデコード処理を行なう。
【０２６２】
まず、時刻を表す変数ｔに１をセットし（ステップＳ１０１）、２次元発光部１０３の４つのＬＥＤの平均的な明るさを求め、幾つが点灯しているかその割合を求める（ステップＳ１０２）。点灯しているＬＥＤの割合が０．５以上であるか又は０であるかを判断し、０．５以上であれば、Ｒ（ｔ，１）として１をセットして、さらに、第１の情報を逐次格納していくメモリの最後尾に１ビットの情報「１」を加える。また、０であれば、Ｒ（ｔ，１）として０をセットして第１の情報を逐次格納していくメモリの最後尾に１ビットの情報「０」を加える。実際には、４つのＬＥＤのうち点灯しているものが１つでもあるかどうかで判断した方がその判定は簡単になる。
【０２６３】
次いで、ｔがＴ未満であるかどうかを判断する（ステップＳ１０３）。ｔがＴ未満であれば、ステップＳ１０４に進む。また、それ以外ならすべてのｔ（ｔ＝１、２、…、Ｔ）について、Ｒ（ｔ，１）が確定したことになるので、ステップＳ１０５に進む。
【０２６４】
ステップＳ１０４では、次の時刻を処理するために、ｔを１だけインクリメントして、ステップＳ１０２に戻る。
【０２６５】
また、ステップＳ１０５では、時刻を表す変数ｔに再び１をセットする。次いで、ステップＳ１０２で求めたＲ（ｔ，１）が１であるか０であるか判断する（ステップＳ１０６）。ここで、Ｒ（ｔ，１）が１であればステップＳ１０７に進み、０であればステップＳ１０８に進む。
【０２６６】
ステップＳ１０７では、４つのＬＥＤの１つずつに着目して、点灯しているか消灯しているかを調べる。これにより、第２の情報の３ビット分を復元する。具体的には、以下の手順によりデータを復元する。
【０２６７】
｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛消灯，消灯，点灯，点灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛０，０，１，１｝をセットして、さらに、第２の情報を逐次格納していくメモリ（図示しない）の最後尾に３ビットの情報「０」を加える。
【０２６８】
また、｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛消灯，点灯，点灯，消灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛０，１，１，０｝をセットして、さらに、第２の情報を逐次格納していくメモリの最後尾に３ビットの情報「１」を加える。
【０２６９】
また、｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛点灯，点灯，消灯，消灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛１，１，０，０｝をセットして、さらに、第２の情報を逐次格納していくメモリの最後尾に３ビットの情報「２」を加える。
【０２７０】
また、｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛点灯，消灯，消灯，点灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛１，０，０，１｝をセットして、さらに、第２の情報を逐次格納していくメモリの最後尾に３ビットの情報「３」を加える。
【０２７１】
また、｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛点灯，点灯，点灯，消灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛１，１，１，０｝をセットして、さらに、第２の情報を逐次格納していくメモリの最後尾に３ビットの情報「４」を加える。
【０２７２】
また、｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛点灯，点灯，消灯，点灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛１，１，０，１｝をセットして、さらに、第２の情報を逐次格納していくメモリの最後尾に３ビットの情報「５」を加える。
【０２７３】
また、｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛点灯，消灯，点灯，点灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛１，０，１，１｝をセットして、さらに、第２の情報を逐次格納していくメモリの最後尾に３ビットの情報「６」を加える。
【０２７４】
また、｛位置（１，１）のＬＥＤ，位置（１，２）のＬＥＤ，位置（２，１）のＬＥＤ，位置（２，２）のＬＥＤ｝が、｛消灯，点灯，点灯，点灯｝している場合には、｛Ｒ（ｔ，１，１），Ｒ（ｔ，１，２），Ｒ（ｔ，１，３），Ｒ（ｔ，１，４）｝として、｛０，１，１，１｝をセットして、さらに、第２の情報を逐次格納していくメモリの最後尾に３ビットの情報「７」を加える。
【０２７５】
次いで、ｔがＴ未満であるかどうかを判断する（ステップＳ１０８）。ｔがＴ未満であれば、次ステップＳ１０９に進む。それ以外であれば、すべてのｔ（ｔ＝１、２、…、Ｔ）について、Ｒ（ｔ，１，１）、Ｒ（ｔ，１，２）、Ｒ（ｔ，１，３）、Ｒ（ｔ，１，４）が確定したことになるので、本処理ルーチン全体を終了する。
【０２７６】
ステップＳ１０９では、次の時刻を処理するために、ｔを１だけインクリメントして、ステップＳ１０６に戻る。
【０２７７】
勿論、４つのＬＥＤの平均的な明るさ（４つのうち、幾つが点灯しているか）を判別することができるが、ＬＥＤ１つずつを判別できない場合には、第１の情報のみ復元でき、ステップＳ１０７での処理は意味がなくなり、第２の情報は復元されない。
【０２７８】
このようにして、エンコーダ１０１での処理（図２６〜図２７）、並びにデコーダ２０３での処理（図２８）が行われ、第１の情報と第２の情報が伝送される。
【０２７９】
続いて、上述した条件１、条件２、条件３、条件４、及び条件１’、あるいは、条件１１、条件１２、及び、条件１１’を用いて光伝送データの符号化及び複合化を行なう本発明のさらなる実施形態について説明する。以下では、時間方向についても、各階層毎に可変とする応用例について説明する。
【０２８０】
本発明に係る光伝送によれば、受信装置２００を所持する人が遠くから２次元発光部１０３をカメラ２０１で撮影した場合にも、第１の情報を受信することができる。しかしながら、遠くからの撮影の場合、カメラ２０１の撮影画像は全体的に光量不足になる可能性もある。したがって、露光時間（１枚の撮影に要する露出時間）を長くしなくてはいけない場合もある。前述の説明では、時間間隔として、ｔ＝１、２、…、Ｔにおいてカメラ２０１で撮影していくと述べたが、カメラ２０１の撮影中における露光時間の関係で、ｔ＝２、４、６、８、…というように２単位でしか撮影しないと十分な光量が得られない可能性もある。勿論、受信装置２００を持った人が送信装置１００に十分近づけば問題はない。したがって、近づかなければ受信できない第ｑの情報（ｑはかなり大きな数）については、前述した通り、時間間隔として、ｔ＝１、２、…、Ｔにおいてカメラ２０１で撮影していくことが可能という前提で考えてよい。
【０２８１】
以下では、本発明に係る光伝送において時間も考慮した応用例について説明する。
【０２８２】
第１の情報は、時間間隔としてＰ（１）とする。すなわち、受信装置２００側では、時間間隔がＰ（１）間隔で撮影していけば復元できるとする。同様に、ｑ階層目の情報（第ｑの情報）は、時間間隔としてＰ（ｑ）とする。ここで、任意のｑ（ｑ＝１、２、…、Ｑ）に対して、Ｐ（ｑ）は１以上の整数である。また、任意のｑ（ｑ＝１、２、…、Ｑ−１）に対して、Ｐ（ｑ）はＰ（ｑ＋１）で割り切れるとし、勿論、Ｐ（ｑ）＝Ｐ（ｑ＋１）であってもよい。Ｐ（Ｑ）は１である。
【０２８３】
前述の条件１、条件２、条件３、条件４、及び、条件１’を満たすマッピング方法は、以下の条件を満たすように改良される。
【０２８４】
条件２１：
ｔ’はＰ（ｑ）の倍数とし、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）＝１の場合、Ｎｑビットの入力データに対して、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する。但し、任意のＮｑビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝のＨｑ×Ｖｑ個の要素のうち、１であるものの数と０であるものの数は一定であり、その割合はＵｑ：（１−Ｕｑ）である。つまり、１であるものの個数はＵｑ×（Ｈｑ×Ｖｑ）であり、０であるものの個数は（１−Ｕｑ）×（Ｈｑ×Ｖｑ）である。また、Ｎｑビットの入力データの値が異なれば、上記｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンも異なるようにする。
【０２８５】
ここで、Ｎｑは定数であり、Ｎｑビットの入力データとは第ｑの情報の中のＮｑビット分のデータのことである。なお、特にＮｑ＝０であれば、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常に、ある特定の１つのパターンとなる。Ｎｑビットの入力データに対して、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する、という対応関係を、「露出時間を考慮した第ｑの正の場合のマッピング表」と呼ぶことにする。そして、この確定した値Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、…、Ｒ（ｔ’−１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）のすべてにコピーする。但し、Ｐ（ｑ）＝１のときは、コピーする対象がないので、コピーする必要はない。
【０２８６】
条件２２：
ｔ’はＰ（ｑ）の倍数とし、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）＝０の場合、Ｍｑビットの入力データに対して、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する。但し、任意の「Ｍｑビットの入力データ」に対応する組み合わせパターン｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝のＨｑ×Ｖｑ個からなる要素のうち、１であるものの数と０であるものの数は一定で、その割合はＺｑ：（１−Ｚｑ）である。つまり、１であるものの個数はＺｑ×（Ｈｑ×Ｖｑ）であり、０であるものの個数は（１−Ｚｑ）×（Ｈｑ×Ｖｑ）である。また、Ｍｑビットの入力データの値が違えば、上記｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンも異なるようにする。
【０２８７】
ここで、Ｍｑは定数であり、Ｍｑビットの入力データとは第ｑの情報の中のＭｑビット分のデータのことである。なお、特にＭｑ＝０であれば、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常に、ある特定の１つのパターンとなる。Ｍｑビットの入力データに対して｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する、という対応関係を、「露出時間を考慮した第ｑの負の場合のマッピング表」と呼ぶことにする。そして、この確定した値Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、…、Ｒ（ｔ’−１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）のすべてにコピーする。但し、Ｐ（ｑ）＝１のときは、コピーする対象がないので、コピーする必要はない。
【０２８８】
条件２３：
任意のｑに対して、ＮｑあるいはＭｑのいずれか１つは少なくとも１以上である。
【０２８９】
条件２４：
任意のｑに対して、ＵｑはＺｑを越える。すなわち、Ｕｑ＞Ｚｑである。
【０２９０】
但し、ｑ＝１の場合、対応する１つ上の階層がないので、この場合は条件２２は無視して条件２１を満たすようなマッピング表とする。すなわち、以下の条件２１’を満たす。
【０２９１】
条件２１’（ｑ＝１の場合）：
ｔ’はＰ（ｑ）（即ち、Ｐ（１））の倍数とし、Ｎｑ（即ち、Ｎ１）ビットの入力データに対して、｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の組み合わせパターンを決定する。但し、任意のＮ１ビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝のＨ１×Ｖ１個からなる要素のうち、１であるものの数と０であるものの数は一定で、その割合はＵ１：（１−Ｕ１）である。つまり、１であるものの個数はＵ１×（Ｈ１×Ｖ１）であり、０であるものの個数は（１−Ｕ１）×（Ｈ１×Ｖ１）である。また、Ｎ１ビットの入力データの値が異なれば、上記｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の組み合わせパターンも異なるようにする。
【０２９２】
ここで、Ｎ１は定数であり、Ｎ１ビットの入力データとは第１の情報の中のＮ１ビット分のデータのことである。但し、Ｎ１は１以上である。Ｎ１ビットの入力データに対して、｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の組み合わせパターンを決定する、という対応関係を、「露出時間を考慮した第１の正の場合のマッピング表」と呼ぶことにする。そして、この確定した値Ｒ（ｔ’，ｉ１）を、Ｒ（ｔ’−Ｐ（１）＋１，ｉ１）、Ｒ（ｔ’−Ｐ（１）＋２，ｉ１）、…、Ｒ（ｔ’−１，ｉ１）のすべてにコピーする。但し、Ｐ（１）＝１のときは、コピーする対象がないので、コピーする必要はない。
【０２９３】
この条件２１’は、説明上、他の階層との統一性を保つためのものであり、この性質を満たさなくてはいけないという理由は特にない。
【０２９４】
上述した条件２１、条件２２、条件２３、条件２４、及び、条件２１’を満たすマッピング方法は複数考えられるが、それらの中から１つの方法を選び、それをエンコーダ１０１及びデコーダ２０３で共通に使用する。そして、これら条件２１、条件２２、条件２３、条件４、及び、条件２１’を満たすマッピング方法により、第１から第Ｑまでの情報から、Ｒ（ｔ，ｉ１）やＲ（ｔ，ｉ１，ｉ２）や、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）が決定される。
【０２９５】
ここで、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合について考えてみる。
【０２９６】
あるｑ（ｑ＝２、…、Ｑ）に対して、任意のｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、任意のｉ２（ｉ１＝１、２、…、Ｈ１×Ｖ１）、…、任意のｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）、及び、任意の時刻ｔ（ｔ＝１、２、…、Ｔ）において、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１なら、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合が確定していると仮定する。この値をＦ１（ｑ）とする。つまり、２次元発光部１０３内のＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個よりなるＬＥＤのうち、点灯しているものが、Ｆ１（ｑ）×（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個であるとする。
【０２９７】
そして、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０なら、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合が確定していると仮定する。この値をＦ０（ｑ）とする。つまり、２次元発光部１０３内のＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個よりなるＬＥＤのうち、点灯しているものがＦ０（ｑ）×（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）×（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）個であるとする。さらに、Ｆ１（ｑ）＞Ｆ０（ｑ）であると仮定する。
【０２９８】
また、上述した条件より明らかであるように、ｔ’をＰ（ｑ）の倍数とすると、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）＝Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）＝…＝Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）である。したがって、上記の仮定より、ｔ’をＰ（ｑ）の倍数とすると、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内では、常にＦ１（ｑ）の割合でＬＥＤが点灯している。そして、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝０なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤは、常にＦ０（ｑ）の割合で点灯している。
【０２９９】
さらに、このように仮定することで、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝１なら、条件２１から分かるように、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）で示される領域内でＬＥＤが点灯している割合は、Ｕｑ×Ｆ１（ｑ）＋（１−Ｕｑ ）×Ｆ０（ｑ）＝Ｆ０（ｑ）＋Ｕｑ×（Ｆ１（ｑ）−Ｆ０（ｑ））  となる。この値をＦ１（ｑ−１）とする。Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝０なら、条件２２から分かるように、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）で示される領域内でＬＥＤが点灯している割合は、Ｚｑ×Ｆ１（ｑ）＋（１−Ｚｑ ）×Ｆ０（ｑ）＝Ｆ０（ｑ）＋Ｚｑ×（Ｆ１（ｑ）−Ｆ０（ｑ））となる。この値をＦ０（ｑ−１）とする。
【０３００】
ここで仮定した「Ｆ１（ｑ）＞Ｆ０（ｑ）」と条件２４より、Ｆ１（ｑ−１）＞Ｆ０（ｑ−１）であることが分かる。
【０３０１】
さて、Ｓ（ｔ，ｉ１，ｉ２，…，ｉＱ）は、先に説明したように、時刻ｔにおける１つのＬＥＤを示している。そして、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）＝１なら、そのＬＥＤは点灯しているので、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示される領域内でＬＥＤが点灯している割合Ｆ１（Ｑ）は１となる。同様に、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）＝０なら、そのＬＥＤは消灯しているので、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示される領域内でＬＥＤが点灯している割合Ｆ０（Ｑ）は０となる。したがって、ｑ＝Ｑの場合は、Ｆ１（ｑ）＝１、Ｆ０（ｑ）＝０である。
【０３０２】
以上より、再帰的に、Ｆ１（Ｑ−１）、Ｆ０（Ｑ−１）、Ｆ１（Ｑ−２）、Ｆ０（Ｑ−２）、…、Ｆ１（１）、Ｆ０（０）が求まり、且つ、Ｆ１（Ｑ−１）＞Ｆ０（Ｑ−１）、Ｆ１（Ｑ−２）＞Ｆ０（Ｑ−２）、…、Ｆ１（１）＞Ｆ０（０）である。再言すれば、Ｆ１（ｑ）は、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１の場合において時刻ｔにＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合である。また、Ｆ０（ｑ）は、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０の場合に、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合である。しかも、ｔ’をＰ（ｑ）の倍数とすると、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内では、ＬＥＤは常にＦ１（ｑ）の割合で点灯している。また、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝０なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内では、常にＦ０（ｑ）の割合でＬＥＤが点灯している。
【０３０３】
要言すれば、２次元発光部１０３の素子数（ＬＥＤの数）が決められており、その数は、横方向にＨ個、縦方向にＶ個である。また、Ｈ１×Ｈ２×…×ＨＱ＝ＨとなるＨ１、Ｈ２、…、ＨＱ、及び、Ｖ１×Ｖ２×…×ＶＱ＝ＶとなるＶ１、Ｖ２、…、ＶＱが決められている。定数Ｕ１、Ｕ２、Ｕ３、…、ＵＱ及びＺ２、Ｚ３、…、ＺＱが決められている。第ｑ（ｑ＝１、２、…、Ｑ）の情報を送る時間間隔Ｐ（ｑ）が決められており、Ｐ（ｑ）はＰ（ｑ＋１）で割り切れる。定数Ｎ１、Ｎ２、Ｎ３、…、ＮＱ及びＭ２、Ｍ３、…、ＭＱが決められており、上記条件２１、条件２２、条件２３、条件２４、及び、条件２１’を満たすマッピング方法（すなわち、露出時間を考慮した第１の正の場合のマッピング表、露出時間を考慮した第２の正の場合のマッピング表、露出時間を考慮した第３の正の場合のマッピング表、…、露出時間を考慮した第Ｑの正の場合のマッピング表、及び露出時間を考慮した第２の負の場合のマッピング表、露出時間を考慮した第３の負の場合のマッピング表、…、露出時間を考慮した第Ｑの負の場合のマッピング表）が決められている。さらに、マッピング方法が決まることで、Ｆ１（１）、Ｆ０（１）、Ｆ１（２）、Ｆ０（２）、…、Ｆ１（Ｑ）、Ｆ０（Ｑ）も決定される。これらの値、及びマッピング表は、送信装置１００のエンコーダ１０１と受信装置２００のデコーダ２０３にあらかじめ与えられており、送信装置１００と受信装置２００で整合性がとれているようになっている。
【０３０４】
なお、Ｆ１（ｑ）、Ｆ０（ｑ）とは、それぞれ、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１あるいは０の場合に、時刻ｔにＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合を示している。これら割合Ｆ１（ｑ）とＦ０（ｑ）は、入力されてくる第１から第Ｑの情報の値によらず常に一定であり、先に述べたようにあらかじめ確定されている。そして、Ｆ１（ｑ）＞Ｆ０（ｑ）である。また、ｔ’をＰ（ｑ）の倍数とすると、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、Ｓ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内では、常にＦ１（ｑ）の割合でＬＥＤが点灯している。Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝０なら、ｔ＝ｔ’−Ｐ（ｔ）＋１からｔ’の間は、Ｓ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内では、ＬＥＤは常にＦ０（ｑ）の割合で点灯している。
【０３０５】
図２９には、このようなマッピング方法を採用したときの送信装置１００側のエンコーダ１０１によって実行される処理手順をフローチャートの形式で示している。
【０３０６】
まず、階層を表す変数ｑに１をセットしてから（ステップＳ１１１）、第ｑの情報から｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を決定する（ステップＳ１１２）。ステップＳ１１２の詳細な処理手順については後述に譲る。
【０３０７】
次いで、ｑがＱ未満であるかどうかを判別する（ステップＳ１１３）。ｑがＱ未満であれば、まだ高周波数側の階層が未処理のまま残っているで、ステップＳ１１４に進んでスｑを１だけインクリメントしてから、ステップＳ１１２に戻る。
【０３０８】
また、ｑがＱ未満でなければ、ステップＳ１１５に進み、ステップＳ１１２で求めたＲ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）に従い、２次元発光部１０３を発光する。つまり、時刻ｔ（ｔ＝１、２、…、Ｔ）においてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）で指定される１つのＬＥＤを、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）＝１なら点灯し、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ−１，ｉＱ）＝０なら消灯する。そして、ＬＥＤの点滅処理を行なった後、本処理ルーチン全体を終了する。
【０３０９】
なお、時刻Ｔは、十分に大きな値であり、第１から第Ｑまでの情報をすべて送るのに十分な時間であるとする。また、ある情報（例えば、第ｑの情報）は、時刻Ｔ未満で送り終わってしまうかもしれないが、その場合は、第ｑの情報の最後の方にダミーのデータを加えて、時刻Ｔまでダミー・データも含めてエンコードして送信し続ける。
【０３１０】
図３０〜図３２には、前述のステップＳ１１２における、与えられたｑに対して第ｑの情報から｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を決定するための詳細な処理手順をフローチャートの形式で示している。なお、図２９に示したフローチャートからも明らかなように、この段階までに、すべてのｔ、ｉ１、ｉ２、…、ｉｑ−１に対して、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）は確定している。
【０３１１】
まず、ｑが１であるかどうかを判断し（ステップＳ１２１）、１であればステップＳ１２２に進み、１以外であればステップＳ１２６に進む。
【０３１２】
ステップＳ１２２では時刻を表す変数ｔ’にＰ（１）をセットし、次いでステップＳ１２３では、第１の情報の先頭からＮ１ビットを取り出し、露出時間を考慮した第１の正の場合のマッピング表を参照して、そのＮ１ビットに対応する組み合わせパターンを求めて、そのパターンを｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の値とする。すなわち、Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）の値を確定させる。そして、各ｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）に対してこれら確定されたＲ（ｔ’，ｉ１）を、Ｒ（ｔ’−Ｐ（１）＋１，ｉ１）、Ｒ（ｔ’−Ｐ（１）＋２，ｉ１）、…、Ｒ（ｔ’−１，ｉ１）のすべてにコピーする。但し、Ｐ（１）＝１のときはコピーする対象がないので、コピーする必要はない。ここで読み出された第１の情報の先頭Ｎ１ビットは破棄され、次のビットが先頭に繰上げされる。
【０３１３】
次いで、ｔ’がＴ未満であるかどうかを判断する（ステップＳ１２４）。ｔ'がＴ未満であればステップＳ１２５に進み、それ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）についてＲ（ｔ，ｉ１）が確定したことになるので、本処理ルーチン全体を終了する。
【０３１４】
次いで、次の時刻を処理するために、ｔ’をＰ（１）だけインクリメントして（ステップＳ１２５）、ステップＳ１２３に戻る。
【０３１５】
一方、ステップＳ１２６では、時刻を表す変数ｔ’にＰ（ｑ）をセットしてから、次ステップＳ１２７−１に進む。
【０３１６】
ステップＳ１２７−１では、ｉ１に１をセットして、次ステップＳ１２７−２に進む。
【０３１７】
また、ステップＳ１２７−２では、ｉ２に１をセットして、次ステップＳ１２７−３に進む。
【０３１８】
以降、同様にして、ステップＳ１２７−（ｑ−１）では、ｉｑ−１に１をセットして、ステップＳ１２８に進む。なお、ステップＳ１２７−３からステップＳ１２７−（ｑ−２）は、図面の簡素化のため、図示を省略している。
【０３１９】
次いで、現在のｔ’、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）の値を調べる（ステップＳ１２８）。
【０３２０】
ここで、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が１なら、第ｑの情報の先頭からＮｑビットを取り出し、露出時間を考慮した第ｑの正の場合のマッピング表を参照して、そのＮｑビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の値とする。すなわち、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）の値を確定させる。そして、各ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）に対してこれら確定されたＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、…、Ｒ（ｔ’−１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）のすべてにコピーする。但し、Ｐ（ｑ）＝１のときは、コピーする対象がないので、コピーする必要はない。ここで読み出された第ｑの情報の先頭Ｎｑビットは破棄され、次のビットが先頭に繰上げされる。
【０３２１】
なお、条件２１で既に述べたように、Ｎｑ＝０なら、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常に、ある特定の１つのパターンとなるので、その値をセットする。そして、この特定のパターンを、時刻ｔ’−Ｐ（ｑ）＋１からｔ’−１までコピーする。この場合は、第ｑの情報の先頭ビットは破棄されない。
【０３２２】
一方、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が０なら、第ｑの情報の先頭からＭｑビットを取り出し、露出時間を考慮した第ｑの負の場合のマッピング表を参照して、そのＭｑビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の値とする。すなわち、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）の値を確定させる。そして、各ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）に対してこれら確定されたＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、…、Ｒ（ｔ’−１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）のすべてにコピーする。但し、Ｐ（ｑ）＝１のときはコピーする対象がないので、コピーする必要はない。ここで読み出された第ｑの情報の先頭Ｍｑビットは破棄され、次のビットが先頭に繰上げされる。
【０３２３】
なお、条件２２で既に述べたように、Ｍｑ＝０なら、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常にある特定の１つのパターンとなるので、その値をセットする。そして、この特定のパターンを、時刻ｔ’−Ｐ（ｑ）＋１からｔ’−１までコピーする。この場合は、第ｑの情報の先頭ビットは破棄されない。
【０３２４】
次いで、ｉｑ−１が（Ｈｑ−１  ×  Ｖｑ−１）未満であるかどうかを判断する（ステップＳ１２９−１）。ｉｑ−１が（Ｈｑ−１  ×  Ｖｑ−１）未満であれば、ステップＳ１３０−１に進んで、ｉｑ−１を１だけインクリメントした後、ステップＳ１２８に戻る。また、ｉｑ−１がそれ以外なら、ステップＳ１２９−２に進む。
【０３２５】
ステップＳ１２９−２では、ｉｑ−２が（Ｈｑ−２  ×  Ｖｑ−２）未満であるかどうかを判断する。そして、ｉｑ−２が（Ｈｑ−２  ×  Ｖｑ−２）未満であれば、ステップＳ１３０−２に進んで、ｉｑ−２を１だけインクリメントした後、ステップＳ１２７−（ｑ−１）に戻る。また、ｉｑ−２がそれ以外なら、ステップＳ１２９−３に進む。
【０３２６】
ステップＳ１２９−３では、ｉｑ−３が（Ｈｑ−３  ×  Ｖｑ−３）未満であるかどうかを判断する。そして、ｉｑ−３が（Ｈｑ−３  ×  Ｖｑ−３）未満であれば、ステップＳ１３０−３に進んで、ｉｑ−３を１だけインクリメントした後、ステップＳ１２７−（ｑ−２）に戻る。また、ｉｑ−３がそれ以外なら、ステップＳ１２９−４に進む。
【０３２７】
以降、同様にして、ステップＳ１２９−（ｑ−１）では、ｉ１が（Ｈ１×Ｖ１）未満であるかどうかを判断する。そして、ｉ１が（Ｈ１×Ｖ１）未満であれば、ステップＳ１３０−（ｑ−１）に進んで、ｉ１を１だけインクリメントして、ステップＳ１２７−２に戻る。また、ｉ１がそれ以外なら、次ステップＳ３１１に行く。なお、ステップＳ１２９−４からステップＳ１２９−（ｑ−２）、及び、ステップＳ１３０−４からステップＳ１３０−（ｑ−２）は、図面の簡素化のため図示を省略する。
【０３２８】
ステップＳ１３１では、ｔ’がＴ未満であるかどうかを判断する。そして、ｔ'がＴ未満であれば、ステップＳ１３２に進んで、次の時刻を処理するためにｔ’をＰ（ｑ）だけインクリメントした後、ステップＳ１２７−１に戻る。
【０３２９】
また、ｔ'がそれ以外なら、すべてのｔ（ｔ＝１、２、…、Ｔ）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、ｉ２（ｉ２＝１、２、…、Ｈ２×Ｖ２）、…、ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）についてＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）が確定したことになるので、本処理ルーチン全体を終了する。
【０３３０】
以上、図２９、並びに図３０〜図３２を用いて、第１から第Ｑまでの情報が入力されてきたときの、エンコーダ１０１による２次元発光部１０３での時系列２次元発光パターンの作成方法について説明した。
【０３３１】
次いで、上述したデータの符号化に対応する、受信装置２００内のデコーダ２０３での処理について説明する。
【０３３２】
既に説明したように、送信装置１００から遠い距離にいる場合は、受信装置２００のカメラ２０１では２次元発光部１０３の発光パターンを十分な解像度で撮影することができない。この場合、受信装置２００の射影変換部２０２で変換された横Ｈ画素、縦Ｖ画素よりなる画像は、多少ぼけた画像となる。しかし、複数の画素を１つ組と考えて、その組内の平均的な明るさを認識することはできる。
【０３３３】
もし、Ｈ１×Ｖ１個の（Ｈ２×Ｈ３×…×ＨＱ）×（Ｖ２×Ｖ３×…×ＶＱ）個より成るＬＥＤの組を、露出時間としてＰ（１）という時間で判別することができれば、第１の情報をデコーダで解読できる。例えば、（Ｈ１×Ｈ２）×（Ｖ１×Ｖ２）個の（Ｈ３×Ｈ４×…×ＨＱ）×（Ｖ３×Ｖ４×…×ＶＱ）個よりなるＬＥＤの組が、露出時間としてＰ（２）という時間で判別するというように、さらに細かく判別することができるのであれば、第２の情報もデコーダで解読することができる。以下、同様に、受信装置２００の射影変換部２０２で変換されたＨ×Ｖ画素よりなる画像の「ぼけ具合」を基にどの階層まで解読できるかが決まる。
【０３３４】
図３３には、この場合の受信装置２００のデコーダ２０３が実行する処理手順をフローチャートの形式で示している。
【０３３５】
まず、受信装置２００の射影変換部２０２で変換されたＨ×Ｖ画素よりなる画像の実質的な解像度を調べる（ステップＳ１４１）。この解像度を表す数値として、識別できる横方向の単位をＧ０、縦方向の単位をＧ１とする。
【０３３６】
次いで、どの階層まで解読することができるかを決定する（ステップＳ１４２）。具体的には、（Ｈｑ＋１  ×  Ｈｑ＋２  ×  …  ×  ＨＱ）≧Ｇ０となり、且つ、「（Ｖｑ＋１  ×  Ｖｑ＋２  ×  …  ×  ＶＱ）≧Ｇ１」となる最小のｑを求める。これをｑｍａｘとする。但し、Ｇ０＝Ｇ１＝１のときは、ｑｍａｘ＝Ｑである。
【０３３７】
次いで、階層を表す変数ｑに１をセットしてから（ステップＳ１４３）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）の値を求める（ステップＳ１４４）。ステップＳ１４４の詳細については後述に譲る。
【０３３８】
次いで、第ｑの情報を復元する（ステップＳ１４５）。第ｑの情報の復元方法の詳細については後述に譲る。
【０３３９】
次いで、ｑがｑｍａｘ未満であるかどうかを判断する（ステップＳ１４６）。ｑがｑｍａｘ未満であれば、次の階層を復元するために、ステップＳ１４７でｑを１だけインクリメントしてからステップＳ１４４に戻る。また、ｑがそれ以外であれば、本処理ルーチン全体を終了する。
【０３４０】
図３４には、与えられたｑに対して２次元発光部１０３の撮影画像からＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を決定するための詳細な処理手順をフローチャートの形式で示している。ここで言う撮像画像をより正確に述べるなら、カメラ２０１での撮影画像をアフィン変換したＨ×Ｖ画素の画像、すなわち射影変換部２０２での変換後の画像のことである。
【０３４１】
まず、時刻ｔ’においてＳ（ｔ’，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合がＦ１（ｑ）であるか、あるいはＦ０（ｑ）であるかを判別する（ステップＳ１５１）。ＬＥＤが点灯している割合がＦ１（ｑ）である場合には、次ステップＳ１５２に進む。また、その割合がＦ０（ｑ）である場合には、ステップＳ１５３に進む。実際には、ノイズもあるので、（Ｆ１（ｑ）＋Ｆ０（ｑ））÷２以上であるか未満であるかによって判断を行えばよい。
【０３４２】
ステップＳ１５２では、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１としてから、ステップＳ１５４に進む。また、ステップＳ１５３では、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝０としてから、ステップＳ１５４に進む。
【０３４３】
ステップＳ１５４では、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）の値を、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、…、Ｒ（ｔ’−１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）のすべてにコピーしてから、本処理ルーチン全体を終了する。但し、Ｐ（ｑ）＝１のときは、コピーする対象がないので、コピーする必要はない。
【０３４４】
なお、図３４で示した処理は、すべてのｔ’及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、ｉ２（ｉ２＝１、２、…、Ｈ２×Ｖ２）、…、ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）について行なう。但し、ｔ’はＰ（ｑ）の倍数（１倍、２倍、…）であり、且つ、Ｔ未満である。
【０３４５】
Ｆ１（ｑ）、Ｆ０（ｑ）とは、それぞれ、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１あるいは０の場合においてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される時刻ｔにおける領域内のＬＥＤの点灯している割合を示している。したがって、図３４に示すＲ（ｔ，ｉ１，ｉ２，…，ｉｑ）の決め方が正当であることを、当業者は容易に理解することができる。
【０３４６】
なお、ｔ’をＰ（ｔ’）の倍数とすると、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤは、常にＦ１（ｑ）の割合で点灯している。
【０３４７】
また、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝０なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤは、常にＦ０（ｑ）の割合で点灯している。このことから、受信装置２００側のカメラ２０１で、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’まで露光し続けた１枚の画像を使って、上記のステップＳ１５１でのＬＥＤの点灯している割合を求めることができる。あるいは、カメラの感度が良くて、時間間隔「１」で連続撮影していくことができるのであれば、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’まで撮影されたＰ（ｑ）枚の画像の平均値を使って、ステップＳ１５１でのＬＥＤの点灯している割合を求めるようにしてもよい。
【０３４８】
図３５〜図３７には、与えられたｑに対して、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）からを第ｑの情報を決定するための詳細な処理手順をフローチャートの形式で示している。なお、図１４の処理の流れから明らかなように、この段階までに、すべてのｔ（ｔ＝１、２、…、Ｔ）、ｉ１、ｉ２、…、ｉｑ−１に対して、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）は確定している。
【０３４９】
まず、ｑが１であるかどうかを判別し（ステップＳ１６１）、ｑが１であれば次ステップＳ１６２に進み、ｑが１以外であればステップＳ１６６に進む。
【０３５０】
ステップＳ１６２では時刻を表す変数ｔ’にＰ（１）をセットする。次いで、ステップＳ１６３では、パターン｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝から、露出時間を考慮した第１の正の場合のマッピング表を参照して、対応する第１の情報のＮ１ビット分のデータを確定させる。このＮ１ビット分のデータは、受信装置２００内の第１の情報を格納して行くメモリの最後尾に付け加える。
【０３５１】
次いで、ｔ'がＴ未満であるかどうかを判断する（ステップＳ１６４）。ｔ’'がＴ未満であれば、ステップＳ１６５に進む。また、ｔ''がそれ以外なら、すべてのｔ’及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）についてＲ（ｔ，ｉ１）から第１の情報を復元したことになるので、本処理ルーチン全体を終了する。但し、ｔ’はＰ（１）の倍数（１倍、２倍、…）であり、且つ、Ｔ以下である。
【０３５２】
次いで、次の時刻を処理するためにｔ’をＰ（１）だけインクリメントしてから（ステップＳ１６５）、ステップＳ１６３に戻る。
【０３５３】
一方、ステップＳ１６６では、時刻を表す変数ｔ’にＰ（ｑ）をセットして、次ステップＳ１６７−１に進む。
【０３５４】
ステップＳ１６７−１では、ｉ１に１をセットして、次ステップＳ１６７−２に進む。
【０３５５】
また、ステップＳ１６７−２では、ｉ２に１をセットして、次ステップＳ１６７−３に進む。
【０３５６】
以降、同様にして、ステップＳ１６７−（ｑ−１）では、ｉｑ−１に１をセットして、次ステップＳ１６８に進む。なお、ステップＳ１６７−３からステップＳ１６７−（ｑ−２）は、図面の簡素化のため図示を省略している。
【０３５７】
ステップＳ１６８では、現在のｔ’、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）の値を判別する。
【０３５８】
ここで、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が１なら、パターン｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝から、露出時間を考慮した第ｑの正の場合のマッピング表を参照して、対応する第ｑの情報のＮｑビット分のデータを確定させる。このＮｑビット分のデータは、受信装置２００内の第ｑの情報を格納していくメモリ（図示しない）の最後尾に付け加える。
【０３５９】
なお、条件２１で既に述べたように、Ｎｑ＝０なら、第ｑビットの情報は含まれていないので、第ｑの情報を格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このとき、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常にある特定の１つのパターンとなっている筈である。
【０３６０】
一方、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が０なら、パターン｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝から、露出時間を考慮した第ｑの負の場合のマッピング表を参照して、対応する第ｑの情報のＭｑビット分のデータを確定させる。このＭｑビット分のデータは、受信装置２００内の第ｑの情報を格納していくメモリの最後尾に付け加える。
【０３６１】
なお、条件２２で既に述べたように、Ｍｑ＝０なら、第ｑビットの情報は含まれていないので、第ｑの情報を格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このとき、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、常にある特定の１つのパターンとなっている筈である。
【０３６２】
次いで、ステップＳ１６９−１では、ｉｑ−１が（Ｈｑ−１  ×  Ｖｑ−１）未満であるかどうかを判断する。そして、ｉｑ−１が（Ｈｑ−１  ×  Ｖｑ−１）未満であれば、ステップＳ１７０−１に進んで、ｉｑ−１を１だけインクリメントしてから、ステップＳ１６８に戻る。また、ｉｑ−１が（それ以外なら、ステップＳ１６９−２に進む。
【０３６３】
ステップＳ１６９−２では、ｉｑ−２が（Ｈｑ−２  ×  Ｖｑ−２）未満であるかどうかを判断する。そして、ｉｑ−２が（Ｈｑ−２  ×  Ｖｑ−２）未満であれば、ステップＳ１７０−２に進んで、ｉｑ−２を１だけインクリメントしてから、ステップＳ１６７−（ｑ−１）に戻る。また、ｉｑ−２がそれ以外なら、ステップＳ１６９−３に進む。
【０３６４】
ステップＳ１６９−３では、ｉｑ−３が（Ｈｑ−３  ×  Ｖｑ−３）未満であるかどうかを判断する。（Ｈｑ−３  ×  Ｖｑ−３）未満であれば、ステップＳ１７０−３に進んで、ｉｑ−３を１だけインクリメントしてから、図示を省略したステップＳ１６７−（ｑ−２）に戻る。また、ｉｑ−３がそれ以外なら、ステップＳ１６９−４に行く。
【０３６５】
以降、同様にして、ステップＳ１６９−（ｑ−１）では、ｉ１が（Ｈ１×Ｖ１）未満であるかどうかを判断する。ｉ１が（Ｈ１×Ｖ１）未満であれば、ステップ１７０−（ｑ−１）に進んで、ｉ１を１だけインクリメントしてから、ステップＳ１６７−２に戻る。また、ｉ１がそれ以外なら、ステップＳ１７１に進む。なお、ステップＳ１６９−４からステップＳ１６９−（ｑ−２）、及び、ステップＳ１７０−４からステップＳ１７０−（ｑ−２）については、図面の簡素化のため図示を省略している。
【０３６６】
ステップＳ１７１では、ｔ’がＴ未満であるかどうかを判断する。ｔ’がＴ未満であれば、ステップＳ１７２に進んで、次の時刻を処理するために、ｔ’をＰ（ｑ）だけインクリメントしてから、ステップＳ１６７−１に戻る。
【０３６７】
また、ｔ’がそれ以外なら、すべてのｔ’（ｔ’はＰ（ｑ）の倍数（１倍、２倍、…）であり、且つ、Ｔ以下）及びすべてのｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、ｉ２（ｉ２＝１、２、…、Ｈ２×Ｖ２）、…、ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）についてＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から、第ｑの情報を復元したことになるので、本処理ルーチン全体を終了する。
【０３６８】
以上、図３３、図３４、及び図３５〜図３７を参照しながら、受信装置２００側のデコーダ２０１によって実行される、２次元発光部１０３からの時系列２次元発光パターンが入力されてきたときの第１から第ｑｍａｘまでの情報の復元方法について説明した。
【０３６９】
上述から分かるように、２次元発光部１０３からの時系列２次元発光パターンは、Ｆ１（ｑ）＞Ｆ０（ｑ）が成立する。すなわち、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１の場合に時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合（Ｆ１（ｑ））と、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０の場合に時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合（Ｆ０（ｑ））が相違している。
【０３７０】
したがって、受信装置２００側で、ある時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）の領域内に含まれるＬＥＤの平均的な明るさ（点灯しているＬＥＤ数÷領域内のＬＥＤの総個数）を求め、その値が、Ｆ１（ｑ）であるかＦ０（ｑ）であるかを判断し、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）の値を求めることができる。
【０３７１】
さらに、ｔ’をＰ（ｔ’）の倍数とすると、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内では、常にＦ１（ｑ）の割合でＬＥＤが点灯している。また、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝０なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内では、常にＦ０（ｑ）の割合でＬＥＤが点灯している。このことから、受信装置２００のカメラ２０１でｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’まで露光し続けた１枚の画像、あるいは、それより細かい間隔でｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’まで連続撮影し続けた複数画像の平均値を使い、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’までのＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合を求めることで、任意の時刻ｔにおけるＲ（ｔ，ｉ１，ｉ２，…，ｉｑ）の値を求めることができる。
【０３７２】
このように、２次元発光部１０３の各ＬＥＤの点滅パターンへのデータのマッピング方法としては、上述した条件２１、２２、２３、２４及び２１’を満たす方法以外にも、以下のような条件を満たすマッピング方法が考えられる。
【０３７３】
条件３１：
ｔ’はＰ（ｑ）の倍数とし、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）＝１の場合、Ｌｑビットの入力データに対して、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定する。但し、任意のＬｑビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝のＨｑ×Ｖｑ個からなる要素のうち、１であるものの数は、少なくとも１つ以上あるとする。また、Ｌｑビットの入力データの値が違えば、上記｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンも異なるようにする。
【０３７４】
ここで、Ｌｑは１以上の定数であり、Ｌｑビットの入力データとは第ｑの情報の中のＬｑビット分のデータのことである。Ｌｑビットの入力データに対して、｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の組み合わせパターンを決定するという対応関係を、「露出時間を考慮した第ｑの場合のマッピング表」と呼ぶことにする。そして、この確定した値Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、…、Ｒ（ｔ’−１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）のすべてにコピーする。但し、Ｐ（ｑ）＝１のときは、コピーする対象がないので、コピーする必要はない。
【０３７５】
条件３２：
Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１）＝０の場合、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）は、すべて０とする。したがって、｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を使って、第ｑの情報は伝送しない。
【０３７６】
但し、ｑ＝１の場合、対応する１つ上の階層がないので、この場合は、条件３２は無視して条件３１を満たすようなマッピング表とする。すなわち、以下の条件３１’を満たす。
【０３７７】
条件３１’（ｑ＝１の場合）：
Ｌｑ（すなわち、Ｌ１）ビットの入力データに対して、ｔ’はＰ（１）の倍数とし、｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の組み合わせパターンを決定する。但し、任意のＬ１ビットの入力データに対応する組み合わせパターン｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝のＨ１×Ｖ１個からなる要素のうち１であるものの数は、少なくとも１つ以上あるとする。また、Ｌ１ビットの入力データの値が違えば、上記｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の組み合わせパターンも異なるようにする。
【０３７８】
ここで、Ｌ１は１以上の定数であり、Ｌ１ビットの入力データとは第１の情報の中のＬ１ビット分のデータのことである。Ｌ１ビットの入力データに対して、｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の組み合わせパターンを決定するという対応関係を、「露出時間を考慮した第１の場合のマッピング表」と呼ぶことにする。そして、この確定した値Ｒ（ｔ’，ｉ１）を、Ｒ（ｔ’−Ｐ（１）＋１，ｉ１）、Ｒ（ｔ’−Ｐ（１）＋２，ｉ１）、…、Ｒ（ｔ’−１，ｉ１）のすべてにコピーする。但し、Ｐ（１）＝１のときは、コピーする対象がないので、コピーする必要はない。
【０３７９】
上述した条件３１、条件３２、及び条件３１’を満たすマッピング方法は複数考えられるが、それらの中から１つの方法を選び、それをエンコーダ１０１及びデコーダ２０３で共通に使用する。
【０３８０】
また、条件３１、条件３２、及び条件３１’を満たすマッピング方法により、第１から第Ｑまでの情報から、Ｒ（ｔ，ｉ１）やＲ（ｔ，ｉ１，ｉ２）や、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉＱ）が決定される。
【０３８１】
ここで、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合について考えてみる。
【０３８２】
あるｑ（ｑ＝１、…、Ｑ−１）に対して、任意のｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、任意のｉ２（ｉ１＝１、２、…、Ｈ１×Ｖ１）、…、任意のｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）、及び任意の時刻ｔ（ｔ＝１、２、…、Ｔ）において、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０なら、条件３２より、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１）は、すべて０である。したがって、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝０なら、任意のｉｑ＋１（ｉｑ＋１＝１、２、…、Ｈｑ＋１  ×  Ｖｑ＋１）、任意のｉｑ＋２（ｉｑ＋１＝１、２、…、Ｈｑ＋２  ×Ｖｑ＋２）、…、任意のｉＱ（ｉＱ＝１、２、…、ＨＱ  ×  ＶＱ）により示されるＲ（ｔ，ｉ１，ｉ２，…，ｉＱ）は０である。時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合は常に０である。この値をＦ０（ｑ）とする。
【０３８３】
あるｑ（ｑ＝１、…、Ｑ−１）に対して、任意のｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）、任意のｉ２（ｉ１＝１、２、…、Ｈ１×Ｖ１）、…、任意のｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）、及び、任意の時刻ｔにおいて、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１なら、すべてのｔ"（ｔ’−Ｐ（ｑ）＋１≦ｔ"≦ｔ’）に対してＲ（ｔ"，ｉ１，ｉ２，…，ｉｑ）＝１である。ここで、ｔ’はＰ（ｑ）の倍数であり、且つ、ｔ’−Ｐ（ｑ）＋１≦ｔ≦ｔ’である。そして、Ｐ（ｑ）はＰ（ｑ＋１）の倍数であることと、条件３１より、少なくとも１つのＲ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１）は１である。さらに、そのＲ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１）を考えると、Ｐ（ｑ＋１）はＰ（ｑ＋２）の倍数であることと、条件３１より、少なくとも１つのＲ（ｔ，ｉ１，ｉ２，…，ｉｑ，ｉｑ＋１，ｉｑ＋２）は１である。
【０３８４】
これを繰り返すことで、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１なら、少なくとも１つのｉｑ＋１（ｉｑ＋１＝１、２、…、Ｈｑ＋１  ×  Ｖｑ＋１）、少なくとも１つのｉｑ＋２（ｉｑ＋１＝１、２、…、Ｈｑ＋２  ×  Ｖｑ＋２）、…、少なくとも１つのｉＱ（ｉＱ＝１、２、…、ＨＱ  ×  ＶＱ）により示されるＲ（ｔ，ｉ１，ｉ２，…，ｉＱ）は１である。これは、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉＱ）で示される１×１個のＬＥＤが点灯していることを意味する。換言すれば、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）＝１なら、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合は、常に一定とは限らないが、少なくとも０を超えていることは確かである。この値をＦ１（ｑ）とする。
【０３８５】
したがって、このような条件でマッピング方法を決めても、Ｆ１（ｑ）＞Ｆ０（ｑ）である。そして、Ｆ０（ｑ）＝０であるから、受信装置２００側では、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内のＬＥＤの点灯している割合が０であるか又は０を越えるかで、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ）を判定することができる。しかも、ｔ’をＰ（ｑ）の倍数とすると、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ）＝１なら、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は常に０でない割合で、時刻ｔにおいてＳ（ｔ，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤは点灯している。つまり、ｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間は、常に少なくとも１つのＬＥＤは点灯している（ある特定の１つのＬＥＤがｔ＝ｔ’−Ｐ（ｑ）＋１からｔ’の間、点灯し続けている場合もある。また、複数のＬＥＤが時間ごとに点灯したり消灯したりしていて、どの時刻においても少なくとも１つは点灯しているという場合もある）。
【０３８６】
この場合の送信装置１００のエンコーダ１０１が行う処理は、図２９及び図３０〜図３２を参照しながら説明した前述の処理とほぼ同じである。但し、図３０のステップＳ１２３と図３１ステップＳ１２８に相当する処理が相違する。
【０３８７】
この場合のステップＳ１２３に相当するサブルーチンでは、第１の情報の先頭からＬ１ビットを取り出し、第１の場合のマッピング表を参照して、そのＬ１ビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝の値とする。すなわち、Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）の値を確定させる。そして、各ｉ１（ｉ１＝１、２、…、Ｈ１×Ｖ１）に対してこれら確定されたＲ（ｔ’，ｉ１）を、Ｒ（ｔ’−Ｐ（１）＋１，ｉ１）、Ｒ（ｔ’−Ｐ（１）＋２，ｉ１）、…、Ｒ（ｔ’−１，ｉ１）のすべてにコピーする。但し、Ｐ（１）＝１のときは、コピーする対象がないので、コピーする必要はない。ここで読み出された第１の情報の先頭Ｎ１ビットは破棄され、次のビットが先頭に繰上げされる。
【０３８８】
また、この場合のステップＳ１２８では、現在のｔ’、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）の値を判別する。
【０３８９】
Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が１なら、第ｑの情報の先頭からＬｑビットを取り出し、露出時間を考慮した第ｑの場合のマッピング表を参照して、そのＬｑビットに対応する組み合わせパターンを求め、そのパターンを｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝の値とする。すなわち、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）の値を確定させる。そして、各ｉｑ（ｉｑ＝１、２、…、Ｈｑ×Ｖｑ）に対してこれら確定されたＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を、Ｒ（ｔ’−Ｐ（ｑ）＋１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、Ｒ（ｔ’−Ｐ（ｑ）＋２，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）、…、Ｒ（ｔ’−１，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）のすべてにコピーする。但し、Ｐ（ｑ）＝１のときは、コピーする対象がないので、コピーする必要はない。ここで読み出された第ｑの情報の先頭Ｌｑビットは破棄され、次のビットが先頭に繰上げされる。
【０３９０】
Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が０なら、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）は、すべて０とする。ここで、ｔは、ｔ’−Ｐ（ｑ）＋１からｔ’までの値すべてである。第ｑの情報の先頭ビットは破棄されない。
【０３９１】
また、この場合の受信装置２００のデコーダ２０３が行なう処理は、図３３、図３４及び図３５〜図３７を参照しながら説明した前述の処理と同じである。但し、図３４のステップＳ１５１と、図３５のステップＳ１６３、図３６のステップＳ１６８に相当する処理が相違する。
【０３９２】
この場合のステップＳ１５１に相当するサブルーチンでは、時刻ｔ’においてＳ（ｔ’，ｉ１，ｉ２，…，ｉｑ）で示される領域内でＬＥＤが点灯している割合が０でないか、あるいは０であるかを判別する。そして、ＬＥＤが点灯している割合が０でない場合にはステップＳ１５２に進むが、０である場合にはステップＳ１５３に進む。
【０３９３】
また、この場合のステップＳ１６３に相当するサブルーチンでは、パターン｛Ｒ（ｔ’，１）、Ｒ（ｔ’，２）、…、Ｒ（ｔ’，Ｈ１×Ｖ１）｝から、露出時間を考慮した第１の場合のマッピング表を参照して、対応する第１の情報のＬ１ビット分のデータを確定させる。このＬ１ビット分のデータは、受信装置２００内の第１の情報を逐次格納していくメモリ（図示しない）の最後尾に付け加える。
【０３９４】
また、この場合のステップＳ１６８に相当するサブルーチンでは、現在のｔ’、ｉ１、ｉ２、…、ｉｑ−１により指定されるＲ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）の値を判断する。
【０３９５】
ここで、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が１なら、パターン｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝から、露出時間を考慮した第ｑの場合のマッピング表を参照して、対応する第ｑの情報のＬｑビット分のデータを確定させる。このＬｑビット分のデータは、受信装置２００内の第ｑの情報を逐次格納していくメモリの最後尾に付け加える。
【０３９６】
Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１）が０なら、パターン｛Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝は、すべて０であり、第ｑビットの情報は含まれていないので、第ｑの情報を逐次格納していくメモリの最後尾に付け加えるものは何もない。
【０３９７】
このようにして、上記条件３１、条件３２、及び条件３１’を満たすマッピング方法を採用しても、送信装置１００から発せられる第１から第Ｑまでの情報のうち第１から第ｑｍａｘまでの情報を受信装置２００側で受信することができる。
【０３９８】
なお、本明細書中では、伝送データのエラー訂正について述べていないが、通信の分野では、パリティを付加してエラー訂正機能を加えることは一般的であり、既知であるので、その説明を省略した。つまり、本発明においても、発信したい情報にパリティを加えて、受信装置２００側でエラー訂正できるようにしてもよい。
【０３９９】
また、上述した本実施形態では、２次元発光部１０３は複数のＬＥＤを配列して構成されているが、この他の発光素子を用いてもよいことは言うまでもない。
【０４００】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０４０１】
【発明の効果】
以上詳記したように、本発明によれば、光の点滅パターンで表現した光学的信号により転送されるデータを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０４０２】
また、本発明によれば、２次元マトリックス状に配置された光源の点滅パターンで表現される転送データを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０４０３】
また、本発明によれば、２次元マトリックス状に配置された光源の点滅パターンで表現されるデータを距離に応じたビットレートで転送することができるように符号化及び復号化して、距離にロバストなデータ通信を実現することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０４０４】
本発明によれば、複数のＬＥＤが２次元平面上に配列してなる２次元発光部が出力する２次元点滅パターンの空間を複数の解像度レベルに分解して、各解像度空間にデータをマッピングするようにした。したがって、送信装置から離れていて解像度が十分でない受信装置は低解像度空間にマッピングされた２次元点滅パターンを読み取ることができ、また、送信装置に近づいて解像度が十分な受信装置はより高解像度の空間にマッピングされた２次元点滅パターンを読み取ることができる。これによって、ユーザは、送信装置から離れている場所からでもある程度の情報を得ることができ、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【０４０５】
本発明によれば、ある階層の情報を送るために使われる複数のＬＥＤより成る組に着目すると、それらＬＥＤのうち点灯している割合は、その階層の情報によって確定されるように送信装置側で決定される。そして、受信装置側では、複数のＬＥＤよりなる組に着目して、それらＬＥＤのうち点灯している割合を求めることで、その階層の情報を復元することができる。つまり、送信装置の２次元点滅パターンとして空間方向において低周波数（複数のＬＥＤの点灯の平均値）と高周波数（１つのＬＥＤの点灯）とに分け、ある情報に関しては低周波数部分を使い、別の情報に関しては高周波数部分を使うようにして伝送している。これにより、送信装置（発信源）と受信装置との距離が遠い場合でも、低周波数部分の情報を受け取ることができる。
【０４０６】
さらに、送信装置側では各階層毎に時間を制御できるようにした。つまり、送信側が低周波数部分を低速（Ｐ（ｑ）：ｑは比較的小さい値）で送信することができるので、受信側では、露光時間を長くとり、Ｐ（ｑ）単位で撮影することが可能である。これにより、遠く離れているために受信装置側のカメラが露光不足になりがちな場合にでも、低周波数部分の情報の送受信が可能となる。
【図面の簡単な説明】
【図１】光学的信号を使用するデータ通信システム１０の基本的構成を模式的に示した図である。
【図２】２次元の点滅パターンにより光学的信号を送受信するデータ通信システムの構成を模式的に示した図である。
【図３】２次元発光部１０３を斜めから撮影した場合の画像を示した図である。
【図４】２次元発光部１０３を斜めから撮影した場合の画像に２次元アフィン変換を施して正面画像を生成した結果を示した図である。
【図５】第１の解像度空間の構成を示した図である。
【図６】４ブロックを用いたデータのマッピング方法を示した図である。
【図７】第２の解像度空間の構成を示した図である。
【図８】第２の解像度空間にデータをマッピングした様子を示した図である。
【図９】第３の解像度空間の構成を示した図である。
【図１０】図８に示した第１及び第２の解像度空間のマッピング・パターンを満たすように、第３の解像度空間でデータのマッピングを行なった様子を示した図である。
【図１１】図１０に示した第１及び第２の解像度空間のマッピング・パターンを満たすように、第４の解像度空間でデータのマッピングを行なった様子を示した図である。
【図１２】時刻ｔにおいて第１の情報を構成するＬＥＤの組み合わせＳ（ｔ，１），Ｓ（ｔ，２），Ｓ（ｔ，３），Ｓ（ｔ，４）の定義を示した図である。
【図１３】時刻ｔにおいて第２の情報を構成するＬＥＤの組み合わせＳ（ｔ，１，１），Ｓ（ｔ，１，２）…の定義を示した図である。
【図１４】時刻ｔにおいて第３の情報を構成するＬＥＤの組み合わせＳ（ｔ，１，１，１），Ｓ（ｔ，１，１，２）…の定義を示した図である。
【図１５】時刻ｔにおいて第４の情報を構成するＬＥＤの組み合わせＳ（ｔ，１，１，１，１），Ｓ（ｔ，１，１，１，２）…の定義を示した図である。
【図１６】Ｆ１（ｑ）とＦ０（ｑ）を求めるための処理手順を示したフローチャートである。
【図１７】送信装置１００のエンコーダ１０３が行なう処理手順を示したフローチャートである。
【図１８】ステップＳ１２において実行される処理の詳細を示したフローチャートである。
【図１９】ステップＳ１２において実行される処理の詳細を示したフローチャートである。
【図２０】ステップＳ１２において実行される処理の詳細を示したフローチャートである。
【図２１】受信装置２００内のデコーダ２０３における２次元点滅パターンをデコードする処理手順を示したフローチャートである。
【図２２】２次元発光部１０３の撮影画像からＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を決定するための処理手順を示したフローチャートである。
【図２３】与えられたｑに対して、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を決定するための処理手順を示したフローチャートである。
【図２４】与えられたｑに対して、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を決定するための処理手順を示したフローチャートである。
【図２５】与えられたｑに対して、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を決定するための処理手順を示したフローチャートである。
【図２６】受信装置２００内のエンコーダ２０３で実行される処理手順を示したフローチャートである。
【図２７】受信装置２００内のエンコーダ２０３で実行される処理手順を示したフローチャートである。
【図２８】受信装置２００側のデコーダ２０３によって実行される処理手順を示したフローチャートである。
【図２９】送信装置１００側のエンコーダ１０１によって実行される処理手順をフローチャートである。
【図３０】与えられたｑに対して第ｑの情報から｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を決定するための詳細な処理手順を示したフローチャートである。
【図３１】与えられたｑに対して第ｑの情報から｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を決定するための詳細な処理手順を示したフローチャートである。
【図３２】与えられたｑに対して第ｑの情報から｛Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，１）、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，２）、…、Ｒ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，Ｈｑ×Ｖｑ）｝を決定するための詳細な処理手順を示したフローチャートである。
【図３３】受信装置２００のデコーダ２０３が実行する処理手順を示したフローチャートである。
【図３４】与えられたｑに対して２次元発光部１０３の撮影画像からＲ（ｔ，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）を決定するための詳細な処理手順を示したフローチャートである。
【図３５】与えられたｑに対して、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を決定するための詳細な処理手順を示したフローチャートである。
【図３６】与えられたｑに対して、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を決定するための詳細な処理手順を示したフローチャートである。
【図３７】与えられたｑに対して、Ｒ（ｔ’，ｉ１，ｉ２，…，ｉｑ−１，ｉｑ）から第ｑの情報を決定するための詳細な処理手順を示したフローチャートである。
【符号の説明】
１００…送信装置
１０１…エンコーダ
１０２…入力端子
１０３…２次元発光部
２００…受信装置
２０１…カメラ
２０２…射影変換部
２０３…デコーダ
【図１】
0004110514.tif 000002
【図２】
0004110514.tif 000003
【図３】
0004110514.tif 000004
【図４】
0004110514.tif 000005
【図５】
0004110514.tif 000006
【図６】
0004110514.tif 000007
【図７】
0004110514.tif 000008
【図８】
0004110514.tif 000009
【図９】
0004110514.tif 000010
【図１０】
0004110514.tif 000011
【図１１】
0004110514.tif 000012
【図１２】
0004110514.tif 000013
【図１３】
0004110514.tif 000014
【図１４】
0004110514.tif 000015
【図１５】
0004110514.tif 000016
【図１６】
0004110514.tif 000017
【図１７】
0004110514.tif 000018
【図１８】
0004110514.tif 000019
【図１９】
0004110514.tif 000020
【図２０】
0004110514.tif 000021
【図２１】
0004110514.tif 000022
【図２２】
0004110514.tif 000023
【図２３】
0004110514.tif 000024
【図２４】
0004110514.tif 000025
【図２５】
0004110514.tif 000026
【図２６】
0004110514.tif 000027
【図２７】
0004110514.tif 000028
【図２８】
0004110514.tif 000029
【図２９】
0004110514.tif 000030
【図３０】
0004110514.tif 000031
【図３１】
0004110514.tif 000032
【図３２】
0004110514.tif 000033
【図３３】
0004110514.tif 000034
【図３４】
0004110514.tif 000035
【図３５】
0004110514.tif 000036
【図３６】
0004110514.tif 000037
【図３７】
0004110514.tif 000038