(57)【要約】【課題】オーバーサンプリング方式を用いたシリアル伝送を行う場合に、簡単な構成でデータ品質の向上を図ることができる受信装置等を提供する。【解決手段】受信装置は、複数のビットデータを含むシリアルデータを受信し、受信したデータのオーバーサンプリングを行う受信部２１と、オーバーサンプリングされたデータからビットデータを抽出し、メモリ２３に順次格納する抽出部２２と、メモリ２３からビットデータを読み出して出力データを生成する生成部とを備え、生成部は、抽出部２２に対して要求信号を出力する要求部を備え、抽出部２２は、メモリ２３に格納したデータ数をカウントするカウンタと、カウントしたデータ数を生成部に通知する通知部と、要求信号を取得した場合、要求信号に対する応答信号を出力する応答部とを備え、生成部は、応答信号を取得した場合、前記データ数のビットデータを読み出すことを特徴とする。【選択図】図３
2019069034.tif 000002
【特許請求の範囲】
【請求項１】
複数のビットデータを含むシリアルデータを受信し、受信したデータのオーバーサンプリングを行う受信部と、
オーバーサンプリングされたデータから前記ビットデータを抽出し、メモリに順次格納する抽出部と、
前記メモリから前記ビットデータを読み出して出力データを生成する生成部と
を備え、
前記生成部は、前記抽出部に対して要求信号を出力する要求部を備え、
前記抽出部は、
前記メモリに格納したデータ数をカウントするカウンタと、
カウントした前記データ数を前記生成部に通知する通知部と、
前記要求信号を取得した場合、該要求信号に対する応答信号を出力する応答部と
を備え、
前記生成部は、前記応答信号を取得した場合、前記データ数の前記ビットデータを読み出す
ことを特徴とする受信装置。
【請求項２】
前記生成部は、
前記応答信号に応じて、前記ビットデータの読み出しを開始する否かを判定する判定部と、
読み出しを開始すると判定した場合、前記メモリから読み出した前記ビットデータの読出数をカウントする読出数カウンタと
を備え、
前記要求部は、前記データ数の前記ビットデータの読み出しを完了後、前記要求信号を出力する
ことを特徴とする請求項１に記載の受信装置。
【請求項３】
前記要求部は、前記応答信号を取得した場合、前記要求信号の出力を停止し、
前記応答部は、前記要求信号の出力停止を検知した場合、前記応答信号の出力を停止し、
前記判定部は、前記応答信号の出力が停止されたか否かに応じて、前記ビットデータの読み出しを開始するか否かを判定する
ことを特徴とする請求項２に記載の受信装置。
【請求項４】
前記生成部が前記メモリから前記ビットデータを読み出す読出速度は、前記抽出部が前記メモリに前記ビットデータを書き込む書込速度を超過する
ことを特徴とする請求項１〜３のいずれか１項に記載の受信装置。
【請求項５】
前記シリアルデータは、所定単位数の前記ビットデータからなるセグメントデータが連続し、かつ、所定数の該セグメントデータ毎に同期コードが埋め込まれたシリアルデータであり、
前記生成部は、
ｎ（ｎは正の整数）個の前記セグメントデータから、ｎ−１個の新たなセグメントデータを生成するセグメント生成部と、
前記同期コードのビット数に応じたビット長を有し、前記セグメント生成部が生成した前記新たなセグメントデータを順次格納する保持部と、
該保持部に格納されているデータを、前記新たなセグメントデータのビット数に応じたパターン数の前記同期コードと比較することで、前記保持部から元の前記セグメントデータを抽出する際の抽出パターンを選択する選択部と、
選択した前記抽出パターンに従い、前記保持部から前記セグメントデータを抽出する第２抽出部と
を備え、
前記セグメント生成部は、ｎ−１回に亘って前記新たなセグメントデータを前記保持部に順次出力すると共に、ｎ回目では前記新たなセグメントデータを出力せず又は無効化されたデータを出力する
ことを特徴とする請求項１〜４のいずれか１項に記載の受信装置。
【請求項６】
複数のビットデータを含むシリアルデータを受信してオーバーサンプリングを行う受信部と、オーバーサンプリングされたデータから前記ビットデータを抽出する抽出部と、抽出した前記ビットデータに基づき出力データを生成する生成部とを備えた受信装置に、
抽出した前記ビットデータをメモリに順次格納し、
前記メモリに格納した前記ビットデータのデータ数をカウントし、
前記生成部から前記抽出部に対して要求信号を出力し、
カウントした前記データ数を前記生成部から前記抽出部に通知し、
前記抽出部が前記要求信号を取得した場合、前記生成部から前記抽出部に対して応答信号を出力し、
前記応答信号を取得した場合、前記生成部が前記データ数の前記ビットデータを読み出す
処理を実行させることを特徴とするデータ処理方法。
【請求項７】
撮像ユニットと、撮像画像のパラレルデータをシリアル化したシリアルデータを前記撮像ユニットから受信する受信装置とを有する内視鏡装置であって、
前記受信装置は、
前記シリアルデータを受信し、受信したデータのオーバーサンプリングを行う受信部と、
オーバーサンプリングされたデータからビットデータを抽出し、メモリに順次格納する抽出部と、
前記メモリから前記ビットデータを読み出して出力データを生成する生成部と
を備え、
前記生成部は、前記抽出部に対して要求信号を出力する要求部を備え、
前記抽出部は、
前記メモリに格納したデータ数をカウントするカウンタと、
カウントした前記データ数を前記生成部に通知する通知部と、
前記要求信号を取得した場合、該要求信号に対する応答信号を出力する応答部と
を備え、
前記生成部は、前記応答信号を取得した場合、前記データ数の前記ビットデータを読み出す
ことを特徴とする内視鏡装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置、データ処理方法及び内視鏡装置に関する。
【背景技術】
【０００２】
ＬＶＤＳ（Low Voltage Differential Signaling）のように、機器内の異なるチップ間、ボード間、又は異なる機器間でデータを送受信する際に、シリアル伝送によりデータを高速で送受信する技術がある。例えば内視鏡装置に係る撮像システムの場合、内視鏡装置の撮像素子からシリアル伝送される画像データを、内視鏡装置内のＦＰＧＡ（Field Programmable Gate Array）等の受信回路、又は外部のプロセッサ装置で受信し、受信した画像データを受信回路又はプロセッサ装置で復元して、モニタに撮像画像を出力する（特許文献１参照）。
【０００３】
シリアル伝送には、例えば８ｂ／１０ｂ等の高速シリアル転送方式のほか、クロック埋め込み方式（エンベデッド・クロック方式）がある。クロック埋め込み方式では、例えば伝送データにスタートビット及びエンドビットを埋め込み、受信側でスタートビット及びエンドビットの位置を検知してデータを復元する。クロック埋め込み方式は、伝送するデータ自体にクロック信号を埋め込むため、レファレンスクロックを送信側及び受信側で共有するためのクロック信号の伝送路が不要となり、回路構成を簡素化することができる。
【０００４】
クロック埋め込み方式では、受信側で伝送データを整数倍するオーバーサンプリングを行い、サンプリングしたデータから各ビットデータの境界位置（エッジ位置）を検出してビットデータを抽出する場合がある。抽出されたビットデータは中間のメモリに一時的に記憶される。出力用の画像データを生成する後段の処理回路は、メモリからデータを順次読み出し、読み出したデータからスタートビット及びエンドビットを分離する復号処理を行って、出力用の画像データを生成する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２０１５４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、オーバーサンプリング方式を用いたシリアル伝送の場合、伝送データにジッタ、ノイズ等が発生すると、サンプリングされたデータからビットデータを抽出する際にネガティブビットスキップ又はポジティブビットスキップが頻発する。これにより、メモリに書き込まれるビットデータのデータレートが一定でなくなり、理想周期に対する実際の書き込み周期のずれが生じる。従って、メモリを介したデータの書き込み及び読み出しについて、後段の処理回路との間で、書き込み周期と読み出し周期との関係に破綻を来す虞がある。
【０００７】
オーバーサンプリングを用いない８ｂ／１０ｂ等の高速シリアル転送方式の場合、ジッタ等を低減可能な処理を行うため、上記の問題はほとんど起こらない。しかし、クロック埋め込み方式に比べて実装面で複雑になり、回路構成の簡素化に反する。
【０００８】
一つの側面では、オーバーサンプリング方式を用いたシリアル伝送を行う場合に、簡単な構成でデータ品質の向上を図ることができる受信装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの側面に係る受信装置は、複数のビットデータを含むシリアルデータを受信し、受信したデータのオーバーサンプリングを行う受信部と、オーバーサンプリングされたデータから前記ビットデータを抽出し、メモリに順次格納する抽出部と、前記メモリから前記ビットデータを読み出して出力データを生成する生成部とを備え、前記生成部は、前記抽出部に対して要求信号を出力する要求部を備え、前記抽出部は、前記メモリに格納したデータ数をカウントするカウンタと、カウントした前記データ数を前記生成部に通知する通知部と、前記要求信号を取得した場合、該要求信号に対する応答信号を出力する応答部とを備え、前記生成部は、前記応答信号を取得した場合、前記データ数の前記ビットデータを読み出すことを特徴とする。
【００１０】
一つの側面に係る受信装置は、前記生成部は、前記応答信号に応じて、前記ビットデータの読み出しを開始する否かを判定する判定部と、読み出しを開始すると判定した場合、前記メモリから読み出した前記ビットデータの読出数をカウントする読出数カウンタとを備え、前記要求部は、前記データ数の前記ビットデータの読み出しを完了後、前記要求信号を出力することを特徴とする。
【００１１】
一つの側面に係る受信装置は、前記要求部は、前記応答信号を取得した場合、前記要求信号の出力を停止し、前記応答部は、前記要求信号の出力停止を検知した場合、前記応答信号の出力を停止し、前記判定部は、前記応答信号の出力が停止されたか否かに応じて、前記ビットデータの読み出しを開始するか否かを判定することを特徴とする。
【００１２】
一つの側面に係る受信装置は、前記生成部が前記メモリから前記ビットデータを読み出す読出速度は、前記抽出部が前記メモリに前記ビットデータを書き込む書込速度を超過することを特徴とする。
【００１３】
一つの側面に係る受信装置は、前記シリアルデータは、所定単位数の前記ビットデータからなるセグメントデータが連続し、かつ、所定数の該セグメントデータ毎に同期コードが埋め込まれたシリアルデータであり、前記生成部は、ｎ（ｎは正の整数）個の前記セグメントデータから、ｎ−１個の新たなセグメントデータを生成するセグメント生成部と、前記同期コードのビット数に応じたビット長を有し、前記セグメント生成部が生成した前記新たなセグメントデータを順次格納する保持部と、該保持部に格納されているデータを、前記新たなセグメントデータのビット数に応じたパターン数の前記同期コードと比較することで、前記保持部から元の前記セグメントデータを抽出する際の抽出パターンを選択する選択部と、選択した前記抽出パターンに従い、前記保持部から前記セグメントデータを抽出する第２抽出部とを備え、前記セグメント生成部は、ｎ−１回に亘って前記新たなセグメントデータを前記保持部に順次出力すると共に、ｎ回目では前記新たなセグメントデータを出力せず又は無効化されたデータを出力することを特徴とする。
【００１４】
一つの側面に係るデータ処理方法は、複数のビットデータを含むシリアルデータを受信してオーバーサンプリングを行う受信部と、オーバーサンプリングされたデータから前記ビットデータを抽出する抽出部と、抽出した前記ビットデータに基づき出力データを生成する生成部とを備えた受信装置に、抽出した前記ビットデータをメモリに順次格納し、前記メモリに格納した前記ビットデータのデータ数をカウントし、前記生成部から前記抽出部に対して要求信号を出力し、カウントした前記データ数を前記生成部から前記抽出部に通知し、前記抽出部が前記要求信号を取得した場合、前記生成部から前記抽出部に対して応答信号を出力し、前記応答信号を取得した場合、前記生成部が前記データ数の前記ビットデータを読み出す処理を実行させることを特徴とする。
【００１５】
一つの側面に係る内視鏡装置は、撮像ユニットと、撮像画像のパラレルデータをシリアル化したシリアルデータを前記撮像ユニットから受信する受信装置とを有する内視鏡装置であって、前記受信装置は、前記シリアルデータを受信し、受信したデータのオーバーサンプリングを行う受信部と、オーバーサンプリングされたデータからビットデータを抽出し、メモリに順次格納する抽出部と、前記メモリから前記ビットデータを読み出して出力データを生成する生成部とを備え、前記生成部は、前記抽出部に対して要求信号を出力する要求部を備え、前記抽出部は、前記メモリに格納したデータ数をカウントするカウンタと、カウントした前記データ数を前記生成部に通知する通知部と、前記要求信号を取得した場合、該要求信号に対する応答信号を出力する応答部とを備え、前記生成部は、前記応答信号を取得した場合、前記データ数の前記ビットデータを読み出すことを特徴とする。
【発明の効果】
【００１６】
一つの側面では、オーバーサンプリング方式を用いたシリアル伝送を行う場合に、簡単な構成でデータ品質の向上を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】内視鏡システムの構成例を示すブロック図である。
【図２】シリアルデータに関する説明図である。
【図３】受信回路の構成例を示すブロック図である。
【図４】オーバーサンプリングに関する説明図である。
【図５】抽出部におけるビットデータの抽出処理に関する説明図である。
【図６】抽出部の一部の回路構成を示す説明図である。
【図７】セグメント生成部の一部の回路構成を示す説明図である。
【図８】新たなセグメントデータの生成処理に関する説明図である。
【図９】コア回路の構成例を示す機能ブロック図である。
【図１０】出力データの生成処理に関する説明図である。
【図１１】受信回路における処理手順の一例を示すフローチャートである。
【図１２】ビットデータの書き込み及び読み出し処理に係るサブルーチンの処理手順を示すフローチャートである。
【図１３】出力データ生成処理のサブルーチンの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態）
図１は、内視鏡システムの構成例を示すブロック図である。本実施の形態では、シリアル伝送を行う通信システムの一例として、内視鏡システムを挙げて説明を行う。内視鏡システムは、挿入部分が体内に挿入される内視鏡装置１と、内視鏡装置１に着脱自在に接続されるプロセッサ装置３と、プロセッサ装置３から出力される画像を表示するモニタ４とを有する。
【００１９】
内視鏡装置１は、制御部１１、受信回路（受信装置）１２、駆動回路１３、撮像ユニット１４、画像処理回路１５を含む。制御部１１は、一又は複数のＣＰＵ（Central Processing Unit）等の演算処理装置であり、内視鏡装置１の処理動作の制御を行う。受信回路１２は、撮像ユニット１４から伝送される撮像画像のシリアルデータを受信する受信回路であり、例えばＦＰＧＡ等である。駆動回路１３は、制御部１１からの指令に基づいて撮像ユニット１４を駆動する駆動回路である。画像処理回路１５は、受信回路１２で受信した画像データに対する画像処理を行う処理回路である。制御部１１、受信回路１２、駆動回路１３、及び画像処理回路１５は、プロセッサ装置３に接続される内視鏡装置１のコネクタ部分に設けられる。
【００２０】
撮像ユニット１４は、内視鏡装置１の挿入部分先端に設けられている。撮像ユニット１４は、例えばＣＭＯＳ（Complementary MOS）等の撮像素子を有し、対物レンズ１６を介して撮像を行う。撮像ユニット１４は、撮像画像に係るアナログ信号をデジタル信号に変換するＡ／Ｄ変換器、パラレルデータである撮像画像をシリアルデータに変換するＰ／Ｓ変換器（いずれも不図示）などのほか、撮像画像に係るシリアルデータを受信回路１２に送信する送信部１４１を有する。受信回路１２は、制御部１１からの指令に基づいて、撮像ユニット１４から送信されるシリアルデータを処理し、出力用の画像信号を生成してプロセッサ装置３に出力する。
【００２１】
プロセッサ装置３は、制御部３１、映像処理部３２、光源ユニット３３を含む。制御部３１は、プロセッサ装置３の処理動作を制御するＣＰＵ等である。映像処理部３２は、内視鏡装置１から出力された画像信号を処理する画像処理回路であり、モニタ４に映像（撮像画像）を出力する。光源ユニット３３は、照明用の光を出射する光源であり、光源ユニット３３からの出射光は内視鏡装置１内の導光路を通ってレンズ１７から出射される。
【００２２】
図２は、シリアルデータに関する説明図である。上述の如く、受信回路１２及び撮像ユニット１４の間のデータの送受信は、シリアル伝送により行われる。例えば撮像ユニット１４の送信部１４１は、図２下段に示すように、Ｄ０〜Ｄ１９の２０ビットのビットデータの先頭及び末尾にスタートビット及びエンドビットを埋め込んだセグメントデータＣ０、Ｃ１、Ｃ２…を単位としてパケット化する。セグメントデータＣ０、Ｃ１、Ｃ２…はそれぞれ、撮像ユニット１４が備える各撮像素子に形成された１画素分の画像データに相当する。送信部１４１は、１画素当たり２０ビットでデータをパケット化し、各画素に係るセグメントデータの先頭及び末尾にスタートビット及びエンドビットを挿入する。スタートビット及びエンドビットはそれぞれ、例えば「１」と「０」とで表される。送信部１４１は、２０ビットの各画素のデータをスタートビット及びエンドビットで挟み、後述するアライメントの対象となるセグメントデータＣ０、Ｃ１、Ｃ２…を生成する。
【００２３】
送信部１４１は、各セグメントデータを複数サイクルに亘って直列に接続してシリアルデータを生成する。この場合に送信部１４１は、所定数のセグメントデータ毎に、同期用のＡＶコード（同期コード）を埋め込んで、図２中段に示す一連のシリアルデータを生成する。ＡＶコードは、撮像時のブランキング期間に相当する位置に埋め込まれるデータであり、同期クロック（スタートビット及びエンドビット）以外の方法で送信側（撮像ユニット１４）と受信側（受信回路１２）との間の同期をより確実に取るために用いられる同期確認用のデータである。例えばＡＶコードは、図２上段に示すように、複数の連続する「０」のビットデータと、複数の連続する「１」のビットデータとが接続された２０ビットのデータ、及び当該２０ビットのデータの前端及び後端にそれぞれ２ビットずつ挿入されるスタートビット及びエンドビットから構成される。例えば送信部１４１は、撮像ユニット１４の各撮像素子で撮像されたパラレルデータをシリアルデータに変換して送信する際に、シリアルデータの開始位置を示す情報としてＡＶコードを冒頭に挿入した上で、シリアルデータを受信回路１２に送信する。例えば送信部１４１は、６００Ｍｂｐｓの高速レートでシリアルデータを送信する。
【００２４】
図３は、受信回路１２の構成例を示すブロック図である。受信回路１２は、受信部２１、抽出部２２、メモリ２３、ワードアライナ回路（生成部）２４を含む。
受信部２１は、撮像ユニット１４からのシリアルデータを受信するレシーバ回路、当該シリアルデータからクロックを再生してデータを取り出すＣＤＲ（Clock & Data Recovery）回路、シリアルデータをパラレルデータに変換するＳ／Ｐ変換器等（いずれも不図示）を有する。本実施の形態で受信部２１は、シリアルデータから再生された本来のクロックの整数倍の周波数で受信データをサンプリングするオーバーサンプリングを行い、オーバーサンプリングされた受信データを抽出部２２に出力する。
【００２５】
抽出部２２は、オーバーサンプリングされたデータに含まれる各ビットデータの境界位置（エッジ位置）を検出し、各ビットデータを抽出するエッジ選択回路であり、後段所望のデータレートでビットデータをメモリ２３に格納する。メモリ２３は、抽出部２２及びワードアライナ回路２４の間で受け渡されるビットデータを一時的に記憶する記憶領域であり、例えばＤＰ−ＲＡＭ（Dual-ported RAM）である。より詳細には、メモリ２３はＦＩＦＯ（First In First Out）であり、抽出部２２から書き込まれるビットデータを順次格納し、書き込み時の順序に従って各ビットデータをワードアライナ回路２４に出力する。
【００２６】
ワードアライナ回路２４は、メモリ２３から読み出す入力データからスタートビット及びエンドビットを分離するアライメント処理を行い、出力用の画像データを生成する後段処理回路である。図３に示すように、ワードアライナ回路２４は、セグメント生成部２４１及びコア回路２４２を備える。コア回路２４２は、出力用の画像データを生成するアライメント処理を行う回路である。セグメント生成部２４１は、コア回路２４２がアライメントを行う前に、メモリ２３から読み出したデータの前処理を行う回路である。詳しくは後述するように、セグメント生成部２４１は、ｎサイクルのセグメントデータからｎ−１サイクルの新たなセグメントデータを生成し、コア回路２４２に供給する。
【００２７】
図４は、オーバーサンプリングに関する説明図である。受信部２１は、受信データを整数倍するオーバーサンプリングを行い、オーバーサンプリング後のビットデータを抽出部２２に入力する。本実施の形態において受信部２１は、受信したシリアルデータをパラレルデータに変換後、変換したデータを４倍のレートでオーバーサンプリングする。例えば図４に示すように、受信部２１は、サンプリングクロックを伝送レートの４倍に設定することで、オーバーサンプリング前の２ビット分の入力データ（Ｄ０及びＤ１）から、オーバーサンプリング後の８ビットの出力データを得る。
【００２８】
図５は、抽出部２２におけるビットデータの抽出処理に関する説明図である。抽出部２２は、４倍のレートでオーバーサンプリングされた一連のデータから、隣り合うビットデータの変化点（エッジ位置）を検出することで、データビット列の一部分を選択する処理を行う。
【００２９】
図５では、Ｄ０及びＤ１のビットデータを選択する様子を図示している。抽出部２２は、隣り合うビットデータ同士を比較する排他的論理和演算を行い、ビットデータが反転する反転位置（エッジ位置）を検出する。例えば抽出部２２は、オーバーサンプリングされたデータのうち、連続する８ビットのデータ毎に比較処理を行う。具体的には図５に示すように、抽出部２２は、８ビットのうち隣り合う２ビットのデータに対し、８つの変化点（同位相で各２つの変化点０〜４）を検知する。抽出部２２は、各変化点について排他的論理和演算を行い、ビットデータが反転する位置、すなわちエッジ位置を検出する。抽出部２２は、検出したエッジ位置から離れたビットデータを信頼性の高いビットデータと推定し、これを抽出する。
【００３０】
上記のように、抽出部２２は、８ビットにデータビット列において２ビットのデータを抽出する。例えば抽出部２２は、２ビットずつ抽出したビットデータを一時的に蓄積し、セグメントの単位数である２０ビットずつメモリ２３に格納する。後段のワードアライナ回路２４のセグメント生成部２４１は、メモリ２３に格納されたビットデータを順次読み出して処理を行う。
【００３１】
ここで、オーバーサンプリングによりデータにジッタ、ノイズ等が発生した場合、抽出部２２でポジティブビットスキップ又はネガティブビットスキップが発生し、抽出部２２によるデータの書き込みが理想周期より早くなる、又は遅くなる事態が発生する虞がある。従って、ワードアライナ回路２４が一定の周期で読み出しを行うだけの場合、メモリ２３に格納されているビットデータの過剰又は不足が発生する虞がある。そこで本実施の形態では、抽出部２２とセグメント生成部２４１との間にハンドシェイク機能を設け、上記の問題を防止する。
【００３２】
図６は、抽出部２２の一部の回路構成を示す説明図である。図７は、セグメント生成部２４１の一部の回路構成を示す説明図である。図６及び図７では、ハンドシェイク機能に関わる抽出部２２及びセグメント生成部２４１それぞれの回路構成を抜き出して図示している。図６及び図７を参照して、抽出部２２とセグメント生成部２４１との間のハンドシェイク処理について説明する。
図６に示すように、抽出部２２は、リクエストラッチ部６１、カウンタ６２、応答部６３、及び通知部６４を有する。各要素は例えばフリップフロップ回路である。
【００３３】
リクエストラッチ部６１は、後述するようにセグメント生成部２４１から出力されるリクエスト信号（要求信号）をラッチする。リクエスト信号は、セグメント生成部２４１のリクエスト部７３から出力される信号であり、ビットデータの読み出しを要求する信号である。リクエストラッチ部６１は、メモリ２３に格納されているビットデータが０以外の場合はリクエスト信号をラッチし、ビットデータが０の場合はリクエスト信号をラッチしない。例えばリクエストラッチ部６１は、リクエスト信号が１となった場合にこれを保持し、リクエスト信号が０となった場合にリセットされる。
【００３４】
カウンタ６２は、抽出部２２に実装されているビットデータの書き込み回路（不図示）から、メモリ２３にビットデータを書き込んだか否かを示すライトイネーブル信号の入力を受ける。カウンタ６２は、ライトイネーブル信号の入力値に応じてカウントアップし、カウントしたデータ数を保持する。カウンタ６２は、カウントしたデータ数を通知部６４に入力すると共に、フィードバックによりリクエストラッチ部６１にも入力する。
【００３５】
応答部６３は、リクエストラッチ部６１に接続されており、リクエストラッチ部６１を介してリクエスト信号の入力を受ける。応答部６３は、リクエスト信号の立ち上がりを検知した場合に動作し、リクエスト信号に対する応答信号（ＡＣＫ信号）を生成してセグメント生成部２４１に出力する。また、応答部６３は、リクエストの立ち下がりを検知した場合、つまりリクエスト信号の出力停止を検知した場合、応答信号の出力を停止、すなわちディセーブルとする。
【００３６】
通知部６４は、カウンタ６２から入力される読出可能データ数をセグメント生成部２４１に通知する。通知部６４はリクエストラッチ部６１に接続されており、リクエスト信号の立ち上がりを検知した場合に動作してデータ数を通知する。
【００３７】
図７に移って、セグメント生成部２４１は、カウンタ（読出数カウンタ）７１、判定部７２、リクエスト部（要求部）７３、及びリードアドレス生成部７４を有する。
カウンタ７１は、メモリ２３から読み出したビットデータ数をカウントする。カウンタ７１には、応答部６３から出力される応答信号、及び通知部６４から通知されるデータ数が入力される。カウンタ７１は、応答信号が立ち上がったタイミングで読出可能データ数の反転をラッチする。カウンタ７１は、応答信号が０である場合に動作し、カウンタ７１の全てのビットが１になるまでカウントアップする。カウンタ７１は、カウントしたビットデータの読み出し数を判定部７２及びリクエスト部７３に出力する。
【００３８】
判定部７２は、メモリ２３からビットデータの読み出しを開始するか否かを判定する。判定部７２は、カウンタ７１から入力される読出数に基づき、メモリ２３からビットデータを読み出し可能であるかを判定し、読出可能である場合は、読出可能である旨を示すリードイネーブル信号を出力する。また、判定部７２には、応答部６３から応答信号が入力される。判定部７２は、抽出部２２との間のリクエスト及び応答のやり取りが完全に完了してから読み出しを開始するように、応答信号が立ち下がってから、すなわち出力が停止されてからリードイネーブル信号を出力する。セグメント生成部２４１は、判定部７２から出力されるリードイネーブル信号に基づきビットデータの読み出しを行う。
【００３９】
リクエスト部７３は、抽出部２２に対してビットデータの読み出しを要求するリクエスト信号を生成する。リクエスト部７３には、応答部６３から出力される応答信号と、カウンタ７１から出力されるビットデータの読み出し数とが入力される。セグメント生成部２４１は、応答信号が０（ディセーブル）であり、かつ、カウンタ７１の全ビットが１の場合、読出可能なビットデータを全て読み出した状態となり、読出を停止する。この場合にリクエスト部７３は、次の読み出し可能なビットデータをリクエストするリクエスト信号を生成し、抽出部２２に出力する。
【００４０】
リードアドレス生成部７４は、リードイネーブル信号が１の場合にカウントアップするカウンタ回路である。リードアドレス生成部７４は、リードイネーブル信号に従ってカウントアップすることで、読み出した各ビットデータの順序を示すリードアドレス信号を生成する。
【００４１】
抽出部２２とセグメント生成部２４１との間の信号のやり取りについて詳述する。抽出部２２は、各ビットデータをメモリ２３に順次書き込んでいる。一方で、セグメント生成部２４１は、ビットデータの読み出しを開始する前に、リクエスト信号を抽出部２２に出力する。抽出部２２は、当該リクエスト信号に対する応答信号を生成し、セグメント生成部２４１に返す。
【００４２】
セグメント生成部２４１から応答信号が出力された場合、抽出部２２のリクエストラッチ部６１が応答信号をラッチし、応答信号に係る入力値を保持する。そしてリクエストラッチ部６１は、応答部６３、通知部６４等に応答信号を入力する。リクエスト信号の立ち上がりを検知した場合、応答部６３は応答信号を生成し、セグメント生成部２４１に出力する。また、通知部６４は、カウンタ６２においてカウントしたデータ数をセグメント生成部２４１に通知する。
【００４３】
判定部７２は、応答部６３から応答信号を取得した場合、データの読み出しを開始すると判定し、リードイネーブル信号を生成する。この場合に判定部７２は、例えばリクエスト部７３と応答部６３との間のやり取りが完全に完了してからデータの読み出しを開始すべく、応答部６３からの応答信号の出力が停止、すなわち立ち下がってからリードイネーブル信号を生成する。例えばリクエスト部７３は、応答信号の立ち上がりを検知した場合、リクエスト信号の出力を停止、すなわちディセーブルにする。抽出部２２の応答部６３は、リクエスト信号の出力の停止（立ち下がり）を検知した場合に応答信号の出力を停止、すなわちディセーブルにする。判定部７２は、応答信号の立ち下がりを検知した場合、リードイネーブル信号を生成、出力してビットデータの読み出しを開始させる。セグメント生成部２４１はビットデータの読み出しを開始すると共に、カウンタ７１において読出数をカウントする。
【００４４】
この場合にセグメント生成部２４１は、データの読み出しが抽出部２２によるデータの書き込みに追いつくように、抽出部２２によるデータの書込速度を超過する速度でデータを読み出していく。データの読出速度は、書込速度の２〜４倍、例えば２倍であることが好ましい。書込速度を超過する速度でデータの読み出しを行っていくことで、メモリ２３に一時記憶されているデータ数が過剰になることを適切に防止することができる。
【００４５】
セグメント生成部２４１は、通知部６４から通知された読出可能データ数だけビットデータを読み出す。読み出しの完了後、次のデータの読み出しを行うため、リクエスト部７３はリクエスト信号を再度生成して抽出部２２に出力する。このように、ビットデータの読み出しを開始する際にセグメント生成部２４１はリクエスト信号を抽出部２２に出力し、リクエスト信号に対する応答信号を取得したタイミングで、読出可能なデータ数だけビットデータを読み出していく。これにより、適切なタイミングで適切な数だけデータの読み出しが行われ、上記の問題を解決することができる。
【００４６】
図８は、新たなセグメントデータの生成処理に関する説明図である。図８に基づき、セグメント生成部２４１が行う処理について説明する。
セグメント生成部２４１は、後段のコア回路２４２がデータを適切に処理できるように、メモリ２３から読み出したデータに対して前処理を行う。具体的には、セグメント生成部２４１は、先行する一のセグメントデータ（以下、先行セグメントデータという）と、当該一のセグメントデータから１サイクル遅れて送信されるセグメントデータ（以下、遅延セグメントデータという）とから、新たなセグメントデータを生成する処理を行う。
【００４７】
図８の上部に、先行セグメントデータ及び遅延セグメントデータとの対応関係を図示する。上述の如く、撮像ユニット１４からは各サイクルＣ０、Ｃ１、Ｃ２…のシリアルデータが順次送信される。まずセグメント生成部２４１は、各サイクルのセグメントデータのうち、連続する２つのセグメントデータを連結する。例えば図８に示すように、セグメント生成部２４１は、Ｃ０及びＣ１、Ｃ１及びＣ２、Ｃ２及びＣ３…というように、先行セグメントデータと、先行セグメントデータに１サイクル遅れて送信される遅延セグメントデータとをペアにして連結する。
【００４８】
次にセグメント生成部２４１は、連結した各データから、新たなサイクルのセグメントデータを生成する。図８中央に、当該処理の内容を概念的に図示する。まずセグメント生成部２４１は、１サイクル目のペア、つまりＣ０及びＣ１のデータから、新たなセグメントデータＣ’０を生成する。具体的には、セグメント生成部２４１は、２０ビットのＣ０のセグメントデータに、２０ビットのＣ１のセグメントデータのうち、先頭から数えて２ビットのＣ１のビットデータを連結して、２２ビットの新たなセグメントデータＣ’０を生成する。
【００４９】
続いてセグメント生成部２４１は、２サイクル目のペア、つまりＣ１及びＣ２のデータから、新たなセグメントデータＣ’１を生成する。ここで、先行サイクルであるＣ１のセグメントデータのうち、先頭の２ビットのデータは１サイクル目の新たなセグメントデータＣ’０に使用している。そこでセグメント生成部２４１は、Ｃ１の残りのデータ、すなわち１８ビット分のデータを新たなセグメントデータＣ’１に使用する。また、セグメント生成部２４１は、１サイクル目のセグメントデータＣ’０と２サイクル目のセグメントデータＣ’１のビット数が同じになるよう、遅延セグメントデータであるＣ２のうち、先頭から数えて４ビットのデータを新たなセグメントデータＣ’１に使用する。セグメント生成部２４１は、Ｃ１の末尾から１８ビットのデータと、Ｃ２の先頭から４ビットのデータとを連結して、２サイクル目の新たなセグメントデータＣ’２を生成する。
【００５０】
セグメント生成部２４１は、以下同様にして、新たなセグメントデータＣ’２、Ｃ’３…を生成する。具体的には、セグメント生成部２４１は２ビットずつシフトしながら、先行セグメントデータと遅延セグメントデータとを連結する。
【００５１】
１０サイクル目の新たなセグメントデータＣ’９を生成する場合、セグメント生成部２４１は、Ｃ９の２ビット分のデータと、Ｃ１０の２０ビット分のデータとを連結して新たなセグメントデータＣ’９を生成する。続いて１１サイクル目になるが、ここでセグメント生成部２４１は、Ｃ１０のセグメントデータを全て使用して１０サイクル目のセグメントデータＣ’９を生成しているため、処理を１サイクルだけ停止する。具体的には、セグメント生成部２４１は１１サイクル目で新たなセグメントデータを生成（出力）せず、又は無効化したデータを生成（出力）する。
【００５２】
１０サイクル目で処理を停止した後、セグメント生成部２４１は１２サイクル目で処理を再開する。つまりセグメント生成部２４１は、１サイクル目と同様に、Ｃ１１の全てのデータ（２０ビットのデータ）と、Ｃ１２の２ビットのデータとを連結して、新たなセグメントデータＣ’１１を生成する。以下同様にして、１３サイクル目、１４サイクル目…の処理を行って新たなセグメントデータＣ’１２、Ｃ’１３…を生成すると共に、２０サイクル目ではセグメントデータを生成せず、又は無効データを生成する。
【００５３】
このように、セグメント生成部２４１は、１サイクルが２０ビットであるｎ（本実施の形態では１１）サイクルのセグメントデータを用いて、１サイクルが２２ビットであるｎ−１（本実施の形態では１０）サイクルの新たなセグメントデータを生成する。後述するように、１サイクル当たりのデータ長を、スタートビット及びエンドビットのビット数（２ビット）だけ長くしたセグメントデータを生成することで、コア回路２４２は、シリアルデータの冒頭に埋め込まれたＡＶコードを適切に検出することができる。
【００５４】
図９は、コア回路２４２の構成例を示す機能ブロック図である。コア回路２４２は、保持部８１、検出部８２、選択部８３、抽出部（第２抽出部）８４を備える。保持部８１は、セグメント生成部２４１から出力された新たなセグメントデータを格納するレジスタである。検出部８２は、保持部８１に格納されたデータから同期コード（ＡＶコード）を検出する検出器である。選択部８３は、検出部８２による検出結果に基づき、保持部８１に格納されたデータから元々のセグメントデータを抽出する際の抽出パターン、すなわちアライメントパターンを選択する。抽出部８４は、選択部８３が選択したアライメントパターンに従って各セグメントデータを抽出する。
【００５５】
図１０は、出力データの生成処理に関する説明図である。ワードアライナ回路２４のコア回路２４２は、セグメント生成部２４１から順次出力されるセグメントデータを保持部８１に格納する。具体的には、コア回路２４２は、セグメント生成部２４１から出力される２２ビットの新たなセグメントデータを、当該新たなセグメントデータのビット長２２ビットに応じた４５ビット長のレジスタ（保持部８１）に順次格納する。
【００５６】
図１０の上部に、保持部８１に各サイクルの新たなセグメントデータが順次格納される様子を図示している。図１０の例では、コア回路２４２は１サイクル目で、セグメント生成部２４１から出力されたデータから、ＡＶコード（同期コード）部分のビットデータと、ＡＶコードに続くＣ’０のセグメントデータとを含む４５ビットのデータを区切り、保持部８１に格納する。上述の如く、Ｃ’０のセグメントデータは、２０ビットのＣ０のセグメントデータと、２ビットのＣ１のセグメントデータとから生成される。従って、１サイクル目で保持部８１には、２０ビットのＣ０のセグメントデータと、２ビットのＣ１のセグメントデータとが格納される。
【００５７】
続いて２サイクル目で、コア回路２４２は、入力データの区切り範囲を２２ビットずらし、Ｃ’０及びＣ’１を含む４５ビットのデータを保持部８１に格納する。具体的には図示の如く、コア回路２４２は、１サイクル目と同じＣ’０のセグメントデータを２２ビット右にずらして格納すると共に、１サイクル目にＣ’０のセグメントデータの格納箇所に相当する位置にＣ’１のセグメントデータを格納する。
【００５８】
コア回路２４２は、以下同様にして、各サイクルでデータの区切り範囲を２２ビットずつシフトしながら保持部８１にデータを順次格納する。コア回路２４２は、３サイクル目ではＣ’１及びＣ’２のセグメントデータを、４サイクル目ではＣ’２及びＣ’３のセグメントデータを、というようにして、セグメント生成部２４１から順次出力される２２ビットのセグメントデータを順次格納していく。
【００５９】
一方で、１１サイクル目になった場合、セグメント生成部２４１から新たなセグメントデータが出力されない又は無効化されたデータが出力されるため、コア回路２４２はデータの格納処理を１サイクルだけ停止する。これにより、図１０に示すように、１０サイクル目と１１サイクル目とでは、保持部８１に同じデータ（Ｃ’８及びＣ’９）が格納された状態になる。１２サイクル目になった場合、セグメント生成部２４１によるセグメントデータの出力が再開されるため、コア回路２４２も動作を再開し、新たなセグメントデータを保持部８１に格納する。
【００６０】
コア回路２４２の検出部８２は、上記のようにして順次格納されるデータから、ＡＶコード（同期コード）を検出する。具体的には、検出部８２は、保持部８１に格納されたデータを、図１０下部に示す２２パターンのＡＶコードと比較し、どのパターンのＡＶコードに該当するかを検出する。図１０に示すように、ＡＶコードは、両端それぞれに各２ビット挿入されたスタートビット及びエンドビットを含む２４ビットのデータである。各パターンのＡＶコードの内容（ビットデータ）は同じであるが、データの位置が１ビットずつずれている。検出部８２は、保持部８１に格納される４５ビット長のデータのうち、任意の箇所の２４ビット長のデータを確認できるように、２４ビット長のＡＶコードを１ビットずつずらした２２パターンのＡＶコードを用意しておく。
【００６１】
図１０では図示の便宜上、ＡＶコードのビットデータが右端の「０」の位置から順に格納されており、その後に新たなセグメントデータＣ’０、Ｃ’１、Ｃ’２…が格納されている。しかしながら、受信回路１２は、送信元である撮像ユニット１４から同期クロック（スタートビット及びエンドビット）の挿入タイミングを知らされていないため、一連のデータから所定数（４５ビット）のデータを切り取った場合に、図１０に例示する理想的な配置になるとは限らない。例えばＡＶコードのビットデータの格納位置が図１０よりも左に数ビットずれる可能性もある。
【００６２】
そこで検出部８２は、セグメント生成部２４１が生成した新たなセグメントデータが２２ビットであることに対応して、２４ビット長のビットデータを１ビットずつシフトした２２パターンのＡＶコードを用意しておき、各パターンのＡＶコードを保持部８１に格納したデータと比較することで、データの同期を確認する。例えば図１０の例では、検出部８２は、１サイクル目に保持部８１に格納されているデータを各パターンのＡＶコードと比較し、「パターン１」のＡＶコードに該当することを検出する。検出部８２は、２２パターンのＡＶコードと比較することで、入力データがどのタイミングで切り取られてもＡＶコードを確実に検出することができる。また、ＡＶコードのビット長が２４ビットのため、スタートビット及びエンドビット、すなわち同期クロックを確実に特定することができる。
【００６３】
コア回路２４２の選択部８３は、検出部８２における検出結果に基づき、保持部８１に格納されているデータから元のセグメントデータを抽出する際の抽出パターン、すなわちセグメントデータのアライメントパターンを選択する。選択部８３は、検出部８２による検出結果に基づき、ＡＶコードに続く２２ビットのセグメントデータＣ’１の格納位置を特定することができる。従って、選択部８３は、セグメントデータＣ’１に含まれる元のセグメントデータＣ０（図１０で太枠により図示）を特定可能となる。選択部８３は、１サイクル目で当該セグメントデータＣ０の格納位置（図１０の「２３」から「４２」に相当する位置）をアライメントパターンに選択する。抽出部８４は、選択部８３による選択結果を受け、当該セグメントデータＣ０を抽出する。これにより、抽出部８４は、１画素分のセグメントデータを抽出する。
【００６４】
続いて選択部８３は、２サイクル目では、抽出範囲を２ビット右にシフトしたアライメントパターンを選択する。これにより、選択部８３は、元々のシリアルデータにおける２サイクル目のセグメントデータＣ１の格納箇所をアライメントパターンとして選択する。抽出部８４は、当該セグメントデータＣ１を抽出する。以下同様にして、選択部８３は２ビットずつシフトしながらアライメントパターンを選択し、抽出部８４はセグメントデータＣ２、Ｃ３、Ｃ４…を抽出していく。
【００６５】
１１サイクル目になった場合、セグメント生成部２４１からセグメントデータが１サイクルだけ出力されず又は無効化されるため、選択部８３はこれに対応して、アライメントパターンを２２ビット左にシフトする。つまり選択部８３は、図１０に示すように、１０サイクル目では「５」から「２４」までを抽出範囲としていたところ、１１サイクル目では「２５」から「４４」までを抽出範囲として選択する。これにより、選択部８３は、Ｃ１０のセグメントデータの箇所をアライメントパターンに選択する。１２サイクル目からは上記と同様にして、２ビットずつシフトしながらアライメントパターンを選択する。
【００６６】
以上の処理により、コア回路２４２は、セグメント生成部２４１から出力されるデータから、各画素に相当するセグメントデータＣ０、Ｃ１、Ｃ２…を順次抽出し、出力用の画像データを生成する。コア回路２４２は、生成した画像データを画像処理回路１５に出力する。出力された画像データは、画像処理回路１５で所定の画像処理が施された後、プロセッサ装置３に出力される。プロセッサ装置３は、当該データを基に撮像画像をモニタ４に出力する。
【００６７】
図１１は、受信回路１２における処理手順の一例を示すフローチャートである。図１１に基づき、受信回路１２の処理内容について説明する。
受信回路１２の受信部２１は、内視鏡装置１の撮像ユニット１４から送信される撮像画像のシリアルデータを受信する（ステップＳ１１）。シリアルデータは、複数のビットデータを直列的に接続したデータであり、所定数毎のビットデータの先頭及び末尾にスタートビット及びエンドビットを埋め込んだ各サイクルのセグメントデータから構成される。シリアルデータにおいて、所定数のセグメントデータ群の冒頭に同期コード（ＡＶコード）が埋め込まれている。
【００６８】
受信部２１は、受信したデータを整数倍するオーバーサンプリングを行い、オーバーサンプリング後のデータを抽出部２２に出力する（ステップＳ１２）。例えば受信部２１は、撮像ユニット１４から受信したシリアルデータをパラレルデータに変換後、変換したパラレルデータを４倍のデータレートでサンプリングする。
【００６９】
抽出部２２は、オーバーサンプリングされた受信データからビットデータのエッジ位置を検出し、各ビットデータを抽出する処理を行う（ステップＳ１３）。具体的には、抽出部２２は、受信データにおいて隣り合うビットデータ同士の反転位置（エッジ位置）を排他的論理和演算により検知し、２ビット単位でビットデータを抽出する。抽出部２２は、抽出した各ビットデータを順次メモリ２３に格納する（ステップＳ１４）。
【００７０】
続いて、抽出部２２及びセグメント生成部２４１がそれぞれビットデータの書き込み及び読み出しを行うサブルーチンを実行する（ステップＳ１５）。具体的には、セグメント生成部２４１からのリクエスト信号に対して抽出部２２が応答信号を出力した後、セグメント生成部２４１がビットデータの読み出しを開始する。
【００７１】
セグメント生成部２４１は、読み出したビットデータを基に出力用の画像データを生成するサブルーチンを実行する（ステップＳ１６）。コア回路２４２は、生成した出力データをプロセッサ装置３に出力し（ステップＳ１７）、一連の処理を終了する。
【００７２】
図１２は、ビットデータの書き込み及び読み出し処理に係るサブルーチンの処理手順を示すフローチャートである。図１２に基づき、ステップＳ１４のサブルーチンの内容について説明する。
抽出部２２は、メモリ２３に格納したビットデータのデータ数をカウントする（ステップＳ３１）。また、セグメント生成部２４１は、ビットデータの読み出しを要求するリクエスト信号を抽出部２２に出力する（ステップＳ３２）。
【００７３】
抽出部２２は、セグメント生成部２４１からリクエスト信号が出力されたか否かを判定する（ステップＳ３３）。リクエスト信号が出力されていないと判定した場合（Ｓ３３：ＮＯ）、抽出部２２は処理をステップＳ３１に戻す。
【００７４】
リクエスト信号が出力されたと判定した場合（Ｓ３３：ＹＥＳ）、抽出部２２は、カウンタ６２でカウントしているデータ数をセグメント生成部２４１に通知する（ステップＳ３４）。また、データ数の通知後、抽出部２２はカウンタ６２をクリアする（ステップＳ３５）。抽出部２２は、リクエスト信号に対する応答信号をセグメント生成部２４１に出力する（ステップＳ３６）。
【００７５】
セグメント生成部２４１は、抽出部２２から応答信号を取得したか否かを判定する（ステップＳ３７）。具体的には、セグメント生成部２４１の判定部７２が、応答信号の立ち上がりを検知したか否かを判定する。応答信号を取得していないと判定した場合（Ｓ３７：ＮＯ）、セグメント生成部２４１は処理を待機する。
【００７６】
応答信号を取得したと判定した場合（Ｓ３７：ＹＥＳ）、セグメント生成部２４１はリクエスト信号の出力を停止する（ステップＳ３８）。また、リクエスト信号の立ち下がり、つまりリクエスト信号の出力停止を検知した場合、抽出部２２も応答信号の出力を停止する（ステップＳ３９）。セグメント生成部２４１は、応答信号の出力が停止されたか否かを判定する（ステップＳ４０）。応答信号の出力が停止されていないと判定した場合（Ｓ４０：ＮＯ）、セグメント生成部２４１は処理を待機する。
【００７７】
応答信号の出力が停止されたと判定した場合（Ｓ４０：ＹＥＳ）、セグメント生成部２４１は、メモリ２３からのビットデータの読み出しを開始する（ステップＳ４１）。セグメント生成部２４１は、読み出したデータ数をカウントする（ステップＳ４２）。セグメント生成部２４１は、カウントしたデータの読み出し数が、通知部６４から通知されたデータ数に達したか否かを判定する（ステップＳ４３）。通知部６４から通知されたデータ数に達していないと判定した場合（Ｓ４３：ＮＯ）、セグメント生成部２４１は処理をステップＳ４２に戻す。通知部６４から通知されたデータ数に達したと判定した場合（Ｓ４３：ＹＥＳ）、セグメント生成部２４１はビットデータの読み出しを停止し（ステップＳ４４）、処理をステップＳ３２に戻す。すなわちセグメント生成部２４１は、読出可能なデータを全て読み出したため、次のリクエスト信号を抽出部２２に出力する。
【００７８】
図１３は、出力データ生成処理のサブルーチンの処理手順を示すフローチャートである。図１３に基づき、ステップＳ１６のサブルーチンの内容について説明する。
ワードアライナ回路２４のセグメント生成部２４１は、メモリ２３から読み出したｎサイクル（個）のセグメントデータから、ｎ−１サイクル（個）の新たなセグメントデータを生成する処理を行う（ステップＳ７１）。まずセグメント生成部２４１は、連続する２０ビットのセグメントデータ同士を連結し、４０ビットのデータを生成する。そしてセグメント生成部２４１は、４０ビットのデータから、元のセグメントデータのビット数である２０ビットに、スタートビット及びエンドビット（同期クロック）のビット数に相当する２ビットを加えた２２ビット分のデータを抽出し、新たなセグメントデータを生成する。セグメント生成部２４１は、ｎ個連続する各セグメントデータについて抽出範囲を２ビットずつシフトしながら抽出処理を行い、ｎ−１個の新たなセグメントデータを生成する。
【００７９】
セグメント生成部２４１は、新たに生成したセグメントデータをｎ−１サイクルに亘って保持部８１に出力し、ｎサイクル目では新たなセグメントデータを出力せず又は無効データを出力する（ステップＳ７２）。すなわちセグメント生成部２４１は、新たなセグメントデータの生成処理がコア回路２４２でのアライン処理に追いつくため、処理を１サイクルだけスキップする。コア回路２４２の保持部８１は、出力された新たなセグメントデータを格納する（ステップＳ７３）。上述の如く、保持部８１は同期コードのビット長に応じたビット長を有するレジスタであり、２４ビットの同期コードを２１ビットに亘ってシフト可能な４５ビット長を有するレジスタである。保持部８１は、セグメント生成部２４１から出力されるセグメントデータを順次格納する。
【００８０】
コア回路２４２は、保持部８１に格納したセグメントデータを、予め設定されている複数パターンの同期コード（ＡＶコード）と比較することで、元のセグメントデータを保持部８１から抽出する際の抽出パターン（アライメントパターン）を選択する処理を行う（ステップＳ７４）。具体的には、コア回路２４２の検出部８２が、保持部８１に格納されているデータを、２４ビットのビット長で１ビットずつシフトしながら検知する。検出部８２は、検知したデータを予め設定されている２２パターンの同期コードと比較し、セグメントデータの両端に位置するスタート及びエンドビットを検出する。選択部８３は、検出部８２の検出結果に基づき、保持部から元の２０ビットのセグメントデータを抽出するワードアライメントパターンを選択する。コア回路２４２の抽出部８４は、選択部８３が選択したワードアライメントパターンに従ってセグメントデータを抽出し、出力用の画像データを生成する（ステップＳ７５）。コア回路２４２は、サブルーチンをリターンする。
【００８１】
なお、上記では画像データをシリアル伝送する際の処理を例に説明を行ったが、シリアル伝送の対象は音声データ等であってもよい。
【００８２】
また、上記では受信回路（受信装置）１２が内視鏡装置１に実装されているものとしたが、プロセッサ装置３に実装してもよい。
【００８３】
以上より、本実施の形態によれば、データの読み出し開始時に抽出部２２とワードアライナ回路２４（セグメント生成部２４１）との間でリクエスト及び応答を行い、ワードアライナ回路２４は、応答信号を取得したタイミングで、通知された読出可能データ数だけビットデータを読み出す。これにより、メモリ２３におけるデータの書き込み及び読み出しの関係性の破綻を防止し、簡単な構成でデータ品質の向上を図ることができる。また、
【００８４】
また、本実施の形態によれば、読出可能データ数のビットデータの読み出しを完了した後、セグメント生成部２４１が次のリクエスト信号を出力することで、一連の処理を適切に継続することができる。
【００８５】
また、本実施の形態によれば、セグメント生成部２４１は、応答信号の立ち下がりを確認し、リクエスト信号及び応答信号のやり取りが完全に完了してからデータの読み出しが開始することで、適切にデータの書き込み及び読み出しを行うことができる。
【００８６】
また、本実施の形態によれば、セグメント生成部２４１によるデータの読出速度は、抽出部２２によるデータの書込速度を超過する。これにより、セグメント生成部２４１による読み出しが完了していないにも関わらずメモリ２３のデータが書き変わってしまう事態を防止することができる。
【００８７】
また、本実施の形態によれば、ｎサイクルのセグメントデータからｎ−１サイクルのセグメントデータを生成し、当該ｎ−１サイクルの新たなセグメントデータに対してアライメントを行うことで、出力データの生成を適切に行うことができる。
【００８８】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８９】
１  内視鏡装置
１２  受信回路（受信装置）
２１  受信部
２２  抽出部
２３  メモリ
２４  ワードアライナ回路（生成部）
２４１  セグメント生成部
２４２  コア回路
１４  撮像ユニット
３  プロセッサ装置
４  モニタ
【図１】
2019069034.tif 000003
【図２】
2019069034.tif 000004
【図３】
2019069034.tif 000005
【図４】
2019069034.tif 000006
【図５】
2019069034.tif 000007
【図６】
2019069034.tif 000008
【図７】
2019069034.tif 000009
【図８】
2019069034.tif 000010
【図９】
2019069034.tif 000011
【図１０】
2019069034.tif 000012
【図１１】
2019069034.tif 000013
【図１２】
2019069034.tif 000014
【図１３】
2019069034.tif 000015