"リモート制御コード中継システム内でリモート制御コードをフィルタリングするための方法であって、リモート制御コードを受信するステップ、前記受信されたリモート制御コードの一部を、フィルタリングに使用される格納された1つ以上のリモート制御コードのうちの所与の1つの対応する一部と比較するステップであって、前記格納された1つ以上のリモート制御コードはユーザから習得されるステップ、及び前記比較に基づいて前記受信されたリモート制御コードをフィルタリングするステップを備えることを特徴とする方法。リモコン装置、およびそれを使用したシステムは堅牢であり、有益であるが、複数の重要な問題が残っている。たとえば、第1の装置を操作するように選択された、あるリモコンからの信号が意図されていない第2の装置を不注意に操作するときがあり得る。これは、リモコンと装置がRFを使用して互いに通信する場合に特に当てはまるが、通信用にIRを使用したシステムもまた、こうした不注意な操作を受け得る。したがって、これらの問題を解決するための技術が求められている。一般には、リモート制御コードをフィルタリングするための技術が提供され、これらの技術は、たとえばリモート制御コードによって引き起こされる不注意の操作を減らしまたは取り除きながら、ある位置から別の位置にリモート制御コードを中継するために使用され得る。本発明の例示的な一態様では、リモート制御コード中継システム内でリモート制御コードが受信される。受信されたリモート制御コードの一部が、格納された1つまたは複数のリモート制御コードの対応する部分と比較される。受信リモート制御コードは、比較に基づいてフィルタリングされる。フィルタリングは、例示的には、受信リモート制御コードたとえば、またはその一部などを出力し、または受信リモート制御コードを廃棄することを備え得る。さらに、フィルタリングは、格納リモート制御コードに、受信リモート制御コードに対応する新しいリモート制御コードを追加することを備え得る。この追加は、リモート制御コードが出力されるべきか、それと廃棄されるべきかによって決まる。リモート制御コードはネットワークまたはハードウェアインターフェースから受信されることができ、このハードウェアインターフェースは、EMリモート制御信号をリモート制御コードに変換する受信機から、リモート制御コードを受信する。受信リモート制御コードの出力は、無線ネットワークなどのネットワークに対して行われることも、その後に続くEMリモート制御信号の送信のためにハードウェアインターフェースに対して行われることもある。フィルタリングは、ネットワークの前に行われることも、ネットワークの後に行われることもある。フィルタリングは、たとえば集積回路によって、ネットワークに結合され、またメモリに結合されたプロセッサを備えたコンピュータシステムによって、あるいはその何らかの組合せによって実施され得る。図1および2は、例示的なリモート制御コード中継システム100、リモコン、装置およびそのインターフェースを示している。典型的なリモート制御コード中継について説明するために、まず図1について述べる。次いで、図2を使用して、従来のリモート制御コード中継に関する問題について述べる。しかし、リモート制御中継システム100は、本発明の例示的な実施形態を実施し、したがって、図2についての以下の説明に関連する問題を解決することができる。次に図1を参照すると、リモート制御中継システム100が示されており、IRリモコン110によってIRチャネル115-1を介してリモート制御中継システム100に送信された電磁気EMリモート制御信号180を受け付けている。リモート制御中継システム100が、IRチャネル145-1を介してリモート装置150-1にEMリモート制御信号170を送信しているのも示されている。図1の実施例では、EMリモート制御信号180とEMリモート制御信号170はIRリモート制御信号であるが、しかし、これは例示するためのものにすぎない。たとえば、EMリモート制御信号のうちの1つまたは両方が、RFリモート制御信号、または他のいずれかのタイプの適切なリモート制御信号であり得る。リモート制御中継システム100は、ローカルIRユニット120とネットワーク130とリモートIRユニット140とを備える。ローカルIRユニット120とネットワーク130はネットワークチャネル125を介して通信し、ネットワーク130はネットワークチャネル135を介してリモートIRユニット140と通信する。IRリモコン110およびローカルIRユニット120は、あるユーザに関連するローカル位置101に置かれており、リモート装置150およびリモートIRユニット140はリモート位置102に置かれている。ユーザは時々、リモート位置102に置かれたリモート装置150-1などの装置を有し得る。たとえば、ユーザは、たとえばローカル位置101のような寝室にいることがあり、リモート装置150-1は、中央のメディア位置、または居間などの別の部屋に置かれた音楽プレーヤーであり得る。音楽プレーヤーは、ローカル位置101に音楽を提供する。ユーザは、ローカル位置101のIRリモコン110を使用してリモート装置150-1を制御することができる。ユーザは、たとえば、一時停止ボタン図示せずを押し得る。次いで、IRリモコン110は、そのボタンに適した元のリモート制御コードoriginalremotecontrolcode111を決定し、対応するEMリモート制御信号180をIRチャネル115-1を介して送信する。元のリモート制御コード111は、ヘッダ106とデバイスコード107と機能コード108とトレイラ109とを備える。上述したように、ヘッダ106は、リモート制御コードEMリモート制御信号180などが送信されていることを装置に警告するために使用される。デバイスコード107は、同じ搬送波周波数を使用している装置を区別するために使用される。機能コード108は、装置この実施例ではリモート装置150-1によってどの機能が実施されるか決定する。トレイラは、リモート制御信号が終了することを装置に警告するために使用される。元のリモート制御コード111は例示的なものにすぎず、他のリモート制御コードが使用され得る。たとえば、製造元によっては、リモート制御コードに誤り訂正符号を追加しまたは、リモート制御コードの繰返し部分を追加しまたは作成する。さらに、リモコン装置の製造元は、元のリモート制御コード111を公開している。したがって、元のリモート制御コード111は、製造元に問い合わせることによって決定されることができ、また多くの従来型リモート制御システムは、適切なEMリモート制御信号180または170を送信するために、元のリモート制御コード111のデータベースを使用する。元のリモート制御コード111は、例示的な説明において以下で述べるように、EMリモート制御信号180に変換される。元のリモート制御コード111は、バイナリデータ、16進数データ、レジスタ値または他の任意のデータであり得る。さらに、IRリモコン110は、キー押下に対応する行と列のデータを機能コード108に相関させることができる。IRリモコン110は、元のリモート制御コード111からEMリモート制御信号180を生成する。EMリモート制御信号180は、元のリモート制御コード111のEM信号表現である。たとえば、IRリモコン110は、特定の時間の間、IR送信機図1に図示せずをオンにし、元のリモート制御コード111の各2進数字について特定の時間の間、IR送信機をオフにすることによってEMリモート制御信号180を生成し得る。EMリモート制御信号180はこのプロセスを通して生成され、EMリモート制御信号180は、ヘッダ181とデバイスコード182と機能コード183とトレイラ184とを備える。ヘッダ181は、ヘッダ106をEM信号で表現したものである。同様に、デバイスコード182、機能コード183およびトレイラ184はそれぞれ、デバイスコード107、機能コード108およびトレイラ109を個々にEM信号で表現したものである。EM信号部分195は、デバイスコード107の最初の2つの2進数字がデバイスコード182でどのように表現されるかを示しており、またIRリモート制御信号についての典型的な規則をも示している。デバイスコード107中のバイナリ1191は、IR送信機をオンにする期間186およびIR送信機をオフにする期間187に変換される。デバイスコード107中のバイナリ0192は、IR送信機をオンにする期間188およびIR送信機をオフにする期間189に変換され、ただし、期間186は一般に期間188より長い。ローカルIRユニット120は、EMリモート制御信号180を受信し、それをリモート制御コード121に変換する。リモート制御コード121は一般に、バイナリデータであり、EMリモート制御信号180を表現したものである。リモート制御コード121の格納形式とIRリモコン110内のリモート制御コード111の格納形式は、同じでないことがあることに留意されたい。ローカルIRユニット120は、たとえば期間186および188のIR送信機が動作する搬送波周波数を決定する。ローカルIRユニット120がそれぞれ異なる搬送波周波数範囲を受信し得るように、ローカルIRユニット120の複数の部分が存在し得ることに留意されたい。搬送波周波数情報はパケット内に置かれ、このパケットの一部は、周波数情報196とデバイスコード197と機能コード198とを備えるパケット部分195として示されている。デバイスコード197および機能コード198はリモート制御コード121の部分であるが、所望であればこの部分は、リモート制御コード121全体とすることもできる。例示的な実施形態では、周波数情報196は、たとえば期間186および188のEMリモート制御信号180の搬送波周波数のバイナリ表現であり、デバイスコード197はデバイスコード182のバイナリ表現であり、機能コード198は機能コード183のバイナリ表現である。図1の実施例では、デバイスコード197および機能コード198はリモート制御コード121の一部を定義し得るが、周波数情報196がリモート制御コード121間の区別のために使用され得る。別の実施形態では、リモート制御コード121を定義するために、周波数情報196も使用される。図1の実施例では、ヘッダ181およびトレイラ184に対応するリモート制御コード121内の情報は、パケット部分195内で使用されない。しかし、所望であれば、ヘッダ181およびトレイラ184に対応するリモート制御コード121内の情報は、パケット部分195内で使用されることができる。EMリモート制御信号180をリモート制御コード121に変換する際にはいくらかの量の誤りが一般に存在するので、デバイスコード197および機能コード198は一般に、デバイスコード107および機能コード108の厳密な表現ではない。しかし、いくらかの誤りは、ほとんどのIRシステムにおいて問題とならない。パケット部分195は、ネットワーク130を介してリモートIRユニット140に送信される。ネットワーク130は、一般には無線ネットワークであるが、有線ネットワーク、または有線と無線ネットワークの組合せとすることもできる。リモートIRユニット140は、パケット部分195を使用し、リモート制御コード141を作成し、またリモート制御コード141から、ヘッダ171とデバイスコード172と機能コード173とトレイラ174とを備えるEMリモート制御信号170を作成する。デバイスコード172はデバイスコード197のEM信号表現であり、機能コード173は機能コード198のEM信号表現である、この例示的な実施形態では、リモートIRユニット140はリモート制御コード141内の適切なヘッダおよびトレイラ情報図示せずを決定するために周波数情報196、デバイスコード197および機能コード198を使用し、ヘッダおよびトレイラ情報は、EMリモート制御信号170のヘッダ171およびトレイラ174部分に変換される。一般に、リモートIRユニット140のIR送信機などのある部分が、すべての搬送波周波数を生成するために使用される。リモート装置150-1は、EMリモート制御信号170を受信し、機能コード183に対応する機能を実施する。したがって、ローカル位置101内のユーザは、IRリモコン110を使用して、リモート位置102内のリモート装置150-1を制御することができる。これによって、ユーザが、たとえば音楽を開始、一時停止および停止し、または異なる音楽またはタイトルを選択することが可能となる。しかし、図2に示すようにユーザが別のリモコン装置160を使用してローカル装置165を制御する場合、問題が生じる。リモート制御コード161は、IRリモコン160によってEMリモート制御信号180-1に変換され、IRチャネル115-2を介してローカルIRユニット120に通信される。ローカルIRユニット120は、リモート制御信号180-1に対応するパケット部分195-1を作成し、ネットワーク130を介してリモートIRユニット140にパケット部分195-1を通信する。次いで、リモートIRユニット140はEMリモート制御信号170-1を作成し、このEMリモート制御信号はIRチャネル145-1と145-2の両方を介して通信される。1つのEMリモート制御信号170-1が、リモート装置150-1と150-2の両方によって受信される。リモート装置150-1はリモート制御信号170-1を無視するが、ローカル装置165に類似のまたはそれと同じリモート装置150-2はリモート制御信号170-1を解釈し、意図されておらず、望まれていない対応する機能を実施する。したがって、ローカル位置101のユーザは、機能を実施するリモート装置150-2の意図されていない動作を引き起こしている。同様に、リモート位置102のユーザがIRリモコン155を使用する場合、IRリモコン155からのEMリモート制御信号図示せずは、たとえば、ネットワーク130を介して送信されるパケット部分に変換されることにより、およびパケットを別のEMリモート制御信号に変換させることによりローカル装置165に送信され得る。したがって、リモート制御コードの中継によって引き起こされる意図されていない機能が最小限に抑えられまたは取り除かれるように、リモート制御コードをフィルタリングすることが求められている。本発明は、特定のリモート制御コードがリモート装置150-2またはローカル装置165などに届かないようにリモート制御コードをフィルタリングするための技術を提供する。例示的な一実施形態では、ローカルIRユニット120は、EMリモート制御信号180を、受信されたリモート制御コード121に変換し、リモート制御コード121の一部またはすべてを格納されたリモート制御コード図1には示されていないが、図4に示されていると比較し得る。受信リモート制御コード121を格納リモート制御コードと比較することによって、受信リモート制御コード121がどのようにフィルタリングされるべきか決定される。例示的な一実施形態では、フィルタリングは、通過フィルタリングの働きをし、受信されたリモート制御コード121と格納されたリモート制御コードの部分間に一致がある場合は、受信リモート制御コード121は、受信リモート制御コード121に対応するパケット部分195をネットワークチャネル125およびネットワーク130に出力することによってフィルタリングされる。したがって、格納されたリモート制御コードは、どのリモート制御コードがネットワーク130に出力されるかを定義している。受信されたリモート制御コードと格納されたリモート制御コードの部分間に一致がない場合は、受信リモート制御コードは、受信リモート制御コードを廃棄することによってフィルタリングされる。受信リモート制御コードは、たとえば削除されまたは格納される。別の例示的な実施形態では、フィルタリングは、拒否フィルタリングの働きをする。受信されたリモート制御コード121と格納されたリモート制御コードの部分間に一致がある場合は、受信リモート制御コード121は廃棄される。したがって、格納されたリモート制御コードは、どれが拒否され廃棄されるかを定義している。受信リモート制御コードは、たとえば削除されまたは格納される。その逆に、受信されたリモート制御コード121と格納されたリモート制御コードの部分間に一致がない場合は、受信リモート制御コード121は、受信リモート制御コードに対応するパケット部分195をネットワークチャネル125およびネットワーク130に出力することによってフィルタリングされる。所望であれば、2組の格納されたリモート制御コードが使用されることができ、ただし、1組はネットワーク130に出力されるべきリモート制御コードを定義し、もう1つの組は廃棄されるべきリモート制御コードを定義する。いずれの組にも存在しないリモート制御コードは、ネットワーク130に出力され、または廃棄され得る。さらに、システム100は、学習モードに入り、いずれの組にも存在しないリモート制御コードが出力されるべきか、それとも廃棄されるべきかをユーザに決定させる。リモートIRユニット140は、パケット部分195-1を使用してリモート制御コードを受信し、リモート制御コードのフィルタリングを実施し得ることに留意されたい。この例示的な実施形態では、ローカルIRユニット120はすべてのリモート制御コードをネットワーク130に渡し、リモートIRユニット140はそのリモート制御コードのフィルタリングを実施する。さらに、フィルタリングは、装置上で機能を実施しないリモート制御コードを出力することを含み得る。たとえば、64個の使用可能な機能コード108があるが、48個の機能だけが、装置によって実施される実際の機能に関連し得る。したがって、16個の機能無効の機能コードのうちの1つが、有効な機能コード108に取って代わるために使用され得る。しかし、これらのリモート制御コードは時々、リモコン装置上のボタンに割り当てられていないが、依然として機能を実施する。さらに、リモート制御コード111または121または141などの全体が、フィルタリング時に使用され得る。あるいは、リモート制御コード111の一部がフィルタリング時に使用され得る。具体的には、デバイスコード107が、ある装置に対応するすべてのリモート制御コードをフィルタリングするために使用され得る。別の例示的な実施形態では、デバイスコード107および機能コード108が、特定のリモート制御コードに対応する特定の機能だけをフィルタリングするために使用され得る。さらに、周波数情報196も、たとえばリモート制御コードと共に、またはその一部としてフィルタリング時に使用され得る。さらに、1つのデバイスコード107が同じ装置の複数のバージョンに対して働くことがあり、またデバイスコードは、ある装置用のリモート制御コードを別の装置用のリモート制御コードと区別し得る任意の情報である。IRリモート制御コードは、デバイスコードとして使用されるアドレスコードを有することに留意されたい。一方、他のIRリモート制御コードは、デバイスコードとアドレスコードの両方を有する。たとえば、衛星受信機は一般に、同じデバイスコードを使用するが、複数の衛星受信機が同じ部屋で使用され得るように、それぞれ異なるアドレスコードを許容する。デバイスコードとアドレスコードの両方の実施例において、アドレスコードは、リモート制御コードのフィルタリングに使用されるリモート制御コードの別の部分とすることができ、あるいはアドレスコードとデバイスコードは1つの大きいデバイスコードとして組み合わされ得る。本明細書では、リモート制御コードは、リモート制御コード111または121または141などの全体であることも、リモート制御コード111の一部であることもある。たとえば、リモート制御コードは、リモート制御コードのフィルタリングに使用されるリモート制御コード111と同じだけを備える。したがって、上述したように、デバイスコード107は、例示的な一実装では、リモート制御コードであり得る。次に図3に移ると、第2のリモート制御コード中継システム300が示されており、リモート制御信号301を受信し、リモート制御信号376を送信している。リモート制御信号301および376は、元のリモート制御コードたとえば図1の元のリモート制御コード111などに対応する。リモート制御信号301および376は一般に、IRリモート制御信号である。しかし、EM波を使用した任意のRFまたは他のリモート制御信号が使用され得る。説明のため、本明細書ではIRリモート制御信号について述べる。リモート制御中継システム300は、ローカルIRユニット120と無線ネットワーク345とリモートIRユニット140とを備える。無線ネットワーク345が示されているが、有線、または有線と無線ネットワークの組合せが使用され得る。ローカルIRユニット120は、IR受信機305と、ハードウェアインターフェース/先入れ先出しFIFO:Fist-In,FirstOut310と、装置ドライバ320と、アプリケーション330と、ネットワークインターフェース335とを備える。リモートIRユニット140は、IR送信機375と、ハードウェアインターフェース370と、装置ドライバ365と、アプリケーション360と、ネットワークインターフェース335とを備える。IR受信機305およびIR送信機375は一般に、回路基板の外部にある。しかし、それらは、所望であれば回路基板に組み込まれ得る。受信機ハードウェアインターフェース/先入れ先出しFIFO310およびネットワークインターフェース335は一般に回路基板上のコンポーネントであるが、装置ドライバ320およびアプリケーション330は回路基板上のメモリ図4参照内に常駐する。同様に、ハードウェアインターフェース370およびネットワークインターフェース355は一般に回路基板上に常駐するが、装置ドライバ365およびアプリケーション360は回路基板上のメモリ図4参照内に常駐する。受信機ハードウェアインターフェース/先入れ先出しFIFO310およびハードウェアインターフェース370は、たとえばフィールドプログラマブルゲートアレイFPGA:Field-ProgrammableGateArrayビットファイルによって実装され得る。さらに、ハードウェアインターフェース370は、集積回路の一部として実装され得る。装置ドライバ320、365およびネットワークインターフェース335、355は一般に、低レベルのシステムインターフェースである。ネットワークインターフェース335、355は、低レベルおよびシステムレベルのコンポーネントを有し得ることに留意されたい。アプリケーション330、360は一般に、システムレベルインターフェースである。元のリモート制御コードたとえば図1の元のリモート制御コード111などに対応するリモート制御信号301はIR受信機305によって間隔数307として変換され、次いでこの間隔数307は、2進数字315を生成する受信機ハードウェアインターフェース/FIFO310によってカウントされる。例示的なIR受信機および受信機ハードウェアインターフェース/FIFO310は、図7を参照してより詳細に示されている。さらに、間隔307は、図8を参照してより詳細に示されている。装置ドライバ320は、アプリケーション330と受信機ハードウェアインターフェース/FIFO310の間のソフトウェアインターフェースである。装置ドライバ320は、2進数字315を、受信されたリモート制御コードデータ325へとパッケージ化する。アプリケーション330は図4に示された部分を含み、この部分は、受信リモート制御コードデータ325またはその一部などを検査し、また受信リモート制御コード325を格納されたリモート制御コード図4参照と比較することによってリモート制御コードデータ325をフィルタリングする。受信されたリモート制御コード325がフィルタリングの一部として出力されるべきである場合は、リモート制御コード325またはその一部は接続331を介してネットワークインターフェース335に出力され、ネットワークインターフェース335は、この実施例では無線パケット336を作成する。無線パケット336は、無線チャネル340、無線ネットワーク345、および無線チャネル350を介して送信される。受信されたリモート制御コード325は、フィルタリングの一部として出力されるべきでない場合は、たとえば削除されまたは格納され得る。リモートIRユニット140で受信される無線パケット336は、リモート制御コード356またはその一部などを作成するネットワークインターフェース355によって受信される。アプリケーション360は一般に、リモート制御コード356のすべてまたは一部からリモート制御コードデータ361を作成する。リモート制御コードデータ361は、上記で示したように、ヘッダとデバイスコードと機能コードとトレイラとを備え得る。次いで、装置ドライバ365は、リモート制御コードデータ361を2進数字366として出力する。ハードウェアインターフェース370の実装に応じて、装置ドライバ365は、リモート制御コードデータ361全体を一度に、またはリモート制御コードデータ361の一部を複数サイクルに渡って出力し得る。次いで、IR送信機375は、EMリモート制御信号376を作成する。アプリケーション360もまた、リモート制御コードのフィルタリングを実施することができる。この例示的な実施形態では、アプリケーション330はすべてのリモート制御コード325を送信し、アプリケーション360はリモート制御コード356またはその一部などを受信し、受信されたリモート制御コードまたはその一部などをフィルタリングする。次に図4に移ると、本発明の例示的な実施形態の実施に使用するのに適した例示的なコンピュータシステム400が示されている。コンピュータシステム400は、プロセッサ410とネットワークインターフェース415とハードウェアインターフェース420とメモリ430とを備える。プロセッサ410、ネットワークインターフェース415およびメモリ430は、バス425によって結合される。プロセッサ410、ネットワークインターフェース415、メモリ430およびバス425はそれぞれ1つしか示されていないが、複数のプロセッサ410、ネットワークインターフェース415、メモリ430およびバス425が存在し得る。メモリ430は、アプリケーション435と装置ドライバ445とフィルタリングデータベース450と製造元リモート制御コードデータベース490とを備える。アプリケーション435は、リモート制御コードフィルタリングモジュール440を備える。フィルタリングデータベースは、3つのリモート制御コードエントリ455-1、455-2および455-3を備える。リモート制御コードエントリ455-1は、IR周波数情報461とデバイスコード462とを備える。リモート制御コードエントリ455-2は、IR周波数情報466とデバイスコード467と機能コード468とを備える。リモート制御コードエントリ455-3は、IR周波数情報471とデバイスコード472と機能コード473とを備える。アプリケーション435は、図3のアプリケーション330またはアプリケーション360であり得る。以下の実施例では、リモート制御コードフィルタリングモジュール440は、リモート制御コードフィルタリングモジュール440がネットワークインターフェース415からまたはIRハードウェアインターフェース420から受信されたリモート制御コードをフィルタリングする、デュプレックスモードで動作する。たとえば、リモート制御コードは、リモート制御コードフィルタリングモジュール440によってネットワークインターフェース415から受信され得る。リモート制御コードフィルタリングモジュール440は、リモート制御コードをフィルタリングし、リモート制御コードの廃棄、またはIR送信機図4に示されていないに結合されたIRハードウェアインターフェース420へのリモート制御コードの出力を行う。別の実施例として、リモート制御コードは、リモート制御コードフィルタリングモジュール440によってIRハードウェアインターフェース420から受信され得る。この実施例では、リモート制御コードフィルタリングモジュール440は、リモート制御コードをフィルタリングし、リモート制御コードの廃棄またはネットワークインターフェース415へのリモート制御コードの出力を行う。フィルタリングデータベース450は、格納されたリモート制御コードを備えるリモート制御コードエントリ455を備える。図4の実施例では、格納リモート制御コードはリモート制御コードの複数の部分であり、それぞれの部分がデバイスコード、またはデバイスコードと機能コードを備える。さらに、IR周波数情報は、リモート制御コードを定義するために使用され、また所望であればリモート制御コードをフィルタリングするために使用され得る。以下の説明では、IR周波数情報は、リモート制御コードのフィルタリングのために使用される。リモート制御コードフィルタリングモジュール440は、IR周波数情報461に対応しており、またデバイスコード462に一致しているリモート制御コードをフィルタリングする。したがって、特定の装置からのすべてのリモート制御コードがフィルタリングを受ける。リモート制御コードフィルタリングモジュール440は、IR周波数情報466に対応しており、またデバイスコード467および機能コード468に一致しているリモート制御コードをフィルタリングする。同様に、リモート制御コードフィルタリングモジュール440は、IR周波数情報471に対応しており、またデバイスコード472および機能コード473に一致しているリモート制御コードをフィルタリングする。図4には示されていないが、フィルタリングデータベース450は、追加の情報を備え得る。たとえば、図1および2を参照して上記で述べたヘッダおよびトレイラ情報は、フィルタリングデータベース450内に格納され得る。さらに、一部の装置は、装置および機能コードに加えてアドレスコードを使用し、したがってアドレスコードがフィルタリングデータベース450内に格納され得る。あるいは、アドレスコードは、デバイスコードと統合され得る。また一部のリモコン装置は誤り訂正符号を送信し、したがって誤り訂正符号がフィルタリングデータベース450内に格納され、またはリモート制御コードフィルタリングモジュール440によって決定され得る。繰返しシーケンスが使用される場合、繰返しシーケンスが使用されるという事実が、フィルタリングデータベース450内に格納され得る。図5を参照して上記で述べたように、リモート制御コードエントリ455が学習されることができ、または製造元リモート制御コードデータベース490から選択されることができる。ユーザは、フィルタリングのため、特定の機能リモート制御コードエントリ455-2および455-3に対応する機能などに対応する特定のリモート制御コード、あるいは装置全体リモート制御コードエントリ455-1に関連して示したものなどに対応するリモート制御コードを選択することができる。ユーザは一般に、ボタンに対応するリモート制御コード、または特定の装置に対応するリモート制御コードをフィルタリングするために、製造元リモート制御コードデータベース490から、装置の特定のボタン、または特定の装置を選択する。フィルタリングデータベース450は、複数のセクションに分割され得ることに留意されたい。たとえば、あるセクションは、通過フィルタリング用のリモート制御コードを収容することができ、別のフィルタリングデータベースは拒否フィルタリング用のリモート制御コードを収容することができる。当技術分野において知られているように、リモート制御コードフィルタリングモジュール440の一部は、プロセッサ410に転送され、本明細書で述べる諸実施形態のうちの1つまたは複数の一部を実施するために実行される。さらに、リモート制御コードフィルタリングモジュール440の一部またはすべては、実行されたときに本明細書で述べる諸実施形態のうちの1つまたは複数を実施する、メモリ430内での使用に適した1つまたは複数のプログラムを備えたプログラム製品として実装され得る。さらに、コンピュータシステム400の一部またはすべては、集積回路として実装され得る。具体的には、リモート制御コードフィルタリングモジュール440およびフィルタリングデータベース450は、集積回路として実装され得る。次に図5を参照すると、フィルタリング対象のリモート制御コードを学習し格納するための例示的な方法500が示されている。方法500は一般に、リモート制御コードフィルタリングモジュール440図4参照によって実施される。方法500は、ユーザにリモコン装置上のボタンを押下させ、学習されたリモート制御コードの一部またはすべてを決定し格納することによって、フィルタリング対象のリモート制御コードを学習するために使用される。方法500は、学習モードに入るときに開始する。学習モードは、受信されるリモート制御コードが学習プロセス中にフィルタリングされずに、学習されるべきであることを示す。工程515で、ユーザは、リモコン装置上のボタンを押下する。工程520で、リモコン装置が使用するIR搬送波周波数に対応する周波数情報が決定される。たとえば、IR搬送波周波数は78キロヘルツkHzであることがあり、周波数情報は、78kHzの周波数を表す2進数字であり得る。RF周波数情報が同様に決定され得る。工程525で、デバイスコードが決定される。装置に対応するすべてのリモート制御コードがフィルタリングされる場合は工程530=いいえ、工程540で、そのデバイスコードがリモート制御コードの一部として格納される。機能コードがフィルタリングに使用される場合は工程530=はい、工程535で機能コードが決定され、その機能コードがリモート制御コードの一部としてデバイスコードと共に格納される。これは、工程540で行われる。方法500は、工程545で終了する。工程515から540は、リモコン装置のそれぞれ異なる機能に対応する新しいリモート制御コードを学習するために実施され得ることに留意されたい。さらに、工程515から525は、デバイスコードが正確に決定されることを確実にするために、リモコン装置上の同じまたはそれぞれ異なるボタンがユーザによって押下された状態で複数回実施され得る。したがって、その後に続くボタンは、ボタンによって引き起こされる後続のデータストリームの同一のある部分または複数の部分を識別することによって装置またはアドレスコードなどを決定するために押下され得る。さらに、図5は、製造元リモート制御コードデータベースで使用するように修正されることができる。工程515で、ユーザは、リモコン装置上のボタンを押下するのではなく装置を、また任意選択でたとえば機能コードに対応するリモート制御ボタンを選択することができる。工程520、525および535によって、製造元リモート制御コードデータベースからの情報が決定される。次に図6を参照すると、リモート制御コードをフィルタリングするための例示的な方法600が示されている。方法600は一般に、リモート制御コードフィルタリングモジュール440図4参照によって実施され、望まれないリモート制御コードがリモート装置によって受信されないようフィルタリングするために使用される。方法600は工程610で開始し、リモート制御コードまたはその一部が、たとえばネットワークインターフェースまたはIRインターフェースを介して受信される。工程620で、リモート制御コードを移送するために使用されるEMリモート制御信号の搬送波周波数に対応する周波数情報が決定される。IRインターフェースに関しては、搬送波周波数が決定され、リモート制御コードフィルタリングモジュール440図4参照に通信され得る。ネットワークインターフェースからのリモート制御コードの受信に関しては、周波数情報は一般に、受信リモート制御コードに加えて、またはその一部として受信される。工程630で、受信リモート制御コードのデバイスコードが決定される。工程640で、受信リモート制御コードの機能コードが決定される。工程650で、リモート制御コードがフィルタリングされる。フィルタリングに適した様々な技術がある。上述したように、フィルタリングは、通過フィルタリングの働きをし得る。受信されたリモート制御コードと格納されたリモート制御コードの部分間に一致がある場合は、受信リモート制御コードは、受信リモート制御コードに対応するパケット部分をネットワークインターフェースあるいはハードウェアインターフェースなどに出力することによって工程652フィルタリングされる。したがって、格納されたリモート制御コードは、どのリモート制御コードが出力されるかを定義している。受信されたリモート制御コードと格納されたリモート制御コードの部分間に一致がない場合は、受信リモート制御コードは、受信されたリモート制御コードを廃棄することによって工程651フィルタリングされる。受信リモート制御コードは、たとえば削除されまたは格納される。別の例示的な実施形態では、フィルタリングは、拒否フィルタリングの働きをし得る。受信されたリモート制御コードと格納されたリモート制御コードの部分間に一致がある場合は、受信リモート制御コードは、受信リモート制御コードを廃棄することによって工程651フィルタリングされる。したがって、格納されたリモート制御コードは、どれが拒否され廃棄されるかを定義している。受信リモート制御コードは、たとえば削除されまたは格納される。その逆に、受信されたリモート制御コードと格納されたリモート制御コードの部分間に一致がない場合は、受信リモート制御コードは、受信リモート制御コードを出力することによって工程652フィルタリングされる。これらの技術は組み合わされ得る。たとえば、2組の格納されたリモート制御コードが使用されることができ、ただし、1組は出力されるべきリモート制御コードを定義し、もう1つの組は出力されるべきでないリモート制御コードを定義する。いずれの組にも存在しないリモート制御コードは、システムがどのように実装されるかに応じて出力されまたは廃棄され得る。あるいは、いずれの組にも存在しないリモート制御コードによりシステムは、新しいリモート制御コードが学習されることができ、また新しいリモート制御コードについてフィルタリングオプション出力または廃棄などが入力され得るように、図5の学習方法500に入ることになり得る工程653。工程650は、2つの異なる周波数についてリモート制御コードが同じである場合のため、周波数情報をも使用し得ることに留意されたい。さらに、ヘッダ、トレイラ、アドレスなどの追加のリモート制御コード情報が使用され得る。工程660で、方法600は終了する。さらに、たとえばデバイスコードだけがリモート制御コードのフィルタリングのために使用されている場合、工程620および650は実施され得ない。次に図7を参照すると、本発明の例示的な一実施形態によるIR受信機710およびハードウェアインターフェース730が示されている。ハードウェアインターフェース730は、FIFO720に結合された間隔カウンタ715を備える。FIFOはあるタイプのバッファであり、他のバッファも使用され得る。図7の回路は、通常ARMと称される拡張縮小命令セットコンピュータRISC:ReducedInstructionSetマイクロプロセッサで使用され得る。ハードウェアインターフェース730は、それぞれがARM図7に図示せずに結合されているARMバス731および割込み線732に結合される。他のタイプのプロセッサも使用され得る。本発明の例示的な一実施形態では、IR受信機710用に標準のIR検出装置を使用することが可能である。こうした標準のIR検出装置は、IR検出ダイオード増幅器、自動利得制御AGC:AutomaticGainControlおよび制御パルスフィルタリングを含む。標準のIR検出装置は、特定の帯域幅のIRリモート制御信号が受信され得るようにIR搬送波周波数を変調することに依存した中心周波数を有する。より大きい範囲のIR制御装置を受信することができるように、複数のIR検出器が、制御側プロセッサたとえばARMなどのそれぞれ異なる入力ピンに接続されて並列に置かれ得る。IR検出受信機710は、IRパルスシーケンス図7に図示せずを検出する。複数のIR受信機710が並列に使用される場合、ARMは、どのピンにIR信号が到達するか認識し、搬送波周波数の再変調がどうであるべきかをこのようにして決定する。次いで、搬送波周波数が決定され、周波数情報として格納され得る。より具体的な例として、Malvern、PA19355-2120のVishayIntertechnology,Inc.社からのTSOP1238が、IR受信機710として使用され得る。IR受信機710は、38kHzに同調され、その周波数制限内で以下のコードを復号することができる:SonySIRC、SharpおよびNECコード、ToshibaMicom形式、RC5およびRC6コード、RCMMコード、R-2000コード、RECS-80コード他。IR受信機710は一般に、検出された各IRイベントについて割込み711を生成する。それぞれのIRイベントのためにARMプロセッサを混乱させないために、ハードウェアインターフェース730によって提供されるような適切なバッファリングが使用され得る。例示的な一実施形態では、割込み線711上の各割込みによって、2つのことが発生することになる。1現在のカウント値がFIFO720にロードされる。2間隔カウンタ715がクリアされ、新しいカウントが開始される。波形を完全を再現するために、図7のIR受信機710の例示的な出力のグラフである図8に示すように、IR送信に関連するすべての間隔が累積される。この実施例では、間隔2および間隔2は1が送信されたことを示しており、間隔4および間隔5は0が送信されたことを示している。完全なIR送信パケットと呼ばれるが受信されると、ARMが割り込まれ得る。完全なパケットは、以下が存在する場合には受信されていると見なされ得る。1パケット開始前のオーバーフローカウント値2FIFO内に少なくともN個の文字カウント値などが受信した、または3最後の文字の後にカウンタオーバーフロー値が発生するARMが割り込まれると、専用の装置ドライバ図3参照が、FIFOからIRパケットを取得し、それを処理し、ノイズ関連の間隔などの不要な部分を除去し、有効なIRパケットがフィルタリングされる準備が整っていることをアプリケーションに知らせる。次に図9に移ると、本発明の例示的な一実施形態による、互いに結合されたハードウェアインターフェース980とIR送信機990が示されている。ハードウェアインターフェース980は、送信バッファ910と間隔生成器920と搬送波生成器930と乗算器940とを備える。送信バッファ910は、ARMバス901を備える。IR送信機990は、レジスタ950とトランジスタ970とIR発光ダイオードLED:LightEmittingDiode960とを備える。リモート制御コードデータを含むパケットの送信準備が整うときにアプリケーションは、IR装置ドライバ図3の装置ドライバ365などを呼び出し、IR装置ドライバにリモート制御コードデータを送信するよう指示すべきである。次いで、IR装置ドライバは、リモート制御コードデータを送信バッファ910にロードし、以下の段落で述べるように例示的な自動IR送信プロセスをトリガする。送信バッファ910は、ロードされ設定されると、間隔生成器920に間隔をロードし始める。間隔生成器920の出力は、リモート制御コードに対応するIRリモート制御信号の包絡線に一致する矩形の波形である。次いで、包絡線に、乗算器940によって、搬送波生器930からの搬送波を掛ける。これによって矩形の波形941がもたらされ、この波形は、バイポーラ接合トランジスタ970およびIRLED960を使用して送信される。上述の諸実施形態は例示的なものにすぎず、他の実施形態も可能である。たとえば、リモート制御コードフィルタリングは、複数のリモート位置を含むように拡張され得る。一部のリモート制御コードは、特定のリモート位置にだけ送信され得る。したがって、2つのリモート位置が存在することがあり、特定のリモート制御コードが2つのリモート位置のうちの1つには送信されるが、2つのリモート位置のうちのもう一方には送信され得ない。たとえばインターネットプロトコルIP:InternetProtocolアドレスが、リモート位置を定義するために使用され得る。本明細書で示し述べた諸実施形態および変形形態は本発明の原理を例示するものにすぎず、本発明の範囲および精神から逸脱せずに、当業者によって様々な修正が実施され得ることを理解されたい。"