(57)【要約】【課題】  機器が相互に通信する通信プロトコルにおいて、効率的にデータを転送するデバイス、情報処理装置、方法およびプログラムを提供すること。【解決手段】  デバイス間を相互に通信するプロトコルによってデータを転送するデバイスであって、データを解析しヘッダを生成するヘッダ生成部３０１と、ヘッダに基づいて符号化するための疑似乱数の発生方式を選択する送信ヘッダ認識部３０２と、符号化するための疑似乱数に基づいてデータを符号化する符号化部３０３と、符号化したデータとヘッダを送信する送信部３０４と、送信されたデータおよびヘッダを受信する受信部４０１と、受信したヘッダに基づいて復号化するための疑似乱数の発生方式を選択する受信ヘッダ認識部４０２と、復号化するための疑似乱数に基づいて符号化したデータを復号化する復号化部４０３とを含む。【選択図】  図５
2017200026.tif 000002
【特許請求の範囲】
【請求項１】
デバイス間を相互に通信するプロトコルによってデータを転送するデバイスであって、
前記データを解析し、ヘッダを生成する手段と、
前記ヘッダに基づいて、符号化するための疑似乱数の発生方式を選択する手段と、
前記符号化するための疑似乱数に基づいて、前記データを符号化する手段と、
前記符号化したデータと、前記ヘッダを送信する手段と、
前記送信された前記データおよび前記ヘッダを受信する手段と、
前記受信した前記ヘッダに基づいて、復号化するための疑似乱数の発生方式を選択する手段と、
前記復号化するための疑似乱数に基づいて、前記符号化したデータを復号化する手段と
を含むデバイス。
【請求項２】
前記疑似乱数の発生方式は、符号化後のビットスタッフィングが少なくなる方式を選択する
請求項１に記載のデバイス。
【請求項３】
前記符号化後のビットスタッフィングが少なくなる方式は、ヒストグラムに基づいて統計的に選択される
請求項２に記載のデバイス。
【請求項４】
前記ヘッダは、ＣＰＵからのアクセスが可能であるレジスタによって生成される
請求項１〜３のいずれか１項に記載のデバイス。
【請求項５】
前記符号化するための疑似乱数は、ＦＰＧＡ、ＳＲＡＭテーブル、シフトレジスタのいずれかによって発生される
請求項１〜４のいずれか１項に記載のデバイス。
【請求項６】
前記復号化するための疑似乱数は、前記符号化するための疑似乱数と同じ手段で発生される
請求項５に記載のデバイス。
【請求項７】
請求項１〜６のいずれか１項に記載のデバイスを２以上含む情報処理装置。
【請求項８】
デバイス間を相互に通信するプロトコルによってデータを転送する方法であって、
前記データを解析し、ヘッダを生成するステップと、
前記ヘッダに基づいて、符号化するための疑似乱数の発生方式を選択するステップと、
前記符号化するための疑似乱数に基づいて、前記データを符号化するステップと、
前記符号化したデータと、前記ヘッダを送信するステップと、
前記送信された前記データおよび前記ヘッダを受信するステップと、
前記受信した前記ヘッダに基づいて、復号化するための疑似乱数の発生方式を選択するステップと、
前記復号化するための疑似乱数に基づいて、前記符号化したデータを復号化するステップと
を含む方法。
【請求項９】
デバイスを、請求項８に記載の手段として機能させる、装置実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス、情報処理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
データの転送には、ＵＳＢ（Universal Serial Bus）やＣＡＮ（Controller Area Network）のようなシリアル通信が用いられている。例えば、ＣＡＮ  Ｉ／Ｆでは、ＮＲＺ（Non Return Zero）プロトコルのシリアルバスが用いられており、図８（ａ）のように、転送するデータの符号が「０」の場合は、データ端子は０Ｖを出力し、転送するデータの符号が「１」の場合は、データ端子は＋１Ｖを出力する。
【０００３】
このとき、シリアル通信系を構成する各ノードは、異なるクロックで動作していることから、データの転送元ノードと転送先ノードでクロックの同期を取る必要があり、データの符号が「１」から「０」に変化するタイミングで同期を取ることができる。
【０００４】
しかしながら、図８（ｂ）のように、データを転送する際に同じ符号が連続すると、ノード間の同期が取れなくなり、正しくデータを転送できなくなる虞がある。これを回避するために、ＣＡＮ  Ｉ／Ｆでは、同じ符号が５以上連続したデータが発生した場合に、図８（ｃ）のように、符号が反転したスタッフビットを挿入する、ビットスタッフィングと呼ばれる処理を行う。
【０００５】
しかしながら、ビットスタッフィングを行うと、６クロックの時間で５ビットしかデータが転送できず、最悪の場合では、転送効率が約８３％（５ビット／６クロック）まで低下する。このようにビットスタッフィングを行うと、データ量が大きくなり、転送に時間がかかる。
【０００６】
効率的にデータを転送する技術として、特開２０１０−１３５８８６（特許文献１）では、制御部から操作部へのＵＳＢバスを介した画像データの転送に際して、画像データに基づいて、スタッフビットが少なくなる符号化方式を選択する技術が開示されている。
【０００７】
特許文献１によれば、図９（ａ）のようなデータ列を転送する際に、転送元ノードにおいて、スタッフビットが少なくなる符号化方式を選択し、各符号化方式に対応したデータ変換ヘッダ９０１を付与する。転送元ノードと、転送先ノードは、共通のデータ変換ヘッダ対応表９０３（図９（ｂ））を持っており、データ変換ヘッダ９０１を認識することで、転送データ９０２の変換方式を選択でき、ビットスタッフィングを低減することができる。
【０００８】
ところで、データの転送には、目的や用途に応じたプロトコルがあり、例えば、自動車の車載機器では、ＣＡＮのように機器が相互に通信するプロトコルが用いられているケースがある。しかしながら、特許文献１では、機器が相互に通信する通信プロトコルに対応した構成となっていない。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記従来技術における課題に鑑みてなされたものであり、機器が相互に通信する通信プロトコルにおいて、効率的にデータを転送するデバイス、情報処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
すなわち、本発明によれば、デバイス間を相互に通信するプロトコルによってデータを転送するデバイスであって、
前記データを解析し、ヘッダを生成する手段と、
前記ヘッダに基づいて、符号化するための疑似乱数の発生方式を選択する手段と、
前記符号化するための疑似乱数に基づいて、前記データを符号化する手段と、
前記符号化したデータと、前記ヘッダを送信する手段と、
前記送信された前記データおよび前記ヘッダを受信する手段と、
前記受信した前記ヘッダに基づいて、復号化するための疑似乱数の発生方式を選択する手段と、
前記復号化するための疑似乱数に基づいて、前記符号化したデータを復号化する手段と
を含むデバイスが提供される。
【発明の効果】
【００１１】
上述したように、本発明によれば、機器が相互に通信する通信プロトコルにおいて、効率的にデータを転送するデバイス、情報処理装置、方法およびプログラムが提供される。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における情報処理装置のハードウェアの概略構成を示す図。
【図２】本実施形態の車載ＨＵＤに含まれるハードウェア構成を示す図。
【図３】メインＣＰＵ部が画像データを転送する際の、データの流れを示す図。
【図４】操作部ユニットが画像データを表示する際の、データの流れを示す図。
【図５】本実施形態のＣＡＮデバイスに含まれるソフトウェアブロック図。
【図６】本実施形態の制御デバイスが実行する処理のフローチャート。
【図７】本実施形態の表示デバイスが実行する処理のフローチャート。
【図８】データ転送およびビットスタッフィングの例を示す図。
【図９】転送するデータ変換ヘッダおよび転送データの例を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜その説明を省略するものとする。以下の実施形態の説明では、機器が相互に通信する通信プロトコルを、ＣＡＮとして参照するが、ＣＡＮは本発明の一例であって、他の通信プロトコルであってもよい。
【００１４】
また、以下の実施形態の説明では、情報処理装置を、車載ＨＵＤ（Head Up Display）として参照するが、車載ＨＵＤは本発明の一例であって、他の情報処理装置であってもよい。
【００１５】
図１は、本発明の実施形態における車載ＨＵＤ１００のハードウェアの概略構成を示す図である。図１では、例として、複数のＣＡＮデバイス１０１が、ＣＡＮ１０２を介して接続された環境を例示している。
【００１６】
車載ＨＵＤ１００を構成するＣＡＮデバイス１０１は、一例として、ユーザからの操作を受け付ける操作デバイスや、ユーザに情報を提供する表示デバイスなどが挙げられる。なお、ＣＡＮデバイス１０１の台数は、図１に示したものに限らず、車載ＨＵＤ１００に含まれる台数に制限はない。
【００１７】
次に、車載ＨＵＤ１００の詳細なハードウェア構成について説明する。図２は、本実施形態の車載ＨＵＤ１００に含まれるハードウェア構成を示す図である。車載ＨＵＤ１００は、操作部ユニット２０１と、メインＣＰＵ部２０７とを含み、ＣＡＮ  Ｉ／Ｆ２０６で接続されている。
【００１８】
操作部ユニット２０１は、ＬＣＤ２０２と、操作部ＣＰＵ２０３と、タッチパネル２０４とを含み、操作部ＣＰＵ２０３は、ＣＡＮ  Ｉ／Ｆ  ＰＨＹ２０５を含む。また、メインＣＰＵ部２０７は、ＣＡＮ  Ｉ／Ｆ  ＰＨＹ２０８と、ＡＳＳＰ（Application Specific Standard Produce）２０９とを含む。以下に、各ハードウェアについて説明する。
【００１９】
ＬＣＤ２０２は、操作部ユニット２０１における、ＬＣＤ（Liquid Crystal Display）パネルであり、画像を表示することで、ユーザに情報を提供する。操作部ＣＰＵ２０３は、操作部ユニット２０１における、ＣＰＵであり、ＬＣＤパネルの画像表示や、タッチパネルの操作などを処理する。
【００２０】
タッチパネル２０４は、ユーザによるタッチ操作を受け付け、操作部ＣＰＵ２０３に操作情報を送信する。ＣＡＮ  Ｉ／Ｆ  ＰＨＹ２０５は、操作部ユニット２０１における、通信インターフェースであり、メインＣＰＵ部２０７とのデータの送受信を行う。
【００２１】
ＣＡＮ  Ｉ／Ｆ  ＰＨＹ２０８は、メインＣＰＵ部２０７における、通信インターフェースであり、操作部ユニット２０１とのデータの送受信を行う。ＡＳＳＰ２０９は、タッチパネルデータに対する処理や、ＬＣＤパネルに表示する画像の生成、転送を行う。
【００２２】
また、ハードウェア構成には、図２に示したハードウェア以外にも、ＣＡＮデバイスの機能を実現するためのハードウェアを含んでもよい。例えば、プログラムの実行空間を提供するためＲＡＭや、プログラムやデータなどを記憶するためのＲＯＭなどの記憶装置などを含んでもよい。
【００２３】
以上、本実施形態の車載ＨＵＤ１００に含まれるハードウェア構成について説明した。次に、本実施形態におけるデータの流れについて、図３および図４を以て説明する。なお、以下では、データを送信するデバイスをメインＣＰＵ部２０７、データを受信するデバイスを操作部ユニット２０１とし、メインＣＰＵ部２０７が操作部ユニット２０１に対して、画像データを転送し、表示する流れを例に説明する。
【００２４】
図３は、メインＣＰＵ部２０７が画像データを転送する際の、データの流れを示す図である。画像データは、ヘッダ生成部３０１、送信ヘッダ認識部３０２、符号化部３０３、送信部３０４を通って、操作部ユニット２０１へ送信される。以下に、各ブロックの機能について説明する。
【００２５】
ヘッダ生成部３０１は、本実施形態におけるヘッダ生成手段を構成する。ヘッダ生成部３０１は、画像データを解析し、解析した結果に基づいて、符号化した後にビットスタッフィングが少なくなる符号化方式に対応したヘッダを選択する。さらに、ヘッダ生成部３０１は、選択したヘッダを画像データの先頭に付与し、送信ヘッダ認識部３０２へ送る。なお、ヘッダと符号化方式の対応関係は、一例として、図９（ｂ）に示すデータ変換ヘッダ対応表９０３が挙げられる。
【００２６】
なお、ヘッダを生成する手段には、ＣＰＵからのアクセスが可能なレジスタを備えていてもよい。このように、ＣＰＵからヘッダを変更するアクセスが可能になることで、データのフレームごとに符号化方式を変更することが可能になり、ビットスタッフィングが少ない符号化方式を適宜選択することができる。
【００２７】
送信ヘッダ認識部３０２は、本実施形態における送信ヘッダ認識手段を構成する。送信ヘッダ認識部３０２は、データ列の先頭にあるヘッダを認識し、ヘッダに対応する符号化方式を取得し、データ列と併せて符号化部３０３へ送る。
【００２８】
符号化部３０３は、本実施形態における符号化手段を構成する。符号化部３０３は、データ列のうちヘッダ以外のデータ、すなわち画像データを符号化し、送信部３０４へ送る。
【００２９】
送信部３０４は、本実施形態における送信手段を構成する。送信部３０４は、ヘッダおよび符号化された画像データを、ＣＡＮプロトコルに則り、操作部ユニット２０１に転送する。転送されるデータは、図９（ａ）に例示するように、ヘッダのあとに転送データが続く構成である。
【００３０】
次に、受信デバイスでのデータの流れについて説明する。図４は、操作部ユニット２０１が画像データを表示する際の、データの流れを示す図である。画像データは、受信部４０１、受信ヘッダ認識部４０２、復号化部４０３、データ出力部４０４を通って、ＬＣＤ２０２で表示される。以下に、各ブロックの機能について説明する。
【００３１】
受信部４０１は、本実施形態における受信手段を構成する。受信部４０１は、メインＣＰＵ部２０７が送信したヘッダおよび符号化された画像データを受信し、これらのデータを受信ヘッダ認識部４０２へ送る。
【００３２】
受信ヘッダ認識部４０２は、本実施形態における受信ヘッダ認識手段を構成する。受信ヘッダ認識部４０２は、受信部４０１から送られたデータのうち、ヘッダを認識することで、画像データが如何なる方式で符号化されたかを認識し、ヘッダに対応する復号化方式を選択する。
【００３３】
復号化部４０３は、本実施形態における復号化手段を構成する。復号化部４０３は、受信ヘッダ認識部４０２が選択した復号化方式によって、受信したデータを復号化し、データ出力部４０４に送る。
【００３４】
データ出力部４０４は、本実施形態におけるデータ出力手段を構成する。データ出力部４０４は、受信データのうち、ヘッダ部分を削除することで、画像データを得る。画像データは、操作部ＣＰＵ２０３のメモリに蓄積された後、ＬＣＤ２０２に表示される。
【００３５】
以上、本実施形態におけるデータの流れについて説明した。ところで、本実施形態で用いる通信プロトコルは、機器間を相互に通信するプロトコルであることから、本実施形態におけるＣＡＮデバイス１０１は、送信・受信の両方の機能を有し、図３および図４に示す機能ブロックを含むことになる。そこで、図５には、本実施形態におけるＣＡＮデバイス１０１に含まれるソフトウェアブロック図を示す。
【００３６】
ＣＡＮデバイス１０１は、ヘッダ生成部３０１、送信ヘッダ認識部３０２、符号化部３０３、送信部３０４、受信部４０１、受信ヘッダ認識部４０２、復号化部４０３、データ出力部４０４、疑似乱数発生部５０１を含む。これらのソフトウェアブロックのうち疑似乱数発生部５０１以外は、図３および図４で示したため、詳細な説明は省略する。
【００３７】
疑似乱数発生部５０１は、本実施形態における疑似乱数発生手段を構成する。疑似乱数発生部５０１は、送信ヘッダ認識部３０２または受信ヘッダ認識部４０２が認識したヘッダに基づいて、符号化または復号化するための疑似乱数を発生させる。
【００３８】
なお、疑似乱数を発生する手段には、例えば、ＦＰＧＡ、ＳＲＡＭテーブル、シフトレジスタなどを使用することができ、これらの疑似乱数を発生する手段は、それぞれ以下の特徴を有する。
【００３９】
ＦＰＧＡで疑似乱数を発生する場合には、小さな回路規模で複数の変換方式を実現することができる。ＳＲＡＭテーブルで疑似乱数を発生する場合には、変換方式を自由に変更することができる。シフトレジスタで疑似乱数を発生する場合には、回路規模を小さくすることができる。
【００４０】
なお、図３〜５に示したソフトウェアブロックは、各デバイスのＣＰＵが本実施形態のプログラムを実行することにより、各ハードウェアを機能させることにより、実現される機能手段に相当する。また、図３〜５に示した機能手段は、全部がソフトウェア的に実現されても良いし、その一部または全部を同等の機能を提供するハードウェアとして実装することもできる。
【００４１】
以上、本実施形態のＣＡＮデバイス１０１に含まれるソフトウェアブロックについて図３〜５を以て説明した。次に、ＣＡＮデバイス１０１が実行する処理について図６および図７を以て説明する。なお、以下の実施形態の説明では、制御デバイスが転送した画像データを、表示デバイスが表示する場合を例に説明するが、これは本発明の一例であって、相互に通信するデバイスを含む他の情報処理装置であってもよい。
【００４２】
まず、送信側のデバイスが実行する処理について説明する。図４は、本実施形態の制御デバイスが実行する処理のフローチャートである。制御デバイスは、ステップＳ１０００から処理を開始し、ステップＳ１００１で、画像データを生成する。
【００４３】
次に、ステップＳ１００２で、画像データを解析して、符号化方式に対応するヘッダを生成する。符号化方式は、符号化後に同じ符号が連続しないようになる、すなわち、ビットスタッフィングが少なくなる方式を選択する。
【００４４】
ビットスタッフィングが少なくなる方式を選択する方法としては、例えば、符号化方式ごとに同じ符号が連続する分布をヒストグラム化し、該ヒストグラムから統計的に選択することができる。このようにヒストグラムを用いることで、ビットスタッフィングが多く発生する場合に、符号化方式を選択する処理を行うことができ、不要な処理を行わないようにできる
【００４５】
次に、ステップＳ１００３では、生成したヘッダを認識し、符号化方式を選択する。その後、ステップＳ１００４で、符号化するための疑似乱数を発生させる。さらに、ステップＳ１００５では、発生した疑似乱数によって、選択された符号化方式で、画像データを符号化する。
【００４６】
画像データを符号化した後、ステップＳ１００６で、表示デバイスに対して、ヘッダと符号化した画像データとを送信し、ステップＳ１００６で制御デバイスは処理を終了する。
【００４７】
次に、受信側のデバイスが実行する処理について説明する。図７は、本実施形態の表示デバイスが実行する処理のフローチャートである。表示デバイスは、ステップＳ２０００から処理を開始し、ステップＳ２００１で、制御デバイスが送信したヘッダと符号化した画像データとを受信する。
【００４８】
次に、ステップＳ２００２では、受信したデータ列のヘッダを認識し、該ヘッダに対応した復号化方式を選択し、その後、ステップＳ２００３で、復号化するための疑似乱数を発生させる。次に、ステップＳ２００４で、受信したデータ列を画像データに復号化する。さらにその後、表示デバイスは、ステップＳ２００５で画像データを画面上に表示し、ステップＳ２００６で処理を終了する。
【００４９】
以上、説明した実施形態によれば、機器が相互に通信する通信プロトコルにおいて、効率的にデータを転送するデバイス、情報処理装置、方法およびプログラムを提供することができる。
【００５０】
上述した本発明の実施形態の各機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等で記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭ等の装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００５１】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００５２】
１００…車載ＨＵＤ、１０１…ＣＡＮデバイス、１０２…ＣＡＮ、２０１…操作部ユニット、２０２…ＬＣＤ、２０３…操作部ＣＰＵ、２０４…タッチパネル、２０５…ＣＡＮ  Ｉ／Ｆ  ＰＨＹ、２０６…ＣＡＮ  Ｉ／Ｆ、２０７…メインＣＰＵ部、２０８…ＣＡＮ  Ｉ／Ｆ  ＰＨＹ、２０９…ＡＳＳＰ、３０１…ヘッダ生成部、３０２…送信ヘッダ認識部、３０３…符号化部、３０４…送信部、４０１…受信部、４０２…受信ヘッダ認識部、４０３…復号化部、４０４…データ出力部、５０１…疑似乱数発生部
【先行技術文献】
【特許文献】
【００５３】
【特許文献１】特開２０１０−１３５８８６
【図１】
2017200026.tif 000003
【図２】
2017200026.tif 000004
【図３】
2017200026.tif 000005
【図４】
2017200026.tif 000006
【図５】
2017200026.tif 000007
【図６】
2017200026.tif 000008
【図７】
2017200026.tif 000009
【図８】
2017200026.tif 000010
【図９】
2017200026.tif 000011