特許第6463397号(P6463397)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アクシス アーベーの特許一覧

特許6463397ビデオストリームをエンコードするための方法及びシステム
<>
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000004
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000005
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000006
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000007
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000008
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000009
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000010
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000011
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000012
  • 特許6463397-ビデオストリームをエンコードするための方法及びシステム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6463397
(24)【登録日】2019年1月11日
(45)【発行日】2019年1月30日
(54)【発明の名称】ビデオストリームをエンコードするための方法及びシステム
(51)【国際特許分類】
   H04N 19/107 20140101AFI20190121BHJP
   H04N 19/139 20140101ALI20190121BHJP
   H04N 19/176 20140101ALI20190121BHJP
   H04N 19/527 20140101ALI20190121BHJP
【FI】
   H04N19/107
   H04N19/139
   H04N19/176
   H04N19/527
【請求項の数】15
【外国語出願】
【全頁数】20
(21)【出願番号】特願2017-43950(P2017-43950)
(22)【出願日】2017年3月8日
(65)【公開番号】特開2017-201777(P2017-201777A)
(43)【公開日】2017年11月9日
【審査請求日】2018年4月5日
(31)【優先権主張番号】16160285.9
(32)【優先日】2016年3月15日
(33)【優先権主張国】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林特許業務法人
(72)【発明者】
【氏名】エドパルム, ヴィクトル
【審査官】 冨田 高史
(56)【参考文献】
【文献】 特開2006−211192(JP,A)
【文献】 特開平9−214965(JP,A)
【文献】 特開2007−228101(JP,A)
【文献】 特開2012−065176(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
カメラによってキャプチャされる、シーンを描写するビデオストリームをエンコードするエンコーダで実行される方法であって、前記ビデオストリームは第1の画像フレーム(102)と第2の画像フレーム(104)を含み、前記第1の画像フレームは前記ビデオストリーム内で前記第2の画像フレームに先行し、前記第1及び第2の画像フレームは前記シーンの部分的に重なる部分をカバーし、前記方法は、
前記カメラの動きに関する情報を受け取るステップ(S802)と、
前記カメラの動きに関する前記情報に基づいて、前記第2の画像フレームの第1の領域(106)と第2の領域(108)を定義するステップ(S804)であって、前記第1の領域は前記第1の画像フレームによってもカバーされる前記シーンの一部をカバーし、前記第2の領域は前記第1の画像フレームによってカバーされていない前記シーンの一部をカバーするステップと、
前記第2の領域に対して、I−ブロックエンコーディングを使用して各ピクセルブロックをエンコードするステップ(S814)と、
前記第1の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第1の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック及びPスキップブロックのうちのいずれか1つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ(S816)と、
前記カメラが動いている間に、所定の閾値を引き上げるステップ(S808)と
を含み、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第1の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記所定の閾値を超えるときには、ピクセルブロックをエンコードされた第1の種類のブロックとして、又は前記差分値が前記所定の閾値を超えないときには、ピクセルブロックをエンコードされた第2の種類のブロックとして、エンコードすることを選択するように構成されている、方法。
【請求項2】
前記所定の閾値が、所定の第1の閾値であり、前記エンコードされた第1の種類のブロックが、I−ブロックである、請求項1に記載の方法。
【請求項3】
前記エンコーダは所定の第2の閾値を有し、前記エンコーダは、ピクセルブロックをPスキップブロックとしてエンコードするか、ピクセルブロックをPブロックとしてエンコードするかを選択するように構成されており、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第1の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記第2の閾値を超えないときには前記ピクセルブロックをPスキップブロックとしてエンコードするように構成されており、前記第2の閾値は前記第1の閾値よりも低く、前記エンコーダは、前記差分値が前記第2の閾値と前記第1の閾値の間であるときには前記ピクセルブロックをPブロックとしてエンコードし、
前記カメラが動いている間に、前記第2の閾値を引き上げるステップ(S810)を含む、請求項2に記載の方法。
【請求項4】
前記ビデオストリームは更に、第3の画像フレーム(202)と、前記ビデオストリーム内で前記第3の画像フレームに先行する前記第2の画像フレームを含み、前記第3の画像フレームは、前記第1及び前記第2の画像フレームによってカバーされる前記シーンの一部に部分的に重なる前記シーンの一部をカバーし、前記第1の領域と第2の領域は、前記第3の画像フレームによってカバーされない前記シーンの一部をカバーする、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記カメラの動きに関する情報に基づいて、前記第1の画像フレームと前記第3の画像フレームによってもカバーされる前記シーンの一部をカバーする前記第2の画像フレームの第3の領域(204)、並びに、前記第3の画像フレームによってもカバーされるが前記第1の画像フレームによってカバーされない前記シーンの一部をカバーする前記第2の画像フレームの第4の領域(206)を定義するステップ(S806)と、
前記第2の領域は前記第3の画像フレームによってカバーされていない前記シーンの一部をカバーし、前記第1の領域は前記第3の画像フレームによってカバーされていない前記シーンの一部をカバーし、前記第3の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第1及び第3の画像フレームの少なくとも一部を入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック、Pスキップブロック、B−ブロック及びBスキップブロックのうちのいずれか1つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ(S818)と、
前記第4の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと前記第3の画像フレームの少なくとも一部を入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、B−ブロック及びBスキップブロックのうちのいずれか1つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ(S820)と
を更に含む、請求項4に記載の方法。
【請求項6】
前記エンコーダは、ピクセルブロックをBスキップブロックとしてエンコードするか、ピクセルブロックをBブロックとしてエンコードするかを選択するための所定の第3の閾値を有し、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第1の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記第3の閾値を超えないときには、前記ピクセルブロックをBスキップブロックとしてエンコードするように構成されており、前記第3の閾値は前記第1の閾値よりも低く、前記エンコーダは、前記差分値が前記第3の閾値と前記第1の閾値の間であるときには前記ピクセルブロックをBブロックとしてエンコードし、
前記カメラが動いている間に、前記第3の閾値を引き上げるステップ(S812)を含む、請求項2に従属する請求項5に記載の方法。
【請求項7】
前記第1の領域のピクセルブロックをエンコードするステップは第1の量子化パラメータを使用することを含み、
前記第2の領域のピクセルブロックをエンコードするステップは第2の量子化パラメータを使用することを含み、
前記第3の領域のピクセルブロックをエンコードするステップは第3の量子化パラメータを使用することを含み、
前記第4の領域のピクセルブロックをエンコードするステップは第4の量子化パラメータを使用することを含み、
前記第3及び第4の量子化パラメータは、前記第1及び第2の量子化パラメータより小さい、請求項5又は6に記載の方法。
【請求項8】
前記第4の量子化パラメータは前記第3の量子化パラメータより小さい、請求項7に記載の方法。
【請求項9】
前記エンコーダはH.264エンコーダであり、
前記カメラの動きに関する情報が前記カメラの水平運動に対応することを判定するステップと、
前記第2の画像の前記ピクセルブロックのエンコードに先立って前記第2の画像を回転するステップと
を更に含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記ブロックマッチングアルゴリズムへの入力として、前記カメラの動きに関する情報を提供するステップを更に含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
処理能力を有するデバイスによって実行されると、請求項1から10のいずれか一項に記載の方法を実行するように適合された命令を有するコンピュータ可読記憶媒体。
【請求項12】
カメラによってキャプチャされた、シーンを描写するビデオストリーム(908)をエンコードするように構成されたエンコーダ(900)であって、前記ビデオストリームは第1の画像フレームと第2の画像フレームを含み、前記第1の画像フレームは前記ビデオストリーム内で前記第2の画像フレームに先行し、前記第1及び第2の画像フレームは前記シーンの部分的に重なる部分をカバーし、前記エンコーダは、
前記カメラの動きに関する情報(910)を受信するように構成された受信コンポーネント(902)と、
前記カメラの動きに関する前記情報に基づいて、前記第2の画像フレーム内の、前記第1の画像フレームによってもカバーされる前記シーンの一部をカバーする第1の領域(106)と、前記第1の画像フレームによってカバーされない前記シーンの一部をカバーする第2の領域(108)を定義するように構成された領域計算コンポーネント(904)と、
前記第2の領域に対して、I−ブロックエンコーディングを使用して各ピクセルブロックをエンコードし、
前記第1の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第1の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック及びPスキップブロックのうちのいずれか1つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードし、
前記カメラが動いている間に、所定の閾値を引き上げる(S808)ように
構成されたエンコードコンポーネント(906)と
を備え、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第1の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記所定の閾値を超えるときには、ピクセルブロックをエンコードされた第1の種類のブロックとして、又は前記差分値が前記所定の閾値を超えないときには、ピクセルブロックをエンコードされた第2の種類のブロックとして、エンコードすることを選択するように構成されているエンコーダ。
【請求項13】
シーンを描写するビデオストリーム(908)をキャプチャするように構成されたカメラ(1000)であって、前記カメラは前記カメラの動作を推定するための動作推定装置(1002)を備えるカメラと、
前記カメラが接続される請求項12に定義されたエンコーダと
を備えたシステムであって、前記動作推定装置は前記カメラの動きに関連する情報を前記エンコーダへ送信するように構成されており、前記カメラは前記ビデオストリームを前記エンコーダへ送信するように構成されている、システム。
【請求項14】
前記動作推定装置は、前記カメラのパン−チルト制御への入力、前記カメラのステップモータの動きに関する情報、前記カメラ内のセンサからの動作データ、及び前記ビデオストリームの画像フレームの時間的フィルタ処理からのグローバルモーション推定のうちの少なくとも1つを使用して、前記カメラの動きを推定するように構成されている、請求項13に記載のシステム。
【請求項15】
カメラによってキャプチャされる、シーンを描写するビデオストリームをエンコードするH.264エンコーダで実行される方法であって、前記ビデオストリームは第1の画像フレーム(102)と第2の画像フレーム(104)を含み、前記第1の画像フレームは前記ビデオストリーム内で前記第2の画像フレームに先行し、前記第1及び第2の画像フレームは前記シーンの部分的に重なる部分をカバーし、前記方法は、
前記カメラの動きに関する情報を受け取るステップ(S802)と、
前記カメラの動きに関する前記情報に基づいて、前記第2の画像フレームの第1の領域(106)と第2の領域(108)を定義するステップ(S804)であって、前記第1の領域は前記第1の画像フレームによってもカバーされる前記シーンの一部をカバーし、前記第2の領域は前記第1の画像フレームによってカバーされていない前記シーンの一部をカバーするステップと、
前記第2の領域に対して、I−ブロックエンコーディングを使用して各ピクセルブロックをエンコードするステップ(S814)と、
前記第1の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第1の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック及びPスキップブロックのうちのいずれか1つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ(S816)と、
前記カメラの動きに関する情報が前記カメラの水平運動に対応することを判定するステップと、
前記第2の画像の前記ピクセルブロックのエンコードに先立って前記第2の画像を回転するステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して、エンコーダ内で実行される、カメラによってキャプチャされたビデオストリームをエンコードするための方法、並びにその方法を実装するコンピュータプログラム製品とエンコーダに関する。
【背景技術】
【0002】
多くのビデオカメラアプリケーションでは、例えばモニタリングアプリケーションでは、大領域をカバーするため、パン、チルト(また、オプションによりズーム及び/又は回転)が可能なカメラの使用は有利である。このようなカメラはPT(パン−チルト)カメラ、PTZ(パン−チルト−ズーム)カメラなど名称で知られている。例えば、カメラのパン/チルト動作中には、画像フレーム内の大部分又はすべてのピクセルブロックが高コストなI−ブロックを使用してエンコードされるため、ビットレートが高くなり、カメラによってキャプチャされるビデオストリームのビットレートは高レベルに達することがある。代替的に、カメラのこのような動作中にはビデオストリームのエンコード品質は引き下げられ、ビットレートは低下する。しかしながら、これは一般的に、ビデオストリームを不鮮明にすることがある。
【0003】
画像処理の世界では、認識された画像の品質を維持したまま、ビットレート又は画像サイズを小さくするための取組みが継続的に行われている。上記の問題に対する解決策は、パン/チルトの速度調整に従って、ビデオストリームをエンコードするエンコーダの運動ベクトルの探索範囲に適合することである。2つの画像間でのピクセルブロックのマッチングの探索は、通常大量の算術演算を必要とし、運動ベクトルの探索範囲が広がることでより多くの比較が行われる。そのため、この解決策の問題点は、エンコード処理の計算がより複雑化するため、プロセッサにより高い能力が求められること、及び/又はエンコード処理を完了するのにより多くの処理時間が求められることにある。
【0004】
従って、このような状況の中で改善が必要とされている。
【発明の概要】
【0005】
上述に鑑み、本発明の目的は、上記の欠点のうちの1つ又は幾つかを解決するか、少なくとも低減させることにある。概して、上記の目的は添付の独立請求項によって達成される。
【0006】
第1の態様によれば、本発明はカメラによってキャプチャされるビデオストリームをエンコードするためのエンコーダ内で実行される方法によって実現される。ビデオストリームは第1の画像フレームと第2の画像フレームを含み、第1の画像フレームはビデオストリーム内で第2の画像フレームに先行する。本方法は、
− カメラの動きに関する情報を受信するステップと、
− カメラの動きに関する情報に基づいて、第1の画像フレーム内にも存在する画像データを含む第2の画像フレームの第1の領域、及び第1の画像フレーム内に存在しない画像データを含む第2の画像フレームの第2の領域を定義するステップと、
− 第2の領域に対して、I−ブロックエンコーディングを使用して各ピクセルブロックをエンコードするステップと、
− 第1の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと第1の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、特定のピクセルブロックをI−ブロック、P−ブロック及びPスキップブロックのうちのいずれか1つとしてエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードするステップと
を含む。
【0007】
発明者は、第1及び第2の画像フレームが周囲環境の少なくとも部分的に異なる部分のカバーするため、また、これがカメラの動きの情報を使用して定義されうるため、第2の画像のエンコードの改善が実現されうることを認識している。カメラの動作は、エンコーダによって取得可能である。例えば、カメラのPT(Z)制御への入力に関してカメラからエンコーダへ送られるデータによって、カメラのステップモータの動きに関する情報によって、カメラから(ジャイロなどから)のモーションセンサデータによって、ビデオストリームの画像フレームの時間的なフィルタ処理によるグローバルモーションの推定などによって取得可能である。
【0008】
この情報を使用して、第2の画像フレームの第1及び第2の領域が定義可能で、第2の領域は新しい領域として知られ、周囲環境の新しい部分をカバーし、第1の画像フレームでキャプチャされた部分と比較される。その結果、第2の領域は、第1の画像フレーム内に存在しない画像データを含む可能性がはるかに高い。一方、第1の領域は、第1の画像でもカバーされた周囲の領域をカバーする。その結果、第1の領域は、第1の画像フレーム内に存在する画像データを含む可能性がはるかに高い。これらの領域が第2の画像内で決定されると、第2の領域内の各ピクセルブロックは、I−ブロックエンコーディングを使用してエンコードすることができる。その結果、第2の領域のピクセルブロックに対して、ブロックマッチングアルゴリズムを実行する処理能力の投入は不要になる。第1の領域のピクセルブロックに対して、ブロックマッチングアルゴリズムを使用して各ピクセルブロックのエンコードの間での選択が実行可能で、その出力は、ピクセルブロックがI−ブロック、P−ブロック及びPスキップブロックを使用してエンコードされるべきかどうかを判定する。全数探索(Exhaustive Search)、スリーステップ探索、二次元対数探索(Two Dimensional Logarithmic Search)、フォーステップ探索など、公知の任意の好適なブロックマッチングアルゴリズムが使用されてもよい。計算リソースは第2の領域のエンコードで解放されるため、これらのリソースは、例えば、エンコーダの運動ベクトルの探索範囲を広げることによって、第1の領域のエンコードに使用されうる。
【0009】
「I−ブロック」又は「I−ブロックエンコーディング」という用語は、本仕様書の文脈では、イントラコード化されるピクセルブロックであると理解されたい。
【0010】
「P−ブロック」又は「P−ブロックエンコーディング」という用語は、本仕様書の文脈では、予測コード化されるピクセルブロックであると理解されたい。すなわち、運動ベクトル、並びに、ピクセルブロックと先行フレーム内の対応するピクセルブロックとの差分(残余誤差(residual error))のみを保持するピクセルブロックであると理解されたい。
【0011】
「B−ブロック」又は「B−ブロックエンコーディング」という用語は、本仕様書の文脈では、双方向予測コード化されるピクセルブロックであると理解されたい。すなわち、運動ベクトルに沿って、ピクセルブロックと先行画像フレーム及び/又は後続画像フレーム内の対応するピクセルブロックとの差分(残余誤差)を用いてエンコードされるピクセルブロックであると理解されたい。言い換えるならば、B−ブロックはブロックをエンコードするため、先行画像フレームのみ、後続画像フレームのみ、或いは先行画像フレームと後続画像フレームの両方を使用しうる。
【0012】
「スキップブロック」又は「スキップエンコーディング」という用語は、本仕様書の文脈では、残余誤差又は運動ベクトルを送らずに(先行フレーム、また、オプションで後続の画像フレームも使用して)、コード化されるピクセルブロックであると理解されたい。デコーダは、既にデコードされた他のブロックから、このようなコード化されたブロックの運動ベクトルを推測する。スキップエンコーディングはまた、ダイレクトエンコーディングとも称される。
【0013】
「ピクセルブロック」という用語は、本仕様書の文脈では、デジタル画像をエンコードする際に使われるデジタル画像のピクセルの基本単位であると理解されたい。
【0014】
ピクセルブロックは、幾つかの映像エンコーディング規格においてマクロブロックと称されることもある。映像エンコーディング規格H.264では、ピクセルブロックのサイズは16×16ピクセルであってよい。映像エンコーディング規格H.265では、マクロブロックの代わりにいわゆるコーディングツリーユニット(CTU)が用いられるため、H.265では、ピクセルブロックのサイズは16×16から64×64ピクセルの間で変動しうる。ピクセルブロックの他の規格(コーデックなど)及びサイズも使用されうる。この実施形態では、同じ圧縮率を有するシーンを表示するデジタル画像の一部分の範囲が、一又は複数のピクセルブロックとおおよそ、或いは完全に重なりうるため、より効率的なエンコーディングプロセスが達成されうる。この実施形態では、例えば、H.264,H.265、MPEG−4 Part2、又はVP9コーデックなど、すべての適切なブロックベースのコーデック(すなわちブロックを用いたコーデック)が使用されうることを理解されたい。
【0015】
幾つかの実施形態では、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、I−ブロックとしてピクセルブロックをエンコードするように選択するための所定の第1の閾値を有し、本方法はカメラが動いている間に第1の閾値を引き上げるステップを含む。
【0016】
第1の領域の特定のピクセルブロックに対して、ブロックマッチングアルゴリズムは、ブロックマッチングアルゴリズムが探索を行った第1の画像のブロック内で最良マッチングとなる差分値(difference value)などを出力する。例えば、ブロックマッチングアルゴリズムは、ピクセルブロック間の各比較に対して、絶対差の和(SAD)を計算してもよい。この差分値に基づいて、エンコーダは、I−ブロック、P−ブロック及びPスキップブロックのいずれかを使用する特定のピクセルブロックのエンコーディングを選択する。エンコーダは、ピクセルブロックをI−ブロックとしてエンコードすることを選択する所定の第1の閾値を有する。例えば、これはSADで500に相当する。この方法では、エンコーダがピクセルブロックに対して、Pエンコーディング又はP−スキップエンコーディングを選択するように、閾値が引き上げられる。そうでない場合には、I−ブロックエンコーディングを用いて、例えば、ピクセルブロックをI−ブロックとしてエンコードするためのSAD閾値を600まで引き上げることによって、ピクセルブロックはエンコードされる。その結果、カメラが動いている間(例えば、PT動作中)には、通常はI−ブロックエンコーディングになる幾つかの異なる値に対して、エンコーダがP−ブロックエンコーディングを選択するように、第1の閾値は引き上げられる。その結果、高価なI−ブロックでエンコードされるピクセルブロックが少なくなるため、第1の領域のエンコーディングのビットレートは低下し、次にはエンコードされた第2の画像のビットレート全体が低下する。
【0017】
幾つかの実施形態によれば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをPスキップブロックとしてエンコードすることと、ピクセルブロックをPブロックとしてエンコードすることとの間で選択を行うための所定の第2の閾値を有し、本方法はカメラが動いている間に第2の閾値を引き上げるステップを含む。
【0018】
例えば、ピクセルブロックをPスキップブロックとしてエンコードするか、ピクセルブロックをPブロックとしてエンコードするかのいずれかの選択を行うための所定の第2の閾値は、最良マッチングに対してブロックマッチングアルゴリズムから出力される差分値(例えば、SAD)の50に相当することがある。この値を下回ると、エンコーダはピクセルブロックをPスキップブロックエンコーディングとしてエンコードし(すなわち、残余及び運動ベクトルはエンコードされない)、一方、50を上回ると(但し、I−ブロックエンコーディングの閾値、例えば、SAD=600を越えない)、エンコーダはピクセルブロックをP−ブロックエンコーディングとしてエンコードする(残余及び運動ベクトルはエンコードされる)。第2の閾値を、例えば、SAD=100まで引き上げることによって、第2の画像フレームの第1の領域内のより多くのピクセルブロックがP−スキップブロックを使用してエンコードされ、これにより、第2の画像フレームのエンコードされた第1の領域に対するビットレートが引き下げられる。
【0019】
幾つかの実施形態によれば、ビデオストリームは更に、第3の画像フレーム、第3の画像フレームに先行する第2の画像フレームを含み、第1の領域及び第2の領域は、第3の画像に存在しない画像データを含む。これは、第2の画像フレームをエンコードする(すなわち、B−ブロックエンコーディングが可能な)ときに、エンコーダによって、第2の画像フレームの後続画像フレーム(第3の画像フレーム)が考慮されている場合であっても、本方法が依然として有効かつ有利であることを意味する。
【0020】
幾つかの実施形態によれば、本方法は更に、カメラの動きに関する情報に基づいて、第1の画像フレーム内及び第3の画像フレーム内にも存在する画像データを含む第2の画像フレームの第3の領域、並びに、第3の画像フレーム内にも存在するが第1の画像フレーム内には存在しない画像データを含む第2の画像フレームの第4の領域を定義する。これは、第2及び第1の領域の定義に関連して上述された、同様の方法で実行される。
【0021】
第3の領域の特定の各ピクセルブロックに対して、エンコーダは、特定のピクセルブロックと第1及び第3の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック、Pスキップブロック、B−ブロック及びBスキップブロックのうちのいずれか1つとして特定のピクセルブロックのエンコーディングを選択することができ、その選択に従って特定のピクセルブロックをエンコードすることができる。これは、第1の画像及び第3の領域内でもカバーされる周囲の領域を第3の領域がカバーしていることをエンコーダが理解しているためで、これにより、上記のエンコード方法はすべて選択可能になる。
【0022】
一方、第4の領域に関しては、この領域が第1の画像内でカバーされていない周囲の領域をカバーしているため、P−ブロック又はP−スキップブロックは適切な代替にはなっていない。その結果、第4の領域の特定のピクセルブロックの各々に対して、エンコーダは、特定のピクセルブロックと第3の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、B−ブロック及びBスキップブロックのうちのいずれか1つとして特定のピクセルブロックのエンコーディングを選択し、その選択に従って特定のピクセルブロックをエンコードするため有利である。
【0023】
本実施形態は、それぞれの領域内でのピクセルブロックのエンコードに先立って、第2の画像に異なる領域に対して、選択可能なエンコード方法が定義されるため、エンコード操作の効率を高めることができる。例えば、第4の領域に関しては、エンコーダは第1の画像内でマッチングブロックの探索を必要としないため、エンコード処理での複雑な計算を軽減する。
【0024】
幾つかの実施形態によれば、ブロックマッチングアルゴリズムからの出力に基づいて、エンコーダは、ピクセルブロックをBスキップブロックとしてエンコードするか、ピクセルブロックをBブロックとしてエンコードするか、を選択するための所定の第3の閾値を有し、本方法はカメラが動いている間に、第3の閾値を引き上げるステップを含む。
【0025】
第2の閾値の引き上げに関して、上記と同じ議論を用いると、本実施形態は、第2の画像フレームのエンコードされた第3及び第4の領域に対してビットレートを引き下げることができる。
【0026】
幾つかの実施形態によれば、第1の領域のピクセルブロックのエンコーディングのステップは、第1の量子化パラメータを使用することを含む。また、第2の領域のピクセルブロックをエンコードするステップは、第2の量子化パラメータを使用することを含む。しかも、第3の領域のピクセルブロックをエンコードするステップは第3の量子化パラメータを使用することを含み、加えて、第4の領域のピクセルブロックをエンコードするステップは第4の量子化パラメータを使用することを含む。この実施形態によれば、第3及び第4の量子化パラメータは、第1及び第2の量子化パラメータより小さい。第1及び第2の量子化パラメータは等しい場合もあれば、異なる場合もあることに留意されたい。また、第3及び第4の量子化パラメータも、等しい場合もあれば、異なる場合もあることに留意されたい。
【0027】
エンコーダは、カメラの動きに関する情報を使用して、第3及び第4の領域が第3の画像フレームの一部になる可能性があるピクセルブロックを含み、一方、第1及び第2の領域が第3の画像フレームの一部にならない可能性があるピクセルブロックを含むことを知っているため、異なる領域のピクセルブロックの圧縮率を決定するときに、この知識は有利に利用されうる。相対品質又は圧縮量は、ピクセルブロックのレベルに応じて調整可能な量子化パラメータ(しばしば、QP値と称される)によって制御可能である。量子化パラメータを低くすると、ピクセルブロックの圧縮率は低くなり、言い換えるならば、エンコード品質が高くなる。次のフレームで消えるピクセルブロックのエンコード時に大量のビットを費やすのは、ビデオストリーム内に長くとどまるピクセルブロックにビットを費やすことよりも価値が低い。その結果、この実施形態はエンコード品質を高め、及び/又は必要なビットレートを低減する。
【0028】
幾つかの実施形態によれば、第4の量子化パラメータは第3の量子化パラメータより小さい。第4の領域は、第1の先行画像の一部ではない可能性のあるピクセルブロックを含み、このピクセルブロックは第3の後続画像の一部である可能性があるため、これらのピクセルブロックは、第3の領域の一部であるピクセルブロックと比較して、より多くの画像フレーム中のビデオストリーム内にとどまる可能性もある。その結果、量子化パラメータを引き下げ、その結果として、第3の領域内のピクセルブロックと比較して、第4の領域内のピクセルブロックのエンコード品質を高めることによって、この実施形態はエンコード品質を高め、及び/又は必要なビットレートを引き下げうる。
【0029】
幾つかの実施形態によれば、エンコーダはH.264エンコーダである。この場合、本方法は更に、カメラの動きに関する情報がカメラの水平運動に対応すると判断するステップ、及び第2の画像のピクセルブロックのエンコードに先立って第2の画像を回転するステップを含む。H.264エンコーダで定義されたスライスは、画像内のピクセル列として定義されるため、水平運動の結果、画像を上記のように第1、第2、第3及び第4の領域に分割することが実行不可能になることがありうる。しかしながら、エンコード処理に先立って画像が回転されると、スライス又はスライス群は、第1、第2、第3及び第4の領域に充分に対応することができる。
【0030】
実施形態によれば、本方法は更に、カメラの動きに関する情報をブロックマッチングアルゴリズムへの入力として提供するステップを含む。この情報は、ビデオストリーム内の画像フレーム間でマッチングブロックを探索するための開始点を定義するため、或いは画像フレーム間の最良マッチングブロックを選択するため、ブロックマッチングアルゴリズムによって、有利に利用されうる。「予期しない」最良マッチングは、例えば、最良のマッチングがたまたま小さなSAD値を有するが、当該ブロックの運動ベクトルが隣接ブロックから外れる2つの画像フレーム間の一様な(例えば、1色の)領域内でのブロックのマッチングブロックに関して、予期せずマッチしたブロックの隣接部分内でのマッチングブロックの探索を悪化させることがある。カメラの動きに関する情報を入力として使用することは、このような予期せぬマッチングを低減することがあるが、今度は、例えば、P−スキップエンコーディング、B−スキップエンコーディング又はI−ブロックエンコーディングに対する上述の閾値を、より高いSAD値に設定することが可能になる。
【0031】
第2の態様では、本発明は、処理能力を有する装置によって実行されると第1の態様による方法を実施するように適合された命令を有するコンピュータ可読記憶媒体を含む、コンピュータプログラム製品を提供する。
【0032】
第3の態様では、本発明はカメラによってキャプチャされたビデオストリームをエンコードするように構成されたエンコーダを提供し、ビデオストリームは第1の画像フレームと第2の画像フレームを含み、第1の画像フレームはビデオストリーム内で第2の画像フレームに先行し、エンコーダは、
− カメラの動きに関する情報を受信するように構成された受信コンポーネントと、
− カメラの動きに関する情報に基づいて、第1の画像フレーム内にも存在する画像データを含む第2の画像フレームの第1の領域と、第1の画像フレーム内に存在しない画像データを含む第2の画像フレームの第2の領域を定義するように構成された領域計算コンポーネントと、
− 第2の領域に対して、I−ブロックエンコーディングを使用して各ピクセルブロックをエンコードし、
− 第1の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと第1の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック及びPスキップブロックのうちのいずれか1つとして特定のピクセルブロックをエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードするように
− 構成されたエンコードコンポーネントとを含む。
【0033】
第3の態様では、本発明はビデオストリームをキャプチャするように構成されたカメラを提供し、カメラはカメラの動きを推定するための動作推定装置を備え、カメラは請求項9で定義されるエンコーダに接続され、動作推定装置はカメラの動きに関連する情報をエンコーダへ送信し、カメラはビデオストリームをエンコーダへ送信するように構成されている。
【0034】
幾つかの実施形態によれば、動作推定装置は、カメラのPT制御への入力、カメラのステップモータの動きに関する情報、カメラ内のセンサからの動作データ、及びビデオストリームの画像フレームの時間的フィルタ処理からのグローバルモーション推定のうちの少なくとも1つを使用して、カメラの動きを推定するように構成されている。
【0035】
第2、第3、及び第4の態様は、概して、第1の態様と同一の特徴及び利点を有しうる。
【0036】
本発明の上記及び追加の目的、特徴、利点は、付随する図面を参照しつつ、本発明の実施形態の以下の例示的かつ非限定的な詳細説明を通して、より明確に理解されるであろう。図面では類似要素に対して同じ参照番号が使用されている。
【図面の簡単な説明】
【0037】
図1】ビデオストリームの第1及び第2の画像フレームを示しており、ビデオストリームをキャプチャするカメラは第1の画像フレームと第2の画像フレームとの間で動いている。
図2】本発明の実施形態による図1のカメラの動きに基づいた、図1の第2画像内の第1及び第2の領域の定義を示している。
図3】本発明の実施形態による図1のカメラの動きに基づいた、図1の第2画像内の第1及び第2の領域の定義を示している。
図4】ビデオストリームの第1、第2及び第3の画像フレームを示しており、ビデオストリームをキャプチャするカメラは第1画像フレームと第2画像フレームとの間、並びに第2画像フレームと第3画像フレームとの間で動いている。
図5】本発明の実施形態による図4のカメラの動きに基づいた、図4の第2の画像内での第1、第2、第3及び第4の領域の定義を示している。
図6】本発明の実施形態による図4のカメラの動きに基づいた、図4の第2の画像内での第1、第2、第3及び第4の領域の定義を示している。
図7】本発明の実施形態による、第2の画像のピクセルブロックのエンコードに先立って、第2の画像の回転を示している。
図8】本発明の実施形態による、カメラによってキャプチャされたビデオストリームのエンコードのためエンコーダで実行される方法を示している。
図9】本発明の実施形態によるエンコーダを示している。
図10】本発明の実施形態によるカメラを示している。
【発明を実施するための形態】
【0038】
図1は、ビデオストリームの第1の画像フレーム102と第2の画像フレーム104を示しており、第1の画像フレーム102はビデオストリーム内の第2の画像フレーム104に先行している。2つの画像フレーム102、104はそれぞれ2つのオブジェクトを示しているが、キャプチャされた第1の画像フレーム102と第2の画像フレーム104との間でカメラは動いているため、第2の画像フレーム104内の2つのオブジェクトは、第1の画像フレーム102内の2つのオブジェクトと比較して、画像内で更に左に位置している。このように、カメラは2つの画像フレーム102、104のキャプチャ中に右へパンしているが、2つの画像フレーム102と104との間の視野は重なり合っている。
【0039】
図2は、図1の2つの画像フレーム102、104を示しているが、第1の画像フレーム102と第2の画像フレーム104の両方でキャプチャされた視野を定義する領域106、並びに、第2の画像フレーム104だけにキャプチャされた視野を定義する領域108を示すため、重なり合っている。すなわち、図2は、第1の画像フレーム102内にも存在する画像データを含む第2の画像フレーム104の第1の領域106、並びに、第1の画像フレーム102内に存在しない画像データを含む第2の画像フレーム104の第2の領域108を定義する。
【0040】
図3では、第2の画像フレーム104の2つの定義された領域106、108が、説明を目的として画像コンテンツなしで示されている。エンコーダによって実行される第2の画像をエンコードする方法は、図8を参照して説明される。
【0041】
これら2つの領域は、カメラから受信(S802)したカメラの動きに関する情報を使用して、(例えば、図1〜2の第1の画像フレーム102及び第2の画像フレーム104を含む)ビデオストリームをエンコードするように構成されたエンコーダで定義(S804)されうる。すなわち、領域106、108を定義するには、エンコーダ内での画像解析などは不要である。このような情報はカメラから受信されてもよく、また、カメラの動きを推定する装置に由来してもよい。動作推定装置は、カメラのPT制御への入力などの情報、カメラのステップモータの動きやカメラ内のセンサからのモーションデータに関する情報を使用して、カメラの動きに関する情報を生成しうる。動作推定装置はまた、ビデオストリームの画像フレームの時間的フィルタ処理など、カメラの動きに関する情報を抽出するための画像解析を使用して、画像フレームのグローバルモーション、すなわち、画像フレーム全体の運動ベクトルを推定しうる。
【0042】
カメラの動きに関する情報を使用して、エンコーダは、第1の画像フレーム102内にも存在する画像データを含む第2の画像フレーム104の第1の領域106、及び第1の画像フレーム102内に存在しない画像データを含む第2の画像フレーム104の第2の領域108を定義すること(S804)ができる。
【0043】
少なくとも大部分の画像データを含む第2の領域108は、第1の画像フレーム内に存在する可能性が低いため(データの一部は言うまでもなく、カメラによってキャプチャされたシーン内のオブジェクトの動きによって、第1の画像フレーム内に存在しうる)、エンコーダは、第1の画像フレーム102と第2の画像フレーム104との間の高価なブロックマッチング操作を行うことなく、I−ブロックエンコーディングを使用して、各ピクセルブロックをエンコードする(S814)。
【0044】
第1の領域に関しては、通常のエンコーディング、すなわち、特定のピクセルブロックと第1の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック及びPスキップブロックのうちのいずれか1つとして特定のピクセルブロックをエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードすること(S816)が採用されうる。ブロックマッチングアルゴリズムは、第2の画像フレーム104の特定のブロックに最もよくマッチするのは第1の画像102のどのブロックであるかを表わす値を、例えば、第1の画像フレーム102と第2の画像フレーム104との間の対応するブロックの動きを記述する運動ベクトルを出力することによって出力する。特定のブロックに対して、適切なマッチングブロックが第1の画像102内に見つからなかった場合には、ブロックマッチングアルゴリズムは、このことを表わす値を出力してもよい。ブロックマッチングアルゴリズムはまた、第1の画像102内の最良マッチングに対してどの程度よくマッチするかを表わすある種の値を出力する。例えば、SAD値となりうる差分値(コスト関数又はコスト値としても知られている)、平均絶対差(MAD)、平均二乗誤差(MSE)又はブロックマッチングアルゴリズムで公知の他の適切な値である。この値に基づいて、エンコーダは、特定のピクセルブロックをエンコードするための利用可能なエンコード方法を選択する。例えば、エンコーダは、利用可能なエンコード方法を選択するための所定の閾値を有してもよく、その結果、例えば、ピクセルブロックをP−スキップブロックとしてエンコードするための閾値を満たす差分値は、当該の方法でエンコードされる。
【0045】
第2の領域のエンコードで節約された処理能力は、オプションでブロックマッチングアルゴリズムの運動ベクトルの探索範囲を広げるために使用されてもよい。しかも、カメラの動きに関する情報は、例えば、第2の画像フレーム104の第1の領域106内の特定のピクセルブロックに対して、第1の画像フレーム102内のピクセルブロックのマッチングを探索する開始点を定義するため、ブロックマッチングアルゴリズムへの入力として提供されてもよい。
【0046】
オプションにより、I−ブロックエンコーディング、P−ブロックエンコーディング又はPスキップブロックエンコーディングのいずれかを使用して、第1の領域106のピクセルブロックをエンコード(S816)する前に、利用可能なエンコード方法の選択に使用されるエンコーダの閾値は変更されてもよい。エンコーダは、上述のように第1の領域106と第2の領域108を定義し、第1の領域106の内容が第1の画像102内に存在する可能性が高いことを知っているため、この知識は、エンコード品質を改善し、及び/又はカメラが動いている間にビットレートを引き下げるように、有利に活用しうる。例えば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをI−ブロックとしてエンコードすることを選択するための、所定の第1の閾値を有しうる。言い換えるならば、例えば、第2の画像104の特定のピクセルブロックの第1の画像102内での最良マッチングのため、ブロックマッチングアルゴリズムによって出力された差分値に基づいて、エンコーダは通常、どのエンコード方法を使用すべきかについて、何らかの判断を下す。例えば、ブロックマッチングアルゴリズムがSAD値を出力する場合には、所定の第1の閾値は、特定のピクセルブロックをI−ブロックとしてエンコードする際に400となることがある。この実施形態では、カメラが動いている間に、第1の閾値を例えば550まで引き上げる(S808)ことができるように、カメラの動きに関する知識を使用することができる。
【0047】
オプションにより、他の閾値はカメラが動いている間に変更されることがある。例えば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをPスキップブロックとしてエンコードするか、ピクセルブロックをPブロックとしてエンコードするかを選択するための所定の第2の閾値を有しうる。言い換えるならば、例えば、第2の画像104の特定のピクセルブロックの第1の画像102内での最良マッチングのため、ブロックマッチングアルゴリズムによって出力された差分値に基づいて、エンコーダは通常、どのエンコード方法を使用すべきかについて、何らかの判断を下す。例えば、ブロックマッチングアルゴリズムがSAD値を出力する場合、所定の第2の閾値は、特定のピクセルブロックをP−スキップブロックとしてエンコードする際に60となることがある。この値を下回ると、特定のピクセルブロックはP−スキップブロックとしてエンコードされるが、一方、この値を上回ると(但し、第1の閾値を下回る)、特定のピクセルブロックはPブロックとしてエンコードされる。この実施形態では、カメラが動いている間に、第2の閾値を例えば105まで引き上げる(S810)ことができるように、カメラの動きに関する知識を使用することができる。
【0048】
ビデオのエンコードには様々なエンコーダ規格がある。例として、H.264/AVCとH.265の2つを挙げることができる。H.265のタイルの概念(タイルは画像フレームを、独立にエンコード/デコードされうる長方形の区域に分割する)は、カメラのあらゆる種類(水平、垂直、対角など)の動きに対して可能であるように記述される区域に、画像フレームを分割する。しかしながら、H.264エンコーダに関しては、独立にエンコードされうる区域に画像フレームを分割するためのスライスの概念は同様に柔軟なわけではない。スライスは、画像フレームの上部を開始点として、スキャン順に通常は左から右に処理されるピクセルブロックを含む。これは図7で説明されているが、図に示されているように、水平の動きは第1の領域106と第2の領域108をもたらす。スライスの概念を利用すると、画像フレーム104は図7に示すように区域/領域に分割することはできない。しかしながら、画像フレーム104をスライスに分割する前に、画像フレームを左から右へ90度回転して、回転された画像フレーム104’を形成することにより、画像フレームを第1の領域106と第2の領域108に有利に分割することができる。
【0049】
幾つかの実施形態によれば、エンコーダのエンコード方法はまた、B−ブロックエンコーディングとB−スキップブロックエンコーディングを含む。このように、第2画像フレームに続く画像フレームの内容もエンコードの目的で使用可能である。これを図4から図6に示す。したがって、ビデオストリームは、第3の画像フレーム202、第3の画像フレームに先行する第2の画像フレームを含む。この実施形態では、第1の領域106と第2の領域108は、第3の画像に存在しない画像データを含む。しかしながら、カメラの動きに関する知識と第3の画像フレーム202をキャプチャするときのカメラのFOVに関する知識を利用すると、第2の画像フレーム104は、更に2つの領域、すなわち、第3の領域204と第4の領域206に分割可能である。
【0050】
図4は、第1の画像フレーム102、第2の画像フレーム104及び第3の画像フレーム202を示す。第1の画像フレーム102はビデオストリーム内で第2の画像フレーム104に先行し、第2の画像フレーム104はビデオストリーム内で第3の画像フレーム202に先行する。2つの画像フレーム102、104はそれぞれ2つのオブジェクトを示しているが、第1の画像フレーム102と第2の画像フレーム104がキャプチャされる間にカメラが動いたため、第2の画像フレーム104内の2つのオブジェクトは、第1の画像フレーム102内の2つのオブジェクトと比較して、画像フレーム104内の更に左上方に配置されている。第3の画像フレーム202内には1つのオブジェクトしか示されていないが、これは、第3の画像フレーム202をキャプチャしたときに、他のオブジェクトがカメラのFOVを離れてしまったためである。したがって、3つの画像フレーム102、104、202のキャプチャ中に、カメラは右方及び下方にパンされたが、3つの画像フレーム102、104、202の間に重複する視野を有している。
【0051】
図5は、図4の3つの画像フレーム102、104、202を示しているが、第1の画像フレーム102と第2の画像フレーム104の2つでキャプチャされているが、第3の画像フレーム202ではキャプチャされていない視野を定義する領域106、並びに、第2の画像フレーム104内でのみキャプチャされた視野を定義する領域108を示すため、重ね合わされている。更に、第2画像フレームの第3の領域204は、第1の画像フレーム102と第3の画像フレーム202の2つによってキャプチャされた視野を示している。第2の画像フレームの第4の領域206はまた、第3の画像フレーム202にキャプチャされているが、第1の画像フレーム102にはキャプチャされていない視野を示している。
【0052】
言い換えるならば、図5は、第1の画像フレーム102内にも存在するが、第3の画像フレーム202内には存在しない画像データを含む第2の画像フレーム104の第1の領域106、第1の画像フレーム102内又は第3の画像フレーム202内に存在しない画像データを含む第2の画像フレーム104の第2の領域108、第1の画像フレーム102内及び第3の画像フレーム202内にも存在する画像データを含む第2の画像フレーム104の第3の領域204、並びに、第3の画像フレーム202内にも存在するが、第1の画像フレーム102内には存在しない画像データを含む第2の画像フレーム104の第4の領域206を定義する。
【0053】
図6では、第2の画像フレーム104の4つの定義された領域106、108、204、206は、説明のため画像コンテンツなしで示されている。
【0054】
図6に示されているように、第2の画像をエンコードするためのエンコーダによって実行される方法は、図8を参照して説明される。図8の方法は、第3の画像フレーム202が第2の画像フレーム104のエンコード処理に含まれるときには、以下で説明されるように、更なるステップによって延長されうる。この実施例で説明されていない図8の方法のステップ(S804、S808、S810、S814及びS816)は、図1図3を参照して上述されるように解釈されたい。
【0055】
エンコーダによって受信(S802)された動きの情報を利用して、第2画像フレーム104の第3の領域204と第4の領域206は、上述のように定義(S806)されうる。
【0056】
エンコーダは、上述のように第3の領域204と第4の領域206を定義したため、第3の領域204の内容は第1の画像フレーム102内及び第3の画像フレーム202内の両方に存在する可能性が高く、一方、第4の領域206の内容は第3の画像フレーム202内に存在するが、第1の画像フレーム102内には存在しない可能性が高いことを理解しているため、この知識は、エンコード品質を改善し、エンコードの複雑な計算を軽減し、及び/又はカメラが動いている間にビットレートを引き下げるように、有利に活用しうる。
【0057】
例えば、第3の領域204及び第4の領域206の内容に関する上記の知識を利用することで、エンコーダは、2つの領域の各々に対して種々のエンコード方法の組の中からエンコード方法を有利に選択することができる。第3の領域204の特定のピクセルブロックの各々に対して、エンコーダは、特定のピクセルブロックと第1の画像フレーム102及び第3の画像フレーム202の少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて(第3の領域は第1の画像フレーム102内及び第3の画像フレーム202内の両方に存在する画像データを含む可能性が高いため)、I−ブロック、P−ブロック、Pスキップブロック、B−ブロック及びBスキップブロックのうちのいずれか1つとして特定のピクセルブロックのエンコーディングを選択し、その選択に従って特定のピクセルブロックをエンコード(S818)することができる。他方、第4の領域206の特定のピクセルブロックの各々に対して、エンコーダは、特定のピクセルブロックと第3の画像フレーム202の少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて(第4の領域206の画像コンテンツは第3の画像フレーム202内に存在するが、第1の画像フレーム102内には存在しない可能性が高いため)、I−ブロック、B−ブロック及びBスキップブロックのうちのいずれか1つとして特定のピクセルブロックのエンコーディングを選択し、その選択に従って特定のピクセルブロックをエンコード(S820)することができる。例えば、第1の画像フレーム102が、第4の領域206内の特定のピクセルブロックにマッチングする画像データを含まない可能性が高いことをあらかじめ知ることによって、第4の領域に対してエンコード方法の複雑な計算が軽減されうる。
【0058】
オプションにより、第3及び第4の領域内のピクセルブロックをエンコード(S818、S820)する前に、利用可能なエンコード方法の選択に使用されるエンコーダの閾値は変更されてもよい。
【0059】
例えば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをBスキップブロックとしてエンコードするか、ピクセルブロックをBブロックとしてエンコードするかを選択するための所定の第3の閾値を有する。例えば、ブロックマッチングアルゴリズムがSAD値を出力する場合、特定のピクセルブロックをB−スキップブロックとしてエンコードする際には、所定の第3の閾値は(第3の画像フレーム202及び/又は第1の画像フレーム102の最良のマッチングブロックに対して)、45になりうる。この値を下回ると、特定のピクセルブロックはB−スキップブロックとしてエンコードされるが、一方、この値を上回ると(但し、第1の閾値を下回る)、特定のピクセルブロックはBブロックとしてエンコードされる。この実施形態では、カメラが動いている間に、第3の閾値を例えば90まで引き上げる(S810)ことができるように、カメラの動きに関する知識を使用することができる。
【0060】
上述のように、カメラの動きに関する情報はブロックマッチングアルゴリズムへの入力であり、これによりブロックマッチングアルゴリズムはこの入力を開始値とし使用し、第1の画像及び/又は第3の画像内で、ブロックマッチングアルゴリズムは、第2の画像フレーム104内の特定のピクセルブロックに関する第1の画像フレーム102及び/又は第3の画像フレーム202内のピクセルブロックに対して、ブロックのマッチング及び差分値(コスト関数など)の計算を開始しなければならない。
【0061】
図9は、図8で説明した方法を実装するエンコーダ900を示す。エンコーダ900はこのように、カメラによってキャプチャされるビデオストリーム908をエンコードするように構成されている。ビデオストリーム908は、第1の画像フレームと第2の画像フレームを含み、第1の画像フレームはビデオストリーム908内で第2の画像フレームに先行する。このビデオストリーム908は、エンコーダによって受信される。
【0062】
エンコーダ900は更に、カメラの動きに関する情報910を受信するように構成された受信コンポーネント902を含む。この受信コンポーネントは、ビデオストリーム908を受信するようにも構成されうる。
【0063】
エンコーダはまた、カメラの動きに関する情報910に基づいて、第1の画像フレーム内にも存在する画像データを含む第2の画像フレームの第1の領域、並びに、第1の画像フレーム内に存在しない画像データを含む第2の画像フレームの第2の領域を定義するように構成される領域計算コンポーネント904を含む。
【0064】
エンコーダは更に、第2の領域に対して、I−ブロックエンコーディングを使用して各ピクセルブロックをエンコードし、第1の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと第1の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、I−ブロック、P−ブロック及びPスキップブロックのうちのいずれか1つとして特定のピクセルブロックをエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードするように構成されているエンコードコンポーネント906を含む。
【0065】
ビデオストリーム908は、幾つかの実施形態により、エンコードコンポーネント906で直接受信されうる。
【0066】
本開示のエンコーダは、エンコーダ900に送信されるビデオストリーム908をキャプチャするカメラ1000への有線接続又は無線接続を有しうる。そのようなカメラ1000を図10に示す。幾つかの実施形態では、カメラはエンコーダ900を含む。カメラは、カメラの動きを推定し、その動きに関する情報910をエンコーダへ送信するための動作推定装置1002を含む。動作推定装置1002は、カメラのPT制御への入力、カメラのステップモータの動きに関する情報、カメラ内のセンサ(例えば、ジャイロ、赤外線センサ又は公知の同様なモーションセンサ)からの動作データ、及びビデオストリームの画像フレームの時間的フィルタ処理からグローバルモーション推定を実行するように構成されたビデオカメラソフトウェアのうちの少なくとも1つを使用して、カメラの動きを推定するように構成されている。
【0067】
上述のように、カメラの動きに関する知識は、エンコードすべき画像フレームの種々の領域に対して種々の量子化パラメータを使用するため、エンコーダによって利用されうる。例えば、第2の画像フレームをエンコードするときには、エンコーダは、現在の第2の画像フレームのエンコード時に利用可能な次のフレーム(例えば、第3の画像フレーム)の間に、カメラがどのように動いたかがわかるデータにアクセスするため、このデータはエンコード品質の向上及び/又は必要なビットレートの低減に利用しうる。上記で既に述べたことを除き、更なる実施例を示す。
【0068】
8つのピクセルブロックA、B、C、D、E、F、G及びH(例えば、16x16ピクセル)を有するビデオに関しては、次のように定義される。
右方向への16ピクセルのPTZ動作によって、
− ブロックAとEは次のフレームで消える
− ブロックBとFは次の次のフレームで消える
− ブロックDとHはこのフレーム内では新しい
− ブロックの残り(CとG)は少なくとも2つ先のフレームで残っている
【0069】
カメラのパンニング動作に関する上記の情報に基づいて、以下のQP値の表を適用することができる。
【0070】
QP値が下がると圧縮率が下がり、エンコード品質が高まることに留意されたい。
【0071】
上記に開示されたシステム(例えば、エンコーダ900)及び方法は、ソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせとして実装されうる。ハードウェアの実装では、上記の説明で言及した機能性ユニット又はコンポーネント間のタスクの分割(例えば、受信コンポーネント902、領域計算コンポーネント904など)は、必ずしも物理的ユニットへの分割に対応せず、逆に、1つの物理的コンポーネントは複数の機能性を有し、1つのタスクが協働する幾つかの物理的コンポーネントによって実行されてもよい。特定のコンポーネント、又はすべてのコンポーネントは、デジタル信号プロセッサ又はマイクロプロセッサによって実行されるソフトウェアとして、又はハードウェア或いは特定用途向け集積回路として実装されうる。このようなソフトウェアは、コンピュータ記憶媒体(又は非一過性媒体)及び通信媒体(又は一過性媒体)を含みうるコンピュータ可読媒体に振り分けされうる。当業者にはよく知られているように、コンピュータ記憶媒体という用語は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するために、任意の方法又は技術において実装される揮発性及び不揮発性の媒体、着脱可能及び固定型の媒体を含む。コンピュータ記憶媒体は、限定するものではないが、RAM、ROM、EEPROM、フラッシュメモリ、又は他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、又は他の磁気記憶デバイス、又は所望の情報の保存に使用することができ、コンピュータによるアクセスが可能な他の任意の媒体を含む。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10