本発明は、電子情報を転送するための技術の改良に関する。以下の説明は、当業者が本発明を作り、使用することを可能とし、本出願及びそれの要求に関連して記載されている。開示されている実施例の様々な変更は、当業者にとって明らかであり、この点で、一般原則は、他の実施例に適用されてもよい。したがって、本発明は、示してある実施例に制限することを意図していないが、ここに開示されている原則及び特徴と適合する最大範囲と一致する。
本発明は、効果的に電子情報を転送するためのシステム及び方法を含み、パリティエンコーディング処理を実行するエンコーダを有する送信機を備える。エンコーダは、送信パケットに組み込むためのパリティブロックを生成する。パリティブロックは、一又は二以上の送信パケットからのデータセグメントに基づくことが可能である。また、システムは、デコーダを有する受信機を備える。そのデコーダは、パケットの有効性処理を実行するためにパリティブロックを利用し、送信パケットの中から破損しているパケットを識別する。デコーダは、データセグメント及びパリティブロックの内の選択したものを用いてパケットの再構築処理を効果的に実行する。これにより、破損しているパケットのためにデータセグメントを再構築する。
図1を参照すると、本発明の一実施例によるデータ送信システム110のブロックが示されている。図1の実施例において、データ送信システム110は、以下に限定しないが、送信機118及び受信機128を備える。他の実施例において、データ送信システム110は、図1の実施例とともに説明されている特定の構成要素及び構成に加えて、又は、それらに代えて、ある構成要素及び構成を用いることによって実装することができる。
データ送信システム110の図1の実施例において、送信機118は、任意かつ適切なデータ源から初期データ116を受信する。例として、初期データは、メモリ装置源からデジタル情報のパケットとして提供されてもよい。ある実施例において、データ送信システム110は、片方向無線テレビ放送システム又は配線接続されているテレビ放送システムとして実装されていてもよい。送信機118は、送信データ120として初期データ116を変調し、変調された初期データ116を出力する。その出力は、任意かつ適切なタイプの送信チャネルを通じて行われる。データ送信システム110の受信機126は、送信データ120を受信し、復調し、処理する。これにより、宛先となるメモリ装置のような、任意かつ適切なデータの宛先に最終データ138を提供する。
ある環境において、送信データ120は、上記送信プロセスの間に破損データとなり得る。しかしながら、特定のタイプの送信データ120を用いることで、デジタル情報の損失を無くすることができる。例えば、送信データ120がソフトウア命令などのようなバイナリファイルである場合、破損した任意のデジタル情報は、送信データ120を使用できない状態にする。この問題は、送信機118と受信機126との間の送信経路が片方向であるとき、より重要となる。それは、受信機126が、エラーについて送信機118に通知するこができないからであり、さらに、破損した送信データ120の再伝送を要求することができないからである。
したがって、本発明によって、送信機118は、適切なパリティ情報を送信データ120にエンコードする。受信機126は、エンコードされたパリティ情報を利用し、送信データ120を検証する。さらに、受信機126は、エンコードされたパリティ情報を用いて再構築処理を実行し、送信データ120の破損要素を効果的に再構築する。送信機118及び受信機126の実装及び利用に関する更なる詳細は、図2乃至図9とともに以下でさらに説明する。
図2を参照すると、本発明による図1における送信機118の一実施例についてのブロック図が示されている。図2の実施例において、送信機118は、以下に限定しないが、送信機中央処理ユニット(送信機用CPU)212、モジュレータ214、増幅器216、送信機用メモリ220、そして、一又は二以上の送信機用インプットインタフェース/アウトプットインタフェース(送信機用I/Oインタフェース)224を備える。他の実施例において、送信機118は、図2の実施例とともに説明されている特定の構成要素及び構成に加えて、又は、それらに代えて、ある構成要素及び構成を用いることによって実装することができる。
図2の実施例において、送信機用CPU212は、任意かつ適切なマイクロプロセッサ装置であって、互換性のあるマイクロプロセッサ装置を備えるよう実装することができる。そのマイクロプロセッサは、ソフトウエア命令を実行するのが好ましく、これにより、送信機118の動作を制御及び管理する。図2の実施例において、送信機用メモリ220は、所望のストレージ装置の任意の組み合わせを含むよう実装することができる。そのストレージ装置は、以下に限定しないが、読み取り専用メモリ(ROM)や、ランダムアクセスメモリ(RAM)、そして、フレキシブルディスク、メモリスティック、コンパクトディスク、ハードディスクなどのような様々なタイプの不揮発性メモリを含む。送信機用メモリ220の内容及び機能性は、図3とともに以下でさらに説明する。
図2の実施例において、送信機用I/Oインタフェース224は、一又は二以上のインプットインタフェース及び/又はアウトプットインタフェースを含むことができ、任意かつ必要なタイプの情報の受信及び/又は送信を送信機118によって行う。図2の実施例において、モジュレータ214は、初期データ116(図1)を変調し、変調したデータを生成することができ、増幅器216は、その変調データを増幅し、送信データ120(図1)を生成する。その送信データ120は、任意かつ効果的な手段によって送信機I/Oインタフェース224を介して受信機126(図1)に提供される。例えば、ある実施例において、増幅された送信データ120を適切な送信機用I/Oインタフェース224に接続されている送信用アンテナから無線で送信することができる。送信機118の実装及び利用は、図3、図7、及び、図8とともに以下でさらに説明する。
図3を参照すると、本発明による図2における送信機用メモリ220の一実施例についてのブロック図が示されている。図3の実施例において、送信機用メモリ220は、以下に限定しないが、送信機用アプリケーション312、エンコーダ316、送信機用バッファ320、多種多様なストレージ324を備えることができる。他の実施例において、送信機用メモリ220は、図3の実施例とともに説明されている特定の構成要素及び機能性に加えて、又は、それらに代えて、他の様々な構成要素及び機能性を含むことができる。
図3の実施例において、送信機用アプリケーション312は、プログラム命令を含むことができ、そのプログラム命令は、送信機118のための様々な機能及び動作を実行する送信機用CPU212(図2)によって実行されるのが望ましい。送信機用アプリケーション312の特定の性質及び機能性は、通常、対応する送信機118の特定のタイプ及び特有な機能性などのような要素に依存して変化する。図3の実施例において、送信機118は、パリティエンコーディング処理を実行するようエンコーダ316を利用することができる。そのパリティエンコーディング処理は、任意かつ効果的な技術を利用することによってパリティ情報のパリティブロックを生成する。
例えば、ある実施例において、エンコーダ316は、所定のパケットのためのパリティブロックを周囲の一又は二以上のパケットからのデジタル情報を利用することによってエンコードする。この結果、所定のパケットが送信の間に破損した場合、検証及び再構築が可能となる。パリティ情報をエンコードするための具体的な一技術は、図7及び図8とともに以下で説明される。図3の実施例において、エンコーダ316は、送信機用バッファ320を利用し、パリティエンコーディング処理の間、一時的にパケットを記憶することができる。図3の実施例において、送信機118は、任意かつ必要なタイプの追加の情報を記憶するために多種多様なストレージ324を利用することができる。
図3の実施例において、ソフトウエアプログラム命令として実装されているエンコーダ316を示す。しかしながら、ある実施例では、他に、エンコーダ316は、同等な機能を実行するハードウエアの構成要素として実装されていてもよい。エンコーダ316の動作及び実装に関するさらなる詳細は、図7乃至図8とともに以下詳細に説明する。
図4を参照すると、本発明によるパケット410の一実施例についてのブロック図が示されている。図4の実施例において、パケット410は、以下に限定しないが、ヘッダ412、データ416、パリティブロック420を含むことが可能である。他の実施例において、パケット416は、図4の実施例とともに説明されている特定の要素及び構成に加えて、又は、それらに代えて、他の要素及び構成を含むことができる。
図4の実施例において、パケット410は、任意かつ関連するタイプの情報を含むことが可能なヘッダ412を含む。例えば、ヘッダ412は、パケット410の具体的な内容及び残りの要素のサイズを表すことが可能である。図4の実施例において、データ416は、受信機126(図1)へ送信するための任意かつ適切なタイプの情報を含むことが可能である。例えば、データ416は、ビデオ情報や、音楽情報、ソフトウエア命令、デジタルファイル、テキスト、画像、そして、任意のタイプの電子コンテンツを含むことが可能である。図4の実施例において、パリティブロック420は、任意かつ適切なタイプの情報を含めることが可能である。その任意かつ適切なタイプの情報は、受信機126が任意の破損したパケットや損失したパケット410を効果的に検証し、潜在的に再構築することを可能にするためのものである。パリティブロック420の生成及び利用は、図7乃至図9とともに以下詳細に説明する。
図5を参照すると、本発明による図1における受信機126の一実施例についてのブロック図が示されている。図5の実施例において、送信機126は、以下に限定しないが、受信機中央処理ユニット(受信機用CPU)512、デモジュレータ516、受信機用メモリ520、そして、一又は二以上の受信機用インプットインタフェース/アウトプットインタフェース(受信機用I/Oインタフェース)524を備える。
他の実施例において、受信機126は、図5の実施例とともに説明されている特定の構成要素及び構成に加えて、又は、それらに代えて、ある構成要素及び構成を用いることによって容易に実装することができる。さらに、図5の実施例において、受信機126は、任意かつ適切なタイプの電子装置の一部として実装されていてもよい。例えば、ある実施例において、受信機126は、テレビ、パーソナルコンピュータ、セットトップボックス、音楽−映像娯楽装置、携帯電話、情報携帯端末(PDA)などのような固定型又は携帯型の消費者向け電子装置に実装されていてもよい。
図5の実施例において、受信機用CPU512は、任意かつ適切なマイクロプロセッサ装置であって、互換性のあるマイクロプロセッサ装置を備えるよう実装することができる。そのマイクロプロセッサは、ソフトウエア命令を実行するのが好ましく、これにより、受信機126の動作を制御及び管理する。図5の実施例において、受信機用メモリ520は、所望のストレージ装置の任意の組み合わせを含むよう実装することができる。そのストレージ装置は、以下に限定しないが、読み取り専用メモリ(ROM)や、ランダムアクセスメモリ(RAM)、そして、フレキシブルディスク、メモリスティック、コンパクトディスク、ハードディスクなどのような様々なタイプの不揮発性メモリを含む。受信機用メモリ520の内容及び機能性は、図6とともに以下でさらに説明する。
図5の実施例において、受信機用I/Oインタフェース524は、一又は二以上のインプットインタフェース及び/又はアウトプットインタフェースを含むことができ、任意かつ必要なタイプの情報の受信及び/又は送信を受信機126によって行う。図5の実施例において、デモジュレータ516は、最終データ138(図1)を生成するよう送信データ120を復調することができ、その最終データは、任意の効果的な手段によって受信機用I/Oインタフェース224を介してデータの適切な宛先に提供され得る。本発明によって、受信機126は、送信データ120の破損した任意のパケット410を検証し、潜在的に再構築することができる。受信機126によるパケットの検証処理及び再構築処理は、図7及び図9とともに以下でさらに説明する。
図6を参照すると、本発明による図5における受信機用メモリ520の一実施例についてのブロック図が示されている。図6の実施例において、受信機用メモリ520は、以下に限定しないが、受信機用アプリケーション612、デコーダ616、受信機用バッファ618、多種多様なストレージ624を備えることができる。他の実施例において、受信機用メモリ520は、図6の実施例とともに説明されている特定の構成要素及び機能性に加えて、又は、それらに代えて、他の様々な構成要素及び機能性を含むことができる。
図6の実施例において、受信機用アプリケーション612は、プログラム命令を含むことができ、そのプログラム命令は、受信機126のための様々な機能及び動作を実行する送信機用CPU212(図2)によって実行されるのが望ましい。受信機用アプリケーション612の特定の性質及び機能性は、通常、対応する受信機126の特定のタイプ及び特有な機能性などのような要素に依存して変化する。図6の実施例において、受信機126は、デコーダ616を利用することが可能であり、受信パケット410(図4)のパリティブロック420を分析する。そのパリティブロックは、任意かつ効果的な技術を利用することによってパケットの検証処理を実行するためのものである。さらに、デコーダ616は、送信されたパケット410が破損している又は他の理由で無効である場合、パリティブロック420を利用し、パケット再構築処理を実行することができる。
例えば、ある実施例において、所定のパケット410からのパリティブロック420は、周囲の一又は二以上のパケットからのデジタル情報を利用することによってエンコードされ得る。これにより、所定のパケットが送信の間に破損した場合、検証及び再構築が可能となる。パリティブロック420を利用してパケット410を検証して再構築する具体的な技術は、図7及び図9とともに以下で説明する。図6の実施例において、デコーダ616は、受信機用バッファ618を利用し、上記検証処理及び再構築処理の間、パケット410を一時的に記憶することができる。したがって、デコーダ616は、時間的にわずかに逆戻り、そして、進めることで確認を行い、リアルタイムで検証処理及び再構築処理を行うことができる。図6の実施例において、受信機126は、必要なタイプのさらなる情報を記憶するための多種多様なストレージ624を利用することができる。
図6の実施例において、ソフトウエアプログラム命令として実装されているデコーダ616を示す。しかしながら、ある実施例において、他に、デコーダ616は、同じような機能を実行するハードウエアの構成要素として実装することも可能である。デコーダ616の動作及び実装に関するさらなる詳細は、図7及び図9とともに以下詳細に説明する。
図7を参照すると、本発明の一実施例によるマルチパケットパリティ技術を示すブロック図が示されている。図7の実施例は、例示目的のために示す。他の実施例において、本発明は、図7の実施例とともに説明されている特定の構成要素、機能、及び、情報に加えて、又は、それらに代えて、ある構成要素、機能、及び、情報を含むパリティ技術を利用することができる。例えば、図7の実施例において、マルチパケットパリティ技術は、連続した3つのパケット410とともに例示されている。しかしながら、他の実施例において、効果的な数の連続的なパケット又は連続していないパケット410が利用されていてもよい。
図7の実施例において、パケット10(410(a))、パケット11(410(b))、パケット12(410(C))を示す。図4に示しているように、各パケット410は、ヘッダ、データ、そして、パリティブロックを含む。図7の例において、データサイズは、128K(バイナリデータの8ビット)に等しいものとして示されている。図7の実施例において、エンコーダ316(図3)は、現在のパケット及び直前のパケットにおける8ビットのバイナリデータ値に基づいて、それぞれのパリティブロックをエンコードして組み込む。例えば、パケット11(410(b))のためのパリティブロックは、直前のパケット10(410(a))及び現在のパケット11(410(b))のデータ値から形成されている。
したがって、ある実施例において、エンコーダ316は、必要なインプットパケット410を送信機用バッファ320内に一時的に記憶することによって各パケット410のためのパリティエンコーディング処理を実行することができる。そして、エンコーダ316は、現在のパケットと直前のパケットのデータセグメントから対応するビット位置の各ペア上で排他的論理和操作を実行することができる。例えば、パケット11からのデータ(D11)がバイナリ00110110に等しく、さらに、パケット12からのデータ(D12)が、バイナリ11001010に等しいと仮定する。図7の実施例において、パケット12(410(C))のためのパリティブロックをエンコードすると、エンコーダ316は、D11とD12の対応ビット上で排他的論理和操作を実行し、パケット12のためのパリティブロック(P12)を得る。そして、そのパリティブロック(P12)は、バイナリ11111100と等しくなる。
本発明によって、デコーダ616(図6)は、パケットの検証処理を実行し、所定のパケット410が破損しているか否かを決定することができる。図7の実施例において、デコーダ616は、現在のパケットと直前のパケットのデータセグメントからの対応ビット位置の各ペア上で排他的論理和操作を実行することができる。前述の例のように、パケット11によるデータ(D11)がバイナリ00110110と等しく、さらに、パケット12によるデータ(D12)がバイナリ11001010と等しいと仮定する。図7の実施例において、パケット12(410(C))を検証すると、エンコーダ316は、D11とD12の対応ビット上で排他的論理和操作を実行し、パケット12のためのパリティブロック(P12)と比較するチェック値(バイナリ11111100と等しい)を得ることができる。チェック値がパリティブロックP12と一致する場合、パケット12は損傷がなく、破損していない。
図7の実施例において、チェック値がパリティブロックと一致しない場合、デコーダ616は、直後のパケット410のためのバイナリデータ値及びバイナリパリティブロックに基づいて現在のパケット410のためのパケット再構築処理を実行することが可能である。例えば、パケット11(410(b))が破損又は損失したと仮定する。また、前述の例のように、パケット12からのパリティブロック(P12)がバイナリ11111100と等しく、さらに、パケット12からのデータ(D12)がバイナリ11001010と等しいと仮定する。パケット11の破損したバイナリデータを再構築するために、デコーダ616は、P12とD12の対応ビット上で排他的論理和操作を実行し、パケット11(410(b))の破損したバイナリデータ(バイナリが00110110と等しい)を再構築することができる。したがって、本発明は、マルチパケットパリティ技術を利用し、破損したパケット410を検証し、潜在的に再構築する。
図8A乃至図8Bを参照すると、本発明の一実施例によるパケットエンコーディング処理実行するための方法のステップについてのフローチャートが示されている。図8A乃至図8Bのフローチャートは、例示目的のために示す。他の実施例において、本発明は、図8A乃至図8Bの実施例とともに説明されているステップ及び順序以外のそれらも利用することができる。
図8の実施例において、ステップ812において、最初に、送信機118のエンコーダ316は、任意かつ適切なデータ源となる装置からインプットパケット410にアクセスする。ステップ814において、エンコーダ316は、インプトパケット410からデータ416を分析する。ステップ816において、エンコーダ316は、インプットパケット410のためのパリティブロック420を任意かつ適切な技術を利用することによって生成する。例えば、ある実施例において、エンコーダ316は、一又は二以上の隣接するパケット410のバイナリデータ値と組み合わせたインプットパケット410のバイナリデータ値に基づいてパリティブロック420を生成する。
ステップ818において、エンコーダ316は、パリティブロック420をインプットパケット410に組み込む。ステップ820において、送信機118は、任意かつ適切な手段を利用することによってエンコードされたパケット410を受信機126に送信することができる。ステップ822において、エンコーダ316は、他のパケット410をエンコードし続けるか否かを決定する。他のパケット410を続ける場合、図8のプロセスは、前述のステップ812に戻り、残りのパケット410をエンコードして送信する。他のパケット410が存在しない場合、図8のプロセスは終了してもよい。
図9A乃至図9Bを参照すると、本発明の一実施例によるパケット再構築処理を実行するための方法のステップについてのフローチャートが示されている。図9A乃至図9Bのフローチャートは、例示目的のために示す。他の実施例において、本発明は、図9A乃至図9Bの実施例とともに説明されているステップ及び順序以外のそれらも利用することができる。
図9の実施例において、ステップ912において、受信機126は、任意かつ適切な技術を利用することによって送信されたパケット410を受信することができる。ステップ914において、受信機126は、受信したパケット410を受信機用バッファ618に記憶する。ステップ916において、デコーダ616は、任意かつ効果的な技術を利用することによってパケットの有効性処理を受信したパケット上で実行する。例えば、ある実施例において、デコーダ616は、組み込まれているパリティブロック420を利用することによってパケット410の妥当性を検証することが可能である。
ステップ920において、現在のパケット410が有効である(破損していない)場合、ステップ928において、受信機126は、有効なパケット410を任意かつ適切な宛先となる装置に出力することが可能である。しかしながら、現在のパケット410が有効ではない(破損している)場合、デコーダ616は、ステップ924に示すように任意かつ適切な技術を利用することによってパケット再構築処理を実行することが可能である。例えば、ある実施例において、デコーダ616は、一又は二以上の隣接するパケット410からのデータ情報及びパリティブロック情報を利用することによって破損しているパケット410を再構築することができる。
破損したパケット410が再構築されると、ステップ928において、受信機126は、再構築したパケット410を任意かつ適切な宛先となる装置に出力する。ステップ932において、デコーダ616は、他のパケット410を検証し潜在的に再構築し続けるか否かを決定する。他のパケットがある場合、図9のプロセスは、前述のステップ912に戻り、他のパケット410を検証し、再構築し、出力する。しかしながら、他のパケットを処理しない場合、図9のプロセスは終了してもよい。したがって、少なくとも上述の理由に関して、本発明は、効果的に電子情報を転送するための改善されたシステム及び方法を提供する。
所定の実施例に関して、本発明を上述の通り説明した。他の実施例は、この開示を考慮することで、当業者にとって明らかとなるであろう。例えば、本発明は、上述の特定の実施例において開示されているもの以外の所定の構成及び技術を用いて容易に実装することができる。加えて、本発明は、上述のもの以外のシステムとともに効果的に用いることができる。したがって、上述の実施例による、これらの変形及び他の変形は、本発明によって保護されることを目的とし、本発明は、特許請求の範囲によってのみ限定される。