(57)【特許請求の範囲】
【請求項１】
８Ｂ／１０Ｂの符号化方式で用いられるＤコードを連続させた列に、当該符号化方式で用いられるＫコードを連続させたパターンを決められた間隔で差し込んだコード列を生成する生成手段と、前記生成手段により生成されたコード列に第１クロックを重畳させた重畳データを送信する送信手段とを備える送信装置から送信されてきた重畳データから前記第１クロックを抽出する抽出手段と、
データを記憶する記憶手段と、
前記送信手段により送信されてきた重畳データに含まれる前記第１及び第２の種類のコードを、前記コード列において並べられている順番で、前記抽出手段により抽出された第１クロックに同期させて前記記憶手段に書き込む書き込み手段と、
前記第１及び第２の種類のコードを、前記書き込み手段により書き込まれた順番で、前記第１クロックと周波数が共通する第２クロックに同期させて前記記憶手段から読み出す読み出し手段と、
前記書き込み手段による書き込み速度が前記読み出し手段による読み出し速度よりも速い第１の場合には、前記パターンに含まれる前記第２の種類のコードを、当該パターンに対する当該第２の種類のコードの抜き差しの仕方を定めた複数の方法のうちのいずれかの方法で抜き取った上で、前記記憶手段への書き込みを行うよう前記書き込み手段を制御し、当該書き込み速度が当該読み出し速度よりも遅い第２の場合には、当該パターンに含まれる当該第２の種類のコードを当該方法で差し込んだ上で、前記記憶手段への書き込みを行うよう前記書き込み手段を制御する制御手段と
を備え、
前記複数の方法は、
第１のＫコード及び当該第１のＫコードの後に連続して極性を変化させない第２のＫコードを前記パターンが含み、且つ、前記第１の場合には当該第２のＫコードを抜き取って、前記第２の場合には当該第２のＫコードの後に当該第２のＫコードをもう１つ差し込むという第１の方法と、
複数のＫコードが連続するＫコード列であって全体で極性を変化させないＫコード列を前記パターンが含み、且つ、前記第１の場合には当該Ｋコード列を抜き取って、前記第２の場合には当該Ｋコード列の後に当該Ｋコード列をもう１つ差し込むという第２の方法とを含み、
前記パターンは、
前記第１のＫコードが極性を変化させない場合には、当該第１のＫコードと２N−１個（Ｎは自然数）の前記第２のＫコードとを連続させたものを前記Ｋコード列として含み、
前記第１のＫコードが極性を変化させる場合には、当該第１のＫコードと２N−１個の前記第２のＫコードとの並びを２つ連続させたものを前記Ｋコード列として含み、且つ、当該Ｋコード列の後に２N個の前記第２のＫコードを並べたものを含む
ことを特徴とする受信装置。
【請求項２】
前記第１のＫコードは、Ｋ２８．５であり、
前記第２のＫコードは、Ｋ２８．４である
ことを特徴とする請求項１に記載の受信装置。
【請求項３】
８Ｂ／１０Ｂの符号化方式で用いられるＤコードを連続させた列に、当該符号化方式で用いられるＫコードを連続させたパターンを決められた間隔で差し込んだコード列を生成する生成手段と、前記生成手段により生成されたコード列に第１クロックを重畳させた重畳データを送信する送信手段と
を備える送信装置と、
請求項１または２に記載の受信装置と
を具備することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置及び通信システムに関する。
【背景技術】
【０００２】
特許文献１には、シリアル通信において、転送されてきたコードに含まれるタイミング調整用のシンボルを挿抜して、受信側クロック及び送信側クロックの偏差による周波数差を調整する技術について記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２５０１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、パターンに対してコードを抜き差しして送信側及び受信側のクロックの誤差を調整する場合に、コードの抜き差しの方法が複数定められていても、パターンの種類を１つにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の請求項１に係る受信装置は、８Ｂ／１０Ｂの符号化方式で用いられるＤコードを連続させた列に、当該符号化方式で用いられるＫコードを連続させたパターンを決められた間隔で差し込んだコード列を生成する生成手段と、前記生成手段により生成されたコード列に第１クロックを重畳させた重畳データを送信する送信手段とを備える送信装置から送信されてきた重畳データから前記第１クロックを抽出する抽出手段と、データを記憶する記憶手段と、前記送信手段により送信されてきた重畳データに含まれる前記第１及び第２の種類のコードを、前記コード列において並べられている順番で、前記抽出手段により抽出された第１クロックに同期させて前記記憶手段に書き込む書き込み手段と、前記第１及び第２の種類のコードを、前記書き込み手段により書き込まれた順番で、前記第１クロックと周波数が共通する第２クロックに同期させて前記記憶手段から読み出す読み出し手段と、前記書き込み手段による書き込み速度が前記読み出し手段による読み出し速度よりも速い第１の場合には、前記パターンに含まれる前記第２の種類のコードを、当該パターンに対する当該第２の種類のコードの抜き差しの仕方を定めた複数の方法のうちのいずれかの方法で抜き取った上で、前記記憶手段への書き込みを行うよう前記書き込み手段を制御し、当該書き込み速度が当該読み出し速度よりも遅い第２の場合には、当該パターンに含まれる当該第２の種類のコードを当該方法で差し込んだ上で、前記記憶手段への書き込みを行うよう前記書き込み手段を制御する制御手段とを備え、前記複数の方法は、第１のＫコード及び当該第１のＫコードの後に連続して極性を変化させない第２のＫコードを前記パターンが含み、且つ、前記第１の場合には当該第２のＫコードを抜き取って、前記第２の場合には当該第２のＫコードの後に当該第２のＫコードをもう１つ差し込むという第１の方法と、複数のＫコードが連続するＫコード列であって全体で極性を変化させないＫコード列を前記パターンが含み、且つ、前記第１の場合には当該Ｋコード列を抜き取って、前記第２の場合には当該Ｋコード列の後に当該Ｋコード列をもう１つ差し込むという第２の方法とを含み、前記パターンは、前記第１のＫコードが極性を変化させない場合には、当該第１のＫコードと２N−１個（Ｎは自然数）の前記第２のＫコードとを連続させたものを前記Ｋコード列として含み、前記第１のＫコードが極性を変化させる場合には、当該第１のＫコードと２N−１個の前記第２のＫコードとの並びを２つ連続させたものを前記Ｋコード列として含み、且つ、当該Ｋコード列の後に２N個の前記第２のＫコードを並べたものを含むことを特徴とする。
【０００８】
本発明の請求項２に係る受信装置は、請求項１に記載の構成において、前記第１のＫコードは、Ｋ２８．５であり、前記第２のＫコードは、Ｋ２８．４であることを特徴とする。
【０００９】
本発明の請求項３に係る通信システムは、８Ｂ／１０Ｂの符号化方式で用いられるＤコードを連続させた列に、当該符号化方式で用いられるＫコードを連続させたパターンを決められた間隔で差し込んだコード列を生成する生成手段と、前記生成手段により生成されたコード列に第１クロックを重畳させた重畳データを送信する送信手段とを備える送信装置と、請求項１または２に記載の受信装置とを具備することを特徴とする。
【発明の効果】
【００１０】
請求項１、５に係る発明によれば、パターンに含まれるコードを抜き差しして送信側及び受信側のクロックの誤差を調整する場合に、コードの抜き差しの方法が複数定められていても、パターンの種類を１つにすることができる。
請求項２に係る発明によれば、８Ｂ１０Ｂ方式でデータを符号化して送信する場合に、１種類のパターンで送信側及び受信側のクロックの誤差を調整することができる。
請求項３に係る発明によれば、コードの抜き差しの仕方として第１及び第２の方法を採用した場合に、パターンの種類を１つにすることができる。
請求項４に係る発明によれば、第１及び第２のＫコード以外が他の用途に用いられている場合に、パターンの種類を１つにすることができる。
【図面の簡単な説明】
【００１１】
【図１】画像形成システムの構成を示すブロック図である。
【図２】送信装置の構成を示すブロック図である。
【図３】受信装置の構成を示すブロック図である。
【図４】生成部によるコード列の生成方法を説明するための図である。
【図５】パターンの詳細を説明するための図である。
【図６】第１の方法について説明するための図である。
【図７】第１の方法でのＫコードの抜き差しの一例を示す図である。
【図８】第２の方法について説明するための図である。
【図９】第２の方法でのＫコードの抜き差しの一例を示す図である。
【図１０】第１の方法でのＫコードの抜き差しの一例を示す図である。
【図１１】第２の方法でのＫコードの抜き差しの一例を示す図である。
【図１２】第１の方法でのＫコードの抜き差しの一例を示す図である。
【図１３】第２の方法でのＫコードの抜き差しの一例を示す図である。
【発明を実施するための形態】
【００１２】
［第１実施形態］
図１は、本発明の第１実施形態における画像形成システム１の構成を示すブロック図である。画像形成システム１は、用紙等の媒体に画像を形成するものであり、画像処理装置２と、シリアルリンク３と、画像出力装置４とを備える。画像処理装置２は、図示せぬ外部装置から送信されてきたページ記述言語で記述された画像データを受信すると、受信した画像データにＲＩＰ（Raster Image Processing）処理を施し、例えば、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（黒）の各色のビットマップの画像データを生成する。画像出力装置４は、ＣＭＹＫの各色の画像データが入力されると、それらの画像データが表す画像を出力する。画像処理装置２から画像出力装置４への画像データの通信は、シリアルリンク３を介して行われる。
【００１３】
シリアルリンク３は、光ファイバを用いたケーブル３０Ｃ、３０Ｍ、３０Ｙ及び３０Ｋ（以下、それぞれを区別しない場合は「ケーブル３０」という。）を有する。画像処理装置２は、画像データを送信する送信装置２０Ｃ、２０Ｍ、２０Ｙ及び２０Ｋ（以下、それぞれを区別しない場合は「送信装置２０」という。）を備える。画像出力装置４は、送信されてきた画像データを受信する受信装置４０Ｃ、４０Ｍ、４０Ｙ及び４０Ｋ（以下、それぞれを区別しない場合は「受信装置４０」という。）を備える。ケーブル３０は、それぞれ末尾の符号（Ｃ、Ｍ、ＹまたはＫ）が共通する送信装置２０及び受信装置４０を接続する。送信装置２０は、末尾の符号が表す色（Ｃ色、Ｍ色、Ｙ色またはＫ色）の画像データを受信装置４０に送信する。
【００１４】
画像出力装置４は、各受信装置４０と接続された画像形成部５０を備える。画像形成部５０は、電子写真方式によって紙にトナー像を形成する。各受信装置４０は、各々が受信した画像データを画像形成部５０にそれぞれ供給する。画像形成部５０は、供給されたこれらの画像データに基づいて各色のトナー像を紙に転写し、紙に転写されたトナー像に熱と圧力を加えて定着させた後、トナー像が形成された紙を画像出力装置４の外へ排出する。
【００１５】
以下、画像処理装置２及び画像出力装置４が行う通信の詳細について説明する。
図２は、送信装置２０のハードウェア構成を示すブロック図である。送信装置２０は、データ処理部２１０と、パターン差し込み部２２０と、符号化部２３０と、クロック生成部２４０と、シリアライズ部２５０と、ドライバ２６０とを備える。データ処理部２１０には、外部装置から送信されてきた画像データが供給される。データ処理部２１０は、供給された画像データにＲＩＰ処理を行い、本実施形態では、バイトストリーム（８ビット単位のデータの列）のビットマップの画像データを生成する。データ処理部２１０は、生成した画像データをパターン差し込み部２２０に供給する。
【００１６】
パターン差し込み部２２０は、８Ｂ／１０Ｂと呼ばれる符号化方式で制御用に用いられるＫコードの８ビットコードを複数並べたパターンを、供給された画像データに決められた間隔で差し込む。パターン差し込み部２２０は、パターンを差し込んだ画像データを符号化部２３０に供給する。符号化部２３０は、供給された画像データを８Ｂ／１０Ｂ方式で符号化し、１０ビット幅の画像データに変換する。この変換がされた後の画像データは、８Ｂ／１０Ｂ方式でデータ用に用いられるＤコードを連続させた列に前述したパターンが決められた間隔で差し込まれたコード列を表すものとなる。パターン差し込み部２２０及び符号化部２３０は、互いに協働することでこのコード列を生成する生成部２０１（本発明に係る「生成手段」の一例）として機能する。符号化部２３０は、符号化した画像データをシリアライズ部２５０に供給する。
【００１７】
クロック生成部２４０は、定められた周波数のリファレンスクロック（以下「第１クロック」という。）を生成し、生成した第１クロックをシリアライズ部２５０に供給する。符号化部２３０からシリアライズ部２５０に供給された画像データは、パラレルデータとなっている。シリアライズ部２５０は、この画像データを、パラレルデータからシリアルデータに変換してドライバ２６０に供給する。その際、シリアライズ部２５０は、クロック生成部２４０から供給された第１クロックを重畳させる。具体的には、シリアライズ部２５０は、第１クロックの１周期毎に画像データから１ビットずつ抽出し、抽出したビットを順次ドライバ２６０に供給する。このようにしてドライバ２６０に供給されるシリアルデータは、第１クロックが重畳された重畳データとなる。ドライバ２６０は、ケーブル３０に接続されており、供給されたシリアルデータを光信号に変換してケーブル３０に出力する。シリアライズ部２５０及びドライバ２６０は、生成部２０１が生成したコード列にリファレンスクロックを重畳させたシリアルデータを送信する送信部２０２（本発明に係る「送信手段」の一例）として機能する。以上の各部の働きにより、送信装置２０は、画像データを受信装置４０に送信する。
【００１８】
図３は、受信装置４０のハードウェア構成を示すブロック図である。受信装置４０は、レシーバ４１０と、デシリアライズ部４２０と、クロック抽出部４３０と、クロック生成部４４０と、エラスティックバッファ４５０と、復号部４６０とを備える。レシーバ４１０は、ケーブル３０に接続されており、送信装置２０が出力した光信号を受信する。レシーバ４１０は、受信した光信号に応じたシリアルデータをデシリアライズ部４２０及びクロック抽出部４３０に供給する。デシリアライズ部４２０は、レシーバ４１０から供給されたシリアルデータを１０ビット幅のパラレルデータに変換してエラスティックバッファ４５０に供給する。エラスティックバッファ４５０は、本実施形態では、この１０ビットを単位として処理を行う。処理が行われる単位のことをステージという。つまり、エラスティックバッファ４５０は、１ステージで１０ビットのデータを処理する。
【００１９】
クロック抽出部４３０は、ＰＬＬ（Phase Locked Loop）等の回路を有し、供給されたシリアルデータから、このシリアルデータに重畳されている第１クロックを抽出する。クロック抽出部４３０は、抽出した第１クロックをエラスティックバッファ４５０に供給する。クロック抽出部４３０は、本発明に係る「抽出部」の一例である。クロック生成部４４０は、第１クロックと共通する周波数のリファレンスクロック（以下「第２クロック」という。）を生成し、生成した第２クロックをエラスティックバッファ４５０に供給する。
【００２０】
エラスティックバッファ４５０は、書き込み部４５１と、記憶部４５２と、読み出し部４５３と、制御部４５４とを有する。書き込み部４５１には、デシリアライズ部４２０からパラレルデータが供給されてくる。このパラレルデータは、送信装置２０の生成部２０１において生成されたコード列を表しており、上述したＤコード及びＫコードが含まれている。また、書き込み部４５１には、クロック抽出部４３０から第１クロックが供給される。書き込み部４５１は、これらのＤコード及びＫコードを、コード列において連続している順番で第１クロックに同期させて記憶部４５２に書き込む。書き込み部４５１は、本発明に係る「書き込み手段」の一例である。
【００２１】
記憶部４５２は、メモリなどの、データを記憶する記憶手段である。読み出し部４５３には、クロック生成部４４０から第２クロックが供給される。読み出し部４５３は、Ｄコード及びＫコードを、記憶部４５２から、書き込み部４５１により書き込まれた順番に第２クロックに同期させて読み出す。読み出し部４５３は、本発明に係る「読み出し手段」の一例である。
【００２２】
クロック生成部２４０が生成する第１クロックと、クロック生成部４４０が生成する第２クロックとは、上述したように周波数が共通しているが、継続して一致することはあまりなく、１００ｐｐｍ（parts per million）程度の誤差が生じることがある。この誤差により第２クロックが第１クロックよりも速くなると、書き込み部４５１が記憶部４５２に書き込む速度（書き込み速度）よりも読み出し部４５３が記憶部４５２から読み出す速度（読み出し速度）の方が速くなる。この状態が続くと、記憶部４５２に記憶されるデータが減少し続けてついには空になってしまういわゆるアンダーブローが発生し、例えば読み出し部４５３によるＤコード及びＫコードの読み出しが失敗することになる。反対に、この誤差により第２クロックが第１クロックよりも遅くなると、書き込み速度よりも読み出し速度の方が遅くなる。この状態が続くと、記憶部４５２に記憶されるデータが増加し続けてついには一杯になるいわゆるオーバーフローが発生し、例えば書き込み部４５１によるＤコード及びＫコードの書き込みが失敗することになる。
【００２３】
制御部４５４は、記憶部４５２を監視しており、記憶部４５２に記憶されているデータの総量を示すデータを定められた時間の間隔（例えば１００μｓｅｃ毎）で取得する。制御部４５４は、取得したデータに基づき、書き込み速度と読み出し速度を比較する。詳細には、制御部４５４は、取得したデータが示す総量が、決められた大きさ（例えば記憶部４５２の記憶容量の半分）に比べて大きい場合、書き込み速度が読み出し速度よりも速いと判断し、その大きさに比べて小さい場合、書き込み速度が読み出し速度よりも遅いと判断する。制御部４５４は、この判断の結果、書き込み速度が読み出し速度よりも速い場合（以下「第１の場合」という。）には、上述したパターンに含まれるＫコードを後述する方法で抜き取った上で、記憶部４５２への書き込みを行うよう書き込み部４５１を制御する。また、制御部４５４は、この判断の結果、書き込み速度が読み出し速度よりも遅い場合（以下「第２の場合」という。）には、上述したパターンに含まれるＫコードのうち予め定められたものをもう１組後述する方法で差し込んだ上で、記憶部４５２への書き込みを行うよう書き込み部４５１を制御する。つまり、制御部４５４は、書き込み部４５１に対して、書き込み速度及び読み込み速度の関係に応じて、パターンにおけるＫコードの抜き取りまたは差し込みを指示する。制御部４５４は、本発明に係る「制御手段」の一例である。
【００２４】
制御部４５４は、第１及び第２の場合に、上記の抜き取り及び差し込みの指示を、それぞれ１度だけ行う。書き込み部４５１は、これらの指示により、１度だけＫコードの抜き取り及び差し込みをそれぞれ行う。これにより書き込み速度及び読み込み速度の差が解消していなければ、次に制御部４５４が両速度を比較したときに、再度その差を解消させるための指示を制御部４５４が行う。このように制御部４５４は、両速度の差が解消するまで上記の指示を繰り返し行う。
【００２５】
制御部４５４により上記の制御が行われることで、第１及び第２クロックに誤差が生じても、アンダーフローやオーバーフローが発生することなく、読み出し部４５３による読み出しが継続される。読み出し部４５３は、読み出したＤコード及びＫコードを、順次復号部４６０に供給する。復号部４６０は、読み出し部４５３から供給されたＤコード及びＫコードを、８Ｂ／１０Ｂ方式で１０ビット幅のパラレルデータから８ビット幅のパラレルデータに復号する。復号部４６０は、復号後のパラレルデータからパターン差し込み部２２０により差し込まれたパターンを抜き出したものを図１に示す画像形成部５０に出力する。こうして復号部４６０から出力されたデータは、データ処理部２１０により生成されたビットマップの画像データとなっている。
【００２６】
続いて、画像形成システム１による画像データへの上述したパターンの差し込み及びパターンに対するＫコードの抜き差しについて詳細に説明する。
図４は、生成部２０１によるコード列の生成方法を説明するための図である。図４（ａ）では、図１に示すデータ処理部２１０により生成されたバイトストリームの画像データが示されている。以降の図では、図の左から右に向けて、図４（ａ）であれば矢印Ａ１が指す方向に向けて、データが順番に並んでいるものとして示す。図４（ａ）に示す「８ｂ」とは、それぞれ８ビットのデータであることを示している。図４（ｂ）では、Ｋコードの８ビットコードを複数並べたパターンＰ８が差し込まれた画像データが示されている。図４（ｂ）に示す「Ｋ１」は、第１のＫコードの８ビットコードであり、「Ｋ２」は、第２のＫコードの８ビットコードである。本実施形態では、第１のＫコードはＫ２８．５（８ビットコードは「１０１１１１００」）であり、第２のＫコードはＫ２８．４（８ビットコードは「１００１１１００」）である。つまり、パターンＰ８は、Ｋ１、Ｋ２、Ｋ１、Ｋ２、Ｋ２、Ｋ２の順番にＫ２８．５及びＫ２８．４を連続させたものである。
【００２７】
図４（ｃ）では、符号化部２３０により符号化された画像データが示されている。この画像データは、上述したとおり１０ビット幅の画像データである。図４（ｃ）に示す「１０ｂ」とは、それぞれ１０ビットのデータであることを示している。これらは、具体的には、それぞれがＤコード、すなわち０及び１を複数通りの順列で個数の合計が１０となるようにして並べたコード（本発明に係る「第１の種類のコード」の一例）、のいずれかである。また、図４（ｃ）に示す「Ｋ１」及び「Ｋ２」は、それぞれＫ２８．５及びＫ２８．４の１０ビットコードを示している。これらのＫコードは、０及び１をＤコードとは異なる複数通りの順列で個数の合計が１０となるようにして並べたコード（本発明に係る「第２の種類のコード」の一例）である。図４（ｃ）では、パターンＰ８が符号化されたものをパターンＰ１０として示し、パターンＰ１０の直前のＤコードをＤ１、直後のＤコードをＤ２として示している。パターンＰ１０の詳細な内容について、図５を参照して説明する。
【００２８】
図５は、パターンＰ１０の詳細を説明するための図である。図５（ａ）では、図４（ｃ）に示したパターンＰ１０を拡大して示している。パターンＰ１０は、連続する６つのＫコードであるＫ１１、Ｋ１２、Ｋ１３、Ｋ１４、Ｋ１５及びＫ１６で構成されている。各Ｋコードの内容は、ＤコードＤ１までのランニングディスパリティ（running disparity、以下「ＲＤ」という）によって異なる。ＲＤとは、８Ｂ／１０Ｂ方式で符号化された直前のデータまでの「１」の累積個数と「０」の累積個数との差のことである。８Ｂ／１０Ｂ方式では、ＲＤが「＋１」（これをプラスの極性という）か「−１」（これをマイナスの極性という）のいずれかになるように符号化される。８Ｂ／１０Ｂ方式で用いられるコード、すなわちＤコード及びＫコードは、いずれも、「１」が６個で「０」が４個、「１」が５個で「０」が５個、「１」が４個で「０」が６個という組み合わせとなるように定められている。そのため、各コードにおいて「１」の個数から「０」の個数を減じた値は、「＋２」、「０」または「−２」のいずれかになる。
【００２９】
Ｄコード及びＫコードは、いずれも、直前までのＲＤの極性がマイナスであるときに用いられるコード（「ＲＤ−のコード」という）と、直前までのＲＤの極性がプラスであるときに用いられるコード（「ＲＤ＋のコード」という）とが定められている。例えば、Ｋ２８．５であれば、ＲＤ−のコードが「００１１１１１０１０」であり、ＲＤ＋のコードが「１１０００００１０１」である。Ｋ２８．５の場合、ＲＤ−のときには、「１」の個数の方が多いコードに符号化されて、ＲＤが「−１」から「＋１」となり、ＲＤ＋のときには、「０」の個数の方が多いコードに符号化することで、ＲＤが「＋１」から「−１」となる。また、Ｋ２８．４であれば、ＲＤ−のコードが「００１１１１００１０」であり、ＲＤ＋のコードが「１１００００１１０１」である。Ｋ２８．４の場合、ＲＤの極性がプラスであってもマイナスであっても、「１」及び「０」の個数が同じであるため、極性が変わらない。このようにＲＤの極性を変化させない性質のことを、ニュートラルという。
【００３０】
図５（ｂ）では、ＤコードＤ１までのＲＤの極性がマイナスの場合のパターンＰ１０を示している。この場合、Ｋ１１は、ＲＤ−のＫ２８．５のコードであり、ＲＤ−からＲＤ＋に極性を変化させている。Ｋ１２は、ＲＤ＋のＫ２８．４のコードであるが、ニュートラルなコードであるため、ＲＤの極性をプラスのまま変化させていない。Ｋ１３は、ＲＤ＋のＫ２８．５のコードであり、ＲＤ＋からＲＤ−に極性を変化させている。Ｋ１４は、ＲＤ−のＫ２８．４のコードであるが、ニュートラルなコードであるため、ＲＤの極性をマイナスのまま変化させていない。Ｋ１５及びＫ１６は、Ｋ１４と同じくＲＤ−のＫ２８．４のコードであり、いずれもＲＤの極性をマイナスのまま変化させていない。
【００３１】
この場合、パターンＰ１０の最後における極性はマイナスとなる。つまり、パターンＰ１０は、全体でも極性を変化させない、すなわちニュートラルなものとなっている。この場合、パターンＰ１０の直後に続く図４（ｃ）に示すＤコードＤ２は、ＲＤ−のコードとなる。図５（ｃ）では、ＤコードＤ１までのＲＤの極性がプラスの場合のパターンＰ１０を示している。この場合は、図５（ｂ）に示す場合における極性をいずれも反対にしたものになる。その結果、ＤコードＤ２は、ＲＤ＋のコードとなる。
【００３２】
図３に示す書き込み部４５１は、制御部４５４により指示されると、上述したとおり、Ｋコードの抜き取りまたは差し込みを行う。画像形成システム１では、書き込み部４５１がパターンに対してＫコードを抜き差しする仕方として、２つの方法が採用されている。以下では、それら２つの方法を、第１の方法及び第２の方法という。
【００３３】
図６は、第１の方法について説明するための図である。第１の方法では、コントロールコード及びスキップコードという２種類のＫコードが定義される。この定義は、画像形成システム１を設置する技術者や使用する使用者によって行われる。このとき、スキップコードとしては、ニュートラルなＫコード（つまり、Ｋ２８．０、Ｋ２８．４、Ｋ２８．７、Ｋ２３．７、Ｋ２７．７、Ｋ２９．７、Ｋ３０．７）のいずれかを定義しなければならない一方、コントロールコードとしては、どのＫコードを定義してもよい。図６では、説明を分かりやすくするため、画像データに１つのコントロールコード（図６（ａ）に示す「Ｃ」）と１つのスキップコード（図６（ａ）に示す「Ｓ」）を連続させたパターンが差し込まれた場合を一例として示している。
【００３４】
図６（ａ）では、Ｋコードの抜き取りが行われる例を示している。第１の方法では、書き込み部４５１は、或るステージにおいてコントロールコードを見つけると、そのステージでの書き込みはそのまま行い、次のステージで処理するデータがスキップコードだけを含むものであるか否かを判断する。このデータがスキップコードだけを含むものである場合、以下ではそのデータのことを「スキップデータ」という。書き込み部４５１は、スキップデータであると判断した場合、そのスキップデータの書き込みを行わず、スキップデータに続くデータの書き込みを行う。これにより、コード列からそのスキップデータが抜き取られることになる。このように書き込み部４５１がスキップデータを抜き取って書き込みを行わないことを、以下では単に「抜き取る」という。書き込み部４５１は、スキップデータでないと判断した場合は、上述した抜き取りを行わずに書き込みを継続する。本実施形態においては、エラスティックバッファ４５０が１ステージで処理するデータの単位が１０ビットであるため、コントロールコードに続くスキップコードがあれば、それは必ずスキップデータになっていることになる。第１の方法では、スキップコードとしてニュートラルなＫコードが定義されるため、スキップコードを抜き取ってもパターンの終わりにおけるＲＤの極性は変化しない。
【００３５】
仮に、スキップコードを抜き取ることによってこの極性が変化すると、スキップコードの直後に例えばＲＤ−のＤコードが続いていた場合、ＲＤが「−１」から「＋１」になるはずのところ、「＋１」から「＋３」になってしまう。また、スキップコードの直後にＲＤ＋のＤコードが続いていた場合、ＲＤが「＋１」から「−１」になるはずのところ、「−１」から「−３」になってしまう。これらの場合、復号部４６０において復号されるときに、いわゆるビット誤りが検出されることになる。ここでいう「ビット誤り」とは、符号化が正しく行われていれば本来現れるはずのない符号がそのビットに現れていることをいう。８Ｂ／１０Ｂ方式では、正しく符号化されていれば、コードの終わりでＲＤが「＋３」や「−３」になることはないので、上記の場合にビット誤りが検出される。第１の方法では、ニュートラルなＫコードを抜き取ることで、このビット誤りが発生しないようになっている。
【００３６】
図６（ｂ）では、Ｋコードの差し込みが行われる例を示している。第１の方法では、書き込み部４５１は、或るステージにおいてコントロールコードを見つけると、そのステージでの書き込みをそのまま行い、次のステージで処理するデータが上述したスキップデータであるか否かを判断する。書き込み部４５１は、スキップデータであると判断した場合、そのスキップデータを書き込んだ後、次のステージで再度スキップデータを書き込む。これにより、コード列にはスキップデータが差し込まれることになる。このように書き込み部４５１が差し込んだスキップデータを書き込むことを、以下では単に「差し込む」という。書き込み部４５１は、スキップデータでないと判断した場合は、上述した差し込みを行わずに書き込みを継続する。この場合も、ニュートラルなＫコードが差し込まれるため、パターンの終わりにおけるＲＤの極性が変化しない。
【００３７】
図７は、第１の方法でのＫコードの抜き差しの一例を示す図である。画像形成システム１では、図７（ａ）に示すように、上述した第１のＫコード、すなわちＫ２８．５がコントロールコードとして定義され、第２のＫコード、すなわちＫ２８．４がスキップコードとして定義されている。
【００３８】
図７（ａ）では、Ｋコードの抜き取りが行われる例を示している。書き込み部４５１は、制御部４５４によりＫコードの抜き取りを指示されると、コントロールコードとして定義されているＫ２８．５を見つけて、その次のステージに含まれるスキップコード、すなわちＫ２８．４を抜き取る。このようにニュートラルなスキップコードが抜き取られても、パターンは全体としてニュートラルな状態を維持する。従って、パターンの終わりにおけるＲＤの極性が変化しないので、ビット誤りも発生しない。
【００３９】
図７（ｂ）では、Ｋコードの差し込みが行われる例を示している。書き込み部４５１は、制御部４５４によりＫコードの差し込みを指示されると、コントロールコードとして定義されているＫ２８．５を見つけて、その次のステージに含まれるスキップコード、すなわちＫ２８．４を、パターンの直後に差し込む。このようにニュートラルなスキップコードが差し込まれても、パターンは全体としてニュートラルな状態を維持する。従って、パターンの終わりにおけるＲＤの極性が変化しないので、ビット誤りも発生しない。
【００４０】
図８は、第２の方法について説明するための図である。第２の方法では、１つまたは複数のＫコードを並べたＫコード列を定義する。この定義は、第１の方法のように技術者や使用者によって行われる。このＫコード列は、全体でニュートラル、すなわち極性を変化させないものとなっていなければならない。図８では、図８（ａ）に示すように、３つのＫコード（Ｋｘ）が連続するＫコード列が定義され、定義されたＫコード列と１つのＫコード（Ｋｙ）が連続するパターンが差し込まれた場合を一例として示している。
【００４１】
図８（ａ）では、Ｋコードの抜き取りが行われる例を示している。第２の方法では、書き込み部４５１は、定義されたＫコード列を見つけると、そのＫコード列を抜き取る。第２の方法では、全体でニュートラルとなるＫコード列が定義されているため、このＫコード列を抜き取っても、その前後でＲＤの極性が変化せず、ビット誤りが発生しない。
【００４２】
図８（ｂ）では、Ｋコードの差し込みが行われる例を示している。第２の方法では、書き込み部４５１は、定義されたＫコード列を見つけると、そのＫコード列の直後に、そのＫコード列をもう１つ差し込む。この場合も、全体でニュートラルなＫコード列が差し込まれるだけであるため、その前後でＲＤの極性が変化せず、ビット誤りが発生しない。
【００４３】
図９は、第２の方法でのＫコードの抜き差しの一例を示す図である。画像形成システム１では、図９（ａ）に示すように、Ｋ２８．５、Ｋ２８．４、Ｋ２８．５及びＫ２８．４と４つのＫコードを連続させたものがＫコード列として定義されている。また、パターンには、定義されたＫコード列に連続する２つのＫ２８．４が含まれている。このパターンは、図５で述べたとおり、全体でニュートラルとなったおり、また、定義されたＫコード列も、当然ながらニュートラルとなっている。
【００４４】
図９（ａ）では、Ｋコードの抜き取りが行われる例を示している。書き込み部４５１は、制御部４５４によりＫコードの抜き取りを指示されると、Ｋコード列として定義されているＫコードの並び（この場合Ｋ２８．５、Ｋ２８．４、Ｋ２８．５及びＫ２８．４という並び）を見つけて、そのＫコード列をそのまま抜き取る。Ｋコード列は上記のとおり全体でニュートラルなものであるため、パターンは、Ｋコード列が抜き取られた後も、全体としてニュートラルな状態を維持する。従って、パターンの終わりにおけるＲＤの極性が変化せず、ビット誤りも発生しない。
【００４５】
図９（ｂ）では、Ｋコードの差し込みが行われる例を示している。書き込み部４５１は、制御部４５４によりＫコードの差し込みを指示されると、Ｋコード列として定義されているＫコードの並びを見つけて、その並びの直後に、定義されたＫコード列を差し込む。差し込まれるＫコード列は全体でニュートラルなものであるため、パターンは、Ｋコード列を差し込まれた後も、全体としてニュートラルな状態を維持する。従って、パターンの終わりにおけるＲＤの極性が変化せず、ビット誤りも発生しない。
【００４６】
以上のとおり、画像形成システム１は、パターンに対してコード（Ｋコード）を抜き差しして送信側及び受信側のクロック（第１クロック及び第２クロック）の誤差を調整（以下「クロック調整」という。）するものである。画像形成システム１によれば、第１及び第２の方法のどちらでも、図５に示す１つのパターンを用いてクロック調整が行われる。言い換えると、画像形成システム１によれば、コードの抜き差しの方法が複数（第１及び第２の方法）定められていても、パターンの種類が１つで済むことになる。従って、画像形成システム１においては、８Ｂ１０Ｂ方式でデータを符号化して送信する場合に、１種類のパターンで送信側及び受信側のクロックの誤差が調整される。
【００４７】
上述したとおり、画像形成システム１では、Ｋコードの抜き差しの仕方として、上述した第１の方法及び第２の方法が採用されている。本実施形態によれば、この２つの方法を採用した場合において、上記のとおりパターンの種類が１つで済む。また、本実施形態では、コントロールコード、スキップコード及びＫコード列を、いずれもＫ２８．５及びＫ２８．４を用いて定義した。これにより、これらのＫコード以外が他の用途に用いられている場合であっても、パターンの種類が１つで済む。
【００４８】
［第２実施形態］
本発明の第２実施形態に係る画像形成システムは、上述した第１実施形態の画像形成システム１と共通する構成を有するものである。よって、第１実施形態と共通する構成については、共通の符号を付してその説明を省く。第２実施形態は、エラスティックバッファ４５０が１ステージで処理するデータの量が第１実施形態と異なる。具体的には、本実施形態では、エラスティックバッファ４５０は、１ステージで２０ビットのデータを処理する。この場合、書き込み部４５１によるＫコードの抜き差しも、２０ビット単位で行われる。
【００４９】
図１０は、本実施形態の書き込み部４５１における第１の方法でのＫコードの抜き差しの一例を示す図である。本実施形態においても、コントロールコード及びスキップコードの定義は第１実施形態と共通である。以降の図では、図１０（ａ）で示すように１０ビットのデータが上下に複数列並んだ場合、矢印で示すように下から上に向けてデータが順番に並んでいるものとして示す。
【００５０】
図１０（ａ）では、Ｋコードの抜き取りの一例が示されている。書き込み部４５１は、パターンに含まれるＫコードを、図１０（ａ）に示すようにステージＳ１、Ｓ２及びＳ３の順番で記憶部４５２に書き込んでいく。その際、書き込み部４５１は、制御部４５４によりＫコードの抜き取りを指示されると、上述した抜き取りを行う。具体的には、書き込み部４５１は、ステージＳ１においてコントロールコード（Ｋ２８．５）の有無を判断する。書き込み部４５１は、この例では有ると判断するので、ステージＳ１での書き込みはそのまま行い、次のステージＳ２で処理するデータがスキップデータ（スキップコードだけを含むデータ）であるか否かを判断する。この場合、ステージＳ２で処理するデータにはＫ２８．５が含まれていてスキップデータではないため、書き込み部４５１は、否と判断してステージＳ２では抜き取りを行わない。
【００５１】
一方、書き込み部４５１は、ステージＳ２でもコントロールコード（Ｋ２８．５）が有ると判断するため、ステージＳ２での書き込みはそのまま行い、更に次のステージＳ３で処理するデータがスキップデータであるか否かを判断する。この例では、ステージＳ３で処理するデータはスキップデータであるため、書き込み部４５１は、そのスキップデータを抜き取り、それ以降の書き込みを継続する。この場合、抜き取られるスキップデータは、２つのＫ２８．４であり、全体でニュートラルなデータである。従って、パターンの終わりにおけるＲＤの極性が変化しないので、ビット誤りも発生しない。
【００５２】
図１０（ｂ）では、Ｋコードの差し込みの一例が示されている。書き込み部４５１は、ステージＳ１及びＳ２においては、上記の抜き取りの処理で行ったように差し込みを行うことなく、そのまま書き込みを行う。そして、書き込み部４５１は、ステージＳ３において、処理するデータがスキップデータであると判断して、そのスキップデータを書き込んだ直後に再度そのスキップデータを書き込む（つまりスキップデータを差し込む）。この場合、差し込まれるスキップデータは、２つのＫ２８．４であり、全体でニュートラルなデータである。従って、この差し込みの場合も、パターンの終わりにおけるＲＤの極性が変化しないので、ビット誤りが発生しない。
【００５３】
図１１は、本実施形態の書き込み部４５１における第２の方法でのＫコードの抜き取りの一例を示す図である。この場合、書き込み部４５１が行う抜き取り及び差し込みは、図９に示したものと変わらない。書き込み部４５１は、図１１（ａ）に示すように、Ｋコード列を見つけて、そのＫコード列をそのまま抜き取る。また、書き込み部４５１は、図１１（ｂ）に示すように、Ｋコード列を見つけて、そのＫコード列を書き込んだ後に、定義されたＫコード列を差し込む。この場合も、抜き差しするＫコード列は全体でニュートラルであるため、パターンの終わりにおけるＲＤの極性が変化せず、ビット誤りも発生しない。以上のとおり、本実施形態によれば、エラスティックバッファ４５０が１ステージで２０ビットのデータを処理する場合であっても、パターンの種類が１つで済む。
【００５４】
［変形例］
上述した各実施形態は、本発明の実施の一例に過ぎず、次のように様々に変形させてもよい。また、上述した各実施形態及び以下の各変形例は、必要に応じて組み合わせてもよい。
【００５５】
（変形例１）
送信装置２０の生成部２０１は、上述した各実施形態では、図４に示すパターンＰ１０が差し込まれたコード列を生成したが、例えば、パターンＰ１０に更にＫ２、すなわちＫ２８．４を追加で連続させたものをパターンとして差し込んだコード列を生成してもよい。このようにニュートラルなＫコードを追加しても、パターンの終わりにおけるＲＤの極性は変化しないため、上述したいずれの場合であっても、この追加によってビット誤りが発生するということはない。
【００５６】
（変形例２）
画像形成システム１においては、上述した各実施形態では、第１の方法におけるコントロールコード及びスキップコードと、第２の方法におけるＫコード列とが、Ｋ２８．５及びＫ２８．４を用いて定義されていたが、他のＫコードを用いてこれらの定義が行われてもよい。例えば、Ｋコード列としては、全体でニュートラルとなっていれば、他のＫコードを用いることはもちろん、１種類のＫコードを連続させたものとしてもよいし、３種類以上のＫコードを連続させたものとしてもよい。スキップコードとしては、上述したニュートラルなＫコードのいずれかが定義されればよい。また、コントロールコードとしては、スキップコードとして定義したＫコード以外のいずれかが定義されればよい。つまり、コントロールコードとしてニュートラルなＫコードが定義されてもよい。
【００５７】
コントロールコードをニュートラルなＫコードで定義した場合、コントロールコード及びスキップコードを１つずつ連続させても全体でニュートラルとなる。つまり、この場合、それら２つのＫコードを連続させたものをＫコード列として定義してもよい。このように、画像形成システム１において用いられるパターンは、連続させるＫコードの数が最も少ない場合で２つとなる。なお、理論的には、変形例１で述べたように、実施形態のようにコントロールコード、スキップコード及びＫコード列が定義されていれば、その後ろにニュートラルなＫコードをいくつ追加してもビット誤りが発生することはないため、連続させるＫコードの数に上限はない。ただし、それらの追加したＫコードは通信や処理の負荷を増やすだけであるため、ないほうが望ましい。
【００５８】
（変形例３）
エラスティックバッファ４５０は、上述した実施形態では、１ステージでそれぞれ１０ビット、２０ビットのデータを処理したが、これに限らず、例えば４０ビットや８０ビットのデータを処理してもよい。例えば、エラスティックバッファ４５０が１ステージで４０ビットのデータを処理する例について以下に示す。
【００５９】
図１２は、本変形例において、第１の方法でのＫコードの抜き差しの一例を示す図である。この場合、送信装置２０は、Ｋ２８．５、Ｋ２８．４、Ｋ２８．４、Ｋ２８．４、Ｋ２８．５、Ｋ２８．４、Ｋ２８．４、Ｋ２８．４、Ｋ２８．４、Ｋ２８．４、Ｋ２８．４、Ｋ２８．４という１２個のＫコードが連続したパターンが差し込まれたＫコード列を生成する。このうちのＫ２８．５がコントロールコードとして定義され、Ｋ２８．４がスキップコードとして定義されている。また、最初のＫ２８．５から８つ目のＫ２８．４までの８つの連続したＫコードがＫコード列として定義されている。
【００６０】
これにより、第１の方法であれば、２つのステージで連続してコントロールコードが見つり、２度目にコントロールコードが見つかったステージの直後のステージで、図１２（ａ）に示すようにスキップデータが抜き取られ、また、図１２（ｂ）に示すようにスキップデータが差し込まれることになる。
図１３は、本変形例において、第２の方法でのＫコードの抜き差しの一例を示す図である。この場合、定義されたＫコード列が見つかると、図１３（ａ）に示すようにそのＫコード列が抜き取られ、また、図１３（ｂ）に示すように見つかったＫコード列の直後にもう１つそのＫコード列が差し込まれる。
【００６１】
画像形成システム１においては、要するに、エラスティックバッファ４５０が１ステージで処理するデータの大きさに応じてパターンが定められていればよい。パターンの定め方は、コントロールコードが、実施形態におけるＫ２８．５のようにＲＤの極性を変化させる場合と、変形例２で述べたようにニュートラルである場合とで異なる。
【００６２】
コントロールコードが極性を変化させる場合、パターンは、そのコントロールコードと２N−１個（Ｎは自然数）のスキップコードとの並びを２つ連続させたものをＫコード列として含み、且つ、そのＫコード列の後に２N個のスキップコードを並べたものを含む。これにより、図６のようにコントロールコードを「Ｃ」、スキップコードを「Ｓ」として示すと、パターンは次のように定められる。例えばＮ＝１であれば、パターンが「Ｃ、Ｓ、Ｃ、Ｓ、Ｓ、Ｓ」、Ｋコード列が「Ｃ、Ｓ、Ｃ、Ｓ」となり、各実施形態で示したものになる。また、Ｎ＝２であれば、パターンが「Ｃ、Ｓ、Ｓ、Ｓ、Ｃ、Ｓ、Ｓ、Ｓ、Ｓ、Ｓ、Ｓ、Ｓ」、Ｋコード列が「Ｃ、Ｓ、Ｓ、Ｓ、Ｃ、Ｓ、Ｓ、Ｓ」となって、図１２及び図１３で示したものになる。また、パターンは、これらの各Ｋコードを含んでいればよく、変形例１で述べたように、その後ろにニュートラルなＫコードが追加されていてもよい。このように、自然数Ｎは、エラスティックバッファ４５０が１ステージで処理するデータの大きさに応じて、例えば、１０及び２０ビットであれば１、４０ビットであれば２、８０ビットであれば３、といった具合に決められればよい。
【００６３】
コントロールコードが極性を変化させない、すなわちニュートラルである場合、パターンは、そのコントロールコードと、２N−１個のスキップコードとを並べたものをＫコード列として含む。例えば、Ｎ＝１であれば、パターンは、「Ｃ、Ｓ」となり、上述した、連続させるＫコードの数が最も少ない場合のパターンとなる。また、Ｎ＝２であれば、パターンは、「Ｃ、Ｓ、Ｓ、Ｓ」となる。例えば、図１０に示すように第１の方法で抜き差しが行われる場合、パターンが「Ｃ、Ｓ」だと、スキップデータがないため、抜き差し自体が行われなくなる。この場合に、パターンが「Ｃ、Ｓ、Ｓ、Ｓ」だと、スキップデータの抜き差しが行われるようになる。このように、自然数Ｎは、エラスティックバッファ４５０が１ステージで処理するデータの大きさに応じて、例えば、１０ビットであれば１、２０ビットであれば２、４０ビットであれば３、といった具合に決められればよい。
【００６４】
（変形例４）
画像形成システム１は、上述した各実施形態では、第１の方法及び第２の方法でパターンに対するＫコードの抜き差しを行ったが、他の方法でこの抜き差しを行ってもよい。例えば、第３の方法では、定義された「Ｋコード列」が見つかり、且つ、そのＫコード列の書き込みが終わった次のステージで処理するデータがスキップデータである場合に、そのスキップデータを抜き差しする。この第３の方法を用いた場合、画像形成システム１は、例えば、図７、図１１及び図１３のどの例であっても、Ｋコードの抜き差しを行ったあとのパターンの終わりにおけるＲＤの極性を変化させない。このように、画像形成システム１においては、制御部４５４が、パターンに対するＫコードの抜き差しの仕方を定めた複数の方法（第１、第２及び第３の方法はその例）のうちのいずれかの方法で抜き差しを行うように書き込み部４５１を制御したときに、パターンの終わりにおけるＲＤの極性を変化させないようになっている。
【００６５】
（変形例５）
画像形成システム１は、上述した各実施形態では、８Ｂ／１０Ｂの符号化方式を用いて画像データを符号化したが、他の符号化方式を用いてもよい。画像形成システム１が用いる符号化方式は、符号化後に、「０」及び「１」が例えば数個以上連続せず、且つ、「０」の個数と「１」の個数と（いわゆるＤＣバランス）が概ね均等になるものが望ましい。そして、本変形例に係る画像形成システムにおいては、０及び１を複数通りの順列で並べたものを第１の種類のコード（Ｄコードはその一例）とし、０及び１を前記第１の種類のコードとは異なる複数通りの順列で並べたものを第２の種類のコード（Ｋコードはその一例）とする。この場合、パターンは、第２の種類のコードを連続させたものである。また、画像形成システム１では、このパターンに対する第２の種類のコードの抜き差しの仕方が複数定めされているものとする。
【００６６】
以上の場合において、本変形例に係るパターンは、それら複数の方法のうちのどの方法で第２の種類のコードを抜き差しした場合であっても、コード列においてそのパターンの終わりまでに含まれる０の個数に対する１の個数の割合（以下「個数割合」という。）が、そのパターンの直前までにおける個数割合に比べて１に近づくように、第２の種類のコードが連続していればよい。
【００６７】
具体的には、例えば、第２の種類のコードとして、変形例２で述べたように、ニュートラルなもの、すなわち、「０」と「１」の個数が一緒のものを連続させたパターンを用いる。この場合、第２の種類のコードが抜き差しされる前も後も、パターン全体でニュートラルとなる。すると、抜き差しの有無に関わらず、パターンによって「０」及び「１」が同じ個数ずつ加えられることになる。従って、そのパターンの直前までにおける上記の個数割合よりも、抜き差し後のパターンの終わりにおける個数割合が１に近くなる。
【００６８】
また、第２の種類のコードとしてニュートラルでないものを用いなければならない場合には、「０」の個数の方が「１」の個数よりも或る個数（差分という）だけ多いもの（マイナスコードという）と、「１」の個数の方がこの差分だけ「０」の個数よりも多いもの（プラスコードという）との組みを含んだパターンを用いる。例えば、実施形態におけるＫ２８．５のＲＤ＋のコードがマイナスコードの一例であり、Ｋ２８．５のＲＤ−のコードがプラスコードの一例である。そして、抜き差しの方法が複数あった場合に、どの方法であっても、その組みがまとめて抜き差しされるように、パターン内で第２の種類のコードを連続させておく。また、マイナスコード及びプラスコード以外は、ニュートラルのコードを用いる。これにより、パターン全体としてはニュートラルとなり、且つ、抜き差しが行われた後も、パターン全体がニュートラルになる。つまり、このパターンを用いれば、抜き差しの有無に関わらず、パターンによって「０」及び「１」が同じ個数ずつ加えられることになる。従って、そのパターンの直前までにおける上記の個数割合よりも、抜き差し後のパターンの終わりにおける個数割合が１に近くなる。
【００６９】
ＤＣバランスを均等に保つ仕組みを有する符号化方式では、パターンに対する第２の種類のコードの抜き差しによってＤＣバランスが均等な状態から遠ざかってしまうと、実施形態で述べたようにビット誤りが発生することがある。その場合に、本変形例によれば、前述の抜き差しが行われた後も、ＤＣバランスが均等な状態に近づくように第２の種類のコードを連続させたパターンが用いられるので、ビット誤りの発生が抑制される。また、本変形例では、この抜き差しの方法が複数定められていても、どの方法で抜き差しを行ってもニュートラルを維持するパターンを用いるため、パターンの種類が１つで済む。
【００７０】
（変形例６）
画像形成システム１では、上述した各実施形態では、「０」及び「１」という２つの符号で表されたデータを処理したが、「０」と「２」や「−１」と「＋１」など、他の符号で表されたデータを処理してもよい。要するに、画像形成システム１は、第１の符号及び第２の符号で表されたデータを処理するものであればよい。ここでいうデータとは、実施形態であれば、ＤコードやＫコード、コード列などのことである。
【００７１】
（変形例７）
送信装置の生成部は、上述した各実施形態では、図２に示すように、Ｋコードの８ビットコードを差し込んでから符号化を行ったが、符号化をしてからＫコードの１０ビットコードを差し込んでもよい。ここで差し込むＫコードとは、すなわちパターンのことである。この場合、生成部は、パターンを差し込む位置の直前のＤコードの終わりのＲＤの極性がマイナスであれば、図５（ｂ）に示すパターンを差し込み、この極性がプラスであれば、図５（ｃ）に示すパターンを差し込む。これにより、パターンの途中及びパターンの直後においてＲＤが「＋３」や「−３」にならないようにしてパターンが差し込まれる。要するに、生成部は、Ｄコードを連続させた列に、Ｋコードを連続させたパターンを決められた間隔で差し込んだコード列を生成するものであればよい。
【００７２】
（変形例８）
上述した画像形成システム１は、送信装置２０及び受信装置４０が画像データを通信する通信システムであったが、本発明は、データを通信するものであれば、他の通信システムであっても適用し得る。例えば、プリント基板上に配置されたＩＣ（Integrated Circuit）チップ間で基板のパターンを介してデータを通信（伝送ともいう）する構成において、上述した送信装置及び受信装置の構成でデータの通信を行うようにしてもよい。
【符号の説明】
【００７３】
１…画像形成システム、２…画像処理装置、３…シリアルリンク、４…画像出力装置、２０…送信装置、３１、３２、３３、３４…ケーブル、４０…受信装置、２０１…生成部、２０２…送信部、２１０…データ処理部、２２０…パターン差し込み部、２３０…符号化部、２４０…クロック生成部、２５０…シリアライズ部、２６０…ドライバ、４１０…レシーバ、４２０…デシリアライズ部、４３０…クロック抽出部、４４０…クロック生成部、４５０…エラスティックバッファ、４５１…書き込み部、４５２…記憶部、４５３…読み出し部、４５４…制御部、４６０…復号部
【要約】
【課題】パターンに含まれるコードを抜き差しして送信側及び受信側のクロックの誤差を調整する場合に、コードの抜き差しの方法が複数定められていても、パターンの種類を１つにすること。
【解決手段】送信装置は、バイトストリームの画像データを生成し、生成した画像データに、Ｋコードの８ビットコードを複数並べたパターンＰ８を決められた間隔で差し込む。送信装置は、その画像データを８Ｂ／１０Ｂの符号化方式で符号化して、１０ビット幅の画像データに変換する。この画像データには、パターンＰ８が符号化されたパターンＰ１０が決められた間隔で含まれる。パターンＰ１０は、第１のＫコードである「Ｋ１」と第２のＫコードである「Ｋ２」とを、Ｋ１、Ｋ２、Ｋ１、Ｋ２、Ｋ２、Ｋ２の順番に連続させたものである。
【選択図】図４【図１】
0005257532.tif 000002
【図２】
0005257532.tif 000003
【図３】
0005257532.tif 000004
【図４】
0005257532.tif 000005
【図５】
0005257532.tif 000006
【図６】
0005257532.tif 000007
【図７】
0005257532.tif 000008
【図８】
0005257532.tif 000009
【図９】
0005257532.tif 000010
【図１０】
0005257532.tif 000011
【図１１】
0005257532.tif 000012
【図１２】
0005257532.tif 000013
【図１３】
0005257532.tif 000014