以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
<第1実施形態>
第1実施形態に係る画像データ転送システムについて、図1〜図11を参照して説明する。一般に、画像形成装置は、外部装置から取得した画像データをプリンタエンジンなどのエンジンに転送し、印刷などの画像形成処理を実行する。本実施形態に係る画像データ転送システムは、このような画像形成装置の内部における画像データの転送を実現するために、画像形成装置に搭載される。
なお、画像形成装置は、MFP(Multi-Function Peripheral)、PP(Production Printer)、印刷機、コピー機、及びスキャナなどで有り得る。また、外部装置は、PC(Personal Computer)、サーバ、タブレット端末、スマートフォン、及びUSB(Universal Serial Bus)メモリなどで有り得る。
まず、本実施形態に係る画像データ転送システムの構成について説明する。
図1は、本実施形態に係る画像データ転送システムのハードウェア構成の一例を示す図である。図1の画像データ転送システムは、画像データ送信装置1(以下、「送信装置1」という)と、画像データ受信装置2(以下、「受信装置2」という)と、ハーネス3と、を備える。
送信装置1は、画像形成装置が外部装置から取得した画像データに基づいて、画像形成処理のための所定の形式を有するライン単位の画像データを生成する。送信装置1は、生成した画像データを、シリアル差動通信を利用して、所定の周期で受信装置2に送信する。
受信装置2は、外部装置の一例であり、シリアル差動通信を利用して、送信装置1から画像データを受信し、受信した画像データの誤りを訂正し、誤りを訂正した画像データを出力する。受信装置2が出力した画像データは、例えば、エンジンに入力され、画像形成処理に利用される。
ハーネス3は、送信装置1と受信装置2とを通信可能に接続する、シリアル差動通信のための通信ケーブルである。ハーネス3を介して、画像データが送信装置1から受信装置2へ転送される。
次に、本実施形態に係る送信装置1及び受信装置2のハードウェア構成について説明する。
図2は、本実施形態に係る送信装置1のハードウェア構成の一例を示す図である。図2の送信装置1は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、SSD(Solid State Drive)104と、を備える。また、送信装置1は、画像転送インタフェース105と、通信インタフェース106と、バス107と、を備える。
CPU101は、プログラムを実行することにより、送信装置1の各構成を制御し、送信装置1の機能を実現する。ROM102は、CPU101が実行するプログラムや各種のデータを記憶する。RAM103は、CPU101に作業領域を提供する。SSD104は、CPU101が実行するプログラムや各種のデータを記憶する。
画像転送インタフェース105は、ハーネス3に接続され、シリアル差動通信の通信規格に従って、送信装置1から受信装置2への画像データの転送(画像データの送信)を制御する。画像転送インタフェース105は、送信装置1が送信する画像データをシリアライズするシリアライザや、シリアライズされた画像データに対応する差動信号を生成する差動出力アンプなどを備える。
通信インタフェース106は、通信規格に従って、送信装置1と、受信装置2や画像形成装置の他の構成(操作パネルなど)と、の間の通信を制御する。バス107は、CPU101、ROM102、RAM103、SSD104、画像転送インタフェース105、及び通信インタフェース106と、を相互に接続する。
図3は、本実施形態に係る受信装置2のハードウェア構成の一例を示す図である。図3の受信装置2は、CPU201と、ROM202と、RAM203と、SSD204と、を備える。また、受信装置2は、画像転送インタフェース205と、通信インタフェース206と、バス207と、を備える。
CPU201は、プログラムを実行することにより、受信装置2の各構成を制御し、受信装置2の機能を実現する。ROM202は、CPU201が実行するプログラムや各種のデータを記憶する。RAM203は、CPU201に作業領域を提供する。SSD204は、CPU201が実行するプログラムや各種のデータを記憶する。
画像転送インタフェース205は、ハーネス3に接続され、シリアル差動通信の通信規格に従って、受信装置2から受信装置2への画像データの転送(画像データの受信)を制御する。画像転送インタフェース205は、送信装置1が送信した差動信号から画像データを復元する差動入力アンプや、復元した画像データをデシリアライズするデシリアライザなどを備える。
通信インタフェース206は、通信規格に従って、受信装置2と、送信装置1や画像形成装置の他の構成(エンジンなど)と、の間の通信を制御する。バス207は、CPU201、ROM202、RAM203、SSD204、画像転送インタフェース205、及び通信インタフェース206と、を相互に接続する。
次に、本実施形態に係る画像データ転送システムの機能構成について説明する。
図4は、本実施形態に係る画像データ転送システムの機能構成の一例を示す図である。まず、送信装置1の機能構成について説明する。図4の送信装置1は、画像データ生成部11と、周期信号生成部12と、カウント部13と、誤り訂正符号生成部14(以下、「ECC(Error Correcting Code)生成部14」という)と、画像データ合成部15と、画像データ送信部16と、を備える。これらの各機能構成は、CPU101がプログラムを実行し、他のハードウェア構成と協働することにより実現される。
画像データ生成部11は、画像形成装置が取得した画像データIm1を入力され、入力された画像データIm1に基づいて、画像形成処理のための所定の形式を有する画像データIm2を生成する。画像データ生成部11は、生成した画像データIm2をライン単位で出力する。画像データ生成部11が出力した画像データIm2は、ECC生成部14に入力される。
また、画像データ生成部11は、有効信号VSを出力する。有効信号VSは、画像データ生成部11からの画像データIm2の出力が有効か無効かを示す信号である。画像データIm2の出力が有効とは、画像データ生成部11が画像データIm2を出力していることをいう。画像データ生成部11は、画像データIm2を出力している間、画像データIm2の出力が有効であることを示す有効信号VSを出力する。画像データIm2の出力が無効とは、画像データ生成部11が画像データIm2を出力していないことをいう。画像データ生成部11は、画像データIm2を出力していない間、画像データIm2の出力が無効であることを示す有効信号VSを出力する。以下では、画像データIm2の出力が有効である場合、有効信号VSとして1が出力され、画像データIm2の出力が無効である場合、有効信号VSとして0が出力されるものとする。画像データ生成部11が出力した有効信号VSは、カウント部13と、ECC生成部14と、に入力される。
周期信号生成部12は、周期信号CSを生成する。周期信号CSは、予め設定された、画像データ転送システムが画像データを処理する処理周期CTを規定するパルス信号である。処理周期CTは、周期信号CS(パルス信号)の立ち上がり間隔として規定され、画像データのライン周期、フレーム周期、及びこれらの整数倍の周期などで有り得る。以下では、処理周期CTは、画像データの1ライン分のライン周期であるものとする。周期信号生成部12は、生成した周期信号CSを出力する。周期信号生成部12が出力した周期信号CSは、カウント部13に入力される。
カウント部13は、画像データ生成部11から入力された有効信号VSが1の期間(以下、「有効期間VT」という)を、動作クロックのクロック数としてカウントし、得られた有効期間VT(カウント値)を出力する。有効期間VTは、画像データ生成部11が画像データIm2を出力している期間に相当する。単位時間あたりに出力可能なデータサイズは略一定のため、有効期間VTは、画像データIm2のデータサイズに対応する。カウント部13が出力した有効期間VTは、ECC生成部14に入力される。
また、カウント部13は、周期信号生成部12から周期信号CSを入力される周期、すなわち、処理周期CTを、動作クロックのクロック数としてカウントし、得られた処理周期CT(カウント値)を出力する。単位時間あたりに送信可能なデータサイズは略一定のため、処理周期CTは、処理周期CTの間に送信可能なデータサイズに対応する。カウント部13が出力した処理周期CTは、ECC生成部14に入力される。
また、カウント部13は、周期信号生成部12から入力された周期信号CSを、画像データ合成部15に入力する。画像データ合成部15は、カウント部13から周期信号CSを入力される代わりに、周期信号生成部12から周期信号CSを直接入力されてもよい。
ECC生成部14は、画像データ生成部11から入力された画像データIm2と、カウント部13から入力された有効期間VT及び処理周期CTと、に基づいて、ECCを生成する。より詳細には、ECC生成部14は、有効期間VT及び処理周期CTに基づいて、ECCを処理周期CTの間に画像データIm2と共に受信装置2に送信可能なように、ECCの生成方法(アルゴリズム)を選択する。そして、ECC生成部14は、選択した生成方法に従って、画像データIm2のECCを生成する。ECCの生成方法の選択方法について、詳しくは後述する。
ECC生成部14が生成するECCは、リードソロモン符号(RSC:Reed-Solomon Code)やハミング符号などの既存の任意のECCで有り得る。ECC生成部14は、生成したECCと、入力された画像データIm2と、を出力する。ECC生成部14が出力したECC及び画像データIm2は、画像データ合成部15に入力される。
画像データ合成部15は、ECC生成部14から入力されたECC及び画像データIm2と、カウント部13から入力された周期信号CSと、を所定のプロトコルに従って合成する。画像データ合成部15は、ECC及び周期信号CSと合成した画像データIm3を出力する。画像データ合成部15が出力した画像データIm3は、画像データ送信部16に入力される。
画像データ送信部16は、画像データ合成部15から入力された画像データIm3を受信装置2に送信する。具体的には、画像データ送信部16は、画像データ合成部15から入力された画像データIm3をシリアライズし、シリアライズされた画像データIm3に対応する差動信号を生成し、生成した差動信号を受信装置2に送信する。これにより、画像データIm2がECCと共に受信装置2に送信される。
次に、受信装置2の機能構成について説明する。図4の受信装置2は、画像データ受信部21と、画像データ分離部22と、誤り訂正部23と、画像データ出力部24と、を備える。これらの各機能構成は、CPU201がプログラムを実行し、他のハードウェア構成と協働することにより実現される。
画像データ受信部21は、送信装置1が送信した画像データIm3を受信する。具体的には、画像データ受信部21は、送信装置1の画像データ送信部16が送信した差動信号を受信し、受信した差動信号から画像データIm3を復元し、復元した画像データIm3をデシリアライズする。これにより、送信装置1が送信した、ECC及び周期信号CSと合成された画像データIm3が復元される。画像データ受信部21は、受信した画像データIm3を出力する。画像データ受信部21が出力した画像データIm3は、画像データ分離部22に入力される。
画像データ分離部22は、画像データ受信部21から入力された画像データIm3を、所定のプロトコルに従って、画像データIm2と、ECCと、周期信号CSと、に分離する。画像データ分離部22は、分離した画像データIm2、ECC、及び周期信号CSを出力する。画像データ分離部22が出力した画像データIm2及びECCは、誤り訂正部23に入力される。また、画像データ分離部22が出力した周期信号CSは、画像データ出力部24に入力される。
誤り訂正部23は、画像データ分離部22から入力されたECCに基づいて、画像データ分離部22から入力された画像データIm2を復号し、転送の過程で画像データIm2に発生した誤りを訂正する。誤り訂正部23は、訂正した画像データIm4を出力する。誤りが発生していない場合、画像データIm2と画像データIm4とは一致する。誤り訂正部23が出力した画像データIm4は、画像データ出力部24に入力される。
画像データ出力部24は、誤り訂正部23から入力された画像データIm4を、画像データ分離部22から入力された周期信号CSに従って出力する。すなわち、画像データ出力部24は、画像データIm4を処理周期CTごとに出力する。画像データ出力部24が出力した画像データIm4は、受信装置2の後段(エンジンなど)に入力される。
次に、送信装置1の処理について説明する。図5は、送信装置1の処理の概要を説明する図である。以下では、送信装置1は、ECCの生成と、画像データIm3の送信と、を同時に実行するものとする。
図5に示すように、画像データ生成部11は、画像データIm2を出力している間(有効期間VTの間)、有効信号VSとして1を出力する。ECC生成部14は、有効期間VTの開始後、画像データ生成部11から入力された画像データIm2のECCを生成する。画像データ合成部15は、有効期間VTの終了後、ECC及び周期信号CSを画像データIm2に合成する。画像データ送信部16は、有効期間VTの開始後、画像データIm3を受信装置2に送信する。
画像データIm3は、画像データIm2にECC及び周期信号CSを合成したものであるため、図5に示すように、データサイズが画像データIm2より大きくなる。ここで、画像データIm2のデータサイズをkシンボル、ECCのデータサイズをlシンボル、周期信号CSのデータサイズをmシンボルとする。1シンボルは、例えば、1バイトである。
一般に、ECCのデータサイズlが大きいほど、ECCによる誤り訂正能力が向上する。すなわち、訂正可能なデータサイズが大きくなる。例えば、ECCがRSC(40,44)である場合(k=40,l=4)、ECCにより2シンボルまでの誤りを訂正することができる。したがって、誤り訂正能力を向上させるためには、ECCのデータサイズを大きくするのが好ましい。
一方、画像データIm3のデータサイズは(k+l+m)シンボルであるため、画像データIm3を処理周期CTの間に送信可能なECCのデータサイズlは、画像データIm2のデータサイズk及び周期信号CSのデータサイズmに応じて変化する。周期信号CSのデータサイズmは略一定であるものの、画像データIm2のデータサイズkは画像データIm1に応じて変化する。このため、ECCのデータサイズlが一定である(ECCの生成方法が一定である)場合、画像データIm3を処理周期CTの間に受信装置2に送信できないおそれがある。
そこで、ECC生成部14は、画像データIm3を処理周期CTの間に受信装置2に送信可能な範囲で、ECCのデータサイズlができるだけ大きくなるように、ECCの生成方法を決定する。これにより、ECCによる画像データIm3の誤り訂正能力を向上させつつ、画像データIm3の転送周期(処理周期)を保証することができる。
図6〜図8は、本実施形態に係る送信装置1の処理の一例を示すフローチャートである。以下では、1周期目の処理及び2周期目以降の処理についてそれぞれ説明する。
図6は、1周期目の処理の一例を示すフローチャートである。カウント部13に1回目の周期信号CS1が入力されると(ステップS101)、1周期目の処理が開始する。
1周期目の処理が開始した後、ECC生成部14は、有効信号VSが1になるまで待機する(ステップS102のNO)。有効信号VSが1になると(ステップS102のYES)、ECC生成部14は、画像データIm2の送信を開始する(ステップS103)。すなわち、ECC生成部14は、画像データ生成部11から入力された画像データIm2を、画像データ合成部15に順次入力する。画像データ合成部15は、入力された画像データIm2を、画像データIm3の一部として画像データ送信部16に順次入力する。画像データ送信部16は、入力された画像データIm2を、画像データIm3の一部として受信装置2に順次送信する。これにより、画像データ生成部11が出力した画像データIm2が、送信装置1から受信装置2に順次転送される。以降、ECC生成部14は、有効信号VSが0になるまで、画像データIm2の送信を継続する(ステップS104のNO)。有効信号VSが0になると(ステップS104のYES)、ECC生成部14は、画像データIm2の送信を終了する(ステップS105)。
その後、画像データ合成部15は、周期信号CS1を、画像データIm2の末尾に合成し、画像データIm3の一部として画像データ送信部16に入力する。画像データ送信部16は、入力された周期信号CS1を受信装置2に送信する。これにより、周期信号CS1が送信装置1から受信装置2に転送される。
一方、1周期目の処理が開始されると、カウント部13は、処理周期CTのカウントを開始する(ステップS107)。カウント部13は、周期信号CS2が入力されるまで、処理周期CTのカウントを継続する(ステップS108のNO)。カウント部13は、周期信号CS2が入力されると(ステップS108のYES)、処理周期CTのカウントを終了する(ステップS109)。その後、カウント部13は、得られた処理周期CTをECC生成部14に入力する(ステップS110)。
また、1周期目の処理が開始した後、カウント部13は、有効信号VSが1になるまで待機する(ステップS111のNO)。有効信号VSが1になると(ステップS111のYES)、カウント部13は、有効期間VTのカウントを開始する(ステップS112)。カウント部13は、有効信号VSが0になるまで、有効期間VTのカウントを継続する(ステップS113のNO)。カウント部13は、有効信号VSが0になると(ステップS113のYES)、有効期間VTのカウントを終了する(ステップS114)。その後、カウント部13は、得られた有効期間VTをECC生成部14に入力する(ステップS115)。
ECC生成部14は、カウント部13から処理周期CT及び有効期間VTを入力されると、入力された処理周期CT及び有効期間VTに基づいて、ECCの生成方法を選択する(ステップS116)。2周期目以降の処理では、ここで選択された生成方法により、ECCが生成される。
図7は、2周期目の処理の一例を示すフローチャートである。カウント部13に2回目の周期信号CS2が入力されると(ステップS201)、2周期目の処理が開始する。
2周期目の処理が開始した後、ECC生成部14は、有効信号VSが1になるまで待機する(ステップS202のNO)。有効信号VSが1になると(ステップS202のYES)、ECC生成部14は、画像データIm2の送信を開始する(ステップS203)。すなわち、ECC生成部14は、画像データ生成部11から入力された画像データIm2を、画像データ合成部15に順次入力する。画像データ合成部15は、入力された画像データIm2を、画像データIm3の一部として画像データ送信部16に順次入力する。画像データ送信部16は、入力された画像データIm2を、画像データIm3の一部として受信装置2に順次送信する。これにより、画像データ生成部11が出力した画像データIm2が、送信装置1から受信装置2に順次転送される。以降、ECC生成部14は、有効信号VSが0になるまで、画像データIm2の送信を継続する(ステップS204のNO)。有効信号VSが0になると(ステップS204のYES)、ECC生成部14は、画像データIm2の送信を終了する(ステップS205)。
また、有効信号VSが1になると(ステップS202のYES)、ECC生成部14は、上述のステップS116で選択した生成方法に従って、入力された画像データIm2のECCの生成を開始する(ステップS206)。以降、ECC生成部14は、有効信号VSが0になるまで、ECCの生成を継続する(ステップS207のNO)。有効信号VSが0になると(ステップS207のYES)、ECC生成部14は、ECCの生成を終了する(ステップS208)。
その後、ECC生成部14は、生成したECCを画像データ合成部15に入力する。画像データ合成部15は、入力されたECCを、画像データIm2の末尾に合成し、画像データIm3の一部として画像データ送信部16に入力する。画像データ送信部16は、入力されたECCを受信装置2に送信する(ステップS209)。これにより、ECCが送信装置1から受信装置2に転送される。
また、画像データ合成部15は、周期信号CS2を、ECCの末尾に合成し、画像データIm3の一部として画像データ送信部16に入力する。画像データ送信部16は、入力された周期信号CS2を受信装置2に送信する(ステップS210)。これにより、周期信号CS2が送信装置1から受信装置2に転送される。
以降、送信装置1は、図7の処理を繰り返し実行する。なお、カウント部13は、2周期目以降も、図6のステップS107〜S115の処理を実行してもよい。
ここで、ECCの生成方法の選択方法について説明する。図8は、ECCの生成方法の選択方法の一例を示すフローチャートである。図8の選択方法は、図6におけるステップS116の内部処理に相当する。以下では、ECC生成部14は、予め用意された4つの生成方法1〜4の中から1つの生成方法を選択するものとする。
まず、ECC生成部14は、有効期間VT及び処理周期CTに基づいて、ECC率Xを計算する(ステップS301)。ECC率Xは、処理周期CTと有効期間VTとの差を、有効期間VTで除算した値である(X=(CT−VT)/VT)。ECC率Xは、処理周期CTの間に画像データIm3を送信可能な範囲で、画像データIm2に合成可能なECCのデータサイズに対応する。ECC率Xが大きいことは、処理周期CTの間に送信可能なデータサイズに対する画像データIm2のデータサイズが小さいことを意味する。言い換えると、ECC率Xが大きいことは、処理周期CTの間に画像データIm2と共に送信可能なECCのデータサイズが大きいことを意味する。
次に、ECC生成部14は、ECC率Xを、閾値X1と比較する(ステップS302)。閾値X1は、予め設定されたECC率Xの閾値である。ECC率Xが閾値X1以上である場合(ステップS302のYES)、ECC生成部14は、生成方法1を選択する(ステップS303)。生成方法1は、生成方法1〜4の中で、処理周期CTの間に画像データIm3を送信可能な範囲で最もデータサイズが大きいECCを生成可能な生成方法である。
ECC率Xが閾値X1未満である場合(ステップS302のNO)、ECC率Xを、閾値X2と比較する(ステップS304)。閾値X2は、予め設定された、閾値X1より小さいECC率Xの閾値である。ECC率Xが閾値X2以上である場合(ステップS304のYES)、ECC生成部14は、生成方法2を選択する(ステップS305)。生成方法2は、生成方法1〜4の中で、処理周期CTの間に画像データIm3を送信可能な範囲で最もデータサイズが大きいECCを生成可能な生成方法である。
ECC率Xが閾値X2未満である場合(ステップS304のNO)、ECC率Xを、閾値X3と比較する(ステップS306)。閾値X3は、予め設定された、閾値X2より小さいECC率Xの閾値である。ECC率Xが閾値X3以上である場合(ステップS306のYES)、ECC生成部14は、生成方法3を選択する(ステップS307)。生成方法3は、生成方法1〜4の中で、処理周期CTの間に画像データIm3を送信可能な範囲で最もデータサイズが大きいECCを生成可能な生成方法である。
ECC率Xが閾値X3未満である場合(ステップS306のNO)、ECC生成部14は、生成方法4を選択する(ステップS309)。生成方法4は、生成方法1〜4の中で、処理周期CTの間に画像データIm3を送信可能な範囲で最もデータサイズが大きいECCを生成可能な生成方法である。
このように、各生成方法1〜4は、ECC率Xの範囲と予め対応付けられる。図8の例では、生成方法1は閾値X1以上の範囲に対応し、生成方法2は閾値X2以上閾値X1未満の範囲に対応し、生成方法3は閾値X3以上閾値X2未満の範囲に対応し、生成方法4は閾値X3未満の範囲に対応する。そして、ECC生成部14は、有効期間VT及び処理周期CTに基づいて計算したECC率Xを含むECC率Xの範囲に対応づけられた生成方法を選択する。
これにより、ECC生成部14は、生成方法1〜4の中で、処理周期CTの間に画像データIm3を送信可能な範囲で最もデータサイズが大きいECCを生成可能な生成方法を選択することができる。図8の例では、生成方法1〜4の順で、データサイズが大きいECCが生成される。
以上説明した通り、本実施形態によれば、ECC生成部14は、有効期間VT(画像データIm2のデータサイズ)及び処理周期CTに基づいて、ECCの生成方法を選択する。これにより、ECC生成部14は、処理周期CTの間に画像データIm2と共に受信装置2に送信可能なECCを生成することができる。また、ECC生成部14は、ECC率Xが大きい(すなわち、画像データIm2のデータサイズが小さい、又は処理周期CTが短い)ほど、データサイズが大きいECCを生成することができる。したがって、本実施形態によれば、ECCによる画像データIm3の誤り訂正能力を向上させつつ、画像データIm3の転送周期(処理周期)を保証することができる。
なお、本実施形態において、選択可能なECCの生成方法は4つに限られない。選択可能なECCの生成方法には、生成されるECCの種類が異なる生成方法が含まれてもよいし、データサイズが異なる同一種類のECCを生成する生成方法が含まれてもよい。
また、図9の例のように、周期信号生成部12を受信装置2に設けることも可能である。この場合、送信装置1のカウント部13は、受信装置2の周期信号生成部12が出力した周期信号CSを、通信インタフェース106,206を介して受信すればよい。
また、図10の例のように、ハーネス3を複数レーンにしてもよい。この場合、送信装置1及び受信装置2に、各レーンに対応する画像データ送信部16及び画像データ受信部21をそれぞれ設ければよい。複数レーン化することにより、1レーンあたりの転送レートを遅くすることができるため、転送時の誤りの発生を抑制することができる。
また、ECC生成部14は、1周期目の画像データIm2のECCを生成してもよい。この場合、1周期目に利用するECCの生成方法を予め設定しておけばよい。送信装置1は、生成されたECCが1周期目の処理周期CTの間に送信可能である場合、画像データIm2と共にECCを送信し、送信不能である場合、生成したECCを送信せずに破棄すればよい。
また、以上の説明では、画像データIm3として、画像データIm2、ECC、及び周期信号CSを順番に送信する場合を例に説明したが、図11の例のように、画像データIm2、ECC、及び周期信号CSを分割して交互に送信してもよい。具体的には、送信装置1は、処理周期CTの間、所定の時間間隔で、画像データIm2の一部と、当該一部に対応するECCと、その時点までに入力された周期信号CSと、の組を画像データIm3として送信すればよい。これにより、図5の例と同様に、処理周期CTの間に、画像データIm2と、ECCと、周期信号CSと、を画像データIm3として受信装置2に送信することができる。
<第2実施形態>
第2実施形態に係る画像データ送信システムについて、図12を参照して説明する。図12は、本実施形態に係る画像データ転送システムの機能構成の一例を示す図である。図12に示すように、本実施形態に係る受信装置2は、誤り集計部25を備える。以下、第1実施形態との相違点について説明する。
誤り集計部25は、画像データ受信部21及び誤り訂正部23から、画像データIm3の転送時に発生した誤りの検出結果を入力される。画像データ受信部21が検出する誤りは、例えば、10b8b変換の誤りであるが、これに限られない。誤り集計部25は、入力された検出結果を集計し、集計結果(誤りの発生回数やその統計値(平均値、最大値、最小値、最頻値など))を送信装置1のECC生成部14に送信する。誤り集計部25は、誤りの検出結果を入力されるたびに集計結果を送信してもよいし、所定期間ごとに集計結果を送信してもよい。本実施形態において、ECC生成部14は、集計結果を受信すると、受信した集計結果に基づいて、ECCの生成方法を再選択する。
再選択方法として、例えば、集計結果が所定の閾値以上である場合に、ECCのデータサイズが大きくなるように生成方法を再選択し、集計結果が所定の閾値未満である場合に、ECCのデータサイズが小さくなるように、生成方法を再選択する方法が考えられる。ECCの生成方法をこのように再選択することにより、誤りの発生が多いほど、誤り訂正能力が高いECCを生成することができる。また、誤りの発生が少ないほど、送信周期をより確実に保証できるECCを生成することができる。
上記のように生成方法を再選択する場合、各ECC率Xの範囲に複数の生成方法を予め対応させておけばよい。これにより、処理周期CTの間に画像データIm3を送信可能な範囲内で、ECCの生成方法を再選択することができる。
以上説明した通り、本実施形態によれば、画像データIm3の転送時に発生した誤りの集計結果に基づいて、ECCの生成方法を再選択することができる。したがって、本実施形態によれば、画像データIm3の転送時に発生する誤りの状態に応じた適切なECCを生成することができる。
<第3実施形態>
第3実施形態に係る画像データ転送システムについて、図13及び図14を参照して説明する。本実施形態では、処理周期CTが画像データIm2の複数ライン分のライン周期である場合について説明する。
図13は、1周期目の処理の一例を示すフローチャートである。図13のフローチャートは、図6のフローチャートにステップS117〜S121を追加したものに相当する。以下では、処理周期CTは、画像データIm2のNライン分のライン周期であり、処理周期CTに含まれるライン周期の数Nは、予め送信装置1に通知されているものとする。
カウント部13に1回目の周期信号CS1が入力されると(ステップS101)、1周期目の処理が開始する。1周期目の処理が開始すると、カウント部13及びECC生成部14は、ライン番号iを1に初期化する。ライン番号iは、現在入力されている画像データIm2が、現在の処理周期CTにおける何ライン目かを示すパラメータである。
ECC生成部14は、ライン番号iを初期化した後、ステップS102〜S106の処理を実行する。これにより、1ライン目の画像データIm2と、その時点までに入力された周期信号CS1と、が画像データIm3として受信装置2に送信される。
その後、ECC生成部14は、ライン番号iがNであるか確認する(ステップS118)。ライン番号iがNでない場合(ステップS118のNO)、ECC生成部14は、ライン番号iを1増加させる(ステップS119)。その後、処理はステップS102に戻る。一方、ライン番号iがNである場合(ステップS118のYES)、処理はステップS116に進む。このように、ライン番号iがNとなるまでステップS102〜S106の処理を繰り返すことにより、Nライン分の画像データIm2と、周期信号CS1と、が画像データIm3として受信装置2に送信される。
一方、カウント部13は、ライン番号iを初期化した後、ステップS111〜S114の処理を実行する。これにより、1ライン目の画像データIm2の有効期間VTをカウントすることができる。
その後、カウント部13は、ライン番号iがNであるか確認する(ステップS120)。ライン番号iがNでない場合(ステップS120のNO)、カウント部13は、ライン番号iを1増加させる(ステップS121)。そして、処理はステップS111に戻る。一方、ライン番号iがNである場合(ステップS120のYES)、処理はステップS115に進む。このように、ライン番号iがNとなるまでステップS111〜S114の処理を繰り返すことにより、Nライン分の画像データIm2の有効期間VTをカウントすることができる。ステップS115において、カウント部13は、Nライン目の有効期間VTをECC生成部14に入力してもよいし、Nライン分の有効期間VTの平均値をECC生成部14に入力してもよい。
なお、ステップS116において、ECC生成部14は、第1実施形態と同様の方法でECCの生成方法を選択する。すなわち、ECC生成部14は、処理周期CT及び有効期間VTに基づいてECC率Xを計算し、得られたECC率Xに基づいて、ECCの生成方法を選択する。ただし、本実施形態において、ECC率Xは、処理周期CTのN分の1と有効期間VTとの差を、有効期間VTで除算した値である(X=(CT/N−VT)/VT)。これは、本実施形態では、処理周期CTが、Nライン分のライン周期のためである。
図14は、2周期目の処理の一例を示すフローチャートである。図14のフローチャートは、図7のフローチャートにステップS211〜S213を追加したものに相当する。
カウント部13に2回目の周期信号CS2が入力されると(ステップS201)、2周期目の処理が開始する。2周期目の処理が開始すると、ECC生成部14は、ライン番号iを1に初期化する(ステップS211)。その後、ECC生成部14は、ステップS202〜S210の処理を実行する。これにより、1ライン目の画像データIm2と、当該画像データIm2のECCと、その時点までに入力された周期信号CS2と、が画像データIm3として受信装置2に送信される。
その後、ECC生成部14は、ライン番号iがNであるか確認する(ステップS212)。ライン番号iがNでない場合(ステップS212のNO)、ECC生成部14は、ライン番号iを1増加させる(ステップS213)。そして、処理はステップS202に戻る。一方、ライン番号iがNである場合(ステップS212のYES)、2周期目の処理が終了する。このように、ライン番号iがNとなるまでステップS202〜S210の処理を繰り返すことにより、Nライン分の画像データIm2と、Nライン分の画像データIm2のECCと、周期信号CS2と、が画像データIm3として受信装置2に送信される。
以上説明した通り、本実施形態によれば、処理周期CTが複数ライン分のライン周期の場合であっても、第1実施形態と同様の処理が可能である。したがって、本実施形態によれば、ECCによる画像データIm3の誤り訂正能力を向上させつつ、画像データIm3の転送周期(処理周期)を保証することができる。
なお、ECC生成部14は、1周期目の処理で送信された画像データIm2のライン数をカウントすることにより、処理周期CTに含まれるライン周期の数Nを把握してもよい。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。