JP4110514B2 - データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラム - Google Patents
データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラム Download PDFInfo
- Publication number
- JP4110514B2 JP4110514B2 JP2002140623A JP2002140623A JP4110514B2 JP 4110514 B2 JP4110514 B2 JP 4110514B2 JP 2002140623 A JP2002140623 A JP 2002140623A JP 2002140623 A JP2002140623 A JP 2002140623A JP 4110514 B2 JP4110514 B2 JP 4110514B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- image space
- information
- resolution
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Electronic Switches (AREA)
- Optical Communication System (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の属する技術分野】
本発明は、実空間上で転送するデータを符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに係り、特に、光の点滅パターンで表現した光学的信号により転送されるデータを符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、2次元マトリックス状に配置された光源の点滅パターンで表現される転送データを符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに係り、特に、2次元マトリックス状に配置された光源の点滅パターンで表現されるデータを距離に応じたビットレートで転送する符号化及び復号化するシステム、データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムに関する。
【0003】
【従来の技術】
情報処理技術や情報通信技術が高度に発達した現代においては、パーソナル・コンピュータや携帯情報端末を始めとする情報機器がオフィスや家庭内などの実世界上のいたるところに遍在する。このような環境下では、機器どうしを接続して、いつでもどこでも欲しい情報を入手する「ユビキタス(Ubiquitous)・コンピューティング」や、実世界における状況(実世界の事物やユーザの位置など)を積極的に利用した拡張現実システム(Augmented Reality:AR)の実現が期待される。
【0004】
ユビキタス・コンピューティングの概念は、人がどこに移動しても利用できるコンピュータの環境が同じであることである。すなわち、「いつでもどこでも」なのだから、究極のユビキタス・コンピューティングは、必ずしもコンピュータやPDA(Personal Digital Assistant)や携帯電話機などの情報端末を必ずしも必要とはしない。
【0005】
ところが、ネットワーク上でデータ転送先となるコンピュータや周辺機器(すなわちユーザ端末などのターゲット)を指定したり、あるいはユーザの位置や実世界オブジェクトに関連した情報など実世界状況を入手しようとすると、すぐ目の前にある相手であっても、その名前(若しくは、機器固有のIDやネットワーク・アドレス、ホスト・ネーム、URL/URIなどの資源識別子)を知る必要がある。すなわち、ユーザ操作に関して言えば、間接的な形式でしかコンピュータ間の連携がなされておらず、直感性にやや欠ける。
【0006】
このような煩雑な手続を省略して、ユーザの識別情報を転送したり、ユーザの位置などの実世界状況を取得するための技術として、「サイバーコード(Cybercode)」などのビジュアルコードやRFタグのような、実世界コンピューティングを利用した手法が提案されている。これらの手法によれば、ユーザは意識してネットワークにアクセスする必要はなく、自動的に拾われたオブジェクトのIDなどから、オブジェクトに関連する情報を獲得することができる。
【0007】
例えば、ビジュアルコードやRFタグの識別情報に対してあらかじめアプリケーションなどの機能や、機器ID、ネットワーク・アドレス、ホスト・ネーム、URLやその他のオブジェクト関連情報を登録しておく。そして、カメラの撮影画像からサイバーコードを認識したことに応答して、コンピュータは、登録されたアプリケーションを実行させたり(例えば「メールを起動する」など)、認識されたIDを基に相手のネットワーク・アドレスを探索して自動的に接続を果たしたり、認識されたURLを基に資源アクセスを行ったりすることができる。
【0008】
しかしながら、ビジュアルコードのような視認性の識別情報を用いた場合、距離に応じてコードの大きさが変化する。すなわち、オブジェクトが遠く離れるとコードが小さくなるので、遠くのものを認識するには大きなパターンを持つコードを形成する必要がある。言い換えれば、この手法に基づく情報伝達手法は距離に対するロバスト性に欠ける。例えば、遠くにあるビルを認識するためには、ビルに巨大なコードを貼り付ける必要があり、現実的でない。
【0009】
また、RFタグの場合、ユーザはRFタグをタグ読み取り装置に向けたり接触させたりしなければならない。すなわち、至近距離の物体のみ認識が可能であり、遠くのものを認識することはできない。
【0010】
そこで、本出願人に既に譲渡されている特願2002−57836号明細書には、光学的な形式で識別情報やその他のデータを担持又は伝送する光学的信号と、これを捕捉する高速な2次元イメージ・センサを利用することで、空間解像度を持つとともに、遠距離でも利用可能なデータ伝送を実現するデータ通信システムについて提案されている。
【0011】
送信機側では、送信データを構成するビット系列を所定長ずつ切り出し、所定の変換テーブルを基に表示パターンに変換して、これを例えばLEDのような点滅する光源を光学信号とする。したがって、ビジュアルコードのように色の空間パターンに符号化するのではなく、距離に応じてデータが変化しない点滅パターンなどの時系列の光学信号に符号化してデータを送信する。
【0012】
また、受信機を構成するイメージ・センサは、例えばCMOS(Complementary Metal Oxide Semiconductor:相補性金属酸化膜半導体)センサやCCD(Charge Coupled Device:電荷結合素子)センサなどのように、無数の受光素子すなわち画素が2次元アレイ上に配置された構成であり、光学信号並びにその空間的情報を全画素でデコードする。イメージ・センサは、普通のカメラとしてシーンを撮影するとともに、そのイメージ・センサの視界中に配置された光学信号を長距離から受信することができる。
【0013】
例えば室内の家具や電化製品あるいは屋外のビルなどの実世界オブジェクトには、所定の物理的な配置がなされた2以上のLEDなどの発光部からなる送信機が設置される。そして、送信データを構成するビット系列を所定長ずつ切り出し、所定の変換テーブルを基に光源の点滅からなる表示パターンに変換して、各発光部を明滅することによりデータ送信が行なわれる。一方の受信機は、2次元受光面からなる受光部を備え、変換テーブルを基に受光した点滅パターンから送信データをデコードするとともに、2次元受光面上における点滅パターンの検出位置を基にオブジェクトの空間情報を認識することができる。
【0014】
送信機が出力する送信データとして、例えば、オブジェクトのIDやそのネットワーク・アドレス、ホスト・ネーム、URLやURIなどの資源識別子、その他のオブジェクト関連情報などが挙げられる。
【0015】
【発明が解決しようとする課題】
光学的信号を利用したデータ通信システムの応用例として、多数のLEDをマトリックス状に組み合わせて2次元的な点滅パターンとして光学的信号を送信する方式を挙げることができる。この場合、一度に複数ビットのデータを送出できることからシステムのビットレートを格段に向上させることができる。
【0016】
ところが、このような2次元的な点滅パターンを伝送媒体に用いたシステムの場合、送信装置と受信装置間の距離が問題となる。例えば、送受信装置間の距離に比べて受信装置側のイメージ・センサの解像度が充分でないと、一切の情報を得ることができない。すなわち、マトリックス配置されたLEDの点滅を完全に判別できるまで接近しなければ何の情報も受信することができず、距離に対するロバスト性に欠ける。
【0017】
このような場合、受信者側は送信装置のより近くに歩いていけばよいが、実際に近づいてみると自分にはまったく必要でない情報であることが判明するという無駄な作業を強いることになりかねない。要言すれば、2次元的な点滅パターンを伝送媒体に用いたシステムは、距離に対するロバスト性がよくない。
【0018】
本発明は上述したような技術的課題を鑑みたものであり、その主な目的は、光の点滅パターンからなる光学的信号により転送されるデータを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【0019】
本発明のさらなる目的は、2次元マトリックス状に配置された光源の点滅パターンで表現される転送データを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【0020】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、2次元画像空間上にデータをマッピングするデータ符号化装置又はデータ符号化方法であって、
前記2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段又はステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手段又はステップと、
を具備することを特徴とするデータ符号化装置又はデータ符号化方法である。
【0021】
また、本発明の第2の側面は、2次元画像空間上にマッピングされたデータを解読するデータ復号化装置又はデータ復号化方法であって、
前記2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解手段又はステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復号化手段又はステップと、
を具備することを特徴とするデータ復号化装置又はデータ復号化方法である。
【0022】
光学的信号を利用したデータ通信システムの応用例として、多数のLEDをマトリックス状に組み合わせて2次元的な点滅パターンとして光学的信号を送信する方式を挙げることができる。ところが、このような2次元的な点滅パターンを伝送媒体に用いたシステムの場合、送信装置と受信装置間の距離が問題となる。例えば、送受信装置間の距離に比べて受信装置側のイメージ・センサの解像度が充分でないと、一切の情報を得ることができない。
【0023】
そこで、本発明では、2次元画像空間を複数の解像度レベルに分解して、各解像度の空間毎にそれぞれデータをマッピングするようにした。したがって、離れていた場所から十分でない解像度で2次元画像空間を観察しても、低解像度の空間にマッピングされた2次元点滅パターンを読み取ることができる。また、近い場所から十分な解像度で2次元画像空間を観察することにより、高解像度の空間にマッピングされた2次元点滅パターンを読み取ることができる。これによって、離れている場所からでもある程度の情報を得ることができるとともに、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【0024】
ここで、前記2次元画像空間は、例えば複数の発光素子を2次元平面上に配列して構成される。したがって、前記データ・マッピング手段又はステップは、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする(但し、j<kであればnj<nkとする)ことができる。また、前記データ復元手段又はステップは、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元することができる。
【0025】
前記データ・マッピング手段又はステップは、符号化対象データのサイズに応じてマッピングすべき画像空間の解像度を決定するようにしてもよい。
【0026】
また、前記データ・マッピング手段又はステップは、前記2次元画像空間を十分でない解像度で観察しても識別可能な状態にしたいデータをより低解像度の画像空間にマッピングするようにしてもよい。
【0027】
また、前記データ・マッピング手段又はステップは、より詳細なデータを高解像度の画像空間にマッピングするとともに、抽象化された概略的なデータを低解像度の画像空間にマッピングするようにしてもよい。
【0028】
また、前記データ・マッピング手段又はステップは、各解像度の画像空間にそれぞれエラー訂正のためのデータを付加するようにしてもよい。このような場合、受信側では、各階層の情報にどれくらいエラーがあるかを知ることができる。このようなシステムを使用するのなら、受信側で検知されたエラー量が多過ぎる場合は、その階層よりも高周波数側の階層は解読しないようにしてもよい。
【0029】
また、前記データ・マッピング手段又はステップは、コンピュータ・グラフィックスのデータを符号化するに際し、描画オブジェクトの幾何データを低解像度の画像空間にマッピングするとともに、該描画オブジェクトのテクスチャ・データを高解像度の画像空間にマッピングするようにしてもよい。また、テクスチャ・データの周波数成分に応じてマッピングすべき画像空間の解像度を切り替えるようにしてもよい。
【0030】
通常、一般の人は、興味のある情報発信源(送信装置)に対して、受信装置のカメラを真正面に向けるであろう。そして、興味のない情報発信源に対しては、もしカメラが捕らえたとしても、カメラの画面の端に写る程度であろう。情報発信源に対してカメラが真正面に向いていれば、情報発信源を真正面から見ることになり、すべての解像度の画像空間を識別することができる。つまり、この情報発信源から発せられたコンピュータ・グラフィックスのデータをすべて受信することができ、3次元仮想物体の輪郭、高精細なテクスチャの情報からその3次元仮想物体を正確に再現して、モニタ上で表示することができる。
【0031】
また、本発明の第3の側面は、光学的信号の形式でデータを送出するデータ送信装置であって、
複数の発光素子を2次元平面上に配列してなる2次元発光手段と、
前記2次元発光手段の各発光素子の点滅により構成される2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段と、
各解像度の画像空間に対してそれぞれ送信データをマッピングするデータ・マッピング手段を具備し、
前記データ・マッピング手段によりマッピングされた点滅パターンを前記2次元発光手段の各発光素子を用いて出力する、
ことを特徴とするデータ送信装置である。
【0032】
また、本発明の第4の側面は、光学的信号の形式で送出されたデータを受信するデータ受信装置であって、
2次元平面上に展開された光の点滅パターンを撮影する撮影手段と、
前記撮影手段により撮影された2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解手段と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復号化手段と、
を具備することを特徴とするデータ受信装置である。
【0033】
本発明の第3及び第4の各側面によれば、データ送信装置側では、2次元画像空間を複数の解像度レベルに分解して、各解像度の空間毎にそれぞれデータをマッピングしてデータを送出する。したがって、データ受信装置側では、離れていた場所から十分でない解像度で2次元画像空間を観察しても、低解像度の空間にマッピングされた2次元点滅パターンを読み取ることができる。また、近い場所から十分な解像度で2次元画像空間を観察することにより、高解像度の空間にマッピングされた2次元点滅パターンを読み取ることができる。これによって、離れている場所からでもある程度の情報を得ることができるとともに、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【0034】
ここで、前記2次元画像空間は、例えば複数の発光素子を2次元平面上に配列して構成される。したがって、前記データ・マッピング手段又はステップは、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする(但し、j<kであればnj<nkとする)ことができる。また、前記データ復元手段又はステップは、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元することができる。
【0035】
ここで、データ受信装置側では、前記撮影手段により撮影された2次元画像空間を射影変換する射影変換手段をさらに備えていてもよい。このような場合、2次元画像空間と撮影手段の視線方向の位置関係が斜めであった場合などに、2次元画像空間を正面から見た画像に変換することができる。
【0036】
また、データ送信装置側では、前記データ・マッピング手段によりマッピングされた点滅パターンの表示時間を各解像度の画像空間毎に異ならせるようにしてもよい。例えば、より低解像度の画像空間ほど点滅パターンの表示時間を長くする。つまり、送信側が低周波数部分を低速(P(q):qは比較的小さい値)で送信することができるので、受信側では、露光時間を長くとり、P(q)単位で撮影することが可能である。これにより、遠く離れているために受信装置側のカメラが露光不足になりがちな場合にでも、低周波数部分の情報の送受信が可能となる。
【0037】
また、本発明の第5の側面は、2次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
前記2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解ステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング・ステップと、
を具備することを特徴とする記憶媒体である。
【0038】
また、本発明の第6の側面は、2次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
前記2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解ステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元ステップと、
を具備することを特徴とする記憶媒体である。
【0039】
本発明の第5及び第6の各側面に係る記憶媒体は、例えば、さまざまなプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で提供する媒体である。このような媒体は、例えば、DVD(Digital Versatile Disc)やCD(Compact Disc)、FD(Flexible Disk)、MO(Magneto-Optical disc)などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク(ネットワークは無線、有線の区別を問わない)などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムに提供することも技術的に可能である。
【0040】
また、本発明の第5及び第6の各側面に係る記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第5及び第6の各側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係るデータ符号化装置又はその方法、及び、第2の側面に係るデータ復号化装置又はその方法と同様の作用効果を得ることができる。
【0041】
また、本発明の第7の側面は、2次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解ステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング・ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【0042】
また、本発明の第8の側面は、2次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解ステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【0043】
本発明の第7及び第8の各側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第7及び第8の各側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係るデータ符号化装置又はその方法、及び、第2の側面に係るデータ復号化装置又はその方法と同様の作用効果を得ることができる。
【0044】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0045】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0046】
本発明は、視認性の識別情報をカメラで撮影して認識することによりデータ伝送が行なわれるというユビキタス・ネットワークを利用して実現される。すなわち、実世界上に存在する物理オブジェクトに対して複数の光学的な識別情報を取り付けるとともに、これを2次元イメージ・センサで撮影して画像処理・画像認識することにより、オブジェクトからの送信データを解釈する。
【0047】
実世界オブジェクトに取り付ける光学的な識別情報として、色の空間パターンに符号化されたビジュアルコードの他に、LED(Light Emitting Diode:発光ダイオード)のような点滅する光源からなる光学的信号を利用することができる。後者の場合、時系列的な点滅パターンで構成される信号に符号化してデータを送信することにより、距離に対してロバストなデータ通信を行なうことができる。
【0048】
また、点滅パターンの撮影に用いられるイメージ・センサは、例えばCMOS(Complementary Metal Oxide Semiconductor)センサやCCD(Charge Coupled Device)センサなどのように、無数の受光素子すなわち画素が2次元アレイ上に配置された構成であり、光学信号並びにその空間的情報を全画素でデコードする。イメージ・センサは、普通のカメラとしてシーンを撮影するとともに、そのイメージ・センサの視界中に配置された光学的信号を長距離から受信することができる。
【0049】
まず、光学的信号をデータ伝送媒体として用いたデータ通信システムの原理について説明する。
【0050】
図1には、光学的信号を使用するデータ通信システム10の基本的構成を模式的に示している。同図に示すように、このデータ通信システム10は、実空間に散在する各オブジェクトに設置された送信機20A,20B,20C…と、ユーザが携行して用いる受信機50とで構成される。
【0051】
送信機20は、送信データとしてのバイト列を光学的に分別可能な1以上のパターンとして表示した光学的信号を送出する。一方の受信機50は、表示された光学的パターンを受光して、その受光画像を認識して、光学的信号が表わす点滅パターンを基に送信されたバイト列を算出するとともに、光学的信号の受光面上での検出位置を算出する。そして、バイト列と受光位置の組み合わせに応じた処理サービスを実行する。
【0052】
各送信機20A…が送出する送信データとしては、オブジェクトのIDやそのネットワーク・アドレス、ホスト・ネーム、URLやURIなどの資源識別子、その他のオブジェクト関連情報などが挙げられる。
【0053】
各送信機20A…は、ビルの外壁や看板など実世界オブジェクト表面の見え易い場所に設置されており、1又はそれ以上の発光部を備えている。発光部は、例えばマイコン制御のLEDで構成される。そして、所定ビット長のデジタル形式の送信データを所定の変調方式により変調し、LEDの点灯及び消滅動作によりビット1及びビット0を表わすという表示形式に符号化して、所定ビット(仮にNビットとする)長の送信データに相当する光学的信号を生成する。このような送信機のことを、以下では、「光ビーコン」とも呼ぶ。
【0054】
送信機20のデータ転送レートは、LEDを点滅させる駆動速度によって決まる。例えば、現在市販されている一般的な発光ダイオード製品であれば、4kHz程度の周波数で点滅駆動させることができる。但し、これは、受信機50側の受光ブロック51が持つ応答速度の制限を受ける。
【0055】
例えば、受光ブロック51が2次元マトリックス状に配設された受光部として、CCDイメージ・センサを用いた場合、その応答速度は60Hz程度であり、LEDの点滅データを送受信するには遅すぎる。他方、CMOSイメージ・センサであれば、12kHz又はそれ以上の応答速度を持つので、送信機20側でLEDを最高速で駆動させても、受信機50側では充分にその点滅パターンを検出することができるであろう。
【0056】
送信データを8ビット長とした場合、255通りのデータを送信することが可能である。8ビット長の送信データを4kHzのキャリアでマンチェスタ符号化して22ビット長のパケットとして送信する。これにより、光学信号が障害物などによってパケット送信中に隠れても、パケット単位でデータを送ることができる。
【0057】
さらに本実施形態では、送信機20は、複数(N個)のLEDを2次元マトリックス状に並べ、各LED がオン又はオフの状態をとることによって、Nビットの情報を空間的パターンとして表示する。この場合、一度に複数ビットのデータを送出できることからシステムのビットレートを格段に向上させることができる。
【0058】
図2には、2次元の点滅パターンにより光学的信号を送受信するデータ通信システム10−2の構成を模式的に示している。このデータ通信システム10−2は、送信装置100と受信装置200で構成される。
【0059】
送信装置100内の101はエンコーダであり、送信したい内容(仮に「情報A」とする)が入力端子102から入力されると、その内容を16×16個の時系列2次元点滅パターンに変換する。つまり、入力された送信データは、集合D={d(x,y,t)|d(x,y,t)∈{0,1}、xは1以上16以下の整数、yは1以上16以下の整数、tは時刻を表すパラメータであり1以上T以下の整数}へと変換される。
【0060】
ここで、Tは、情報Aの情報量に依存する。そして、2次元発光部103は、例えば、縦横それぞれ16個以上のLEDを2次元上に配置して構成されている。時刻tにおいて発光部の中の位置(x,y)から、情報d(x,y,t)が発せられる。即ち、d(x,y,t)が1の時は、位置(x,y)のLEDが点灯し、d(x,y,t)が0の時は、位置(x,y)のLEDが点灯しない。このようにして、情報Aは複数のLEDの点滅パターンとして送信される。
【0061】
図2に示す例は、16×16=256個のLEDのうち、数個のみ図示している。なお、ここでは、簡単のため、LEDの数は16×16個よりなるとしているが、本発明の要旨は16×16個に限定されるものではない。
【0062】
受信装置200内の201は、受信側の動画撮影用のカメラであり、その解像度は例えば512×512画素程度で、上記の2次元発光部103を撮影することができる。カメラ201の撮影するタイミングは、2次元発光部103の発光タイミングと同期している。すなわち、時刻t=1、2、…、Tに撮影が行われる。あるいは、カメラ201は、より高速に撮影することで、非同期にもできる。なぜなら、高速に撮影することで、各時刻t(tは整数)における2次元発光部103からの16×16個より成る2次元発光パターンd(x,y,t)を少なくとも1枚は撮影することができるからである。カメラ201が同期している場合、あるいは、非同期であるが高速に撮影している場合、いずれの場合においても、カメラ201から、時刻t=1、2、…、Tにおける映像d(x,y,t)を得ることができる。
【0063】
カメラ201から時々刻々入力される画像は、射影変換部202に送られる。この射影変換部202は、2次元発光部103とカメラ201の位置関係が斜めであった場合などに、2次元発光部を正面から見た画像に変換するための回路である。例えば、図3に示す画像は2次元発光部103を斜めから撮影した場合の画像(カメラ201で撮影された画像)であり、射影変換部202からこの画像データを射影変換して、図4に示す正面画像を作成する。具体的には、図3における左上のLEDの投影像が変換後の画面上の座標(1,1)に、右上のLEDの投影像が変換後の画面上の座標(16,1)に、左下のLEDの投影像が変換後の画面上の座標(1,16)に、右下のLEDの投影像が変換後の画面上の座標(16,16)に変換されるように、カメラ画像に2次元アフィン変換を施す。図4に示す画像のサイズは、16×16画素である。
【0064】
デコーダ203には、射影変換部202の出力画像(各時刻tにおける16×16画素の画像)を入力すると、各時刻tにおける16×16画素の画像より、送信されたデータをデコードする。すなわち、時刻t、位置(x,y)における画像が1であればe(x,y,t)=1とし、時刻t、位置(x,y)における画像が0であればe(x,y,t)=0とする。そして、集合E={e(x,y,t)|e(x,y,t)∈{0,1}、xは1以上16以下の整数、yは1以上16以下の整数、tは1以上T以下の整数}を作成して、この集合から、送信装置100から送信された情報Aを復元する。この復元された情報Aは、出力端子204より出力される。
【0065】
なお、エンコーダ101における情報Aから時系列2次元点滅パターン(すなわち集合D)への変換(符号化)と、デコーダ203における時系列2次元点滅パターン(すなわち集合E)から情報Aへの変換(復号化)は、送信装置100と受信装置200間であらかじめ取り決められた方式が採用され、ちょうど逆変換の関係になっている。また、送信装置100は、エラー対策のため、情報Aに対してパリティを加えて、受信装置200でエラー訂正を行えるようにして送信している。
【0066】
送信装置100は、例えば、ビルの外壁や広告看板など街頭に設置されている。また、2次元発光部103は、数メートル四方の大きさであり、有益な情報(例えば、ビル内で営業しているレストランの営業時間や、割引情報など)を送信している。一般の人は、受信装置200を所持して街に出かける。そして、受信装置200のカメラ201を送信装置100の2次元発光部103に向けることで、送信装置100が発している有益な情報を得ることができる。
【0067】
ここで、受信装置200を持ったユーザが、送信装置100が設置されている場所から遠く離れている場所にいる場合について考察してみる。
【0068】
この場合、カメラ201で撮影した画像には、2次元発光部103が小さく写ってしまう。例えば、カメラ201の撮影画像の中で、2次元発光部103の投影像が8×8画素程度であったとしよう。射影変換部202では、縦横ともに2倍程度拡大され、16×16画素の画像を作成するが、この場合、発光部103で発せられた16×16個のLED1つずつの点滅を、受信装置200で判別することは不可能である。なぜなら、カメラ201で撮影された2次元発光部103の投影像は8×8画素程度であるから、およそ2×2個のLEDが、カメラ201の1つの画素に撮影されたことになる。つまり、射影変換部202により作成された画像の1画素1画素が、それぞれ1つのLEDに対応できず、2×2個程度のLEDの平均的な明るさが、射影変換部202により作成された画像の2×2画素に対応する。このため、LED1個ずつの点滅パターンを識別することができない。
【0069】
例えば、送信装置100からはレストラン情報が送出されているのに対して、受信装置200を持ったユーザはレストラン情報ではなく遊園地情報が知りたかったとしよう。街頭にある送信装置100から何についての情報が発信されているか、遠くにいては分からないので、近くまで歩いて行く必要がある。そして、送信装置100の近くに来てはじめて遊園地情報ではなくレストラン情報が発信されているのに気付き、落胆する。もし、遠くにいながら、何についての情報を発しているか(詳細な情報でなくても、簡単な情報だけでも)分かれば、近くに行く必要はなかった筈である。
【0070】
このように、2次元点滅パターンを利用したデータ通信においては、受信装置200は16×16個のLEDが完全に1つずつ判別できるまで近づかなければ、何の情報も得られない。すなわち、送信装置100と受信装置200の間の距離に比べて受信装置200のカメラ201の解像度が十分でないと一切の情報を得ることができない。
【0071】
そこで、本実施形態では、送信装置100の2次元発光部103が出力する2次元点滅パターンの空間を複数の解像度レベルに分解して、各解像度空間にデータをマッピングするようにした。したがって、送信装置100から離れていたり解像度が十分でない受信装置200は低解像度空間にマッピングされた2次元点滅パターンを読み取ることができ、また、送信装置100に近づき又は解像度が十分な受信装置100はより高解像度の空間にマッピングされた2次元点滅パターンを読み取ることができる。これによって、ユーザは、送信装置100から離れている場所からでもある程度の情報を得ることができ、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【0072】
ここで、2次元発光部103が16×16個のLEDで構成されている場合の解像度空間の構成方法について説明する。解像度が最も低い第1の解像度空間は、16×16個のLEDからなる2次元マトリックスを縦横の各方向に2等分して、8×8個のLEDを1ブロックとする合計4ブロックに対してデータをマッピングする(図5を参照のこと)。例えば、4ブロック中でLEDが消滅(又は大部分が消滅)しているブロックの位置により、00,01,10,11のように2ビットのデータを符号化することができる(図6を参照のこと)。
【0073】
続いて、次に解像度が低い第2の解像度空間は、各8×8個のLEDのブロックをさらに縦横の各方向に2等分して、4×4個のLEDを1ブロックとする合計16ブロックに対してデータをマッピングする(図7を参照のこと)。このときも同様に、図6に示したように4ブロックを一組にして、4ブロック中でLEDが消滅(又は大部分が消滅)しているブロックの位置により、00,01,10,11のように2ビットのデータを全体で4組だけ符号化することができる。但し、第1の解像度空間にデータがマッピングされたパターンを崩さないように第2の解像度空間のマッピングを行なう必要がある。
【0074】
図8には、第2の解像度空間にデータがマッピングされている様子を示している。第1の解像度空間では(0,0)がマッピングされ、第2の解像度空間では、左上、右上、右下の各ブロックにおいてそれぞれ(0,0)、(1,0)、(0,0)がマッピングされている。第2の解像度空間の左下のブロックは、第1の解像度空間においてLED消滅となっていることから、未使用である。
【0075】
続いて、次に解像度が低い第3の解像度空間は、各4×4個のLEDのブロックをさらに縦横の各方向に2等分して2×2個のLEDを1ブロックとする合計64ブロックに対してデータをマッピングする(図9を参照のこと)。このときも同様に、図6に示したように4ブロックを一組にして、4ブロック中でLEDが消滅(又は大部分が消滅)しているブロックの位置により、00,01,10,11のように2ビットのデータを全体で16組だけ符号化することができる。但し、第1及び第2の解像度空間にデータがマッピングされたパターンを崩さないように第3の解像度空間のマッピングを行なう必要がある。図10には、図8に示した第1及び第2の解像度空間のマッピング・パターンを満たすように、第3の解像度空間でデータのマッピングを行なった様子を示している。
【0076】
解像度が最も高い第4の解像度空間では、LED1個ずつの点滅パターンでデータを表現する。このときも同様に、図6に示したように、2×2個のLEDを一組にして、合計64組の2×2マトリックスを形成して、各マトリックス中でLEDが消滅(又は大部分が消滅)しているLEDの位置により、00,01,10,11のように2ビットのデータを符号化することができる。但し、第1及び第2、第3の解像度空間にデータがマッピングされたパターンを崩さないように第4の解像度空間のマッピングを行なう必要がある。図11には、図10に示した第1、第2、及び第3の解像度空間のマッピング・パターンを満たすように、第4の解像度空間でデータのマッピングを行なった様子を示している。
【0077】
第1〜第4の各解像度の空間にマッピングされた転送情報を、それぞれ第1〜第4の情報と呼ぶことにする。低解像度の空間は情報の転送レートが低く、高解像度になるにつれて転送レートが高くなる。一方、低解像度の空間にマッピングされた情報は、送信装置100と受信装置200の距離に対して受信装置200のカメラ201の解像度が十分でなくても、すなわち遠くからでも読み取ることができる。したがって、最終的に送りたい詳細な(すなわちビット数の大きな)データは第4の情報として第4の解像度空間にマッピングし、以下、情報の粒度やデータ長に応じて第3、第2、第1の情報にそれぞれ割り当てて、各解像度空間上で表現するようにすればよい。あるいは、遠くからでも知らしめたい重要な情報を低解像度の空間にマッピングするようにしてもよい。
【0078】
本実施形態に係る送信装置100では、エンコーダ101におけるエンコード方法を工夫することにより、解像度の異なる各空間に対して第1〜第4の情報を生成している。第1の情報は、解像度の低い受信装置のカメラでも(すなわち、受信装置200のカメラ201で撮影された2次元発光部103の投影像がたとえ小さくても)、受信可能である。また、第2の情報は、解像度の低い受信装置のカメラでは(すなわち、カメラ201で撮影された2次元発光部103の投影像が小さい場合は)受信できないが、ある程度の解像度を持つ受信装置のカメラでは(すなわち、カメラ201で撮影された2次元発光部103の投影像がある程度大きい場合は)受信することができる。また、第3の情報は、解像度の高い受信装置のカメラでのみ(すなわち、カメラ201で撮影された2次元発光部103の投影像が大きい場合のみ)受信することができる。第4の情報は、解像度のとても高い受信装置のカメラでのみ(すなわち、カメラ201で撮影された2次元発光部103の投影像がとても大きい場合のみ)、受信することができる。
【0079】
第1の情報、第2の情報、第3の情報、及び、第4の情報が与えられたとき、16×16個のLEDの時系列2次元点滅パターンの求め方、すなわち、送信装置100のエンコーダ101における各解像度空間への情報の符号化方法、並びに受信装置200のデコーダ203において各解像度空間にマッピングされた情報を復号化する方法について、以下に説明する。ここでは、2次元発光部103の素子数(LEDの数)が16×16個の場合に限定せず一般の場合を述べながら、且つ、具体例として、16×16個の場合についても適宜述べていくことにする。
【0080】
まず、以下の説明で使用する幾つかの記号について定義する。
【0081】
Qは、情報の数、すなわち階層数(低解像度から高解像度まで幾つの解像度空間を利用するか)を示す値である。変数qは、処理中の解像度空間を指示するために用いられ、1からQまでの値をとる。q=1は最も低い解像度空間に関する事柄を示すのに使われる。q=2は、その次に低い解像度空間に関する事柄を示すのに使われる。以下、同様で、q=Qは、最も高い解像度空間に関する事柄を示すのに使われる。上記の例ではQ=4である。
【0082】
Hは、横方向のLEDの個数を示す。また、H1×H2×…×HQ=Hとなる整数H1、H2、…、HQを決める。Vは、縦方向のLEDの個数を示す。V1×V2×…×VQ=Vとなる整数V1、V2、…、VQを決める。H1は1以上であり、V1は1以上であり、任意の2以上のqに対して(Hq×Vq)という値は2以上の整数である。
【0083】
2次元発光部103のLEDを横方向に(Hq+1 × Hq+2 × … × HQ)個、縦方向に(Vq+1 × Vq+2 × … × VQ)個より成る長方形部分のLEDの組毎に分けると、(H1×H2×…×Hq)×(V1×V2×…×Vq)組だけできる。第q番目の情報は、この組を使用して伝送する。但し、q=Q階層目は、1×1個より成るLED(すなわち、1つのLED)を1つの組と考えて、この組を使用して伝送する。
【0084】
第(q−1)番目のための(Hq × Hq+1 × … × HQ)×(Vq × Vq+1 × … × VQ)個より成るLEDの組の1つに注目すると、その中には、第q番目のための(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個よりなるLEDの組が、Hq×Vq個だけ存在する。このHq×Vq個の組に番号付けをする。この番号付けは、左上を1番とし、ラスタスキャン順に番号を振っていく。したがって、右上はHq番目となり、左下はHq×(Vq − 1)+1番目となり、右下はHq×Vq番目となる。これにより、第1番目から第(q−1)番目までにおける番号を指定して、さらに、q階層目の番号を指定することで、2次元発光部103内の「(Hq+1 × Hq+2 × … × HQ)×(Vq+1 ×Vq+2 × … × VQ)個よりなるLEDの組=q階層目の情報のために使われる組」を、一意に決定できる。
【0085】
さらに、時間の概念も導入して、ある時刻における2次元発光部103内の「(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個より成るLEDの組=q階層目の情報のために使われる組」というものを考える。この一意に決定される時刻tにおける組を、以下ではS(t,i1,i2,…,iq)と記述することにする。
【0086】
ここで、i1は、1階層目の組を決定する番号であり、1からH1×V1までの整数のいずれかである。i2は、2階層目の組を決定する番号であり、1からH2×V2までの整数のいずれかである。以下、同様であり、iqは、q階層目の組を決定する番号であり、1からHq×Vqまでの整数のいずれかである。
【0087】
特に、q=Qの場合、2次元発光部内の「(Hq+1 × Hq+2 × …× HQ)×(Vq+1 × Vq+2 × … × VQ)個よりなるLEDの組=q階層目の情報のために使われる組」とは、1×1個のLEDを示しているので、記号S(t,i1,i2,…,iQ)は、時刻tにおける1つのLEDの点滅を指定していることになる。
【0088】
2次元発光部103が16×16個のLEDで構成される場合、例えば、H=V=16であり、H1=H2=H3=H4=V1=V2=V3=V4=2である。
【0089】
第1の情報は、(H2×H3×H4)×(V2×V3×V4)=8×8個のLEDの組を1つの2次元光学信号と考えて、データ伝送すなわち2次元点滅パターンの表示を行なう。この組は、2次元発光部103の中に全部でH1×V1=2×2=4組ある。この4組は順番付けられており、それぞれ、1番目から4番目のいずれかである。図12には、時刻tにおいて第1の情報を構成するLEDの組み合わせS(t,1),S(t,2),S(t,3),S(t,4)の定義を示している。
【0090】
第1の情報を送るためのそれぞれの組S(t,1),S(t,2)…(すなわち、8×8個のLEDの組)の中には、第2の情報を送るための組(すなわち、(H3×H4)×(V3×V4)=4×4個のLEDの組)が、H2×V2=2×2=4組ある。この4組は順番付けられており、それぞれ、1番目から4番目のいずれかである。図13には、時刻tにおいて第2の情報を構成するLEDの組み合わせS(t,1,1),S(t,1,2)…の定義を示している。
【0091】
第2の情報を送るための組(すなわち、4×4個のLEDの組)の中には、第3の情報を送るための組(すなわち、H4×V4=2×2個のLEDの組)が、H3×V3=2×2=4組ある。この4組は順番付けられており、それぞれ、1番目から4番目のいずれかである。図14には、時刻tにおいて第3の情報を構成するLEDの組み合わせS(t,1,1,1),S(t,1,1,2)…の定義を示している(但し、紙面の都合上、一部のみ示す)。
【0092】
第3の情報を送るための組(すなわち、2×2個のLEDの組)の中には、第4の情報を送るための組(すなわち、1×1個のLEDの組)が、H4×V4=2×2=4組ある。この4組は、順番付けられており、それぞれ、1番目から4番目のいずれかである。図15には、時刻tにおいて第4の情報を構成するLEDの組み合わせS(t,1,1,1,1),S(t,1,1,1,2)…の定義を示している(但し、紙面の都合上、一部のみ示す)。
【0093】
送信装置100内のエンコーダ101が行なう処理は、入力端子102から入力されてきた第1から第Qまでの各階層の情報から、2次元発光部103での時系列2次元発光パターンを作成することであり、すなわち、時刻tにおいてS(t,i1,i2,…,iQ)で示されるそれぞれのLEDの点滅を決めることに相当する。
【0094】
ここで、0又は1いずれかの値をとる変数R(t,i1,i2,…,iq)を導入する。q=Q以外、すなわち、R(t,i1)やR(t,i1,i2)や、…、R(t,i1,i2,…,iQ−1)は、単なる内部での中間処理のための変数である。一方、q=Qの場合、その変数は、「R(t,i1,i2,…,iQ)=1の場合、S(t,i1,i2,…,iQ)で示される時刻tの1つのLEDを点灯させ、R(t,i1,i2,…,iQ)=0の場合、点灯しない」という意味を持つ。したがって、送信装置100内のエンコーダ101が行なう処理は、入力端子102から入力されてきた第1から第Qまでの情報から、R(t,i1,i2,…,iQ)の値を0か1に決定することである。
【0095】
なお、q=Q以外、すなわち、R(t,i1)やR(t,i1,i2)、…、R(t,i1,i2,…,iQ−1)は、それぞれ、S(t,i1)やS(t,i1,i2)や、…、S(t,i1,i2,…,iQ−1)に関係している変数であるが(後述)、ここでは、単なる中間処理のための変数として説明する。
【0096】
まず、第1の情報からR(t,i1)を決定し、次いで、R(t,i1)と第2の情報からR(t,i1,i2)を決定し、次いで、R(t,i1,i2)と第3の情報からR(t,i1,i2,i3)を決定する。以下同様にして、最後に、R(t,i1,i2,…,iQ−1)と第Qの情報からR(t,i1,i2,…,iQ−1,iQ)を決定する。
【0097】
本実施形態では、所定のマッピング方法を用いて、R(t,i1,i2,…,iq−1)と入力されてきた第q(q=1,2,…,Q)の情報から、R(t,i1,i2,…,iq)を作成する。送信装置100内のエンコーダ101と受信装置200内のデコーダ203では、同一のマッピング方法が使われており、送信装置100で変換されたデータは、受信装置200で同じマッピング方法により元の情報に復元することができる。このマッピング方法は、例えば、以下の条件を満たすように設定されている。
【0098】
条件1:
R(t,i1,i2,…,iq−1)=1の場合、Nqビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する。但し、任意のNqビットの入力データに対応する組み合わせパターン{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}のHq×Vq個からなる要素のうち、1であるものの数と0であるものの数は一定であり、その割合はUq:(1−Uq)である。つまり、1であるものの個数はUq×(Hq×Vq)であり、0であるものの個数は(1−Uq)×(Hq×Vq)である。また、Nqビットの入力データの値が異なれば、上述した{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンも異なるようにする。
【0099】
ここで、Nqは定数であり、Nqビットの入力データとは第qの情報の中のNqビット分のデータのことである。特にNq=0であれば、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}は、常にある特定の1つのパターンとなる。
【0100】
このNqビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定するという対応関係を、「第qの正の場合のマッピング表」と呼ぶことにする。
【0101】
条件2:
R(t,i1,i2,…,iq−1)=0の場合、Mqビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する。但し、任意のMqビットの入力データに対応する組み合わせパターン{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}のHq×Vq個の要素のうち、1であるものの数と0であるものの数は一定で、その割合はZq:(1−Zq)である。つまり、1であるものの個数はZq×(Hq×Vq)であり、0であるものの個数は(1−Zq)×(Hq×Vq)である。また、Mqビットの入力データの値が異なれば、上述した{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンも異なるようにする。
【0102】
ここで、Mqは定数であり、Mqビットの入力データとは第qの情報の中のMqビット分のデータである。特にMq=0であれば、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}は、常に、ある特定の1つのパターンとなる。
【0103】
このMqビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する」という対応関係を、「第qの負の場合のマッピング表」と呼ぶことにする。
【0104】
条件3:
任意のqに対して、NqあるいはMqのいずれか1つは、少なくとも1以上である。
【0105】
条件4:
任意のqに対して、UqはZqを越える。すなわち、Uq>Zqである。
【0106】
但し、q=1の場合、対応する1つ上の階層がない。このような場合は、条件2は無視して条件1を満たすようなマッピング表とする。すなわち、以下の条件1’を満たす。
【0107】
条件1 ' :
Nq(すなわち、N1)ビットの入力データに対して、{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンを決定する。但し、任意のN1ビットの入力データに対応する組み合わせパターン{R(t,1)、R(t,2)、…、R(t,H1×V1)}のH1×V1個の要素のうち、1であるものの数と0であるものの数は一定であり、その割合はU1:(1−U1)である。つまり、1であるものの個数はU1×(H1×V1)であり、0であるものの個数は(1−U1)×(H1×V1)である。また、N1ビットの入力データの値が異なれば、上記{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンも異なるようにする。ここで、N1は定数であり、N1ビットの入力データとは第1の情報の中のN1ビット分のデータである。但し、N1は1以上である。
【0108】
このN1ビットの入力データに対して、{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンを決定するという対応関係を、「第1の正の場合のマッピング表」と呼ぶことにする。
【0109】
この条件1’は、説明の都合上、他の階層との統一性を保つためのものであり、この性質を満たさなくてはいけないという理由は特にない。
【0110】
上述した条件1、条件2、条件3、条件4、及び条件1’を満たすマッピング方法は複数考えられるが、それらの中から1つの方法を選び、それをエンコーダ101及びデコーダ203で共通に使用する。
【0111】
これら条件1、条件2、条件3、条件4、及び条件1’を満たすマッピング方法により、第1から第Qまでの情報から、R(t,i1)やR(t,i1,i2)や、…、R(t,i1,i2,…,iQ)が決定される。
【0112】
ここで、時刻TにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合について考えて見る。
【0113】
あるq(q=2、…、Q)に対して、任意のi1(i1=1、2、…、H1×V1)、任意のi2(i1=1、2、…、H1×V1)、…、任意のiq(iq=1、2、…、Hq×Vq)、及び、任意の時刻t(t=1、2、…、T)において、R(t,i1,i2,…,iq)=1なら、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDの点灯している割合が確定していると仮定する。この値をF1(q)とする。つまり、2次元発光部103内のS(t,i1,i2,…,iq)で示される(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個よりなるLEDのうち、点灯しているものが、F1(q)×(Hq+1 × Hq+2 × …× HQ)×(Vq+1 × Vq+2 × … × VQ)個であるとする。そして、R(t,i1,i2,…,iq)=0なら、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDの点灯している割合が確定していると仮定する。この値をF0(q)とする。つまり、2次元発光部103内のS(t,i1,i2,…,iq)で示される(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個よりなるLEDのうち、点灯しているものがF0(q)×(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個であるとする。さらに、F1(q)>F0(q)であると仮定する。
【0114】
このように仮定すると、R(t,i1,i2,…,iq−1)=1なら、上記の条件1から分かるように、S(t,i1,i2,…,iq−1)で示される時刻tにおける領域内のLEDの点灯している割合は、Uq×F1(q)+(1−Uq)×F0(q)=F0(q)+Uq×(F1(q)−F0(q))となる。この値をF1(q−1)とする。また、R(t,i1,i2,…,iq−1)=0なら、上記の条件2から分かるように、時刻tにおいてS(t,i1,i2,…,iq−1)で示される領域内のLEDの点灯している割合は、Zq×F1(q)+(1−Zq )×F0(q)=F0(q)+Zq× (F1(q)−F0(q))となる。この値をF0(q−1)とする。
【0115】
F1(q)>F0(q)という仮定、並びに上記の条件4より、F1(q−1)>F0(q−1)であることが分かる。
【0116】
さて、S(t,i1,i2,…,iQ)は、先述したように、時刻tにおける1つのLEDを示している。そして、R(t,i1,i2,…,iQ)=1なら、そのLEDは点灯しているので、時刻tにおいてS(t,i1,i2,…,iQ)で示される領域内で点灯しているLEDの割合F1(Q)は1となる。同様に、R(t,i1,i2,…,iQ)=0なら、そのLEDは消灯しているので、時刻tにおいてS(t,i1,i2,…,iQ)で示される領域内で点灯しているLEDの割合F0(Q)は0となる。したがって、q=Qの場合は、F1(q)=1、F0(q)=0である。
【0117】
以上より、再帰的に、F1(Q−1)、F0(Q−1)、F1(Q−2)、F0(Q−2)、…、F1(1)、F0(0)が求まり、且つ、F1(Q−1)>F0(Q−1)、F1(Q−2)>F0(Q−2)、…、F1(1)>F0(0)である。繰言になるが、F1(q)は、R(t,i1,i2,…,iq)=1の場合に、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内にあるLEDの点灯している割合である。また、F0(q)は、R(t,i1,i2,…,iq)=0の場合に、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内にあるLEDの点灯している割合である。
【0118】
図16には、F1(q)とF0(q)を求めるための処理手順をフローチャートの形式で示している。
【0119】
まず、変数qにQをセットして(ステップS1)、F1(q)=1、F0(q)=0とする(ステップS2)。
【0120】
次いで、qが2以上であるか調べ(ステップS3)、2以上であれば、ステップ4に進み、それ以外なら終了する。
【0121】
ステップS4では、F0(q)+Uq×(F1(q)−F0(q))を計算し、この値をF1(q−1)とする。さらに、F0(q)+Zq×(F1(q)−F0(q))も計算し、この値をF0(q−1)とする。
【0122】
ステップS5では、qを1だけデクリメントする。そして、ステップS3に戻りqが2に到達するまで上述と同様の処理を繰り返し実行する。
【0123】
ここで、上記の説明をまとめておく。2次元発光部103の素子数(LEDの個数)が決められており、その数は、横方向にH個、縦方向にV個である。また、H1×H2×…×HQ=HとなるH1、H2、…、HQ、及びV1×V2×…×VQ=VとなるV1、V2、…、VQが決められている。定数U1、U2、U3、…、UQ及びZ2、Z3、…、ZQが決められている。定数N1、N2、N3、…、NQ及びM2、M3、…、MQが決められており、上記の条件1、条件2、条件3、条件4、及び条件1’を満たすマッピング方法(すなわち、第1の正の場合のマッピング表、第2の正の場合のマッピング表、第3の正の場合のマッピング表、…、第Qの正の場合のマッピング表、及び、第2の負の場合のマッピング表、第3の負の場合のマッピング表、…、第Qの負の場合のマッピング表)が決められている。さらに、マッピング方法が決まることで、図16に示したフローチャートに従って、F1(1)、F0(1)、F1(2)、F0(2)、…、F1(Q)、F0(Q)も決定される。これら値、及びマッピング表は、送信装置100のエンコーダ101と受信装置200のデコーダ203にあらかじめ与えられており、送信装置100と受信装置200間で整合性がとれている。
【0124】
なお、F1(q)、F0(q)とは、それぞれ、R(t,i1,i2,…,iq)=1あるいは0の場合に時刻tにおいてS(t,i1,i2,…,iq)で示される領域内にあるLEDの点灯している割合を示している。これら割合F1(q)とF0(q)は、入力されてくる第1から第Qの情報の値によらず常に一定であり、先に述べたようにあらかじめ確定されている。そして、F1(q)>F0(q)である。
【0125】
図17には、送信装置100のエンコーダ103が行なう処理手順をフローチャートの形式で示している。
【0126】
まず、階層を表す変数qに1をセットして(ステップS11)、第qの情報から{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を決定する(ステップS12)。ステップS12において実行される処理の詳細については図18に示している(後述)。
【0127】
ステップS13ではqがQ未満であるかどうかを調べ、Q未満であれば、まだ高周波数側の階層があるので、ステップS14に進む。また、qがQ未満でなければ、ステップS15に進む。
【0128】
ステップS14では、qを1だけインクリメントした後、ステップS102に戻って、上述と同様の処理を繰り返し実行する。
【0129】
また、ステップS15では、ステップS12で求めたR(t,i1,i2,…,iQ−1,iQ)に従い、2次元発光部103を発光する。つまり、時刻t(t=1、2、…、T)におけるS(t,i1,i2,…,iQ−1,iQ)で指定される1つのLEDを、R(t,i1,i2,…,iQ−1,iQ)=1なら点灯、R(t,i1,i2,…,iQ−1,iQ)=0なら消灯する。そして、2次元点滅パターンを出力した後、本処理ルーチン全体を終了する。
【0130】
なお、時刻Tは、十分に大きな値であり、第1から第Qまでの情報すべてを送るのに十分な時間であるとする。また、各階層毎にビットレートが相違するので、ある階層の情報(例えば、第qの情報)は、時刻T未満で送り終わってしまう(すなわち、他の階層の情報伝送よりも先に終了してしまう)可能性がある。このような場合は、第qの情報の最後の方にダミー・データを加えて、時刻Tまでダミー・データも含めてエンコードして送信処理すなわち2次元点滅パターンの出力を続行する。
【0131】
図18〜図20には、ステップS12における、与えられたqに対して第qの情報から{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を決定するためのサブルーチンをフローチャートの形式で詳細に示している。なお、図17で示したフローチャートからも明らかなように、この段階までに、すべてのt、i1、i2、…、iq−1に対してR(t,i1,i2,…,iq−1)は確定している。
【0132】
まず、qが1であるかどうかをチェックして(ステップS21)、1であれば次ステップS22に進み、1以外であればステップS26に進む。
【0133】
ステップS22では時刻を表す変数tに1をセットし、続くステップS23では、第1の情報の先頭からN1ビットを取り出し、第1の正の場合のマッピング表を参照して、そのN1ビットに対応する組み合わせパターンを求め、そのパターンを{R(t,1)、R(t,2)、…、R(t,H1×V1)}の値とする。すなわち、R(t,1)、R(t,2)、…、R(t,H1×V1)の値を確定させる。ここで読み出された第1の情報の先頭N1ビットは破棄され、次のビットが先頭に繰上げされる。
【0134】
次いで、tがT未満であるかどうかを判断する(ステップS24)。T未満であれば、次ステップS25に行く。それ以外なら、すべてのt(t=1、2、…、T)及びすべてのi1(i1=1、2、…、H1×V1)についてR(t,i1)が確定したことになるので、本処理ルーチン全体を終了する。
【0135】
ステップS25では、次の時刻を処理するために、tを1だけインクリメントしてから、ステップS23に戻る。
【0136】
次いで、時刻を表す変数tに1をセットし(ステップS26)、変数i1に1をセットし(ステップS27−1)、変数i2に1をセットし、・・・、変数iq−1に1をセットする(ステップS27−(q−1))。
【0137】
ステップS28では、現在のt、i1、i2、…、iq−1により指定されるR(t,i1,i2,…,iq−1)の値をチェックする。
【0138】
R(t,i1,i2,…,iq−1)が1なら、第qの情報の先頭からNqビットを取り出し、第qの正の場合のマッピング表を参照して、そのNqビットに対応する組み合わせパターンを求め、そのパターンを{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の値とする。すなわち、R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)の値を確定させる。ここで読み出された第qの情報の先頭Nqビットは破棄され、次のビットが先頭に繰上げされる。
【0139】
なお、上述した条件1により、Nq=0なら、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}は、常に、ある特定の1つのパターンとなるので、その値をセットする。この場合は、第qの情報の先頭ビットは破棄されない。
【0140】
R(t,i1,i2,…,iq−1)が0なら、第qの情報の先頭からMqビットを取り出し、第qの負の場合のマッピング表を参照して、そのMqビットに対応する組み合わせパターンを求め、そのパターンを{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の値とする。すなわち、R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)の値を確定させる。ここで読み出された第qの情報の先頭Mqビットは破棄され、次のビットが先頭に繰上げされる。
【0141】
なお、上述した条件2により、Mq=0なら、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}は、常に、ある特定の1つのパターンとなるので、その値をセットする。この場合は、第qの情報の先頭ビットは破棄されない。
【0142】
ステップS29−1では、iq−1が(Hq−1 × Vq−1)未満であるかどうかを判断する。(Hq−1 × Vq−1)未満であれば、ステップS30−1に進み、それ以外なら、ステップS29−2に進む。
【0143】
ステップS30−1では、iq−1を1だけインクリメントして、ステップS28に戻る。
【0144】
ステップS29−2では、iq−2が(Hq−2 × Vq−2)未満であるかどうかを判断する。(Hq−2 × Vq−2)未満であれば、ステップS30−2に進み、それ以外なら、ステップS29−3に進む。
【0145】
ステップS30−2では、iq−2を1だけインクリメントして、ステップS27−(q−1)に戻る。
【0146】
ステップS29−3では、iq−3が(Hq−3 × Vq−3)未満であるかどうかを判断する。(Hq−3 × Vq−3)未満であれば、ステップS30−3に進み、それ以外なら、ステップS29−4に行く。
【0147】
ステップS30−3では、iq−3を1だけインクリメントして、図示省略したステップS27−(q−2)に戻る。
【0148】
以降、同様にして、ステップS29−(q−1)では、i1が(H1×V1)未満であるかどうかを判断する。(H1×V1)未満であれば、ステップS30−(q−1)に進み、それ以外なら、ステップS31に進む。なお、ステップS29−4からステップS29−(q−2)、及び、ステップS30−4からステップS30−(q−2)は、図面の錯綜を回避するため省略している。
【0149】
ステップS30−(q−1)では、i1を1だけインクリメントして、ステップS27−2に戻る。
【0150】
ステップS31では、tがT未満であるかどうかを判断する。T未満であれば、ステップS32に進み、それ以外なら、すべてのt(t=1、2、…、T)及びすべてのi1(i1=1、2、…、H1×V1)、i2(i2=1、2、…、H2×V2)、…、iq(iq=1、2、…、Hq×Vq)についてR(t,i1,i2,…,iq−1,iq)が確定したことになるので、本処理ルーチン全体を終了する。
【0151】
ステップS32では、次の時刻を処理するために、tを1だけインクリメントして、ステップS27−1に戻る。
【0152】
以上、図17、及び図18〜図20を参照しながら、エンコーダ101において、入力端子102から入力された第1〜第Qの情報から2次元発光部103での時系列2次元発光パターンを作成するための処理手順について説明した。
【0153】
次いで、受信装置200内のデコーダ203において実行される、2次元点滅パターンからデータを復元するための処理について説明する。
【0154】
既に述べたように、送信装置100から遠い距離にいる場合は、受信装置200のカメラ201は2次元発光部103の2次元点滅パターンを十分な解像度で撮影することができない。このような場合、受信装置200の射影変換部202で変換された横H画素、縦V画素よりなる画像は、多少ぼけた画像となる。しかし、複数の画素を1つの組として扱い、それぞれの組における平均的な明るさは知ることができる。もし、H1×V1個の(H2×H3×…×HQ)×(V2×V3×…×VQ)個より成るLEDの組を判別することができれば、第1の情報をデコーダで解読できる。さらに、細かく判別できるのであれば、例えば、(H1×H2)×(V1×V2)個の(H3×H4×…×HQ)×(V3×V4×…×VQ)個よりなるLEDの組を判別することができるのであれば、第2の情報もデコーダで解読できる。以下、同様に、受信装置200の射影変換部202で変換されたH×V画素よりなる画像のぼけ具合で、どの階層の情報まで解読できるかが決まる。
【0155】
図21には、受信装置200内のデコーダ203における2次元点滅パターンをデコードする処理手順をフローチャートの形式で示している。
【0156】
まず、受信装置200の射影変換部202で変換されたH×V画素よりなる画像の実質的な解像度を調べる(ステップS41)。
【0157】
この解像度を表す数値として、識別できる横方向の単位をG0、縦方向の単位をG1とする。例えば、受信装置200のカメラ201で撮影された画像上において2次元発光部の投影像が(H/3)×(V/4)画素程度であったとすると、射影変換部202ではH×V画素の画像に変換されるが、オリジナルの画像(カメラで撮影した画像)を横3倍、縦4倍に拡大することを意味する。したがって、受信装置200の射影変換部202で変換されたH×V画素よりなる画像の実質的な解像度は、(H/3)×(V/4)画素となる。換言すれば、H×V個のLEDを持つ2次元発光部103で発光される発光パターンは、受信装置200側では、1つずつのLEDの点滅を識別することはできないが、3×4個のLEDの平均的な発光量(点灯しているLEDの数)を識別することはできる。この場合、G0=3、G1=4である。カメラ201のレンズの性能や、射影変換部202での変換に使われる補間フィルターの性能により、多少、余裕を持って、例えば、G0=5、G1=7とした方がよい場合もある。
【0158】
次いで、どの階層まで解読できるかを決定する(ステップS42)。具体的には、(Hq+1 × Hq+2 × … × HQ)≧G0となり、且つ、(Vq+1 × Vq+2 × … × VQ)≧G1となる最小のqを求める。これをqmaxとする。但し、G0=G1=1のときは、qmax=Qである。
【0159】
次いで、階層を表す変数qに1をセットして(ステップS43)、R(t,i1,i2,…,iq−1,iq)の値を求める(ステップS44)。ステップS44で実行される処理手順の詳細については後述に譲る。
【0160】
次いで、第qの情報を復元する(ステップS45)。第qの情報の復元方法の詳細については後述に譲る。
【0161】
次いで、qがqmax未満であるかどうかをチェックする(ステップS46)。そして、qがqmax未満であれば、ステップS47に進んで次の階層を復元するための処理を実行するが、それ以外であれば、本処理ルーチン全体を終了する。
【0162】
ステップS47では、変数qを1だけインクリメントして、ステップS44に戻る。
【0163】
図22には、与えられたqに対して、ステップS44で実行される、2次元発光部103の撮影画像からR(t,i1,i2,…,iq−1,iq)を決定するための処理手順をフローチャートの形式で示している。ここで言う撮影画像をより正確に述べるならば、カメラ201による撮影画像をアフィン変換したH×V画素の画像、すなわち射影変換部202による変換後の画像のことである。
【0164】
まず、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合がF1(q)であるか、あるいはF0(q)であるかをチェックする(ステップS51)。
【0165】
該領域内でLEDが点灯している割合がF1(q)である場合にはステップS52に進むが、F0(q)である場合にはステップS53に進む。実際には、ノイズもあるので、(F1(q)+F0(q))÷2以上であるか未満であるかによって判断を行なうとよい。
【0166】
ステップS52では、R(t,i1,i2,…,iq)=1として、本処理ルーチン全体を終了する。
【0167】
ステップS53では、R(t,i1,i2,…,iq)=0として、本処理ルーチン全体を終了する。
【0168】
なお、図22に示した処理ルーチンは、すべてのt(t=1、2、…、T)及びすべてのi1(i1=1、2、…、H1×V1)、i2(i2=1、2、…、H2×V2)、…、iq(iq=1、2、…、Hq×Vq)について実行する。
【0169】
F1(q)、F0(q)は、それぞれR(t,i1,i2,…,iq)=1又は0の場合に、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDの点灯している割合を示しているので、図22に示したR(t,i1,i2,…,iq)の決め方が妥当であることは、当業者には容易に理解できるであろう。
【0170】
図23〜図25には、ステップS45において、与えられたqに対して、R(t,i1,i2,…,iq−1,iq)から第qの情報を決定するための処理手順をフローチャートの形式で示している。なお、図21に示した処理手順から明らかなように、この段階までに、すべてのt、i1、i2、…、iq−1に対してR(t,i1,i2,…,iq−1)は確定している。
【0171】
まず、qが1であるかどうかを調べ(ステップS61)、1であればステップS62に進み、1以外であればステップS66に進む。
【0172】
ステップS62では時刻を表す変数tに1をセットし、次いで、パターン{R(t,1)、R(t,2)、…、R(t,H1×V1)}から、第1の正の場合のマッピング表を参照して、対応する第1の情報のN1ビット分のデータを確定させる(ステップS63)。このN1ビット分のデータは、受信装置200内の第1の情報を逐次格納していくメモリ(図示しない)の最後尾に付け加える。
【0173】
次いで、tがT未満であるかどうかを判断する(ステップS64)。tがT未満であれば、次ステップS65に進む。それ以外なら、すべてのt(t=1、2、…、T)及びすべてのi1(i1=1、2、…、H1×V1)についてR(t,i1)から第1の情報を復元したことになるので、本処理ルーチン全体を終了する。
【0174】
ステップS65では、次の時刻を処理するために、tを1だけインクリメントして、ステップS63に戻る。
【0175】
一方、ステップS66では、時刻を表す変数tに1をセットする。そして、ステップS67−1では変数i1に1をセットし、ステップS67−2では変数i2に1をセットする。
【0176】
以降、同様にして、ステップS67−(q−1)では、変数iq−1に1をセットして、次ステップS68に進む。なお、ステップS67−3からステップS67−(q−2)は、図面の簡素化のため図24からは省略する。
【0177】
次いで、現在のt、i1、i2、…、iq−1により指定されるR(t,i1,i2,…,iq−1)の値を調べる(ステップS68)。
【0178】
R(t,i1,i2,…,iq−1)が1なら、パターン{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}から、第qの正の場合のマッピング表を参照して、対応する第qの情報のNqビット分のデータを確定させる。このNqビット分のデータは、受信装置200内の第qの情報を逐次格納していくメモリ(図示しない)の最後尾に付け加える。
【0179】
なお、条件1として既に述べたように、Nq=0なら、第qビットの情報は含まれていないので、第qの情報を逐次格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このときの{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}は、常に、ある特定の1つのパターンとなっている筈である。
【0180】
一方、R(t,i1,i2,…,iq−1)が0なら、パターン{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}から、第qの負の場合のマッピング表を参照して、対応する第qの情報のMqビット分のデータを確定させる。このMqビット分のデータは、受信装置200内の第qの情報を逐次格納していくメモリの最後尾に付け加える。
【0181】
なお、条件2として既に述べたように、Mq=0なら、第qビットの情報は含まれていないので、第qの情報を逐次格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このときの{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}は、常にある特定の1つのパターンとなっている筈である。
【0182】
ステップS69−1では、iq−1が(Hq−1 × Vq−1)未満であるかどうかを判断する。iq−1が(Hq−1 × Vq−1)未満であればステップS70−1に進み、それ以外ならステップS69−2に進む。
【0183】
ステップS70−1では、iq−1を1だけインクリメントして、ステップS68に戻る。
【0184】
ステップS69−2では、iq−2が(Hq−2 × Vq−2)未満であるかどうかを判断する。iq−2が(Hq−2 × Vq−2)未満であればステップS70−2に進み、それ以外ならステップS69−3に進む。
【0185】
ステップS70−2では、iq−2を1だけインクリメントして、ステップS67−(q−1)に戻る。
【0186】
ステップS69−3では、iq−3が(Hq−3 × Vq−3)未満であるかどうかを判断する。iq−3が(Hq−3 × Vq−3)未満であればステップS70−3に進み、それ以外ならステップS69−4に進む。
【0187】
ステップS70−3では、iq−3を1だけインクリメントして、図示を省略したステップS67−(q−2)に戻る。
【0188】
以降、同様にして、ステップS69−(q−1)では、i1が(H1×V1)未満であるかどうかを判断する。i1が(H1×V1)未満であればステップS70−(q−1)に進み、それ以外ならステップS71に進む。なお、ステップS69−4からステップS69−(q−2)、及び、ステップS70−4からステップS70−(q−2)は、図面の錯綜を回避するため図示を省略している。
【0189】
ステップS70−(q−1)では、i1を1だけインクリメントして、ステップS67−2に戻る。
【0190】
ステップS71では、tがT未満であるかどうかを判断する。tがT未満であればステップS72に進み、それ以外なら、すべてのt(t=1、2、…、T)及びすべてのi1(i1=1、2、…、H1×V1)、i2(i2=1、2、…、H2×V2)、…、iq(iq=1、2、…、Hq×Vq)についてR(t,i1,i2,…,iq−1,iq)から第qの情報を復元したことになるので、本処理ルーチン全体を終了する。
【0191】
ステップS72では、次の時刻を処理するために、tを1だけインクリメントして、ステップS67−1に戻る。
【0192】
以上、図21、図22、及び図23〜図25を用いて、デコーダ203による、2次元発光部103による時系列2次元発光パターンが入力されてきたときの、第1から第qmaxまでの情報の復元方法について説明してきた。
【0193】
なお、上述した処理手順では、どの階層までを解読するかを判定するために、ステップS41において、縦横それぞれの方向で識別可能な単位G0及びG1を導入し、ステップS42で階層数を決定している。エラー訂正のためのパリティを各階層の情報に付加して送信している場合には、受信側では、各階層の情報にどれくらいエラーがあるかを知ることができる。このようなシステムを使用するのなら、受信側で検知されたエラー量が多過ぎる場合は、その階層よりも高周波数側の階層は解読しないようにしてもよい。このようにして、どの階層までを解読するかを決めてもよい。
【0194】
続いて、2次元発光部103の素子数(LEDの数)が16×16個の場合の具体例について、以下に詳解する。
【0195】
前述したように、H=V=16、Q=4、H1=V1=H2=V2=H3=V3=H4=V4=2である。ここで、N1=N2=N3=N4=2、M1=M2=M3=M4=2、U1=U2=U3=U4=0.75、Z1=Z2=Z3=Z4=0.25とし、上記の条件1、条件2、条件3、条件4、及び条件1’を満たすマッピング方法(すなわち、第1の正の場合のマッピング表、第2の正の場合のマッピング表、第3の正の場合のマッピング表、第4の正の場合のマッピング表、及び、第2の負の場合のマッピング表、第3の負の場合のマッピング表、第4の負の場合のマッピング表)の具体例は、以下の通りとする。
【0196】
第q(q=2、3、4)の正の場合のマッピング表の具体例:
R(t,i1,i2,…,iq−1)=1の場合、2ビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、R(t,i1,i2,…,iq−1,3)、R(t,i1,i2,…,iq−1,4)}の組み合わせパターンを決定する。すなわち、入力データが0、1、2,3であるとき、それぞれ、{0,1,1,1}、{1,0,1,1}、{1,1,0,1}、{1,1,1,0}とする。この対応関係を、「第qの正の場合のマッピング表」と呼ぶことにする。
【0197】
第q(q=2、3、4)の負の場合のマッピング表の具体例:
R(t,i1,i2,…,iq−1)=0の場合、2ビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、R(t,i1,i2,…,iq−1,3)、R(t,i1,i2,…,iq−1,4)}の組み合わせパターンを決定する。すなわち、入力データが0、1、2,3であるとき、それぞれ、{1,0,0,0}、{0,1,0,0}、{0,0,1,0}、{0,0,0,1}とする。この対応関係を、「第qの負の場合のマッピング表」と呼ぶことにする。
【0198】
第1の正の場合のマッピング表の具体例:
2ビットの入力データに対して、{R(t,1)、R(t,2)、R(t,3)、R(t,4)}の組み合わせパターンを決定する。すなわち、入力データが0、1、2,3であるとき、それぞれ、{0,1,1,1}、{1,0,1,1}、{1,1,0,1}、{1,1,1,0}とする。この対応関係を、「第1の正の場合のマッピング表」と呼ぶことにする。
【0199】
このとき、F1(4)=1、F0(4)=0、F1(3)=3/4、F0(3)=1/4、F1(2)=10/16、F0(2)=6/16、F1(1)=36/64、F0(1)=28/64となる。
【0200】
本発明に係るデータ通信システムは2次元点滅パターンからなる光学的信号をデータ伝送媒体とするものであるが、上述したように、必ずF1(q)>F0(q)となるように2次元発光部103を作動させるようにしている。すなわち、R(t,i1,i2,…,iq)=1の場合に、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDの点灯している割合F1(q)と、R(t,i1,i2,…,iq)=0の場合に、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDの点灯している割合F0(q)が相違するということである。
【0201】
したがって、受信装置200側では、ある時刻tにおけるS(t,i1,i2,…,iq)の領域内に含まれるLEDの平均的な明るさ(すなわち、点灯しているLED数÷領域内のLEDの総個数)を求め、その値が、F1(q)であるかF0(q)であるかを判断(あるいは、(F1(q)+F0(q))÷2以上であるか未満であるかを判断)することによって、R(t,i1,i2,…,iq)の値を求めることができる訳である。
【0202】
F1(q)>F0(q)となるようなマッピング方法として、上記の条件1、2、3、4及び1’を満たす方法について説明してきたが、勿論、それ以外の条件を用いたマッピング方法を利用することもできる。例えば、以下のような条件を満たすマッピング方法でもよい。
【0203】
条件11:
R(t,i1,i2,…,iq−1)=1の場合、Lqビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する。但し、任意のLqビットの入力データに対応する組み合わせパターン{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}のHq×Vq個からなる要素のうち1であるものの数は、少なくとも1つ以上あるとする。また、Lqビットの入力データの値が違えば、上記{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンも異なるようにする。
【0204】
ここで、Lqは1以上の定数であり、Lqビットの入力データとは第qの情報の中のLqビット分のデータのことである。Lqビットの入力データに対して{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定するという対応関係を、以下では「第qの場合のマッピング表」と呼ぶことにする。
【0205】
条件12:
R(t,i1,i2,…,iq−1)=0の場合、R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)は、すべて0とする。したがって、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を使って、第qの情報は伝送しない。
【0206】
但し、q=1の場合、対応する1つ上の階層がない。このような場合は、条件12は無視して条件11を満たすようなマッピング表とする。すなわち、以下の条件11’を満たす。
【0207】
条件11’(q=1の場合):
Lq(すなわち、L1)ビットの入力データに対して、{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンを決定する。但し、任意のL1ビットの入力データに対応する組み合わせパターン{R(t,1)、R(t,2)、…、R(t,H1×V1)}のH1×V1個の要素のうち1であるものの数は、少なくとも1つ以上あるとする。また、L1ビットの入力データの値が違えば、上記{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンも異なるようにする。
【0208】
ここで、L1は1以上の定数であり、L1ビットの入力データとは第1の情報の中のL1ビット分のデータである。L1ビットの入力データに対して{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンを決定するという対応関係を、「第1の場合のマッピング表」と呼ぶことにする。
【0209】
上記の条件11、条件12、及び条件11’を満たすマッピング方法は複数考えられるが、それらの中から1つの方法を選んでエンコーダ101及びデコーダ203で共通に使用する。
【0210】
上記条件11、条件12、及び条件11’を満たすマッピング方法により、第1から第Qまでの情報からR(t,i1)やR(t,i1,i2)や、…、R(t,i1,i2,…,iQ)が決定される。
【0211】
ここで、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合について考えてみる。
【0212】
あるq(q=1、…、Q−1)に対して、任意のi1(i1=1、2、…、H1×V1)、任意のi2(i1=1、2、…、H1×V1)、…、任意のiq(iq=1、2、…、Hq×Vq)、及び任意の時刻t(t=1、2、…、T)において、R(t,i1,i2,…,iq)=0なら、条件12より、R(t,i1,i2,…,iq,iq+1)はすべて0である。したがって、R(t,i1,i2,…,iq)=0なら、任意のiq+1(iq+1=1、2、…、Hq+1 × Vq+1)、任意のiq+2(iq+1=1、2、…、Hq+2 × Vq+2)、…、任意のiQ(iQ=1、2、…、HQ × VQ)により示されるR(t,i1,i2,…,iQ)は0である。時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合は、常に0である。この値をF0(q)とする。
【0213】
あるq(q=1、…、Q−1)に対して、任意のi1(i1=1、2、…、H1×V1)、任意のi2(i1=1、2、…、H1×V1)、…、任意のiq(iq=1、2、…、Hq×Vq)、及び任意の時刻t(t=1、2、…、T)において、R(t,i1,i2,…,iq)=1なら、条件11より、少なくとも1つのR(t,i1,i2,…,iq,iq+1)は1である。さらに、そのR(t,i1,i2,…,iq,iq+1)を考えると、条件11より、少なくとも1つのR(t,i1,i2,…,iq,iq+1,iq+2)は1である。
【0214】
これを繰り返すことで、R(t,i1,i2,…,iq)=1なら、少なくとも1つのiq+1(iq+1=1、2、…、Hq+1 × Vq+1)、少なくとも1つのiq+2(iq+1=1、2、…、Hq+2 × Vq+2)、…、少なくとも1つのiQ(iQ=1、2、…、HQ × VQ)により示されるR(t,i1,i2,…,iQ)は1である。これは、時刻tにおいてS(t,i1,i2,…,iQ)で示される1×1個のLEDが点灯していることを意味する。換言すれば、R(t,i1,i2,…,iq)=1なら、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDの点灯している割合は、常に一定とは限らないが、少なくとも0を越えていることは確かである。この値をF1(q)とする。
【0215】
したがって、このような条件でマッピング方法を決めても、F1(q)>F0(q)である。そして、F0(q)=0であるから、受信装置200側では、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDの点灯している割合が0であるか、又は0を越えているかによって、R(t,i1,i2,…,iq)を判定することができる。
【0216】
この場合の送信装置100側のエンコーダ101が行なう処理は、図17及び図18〜図20を用いて説明した前述の処理と略同一である。但し、ステップS23とステップS28での処理は相違する。
【0217】
この場合のステップS23では、第1の情報の先頭からL1ビットを取り出し、第1の場合のマッピング表を参照して、そのL1ビットに対応する組み合わせパターンを求め、そのパターンを{R(t,1)、R(t,2)、…、R(t,H1×V1)}の値とする。すなわち、R(t,1)、R(t,2)、…、R(t,H1×V1)の値を確定させる。ここで読み出された第1の情報の先頭L1ビットは破棄され、次のビットが先頭に繰上げされる。
【0218】
また、この場合のステップS28では、現在のt、i1、i2、…、iq−1により指定されるR(t,i1,i2,…,iq−1)の値を調べる。
【0219】
R(t,i1,i2,…,iq−1)が1なら、第qの情報の先頭からLqビットを取り出し、第qの場合のマッピング表を参照して、そのLqビットに対応する組み合わせパターンを求め、そのパターンを{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}の値とする。すなわち、R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)の値を確定させる。ここで読み出された第qの情報の先頭Lqビットは破棄され、次のビットが先頭に繰上げされる。
【0220】
R(t,i1,i2,…,iq−1)が0なら、R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)は、すべて0とする。第qの情報の先頭ビットは破棄されない。
【0221】
また、この場合の受信装置200のデコーダ203が行う処理は、図21、図22、及び図23〜図25を用いて説明した前述の処理と略同一である。但し、ステップS51と、ステップS63、ステップS68での処理が相違する。
【0222】
この場合のステップS51では、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合が0でないか、あるいは0であるかを調べる。そして、0でない場合には次ステップS52に進むが、0である場合にはステップS53に進む。
【0223】
また、この場合のステップS63では、パターン{R(t,1)、R(t,2)、…、R(t,H1×V1)}から、第1の場合のマッピング表を参照して、対応する第1の情報のL1ビット分のデータを確定させる。このL1ビット分のデータは、受信装置200内の第1の情報を逐次格納していくメモリ(図示しない)の最後尾に付け加える。
【0224】
また、この場合のステップS68では、現在のt、i1、i2、…、iq−1により指定されるR(t,i1,i2,…,iq−1)の値を調べる。
【0225】
R(t,i1,i2,…,iq−1)が1なら、パターン{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}から、第qの場合のマッピング表を参照して、対応する第qの情報のLqビット分のデータを確定させる。このLqビット分のデータは、受信装置200内の第qの情報を逐次格納していくメモリ(図示しない)の最後尾に付け加える。
【0226】
R(t,i1,i2,…,iq−1)が0なら、パターン{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}はすべて0であり、第qビットの情報は含まれていないので、第qの情報を格納して行くメモリの最後尾に付け加えるものは何もない。
【0227】
このようにして、上述した条件11、条件12、及び条件11’を満たすマッピング方法を採用することによって、同様に、送信装置100から発せられる第1から第Qまでの情報のうち、第1から第qmaxまでの情報を受信装置200で受信することができる。
【0228】
さて、2次元発光部103の素子数(LEDの数)が16×16個の場合の具体例について以下に詳解する。先に述べたように、H=V=16、Q=4、H1=V1=H2=V2=H3=V3=H4=V4=2である。ここで、L1=L2=L3=L4=3とし、上記の条件11、条件12、及び条件11’を満たすマッピング方法(すなわち、第1の場合のマッピング表、第2の場合のマッピング表、第3の場合のマッピング表、第4の場合のマッピング表)の具体例は、以下の通りとする。
【0229】
第q(q=2、3、4)の場合のマッピング表の具体例:
R(t,i1,i2,…,iq−1)=1の場合、3ビットの入力データに対して、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、R(t,i1,i2,…,iq−1,3)、R(t,i1,i2,…,iq−1,4)}の組み合わせパターンを決定する。すなわち、入力データが0、1、2,3、4、5、6、7であるとき、それぞれ、{0,1,1,1}、{1,0,1,1}、{1,1,0,1}、{1,1,1,0}、{0,0,1,1}、{1,1,0,0}、{0,1,0,1}、{1,0,1,0}とする。この対応関係を、「第qの場合のマッピング表」と呼ぶことにする。
【0230】
第1の場合のマッピング表の具体例:
3ビットの入力データに対して、{R(t,1)、R(t,2)、R(t,3)、R(t,4)}の組み合わせパターンを決定する。すなわち、入力データが0、1、2,3、4、5、6、7であるとき、それぞれ、{0,1,1,1}、{1,0,1,1}、{1,1,0,1}、{1,1,1,0}、{0,0,1,1}、{1,1,0,0}、{0,1,0,1}、{1,0,1,0}とする。この対応関係を、「第1の場合のマッピング表」と呼ぶことにする。
【0231】
このとき、F1(4)>0、F0(4)=0、F1(3)>0、F0(3)=0、F1(2)>0、F0(2)=0、F1(1)>0、F0(1)=0となる。
【0232】
これまで、条件1、条件2、条件3、条件4、及び条件1’を満たすようなマッピング方法、あるいは条件11、条件12、及び条件11’を満たすようなマッピング方法を以って、本発明の実施形態について説明してきた。しかしながら、本発明の要旨はこれらのマッピング方法に限定されるものではなく、R(t,i1,i2,…,iq)=1の場合に時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合と、R(t,i1,i2,…,iq)=0の場合に時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合が相違するようなマッピング方法であれば何でもよい。このようなマッピング方法は他にもあるが、紙面の都合によりこれ以上の説明を省略する。そして、このようなマッピング方法のいずれかを採用することにより、送信装置100から発せられる第1から第Qまでの情報のうち、第1から第qmaxまでの情報を受信装置200で受信することができる。ここで、qmaxは、受信装置200のカメラ201の解像度により決定される。
【0233】
また、デジタル通信では、一般に送信データは受信装置200側で安定して受信できるように、送信装置100において符号化される。すなわち、エンコーダ101により生成された時系列2次元点滅パターンR(t,i1,i2,…,iQ)は、さらにマンチェスタ符号を用いて点滅させてもよい。マンチェスタ符号によれば、時間をさらに半分の単位(0.5単位)で区切り、エンコーダ101で作成された時系列2次元点滅パターンR(t,i1,i2,…,iQ)が1のときは、対応する時刻の前半の0.5の期間では1(点灯)を、後半の0.5の期間では0(消灯)とする。また、エンコーダ101で作成された時系列2次元点滅パターンR(t,i1,i2,…,iQ)が0のときは、対応する時刻の前半の0.5の期間では0(消灯)を、後半の0.5の期間では1(点灯)とする。
【0234】
マンチェスタ符号を用いることで、2次元発光部103が有効なデータを発信しているときは必ず各LEDは輝度変化が起こる。したがって、受信装置200側では時間方向の輝度変化を調べることにより、点滅のパターンを受信すなわち識別することができる。勿論、この場合は、受信装置200側のカメラ201も、0.5という時間間隔で撮影を繰り返すだけの動作速度が要求される。つまり、時刻t=0.5、1、1.5、2、2.5、3、3.5…、Tにおける映像を撮影していく必要がある。
【0235】
上述したような構成をとることで、例えば、第1の情報として、「レストラン情報」であるか「遊園地情報」であるかを、送信装置100から発信する。また、第2の情報として「営業時間」を発信する。そして、第3の情報として「料金情報」を発信する。さらに、第4の情報として「会員割引に関する情報」を発信する。
【0236】
受信装置200を所持して送信装置100が設置してある街に行った人は、遠くの場所からでも、第1の情報は受信することができる。そして、もしその情報に興味があれば、さらに、その送信装置100に近づいていくことにより、第2の情報も得ることができる。そして、より詳細な情報を知りたければ、さらに近づいていくことで、第3の情報や第4の情報も得ることができる。勿論、遠くにいたときに、第1の情報を受信してそれに関して興味がなければ、送信装置100にこれ以上近づく必要はない。
【0237】
このように、情報を受信する人々は、送信装置100から遠い場所にいても、少なくとも概略的な情報(第1の情報)を知ることができるので、送信装置100に近づいて詳細情報を入手したいか、あるいは、自分にとって必要ないかを判断することができる。
【0238】
また、本発明をコンピュータ・グラフィックスのデータ送信と、それを受信して表示するシステムとして適用することもできる。第1の情報として、3次元仮想物体の輪郭情報(ポリゴン情報、あるいはワイヤフレーム情報)を送信装置100から発信する。また、第2の情報として、各ポリゴンに貼り付ける模様(テクスチャ)の低周波数成分(テクスチャをフーリエ変換したときの低周波数成分)を発信する。また、第3の情報として、各ポリゴンに貼り付ける模様(テクスチャ)の中周波数成分(テクスチャをフーリエ変換したときの中周波数成分)を発信する。そして、第4の情報として、各ポリゴンに貼り付ける模様(テクスチャ)の高周波数成分(テクスチャをフーリエ変換したときの高周波数成分)を発信する。
【0239】
通常、一般の人は、興味のある情報発信源(送信装置100)に対して、受信装置200のカメラ201を真正面に向けるであろう。そして、興味のない情報発信源に対しては、もしカメラ201が捕らえたとしても、カメラ201の画面の端に写る程度であろう。情報発信源に対してカメラ201が真正面に向いていれば、2次元発光部103を真正面から見ることになり、第1、2、3、及び4の情報すべてを受信できる。つまり、この情報発信源から発せられたコンピュータ・グラフィックスのデータをすべて受信することができ、3次元仮想物体の輪郭、高精細なテクスチャの情報から、正確に、その3次元仮想物体を受信装置200側のモニタ(図示しない)上で表示することができる。
【0240】
カメラ201の端の方で捕捉した情報発信源は、斜め方向からの撮影となり、真正面からの撮影に比べて、その投影像は小さくなる。このため、第1と第2と第3の情報のみしか受信できない。この場合は、テクスチャの高周波数成分のない、すなわちテクスチャが多少ぼけた3次元仮想物体のみが復元され、受信装置200側のモニタに表示される。さらに斜めの方向から情報発信源を撮影した場合には、第1と第2の情報のみ受信可能であり、テクスチャの高周波数成分と中周波数成分のない、すなわちテクスチャがかなりぼけた3次元仮想物体のみが復元され、受信装置200側のモニタに表示される。さらに、もっと斜め方向から撮影されると、第1の情報しか得られず、3次元仮想物体のワイヤフレーム(輪郭)のみが、受信装置200側のモニタに表示される。これは、興味のあるものに関してはより詳しい情報を受信して3次元仮想物体をより詳しく表示することができる一方、興味のないものに関してはラフに表示される。すなわち興味の度合いに応じた緻密さで物体が表示されることとなり、まさに受信装置200を持っている人の意思に適ったものとなる。
【0241】
なお、16×16個のLEDにより送信している場合について詳しく述べたが、本発明の要旨は、このような2次元発光部103の構成に限定されるものではない。例えば、9×9個のLEDによる送信をしてもよい。そして、3×3個のLEDを1つの組とみなす。これにより、3×3個のLEDの組を3×3個だけ構成することができる。この場合は、2つの異なる情報(第1の情報と第2の情報)を送ることができる。つまり、3×3個のLEDの組からなる3×3個の点滅パターンにより、第1の情報を送る。そして、各々の3×3個のLEDの組内での3×3個のLEDの点滅パターンによって、第2の情報を送ることができる。このとき、H=V=9、Q=2、H1=H2=V1=V2=3である。
【0242】
また、極端な例としては、H=1も考えられる。具体的には、1×32個のLEDでもよい。この場合は、2次元発光部というよりもむしろ1次元発光部と呼ぶ方がふさわしい。
【0243】
これまでは2次元発光部103が16×16個のLED(素子)よりなる構成例に沿って、本発明の実施形態について説明してきた。以下では、本発明の他の実施形態として、2×2個のLEDよりなる2次元発光部103を用いて、2つの情報(第1の情報と第2の情報)を光伝送する場合について説明する。
【0244】
第1の情報として、2×2個のLED(すなわち、2次元発光部103のすべてのLED)を1つの組と考えて、光伝送する。そして、第2の情報として、1×1個のLEDを1つの組と考えて、光伝送する。つまり、Q=2、H1=V1=1、H2=V2=2である。また、マッピング方法は、qが1でない場合は、上記条件11と条件12を満たし、q=1の場合は上記条件11’の代わりに、以下の条件11”を満たすとする。
【0245】
条件11”(q=1の場合):
Lq(すなわち、L1)ビットの入力データに対して、{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンを決定する。L1ビットの入力データの値が異なれば、上記の{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンも異なるようにする。ここで、L1は1以上の定数であり、L1ビットの入力データとは第1の情報の中のL1ビット分のデータのことである。このL1ビットの入力データに対して、{R(t,1)、R(t,2)、…、R(t,H1×V1)}の組み合わせパターンを決定する、という対応関係を、「第1の場合のマッピング表」と呼ぶことにする。
【0246】
なお、ここで示す例では、L1=1、L2=3である。また、上記の条件11”で規定している第1の場合のマッピング表は、1ビットの入力データが1又は0のとき、それぞれ、{R(t,1)}として1又は0とする表である。そして、条件11に書かれている第2の場合のマッピング表は、3ビットの入力データが0、1、2、3、4、5、6、7であるとき、それぞれ、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{0,0,1,1}、{0,1,1,0}、{1,1,0,0}、{1,0,0,1}、{1,1,1,0}、{1,1,0,1}、{1,0,1,1}、{0,1,1,1}とする表である。
【0247】
図26〜図27には、この実施形態において、受信装置200内のエンコーダ203で実行される処理手順をフローチャートの形式で示している。
【0248】
まず、時刻を表す変数tに1をセットしてから(ステップS81)、第1の情報の先頭から1ビットを取り出し、その値が1であれば、R(t,1)=1とし、0であれば、R(t,1)=0とする(ステップS82)。なお、ここで読み出された第1の情報の先頭の1ビットは破棄され、次のビットが先頭に来る。
【0249】
次いで、tがT未満であるかどうかを判断する(ステップS83)。tがT未満であれば、次ステップS84に進み、それ以外なら、すべてのt(t=1、2、…、T)について、R(t,1)が確定したことになるので、ステップS85に進む。
【0250】
ステップS84では、次の時刻を処理するために、tを1だけインクリメントして、ステップS82に戻る。
【0251】
また、ステップS85では、時刻を表す変数tに再び1をセットしてから、次ステップS86に進む。
【0252】
ステップS86では、先行ステップS82で求めたR(t,1)が1又は0のどちらであるかを判断する。そして、R(t,1)が1であればステップS87に進むが、0であればステップS88に進む。
【0253】
ステップS87では、第2の情報から先頭3ビットを取り出し、その値が0、1、2、3、4、5、6、7であるとき、それぞれ、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{0,0,1,1}、{0,1,1,0}、{1,1,0,0}、{1,0,0,1}、{1,1,1,0}、{1,1,0,1}、{1,0,1,1}、{0,1,1,1}とする。その後、後続のステップS89に進む。
【0254】
また、ステップS88では、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{0,0,0,0}をセットする。すなわち、すべてのR(t,1,i)に0をセットする。その後、後続のステップS89に進む。
【0255】
ステップS89では、tがT未満であるかどうかを判断する。tがT未満であれば次ステップS90に進む。それ以外なら、すべてのt(t=1、2、…、T)についてR(t,1,1)、R(t,1,2)、R(t,1,3)、R(t,1,4)が確定したことになるので、ステップS91に進む。
【0256】
ステップS90では、次の時刻を処理するためにtを1だけインクリメントして、ステップS86に戻る。
【0257】
また、ステップS91では、R(t,1,1)の値が1であるときは、時刻t(t=1、2、…、T)における位置(1,1)のLEDを点灯させ、R(t,1,1)の値が0であるときには、時刻tにおける位置(1,1)のLEDを消灯する。同様に、R(t,1,2)の値によって、時刻tにおける位置(1,2)のLEDの点灯/消灯を行う。また、R(t,1,3)の値によって、時刻tにおける位置(2,1)のLEDの点灯/消灯を行う。また、R(t,1,4)の値によって、時刻tにおける位置(2,2)のLEDの点灯/消灯を行う。
【0258】
このようにして2次元点滅パターンの出力を行なった後、本処理ルーチン全体を終了する。
【0259】
以上のような処理手続きに従うことによって、2×2個のLEDを持つ2次元発光部103からは、時系列2次元発光パターンが発光される。このようにして決められる発光パターンには、第1の情報から決定されたR(t,1)が1のときは、2×2個のLED(すなわち、2次元発光部103のすべてのLED)を1つの組と考えると、少なくともその組の中には2個あるいは3個のLEDが点灯している。つまり、割合で言うと、0.5以上の割合で点灯している。一方、第1の情報から決定されたR(t,1)が0のときは、2×2個のLED(すなわち、2次元発光部すべてのLED)を1つの組と考えると、その組の中には0個のLEDが点灯している。つまり、割合で言うと、0の割合で点灯している。このことから、受信装置200側で、時刻tにおける2×2個のLED(すなわち、2次元発光部103のすべてのLED)の平均的な明るさを調べ、その値が0.5以上であるか、あるいは0であるかに応じて、R(t,1)を決定することができる。そして、R(t,1)が1ならば第1の情報の中の対応する1ビットが1であり、R(t,1)が0ならば第1の情報の中の対応する1ビットが0である。このようにして、第1の情報を復元することができる。
【0260】
また、第2の情報については、時刻tにおける4つのLEDの発光パターンより、3ビット分が復元できる。
【0261】
図28には、受信装置200側のデコーダ203によって実行される処理手順をフローチャートの形式で示している。デコーダ203は、上述した事柄を踏まえてデコード処理を行なう。
【0262】
まず、時刻を表す変数tに1をセットし(ステップS101)、2次元発光部103の4つのLEDの平均的な明るさを求め、幾つが点灯しているかその割合を求める(ステップS102)。点灯しているLEDの割合が0.5以上であるか又は0であるかを判断し、0.5以上であれば、R(t,1)として1をセットして、さらに、第1の情報を逐次格納していくメモリの最後尾に1ビットの情報「1」を加える。また、0であれば、R(t,1)として0をセットして第1の情報を逐次格納していくメモリの最後尾に1ビットの情報「0」を加える。実際には、4つのLEDのうち点灯しているものが1つでもあるかどうかで判断した方がその判定は簡単になる。
【0263】
次いで、tがT未満であるかどうかを判断する(ステップS103)。tがT未満であれば、ステップS104に進む。また、それ以外ならすべてのt(t=1、2、…、T)について、R(t,1)が確定したことになるので、ステップS105に進む。
【0264】
ステップS104では、次の時刻を処理するために、tを1だけインクリメントして、ステップS102に戻る。
【0265】
また、ステップS105では、時刻を表す変数tに再び1をセットする。次いで、ステップS102で求めたR(t,1)が1であるか0であるか判断する(ステップS106)。ここで、R(t,1)が1であればステップS107に進み、0であればステップS108に進む。
【0266】
ステップS107では、4つのLEDの1つずつに着目して、点灯しているか消灯しているかを調べる。これにより、第2の情報の3ビット分を復元する。具体的には、以下の手順によりデータを復元する。
【0267】
{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{消灯,消灯,点灯,点灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{0,0,1,1}をセットして、さらに、第2の情報を逐次格納していくメモリ(図示しない)の最後尾に3ビットの情報「0」を加える。
【0268】
また、{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{消灯,点灯,点灯,消灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{0,1,1,0}をセットして、さらに、第2の情報を逐次格納していくメモリの最後尾に3ビットの情報「1」を加える。
【0269】
また、{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{点灯,点灯,消灯,消灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{1,1,0,0}をセットして、さらに、第2の情報を逐次格納していくメモリの最後尾に3ビットの情報「2」を加える。
【0270】
また、{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{点灯,消灯,消灯,点灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{1,0,0,1}をセットして、さらに、第2の情報を逐次格納していくメモリの最後尾に3ビットの情報「3」を加える。
【0271】
また、{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{点灯,点灯,点灯,消灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{1,1,1,0}をセットして、さらに、第2の情報を逐次格納していくメモリの最後尾に3ビットの情報「4」を加える。
【0272】
また、{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{点灯,点灯,消灯,点灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{1,1,0,1}をセットして、さらに、第2の情報を逐次格納していくメモリの最後尾に3ビットの情報「5」を加える。
【0273】
また、{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{点灯,消灯,点灯,点灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{1,0,1,1}をセットして、さらに、第2の情報を逐次格納していくメモリの最後尾に3ビットの情報「6」を加える。
【0274】
また、{位置(1,1)のLED,位置(1,2)のLED,位置(2,1)のLED,位置(2,2)のLED}が、{消灯,点灯,点灯,点灯}している場合には、{R(t,1,1),R(t,1,2),R(t,1,3),R(t,1,4)}として、{0,1,1,1}をセットして、さらに、第2の情報を逐次格納していくメモリの最後尾に3ビットの情報「7」を加える。
【0275】
次いで、tがT未満であるかどうかを判断する(ステップS108)。tがT未満であれば、次ステップS109に進む。それ以外であれば、すべてのt(t=1、2、…、T)について、R(t,1,1)、R(t,1,2)、R(t,1,3)、R(t,1,4)が確定したことになるので、本処理ルーチン全体を終了する。
【0276】
ステップS109では、次の時刻を処理するために、tを1だけインクリメントして、ステップS106に戻る。
【0277】
勿論、4つのLEDの平均的な明るさ(4つのうち、幾つが点灯しているか)を判別することができるが、LED1つずつを判別できない場合には、第1の情報のみ復元でき、ステップS107での処理は意味がなくなり、第2の情報は復元されない。
【0278】
このようにして、エンコーダ101での処理(図26〜図27)、並びにデコーダ203での処理(図28)が行われ、第1の情報と第2の情報が伝送される。
【0279】
続いて、上述した条件1、条件2、条件3、条件4、及び条件1’、あるいは、条件11、条件12、及び、条件11’を用いて光伝送データの符号化及び複合化を行なう本発明のさらなる実施形態について説明する。以下では、時間方向についても、各階層毎に可変とする応用例について説明する。
【0280】
本発明に係る光伝送によれば、受信装置200を所持する人が遠くから2次元発光部103をカメラ201で撮影した場合にも、第1の情報を受信することができる。しかしながら、遠くからの撮影の場合、カメラ201の撮影画像は全体的に光量不足になる可能性もある。したがって、露光時間(1枚の撮影に要する露出時間)を長くしなくてはいけない場合もある。前述の説明では、時間間隔として、t=1、2、…、Tにおいてカメラ201で撮影していくと述べたが、カメラ201の撮影中における露光時間の関係で、t=2、4、6、8、…というように2単位でしか撮影しないと十分な光量が得られない可能性もある。勿論、受信装置200を持った人が送信装置100に十分近づけば問題はない。したがって、近づかなければ受信できない第qの情報(qはかなり大きな数)については、前述した通り、時間間隔として、t=1、2、…、Tにおいてカメラ201で撮影していくことが可能という前提で考えてよい。
【0281】
以下では、本発明に係る光伝送において時間も考慮した応用例について説明する。
【0282】
第1の情報は、時間間隔としてP(1)とする。すなわち、受信装置200側では、時間間隔がP(1)間隔で撮影していけば復元できるとする。同様に、q階層目の情報(第qの情報)は、時間間隔としてP(q)とする。ここで、任意のq(q=1、2、…、Q)に対して、P(q)は1以上の整数である。また、任意のq(q=1、2、…、Q−1)に対して、P(q)はP(q+1)で割り切れるとし、勿論、P(q)=P(q+1)であってもよい。P(Q)は1である。
【0283】
前述の条件1、条件2、条件3、条件4、及び、条件1’を満たすマッピング方法は、以下の条件を満たすように改良される。
【0284】
条件21:
t’はP(q)の倍数とし、R(t’,i1,i2,…,iq−1)=1の場合、Nqビットの入力データに対して、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する。但し、任意のNqビットの入力データに対応する組み合わせパターン{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}のHq×Vq個の要素のうち、1であるものの数と0であるものの数は一定であり、その割合はUq:(1−Uq)である。つまり、1であるものの個数はUq×(Hq×Vq)であり、0であるものの個数は(1−Uq)×(Hq×Vq)である。また、Nqビットの入力データの値が異なれば、上記{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンも異なるようにする。
【0285】
ここで、Nqは定数であり、Nqビットの入力データとは第qの情報の中のNqビット分のデータのことである。なお、特にNq=0であれば、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}は、常に、ある特定の1つのパターンとなる。Nqビットの入力データに対して、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する、という対応関係を、「露出時間を考慮した第qの正の場合のマッピング表」と呼ぶことにする。そして、この確定した値R(t’,i1,i2,…,iq−1,iq)を、R(t’−P(q)+1,i1,i2,…,iq−1,iq)、R(t’−P(q)+2,i1,i2,…,iq−1,iq)、…、R(t’−1,i1,i2,…,iq−1,iq)のすべてにコピーする。但し、P(q)=1のときは、コピーする対象がないので、コピーする必要はない。
【0286】
条件22:
t’はP(q)の倍数とし、R(t’,i1,i2,…,iq−1)=0の場合、Mqビットの入力データに対して、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する。但し、任意の「Mqビットの入力データ」に対応する組み合わせパターン{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}のHq×Vq個からなる要素のうち、1であるものの数と0であるものの数は一定で、その割合はZq:(1−Zq)である。つまり、1であるものの個数はZq×(Hq×Vq)であり、0であるものの個数は(1−Zq)×(Hq×Vq)である。また、Mqビットの入力データの値が違えば、上記{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンも異なるようにする。
【0287】
ここで、Mqは定数であり、Mqビットの入力データとは第qの情報の中のMqビット分のデータのことである。なお、特にMq=0であれば、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}は、常に、ある特定の1つのパターンとなる。Mqビットの入力データに対して{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する、という対応関係を、「露出時間を考慮した第qの負の場合のマッピング表」と呼ぶことにする。そして、この確定した値R(t’,i1,i2,…,iq−1,iq)を、R(t’−P(q)+1,i1,i2,…,iq−1,iq)、R(t’−P(q)+2,i1,i2,…,iq−1,iq)、…、R(t’−1,i1,i2,…,iq−1,iq)のすべてにコピーする。但し、P(q)=1のときは、コピーする対象がないので、コピーする必要はない。
【0288】
条件23:
任意のqに対して、NqあるいはMqのいずれか1つは少なくとも1以上である。
【0289】
条件24:
任意のqに対して、UqはZqを越える。すなわち、Uq>Zqである。
【0290】
但し、q=1の場合、対応する1つ上の階層がないので、この場合は条件22は無視して条件21を満たすようなマッピング表とする。すなわち、以下の条件21’を満たす。
【0291】
条件21’(q=1の場合):
t’はP(q)(即ち、P(1))の倍数とし、Nq(即ち、N1)ビットの入力データに対して、{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の組み合わせパターンを決定する。但し、任意のN1ビットの入力データに対応する組み合わせパターン{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}のH1×V1個からなる要素のうち、1であるものの数と0であるものの数は一定で、その割合はU1:(1−U1)である。つまり、1であるものの個数はU1×(H1×V1)であり、0であるものの個数は(1−U1)×(H1×V1)である。また、N1ビットの入力データの値が異なれば、上記{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の組み合わせパターンも異なるようにする。
【0292】
ここで、N1は定数であり、N1ビットの入力データとは第1の情報の中のN1ビット分のデータのことである。但し、N1は1以上である。N1ビットの入力データに対して、{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の組み合わせパターンを決定する、という対応関係を、「露出時間を考慮した第1の正の場合のマッピング表」と呼ぶことにする。そして、この確定した値R(t’,i1)を、R(t’−P(1)+1,i1)、R(t’−P(1)+2,i1)、…、R(t’−1,i1)のすべてにコピーする。但し、P(1)=1のときは、コピーする対象がないので、コピーする必要はない。
【0293】
この条件21’は、説明上、他の階層との統一性を保つためのものであり、この性質を満たさなくてはいけないという理由は特にない。
【0294】
上述した条件21、条件22、条件23、条件24、及び、条件21’を満たすマッピング方法は複数考えられるが、それらの中から1つの方法を選び、それをエンコーダ101及びデコーダ203で共通に使用する。そして、これら条件21、条件22、条件23、条件4、及び、条件21’を満たすマッピング方法により、第1から第Qまでの情報から、R(t,i1)やR(t,i1,i2)や、…、R(t,i1,i2,…,iQ)が決定される。
【0295】
ここで、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合について考えてみる。
【0296】
あるq(q=2、…、Q)に対して、任意のi1(i1=1、2、…、H1×V1)、任意のi2(i1=1、2、…、H1×V1)、…、任意のiq(iq=1、2、…、Hq×Vq)、及び、任意の時刻t(t=1、2、…、T)において、R(t,i1,i2,…,iq)=1なら、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合が確定していると仮定する。この値をF1(q)とする。つまり、2次元発光部103内のS(t,i1,i2,…,iq)で示される(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個よりなるLEDのうち、点灯しているものが、F1(q)×(Hq+1 × Hq+2 × …× HQ)×(Vq+1 × Vq+2 × … × VQ)個であるとする。
【0297】
そして、R(t,i1,i2,…,iq)=0なら、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合が確定していると仮定する。この値をF0(q)とする。つまり、2次元発光部103内のS(t,i1,i2,…,iq)で示される(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個よりなるLEDのうち、点灯しているものがF0(q)×(Hq+1 × Hq+2 × … × HQ)×(Vq+1 × Vq+2 × … × VQ)個であるとする。さらに、F1(q)>F0(q)であると仮定する。
【0298】
また、上述した条件より明らかであるように、t’をP(q)の倍数とすると、R(t’−P(q)+1,i1,i2,…,iq−1,iq)=R(t’−P(q)+2,i1,i2,…,iq−1,iq)=…=R(t’,i1,i2,…,iq−1,iq)である。したがって、上記の仮定より、t’をP(q)の倍数とすると、R(t’,i1,i2,…,iq)=1なら、t=t’−P(q)+1からt’の間、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内では、常にF1(q)の割合でLEDが点灯している。そして、R(t’,i1,i2,…,iq)=0なら、t=t’−P(q)+1からt’の間は、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDは、常にF0(q)の割合で点灯している。
【0299】
さらに、このように仮定することで、R(t,i1,i2,…,iq−1)=1なら、条件21から分かるように、時刻tにおいてS(t,i1,i2,…,iq−1)で示される領域内でLEDが点灯している割合は、Uq×F1(q)+(1−Uq )×F0(q)=F0(q)+Uq×(F1(q)−F0(q)) となる。この値をF1(q−1)とする。R(t,i1,i2,…,iq−1)=0なら、条件22から分かるように、時刻tにおいてS(t,i1,i2,…,iq−1)で示される領域内でLEDが点灯している割合は、Zq×F1(q)+(1−Zq )×F0(q)=F0(q)+Zq×(F1(q)−F0(q))となる。この値をF0(q−1)とする。
【0300】
ここで仮定した「F1(q)>F0(q)」と条件24より、F1(q−1)>F0(q−1)であることが分かる。
【0301】
さて、S(t,i1,i2,…,iQ)は、先に説明したように、時刻tにおける1つのLEDを示している。そして、R(t,i1,i2,…,iQ)=1なら、そのLEDは点灯しているので、時刻tにおいてS(t,i1,i2,…,iQ)で示される領域内でLEDが点灯している割合F1(Q)は1となる。同様に、R(t,i1,i2,…,iQ)=0なら、そのLEDは消灯しているので、時刻tにおいてS(t,i1,i2,…,iQ)で示される領域内でLEDが点灯している割合F0(Q)は0となる。したがって、q=Qの場合は、F1(q)=1、F0(q)=0である。
【0302】
以上より、再帰的に、F1(Q−1)、F0(Q−1)、F1(Q−2)、F0(Q−2)、…、F1(1)、F0(0)が求まり、且つ、F1(Q−1)>F0(Q−1)、F1(Q−2)>F0(Q−2)、…、F1(1)>F0(0)である。再言すれば、F1(q)は、R(t,i1,i2,…,iq)=1の場合において時刻tにS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合である。また、F0(q)は、R(t,i1,i2,…,iq)=0の場合に、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合である。しかも、t’をP(q)の倍数とすると、R(t’,i1,i2,…,iq)=1なら、t=t’−P(q)+1からt’の間は、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内では、LEDは常にF1(q)の割合で点灯している。また、R(t’,i1,i2,…,iq)=0なら、t=t’−P(q)+1からt’の間は、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内では、常にF0(q)の割合でLEDが点灯している。
【0303】
要言すれば、2次元発光部103の素子数(LEDの数)が決められており、その数は、横方向にH個、縦方向にV個である。また、H1×H2×…×HQ=HとなるH1、H2、…、HQ、及び、V1×V2×…×VQ=VとなるV1、V2、…、VQが決められている。定数U1、U2、U3、…、UQ及びZ2、Z3、…、ZQが決められている。第q(q=1、2、…、Q)の情報を送る時間間隔P(q)が決められており、P(q)はP(q+1)で割り切れる。定数N1、N2、N3、…、NQ及びM2、M3、…、MQが決められており、上記条件21、条件22、条件23、条件24、及び、条件21’を満たすマッピング方法(すなわち、露出時間を考慮した第1の正の場合のマッピング表、露出時間を考慮した第2の正の場合のマッピング表、露出時間を考慮した第3の正の場合のマッピング表、…、露出時間を考慮した第Qの正の場合のマッピング表、及び露出時間を考慮した第2の負の場合のマッピング表、露出時間を考慮した第3の負の場合のマッピング表、…、露出時間を考慮した第Qの負の場合のマッピング表)が決められている。さらに、マッピング方法が決まることで、F1(1)、F0(1)、F1(2)、F0(2)、…、F1(Q)、F0(Q)も決定される。これらの値、及びマッピング表は、送信装置100のエンコーダ101と受信装置200のデコーダ203にあらかじめ与えられており、送信装置100と受信装置200で整合性がとれているようになっている。
【0304】
なお、F1(q)、F0(q)とは、それぞれ、R(t,i1,i2,…,iq)=1あるいは0の場合に、時刻tにS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合を示している。これら割合F1(q)とF0(q)は、入力されてくる第1から第Qの情報の値によらず常に一定であり、先に述べたようにあらかじめ確定されている。そして、F1(q)>F0(q)である。また、t’をP(q)の倍数とすると、R(t’,i1,i2,…,iq)=1なら、t=t’−P(q)+1からt’の間は、S(t,i1,i2,…,iq)で示される領域内では、常にF1(q)の割合でLEDが点灯している。R(t’,i1,i2,…,iq)=0なら、t=t’−P(t)+1からt’の間は、S(t,i1,i2,…,iq)で示される領域内では、LEDは常にF0(q)の割合で点灯している。
【0305】
図29には、このようなマッピング方法を採用したときの送信装置100側のエンコーダ101によって実行される処理手順をフローチャートの形式で示している。
【0306】
まず、階層を表す変数qに1をセットしてから(ステップS111)、第qの情報から{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を決定する(ステップS112)。ステップS112の詳細な処理手順については後述に譲る。
【0307】
次いで、qがQ未満であるかどうかを判別する(ステップS113)。qがQ未満であれば、まだ高周波数側の階層が未処理のまま残っているで、ステップS114に進んでスqを1だけインクリメントしてから、ステップS112に戻る。
【0308】
また、qがQ未満でなければ、ステップS115に進み、ステップS112で求めたR(t,i1,i2,…,iQ−1,iQ)に従い、2次元発光部103を発光する。つまり、時刻t(t=1、2、…、T)においてS(t,i1,i2,…,iQ−1,iQ)で指定される1つのLEDを、R(t,i1,i2,…,iQ−1,iQ)=1なら点灯し、R(t,i1,i2,…,iQ−1,iQ)=0なら消灯する。そして、LEDの点滅処理を行なった後、本処理ルーチン全体を終了する。
【0309】
なお、時刻Tは、十分に大きな値であり、第1から第Qまでの情報をすべて送るのに十分な時間であるとする。また、ある情報(例えば、第qの情報)は、時刻T未満で送り終わってしまうかもしれないが、その場合は、第qの情報の最後の方にダミーのデータを加えて、時刻Tまでダミー・データも含めてエンコードして送信し続ける。
【0310】
図30〜図32には、前述のステップS112における、与えられたqに対して第qの情報から{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を決定するための詳細な処理手順をフローチャートの形式で示している。なお、図29に示したフローチャートからも明らかなように、この段階までに、すべてのt、i1、i2、…、iq−1に対して、R(t,i1,i2,…,iq−1)は確定している。
【0311】
まず、qが1であるかどうかを判断し(ステップS121)、1であればステップS122に進み、1以外であればステップS126に進む。
【0312】
ステップS122では時刻を表す変数t’にP(1)をセットし、次いでステップS123では、第1の情報の先頭からN1ビットを取り出し、露出時間を考慮した第1の正の場合のマッピング表を参照して、そのN1ビットに対応する組み合わせパターンを求めて、そのパターンを{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の値とする。すなわち、R(t’,1)、R(t’,2)、…、R(t’,H1×V1)の値を確定させる。そして、各i1(i1=1、2、…、H1×V1)に対してこれら確定されたR(t’,i1)を、R(t’−P(1)+1,i1)、R(t’−P(1)+2,i1)、…、R(t’−1,i1)のすべてにコピーする。但し、P(1)=1のときはコピーする対象がないので、コピーする必要はない。ここで読み出された第1の情報の先頭N1ビットは破棄され、次のビットが先頭に繰上げされる。
【0313】
次いで、t’がT未満であるかどうかを判断する(ステップS124)。t'がT未満であればステップS125に進み、それ以外なら、すべてのt(t=1、2、…、T)及びすべてのi1(i1=1、2、…、H1×V1)についてR(t,i1)が確定したことになるので、本処理ルーチン全体を終了する。
【0314】
次いで、次の時刻を処理するために、t’をP(1)だけインクリメントして(ステップS125)、ステップS123に戻る。
【0315】
一方、ステップS126では、時刻を表す変数t’にP(q)をセットしてから、次ステップS127−1に進む。
【0316】
ステップS127−1では、i1に1をセットして、次ステップS127−2に進む。
【0317】
また、ステップS127−2では、i2に1をセットして、次ステップS127−3に進む。
【0318】
以降、同様にして、ステップS127−(q−1)では、iq−1に1をセットして、ステップS128に進む。なお、ステップS127−3からステップS127−(q−2)は、図面の簡素化のため、図示を省略している。
【0319】
次いで、現在のt’、i1、i2、…、iq−1により指定されるR(t’,i1,i2,…,iq−1)の値を調べる(ステップS128)。
【0320】
ここで、R(t’,i1,i2,…,iq−1)が1なら、第qの情報の先頭からNqビットを取り出し、露出時間を考慮した第qの正の場合のマッピング表を参照して、そのNqビットに対応する組み合わせパターンを求め、そのパターンを{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の値とする。すなわち、R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)の値を確定させる。そして、各iq(iq=1、2、…、Hq×Vq)に対してこれら確定されたR(t’,i1,i2,…,iq−1,iq)を、R(t’−P(q)+1,i1,i2,…,iq−1,iq)、R(t’−P(q)+2,i1,i2,…,iq−1,iq)、…、R(t’−1,i1,i2,…,iq−1,iq)のすべてにコピーする。但し、P(q)=1のときは、コピーする対象がないので、コピーする必要はない。ここで読み出された第qの情報の先頭Nqビットは破棄され、次のビットが先頭に繰上げされる。
【0321】
なお、条件21で既に述べたように、Nq=0なら、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}は、常に、ある特定の1つのパターンとなるので、その値をセットする。そして、この特定のパターンを、時刻t’−P(q)+1からt’−1までコピーする。この場合は、第qの情報の先頭ビットは破棄されない。
【0322】
一方、R(t’,i1,i2,…,iq−1)が0なら、第qの情報の先頭からMqビットを取り出し、露出時間を考慮した第qの負の場合のマッピング表を参照して、そのMqビットに対応する組み合わせパターンを求め、そのパターンを{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の値とする。すなわち、R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)の値を確定させる。そして、各iq(iq=1、2、…、Hq×Vq)に対してこれら確定されたR(t’,i1,i2,…,iq−1,iq)を、R(t’−P(q)+1,i1,i2,…,iq−1,iq)、R(t’−P(q)+2,i1,i2,…,iq−1,iq)、…、R(t’−1,i1,i2,…,iq−1,iq)のすべてにコピーする。但し、P(q)=1のときはコピーする対象がないので、コピーする必要はない。ここで読み出された第qの情報の先頭Mqビットは破棄され、次のビットが先頭に繰上げされる。
【0323】
なお、条件22で既に述べたように、Mq=0なら、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}は、常にある特定の1つのパターンとなるので、その値をセットする。そして、この特定のパターンを、時刻t’−P(q)+1からt’−1までコピーする。この場合は、第qの情報の先頭ビットは破棄されない。
【0324】
次いで、iq−1が(Hq−1 × Vq−1)未満であるかどうかを判断する(ステップS129−1)。iq−1が(Hq−1 × Vq−1)未満であれば、ステップS130−1に進んで、iq−1を1だけインクリメントした後、ステップS128に戻る。また、iq−1がそれ以外なら、ステップS129−2に進む。
【0325】
ステップS129−2では、iq−2が(Hq−2 × Vq−2)未満であるかどうかを判断する。そして、iq−2が(Hq−2 × Vq−2)未満であれば、ステップS130−2に進んで、iq−2を1だけインクリメントした後、ステップS127−(q−1)に戻る。また、iq−2がそれ以外なら、ステップS129−3に進む。
【0326】
ステップS129−3では、iq−3が(Hq−3 × Vq−3)未満であるかどうかを判断する。そして、iq−3が(Hq−3 × Vq−3)未満であれば、ステップS130−3に進んで、iq−3を1だけインクリメントした後、ステップS127−(q−2)に戻る。また、iq−3がそれ以外なら、ステップS129−4に進む。
【0327】
以降、同様にして、ステップS129−(q−1)では、i1が(H1×V1)未満であるかどうかを判断する。そして、i1が(H1×V1)未満であれば、ステップS130−(q−1)に進んで、i1を1だけインクリメントして、ステップS127−2に戻る。また、i1がそれ以外なら、次ステップS311に行く。なお、ステップS129−4からステップS129−(q−2)、及び、ステップS130−4からステップS130−(q−2)は、図面の簡素化のため図示を省略する。
【0328】
ステップS131では、t’がT未満であるかどうかを判断する。そして、t'がT未満であれば、ステップS132に進んで、次の時刻を処理するためにt’をP(q)だけインクリメントした後、ステップS127−1に戻る。
【0329】
また、t'がそれ以外なら、すべてのt(t=1、2、…、T)及びすべてのi1(i1=1、2、…、H1×V1)、i2(i2=1、2、…、H2×V2)、…、iq(iq=1、2、…、Hq×Vq)についてR(t,i1,i2,…,iq−1,iq)が確定したことになるので、本処理ルーチン全体を終了する。
【0330】
以上、図29、並びに図30〜図32を用いて、第1から第Qまでの情報が入力されてきたときの、エンコーダ101による2次元発光部103での時系列2次元発光パターンの作成方法について説明した。
【0331】
次いで、上述したデータの符号化に対応する、受信装置200内のデコーダ203での処理について説明する。
【0332】
既に説明したように、送信装置100から遠い距離にいる場合は、受信装置200のカメラ201では2次元発光部103の発光パターンを十分な解像度で撮影することができない。この場合、受信装置200の射影変換部202で変換された横H画素、縦V画素よりなる画像は、多少ぼけた画像となる。しかし、複数の画素を1つ組と考えて、その組内の平均的な明るさを認識することはできる。
【0333】
もし、H1×V1個の(H2×H3×…×HQ)×(V2×V3×…×VQ)個より成るLEDの組を、露出時間としてP(1)という時間で判別することができれば、第1の情報をデコーダで解読できる。例えば、(H1×H2)×(V1×V2)個の(H3×H4×…×HQ)×(V3×V4×…×VQ)個よりなるLEDの組が、露出時間としてP(2)という時間で判別するというように、さらに細かく判別することができるのであれば、第2の情報もデコーダで解読することができる。以下、同様に、受信装置200の射影変換部202で変換されたH×V画素よりなる画像の「ぼけ具合」を基にどの階層まで解読できるかが決まる。
【0334】
図33には、この場合の受信装置200のデコーダ203が実行する処理手順をフローチャートの形式で示している。
【0335】
まず、受信装置200の射影変換部202で変換されたH×V画素よりなる画像の実質的な解像度を調べる(ステップS141)。この解像度を表す数値として、識別できる横方向の単位をG0、縦方向の単位をG1とする。
【0336】
次いで、どの階層まで解読することができるかを決定する(ステップS142)。具体的には、(Hq+1 × Hq+2 × … × HQ)≧G0となり、且つ、「(Vq+1 × Vq+2 × … × VQ)≧G1」となる最小のqを求める。これをqmaxとする。但し、G0=G1=1のときは、qmax=Qである。
【0337】
次いで、階層を表す変数qに1をセットしてから(ステップS143)、R(t,i1,i2,…,iq−1,iq)の値を求める(ステップS144)。ステップS144の詳細については後述に譲る。
【0338】
次いで、第qの情報を復元する(ステップS145)。第qの情報の復元方法の詳細については後述に譲る。
【0339】
次いで、qがqmax未満であるかどうかを判断する(ステップS146)。qがqmax未満であれば、次の階層を復元するために、ステップS147でqを1だけインクリメントしてからステップS144に戻る。また、qがそれ以外であれば、本処理ルーチン全体を終了する。
【0340】
図34には、与えられたqに対して2次元発光部103の撮影画像からR(t,i1,i2,…,iq−1,iq)を決定するための詳細な処理手順をフローチャートの形式で示している。ここで言う撮像画像をより正確に述べるなら、カメラ201での撮影画像をアフィン変換したH×V画素の画像、すなわち射影変換部202での変換後の画像のことである。
【0341】
まず、時刻t’においてS(t’,i1,i2,…,iq)で示される領域内でLEDが点灯している割合がF1(q)であるか、あるいはF0(q)であるかを判別する(ステップS151)。LEDが点灯している割合がF1(q)である場合には、次ステップS152に進む。また、その割合がF0(q)である場合には、ステップS153に進む。実際には、ノイズもあるので、(F1(q)+F0(q))÷2以上であるか未満であるかによって判断を行えばよい。
【0342】
ステップS152では、R(t’,i1,i2,…,iq)=1としてから、ステップS154に進む。また、ステップS153では、R(t’,i1,i2,…,iq)=0としてから、ステップS154に進む。
【0343】
ステップS154では、R(t’,i1,i2,…,iq)の値を、R(t’−P(q)+1,i1,i2,…,iq−1,iq)、R(t’−P(q)+2,i1,i2,…,iq−1,iq)、…、R(t’−1,i1,i2,…,iq−1,iq)のすべてにコピーしてから、本処理ルーチン全体を終了する。但し、P(q)=1のときは、コピーする対象がないので、コピーする必要はない。
【0344】
なお、図34で示した処理は、すべてのt’及びすべてのi1(i1=1、2、…、H1×V1)、i2(i2=1、2、…、H2×V2)、…、iq(iq=1、2、…、Hq×Vq)について行なう。但し、t’はP(q)の倍数(1倍、2倍、…)であり、且つ、T未満である。
【0345】
F1(q)、F0(q)とは、それぞれ、R(t,i1,i2,…,iq)=1あるいは0の場合においてS(t,i1,i2,…,iq)で示される時刻tにおける領域内のLEDの点灯している割合を示している。したがって、図34に示すR(t,i1,i2,…,iq)の決め方が正当であることを、当業者は容易に理解することができる。
【0346】
なお、t’をP(t’)の倍数とすると、R(t’,i1,i2,…,iq)=1なら、t=t’−P(q)+1からt’の間は、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDは、常にF1(q)の割合で点灯している。
【0347】
また、R(t’,i1,i2,…,iq)=0なら、t=t’−P(q)+1からt’の間は、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDは、常にF0(q)の割合で点灯している。このことから、受信装置200側のカメラ201で、t=t’−P(q)+1からt’まで露光し続けた1枚の画像を使って、上記のステップS151でのLEDの点灯している割合を求めることができる。あるいは、カメラの感度が良くて、時間間隔「1」で連続撮影していくことができるのであれば、t=t’−P(q)+1からt’まで撮影されたP(q)枚の画像の平均値を使って、ステップS151でのLEDの点灯している割合を求めるようにしてもよい。
【0348】
図35〜図37には、与えられたqに対して、R(t’,i1,i2,…,iq−1,iq)からを第qの情報を決定するための詳細な処理手順をフローチャートの形式で示している。なお、図14の処理の流れから明らかなように、この段階までに、すべてのt(t=1、2、…、T)、i1、i2、…、iq−1に対して、R(t,i1,i2,…,iq−1)は確定している。
【0349】
まず、qが1であるかどうかを判別し(ステップS161)、qが1であれば次ステップS162に進み、qが1以外であればステップS166に進む。
【0350】
ステップS162では時刻を表す変数t’にP(1)をセットする。次いで、ステップS163では、パターン{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}から、露出時間を考慮した第1の正の場合のマッピング表を参照して、対応する第1の情報のN1ビット分のデータを確定させる。このN1ビット分のデータは、受信装置200内の第1の情報を格納して行くメモリの最後尾に付け加える。
【0351】
次いで、t'がT未満であるかどうかを判断する(ステップS164)。t’'がT未満であれば、ステップS165に進む。また、t''がそれ以外なら、すべてのt’及びすべてのi1(i1=1、2、…、H1×V1)についてR(t,i1)から第1の情報を復元したことになるので、本処理ルーチン全体を終了する。但し、t’はP(1)の倍数(1倍、2倍、…)であり、且つ、T以下である。
【0352】
次いで、次の時刻を処理するためにt’をP(1)だけインクリメントしてから(ステップS165)、ステップS163に戻る。
【0353】
一方、ステップS166では、時刻を表す変数t’にP(q)をセットして、次ステップS167−1に進む。
【0354】
ステップS167−1では、i1に1をセットして、次ステップS167−2に進む。
【0355】
また、ステップS167−2では、i2に1をセットして、次ステップS167−3に進む。
【0356】
以降、同様にして、ステップS167−(q−1)では、iq−1に1をセットして、次ステップS168に進む。なお、ステップS167−3からステップS167−(q−2)は、図面の簡素化のため図示を省略している。
【0357】
ステップS168では、現在のt’、i1、i2、…、iq−1により指定されるR(t’,i1,i2,…,iq−1)の値を判別する。
【0358】
ここで、R(t’,i1,i2,…,iq−1)が1なら、パターン{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}から、露出時間を考慮した第qの正の場合のマッピング表を参照して、対応する第qの情報のNqビット分のデータを確定させる。このNqビット分のデータは、受信装置200内の第qの情報を格納していくメモリ(図示しない)の最後尾に付け加える。
【0359】
なお、条件21で既に述べたように、Nq=0なら、第qビットの情報は含まれていないので、第qの情報を格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このとき、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}は、常にある特定の1つのパターンとなっている筈である。
【0360】
一方、R(t’,i1,i2,…,iq−1)が0なら、パターン{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}から、露出時間を考慮した第qの負の場合のマッピング表を参照して、対応する第qの情報のMqビット分のデータを確定させる。このMqビット分のデータは、受信装置200内の第qの情報を格納していくメモリの最後尾に付け加える。
【0361】
なお、条件22で既に述べたように、Mq=0なら、第qビットの情報は含まれていないので、第qの情報を格納していくメモリの最後尾に付け加えるものは何もない。ちなみに、このとき、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}は、常にある特定の1つのパターンとなっている筈である。
【0362】
次いで、ステップS169−1では、iq−1が(Hq−1 × Vq−1)未満であるかどうかを判断する。そして、iq−1が(Hq−1 × Vq−1)未満であれば、ステップS170−1に進んで、iq−1を1だけインクリメントしてから、ステップS168に戻る。また、iq−1が(それ以外なら、ステップS169−2に進む。
【0363】
ステップS169−2では、iq−2が(Hq−2 × Vq−2)未満であるかどうかを判断する。そして、iq−2が(Hq−2 × Vq−2)未満であれば、ステップS170−2に進んで、iq−2を1だけインクリメントしてから、ステップS167−(q−1)に戻る。また、iq−2がそれ以外なら、ステップS169−3に進む。
【0364】
ステップS169−3では、iq−3が(Hq−3 × Vq−3)未満であるかどうかを判断する。(Hq−3 × Vq−3)未満であれば、ステップS170−3に進んで、iq−3を1だけインクリメントしてから、図示を省略したステップS167−(q−2)に戻る。また、iq−3がそれ以外なら、ステップS169−4に行く。
【0365】
以降、同様にして、ステップS169−(q−1)では、i1が(H1×V1)未満であるかどうかを判断する。i1が(H1×V1)未満であれば、ステップ170−(q−1)に進んで、i1を1だけインクリメントしてから、ステップS167−2に戻る。また、i1がそれ以外なら、ステップS171に進む。なお、ステップS169−4からステップS169−(q−2)、及び、ステップS170−4からステップS170−(q−2)については、図面の簡素化のため図示を省略している。
【0366】
ステップS171では、t’がT未満であるかどうかを判断する。t’がT未満であれば、ステップS172に進んで、次の時刻を処理するために、t’をP(q)だけインクリメントしてから、ステップS167−1に戻る。
【0367】
また、t’がそれ以外なら、すべてのt’(t’はP(q)の倍数(1倍、2倍、…)であり、且つ、T以下)及びすべてのi1(i1=1、2、…、H1×V1)、i2(i2=1、2、…、H2×V2)、…、iq(iq=1、2、…、Hq×Vq)についてR(t’,i1,i2,…,iq−1,iq)から、第qの情報を復元したことになるので、本処理ルーチン全体を終了する。
【0368】
以上、図33、図34、及び図35〜図37を参照しながら、受信装置200側のデコーダ201によって実行される、2次元発光部103からの時系列2次元発光パターンが入力されてきたときの第1から第qmaxまでの情報の復元方法について説明した。
【0369】
上述から分かるように、2次元発光部103からの時系列2次元発光パターンは、F1(q)>F0(q)が成立する。すなわち、R(t,i1,i2,…,iq)=1の場合に時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合(F1(q))と、R(t,i1,i2,…,iq)=0の場合に時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合(F0(q))が相違している。
【0370】
したがって、受信装置200側で、ある時刻tにおいてS(t,i1,i2,…,iq)の領域内に含まれるLEDの平均的な明るさ(点灯しているLED数÷領域内のLEDの総個数)を求め、その値が、F1(q)であるかF0(q)であるかを判断し、R(t,i1,i2,…,iq)の値を求めることができる。
【0371】
さらに、t’をP(t’)の倍数とすると、R(t’,i1,i2,…,iq)=1なら、t=t’−P(q)+1からt’の間は、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内では、常にF1(q)の割合でLEDが点灯している。また、R(t’,i1,i2,…,iq)=0なら、t=t’−P(q)+1からt’の間は、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内では、常にF0(q)の割合でLEDが点灯している。このことから、受信装置200のカメラ201でt=t’−P(q)+1からt’まで露光し続けた1枚の画像、あるいは、それより細かい間隔でt=t’−P(q)+1からt’まで連続撮影し続けた複数画像の平均値を使い、t=t’−P(q)+1からt’までのS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合を求めることで、任意の時刻tにおけるR(t,i1,i2,…,iq)の値を求めることができる。
【0372】
このように、2次元発光部103の各LEDの点滅パターンへのデータのマッピング方法としては、上述した条件21、22、23、24及び21’を満たす方法以外にも、以下のような条件を満たすマッピング方法が考えられる。
【0373】
条件31:
t’はP(q)の倍数とし、R(t’,i1,i2,…,iq−1)=1の場合、Lqビットの入力データに対して、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定する。但し、任意のLqビットの入力データに対応する組み合わせパターン{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}のHq×Vq個からなる要素のうち、1であるものの数は、少なくとも1つ以上あるとする。また、Lqビットの入力データの値が違えば、上記{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンも異なるようにする。
【0374】
ここで、Lqは1以上の定数であり、Lqビットの入力データとは第qの情報の中のLqビット分のデータのことである。Lqビットの入力データに対して、{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の組み合わせパターンを決定するという対応関係を、「露出時間を考慮した第qの場合のマッピング表」と呼ぶことにする。そして、この確定した値R(t’,i1,i2,…,iq−1,iq)を、R(t’−P(q)+1,i1,i2,…,iq−1,iq)、R(t’−P(q)+2,i1,i2,…,iq−1,iq)、…、R(t’−1,i1,i2,…,iq−1,iq)のすべてにコピーする。但し、P(q)=1のときは、コピーする対象がないので、コピーする必要はない。
【0375】
条件32:
R(t,i1,i2,…,iq−1)=0の場合、R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)は、すべて0とする。したがって、{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を使って、第qの情報は伝送しない。
【0376】
但し、q=1の場合、対応する1つ上の階層がないので、この場合は、条件32は無視して条件31を満たすようなマッピング表とする。すなわち、以下の条件31’を満たす。
【0377】
条件31’(q=1の場合):
Lq(すなわち、L1)ビットの入力データに対して、t’はP(1)の倍数とし、{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の組み合わせパターンを決定する。但し、任意のL1ビットの入力データに対応する組み合わせパターン{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}のH1×V1個からなる要素のうち1であるものの数は、少なくとも1つ以上あるとする。また、L1ビットの入力データの値が違えば、上記{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の組み合わせパターンも異なるようにする。
【0378】
ここで、L1は1以上の定数であり、L1ビットの入力データとは第1の情報の中のL1ビット分のデータのことである。L1ビットの入力データに対して、{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の組み合わせパターンを決定するという対応関係を、「露出時間を考慮した第1の場合のマッピング表」と呼ぶことにする。そして、この確定した値R(t’,i1)を、R(t’−P(1)+1,i1)、R(t’−P(1)+2,i1)、…、R(t’−1,i1)のすべてにコピーする。但し、P(1)=1のときは、コピーする対象がないので、コピーする必要はない。
【0379】
上述した条件31、条件32、及び条件31’を満たすマッピング方法は複数考えられるが、それらの中から1つの方法を選び、それをエンコーダ101及びデコーダ203で共通に使用する。
【0380】
また、条件31、条件32、及び条件31’を満たすマッピング方法により、第1から第Qまでの情報から、R(t,i1)やR(t,i1,i2)や、…、R(t,i1,i2,…,iQ)が決定される。
【0381】
ここで、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合について考えてみる。
【0382】
あるq(q=1、…、Q−1)に対して、任意のi1(i1=1、2、…、H1×V1)、任意のi2(i1=1、2、…、H1×V1)、…、任意のiq(iq=1、2、…、Hq×Vq)、及び任意の時刻t(t=1、2、…、T)において、R(t,i1,i2,…,iq)=0なら、条件32より、R(t,i1,i2,…,iq,iq+1)は、すべて0である。したがって、R(t,i1,i2,…,iq)=0なら、任意のiq+1(iq+1=1、2、…、Hq+1 × Vq+1)、任意のiq+2(iq+1=1、2、…、Hq+2 ×Vq+2)、…、任意のiQ(iQ=1、2、…、HQ × VQ)により示されるR(t,i1,i2,…,iQ)は0である。時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合は常に0である。この値をF0(q)とする。
【0383】
あるq(q=1、…、Q−1)に対して、任意のi1(i1=1、2、…、H1×V1)、任意のi2(i1=1、2、…、H1×V1)、…、任意のiq(iq=1、2、…、Hq×Vq)、及び、任意の時刻tにおいて、R(t’,i1,i2,…,iq)=1なら、すべてのt"(t’−P(q)+1≦t"≦t’)に対してR(t",i1,i2,…,iq)=1である。ここで、t’はP(q)の倍数であり、且つ、t’−P(q)+1≦t≦t’である。そして、P(q)はP(q+1)の倍数であることと、条件31より、少なくとも1つのR(t,i1,i2,…,iq,iq+1)は1である。さらに、そのR(t,i1,i2,…,iq,iq+1)を考えると、P(q+1)はP(q+2)の倍数であることと、条件31より、少なくとも1つのR(t,i1,i2,…,iq,iq+1,iq+2)は1である。
【0384】
これを繰り返すことで、R(t,i1,i2,…,iq)=1なら、少なくとも1つのiq+1(iq+1=1、2、…、Hq+1 × Vq+1)、少なくとも1つのiq+2(iq+1=1、2、…、Hq+2 × Vq+2)、…、少なくとも1つのiQ(iQ=1、2、…、HQ × VQ)により示されるR(t,i1,i2,…,iQ)は1である。これは、時刻tにおいてS(t,i1,i2,…,iQ)で示される1×1個のLEDが点灯していることを意味する。換言すれば、R(t,i1,i2,…,iq)=1なら、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDが点灯している割合は、常に一定とは限らないが、少なくとも0を超えていることは確かである。この値をF1(q)とする。
【0385】
したがって、このような条件でマッピング方法を決めても、F1(q)>F0(q)である。そして、F0(q)=0であるから、受信装置200側では、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内のLEDの点灯している割合が0であるか又は0を越えるかで、R(t,i1,i2,…,iq)を判定することができる。しかも、t’をP(q)の倍数とすると、R(t’,i1,i2,…,iq)=1なら、t=t’−P(q)+1からt’の間は常に0でない割合で、時刻tにおいてS(t,i1,i2,…,iq)で示される領域内でLEDは点灯している。つまり、t=t’−P(q)+1からt’の間は、常に少なくとも1つのLEDは点灯している(ある特定の1つのLEDがt=t’−P(q)+1からt’の間、点灯し続けている場合もある。また、複数のLEDが時間ごとに点灯したり消灯したりしていて、どの時刻においても少なくとも1つは点灯しているという場合もある)。
【0386】
この場合の送信装置100のエンコーダ101が行う処理は、図29及び図30〜図32を参照しながら説明した前述の処理とほぼ同じである。但し、図30のステップS123と図31ステップS128に相当する処理が相違する。
【0387】
この場合のステップS123に相当するサブルーチンでは、第1の情報の先頭からL1ビットを取り出し、第1の場合のマッピング表を参照して、そのL1ビットに対応する組み合わせパターンを求め、そのパターンを{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}の値とする。すなわち、R(t’,1)、R(t’,2)、…、R(t’,H1×V1)の値を確定させる。そして、各i1(i1=1、2、…、H1×V1)に対してこれら確定されたR(t’,i1)を、R(t’−P(1)+1,i1)、R(t’−P(1)+2,i1)、…、R(t’−1,i1)のすべてにコピーする。但し、P(1)=1のときは、コピーする対象がないので、コピーする必要はない。ここで読み出された第1の情報の先頭N1ビットは破棄され、次のビットが先頭に繰上げされる。
【0388】
また、この場合のステップS128では、現在のt’、i1、i2、…、iq−1により指定されるR(t’,i1,i2,…,iq−1)の値を判別する。
【0389】
R(t’,i1,i2,…,iq−1)が1なら、第qの情報の先頭からLqビットを取り出し、露出時間を考慮した第qの場合のマッピング表を参照して、そのLqビットに対応する組み合わせパターンを求め、そのパターンを{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}の値とする。すなわち、R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)の値を確定させる。そして、各iq(iq=1、2、…、Hq×Vq)に対してこれら確定されたR(t’,i1,i2,…,iq−1,iq)を、R(t’−P(q)+1,i1,i2,…,iq−1,iq)、R(t’−P(q)+2,i1,i2,…,iq−1,iq)、…、R(t’−1,i1,i2,…,iq−1,iq)のすべてにコピーする。但し、P(q)=1のときは、コピーする対象がないので、コピーする必要はない。ここで読み出された第qの情報の先頭Lqビットは破棄され、次のビットが先頭に繰上げされる。
【0390】
R(t’,i1,i2,…,iq−1)が0なら、R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)は、すべて0とする。ここで、tは、t’−P(q)+1からt’までの値すべてである。第qの情報の先頭ビットは破棄されない。
【0391】
また、この場合の受信装置200のデコーダ203が行なう処理は、図33、図34及び図35〜図37を参照しながら説明した前述の処理と同じである。但し、図34のステップS151と、図35のステップS163、図36のステップS168に相当する処理が相違する。
【0392】
この場合のステップS151に相当するサブルーチンでは、時刻t’においてS(t’,i1,i2,…,iq)で示される領域内でLEDが点灯している割合が0でないか、あるいは0であるかを判別する。そして、LEDが点灯している割合が0でない場合にはステップS152に進むが、0である場合にはステップS153に進む。
【0393】
また、この場合のステップS163に相当するサブルーチンでは、パターン{R(t’,1)、R(t’,2)、…、R(t’,H1×V1)}から、露出時間を考慮した第1の場合のマッピング表を参照して、対応する第1の情報のL1ビット分のデータを確定させる。このL1ビット分のデータは、受信装置200内の第1の情報を逐次格納していくメモリ(図示しない)の最後尾に付け加える。
【0394】
また、この場合のステップS168に相当するサブルーチンでは、現在のt’、i1、i2、…、iq−1により指定されるR(t’,i1,i2,…,iq−1)の値を判断する。
【0395】
ここで、R(t’,i1,i2,…,iq−1)が1なら、パターン{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}から、露出時間を考慮した第qの場合のマッピング表を参照して、対応する第qの情報のLqビット分のデータを確定させる。このLqビット分のデータは、受信装置200内の第qの情報を逐次格納していくメモリの最後尾に付け加える。
【0396】
R(t’,i1,i2,…,iq−1)が0なら、パターン{R(t’,i1,i2,…,iq−1,1)、R(t’,i1,i2,…,iq−1,2)、…、R(t’,i1,i2,…,iq−1,Hq×Vq)}は、すべて0であり、第qビットの情報は含まれていないので、第qの情報を逐次格納していくメモリの最後尾に付け加えるものは何もない。
【0397】
このようにして、上記条件31、条件32、及び条件31’を満たすマッピング方法を採用しても、送信装置100から発せられる第1から第Qまでの情報のうち第1から第qmaxまでの情報を受信装置200側で受信することができる。
【0398】
なお、本明細書中では、伝送データのエラー訂正について述べていないが、通信の分野では、パリティを付加してエラー訂正機能を加えることは一般的であり、既知であるので、その説明を省略した。つまり、本発明においても、発信したい情報にパリティを加えて、受信装置200側でエラー訂正できるようにしてもよい。
【0399】
また、上述した本実施形態では、2次元発光部103は複数のLEDを配列して構成されているが、この他の発光素子を用いてもよいことは言うまでもない。
【0400】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0401】
【発明の効果】
以上詳記したように、本発明によれば、光の点滅パターンで表現した光学的信号により転送されるデータを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【0402】
また、本発明によれば、2次元マトリックス状に配置された光源の点滅パターンで表現される転送データを好適に符号化及び復号化することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【0403】
また、本発明によれば、2次元マトリックス状に配置された光源の点滅パターンで表現されるデータを距離に応じたビットレートで転送することができるように符号化及び復号化して、距離にロバストなデータ通信を実現することができる、優れたデータ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【0404】
本発明によれば、複数のLEDが2次元平面上に配列してなる2次元発光部が出力する2次元点滅パターンの空間を複数の解像度レベルに分解して、各解像度空間にデータをマッピングするようにした。したがって、送信装置から離れていて解像度が十分でない受信装置は低解像度空間にマッピングされた2次元点滅パターンを読み取ることができ、また、送信装置に近づいて解像度が十分な受信装置はより高解像度の空間にマッピングされた2次元点滅パターンを読み取ることができる。これによって、ユーザは、送信装置から離れている場所からでもある程度の情報を得ることができ、近づいてより詳細な情報を得るべきかそうでないかを判断することができる。
【0405】
本発明によれば、ある階層の情報を送るために使われる複数のLEDより成る組に着目すると、それらLEDのうち点灯している割合は、その階層の情報によって確定されるように送信装置側で決定される。そして、受信装置側では、複数のLEDよりなる組に着目して、それらLEDのうち点灯している割合を求めることで、その階層の情報を復元することができる。つまり、送信装置の2次元点滅パターンとして空間方向において低周波数(複数のLEDの点灯の平均値)と高周波数(1つのLEDの点灯)とに分け、ある情報に関しては低周波数部分を使い、別の情報に関しては高周波数部分を使うようにして伝送している。これにより、送信装置(発信源)と受信装置との距離が遠い場合でも、低周波数部分の情報を受け取ることができる。
【0406】
さらに、送信装置側では各階層毎に時間を制御できるようにした。つまり、送信側が低周波数部分を低速(P(q):qは比較的小さい値)で送信することができるので、受信側では、露光時間を長くとり、P(q)単位で撮影することが可能である。これにより、遠く離れているために受信装置側のカメラが露光不足になりがちな場合にでも、低周波数部分の情報の送受信が可能となる。
【図面の簡単な説明】
【図1】光学的信号を使用するデータ通信システム10の基本的構成を模式的に示した図である。
【図2】2次元の点滅パターンにより光学的信号を送受信するデータ通信システムの構成を模式的に示した図である。
【図3】2次元発光部103を斜めから撮影した場合の画像を示した図である。
【図4】2次元発光部103を斜めから撮影した場合の画像に2次元アフィン変換を施して正面画像を生成した結果を示した図である。
【図5】第1の解像度空間の構成を示した図である。
【図6】4ブロックを用いたデータのマッピング方法を示した図である。
【図7】第2の解像度空間の構成を示した図である。
【図8】第2の解像度空間にデータをマッピングした様子を示した図である。
【図9】第3の解像度空間の構成を示した図である。
【図10】図8に示した第1及び第2の解像度空間のマッピング・パターンを満たすように、第3の解像度空間でデータのマッピングを行なった様子を示した図である。
【図11】図10に示した第1及び第2の解像度空間のマッピング・パターンを満たすように、第4の解像度空間でデータのマッピングを行なった様子を示した図である。
【図12】時刻tにおいて第1の情報を構成するLEDの組み合わせS(t,1),S(t,2),S(t,3),S(t,4)の定義を示した図である。
【図13】時刻tにおいて第2の情報を構成するLEDの組み合わせS(t,1,1),S(t,1,2)…の定義を示した図である。
【図14】時刻tにおいて第3の情報を構成するLEDの組み合わせS(t,1,1,1),S(t,1,1,2)…の定義を示した図である。
【図15】時刻tにおいて第4の情報を構成するLEDの組み合わせS(t,1,1,1,1),S(t,1,1,1,2)…の定義を示した図である。
【図16】F1(q)とF0(q)を求めるための処理手順を示したフローチャートである。
【図17】送信装置100のエンコーダ103が行なう処理手順を示したフローチャートである。
【図18】ステップS12において実行される処理の詳細を示したフローチャートである。
【図19】ステップS12において実行される処理の詳細を示したフローチャートである。
【図20】ステップS12において実行される処理の詳細を示したフローチャートである。
【図21】受信装置200内のデコーダ203における2次元点滅パターンをデコードする処理手順を示したフローチャートである。
【図22】2次元発光部103の撮影画像からR(t,i1,i2,…,iq−1,iq)を決定するための処理手順を示したフローチャートである。
【図23】与えられたqに対して、R(t,i1,i2,…,iq−1,iq)から第qの情報を決定するための処理手順を示したフローチャートである。
【図24】与えられたqに対して、R(t,i1,i2,…,iq−1,iq)から第qの情報を決定するための処理手順を示したフローチャートである。
【図25】与えられたqに対して、R(t,i1,i2,…,iq−1,iq)から第qの情報を決定するための処理手順を示したフローチャートである。
【図26】受信装置200内のエンコーダ203で実行される処理手順を示したフローチャートである。
【図27】受信装置200内のエンコーダ203で実行される処理手順を示したフローチャートである。
【図28】受信装置200側のデコーダ203によって実行される処理手順を示したフローチャートである。
【図29】送信装置100側のエンコーダ101によって実行される処理手順をフローチャートである。
【図30】与えられたqに対して第qの情報から{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を決定するための詳細な処理手順を示したフローチャートである。
【図31】与えられたqに対して第qの情報から{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を決定するための詳細な処理手順を示したフローチャートである。
【図32】与えられたqに対して第qの情報から{R(t,i1,i2,…,iq−1,1)、R(t,i1,i2,…,iq−1,2)、…、R(t,i1,i2,…,iq−1,Hq×Vq)}を決定するための詳細な処理手順を示したフローチャートである。
【図33】受信装置200のデコーダ203が実行する処理手順を示したフローチャートである。
【図34】与えられたqに対して2次元発光部103の撮影画像からR(t,i1,i2,…,iq−1,iq)を決定するための詳細な処理手順を示したフローチャートである。
【図35】与えられたqに対して、R(t’,i1,i2,…,iq−1,iq)から第qの情報を決定するための詳細な処理手順を示したフローチャートである。
【図36】与えられたqに対して、R(t’,i1,i2,…,iq−1,iq)から第qの情報を決定するための詳細な処理手順を示したフローチャートである。
【図37】与えられたqに対して、R(t’,i1,i2,…,iq−1,iq)から第qの情報を決定するための詳細な処理手順を示したフローチャートである。
【符号の説明】
100…送信装置
101…エンコーダ
102…入力端子
103…2次元発光部
200…受信装置
201…カメラ
202…射影変換部
203…デコーダ
Claims (23)
- 2次元画像空間上にデータをマッピングするデータ符号化装置であって、
前記2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段と、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手段と、
を具備することを特徴とするデータ符号化装置。 - 前記データ・マッピング手段は、低解像度の画像空間にマッピングされたデータのパターンを満たすようにより高解像度の画像空間へのデータのマッピングを行なう、
ことを特徴とする請求項1に記載のデータ符号化装置。 - 前記2次元画像空間は複数の発光素子を2次元平面上に配列して構成され、
前記データ・マッピング手段は、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする(但し、j<kであればnj<nkとする)、
ことを特徴とする請求項1に記載のデータ符号化装置。 - 前記データ・マッピング手段は、符号化対象データのサイズに応じてマッピングすべき画像空間の解像度を決定する、
ことを特徴とする請求項1に記載のデータ符号化装置。 - 2次元画像空間上にデータをマッピングするデータ符号化方法であって、
前記2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解ステップと、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング・ステップと、
を具備することを特徴とするデータ符号化方法。 - 2次元画像空間上にマッピングされたデータを解読するデータ復号化装置であって、
前記2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解手段と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元手段と、
を具備することを特徴とするデータ復号化装置。 - 前記データ復元手段は、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元する(但し、j<kであればnj<nkとする)、
ことを特徴とする請求項6に記載のデータ復号化装置。 - 2次元画像空間上にマッピングされたデータを解読するデータ復号化方法であって、
前記2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解ステップと、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元ステップと、
を具備することを特徴とするデータ復号化方法。 - 光学的信号の形式でデータを送出するデータ送信装置であって、
複数の発光素子を2次元平面上に配列してなる2次元発光手段と、
前記2次元発光手段の各発光素子の点滅により構成される2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手段と、
各解像度の画像空間に対してそれぞれ送信データをマッピングするデータ・マッピング手段を具備し、
前記データ・マッピング手段によりマッピングされた点滅パターンを前記2次元発光手段の各発光素子を用いて出力する、
ことを特徴とするデータ送信装置。 - 前記データ・マッピング手段は、低解像度の画像空間にマッピングされたデータのパターンを満たすようにより高解像度の画像空間へのデータのマッピングを行なう、
ことを特徴とする請求項9に記載のデータ送信装置。 - 前記データ・マッピング手段は、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータをマッピングする(但し、j<kであればnj<nkとする)、
ことを特徴とする請求項9に記載のデータ送信装置。 - 前記データ・マッピング手段は、送信データのサイズに応じてマッピングすべき画像空間の解像度を決定する、
ことを特徴とする請求項9に記載のデータ送信装置。 - 前記データ・マッピング手段によりマッピングされた点滅パターンの表示時間を各解像度の画像空間毎に異ならせる、
ことを特徴とする請求項9に記載のデータ送信装置。 - より低解像度の画像空間ほど点滅パターンの表示時間を長くする、
ことを特徴とする請求項13に記載のデータ送信装置。 - 光学的信号の形式で送出されたデータを受信するデータ受信装置であって、
2次元平面上に展開された光の点滅パターンを撮影する撮影手段と、
前記撮影手段により撮影された2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解手段と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復号化手段と、
を具備することを特徴とするデータ受信装置。 - 前記撮影手段により撮影された2次元画像空間を射影変換する射影変換手段をさらに備える、
ことを特徴とする請求項15に記載のデータ受信装置。 - 前記データ復元手段は、i番目の解像度を持つ画像空間ではni個の発光素子からなる領域毎における点灯する発光素子の割合を用いてデータを復元する(但し、j<kであればnj<nkとする)、
ことを特徴とする請求項15に記載のデータ受信装置。 - 前記撮影手段は、点滅パターンの撮影時間を各解像度の画像空間毎に異ならせる、
ことを特徴とする請求項15に記載のデータ受信装置。 - 前記撮影手段は、より低解像度の画像空間ほど点滅パターンの表示時間を長くする、
ことを特徴とする請求項15に記載のデータ受信装置。 - 2次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、前記コンピュータ・システムに対し、
前記2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手順と、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手順と、
を実行させることを特徴とする記憶媒体。 - 2次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、前記コンピュータ・システムに対し、
前記2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解手順と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元手順と、
を実行させることを特徴とする記憶媒体。 - 2次元画像空間上にデータをマッピングするデータ符号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータ・システムに対し、
前記2次元画像空間を解像度が異なる複数の画像空間に分解する空間分解手順と、
各解像度の画像空間に対してそれぞれデータをマッピングするデータ・マッピング手順と、
を実行させることを特徴とするコンピュータ・プログラム。 - 2次元画像空間上にマッピングされたデータを解読するデータ復号化処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、前記コンピュータ・システムに対し、
前記2次元画像空間を1以上の異なる解像度の画像空間に分解する空間分解手順と、
分解された各解像度の画像空間毎にマッピングされているデータを復号化するデータ復元手順と、
を実行させることを特徴とするコンピュータ・プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002140623A JP4110514B2 (ja) | 2002-05-15 | 2002-05-15 | データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラム |
US10/437,792 US6750790B2 (en) | 2002-05-15 | 2003-05-14 | Data-encoding apparatus, data-encoding method, data-decoding apparatus, data-decoding method, data-transmitting apparatus, data-receiving apparatus, data storage medium and computer programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002140623A JP4110514B2 (ja) | 2002-05-15 | 2002-05-15 | データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003332900A JP2003332900A (ja) | 2003-11-21 |
JP2003332900A5 JP2003332900A5 (ja) | 2005-09-29 |
JP4110514B2 true JP4110514B2 (ja) | 2008-07-02 |
Family
ID=29701459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002140623A Expired - Fee Related JP4110514B2 (ja) | 2002-05-15 | 2002-05-15 | データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6750790B2 (ja) |
JP (1) | JP4110514B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100818392B1 (ko) * | 2004-05-31 | 2008-04-02 | 가시오게산키 가부시키가이샤 | 정보수신장치, 정보전송장치, 정보수신방법 및 기록매체 |
US20090052902A1 (en) * | 2005-04-12 | 2009-02-26 | Pioneer Corporation | Communication System, Communication Apparatus and Method, and Computer Program |
US7796837B2 (en) * | 2005-09-22 | 2010-09-14 | Google Inc. | Processing an image map for display on computing device |
WO2007089738A2 (en) * | 2006-01-26 | 2007-08-09 | The Regents Of The University Of Michigan | Microelectrode with laterally extending platform for reduction of tissue encapsulation |
DE102007043255B4 (de) * | 2007-09-11 | 2016-09-22 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Aussendung von Daten |
US8913144B2 (en) | 2012-12-27 | 2014-12-16 | Panasonic Intellectual Property Corporation Of America | Information communication method |
JP5812445B2 (ja) * | 2013-08-23 | 2015-11-11 | Necプラットフォームズ株式会社 | 信号測定システムおよび信号測定方法 |
CN107301835B (zh) * | 2016-04-13 | 2019-09-17 | 群创光电股份有限公司 | 发光二极管显示器 |
JP2021131234A (ja) * | 2020-02-18 | 2021-09-09 | 富士フイルムビジネスイノベーション株式会社 | 発光装置およびプログラム |
US20220130091A1 (en) * | 2020-10-23 | 2022-04-28 | Stack's-Bowers Numismatics, Llc | Systems and methods for simulating animation of an object |
US11893698B2 (en) * | 2020-11-04 | 2024-02-06 | Samsung Electronics Co., Ltd. | Electronic device, AR device and method for controlling data transfer interval thereof |
US20220245380A1 (en) * | 2021-02-04 | 2022-08-04 | Skyway Technologies Corp. | Light identification system for unmanned aerial vehicles |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6173424A (ja) * | 1984-09-19 | 1986-04-15 | Hitachi Ltd | 2値デ−タ変換方式 |
US6384744B1 (en) * | 1998-09-11 | 2002-05-07 | Digital:Convergence Corp. | Method and system for data transmission from an optical reader |
-
2002
- 2002-05-15 JP JP2002140623A patent/JP4110514B2/ja not_active Expired - Fee Related
-
2003
- 2003-05-14 US US10/437,792 patent/US6750790B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003332900A (ja) | 2003-11-21 |
US6750790B2 (en) | 2004-06-15 |
US20040004627A1 (en) | 2004-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11132818B2 (en) | Predicting attributes for point cloud compression according to a space filling curve | |
JP4110514B2 (ja) | データ符号化装置及び方法、データ復号化装置及び方法、データ送信装置、データ受信装置、記憶媒体、並びにコンピュータ・プログラム | |
JP3918813B2 (ja) | データ通信システム、データ送信装置、並びにデータ受信装置 | |
US20210295566A1 (en) | Projection-based mesh compression | |
Yuan et al. | Dynamic and invisible messaging for visual MIMO | |
US7502053B2 (en) | Information-processing device and information-processing system | |
JP4980633B2 (ja) | 画像表示装置、受信装置、画像表示制御方法およびデータ受信方法 | |
CN104541308A (zh) | 使用多边形的3d网格和对应纹理对图像进行编码 | |
JP2003323239A (ja) | 情報処理装置及び情報処理方法、記憶媒体、並びにコンピュータ・プログラム | |
JP4303087B2 (ja) | データ信号の送信方法と受信方法及びその装置、システム、プログラム並びに記録媒体 | |
US10586394B2 (en) | Augmented reality depth sensing using dual camera receiver | |
JP2022519462A (ja) | ホモグラフィ変換を使用した点群符号化 | |
US20040001074A1 (en) | Image display apparatus and method, transmitting apparatus and method, image display system, recording medium, and program | |
CN105611274A (zh) | 一种三维图像数据的传输方法、装置及三维成像系统 | |
JP4288904B2 (ja) | データ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法 | |
CN116341586B (zh) | 扫码方法、电子设备及存储介质 | |
CN114663810B (zh) | 基于多模态的物体图像增广方法及装置、设备及存储介质 | |
CN113947097B (zh) | 一种二维码识别的方法及电子设备 | |
Kishino et al. | Realizing a visual marker using LEDs for wearable computing environment | |
TW202221655A (zh) | 修改三維模型的方法及電子設備 | |
CN113938667A (zh) | 基于视频流数据的视频数据传输方法、装置及存储介质 | |
CN113938666A (zh) | 基于关键帧的视频数据传输方法、装置及存储介质 | |
KR101625751B1 (ko) | 바운더리 코드를 포함하는 ar 마커 장치, 이를 이용한 ar 제공 시스템 및 방법 | |
KR20180046388A (ko) | 광학 카메라 통신을 이용하는 포인팅 방법 및 장치 | |
CN116486008B (zh) | 一种三维重建方法、显示方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050428 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080314 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080327 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130418 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130418 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140418 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |