図面及び以下の説明は、例示のみを目的として示す種々の実施形態に係る。なお、以下の議論より、本明細書に議論の原則から逸脱することなく、本明細書に開示の構造及び方法の代替実施形態が、採用可能且つ実行可能な代替として容易に認識される。以下、いくつかの実施形態について詳細に参照するが、これらの例は添付の図面に示されている。なお、図面において、できる限り類似の参照番号を用いて類似の機能が示される。
図1は、一実施形態に係るデータ通信のためのシステム100の上位レベルのブロック図である。システム100は、1つ以上のインタフェースケーブル120、150、180を介してシンクデバイス115と通信するソースデバイス110を有する。ソースデバイス110は、インタフェースケーブル120、150、180を介して、マルチメディアデータストリーム(例えばオーディオ/ビデオストリーム)をシンクデバイス115へ送信し、なおかつ制御データをシンクデバイス115とやりとりする。一実施形態において、ソースデバイス及び/又はシンクデバイス115は、リピータデバイスである。
ソースデバイス110は、インタフェースケーブル120、150、180と接続されている物理通信ポート112、142、172を有する。また、シンクデバイス115は、インタフェースケーブル120、150、180と接続されている物理通信ポート117、147、177を有する。インタフェースケーブルを介してソースデバイス110とシンクデバイス115との間でやりとりされる信号は、物理通信ポートを通過する。
ソースデバイス110とシンクデバイス115は種々のプロトコルを用いてデータをやりとりする。一実施形態において、インタフェースケーブル120は、High Definition Multimedia Interface(HDMI(登録商標))ケーブルである。HDMI(登録商標)ケーブル120は、data0+ 線121、data0- 線122、data1+ 線123、data1- 線124、data2+ 線125及び data2- 線126を介して送信される差動信号をサポートする。さらに HDMI(登録商標)ケーブル120は、クロック+127とクロック−128という差動クロック線、Consumer Electronics Control(CEC)制御バス129、Display Data Channel(DDC)バス130、電源131、グラウンド132、ホットプラグ検出133、及び差動信号のための4つのシールド線844を有してもよい。或る実施形態では、シンクデバイス115は、閉ループフィードバック制御データをソースデバイス110に送信するために CEC 制御バス129を用いてもよい。
一実施形態において、インタフェースケーブル150は Mobile High-Definition Link(MHL)ケーブルである。MHL ケーブル150は、data0+ 線151、data0- 線152、data1+ 線153、data1- 線154、data2+ 線155及び data2- 線156を介して送信される差動信号をサポートする。MHL の或る実施形態では、差動信号線は1組でもよい(例えば151と152)。エンベッドコモンモードクロックは差動データ線を介して送信される。さらに MHL ケーブル150は、control bus(CBUS)159、電源160及びグラウンド161を有してもよい。CBUS 195はディスカバリデータやリモート制御コマンドなどの制御情報を伝送する。
本開示の実施形態は、HDMI(登録商標)ケーブル120のようなインタフェースケーブルの差動対を介して送信されるガードバンドデータをスクランブルしたりエンコードしたりするシステムに関する。各差動対は1つの通信チャネルを表す。ガードバンドデータは、HDMI(登録商標)ケーブル120を介してデータを送信しつつ電磁干渉(EMI)や無線周波数干渉(Radio Frequency Interference: RFI)を最小化するために、スクランブルされたりエンコードされたりする。一実施形態において、ガードバンドデータは、遷移数最少差動信号伝送方式(TMDS)を用いてエンコードされる。
一実施形態において、ソースデバイス110、シンクデバイス115、又はソースデバイス110若しくはシンクデバイス115の内部の要素を表すものは、データとして、非一時的コンピュータ可読媒体(例えばハードディスク、フラッシュドライブ、光学ドライブ)に記憶されてもよい。これらを表すものは、ふるまいレベル、レジスタ転送レベル、ロジック要素レベル、トランジスタレベル、及びレイアウトジオメトリレベルの記述でよい。
図2は、一実施形態において図1のソースデバイス110やシンクデバイス115として用いることに適した計算機200の詳細図である。例えば計算機200は、携帯電話、テレビ、ノートパソコン、又はタブレットなどである。計算機200は、プロセッサ202、メモリ203、ストレージモジュール204、入力モジュール206(例えばキーボードやマウスなど)、ディスプレイモジュール207(例えば液晶ディスプレイや有機 EL ディスプレイなど)、及び送受信機205などのコンポーネントを有し、これらはバス201を介して互いにデータや制御信号をやりとりする。
ストレージモジュール204は、1つ以上の非一時的なコンピュータ可読記憶媒体(ハードディスクドライブや solid state メモリなど)として実装され、メモリ203と協調するプロセッサ202によって実行されるソフトウェア命令を記憶する。オペレーティングシステムソフトウェアや他のアプリケーションソフトウェアもまた、プロセッサ202上で実行されるために、ストレージモジュール204に記憶されてもよい。
送受信機205は、マルティメディアデータや制御データの送信用又は受信用のポートに接続される。送信又は受信されるマルティメディアデータは、ビデオデータストリーム又はオーディオデータストリーム(HDMI(登録商標)データや MHL データ)を含みうる。マルティメディアデータは、High-Bandwidth Digital-Content Protection(HDCP)などの暗号化スキームを利用して、送信用に暗号化されてもよい。
図3は、一実施形態に係る送信機300のブロック図であり、送信機300は HDMI(登録商標)チャネルを介して送信されるデータのスクランブルやエンコードを行う。送信機300は、ソースデバイス110の中にある Integrated Circuit(IC)などのハードウェア要素でありうる。送信機300は様々な回路を含み、その中には、制御データ305、データアイランドデータ310及びビデオデータ315の中からの選択を行うマルチプレクサ320、マルチプレクサ320によって選択されたデータをスクランブルするスクランブラ325、スクランブルされたデータをエンコードするエンコーダ330、及び HDMI(登録商標)チャネル1へのインタフェース342が含まれる。
一実施形態において、HDMI(登録商標)ケーブルは4つの差動対を伝送し、それらは3つのデータチャネル(チャネル0、チャネル1及びチャネル2)及びクロックチャネルを含む。3つのデータチャネルは、ビデオデータ315、データアイランドデータ310及び制御データ305を伝送するために用いられる。送信機300は、3つのデータチャネルを介して送信されるべきビデオデータ315、データアイランドデータ310及び制御データ305を受信する。図3は、1つの HDMI(登録商標)データチャネル(データ線123及び124)を介した通信のための回路のみを示している。残りの HDMI(登録商標)データチャネルを介した通信のための回路は、図3に示される回路と多くの部分で類似している。
ビデオデータ315はアクティブビデオデータとガードバンドデータを含む。アクティブビデオデータはビデオピクセル情報を含む。ビデオピクセル情報は、ディスプレイデバイス(シンクデバイス115など)に表示されるべきピクセルの色レベルを示す。ガードバンドデータはガードデータを含む。ガードデータは、アクティブビデオデータを送信するために、アクティブビデオデータよりも前に送信される。ガードバンドデータは、ビデオデータ315よりも前に送信された他のデータとアクティブビデオデータとの干渉を避けるためのバッファとして機能する。
データアイランドデータ310は補助データ及びガードバンドデータを含む。補助データは、アクティブビデオデータに対応づけられた音声データを含みうる。補助データは、InfoFrame、アクティブオーディオストリームやアクティブビデオストリームを表す他の情報、又はソースデバイス110を表す他の情報を含みうる。補助データはパケットを用いて送信される。ガードバンドデータは、補助データパケットを送信するために補助データパケットよりも前に送信されてもよいし、補助データパケットの終わりを表すためにそのパケットの後に続いてもよい。ガードバンドデータは、データアイランドデータ310とデータアイランドデータ310の前後に送信されるデータとの干渉を避けるためのバッファとしても機能する。
制御データ305は制御情報を含む。制御情報はプリアンブルでありうる。プリアンブルは、データアイランドデータ310又はビデオデータ315を表す。制御情報はまた、水平同期情報又は垂直同期情報を含みうる。
マルチプレクサ320は、1つ以上の入力信号380を介して、制御データ305、データアイランドデータ310及びビデオデータ315を受信する。その後マルチプレクサ320は、制御データ305の内の1つを選択する。マルチプレクサ382は、異なる期間において異なる種類のデータがマルチプレクサ320から出力されるように、順に制御データ305、データアイランドデータ310及びビデオデータ315となる。異なる期間については、図4を参照して後に詳細に説明する。
スクランブラ325は、マルチプレクサ320から受信した制御データ305、データアイランドデータ310又はビデオデータ315をスクランブルする。データをスクランブルすることは、データ送信中に生じる電磁干渉(EMI)や無線周波数干渉(RFI)を減らすことに寄与する。スクランブラ325は、スクランブルされたデータを生成するために様々な技術を利用しうる。例えばスクランブラ325は、データの一部を転置したり反転したりすることで、スクランブルされたデータを生成する。また例えば、線形フィードバックシフトレジスタ(Linear Feedback Shift Register: LFSR)が疑似乱数を生成し、スクランブラがマルチプレクサから受信したデータと LFSR によって生成された疑似乱数との排他的論理和を算出することで、スクランブルされたスクランブルデータを生成する。スクランブルされたデータ348は、1つ以上の信号384を介してエンコーダ330へ送信される。
エンコーダ330は、EMI と RFI をさらに減らすために、スクランブルされたデータ348をエンコードして、エンコードされたキャラクタコード350を生成し、これをエンコーダ330からの出力とする。一実施形態において、エンコーダは、遷移数最少差動信号伝送方式(TMDS)エンコーダ332、TMDS エラー削減コーディング(TMDS error reduction coding: TERC4)エンコーダ334及び制御データエンコーダ336を含む。エンコーダ330は、スクランブルされたデータの種類に応じて、TMDS エンコーダ332、TERC4 エンコーダ334又は制御データエンコーダ336を用いて、スクランブラ325によって生成された、スクランブルされたデータをエンコードする。
TMDS エンコーダ332は、スクランブルされたデータを、遷移数最少かつ直流バランスがとれたコードにエンコードする。一実施形態において、TMDS エンコーダ332は、スクランブルされたデータのうち、(1)ガードバンド及び(2)アクティブビデオに対応する部分のみをエンコードする。他の実施形態において、TMDS エンコーダ332は、スクランブルされたデータのうち、他の種類のデータ(例えば補助データや制御データ)に対応する他の部分をエンコードしてもよい。
ガードバンドデータは、その性質上繰り返しが多くなることがあり、同じ値を頻繁に繰り返し送信することが要求されうる。他の種類のデータと比較すると、そのガードバンドデータの繰り返しの性質により、EMI と RFI が増加する傾向にある。そこで、ガードバンドデータのスクランブル及びエンコードにより、EMI と RFI の大幅な減少を実現できる。
TMDS エンコーダ332は、ディスパリティ回路340によって記憶及び管理されるディスパリティカウンタを用いて、送信用の TMDS キャラクタ350を生成する。詳細は、図5を用いて後に説明する。ディスパリティ回路340の一例は、デジタル値を記憶できるレジスタである。ディスパリティカウンタは、過去の或る期間に送信された0(論理低ビット)の数及び1の数(論理高ビット)の差異をモニタリングする。一実施形態において、ディスパリティ回路のディスパリティ値は、エンコーダ330による制御データ305の受信に応じた制御期間において0にリセットされる。ディスパリティ値は TMDS エンコーダ332によって調整されてもよく、これにより、TMDS エンコーダから出力されるコードの直流バランスを時間と共に維持する。
TERC4 エンコーダ334は、スクランブルされた補助データ及びオーディオデータ(データアイランド310パケットデータ)を TERC4 コードにエンコードする。TERC4 コードは、スクランブルされた補助データとオーディオデータの4ビットを、所定の10ビットコードにマッピングすることによって生成される。制御データエンコーダ336は、制御データの4ビットを10ビットの制御コードにエンコードする。制御データエンコーダ336は、直流バランスがとれているものの遷移数最少ではない制御コードを生成してもよい。通常、制御データエンコーダ336は、直流バランスをとるためにディスパリティ値を利用する一方で、TMDS エンコーダ332によって利用されるディスパリティ値と同じ値は利用しない。
インタフェース342は、エンコードされたコード350を1つ以上の信号386を介して受信する。インタフェース342は、エンコードされたコード350をシリアライズし、HDMI(登録商標)チャネル1を介して、エンコードされたコード350の差動信号を送信する。インタフェース342は、差動信号を送信するために、カレントモードロジックを利用してもよい。
図4は、一実施形態において、HDMI(登録商標)チャネルを介した送信のため、異なるデータ期間において、異なる種類のデータがどのように送信機に受信され、なおかつどのように異なったエンコードをされるのかの一例である。送信機300の動作は、3つの異なる期間(制御期間455、データアイランド期間460、及びビデオデータ期間465)に分けられる。これらの期間において、送信機300は、1クロック当たり最大8ビットのデータ(D0-D7)を受信し、これらのデータは10ビットのコード350としてチャネル1を介して送信される。
図4には、2つの制御期間455がある。制御期間は各データアイランド期間460より前にある。また制御期間455は、各ビデオ期間465よりも前にある。制御期間455の間、送信機300は、プリアンブル415を表す制御データ305を受信して処理する。プリアンブル415は、同一の2ビットの制御キャラクタを8つ含む列であり、制御キャラクタは、制御データ305の後のデータがビデオデータ315とデータアイランドデータ310のどちらであるかを示すものである。プリアンブル415は、制御データエンコーダ336によってスクランブルされ、なおかつ制御コードにコンバートされる。
データアイランド期間460において、送信機300は、データアイランドデータ310を受信して処理する。データアイランドデータ310は、先行ガードバンドデータ420及び後続ガードバンドデータ425を含む。先行ガードバンドデータ420は、第1の制御期間455からデータアイランド期間460への遷移を表す。後続ガードバンドデータ425は、データアイランド期間460から第2の制御期間455への遷移を表す。両種類のガードバンドデータ420及び423は、TMDS エンコーディングを用いる TMDS エンコーダ332によりスクランブル及びエンコードされる。
データアイランドデータ310はパケット形式のオーディオデータを更に含む。各パケットは、パケットデータ及びパケットデータの種類(すなわち、オーディオパケット、ヌルパケット、InfoFrame パケット)を示すヘッダを含みうる。パケット422は、TERC4 エンコーダ334により、スクランブル及び TERC4 エンコーディングされる。
ビデオ期間465において、送信機300は、ビデオデータ315を受信して処理する。ビデオデータ310は、先行ガードバンドデータ430及びアクティブビデオデータ440を有する。先行ガードバンドデータ420は、第2の制御期間455からビデオ期間460への遷移を示す。先行ガードバンドデータ430及びアクティブビデオデータ440は共に、 TMDS エンコーダ332により、スクランブルされた後にエンコードされる。
一実施形態において、ディスパリティ回路340のディスパリティ値は、制御期間455においてリセットされる。ディスパリティ値は、先行ガードバンドデータ420及び後続ガードバンドデータ425をエンコードして先行ガードバンドデータ420及び後続ガードバンドデータ425の直流バランスを保つために、データアイランド期間460において利用される。データアイランドパケット422及び423を TERC4 エンコーディングする際、ディスパリティ値は、維持されるものの、利用されない。またディスパリティ値は、ビデオ期間465において、先行ガードバンドデータ435及びアクティブビデオデータ440を TMDS エンコーディングするために利用される。
なお、図4は、HDMI(登録商標)チャネル1についての送信機300の動作を示している。一実施形態において、他のチャネルについての送信機300の動作は、図4に示されるものと同様である。他の実施形態において、HDMI(登録商標)チャネル0についての送信機300の動作は多少異なる。具体的には、或る実施形態において、HDMI(登録商標)チャネル0について、送信機300は、データアイランドデータ310のガードバンドデータ420及び425に対し、TMDS エンコーディングを適用する代わりに TERC4 エンコーディングを適用しうる。
図5は、一実施形態においてガードバンドデータをエンコーディングする方法のフローチャートを示している。ステップ505において、TMDS エンコーダ332は8ビットのスクランブルされたガードバンドデータを受信する。スクランブルされたガードバンドデータは、データアイランドデータ310においては補助データの前後いずれかにあることがあり、ビデオデータ315においてはアクティブビデオデータの前にあることがある。TMDS エンコーダ332は、TMDS アルゴリズムを用いて、8ビットのスクランブルされたガードバンドデータをエンコードする。通常、ガードバンドデータの TMDS エンコーディングは2つのステップで実行される。1つ目のステップは、送信されるデータの遷移数を減らすためのものであり、2つ目のステップは、直流バランスのとれたデータを生成するためのものである。一実施形態において、図5に示された方法は、アクティブビデオデータにも適用されうる。
ステップ510において、TMDS エンコーダ332は、遷移数最少の9ビットのデータを生成する。詳細は図6を用いて後に説明する。TMDS エンコーダ332は、上記8ビットのデータについて、低ビットから高ビットへの遷移及びその逆の遷移の数を減らして、遷移数最少のデータを生成する(510)。遷移数を減らすことは、データ送信中に発生する EMI 及び RFI を減少させる。
遷移数最少の9ビットのデータを生成する(510)ため、TMDS エンコーダ322は、最初の1ビットを変更せず、後続の各ビットについて、その1つ前のビットとの排他的論理和演算又は排他的否定論理和演算を実行する。TMDS エンコーダ332は、どちらの演算の結果によって遷移数が最少になるかで、排他的論理和演算と排他的否定論理和演算のどちらを実行するかを決定する。変換された8ビットのデータに付加される9番目のビットは、遷移数最少のデータを生成するために排他的論理和演算と排他的否定論理和演算のどちらが使われたかを示す。
ステップ515において、遷移数最少の9ビットのデータが生成された後、TMDS エンコーダは、10ビットの直流バランスがとれたデータを生成する。詳細は図7を用いて後に説明する。最初の8ビットのデータは、高ビットと低ビットの数のバランスをとるために選択的に反転される。これにより、一連のコード350における直流レベルの平均値が維持される。遷移数最少の9ビットのデータに付加される10番目のビットは、直流レベルのバランスをとるために最初の8ビットのデータが反転されたか否かを示す。
図6は、一実施形態において遷移数最少の9ビットのデータを生成する方法のフローチャートである。TMDS エンコーダ332は8ビットのスクランブルされたデータを受信する。TMDS エンコーダ332は、8ビットのスクランブルされたデータ605についての判定610をするために、以下の論理演算を行う。TMDS エンコーダ332は、8ビットのスクランブルされたデータについて以下の3つの論理結果を割り出す。第1の結果として、TMDS エンコーダ332は、上記8ビットのデータに含まれる1(高ビット)の数が4つより多いか否かを割り出す。第2の結果として、TMDS エンコーダ332は、上記8ビットのデータに含まれる1の数が4であるか否かを割り出す。第3の結果として、TMDS エンコーダ332は、1番目のビットが0であるか否かを割り出す。そして、TMDS エンコーダは、判定610をするために以下の論理演算を行う。TMDS エンコーダは、第2の結果と第3の結果との論理積演算を行い、なおかつその論理積演算の結果と第1の結果との論理和演算を行って、判定610に至る。
判定610が偽の場合(620)、TMDS エンコーダ332は以下の動作を行う。中間値の1番目のビットを、8ビットのスクランブルされたデータ605の1番目のビットと同じものに設定する。中間値の2番目から8番目のビットを決定するために、TMDS エンコーダ332は、8ビットのスクランブルされたデータ605の各ビットと、中間値における1つ前のビットとについて排他的論理和演算を行う。例えば、中間値の2番目のビットを決定するために、TMDS エンコーダ332は、中間値の1番目のビットと8ビットのスクランブルされたデータ605の2番目のビットとについて排他的論理和演算を行う。同様に、中間値の3番目のビットを決定するために、TMDS エンコーダ332は、中間値の2番目のビットと、8ビットのスクランブルされたデータ605の3番目のビットとについて排他的論理和演算を行う。これにより、TMDS エンコーダは、中間値の2番目から8番目のビットを、8ビットのスクランブルされたデータ605の各ビットと中間値における1つ前のビットとについての排他的論理和演算によって算出された結果と同じものにする。中間値の9番目のビットは1に設定される。これは、8ビットのスクランブルされたデータ605の2番目から8番目のビットについて排他的論理和演算が実行されたことを示す。この結果である中間値は、9ビットの遷移数最少中間コード640である。
一方、判定610が真の場合(630)、TMDS エンコーダ332は以下の動作を行う。中間値の1番目のビットを、8ビットのスクランブルされたデータ605の1番目のビットと同じものに設定する。中間値の2番目から8番目のビットを決定するために、TMDS エンコーダ332は、8ビットのスクランブルされたデータ605の各ビットと、中間値における1つ前のビットとについて排他的否定論理和演算を行う。例えば、中間値の2番目のビットを決定するために、TMDS エンコーダ332は、中間値の1番目のビットと8ビットのスクランブルされたデータ605の2番目のビットとについて排他的否定論理和演算を行う。同様に、中間値の3番目のビットを決定するために、TMDS エンコーダ332は、中間値の2番目のビットと、8ビットのスクランブルされたデータ605の3番目のビットとについて排他的否定論理和演算を行う。これにより、TMDS エンコーダは、中間値の2番目から8番目のビットを、8ビットのスクランブルされたデータ605の各ビットと中間値における1つ前のビットとについての排他的否定論理和演算によって算出された結果と同じものにする。中間値の9番目のビットは0に設定される。これは、8ビットのスクランブルされたデータ605の2番目から8番目のビットについて排他的否定論理和演算が実行されたことを示す。この結果である中間値は、9ビットの遷移数最少中間コード640である。
図7Aから7Cは、一実施形態において10ビットの直流バランスがとれたデータを生成する方法のフローチャートである。TMDS エンコーダ332は、遷移数最少かつ直流バランスがとれた10ビットのコードを生成するために、ディスパリティカウンタ340の値702に基づいて、9ビットの中間コード640に対して演算を行う。TMDS エンコーダ332は、9ビットの中間コード640について判定710を行うために、以下の論理演算を行う。TMDS エンコーダ332は、9ビットの中間コード640について以下の2つの結果を割り出す。第1の結果として、TMDS エンコーダ332は、ディスパリティカウンタ340の値が0に等しいか否かを割り出す。第2の結果として、TMDS エンコーダ332は、中間コード640の最初の8ビットに含まれる1の数と、中間コード640の最初の8ビットに含まれる0の数とが等しいか否かを割り出す。そして TMDS エンコーダは、第1の結果と第2の結果との論理和を算出して、判定710に至る。
図7Bは、判定710が偽である場合(720)に TMDS エンコーダ332によって行われる動作を示す。TMDS エンコーダ332は、以下の動作を行って判定722に至る。TMDS エンコーダ332は、8ビットのスクランブルされたデータ605について以下の4つの結果を割り出す。第1の結果として、TMDS エンコーダ332は、カウンタ340の値が0より大きいか否かを割り出す。第2の結果として、TMDS エンコーダ332は、中間コード640の最初の8ビットに含まれる1の数が、中間コード640の最初の8ビットに含まれる0の数より多いか否かを割り出す。第3の結果として、TMDS エンコーダ332は、カウンタ340の値が0より小さいか否かを割り出す。第4の結果として、TMDS エンコーダ332は、中間コード640の最初の8ビットに含まれる1の数が、中間コード640の最初の8ビットに含まれる0の数より少ないか否かを割り出す。TMDS エンコーダ332は、判定722を行うために、以下の論理演算を行う。TMDS エンコーダは、第1の結果と第2の結果とについて論理積演算を行い、第3の結果と第4の結果とについて論理積演算を行う。そして、TMDS エンコーダ332は、これら2つの論理積演算の結果について論理和演算を行う。
判定722が偽の場合(724)、TMDS エンコーダ332は以下の動作を行う。出力値の10ビット目を0に設定し、出力値の9ビット目を中間コード640の9ビット目の値と同じものに設定する。この出力値は、送信機300による送信のために TMDS エンコーダ332が生成する、10ビットの直流バランスがとれたコードを表す。出力値の1ビット目から8ビット目を、中間コード640の1ビット目から8ビット目と同じものに設定する。カウンタ340の新たな値を「(カウンタ340の値)−(中間コードの9ビット目を反転した値)×2+(中間コード640の最初の8ビットに含まれる1の数と0の数の差)」に等しい値に設定する。
判定722が真の場合(726)、TMDS エンコーダ332は以下の動作を行う。出力値の10ビット目を1に設定し、出力値の9ビット目を中間コード640の9ビット目の値と同じものに設定する。出力値の1ビット目から8ビット目を、中間コード640の1ビット目から8ビット目を反転したものと同じものに設定する。カウンタ340の新たな値を「(カウンタ340の値)−(中間コードの9ビット目)×2+(中間コード640の最初の8ビットに含まれる0の数と1の数との差)」に等しい値に設定する。
図7Cは、判定710が真である場合(730)において TMDS エンコーダ332によって行われる動作を示す。判定710が真である場合、TMDS エンコーダ332は以下の動作を行う。TMDS エンコーダ332は、出力値の9ビット目を中間コード640の9ビット目の値と同じものに設定する。出力値の10ビット目を、中間コード640の9ビット目の値を反転したものと同じものに設定する。中間コード640の9ビット目が1であれば、出力値の1ビット目から8ビット目を、中間コード640の1ビット目から8ビット目と同じものに設定する。中間コード640の9ビット目が0であれば、代わりに、出力値の1ビット目から8ビット目を、中間コード640の1ビット目から8ビット目を反転したものと同じものに設定する。
TMDS エンコーダ332は、ディスパリティカウンタ340の値を、中間コード640の9ビット目の値に基づいて設定する。TMDS エンコーダ332は、中間コード640の9ビット目の値が0に等しいか否かの判定734を行う。判定734が真である場合(736)、TMDS エンコーダ332は、ディスパリティカウンタ340の新たな値を、「ディスパリティカウンタ340の値)+(中間コード640の最初の8ビットに含まれる0の数と1の数の差)」に等しい値に設定する。判定734が偽である場合(738)、TMDS エンコーダ332は、ディスパリティカウンタ340の新たな値を、「ディスパリティカウンタ340の値)+(中間コード640の最初の8ビットに含まれる1の数と0の数の差)」に等しい値に設定する。
本開示を読む上で、当業者は、HDMI(登録商標)ケーブル120の様なインタフェースケーブルの差動対を介して送信されるデータのスクランブル及びエンコードを行うシステムに関して、追加的な代替デザインを受け入れうる。よって、提案されている開示について特定の実施形態及びアプリケーションが図示及び記載されているものの、実施形態はここに開示されている構造及び構成要素に厳密に限定されるものでなく、添付の請求項に規定の本開示の思想及び範囲から逸脱することなく、本開示の方法及び装置の配置、動作、及び詳細に関して、当業者に明らかな種々の訂正、変更、及び修正が加えられてもよい。