(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】パケット生成装置及びプログラム
(51)【国際特許分類】
H04N 21/238 20110101AFI20231205BHJP
【FI】
H04N21/238
(21)【出願番号】P 2019219809
(22)【出願日】2019-12-04
【審査請求日】2022-11-01
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100121119
【氏名又は名称】花村 泰伸
(72)【発明者】
【氏名】川本 潤一郎
(72)【発明者】
【氏名】白戸 諒
(72)【発明者】
【氏名】倉掛 卓也
【審査官】鈴木 順三
(56)【参考文献】
【文献】特開2010-136220(JP,A)
【文献】特開2010-239433(JP,A)
【文献】特開平09-055767(JP,A)
【文献】特開2013-219513(JP,A)
【文献】特開平07-143480(JP,A)
【文献】米国特許出願公開第2018/0367465(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像フレームを圧縮した圧縮信号をパケット化するパケット生成装置において、
前記映像フレームをスライス毎に圧縮し、前記スライス毎の前記圧縮信号を生成する圧縮信号生成部と、
前記映像フレーム毎に、前記圧縮信号生成部により生成された前記スライス毎の前記圧縮信号をパケット化して第1パケットを生成し、所定の調整用パケットを生成するパケット生成部と、を備え、
前記パケット生成部は、
前記映像フレーム毎に、当該映像フレームについての前記第1パケット及び前記調整用パケットの総数が他の映像フレームについての前記総数と同一になるように、前記調整用パケットの数を増減させる、ことを特徴とするパケット生成装置。
【請求項2】
請求項1に記載のパケット生成装置において、
前記パケット生成部は、
1番目の前記映像フレームについて、前記第1パケットを生成すると共に、所定数の前記調整用パケットを生成する第1フレーム処理部と、
2番目以降の前記映像フレームのそれぞれについて、前記第1パケットを生成すると共に、当該映像フレームについての前記総数が前記1番目の前記映像フレームについての前記総数と同一になるように、前記所定数を増減した数の前記調整用パケットを生成する第2フレーム処理部と、
を備えたことを特徴とするパケット生成装置。
【請求項3】
請求項2に記載のパケット生成装置において、
前記圧縮信号生成部は、
前記映像フレームからピクチャヘッダを生成し、前記映像フレームの前記スライス毎に、スライスヘッダを生成すると共に前記圧縮信号を生成し、
前記パケット生成部の前記第1フレーム処理部は、
前記1番目の前記映像フレームについて、前記圧縮信号生成部により生成された前記ピクチャヘッダをパケット化する第1ピクチャヘッダ処理部と、
前記1番目の前記映像フレームについて、前記圧縮信号生成部により生成された前記スライスヘッダ及び前記圧縮信号をパケット化して第1-1パケットを生成する第1スライスヘッダ及びデータ処理部と、
前記1番目の前記映像フレームについて、前記所定数を決定し、当該所定数の前記調整用パケットを生成する第1調整部と、を備え、
前記パケット生成部の前記第2フレーム処理部は、
前記2番目以降の前記映像フレームのそれぞれについて、前記圧縮信号生成部により生成された前記ピクチャヘッダをパケット化する第2ピクチャヘッダ処理部と、
前記2番目以降の前記映像フレームのそれぞれについて、前記圧縮信号生成部により生成された前記スライスヘッダ及び前記圧縮信号をパケット化して第1-2パケットを生成する第2スライスヘッダ及びデータ処理部と、
前記2番目以降の前記映像フレームのそれぞれについて、前記調整用パケットを生成する第2調整部と、を備え、
前記第2調整部は、
前記第1スライスヘッダ及びデータ処理部により生成された前記第1-1パケット及び前記第1調整部により生成された前記調整用パケットの前記総数が、前記第2スライスヘッダ及びデータ処理部により生成された前記第1-2パケット及び当該第2調整部により生成される前記調整用パケットの前記総数と同一になるように、前記所定数を増減し、増減後の数の前記調整用パケットを生成する、ことを特徴とするパケット生成装置。
【請求項4】
請求項3に記載のパケット生成装置において、
前記第1調整部により決定される前記所定数を、予め設定された値とするか、または前記1番目の前記映像フレームの前記ピクチャヘッダに含まれる垂直方向のライン数(Hf)及びスライスのプレシンクト数(Hsl)に基づいて算出された値とする、ことを特徴とするパケット生成装置。
【請求項5】
コンピュータを、請求項1から4までのいずれか一項に記載のパケット生成装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像フレームの映像信号を圧縮し、圧縮信号をパケット化するパケット生成装置及びプログラムに関する。
【背景技術】
【0002】
従来、映像信号をIPパケット化して汎用のイーサネット(登録商標)ネットワーク上を伝送させるIP番組制作システムの標準化が、SMPTE(米国映画テレビ技術者協会)において進展している。
【0003】
SMPTEにより標準化された映像信号のIPパケット化規格において、圧縮した映像信号をIPパケット化して伝送するための規格が知られている(例えば非特許文献1を参照)。また、IP番組制作システムに適応する映像信号の圧縮方式に関する国際規格が標準化されている(例えば非特許文献2を参照)。
【0004】
図8は、非特許文献2のJPEG-XS規格を用いたパケット化処理を説明する図である。
図8に示すように、N番目の映像フレームは、ピクチャヘッダ、及び複数の映像ライン(以下、「ライン」という。)を圧縮単位とした領域(以下、「スライス」という。)に分けられ、圧縮処理が行われる。Nは1以上の整数である。
【0005】
そして、ピクチャヘッダ及び圧縮信号がパケット化されることで、パケットと呼ばれるデータ系列に変換される。その際に、ピクチャヘッダ及び圧縮信号は、RTPパケットのペイロードにマッピングされる。
【0006】
前述の非特許文献1のSMPTE ST2110-22規格では、1つの映像フレームから生成される圧縮信号及びパケットのデータ量、並びにパケット数(RTPパケット数)が一定となるように、圧縮化及びパケット化の制約を設けている。この制約を満たすために、パケット化処理においてはパディングを付加することでデータ量(及びパケット数)を調整することを許容している。
【先行技術文献】
【非特許文献】
【0007】
【文献】SMPTE ST2110-22
【文献】JPEG-XS
【発明の概要】
【発明が解決しようとする課題】
【0008】
前述の非特許文献1のSMPTE ST2110-22規格では、N番目の映像フレームから生成されたパケットの数と、N+1番目の映像フレームから生成されたパケットの数とは、同一でなければならない。
【0009】
しかしながら、SMPTE ST2110-22規格には、異なる映像フレームから生成されたそれぞれのパケットの数を同一にするための具体的な手法が何ら規定されていない。このため、映像フレーム毎に生成されるパケットの数を一定にするための手法が所望されていた。
【0010】
ところで、本件特許出願の同一の出願人によりなされた、本件特許出願時に未公開の特願2018-145065号公報には、映像フレームのスライスを単位としてマッピングを行う手法(以下、「スライスマッピング法」という。)が記載されている。
【0011】
このスライスマッピング法は、映像フレームのスライス毎に映像信号を圧縮し、圧縮信号をRTPパケットのペイロード部分にマッピングするものである。しかし、圧縮信号は、スライス毎に同一のデータ量にならない場合があり、スライス毎にデータ量が変わってしまうことがあり得る。そこで、スライスマッピング法では、スライス毎にパケット化を行う際に、パディングを付加することでデータ量を適切に調整している。
【0012】
スライスマッピング法によれば、複数のスライスのデータが同一のパケットにマッピングされることがないから、パケットが消失した場合には、1つのスライスのみが影響を受けることとなり、複数のスライスが影響を受けることはない。これにより、パケットの消失による映像劣化を低減することができる。
【0013】
このようなスライスマッピング法による効果を享受すると共に、前述の非特許文献1のSMPTE ST2110-22規格の制約を満たすことが所望されていた。
【0014】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、映像フレームをスライス毎に圧縮してパケットを生成する際に、映像フレーム毎に生成されるパケットの数を一定にするパケット生成装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0015】
前記課題を解決するために、請求項1のパケット生成装置は、映像フレームを圧縮した圧縮信号をパケット化するパケット生成装置において、前記映像フレームをスライス毎に圧縮し、前記スライス毎の前記圧縮信号を生成する圧縮信号生成部と、前記映像フレーム毎に、前記圧縮信号生成部により生成された前記スライス毎の前記圧縮信号をパケット化して第1パケットを生成し、所定の調整用パケットを生成するパケット生成部と、を備え、前記パケット生成部が、前記映像フレーム毎に、当該映像フレームについての前記第1パケット及び前記調整用パケットの総数が他の映像フレームについての前記総数と同一になるように、前記調整用パケットの数を増減させる、ことを特徴とする。
【0016】
また、請求項2のパケット生成装置は、請求項1に記載のパケット生成装置において、前記パケット生成部が、1番目の前記映像フレームについて、前記第1パケットを生成すると共に、所定数の前記調整用パケットを生成する第1フレーム処理部と、2番目以降の前記映像フレームのそれぞれについて、前記第1パケットを生成すると共に、当該映像フレームについての前記総数が前記1番目の前記映像フレームについての前記総数と同一になるように、前記所定数を増減した数の前記調整用パケットを生成する第2フレーム処理部と、を備えたことを特徴とする。
【0017】
また、請求項3のパケット生成装置は、請求項2に記載のパケット生成装置において、前記圧縮信号生成部が、前記映像フレームからピクチャヘッダを生成し、前記映像フレームの前記スライス毎に、スライスヘッダを生成すると共に前記圧縮信号を生成し、前記パケット生成部の前記第1フレーム処理部が、前記1番目の前記映像フレームについて、前記圧縮信号生成部により生成された前記ピクチャヘッダをパケット化する第1ピクチャヘッダ処理部と、前記1番目の前記映像フレームについて、前記圧縮信号生成部により生成された前記スライスヘッダ及び前記圧縮信号をパケット化して第1-1パケットを生成する第1スライスヘッダ及びデータ処理部と、前記1番目の前記映像フレームについて、前記所定数を決定し、当該所定数の前記調整用パケットを生成する第1調整部と、を備え、前記パケット生成部の前記第2フレーム処理部が、前記2番目以降の前記映像フレームのそれぞれについて、前記圧縮信号生成部により生成された前記ピクチャヘッダをパケット化する第2ピクチャヘッダ処理部と、前記2番目以降の前記映像フレームのそれぞれについて、前記圧縮信号生成部により生成された前記スライスヘッダ及び前記圧縮信号をパケット化して第1-2パケットを生成する第2スライスヘッダ及びデータ処理部と、前記2番目以降の前記映像フレームのそれぞれについて、前記調整用パケットを生成する第2調整部と、を備え、前記第2調整部が、前記第1スライスヘッダ及びデータ処理部により生成された前記第1-1パケット及び前記第1調整部により生成された前記調整用パケットの前記総数が、前記第2スライスヘッダ及びデータ処理部により生成された前記第1-2パケット及び当該第2調整部により生成される前記調整用パケットの前記総数と同一になるように、前記所定数を増減し、増減後の数の前記調整用パケットを生成する、ことを特徴とする。
【0018】
また、請求項4のパケット生成装置は、請求項3に記載のパケット生成装置において、前記第1調整部により決定される前記所定数を、予め設定された値とするか、または前記1番目の前記映像フレームの前記ピクチャヘッダに含まれる垂直方向のライン数(Hf)及びスライスのプレシンクト数(Hsl)に基づいて算出された値とする、ことを特徴とする。
【0019】
さらに、請求項5のプログラムは、コンピュータを、請求項1から4までのいずれか一項に記載のパケット生成装置として機能させることを特徴とする。
【発明の効果】
【0020】
以上のように、本発明によれば、映像フレームをスライス毎に圧縮してパケットを生成する際に、映像フレーム毎に生成されるパケットの数を一定にすることができる。
【図面の簡単な説明】
【0021】
【
図1】本発明の実施形態によるパケット生成装置の構成を示すブロック図である。
【
図2】圧縮信号生成部の処理を説明するフローチャートである。
【
図3】パケット生成部の構成を示すブロック図である。
【
図4】パケット生成部の処理を示すフローチャートである。
【
図5】1番目の映像フレームの処理(ステップS403)を示すフローチャートである。
【
図6】2番目以降の映像フレームの処理(ステップS404)を示すフローチャートである。
【
図7】調整用パケット増減処理(ステップS618)を示すフローチャートである。
【
図8】従来のJPEG-XS規格を用いたパケット化処理を説明する図である。
【発明を実施するための形態】
【0022】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、圧縮した映像信号をパケット化するスライスマッピング法において、所定の映像フレームについて、所定数の調整用パケットを生成し、他の映像フレームについて、所定数の調整用パケットを増減することを特徴とする。
【0023】
これにより、映像フレームをスライス毎に圧縮してパケットを生成する際に、映像フレーム毎のパケットの数を一定にすることができる。
【0024】
〔パケット生成装置〕
図1は、本発明の実施形態によるパケット生成装置の構成を示すブロック図である。このパケット生成装置1は、圧縮信号生成部10及びパケット生成部11を備えている。
【0025】
圧縮信号生成部10は、例えばカメラから、映像フレームを単位として映像データを入力する。そして、圧縮信号生成部10は、映像フレーム毎に、当該映像フレームに基づいてピクチャヘッダを生成すると共に、映像フレームをスライス毎の映像データ(以下、「スライスデータ」という。)に分ける。
【0026】
圧縮信号生成部10は、スライス毎に、当該スライスのスライスデータに基づいてスライスヘッダを生成すると共に、JPEG-XS規格に従い、スライスデータを圧縮して圧縮信号を生成する。
【0027】
圧縮信号生成部10は、映像フレーム毎に、ピクチャヘッダ並びにスライス毎のスライスヘッダ及び圧縮信号をパケット生成部11に出力する。
【0028】
パケット生成部11は、圧縮信号生成部10から映像フレーム毎に、ピクチャヘッダ並びにスライス毎のスライスヘッダ及び圧縮信号を入力する。そして、パケット生成部11は、映像フレーム毎に、ピクチャヘッダをパケット化すると共に、当該映像フレームにおけるスライス毎に、スライスヘッダ及び圧縮信号をパケット化し、パケット(生成パケット)を生成する。また、パケット生成部11は、所定の調整データをパケット化し、調整用パケットを生成する。
【0029】
ここで、パケット生成部11は、SMPTE ST2110-22規格の制約に従うように、当該パケット生成部11の処理を監視する。すなわち、パケット生成部11は、当該映像フレームにおけるスライスヘッダ及び圧縮信号を含む全てのパケットの数と、1番目の映像フレームにおけるスライスヘッダ及び圧縮信号を含む全てのパケットの数とを比較し、両パケット数が同一であるか否かを監視する。パケット生成部11は、パケット数が同一でないと判定した場合、パケット数が同一になるように、当該映像フレームについて、その差分に相当する調整用パケットの数を調整する。
【0030】
具体的には、パケット生成部11は、当該映像フレームについてのスライスヘッダ等から生成された生成パケット及び調整用パケットの総数(合計数)が、1番目の映像フレームについてのスライスヘッダ等から生成された生成パケット及び調整用パケットの総数と同一になるように、調整用パケット数を決定する。そして、パケット生成部11は、当該調整用パケット数の調整用パケットを生成する。
【0031】
当該映像フレームについての前記総数を、1番目の映像フレームについての前記総数と同一にすることで、SMPTE ST2110-22規格の制約に従うことができる。
【0032】
尚、ピクチャヘッダを含む生成パケットの数は、当該映像フレームと1番目の映像フレームとの間で同一であるため、ここでは総数から除外してある。パケット生成部11は、当該映像フレームと1番目の映像フレームとの間で、ピクチャヘッダを含む生成パケット、スライスヘッダ等を含む生成パケット及び調整用パケットの総数が同一になるように、調整用パケット数を決定するようにしてもよい。
【0033】
パケット生成部11は、映像フレーム毎に、生成パケット及び調整用パケットを送信する。生成パケットには、ピクチャヘッダを含むパケット、スライスヘッダ及び圧縮信号を含むパケット、並びに圧縮信号を含むパケットの3種類がある。
【0034】
(圧縮信号生成部10)
次に、
図1に示した圧縮信号生成部10の詳細について説明する。
図2は、圧縮信号生成部10の処理を説明するフローチャートである。
【0035】
圧縮信号生成部10は、映像フレームを構成する映像データを順次入力し(ステップS201)、映像フレームを単位として、以下のステップS202~S208の処理を行う。
【0036】
圧縮信号生成部10は、順次入力した映像フレームの映像データが、映像フレームの先頭であるか否かを判定する(ステップS202)。
【0037】
圧縮信号生成部10は、ステップS202において、映像データが映像フレームの先頭でないと判定した場合(ステップS202:N)、当該処理を終了し、次の映像フレームの先頭となるまで待つ。
【0038】
圧縮信号生成部10は、ステップS202において、映像データが映像フレームの先頭であると判定した場合(ステップS202:Y)、映像フレームの先頭を検出したとして、当該映像フレームに基づいて、ピクチャヘッダを生成する。そして、圧縮信号生成部10は、ピクチャヘッダをパケット生成部11に出力する(ステップS203)。
【0039】
ピクチャヘッダは、サンプルグリッド位置における画像の幅(映像フレームの水平方向のサンプル数)(Wf)、サンプルグリッド位置における画像の高さ(映像フレームの垂直方向のライン数)(Hf)、最後のスライス以外のプレシンクトにおけるスライスの高さ(スライスのプレシンクト数)(Hsl)等により構成される。尚、映像フレームのピクチャヘッダの詳細については、以下の文献の第18頁に記載されたテーブルA.6を参照されたい。
[非特許文献] INTERNATIONAL STANDARD ISO/IEC21122-1, Information technology-JPEG XS low-latency lightweight image coding system-Part1:Core coding system, Reference number ISO/IEC21122-1:2019(E)
【0040】
パケット生成装置1から送信されたパケットを受信する受信装置は、このピクチャヘッダの情報に基づいて、映像フレームを復元する。
【0041】
圧縮信号生成部10は、ステップS203から移行して、映像フレーム内の所定数のライン毎に、映像データをスライス化する(ステップS204)。つまり、圧縮信号生成部10は、所定数のラインを1スライスとして、スライス毎に、ステップS204~S208の処理を行う。スライス化した所定数のラインの映像データをスライスデータとする。
【0042】
圧縮信号生成部10は、スライスデータに基づいてスライスヘッダを生成し、スライスヘッダをパケット生成部11に出力する(ステップS205)。
【0043】
圧縮信号生成部10は、スライス毎のスライスデータを圧縮して圧縮信号を生成し(ステップS206)、圧縮信号をパケット生成部11に出力する(ステップS207)。
【0044】
圧縮信号生成部10は、入力した映像フレームについて、全スライスの処理が完了したか否かを判定する(ステップS208)。圧縮信号生成部10は、ステップS208において、全スライスの処理が完了していないと判定した場合(ステップS208:N)、ステップS204へ移行し、次のスライスについてステップS204~S208の処理を行う。
【0045】
一方、圧縮信号生成部10は、ステップS208において、全スライスの処理が完了したと判定した場合(ステップS208:Y)、当該映像フレームの処理を終了する。そして、圧縮信号生成部10は、次の映像フレームの処理を行う。
【0046】
このように、映像フレームを単位としてステップS201~S208の処理が行われ、スライスを単位としてステップS204~S208の処理が行われる。また、圧縮処理はスライスを単位として行われ、圧縮信号が生成される。そして、1映像フレーム内において、そのピクチャヘッダ並びにスライス毎の(全てのスライスの)スライスヘッダ及び圧縮信号がパケット生成部11に出力される。
【0047】
(パケット生成部11)
次に、
図1に示したパケット生成部11の詳細について説明する。
図3は、パケット生成部11の構成を示すブロック図であり、
図4は、パケット生成部11の処理を示すフローチャートである。
【0048】
このパケット生成部11は、第1フレーム処理部20及び第2フレーム処理部21を備えている。第1フレーム処理部20は、ピクチャヘッダ処理部30-1、スライスヘッダ及びデータ処理部31-1、及び調整部32-1を備えている。調整部32-1は、調整用パケット数決定部33及び調整用パケット生成部34を備えている。
【0049】
第2フレーム処理部21は、ピクチャヘッダ処理部30-2、スライスヘッダ及びデータ処理部31-2、及び調整部32-2を備えている。調整部32-2は、調整用パケット数確認部35及び調整用パケット増減部36を備えている。
【0050】
パケット生成部11は、映像フレーム毎に、以下のステップS401~S404の処理を行う。具体的には、パケット生成部11は、圧縮信号生成部10から映像フレーム毎に、ピクチャヘッダ並びにスライス毎のスライスヘッダ及び圧縮信号を入力する(ステップS401)。パケット生成部11は、入力したピクチャヘッダ等の映像フレームが、パケット送信が開始される1番目の映像フレームであるか否かを判定する(ステップS402)。
【0051】
パケット生成部11は、ステップS402において、入力した映像フレームが1番目の映像フレームであると判定した場合(ステップS402:Y)、1番目の映像フレームの処理を行う(ステップS403)。1番目の映像フレームの処理は、第1フレーム処理部20により行われる。1番目の映像フレームの処理(ステップS403)の詳細については後述する。
【0052】
パケット生成部11は、ステップS402において、入力した映像フレームが1番目の映像フレームでないと判定した場合(ステップS402:N)、2番目以降の映像フレームの処理を行う(ステップS404)。2番目以降の映像フレームの処理は、第2フレーム処理部21により行われる。2番目以降の映像フレームの処理(ステップS404)の詳細については後述する。
【0053】
前述のとおり、パケット生成部11は、SMPTE ST2110-22規格の制約に従うように、当該パケット生成部11の処理を監視する。前述のとおり、圧縮信号生成部10により、映像フレームのスライス毎にスライスデータが圧縮され圧縮信号が生成される。この場合、圧縮信号のデータ量は、スライス毎に異なることがあり得る。そうすると、パケット数が映像フレーム毎に変化することとなり、SMPTE ST2110-22規格の制約に従うためには、映像フレーム間でパケット数の調整が必要となる。
【0054】
そこで、パケット生成部11は、前述のとおり、スライスマッピング法にて生成するパケット数を映像フレーム間で一定にすべく、調整用パケットの数を調整する。具体的には、ステップS403による1番目の映像フレームの処理と、ステップS404による2番目以降の映像フレームの処理とを異なるようにし、1番目の映像フレームの処理にて決定した調整用パケットの数を基準にして、2番目以降の映像フレームの処理にて調整用パケットの数を増減する。
【0055】
(第1フレーム処理部20)
次に、第1フレーム処理部20による1番目の映像フレームの処理(ステップS403)について説明する。
図5は、1番目の映像フレームの処理(ステップS403)を示すフローチャートである。
【0056】
図4のステップS402において1番目の映像フレームであると判定された場合、第1フレーム処理部20は、圧縮信号生成部10から入力されたデータがピクチャヘッダであるか否かを判定する(ステップS501)。
【0057】
第1フレーム処理部20は、ステップS501において、圧縮信号生成部10から入力されたデータがピクチャヘッダであると判定した場合(ステップS501:Y)、ステップS502へ移行する。一方、第1フレーム処理部20は、ステップS501において、圧縮信号生成部10から入力されたデータがピクチャヘッダでないと判定した場合(ステップS501:N)、すなわち当該データがスライスヘッダまたは圧縮信号であると判定した場合、ステップS507へ移行する。
【0058】
第1フレーム処理部20の調整部32-1に備えた調整用パケット数決定部33は、ステップS501(Y)から移行して、ピクチャヘッダから映像フレームの垂直方向のライン数(Hf)及びスライスのプレシンクト数(Hsl)を取得する(ステップS502)。
【0059】
ここで、プレシンクトは、圧縮処理における最小単位であり、1プレシンクトあたりのライン数が予め設定されているものとする。例えば、1スライスがライン数32からなり、1プレシンクトがライン数2からなる場合、スライスのプレシンクト数(Hsl)は16である。
【0060】
調整用パケット数決定部33は、映像フレームの垂直方向のライン数(Hf)及びスライスのプレシンクト数(Hsl)を用いて、以下の式にて演算を行い、映像フレーム内のスライス数またはプレシンクト数に対応する値を示す調整用パケット数Adjを求める。そして、調整用パケット数決定部33は、調整用パケット数Adjを第2フレーム処理部21の調整部32-2に備えた調整用パケット数確認部35に出力する(ステップS503)。
[数1]
Adj=floor(Hf/Hsl) ・・・(1)
【0061】
尚、調整用パケット数決定部33は、スライスのプレシンクト数(Hsl)をライン数に換算し、映像フレーム内のスライス数を示す調整用パケット数Adjを求めるようにしてもよい。具体的には、調整用パケット数決定部33は、スライスのプレシンクト数(Hsl)に、予め設定された1プレシンクトあたりのライン数を乗算することで、スライスのライン数(Hsl’)を求める。そして、調整用パケット数決定部33は、Hslの代わりにHsl’を用いた前記式(1)にて、映像フレーム内のスライス数を示す調整用パケット数Adjを求める。
【0062】
これにより、後述する調整用パケット生成部34により、映像フレーム内のスライス数に相当する調整用パケットが生成され、後述する第2フレーム処理部21により、映像フレーム内のスライス数を基準に調整用パケットが増減することとなる。
【0063】
ここで、圧縮信号生成部10によるJPEG-XS規格を用いた圧縮処理では、スライス毎に圧縮処理が行われるため、圧縮信号の長さはスライス毎に異なることとなり得るが、その差は1パケット分となる。つまり、第1フレーム処理部20により1番目の映像フレームについて生成されるパケットの数と、後述する第2フレーム処理部21により2番目以降の映像フレームについて生成されるパケットの数との間の差は、最大で映像フレーム内のスライス数となる。
【0064】
したがって、後述する第2フレーム処理部21は、映像フレーム内のスライス数を示す調整用パケット数Adjを用いることで、最大で、映像フレーム内のスライス数の調整用パケットを増減することができる。すなわち、後述する第2フレーム処理部21は、ST2110-22規格の制約を満たすために、1番目の映像フレームについて生成されるパケットの数と、2番目以降の映像フレームについて生成されるパケットの数とが同一になるように、調整用パケットを増減することができる。
【0065】
このように、調整用パケット数決定部33が映像フレーム内のスライス数を示す調整用パケット数Adjを求めることで、ST2110-22規格の制約を満たすための最小数の調整用パケットの生成処理、調整処理及び送信処理が行われることとなる。つまり、パケット生成装置1による処理及び伝送の効率化を図ることができる。
【0066】
また、前記式(1)はfloor関数を用いた式であるが、ceiling関数を用いるようにしてもよいし、他の関数を用いるようにしてもよい。
【0067】
ピクチャヘッダ処理部30-1は、ステップS503から移行して、ピクチャヘッダをRTPペイロードにマッピングし(ステップS504)、UDP、IP及びMAC処理によるパケット化処理を行うことで、パケットを生成する(ステップS505)。ピクチャヘッダ処理部30-1は、生成したパケットを生成パケットとして送信し(ステップS506)、ステップS507へ移行する。
【0068】
スライスヘッダ及びデータ処理部31-1は、ステップS501(N),S506または後述するステップS511から移行して、圧縮信号生成部10から入力したスライス毎のスライスヘッダ及び圧縮信号について、スライス毎にステップS507~S511の処理を行う。
【0069】
具体的には、スライスヘッダ及びデータ処理部31-1は、当該スライスにおけるスライスヘッダ及び圧縮信号をRTPペイロードにマッピングする(ステップS507)。そして、スライスヘッダ及びデータ処理部31-1は、UDP、IP及びMAC処理によるパケット化処理を行うことで、パケットを生成する(ステップS508)。スライスヘッダ及びデータ処理部31-1は、生成したパケットを生成パケットとして送信する(ステップS509)。
【0070】
スライスヘッダ及びデータ処理部31-1は、当該映像フレームについて、全スライスの処理が完了したか否かを判定する(ステップS510)。スライスヘッダ及びデータ処理部31-1は、ステップS510において、全スライスの処理が完了していないと判定した場合(ステップS510:N)、次のスライスについて(ステップS511)、ステップS507~S510の処理を行う。
【0071】
一方、スライスヘッダ及びデータ処理部31-1は、当該映像フレームについて、全スライスの処理が完了したと判定した場合(ステップS510:Y)、ステップS512へ移行する。
【0072】
第1フレーム処理部20の調整部32-1に備えた調整用パケット生成部34は、スライスヘッダ及びデータ処理部31-1によりステップS507~S511にて映像フレームの全スライスのパケット化処理が完了した後、当該映像フレームについて生成されたスライスヘッダ及び圧縮信号のパケットの総数を取得する(ステップS512)。当該映像フレームについて取得したスライスヘッダ等のパケットの総数をNpacket_first_tmpとする。
【0073】
調整用パケット生成部34は、以下の式にて、スライスヘッダ等のパケットの総数Npacket_first_tmpに調整用パケット数Adjを加算することで、スライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstを求める。
[数2]
Npacket_first=Npacket_first_tmp+Adj ・・・(2)
【0074】
調整用パケット生成部34は、スライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstを第2フレーム処理部21の調整部32-2に備えた調整用パケット増減部36に出力する(ステップS513)。
【0075】
調整用パケット生成部34は、予め設定された調整データをRTPペイロードにマッピングする(ステップS514)。そして、調整用パケット生成部34は、UDP、IP及びMAC処理により、調整用パケット数Adj個分のパケット化処理を行い、調整用パケット数Adj個分のパケットを生成する(ステップS515)。調整用パケット生成部34は、生成したパケットを調整用パケットとして送信する(ステップS516)。
【0076】
予め設定された調整データは、RFC3550規格に示される0の値のパディングデータの集合(パディングデータ群)とする。調整用パケット生成部34は、調整用パケットを生成する際に、当該調整用パケットであるRTPパケットにパディングデータが含まれることを示すために、RTPヘッダのパディングフラグPを1に設定する。
【0077】
尚、本発明の実施形態を、前述の本件特許出願時に未公開の特願2018-145065号公報の技術に適用した場合、パディングフラグPが1に設定されるパケットには、同一パケットに圧縮信号及びパディングデータを含むパケットと、パディングデータのみを含む調整用パケットの2種類が存在することになる。
【0078】
この場合、受信装置がこれらの2種類のパケットを識別できるようにするため、調整用パケット生成部34及び後述する調整用パケット増減部36は、パディングデータ群の末尾に当該パディングデータの数を設定する。
【0079】
受信装置は、パディングデータの末尾に設定された数が、RTPペイロードにマッピングされた全パディングデータの数(予め設定された数)に一致する場合、受信したパケットが調整用パケットであると識別する。一方、受信装置は、前記数が一致しない場合、圧縮信号及びパディングデータを含むパケットであると識別する。
【0080】
このように、第1フレーム処理部20は、1番目の映像フレームについて、ピクチャヘッダを含むパケットを生成して送信すると共に、ピクチャヘッダに含まれる情報に基づいて調整用パケット数Adjを決定する。そして、第1フレーム処理部20は、スライスヘッダ及び圧縮信号を含むパケット、並びに圧縮信号を含むパケットを生成して送信する。
【0081】
第1フレーム処理部20は、スライスヘッダ等のパケットの総数Npacket_first_tmpを取得し、これに調整用パケット数Adjを加算することで、スライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstを求める。また、第1フレーム処理部20は、調整用パケット数Adj分の調整用パケットを生成して送信する。
【0082】
これにより、1番目の映像フレームに基づいて、調整用パケット数Adj、並びにスライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstが得られる。また、第1フレーム処理部20から、1番目の映像フレームについて、ピクチャヘッダを含む生成パケット、スライスヘッダ及び圧縮信号を含む生成パケット、圧縮信号を含む生成パケット、並びに調整用パケット数Adj個分の調整用パケットが送信される。
【0083】
(第2フレーム処理部21)
次に、第2フレーム処理部21による2番目以降の映像フレームの処理(ステップS404)について説明する。
図6は、2番目以降の映像フレームの処理(ステップS404)を示すフローチャートである。
【0084】
図4のステップS402において1番目の映像フレームでない(2番目以降の映像フレームである)と判定された場合、第2フレーム処理部21は、第1フレーム処理部20から調整用パケット数Adj、並びにスライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstを入力する(ステップS601)。
【0085】
第2フレーム処理部21は、
図5のステップS501の処理と同様に、圧縮信号生成部10から入力されたデータがピクチャヘッダであるか否かを判定する(ステップS602)。
【0086】
第2フレーム処理部21の調整部32-2に備えた調整用パケット数確認部35は、
図5のステップS502,S503と同様の処理を行う(ステップS603,S604)。この場合、調整用パケット数確認部35は、以下の式にて、映像フレーム内のスライス数を示す調整用パケット数Adj_chkを算出する。
[数3]
Adj_chk=floor(Hf/Hsl) ・・・(3)
【0087】
調整用パケット数確認部35は、第1フレーム処理部20の調整部32-1に備えた調整用パケット数決定部33から入力した調整用パケット数Adjを用いて、Adj=Adj_chkであることを確認する(ステップS605)。
【0088】
ここで、調整用パケット数確認部35は、Adj≠Adj_chkである場合、映像フレームの信号形式(例えばピクチャヘッダに含まれる垂直方向のライン数(Hf)、スライスのプレシンクト数(Hsl)等)が変更されたものと判断する。そして、調整用パケット数確認部35は、処理をリセットして所定の異常処理を行う。
【0089】
例えば、調整用パケット数確認部35により処理がリセットされると、第1フレーム処理部20は、調整用パケット数確認部35により算出された調整用パケット数Adj_chkを、調整用パケット数決定部33が決定する調整用パケット数Adjとして、当該映像フレーム(第2フレーム処理部21により処理していた2番目以降の映像フレーム)を1番目の映像フレームとして、前述の処理を行う。
【0090】
これにより、映像フレームの信号形式が変更された場合であっても、パケット生成装置1によるパケット生成処理を中断することなく、継続することができる。
【0091】
ピクチャヘッダ処理部30-2は、ステップS605から移行して、
図5のステップS504~S506と同様の処理を行い、ピクチャヘッダを含む生成パケットを送信し(ステップS606~S608)、ステップS609へ移行する。
【0092】
スライスヘッダ及びデータ処理部31-2は、ステップS602(N),S608または後述するステップS613から移行して、圧縮信号生成部10から入力したスライス毎のスライスヘッダ及び圧縮信号について、スライス毎にステップS609~S613の処理を行う。
【0093】
具体的には、スライスヘッダ及びデータ処理部31-2は、
図5のステップS507~S511と同様の処理を行い、スライス毎に、スライスヘッダ及び圧縮信号を含む生成パケットを送信する(ステップS609~S613)。
【0094】
第2フレーム処理部21の調整部32-2に備えた調整用パケット増減部36は、
図5のステップS512の処理と同様に、スライスヘッダ等のパケットの総数Npacket_tmpを取得する(ステップS614)。
【0095】
調整用パケット増減部36は、
図5のステップS513の処理と同様に、以下の式にて、スライスヘッダ等のパケットの総数Npacket_tmpに調整用パケット数Adjを加算することで、スライスヘッダ等のパケット及び調整用パケットの総数Npacketを求める(ステップS615)。
[数4]
Npacket=Npacket_tmp+Adj ・・・(4)
【0096】
調整用パケット増減部36は、
図5のステップS514,S515と同様の処理を行い、調整用パケット数Adj個分の調整用パケットを生成する(ステップS616,S617)。そして、調整用パケット増減部36は、調整用パケット増減処理を行う(ステップS618)。
【0097】
図7は、調整用パケット増減処理(ステップS618)を示すフローチャートである。調整用パケット増減部36は、第1フレーム処理部20の調整部32-1に備えた調整用パケット生成部34から入力したスライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstを用いて、1番目の映像フレームについてのスライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstと2番目以降の当該映像フレームについてのスライスヘッダ等のパケット及び調整用パケットの総数Npacketとを比較する(ステップS701)。
【0098】
調整用パケット増減部36は、ステップS701において、Npacket_firstがNpacketよりも大きいと判定した場合(ステップS701:Npacket_first>Npacket)、ステップS702~S704にて、調整用パケットを増加させる処理を行う。
【0099】
具体的には、調整用パケット増減部36は、予め設定された調整データをRTPペイロードにマッピングする(ステップS702)。そして、調整用パケット増減部36は、UDP、IP及びMAC処理により、1個分のパケット化処理を行い、生成済みの調整用パケットに対して1個分の調整用パケットを追加する(ステップS703)。調整用パケット増減部36は、Npacketを1つだけインクリメントし(ステップS704)、ステップS701へ移行する。これにより、後述するステップS619にて送信される調整用パケットの数が増加する。
【0100】
一方、調整用パケット増減部36は、ステップS701において、Npacket_firstがNpacketよりも小さいと判定した場合(ステップS701:Npacket_first<Npacket)、ステップS705,S706にて、調整用パケットを減少させる処理を行う。
【0101】
具体的には、調整用パケット増減部36は、生成済みの調整用パケットから1個分の調整用パケットを削減し(ステップS705)、Npacketを1つだけデクリメントし(ステップS706)、ステップS701へ移行する。これにより、後述するステップS619にて送信される調整用パケットの数が減少する。
【0102】
一方、調整用パケット増減部36は、ステップS701において、Npacket_first及びNpacketが等しいと判定した場合(ステップS701:Npacket_first=Npacket)、当該処理を終了する。
【0103】
このように、生成済みの調整用パケット数Adj個分の調整用パケットを基準にして、Npacket_first=Npacketが判定されるまで、調整用パケットの増減処理が行われる。
【0104】
図6に戻って、調整用パケット増減部36は、ステップS618から移行して、調整用パケット増減処理後の調整用パケットを送信する(ステップS619)。
【0105】
このように、第2フレーム処理部21は、2番目以降の映像フレームのそれぞれについて、ピクチャヘッダを含むパケットを生成して送信すると共に、ピクチャヘッダに含まれる情報に基づいて調整用パケット数Adj_chkを決定する。そして、第2フレーム処理部21は、1番目の映像フレームの調整用パケット数Adjと2番目以降の調整用パケット数Adj_chkとが同じであることを確認する。
【0106】
第2フレーム処理部21は、スライスヘッダ及び圧縮信号を含むパケット並びに圧縮信号を含むパケットを生成して送信する。そして、第2フレーム処理部21は、スライスヘッダ等のパケットの総数Npacket_tmpを取得し、これに調整用パケット数Adjを加算することで、スライスヘッダ等のパケット及び調整用パケットの総数Npacketを求める。また、第2フレーム処理部21は、調整用パケット数Adj分の調整用パケットを生成する。
【0107】
第2フレーム処理部21は、Npacket_first>Npacketの場合、調整用パケット数Adjの調整用パケットにこの差分の調整用パケットを追加し、調整用パケット数Adjに差分を加えた数(Adj+Npacket_first-Npacket)の調整用パケットを送信する。
【0108】
一方、第2フレーム処理部21は、Npacket_first<Npacketの場合、調整用パケット数Adjの調整用パケットからこの差分の調整用パケットを減少し、調整用パケット数Adjから差分を減算した数(Adj-(Npacket-Npacket_first))の調整用パケットを送信する。
【0109】
これにより、2番目以降の映像フレームに基づいて、調整用パケット数Adj_chk、並びにスライスヘッダ等のパケット及び調整用パケットの総数Npacketが得られる。また、第2フレーム処理部21から、2番目以降の映像フレームについて、ピクチャヘッダを含む生成パケット、スライスヘッダ及び圧縮信号を含む生成パケット、圧縮信号を含む生成パケット、並びに(Adj+Npacket_first-Npacket)個または(Adj-(Npacket-Npacket_first))個分の調整用パケットが送信される。
【0110】
つまり、1番目の映像フレームについて送信されるパケットの数と、2番目以降の映像フレームについて送信されるパケットの数とが同一になり、ST2110-22規格の制約を満たすパケット送信が可能となる。
【0111】
以上のように、本発明の実施形態のパケット生成装置1によれば、第1フレーム処理部20は、1番目の映像フレームについて、ピクチャヘッダを含むパケットを生成して送信すると共に、スライスヘッダ及び圧縮信号を含むパケット並びに圧縮信号を含むパケットを生成して送信する。また、第1フレーム処理部20は、ピクチャヘッダに含まれる情報に基づいて調整用パケット数Adjを決定し、調整用パケット数Adj分の調整用パケットを生成して送信する。
【0112】
第1フレーム処理部20は、スライスヘッダ等のパケットの総数Npacket_first_tmpを取得し、これに調整用パケット数Adjを加算することで、スライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstを求める。
【0113】
これにより、第1フレーム処理部20により求めたスライスヘッダ等のパケット及び調整用パケットの総数Npacket_firstを基準にして、第2フレーム処理部21により2番目以降の映像フレームについて生成され送信される調整用パケットの数が調整される。
【0114】
第2フレーム処理部21は、2番目以降の映像フレームについて、ピクチャヘッダを含むパケットを生成して送信すると共に、スライスヘッダ及び圧縮信号を含むパケット並びに圧縮信号を含むパケットを生成して送信する。
【0115】
第2フレーム処理部21は、スライスヘッダ等のパケットの総数Npacket_tmpを取得し、これに調整用パケット数Adjを加算することで、スライスヘッダ等のパケット及び調整用パケットの総数Npacketを求める。
【0116】
第2フレーム処理部21は、調整用パケット数Adj個分の調整用パケットに対して、Npacket_firstとNpacketとの間の差分の調整用パケットを増減させ、増減後の調整用パケットを送信する。
【0117】
これにより、1番目の映像フレームについて送信されるパケットの数と、2番目以降の映像フレームについて送信されるパケットの数とが同一になり、ST2110-22規格の制約を満たすパケット送信が可能となる。したがって、映像フレームをスライス毎に圧縮してパケットを生成する際に、映像フレーム毎に生成されるパケットの数を一定にすることができる。
【0118】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
【0119】
前記実施形態では、パケット生成装置1のパケット生成部11は、1番目の映像フレームについて生成したパケットの数と、2番目以降の映像フレームについて生成したパケットの数とが同一になるように、2番目以降の映像フレームの調整用パケットの数を調整するようにした。
【0120】
これに対し、パケット生成部11は、当該映像フレームよりも前の映像フレームについて生成したパケットの数と、当該映像フレームについて生成したパケットの数とが同一になるように、当該映像フレームの調整用パケットの数を調整するようにしてもよい。
【0121】
例えばパケット生成部11は、n番目の映像フレームについて生成したパケットの数と、n+1番目の映像フレームについて生成したパケットの数とが同一になるように、n+1番目の映像フレームの調整用パケットの数を調整する。nは1以上の整数である。また、例えばパケット生成部11は、当該映像フレームよりも前の予め設定された所定番目の映像フレームについて生成したパケットの数と、当該映像フレームについて生成したパケットの数とが同一になるように、当該映像フレームの調整用パケットの数を調整する。
【0122】
尚、本発明の実施形態によるパケット生成装置1のハードウェア構成としては、通常のコンピュータを使用することができる。パケット生成装置1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
【0123】
パケット生成装置1に備えた第1フレーム処理部20(ピクチャヘッダ処理部30-1、スライスヘッダ及びデータ処理部31-1並びに調整部32-1(調整用パケット数決定部33及び調整用パケット生成部34))、及び、第2フレーム処理部21(ピクチャヘッダ処理部30-2、スライスヘッダ及びデータ処理部31-2並びに調整部32-2(調整用パケット数確認部35及び調整用パケット増減部36))の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
【0124】
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【0125】
1 パケット生成装置
10 圧縮信号生成部
11 パケット生成部
20 第1フレーム処理部
21 第2フレーム処理部
30 ピクチャヘッダ処理部
31 スライスヘッダ及びデータ処理部
32 調整部
33 調整用パケット数決定部
34 調整用パケット生成部
35 調整用パケット数確認部
36 調整用パケット増減部
Adj,Adj_chk 調整用パケット数
Wf 映像フレームの水平方向のサンプル数
Hf 映像フレームの垂直方向のライン数
Hsl スライスのプレシンクト数
Hsl’ スライスのライン数
Npacket_first_tmp,Npacket_tmp スライスヘッダ等のパケットの総数
Npacket_first,Npacket スライスヘッダ等のパケット及び調整用パケットの総数