(57)【特許請求の範囲】
【請求項１】
カメラによってキャプチャされる、シーンを描写するビデオストリームをエンコードするエンコーダで実行される方法であって、前記ビデオストリームは第１の画像フレーム（１０２）と第２の画像フレーム（１０４）を含み、前記第１の画像フレームは前記ビデオストリーム内で前記第２の画像フレームに先行し、前記第１及び第２の画像フレームは前記シーンの部分的に重なる部分をカバーし、前記方法は、
前記カメラの動きに関する情報を受け取るステップ（Ｓ８０２）と、
前記カメラの動きに関する前記情報に基づいて、前記第２の画像フレームの第１の領域（１０６）と第２の領域（１０８）を定義するステップ（Ｓ８０４）であって、前記第１の領域は前記第１の画像フレームによってもカバーされる前記シーンの一部をカバーし、前記第２の領域は前記第１の画像フレームによってカバーされていない前記シーンの一部をカバーするステップと、
前記第２の領域に対して、Ｉ−ブロックエンコーディングを使用して各ピクセルブロックをエンコードするステップ（Ｓ８１４）と、
前記第１の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第１の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック及びＰスキップブロックのうちのいずれか１つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ（Ｓ８１６）と、
前記カメラが動いている間に、所定の閾値を引き上げるステップ（Ｓ８０８）と
を含み、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第１の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記所定の閾値を超えるときには、ピクセルブロックをエンコードされた第１の種類のブロックとして、又は前記差分値が前記所定の閾値を超えないときには、ピクセルブロックをエンコードされた第２の種類のブロックとして、エンコードすることを選択するように構成されている、方法。
【請求項２】
前記所定の閾値が、所定の第１の閾値であり、前記エンコードされた第１の種類のブロックが、Ｉ−ブロックである、請求項１に記載の方法。
【請求項３】
前記エンコーダは所定の第２の閾値を有し、前記エンコーダは、ピクセルブロックをＰスキップブロックとしてエンコードするか、ピクセルブロックをＰブロックとしてエンコードするかを選択するように構成されており、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第１の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記第２の閾値を超えないときには前記ピクセルブロックをＰスキップブロックとしてエンコードするように構成されており、前記第２の閾値は前記第１の閾値よりも低く、前記エンコーダは、前記差分値が前記第２の閾値と前記第１の閾値の間であるときには前記ピクセルブロックをＰブロックとしてエンコードし、
前記カメラが動いている間に、前記第２の閾値を引き上げるステップ（Ｓ８１０）を含む、請求項２に記載の方法。
【請求項４】
前記ビデオストリームは更に、第３の画像フレーム（２０２）と、前記ビデオストリーム内で前記第３の画像フレームに先行する前記第２の画像フレームを含み、前記第３の画像フレームは、前記第１及び前記第２の画像フレームによってカバーされる前記シーンの一部に部分的に重なる前記シーンの一部をカバーし、前記第１の領域と第２の領域は、前記第３の画像フレームによってカバーされない前記シーンの一部をカバーする、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記カメラの動きに関する情報に基づいて、前記第１の画像フレームと前記第３の画像フレームによってもカバーされる前記シーンの一部をカバーする前記第２の画像フレームの第３の領域（２０４）、並びに、前記第３の画像フレームによってもカバーされるが前記第１の画像フレームによってカバーされない前記シーンの一部をカバーする前記第２の画像フレームの第４の領域（２０６）を定義するステップ（Ｓ８０６）と、
前記第２の領域は前記第３の画像フレームによってカバーされていない前記シーンの一部をカバーし、前記第１の領域は前記第３の画像フレームによってカバーされていない前記シーンの一部をカバーし、前記第３の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第１及び第３の画像フレームの少なくとも一部を入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック、Ｐスキップブロック、Ｂ−ブロック及びＢスキップブロックのうちのいずれか１つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ（Ｓ８１８）と、
前記第４の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと前記第３の画像フレームの少なくとも一部を入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｂ−ブロック及びＢスキップブロックのうちのいずれか１つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ（Ｓ８２０）と
を更に含む、請求項４に記載の方法。
【請求項６】
前記エンコーダは、ピクセルブロックをＢスキップブロックとしてエンコードするか、ピクセルブロックをＢブロックとしてエンコードするかを選択するための所定の第３の閾値を有し、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第１の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記第３の閾値を超えないときには、前記ピクセルブロックをＢスキップブロックとしてエンコードするように構成されており、前記第３の閾値は前記第１の閾値よりも低く、前記エンコーダは、前記差分値が前記第３の閾値と前記第１の閾値の間であるときには前記ピクセルブロックをＢブロックとしてエンコードし、
前記カメラが動いている間に、前記第３の閾値を引き上げるステップ（Ｓ８１２）を含む、請求項２に従属する請求項５に記載の方法。
【請求項７】
前記第１の領域のピクセルブロックをエンコードするステップは第１の量子化パラメータを使用することを含み、
前記第２の領域のピクセルブロックをエンコードするステップは第２の量子化パラメータを使用することを含み、
前記第３の領域のピクセルブロックをエンコードするステップは第３の量子化パラメータを使用することを含み、
前記第４の領域のピクセルブロックをエンコードするステップは第４の量子化パラメータを使用することを含み、
前記第３及び第４の量子化パラメータは、前記第１及び第２の量子化パラメータより小さい、請求項５又は６に記載の方法。
【請求項８】
前記第４の量子化パラメータは前記第３の量子化パラメータより小さい、請求項７に記載の方法。
【請求項９】
前記エンコーダはＨ．２６４エンコーダであり、
前記カメラの動きに関する情報が前記カメラの水平運動に対応することを判定するステップと、
前記第２の画像の前記ピクセルブロックのエンコードに先立って前記第２の画像を回転するステップと
を更に含む、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記ブロックマッチングアルゴリズムへの入力として、前記カメラの動きに関する情報を提供するステップを更に含む、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
処理能力を有するデバイスによって実行されると、請求項１から１０のいずれか一項に記載の方法を実行するように適合された命令を有するコンピュータ可読記憶媒体。
【請求項１２】
カメラによってキャプチャされた、シーンを描写するビデオストリーム（９０８）をエンコードするように構成されたエンコーダ（９００）であって、前記ビデオストリームは第１の画像フレームと第２の画像フレームを含み、前記第１の画像フレームは前記ビデオストリーム内で前記第２の画像フレームに先行し、前記第１及び第２の画像フレームは前記シーンの部分的に重なる部分をカバーし、前記エンコーダは、
前記カメラの動きに関する情報（９１０）を受信するように構成された受信コンポーネント（９０２）と、
前記カメラの動きに関する前記情報に基づいて、前記第２の画像フレーム内の、前記第１の画像フレームによってもカバーされる前記シーンの一部をカバーする第１の領域（１０６）と、前記第１の画像フレームによってカバーされない前記シーンの一部をカバーする第２の領域（１０８）を定義するように構成された領域計算コンポーネント（９０４）と、
前記第２の領域に対して、Ｉ−ブロックエンコーディングを使用して各ピクセルブロックをエンコードし、
前記第１の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第１の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック及びＰスキップブロックのうちのいずれか１つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードし、
前記カメラが動いている間に、所定の閾値を引き上げる（Ｓ８０８）ように
構成されたエンコードコンポーネント（９０６）と
を備え、前記エンコーダは、前記ブロックマッチングアルゴリズムからの出力であり前記ピクセルブロックが前記第１の画像フレームの最良マッチングピクセルブロックとどの程度よくマッチするかを表す差分値が前記所定の閾値を超えるときには、ピクセルブロックをエンコードされた第１の種類のブロックとして、又は前記差分値が前記所定の閾値を超えないときには、ピクセルブロックをエンコードされた第２の種類のブロックとして、エンコードすることを選択するように構成されているエンコーダ。
【請求項１３】
シーンを描写するビデオストリーム（９０８）をキャプチャするように構成されたカメラ（１０００）であって、前記カメラは前記カメラの動作を推定するための動作推定装置（１００２）を備えるカメラと、
前記カメラが接続される請求項１２に定義されたエンコーダと
を備えたシステムであって、前記動作推定装置は前記カメラの動きに関連する情報を前記エンコーダへ送信するように構成されており、前記カメラは前記ビデオストリームを前記エンコーダへ送信するように構成されている、システム。
【請求項１４】
前記動作推定装置は、前記カメラのパン−チルト制御への入力、前記カメラのステップモータの動きに関する情報、前記カメラ内のセンサからの動作データ、及び前記ビデオストリームの画像フレームの時間的フィルタ処理からのグローバルモーション推定のうちの少なくとも１つを使用して、前記カメラの動きを推定するように構成されている、請求項１３に記載のシステム。
【請求項１５】
カメラによってキャプチャされる、シーンを描写するビデオストリームをエンコードするＨ．２６４エンコーダで実行される方法であって、前記ビデオストリームは第１の画像フレーム（１０２）と第２の画像フレーム（１０４）を含み、前記第１の画像フレームは前記ビデオストリーム内で前記第２の画像フレームに先行し、前記第１及び第２の画像フレームは前記シーンの部分的に重なる部分をカバーし、前記方法は、
前記カメラの動きに関する情報を受け取るステップ（Ｓ８０２）と、
前記カメラの動きに関する前記情報に基づいて、前記第２の画像フレームの第１の領域（１０６）と第２の領域（１０８）を定義するステップ（Ｓ８０４）であって、前記第１の領域は前記第１の画像フレームによってもカバーされる前記シーンの一部をカバーし、前記第２の領域は前記第１の画像フレームによってカバーされていない前記シーンの一部をカバーするステップと、
前記第２の領域に対して、Ｉ−ブロックエンコーディングを使用して各ピクセルブロックをエンコードするステップ（Ｓ８１４）と、
前記第１の領域の特定のピクセルブロックの各々に対して、前記特定のピクセルブロックと前記第１の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用する前記ブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック及びＰスキップブロックのうちのいずれか１つとして前記特定のピクセルブロックをエンコードすることを選択し、前記選択に従って前記特定のピクセルブロックをエンコードするステップ（Ｓ８１６）と、
前記カメラの動きに関する情報が前記カメラの水平運動に対応することを判定するステップと、
前記第２の画像の前記ピクセルブロックのエンコードに先立って前記第２の画像を回転するステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、エンコーダ内で実行される、カメラによってキャプチャされたビデオストリームをエンコードするための方法、並びにその方法を実装するコンピュータプログラム製品とエンコーダに関する。
【背景技術】
【０００２】
多くのビデオカメラアプリケーションでは、例えばモニタリングアプリケーションでは、大領域をカバーするため、パン、チルト（また、オプションによりズーム及び／又は回転）が可能なカメラの使用は有利である。このようなカメラはＰＴ（パン−チルト）カメラ、ＰＴＺ（パン−チルト−ズーム）カメラなど名称で知られている。例えば、カメラのパン／チルト動作中には、画像フレーム内の大部分又はすべてのピクセルブロックが高コストなＩ−ブロックを使用してエンコードされるため、ビットレートが高くなり、カメラによってキャプチャされるビデオストリームのビットレートは高レベルに達することがある。代替的に、カメラのこのような動作中にはビデオストリームのエンコード品質は引き下げられ、ビットレートは低下する。しかしながら、これは一般的に、ビデオストリームを不鮮明にすることがある。
【０００３】
画像処理の世界では、認識された画像の品質を維持したまま、ビットレート又は画像サイズを小さくするための取組みが継続的に行われている。上記の問題に対する解決策は、パン／チルトの速度調整に従って、ビデオストリームをエンコードするエンコーダの運動ベクトルの探索範囲に適合することである。２つの画像間でのピクセルブロックのマッチングの探索は、通常大量の算術演算を必要とし、運動ベクトルの探索範囲が広がることでより多くの比較が行われる。そのため、この解決策の問題点は、エンコード処理の計算がより複雑化するため、プロセッサにより高い能力が求められること、及び／又はエンコード処理を完了するのにより多くの処理時間が求められることにある。
【０００４】
従って、このような状況の中で改善が必要とされている。
【発明の概要】
【０００５】
上述に鑑み、本発明の目的は、上記の欠点のうちの１つ又は幾つかを解決するか、少なくとも低減させることにある。概して、上記の目的は添付の独立請求項によって達成される。
【０００６】
第１の態様によれば、本発明はカメラによってキャプチャされるビデオストリームをエンコードするためのエンコーダ内で実行される方法によって実現される。ビデオストリームは第１の画像フレームと第２の画像フレームを含み、第１の画像フレームはビデオストリーム内で第２の画像フレームに先行する。本方法は、
−  カメラの動きに関する情報を受信するステップと、
−  カメラの動きに関する情報に基づいて、第１の画像フレーム内にも存在する画像データを含む第２の画像フレームの第１の領域、及び第１の画像フレーム内に存在しない画像データを含む第２の画像フレームの第２の領域を定義するステップと、
−  第２の領域に対して、Ｉ−ブロックエンコーディングを使用して各ピクセルブロックをエンコードするステップと、
−  第１の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと第１の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、特定のピクセルブロックをＩ−ブロック、Ｐ−ブロック及びＰスキップブロックのうちのいずれか１つとしてエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードするステップと
を含む。
【０００７】
発明者は、第１及び第２の画像フレームが周囲環境の少なくとも部分的に異なる部分のカバーするため、また、これがカメラの動きの情報を使用して定義されうるため、第２の画像のエンコードの改善が実現されうることを認識している。カメラの動作は、エンコーダによって取得可能である。例えば、カメラのＰＴ（Ｚ）制御への入力に関してカメラからエンコーダへ送られるデータによって、カメラのステップモータの動きに関する情報によって、カメラから（ジャイロなどから）のモーションセンサデータによって、ビデオストリームの画像フレームの時間的なフィルタ処理によるグローバルモーションの推定などによって取得可能である。
【０００８】
この情報を使用して、第２の画像フレームの第１及び第２の領域が定義可能で、第２の領域は新しい領域として知られ、周囲環境の新しい部分をカバーし、第１の画像フレームでキャプチャされた部分と比較される。その結果、第２の領域は、第１の画像フレーム内に存在しない画像データを含む可能性がはるかに高い。一方、第１の領域は、第１の画像でもカバーされた周囲の領域をカバーする。その結果、第１の領域は、第１の画像フレーム内に存在する画像データを含む可能性がはるかに高い。これらの領域が第２の画像内で決定されると、第２の領域内の各ピクセルブロックは、Ｉ−ブロックエンコーディングを使用してエンコードすることができる。その結果、第２の領域のピクセルブロックに対して、ブロックマッチングアルゴリズムを実行する処理能力の投入は不要になる。第１の領域のピクセルブロックに対して、ブロックマッチングアルゴリズムを使用して各ピクセルブロックのエンコードの間での選択が実行可能で、その出力は、ピクセルブロックがＩ−ブロック、Ｐ−ブロック及びＰスキップブロックを使用してエンコードされるべきかどうかを判定する。全数探索（Ｅｘｈａｕｓｔｉｖｅ  Ｓｅａｒｃｈ）、スリーステップ探索、二次元対数探索（Ｔｗｏ  Ｄｉｍｅｎｓｉｏｎａｌ  Ｌｏｇａｒｉｔｈｍｉｃ  Ｓｅａｒｃｈ）、フォーステップ探索など、公知の任意の好適なブロックマッチングアルゴリズムが使用されてもよい。計算リソースは第２の領域のエンコードで解放されるため、これらのリソースは、例えば、エンコーダの運動ベクトルの探索範囲を広げることによって、第１の領域のエンコードに使用されうる。
【０００９】
「Ｉ−ブロック」又は「Ｉ−ブロックエンコーディング」という用語は、本仕様書の文脈では、イントラコード化されるピクセルブロックであると理解されたい。
【００１０】
「Ｐ−ブロック」又は「Ｐ−ブロックエンコーディング」という用語は、本仕様書の文脈では、予測コード化されるピクセルブロックであると理解されたい。すなわち、運動ベクトル、並びに、ピクセルブロックと先行フレーム内の対応するピクセルブロックとの差分（残余誤差（ｒｅｓｉｄｕａｌ  ｅｒｒｏｒ））のみを保持するピクセルブロックであると理解されたい。
【００１１】
「Ｂ−ブロック」又は「Ｂ−ブロックエンコーディング」という用語は、本仕様書の文脈では、双方向予測コード化されるピクセルブロックであると理解されたい。すなわち、運動ベクトルに沿って、ピクセルブロックと先行画像フレーム及び／又は後続画像フレーム内の対応するピクセルブロックとの差分（残余誤差）を用いてエンコードされるピクセルブロックであると理解されたい。言い換えるならば、Ｂ−ブロックはブロックをエンコードするため、先行画像フレームのみ、後続画像フレームのみ、或いは先行画像フレームと後続画像フレームの両方を使用しうる。
【００１２】
「スキップブロック」又は「スキップエンコーディング」という用語は、本仕様書の文脈では、残余誤差又は運動ベクトルを送らずに（先行フレーム、また、オプションで後続の画像フレームも使用して）、コード化されるピクセルブロックであると理解されたい。デコーダは、既にデコードされた他のブロックから、このようなコード化されたブロックの運動ベクトルを推測する。スキップエンコーディングはまた、ダイレクトエンコーディングとも称される。
【００１３】
「ピクセルブロック」という用語は、本仕様書の文脈では、デジタル画像をエンコードする際に使われるデジタル画像のピクセルの基本単位であると理解されたい。
【００１４】
ピクセルブロックは、幾つかの映像エンコーディング規格においてマクロブロックと称されることもある。映像エンコーディング規格Ｈ．２６４では、ピクセルブロックのサイズは１６×１６ピクセルであってよい。映像エンコーディング規格Ｈ．２６５では、マクロブロックの代わりにいわゆるコーディングツリーユニット（ＣＴＵ）が用いられるため、Ｈ．２６５では、ピクセルブロックのサイズは１６×１６から６４×６４ピクセルの間で変動しうる。ピクセルブロックの他の規格（コーデックなど）及びサイズも使用されうる。この実施形態では、同じ圧縮率を有するシーンを表示するデジタル画像の一部分の範囲が、一又は複数のピクセルブロックとおおよそ、或いは完全に重なりうるため、より効率的なエンコーディングプロセスが達成されうる。この実施形態では、例えば、Ｈ．２６４，Ｈ．２６５、ＭＰＥＧ−４  Ｐａｒｔ２、又はＶＰ９コーデックなど、すべての適切なブロックベースのコーデック（すなわちブロックを用いたコーデック）が使用されうることを理解されたい。
【００１５】
幾つかの実施形態では、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロックとしてピクセルブロックをエンコードするように選択するための所定の第１の閾値を有し、本方法はカメラが動いている間に第１の閾値を引き上げるステップを含む。
【００１６】
第１の領域の特定のピクセルブロックに対して、ブロックマッチングアルゴリズムは、ブロックマッチングアルゴリズムが探索を行った第１の画像のブロック内で最良マッチングとなる差分値（ｄｉｆｆｅｒｅｎｃｅ  ｖａｌｕｅ）などを出力する。例えば、ブロックマッチングアルゴリズムは、ピクセルブロック間の各比較に対して、絶対差の和（ＳＡＤ）を計算してもよい。この差分値に基づいて、エンコーダは、Ｉ−ブロック、Ｐ−ブロック及びＰスキップブロックのいずれかを使用する特定のピクセルブロックのエンコーディングを選択する。エンコーダは、ピクセルブロックをＩ−ブロックとしてエンコードすることを選択する所定の第１の閾値を有する。例えば、これはＳＡＤで５００に相当する。この方法では、エンコーダがピクセルブロックに対して、Ｐエンコーディング又はＰ−スキップエンコーディングを選択するように、閾値が引き上げられる。そうでない場合には、Ｉ−ブロックエンコーディングを用いて、例えば、ピクセルブロックをＩ−ブロックとしてエンコードするためのＳＡＤ閾値を６００まで引き上げることによって、ピクセルブロックはエンコードされる。その結果、カメラが動いている間（例えば、ＰＴ動作中）には、通常はＩ−ブロックエンコーディングになる幾つかの異なる値に対して、エンコーダがＰ−ブロックエンコーディングを選択するように、第１の閾値は引き上げられる。その結果、高価なＩ−ブロックでエンコードされるピクセルブロックが少なくなるため、第１の領域のエンコーディングのビットレートは低下し、次にはエンコードされた第２の画像のビットレート全体が低下する。
【００１７】
幾つかの実施形態によれば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをＰスキップブロックとしてエンコードすることと、ピクセルブロックをＰブロックとしてエンコードすることとの間で選択を行うための所定の第２の閾値を有し、本方法はカメラが動いている間に第２の閾値を引き上げるステップを含む。
【００１８】
例えば、ピクセルブロックをＰスキップブロックとしてエンコードするか、ピクセルブロックをＰブロックとしてエンコードするかのいずれかの選択を行うための所定の第２の閾値は、最良マッチングに対してブロックマッチングアルゴリズムから出力される差分値（例えば、ＳＡＤ）の５０に相当することがある。この値を下回ると、エンコーダはピクセルブロックをＰスキップブロックエンコーディングとしてエンコードし（すなわち、残余及び運動ベクトルはエンコードされない）、一方、５０を上回ると（但し、Ｉ−ブロックエンコーディングの閾値、例えば、ＳＡＤ＝６００を越えない）、エンコーダはピクセルブロックをＰ−ブロックエンコーディングとしてエンコードする（残余及び運動ベクトルはエンコードされる）。第２の閾値を、例えば、ＳＡＤ＝１００まで引き上げることによって、第２の画像フレームの第１の領域内のより多くのピクセルブロックがＰ−スキップブロックを使用してエンコードされ、これにより、第２の画像フレームのエンコードされた第１の領域に対するビットレートが引き下げられる。
【００１９】
幾つかの実施形態によれば、ビデオストリームは更に、第３の画像フレーム、第３の画像フレームに先行する第２の画像フレームを含み、第１の領域及び第２の領域は、第３の画像に存在しない画像データを含む。これは、第２の画像フレームをエンコードする（すなわち、Ｂ−ブロックエンコーディングが可能な）ときに、エンコーダによって、第２の画像フレームの後続画像フレーム（第３の画像フレーム）が考慮されている場合であっても、本方法が依然として有効かつ有利であることを意味する。
【００２０】
幾つかの実施形態によれば、本方法は更に、カメラの動きに関する情報に基づいて、第１の画像フレーム内及び第３の画像フレーム内にも存在する画像データを含む第２の画像フレームの第３の領域、並びに、第３の画像フレーム内にも存在するが第１の画像フレーム内には存在しない画像データを含む第２の画像フレームの第４の領域を定義する。これは、第２及び第１の領域の定義に関連して上述された、同様の方法で実行される。
【００２１】
第３の領域の特定の各ピクセルブロックに対して、エンコーダは、特定のピクセルブロックと第１及び第３の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック、Ｐスキップブロック、Ｂ−ブロック及びＢスキップブロックのうちのいずれか１つとして特定のピクセルブロックのエンコーディングを選択することができ、その選択に従って特定のピクセルブロックをエンコードすることができる。これは、第１の画像及び第３の領域内でもカバーされる周囲の領域を第３の領域がカバーしていることをエンコーダが理解しているためで、これにより、上記のエンコード方法はすべて選択可能になる。
【００２２】
一方、第４の領域に関しては、この領域が第１の画像内でカバーされていない周囲の領域をカバーしているため、Ｐ−ブロック又はＰ−スキップブロックは適切な代替にはなっていない。その結果、第４の領域の特定のピクセルブロックの各々に対して、エンコーダは、特定のピクセルブロックと第３の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｂ−ブロック及びＢスキップブロックのうちのいずれか１つとして特定のピクセルブロックのエンコーディングを選択し、その選択に従って特定のピクセルブロックをエンコードするため有利である。
【００２３】
本実施形態は、それぞれの領域内でのピクセルブロックのエンコードに先立って、第２の画像に異なる領域に対して、選択可能なエンコード方法が定義されるため、エンコード操作の効率を高めることができる。例えば、第４の領域に関しては、エンコーダは第１の画像内でマッチングブロックの探索を必要としないため、エンコード処理での複雑な計算を軽減する。
【００２４】
幾つかの実施形態によれば、ブロックマッチングアルゴリズムからの出力に基づいて、エンコーダは、ピクセルブロックをＢスキップブロックとしてエンコードするか、ピクセルブロックをＢブロックとしてエンコードするか、を選択するための所定の第３の閾値を有し、本方法はカメラが動いている間に、第３の閾値を引き上げるステップを含む。
【００２５】
第２の閾値の引き上げに関して、上記と同じ議論を用いると、本実施形態は、第２の画像フレームのエンコードされた第３及び第４の領域に対してビットレートを引き下げることができる。
【００２６】
幾つかの実施形態によれば、第１の領域のピクセルブロックのエンコーディングのステップは、第１の量子化パラメータを使用することを含む。また、第２の領域のピクセルブロックをエンコードするステップは、第２の量子化パラメータを使用することを含む。しかも、第３の領域のピクセルブロックをエンコードするステップは第３の量子化パラメータを使用することを含み、加えて、第４の領域のピクセルブロックをエンコードするステップは第４の量子化パラメータを使用することを含む。この実施形態によれば、第３及び第４の量子化パラメータは、第１及び第２の量子化パラメータより小さい。第１及び第２の量子化パラメータは等しい場合もあれば、異なる場合もあることに留意されたい。また、第３及び第４の量子化パラメータも、等しい場合もあれば、異なる場合もあることに留意されたい。
【００２７】
エンコーダは、カメラの動きに関する情報を使用して、第３及び第４の領域が第３の画像フレームの一部になる可能性があるピクセルブロックを含み、一方、第１及び第２の領域が第３の画像フレームの一部にならない可能性があるピクセルブロックを含むことを知っているため、異なる領域のピクセルブロックの圧縮率を決定するときに、この知識は有利に利用されうる。相対品質又は圧縮量は、ピクセルブロックのレベルに応じて調整可能な量子化パラメータ（しばしば、ＱＰ値と称される）によって制御可能である。量子化パラメータを低くすると、ピクセルブロックの圧縮率は低くなり、言い換えるならば、エンコード品質が高くなる。次のフレームで消えるピクセルブロックのエンコード時に大量のビットを費やすのは、ビデオストリーム内に長くとどまるピクセルブロックにビットを費やすことよりも価値が低い。その結果、この実施形態はエンコード品質を高め、及び／又は必要なビットレートを低減する。
【００２８】
幾つかの実施形態によれば、第４の量子化パラメータは第３の量子化パラメータより小さい。第４の領域は、第１の先行画像の一部ではない可能性のあるピクセルブロックを含み、このピクセルブロックは第３の後続画像の一部である可能性があるため、これらのピクセルブロックは、第３の領域の一部であるピクセルブロックと比較して、より多くの画像フレーム中のビデオストリーム内にとどまる可能性もある。その結果、量子化パラメータを引き下げ、その結果として、第３の領域内のピクセルブロックと比較して、第４の領域内のピクセルブロックのエンコード品質を高めることによって、この実施形態はエンコード品質を高め、及び／又は必要なビットレートを引き下げうる。
【００２９】
幾つかの実施形態によれば、エンコーダはＨ．２６４エンコーダである。この場合、本方法は更に、カメラの動きに関する情報がカメラの水平運動に対応すると判断するステップ、及び第２の画像のピクセルブロックのエンコードに先立って第２の画像を回転するステップを含む。Ｈ．２６４エンコーダで定義されたスライスは、画像内のピクセル列として定義されるため、水平運動の結果、画像を上記のように第１、第２、第３及び第４の領域に分割することが実行不可能になることがありうる。しかしながら、エンコード処理に先立って画像が回転されると、スライス又はスライス群は、第１、第２、第３及び第４の領域に充分に対応することができる。
【００３０】
実施形態によれば、本方法は更に、カメラの動きに関する情報をブロックマッチングアルゴリズムへの入力として提供するステップを含む。この情報は、ビデオストリーム内の画像フレーム間でマッチングブロックを探索するための開始点を定義するため、或いは画像フレーム間の最良マッチングブロックを選択するため、ブロックマッチングアルゴリズムによって、有利に利用されうる。「予期しない」最良マッチングは、例えば、最良のマッチングがたまたま小さなＳＡＤ値を有するが、当該ブロックの運動ベクトルが隣接ブロックから外れる２つの画像フレーム間の一様な（例えば、１色の）領域内でのブロックのマッチングブロックに関して、予期せずマッチしたブロックの隣接部分内でのマッチングブロックの探索を悪化させることがある。カメラの動きに関する情報を入力として使用することは、このような予期せぬマッチングを低減することがあるが、今度は、例えば、Ｐ−スキップエンコーディング、Ｂ−スキップエンコーディング又はＩ−ブロックエンコーディングに対する上述の閾値を、より高いＳＡＤ値に設定することが可能になる。
【００３１】
第２の態様では、本発明は、処理能力を有する装置によって実行されると第１の態様による方法を実施するように適合された命令を有するコンピュータ可読記憶媒体を含む、コンピュータプログラム製品を提供する。
【００３２】
第３の態様では、本発明はカメラによってキャプチャされたビデオストリームをエンコードするように構成されたエンコーダを提供し、ビデオストリームは第１の画像フレームと第２の画像フレームを含み、第１の画像フレームはビデオストリーム内で第２の画像フレームに先行し、エンコーダは、
−  カメラの動きに関する情報を受信するように構成された受信コンポーネントと、
−  カメラの動きに関する情報に基づいて、第１の画像フレーム内にも存在する画像データを含む第２の画像フレームの第１の領域と、第１の画像フレーム内に存在しない画像データを含む第２の画像フレームの第２の領域を定義するように構成された領域計算コンポーネントと、
−  第２の領域に対して、Ｉ−ブロックエンコーディングを使用して各ピクセルブロックをエンコードし、
−  第１の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと第１の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック及びＰスキップブロックのうちのいずれか１つとして特定のピクセルブロックをエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードするように
−  構成されたエンコードコンポーネントとを含む。
【００３３】
第３の態様では、本発明はビデオストリームをキャプチャするように構成されたカメラを提供し、カメラはカメラの動きを推定するための動作推定装置を備え、カメラは請求項９で定義されるエンコーダに接続され、動作推定装置はカメラの動きに関連する情報をエンコーダへ送信し、カメラはビデオストリームをエンコーダへ送信するように構成されている。
【００３４】
幾つかの実施形態によれば、動作推定装置は、カメラのＰＴ制御への入力、カメラのステップモータの動きに関する情報、カメラ内のセンサからの動作データ、及びビデオストリームの画像フレームの時間的フィルタ処理からのグローバルモーション推定のうちの少なくとも１つを使用して、カメラの動きを推定するように構成されている。
【００３５】
第２、第３、及び第４の態様は、概して、第１の態様と同一の特徴及び利点を有しうる。
【００３６】
本発明の上記及び追加の目的、特徴、利点は、付随する図面を参照しつつ、本発明の実施形態の以下の例示的かつ非限定的な詳細説明を通して、より明確に理解されるであろう。図面では類似要素に対して同じ参照番号が使用されている。
【図面の簡単な説明】
【００３７】
【図１】ビデオストリームの第１及び第２の画像フレームを示しており、ビデオストリームをキャプチャするカメラは第１の画像フレームと第２の画像フレームとの間で動いている。
【図２】本発明の実施形態による図１のカメラの動きに基づいた、図１の第２画像内の第１及び第２の領域の定義を示している。
【図３】本発明の実施形態による図１のカメラの動きに基づいた、図１の第２画像内の第１及び第２の領域の定義を示している。
【図４】ビデオストリームの第１、第２及び第３の画像フレームを示しており、ビデオストリームをキャプチャするカメラは第１画像フレームと第２画像フレームとの間、並びに第２画像フレームと第３画像フレームとの間で動いている。
【図５】本発明の実施形態による図４のカメラの動きに基づいた、図４の第２の画像内での第１、第２、第３及び第４の領域の定義を示している。
【図６】本発明の実施形態による図４のカメラの動きに基づいた、図４の第２の画像内での第１、第２、第３及び第４の領域の定義を示している。
【図７】本発明の実施形態による、第２の画像のピクセルブロックのエンコードに先立って、第２の画像の回転を示している。
【図８】本発明の実施形態による、カメラによってキャプチャされたビデオストリームのエンコードのためエンコーダで実行される方法を示している。
【図９】本発明の実施形態によるエンコーダを示している。
【図１０】本発明の実施形態によるカメラを示している。
【発明を実施するための形態】
【００３８】
図１は、ビデオストリームの第１の画像フレーム１０２と第２の画像フレーム１０４を示しており、第１の画像フレーム１０２はビデオストリーム内の第２の画像フレーム１０４に先行している。２つの画像フレーム１０２、１０４はそれぞれ２つのオブジェクトを示しているが、キャプチャされた第１の画像フレーム１０２と第２の画像フレーム１０４との間でカメラは動いているため、第２の画像フレーム１０４内の２つのオブジェクトは、第１の画像フレーム１０２内の２つのオブジェクトと比較して、画像内で更に左に位置している。このように、カメラは２つの画像フレーム１０２、１０４のキャプチャ中に右へパンしているが、２つの画像フレーム１０２と１０４との間の視野は重なり合っている。
【００３９】
図２は、図１の２つの画像フレーム１０２、１０４を示しているが、第１の画像フレーム１０２と第２の画像フレーム１０４の両方でキャプチャされた視野を定義する領域１０６、並びに、第２の画像フレーム１０４だけにキャプチャされた視野を定義する領域１０８を示すため、重なり合っている。すなわち、図２は、第１の画像フレーム１０２内にも存在する画像データを含む第２の画像フレーム１０４の第１の領域１０６、並びに、第１の画像フレーム１０２内に存在しない画像データを含む第２の画像フレーム１０４の第２の領域１０８を定義する。
【００４０】
図３では、第２の画像フレーム１０４の２つの定義された領域１０６、１０８が、説明を目的として画像コンテンツなしで示されている。エンコーダによって実行される第２の画像をエンコードする方法は、図８を参照して説明される。
【００４１】
これら２つの領域は、カメラから受信（Ｓ８０２）したカメラの動きに関する情報を使用して、（例えば、図１〜２の第１の画像フレーム１０２及び第２の画像フレーム１０４を含む）ビデオストリームをエンコードするように構成されたエンコーダで定義（Ｓ８０４）されうる。すなわち、領域１０６、１０８を定義するには、エンコーダ内での画像解析などは不要である。このような情報はカメラから受信されてもよく、また、カメラの動きを推定する装置に由来してもよい。動作推定装置は、カメラのＰＴ制御への入力などの情報、カメラのステップモータの動きやカメラ内のセンサからのモーションデータに関する情報を使用して、カメラの動きに関する情報を生成しうる。動作推定装置はまた、ビデオストリームの画像フレームの時間的フィルタ処理など、カメラの動きに関する情報を抽出するための画像解析を使用して、画像フレームのグローバルモーション、すなわち、画像フレーム全体の運動ベクトルを推定しうる。
【００４２】
カメラの動きに関する情報を使用して、エンコーダは、第１の画像フレーム１０２内にも存在する画像データを含む第２の画像フレーム１０４の第１の領域１０６、及び第１の画像フレーム１０２内に存在しない画像データを含む第２の画像フレーム１０４の第２の領域１０８を定義すること（Ｓ８０４）ができる。
【００４３】
少なくとも大部分の画像データを含む第２の領域１０８は、第１の画像フレーム内に存在する可能性が低いため（データの一部は言うまでもなく、カメラによってキャプチャされたシーン内のオブジェクトの動きによって、第１の画像フレーム内に存在しうる）、エンコーダは、第１の画像フレーム１０２と第２の画像フレーム１０４との間の高価なブロックマッチング操作を行うことなく、Ｉ−ブロックエンコーディングを使用して、各ピクセルブロックをエンコードする（Ｓ８１４）。
【００４４】
第１の領域に関しては、通常のエンコーディング、すなわち、特定のピクセルブロックと第１の画像フレームの少なくとも一部をブロックマッチングアルゴリズムへの入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック及びＰスキップブロックのうちのいずれか１つとして特定のピクセルブロックをエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードすること（Ｓ８１６）が採用されうる。ブロックマッチングアルゴリズムは、第２の画像フレーム１０４の特定のブロックに最もよくマッチするのは第１の画像１０２のどのブロックであるかを表わす値を、例えば、第１の画像フレーム１０２と第２の画像フレーム１０４との間の対応するブロックの動きを記述する運動ベクトルを出力することによって出力する。特定のブロックに対して、適切なマッチングブロックが第１の画像１０２内に見つからなかった場合には、ブロックマッチングアルゴリズムは、このことを表わす値を出力してもよい。ブロックマッチングアルゴリズムはまた、第１の画像１０２内の最良マッチングに対してどの程度よくマッチするかを表わすある種の値を出力する。例えば、ＳＡＤ値となりうる差分値（コスト関数又はコスト値としても知られている）、平均絶対差（ＭＡＤ）、平均二乗誤差（ＭＳＥ）又はブロックマッチングアルゴリズムで公知の他の適切な値である。この値に基づいて、エンコーダは、特定のピクセルブロックをエンコードするための利用可能なエンコード方法を選択する。例えば、エンコーダは、利用可能なエンコード方法を選択するための所定の閾値を有してもよく、その結果、例えば、ピクセルブロックをＰ−スキップブロックとしてエンコードするための閾値を満たす差分値は、当該の方法でエンコードされる。
【００４５】
第２の領域のエンコードで節約された処理能力は、オプションでブロックマッチングアルゴリズムの運動ベクトルの探索範囲を広げるために使用されてもよい。しかも、カメラの動きに関する情報は、例えば、第２の画像フレーム１０４の第１の領域１０６内の特定のピクセルブロックに対して、第１の画像フレーム１０２内のピクセルブロックのマッチングを探索する開始点を定義するため、ブロックマッチングアルゴリズムへの入力として提供されてもよい。
【００４６】
オプションにより、Ｉ−ブロックエンコーディング、Ｐ−ブロックエンコーディング又はＰスキップブロックエンコーディングのいずれかを使用して、第１の領域１０６のピクセルブロックをエンコード（Ｓ８１６）する前に、利用可能なエンコード方法の選択に使用されるエンコーダの閾値は変更されてもよい。エンコーダは、上述のように第１の領域１０６と第２の領域１０８を定義し、第１の領域１０６の内容が第１の画像１０２内に存在する可能性が高いことを知っているため、この知識は、エンコード品質を改善し、及び／又はカメラが動いている間にビットレートを引き下げるように、有利に活用しうる。例えば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをＩ−ブロックとしてエンコードすることを選択するための、所定の第１の閾値を有しうる。言い換えるならば、例えば、第２の画像１０４の特定のピクセルブロックの第１の画像１０２内での最良マッチングのため、ブロックマッチングアルゴリズムによって出力された差分値に基づいて、エンコーダは通常、どのエンコード方法を使用すべきかについて、何らかの判断を下す。例えば、ブロックマッチングアルゴリズムがＳＡＤ値を出力する場合には、所定の第１の閾値は、特定のピクセルブロックをＩ−ブロックとしてエンコードする際に４００となることがある。この実施形態では、カメラが動いている間に、第１の閾値を例えば５５０まで引き上げる（Ｓ８０８）ことができるように、カメラの動きに関する知識を使用することができる。
【００４７】
オプションにより、他の閾値はカメラが動いている間に変更されることがある。例えば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをＰスキップブロックとしてエンコードするか、ピクセルブロックをＰブロックとしてエンコードするかを選択するための所定の第２の閾値を有しうる。言い換えるならば、例えば、第２の画像１０４の特定のピクセルブロックの第１の画像１０２内での最良マッチングのため、ブロックマッチングアルゴリズムによって出力された差分値に基づいて、エンコーダは通常、どのエンコード方法を使用すべきかについて、何らかの判断を下す。例えば、ブロックマッチングアルゴリズムがＳＡＤ値を出力する場合、所定の第２の閾値は、特定のピクセルブロックをＰ−スキップブロックとしてエンコードする際に６０となることがある。この値を下回ると、特定のピクセルブロックはＰ−スキップブロックとしてエンコードされるが、一方、この値を上回ると（但し、第１の閾値を下回る）、特定のピクセルブロックはＰブロックとしてエンコードされる。この実施形態では、カメラが動いている間に、第２の閾値を例えば１０５まで引き上げる（Ｓ８１０）ことができるように、カメラの動きに関する知識を使用することができる。
【００４８】
ビデオのエンコードには様々なエンコーダ規格がある。例として、Ｈ．２６４／ＡＶＣとＨ．２６５の２つを挙げることができる。Ｈ．２６５のタイルの概念（タイルは画像フレームを、独立にエンコード／デコードされうる長方形の区域に分割する）は、カメラのあらゆる種類（水平、垂直、対角など）の動きに対して可能であるように記述される区域に、画像フレームを分割する。しかしながら、Ｈ．２６４エンコーダに関しては、独立にエンコードされうる区域に画像フレームを分割するためのスライスの概念は同様に柔軟なわけではない。スライスは、画像フレームの上部を開始点として、スキャン順に通常は左から右に処理されるピクセルブロックを含む。これは図７で説明されているが、図に示されているように、水平の動きは第１の領域１０６と第２の領域１０８をもたらす。スライスの概念を利用すると、画像フレーム１０４は図７に示すように区域／領域に分割することはできない。しかしながら、画像フレーム１０４をスライスに分割する前に、画像フレームを左から右へ９０度回転して、回転された画像フレーム１０４’を形成することにより、画像フレームを第１の領域１０６と第２の領域１０８に有利に分割することができる。
【００４９】
幾つかの実施形態によれば、エンコーダのエンコード方法はまた、Ｂ−ブロックエンコーディングとＢ−スキップブロックエンコーディングを含む。このように、第２画像フレームに続く画像フレームの内容もエンコードの目的で使用可能である。これを図４から図６に示す。したがって、ビデオストリームは、第３の画像フレーム２０２、第３の画像フレームに先行する第２の画像フレームを含む。この実施形態では、第１の領域１０６と第２の領域１０８は、第３の画像に存在しない画像データを含む。しかしながら、カメラの動きに関する知識と第３の画像フレーム２０２をキャプチャするときのカメラのＦＯＶに関する知識を利用すると、第２の画像フレーム１０４は、更に２つの領域、すなわち、第３の領域２０４と第４の領域２０６に分割可能である。
【００５０】
図４は、第１の画像フレーム１０２、第２の画像フレーム１０４及び第３の画像フレーム２０２を示す。第１の画像フレーム１０２はビデオストリーム内で第２の画像フレーム１０４に先行し、第２の画像フレーム１０４はビデオストリーム内で第３の画像フレーム２０２に先行する。２つの画像フレーム１０２、１０４はそれぞれ２つのオブジェクトを示しているが、第１の画像フレーム１０２と第２の画像フレーム１０４がキャプチャされる間にカメラが動いたため、第２の画像フレーム１０４内の２つのオブジェクトは、第１の画像フレーム１０２内の２つのオブジェクトと比較して、画像フレーム１０４内の更に左上方に配置されている。第３の画像フレーム２０２内には１つのオブジェクトしか示されていないが、これは、第３の画像フレーム２０２をキャプチャしたときに、他のオブジェクトがカメラのＦＯＶを離れてしまったためである。したがって、３つの画像フレーム１０２、１０４、２０２のキャプチャ中に、カメラは右方及び下方にパンされたが、３つの画像フレーム１０２、１０４、２０２の間に重複する視野を有している。
【００５１】
図５は、図４の３つの画像フレーム１０２、１０４、２０２を示しているが、第１の画像フレーム１０２と第２の画像フレーム１０４の２つでキャプチャされているが、第３の画像フレーム２０２ではキャプチャされていない視野を定義する領域１０６、並びに、第２の画像フレーム１０４内でのみキャプチャされた視野を定義する領域１０８を示すため、重ね合わされている。更に、第２画像フレームの第３の領域２０４は、第１の画像フレーム１０２と第３の画像フレーム２０２の２つによってキャプチャされた視野を示している。第２の画像フレームの第４の領域２０６はまた、第３の画像フレーム２０２にキャプチャされているが、第１の画像フレーム１０２にはキャプチャされていない視野を示している。
【００５２】
言い換えるならば、図５は、第１の画像フレーム１０２内にも存在するが、第３の画像フレーム２０２内には存在しない画像データを含む第２の画像フレーム１０４の第１の領域１０６、第１の画像フレーム１０２内又は第３の画像フレーム２０２内に存在しない画像データを含む第２の画像フレーム１０４の第２の領域１０８、第１の画像フレーム１０２内及び第３の画像フレーム２０２内にも存在する画像データを含む第２の画像フレーム１０４の第３の領域２０４、並びに、第３の画像フレーム２０２内にも存在するが、第１の画像フレーム１０２内には存在しない画像データを含む第２の画像フレーム１０４の第４の領域２０６を定義する。
【００５３】
図６では、第２の画像フレーム１０４の４つの定義された領域１０６、１０８、２０４、２０６は、説明のため画像コンテンツなしで示されている。
【００５４】
図６に示されているように、第２の画像をエンコードするためのエンコーダによって実行される方法は、図８を参照して説明される。図８の方法は、第３の画像フレーム２０２が第２の画像フレーム１０４のエンコード処理に含まれるときには、以下で説明されるように、更なるステップによって延長されうる。この実施例で説明されていない図８の方法のステップ（Ｓ８０４、Ｓ８０８、Ｓ８１０、Ｓ８１４及びＳ８１６）は、図１〜図３を参照して上述されるように解釈されたい。
【００５５】
エンコーダによって受信（Ｓ８０２）された動きの情報を利用して、第２画像フレーム１０４の第３の領域２０４と第４の領域２０６は、上述のように定義（Ｓ８０６）されうる。
【００５６】
エンコーダは、上述のように第３の領域２０４と第４の領域２０６を定義したため、第３の領域２０４の内容は第１の画像フレーム１０２内及び第３の画像フレーム２０２内の両方に存在する可能性が高く、一方、第４の領域２０６の内容は第３の画像フレーム２０２内に存在するが、第１の画像フレーム１０２内には存在しない可能性が高いことを理解しているため、この知識は、エンコード品質を改善し、エンコードの複雑な計算を軽減し、及び／又はカメラが動いている間にビットレートを引き下げるように、有利に活用しうる。
【００５７】
例えば、第３の領域２０４及び第４の領域２０６の内容に関する上記の知識を利用することで、エンコーダは、２つの領域の各々に対して種々のエンコード方法の組の中からエンコード方法を有利に選択することができる。第３の領域２０４の特定のピクセルブロックの各々に対して、エンコーダは、特定のピクセルブロックと第１の画像フレーム１０２及び第３の画像フレーム２０２の少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて（第３の領域は第１の画像フレーム１０２内及び第３の画像フレーム２０２内の両方に存在する画像データを含む可能性が高いため）、Ｉ−ブロック、Ｐ−ブロック、Ｐスキップブロック、Ｂ−ブロック及びＢスキップブロックのうちのいずれか１つとして特定のピクセルブロックのエンコーディングを選択し、その選択に従って特定のピクセルブロックをエンコード（Ｓ８１８）することができる。他方、第４の領域２０６の特定のピクセルブロックの各々に対して、エンコーダは、特定のピクセルブロックと第３の画像フレーム２０２の少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて（第４の領域２０６の画像コンテンツは第３の画像フレーム２０２内に存在するが、第１の画像フレーム１０２内には存在しない可能性が高いため）、Ｉ−ブロック、Ｂ−ブロック及びＢスキップブロックのうちのいずれか１つとして特定のピクセルブロックのエンコーディングを選択し、その選択に従って特定のピクセルブロックをエンコード（Ｓ８２０）することができる。例えば、第１の画像フレーム１０２が、第４の領域２０６内の特定のピクセルブロックにマッチングする画像データを含まない可能性が高いことをあらかじめ知ることによって、第４の領域に対してエンコード方法の複雑な計算が軽減されうる。
【００５８】
オプションにより、第３及び第４の領域内のピクセルブロックをエンコード（Ｓ８１８、Ｓ８２０）する前に、利用可能なエンコード方法の選択に使用されるエンコーダの閾値は変更されてもよい。
【００５９】
例えば、エンコーダは、ブロックマッチングアルゴリズムからの出力に基づいて、ピクセルブロックをＢスキップブロックとしてエンコードするか、ピクセルブロックをＢブロックとしてエンコードするかを選択するための所定の第３の閾値を有する。例えば、ブロックマッチングアルゴリズムがＳＡＤ値を出力する場合、特定のピクセルブロックをＢ−スキップブロックとしてエンコードする際には、所定の第３の閾値は（第３の画像フレーム２０２及び／又は第１の画像フレーム１０２の最良のマッチングブロックに対して）、４５になりうる。この値を下回ると、特定のピクセルブロックはＢ−スキップブロックとしてエンコードされるが、一方、この値を上回ると（但し、第１の閾値を下回る）、特定のピクセルブロックはＢブロックとしてエンコードされる。この実施形態では、カメラが動いている間に、第３の閾値を例えば９０まで引き上げる（Ｓ８１０）ことができるように、カメラの動きに関する知識を使用することができる。
【００６０】
上述のように、カメラの動きに関する情報はブロックマッチングアルゴリズムへの入力であり、これによりブロックマッチングアルゴリズムはこの入力を開始値とし使用し、第１の画像及び／又は第３の画像内で、ブロックマッチングアルゴリズムは、第２の画像フレーム１０４内の特定のピクセルブロックに関する第１の画像フレーム１０２及び／又は第３の画像フレーム２０２内のピクセルブロックに対して、ブロックのマッチング及び差分値（コスト関数など）の計算を開始しなければならない。
【００６１】
図９は、図８で説明した方法を実装するエンコーダ９００を示す。エンコーダ９００はこのように、カメラによってキャプチャされるビデオストリーム９０８をエンコードするように構成されている。ビデオストリーム９０８は、第１の画像フレームと第２の画像フレームを含み、第１の画像フレームはビデオストリーム９０８内で第２の画像フレームに先行する。このビデオストリーム９０８は、エンコーダによって受信される。
【００６２】
エンコーダ９００は更に、カメラの動きに関する情報９１０を受信するように構成された受信コンポーネント９０２を含む。この受信コンポーネントは、ビデオストリーム９０８を受信するようにも構成されうる。
【００６３】
エンコーダはまた、カメラの動きに関する情報９１０に基づいて、第１の画像フレーム内にも存在する画像データを含む第２の画像フレームの第１の領域、並びに、第１の画像フレーム内に存在しない画像データを含む第２の画像フレームの第２の領域を定義するように構成される領域計算コンポーネント９０４を含む。
【００６４】
エンコーダは更に、第２の領域に対して、Ｉ−ブロックエンコーディングを使用して各ピクセルブロックをエンコードし、第１の領域の特定のピクセルブロックの各々に対して、特定のピクセルブロックと第１の画像フレームの少なくとも一部を入力として使用するブロックマッチングアルゴリズムからの出力に基づいて、Ｉ−ブロック、Ｐ−ブロック及びＰスキップブロックのうちのいずれか１つとして特定のピクセルブロックをエンコードすることを選択し、その選択に従って特定のピクセルブロックをエンコードするように構成されているエンコードコンポーネント９０６を含む。
【００６５】
ビデオストリーム９０８は、幾つかの実施形態により、エンコードコンポーネント９０６で直接受信されうる。
【００６６】
本開示のエンコーダは、エンコーダ９００に送信されるビデオストリーム９０８をキャプチャするカメラ１０００への有線接続又は無線接続を有しうる。そのようなカメラ１０００を図１０に示す。幾つかの実施形態では、カメラはエンコーダ９００を含む。カメラは、カメラの動きを推定し、その動きに関する情報９１０をエンコーダへ送信するための動作推定装置１００２を含む。動作推定装置１００２は、カメラのＰＴ制御への入力、カメラのステップモータの動きに関する情報、カメラ内のセンサ（例えば、ジャイロ、赤外線センサ又は公知の同様なモーションセンサ）からの動作データ、及びビデオストリームの画像フレームの時間的フィルタ処理からグローバルモーション推定を実行するように構成されたビデオカメラソフトウェアのうちの少なくとも１つを使用して、カメラの動きを推定するように構成されている。
【００６７】
上述のように、カメラの動きに関する知識は、エンコードすべき画像フレームの種々の領域に対して種々の量子化パラメータを使用するため、エンコーダによって利用されうる。例えば、第２の画像フレームをエンコードするときには、エンコーダは、現在の第２の画像フレームのエンコード時に利用可能な次のフレーム（例えば、第３の画像フレーム）の間に、カメラがどのように動いたかがわかるデータにアクセスするため、このデータはエンコード品質の向上及び／又は必要なビットレートの低減に利用しうる。上記で既に述べたことを除き、更なる実施例を示す。
【００６８】
８つのピクセルブロックＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ及びＨ（例えば、１６ｘ１６ピクセル）を有するビデオに関しては、次のように定義される。
0006463397.tif 000002
右方向への１６ピクセルのＰＴＺ動作によって、
−  ブロックＡとＥは次のフレームで消える
−  ブロックＢとＦは次の次のフレームで消える
−  ブロックＤとＨはこのフレーム内では新しい
−  ブロックの残り（ＣとＧ）は少なくとも２つ先のフレームで残っている
【００６９】
カメラのパンニング動作に関する上記の情報に基づいて、以下のＱＰ値の表を適用することができる。
0006463397.tif 000003
【００７０】
ＱＰ値が下がると圧縮率が下がり、エンコード品質が高まることに留意されたい。
【００７１】
上記に開示されたシステム（例えば、エンコーダ９００）及び方法は、ソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせとして実装されうる。ハードウェアの実装では、上記の説明で言及した機能性ユニット又はコンポーネント間のタスクの分割（例えば、受信コンポーネント９０２、領域計算コンポーネント９０４など）は、必ずしも物理的ユニットへの分割に対応せず、逆に、１つの物理的コンポーネントは複数の機能性を有し、１つのタスクが協働する幾つかの物理的コンポーネントによって実行されてもよい。特定のコンポーネント、又はすべてのコンポーネントは、デジタル信号プロセッサ又はマイクロプロセッサによって実行されるソフトウェアとして、又はハードウェア或いは特定用途向け集積回路として実装されうる。このようなソフトウェアは、コンピュータ記憶媒体（又は非一過性媒体）及び通信媒体（又は一過性媒体）を含みうるコンピュータ可読媒体に振り分けされうる。当業者にはよく知られているように、コンピュータ記憶媒体という用語は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するために、任意の方法又は技術において実装される揮発性及び不揮発性の媒体、着脱可能及び固定型の媒体を含む。コンピュータ記憶媒体は、限定するものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又は他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、又は他の磁気記憶デバイス、又は所望の情報の保存に使用することができ、コンピュータによるアクセスが可能な他の任意の媒体を含む。
【図１】
0006463397.tif 000004
【図２】
0006463397.tif 000005
【図３】
0006463397.tif 000006
【図４】
0006463397.tif 000007
【図５】
0006463397.tif 000008
【図６】
0006463397.tif 000009
【図７】
0006463397.tif 000010
【図８】
0006463397.tif 000011
【図９】
0006463397.tif 000012
【図１０】
0006463397.tif 000013