(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-12
(45)【発行日】2024-01-22
(54)【発明の名称】ビデオエンコーダの出力ビットレートを制御する方法及びビットレートコントローラ
(51)【国際特許分類】
H04N 19/126 20140101AFI20240115BHJP
H04N 19/146 20140101ALI20240115BHJP
H04N 19/172 20140101ALI20240115BHJP
H04N 5/765 20060101ALI20240115BHJP
H04N 7/18 20060101ALI20240115BHJP
H04N 21/236 20110101ALI20240115BHJP
【FI】
H04N19/126
H04N19/146
H04N19/172
H04N5/765
H04N7/18 A
H04N21/236
【外国語出願】
(21)【出願番号】P 2020077906
(22)【出願日】2020-04-27
【審査請求日】2023-04-07
(32)【優先日】2019-05-24
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】エドパルム, ヴィクトル
(72)【発明者】
【氏名】ダニエルソン ファン, シン
(72)【発明者】
【氏名】トーレソン, アレクサンデル
【審査官】鉢呂 健
(56)【参考文献】
【文献】特表2010-525739(JP,A)
【文献】特開2018-201195(JP,A)
【文献】WANG, Beibei et al.,EFFICIENT FRAME COMPLEXITY ESTIMATION AND APPLICATION TO G.1070 VIDEO QUALITY MONITORING,2011 Third International Workshop on Quality of Multimedia Experience,IEEE,2011年11月03日,pp.96-101,<URL: https://ieeexplore.ieee.org/document/6065720>,<DOI: 10.1109/QoMEX.2011.6065720>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
H04N 5/765
H04N 7/18
H04N 21/236
(57)【特許請求の範囲】
【請求項1】
ビデオシーケンスをエンコーディングするビデオエンコーダの出力ビットレートを制御する方法であって、
許容平均ビットレートを設定することと、
第1の期間中にビデオをエンコーディングすることにより、エンコーディングデータを集め、前記第1の期間の複数の時間間隔のそれぞれの時間間隔について、前記時間間隔中に出力された各出力ビットレート、及び、前記時間間隔中のエンコーディングに使用された各量子化パラメータを保存することと、
所定の公称量子化パラメータに基づき、且つ前記各出力ビットレート及び前記各量子化パラメータに応じて推定される、対応する正規化済ビットレートを計算することにより、各時間間隔について前記出力ビットレートを正規化することと、
前記複数の時間間隔の前記正規化済ビットレートを平均することにより、前記第1の期間にわたる平均正規化済ビットレートを計算することと、
前記平均正規化済ビットレート及び前記許容平均ビットレートの比較に基づいて、新たな量子化パラメータを計算することと、
前記第1の期間に続く第2の期間中に、前記新たな量子化パラメータを使用して、前記ビデオシーケンスをエンコーディングすることと、を含む方法。
【請求項2】
前記平均正規化済ビットレートを、前記許容平均ビットレートと比較することと、
前記平均正規化済ビットレートが、前記許容平均ビットレートを超える場合、前記公称量子化パラメータより高い、新たな量子化パラメータを計算することと、
前記平均正規化済ビットレートが、前記許容平均ビットレート以下の場合、前記公称量子化パラメータ以下の、新たな量子化パラメータを計算することと、をさらに含む、請求項1に記載の方法。
【請求項3】
前記平均正規化済ビットレートが、最大平均ビットレートを超える場合、最大ビットレート制御を適用することと、
前記平均正規化済ビットレートが、前記最大平均ビットレート以下の場合、可変ビットレート制御を適用することと、をさらに含む、請求項2に記載の方法。
【請求項4】
エンコーディングデータを集めることが、
各時間間隔について、
前記時間間隔中にエンコードされた前記ビデオの信号対ノイズ比(signal-to-noise ratio又はSNR)についてのデータを保存することをさらに含
み、
前記方法が、
前記SNRが、第1のSNR閾値未満の場合、前記時間間隔中に使用された前記量子化パラメータをSNRオフセット値分オフセットし、前記平均正規化済ビットレートを計算することにおいて、より低い量子化パラメータが前記時間間隔について使用されるようにすることをさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
エンコーディングデータを集めることが、
各時間間隔について、前記時間間隔中の、パン/チルト/ズーム(pan/tilt/zoom又はPTZ)ムーブメント
についてのデータを保存することをさらに含み、前記方法が、
前記PTZムーブメントが、第1のPTZ閾値を超える場合、前記時間間隔中に使用された前記量子化パラメータ
をPTZオフセット値分オフセットし、前記平均正規化済ビットレートを計算することにおいて、より低い量子化パラメータ
が前記時間間隔に
ついて使用されるようにすることをさらに含む、請求項
1から4
のいずれか一項に記載の方法。
【請求項6】
前記量子化パラメータ、前記公称量子化パラメータ、及び前記新たな量子化パラメータはそれぞれ、1つ又はそれ以上の量子化パラメータを代表する、代表的な量子化パラメータである、請求項1から
5のいずれか一項に記載の方法。
【請求項7】
前記第2の期間中に、
前記第2の期間中にビデオをエンコーディングすることにより、エンコーディングデータを集め、前記第2の期間の複数の時間間隔のそれぞれの時間間隔について、前記時間間隔中に出力された各出力ビットレート、及び、前記時間間隔中のエンコーディングに使用された各量子化パラメータを、先入れ先出しにて保存することをさらに含む、請求項1から
6のいずれか一項に記載の方法。
【請求項8】
前記方法は、複数の時点にて繰り返され、前記第1の期間は、各時点に対して、その時点より前の、固定期間の時間範囲をカバーする、スライドする時間ウィンドウに対応する、請求項1から
7のいずれか一項に記載の方法。
【請求項9】
前記正規化済ビットレートは、量子化パラメータにおける変化がどのように出力ビットレートに影響するかを規定する所定の関係を使用して計算される、請求項1から
8のいずれか一項に記載の方法。
【請求項10】
前記新たな量子化パラメータは、量子化パラメータにおける変化がどのように出力ビットレートに影響するかを規定する所定の関係を使用して計算される、請求項1から
9のいずれか一項に記載の方法。
【請求項11】
ビデオシーケンスをエンコーディングするビデオエンコーダの出力ビットレートを制御するためのビットレートコントローラであって、
許容平均ビットレートを設定するよう構成されているビットレートプリセッタであって、利用可能な記憶容量に基づいて前記許容平均ビットレートを計算するビットレートプリセッタと、
第1の期間中にエンコーディングビデオからのエンコーディングデータを保存し、前記第1の期間の複数の時間間隔のそれぞれの時間間隔について、前記時間間隔中に出力された各出力ビットレート、及び、前記時間間隔中にエンコーディングに使用された各量子化パラメータを保存するよう構成されているデータストレージと、
所定の公称量子化パラメータに基づき、且つ前記各出力ビットレート及び前記各量子化パラメータに応じて推定される、対応する正規化済ビットレートを計算することにより、各時間間隔について前記出力ビットレートを正規化するよう構成されている出力ビットレートノーマライザと、
前記複数の時間間隔の前記正規化済ビットレートを平均することにより、前記第1の期間にわたる平均正規化済ビットレートを計算するよう構成されている平均ビットレート計算器と、
前記平均正規化済ビットレート及び前記許容平均ビットレートの比較に基づいて、新たな量子化パラメータを計算するよう構成されている量子化パラメータ計算器と、
前記第1の期間に続く第2の期間中に、前記ビデオシーケンスをエンコーディングするために、前記新たな量子化パラメータを、前記ビデオエンコーダに出力するよう構成されている制御出力と
を含む、ビットレートコントローラ。
【請求項12】
請求項1から
10のいずれか一項に記載の方法を実施するよう構成されている命令を含む非一時的コンピュータ可読記憶媒体。
【請求項13】
請求項
11に記載のビットレートコントローラを含むカメラ。
【請求項14】
請求項
11に記載のビットレートコントローラを含むネットワークビデオレコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオエンコーディング、特に、ビデオエンコーダの出力ビットレートを制御することの分野に関する。
【背景技術】
【0002】
ネットワークカメラモニタリングシステムなどのデジタルビデオシステムでは、ビデオシーケンスは、種々のビデオエンコーディング方法を使用して、送信前にエンコーダにより圧縮される。多くの場合、それを介してビデオシーケンスが送信されるネットワークにおいて、帯域幅が制限されており、したがって、エンコーダの出力ビットレートを制御するために、レートコントローラがしばしば使用される。これはまた、記憶容量をも制限する場合があり、エンコーダが出力するビット数の制御を必要とする。
【0003】
レートコントローラは、各種のビットレート制御スキームの1つを適用してよい。一定ビットレート(constant bitrate又はCBR)、最大ビットレート(maximum bitrate又はMBR)、又は可変ビットレート(variable bitrate又はVBR)を採用してよい。CBRは、エンコーダが、撮像されたシーン内に何が起こるかに関わらず、同じビットレートを常に出力しようとすることを意味する。帯域幅が制限される場合、これは、シーン内にモーションがある場合には低品質イメージをもたらすことがあるが、イメージが静止している場合には高品質イメージをもたらすことがある。サーベイランス又はモニタリングの状況においては、これは一般的に有益ではない。なぜなら、モーションのあるシーンは通常、静止シーンよりも高い関心を寄せるからである。MBRでは、設定されたビットレートリミットを超えない限り、ビットレートは変更が許される。このアプローチに関する問題は、CBRに関連付けられたものと同様である。MBRリミットが過剰に低く設定されている場合、モーションのあるシーンのイメージは低品質となる場合がある。しかし、このリミットが高く設定されている場合、静止シーンのイメージをエンコーディングする際に、モーションに対応するために、出力ビットレートが不必要に高くなる場合がある。VBRはまた、一定の品質のビットレートとも呼ばれ得る。これは、エンコードされたイメージの品質は一定に維持されるべきではあるが、出力ビットレートは、シーン内に何が起こっているかによって変更が許されることを意味する。このアプローチは、シーン内にモーションがある場合に、高出力ビットレートをもたらし得る。
【0004】
これは、エンコードされたイメージを、モバイルネットワークを介して送信する際などの、帯域幅が制限される場合に特に問題である。同様に、イメージをカメラ上、例えば、セキュアデジタル(secure digital又はSD)カード上に保存する際などの、ストレージが制限される場合に問題である。高出力ビットレートはまた、大型のカメラシステムにおいて、カメラのいくつかが、モーションのあるシーンのイメージを同時に送信する場合に問題となり得る。
【0005】
デジタルビデオシステムにおける別の問題は、記憶容量に対する必要性の算定が難しいことである。CBRが使用されている場合、必要とされる記憶容量を推定することが、一定ビットレートに所望する保持時間を単に乗算することにより容易となる。しかし、MBR及びVBRでは、撮像されたシーン内に何が起こるかによってビットレートが変化する。ストレージのコストは多くの場合、デジタルビデオシステムのコストの大部分であり、したがって、システムのオーナーは、記憶容量を下げようとするものである。依然としてこれは、記録されたビデオを失うリスクを伴う。なぜなら、撮像されたシーン内のモーション及び細部が多い場合に、所望する保持時間にわたって出力されたビットの総量が、利用可能な記憶容量に対して大きすぎる場合があるからである。
【0006】
これらの問題は、出願人による係属中の出願EP-3396961にて取り上げられている。ここではビットレートは、長期ビットバジェット及び瞬間ビット規制を設定することにより制御される。長期ビットバジェットは、利用可能な記憶容量に基づいて設定されてよく、第1の許容ビットレートを判定することに使用される。瞬間ビット規制は、例えば、利用可能な帯域幅に基づいてよく、第2の許容ビットレートを判定することに使用される。出力ビットレートは、長期ビットバジェット、第1の許容ビットレート、及び第2の許容ビットレートを満たすために、第1及び第2の許容ビットレートに基づいて制御される。本出願では、ビットレートコントローラへの入力として、履歴データが使用されてよい、ということが提案される。しかし、実験に基づくエンコーディングデータを考慮する、効率的で信頼性のある方法に対する必要性が依然として残る。
【発明の概要】
【0007】
本発明の目的は、ビットバジェットが適合していることを確かめることができるようにする、ビデオエンコーダからの出力ビットレートを制御する方法を提供することである。
【0008】
別の目的は、モニターされているシーンにおいて、高い関心を寄せるイベントの高品質イメージが提供され得、モニターされているシーンにおいて、アクティビティが少ない期間中に、ビットレートが不必要に高くならないことを確かにするよう、利用可能なビットバジェットの効率的な使用を可能にする、ビデオエンコーダの出力ビットレートを制御する方法を提供することである。
【0009】
本発明の目的はまた、ビデオシーケンスの先のエンコーディングから得た知識を考慮できるようにする、ビデオエンコーダの出力ビットレートを制御する方法を提供することである。
【0010】
さらに別の目的は、効率的なビットの使用を可能にする、ビデオシーケンスをエンコーディングするビデオエンコーダの出力ビットレートを制御するビットレートコントローラを提供することである。
【0011】
また、本発明の目的は、ビデオシーケンスの前のエンコーディングについてのデータを好適に利用できるようにするビットレートコントローラを提供することである。
【0012】
第1の態様によると、これらの目的は、ビデオシーケンスをエンコーディングするビデオエンコーダの出力ビットレートを制御する方法により、完全に、又は、少なくとも部分的に、達成される。この方法は、許容平均ビットレートを設定することと、第1の期間中に、及び、第1の期間の複数の時間間隔のそれぞれに対して、ビデオをエンコーディングすることにより、エンコーディングデータを集め、時間間隔中に出力された各出力ビットレート、及び、各時間間隔中のエンコーディングに使用された量子化パラメータを保存することと、各時間間隔中に使用された出力ビットレート及び量子化パラメータに応じた所定の公称量子化パラメータに対して推定された、対応する正規化済ビットレートを計算することにより、各時間間隔に対する出力ビットレートを正規化することと、複数の時間間隔の正規化済ビットレートを平均することにより、第1の期間にわたる平均正規化済ビットレートを計算することと、平均正規化済ビットレート及び許容平均ビットレートの比較に基づいて、新たな量子化パラメータを計算することと、第1の期間に続く第2の期間中に、新たな量子化パラメータを使用して、ビデオシーケンスをエンコーディングすることと、を含む。そのような方法により、許容平均ビットレートが適合し得るように、ビットレートを効率的に制御できる。また、モニターされているシーン内の高い関心を寄せるイベントの、高品質イメージが提供され得るよう、及び、シーン内に発生していることが少ない、又は、何も発生していない場合に、ビットレートが不必要に高くならないよう、ビットが賢明に使用されることを確かにできる。第1の期間の時間間隔中に出力ビットレートを検討することにより、そして、それらの時間間隔中に使用された量子化パラメータの知識を用いて、生成されていたであろう、それらの時間間隔のすべての中で、公称量子化パラメータが使用されていたビットレートを推定できる。この正規化済ビットレートは次に、第1の期間の全体に対する正規化済平均ビットレートを計算できるようにする。第2の、後続の期間中の、ビデオシーケンスのエンコーディング中に使用する新たな量子化パラメータは、正規化済平均ビットレート及び許容平均ビットレートに基づいて計算され得る。したがって、第2の期間中の出力ビットレートが、許容平均ビットレート未満に維持されていることを確かにすべき、新たな量子化パラメータを計算できる。その日中のアクティビティの変化などの、周期的な行動のあるシーンにおいて、その周期的な行動を撮像するのに十分長い第1の期間についてのデータが一度保存されると、許容平均ビットレートに適合できるようにする新たな量子化パラメータを見つけることができ得る。出力ビットレートは、より低い出力ビットレートの期間分、オーバーシュートが補償される限り、第2の期間の各部分に対して、許容平均ビットレートを上回ることが許されてよい。許容平均ビットレートは、例えば、利用可能な記憶容量を反映してよい。許容平均ビットレートは、必要とされる保持時間で除算した、利用可能な記憶容量として計算されてよく、例えば、ビット数/秒、又は、ビット数/時にて表されてよい。必要とされる保持時間は、例えば、60日であってよい。許容平均ビットレートには、マージンを設定して、例えば、利用可能な記憶容量の90%を反映し、したがって、予期しないイベントに対して、より高い出力ビットレートを生成できるようにしてよい。
【0013】
この方法のいくつかの変形例では、この方法は、平均正規化済ビットレートを、許容平均ビットレートと比較することをさらに含む。平均正規化済ビットレートが、許容平均ビットレートを超える場合、公称量子化パラメータより高い、新たな量子化パラメータが計算され、平均正規化済ビットレートが、許容平均ビットレート以下の場合、公称量子化パラメータ以下の、新たな量子化パラメータが計算される。これにより、第2の期間中のエンコーディングが適合され、許容平均ビットレートが、時間の経過と共に適合されるようになってよい。これにより、必要とされる保持時間が満たされてよい。
【0014】
平均正規化済ビットレートが、最大平均ビットレートを超える場合、最大ビットレート制御が適用されてよく、平均正規化済ビットレートが最大平均ビットレート以下の場合、可変ビットレート制御が適用されてよい。これは、許容平均ビットレートが適合していることを確かにする実用的な方法であり、次に、必要とされる保持時間を確かにすることができる。最大平均ビットレートは、必要とされる保持時間で除算した、利用可能な記憶容量として計算されてよい。換言すると、最大平均ビットレートは、マージンのない許容平均ビットレートと言ってよい。
【0015】
代替的に、最大ビットレート制御は、平均正規化済ビットレートが、最大平均ビットレートを超える、又は、それ未満であるか否かに関わらず使用されてよいが、ビットレートリミットは、平均正規化済ビットレートが最大平均ビットレートを超える場合には低く設定されてよく、平均正規化済ビットレートが最大ビットレート以下の場合には高く設定されてよい。ビットレートリミットは、第2の期間の長さで除算した最大平均ビットレートに対するマージンとして設定されてよい。
【0016】
この方法のいくつかの変形例では、エンコーディングデータを集めることとは、各時間間隔に対する、少なくとも1つの既知の、ビットレートを増やす外乱要因についてのデータを保存することをさらに含む。これは、ビットレートを増やすことが知られる、第1の期間中のイベントの発生を考慮できるようにし、新たな量子化パラメータの計算が適合され得るようにする。外乱要因は、シーン内のイベントについての、いずれの有益な、又は、高い関心を寄せる情報を提供することなく、出力ビットレートを増やすいずれの要因であってよい。少なくとも1つの既知の、ビットレートを増やす外乱要因についてのデータそのものは、保存される必要はないが、保存された量子化パラメータに影響を及ぼすために使用され得る。
【0017】
外乱要因は、各時間間隔中にエンコードされるビデオの信号対ノイズ比(signal-to-noise ratio又はSNR)であってよい。この方法は、SNRが第1のSNR閾値未満の場合、時間間隔中に使用された量子化パラメータをSNRオフセット値分オフセットし、平均正規化済ビットレートを計算することにおいて、より低い量子化パラメータが各時間間隔に使用されるようにすることをさらに含んでよい。ビデオ内にノイズが多い場合、つまりSNRが低い場合、シーン内にて起こっている、高い関心を寄せるさらなるものがなくとも、エンコーダからの出力ビットレートは上がる。低いSNRを伴う時間間隔中に使用された量子化パラメータをオフセットすることにより、新たな量子化パラメータの計算において、ノイズの影響が補償されてよい。例えば、第1の期間の1つ又はそれ以上の時間間隔が、夕暮れ又は夜明け時などの、低照度条件中のものである場合、それらの時間間隔中に撮像されたイメージ中には、高レベルのノイズが生じることが一般的に知られている。このノイズは、シーン内のイベントを理解することには寄与しないが、イメージを表すために必要とされるビット数を増やす。なぜならこれは、イメージフレーム間の時間的冗長性を減らすからである。換言すると、ノイズは、フォレンジック値を加えることなく、エンコーダからの出力ビットレートに加わる。それらの時間間隔中のノイズが、第2の期間などの、後続の期間中にビデオをどのようにエンコードするかの決定に影響することが許される場合、そのビデオは、特に、それらの後続の期間中のイメージ中にノイズが多くない場合、高量子化パラメータを使用して、不必要に過度に圧縮される場合がある。
【0018】
イメージセンサデータのコンテキストにおいて、ノイズは、撮像されたシーン内に存在しない何かを表すイメージセンサデータである。ノイズは時間的に、つまり、1つのイメージフレームから次のイメージフレームにわたって変化し得る、又は、空間的に、つまり、同じフレーム内の1つのピクセルから別のピクセルにわたって異なり得る。ノイズには種々のソースがある。時間的ノイズは、例えば、リセットノイズ、熱ノイズ、フリッカノイズ、暗電流ショットノイズ、量子化ノイズ、又はフェーズノイズであり得る。空間的ノイズは、例えば、暗い固定パターンノイズ、明るい固定パターンノイズ、リーカーノイズ、欠陥ピクセルノイズ、又はコスメティック欠陥ノイズであり得る。
【0019】
外乱要因は、各時間間隔中のパン/チルト/ズーム(pan/tilt/zoom又はPTZ)ムーブメントであり得る。この方法は、PTZムーブメントが第1のPTZ閾値を超える場合、時間間隔中に使用された量子化パラメータをPTZオフセット値分オフセットし、平均正規化済ビットレートを計算することにおいて、より低い量子化パラメータが各時間間隔に使用されるようにすることをさらに含んでよい。ノイズと同様に、カメラムーブメントは、フォレンジック値として多くを加えることなく、出力ビットレートに加わる。したがって、平均正規化済ビットレートを計算する際に、量子化パラメータをオフセットすることにより、このビットレートの増加の影響を減らすことができることは有益である。
【0020】
外乱の度合いが高い場合に量子化パラメータをオフセットすることの代わりに、外乱の度合いが十分に低い場合に、量子化パラメータを反対方向にオフセットすることも可能となるであろう。
【0021】
この方法のいくつかの変形例では、量子化パラメータ、公称量子化パラメータ、及び新たな量子化パラメータはそれぞれ、1つ又はそれ以上の量子化パラメータを代表する、代表的な量子化パラメータである。このようにして、各イメージフレームの異なる部分に、異なる量子化パラメータが使用されてよい。イメージフレームの一部位に対する、又は、特定のマクロブロックに対する量子化パラメータは、代表的な量子化と比較して、減らされてよい、又は、増やされてよい。例えば、この減少、又は、増加は、その部位又はマクロブロックが、イメージフレームの、関連性のある一部分、又は、関連性のない一部分にあるものと見なされるか否かに基づいてよい。イメージフレームの、関連性のある一部分、及び、関連性のない一部分へのそのような分割を使用するエンコーディング方法が、出願人による係属中の出願EP-3021583に開示されている。
【0022】
この方法は、第2の期間中に、及び、第2の期間の複数の時間間隔のそれぞれに対して、ビデオをエンコーディングすることにより、第2の期間中にエンコーディングデータを集め、時間間隔中に出力された各出力ビットレート、及び、各時間間隔中のエンコーディングに使用された量子化パラメータを、先入れ先出しにて保存することをさらに含んでよい。スライドするウィンドウのアプローチが使用されてよい。ここでは、十分に長い期間についてのデータが取得されるとすぐに、来る時間間隔において使用される新たな量子化パラメータを判定することに、保存されたデータが使用される。その時間間隔の出力ビットレート及び量子化パラメータが続いてナレッジベースに加えられ、等しく長い時間間隔に対応する最も古いデータが破棄される。
【0023】
この方法は、複数の時点にて繰り返されてよく、第1の期間は、各時点に対して、その時点より前の、固定期間の時間範囲をカバーする、スライドする時間ウィンドウに対応する。
【0024】
正規化済ビットレートは、量子化パラメータにおける変化がどのように出力ビットレートに影響するかを規定する所定の関係を使用して計算されてよい。量子化パラメータにおける変化が、出力ビットレートにどのように影響するかの知識を使用することにより、公称量子化パラメータを用いてビデオシーケンスを再度エンコードする必要なく、正規化済ビットレートが、計算され得る、又は、推定され得る。
【0025】
この方法のいくつかの変形例では、新たな量子化パラメータは、量子化パラメータにおける変化がどのように出力ビットレートに影響するかを規定する所定の関係を使用して計算される。正規化済ビットレートの計算と同様に、量子化パラメータ及び出力ビットレートにおける変化の間の関係の知識は、一式の異なる試験的な量子化パラメータを用いての、第2の期間のビデオシーケンスを試験的にエンコーディングする必要性なく、新たな量子化パラメータの計算又は推定を可能にする。
【0026】
第2の態様によると、上記の目的は、ビデオシーケンスをエンコーディングするビデオエンコーダの出力ビットレートを制御するビットレートコントローラを用いて、完全に、又は、少なくとも部分的に、達成される。このビットレートコントローラは、許容平均ビットレートを設定するよう構成されているビットレートプリセッタと、第1の期間中に、第1の期間の複数の時間間隔のそれぞれに対して、エンコーディングビデオからのエンコーディングデータを保存し、時間間隔中に出力された各出力ビットレート、及び、各時間間隔中にエンコーディングに使用された量子化パラメータを保存するよう構成されているデータストレージと、各時間間隔中に使用された出力ビットレート及び量子化パラメータに応じた所定の公称量子化パラメータに対して推定された、対応する正規化済ビットレートを計算することにより、各時間間隔に対する出力ビットレートを正規化するよう構成されている出力ビットレートノーマライザと、各時間間隔中に使用された量子化パラメータに応じて、第1の期間にわたる平均正規化済ビットレートを計算するよう構成されている平均ビットレート計算器と、平均正規化済ビットレート及び許容平均ビットレートの比較に基づいて、新たな量子化パラメータを計算するよう構成されている量子化パラメータ計算器と、第1の期間に続く第2の期間中に、ビデオシーケンスをエンコーディングするために、新たな量子化パラメータを、ビデオエンコーダに出力するよう構成されている制御出力と、を含む。そのようなビットレートコントローラは、後続の期間中のエンコーディングのための適切な量子化パラメータを設定するための、先のエンコーディングのアウトカムの知識を使用できるようにする。これは、必要とされる保持時間を確かに維持でき、また、利用可能な記憶容量の効率的な使用を可能にする。
【0027】
第2の態様のビットレートコントローラは、第1の態様のビットレート制御方法と本質的に同じ方法にて、付随する利点と共に具現化されてよい。
【0028】
第3の態様によると、上記の目的は、第1の態様に係る方法を実施するよう構成されている命令を保存している非一時的コンピュータ可読記憶媒体を含むコンピュータプログラム製品を用いて、完全に、又は、少なくとも部分的に、達成される。
【0029】
第4の態様によると、上記の目的は、第2の態様に係るビットレートコントローラを含むカメラを用いて、完全に、又は、少なくとも部分的に、達成される。
【0030】
第5の態様によると、上記の目的は、第2の態様に係るビットレートコントローラを含むネットワークビデオレコーダを用いて、完全に、又は、少なくとも部分的に、達成される。
【0031】
本発明の適用性のさらなる範囲が、以下の詳細説明より明らかとなるであろう。しかし、本発明の好適な実施形態を示す一方で、詳細説明及び具体例は、説明のみの目的に提供されていることが理解されるべきである。なぜなら、本発明の範囲内での種々の変更及び改修が、本詳細説明から当業者に明らかとなるからである。
【0032】
したがって、本発明は、記載するデバイスの特定の構成部品、又は、記載する方法の特定のステップに限定されず、そのようなデバイス及び方法は異なる場合があることが理解されよう。ここに使用する用語は、特定の実施形態を説明することのみを目的としており、限定を意図していないこともまた理解されよう。なお、本明細書及び添付の特許請求の範囲に使用されるように、不定冠詞「a」及び「an」、定冠詞「the」、及び「said」は、他の例が文脈により明確に決定づけられない限り、要素が1つ又はそれ以上あることを意味するよう意図していることに注意されたい。したがって、例えば、「あるオブジェクト(an object)」又は「そのオブジェクト(the object)」が引用される場合、これは、いくつかのオブジェクトなどを含んでよい。さらに、「含む(comprising)」という語は、他の要素又はステップを排除しない。
【0033】
本発明を、例示のために、そして、添付の概略図面を参照して、以下にさらに詳細に説明する。
【図面の簡単な説明】
【0034】
【
図1】
図1は、カメラによりモニターされているシーンを示す。
【
図3】
図3は、第1の期間中に、ビデオエンコーダにより使用された量子化パラメータ、及び、ビデオエンコーダにより生成された出力ビットレートを示すグラフである。
【
図4】
図4は、本発明に関する方法の変形例を示すフローチャートである。
【
図5】
図5は、第1の期間中に測定されたSNRを示すグラフである。
【
図6】
図6は、第1の期間中に記録されたPTZムーブメントを示すグラフである。
【
図7】
図7は、本発明に関する方法の別の変形例を示すフローチャートである。
【
図8】
図8は、ビットレートコントローラの実施形態のブロック図である。
【
図10】
図10は、ネットワークビデオレコーダの実施形態のブロック図である。
【0035】
図3、
図5、及び
図6のグラフのスケールは、任意のものであることに注意すべきである。これらはいずれの実際の値を示さず、描かれているパラメータ間の相対的なサイズを示さない。このスケールは、描かれている各パラメータの変化を示すためのみに使用されている。
【発明を実施するための形態】
【0036】
図1は、カメラ1によりモニターされているシーンを示す。このカメラにより撮像されたビデオが記録される。これは連続して行われてよいが、多くの場合、記録された、高い関心を寄せないビデオの量を減らすために、イベントトリガに基づいて、又は、スケジュールに基づいて記録することが好ましい。
【0037】
記録されたビデオの保存は、SDカードなどのカメラ1上にて行われてよい。
図2に示すカメラシステム20など、カメラ1がカメラシステムの一部である場合、代替的に、又は、追加的に、保存は、ネットワークビデオレコーダ21などにて、カメラからリモートに行われてよい。ネットワークビデオレコーダ21は、コントロールセンタ22内に配置されてよく、オペレータは、ユーザステーション23上にて、記録されたビデオ及びライブストリーム配信されたビデオを見ることができる。ネットワーク24は、カメラ1、ネットワークレコーダ21、及びユーザステーション23を接続する。ネットワークビデオレコーダ21はその代わりに、コントロールセンタ22から離れて配置されてよく、例えば、クラウドサービスであってよい。
【0038】
多くの状況では、記録されたビデオは、必要とされる保持時間中に保存される必要がある。犯罪が報告された場合など、モニターされているシーンにて何が起こったかを捜査するために、犯罪が行われた時間前後の時間からのビデオ記録に戻ることが必要となり得る。保持時間は、捜査官がビデオデータを必要とする際に、必要とされるビデオデータがすでに上書きされていることのない程度に十分長い必要がある。したがって、30日又は60日などの保持時間を保証する必要があり得る。その要件を満たすために、ビットレート制御が必要である。換言すると、カメラ内のエンコーダにより生成されたビデオデータの量は、必要とされる保持時間中に生成されるデータの量が、利用可能な記憶容量を超えず、カメラ1内、又は、ネットワークビデオレコーダ内のSDカード上にあるよう、制御される必要がある。ビットレート制御は通常、カメラ1からコントロールセンタ22などへのビデオの送信を確かにできるよう、カメラ1からの出力ビットレートが、ネットワーク24の帯域幅未満であることを確かにするために、出力ビットレートを制限するためにも必要であることに注意されたい。
【0039】
この問題を解消する1つの方法が、一定ビットレート(CBR)制御スキームを使用することとなる。しかしこれは、記録されたビデオが、高い関心を寄せるものである可能性が最も高い場合に、すなわち、シーン内にムーブメントが多い場合に、イメージ品質が落ちる場合がある。本出願の背景技術セクションに示すように、この問題は、出願人による係属中の出願EP-3396961により、許容ビット数のより効率的な使用をも可能にする方法にて対処されている。その出願では、エンコーダからの出力ビットレートは、2つのビットレートリミットを使用して制御される。それらのビットレートリミットの1つは、エンコードされたビデオが、それが閲覧される、又は、保存されるところへ安全に送信され得るよう、利用可能な帯域幅に基づいてよいものである。他のビットレートリミットは、利用可能な記憶容量及び必要とされる保持時間に基づいてよいものである。これらは、しかし依然として、保持時間を確かにし、利用可能な帯域幅内にとどまり、ビデオの高い関心を寄せない部位に、ビットを不必要に使用せず、高い関心を寄せるイベントの高品質イメージを提供するために、エンコーディングのための適切なパラメータを見つけることにおいての課題がある。これらの課題を解消する方法を、本発明の実施例及び実施形態を用いて以下に説明する。
【0040】
ここで、本発明に関する方法の一例の各ステップを示すフローチャートである
図4を参照する。許容平均ビットレートは、ステップS1にて設定される。許容平均ビットレートBR
avgは、必要とされる保持時間で除算した、利用可能な記憶容量として計算されてよい。これは例えば、メガバイト数/日、又は、メガビット数/秒として表されてよい。許容平均ビットレートは、好適には、記憶容量の全体ではなく、記憶容量の90%などに基づくような、マージンBR
avg,margが設定されてよい。このようにして、以下に説明するアプローチを用いても補償が難しい、又は、それが不可能である、出力ビットレートの増加をもたらす予期しないイベントへの対応がなされ得る。マージンなく計算された平均ビットレートは、以下では、最大平均ビットレートBR
avg,maxと呼ばれる。
【0041】
ビデオは、カメラ1により撮像され、エンコードされる(ステップS2)。
図3に示すように、第1の期間T
1中のビデオエンコーディングについてのデータが保存される。第1の期間T
1は、複数の時間間隔t
0、t
1、…、t
n-1、t
nに分割されており、各時間間隔に対して、その時間間隔中のエンコーダからの出力ビットレート(又は、出力ビット数)が、その時間間隔中に使用された量子化パラメータQPと同じく保存される(ステップS3)。
図3の例に見られるように、出力ビットレート及び量子化パラメータは、第1の期間T
1中に変化する。
【0042】
異なる時間間隔の出力ビットレートデータを、第2の、後続の期間T
2中にビデオをエンコーディングする際に、ビットレートをどのように制御するかについて決定することに有益にするために、各時間間隔の出力ビットレートが、ステップS4にて正規化される。これは、エンコーダから出力されていたであろう、各時間間隔中に、公称量子化パラメータQP
nomが使用されていた正規化済ビットレートBR
normが計算されることを意味する。出力ビットレートのこの正規化は、量子化パラメータにおける変化と、出力ビットレートにおける、付随する変化と、の間の所定の関係を使用して行われる。この関係は、実験に基づいて、複数の異なる量子化パラメータを使用して同じビデオシーケンスをエンコーディングすることにより、判定されてよい。この関係は、どのエンコーダが使用されたかによって知ることができてよい。例えば、正規化済ビットレートを計算するために、以下の式が使用されてよい:
ここで、BR
normは、正規化済ビットレートであり、BR
xは、時間間隔x中に記録された出力ビットレートであり、QP
xは、同じ時間間隔中に使用された量子化パラメータであり、QP
nomは、公称量子化パラメータである。
【0043】
いくつかのエンコーダでは、この式は、以下のようにより一般的に表され得る:
ここで、Cは、どのエンコーダが使用されたかによって、2とオイラー数(Euler’s number)eとの間の値をとる。
【0044】
公称量子化パラメータQPnomは好適には、時間の経過と共に、平均量子化パラメータとなるよう予期されるものに近い値をとり、例えば、H.264を使用する実施形態において、0から51のQPスケールにおける、29の値をとってよい。ここで、0は低圧縮を表し、量子化ステップを少なく使用することによる高イメージ品質をもたらし、51は高圧縮を表し、量子化ステップを多く使用することによる低イメージ品質をもたらす。
【0045】
ステップS5では、平均正規化済ビットレートが、時間間隔のそれぞれの正規化済ビットレートに、各時間間隔の長さを乗算し、したがって計算されるビット数を合計し、その合計を、第1の期間の長さで除算する、つまり、時間間隔がすべて同じ長さであれば、正規化済ビットレートの合計を、時間間隔数で除算することにより、計算される。
【0046】
第1の期間T
1に続く、第2の期間T
2中にビデオをエンコーディングする際に使用する、新たな量子化パラメータQP
newが、このステップS6にて計算されてよい。正規化済ビットレートを計算する際について、新たな量子化パラメータは、量子化パラメータにおける変化と、出力ビットレートにおける、付随する変化と、の間の所定の関係に基づいて計算される。新たな量子化パラメータQP
newは、正規化済平均ビットレートBR
norm,avg及び許容平均ビットレートBR
avg,margの比較に基づいて計算される。したがって、新たな量子化パラメータは、以下の式を使用して計算されてよい:
【0047】
対数の基はエンコーダに依存し、繰り返しになるが、一般的に2とeとの間となることに注意すべきである。
【0048】
正規化済平均ビットレートが許容平均ビットレートを超え、第1の期間中に、満たされる、必要とされる保持時間にわたって、ビットが過剰に多く出力されている場合、後続の期間における出力ビットレートは、第1の期間中にできるだけ高くされるべきである。この状況では、新たな量子化パラメータQPnewは、公称量子化パラメータQPnomより高く計算される。換言すると、ビデオは、第2の期間中に、公称量子化パラメータが使用される場合よりも高く圧縮される。一方、正規化済平均ビットレートが許容平均ビットレート以下の場合、必要とされる保持時間を依然として満たしつつ、より高いイメージ品質に対する余地があるべきである。この状況では、新たな量子化パラメータQPnewは、公称量子化パラメータQPnom以下に計算される。
【0049】
第2の期間の長さは、第1の期間T1の時間間隔txの長さに等しくともよい。計算を容易にするため、第1の期間T1の各時間間隔txは、好ましくは同じ長さである。しかし、各時間間隔の長さが既知である限り、異なる長さが可能である。
【0050】
新たな量子化パラメータQPn+1を見つけ、来る時間間隔tn+1中にビデオをエンコーディングする際にそれを使用するには、多くの先の時間間隔tx中に使用された出力ビットレート及び量子化パラメータについてのデータが、それらの計算に使用される。この方法が初期化されると、最初はいずれのデータもなく、使用する量子化パラメータは、デフォルト値としてエンコーダに設定するといった、いくつかの他の方法にて判定されなければならない。いくらかの時間間隔後、この方法が使用されはじめ得るようないくつかのデータが集まるが、その結果の精度は高くない場合がある。シーン内のイベントによっては、量子化パラメータは最初は、非常に不規則に変化する場合がある。初期化期間後、来る時間間隔中に使用する新たな量子化パラメータを判定するためにそれらを良好に使用できる、十分な数の時間間隔からのデータが集まる。初期化期間の長さは、シーン内のイベントがどれほど安定しているか、又は、どれほど周期的か、に依存し得る。例えば、オフィスビルの外では、人々が職場に向かう早朝にはアクティビティが多く、午前にはアクティビティが少なく、人々がランチに向かい、そして戻る際にはアクティビティが再度いくらかあり、午後にはアクティビティが少なく、続いて、一日の仕事の終わりにはアクティビティが再度多い、日々のパターンがあり得る。夜間には、アクティビティは非常に少ないであろう。このパターンは日々繰り返され得、次の日に使用する適切な量子化パラメータを見つけるために、その一日からのデータを有益なものにする。
【0051】
十分な数の時間間隔から、換言すると、十分に長い第1の期間からのデータが集まると、最新の時間間隔からのデータが先入れ先出しにて保存される際に、最も古い時間間隔からのデータが破棄され得、一定の数の時間間隔に対してのデータが常に保持されるようにする。
【0052】
後続の第2の期間T
2、この例では、来る時間間隔t
n+1、中にビデオをエンコーディングするための新たな量子化パラメータQP
n+1が計算される時点にて、複数の先の時間間隔からのデータが使用される。この例では、時間間隔t
0-t
n、つまり、
図3に示すような第1の期間T
1、からのデータが使用される。したがって、
図4に関連して上述するように、許容平均ビットレートが設定される。これは、ビットレートコントローラの設置及び構成中に一度行われ得、利用可能な記憶容量、又は、必要とされる保持時間が変更される場合にのみ変更される必要がある。ビデオは、第1の期間T
1中にエンコードされており、出力ビットレート及び量子化パラメータについてのデータが、各時間間隔t
0-t
nに対して保存されている。各時間間隔のビットレートは、ステップS4に関連して上述するように正規化され、平均正規化済ビットレートが、第1の期間T
1に対して計算される。来る時間間隔t
n+1中にビデオをエンコーディングする際に使用する新たな量子化パラメータQP
n+1は、ステップS6に関連して上述するように計算される。エンコーダは続いて、来る時間間隔t
n+1中に、新たな量子化パラメータQP
n+1を使用してビデオをエンコードする。
【0053】
これは繰り返され、最新の時間間隔tn+1中に使用された量子化パラメータQPn+1が、その時間間隔tn+1中にエンコーダにより生成された出力ビットレートBRn+1として保存されるようにする。最も古い時間間隔、この場合はt0、からのデータが破棄される。このようにして、時間フレームが、1つの時間間隔の長さに対応して前方にシフトされていても、同じ時間の量からのデータが保存されたままとなる。したがって、先のエンコーディングについてのデータが集められる第1の期間は、固定期間のまま残るが、スライドするウィンドウの原理にしたがってシフトされる。
【0054】
繰り返しになるが、スライドするウィンドウの技術は、最新の時間間隔tn+1のビデオがエンコードされた後、次の時間間隔tn+2中に使用する新たな量子化パラメータQPn+2が計算される際に、先の時間間隔t1-tn+1からのデータが使用されることを意味する。これらの計算は、上述するものと同じ方法にて行われる。この最新の時間間隔tn+2のビデオがエンコードされると、量子化パラメータQPn+2、及び、その結果としての出力ビットレートBRn+2が保存され、最も古い時間間隔t1のデータが破棄される。このプロセスが繰り返され、固定期間の先の第1の期間の各時間間隔に対する量子化パラメータ及び出力ビットレートについてのデータが、新たな量子化パラメータが、後続の第2の期間中にビデオをエンコーディングするために見つかる度に、常に使用される。上述するように、第2の期間T2の長さは好適には、第1の期間T1の各時間間隔txの長さと等しくてよい。
【0055】
上述するように、新たな量子化パラメータの計算は、正規化済平均ビットレート及び許容平均ビットレートの比較に基づく。正規化済平均ビットレート及び最大平均ビットレートの比較はまた、どのビットレート制御スキームが使用されるべきかを判定することに使用されてよい。平均正規化済ビットレートが、最大平均ビットレートを超えていることが、正規化済平均ビットレート及び最大平均ビットレートの比較により見つかった場合、必要とされる保持時間が満たされることを確かにするために、最大ビットレート制御(MBR)が適用されてよい。その代わりに、正規化済平均ビットレートが許容平均ビットレート以下の場合、一定のイメージ品質が取得され得るように、一定の出力ビットレートではなく、可変ビットレート制御(VBR)が適用されてよい。上述するように、MBRを常に適用することもできるのであろうが、これは、正規化済平均ビットレート及び最大平均ビットレートの比較のアウトカムにしたがって、異なるビットレートリミットを伴う。
【0056】
上記のこの方法は、ビットレートの上昇のすべてが、いずれの実際のフォレンジック値によるものでないことを考慮することが補足されてよい。例えば、撮像されたイメージ内のノイズは、エンコーダからの出力ビットレートを上昇させる傾向があることが知られている。ノイズが一時的なものである場合、イメージフレーム間の冗長性が減り、ノイズが、ビデオを見る人が高い関心を寄せるものによるものでなく、したがってフォレンジック値を加えなくとも、フレーム間の変化を表すために、より多くのビットが必要とされるようになる。同様に、シーンとカメラとの間の相対的なムーブメントは一般的に、エンコーダからの出力ビットレートを上げるが、そのようなムーブメントのすべてが、見る人が高い関心を寄せるものではない。シーン内の実際のムーブメント又は変化は通常、カメラのムーブメントにより引き起こされる見かけ上のムーブメントよりも高い関心を寄せるものである。当然ながら、PTZムーブメントとも呼ばれる、パン、チルト、及びズーム操作は、撮像されたビデオを見る人にとって有益である。なぜならそれらは、さもなければ見ることができないような、シーンの各部を見ることを可能にするからである。しかし、ムーブメント中に引き起こされるビットレートの上昇それ自体は、有益な情報として多くを加えない。
【0057】
そのようなビットレートを増やす外乱要因が、第1の期間T1の時間間隔txのいくつかの中で発生している場合、それらの時間間隔における出力ビットレートの上昇は、フォレンジック値を加えないが、正規化済平均ビットレートに加わる。これはその引き換えに、その正規化済平均ビットレートに基づいて計算された、新たな量子化パラメータQPnewの増加をもたらす。ビットレートを増やす外乱要因が単に一時的に発生し、第2の期間T2中に再発しないことが予期される場合、第2の期間中に使用する新たな量子化パラメータQPnewは、不必要に高くともよい。これは、第2の期間中に次善のイメージ品質をもたらす。ノイズ又はカメラムーブメントなどの、そのようなビットレートを増やす外乱要因が、第2の期間中にイメージ品質に悪影響を及ぼすことを回避するために、そのような既知の、ビットレートを増やす外乱要因についてのデータが、第1の期間の各時間間隔に対して保存されてよい。
【0058】
図5は、一例を示す。ここでは、SNRについてのデータが、量子化パラメータ及び出力ビットレートについてのデータと共に、各時間間隔に対して保存されている。
図6は、同様の例を示す。ここでは、PTZムーブメントについてのデータが保存されている。
【0059】
本発明に関する方法の変形例を、
図7を参照して説明する。ここでは既知の、ビットレートを増やす外乱要因が説明される。
【0060】
図4に関連して説明するものと同じ方法にて、許容平均ビットレートがステップS1にて設定され、ステップS2にて、第1の期間中にビデオがエンコードされる。ステップS3’は、
図4のステップS3に関連して、少なくとも1つの既知の、ビットレートを増やす外乱要因についてのデータが、第1の期間の各時間間隔に対して、出力ビットレート及び量子化パラメータについてのデータに加えて保存されている、という点において変更されている。ステップS3aが追加されている。ここでは、各時間間隔において使用された量子化パラメータが、ビットレートを増やす外乱要因についてのデータにしたがってオフセットされている。時間間隔中に使用された量子化パラメータは、ビットレートを増やす外乱が、新たな量子化パラメータの計算をさもなければ乱すのに十分大きいと見なされる場合、新たな量子化パラメータの計算での使用前に、人為的に下げられる。このようにして、ビットレートを増やす外乱要因の影響を減らすことができ、又は、取り除くことでさえもできる。
【0061】
SNRとして表されるノイズの例を見ると、時間間隔におけるSNRが、
図5のグラフ内の点線SNR
thにより示される第1のSNR閾値未満の場合、その時間間隔中に使用された量子化パラメータは、SNRオフセット値分オフセットされ、1ステップ分低い、又は、1ステップの一部分低い量子化パラメータなどの、より低い量子化パラメータが、正規化済平均ビットレートの計算において使用されるようになっている。これにより、ノイズの影響を受けた時間間隔中の出力ビットレートの一部が、より低い量子化パラメータにより引き起こされたと仮定したものとして、新たな量子化パラメータの計算が「だまされた」形となる。
【0062】
図6を参照して、PTZムーブメントとも呼ばれるカメラムーブメントの例を見ると、時間間隔におけるそのPTZムーブメントが、第1のPTZ閾値PTZ
thを超える場合、その時間間隔中に使用された量子化パラメータは、PTZオフセット値分オフセットされ、より低い量子化パラメータが、正規化済平均ビットレートの計算において使用されるようにする。したがって、新たな量子化パラメータの計算は、その時間間隔中にエンコーダが出力したビットレートの一部が、より低い量子化パラメータにより引き起こされた、という人為的な仮定に基づくものとなる。PTZムーブメントは、例えば、パニング又はチルティングムーブメントの速度の単位、又は、ズーム比として表されてよい。
【0063】
おそらくは、1つ又はそれ以上の外乱要因に対して、1つを超える閾値を設定することができる。例えば、時間間隔中のSNRが、第1のSNR閾値未満の場合、その時間間隔中に使用された量子化パラメータは、第1のSNRオフセット値分オフセットされ、正規化済平均ビットレートの計算に、実際の量子化パラメータよりも、1ステップ分低い、又は、1ステップの一部分低い量子化パラメータが使用されるようになってよい。SNRが、第1のSNR閾値より低い第2のSNR閾値未満でもあるような、ノイズがさらにある場合、その時間間隔中に使用された量子化パラメータは、量子化を、1つ又はそれ以上のステップなど、第1のSNRオフセット値よりも多くオフセットする第2のSNRオフセット値分オフセットされてよい。
【0064】
ノイズ及びPTZムーブメントなどの外乱要因は、そのように保存される必要がないことに注意すべきである。それらはその代わりに、各時間間隔に対して保存されている量子化パラメータに影響を及ぼし、その量子化パラメータが、オフセットを伴って保存されるようにすることにより、間接的に保存されてよい。
【0065】
さらに、上述するように、外乱が少ない、又は、それが無い場合には、反対向きのオフセットがその代わりに適用されてよい。
【0066】
本発明に関する方法は、
図8に模式的に示すもののような、ビットレートコントローラ80において行われてよい。以下に説明する、ビットレートコントローラの種々のモジュール又は部分は、ハードウェア、ソフトウェア、又はそれらのいずれの組み合わせにて実装されてよい。したがって、これらモジュールのいくつか又はすべては、1つ又はそれ以上の、以下に説明する機能を行うよう構成されている回路の形態であってよい。追加的に、又は、代替的に、ビットレートコントローラは、1つ又はそれ以上の機能を行う命令を保存する非一時的コンピュータ可読媒体と、それを実行するプロセッサと、を含んでよい。
【0067】
ビットレートコントローラ80は、許容平均ビットレートを設定するよう構成されているビットレートプリセッタ81を有する。ビットレートコントローラはまた、第1の期間T1中のエンコーディングからのエンコーディングデータを保存するよう構成されているデータストレージ82も有する。第1の期間内の各時間間隔に対して、データストレージは、時間間隔中に出力された各出力ビットレート、及び、時間間隔中に使用された量子化パラメータを保存する。
【0068】
さらに、ビットレートコントローラ80は、各時間間隔中に使用された出力ビットレート及び量子化パラメータに応じた所定の公称量子化パラメータに対して推定された、対応する正規化済ビットレートを計算することにより、各時間間隔に対する出力ビットレートを正規化するよう構成されている出力ビットレートノーマライザ83を有する。
【0069】
ビットレートコントローラ80はまた、各時間間隔中に使用された量子化パラメータに応じた、第1の期間にわたる平均正規化済ビットレートを計算するよう構成されている平均ビットレート計算器84と、平均正規化済ビットレート及び許容平均ビットレートの比較に基づいて、新たな量子化パラメータを計算するよう構成されている量子化パラメータ計算器85と、第1の期間に続く第2の期間中に、ビデオシーケンスをエンコーディングするために、新たな量子化パラメータを、ビデオエンコーダに出力するよう構成されている制御出力86と、も有する。
【0070】
ビットレートコントローラ80は、上記の方法を使用して作動してよい。
【0071】
図9は、カメラ1の簡略化したブロック図を示す。カメラ1は、レンズ91と、イメージセンサ92と、ビットレートコントローラ80と、エンコーダ93と、ローカルストレージ94と、ネットワークインターフェース95と、を有する。当業者に理解されるであろうように、カメラ1は追加的コンポーネントを有するが、それらは本発明の説明に必要でないため、図面には含んでおらず、さらに説明もしない。カメラ1は、レンズ91及びイメージセンサ92を用いて、シーン1のイメージを撮像する。イメージは、エンコーダ93によりエンコードされ、エンコードされたイメージフレームのストリームを形成する。ビットレートコントローラ80は、上述するように、エンコーダ93の出力ビットレートを制御する。ローカルストレージ94は、SDカードなどであってよく、エンコードされたイメージフレームをローカルにカメラ内に保存するために使用されてよい。カメラ1はネットワークインターフェース95を用いて、エンコードされたイメージフレームを、ネットワークビデオレコーダ21に、及び/又は、ユーザステーション23に送信してよい。
【0072】
図10は、ネットワークビデオレコーダ21の簡略化したブロック図を示す。ネットワークビデオレコーダ21は、カメラシステム20内のカメラ1に接続するための入力102と、ユーザステーション23に接続するための出力103と、を有するネットワークインターフェース101を有する。さらに、ネットワークビデオレコーダ21は、ストレージユニット104と、ビットレートコントローラ80と、を有する。ストレージユニット104は、ディスクドライブなどであってよい。ビットレートコントローラ80の機能は、先に詳しく説明している。ネットワークビデオレコーダ21は、他のコンポーネントも同じく有してよいが、それらは本発明の説明に必要でないため、図面には含んでおらず、さらに説明もしない。ネットワークビデオレコーダ21のビットレートコントローラ80は、接続されている1つ又はそれ以上のカメラのエンコーダを制御してよい。これは、利用可能な帯域幅及び記憶容量をシェアする必要がある、2つ又はそれ以上のカメラのシステムにおいて特に有益となり得る。ネットワークレコーダのビットレートコントローラが、1つ又はそれ以上のカメラのエンコーディングを制御する場合、カメラ内にビットレートコントローラは必要ではない。
【0073】
本発明に関する方法は、コンピュータプログラムの支援の元で行われてよい。コンピュータプログラムは、非一時的コンピュータ可読記憶媒体上に保存されてよく、これは、処理能力を有するデバイスにより実行されると、この方法を実施するよう構成されている命令を含んでよい。
【0074】
量子化パラメータは、イメージフレーム全体において同じであってよい。しかし、異なる量子化パラメータを、イメージフレームの異なる部分又はマクロブロックに使用することが好適であってよい。例えば、関連性のあるものと見なされる、イメージの前景又は部分内のマクロブロックは、関連性のないものと見なされる、イメージの背景又は部分内のマクロブロックよりも、少なく圧縮されてよい。発明の概要に説明したように、出願人による係属中の出願EP-3021583は、そのようなアプローチを説明する。そのような変化する量子化パラメータが使用された場合、第1の期間中に使用された量子化パラメータと、同様に、公称量子化パラメータと、新たな量子化パラメータと、はそれぞれ、1つ又はそれ以上の量子化パラメータを代表する、代表的な量子化パラメータであってよい。例えば、代表的な量子化パラメータは、エンコードするマクロブロックとの関連などに基づく、オフセットが作られるベース量子化パラメータであってよい。
【0075】
上記の例のように、1つ又はいくつかのステップの量子化パラメータのオフセットを説明した。より小さい、又は、より大きいオフセットを使用することが望ましい場合があることに注意すべきである。例えば、彩度チャネルを1ステップオフセットし、輝度チャネルを変更せずにすることにより、1ステップ未満のオフセットを作ることができる。量子化パラメータをローカルにオフセットすることにより、例えば、量子化を、1つのフレーム内にて、イメージの上半分において1ステップ分オフセットし、次のフレーム内にて、下半分において1ステップ分オフセットすることにより、1より少ないステップもまた可能である。QPステップをそのように使用しないエンコーダもあるが、それらに対しても本発明は、依然として等しく適用可能であることにも注意されたい。例えば、AV1は、量子化値のルックアップテーブルを使用する。
【0076】
当業者であれば、上記の実施形態を多くの方法にて変更でき、上記の実施形態に示すような、本発明の利点を依然として使用できることが理解されるであろう。一例として、エンコーダは、カメラに統合する必要はなく、カメラに操作可能に接続された別個のユニットであり得る。
【0077】
ビットレートコントローラは、カメラ又はネットワークビデオレコーダに統合されたものとして説明したが、別個のユニットとして同様に配置されてよく、カメラ、カメラのシステム、又はネットワークビデオレコーダに操作可能に接続されてよい。
【0078】
さらに、カメラ及びネットワークビデオレコーダは双方とも、ビットレートコントローラを含むものとして説明したが、カメラ又はネットワークビデオレコーダのどちらかにそれを施すことができてよい。ビットレート制御が、各カメラ内にてローカルに行われる場合、ビットレートコントローラをネットワークビデオレコーダに含む必要はない。類似して、ネットワークビデオレコーダにてビットレート制御方法が行われる場合、ビットレートコントローラをカメラに有する必要がなくともよい。同様に、別個のビットレートコントローラが使用される場合、カメラ及びネットワークビデオレコーダのどちらも、ビットレートコントローラを含む必要はない。
【0079】
エンコーダによりエンコードされたイメージは、撮像カメラから直接受信してよいし、又は、先に撮像されて保存されたものであってもよい。したがって、イメージの直近のソースは、イメージセンサ又はデータファイルであってよい。
【0080】
カメラは、可視光を採用するカメラ、近赤外線(near infrared又はNIR)放射を採用するカメラ、又は熱カメラなど、いずれの種類のカメラであってよい。
【0081】
カメラは好適にはデジタルカメラであるが、その代わりに、デジタル化ユニットに接続されたアナログカメラであってよい。
【0082】
本発明は、サーベイランスカメラとも呼ばれることがある、モニタリングカメラのコンテキストにおいて説明したが、他のカメラアプリケーションにおいても好適に使用されてよい。
【0083】
本カメラシステムを、ネットワークビデオレコーダを含むものとして説明したが、ネットワークビデオレコーダを含まないカメラシステムを配置することも十分可能である。そのようなシステムでの保存は、カメラ内にローカルに、及び/又は、コントロールセンタにリモートに生じてよい。
【0084】
図面に示す、上述するカメラ1は、ローカルストレージ94を含む。いくつかのカメラシステムでは、ローカルストレージは唯一のストレージであるが、他では、バックアップ及び冗長性のために使用されてよく、ここで保存はまた、ユーザステーション内若しくはそこにおける、ネットワークビデオレコーダ内、又は、ストレージデバイス上にて生じる。例えば、コントロールセンタでの保存のために、サーバーが配置されてよい。いくつかのカメラシステムでは、カメラはローカルストレージを含まず、ネットワークビデオレコーダのみが、又は、他の外部ストレージが使用される。
【0085】
ビデオの記録又は保存は連続して行われてよいが、ビデオは多くの場合、ビデオのモーション検出、又は、受動型赤外線(passive infrared又はPIR)センサなどのアラームデバイスからの入力などの、イベントによりトリガされた際にのみ保存されることが好適である。このようにして、潜在的に高い関心を寄せるビデオシーケンスのみを保存し、シーンに何も起こっていないビデオは保存しないようにすることにより、記憶容量が節約されてよい。
【0086】
エンコードされたイメージフレームは、ユーザステーションに連続して送信されてよいが、イベントトリガリングにより制限されてもよい。いくつかのビデオシステムでは、エンコードされたイメージフレームは、保存、及び/又は、オペレータがすぐに見るために、コントロールセンタに連続して送信されてよく、シーンに何かが起こった際にユーザに警報を発し得るように、イベントトリガリングのみに基づいて、モバイルデバイスに追加的に送信されてよい。
【0087】
カメラ内のローカルストレージが、フェイルオーバー記録と呼ばれるもののために使用されてよい。これは、エンコードされたイメージフレームが通常、カメラから連続して送信される場合、ネットワークへの接続が失われた場合にローカルに保存することが始まってよいことを意味する。ネットワーク接続が回復すると、ローカルストレージに保存されたビデオデータがユーザステーションに送信されてよく、完全なビデオシーケンスが回復されてよい。
【0088】
エンコーダは、モーション推定及びモーション補償を採用する、いずれのエンコーディング標準にしたがって作動してよい。エンコーダは、H.264(アドバンスドビデオコーディング(advanced video coding又はAVC))、H.265(高効率ビデオコーディング(high efficiency video coding又はHEVC))、VP9、又はAV1エンコーダなどの、ブロックベースのハイブリッドエンコーダであってよい。
【0089】
本発明に関する方法は、コンピュータ可読の、非一時的記憶媒体上に保存された命令を実行することにより行われてよい。これらの命令は、中央処理ユニット(central processing unit又はCPU)、グラフィクス処理ユニット(graphics processing unit又はGPU)、集積回路に実装されたカスタムメイド処理デバイス、特定用途向け集積回路(application specific integrated circuit又はASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array又はFPGA)、又は、別々のコンポーネントを含む論理回路などの、処理能力を有するいずれのデバイスにより実行されてよい。
【0090】
先の説明では、既知の、ビットレートを増やす外乱要因の2つの例を説明した。他のそのような外乱要因もまた、同じく考慮され得る。ビットレートを増やす外乱要因の追加的な例は、焦点の変化、及び、移動するオーバーレイである。
【0091】
異なる実施形態及び変形例を上述したが、それらは別々のものとして見るべきではなく、それらの特徴は自由に組み合わされてよい。
【0092】
本発明は従って、ここに示す実施形態に限定されるべきではなく、特許請求の範囲によってのみ定義されるべきである。