IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 沖電気工業株式会社の特許一覧

<>
  • 特許-処理装置、処理プログラム及び処理方法 図1
  • 特許-処理装置、処理プログラム及び処理方法 図2
  • 特許-処理装置、処理プログラム及び処理方法 図3
  • 特許-処理装置、処理プログラム及び処理方法 図4
  • 特許-処理装置、処理プログラム及び処理方法 図5
  • 特許-処理装置、処理プログラム及び処理方法 図6
  • 特許-処理装置、処理プログラム及び処理方法 図7
  • 特許-処理装置、処理プログラム及び処理方法 図8
  • 特許-処理装置、処理プログラム及び処理方法 図9
  • 特許-処理装置、処理プログラム及び処理方法 図10
  • 特許-処理装置、処理プログラム及び処理方法 図11
  • 特許-処理装置、処理プログラム及び処理方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】処理装置、処理プログラム及び処理方法
(51)【国際特許分類】
   H04N 19/40 20140101AFI20221109BHJP
   H04N 7/18 20060101ALI20221109BHJP
   H04N 21/231 20110101ALI20221109BHJP
   H04N 21/234 20110101ALI20221109BHJP
【FI】
H04N19/40
H04N7/18 D
H04N21/231
H04N21/234
【請求項の数】 7
(21)【出願番号】P 2018033423
(22)【出願日】2018-02-27
(65)【公開番号】P2019149699
(43)【公開日】2019-09-05
【審査請求日】2020-11-11
(73)【特許権者】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100180275
【弁理士】
【氏名又は名称】吉田 倫太郎
(74)【代理人】
【識別番号】100161861
【弁理士】
【氏名又は名称】若林 裕介
(72)【発明者】
【氏名】宮崎 朋博
(72)【発明者】
【氏名】畠中 啓
【審査官】鉢呂 健
(56)【参考文献】
【文献】特開2006-033151(JP,A)
【文献】特開平08-032947(JP,A)
【文献】特開2002-158969(JP,A)
【文献】米国特許出願公開第2016/0029076(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
H04N 7/18
H04N 21/231
H04N 21/234
(57)【特許請求の範囲】
【請求項1】
可逆符号化で符号化され、かつキーフレームの挿入周期が変更されたコンテンツについて複数に分割されたセグメントであり、所定数のフレームを有するセグメントを入力する入力処理手段と、
上記入力処理手段により入力されたセグメントのうち、非キーフレームで構成される第1セグメントについて、当該第1セグメントより1つ前のセグメントを含む1又は複数のセグメントであり、当該1又は複数のセグメントにおける一番前のセグメントにおいてキーフレームを有するセグメントの復号結果を参照して可逆符号化を行ない、当該第1セグメントより1つ前のセグメントにおいて終端のフレームを有する複数のフレームをキーフレームとするキーセグメントを生成する生成処理手段と、
上記生成処理手段により生成された上記キーセグメントと、上記第1セグメントより1つ後の非キーフレームで構成される第2セグメントとを出力する出力処理手段と
を備えることを特徴とする処理装置。
【請求項2】
上記生成処理手段により生成された上記キーセグメントについて、時刻情報、キーフラグ情報、セグメントシーケンス番号を有する付加情報と共に所定時間保存するキーセグメント保存手段を備えることを特徴とする請求項1に記載の処理装置。
【請求項3】
上記入力処理手段により入力されたセグメントを、上記付加情報と共に蓄積するセグメント蓄積手段を備え、
上記出力処理手段が、最新コンテンツの取得要求情報を受信すると、上記キーセグメント保存手段に保存される最新のキーセグメントと、上記セグメント蓄積手段に蓄積される、上記最新のキーセグメントに後続するセグメントとを要求元の装置に出力する
ことを特徴とする請求項2に記載の処理装置。
【請求項4】
上記入力処理手段により入力されたセグメントを、上記付加情報と共に蓄積するセグメント蓄積手段を備え、
上記生成処理手段が、
取得するコンテンツの時間範囲が指定された取得要求情報を受信すると、開始時刻より過去であって直近のキーフレームを含むセグメントを上記セグメント蓄積手段から検索し、
上記キーセグメント保存手段を参照して、上記直近のキーフレームを含むセグメントから上記開始時刻を含むセグメントまでの間に、キーセグメントが存在しているかを検索し、
上記キーセグメント保存手段に上記キーセグメントがある場合、上記キーセグメントの全フレームを復号し、更に上記セグメント蓄積手段から取得した、上記キーセグメントに後続する、上記開始時刻を含むセグメントの直前のセグメントまでのセグメントのフレームを復号し、上記直前のセグメントのフレームの復号結果を参照して可逆符号化を行ない、上記開始時刻におけるキーフレームを含むキーセグメントを生成して、上記キーセグメント保存手段に保存し、
上記出力処理手段は、上記キーセグメント保存手段に保存されている上記開始時刻におけるキーフレームを含むキーセグメントと、上記セグメント蓄積手段に蓄積される、上記開始時刻におけるキーフレームを含むキーセグメントに後続する終了時刻までの全てのセグメントとを要求元の装置に出力する
ことを特徴とする請求項2に記載の処理装置。
【請求項5】
上記生成処理手段が、上記非キーフレームの前方参照フレーム数の上限値を設けることを特徴とする請求項1~4のいずれかに記載の処理装置。
【請求項6】
コンピュータを、
可逆符号化で符号化され、かつキーフレームの挿入周期が変更されたコンテンツについて複数に分割されたセグメントであり、所定数のフレームを有するセグメントを入力する入力処理手段と、
上記入力処理手段により入力されたセグメントのうち、非キーフレームで構成される第1セグメントについて、当該第1セグメントより1つ前のセグメントを含む1又は複数のセグメントであり、当該1又は複数のセグメントにおける一番前のセグメントにおいてキーフレームを有するセグメントの復号結果を参照して可逆符号化を行ない、当該第1セグメントより1つ前のセグメントにおいて終端のフレームを有する複数のフレームをキーフレームとするキーセグメントを生成する生成処理手段と、
上記生成処理手段により生成された上記キーセグメントと、上記第1セグメントより1つ後の非キーフレームで構成される第2セグメントとを出力する出力処理手段と
して機能させることを特徴とする処理プログラム。
【請求項7】
処理装置における処理方法であって、
上記処理装置は、
可逆符号化で符号化され、かつキーフレームの挿入周期が変更されたコンテンツについて複数に分割されたセグメントであり、所定数のフレームを含むセグメントを入力する入力処理ステップと、
上記入力処理ステップにより入力されたセグメントのうち、非キーフレームで構成される第1セグメントについて、当該第1セグメントより1つ前のセグメントを含む1又は複数のセグメントであり、当該1又は複数のセグメントにおける一番前のセグメントにおいてキーフレームを有するセグメントの復号結果を参照して可逆符号化を行ない、当該第1セグメントより1つ前のセグメントにおいて終端のフレームを有する複数のフレームをキーフレームとするキーセグメントを生成する生成処理ステップと、
上記生成処理ステップにより生成された上記キーセグメントと、上記第1セグメントより1つ後の非キーフレームで構成される第2セグメントとを出力する出力処理ステップと
を有することを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、処理プログラム及び処理方法に関し、例えば、監視カメラ映像をライブモニタリングしたり又は録画再生したりする処理装置に適用し得るものである。
【背景技術】
【0002】
監視カメラ映像を遠隔地でライブモニタリングしたり、又は録画再生する典型的な監視システムは、監視カメラ、ネットワークビデオレコーダ(NVR)、監視モニタを有する。その一例としては、特許文献1に開示される監視システムがある。特許文献1に記載の監視システムは、IPカメラからのビデオストリームをサーバで中継し、監視モニタへ送信すると共に、サーバ内に映像を蓄積しておいて後から録画再生するための構成が示されている。また、ビデオストリームを一度復号して、画角を縮小あるいはフレーム間引きを実施後に再エンコードする構成も示されており、携帯端末等の小画面の監視モニタでのモニタリングにも対応している。
【0003】
監視モニタへの動画像配信のその他の形態として、特許文献2に、時分割したビデオストリームのダウンロードによる配信システムが開示されている。この配信システムでは、ライブ映像あるいは録画映像のビデオストリームを配信サーバで時分割したファイルとして配備し、監視モニタで動画ファイルをダウンロード再生している。
【0004】
高能率な映像符号化方式では通常フレーム間差分を利用した符号化が利用される。この方式ではキーフレームとフレーム間差分情報で構成されるその他のフレームの両方を復号する必要があるため、キーフレームからしか再生を開始できない。特許文献3では、フレーム間差分情報を過去に遡って全て解析し、キーフレームに相当する映像データを生成することでキーフレーム以外の時間からの再生を実現するシステムが開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2004-254248号公報
【文献】特開2016-123097号公報
【文献】特開2015-056694号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来の監視システムでは、監視モニタを操作して任意のカメラ映像のモニタリングを開始するときに、次に記載される処理内容を実現するため、監視モニタに送出するビデオストリームに3秒あるいは10秒などの短い周期でキーフレームを挿入しながら符号化する必要があった。ここで、処理内容とは、映像表示開始までの待ち時間短縮すること、あるいは通信路でのデータ欠落があっても速やかに映像品質を回復することある。特に1台の監視モニタで複数のカメラ映像を一定周期で次々に切り替えながら表示する運用(カメラスイッチャー)では、切り替えに要する時間が増大するために、キーフレームの周期を伸ばすことが難しい。
【0007】
しかし、キーフレームは非キーフレームより相対的にデータサイズが大きく、ネットワークビデオレコーダに蓄積保存するデータ容量の過半をキーフレームデータが占める傾向にある。特に監視カメラが撮影対象とすることが多い動きの少ない撮像ではこの傾向が顕著であった。監視カメラのビデオストリーム中のキーフレームの構成割合を減らしつつ、映像表示開始時の応答性を損なわない方法はこれまで開示されていない。
【0008】
特許文献1では、監視モニタに送信するビデオストリームを中継サーバで再エンコードする構成が開示されているが、仮に中継サーバでキーフレームの周期を長くして再エンコードしても、結局は映像表示開始時の応答性が損なわれる、という課題を解決できるものではなかった。
【0009】
また、特許文献3の方法は、非キーフレームのデータだけを使用して効率よくキーフレームを復元できるものの、対象とする映像がコンピュータの画面に表示するためのものである。特許文献3の方法では、差分情報は矩形から成る部分領域のキーフレームデータの集合に限定できるという条件が必要であり、監視カメラの撮影映像ではこの条件を満たすことが難しいため、キーフレームの復元には使えない、という問題点があった。
【課題を解決するための手段】
【0010】
かかる課題を解決するために、第1の本発明に係る処理装置は、(1)可逆符号化で符号化され、かつキーフレームの挿入周期が変更されたコンテンツについて複数に分割されたセグメントであり、所定数のフレームを有するセグメントを入力する入力処理手段と、(2)入力処理手段により入力されたセグメントのうち、非キーフレームで構成される第1セグメントについて、当該第1セグメントより1つ前のセグメントを含む1又は複数のセグメントであり、当該1又は複数のセグメントにおける一番前のセグメントにおいてキーフレームを有するセグメントの復号結果を参照して可逆符号化を行ない、当該第1セグメントより1つ前のセグメントにおいて終端のフレームを有する複数のフレームをキーフレームとするキーセグメントを生成する生成処理手段と、(3)生成処理手段により生成されたキーセグメントと、第1セグメントより1つ後の非キーフレームで構成される第2セグメントとを出力する出力処理手段とを備えることを特徴とする。
【0011】
第2の本発明に係る処理プログラムは、コンピュータを、(1)可逆符号化で符号化され、かつキーフレームの挿入周期が変更されたコンテンツについて複数に分割されたセグメントであり、所定数のフレームを有するセグメントを入力する入力処理手段と、(2)入力処理手段により入力されたセグメントのうち、非キーフレームで構成される第1セグメントについて、当該第1セグメントより1つ前のセグメントを含む1又は複数のセグメントであり、当該1又は複数のセグメントにおける一番前のセグメントにおいてキーフレームを有するセグメントの復号結果を参照して可逆符号化を行ない、当該第1セグメントより1つ前のセグメントにおいて終端のフレームを有する複数のフレームをキーフレームとするキーセグメントを生成する生成処理手段と、(3)生成処理手段により生成されたキーセグメントと、第1セグメントより1つ後の非キーフレームで構成される第2セグメントとを出力する出力処理手段として機能させることを特徴とする。
【0012】
第3の本発明に係る処理方法は、処理装置における処理方法であって、処理装置は、(1)可逆符号化で符号化され、かつキーフレームの挿入周期が変更されたコンテンツについて複数に分割されたセグメントであり、所定数のフレーム有するセグメントを入力する入力処理ステップと、(2)入力処理ステップにより入力されたセグメントのうち、非キーフレームで構成される第1セグメントについて、当該第1セグメントより1つ前のセグメントを含む1又は複数のセグメントであり、当該1又は複数のセグメントにおける一番前のセグメントにおいてキーフレームを有するセグメントの復号結果を参照して可逆符号化を行ない、当該第1セグメントより1つ前のセグメントにおいて終端のフレームを有する複数のフレームをキーフレームとするキーセグメントを生成する生成処理ステップと、(3)生成処理ステップにより生成されたキーセグメントと、第1セグメントより1つ後の非キーフレームで構成される第2セグメントとを出力する出力処理ステップとを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、キーフレームの挿入周期が変更されたコンテンツについて、任意のセグメントから再生することができる。
【図面の簡単な説明】
【0014】
図1】第1の実施形態に係る監視システムの全体構成を示す全体構成図である。
図2】実施形態のキーセグメント挿入周期を説明する説明図である。
図3】第1の実施形態に係るキーセグメント生成部によるキーセグメントの生成処理を示すフローチャートである。
図4】第1の実施形態に係るキーセグメント生成部によるキーセグメントの生成処理を説明する説明図である。
図5】実施形態に係るPlaylistの構成例を示す構成図である。
図6】第1の実施形態に係る録画キーセグメント生成部による録画用のキーセグメントの生成処理を示すフローチャートである。
図7】第1の実施形態に係る録画キーセグメント生成部による録画用のキーセグメントの生成処理を説明する説明図である。
図8】第2の実施形態に係る監視システムの全体構成を示す全体構成図である。
図9】第2の実施形態に係るキーセグメント生成部によるキーセグメントの生成処理を示すフローチャートである。
図10】第2の実施形態に係るキーセグメント生成部によるキーセグメントの生成処理を説明する説明図である。
図11】第2の実施形態に係る録画キーセグメント生成部による録画用のキーセグメントの生成処理を示すフローチャートである。
図12】第2の実施形態に係る録画キーセグメント生成部による録画用のキーセグメントの生成処理を説明する説明図である。
【発明を実施するための形態】
【0015】
(A)第1の実施形態
以下では、本発明に係る処理装置、処理プログラム及び処理方法の第1の実施形態を、図面を参照しながら詳細に説明する。
【0016】
(A-1)第1の実施形態の構成
図1は、第1の実施形態に係る監視システムの全体構成を示す全体構成図である。
【0017】
図1において、第1の実施形態に係る監視システム1は、IPカメラ5、映像ゲートウェイ10、ネットワークビデオレコーダ20、監視モニタ30を有する。
【0018】
なお、図1では、説明を容易にするために、IPカメラ5、映像ゲートウェイ10、ネットワークビデオレコーダ20、監視モニタ30について、それぞれ1台のみの内部構成を示しているが、それぞれ同等の機能を有するものを複数設けるようにしてもよい。
【0019】
監視システム1では、IPカメラ5は、例えばLAN(登録商標)を介して、映像ゲートウェイ10に接続されており、映像ゲートウェイ10は、例えばWAN(アクセス回線)を介して、遠隔地に設置したネットワークビデオレコーダ20に接続している。
【0020】
監視システム1は、IPカメラ5が撮影した映像をストリーミング配信するためのプロトコルを適用することができ、例えばその配信プロトコルとしてHLS(HTTP_Live_Streaming)を適用することができる。IPカメラ5が撮像した映像を所定の時間間隔で分割したセグメント(Segment)として取り扱う。
【0021】
[IPカメラ5]
IPカメラ5は、映像撮像装置であり、撮像した映像を例えばH.264等の差分圧縮符号化方式で符号化し、その符号化したビデオストリームを映像ゲートウェイ10に送信する。映像の圧縮符号化方式は、種々の方式を適用でき、例えば、MPEG-1、2、4やMotionJPEGなどとしてもよく、IPカメラ5は撮影した映像を高画質に圧縮したビデオストリームを送信する。
【0022】
ここで、H.264は、符号化及び復号に関わるデータ圧縮において、復元したときに元のデータ(ビット列)を完全に再現できるように圧縮する無歪み圧縮である可逆圧縮などの機能が追加されたH.264(I_PCM動作モードを用いたH.264)である。
【0023】
[映像ゲートウェイ10]
映像ゲートウェイ10は、再符号化装置である。映像ゲートウェイ10は、IPカメラ5からビデオストリームを受信し、ビデオストリームを一度復号して、映像の画質を概ね劣化させず、かつ、IPカメラ5からのビデオストリームよりもキーフレームの挿入周期を長くする(延ばす)ために、ビデオストリームを再符号化するものである。また、映像ゲートウェイ10は、再符号化したビデオストリームを、アクセス回線を介してネットワークビデオレコーダ20に送信する。映像ゲートウェイ10が映像を再符号化することで、非キーフレームに比べてデータサイズが大きいキーフレームの挿入周期を従来よりも長くすることができるため、後述するネットワークビデオレコーダ20で蓄積保存するデータ容量を軽減することができる。
【0024】
映像ゲートウェイ10は、復号部11、符号化部12、送信部13を有する。
【0025】
復号部11は、IPカメラ5から受信したビデオストリームを復号し、主要画質規定要因である量子化ステップサイズをフレーム単位で取得し、復号した映像データと合わせて符号化部12に供給する。
【0026】
符号化部12は、復号部11からの映像データを再符号化し、その再符号化したビデオストリームを送信部13に供給する。符号化条件は、IPカメラ5のビデオストリームと同一画角、同一フレームレートとし、フレーム毎に復号部11から入力された平均量子化ステップサイズを用いる。これにより、IPカメラ5が撮影した映像の画質を劣化させることなく、再符号化することができる。また、符号化部12は、符号化の際に、キーフレーム(例えばH.264の場合、IDRフレーム)の挿入周期をIPカメラ5のビデオストリームよりも長くして(延ばして)再符号化を行なう。キーフレームの挿入周期は、監視モニタ30での録画再生の応答時間との関係で適宜調整することができ、例えば、後述する録画再生の応答時間の上限に合わせて、10分~1時間程度に設定する(図2(A)参照)。なお、キーフレームの挿入周期については、映像ゲートウェイ10の符号化部12とネットワークビデオレコーダ20との間で互いに設定しておく。
【0027】
送信部13は、符号化部12により再符号化されたビデオストリームを、アクセス回線を介してネットワークビデオレコーダ20にHTTP POSTメソッドで送信する。送信対象は、例えばビデオストリームをMPEG形式で多重化して、連続する複数のフレームを時分割(セグメント化)したデータとし、時分割(セグメント化)の時間間隔は、例えば10秒前後とする。
【0028】
ここで、キーフレームとなるビデオストリームが含まれるセグメントは、必ずキーフレームがセグメントの先頭に位置するようにする。また、各セグメントには、先頭の映像フレームの撮影時刻情報、先頭の映像フレームがキーフレームであるか否かを示すキーフラグ情報、セグメントの連続番号を示すセグメントシーケンス番号等のセグメント付加情報を付加し、送信部13は、セグメントと当該セグメントのセグメント付加情報とを合わせて送信する。
【0029】
なお、図2(B)に例示するように、通信障害が発生して、送信タイムアウトとなり所定時間以内に送信できなかった場合、送信部13は、一旦送信を停止して、未送信データを破棄し、符号化部12に対して、再度キーフレームを先頭に挿入したビデオストリームを生成させて、送信再開を試行する。
【0030】
[ネットワークビデオレコーダ20]
ネットワークビデオレコーダ20は、アクセス回線を介して映像ゲートウェイ10からビデオストリームを受信し、各セグメント及び各セグメントのセグメント付加情報を蓄積する。ネットワークビデオレコーダ20は、ライブモニタリング又は録画再生が可能であり、監視モニタ30からの要求に応じて、ライブモニタリング又は録画再生する映像の所在を示すURLをPlaylistに記載し、そのPlaylistを監視モニタ30に提供する。
【0031】
ネットワークビデオレコーダ20は、HTTPServer部21、アップロード部22、ダウンロード部23、セグメント蓄積装置24、キーセグメント生成部25、キーセグメントキャッシュ26、録画キーセグメント生成部27を有する。
【0032】
HTTPServer部21は、HTTP(Hypertext Transfer Protocol)を用いて、映像ゲートウェイ10又は監視モニタ30との間で、ビデオストリームやこれに関連する情報を送受信する。
【0033】
アップロード部22は、映像ゲートウェイ10から受信(アップロード)したセグメント及びセグメント付加情報を、セグメント蓄積装置24に蓄積すると共に、受信したセグメント及びセグメント付加情報をキーセグメント生成部25に与える。
【0034】
セグメント蓄積装置24は、アップロード部22からのセグメント及びセグメント付加情報を蓄積するものである。セグメント蓄積装置24は、セグメント付加情報から、当該セグメントの撮影時刻情報、当該セグメントのキーフレームが含まれているか否かを示すキーフラグ情報、当該セグメントのセグメントシーケンス番号を抽出する。そして、上記撮影時刻情報と、上記キーフラグ情報と、上記セグメントシーケンス番号と、当該セグメントのデータ本体とを対応付けて格納する。より具体的には、例えば、撮影時刻が古い時刻のものから順に、撮影時刻情報、キーフラグ情報、セグメントシーケンス番号、セグメントのデータ本体とを対応付けたものが、セグメント蓄積装置24に蓄積される。なお、セグメントシーケンス番号について、撮影時刻が古いものから最新のものになるにつれ、セグメントシーケンス番号の値が大きくなるように付与されているので、シーケンスセグメント番号の順に、セグメント付加情報及びセグメントのデータ本体とが格納されているとも言い換えることができる。
【0035】
ダウンロード部23は、監視モニタ30からPlaylistの送信要求を受信し、その送信要求に基づいて、セグメント蓄積装置24、キーセグメントキャッシュ26に存在するPlaylistを監視モニタ30に送信する。また、ダウンロード部23は、監視モニタ30から受信した映像(セグメント)の配信要求を受信し、その配信要求に従い、セグメント蓄積装置24、キーセグメントキャッシュ26に存在するセグメント、キーセグメントを監視モニタ30に配信する。
【0036】
Playlistには、ライブモニタリング用と録画再生用の2種類あり、監視モニタ30からの送信要求に従ってダウンロード部23が作成する。このPlaylistの作成方法の詳細な説明は動作の項で説明する。監視モニタ30に送信するセグメント、キーセグメントの配信方法の詳細な説明は動作の項で説明する。
【0037】
キーセグメント生成部25は、ライブモニタリングのために必要なキーセグメントを生成する。キーセグメント生成部25は、アップロード部22からセグメント及びセグメント付加情報を受け取ると、そのセグメント(例えば、segment[i])に含まれる全てのフレームを復号し、直前のセグメント(例えば、segment[i-1])の復号結果(すなわち、当該直前のsegment[i-1]に含まれている全てのフレームの復号結果)を参照して、先頭にキーフレームを含むセグメント(これを「キーセグメント」と呼ぶ。)を再作成する。
【0038】
キーセグメントを再作成する際、キーセグメント生成部25は、全フレームをH.264符号化方式で定義されているI_PCMモードに従ったフォーマットで符号化する。ここで、I_PCMモードでは、非可逆性を伴う直交変換を行わずに、フレーム内予測符号化のみを用いて映像データを符号化しており、復号結果が符号化前の映像データと完全に一致する可逆(ロスレス)符号化を行なうことができる。
【0039】
上記のように、キーセグメント生成部25は、直前のセグメント(segment[i-1])の復号結果を参照するが、この直前のセグメント(segment[i-1])は、当該直前のセグメントよりも前に存在しているキーフレームを含むセグメント(例えば、segment[0])から当該直前のセグメント(segment[i-1])までの全てのフレームを符号化したものである。
【0040】
すなわち、直前のセグメント(segment[i-1])の復号結果は、直近のキーフレームとその直近のキーフレーム以降の非キーフレームとを含む映像データであり、符号化前の映像データと完全に一致したものとなる。そのため、監視モニタ30で、このキーセグメントから再生開始した場合にも、ネットワークビデオレコーダ20が受信したオリジナルのセグメントに含まれるストリームの復号結果と、キーセグメント生成部25が再作成したキーセグメントに含まれるストリームの復号結果とは、全フレームで完全に(量子化誤差がなく;1ビットたりとも復号誤差がなく)一致する。
【0041】
従って、当該直前のセグメント(segment[i-1])の復号した映像データを参照して、後続セグメント(segment[i])の非キーフレームの復号結果も完全に一致し、そのため監視モニタ30で再生される再生映像の乱れ等が発生しない。
【0042】
なお、アップロード部22から取得したセグメントが、先頭にキーフレームを含むセグメントである場合には、今回取得したセグメントがキーセグメントとなるため、キーセグメント生成部25は今回取得したセグメントをそのままキーセグメントとしてキーセグメントキャッシュ26に記憶する。
【0043】
キーセグメント生成部25は、再生成したキーセグメントと、アップロード部22から取得したセグメント付加情報とをキーセグメントキャッシュ26に与える。
【0044】
録画キーセグメント生成部27は、録画再生のために必要なキーセグメントを生成する。録画キーセグメント生成部27は、ダウンロード部23から録画再生に係る再生開始時刻Aと終了時刻Bとの通知を受ける。
【0045】
そして、録画キーセグメント生成部27は、セグメント蓄積装置24に蓄積されているセグメント及びセグメント付加情報を参照して、録画再生開始時刻(再生開始時刻とも呼ぶ。)A、再生終了時刻(終了時刻とも呼ぶ。)Bを撮影時刻情報に含んでいるセグメント及びセグメント付加情報を検索する。
【0046】
次に、録画キーセグメント生成部27は、キーセグメントキャッシュ26に、上記検索したセグメントのセグメントシーケンス番号(当該セグメントシーケンス番号を[X]とする。)よりも過去であって最も直近にキーセグメント(当該キーセグメントのセグメントシーケンス番号を「Z」とする。)があるか否かを検索する。録画キーセグメント生成部27は、検索した結果、上記直近のキーセグメントがキーセグメントキャッシュ26にあるとき、次の処理を実行する。録画キーセグメント生成部27は、上記直近のキーセグメントに含まれている全フレームを復号し、かつ、セグメントシーケンス番号[Z+1]~[X-1]までのセグメントをセグメント蓄積装置24から取得する。録画キーセグメント生成部27は、取得したセグメントについて、セグメントシーケンス番号[Z+1]~[X-1]までのセグメントに含まれている全フレームを復号する。
【0047】
なお、キーセグメントキャッシュ26に上記直近のキーセグメントがない場合、録画キーセグメント生成部27は、セグメント蓄積装置24から、直近のキーフレームを含んでいるセグメント(セグメントシーケンス番号[Y]とする。)から直前のセグメント(セグメントシーケンス番号[X-1])を読み出す。録画キーセグメント生成部27は、読み出したセグメントについて、セグメントシーケンス番号[Y]~[X-1]の全てのセグメントに含まれている全フレームを復号する。
【0048】
そして、録画キーセグメント生成部27は、セグメントシーケンス番号[X-1]以外のセグメントの復号結果を破棄(セグメントシーケンス番号[X-1]のセグメントの復号結果を残し)する。さらに、録画キーセグメント生成部27は、当該セグメントシーケンス番号[X-1]のセグメントの復号結果を参照して、セグメントシーケンス番号[X]のキーセグメントを再生成する。このセグメントシーケンス番号[X]のキーセグメントを再生成方法は、キーセグメント生成部25と同様に可逆符号化に従った手法である。これにより、録画再生開始時刻Aにおけるキーセグメントが作成され、このキーセグメント及びセグメント付加情報がキーセグメントキャッシュ26に記憶される。
【0049】
キーセグメントキャッシュ26は、キーセグメント生成部25又は録画キーセグメント生成部27により生成されたキーセグメントと、当該キーセグメントの付加情報とを対応付けて所定時間記憶する記憶領域である。キーセグメントキャッシュ26は、キーセグメント生成部25又は録画キーセグメント生成部27により当該キーセグメントが生成された生成時刻と、当該キーセグメントの撮影時刻情報と、当該キーセグメントのセグメントシーケンス番号と、当該キーセグメントのデータ本体とを対応付けたものを記憶する。
より具体的には、キーセグメントが生成された生成時刻が古いものから順にキーセグメントキャッシュ26に記憶されていき、各生成時刻から所定時間が経過したときに、あるいは、一定容量以下を維持するように、生成時刻の古いものから順にキーセグメントが削除される。
【0050】
ここで、キーセグメントが生成された生成時刻は、当該キーセグメントがキーセグメントキャッシュ26へのキャッシュ開始時刻とも言い換えることができる。
【0051】
なお、図1では、1個のキーセグメントキャッシュ26を備える場合を例示しているが、ライブモニタリング用のキーセグメントキャッシュと、録画再生用のキーセグメントキャッシュとを備えるようにしてもよい。
【0052】
ここで、ライブモニタリング用のキーセグメントキャッシュは、すなわち、キーセグメント生成部25により生成されたキーセグメントを記憶するキャッシュである。
【0053】
またここで、録画再生用のキーセグメントキャッシュは、すなわち、録画キーセグメント生成部27により生成されたキーセグメントを記憶するキャッシュである。
【0054】
[監視モニタ30]
監視モニタ30は、通信機能及び表示機能を備えた映像視聴端末であり、セグメント化された映像データを再生して、映像を表示するものである。監視モニタ30は、例えば、スマートフォン、タブレット端末、パーソナルコンピュータ等を適用することができる。また、監視モニタ30は、復号表示部31を有している。
【0055】
復号表示部31は、例えば、CPUがプログラム実行することにより、HTTPServer部21に対するHTTPClientとして機能し、TSDemuxer、VideoDecoder、Renderer、ブラウザ等として機能する。復号表示部31は、HLSでのクライアントコンポーネントの役割を果たす。
【0056】
つまり、復号表示部31は、ネットワークビデオレコーダ20が送信したファイルを受信する。復号表示部31は、HTTP_GETリクエストによりHTTPServer21に対して、Playlistやセグメントの要求を行い、Playlistやセグメントを受信する。映像の安定化のためにデータをバッファリングするが、ライブモニタリングのときには、バッファ時間を最小限に設定している。
【0057】
また、復号表示部31は、セグメントから音声データ等を分離して、ビデオストリームを取り出し、符号化されたビデオストリームを元のデータに戻し、所定の処理を行い具体的な映像データや画像データを生成する。そして、再生したデータの映像や画像を、監視モニタ30の表示パネル(図示しない)に表示させる。
【0058】
(A-2)第1の実施形態の動作
次に、第1の実施形態に係る監視システム1における処理を、図面を参照しながら詳細に説明する。
【0059】
IPカメラ5では、映像を撮影し、その映像を所定の圧縮符号化方式で符号化し、その符号化したビデオストリームが映像ゲートウェイ10に送信される。
【0060】
映像ゲートウェイ10では、IPカメラ5からビデオストリームを受信すると、復号部11が、受信したビデオストリームを復号しつつ、主要な画質規定要因である量子化ステップサイズをフレーム単位で取得し、復号した映像データと合わせて符号化部12へ入力する。
【0061】
符号化部12では、復号部11により復号された映像データを、例えばH.264方式で再符号化し、再符号化した映像データが送信部13に与えられる。このとき、IPカメラ5のビデオストリームと同一画角、同一フレームレートとし、フレーム毎に復号部11から入力した平均量子化ステップサイズを用いる。これにより、映像の画質を概ね劣化させることなく映像を再符号化できる。更に、符号化部12は、映像データの再符号化の際に、キーフレーム(例えば、H.264ではIDRフレーム)の挿入周期をIPカメラ5のストリームよりも長くなるようにする。このキーフレームの挿入周期は、例えば、監視モニタ30への録画再生の応答時間の上限に合わせて設定する。
【0062】
送信部13では、再符号化されたビデオストリームを、ネットワークビデオレコーダ20へHTTP POSTメソッドで送信する。送信部13は、MPEG形式で、ビデオストリームを多重化し、例えば10秒前後の連続するフレームを時分割したデータをセグメントファイルとして送信する。各セグメントの先頭には、撮影時刻情報、フラグ情報、セグメントシーケンス番号を有するセグメント付加情報を付加して、セグメントと合わせて送信する。また、キーフレームが含まれるセグメントは、必ず先頭がキーフレームとなるようにする。なお、通信障害が発生して一定時間以内に送信できなかった場合は、一旦送信を停止して未送信データを破棄し、符号化部12にて再度キーフレームを先頭に挿入したストリームを生成して送信再開を試行する。
【0063】
ネットワークビデオレコーダ20にセグメントが受信されると、HTTPServer部21が、セグメント及びセグメント付加情報をアップロード部22に転送する。
【0064】
アップロード部22では、セグメント及びセグメント付加情報をセグメント蓄積装置24に保存すると共に、セグメント及びセグメント付加情報をキーセグメント生成部25に転送する。
【0065】
セグメント蓄積装置24では、アップロード部22から受信した全てのセグメントを各セグメント付加情報とともに蓄積する。
【0066】
(A-2-1)ライブモニタリングのストリーミング再生処理
次に、監視モニタ30においてライブモニタリングのストリーミング再生処理の動作を、図面を参照しながら説明する。
【0067】
以下では、まず、図3図4を参照してキーセグメント生成部25によるキーセグメントの生成処理を説明した上で、ライブモニタリング用のPlaylistの要求方法や生成方法を説明しながら、セグメントの配信方法を説明する。
【0068】
[キーセグメント生成部25によるキーセグメント生成処理]
図3は、第1の実施形態に係るキーセグメント生成部25によるキーセグメントの生成処理を示すフローチャートである。
【0069】
図4は、第1の実施形態に係るキーセグメント生成部25によるキーセグメントの生成処理を説明する説明図である。
【0070】
図4では、「I」をキーフレームとし、「P」を非キーフレームとしており、「L」を可逆符号化で符号化したロスレス符号化フレームとしている。図4の例では、先頭にキーフレームを含んでいるセグメントのセグメントシーケンス番号をセグメント[0]とする。また、その後のセグメントについては、セグメントシーケンス番号を、順番に、セグメント[1]、セグメント[2]、…、セグメント[i-1]、セグメント[i]、…としている。セグメント[1]~[i]には、キーフレームが含まれていない。また、ここでは、例えば撮影時刻t[i]のセグメント[i]を含んでいるキーセグメント(先頭にキーフレームを含んでいるセグメント)を、キーセグメント[i]などと呼んで説明する。
【0071】
ステップS101で、キーセグメント生成部25は、アップロード部22から最新のセグメント[i]を取得する。
【0072】
ステップS102で、キーセグメント生成部25は、当該セグメント[i]のセグメント付加情報に含まれているフラグ情報を参照して、キーフレームを含んでいるセグメントであるか否かを判断する。
【0073】
ステップS102で、当該セグメント[i]の先頭にキーフレームが含まれているとき、すなわち図4のi=0のとき、キーセグメント生成部25は、当該セグメント[i]の全フレームを再符号化する(ステップS103)。そして、ステップS105で、キーセグメント生成部25は、再符号化した全てのフレームを連結してキーセグメント[i]とし、キーセグメントキャッシュ26に転送する。つまり、先頭にキーフレームIを含んでいるセグメント[0]がダウンロード部23から取得した場合、後述するステップS104のように、セグメント[i-1]の復号結果を参照することなく、全てのフレームを再符号化する。
【0074】
その後、ステップS106で、キーセグメント生成部25は、セグメントシーケンス番号の「i」の値を1だけインクリメントしてステップS101に移行し、次のセグメントシーケンス番号について繰り返し処理を行なう。
【0075】
ステップS102で、当該セグメント[i]の先頭にキーフレームが含まれていない場合、キーセグメント生成部25は、セグメント[i-1]の復号結果を参照して、セグメント[i]を構成する全てのフレームを復号し、全てのフレームについてI_PCMモードで再符号化を行なう(ステップS104)。そして、ステップS105で、キーセグメント生成部25は、再符号化した全てのフレームを連結してキーセグメント[i]とし、キーセグメントキャッシュ26に転送する。その後、キーセグメント生成部25は、セグメントシーケンス番号の「i」の値を1だけインクリメントして、処理を繰り返し行なう(ステップS106)。
【0076】
キーセグメント[i]を生成する際、先頭にキーフレームを含んでいるセグメント[0]~セグメント[i-1]に含まれている全てのフレームを復号する必要があり、セグメント[0]~セグメント[i-1]の復号結果を参照して、可逆符号化によりキーセグメント[i]を再生成する。
【0077】
図4の例の場合、キーセグメント生成部25は、キーセグメントキャッシュ26にキーセグメント[i-1]が記憶されているかを確認する。ビデオストリームは量子化誤差のないH.246符号化方式で符号化されているので、キーセグメント生成部25は、セグメント[i]の直前に位置しているキーセグメント[i-1]の復号結果(図4の「LLLLLL」)を参照して、セグメント[i]に含まれている全フレームを可逆符号化する。
【0078】
図4に示すように、キーセグメントをキーセグメントキャッシュ26に記憶する際、キーセグメント生成部25によるキーセグメントの生成時刻が、キーセグメントキャッシュ26の「生成時刻」に記録される。この「生成時刻」に記録される時刻は、キーセグメントキャッシュ26にキーセグメントがキャッシュ時間を判断する際に利用される。つまり、「生成時刻」に記録されている時刻から所定のキャッシュ時間が経過したときに、当該キーセグメントは、キーセグメントキャッシュ26から削除されることになる。このように、比較的データ容量の大きいキーフレームを含むキーセグメントが削除されることにより、保存するデータ容量は、削減される。
【0079】
また、図4に示すように、例えば、キーセグメントキャッシュ26は、キーセグメント[i]を記憶するとき、上記「生成時刻」、セグメント[i]の撮影時刻t[i]、セグメントシーケンス番号[i]、キーセグメントのデータ本体を対応付けて記憶する。
【0080】
[Playlistの要求方法、生成方法及びセグメントの配信方法]
図5は、実施形態に係るPlaylistの構成例を示す構成図である。図5(A)は、ライブモニタリング用の初回のリクエスト時のPlaylistの構成例であり、図5(B)は、ライブモニタリング用の2回目以降のリクエスト時のPlaylistの構成例であり、図5(C)は、録画再生用のPlaylistの構成例である。
【0081】
監視モニタ30における復号表示部31は、HTTPClientとして機能し、HLS方式の標準化技術に従ったストリーミング再生のクライアントとして動作する。
【0082】
監視モニタ30においてライブモニタリングを行う場合、復号表示部31は、ネットワークビデオレコーダ20のHTTPServer部21と接続し、HTTPGetリクエストによりHTTPServer部21にライブモニタリング用のPlaylistを要求する。
【0083】
HTTPServer部21がライブモニタリング用のPlaylistの要求を受信すると、HTTPServer部21はライブモニタリング用のPlaylistの要求をダウンロード部23に与える。
【0084】
ダウンロード部23は、ライブモニタリング用のPlaylistの要求を受け取ると、今回のPlaylistの要求が、再生開始に伴う初回の要求であるか否かを判断する。ライブモニタリング用のPlaylistは、ビデオストリームの生成が常時継続しているので、監視モニタ30(復号表示部31)で最後まで再生した時点で継続再生することになる。そのため、復号表示部31は、次のPlaylistを取得するセグメントのURLを継続して要求する。従って、Playlistの取得要求のリクエストのURLが、次に取得要求するセグメントのURLであるか否かに基づいて、ダウンロード部23は初回の要求であるか否かを判断する。
【0085】
今回のPlaylistの要求が初回の要求である場合、ダウンロード部23は、キーセグメントキャッシュ26の最後にキャッシュされている最新のキーセグメントのセグメントシーケンス番号[i]を取得する。さらに、ダウンロード部23は、キーセグメントキャッシュ26上のセグメントシーケンス番号[i]のキーセグメントの所在を示すURLをPlaylistの最初のセグメントとして記述する。図5(A)の例では、キーセグメントキャッシュ26上のキーセグメント[i]のURLとして「http://…/KeySeg/Segment[i]」を先頭に記述する。
【0086】
さらに、ダウンロード部23は、セグメント蓄積装置24上に蓄積されている、後続セグメント[i+1]、[i+2]、…、[i+N-1]の所在を示すURLを規定数(この例ではN個)だけ、Playlist上に追記する。図5(A)の例では、キーセグメント[i]のURLの後に、セグメント蓄積装置24上のセグメント[i+1]、[i+2]、…、[i+N-1]を記述する。このように、Playlistには、セグメントファイルのURLが時系列に列挙されている。
【0087】
上記のように、ライブモニタリング用の初回のPlaylist要求があった場合、ダウンロード部23は、上記のようにして、図5(A)に例示するPlaylistを作成してHTTPServer部21に返却する。そして、HTTPServer部21は、ダウンロード部23から取得したライブモニタリング用のPlaylistを、要求元である復号表示部31に送信する。
【0088】
監視モニタ30において、ライブモニタリング用のPlaylistを受信すると、復号表示部31が、HTTPGetリクエストにより、HTTPServer部21に、図5(A)に記述されているキーセグメント[i]のURLを指示して、セグメント[i]の配信を要求する。
【0089】
HTTPServer部21は、ダウンロード部23にキーセグメント[i]の配信要求を与える。これを受けて、ダウンロード部23は、キーセグメント[i]のURLに基づいて、キーセグメントキャッシュ26上にキャッシュされているキーセグメント[i]のデータにアクセスして取り出し、HTTPServer部21がキーセグメント[i]のデータを復号表示部31に配信する。
【0090】
復号表示部31は、HTTPServer部21からキーセグメント[i]のデータを逐次ダウンロードするので、映像再生の安定化のためにキーセグメント[i]のデータをバッファリングしながら、映像再生をする。
【0091】
キーセグメント[i]のデータのダウンロードが終了すると、復号表示部31は、Playlistに記述されている、キーセグメント[i]の次のセグメント[i+1]のURLを指示してHTTPServer部21に配信要求する。HTTPServer部21は、同様に、配信要求をダウンロード部23に与える。
【0092】
セグメント[i+1]のURLは、セグメント蓄積装置24上のURLである。そのため、ダウンロード部23は、HTTPServer部21から取得したセグメント[i+1]のURLに基づいて、セグメント蓄積装置24からセグメント[i+1]のデータにアクセスして取り出す。HTTPServer部21は、取り出したセグメント[i+1]のデータを復号表示部31に配信する。そして、復号表示部31は、ダウンロードしたセグメント[i+1]のデータをバッファリングしながら、映像再生をする。
【0093】
その後、Playlistに記述されているセグメント[i+2]以降のURLについても同様に、復号表示部31はHTTPServer部21に配信要求する。そして同様に、ダウンロード部23は、セグメント[i+2]以降のURLに基づいて、セグメント蓄積装置24からセグメント[i+2]以降のデータにアクセスする。さらに、ダウンロード部23は、HTTPServer部21を介して、アクセスされたキーセグメント[i+2]以降のデータを復号表示部31に配信する。そして、復号表示部31は、ダウンロードしたセグメント[i+2]以降のデータについてもバッファリングしながら、映像再生をする。
【0094】
初回のPlaylistに記述されている全てのセグメントのダウンロードが終了すると、復号表示部31は、2回目以降のPlaylistの要求をHTTPServer部21に送信し、このPlaylist要求がダウンロード部23に与えられる。
【0095】
今回のPlaylist要求が、再生開始から2回目以降の要求であるため、初回の要求の際に、ダウンロード部23は、キーセグメントキャッシュ26上のキーセグメントのURLを含むPlaylistを復号表示部31に送信済みである。そのためダウンロード部23は、、2回目以降のPlaylistの要求を受ると、後続セグメントのURLをPlaylistに記述する。
【0096】
例えば、図5(A)に例示するように、初回の要求時に、ダウンロード部23は、セグメント蓄積装置24上のセグメント[i+N-1]の所在を示すURLを含むPlaylistを復号表示部31に送信している。従って、ダウンロード部23は、セグメント[i+N-1]に後続するセグメント[i+N]のセグメント蓄積装置24上の所在を示すURLをPlaylistの先頭に記載する。さらに、ダウンロード部23は、セグメント蓄積装置24上のセグメント[i+N+1]、[i+N+2]、…、[i+N+N-1]のURLを順番にPlaylistに記述する(図5(B)参照)。このように、Playlistには、初回のPlaylistの最後のセグメントに後続するセグメントファイルのURLが時系列に列挙される。
【0097】
上記のように、ライブモニタリング用の2回目以降のPlaylist要求があった場合、ダウンロード部23は、上記のようにして、図5(B)に例示するPlaylistを作成してHTTPServer部21に返却し、HTTPServer部21は、ライブモニタリング用のPlaylistを、要求元である復号表示部31に送信する。
【0098】
復号表示部31は、Playlistに記述されているセグメント[i+N]以降のURLについても同様にHTTPServer部21に配信要求する。そして、同様に、ダウンロード部23は、セグメント[i+N]以降のURLに基づいて、セグメント蓄積装置24からセグメント[i+N]以降のデータにアクセスする。さらに、ダウンロード部23は、HTTPServer部21を介して、キーセグメント[i+N]以降のデータを復号表示部31に配信する。そして、復号表示部31は、ダウンロードしたセグメント[i+N]以降のデータについてもバッファリングしながら、映像再生をする。
【0099】
(A-2-2)録画再生のストリーミング再生処理
次に、監視モニタ30において録画再生のストリーミング再生処理の動作を、図面を参照しながら説明する。
【0100】
監視モニタ30において録画再生する場合、復号表示部31は、HTTPGetリクエストにより、表示範囲となる時刻(再生開始時刻及び再生終了時刻)を指定して、録画再生用のPlaylistをHTTPServer部21に要求する。
【0101】
HTTPServer部21は、受信した録画再生用のPlaylistの要求をダウンロード部23に与える。
【0102】
ダウンロード部23は、録画再生用のPlaylistの要求を受け取ると、録画再生開始時刻及び再生終了時刻を、録画キーセグメント生成部27に通知して、録画用のキーセグメントの生成処理を行なう。
【0103】
図6は、第1の実施形態に係る録画キーセグメント生成部27による録画用のキーセグメントの生成処理を示すフローチャートである。図7は、第1の実施形態に係る録画キーセグメント生成部27による録画用のキーセグメントの生成処理を説明する説明図である。
【0104】
ここでは、録画再生開始時刻を「A」とし、再生終了時刻を「B」として説明する。
【0105】
録画キーセグメント生成部27は、ダウンロード部23から録画再生開始時刻Aと再生終了時刻Bが通知されると、録画再生開始時刻Aを含むセグメントと、再生終了時刻Bを含むセグメントがセグメント蓄積装置24に保存されているか否かを確認する(ステップS201)。このとき、セグメント蓄積装置24に、再生開始時刻Aを含むセグメントと再生終了時刻Bを含むセグメントのいずれか一方又は両方がない場合、録画キーセグメント生成部27は、ステップS204に移行して、ダウンロード部23にエラー応答して処理を終了する(ステップS204)。ダウンロード部23はHTTPServer部21にエラー応答を与えて、HTTPServer部21は復号表示部31にHTTPGetリクエストに対する応答でエラー応答を返信する。
【0106】
ステップS201で、セグメント蓄積装置24に、再生開始時刻Aを含むセグメントと再生終了時刻Bを含むセグメントが保存されている場合、録画再生のストリーミング再生処理の動作は、ステップS202に移行する。ここで、再生開始時刻Aを含むセグメントのシーケンス番号は「X」、再生終了時刻Bを含むセグメントのシーケンス番号は「W」とする(ステップS202)。
【0107】
そして、ステップS203では、録画キーセグメント生成部27は、再生開始時刻Aよりも過去であって、再生開始時刻Aに最も近くに存在するキーフレームを含むセグメントが、セグメント蓄積装置24に保存されているか否かを確認する(ステップS203)。このとき、上記キーフレームを含むセグメントがセグメント蓄積装置24に保存されていない場合、録画キーセグメント生成部27は、ステップS204に移行して、ダウンロード部23にエラー応答して処理を終了する(ステップS204)。ダウンロード部23はHTTPServer部21にエラー応答を与えて、HTTPServer部21は復号表示部31にHTTPGetリクエストに対する応答でエラー応答を返信する。
【0108】
一方、上記キーフレームを含むセグメントがセグメント蓄積装置24に保存されている場合、録画キーセグメント生成部27は、ステップS203で、当該キーフレームを含むセグメントのシーケンス番号を「Y」とする。
【0109】
ステップS206では、録画キーセグメント生成部27が、上記キーフレームを含むセグメント[Y]が再生開始時刻Aを含むセグメント[X]でないか否かを判断する(ステップS206)。これは、再生開始時刻Aを含むセグメント[X]がキーフレームを含むセグメントであるか否かを判断するためである。
【0110】
再生開始時刻Aを含むセグメント[X]がキーフレームを含んでいる場合、録画キーセグメント生成部27は、録画再生開始時刻Aを含んでいるセグメントのシーケンス番号[X]と、再生終了時刻Bを含んでいるセグメントのシーケンス番号[W]を、ダウンロード部23に返却する(ステップS207)。
【0111】
つまり、ステップS207では、フレーム間差分情報を利用して符号化した映像を再生(復号)する際、先頭とするキーフレームが必要である。この場合、再生開始時刻Aのセグメント[X]がキーフレームを含んでいるため、再生開始時刻A(セグメント[X])がセグメント[Y]の撮影時刻に含まれるので、当該セグメント[Y]は、そのままセグメント[X]としている。
【0112】
録画キーセグメント生成部27から録画再生開始時刻Aを含んでいるセグメントのシーケンス番号[X]と、再生終了時刻Bを含んでいるセグメントのシーケンス番号[W]の通知を受けたダウンロード部23は、次のようにして、Playlistを作成する。
【0113】
ダウンロード部23は、再生開始時刻Aを含むセグメントシーケンス番号[X]をキーセグメントとみなして扱う。ダウンロード部23は、図5(C)に例示するように、セグメント蓄積装置24上のセグメントシーケンス番号[X]の所在を示すURLを、Playlistの先頭に記述する。さらに、ダウンロード部23は、セグメントシーケンス番号[X]に後続する、セグメントシーケンス番号[X+1]から再生終了時刻Bのセグメントシーケンス番号[W]までの全てのセグメントのセグメント蓄積装置24上のURLを、順番にPlaylistに記述して、Playlistを作成する。このように、録画再生用のPlaylistには、再生開始時刻Aを含むキーセグメント[X]のURLと、その後セグメント「X+1」から再生終了時刻BのセグメントまでのURLが時系列に列挙されている。
【0114】
HTTPServer部21は、ダウンロード部23により作成された録画再生用のPlaylistを、復号表示部31に送信する。
【0115】
ステップS206で、キーフレームを含むセグメント[Y]が再生開始時刻Aを含むセグメント[X]でない場合、すなわち再生開始時刻Aがセグメント[Y]の撮影時刻に含まれていない場合、録画キーセグメント生成部27は、次の処理を実行する。録画キーセグメント生成部27は、セグメント[Y]からセグメント[X]までの範囲で、キーセグメントキャッシュ26にキャッシュされているキーセグメントがあるか否かを確認する(S208)。録画キーセグメント生成部27は、上記キーセグメントがキーセグメントキャッシュ26にキャッシュされていない場合、ステップS209に移行し、キャッシュされている場合にステップS210に移行する。
【0116】
ステップS209及びS210では、キーセグメントキャッシュ26に上記キーセグメントがキャッシュされている場合、録画キーセグメント生成部27が、当該キーセグメントのシーケンス番号を「Z」とする(ステップS209)。録画キーセグメント生成部27は、キーセグメント[Z]をキーセグメントキャッシュ26から取得し、当該キーセグメント[Z]の全てのフレームを復号する。さらに、録画キーセグメント生成部27は、セグメントシーケンス番号[Z+1]~[X-1]の全てのセグメントを、セグメント蓄積装置24から取得し、全てのセグメントの全てのフレームを復号して(ステップS210)、ステップS212に移行する。
【0117】
ステップS211では、録画キーセグメント生成部27が、セグメント蓄積装置24からセグメントシーケンス番号[Y]~「X-1」のセグメントを取得し、全セグメントに含まれている全てのフレームを復号する(S209)。その後、S212に移行する。
【0118】
ステップS212~S214では、録画キーセグメント生成部27が、セグメント[X]の再符号化に必要なセグメント[X-1]までの復号結果を生成してから、セグメント[X-1]以外の復号結果を破棄する(ステップS212)。録画キーセグメント生成部27は、キーセグメント生成部25と同様に、I_PCMモードで、セグメント[X-1]の全てのフレームの復号結果を参照して、セグメント[X]に含まれている全てのフレームを可逆符号化を行なう(S213)。そして、録画キーセグメント生成部27は、再符号化した全てのフレームを連結してキーセグメント[X]を再生成し、当該キーセグメント[X]について、生成時刻、撮影時刻情報、セグメントシーケンス番号を含むセグメント付加情報とともに、キーセグメントキャッシュ26へキャッシュする(S214)。
【0119】
そして、録画キーセグメント生成部27は、再生開始時刻Aを含んでいるセグメントのシーケンス番号[X]と、再生終了時刻Bを含んでいるセグメントのシーケンス番号[W]をダウンロード部23に返却して終了する。
【0120】
録画キーセグメント生成部27から再生開始時刻Aを含んでいるセグメントのシーケンス番号[X]と、再生終了時刻Bを含んでいるセグメントのシーケンス番号[W]の通知を受けたダウンロード部23は、次のようにして、Playlistを作成する。
【0121】
ダウンロード部23は、キーセグメントキャッシュ26上のセグメントシーケンス番号[X]の所在を示すURLを、Playlistの先頭に記述する。さらに、ダウンロード部23は、セグメント蓄積装置24上の、セグメントシーケンス番号[X]に後続する、セグメントシーケンス番号[X+1]から再生終了時刻Bのセグメントシーケンス番号[W]までの全てのセグメントのURLを、順番にPlaylistに記述して、Playlistを作成する。HTTPServer部21は、ダウンロード部23により作成された録画再生用のPlaylistを、復号表示部31に送信する。
【0122】
監視モニタ30において、録画再生用のPlaylistを受信すると、復号表示部31は、HTTPGetリクエストにより、HTTPServer部21に、図5(C)に記述されているキーセグメント[X]のURLを指示して、セグメント[X]の配信を要求する。
【0123】
HTTPServer部21は、ダウンロード部23にキーセグメント[X]の配信要求を与える。これを受けて、ダウンロード部23は、キーセグメント[X]のURLに基づいて、キーセグメントキャッシュ26上にキャッシュされているキーセグメント[X]のデータにアクセスして取り出し、HTTPServer部21に渡す。HTTPServer部21は、キーセグメント[X]のデータを復号表示部31に配信する。
【0124】
復号表示部31は、HTTPServer部21からキーセグメント[X]のデータを逐次ダウンロードするので、映像再生の安定化のためにキーセグメント[X]のデータをバッファリングしながら、映像再生をする。
【0125】
また、キーセグメント[X]のデータのダウンロードが終了すると、復号表示部31は、Playlistに記述されている、キーセグメント[X]の次のセグメント[X+1]のURLを指示してHTTPServer部21に配信要求する。HTTPServer部21は、同様に、配信要求をダウンロード部23に与える。
【0126】
セグメント[X+1]のURLはセグメント蓄積装置24上のURLであるため、ダウンロード部23は、HTTPServer部21から取得したセグメント[X+1]のURLに基づいて、セグメント蓄積装置24からセグメント[X+1]のデータにアクセスして取り出し、HTTPServer部21に渡す。HTTPServer部21は、セグメント[X+1]のデータを復号表示部31に配信する。そして、復号表示部31は、ダウンロードしたセグメント[X+1]のデータをバッファリングしながら、映像再生をする。その後、セグメント[X+2]~再生終了時刻Bのセグメント[W]についても、セグメント[X+1]の配信要求と同様に行なわれる。
【0127】
なお、復号表示部31は、録画再生を開始する場合には、図6に例示するフローチャートに示すように、録画キーセグメント生成部27が長時間のビデオストリーム復号を完了するのを待つ必要がある場合があり、従来方式の監視モニタよりも映像表示開始までにかかる応答時間が長くなる可能性がある。この応答時間は、符号化部12で指定したキーフレームの挿入周期と録画キーセグメント生成部27の復号性能によって決まるので、利用者が許容可能な応答時間に応じて挿入周期を決定するようにしてもよい。
【0128】
また、監視モニタ30において、録画再生中にシーク操作を行った場合、復号表示部31は、新しい表示範囲を指示してHTTPServer部21にPlaylistを要求し、ダウンロード部23及び録画キーセグメント生成部27により、改めてPlaylistが生成される。これにより、監視モニタ30は新たなPlaylistに元づいて映像の再生を行なう。
【0129】
ここで、新しい表示範囲は、すなわち、新しい再生開始時刻及び再生終了時刻である。
【0130】
(A-3)第1の実施形態の効果
以上のように、第1の実施形態によれば、以下の効果を奏する。
【0131】
撮影した映像を符号化するIPカメラの後段に映像ゲートウェイを備え、符号化部が、IPカメラの映像品質を維持しながらもキーフレームの挿入周期を数十倍以上に引き延ばしたことで、従来のビデオストリームのデータ量の過半を占めていたキーフレームデータの構成比率を、ほぼそれを無視できるほどの比率まで低減させることができる。このように再符号化したストリームはIPカメラのビデオストリームと比較して、画質を維持しつつも平均符号量が大幅に低下しており、アクセス回線の所要通信帯域の節約、および、ネットワークビデオレコーダでの録画に必要なデータ領域の節約を図ることができる。
【0132】
キーセグメント生成部又は録画キーセグメント生成部が、量子化誤差がなく、かつ、ロスレスモードの可逆符号化により再生成したキーセグメントをキーセグメントキャッシュに保存することにより、所定のキャッシュ時間経過後のキーセグメントを削除することができる。監視映像の録画データを再生する目的は、事故等の発報を受けて事後に特定シーンを探して繰り返し確認するためであることが多く、本システムはキャッシュ機構を備えているために、そのような目的で再生を行う際には2回目以降の表示開始を短時間で行うことができる。
【0133】
(B)第2の実施形態
次に、本発明に係る処理装置、処理プログラム及び処理方法の第2の実施形態を、図面を参照しながら詳細に説明する。
【0134】
(B-1)第2の実施形態の構成
図8は、第2の実施形態に係る監視システムの全体構成を示す全体構成図である。
【0135】
図8において、第2の実施形態に係る監視システム1Aは、カメラ91、映像ゲートウェイ90、ネットワークビデオレコーダ20A、監視モニタ30を有する。
【0136】
第2の実施形態では、符号化機能を有するIPカメラ5に代えて符号化機能を有しないカメラ91を備えること、復号部11を有する映像ゲートウェイ10に代えて復号部11を有しない映像ゲートウェイ90を備える。また、ネットワークビデオレコーダ20Aのキーセグメント生成部251及び録画キーセグメント生成部271の処理が、第1の実施形態と異なる。
【0137】
上記以外の構成要素は、第1の実施形態で説明したものと同様であるため、以下では、第2の実施形態の技術的な特徴である構成要素を中心に説明する。
【0138】
[カメラ91]
カメラ91は、映像ケーブルで映像ゲートウェイ90と接続しており、撮影映像を映像ゲートウェイ90に転送するものである。カメラ91は、符号化処理機能を有していないため、高画質な映像信号を映像ゲートウェイ90に与えることができる。
【0139】
[映像ゲートウェイ90]
映像ゲートウェイ90は、監視映像としての要件を満たす所定の符号化品質を設定して、カメラ91からの映像を符号化して、アクセス回線を通じてネットワークビデオレコーダ20Aにビデオストリームを送信する。
【0140】
映像ゲートウェイ90は、符号化部92と、符号化部92により符号化された映像をアクセス回線に送信する送信部13を有する。なお、送信部13は、第1の実施形態と同様であるため、ここでの詳細な説明は省略する。
【0141】
符号化部92は、所定の符号化品質を設定して、例えばH.264方式映像を符号化する。符号化部92は、第1の実施形態の符号化部12と同様に、符号化の際に、キーフレーム挿入周期を、監視モニタ30での録画再生の応答時間の上限に合わせて、例えば10分~1時間程度に設定して符号化する(図2(A)参照)。なお、キーフレームの挿入周期については、符号化部92とネットワークビデオレコーダ20Aとの間で互いに設定しておく。
【0142】
符号化部92は、非キーフレームが前方参照する際の参照フレーム数の上限値Rを指定して映像データを符号化する。例えば、上限値R=2と指定した場合、復号表示部31は、復号結果の参照フレームを直近の2フレームだけ常に保持することで、必要な参照が得られるようになる。上限値Rは、符号化効率と符号化に必要な所要メモリ量の兼ね合いに応じて設定することができ、例えば、前方参照フレーム数の上限値R=1~4の範囲で決定するようにしてもよい。なお、上限値Rの設定値は、符号化部92と、ネットワークビデオレコーダ20Aとの間で互いに設定しておく。
【0143】
[ネットワークビデオレコーダ20A]
ネットワークビデオレコーダ20Aは、基本的には、第1の実施形態で説明したネットワークビデオレコーダ20と同様の機能を有する。
【0144】
ネットワークビデオレコーダ20Aは、HTTPServer部21、アップロード部22、ダウンロード部23、セグメント蓄積装置24、キーセグメント生成部251、キーセグメントキャッシュ26、録画キーセグメント生成部271を有する。以下では、第2の実施形態の技術的特徴である、キーセグメント生成部251及び録画キーセグメント生成部271の構成について詳細に説明する。
【0145】
キーセグメント生成部251は、第1の実施形態のキーセグメント生成部25と同様に、アップロード部22から取得した全てのセグメントに含まれる全フレームを復号し、先頭にキーフレームを含むキーセグメントを再生成する。また、キーセグメント生成部251は、生成したキーセグメントの映像データを、生成時刻、撮影時刻情報、セグメントシーケンス情報を含むセグメント付加情報とともに、キーセグメントキャッシュ26に保存する。
【0146】
ここで、キーセグメント生成部251は、符号化部92との間で前方参照フレーム数の上限値Rが設定されている。従って、キーセグメントを再生成する際に、終端している直前のR枚のフレームを参照し、H.264符号化方式で定義されているI_PCMモードに従ったフォーマットで符号化する。これにより、監視モニタ30で当該キーセグメントから映像再生を開始することができ、かつ、ネットワークビデオレコーダ20Aが受信したオリジナルのセグメントに含まれるストリームの復号結果と再作成したキーセグメントに含まれるストリームの復号結果が終端のR枚のフレームで完全に一致する。そのため、当該セグメントに続く非キーフレームからなるセグメントの復号結果も、完全に一致する。それゆえ、再生映像の乱れ等は発生しない。
【0147】
録画キーセグメント生成部271は、第1の実施形態の録画キーセグメント生成部27と同様に、ダウンロード部23から録画再生に係る再生開始時刻Aと再生終了時刻Bとの通知を受ける。録画キーセグメント生成部271は、セグメント蓄積装置24のセグメント及びセグメント付加情報を検索する。録画キーセグメント生成部271は、再生開始時刻Aを含むセグメントシーケンス番号[X]と再生終了時刻Bを含むセグメントシーケンス番号[W]を検索して、検索した結果を、ダウンロード部23に返却する。
【0148】
そして、キーセグメント生成部251は、セグメント[X]の再符号化に必要なセグメント[X-1]までの復号結果を生成し、上述したキーセグメント生成部251と同様の再符号化を行い、キーセグメント[X]を作成する。録画キーセグメント生成部271も、キーセグメント生成部251と同様に、非キーフレームの前方参照フレーム数の上限値Rが設定されている。
【0149】
また、録画キーセグメント生成部271は、キーセグメント[X]の次のセグメントであるセグメント[X+1]を再生成する際に、終端しているキーセグメント[X]直前のセグメントであるセグメント[X-1]における終端のR枚のフレームの復号結果を参照し、H.264符号化方式で定義されているI_PCMモードに従ったフォーマットで符号化する。なお、キーセグメントキャッシュ26は、生成したキーセグメントのデータを、生成時刻、撮影時刻情報、セグメントシーケンス番号とともに保存する。
【0150】
(B-2)第2の実施形態の動作
次に、第2の実施形態に係る監視システム1Aにおける処理を、図面を参照しながら詳細に説明する。
【0151】
カメラ91は、映像を撮影し、映像ケーブルを介して、映像を映像ゲートウェイ90に転送する。
【0152】
映像ゲートウェイ90では、カメラ91から映像データを受信すると、符号化部92が、例えばH.264方式で符号化し、符号化した映像データが送信部13に与えられる。映像データの符号化の際に、キーフレーム挿入周期は、例えば、監視モニタ30への録画再生の応答時間の上限値に合わせて設定する。
【0153】
送信部13では、第1の実施形態と同様に、符号化されたビデオストリームを、ネットワークビデオレコーダ20AへHTTP POSTメソッドで送信する。
【0154】
ネットワークビデオレコーダ20Aにセグメントが受信されると、HTTPServer部21は、セグメント及びセグメント付加情報をアップロード部22に転送する。アップロード部22では、セグメント及びセグメント付加情報をセグメント蓄積装置24に保存すると共に、セグメント及びセグメント付加情報をキーセグメント生成部251に転送する。
【0155】
キーセグメント生成部251では、アップロード部22から受信した全てのセグメントを復号しながら、先頭にキーフレームを含むキーセグメントを再生成し、そのキーセグメントをセグメント付加情報と共にキーセグメントキャッシュ26に保存する。
【0156】
[キーセグメント生成部251によるキーセグメント生成処理]
図9は、第2の実施形態に係るキーセグメント生成部251によるキーセグメントの生成処理を示すフローチャートである。
【0157】
図10は、第2の実施形態に係るキーセグメント生成部251によるキーセグメントの生成処理を説明する説明図である。
【0158】
ここでは、非キーフレームの前方参照フレームの上限値Rが「2」である場合を例示する。
【0159】
またここでは、図10では、「I」をキーフレームとし、「P」を非キーフレームとしており、「L」を可逆符号化で符号化したロスレス符号化フレームとしている。図10の例では、先頭にキーフレームを含んでいるセグメントのセグメントシーケンス番号をセグメント[0]とする。また、その後のセグメントについては、セグメントシーケンス番号を、順番に、セグメント[1]、セグメント[2]、…、セグメント[i-1]、セグメント[i]、…としている。セグメント[1]~[i]には、キーフレームが含まれていない。また、ここでは、例えば撮影時刻t[i]のセグメント[i]を含んでいるキーセグメント(先頭にキーフレームを含んでいるセグメント)を、キーセグメント[i]などと呼んで説明する。
【0160】
ステップS101で、アップロード部22から最新のセグメント[i]を取得する。
【0161】
ステップS300で、キーセグメント生成部251は、当該セグメント[i]のセグメント付加情報に含まれているフラグ情報を参照して、キーフレームを含んでいるセグメントであるか否かを判断する。
【0162】
ステップS301で、当該セグメント[i]の先頭にキーフレームが含まれているとき、すなわち図10のi=0のとき、キーセグメント生成部251は、先頭のキーフレームIを、復号、符号化(再符号化)をせず、キーセグメント[i]における先頭のキーフレームとして出力する。
【0163】
ステップS302では、キーセグメント生成部251は、第2フレーム以降、終端のR枚のフレームを残して復号し、非キーフレームとする。
【0164】
例えば、上記の例の場合、キーセグメント生成部251は、セグメント[i](i=0のとき)の第2フレーム以降の「PPPPP」の5枚のフレームにおいて、終端の2枚のフレーム以前における「PPP」の3枚のフレームを、キーセグメント[i](i=0のとき)における終端の2枚のフレーム以前における「PPP」の3枚のフレームとして出力する。
【0165】
ステップS303では、キーセグメント生成部251は、セグメント[i](i=0のとき)を構成する全てのフレーム(先頭のキーフレームIも含む)を復号し、全てのフレームについてI_PCMモードで再符号化を行なう。
【0166】
さらに、キーセグメント生成部251は、セグメント[i](i=0のとき)の第2フレーム以降の「PPPPP」の5枚のフレームにおいて、終端の2枚のフレーム「PP」を、キーセグメント[i](i=0のとき)における終端の2枚のフレーム「LL」として出力する。
【0167】
ここで、キーセグメント[i](i=0のとき)における終端の2枚のフレーム「LL」は、可逆符号化されたフレームである。
【0168】
ステップS304では、キーセグメント生成部251が、ステップS301~S303で処理された全てのフレームを連結してキーセグメント[i](i=0のとき)を再生成する。そして、キーセグメント[i]のデータを、生成時刻、撮影時刻情報、セグメントシーケンス番号と共にキーセグメントキャッシュ26に保存する。
【0169】
例えば、上記例の場合、キーセグメント生成部251は、S301で処理されたキーフレーム「I」、S302で処理された第2フレーム以降の3枚のフレーム「PPP」、S303で生成された終端の2枚のフレーム「LL」を連結して、「IPPPLL」としたキーセグメント[i](i=0のとき)を生成して、セグメントシーケンス付加情報と共にキーセグメントキャッシュ26に保存する。
【0170】
また、ステップS300で、当該セグメント[i]の先頭にキーフレームが含まれていない場合、ステップS311で、キーセグメント生成部251は、セグメント[0]~セグメント[i-1]の復号結果を参照し、セグメント[i]の先頭フレーム「P」を復号し、これをキーフレームとして符号化する(ステップS301)。
【0171】
例えば、図10において、セグメント[i]についてキーセグメント[i]を生成する場合を例示する。キーセグメント生成部251は、セグメント[0]~セグメント[i-1]を復号し、セグメント[0]~セグメント[i-1]の復号結果を参照して、セグメント[i]の「PPPPPP」のうち先頭の「P」を復号する。
【0172】
さらに、キーセグメント生成部251は、復号した先頭の「P」を、キーセグメント[i]における先頭のフレームでありキーフレームである「I」として、再符号化を行なう。
【0173】
ステップS312では、キーセグメント生成部251は、セグメント[i]における第2フレーム以降、終端のR枚のフレームを残したフレームについて復号し再符号化して、復号され再符号化されたフレームを、非キーフレームとする。
【0174】
例えば、上記の例の場合、キーセグメント生成部251は、セグメント[0]~セグメント[i-1]の復号結果とセグメント[i]における先頭フレーム「P」の復号結果とを参照して、セグメント[i]の第2フレーム以降の「PPPPP」の5枚のフレームのうち、終端の2枚のフレーム以前の「PPP」の3枚のフレームを復号する。
【0175】
さらに、キーセグメント生成部251は、復号された3枚のフレーム「PPP」を、キーセグメント[i]の第2フレーム以降であって、終端の2枚のフレームより前の3枚のフレーム「PPP」として、再符号化を行なう。
【0176】
ここで、再符号化されたフレーム「PPP」は、非キーフレームである。
【0177】
またここで、キーセグメント生成部251は、セグメント[i]の第2フレーム以降の「PPPPP」の5枚のフレームのうち、終端の2枚のフレーム以前の「PPP」の3枚のフレームを、キーセグメント[i]の第2フレーム以降であって、終端の2枚のフレームより前の3枚のフレーム「PPP」としてもよい。
【0178】
ステップS313では、キーセグメント生成部251は、セグメント[i]における終端のR枚のフレームについて復号し、I_PCMモードで再符号化を行なう(可逆符号化を行なう)。
【0179】
ここで、復号されPCMモードで再符号化されたフレームは、可逆符号化にて生成されたフレームであり、キーフレームである。
【0180】
例えば、上記の例の場合、キーセグメント生成部251は、セグメント[0]~セグメント[i-1]の復号結果と、セグメント[i]における先頭フレーム「P」の復号結果と、セグメント[i]の第2フレーム以降における5枚のフレーム「PPPPP」の復号結果とを参照する。
【0181】
さらに、キーセグメント生成部251は、復号結果を参照して、セグメント[i]の第2フレーム以降の「PPPPP」の5枚のフレームのうち、終端の2枚のフレーム「PP」を、I_PCMモードで再符号化を行なう(可逆符号化を行なう)。
【0182】
キーセグメント生成部251は、再符号化された終端の2枚のフレームを、キーセグメント[i]における終端の2枚のフレーム「LL」として出力する。
【0183】
ここで、キーセグメント[i]における終端の2枚のフレーム「LL」は、可逆符号化されたフレームであり、キーフレームである。
【0184】
ステップS304では、キーセグメント生成部251が、ステップS301~S303で処理された全てのフレームを連結してキーセグメント[i]を再生成する。そして、キーセグメント[i]のデータを、生成時刻、撮影時刻情報、セグメントシーケンス番号と共にキーセグメントキャッシュ26に保存する。
【0185】
例えば、上記例の場合、S301で処理(符号化)されたキーフレームとした「I」、S302で処理(符号化)された第2フレーム以降の3枚のフレーム「PPP」、S303で処理(符号化)された終端の2枚のフレーム「LL」を連結して、「IPPPLL」としたキーセグメント[i]を生成して、セグメントシーケンス付加情報と共にキーセグメントキャッシュ26に保存する。
【0186】
なお、復号表示部31によるライブモニタリング用のPlaylistの要求処理、ダウンロード部23によるライブモニタリング用のPlaylistの作成方法、セグメントの配信処理は、基本的には、第1の実施形態と同様であるため、ここでの詳細な説明は省略する。
【0187】
[録画キーセグメント生成部271による処理]
復号表示部31による録画再生用のPlaylistの要求処理、ダウンロード部23による録画再生用のPlaylistの作成方法、セグメントの配信処理は、基本的には、第1の実施形態と同様であるため、ここでの詳細な説明は省略する。
【0188】
以下では、録画キーセグメント生成部271による処理の動作を、図11及び図12を参照して説明する。
【0189】
図11は、第2の実施形態に係る録画キーセグメント生成部271による録画用のキーセグメントの生成処理を示すフローチャートである。図12は、第2の実施形態に係る録画キーセグメント生成部271による録画用のキーセグメントの生成処理を説明する説明図である。
【0190】
図11において、ステップS201~ステップS212までの処理は、第1の実施形態の図6のステップS201~ステップS212の処理と同じであるため、説明を省略する。
【0191】
ステップS401で、録画キーセグメント生成部271は、セグメント[0]~セグメント[X-1]の復号結果を参照し、セグメント[X]の先頭フレーム「P」を復号し、これをキーフレームとして符号化する(ステップS401)。
【0192】
例えば、図10において、録画キーセグメント生成部271がセグメント[X]からキーセグメント[X]を生成する場合を例示する。キーセグメント生成部251は、セグメント[0]~セグメント[X-1]を復号し、セグメント[0]~セグメント[X-1]の復号結果を参照して、セグメント[i]の「PPPPPP」のうち先頭の「P」を復号する(ステップS401)。
【0193】
さらに、録画キーセグメント生成部271は、復号した先頭の「P」を、キーセグメント[X]における先頭のフレームでありキーフレームである「I」として、再符号化を行なう。
【0194】
ステップS402では、録画キーセグメント生成部271は、セグメント[X]における第2フレーム以降、終端のR枚のフレームを残したフレームについて復号し再符号化して、復号され再符号化されたフレームを、非キーフレームとする。
【0195】
例えば、上記の例の場合、録画キーセグメント生成部271は、セグメント[0]~セグメント[X-1]の復号結果とセグメント[X]における先頭フレーム「P」の復号結果とを参照して、セグメント[X]の第2フレーム以降の「PPPPP」の5枚のフレームのうち、終端の2枚のフレーム以前の「PPP」の3枚のフレームを復号する。
【0196】
さらに、録画キーセグメント生成部271は、復号された3枚のフレーム「PPP」を、キーセグメント[X]の第2フレーム以降であって、終端の2枚のフレームより前の3枚のフレーム「PPP」として、再符号化を行なう。
【0197】
ここで、録画キーセグメント生成部271は、セグメント[X]の第2フレーム以降の「PPPPP」の5枚のフレームのうち、終端の2枚のフレーム以前の「PPP」の3枚のフレームを、キーセグメント[X]の第2フレーム以降であって、終端の2枚のフレームより前の3枚のフレーム「PPP」としてもよい。
【0198】
ステップS403では、録画キーセグメント生成部271は、セグメント[X]における終端のR枚のフレームについて復号し、I_PCMモードで再符号化を行なう(可逆符号化を行なう)。
【0199】
ここで、復号されPCMモードで再符号化されたフレームは、可逆符号化にて生成されたフレームであり、キーフレームである。
【0200】
例えば、上記の例の場合、録画キーセグメント生成部271は、セグメント[0]~セグメント[X-1]の復号結果と、セグメント[X]における先頭フレーム「P」の復号結果と、セグメント[X]の第2フレーム以降における5枚のフレーム「PPPPP」の復号結果とを参照する。
【0201】
さらに、録画キーセグメント生成部271は、復号結果を参照して、セグメント[i]の第2フレーム以降の「PPPPP」の5枚のフレームのうち、終端の2枚のフレーム「PP」を、I_PCMモードで再符号化を行なう(可逆符号化を行なう)。
【0202】
録画キーセグメント生成部271は、再符号化された終端の2枚のフレームを、キーセグメント[X]における終端の2枚のフレーム「LL」として出力する。
【0203】
ここで、キーセグメント[X]における終端の2枚のフレーム「LL」は、可逆符号化されたフレームであり、キーフレームである。
【0204】
そして、ステップS404で、録画キーセグメント生成部271は、ステップS401~S403で処理(符号化)された全てのフレームを連結してキーセグメント[X]を再生成する。そして、キーセグメント[X]のデータを、生成時刻、撮影時刻情報、セグメントシーケンス番号と共にキーセグメントキャッシュ26に保存する。こうして作成したキーセグメント映像データを、撮影時刻情報、セグメントシーケンス番号とともに、キーセグメントキャッシュ26へ転送する。
【0205】
例えば、上記例の場合、S401で処理(符号化)されたキーフレームとした「I」、S402で処理(符号化)された第2フレーム以降の3枚のフレーム「PPP」、S403で処理(符号化)された終端の2枚のフレーム「LL」を連結して、「IPPPLL」としたキーセグメント[X]を生成して、セグメントシーケンス付加情報と共にキーセグメントキャッシュ26に保存する。
【0206】
(B-3)第2の実施形態の効果
以上のように、第2の実施形態によれば、映像エンコーダはカメラからの映像を直接符号化するため、第1の実施形態よりも機器構成が簡単になり、再符号化を行うことによる映像品質の劣化を回避することができる。
【0207】
また、第2の実施形態によれば、キーセグメント生成部及び録画キーセグメント生成部は、第1の実施形態よりも、可逆符号化対象のフレーム数が少ないために、キーセグメントのデータ量を低減することができるので、キーセグメントキャッシュに必要なメモリ量を減らすことができる。
【0208】
(C)他の実施形態
上述した第1及び第2の実施形態においても種々の変形実施形態を言及したが、本発明は、以下の変形実施形態にも適用できる。
【0209】
(C-1)第1の実施形態では、IPカメラ5が、H.264符号化を行う場合を例示したが、Motion-JPEG等のより広く使われている方式を用いることができる。その場合、符号化部12は、IPカメラ5に設定した映像ビットレートや画質指定値を参考に、概ね同程度の画質になるような条件にH.264で符号化を行う。
【0210】
(C-2)第1及び第2の実施形態では、1台のネットワークビデオレコーダに対して、IPカメラ、映像ゲートウェイ、監視モニタを1台ずつ接続する例を示したが、それぞれ複数台数接続して、個別に制御することも可能である。
【0211】
また、監視モニタはHLSストリーミング再生をサポートするブラウザ等の汎用的なソフトを利用してもよく、1台の監視端末で複数のカメラ映像をモニタすることも可能である。
【0212】
(C-3)第1及び第2の実施形態では、録画再生においては、ネットワークビデオレコーダから直接ストリーミング再生するのではなく、一旦監視モニタのローカルストレージにMPEG-TSファイルとしてダウンロードしてから再生することも可能であり、ダウンロード処理の際に録画キーセグメントを周期的に挿入することで、シーク操作が可能な通常の録画ファイルとして利用することができるようになる。
【0213】
(C-4)第1及び第2の実施形態では、符号化部でH.264符号化方式を使用したが、ロスレスモードをサポートする他の符号化方式、例えばH.265やVP9を使用しても同じ効果を得られる。すなわち、量子化誤差がなく、かつ、ロスレスモードをサポートする符号化形式であれば、様々な符号化方式を適用できる。
【0214】
(C-5)第1及び第2の実施形態では、セグメント分割対象としてMPEG-TSで多重化してHLS方式でストリーミング配信するシステムとしたが、類似の方式として、MP4で多重化してMPEG-DASH方式でストリーミング配信するシステムとしても同じ効果を得られる。
【0215】
(C-6)第2の実施形態では、非キーフレームの前方参照フレームの上限値を設定する場合を例示したが、第1の実施形態でも、非キーフレームの前方参照フレームの上限値を設定した符号化処理を行なうようにしてもよい。
【0216】
(C-7)上述した第1及び第2の実施形態で説明したキーセグメント生成部25及び251は、ライブモニタリングの要求があったとき、又は、録画再生の要求があった場合に必要なときにキーセグメントを生成する場合を例示した。
【0217】
しかし、キーセグメント生成部25及び251は、所定時間毎(例えば、10分間隔等)に、キーセグメントを生成するようにしてもよい。つまり、所定時間毎に、現時刻よりも過去であって、直近のキーフレームを含むセグメントをセグメント蓄積装置24から取得して、その全てのセグメントの全フレームを復号してこれらを連結して、所定間隔毎にキーセグメントキャッシュに保存しておくようにしてもよい。これにより、監視モニタから、過去の録画再生の要求があった場合に、キーセグメントキャッシュにキャッシュされているキーセグメントを検索しやすくなる。また、キーセグメントの生成にはある程度の時間がかかってしまうおそれがあるが、上記のように、予めキーセグメントを生成してキャッシュしておくことで、キーセグメントが検索されやすくなり、監視モニタでの映像再生までの時間を短縮することができる。
【符号の説明】
【0218】
1及び1A…監視システム、5…IPカメラ、91…カメラ、10…映像ゲートウェイ、11…復号部、12及び92…符号化部、13…送信部、90…映像エンコーダ、20…ネットワークビデオレコーダ、21…HTTPServer部、22…アップロード部、23…ダウンロード部、24…セグメント蓄積装置、25…キーセグメント生成部25…キーセグメントキャッシュ、27…録画キーセグメント生成部、30…監視モニタ、31…復号表示部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12