従来、映像信号を伝送する規格として、SDI(Serial Digital Interface:シリアルデジタルインタフェース)が知られている(例えば、非特許文献1を参照)。例えば、番組を制作する現場では、カメラにより撮影された映像をSDI信号に格納して伝送する番組制作システムが用いられる。
図15は、従来の番組制作システムの全体構成を示す概略図である。この番組制作システムは、カメラ102-1,102-2、映像切替装置103、画像処理装置104及びモニタ105を備えて構成される。
カメラ102-1,102-2は、撮影した映像の映像フレームをシリアライズしてSDI信号に変換し、SDI信号を映像切替装置103へ送信する。
映像切替装置103は、カメラ102-1,102-2からSDI信号をそれぞれ受信し、SDI信号を映像フレームに変換する。そして、映像切替装置103は、2つの映像フレームのいずれか一方を選択して切り替え、切り替え後の映像フレームをSDI信号に変換する。映像切替装置103は、SDI信号を画像処理装置104へ送信する。
画像処理装置104は、映像切替装置103からSDI信号を受信し、SDI信号を映像フレームに変換し、映像フレームに基づいて所定の画像処理を行う。画像処理装置104は、映像フレームをSDI信号に変換し、SDI信号をモニタ105へ送信する。
モニタ105は、画像処理装置104からSDI信号を受信し、SDI信号を映像フレームに変換し、映像フレームを画面表示する。
このような番組制作システムは、従来のSDIの伝送路による構成から、IPネットワークの伝送路による構成へと移行することが検討されている(例えば、非特許文献2を参照)。IPネットワークを用いた番組制作システムでは、映像フレームをIPパケットに格納し、IPパケットを伝送する。
これにより、カメラ102-1,102-2、映像切替装置103等の各装置を容易にIPネットワークに接続することができ、映像フレームに対する処理を専用のハードウェアではなく、一般的なPCサーバにて行うことができる。結果として、番組を制作する際に、低廉化かつ柔軟な処理が可能となる。
また、IPネットワークにて使用可能な装置は、安価かつ伝送容量が大きいことから、設備コストを下げることが期待できる。また、汎用のPCサーバにて受信及び処理が可能なことから、クラウドの活用及びソフトウェアによる高度な処理の実現も期待できる。
一般に、IPネットワークを用いた番組制作システムにおいて、映像フレームを、IPネットワークを介して伝送する際にも、SDIの場合と同様に、映像フレームをシリアライズし、シリアル信号を生成する必要がある。このシリアライズの方法及びIPパケットの構成方法については、RFC4175の技術仕様に規定されている(例えば、非特許文献3を参照)。このRFC4175の技術仕様は、SDIと同様のシリアライズ方法を規定しており、10ビットまたは12ビットで表現された輝度信号及び色差信号を、シリアル信号に隙間なく連続して配置する。
図16は、従来技術の処理を説明する図であり、RFC4175の技術仕様に従い、映像フォーマットがYCbCr4:2:2 10ビットの場合に、輝度信号及び色差信号を隙間なく連続してシリアル信号に配置する例を示している。映像フォーマット「YCbCr4:2:2 10ビット」において、「YCbCr」は、要素信号の種類(要素信号が輝度信号Y及び色差信号Cb,Cr)を表す形式を示している。また、「4:2:2」は、サブサンプリング方式を示し、「10ビット」は各要素信号の量子化ビット数を示している。図16の上部右側の図は、映像フレームのうち左上の箇所の要素信号を示しており、三重丸及び一重丸は、各画素を示している。後述する図4、図5等についても同様である。
この映像フレームは、第1番目の画素位置に輝度信号Y0及び色差信号Cb0,Cr0が配置され、第2番目の画素位置に輝度信号Y1が配置され、第3番目の画素位置に輝度信号Y2及び色差信号Cb1,Cr1が配置され、第4番目の画素位置に輝度信号Y3が配置されている。つまり、映像フレームは、画素毎に、所定の要素信号が順番に配置されている。
このように構成された映像フレームから、輝度信号Y0,Y1,・・・、色差信号Cb0,Cb1,・・・及び色差信号Cr0,Cr1,・・・がそれぞれ抽出される。そして、図16の下部に示すように、これらの要素信号が所定の順番に隙間なく連続して構成されたシリアル信号が生成される。
そして、シリアル信号はIPパケットに格納され、伝送される。つまり、映像フレームを構成する輝度信号Y0,・・・、色差信号Cb0,・・・及び色差信号Cr0,・・・は、図16の下部に示すように、色差信号Cb0、輝度信号Y0、色差信号Cr0、・・・の順番に、要素信号を単位として隙間なく連続的に送信される。
ここで、汎用のPCサーバが、IPパケットにより伝送された映像フレームを受信し、処理するものとする。一般に、汎用のPCサーバに用いられるCPUは、8ビットを1バイトとして、バイトを単位とした計算処理を行う。この場合のCPUの計算処理単位は1バイトである。また、複数バイトの値を表現する場合のバイトオーダーには、リトルエンディアン及びビックエンディアンがあり、リトルエンディアンが用いられることが多い。
そのため、図16に示したとおり、10ビット(または12ビット)で表現された輝度信号Y及び色差信号Cb,Crが連続して送信された場合には、PCサーバは、これらの要素信号のそれぞれを、2バイト(16ビット)の信号として配置する必要がある。
図17は、従来技術におけるPCサーバによる輝度信号Y0(以下、Y0信号という。)のデータ生成処理を説明する図である。このデータ生成処理は、映像フレームを処理するPCサーバのCPUにて計算処理可能となるように、Y0信号のビット配置を変更する等して、Y0信号のデータを生成する処理をいう。
PCサーバは、IPパケットを受信すると、IPパケットからYCbCr4:2:2 10ビットのシリアル信号を抽出する。PCサーバは、シリアル信号からY0信号が配置された、8ビット区切りであるバイト単位の箇所を特定し、Y0信号を含む2バイトのデータを抽出する(ステップS1701)。
これにより、(a)に示すように、下位2ビットの色差信号Cb0(以下、Cb0信号という。)、Y0信号、及び上位4ビットの色差信号Cr0(以下、Cr0信号という。)から構成される2バイトのデータが抽出される。
PCサーバは、Y0信号を含む2バイトのデータ(a)に対し、ビックエンディアンをリトルエンディアンに変更するために、上位バイトのデータと下位バイトのデータとを入れ替える(ステップS1702)。これにより、(b)に示す2バイトのデータが構成される。
PCサーバは、ステップS1702の2バイトのデータに対し、下位バイト(右側のバイト)の最上位ビットを先頭位置とし、上位バイト(左側のバイト)の最下位ビットを終了位置として、4ビット右側へビットシフトする(ステップS1703)。これにより、(c)に示す2バイトのデータが構成される。
PCサーバは、ステップS1703の2バイトのデータに対し、下位バイトの所定位置をビットマスクする(ステップS1704)。
これにより、(d)に示すように、下位8ビットのY0信号、6ビットの0の信号及び上位2ビットのY0信号から構成される2バイトのデータが生成される。この2バイトのデータは、リトルエンディアンで表された10ビットのY0信号のみからなる。このため、CPUは、2バイトのY0信号を用いて計算処理を行うことができる。
このように、PCサーバは、図17に示したバイトオーダー、ビットシフト及びビットマスクの処理により、Y0信号を、CPUが計算処理可能な16ビットに配置することができる。
尚、映像フレームをシリアライズする方法として、非特許文献3のRFC4175の技術仕様に加え、非特許文献2のV210の技術仕様、及びSMPTE RDD 40の規格(例えば、非特許文献4を参照)が知られている。いずれの規定においても、図17に示した処理が必要となる。
以下、本発明を実施するための形態について図面を用いて詳細に説明する。
〔番組制作システム〕
まず、本発明の実施形態が適用される番組制作システムについて説明する。図1は、本発明の実施形態による映像フレーム伝送装置を含む番組制作システムの全体構成例を示す概略図である。この番組制作システムは、カメラ2-1,2-2、映像切替装置3、画像処理装置4及びモニタ5を備えて構成される。
カメラ2-1は、撮像部10-1及び映像フレーム伝送装置11-1を備えている。撮像部10-1は、撮影対象を撮影し、撮影した映像の映像フレームを映像フレーム伝送装置11-1に出力する。
映像フレーム伝送装置11-1は、撮像部10-1から映像フレームを入力する。そして、映像フレーム伝送装置11-1は、映像フレームから要素信号を抽出し、所定の規則に従い、要素信号のビット配置を、受信側のCPUにて計算処理可能な配置に変換し、要素信号が隙間なく連続して構成されたシリアル信号を生成する。映像フレーム伝送装置11-1は、シリアル信号をIPパケットに格納し、IPパケットを、IPネットワークを介して映像切替装置3へ伝送する。映像フレーム伝送装置11-1の詳細については後述する。
カメラ2-2は、撮像部10-2及び映像フレーム伝送装置11-2を備えている。撮像部10-2及び映像フレーム伝送装置11-2は、カメラ2-1に備えた撮像部10-1及び映像フレーム伝送装置11-1と同様であるから、ここでは説明を省略する。映像フレーム伝送装置11-2の詳細については後述する。
ここで、映像フレームは、例えば、輝度信号であるY信号、並びに色差信号であるCb信号及びCr信号からなるY,Cb,Crの3つの要素信号から構成される。また、映像フレームは、例えば、色信号であるR信号、G信号及びB信号からなるR,G,Bの3つの要素信号から構成される。
各要素信号の量子化ビット数は、10ビット、12ビット等である。また、映像フレームが全ての画素の情報から構成される場合、そのサンプリング方式は4:4:4であり、Cb信号及びCr信号の画素を間引いて構成される場合、そのサンプリング方式は4:2:2である。また、信号の配置形式は、10ビット、12ビットの他、16ビットの形式もあり、非特許文献2に示すV210の形式、非特許文献3に示すRFC4175の形式、またはNMI形式で配置されていてもよい。
映像切替装置3は、例えばPCサーバであり、映像切替部12及び映像フレーム伝送装置11-3を備えている。映像切替部12は、映像切り替えプログラムを実行し、以下の処理を行う。映像切替部12は、カメラ2-1,2-2からIPパケットをそれぞれ受信し、IPパケットからシリアル信号を抽出する。そして、映像切替部12は、シリアル信号から、映像フレームを構成する複数の要素信号のうち所定の要素信号を含む所定バイト(例えば2バイト)のデータを抽出する。ここで、所定バイトは、当該映像切替装置3のCPUが計算処理を行う際の複数バイトをいう。
映像切替部12は、抽出した所定バイトのデータに対してビットマスクの処理を行い、所定の要素信号のみを含む所定バイトのデータ、すなわちCPUが計算処理可能なデータを生成する。映像切替部12におけるデータ生成処理の詳細については後述する。
ここで、シリアル信号から抽出された所定の要素信号を含む所定バイトのデータは、前段の映像フレーム伝送装置11-1,11-2により、CPUにて計算処理可能なビット配置に変換されている。
これにより、映像切替部12では、CPUが計算処理可能なデータを生成するために、図17に示した負荷の高い処理が不要となり、ビットマスクの処理のみを行えばよい。したがって、所定の要素信号のビット配置を、CPUにて計算処理可能な配置に、短時間かつ低負荷にて変換することが可能となる。
映像切替部12は、例えば所定バイトのデータを用いて、映像フレームの処理等を行い、カメラ2-1,2-2における2つの映像のいずれか一方を選択して切り替え、シリアル信号から映像フレームを生成する。そして、映像切替部12は、映像フレームを映像フレーム伝送装置11-3に出力する。
映像フレーム伝送装置11-3は、映像切替部12から映像フレームを入力し、カメラ2-1の映像フレーム伝送装置11-1と同様の処理を行い、IPパケットを、IPネットワークを介して画像処理装置4へ伝送する。映像フレーム伝送装置11-3の詳細については後述する。
画像処理装置4は、例えばPCサーバであり、画像処理部13及び映像フレーム伝送装置11-4を備えている。画像処理部13は、画像処理プログラムを実行し、以下の処理を行う。画像処理部13は、映像切替装置3からIPパケットを受信し、IPパケットからシリアル信号を抽出する。そして、画像処理部13は、映像切替装置3の映像切替部12と同様に、シリアル信号から、所定の要素信号を含む所定バイトのデータを抽出し、ビットマスクの処理を行ってCPUが計算処理可能なデータを生成する。画像処理部13におけるデータ生成処理の詳細については後述する。
ここで、シリアル信号から抽出された所定バイトのデータは、前段の映像フレーム伝送装置11-3により、CPUにて計算処理可能なビット配置に変換されている。
これにより、画像処理部13では、CPUが計算処理可能なデータを生成するために、ビットマスクの処理のみを行えばよく、所定の要素信号のビット配置を、CPUにて計算処理可能な配置に、短時間かつ低負荷にて変換することが可能となる。
画像処理部13は、例えば所定バイトのデータを用いた画像処理を行うと共に、シリアル信号から映像フレームを生成し、映像フレームを映像フレーム伝送装置11-4に出力する。
映像フレーム伝送装置11-4は、画像処理部13から映像フレームを入力し、カメラ2-1の映像フレーム伝送装置11-1と同様の処理を行い、IPパケットを、IPネットワークを介してモニタ5へ伝送する。映像フレーム伝送装置11-4の詳細については後述する。
モニタ5は、画像処理装置4からIPパケットを受信し、IPパケットからシリアル信号を抽出する。そして、モニタ5は、映像切替装置3の映像切替部12と同様に、シリアル信号から、所定の要素信号を含む所定バイトのデータを抽出し、ビットマスクの処理を行ってCPUが計算処理可能なデータを生成する。モニタ5は、所定バイトのデータを用いて画面表示を行う。モニタ5におけるデータ生成処理の詳細については後述する。
ここで、シリアル信号から抽出された所定バイトのデータは、前段の映像フレーム伝送装置11-4により、CPUにて計算処理可能なビット配置に変換されている。
これにより、モニタ5では、CPUが計算処理可能なデータを生成するために、ビットマスクの処理のみを行えばよく、所定の要素信号のビット配置を、CPUにて計算処理可能な配置に、短時間かつ低負荷にて変換することが可能となる。
〔映像フレーム伝送装置11〕
次に、図1に示した映像フレーム伝送装置11-1~11-4(以下、総称して映像フレーム伝送装置11という。)について説明する。以下、映像フレームからY,Cb,Cr信号を抽出し、Y信号のビット配置をCPUにて計算処理可能な配置に変換する例を挙げて説明する。
図2は、映像フレーム伝送装置11の構成例を示すブロック図である。この映像フレーム伝送装置11は、映像フレーム変換部20及びIPパケット送信部21を備えている。
映像フレーム変換部20は、映像フレームを入力し、入力した映像フレームの映像フォーマットを特定する。そして、映像フレーム変換部20は、特定した映像フォーマットに対応する所定の規則に従い、映像フレームからY,Cb,Cr信号を抽出する。映像フレーム変換部20は、Y,Cb,Cr信号のビット配置を変換し、Y信号についてはCPUにて計算処理可能な配置に並び替え、Y,Cb,Cr信号が隙間なく連続して構成されたシリアル信号を生成する。そして、映像フレーム変換部20は、シリアル信号をIPパケット送信部21に出力する。映像フレーム変換部20の詳細については後述する。
IPパケット送信部21は、映像フレーム変換部20からシリアル信号を入力する。そして、IPパケット送信部21は、シリアル信号について、1以上の所定数のサブグループに含まれる全てのY,Cb,Cr信号を1つのIPパケットに格納し、IPパケットをIPネットワークへ送信する。この場合、IPパケット送信部21は、1つのサブグループ(に含まれるY,Cb,Cr信号)を分割して複数のIPパケットに格納し、送信することはしない。つまり、1つのサブグループは、分断して送信されることはなく、1つのIPパケットに格納されて送信される。
これにより、IPパケットを受信する受信装置は、サブグループ単位にY信号、Cr,Cb信号を受信し抽出することができるから、画素毎の処理に対応することができる。また、受信装置は、IPパケットが消失した場合、画素毎に処理することができるから、その復元が容易となる。
サブグループは、映像フレーム変換部20が映像フレームからシリアル信号を生成する処理において、処理対象の単位となるグループ、すなわち所定数のY,Cb,Cr信号からなるグループをいう。例えば、YCbCr4:2:2 10ビットの映像フレームの場合、後述する図4及び図6に示すように、サブグループは、6つのY信号(Y0~Y5信号)、3つのCb信号(Cb0~Cb2信号)及び3つのCr信号(Cr0~Cr2信号)からなる15バイトを単位としたグループである。また、YCbCr4:4:4 12ビットの映像フレームの場合、後述する図5及び図7に示すように、サブグループは、2つのY信号(Y0,Y1信号)、2つのCb信号(Cb0,Cb1信号)及び2つのCr信号(Cr0,Cr1信号)からなる9バイトを単位としたグループである。詳細については後述する。
ここで、サブグループに含まるY,Cb,Cr信号は、複数のIPパケットに分割して格納されることはない。また、Y,Cb,Cr信号は、映像フレーム(シリアル信号)の先頭のサブグループから順番に、IPパケットに格納される。
尚、IPパケットのヘッダには、以下の非特許文献に示すRTP、UDP及びIPの各ヘッダ情報が格納される。
[非特許文献5] SMPTE ST2110-20:2017,“Professional Media Over Managed IP Networks: Uncompressed Active Video”
[非特許文献6] RFC3550 RTP,“A Transport Protocol for Real-Time Applications”
[非特許文献7] RFC768,“User Datagram Protocol”
[非特許文献8] RFC791,“Internet Protocol”
〔映像フレーム変換部20の構成〕
次に、図2に示した映像フレーム変換部20の構成について詳細に説明する。図3は、映像フレーム変換部20の構成例を示すブロック図である。この映像フレーム変換部20は、映像フォーマット特定手段30、映像フレーム変換手段31及びテーブル群32を備えている。
映像フォーマット特定手段30は、当該映像フレーム変換部20が入力した映像フレームの映像フォーマットを特定し、映像フォーマットの情報を映像フレーム変換手段31に出力する。例えば、映像フォーマット特定手段30は、予め設定された映像フォーマットを、当該映像フレームの映像フォーマットとして特定する。また、映像フォーマット特定手段30は、当該映像フレーム変換部20が映像フレームを含むSDI信号を入力した場合、SDI信号から映像フォーマットを抽出し、抽出した映像フォーマットを、当該映像フレームの映像フォーマットとして特定する。
映像フレーム変換手段31は、映像フレームを入力すると共に、映像フォーマット特定手段30から映像フォーマットの情報を入力し、入力した映像フォーマットのテーブルをテーブル群32から読み出す。そして、映像フレーム変換手段31は、読み出したテーブルを用いて、サブグループ毎に、映像フレームに含まれるY,Cb,Cr信号を識別する。映像フレーム変換手段31は、Y,Cb,Cr信号のビット配置を変換し、Y信号についてはCPUにて計算処理可能な配置に並び替え、シリアル信号を生成する。そして、映像フレーム変換手段31は、シリアル信号をIPパケット送信部21に出力する。
テーブル群32は、複数の映像フォーマットのテーブルから構成され、予め設定された複数のテーブルとしてメモリに格納されている。テーブル群32は、例えば、後述する図6のYCbCr4:2:2 10ビット用テーブル、後述する図7のYCbCr4:4:4 12ビット用テーブル等を含む。テーブルには、映像フレームをシリアル信号に変換するための規則、すなわち、Y,Cb,Cr信号のビット配置を変換し、Y信号についてはCPUにて計算処理可能な配置に並び替えるための規則を表すデータが格納されている。
(YCbCr4:2:2 10ビットの映像フレームの場合)
図4は、映像フレーム変換手段31の処理例を説明する図であり、YCbCr4:2:2 10ビットの映像フレームの場合を示している。図6は、YCbCr4:2:2 10ビット用テーブルのデータ構成例を示す図である。
図6を参照して、このテーブルは、サブグループ長、信号、上位ビット長、下位ビット長、上位並び替え先(バイト番号/ビット位置)及び下位並び替え先(バイト番号/ビット位置)の各データから構成される。
尚、図6に示すテーブルのデータ構成は一例であり、本発明は、このデータ構成に限定されるものではない。後述する図7に示すテーブルについても同様である。
図4及び図6を参照して、映像フレーム変換手段31は、入力した映像フレームの映像フォーマットがYCbCr4:2:2 10ビットである場合、図6のテーブルに格納されたサブグループ長「15バイト」を読み出す。そして、映像フレーム変換手段31は、15バイトを単位として、シリアル信号を生成する。
映像フレーム変換手段31は、図6のテーブルに格納された信号の情報を読み出し、映像フレームに含まれるY0~Y5信号、Cb0~Cb2信号及びCr0~Cr2信号を識別する。ここで、15バイトのサブグループは、Y0~Y5信号、Cb0~Cb2信号及びCr0~Cr2信号からなる12個の要素信号により構成される。
映像フレーム変換手段31は、図6のテーブルに格納された信号毎に、上位ビット長、下位ビット長、上位並び替え先(バイト番号/ビット位置)及び下位並び替え先(バイト番号/ビット位置)を読み出す。そして、映像フレーム変換手段31は、サブグループ毎に、映像フレームから識別した要素信号のそれぞれについて、上位ビット長、下位ビット長、上位並び替え先及び下位並び替え先に従い、分割して並び替える処理を行う。
図6のテーブルを参照して、サブグループ長は、サブグループを構成する所定数の要素信号の合計バイト長を示す。上位ビット長は、要素信号を並び替える際の、映像フレームから識別された要素信号を分割する上位側のビット長(上位ビットデータのビット長)である。下位ビット長は、要素信号を分割する下位側のビット長(下位ビットデータのビット長)である。
上位並び替え先(バイト番号/ビット位置)は、要素信号を並び替えてシリアル信号を生成する際の、要素信号の上位ビットデータが格納される、サブグループを単位としたシリアル信号内の位置である。下位並び替え先(バイト番号/ビット位置)は、要素信号を並び替えてシリアル信号を生成する際の、要素信号の下位ビットデータが格納される、サブグループを単位としたシリアル信号内の位置である。
図8(1)は、シリアル信号において、サブグループ長が15バイトの場合のバイト番号を示す図であり、図8(2)は、1バイト内のビット位置を示す図である。サブグループ長が15バイトの場合、バイト番号は、シリアル信号内において、1から15まで順番に付けられている。また、ビット位置は、1バイト内において、最下位ビットのビット位置0から最上位ビットのビット位置7まで順番に付けられている。
図6のテーブルにおいて、上位並び替え先(バイト番号/ビット位置)及び下位並び替え先(バイト番号/ビット位置)のバイト番号は、図8(1)に対応し、ビット位置は、図8(2)に対応する。つまり、要素信号の上位ビットデータは、15バイトのサブグループを単位としたシリアル信号内の、図8(1)(2)にて特定される上位並び替え先に格納される。また、要素信号の下位ビットデータは、15バイトのサブグループを単位としたシリアル信号内の、図8(1)(2)にて特定される下位並び替え先に格納される。
例えば、映像フレーム変換手段31は、Y0信号について、図6のテーブルから上位ビット長「2」、下位ビット長「8」、上位並び替え先「2/0~1」及び下位並び替え先「1/0~7」を読み出す。この場合、上位ビット長「2」は、CPUの計算処理単位のビット長8よりも短いビット長であり、下位ビット長「8」は、CPUの計算処理単位のビット長8と同じビット長である。
映像フレーム変換手段31は、図4のα1に示すように、Y0信号における2ビット長の上位ビットデータを、シリアル信号内の上位並び替え先「2/0~1」であるバイト番号2のビット位置0~1に格納する。また、映像フレーム変換手段31は、図4のβ1に示すように、Y0信号における8ビット長の下位ビットデータを、シリアル信号内の下位並び替え先「1/0~7」であるバイト番号1のビット位置0~7に格納する。
このように、映像フレーム変換手段31により、図6のテーブルを用いて、15バイトのサブグループ毎に、映像フレームに含まれるY,Cb,Cr信号が、図4の下部に示すシリアル信号内の所定位置に並び替えられる。
これにより、映像フレームは、当該映像フレームを構成する全てのY,Cb,Cr信号の上位ビットデータ及び下位ビットデータが隙間なく連続して構成されたシリアル信号に変換される。
また、Y信号は、CPUにて計算処理可能な2バイト(下位バイト及び上位バイト)の配置に並び替えられる。つまり、Y信号は、CPUの計算処理単位と同じ1バイトである8ビット長の下位ビットデータ、及び、CPUの計算処理単位である1バイトよりも短い2ビット長の上位ビットデータに分割され、上位ビットデータは上位並び替え先に、下位ビットデータは下位並び替え先に格納され並び替えられる。
そして、受信装置は、Y信号の上位ビットデータのビット位置2からビット位置7までをビットマスクすることで、CPUは、Y信号の上位ビットデータ及び下位ビットデータを用いて、Y信号の計算処理を行うことができる。例えば、受信装置は、Y0信号について、バイト番号2のビット位置2からビット位置7までのデータ(Cb0信号の下位ビットデータ)をビットマスクすることで、CPUは、Y0信号の計算処理を行うことができる。
(YCbCr4:4:4 12ビットの映像フレームの場合)
図5は、映像フレーム変換手段31の処理例を説明する図であり、YCbCr4:4:4 12ビットの映像フレームの場合を示している。図7は、YCbCr4:4:4 12ビット用テーブルのデータ構成例を示す図である。
図7を参照して、このテーブルは、図6と同様に、サブグループ長、信号、上位ビット長、下位ビット長、上位並び替え先(バイト番号/ビット位置)及び下位並び替え先(バイト番号/ビット位置)の各データから構成される。
図5及び図7を参照して、映像フレーム変換手段31は、入力した映像フレームの映像フォーマットがYCbCr4:4:4 12ビットである場合、図7のテーブルに格納されたサブグループ長「9バイト」を読み出す。そして、映像フレーム変換手段31は、9バイトを単位として、シリアル信号を生成する。
映像フレーム変換手段31は、図7のテーブルに格納された信号の情報を読み出し、映像フレームに含まれるY0,Y1信号、Cb0,Cb1信号及びCr0,Cr1信号を識別する。ここで、9バイトのサブグループは、Y0,Y1信号、Cb0,Cb1信号及びCr0,Cr1信号からなる6個の要素信号により構成される。
例えば、映像フレーム変換手段31は、Y0信号について、図7のテーブルから上位ビット長「4」、下位ビット長「8」、上位並び替え先「2/0~3」及び下位並び替え先「1/0~7」を読み出す。
映像フレーム変換手段31は、図5のα2に示すように、Y0信号における4ビット長の上位ビットデータを、シリアル信号内の上位並び替え先「2/0~3」であるバイト番号2のビット位置0~3に格納する。また、映像フレーム変換手段31は、図5のβ2に示すように、Y0信号における8ビット長の下位ビットデータを、シリアル信号内の下位並び替え先「1/0~7」であるバイト番号1のビット位置0~7に格納する。
このように、映像フレーム変換手段31により、図7のテーブルを用いて、9バイトのサブグループ毎に、映像フレームに含まれるY,Cb,Cr信号が、図5の下部に示すシリアル信号内の所定位置に並び替えられる。
これにより、映像フレームは、当該映像フレームを構成する全てのY,Cb,Cr信号の上位ビットデータ及び下位ビットデータが隙間なく連続して構成されたシリアル信号に変換される。
また、Y信号は、CPUにて計算処理可能な2バイト(下位バイト及び上位バイト)の配置に並び替えられる。つまり、Y信号は、CPUの計算処理単位と同じ1バイトである8ビット長の下位ビットデータ、及び、CPUの計算処理単位である1バイトよりも短い4ビット長の上位ビットデータに分割され、上位ビットデータは上位並び替え先に、下位ビットデータは下位並び替え先に格納され並び替えられる。
そして、受信装置は、Y信号の上位ビットデータのビット位置4からビット位置7までをビットマスクすることで、CPUは、Y信号の上位ビットデータ及び下位ビットデータを用いて、Y信号の計算処理を行うことができる。例えば、受信装置は、Y0信号について、バイト番号2のビット位置4からビット位置7までのデータ(Cb0信号の下位ビットデータ)をビットマスクすることで、CPUは、Y0信号の計算処理を行うことができる。
〔映像フレーム変換部20の処理〕
次に、図2に示した映像フレーム変換部20の処理について詳細に説明する。図9は、映像フレーム変換部20の処理例を示すフローチャートである。以下、YCbCr4:2:2 10ビットの映像フレームの場合を例に挙げて説明する。
映像フレーム変換部20が映像フレームを入力すると(ステップS901)、映像フォーマット特定手段30は、映像フレームの映像フォーマットがYCbCr4:2:2 10ビットであると特定する(ステップS902)。
映像フレーム変換手段31は、図6のテーブルを参照し、サブグループ長「15バイト」のサブグループを単位として、映像フレームからY,Cb,Cr信号のそれぞれを識別し、映像フレームの先頭から順番に抽出する(ステップS903)。
図10は、Y,Cb,Cr信号の抽出処理(ステップS903)を説明する図である。映像フレーム変換手段31は、映像フレームから、サブグループ長「15バイト」のサブグループを単位として、最初に、Cb0信号、Y0信号、Cr0信号、・・・、Y5信号を抽出する。Cb0信号、Y0信号、Cr0信号、・・・、Y5信号の要素数は12であり、各要素信号は10ビット長である。
図9に戻って、映像フレーム変換手段31は、図6のテーブルを参照し、ステップS903にて抽出したCb0信号、Y0信号、Cr0信号、・・・、Y5信号のそれぞれについて、上位ビットデータ及び下位ビットデータに分割する(ステップS904)。
映像フレーム変換手段31は、図6のテーブルを参照し、ステップS904にて分割したCb0信号、Y0信号、Cr0信号、・・・、Y5信号の上位ビットデータ及び下位ビットデータについて、並び替えを行う(ステップS905)。そして、映像フレーム変換手段31は、図4の下部に示したシリアル信号を生成し、シリアル信号をIPパケット送信部21に出力する(ステップS906)。
図11は、上位及び下位分割処理、並び替え処理及びシリアル信号生成処理(ステップS904~ステップS906)を説明する図である。映像フレーム変換手段31は、Cb0信号について、図6のテーブルから上位ビット長「4」、下位ビット長「6」、上位並び替え先「13/0~3」及び下位並び替え先「2/2~7」を読み出す。
映像フレーム変換手段31は、Cb0信号を、4ビット長の上位ビットデータ及び6ビット長の下位ビットデータに分割する。そして、映像フレーム変換手段31は、Cb0信号における4ビット長の上位ビットデータを、シリアル信号内のバイト番号13のビット位置0~3に格納する。また、映像フレーム変換手段31は、Cb0信号における6ビット長の下位ビットデータを、シリアル信号内のバイト番号2のビット位置2~7に格納する。
同様に、映像フレーム変換手段31は、図6のテーブルを参照し、Y0信号を2ビット長の上位ビットデータ及び8ビット長の下位ビットデータに分割する。そして、映像フレーム変換手段31は、Y0信号における2ビット長の上位ビットデータを、シリアル信号内のバイト番号2のビット位置0~1に格納する。また、映像フレーム変換手段31は、Y0信号における8ビット長の下位ビットデータを、シリアル信号内のバイト番号1のビット位置0~7に格納する。
同様に、映像フレーム変換手段31は、図6のテーブルを参照し、Cr0信号を4ビット長の上位ビットデータ及び6ビット長の下位ビットデータに分割する。そして、映像フレーム変換手段31は、Cr0信号における4ビット長の上位ビットデータを、シリアル信号内のバイト番号13のビット位置4~7に格納する。また、映像フレーム変換手段31は、Cr0信号における6ビット長の下位ビットデータを、シリアル信号内のバイト番号4のビット位置2~7に格納する。
そして、映像フレーム変換手段31は、図11の下部に示したシリアル信号を生成し、シリアル信号をIPパケット送信部21に出力する。
映像フォーマットがYCbCr4:2:2 10ビットの場合、そのシリアル信号の構成は、図4の下部に示したとおりである。また、映像フォーマットがYCbCr4:4:4 12ビットの場合、そのシリアル信号の構成は、図5の下部に示したとおりである。
〔他の映像フォーマットのシリアル信号〕
次に、他の映像フォーマットにおけるシリアル信号の構成例について説明する。図12(1)は、YCbCr4:4:4 10ビットのシリアル信号の構成例を示す図である。映像フォーマットがYCbCr4:4:4 10ビットの場合、サブグループ長は15バイトである。15バイトのサブグループは、Y0~Y3信号、Cb0~Cb3信号及びCr0~Cr3信号からなる12個の要素信号により構成される。
図12(1)に示すように、Y0~Y3信号、Cb0~Cb3信号及びCr0~Cr3信号のそれぞれは、所定長の上位ビットデータ及び下位ビットデータに分割される。そして、上位ビットデータ及び下位ビットデータは、シリアル信号内の所定位置に格納される。このような処理は15バイトのサブグループ毎に行われ、映像フレームに対応するシリアル信号が生成される。
図12(2)は、YCbCr4:2:2 12ビットのシリアル信号の構成例を示す図である。映像フォーマットがYCbCr4:2:2 12ビットの場合、サブグループ長は6バイトである。6バイトのサブグループは、Y0,Y1信号、Cb0信号及びCr0信号からなる4個の要素信号により構成される。
図12(2)に示すように、Y0,Y1信号、Cb0信号及びCr0信号のそれぞれは、所定長の上位ビットデータ及び下位ビットデータに分割される。そして、上位ビットデータ及び下位ビットデータは、シリアル信号内の所定位置に格納される。このような処理は6バイトのサブグループ毎に行われ、映像フレームに対応するシリアル信号が生成される。
〔CPUにて計算処理可能なデータ生成処理〕
次に、CPUにて計算処理可能なデータ生成処理について説明する。このデータ生成処理は、映像フレームを処理する映像切替部12、画像処理部13及びモニタ5のCPUにて計算処理可能となるように、Y0信号を含む2バイトのデータに対して行う処理である。
図13は、映像切替部12等におけるY0信号のデータ生成処理例を説明する図である。映像切替部12等は、IPパケットを受信すると、IPパケットから、映像フレームのシリアル信号(図4及び図11に示したYCbCr4:2:2 10ビットのシリアル信号)を抽出する。そして、映像切替部12等は、シリアル信号からY0信号が配置されたバイト単位の箇所を特定し、Y0信号を含む2バイトのデータを抽出する(ステップS1301)。
これにより、(a)に示すように、下位8ビットのY0信号、下位6ビットのCb0信号及び上位2ビットのY0信号から構成される2バイトのデータが抽出される。
映像切替部12等は、Y0信号を含む2バイトのデータ(a)に対し、下位バイトのビット位置2~7をビットマスクする(ステップS1302)。
これにより、(b)に示すように、下位8ビットのY0信号、6ビットの0の信号及び上位2ビットのY0信号から構成される2バイトのデータが生成される。この2バイトのデータは、リトルエンディアンで表された10ビットのY0信号のみからなる。このため、CPUは、2バイトのY0信号に対して計算処理を行うことができる。
このように、映像切替部12等は、図13に示したビットマスクの処理により、Y0信号を、CPUが計算処理可能な16ビットに配置することができる。
図17に示した従来技術の処理では、CPUにて計算処理可能なデータを生成するために、バイトオーダー、ビットシフト及びビットマスクの処理が必要であるのに対し、図13に示した本発明の実施形態の処理では、ビットマスクの処理のみが必要である。したがって、本発明の実施形態では、従来技術よりも少ない処理で済むから、映像フレームから抽出した要素信号のビット配置を、CPUにて計算処理可能な配置に、短時間かつ低負荷にて変換することが可能となる。
〔実験結果〕
次に、コンピュータシミュレーションによる実験結果について説明する。図14は、本発明の実施形態及び従来技術における処理時間を説明する実験結果の図であり、シリアル信号がY信号を抽出し、CPUにて計算処理可能なY信号のデータを生成するための処理時間を示している。
図14の上部に示すように、IPパケット受信部40、Y信号抽出部41及び画像認識部42を備えたPCサーバにおいて、Y信号抽出部41の処理時間を測定し、これを実験結果として、図14の下部に示している。
従来技術(非特許文献3のRFC4175の方法)による実験結果は、PCサーバが、図16に示したようなシリアル信号が格納されたIPパケットを受信した場合のY信号抽出部41による処理時間を示す。IPパケットには、2K解像度の映像フレームが格納されている。
IPパケット受信部40において、IPパケットからシリアル信号が抽出され、Y信号抽出部41へ入力される。Y信号抽出部41において、シリアル信号からY信号を含む2バイトのデータが抽出され、図17に示したデータ生成処理により、CPUにて計算処理可能なY信号を含む2バイトのデータ(図17(d))が生成される。Y信号抽出部41により生成されたY信号を含む2バイトのデータは、画像認識部42へ入力され、画像認識の処理が行われる。
一方、本発明の実施形態では、PCサーバは、本発明の実施形態の映像フレーム伝送装置11から送信された2K解像度の映像フレームを含むIPパケットを受信する。IPパケット受信部40において、IPパケットからシリアル信号が抽出され、Y信号抽出部41へ入力される。
Y信号抽出部41において、シリアル信号からY信号を含む2バイトのデータが抽出され、図13に示したデータ生成処理により、CPUにて計算処理可能なY信号を含む2バイトのデータ(図13の(b))が生成される。Y信号抽出部41により生成されたY信号を含む2バイトのデータは、画像認識部42へ入力され、画像認識の処理が行われる。
このような一連の処理の中で、Y信号抽出部41による処理、すなわち、シリアル信号からY信号が抽出され、CPUにて計算処理可能なY信号を含む2バイトのデータが生成されるまでの処理時間を100フレーム分計測する。そして、この計測値を平均化して1フレーム当たりの平均処理時間を算出する。
このようにして算出された平均処理時間は、従来技術では9.444201msecであり、本発明の実施形態では8.553489msecである。この実験結果から、本発明の実施形態の平均処理時間は、従来技術よりも短いことがわかる。つまり、本発明の実施形態により、シリアル信号から抽出したY0信号のビット配置を、CPUにて計算処理可能な配置に、短時間かつ低負荷にて変換することが可能となる。
以上のように、本発明の実施形態の映像フレーム伝送装置11によれば、映像フレーム変換部20は、映像フレームの映像フォーマットを特定し、特定した映像フォーマットのテーブルを用いて、サブグループ毎に、映像フレームに含まれるY,Cb,Cr信号を識別し、これらの要素信号のビット配置を変換し、Y信号についてはCPUにて計算処理可能な配置に並び替え、シリアル信号を生成する。
IPパケット送信部21は、シリアル信号に含まれるY,Cb,Cr信号のサブグループを単位として、1以上のサブグループをIPパケットに格納し、IPパケットをIPネットワークへ送信する。
そして、IPパケットを受信する映像切替装置3の映像切替部12、画像処理装置4の画像処理部13及びモニタ5は、受信したIPパケットから映像フレームのシリアル信号を抽出し、シリアル信号からY信号を含む2バイトのデータを抽出する。そして、映像切替部12等は、Y信号を含む2バイトのデータに対し、下位バイトの所定ビット位置をビットマスクする。これにより、映像切替部12等のCPUは、Y信号の計算処理を行うことができる。
CPUにて計算処理可能なデータを生成するために、従来技術では、バイトオーダー、ビットシフト及びビットマスクの処理が必要であったが、本発明の実施形態では、ビットマスクの処理のみで済む。
したがって、本発明の実施形態によれば、映像切替部12等において、映像フレームから抽出したY信号のビット配置を、CPUにて計算処理可能な配置に、短時間かつ低負荷にて変換することが可能となる。つまり、映像フレーム伝送装置11において、IPパケットを映像切替装置3等の受信装置へ伝送する際に、映像切替装置3等にて映像フレームの処理が短時間かつ低負荷にて実現できるように、要素信号のビット配置を変換することが可能となる。そして、例えば画像処理部13において、映像フレームに対し、エッジ抽出、顔、文字等の対象物の認識等の処理を短時間で開始することができる。
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば図1において、映像切替装置3は、本発明の実施形態による映像フレーム伝送装置11-3を備え、画像処理装置4は、映像フレーム伝送装置11-4を備えるようにした。この映像フレーム伝送装置11は、映像切替装置3及び画像処理装置4に実装されるだけではなく、映像フレームが格納されたIPパケットを送信する装置の一部に実装されていればよい。
また、本発明の実施形態による映像フレーム伝送装置11の処理対象となる映像フレームの映像フォーマットは、図4に示したYCbCr4:2:2 10ビット、図5に示したYCbCr4:4:4 12ビット、図12(1)に示したYCbCr4:4:4 10ビット、図12(2)に示したYCbCr4:2:2 12ビットだけでなく、他のフォーマットにも適用がある。この場合、図3に示したテーブル群32には、映像フレーム伝送装置11の処理対象となる全ての映像フレームの映像フォーマットに関するテーブルが含まれる。
また、前記実施形態では、映像フレーム伝送装置11は、映像フレームのシリアル信号をIPパケットに格納し、IPパケットをIPネットワークの伝送路へ送信するようにした。これに対し、映像フレーム伝送装置11は、映像フレームのシリアル信号をSDI信号に格納し、SDI信号をSDIの伝送路へ送信するようにしてもよい。要するに、映像フレーム伝送装置11は、映像フレームのシリアル信号をIPパケット以外のSDI信号等のシリアルデジタル映像信号に格納し、シリアルデジタル映像信号をシリアル伝送路へ送信するようにしてもよい。
尚、本発明の実施形態による映像フレーム伝送装置11のハードウェア構成としては、通常のコンピュータを使用することができる。映像フレーム伝送装置11は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。映像フレーム伝送装置11に備えた映像フレーム変換部20及びIPパケット送信部21の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。