(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-20
(45)【発行日】2024-10-01
(54)【発明の名称】送信装置、送信方法、受信装置、受信方法、および送受信装置
(51)【国際特許分類】
H04L 69/322 20220101AFI20240924BHJP
H04N 5/00 20110101ALI20240924BHJP
【FI】
H04L69/322
H04N5/00
(21)【出願番号】P 2021526007
(86)(22)【出願日】2020-06-01
(86)【国際出願番号】 JP2020021544
(87)【国際公開番号】W WO2020250727
(87)【国際公開日】2020-12-17
【審査請求日】2023-04-14
(31)【優先権主張番号】P 2019110793
(32)【優先日】2019-06-14
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
(74)【代理人】
【識別番号】100121131
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】細江 隆
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2012-120159(JP,A)
【文献】特開2011-019255(JP,A)
【文献】特開2000-030057(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 69/322
H04N 5/00
(57)【特許請求の範囲】
【請求項1】
ビット幅が異なる複数種類の単位データを格納したペイロード
であって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードを生成し、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを
前記ペイロードに付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを生成するパケット生成部と、
前記パケットを送信する送信部と
を備える送信装置。
【請求項2】
前記パケット生成部は、前記単位データのビット幅が
前記ペイロード内で周期的に切り替わる前記ペイロードを生成する
請求項1に記載の送信装置。
【請求項3】
前記パケット生成部は、ビット幅が同じ前記単位データを連続して格納した前記ペイロードを生成する
請求項2に記載の送信装置。
【請求項4】
前記パケット生成部は、ビット幅が周期的に切り替わることを表すモード情報とともに、前記単位データの並び順と、ビット幅の切り替わりの周期とのうちの少なくともいずれかを表す情報を前記分離情報として含む前記ヘッダを付加する
請求項2に記載の送信装置。
【請求項5】
前記パケット生成部は、複数の撮像素子により撮像して得られたそれぞれの画像を構成する画素を前記単位データとして格納した前記ペイロードを含む前記パケットを生成する 請求項2に記載の送信装置。
【請求項6】
前記パケット生成部は、前記単位データのビット幅が
前記ペイロード内で部分的に切り替わる前記ペイロードを生成する
請求項1に記載の送信装置。
【請求項7】
前記パケット生成部は、ビット幅が部分的に切り替わることを表すモード情報とともに、前記単位データのビット幅が切り替わる部分の数、前記部分の開始位置、および、前記部分の幅のうちの少なくともいずれかを表す情報を前記分離情報として含む前記ヘッダを付加する
請求項6に記載の送信装置。
【請求項8】
前記パケット生成部は、画像を解析することによって検出された注目領域を構成する画素と非注目領域を構成する画素を、それぞれビット幅が異なる前記単位データとして格納した前記ペイロードを含む前記パケットを生成する
請求項6に記載の送信装置。
【請求項9】
前記パケット生成部は、前記所定のフォーマットで規定されるデータ長の前記ヘッダに格納することができない前記分離情報の一部を、前記ペイロードの先頭に格納する
請求項1に記載の送信装置。
【請求項10】
前記パケット生成部は、所定のセンサの測定結果を表す各項目の情報を前記単位データとして格納した前記ペイロードを含む前記パケットを生成する
請求項1に記載の送信装置。
【請求項11】
前記送信部は、前記パケットを構成するパケットデータを複数のレーンに分配し、それぞれの前記レーンの前記パケットデータに対して制御情報の挿入を含む処理を並列に行い、処理を施して得られた前記パケットデータを受信装置との間の伝送路上に出力する
請求項1に記載の送信装置。
【請求項12】
送信装置が、
ビット幅が異なる複数種類の単位データを格納したペイロード
であって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードを生成し、
複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを
前記ペイロードに付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを生成し、
前記パケットを送信する
送信方法。
【請求項13】
ビット幅が異なる複数種類の単位データを格納したペイロード
であって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって生成された、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを受信する受信部と、
ビット幅が異なるそれぞれの前記単位データを前記分離情報に基づいて分離し、出力する分離部と
を備える受信装置。
【請求項14】
前記分離部は、前記単位データのビット幅が
前記ペイロード内で周期的に切り替わる前記ペイロードから、前記単位データを分離する
請求項13に記載の受信装置。
【請求項15】
前記分離部は、ビット幅が周期的に切り替わることを表すモード情報とともに、前記単位データの並び順と、ビット幅の切り替わりの周期とのうちの少なくともいずれかを表す情報を含む前記分離情報に基づいて、前記単位データを分離する
請求項14に記載の受信装置。
【請求項16】
前記分離部は、前記単位データのビット幅が
前記ペイロード内で部分的に切り替わる前記ペイロードから、前記単位データを分離する
請求項13に記載の受信装置。
【請求項17】
前記分離部は、ビット幅が部分的に切り替わることを表すモード情報とともに、前記単位データのビット幅が切り替わる部分の数、前記部分の開始位置、および、前記部分の幅のうちの少なくともいずれかを表す情報を含む前記分離情報に基づいて、前記単位データを分離する
請求項16に記載の受信装置。
【請求項18】
前記受信部は、複数のレーンのデータとして送信装置から並列に伝送路上に出力されたパケットデータを受信し、
前記分離部は、それぞれの前記レーンの前記パケットデータを一系統のデータに統合して得られた前記パケットの前記ペイロードから、前記単位データを分離する
請求項13に記載の受信装置。
【請求項19】
受信装置が、
ビット幅が異なる複数種類の単位データを格納したペイロード
であって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって生成された、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを受信し、
ビット幅が異なるそれぞれの前記単位データを前記分離情報に基づいて分離し、出力する
受信方法。
【請求項20】
ビット幅が異なる複数種類の単位データを格納したペイロード
であって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードを生成し、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを
前記ペイロードに付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを生成するパケット生成部と、
前記パケットを送信する送信部と
を備える送信装置と、
前記パケットを受信する受信部と、
ビット幅が異なるそれぞれの前記単位データを前記分離情報に基づいて分離し、出力する分離部と
を備える受信装置と
を含む送受信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、送信装置、送信方法、受信装置、受信方法、および送受信装置に関し、特に、ビット幅が異なる複数のデータを1つのパケットのペイロードに格納して伝送することができるようにした送信装置、送信方法、受信装置、受信方法、および送受信装置に関する。
【背景技術】
【0002】
イメージセンサ-DSP間などのチップ間のデータ伝送のインタフェースの規格として、MIPI(Mobile Industry Processor Interface)規格、SLVS-EC(Scalable Low Voltage Signaling-Embedded Clock)規格がある。
【0003】
MIPI規格、SLVS-EC規格においては、伝送対象の1フレームの画像を構成する各画素のデータを1ライン単位で1パケットのペイロードに格納し、伝送するようになっている。1パケットのペイロードには、1ラインを構成する、同じビット幅の1種類の階調の画素のデータが格納される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来のMIPI規格等においては、ビット幅が異なる複数種類の階調の画素のデータを1パケットのペイロードに格納して伝送することができない。
【0006】
本技術はこのような状況に鑑みてなされたものであり、ビット幅が異なる複数のデータを1つのパケットのペイロードに格納して伝送することができるようにするものである。
【課題を解決するための手段】
【0007】
本技術の第1の側面の送信装置は、ビット幅が異なる複数種類の単位データを格納したペイロードであって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードを生成し、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを前記ペイロードに付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを生成するパケット生成部と、前記パケットを送信する送信部とを備える。
【0008】
本技術の第2の側面の受信装置は、ビット幅が異なる複数種類の単位データを格納したペイロードであって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードを生成し、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを前記ペイロードに付加することによって生成された、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを受信する受信部と、ビット幅が異なるそれぞれの前記単位データを前記分離情報に基づいて分離し、出力する分離部とを備える。
【0009】
本技術の第1の側面においては、ビット幅が異なる複数種類の単位データを格納したペイロードであって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードを生成し、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを前記ペイロードに付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットが生成され、前記パケットが送信される。
【0010】
本技術の第2の側面においては、ビット幅が異なる複数種類の単位データを格納したペイロードであって、ビット幅の種類ごとに画像の1ラインを構成する分の前記単位データを格納した前記ペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって生成された、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットが受信され、ビット幅が異なるそれぞれの前記単位データが前記分離情報に基づいて分離され、出力される。
【図面の簡単な説明】
【0011】
【
図1】本技術の一実施形態に係る伝送システムの構成例を示す図である。
【
図2】データ伝送に用いられるフォーマットの例を示す図である。
【
図3】ヘッダに含まれる情報を拡大して示す図である。
【
図4】ペイロードに格納されるデータの例を示す図である。
【
図6】Multi cameraシステムの例を示す図である。
【
図11】格納パターンのさらに他の例を示す図である。
【
図14】Data IDの値の意味の例を示す図である。
【
図16】Data IDの他の設定例を示す図である。
【
図24】送信部の他の構成例を示すブロック図である。
【
図28】送信部の処理について説明するフローチャートである。
【
図29】受信部の処理について説明するフローチャートである。
【
図30】TOFセンサシステムの例を示す図である。
【
図31】TOFセンサの出力データのフォーマットの例を示す図である。
【
図35】各画素の画素値が8ビットで表される場合のPixel to Byte変換の例を示す図である。
【
図36】各画素の画素値が10ビットで表される場合のPixel to Byte変換の例を示す図である。
【
図37】各画素の画素値が12ビットで表される場合のPixel to Byte変換の例を示す図である。
【
図38】各画素の画素値が14ビットで表される場合のPixel to Byte変換の例を示す図である。
【
図39】各画素の画素値が16ビットで表される場合のPixel to Byte変換の例を示す図である。
【
図41】ペイロードデータの他の例を示す図である。
【
図42】パリティが挿入されたペイロードデータの例を示す図である。
【
図43】ペイロードデータにヘッダを付加した状態を示す図である。
【
図44】ペイロードデータにヘッダとフッタを付加した状態を示す図である。
【
図45】パリティが挿入されたペイロードデータにヘッダを付加した状態を示す図である。
【
図46】パケットデータの割り当ての例を示す図である。
【
図48】K Characterの値を示す図である。
【
図49】Pad Codeの挿入の例を示す図である。
【
図50】制御コード挿入後のパケットデータの例を示す図である。
【
図51】Data Skewの補正の例を示す図である。
【
図52】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
1.伝送システムの構成例
2.フレームフォーマット
3.階調が異なる複数の画素のデータを格納するペイロードの例
4.アプリケーションの例
5.格納パターンの例
6.分離情報の例
7.送信部と受信部の構成
8.送信部と受信部の動作
9.他のアプリケーションの例
10.SLVS-EC規格について
11.変形例
【0013】
<伝送システムの構成例>
図1は、本技術の一実施形態に係る伝送システムの構成例を示す図である。
【0014】
図1の伝送システム1は、送信側LSI11と受信側LSI12から構成される。送信側LSI11と受信側LSI12は、例えば、デジタルカメラや携帯電話機などの、撮像機能を有する同じ装置内に設けられる。送信側LSI11には情報処理部21と送信部22が設けられ、受信側LSI12には受信部31と情報処理部32が設けられる。
【0015】
送信側LSI11の情報処理部21は、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどの撮像素子を有している。情報処理部21は、撮像素子において受光した光の光電変換によって得られた信号のA/D変換などを行い、1フレームの画像を構成する画素データを、1画素のデータずつ順に送信部22に出力する。
【0016】
送信部22は、情報処理部21から供給された各画素のデータを、例えば情報処理部21から供給された順に複数の伝送路に割り当て、複数の伝送路を介して並列に受信側LSI12に送信する。
図1の例においては、8本の伝送路を用いて画素データの伝送が行われている。送信側LSI11と受信側LSI12の間の伝送路は有線の伝送路であってもよいし、無線の伝送路であってもよい。以下、適宜、送信側LSI11と受信側LSI12の間の伝送路をレーン(Lane)という。
【0017】
受信側LSI12の受信部31は、8本のレーンを介して送信部22から伝送されてきた画素データを受信し、各画素のデータを情報処理部32に順に出力する。
【0018】
情報処理部32は、受信部31から供給された画素データに基づいて1フレームの画像を生成し、生成した画像を用いて各種の画像処理を行う。送信側LSI11から受信側LSI12に伝送される画像データは例えばRAWデータであり、情報処理部32においては、画像データの圧縮、画像の表示、記録媒体に対する画像データの記録などの各種の処理が行われる。RAWデータ以外に、JPEGデータや、画素データ以外の付加データが送信側LSI11から受信側LSI12に対して伝送されることもある。
【0019】
以上のように、伝送システム1の送信側LSI11に設けられる送信部22と、受信側LSI12に設けられる受信部31の間では、複数のレーンを用いたデータの送受信が行われる。
【0020】
送信部22と受信部31が同じ数ずつ設けられるようにすることも可能である。この場合、複数のレーンを用いたデータの送受信が、それぞれの送信部22と受信部31の組の間で行われる。
【0021】
送信部22と受信部31の間のデータの送受信は、例えば、SLVS-EC規格に従って行われる。
【0022】
SLVS-EC規格においては、信号処理の内容に応じて、アプリケーションレイヤ(Application Layer)、リンクレイヤ(LINK Layer)、および物理レイヤ(PHY Layer)が定義されている。各レイヤの信号処理が、送信側(Tx)である送信部22と、受信側(Rx)である受信部31のそれぞれにおいて行われる。
【0023】
詳細については後述するが、リンクレイヤにおいては、基本的に、以下の機能を実現するための信号処理が行われる。
1.ピクセルデータ-バイトデータ変換
2.ペイロードデータのエラー訂正
3.パケットデータと補助データの伝送
4.パケットフッタを用いた、ペイロードデータのエラー訂正
5.レーンマネジメント
6.パケット生成のためのプロトコルマネジメント
【0024】
一方、物理レイヤにおいては、基本的に、以下の機能を実現するための信号処理が行われる。
1.制御コードの生成と抽出
2.バンド幅の制御
3.レーン間のskewの制御
4.シンボルの配置
5.ビット同期のためのシンボルコーディング
6.SERDES(SERializer/DESerializer)
7.クロックの生成と再生
8.SLVS(Scalable Low Voltage Signaling)信号の伝送
【0025】
<フレームフォーマット>
図2は、送信側LSI11-受信側LSI12間のデータ伝送に用いられるフォーマットの例を示す図である。
【0026】
送信側LSI11-受信側LSI12間においては、例えば、1フレームの画像毎に、
図2に示すようなフレームフォーマットを用いて、データの伝送が行われる。複数フレームの画像の伝送が、
図2に示すようなフレームフォーマットを用いて行われることもある。
【0027】
有効画素領域A1は、撮像された画像の有効画素の領域である。伝送対象の画像が有効画素領域A1に配置される。有効画素領域A1の左側には、垂直方向の画素数が有効画素領域A1の垂直方向の画素数と同じであるマージン領域A2が設定される。
【0028】
有効画素領域A1の上側には、水平方向の画素数が、有効画素領域A1とマージン領域A2全体の水平方向の画素数と同じである前ダミー領域A3が設定される。
図2の例においては、前ダミー領域A3にはEmbedded Dataが挿入されている。Embedded Dataは、シャッタスピード、絞り値、ゲインなどの、情報処理部21による撮像に関する設定値の情報が含まれる。後ダミー領域A4にEmbedded Dataが挿入されることもある。
【0029】
有効画素領域A1の下側には、水平方向の画素数が、有効画素領域A1とマージン領域A2全体の水平方向の画素数と同じである後ダミー領域A4が設定される。
【0030】
有効画素領域A1、マージン領域A2、前ダミー領域A3、および後ダミー領域A4から画像データ領域A11が構成される。
【0031】
画像データ領域A11を構成する各ラインの前にはヘッダが付加され、ヘッダの前にはStart Codeが付加される。また、画像データ領域A11を構成する各ラインの後ろにはフッタがオプションで付加され、フッタの後ろにはEnd Codeなどの後述する制御コードが付加される。フッタが付加されない場合、画像データ領域A11を構成する各ラインの後ろにEnd Codeなどの制御コードが付加される。
【0032】
例えば1フレームの画像を送信側LSI11から受信側LSI12に伝送する毎に、
図2に示すフォーマットのデータ全体が伝送データとして伝送される。
【0033】
図2の上方に示す帯は、下側に示す伝送データの伝送に用いられるパケットの構造を示している。水平方向の画素の並びをラインとすると、1つのパケットのペイロードには、画像データ領域A11の1ラインを構成する画素のデータが格納される。1フレームの画像データ全体の伝送は、画像データ領域A11の垂直方向の画素数以上の数のパケットを用いて行われることになる。
【0034】
1ライン分の画素データが格納されたペイロードに、ヘッダとフッタが付加されることによって1パケットが構成される。ヘッダには、Frame Start, Frame End, Line Valid, Line Numberなどの、ペイロードに格納されている画素データの付加的な情報が含まれる。各パケットには、制御コードであるStart CodeとEnd Codeが少なくとも付加される。
【0035】
このように、1フレームの画像を構成する画素データをライン毎に伝送するフォーマットを採用することによって、ヘッダ等の付加的な情報やStart Code, End Codeなどの制御コードをライン毎のブランキング期間中に伝送することが可能になる。
【0036】
図3は、ヘッダに含まれる情報を拡大して示す図である。
【0037】
図3に示すように、ヘッダは、ヘッダ情報とHeader ECCから構成される。
【0038】
ヘッダ情報には、Frame Start, Frame End, Line Valid, Line Number, Embedded Line, Data ID, Reservedが含まれる。
【0039】
Frame Startは、フレームの先頭を示す1ビットの情報である。
図2の画像データ領域A11の1ライン目の画素データの伝送に用いられるパケットのヘッダのFrame Startには1の値が設定され、他のラインの画素データの伝送に用いられるパケットのヘッダのFrame Startには0の値が設定される。
【0040】
Frame Endは、フレームの終端を示す1ビットの情報である。有効画素領域A1の終端ラインの画素データをペイロードに含むパケットのヘッダのFrame Endには1の値が設定され、他のラインの画素データの伝送に用いられるパケットのヘッダのFrame Endには0の値が設定される。
【0041】
Frame StartとFrame Endが、フレームに関する情報であるフレーム情報となる。
【0042】
Line Validは、ペイロードに格納されている画素データのラインが有効画素のラインであるのか否かを表す1ビットの情報である。有効画素領域A1内のラインの画素データの伝送に用いられるパケットのヘッダのLine Validには1の値が設定され、他のラインの画素データの伝送に用いられるパケットのヘッダのLine Validには0の値が設定される。
【0043】
Line Numberは、ペイロードに格納されている画素データにより構成されるラインのライン番号を表す13ビットの情報である。
【0044】
Line ValidとLine Numberが、ラインに関する情報であるライン情報となる。
【0045】
Embedded Lineは、Embedded Dataが挿入されているラインの伝送に用いられるパケットであるのか否かを表す1ビットの情報である。例えば、Embedded Dataを含むラインの伝送に用いられるパケットのヘッダのEmbedded Lineには1の値が設定され、他のラインの伝送に用いられるパケットのヘッダのEmbedded Lineには0の値が設定される。
【0046】
Data IDは、伝送対象のデータの識別子である。Data IDには例えば4ビットが割り当てられる。後述するように、Data IDにより、階調が異なる複数の画素のデータがペイロードに格納されていることが表される。
【0047】
Data IDの後方の領域はReserved領域となる。
【0048】
図3に示すように、ヘッダ情報に続けて配置されるHeader ECCには、ヘッダ情報に基づいて計算された誤り検出符号であるCRC(Cyclic Redundancy Check)符号が含まれる。また、Header ECCには、CRC符号に続けて、ヘッダ情報とCRC符号の組である8バイトの情報と同じ情報が2つ含まれる。
【0049】
すなわち、1つのパケットのヘッダには、同じヘッダ情報とCRC符号の組が3つ含まれる。ヘッダ全体のデータ量は、例えば、1組目のヘッダ情報とCRC符号の組の8バイトと、2組目のヘッダ情報とCRC符号の組の8バイトと、3組目のヘッダ情報とCRC符号の組の8バイトとの、あわせて24バイトになる。
【0050】
<階調が異なる複数の画素のデータを格納するペイロードの例>
図4は、ペイロードに格納されるデータの例を示す図である。
【0051】
図4に示すように、送信側LSI11-受信側LSI12間で伝送されるパケットのペイロードには、Type1データとType2データの、複数の階調の画素のデータが格納される。
【0052】
Type1データは、8ビットの階調の画素(階調が8ビットで表される画素)のデータである。Type2データは、12ビットの階調の画素(階調が12ビットで表される画素)のデータである。
【0053】
すなわち、
図4に示す1つのパケットのペイロードには、1つの画素のデータを単位データとして、データ単位毎のビット幅が異なる複数種類の単位データが格納される。
【0054】
図4の例においては、Type1データとType2データが交互に配置されている。Type1データとType2データの文字が付されている1つのブロックが、それぞれ、8ビットの1つの画素のデータと、12ビットの1つの画素のデータを表す。
図4に示す格納パターンは、複数の階調の画素のデータが、1画素のデータ毎に周期的に格納される場合のパターンとなる。
【0055】
図4に示すようなデータがペイロードに格納されたパケットを受信した受信側LSI12の受信部31においては、実線の矢印の先に示すように、Type1データを分離することによって、8ビットの画素から構成される1ラインが取得される。また、一点鎖線の矢印の先に示すように、Type2データを分離することによって、12ビットの画素から構成される1ラインが取得される。
【0056】
ヘッダには、
図3を参照して説明した情報の他に、複数の階調の画素のデータがペイロードに格納されていることを表す情報と、Type1データ、Type2データの周期と範囲を表す情報が含まれている。受信側LSI12においては、これらの情報を含む分離情報に基づいて、Type1データとType2データが分離される。
【0057】
1フレームを構成する各ラインを伝送するパケットを対象としてType1データ、Type2データの分離が順次行われることにより、受信側LSI12においては、8ビットの画素から構成される1フレームの画像全体と、12ビットの画素から構成される1フレームの画像全体が取得される。
【0058】
このように、1ラインの画素のデータ全体を1つのパケットを用いて伝送する場合において、複数の階調の画素のデータを1つのペイロードに混在させることができるようにすることにより、データ伝送の効率化を図ることができる。
【0059】
複数の階調の画素のデータを1つのペイロードに混在させることができない場合、すなわち、1つのパケットのペイロードには1種類の階調の画素のデータしか格納することができないとした場合について考える。この場合、仮に、8ビットの画像(8ビットの画素から構成される画像)と12ビットの画像(12ビットの画素から構成される画像)を伝送するとしたときには、
図5に示すように、ライン毎に2つのパケットを用いる必要がある。
【0060】
図3を参照して説明したように、SLVS-EC規格においては、1ラインのデータを伝送するごとに制御コードが設定される。2つのパケットを伝送する場合、1つのパケットを伝送する場合と比べて、制御コードなどの数が多くなる分だけデータ伝送の効率が低下することになる。複数の階調の画素のデータを1つのペイロードに混在させることができるようにすることにより、そのようなデータ伝送の効率の低下を防ぐことが可能となる。
【0061】
<アプリケーションの例>
複数の階調の画素のデータを1つのペイロードに混在させた伝送方式は、各種のアプリケーションに適用可能である。以下、適宜、複数の階調の画素のデータを1つのペイロードに混在させた伝送方式を、多階調伝送方式という。
【0062】
・Multi camera(多眼)システム
図6は、Multi cameraシステムの例を示す図である。
【0063】
Multi cameraシステムは、複数のイメージセンサにより例えば同時に撮像を行って得られた複数の画像を伝送するシステムである。
【0064】
図6の例においては、イメージセンサS1により撮像された12ビットの画像と、イメージセンサS2により撮像された10ビットの画像がそれぞれのイメージセンサから出力され、多眼処理LSIに入力されている。
【0065】
多眼処理LSIにおいては、12ビットの画像を構成する所定のラインの画素全体と、10ビットの画像を構成する所定のラインの画素全体とを1つのペイロードに格納したパケットが生成され、host controllerに伝送される。
図6の例においては、イメージセンサS1により撮像された12ビットの画像はRGB画像とされ、イメージセンサS2により撮像された10ビットの画像はDepth画像とされている。
【0066】
このように、Multi cameraシステムにおいては、多眼処理LSIからhost controllerに対するデータ伝送に多階調伝送方式が用いられる。
【0067】
Multi cameraシステムを
図1の伝送システム1の構成において実現する場合、例えば、イメージセンサS1,S2の機能は情報処理部21により実現される(複数のイメージセンサが情報処理部21に設けられる)。また、多眼処理LSIの機能は送信部22により実現される。host controllerの機能は、受信部31と情報処理部32により実現される。
【0068】
多階調伝送方式をMulti cameraシステムに適用することにより、12ビットのRGB画像と10ビットのDepth画像を効率的に伝送し、低レイテンシーなデータ伝送を実現することが可能となる。
【0069】
・ROI(Region of Interest)センサシステム
図7は、ROIセンサシステムの例を示す図である。
【0070】
ROIセンサシステムは、画像を解析することによってROI領域(注目領域)と非ROI領域を設定し、それぞれの領域の画素のデータを異なる階調のデータとして伝送するシステムである。
【0071】
図7の例においては、撮像された画像をROIセンサS11において解析して得られた、例えば12ビットのROI領域の画素と8ビットの非ROI領域の画素がROIセンサS11から出力され、画像処理LSIに入力されている。
【0072】
図8は、ROIセンサS11の出力の例を示す図である。
【0073】
ROIセンサS11においては、画像の解析結果に基づいて、
図8に示すようにしてROI領域と非ROI領域が設定される。
図8の例においては、画像全体のうち、左上方の略正方形の領域と右下方の平行四辺形の領域がそれぞれROI領域#1,#2として設定され、それ以外の領域が非ROI領域として設定されている。
【0074】
図7の画像処理LSIにおいては、画像を構成する所定のラインの伝送時、そのラインにROI領域の画素と非ROI領域の画素が含まれるときには、階調が異なるROI領域の画素と非ROI領域の画素とを1つのペイロードに格納したパケットが生成され、host controllerに伝送される。
【0075】
このように、ROIセンサシステムにおいては、画像処理LSIからhost controllerに対するデータ伝送に多階調伝送方式が用いられる。
【0076】
ROIセンサシステムを
図1の伝送システム1の構成において実現する場合、例えば、ROIセンサS11の機能は情報処理部21により実現され、画像処理LSIの機能は送信部22により実現される。host controllerの機能は、受信部31と情報処理部32により実現される。
【0077】
多階調伝送方式をROIセンサシステムに適用することにより、12ビットのROI領域のデータと8ビットの非ROI領域のデータを効率的に伝送することが可能となる。また、非ROI領域のデータを、階調を抑えた形で伝送することが可能となる。
【0078】
以上のように、多階調伝送方式は、階調が異なる複数の画素のデータを伝送する各種のシステムに適用可能である。1画素のデータ以外を単位データとして伝送するシステムに適用する場合については後述する。
【0079】
<格納パターンの例>
・格納パターンの例1
図9は、格納パターンの例を示す図である。
【0080】
図9の例においては、ペイロード全体のうち、位置P1から位置P2までの区間にType1データが格納され、位置P2から位置P3までの区間にType2データが格納されている。位置P1から位置P2までの区間には、Type1データが1ラインを構成する画素の分だけ連続して格納される。また、位置P2から位置P3までの区間には、Type2データが1ラインを構成する画素の分だけ連続して格納される。
【0081】
この場合、ヘッダに格納される分離情報には、Type1データ、Type2データの周期と範囲を表す情報が少なくとも含まれる。
【0082】
受信部31においては、位置P2において階調が切り替わることが分離情報に基づいて特定され、Type1データとType2データのそれぞれのデータが分離される。
【0083】
このように、多階調伝送方式においては、Type1データとType2データを、それぞれ複数画素分まとめて格納することが可能とされる。
【0084】
・格納パターンの例2
図10は、格納パターンの他の例を示す図である。
【0085】
図10の例においては、Type1データ、Type2データ、Type3データの、階調が異なる3種類の画素のデータが交互に配置されている。Type1データ、Type2データ、Type3データは、それぞれ、8ビット、12ビット、14ビットの画素のデータである。
【0086】
この場合、ヘッダに格納される分離情報には、Type1データ、Type2データ、Type3データの周期と範囲を表す情報が少なくとも含まれる。
【0087】
受信部31においては、階調の切り替わり位置が分離情報に基づいて特定され、Type1データ、Type2データ、Type3データのそれぞれのデータが分離される。
【0088】
このように、多階調伝送方式においては、階調が異なる3種類以上の画素のデータを格納することが可能とされる。1つのペイロードに格納する画素の階調の数に制限はない。
【0089】
なお、1つのペイロードに格納する階調(ビット幅)の組み合わせにも制限はない。8ビットの画素と12ビットの画素との組み合わせだけでなく、例えば、10ビットの画素と14ビットの画素との組み合わせも可能である。
【0090】
・格納パターンの例3
図11は、格納パターンのさらに他の例を示す図である。
【0091】
図11の例においては、2画素分のType2データと1画素分のType1データが交互に格納されている。
図11において、Type2データの1つのブロックの幅が長いことは、2画素分のType2データが連続して格納されることを表す。
図11に示す格納パターンは、複数の階調の画素のデータが、Type1データについては2画素分のType2データを挟んで周期的に、Type2データについては1画素分のType1データを挟んで周期的に格納される場合のパターンとなる。
【0092】
この場合、ヘッダに格納される分離情報には、Type1データ、Type2データの周期と範囲を表す情報が少なくとも含まれる。
【0093】
受信部31においては、階調の切り替わり位置が分離情報に基づいて特定され、Type1データとType2データのそれぞれのデータが分離される。
【0094】
このように、多階調伝送方式においては、階調の切り替わりの周期をType1データとType2データとで異なる周期として格納することが可能とされる。
【0095】
・格納パターンの例4
図12は、格納パターンの例を示す図である。
【0096】
図12の例においては、ペイロード全体のうち、位置P11から位置P12までの区間にType1データが格納され、位置P12から位置P13までの区間にType2データが格納されている。また、位置P13から位置P14までの区間にType1データが格納されている。
【0097】
位置P11から位置P12までの区間と、位置P13から位置P14までの区間には、それぞれ、Type1データが複数の画素の分だけ連続して格納される。また、位置P12から位置P13までの区間には、Type2データが複数の画素の分だけ連続して格納される。
【0098】
この場合、ヘッダに格納される分離情報には、Type1データ、Type2データのそれぞれの範囲を表す情報が少なくとも含まれる。
【0099】
受信部31においては、位置P12と位置P13のそれぞれにおいて階調が切り替わることが分離情報に基づいて特定され、Type1データとType2データのそれぞれのデータが分離される。
【0100】
このように、多階調伝送方式においては、Type2データを所定の区間に部分的に格納し、Type1データを他の部分に格納することが可能とされる。
【0101】
図12に示す格納パターンは、例えば、ROIセンサシステムにおいて、ROI領域の画素と非ROI領域の画素とを伝送する場合に用いられる。後述するように、位置P12は、例えばラインの先頭(左端)を基準としたときのROI領域の開始位置(左端の画素の位置)に対応し、位置P13はROI領域の終了位置(右端の画素の位置)に対応する。
【0102】
なお、
図9乃至
図11に示す格納パターンは、例えばMulti cameraシステムにおいて用いられる。
【0103】
このように、多階調伝送方式における格納パターンは、アプリケーションなどに応じて任意に選択可能である。
【0104】
<分離情報の例>
ここで、分離情報の詳細について説明する。多階調伝送方式によって複数の階調の画素のデータが1つのペイロードに格納されたパケットを受信した受信部31においては、ヘッダに含まれる分離情報に基づいて、それぞれの画素のデータが分離される。
【0105】
【0106】
図13に示すように、Data ID(
図3)に加えて、Data mode、Data step 1、Data step 2、Data_ROI_Num、Data ROI start 1、Data ROI width 1が分離情報として用いられる。Data ID以外のData mode、Data step 1、Data step 2、Data_ROI_Num、Data ROI start 1、Data ROI width 1は、例えば、ヘッダの空き領域であるReserved領域(
図3)を用いて記述される。
【0107】
Data IDは4ビットの情報である。Data IDは、ペイロードに格納されているデータのデータタイプ(Type)を表すとともに、Multiple streamの識別子として用いられる。
【0108】
図14は、Data IDの値の意味の例を示す図である。
【0109】
Data IDを構成する4ビットのうちの[3:2]の上位2ビットは、ペイロードに格納されているデータのデータタイプを表す。
【0110】
例えば、上位2ビットの値が0であることは、複数の階調のデータがペイロードに格納されていないことを表す。
【0111】
上位2ビットの値が1であることは、8ビット/12ビットの順に、複数の階調のデータがペイロードに格納されていることを表す。
【0112】
上位2ビットの値が2であることは、12ビット/8ビットの順に、複数の階調のデータがペイロードに格納されていることを表す。
【0113】
Data IDを構成する4ビットのうちの[1:0]の下位2ビットは、Multiple streamの識別子として用いられる。ここで、streamは、データの系統に相当する。[1:0]の下位2ビットを用いて、どの系統のデータの伝送に用いられているパケットであるのかが識別される。
【0114】
例えば、下位2ビットの値が0であることは、1 stream目のデータの伝送に用いられているパケットであることを表す。
【0115】
下位2ビットの値が1であることは、2 stream目のデータの伝送に用いられているパケットであることを表す。
【0116】
下位2ビットの値が2であることは、3 stream目のデータの伝送に用いられているパケットであることを表す。
【0117】
ペイロードに格納されているデータのデータタイプを表すことに上位3ビットが用いられ、Multiple streamの識別子に下位1ビットが用いられるといったように、それぞれの情報に割り当てられるビット幅は任意に変更可能である。
【0118】
ペイロードに格納されているデータのデータタイプが、Data IDとは別に規定された所定のビット数の情報によって表されるようにしてもよい。
【0119】
【0120】
図15に示すように、Line Aのデータの伝送に用いられるパケットのペイロードの前半にType1データが格納され、ペイロードの後半にType2データが格納されている場合、Data IDの値として0100が設定される。
図15に示すデータの格納パターンは、
図9を参照して説明したパターンと同じである。
【0121】
Data IDの上位2ビットの値が1h(01)であることにより、8ビット/12ビットの順に、複数の階調の画素のデータがペイロードに格納されていることが表される。また、下位2ビットの値が0h(00)であることにより、1 stream目としてのLine Aのデータの伝送に用いられているパケットであることが表される。
【0122】
図16は、Data IDの他の設定例を示す図である。
【0123】
図16に示すように、Line Aのデータの伝送に用いられるパケットのペイロード全体にType1データが格納され、Line Bのデータの伝送に用いられるパケットのペイロード全体にType2データが格納されている場合について説明する。この場合、Line Aのデータの伝送に用いられるパケットにはData IDの値として0000が設定される。また、Line Bのデータの伝送に用いられるパケットにはData IDの値として0001が設定される。
【0124】
Line Aのデータの伝送に用いられるパケットに設定されているData IDの上位2ビットの値が0h(00)であることにより、複数の階調の画素のデータがペイロードに格納されていないことが表される。また、下位2ビットの値が0h(00)であることにより、1 stream目としてのLine Aのデータの伝送に用いられているパケットであることが表される。
【0125】
一方、Line Bのデータの伝送に用いられるパケットに設定されているData IDの上位2ビットの値が0h(00)であることにより、複数の階調の画素のデータがペイロードに格納されていないことが表される。また、下位2ビットの値が1h(01)であることにより、2 stream目としてのLine Bのデータの伝送に用いられているパケットであることが表される。
【0126】
このように、Data IDにより、複数の階調の画素のデータがペイロードに格納されているか否かと、複数の階調の画素のデータがペイロードに格納されている場合に、データの並び順とが少なくとも表される。
【0127】
図13の説明に戻り、Data modeは1ビットの情報である。Data modeは、画素の階調が周期的に切り替わるか、または、部分的に切り替わるかを表す。
【0128】
例えば、Data modeの値が0であることは、画素の階調が周期的に切り替わることを表す。
【0129】
また、Data modeの値が1であることは、画素の階調が部分的に切り替わることを表す。
【0130】
Data step 1は2バイトの情報である。Data step 1は、Data mode=0のときの、Type1データの切り替わり周期を表す。
【0131】
Data step 2は2バイトの情報である。Data step 2は、Data mode=0のときの、Type2データの切り替わり周期を表す。
【0132】
Data_ROI_Numは、ROI領域の数を表す。当該パケットがROI領域を構成する画素の伝送に用いられる場合に、ROI領域の数がData_ROI_Numにより表される。Data_ROI_Numには、例えば、想定されるROI領域の最大の数に応じた所定のビット幅が割り当てられる。
【0133】
Data ROI start 1は、例えば2バイトの情報である。Data ROI start 1は、1つ目のROI領域のX座標(開始位置)を表す。
【0134】
Data ROI width 1は、例えば2バイトの情報である。Data ROI width 1は、1つ目のROI領域の幅を表す。Data ROI start 1により指定されるX座標に、Data ROI width 1により指定される幅を加えた座標が、1つ目のROI領域の終了位置の座標となる。
【0135】
Data_ROI_Numの値が2以上である場合、すなわち、2以上のROI領域を構成する画素の伝送にパケットが用いられる場合、ROI領域毎に、Data ROI startとData ROI widthが記述される。
【0136】
【0137】
Multi cameraシステム(
図6)に多階調伝送方式を適用した場合、
図17において太字で示すように、分離情報を構成する各情報のうちの、Data ID、Data mode、Data step 1、Data step 2が用いられる。
【0138】
Type1データとType2データが1画素のデータ毎に交互にペイロードに格納される場合(
図4)、Data IDの値として例えば0100が設定される。
【0139】
また、Data modeの値として0の値が設定され、Data step 1、Data step 2の値としてそれぞれ1の値が設定される。
【0140】
Data modeの値が0であることは、画素の階調が周期的に切り替わることを表す。また、Data step 1、Data step 2の値が1であることは、8ビットから12ビットへの階調の切り替わりと、12ビットから8ビットへの階調の切り替わりが、それぞれ1画素のデータ毎に生じることを表す。
【0141】
【0142】
ROIセンサシステム(
図7)に多階調伝送方式を適用した場合、
図18において太字で示すように、分離情報を構成する各情報のうちの、Data ID、Data mode、Data_ROI_Num、Data ROI start 1、Data ROI width 1が用いられる。ROI領域の数に応じて、適宜、Data ROI startとData ROI widthが追加して記述される。
【0143】
例えば、
図19に示す画像を構成する、太線で示すラインL1の画素のデータを伝送する場合について説明する。
図19に示す伝送対象の画像は、
図8を参照して説明した画像と同じ画像である。伝送対象の画像にはROI領域#1,#2が設定されている。ラインL1には、位置P1から位置P2の区間に、ROI領域#2を構成する画素が含まれる。
【0144】
この場合、Data IDの値として例えば0100の値が設定され、Data modeの値として1の値が設定される。Data modeの値が1であることは、画素の階調が部分的に切り替わることを表す。
【0145】
また、Data_ROI_Numの値として、ROI領域の数が1であることを表す値が設定される。Data ROI start 1の値として、
図19の位置P1のX座標を表す値が設定され、Data ROI width 1の値として、
図19の位置P1から位置P2までの距離に相当する幅を表す値が設定される。
【0146】
図19の下段に示すように、ペイロードには、位置P1から位置P2の区間に対応する区間にType2データが部分的に格納され、それ以外の区間にType1データが格納される。
【0147】
【0148】
図20に示すように、分離情報の一部が、ペイロードの先頭に格納されるようにすることも可能である。
【0149】
例えばROIセンサシステムに多階調伝送方式を適用した場合、ROI領域の数によっては、Data ROI startとData ROI widthをヘッダに収めることができないことがある。Data ROI startとData ROI widthはROI領域毎に設定される情報であるため、伝送対象のラインに含まれるROI領域の数が多い場合には、Data ROI startとData ROI widthのデータ量が、ヘッダの空き領域のデータ量を超えることがある。
【0150】
図20に示すように、ペイロードの先頭を分離情報の一部の格納のために用いることにより、伝送対象のラインに含まれるROI領域の数が多い場合であっても、それぞれのROI領域に関する情報を伝送することが可能となる。
【0151】
<送信部と受信部の構成>
・送信部の構成
図21は、送信部22の構成例を示すブロック図である。
【0152】
図21に示すように、送信部22は、Core51-1、Core_sub51-2、メモリ52、Lane分配部53、8B10Bシンボルエンコーダ54、およびPHYアナログ処理部55から構成される。
【0153】
例えば、情報処理部21から出力された1系統目のstreamはCore51-1に入力され、2系統目のstreamはCore_sub51-2に入力される。Core51-1とCore_sub51-2は外部から供給された信号を処理する信号処理回路である。
【0154】
Core51-1は、信号処理部61、制御部62、および状態制御部63から構成される。信号処理部61は、Packing部71、ヘッダ/フッタ生成部72、およびパケット生成部73から構成される。
【0155】
信号処理部61のPacking部71は、外部から供給されたstreamを構成するデータを、8ビット単位、12ビット単位などの所定のビット幅のデータに区切ることによって、所定のビット幅の画素のデータ(所定のビット幅を有する単位データ)を生成する。Packing部71は、各画素のデータをメモリ52に出力し、記憶させる。
【0156】
ヘッダ/フッタ生成部72は、メモリ52に記憶されているデータを参照し、ペイロードにおける各画素のデータの格納パターンに応じた分離情報を生成する。ヘッダ/フッタ生成部72は、分離情報を含むヘッダを生成し、パケット生成部73に出力するとともに、適宜、所定の情報を含むフッタをパケット生成部73に出力する。
【0157】
パケット生成部73は、メモリ52に記憶されている画素のデータを読み出し、各画素のデータを格納パターンに応じて格納することによってペイロードを生成する。パケット生成部73は、ヘッダ/フッタ生成部72により生成されたヘッダなどをペイロードに付加することによってパケットを生成し、Lane分配部53に出力する。
【0158】
制御部62は、信号処理部61における全体の処理を制御する。例えば、ヘッダ/フッタ生成部72が生成するペイロードにおける各画素のデータの格納パターンが制御部62により制御される。
【0159】
状態制御部63は、信号処理部61の状態を制御する。信号処理部61の各処理が、状態制御部63により設定された状態に応じて行われる。
【0160】
Core_sub51-2は、Core51-1と同様の構成を有する。Core_sub51-2においては、外部から供給された2系統目のstreamを対象として、Core51-1において行われる処理と同様の処理が行われる。
【0161】
メモリ52は、例えばSRAM(Static Random Access Memory)により構成され、Core51-1とCore_sub51-2の共有のFIFOとして機能する。メモリ52に記憶された各画素のデータは、記憶された順に読み出される。
【0162】
【0163】
図22の矢印A1,A2で示すように、情報処理部21から供給された2系統のstreamを伝送する場合について説明する。
【0164】
例えば、Multi cameraシステムにおいては、複数のイメージセンサを含む情報処理部21から出力された2系統のstreamが送信部22に入力される。
図23のAに示すように、Core51-1に入力される1系統目のstreamは、8ビットの画素のデータである。また、
図23のBに示すように、Core_sub51-2に入力される2系統目のstreamは、12ビットの画素のデータである。
【0165】
8ビットの画素のデータからなる1系統目のstreamは、Core51-1のPacking部71における処理を経てメモリ52に記憶される。また、12ビットの画素のデータからなる2系統目のstreamは、Core_sub51-2のPacking部71における処理を経てメモリ52に記憶される。
【0166】
2系統のstreamを1系統のstreamとしてまとめて伝送する場合、メモリ52に記憶されたデータが、
図22の矢印A3に示すようにして、Core51-1により順次読み出される。また、Core51-1において、複数の階調の画素のデータを1つのペイロードに格納した、
図23のBに示すような多階調伝送方式のパケットが生成される。
【0167】
図23のBに示すパケットのペイロードには、
図4を参照して説明した格納パターンと同じ格納パターンに従って、8ビットの画素のデータと12ビットの画素のデータが格納されている。
【0168】
このように、Multi cameraシステムにおいて2系統のstreamを1系統のstreamとしてまとめて伝送する場合、Core51-1の出力とCore_sub51-2の出力のうちの、片側の出力のみが用いられる。Core51-1からLane分配部53に対しては、複数の階調の画素のデータをペイロードに格納したパケットが供給される。
【0169】
図21の説明に戻り、Lane分配部53は、Core51-1のパケット生成部73からパケットが供給された場合、パケットを構成するデータを複数のレーンに分配し、各レーンのデータを並列に8B10Bシンボルエンコーダ54に出力する。
【0170】
Core_sub51-2のパケット生成部73からパケットが供給された場合も同様に、Lane分配部53は、パケットを構成するデータを複数のレーンに分配し、各レーンのデータを並列に8B10Bシンボルエンコーダ54に出力する。
【0171】
物理レイヤの処理である8B10Bシンボルエンコーダ54、PHYアナログ処理部55の処理は、レーン毎に並列に行われる。
【0172】
8B10Bシンボルエンコーダ54は、Lane分配部53から供給されたデータに対して8B10B変換を施し、10ビット単位のデータとしてPHYアナログ処理部55に出力する。
【0173】
PHYアナログ処理部55の同期部81は、各レーンのデータを同期させて送信部82に出力する。
【0174】
送信部82は、同期部81から供給された各レーンのデータを伝送路上に出力する。送信部82から伝送路上に出力されたデータは、受信部31により受信される。
【0175】
図24は、送信部22の他の構成例を示すブロック図である。
【0176】
図24に示す送信部22の構成は、Core51-1、Core_sub51-2のそれぞれがFIFOを有している点で、
図21の構成と異なる。
図24に示す構成のうち、上述した構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
【0177】
Core51-1を構成する信号処理部61のPacking部71は、外部から供給されたstreamを構成するデータを、所定のビット幅のデータに区切ることによって、所定のビット幅の画素のデータを生成する。Packing部71は、各画素のデータをFIFO74に出力し、記憶させる。
【0178】
ヘッダ/フッタ生成部72は、FIFO74に記憶されているデータを参照し、ペイロードにおける各画素のデータの格納パターンに応じた分離情報を生成する。ヘッダ/フッタ生成部72は、分離情報を含むヘッダを生成し、パケット生成部73に出力するとともに、適宜、所定の情報を含むフッタをパケット生成部73に出力する。
【0179】
パケット生成部73は、FIFO74に記憶されている画素のデータを読み出し、各画素のデータを格納パターンに応じて格納することによってペイロードを生成する。パケット生成部73は、ヘッダ/フッタ生成部72により生成されたヘッダなどをペイロードに付加することによってパケットを生成し、Lane分配部53に出力する。
【0180】
Core_sub51-2は、Core51-1と同様の構成を有する。Core_sub51-2においては、外部から供給された2系統目のstreamを対象として、Core51-1において行われる処理と同様の処理が行われる。
【0181】
【0182】
図25の矢印A11,A12で示すように、情報処理部21から供給された1系統のstreamを伝送する場合について説明する。矢印A11,A12は、1系統のstreamとして、階調が異なるデータが供給されることを表す。
【0183】
例えば、ROIセンサシステムにおいては、ROI領域を構成する画素のデータと非ROI領域を構成する画素のデータが、
図26のAに示すように、1系統のstreamとして送信部22に入力される。
図26のAに示すstreamを構成するデータは、
図19を参照して説明した、ROI領域を構成する画素と非ROI領域を構成する画素を含む1ラインのデータである。
【0184】
8ビットの画素のデータと12ビットの画素のデータを含む1系統のstreamは、Core51-1のPacking部71における処理を経てFIFO74に記憶される。
【0185】
FIFO74に記憶されたデータが、矢印A13に示すようにして、パケット生成部73により順次読み出される。また、複数の階調の画素のデータを1つのペイロードに格納した、
図26のBに示すような多階調伝送方式のパケットが生成される。
【0186】
図26のBに示すパケットのペイロードには、
図12を参照して説明した格納パターンと同じ格納パターンに従って、8ビットの画素のデータと12ビットの画素のデータが格納されている。
【0187】
このように、外部から入力された1系統のstreamを伝送するアプリケーションにおいては、例えば
図25の構成が用いられる。また、外部から入力された2系統のstreamを伝送するアプリケーションにおいては、例えば
図21の構成が用いられる。
【0188】
・受信部の構成
図27は、受信部31の構成例を示すブロック図である。
【0189】
図27に示すように、受信部31は、PHYアナログ処理部101、10B8Bシンボルデコーダ102、Lane統合部103、およびCore104から構成される。送信部22から伝送路上に出力されたデータは、PHYアナログ処理部101に入力される。
【0190】
物理レイヤの処理であるPHYアナログ処理部101、10B8Bシンボルデコーダ102の処理は、レーン毎に並列に行われる。
【0191】
PHYアナログ処理部101の受信部111は、伝送路を介して送信部22から伝送されてきたパケットのデータを表すレーン毎の信号を受信し、同期部112に出力する。
【0192】
同期部112は、受信部111から供給された信号のエッジを検出することによってビット同期をとり、エッジの検出周期に基づいてクロック信号を生成する。また、同期部112は、生成したクロック信号に従って、受信部111において受信された信号のサンプリングを行い、サンプリングによって得られたパケットのデータを10B8Bシンボルデコーダ102に出力する。
【0193】
10B8Bシンボルデコーダ102は、同期部112から供給されたデータに対して10B8B変換を施し、8ビット単位のデータとしてLane統合部103に出力する。
【0194】
Lane統合部103は、10B8Bシンボルデコーダ102から供給された各レーンのデータを、送信部22のLane分配部53(
図21)による各レーンへの分配順と逆順で並び替えることによって統合する。Lane統合部103は、統合したパケットのデータをCore104に出力する。
【0195】
Core104は、信号処理部121、制御部122、および状態制御部123から構成される。信号処理部121は、パケット解析部131、分離部132、および出力部133-1,133-2から構成される。
【0196】
信号処理部121のパケット解析部131は、Lane統合部103から供給されたパケットのデータを受信し、パケットの解析を行う。例えば、パケット解析部131は、パケットを構成するペイロードのデータを分離部132に出力するとともに、ヘッダを解析する。パケット解析部131は、ヘッダに含まれる分離情報に基づいて、階調の切り替わり位置などを表す情報を分離部132に出力する。
【0197】
分離部132は、ペイロードに格納されているそれぞれの階調の画素のデータを、パケット解析部131から供給された情報により表される階調の切り替わり位置などに基づいて分離する。分離部132は、8ビットの画素のデータを出力部133-1に出力し、12ビットの画素のデータを出力部133-2に出力するといったように、分離した画素のデータを階調に応じて振り分ける。
【0198】
出力部133-1のFIFO141は、分離部132から供給されたデータを記憶する。FIFO141に記憶されたデータは、記憶された順にピクセルデータ変換部142により読み出される。
【0199】
ピクセルデータ変換部142は、FIFO141から読み出したデータを8ビットの階調の画素のデータに変換し、出力する。
【0200】
出力部133-2は、出力部133-1と同様の構成を有している。出力部133-2においては、分離部132から供給されたデータを対象として、出力部133-1において行われる処理と同様の処理が行われる。出力部133-2のピクセルデータ変換部142からは、12ビットの画素のデータが出力される。
【0201】
制御部122は、Core104における全体の処理を制御する。
【0202】
状態制御部123は、Core104の状態を制御する。Core104の各処理が、状態制御部123により設定された状態に応じて行われる。
【0203】
<送信部と受信部の動作>
以上のような構成を有する送信部22と受信部31の動作について説明する。
【0204】
・送信部の動作
はじめに、
図28のフローチャートを参照して、多階調伝送方式によってデータを送信する送信部22の処理について説明する。
【0205】
図28の処理は、例えば、情報処理部21から出力された1系統目のstreamがCore51-1に入力され、2系統目のstreamがCore_sub51-2に入力されたときに開始される。
【0206】
ステップS1において、複数階調の画素のデータがメモリ52に記憶される。すなわち、Core51-1を構成する信号処理部61のPacking部71は、例えば8ビットの画素のデータをメモリ52に出力し、記憶させる。また、Core_sub51-2を構成する信号処理部61のPacking部71は、例えば12ビットの画素のデータをメモリ52に出力し、記憶させる。
【0207】
ステップS2において、ヘッダ/フッタ生成部72は、各画素のデータの格納パターンに応じた、Data IDなどの分離情報を含むヘッダを生成する。
【0208】
ステップS3において、パケット生成部73は、メモリ52に記憶されている画素のデータを読み出し、各画素のデータを格納パターンに応じて格納することによって、複数の階調の画素のデータが格納されたペイロードを生成する。
【0209】
ステップS4において、パケット生成部73は、ヘッダ/フッタ生成部72により生成されたヘッダなどをペイロードに付加することによってパケットを生成する。
【0210】
ステップS5において、Lane分配部53は、Core51-1のパケット生成部73から供給されたパケットを構成するデータを複数のレーンに分配し、出力する。
【0211】
ステップS6において、PHYアナログ処理部55は、各レーンのデータに対して物理レイヤの処理を施し、各レーンのデータを送信部82から送信する。
【0212】
以上の処理が、1フレームを構成する各ラインを対象として繰り返し行われる。
【0213】
・受信部の動作
次に、
図29のフローチャートを参照して、多階調伝送方式によって送信されてきたデータを受信する受信部31の処理について説明する。
【0214】
図29の処理は、例えば、送信部22から伝送されてきたパケットのデータを表すレーン毎の信号が供給されたときに開始される。
【0215】
ステップS11において、PHYアナログ処理部101は、受信部111において受信した信号の同期をとるなどして、パケットのデータを受信する。
【0216】
ステップS12において、Lane統合部103は、PHYアナログ処理部101の10B8Bシンボルデコーダ102から供給された各レーンのデータを統合する。
【0217】
ステップS13において、信号処理部121のパケット解析部131は、Lane統合部103から供給されたパケットのデータを受信し、ヘッダの解析を行う。分離情報の解析が行われることによって、階調の切り替わり位置などが特定される。
【0218】
ステップS14において、分離部132は、ペイロードに格納されているそれぞれの階調の画素のデータを、パケット解析部131によるヘッダの解析結果に基づいて分離する。分離部132から出力部133-1に対しては、例えば8ビットの画素のデータが出力される。また、分離部132から出力部133-2に対しては、例えば12ビットの画素のデータが出力される。
【0219】
ステップS15において、出力部133-1のピクセルデータ変換部142は、FIFO141から読み出したデータを8ビットの階調の画素のデータに変換し、出力する。また、出力部133-2のピクセルデータ変換部142は、FIFO141から読み出したデータを12ビットの階調の画素のデータに変換し、出力する。
【0220】
以上の処理が、各ラインの画素のデータを格納するパケットが送信部22から伝送されてくる間、繰り返し行われる。
【0221】
<他のアプリケーションの例>
以上においては、画素のデータを伝送する場合について説明したが、多階調伝送方式は、画素のデータ以外の各種のデータの伝送に用いることが可能である。
【0222】
図30は、TOF(Time of Flight)センサシステムの例を示す図である。
【0223】
TOFセンサシステムは、光源から発した光の反射光を検出することによって、対象物までの距離を測定するシステムである。
【0224】
図30の例においては、測定結果を表す情報がTOFセンサS21から出力され、情報処理LSIに入力されている。測定結果には、例えば、キャリブレーションに用いられた値を表す情報であるキャリブレーション情報と、対象のヒストグラムを表す情報であるヒストグラム情報が含まれる。
【0225】
図31は、TOFセンサS21の出力データのフォーマットの例を示す図である。
【0226】
図31に示すように、TOFセンサS21からは、あらかじめ決められた所定の数のキャリブレーション情報とヒストグラム情報が出力データとして出力される。
図31の例においては、N+1個のキャリブレーション情報とヒストグラム情報によって1つの出力データが構成される。キャリブレーション情報のビット幅は8ビットであり、ヒストグラム情報のビット幅は12ビットである。
【0227】
すなわち、TOFセンサS21の出力データは、ビット幅が異なる複数の項目のデータから構成される。このような所定のフォーマットを有する出力データが、測定が行われる毎にTOFセンサS21から出力される。
【0228】
情報処理LSIにおいては、TOFセンサS21から供給された出力データ全体を1ラインのデータとして1つのペイロードに格納したパケットが生成され、host controllerに伝送される。
【0229】
【0230】
図32に示すように、パケットのペイロードには、N+1個のキャリブレーション情報が連続して格納され、それに続けて、N+1個のヒストグラム情報が連続して格納される。
【0231】
すなわち、
図32に示す1つのパケットのペイロードには、測定結果を表す1つの項目のデータを単位データとして、データ単位毎のビット幅が異なる複数種類の単位データが格納される。
【0232】
このように、伝送対象のデータが所定のフォーマットを有しており、ビット幅が異なる複数の項目がフォーマットに含まれている場合、送信部22は、複数の項目のデータ全体を1つのペイロードに格納し、多階調伝送方式によって伝送することができる。
【0233】
なお、TOFセンサシステムを
図1の伝送システム1の構成において実現する場合、例えば、TOFセンサS21の機能は情報処理部21により実現され、画像処理LSIの機能は送信部22により実現される。host controllerの機能は、受信部31と情報処理部32により実現される。
【0234】
多階調伝送方式をTOFセンサシステムに適用することにより、ビット幅が異なる複数の項目の情報を効率的に伝送することが可能となる。
【0235】
<SLVS-EC規格について>
ここで、SLVS-EC規格について説明する。
【0236】
図33は、送信部22と受信部31の詳細な構成例を示す図である。
【0237】
図33の左側に破線で囲んで示す構成が送信部22の構成であり、右側に破線で囲んで示す構成が受信部31の構成である。送信部22と受信部31は、それぞれ、リンクレイヤの構成と物理レイヤの構成からなる。送信部22と受信部31のそれぞれのレイヤにおいては、上述した処理以外の各種の処理が実際には行われる。
【0238】
実線L2より上側に示す構成がリンクレイヤの構成であり、実線L2より下側に示す構成が物理レイヤの構成である。送信部22において、実線L2より上側に示す構成がリンクレイヤの信号処理を行う構成となり、実線L2より下側に示す構成が物理レイヤの信号処理を行う構成となる。
【0239】
また、受信部31において、実線L2より下側に示す構成が物理レイヤの信号処理を行う構成となり、実線L2より上側に示す構成がリンクレイヤの信号処理を行う構成となる。
【0240】
なお、実線L1の上に示す構成はアプリケーションレイヤの構成である。システム制御部211、フレームデータ入力部212、およびレジスタ213は例えば情報処理部21において実現される。
【0241】
システム制御部211は、送信部22のLINK-TXプロトコル管理部221と通信を行い、フレームフォーマットに関する情報を提供するなどして画像データの伝送を制御する。
【0242】
フレームデータ入力部212は、伝送対象の画像を構成する各画素のデータを送信部22のPixel to Byte変換部222に供給する。
【0243】
レジスタ213は、Pixel to Byte変換のビット数やLane数等の情報を記憶する。レジスタ213に記憶されている情報に従って画像データの送信処理が行われる。
【0244】
また、アプリケーションレイヤの構成のうちのフレームデータ出力部341、レジスタ342、およびシステム制御部343は情報処理部32において実現される。
【0245】
フレームデータ出力部341は、受信部31から供給された各ラインの画素データに基づいて1フレームの画像を生成し、出力する。フレームデータ出力部341から出力された画像を用いて各種の処理が行われる。
【0246】
レジスタ342は、Byte to Pixel変換のビット数やLane数などの、画像データの受信に関する各種の設定値を記憶する。レジスタ342に記憶されている情報に従って画像データの受信処理が行われる。
【0247】
システム制御部343は、LINK-RXプロトコル管理部321と通信を行い、モードチェンジ等のシーケンスを制御する。
【0248】
・送信部22のリンクレイヤの構成
はじめに、送信部22のリンクレイヤの構成について説明する。
【0249】
送信部22のリンクレイヤ処理部22Aには、リンクレイヤの構成として、LINK-TXプロトコル管理部221、Pixel to Byte変換部222、ペイロードECC挿入部223、パケット生成部224、およびレーン分配部225が設けられる。LINK-TXプロトコル管理部221は、状態制御部231、ヘッダ生成部232、データ挿入部233、およびフッタ生成部234から構成される。
【0250】
例えば、Pixel to Byte変換部222は、
図21のPacking部71に対応する。パケット生成部224は、
図21のパケット生成部73に対応する。レーン分配部225は、
図21のLane分配部53に対応する。ヘッダ生成部232とフッタ生成部234は、
図21のヘッダ/フッタ生成部72に対応する。すなわち、
図21等に示す構成は、送信部22の構成を簡略化して示す構成となる。
【0251】
LINK-TXプロトコル管理部221の状態制御部231は、送信部22のリンクレイヤの状態を管理する。
【0252】
ヘッダ生成部232は、1ライン分の画素データが格納されたペイロードに付加されるヘッダを生成し、パケット生成部224に出力する。
【0253】
図34は、ヘッダ情報とCRC符号の1つの組を構成する8バイトのビット配列の例を示す図である。
【0254】
ヘッダを構成する8バイトのうちの1番目の1バイトであるバイトH7には、1ビット目から順に、Frame Start, Frame End, Line Validの各1ビットと、Line Numberの13ビットのうちの1~5ビット目が含まれる。また、2番目の1バイトであるバイトH6には、Line Numberの13ビットのうちの6~13ビット目が含まれる。
【0255】
3番目の1バイトであるバイトH5から6番目の1バイトであるバイトH2がReservedとなる。多階調伝送方式においては、このReserved領域を用いて分離情報などが記述される。7番目の1バイトであるバイトH1と8番目の1バイトであるバイトH0にはCRC符号の各ビットが含まれる。
【0256】
図33の説明に戻り、ヘッダ生成部232は、システム制御部211による制御に従ってヘッダ情報を生成する。例えば、システム制御部211からは、フレームデータ入力部212が出力する画素データのライン番号を表す情報や、フレームの先頭、終端を表す情報が供給される。
【0257】
また、ヘッダ生成部232は、ヘッダ情報を生成多項式に適用してCRC符号を計算する。ヘッダ情報に付加されるCRC符号の生成多項式は例えば下式(1)により表される。
【数1】
【0258】
ヘッダ生成部232は、ヘッダ情報にCRC符号を付加することによってヘッダ情報とCRC符号の組を生成し、同じヘッダ情報とCRC符号の組を3組繰り返して配置することによってヘッダを生成する。ヘッダ生成部232は、生成したヘッダをパケット生成部224に出力する。
【0259】
データ挿入部233は、スタッフィング(stuffing)に用いられるデータを生成し、Pixel to Byte変換部222とレーン分配部225に出力する。Pixel to Byte変換部222に供給されたスタッフィングデータであるペイロードスタッフィングデータは、Pixel to Byte変換後の画素データに付加され、ペイロードに格納される画素データのデータ量の調整に用いられる。また、レーン分配部225に供給されたスタッフィングデータであるレーンスタッフィングデータは、レーン割り当て後のデータに付加され、レーン間のデータ量の調整に用いられる。
【0260】
フッタ生成部234は、システム制御部211による制御に応じて、適宜、ペイロードデータを生成多項式に適用して32ビットのCRC符号を計算し、計算により求めたCRC符号をフッタとしてパケット生成部224に出力する。フッタとして付加されるCRC符号の生成多項式は例えば下式(2)により表される。
【数2】
【0261】
Pixel to Byte変換部222は、フレームデータ入力部212から供給された画素データを取得し、各画素のデータを1バイト単位のデータに変換するPixel to Byte変換を行う。例えば、画像の各画素の画素値(RGB)は、8ビット、10ビット、12ビット、14ビット、16ビットのうちのいずれかのビット数で表される。
【0262】
図35は、各画素の画素値が8ビットで表される場合のPixel to Byte変換の例を示す図である。
【0263】
Data[0]がLSBを表し、数字の最も大きいData[7]がMSBを表す。白抜き矢印で示すように、この場合、画素Nの画素値を表すData[7]~[0]の8ビットは、Data[7]~[0]からなるByte Nに変換される。各画素の画素値が8ビットで表される場合、Pixel to Byte変換後のバイト単位のデータの数は、画素の数と同じ数になる。
【0264】
図36は、各画素の画素値が10ビットで表される場合のPixel to Byte変換の例を示す図である。
【0265】
この場合、画素Nの画素値を表すData[9]~[0]の10ビットは、Data[9]~[2]からなるByte 1.25*Nに変換される。
【0266】
画素N+1~N+3についても同様に、それぞれの画素値を表すData[9]~[0]の10ビットが、Data[9]~[2]からなるByte 1.25*N+1~Byte 1.25*N+3に変換される。また、画素N~N+3のそれぞれの下位のビットであるData[1]とData[0]が集められてByte 1.25*N+4に変換される。各画素の画素値が10ビットで表される場合、Pixel to Byte変換後のバイト単位のデータの数は、画素の数の1.25倍の数になる。
【0267】
図37は、各画素の画素値が12ビットで表される場合のPixel to Byte変換の例を示す図である。
【0268】
この場合、画素Nの画素値を表すData[11]~[0]の12ビットは、Data[11]~[4]からなるByte 1.5*Nに変換される。
【0269】
画素N+1についても同様に、画素N+1の画素値を表すData[11]~[0]の12ビットが、Data[11]~[4]からなるByte 1.5*N+1に変換される。また、画素Nと画素N+1のそれぞれの下位のビットであるData[3]~[0]が集められてByte 1.5*N+2に変換される。各画素の画素値が12ビットで表される場合、Pixel to Byte変換後のバイト単位のデータの数は、画素の数の1.5倍の数になる。
【0270】
図38は、各画素の画素値が14ビットで表される場合のPixel to Byte変換の例を示す図である。
【0271】
この場合、画素Nの画素値を表すData[13]~[0]の14ビットは、Data[13]~[6]からなるByte 1.75*Nに変換される。
【0272】
画素N+1~N+3についても同様に、それぞれの画素値を表すData[13]~[0]の14ビットが、Data[13]~[6]からなるByte 1.75*N+1~Byte 1.75*N+3に変換される。また、画素N~N+3のビットのうちの残ったビットが下位のビットから順に集められ、例えば、画素NのビットであるData[5]~[0]と、画素N+1のビットであるData[5],[4]がByte 1.75*N+4に変換される。
【0273】
同様に、画素N+1のビットであるData[3]~[0]と、画素N+2のビットであるData[5]~[2]がByte 1.75*N+5に変換され、画素N+2のビットであるData[1],[0]と、画素N+3のビットであるData[5]~[0]がByte 1.75*N+6に変換される。各画素の画素値が14ビットで表される場合、Pixel to Byte変換後のバイト単位のデータの数は、画素の数の1.75倍の数になる。
【0274】
図39は、各画素の画素値が16ビットで表される場合のPixel to Byte変換の例を示す図である。
【0275】
この場合、画素Nの画素値を表すData[15]~[0]の16ビットは、Data[15]~[8]からなるByte 2*NとData[7]~[0]からなるByte 2*N+1に変換される。各画素の画素値が16ビットで表される場合、Pixel to Byte変換後のバイト単位のデータの数は、画素の数の2倍の数になる。
【0276】
図33のPixel to Byte変換部222は、このようなPixel to Byte変換を例えばラインの左端の画素から順に各画素を対象として行う。また、Pixel to Byte変換部222は、Pixel to Byte変換によって得られたバイト単位の画素データに、データ挿入部233から供給されたペイロードスタッフィングデータを付加することによってペイロードデータを生成し、ペイロードECC挿入部223に出力する。
【0277】
【0278】
図40は、各画素の画素値が10ビットで表される場合のPixel to Byte変換によって得られた画素データを含むペイロードデータを示している。色を付していない1つのブロックが、Pixel to Byte変換後のバイト単位の画素データを表す。また、色を付している1つのブロックが、データ挿入部233により生成されたペイロードスタッフィングデータを表す。なお、多階調伝送方式においては、複数の階調の画素のデータによってペイロードデータが構成される。
【0279】
Pixel to Byte変換後の画素データは、変換によって得られた順に、所定の数のグループにグループ化される。
図40の例においては、各画素データがグループ0~15の16グループにグループ化されており、画素P0のMSBを含む画素データがグループ0に割り当てられ、画素P1のMSBを含む画素データがグループ1に割り当てられている。また、画素P2のMSBを含む画素データがグループ2に割り当てられ、画素P3のMSBを含む画素データがグループ3に割り当てられ、画素P0~P3のLSBを含む画素データがグループ4に割り当てられている。
【0280】
画素P4のMSBを含む画素データ以降の画素データについても、グループ5以降の各グループに順に割り当てられる。ある画素データがグループ15に割り当てられたとき、それ以降の画素データは、グループ0以降の各グループに順に割り当てられる。なお、画素データを表すブロックのうち、3本の破線が内側に付されているブロックは、Pixel to Byte変換時に、画素N~N+3のLSBを含むようにして生成されたバイト単位の画素データを表す。
【0281】
送信部22のリンクレイヤにおいては、このようにしてグループ化が行われた後、クロック信号によって規定される期間毎に、各グループにおいて同じ位置にある画素データを対象として処理が並行して行われる。すなわち、
図40に示すように16のグループに画素データが割り当てられた場合、各列に並ぶ16の画素データを同じ期間内に処理するようにして画素データの処理が進められる。
【0282】
上述したように、1つのパケットのペイロードには1ラインの画素データが含まれる。
図40に示す画素データ全体が、1ラインを構成する画素データである。ここでは、
図2の有効画素領域A1の画素データの処理について説明しているが、マージン領域A2等の他の領域の画素データについても有効画素領域A1の画素データとともに処理される。
【0283】
1ライン分の画素データがグループ化された後、各グループのデータ長が同じ長さになるように、ペイロードスタッフィングデータが付加される。ペイロードスタッフィングデータは1バイトのデータである。
【0284】
図40の例においては、グループ0の画素データにはペイロードスタッフィングデータが付加されず、破線で囲んで示すように、グループ1~15の各画素データには、終端にペイロードスタッフィングデータが1つずつ付加されている。画素データとスタッフィングデータからなるペイロードデータのデータ長(Byte)は下式(3)により表される。
【数3】
【0285】
式(3)のLineLengthはラインの画素数を表し、BitPixは1画素の画素値を表すビット数を表す。PayloadStuffingはペイロードスタッフィングデータの数を表す。
【0286】
図40に示すように画素データを16グループに割り当てるとした場合、ペイロードスタッフィングデータの数は下式(4)により表される。式(4)の%は剰余を表す。
【数4】
【0287】
図41は、ペイロードデータの他の例を示す図である。
【0288】
図41は、各画素の画素値が12ビットで表される場合のPixel to Byte変換によって得られた画素データを含むペイロードデータを示している。
【0289】
図41の例においては、画素P0のMSBを含む画素データがグループ0に割り当てられ、画素P1のMSBを含む画素データがグループ1に割り当てられ、画素P0と画素P1のLSBを含む画素データがグループ2に割り当てられている。画素P2のMSBを含む画素データ以降の画素データについても、グループ3以降の各グループに順に割り当てられる。画素データを表すブロックのうち、1本の破線が内側に付されているブロックは、Pixel to Byte変換時に、画素Nと画素N+1のLSBを含むようにして生成されたバイト単位の画素データを表す。
【0290】
図41の例においては、グループ0とグループ1の画素データにはペイロードスタッフィングデータが付加されず、グループ2~15の各画素データには、終端にペイロードスタッフィングデータが1つずつ付加されている。
【0291】
このような構成を有するペイロードデータがPixel to Byte変換部222からペイロードECC挿入部223に供給される。
【0292】
ペイロードECC挿入部223は、Pixel to Byte変換部222から供給されたペイロードデータに基づいて、ペイロードデータの誤り訂正に用いられる誤り訂正符号を計算し、計算により求めた誤り訂正符号であるパリティをペイロードデータに挿入する。誤り訂正符号として、例えばリードソロモン符号が用いられる。なお、誤り訂正符号の挿入はオプションであり、例えば、ペイロードECC挿入部223によるパリティの挿入と、フッタ生成部234によるフッタの付加はいずれか一方のみを行うことが可能とされる。
【0293】
図42は、パリティが挿入されたペイロードデータの例を示す図である。
【0294】
図42に示すペイロードデータは、
図41を参照して説明した、各画素の画素値が12ビットで表される場合のPixel to Byte変換によって得られた画素データを含むペイロードデータである。斜線を付して示すブロックがパリティを表す。
【0295】
図42の例においては、グループ0~15の各グループの先頭の画素データから順に14個選択され、選択された224個(224バイト)の画素データに基づいて2バイトのパリティが求められている。2バイトのパリティが、その計算に用いられた224個の画素データに続けてグループ0,1の15番目のデータとして挿入され、224個の画素データと2バイトのパリティから1つ目のBasic Blockが形成される。
【0296】
このように、ペイロードECC挿入部223においては、基本的に、224個の画素データに基づいて2バイトのパリティが生成され、224個の画素データに続けて挿入される。
【0297】
また、
図42の例においては、1つ目のBasic Blockに続く224個の画素データが各グループから順に選択され、選択された224個の画素データに基づいて2バイトのパリティが求められている。2バイトのパリティが、その計算に用いられた224個の画素データに続けてグループ2,3の29番目のデータとして挿入され、224個の画素データと2バイトのパリティから2つ目のBasic Blockが形成される。
【0298】
あるBasic Blockに続く画素データとペイロードスタッフィングデータの数である16×Mが224に満たない場合、残っている16×M個のブロック(画素データとペイロードスタッフィングデータ)に基づいて2バイトのパリティが求められる。また、求められた2バイトのパリティがペイロードスタッフィングデータに続けて挿入され、16×M個のブロックと2バイトのパリティからExtra Blockが形成される。
【0299】
ペイロードECC挿入部223は、パリティを挿入したペイロードデータをパケット生成部224に出力する。パリティの挿入が行われない場合、Pixel to Byte変換部222からペイロードECC挿入部223に供給されたペイロードデータは、そのままパケット生成部224に出力される。
【0300】
パケット生成部224は、ペイロードECC挿入部223から供給されたペイロードデータに、ヘッダ生成部232により生成されたヘッダを付加することによってパケットを生成する。フッタ生成部234によりフッタの生成が行われている場合、パケット生成部224は、ペイロードデータにフッタを付加することも行う。
【0301】
図43は、ペイロードデータにヘッダを付加した状態を示す図である。
【0302】
H7~H0の文字を付して示す24個のブロックは、ヘッダ情報、またはヘッダ情報のCRC符号である、バイト単位のヘッダデータを表す。
図3を参照して説明したように1つのパケットのヘッダには、ヘッダ情報とCRC符号の組が3組含まれる。
【0303】
例えばヘッダデータH7~H2はヘッダ情報(6バイト)であり、ヘッダデータH1,H0はCRC符号(2バイト)である。
【0304】
図43の例においては、グループ0のペイロードデータには1つのヘッダデータH7が付加され、グループ1のペイロードデータには1つのヘッダデータH6が付加されている。グループ2のペイロードデータには1つのヘッダデータH5が付加され、グループ3のペイロードデータには1つのヘッダデータH4が付加されている。グループ4のペイロードデータには1つのヘッダデータH3が付加され、グループ5のペイロードデータには1つのヘッダデータH2が付加されている。グループ6のペイロードデータには1つのヘッダデータH1が付加され、グループ7のペイロードデータには1つのヘッダデータH0が付加されている。
【0305】
また、
図43の例においては、グループ8のペイロードデータには2つのヘッダデータH7が付加され、グループ9のペイロードデータには2つのヘッダデータH6が付加されている。グループ10のペイロードデータには2つのヘッダデータH5が付加され、グループ11のペイロードデータには2つのヘッダデータH4が付加されている。グループ12のペイロードデータには2つのヘッダデータH3が付加され、グループ13のペイロードデータには2つのヘッダデータH2が付加されている。グループ14のペイロードデータには2つのヘッダデータH1が付加され、グループ15のペイロードデータには2つのヘッダデータH0が付加されている。
【0306】
図44は、ペイロードデータにヘッダとフッタを付加した状態を示す図である。
【0307】
F3~F0の文字を付して示す4個のブロックは、フッタとして生成された4バイトのCRC符号であるフッタデータを表す。
図44の例においては、フッタデータF3~F0が、グループ0からグループ3のそれぞれのペイロードデータに付加されている。
【0308】
図45は、パリティが挿入されたペイロードデータにヘッダを付加した状態を示す図である。
【0309】
図45の例においては、パリティが挿入された
図42のペイロードデータに対して、
図43、
図44の場合と同様にヘッダデータH7~H0が付加されている。
【0310】
パケット生成部224は、このようにして生成した1パケットを構成するデータであるパケットデータをレーン分配部225に出力する。レーン分配部225に対しては、ヘッダデータとペイロードデータからなるパケットデータ、ヘッダデータとペイロードデータとフッタデータからなるパケットデータ、または、ヘッダデータと、パリティが挿入されたペイロードデータからなるパケットデータが供給されることになる。
図3のパケット構造は論理的なものであり、リンクレイヤ、物理レイヤにおいては、
図3の構造を有するパケットのデータがバイト単位で処理される。
【0311】
レーン分配部225は、パケット生成部224から供給されたパケットデータを、先頭のデータから順に、Lane0~7のうちのデータ伝送に用いる各レーンに割り当てる。
【0312】
図46は、パケットデータの割り当ての例を示す図である。
【0313】
ここでは、ヘッダデータとペイロードデータとフッタデータからなるパケットデータ(
図44)の割り当てについて説明する。Lane0~7の8レーンを用いてデータ伝送を行う場合のパケットデータの割り当ての例を白抜き矢印#1の先に示す。
【0314】
この場合、ヘッダデータH7~H0の3回繰り返しを構成するそれぞれのヘッダデータは、先頭のヘッダデータから順にLane0~7に割り当てられる。あるヘッダデータがLane7に割り当てられたとき、それ以降のヘッダデータは、Lane0以降の各レーンに順に割り当てられる。Lane0~7の各レーンには同じヘッダデータが3個ずつ割り当てられることになる。
【0315】
また、ペイロードデータは、先頭のペイロードデータから順にLane0~7に割り当てられる。あるペイロードデータがLane7に割り当てられたとき、それ以降のペイロードデータは、Lane0以降の各レーンに順に割り当てられる。
【0316】
フッタデータF3~F0は、先頭のフッタデータから順に各レーンに割り当てられる。
図46の例においては、ペイロードデータを構成する最後のペイロードスタッフィングデータがLane7に割り当てられており、フッタデータF3~F0がLane0~3に1つずつ割り当てられている。
【0317】
黒色を付して示すブロックはデータ挿入部233により生成されたレーンスタッフィングデータを表す。レーンスタッフィングデータは、1パケット分のパケットデータが各レーンに割り当てられた後、各レーンに割り当てられるデータ長が同じ長さになるように、データの数が少ないレーンに割り当てられる。レーンスタッフィングデータは1バイトのデータである。
図46の例においては、データの割り当て数の少ないレーンであるLane4~7に対して、レーンスタッフィングデータが1つずつ割り当てられている。
【0318】
パケットデータがヘッダデータとペイロードデータとフッタデータからなる場合のレーンスタッフィングデータの数は下式(5)により表される。
【数5】
【0319】
式(5)のLaneNumはレーンの数を表し、PayloadLengthはペイロードデータ長(バイト)を表す。また、FooterLengthはフッタ長(バイト)を表す。
【0320】
また、パケットデータが、ヘッダデータと、パリティが挿入されたペイロードデータからなる場合のレーンスタッフィングデータの数は下式(6)により表される。式(6)のParityLengthは、ペイロードに含まれるパリティの総バイト数を表す。
【数6】
【0321】
Lane0~5の6レーンを用いてデータ伝送を行う場合のパケットデータの割り当ての例を白抜き矢印#2の先に示す。
【0322】
この場合、ヘッダデータH7~H0の3回繰り返しを構成するそれぞれのヘッダデータは、先頭のヘッダデータから順にLane0~5に割り当てられる。あるヘッダデータがLane5に割り当てられたとき、それ以降のヘッダデータは、Lane0以降の各レーンに順に割り当てられる。Lane0~5の各レーンには4個ずつヘッダデータが割り当てられることになる。
【0323】
また、ペイロードデータは、先頭のペイロードデータから順にLane0~5に割り当てられる。あるペイロードデータがLane5に割り当てられたとき、それ以降のペイロードデータは、Lane0以降の各レーンに順に割り当てられる。
【0324】
フッタデータF3~F0は、先頭のフッタデータから順に各レーンに割り当てられる。
図46の例においては、ペイロードデータを構成する最後のペイロードスタッフィングデータがLane1に割り当てられており、フッタデータF3~F0がLane2~5に1つずつ割り当てられている。Lane0~5のパケットデータの数が同じ数であるから、この場合、レーンスタッフィングデータは用いられない。
【0325】
Lane0~3の4レーンを用いてデータ伝送を行う場合のパケットデータの割り当ての例を白抜き矢印#3の先に示す。
【0326】
この場合、ヘッダデータH7~H0の3回繰り返しを構成するそれぞれのヘッダデータは、先頭のヘッダデータから順にLane0~3に割り当てられる。あるヘッダデータがLane3に割り当てられたとき、それ以降のヘッダデータは、Lane0以降の各レーンに順に割り当てられる。Lane0~3の各レーンには6個ずつヘッダデータが割り当てられることになる。
【0327】
また、ペイロードデータは、先頭のペイロードデータから順にLane0~3に割り当てられる。あるペイロードデータがLane3に割り当てられたとき、それ以降のペイロードデータは、Lane0以降の各レーンに順に割り当てられる。
【0328】
フッタデータF3~F0は、先頭のフッタデータから順に各レーンに割り当てられる。
図46の例においては、ペイロードデータを構成する最後のペイロードスタッフィングデータがLane3に割り当てられており、フッタデータF3~F0がLane0~3に1つずつ割り当てられている。Lane0~3のパケットデータの数が同じ数であるから、この場合、レーンスタッフィングデータは用いられない。
【0329】
レーン分配部225は、このようにして各レーンに割り当てたパケットデータを物理レイヤに出力する。以下、Lane0~7の8レーンを用いてデータを伝送する場合について主に説明するが、データ伝送に用いるレーンの数が他の数の場合であっても同様の処理が行われる。
【0330】
・送信部22の物理レイヤの構成
次に、送信部22の物理レイヤの構成について説明する。
【0331】
送信部22の物理レイヤ処理部22Bには、物理レイヤの構成として、PHY-TX状態制御部241、クロック生成部242、信号処理部243-0乃至243-Nが設けられる。信号処理部243-0は、制御コード挿入部251、8B10Bシンボルエンコーダ252、同期部253、および送信部254から構成される。
【0332】
例えば、8B10Bシンボルエンコーダ252は、
図21の8B10Bシンボルエンコーダ54に対応する。同期部253は、
図21の同期部81に対応する。送信部254は、
図21の送信部82に対応する。
【0333】
レーン分配部225から出力された、Lane0に割り当てられたパケットデータは信号処理部243-0に入力され、Lane1に割り当てられたパケットデータは信号処理部243-1に入力される。また、LaneNに割り当てられたパケットデータは信号処理部243-Nに入力される。
【0334】
このように、送信部22の物理レイヤには、信号処理部243-0乃至243-Nがレーンの数と同じ数だけ設けられ、各レーンを用いて伝送するパケットデータの処理が、信号処理部243-0乃至243-Nのそれぞれにおいて並行して行われる。信号処理部243-0の構成について説明するが、信号処理部243-1乃至243-Nも同様の構成を有する。
【0335】
PHY-TX状態制御部241は、信号処理部243-0乃至243-Nの各部を制御する。例えば、信号処理部243-0乃至243-Nにより行われる各処理のタイミングがPHY-TX状態制御部241により制御される。
【0336】
クロック生成部242は、クロック信号を生成し、信号処理部243-0乃至243-Nのそれぞれの同期部253に出力する。
【0337】
信号処理部243-0の制御コード挿入部251は、レーン分配部225から供給されたパケットデータに対して制御コードを付加する。制御コードは、予め用意された複数種類のシンボルの中から選択された1つのシンボルにより、または複数種類のシンボルの組み合わせにより表されるコードである。制御コード挿入部251により挿入される各シンボルは8ビットのデータである。後段の回路で8B10B変換が施されることによって、制御コード挿入部251により挿入された1シンボルは10ビットのデータになる。一方、受信部31においては後述するように受信データに対して10B8B変換が施されるが、受信データに含まれる10B8B変換前の各シンボルは10ビットのデータであり、10B8B変換後の各シンボルは8ビットのデータになる。
【0338】
図47は、制御コード挿入部251により付加される制御コードの例を示す図である。
【0339】
制御コードには、Idle Code, Start Code, End Code, Pad Code, Sync Code, Deskew Code, Standby Codeがある。
【0340】
Idle Codeは、パケットデータの伝送時以外の期間に繰り返し送信されるシンボル群である。Idle Codeは、8B10B CodeであるD CharacterのD00.0(00000000)で表される。
【0341】
Start Codeは、パケットの開始を示すシンボル群である。上述したように、Start Codeはパケットの前に付加される。Start Codeは、3種類のK Characterの組み合わせであるK28.5, K27.7, K28.2, K27.7の4シンボルで表される。それぞれのK Characterの値を
図48に示す。
【0342】
End Codeは、パケットの終了を示すシンボル群である。上述したように、End Codeはパケットの後ろに付加される。End Codeは、3種類のK Characterの組み合わせであるK28.5, K29.7, K30.7, K29.7の4シンボルで表される。
【0343】
Pad Codeは、画素データ帯域とPHY伝送帯域の差を埋めるためにペイロードデータ中に挿入されるシンボル群である。画素データ帯域は、情報処理部21から出力され、送信部22に入力される画素データの伝送レートであり、PHY伝送帯域は、送信部22から送信され、受信部31に入力される画素データの伝送レートである。Pad Codeは、4種類のK Characterの組み合わせであるK23.7, K28.4, K28.6, K28.3の4シンボルで表される。
【0344】
図49は、Pad Codeの挿入の例を示す図である。
【0345】
図49の上段は、Pad Code挿入前の、各レーンに割り当てられたペイロードデータを示し、下段は、Pad Code挿入後のペイロードデータを示す。
図49の例においては、先頭から3番目の画素データと4番目の画素データの間、6番目の画素データと7番目の画素データの間、12番目の画素データと13番目の画素データの間にPad Codeが挿入されている。このように、Pad Codeは、Lane0~7の各レーンのペイロードデータの同じ位置に挿入される。
【0346】
Lane0に割り当てられたペイロードデータに対するPad Codeの挿入は信号処理部243-0の制御コード挿入部251により行われる。他のレーンに割り当てられたペイロードデータに対するPad Codeの挿入も同様に、信号処理部243-1乃至243-Nにおいてそれぞれ同じタイミングで行われる。Pad Codeの数は、画素データ帯域とPHY伝送帯域の差と、クロック生成部242が生成するクロック信号の周波数などに基づいて決定される。
【0347】
このように、Pad Codeは、画素データ帯域が狭く、PHY伝送帯域が広い場合に、双方の帯域の差を調整するために挿入される。例えば、Pad Codeが挿入されることによって、画素データ帯域とPHY伝送帯域の差が一定の範囲内に収まるように調整される。
【0348】
図47の説明に戻り、Sync Codeは、送信部22-受信部31間のビット同期、シンボル同期を確保するために用いられるシンボル群である。Sync Codeは、K28.5, Any**の2シンボルで表される。Any**は、どの種類のシンボルが用いられてもよいことを表す。Sync Codeは、例えば送信部22-受信部31間でパケットデータの伝送が開始される前のトレーニングモード時に繰り返し送信される。
【0349】
Deskew Codeは、レーン間のData Skew、すなわち、受信部31の各レーンで受信されるデータの受信タイミングのずれの補正に用いられるシンボル群である。Deskew Codeは、K28.5, Any**の2シンボルで表される。Deskew Codeを用いたレーン間のData Skewの補正については後述する。
【0350】
Standby Codeは、送信部22の出力がHigh-Z(ハイインピーダンス)などの状態になり、データ伝送が行われなくなることを受信部31に通知するために用いられるシンボル群である。すなわち、Standby Codeは、パケットデータの伝送を終了し、Standby状態になるときに受信部31に対して伝送される。Standby Codeは、K28.5, Any**の2シンボルで表される。
【0351】
制御コード挿入部251は、このような制御コードを付加したパケットデータを8B10Bシンボルエンコーダ252に出力する。
【0352】
図50は、制御コード挿入後のパケットデータの例を示す図である。
【0353】
図50に示すように、信号処理部243-0乃至243-Nにおいては、それぞれ、パケットデータの前にStart Codeが付加され、ペイロードデータにPad Codeが挿入される。パケットデータの後ろにはEnd Codeが付加され、End Codeの後ろにDeskew Codeが付加される。
図50の例においては、Deskew Codeの後ろにIdle Codeが付加されている。
【0354】
8B10Bシンボルエンコーダ252は、制御コード挿入部251から供給されたパケットデータ(制御コードが付加されたパケットデータ)に対して8B10B変換を施し、10ビット単位のデータに変換したパケットデータを同期部253に出力する。
【0355】
同期部253は、8B10Bシンボルエンコーダ252から供給されたパケットデータの各ビットを、クロック生成部242により生成されたクロック信号に従って送信部254に出力する。なお、送信部22に同期部253が設けられないようにしてもよい。この場合、8B10Bシンボルエンコーダ252から出力されたパケットデータは、送信部254にそのまま供給される。
【0356】
送信部254は、Lane0を構成する伝送路を介して、同期部253から供給されたパケットデータを受信部31に送信する。8レーンを用いてデータ伝送が行われる場合、Lane1~7を構成する伝送路をも用いてパケットデータが受信部31に送信される。
【0357】
・受信部31の物理レイヤの構成
次に、受信部31の物理レイヤの構成について説明する。
【0358】
受信部31の物理レイヤ処理部31Aには、物理レイヤの構成として、PHY-RX状態制御部301、信号処理部302-0乃至302-Nが設けられる。信号処理部302-0は、受信部311、クロック生成部312、同期部313、シンボル同期部314、10B8Bシンボルデコーダ315、スキュー補正部316、および制御コード除去部317から構成される。
【0359】
例えば、受信部311は、
図27の受信部111に対応する。同期部313は、
図27の同期部112に対応する。10B8Bシンボルデコーダ315は、
図27の10B8Bシンボルデコーダ102に対応する。すなわち、
図27に示す構成は、受信部31の構成を簡略化して示す構成となる。
【0360】
Lane0を構成する伝送路を介して送信されてきたパケットデータは信号処理部302-0に入力され、Lane1を構成する伝送路を介して送信されてきたパケットデータは信号処理部302-1に入力される。また、LaneNを構成する伝送路を介して送信されてきたパケットデータは信号処理部302-Nに入力される。
【0361】
このように、受信部31の物理レイヤには、信号処理部302-0乃至302-Nがレーンの数と同じ数だけ設けられ、各レーンを用いて伝送されてきたパケットデータの処理が、信号処理部302-0乃至302-Nのそれぞれにおいて並行して行われる。信号処理部302-0の構成について説明するが、信号処理部302-1乃至302-Nも同様の構成を有する。
【0362】
受信部311は、Lane0を構成する伝送路を介して送信部22から伝送されてきたパケットデータを表す信号を受信し、クロック生成部312に出力する。
【0363】
クロック生成部312は、受信部311から供給された信号のエッジを検出することによってビット同期をとり、エッジの検出周期に基づいてクロック信号を生成する。クロック生成部312は、受信部311から供給された信号を、クロック信号とともに同期部313に出力する。
【0364】
同期部313は、クロック生成部312により生成されたクロック信号に従って、受信部311において受信された信号のサンプリングを行い、サンプリングによって得られたパケットデータをシンボル同期部314に出力する。クロック生成部312と同期部313によりCDR(Clock Data Recovery)の機能が実現される。
【0365】
シンボル同期部314は、パケットデータに含まれる制御コードを検出することによって、または制御コードに含まれる一部のシンボルを検出することによってシンボル同期をとる。例えば、シンボル同期部314は、Start Code, End Code, Deskew Codeに含まれるK28.5のシンボルを検出し、シンボル同期をとる。シンボル同期部314は、各シンボルを表す10ビット単位のパケットデータを10B8Bシンボルデコーダ315に出力する。
【0366】
また、シンボル同期部314は、パケットデータの伝送が開始される前のトレーニングモード時に送信部22から繰り返し送信されてくるSync Codeに含まれるシンボルの境界を検出することによってシンボル同期をとる。
【0367】
10B8Bシンボルデコーダ315は、シンボル同期部314から供給された10ビット単位のパケットデータに対して10B8B変換を施し、8ビット単位のデータに変換したパケットデータをスキュー補正部316に出力する。
【0368】
スキュー補正部316は、10B8Bシンボルデコーダ315から供給されたパケットデータからDeskew Codeを検出する。スキュー補正部316によるDeskew Codeの検出タイミングの情報はPHY-RX状態制御部301に供給される。
【0369】
また、スキュー補正部316は、Deskew Codeのタイミングを、PHY-RX状態制御部301から供給された情報により表されるタイミングに合わせるようにしてレーン間のData Skewを補正する。PHY-RX状態制御部301からは、信号処理部302-0乃至302-Nのそれぞれにおいて検出されたDeskew Codeのタイミングのうち、最も遅いタイミングを表す情報が供給されてくる。
【0370】
図51は、Deskew Codeを用いたレーン間のData Skewの補正の例を示す図である。
【0371】
図51の例においては、Lane0~7の各レーンにおいて、Sync Code, Sync Code,…,Idle Code, Deskew Code, Idle Code, …, Idle Code, Deskew Codeの伝送が行われ、それぞれの制御コードが受信部31において受信されている。同じ制御コードの受信タイミングがレーン毎に異なり、レーン間のData Skewが生じている状態になっている。
【0372】
この場合、スキュー補正部316は、1つ目のDeskew CodeであるDeskew Code C1を検出し、Deskew Code C1の先頭のタイミングを、PHY-RX状態制御部301から供給された情報により表される時刻t1に合わせるように補正する。PHY-RX状態制御部301からは、Lane0~7の各レーンにおいてDeskew Code C1が検出されたタイミングのうち、最も遅いタイミングであるLane7においてDeskew Code C1が検出された時刻t1の情報が供給されてくる。
【0373】
また、スキュー補正部316は、2つ目のDeskew CodeであるDeskew Code C2を検出し、Deskew Code C2の先頭のタイミングを、PHY-RX状態制御部301から供給された情報により表される時刻t2に合わせるように補正する。PHY-RX状態制御部301からは、Lane0~7の各レーンにおいてDeskew Code C2が検出されたタイミングのうち、最も遅いタイミングであるLane7においてDeskew Code C2が検出された時刻t2の情報が供給されてくる。
【0374】
信号処理部302-1乃至302-Nのそれぞれにおいて同様の処理が行われることによって、
図51の矢印#1の先に示すようにレーン間のData Skewが補正される。
【0375】
スキュー補正部316は、Data Skewを補正したパケットデータを制御コード除去部317に出力する。
【0376】
制御コード除去部317は、パケットデータに付加された制御コードを除去し、Start CodeからEnd Codeまでの間のデータをパケットデータとしてリンクレイヤに出力する。
【0377】
PHY-RX状態制御部301は、信号処理部302-0乃至302-Nの各部を制御し、レーン間のData Skewの補正などを行わせる。また、PHY-RX状態制御部301は、所定のレーンで伝送エラーが起きて制御コードが失われた場合、失われた制御コードに代えて、他のレーンで伝送されてきた制御コードを付加することによって制御コードの誤り訂正を行う。
【0378】
・受信部31のリンクレイヤの構成
次に、受信部31のリンクレイヤの構成について説明する。
【0379】
受信部31のリンクレイヤ処理部31Bには、リンクレイヤの構成として、LINK-RXプロトコル管理部321、レーン統合部322、パケット分離部323、ペイロードエラー訂正部324、およびByte to Pixel変換部325が設けられる。LINK-RXプロトコル管理部321は、状態制御部331、ヘッダエラー訂正部332、データ除去部333、およびフッタエラー検出部334から構成される。
【0380】
例えば、レーン統合部322は、
図27のLane統合部103に対応する。パケット分離部323は、
図27のパケット解析部131と分離部132に対応する。Byte to Pixel変換部325は、
図27のピクセルデータ変換部142に対応する。
【0381】
レーン統合部322は、物理レイヤの信号処理部302-0乃至302-Nから供給されたパケットデータを、送信部22のレーン分配部225による各レーンへの分配順と逆順で並び替えることによって統合する。
【0382】
例えば、レーン分配部225によるパケットデータの分配が
図46の矢印#1の先に示すようにして行われている場合、各レーンのパケットデータの統合が行われることによって
図46の左側のパケットデータが取得される。各レーンのパケットデータの統合時、データ除去部333による制御に従って、レーンスタッフィングデータがレーン統合部322により除去される。レーン統合部322は、統合したパケットデータをパケット分離部323に出力する。
【0383】
パケット分離部323は、レーン統合部322により統合された1パケット分のパケットデータを、ヘッダデータを構成するパケットデータとペイロードデータを構成するパケットデータに分離する。パケット分離部323は、ヘッダデータをヘッダエラー訂正部332に出力し、ペイロードデータをペイロードエラー訂正部324に出力する。
【0384】
また、パケット分離部323は、パケットにフッタが含まれている場合、1パケット分のデータを、ヘッダデータを構成するパケットデータとペイロードデータを構成するパケットデータとフッタデータを構成するパケットデータに分離する。パケット分離部323は、ヘッダデータをヘッダエラー訂正部332に出力し、ペイロードデータをペイロードエラー訂正部324に出力する。また、パケット分離部323は、フッタデータをフッタエラー検出部334に出力する。
【0385】
ペイロードエラー訂正部324は、パケット分離部323から供給されたペイロードデータにパリティが挿入されている場合、パリティに基づいて誤り訂正演算を行うことによってペイロードデータのエラーを検出し、検出したエラーの訂正を行う。例えば、
図42に示すようにしてパリティが挿入されている場合、ペイロードエラー訂正部324は、1つ目のBasic Blockの最後に挿入されている2つのパリティを用いて、パリティの前にある224個の画素データの誤り訂正を行う。
【0386】
ペイロードエラー訂正部324は、各Basic Block, Extra Blockを対象として誤り訂正を行うことによって得られた誤り訂正後の画素データをByte to Pixel変換部325に出力する。パケット分離部323から供給されたペイロードデータにパリティが挿入されていない場合、パケット分離部323から供給されたペイロードデータはそのままByte to Pixel変換部325に出力される。
【0387】
Byte to Pixel変換部325は、ペイロードエラー訂正部324から供給されたペイロードデータに含まれるペイロードスタッフィングデータをデータ除去部333による制御に従って除去する。
【0388】
また、Byte to Pixel変換部325は、ペイロードスタッフィングデータを除去して得られたバイト単位の各画素のデータを、8ビット、10ビット、12ビット、14ビット、または16ビット単位の画素データに変換するByte to Pixel変換を行う。Byte to Pixel変換部325においては、
図35乃至
図39を参照して説明した、送信部22のPixel to Byte変換部222によるPixel to Byte変換と逆の変換が行われる。
【0389】
Byte to Pixel変換部325は、Byte to Pixel変換によって得られた8ビット、10ビット、12ビット、14ビット、または16ビット単位の画素データをフレームデータ出力部341に出力する。フレームデータ出力部341においては、例えば、ヘッダ情報のLine Validにより特定される有効画素の各ラインがByte to Pixel変換部325により得られた画素データに基づいて生成され、ヘッダ情報のLine Numberに従って各ラインが並べられることによって1フレームの画像が生成される。
【0390】
LINK-RXプロトコル管理部321の状態制御部331は、受信部31のリンクレイヤの状態を管理する。
【0391】
ヘッダエラー訂正部332は、パケット分離部323から供給されたヘッダデータに基づいてヘッダ情報とCRC符号の組を3組取得する。ヘッダエラー訂正部332は、ヘッダ情報とCRC符号の組の各組を対象として、ヘッダ情報のエラーを検出するための演算である誤り検出演算を、そのヘッダ情報と同じ組のCRC符号を用いて行う。
【0392】
また、ヘッダエラー訂正部332は、それぞれの組のヘッダ情報の誤り検出結果と、誤り検出演算により求められたデータの比較結果とのうちの少なくともいずれかに基づいて正しいヘッダ情報を推測し、正しいと推測したヘッダ情報と復号結果を出力する。誤り検出演算により求められたデータは、ヘッダ情報にCRCの生成多項式を適用することによって求められた値である。また、復号結果は、復号成功または復号失敗を表す情報である。
【0393】
ヘッダ情報とCRC符号の3つの組をそれぞれ組1、組2、組3とする。この場合、ヘッダエラー訂正部332は、組1を対象とした誤り検出演算によって、組1のヘッダ情報にエラーがあるか否か(誤り検出結果)と、誤り検出演算により求められたデータであるデータ1を取得する。また、ヘッダエラー訂正部332は、組2を対象とした誤り検出演算によって、組2のヘッダ情報にエラーがあるか否かと、誤り検出演算により求められたデータであるデータ2を取得する。ヘッダエラー訂正部332は、組3を対象とした誤り検出演算によって、組3のヘッダ情報にエラーがあるか否かと、誤り検出演算により求められたデータであるデータ3を取得する。
【0394】
また、ヘッダエラー訂正部332は、データ1とデータ2が一致するか否か、データ2とデータ3が一致するか否か、データ3とデータ1が一致するか否かをそれぞれ判定する。
【0395】
例えば、ヘッダエラー訂正部332は、組1、組2、組3を対象としたいずれの誤り検出演算によっても誤りが検出されず、誤り検出演算によって求められたデータのいずれの比較結果もが一致した場合、復号結果として、復号成功を表す情報を選択する。また、ヘッダエラー訂正部332は、いずれのヘッダ情報も正しいと推測し、組1のヘッダ情報、組2のヘッダ情報、組3のヘッダ情報のうちのいずれかを出力情報として選択する。
【0396】
一方、ヘッダエラー訂正部332は、組1を対象とした誤り検出演算でだけ誤りが検出されなかった場合、復号結果として、復号成功を表す情報を選択するとともに、組1のヘッダ情報が正しいと推測し、組1のヘッダ情報を出力情報として選択する。
【0397】
また、ヘッダエラー訂正部332は、組2を対象とした誤り検出演算でだけ誤りが検出されなかった場合、復号結果として、復号成功を表す情報を選択するとともに、組2のヘッダ情報が正しいと推測し、組2のヘッダ情報を出力情報として選択する。
【0398】
ヘッダエラー訂正部332は、組3を対象とした誤り検出演算でだけ誤りが検出されなかった場合、復号結果として、復号成功を表す情報を選択するとともに、組3のヘッダ情報が正しいと推測し、組3のヘッダ情報を出力情報として選択する。
【0399】
ヘッダエラー訂正部332は、以上のようにして選択した復号結果と出力情報をレジスタ342に出力し、記憶させる。このように、ヘッダエラー訂正部332によるヘッダ情報の誤り訂正は、複数のヘッダ情報の中から、エラーのないヘッダ情報をCRC符号を用いて検出し、検出したヘッダ情報を出力するようにして行われる。
【0400】
データ除去部333は、レーン統合部322を制御してレーンスタッフィングデータを除去し、Byte to Pixel変換部325を制御してペイロードスタッフィングデータを除去する。
【0401】
フッタエラー検出部334は、パケット分離部323から供給されたフッタデータに基づいて、フッタに格納されたCRC符号を取得する。フッタエラー検出部334は、取得したCRC符号を用いて誤り検出演算を行い、ペイロードデータのエラーを検出する。フッタエラー検出部334は、誤り検出結果を出力し、レジスタ342に記憶させる。
【0402】
<変形例>
SLVS-EC規格のデータ伝送において多階調伝送方式を採用する場合について説明したが、所定のフォーマットを有するフレームを規定し、ライン単位のデータを1つのパケットを用いて伝送する他の規格のデータ伝送に多階調伝送方式を適用することも可能である。
そのような規格には、例えばMIPI規格がある。
【0403】
MIPI規格のデータ伝送において多階調伝送方式を採用することによっても、上述したように効率的なデータ伝送が可能となる。
【0404】
・コンピュータの構成例
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0405】
図52は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0406】
CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。
【0407】
バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、キーボード、マウスなどよりなる入力部1006、ディスプレイ、スピーカなどよりなる出力部1007が接続される。また、入出力インタフェース1005には、ハードディスクや不揮発性のメモリなどよりなる記憶部1008、ネットワークインタフェースなどよりなる通信部1009、リムーバブルメディア1011を駆動するドライブ1010が接続される。
【0408】
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを入出力インタフェース1005及びバス1004を介してRAM1003にロードして実行することにより、上述した一連の処理が行われる。
【0409】
CPU1001が実行するプログラムは、例えばリムーバブルメディア1011に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部1008にインストールされる。
【0410】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0411】
本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【0412】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0413】
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0414】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0415】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0416】
<構成の組み合わせ例>
本技術は、以下のような構成をとることもできる。
【0417】
(1)
データ単位毎のビット幅が異なる複数種類の単位データを格納したペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを生成するパケット生成部と、
前記パケットを送信する送信部と
を備える送信装置。
(2)
前記パケット生成部は、前記単位データのビット幅が周期的に切り替わる前記ペイロードを生成する
前記(1)に記載の送信装置。
(3)
前記パケット生成部は、ビット幅が同じ前記単位データを連続して格納した前記ペイロードを生成する
前記(2)に記載の送信装置。
(4)
前記パケット生成部は、ビット幅が周期的に切り替わることを表すモード情報とともに、前記単位データの並び順と、ビット幅の切り替わりの周期とのうちの少なくともいずれかを表す情報を前記分離情報として含む前記ヘッダを付加する
前記(2)または(3)に記載の送信装置。
(5)
前記パケット生成部は、複数の撮像素子により撮像して得られたそれぞれの画像を構成する画素を前記単位データとして格納した前記ペイロードを含む前記パケットを生成する 前記(2)乃至(4)のいずれかに記載の送信装置。
(6)
前記パケット生成部は、前記単位データのビット幅が部分的に切り替わる前記ペイロードを生成する
前記(1)に記載の送信装置。
(7)
前記パケット生成部は、ビット幅が部分的に切り替わることを表すモード情報とともに、前記単位データのビット幅が切り替わる部分の数、前記部分の開始位置、および、前記部分の幅のうちの少なくともいずれかを表す情報を前記分離情報として含む前記ヘッダを付加する
前記(6)に記載の送信装置。
(8)
前記パケット生成部は、画像を解析することによって検出された注目領域を構成する画素と非注目領域を構成する画素を、それぞれビット幅が異なる前記単位データとして格納した前記ペイロードを含む前記パケットを生成する
前記(6)または(7)に記載の送信装置。
(9)
前記パケット生成部は、前記所定のフォーマットで規定されるデータ長の前記ヘッダに格納することができない前記分離情報の一部を、前記ペイロードの先頭に格納する
前記(1)乃至(8)のいずれかに記載の送信装置。
(10)
前記パケット生成部は、所定のセンサの測定結果を表す各項目の情報を前記単位データとして格納した前記ペイロードを含む前記パケットを生成する
前記(1)に記載の送信装置。
(11)
前記送信部は、前記パケットを構成するパケットデータを複数のレーンに分配し、それぞれの前記レーンの前記パケットデータに対して制御情報の挿入を含む処理を並列に行い、処理を施して得られた前記パケットデータを受信装置との間の伝送路上に出力する
前記(1)乃至(11)のいずれかに記載の送信装置。
(12)
送信装置が、
データ単位毎のビット幅が異なる複数種類の単位データを格納したペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを生成し、
前記パケットを送信する
送信方法。
(13)
データ単位毎のビット幅が異なる複数種類の単位データを格納したペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって生成された、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを受信する受信部と、
ビット幅が異なるそれぞれの前記単位データを前記分離情報に基づいて分離し、出力する分離部と
を備える受信装置。
(14)
前記分離部は、前記単位データのビット幅が周期的に切り替わる前記ペイロードから、前記単位データを分離する
前記(13)に記載の受信装置。
(15)
前記分離部は、ビット幅が周期的に切り替わることを表すモード情報とともに、前記単位データの並び順と、ビット幅の切り替わりの周期とのうちの少なくともいずれかを表す情報を含む前記分離情報に基づいて、前記単位データを分離する
前記(14)に記載の受信装置。
(16)
前記分離部は、前記単位データのビット幅が部分的に切り替わる前記ペイロードから、前記単位データを分離する
前記(13)に記載の受信装置。
(17)
前記分離部は、ビット幅が部分的に切り替わることを表すモード情報とともに、前記単位データのビット幅が切り替わる部分の数、前記部分の開始位置、および、前記部分の幅のうちの少なくともいずれかを表す情報を含む前記分離情報に基づいて、前記単位データを分離する
前記(16)に記載の受信装置。
(18)
前記受信部は、複数のレーンのデータとして送信装置から並列に伝送路上に出力されたパケットデータを受信し、
前記分離部は、それぞれの前記レーンの前記パケットデータを一系統のデータに統合して得られた前記パケットの前記ペイロードから、前記単位データを分離する
前記(13)乃至(17)のいずれかに記載の受信装置。
(19)
受信装置が、
データ単位毎のビット幅が異なる複数種類の単位データを格納したペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって生成された、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを受信し、
ビット幅が異なるそれぞれの前記単位データを前記分離情報に基づいて分離し、出力する
受信方法。
(20)
データ単位毎のビット幅が異なる複数種類の単位データを格納したペイロードに、複数種類の前記単位データが前記ペイロードに格納されていることを表す識別子を含む分離情報を含むヘッダを付加することによって、伝送対象のデータを所定のフォーマットで配置したフレームを構成する各ラインのデータの伝送に用いられるパケットを生成するパケット生成部と、
前記パケットを送信する送信部と
を備える送信装置と、
前記パケットを受信する受信部と、
ビット幅が異なるそれぞれの前記単位データを前記分離情報に基づいて分離し、出力する分離部と
を備える受信装置と
を含む送受信装置。
【符号の説明】
【0418】
1 伝送システム, 11 送信側LSI, 12 受信側LSI, 21 情報処理部, 22 送信部, 31 受信部, 32 情報処理部, 51-1 Core, 51-2 Core_sub, 52 メモリ, 53 Lane分配部, 54 8B10Bシンボルエンコーダ, 55 PHYアナログ処理部, 61 信号処理部, 62 制御部, 63 状態制御部, 71 Packing部, 72 ヘッダ/フッタ生成部, 73 パケット生成部, 101 PHYアナログ処理部, 102 10B8Bシンボルデコーダ, 103 レーン統合部, 104 Core, 121 信号処理部, 122 制御部, 123 状態制御部, 131 パケット解析部, 132 分離部, 133-1,133-2 出力部