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

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

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

特開2024-147510カメラ視野を変更している間のビデオストリームの符号化
<>
  • 特開-カメラ視野を変更している間のビデオストリームの符号化 図1
  • 特開-カメラ視野を変更している間のビデオストリームの符号化 図2
  • 特開-カメラ視野を変更している間のビデオストリームの符号化 図3
  • 特開-カメラ視野を変更している間のビデオストリームの符号化 図4
  • 特開-カメラ視野を変更している間のビデオストリームの符号化 図5
  • 特開-カメラ視野を変更している間のビデオストリームの符号化 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024147510
(43)【公開日】2024-10-16
(54)【発明の名称】カメラ視野を変更している間のビデオストリームの符号化
(51)【国際特許分類】
   H04N 19/105 20140101AFI20241008BHJP
   H04N 19/46 20140101ALI20241008BHJP
   H04N 19/156 20140101ALI20241008BHJP
   H04N 19/172 20140101ALI20241008BHJP
【FI】
H04N19/105
H04N19/46
H04N19/156
H04N19/172
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024043846
(22)【出願日】2024-03-19
(31)【優先権主張番号】23166331
(32)【優先日】2023-04-03
(33)【優先権主張国・地域又は機関】EP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】エドパルム, ヴィクトル
(72)【発明者】
【氏名】ユアン, ソン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA05
5C159MA31
5C159NN41
5C159PP04
5C159RB14
5C159RC16
5C159TA62
5C159TB04
5C159TC51
5C159UA02
5C159UA05
(57)【要約】      (修正有)
【課題】カメラによって記録されるビデオストリームの符号化する方法、デバイス及びプログラムを提供する。
【解決手段】ビデオストリームを符号化する方法は、第1のFOVをもつ第1の画像を取得することと、第1の符号化されたビデオフレームの部分として第1の画像を符号化することと、第1のFOVとは異なる第2のFOVをもつ第2の画像を取得することと、第1の画像の画像コンテンツを、第1のFOVよりも第2のFOVに近いFOVに変換する、第1のFOVと第2のFOVとの間の差に基づいて形成される動きベクトルを含む、第1のビデオフレームを参照する第1の追加のビデオフレームを生成することと、第1の追加のビデオフレームを符号化されたビデオストリームに非表示フレームとして挿入することと、第1の追加のビデオフレームを参照する符号化されたビデオストリームの第2のビデオフレームの部分として第2の画像を符号化することと、を含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
ビデオストリームを符号化する方法であって、
a)第1の時間においてビデオカメラによってキャプチャされたシーンの第1の画像を取得することと、
b)符号化されたビデオストリームの第1のビデオフレームの部分として前記第1の画像を符号化することと、
c)第2の時間において前記ビデオカメラによってキャプチャされた前記シーンの第2の画像を取得することと、
d1)前記第2の時間におけるものと比較して、前記第1の時間における前記シーンに対する前記ビデオカメラの方向、ズームレベルおよび/または位置の第1の差を指示するデータを取得し、指示された前記第1の差に基づいて第1の動きベクトルを計算することと、
d2)前記第1のビデオフレームを参照する第1の追加のビデオフレームを生成することであって、前記第1の追加のビデオフレームが、前記第1の画像の画像コンテンツを変換するための前記第1の動きベクトルを含む、第1の追加のビデオフレームを生成することと、
e)前記第1の追加のビデオフレームを非表示フレームとしてマークすることを含む、前記第1の追加のビデオフレームを前記符号化されたビデオストリームに挿入することと、
f)前記符号化されたビデオストリームの第2のビデオフレームの部分として前記第2の画像を符号化することであって、前記第2のビデオフレームが前記第1の追加のビデオフレームを参照する、前記第2の画像を符号化することと
を含む、方法。
【請求項2】
前記ビデオストリームを符号化することが、スケーラブルビデオコーディング(SVC)など、コーディングのレイヤードタイプを使用することを含み、前記第1の追加のビデオフレームが、前記符号化されたビデオストリームのベースレイヤ中に挿入され、前記第2のビデオフレームが、前記符号化されたビデオストリームのエンハンスメントレイヤ中に挿入される、請求項1に記載の方法。
【請求項3】
前記第1の追加のビデオフレームが、予測フレーム(Pフレーム)と双方向予測フレーム(Bフレーム)とのうちの一方である、請求項1に記載の方法。
【請求項4】
g)第3の時間において前記ビデオカメラによってキャプチャされた前記シーンの第3の画像を取得することと、
h1)前記第2の時間と前記第3の時間とにおける前記ビデオカメラの方向、ズームレベルおよび/または位置の第2の差を指示するデータを取得し、前記第2の差に基づいて第2の動きベクトルを計算することと、
h2)前記第1の追加のビデオフレームを参照する第2の追加のビデオフレームを生成することであって、前記第2の追加のビデオフレームが、前記第2の画像の画像コンテンツを変換するための前記第2の動きベクトルを含む、第2の追加のビデオフレームを生成することと、
i)前記第2の追加のビデオフレームを非表示フレームとしてマークすることを含む、前記第2の追加のビデオフレームを前記符号化されたビデオストリームに挿入することと、
j)前記符号化されたビデオストリームの第3のビデオフレームの部分として前記第3の画像を符号化することであって、前記第3のビデオフレームが前記第2の追加のビデオフレームを参照する、前記第3の画像を符号化することと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記第1の差が、前記カメラによって実施されるズーミング動作に起因する、請求項1に記載の方法。
【請求項6】
前記ズーミング動作がズーミングイン動作である、請求項5に記載の方法。
【請求項7】
前記第1の画像と前記第2の画像とが、前記カメラによってキャプチャされたビデオストリームの連続画像である、請求項1に記載の方法。
【請求項8】
少なくとも前記第1の画像と前記第2の画像とをキャプチャするために使用される前記カメラにおいて実施される、請求項1に記載の方法。
【請求項9】
ビデオストリームを符号化するためのデバイスであって、
プロセッサと、
命令を記憶したメモリと
を備え、前記命令は、前記プロセッサによって実行されたとき、前記デバイスに
a)第1の時間においてビデオカメラによってキャプチャされたシーンの第1の画像を取得することと、
b)符号化されたビデオストリームの第1のビデオフレームの部分として前記第1の画像を符号化することと、
c)第2の時間において前記ビデオカメラによってキャプチャされた前記シーンの第2の画像を取得することと、
d1)前記第2の時間におけるものと比較して、前記第1の時間における前記シーンに対する前記ビデオカメラの方向、ズームレベルおよび/または位置の第1の差を指示するデータを取得し、指示された前記第1の差に基づいて第1の動きベクトルを計算することと、
d2)前記第1のビデオフレームを参照する第1の追加のビデオフレームを生成することであって、前記第1の追加のビデオフレームが、前記第1の画像の画像コンテンツを変換するための前記第1の動きベクトルを含む、第1の追加のビデオフレームを生成することと、
e)前記第1の追加のビデオフレームを非表示フレームとしてマークすることを含む、前記第1の追加のビデオフレームを前記符号化されたビデオストリームに挿入することと、
f)前記符号化されたビデオストリームの第2のビデオフレームの部分として前記第2の画像を符号化することであって、前記第2のビデオフレームが前記第1の追加のビデオフレームを参照する、前記第2の画像を符号化することと
を行わせる、デバイス。
【請求項10】
前記命令は、前記命令が、前記プロセッサによって実行されたとき、さらに前記デバイスに請求項2に記載の方法を実施させるようなものである、請求項9に記載のデバイス。
【請求項11】
前記デバイスが、前記第1の画像と前記第2の画像とをキャプチャするためのカメラである、請求項9に記載のデバイス。
【請求項12】
ビデオストリームを符号化するためのコンピュータプログラムであって、デバイスのプロセッサによって実行されたとき、前記デバイスに、
a)第1の時間においてビデオカメラによってキャプチャされたシーンの第1の画像を取得することと、
b)符号化されたビデオストリームの第1のビデオフレームの部分として前記第1の画像を符号化することと、
c)第2の時間において前記ビデオカメラによってキャプチャされた前記シーンの第2の画像を取得することと、
d1)前記第2の時間におけるものと比較して、前記第1の時間における前記シーンに対する前記ビデオカメラの方向、ズームレベルおよび/または位置の第1の差を指示するデータを取得し、指示された前記第1の差に基づいて第1の動きベクトルを計算することと、
d2)前記第1のビデオフレームを参照する第1の追加のビデオフレームを生成することであって、前記第1の追加のビデオフレームが、前記第1の画像の画像コンテンツを変換するための前記第1の動きベクトルを含む、第1の追加のビデオフレームを生成することと、
e)前記第1の追加のビデオフレームを非表示フレームとしてマークすることを含む、前記第1の追加のビデオフレームを前記符号化されたビデオストリームに挿入することと、
f)前記符号化されたビデオストリームの第2のビデオフレームの部分として前記第2の画像を符号化することであって、前記第2のビデオフレームが前記第1の追加のビデオフレームを参照する、前記第2の画像を符号化することと
を行わせるように構成されている、コンピュータプログラム。
【請求項13】
前記デバイスに、請求項2に記載の方法を実施させるようにさらに構成されている、請求項12に記載のコンピュータプログラム。
【請求項14】
請求項12に記載のコンピュータプログラムを記憶したコンピュータ可読記憶媒体を含む、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、カメラによって記録されるビデオストリームの符号化に関する。特に、本開示は、カメラの視野が変化する時間中のビデオストリームの符号化に関する。
【背景技術】
【0002】
現代のビデオコーディングアルゴリズムでは、シーンの多くのディテールが1つの画像フレームと次の画像フレームとの間で静的なままであり得るという事実を利用するために、予測コーディングがしばしば使用される。さらに、オブジェクトを含んでいる現在の画像フレームを復号するときに1つまたは複数の他の画像フレームのどの領域においてオブジェクトに属する画像データを探すべきかをデコーダに命令するために、画像フレーム間で移動するオブジェクトを考慮するためにもいわゆる「動きベクトル」が使用され得る。
【0003】
しかしながら、たとえば、2つの画像フレームをキャプチャすることの間のカメラの視野(FOV)を変更することによって引き起こされる、画像フレーム間のオブジェクトのいくつかの種類の移動およびスケーリングでは、ビデオストリームを効率的に符号化/復号するためにそのような動きベクトルを使用することは、困難であり得る。1つのそのような状況は、カメラがズーミング動作を実施し、時間が進むにつれて、動きベクトルが、より長くなることと、同じく画像フレームの異なる部分について変わることとを生じるときである。理想的な動きベクトルの長さが増加するにつれて、エンコーダが、そのような動きベクトルを見つけるために、たとえば、前の画像フレーム中の探索エリアを拡大することを強制されるであろう。これは、したがって、必要とされる算出時間の増加につながり得、その結果、しばしばまたしばしば、動きベクトルの使用が非現実的になり、時々扱いにくくなることもあり得る。
【0004】
結果として、したがって、カメラの変化するFOV中にキャプチャされた画像フレームを用いてビデオストリームを符号化する改善されたやり方の必要がある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】H.264/MPEG-4 AVCビデオ圧縮規格のアネックスG拡張
【非特許文献2】H.265/MPEG-H HEVCビデオ圧縮規格のアネックスH拡張
【発明の概要】
【0006】
上記で識別された必要を少なくとも部分的に満たすために、本開示は、添付の独立請求項において定義されるように、および添付の独立請求項によって、ビデオストリームを符号化するための改善された方法、デバイス、コンピュータプログラムおよびコンピュータプログラム製品を提供する。方法、デバイス、コンピュータプログラムおよびコンピュータプログラム製品の様々な実施形態は、添付の従属請求項において、および添付の従属請求項によって定義される。
【0007】
本開示の第1の態様によれば、ビデオストリームを符号化する方法が提供される。本方法は、第1の視野(FOV)を有するビデオカメラによってキャプチャされた第1の画像を取得することを(たとえば、ステップ「a」として)含む。本方法は、符号化されたビデオストリームの第1のビデオフレームの部分として第1の画像を符号化することを(たとえば、ステップ「b」として)含む。本方法は、第1のFOVとは異なるが(第2のFOVが)少なくとも部分的に第1のFOVと重複する第2のFOVを有する(一方)ビデオカメラによってキャプチャされた第2の画像を取得することを(たとえば、ステップ「c」として)含む。本方法は、第1のビデオフレームを参照し、第1の画像の画像コンテンツを、第1のFOV(がそうである)よりも第2のFOVに近いFOVに変換する第1の動きベクトルを含む第1の追加のビデオフレームを生成することであって、第1の動きベクトルが第2のFOVと第1のFOVとの間の差に基づいて形成される、第1の追加のビデオフレームを生成することを(たとえば、ステップ「d」として)含む。本方法は、第1の追加のビデオフレームを符号化されたビデオストリームに挿入することを(たとえば、ステップ「e」として)含み、第1の追加のビデオフレームを非表示(no-display)フレームとしてマークすることを含む。本方法は、符号化されたビデオストリームの第2のビデオフレームの部分として第2の画像を符号化することであって、第2のビデオフレームが第1の追加のビデオフレームを参照する、第2の画像を符号化することを(たとえば、ステップ「f」として)さらに含む。
【0008】
本明細書で使用されるように、画像のあるFOVが、「別のFOVにより近い」ように変換されることは、画像のそのFOVが、その別のFOVに正確に一致するように変換される状況をも含む。2つの画像フレームのFOVが「少なくとも部分的に重複する」ことは、両方の画像フレーム中で可視である少なくとも1つのオブジェクトがあるか、またはオブジェクトの少なくとも部分があるものとして理解されるべきであり、したがって、動きベクトルが、一方の画像フレームを符号化するときに他方の画像フレーム中のそのオブジェクト(の部分)を見つけるためになど使用され得る。「非表示フレーム」は、そのフレームが、復号されたビデオストリームの部分としてレンダリングされるべきでないが、そのフレームが依然として利用可能であることをデコーダに命令するために、何らかのやり方でフラグを付けられたフレームとして理解されるべきであり、したがって、情報はそのフレームから取得され、表示されるべきである(すなわち、非表示フレームとしてマークされない)1つまたは複数の他の画像フレームの復号のために使用され得る。非表示フレームの上記の概念、動きベクトル、および符号化/復号するときにあるフレームが別の(前のまたは後の)フレームを参照する可能性をサポートする任意のビデオコーディング規格が、開示される方法を実現するために使用され得ることが想定される。そのような規格の例は、高効率ビデオコーディング(HEVC)H.265、アドバンストビデオコーディング(AVC)H.264、VP8、VP9、AV1、および汎用ビデオコーディング(VVC)H.266を含む(が、必ずしも限定されるとは限らない)。
【0009】
本明細書で想定されるように、第1の動きベクトルは、動きベクトル探索を実施することによって計算される必要がないが、カメラのそれぞれの第1および第2のFOVに関する知識に基づいて導出/計算され得る。たとえば、そのような知識は、第1のFOVが存在した時間と第2のFOVが存在した時間の両方を含む時間において、たとえば、(たとえば、パン/チルト/ロール角によって定義される)方向、およびたとえば(たとえば、ズーミング動作中に変更される)カメラのレンズの焦点距離、または同様のものを指示するデータを含み得る。
【0010】
本明細書で後でより詳細に説明されるように、第1の態様の想定される方法は、その方法が、たとえば、ズーミング動作中になど、カメラの変化するFOV中にビデオストリームを符号化する、よりビットレート効率的なやり方を提供するという点で、現在利用可能なコーディング技術に改良を加える。特に、第1のFOVから第2のFOVへの(または第2のFOVにより近い)変換を定義する必要がある(第1の)動きベクトルが、代わりに、たとえば、カメラ方向および焦点距離(すなわち、ズームレベル)に関する知識から、およびたとえば、算出量的に煩雑な動きベクトル探索が実施されることを必要とすることなしに計算され得るので、第2のビデオフレームを符号化することの部分として、長く、変わる動きベクトルを探索する必要は除去される。第2のビデオフレームが、(少なくとも復号の後に、たとえば、特定のズームインオンされた(zoomed-in-on)オブジェクトの変換されたビューが利用可能である)第1の追加のビデオフレームを参照するとき、そのような参照のための動きベクトルを見つけることは、より自明であり、探索の従来の方法を使用して実施され得る。たとえば、ズーミング動作の事例では、第1の追加のビデオフレームは、第1のビデオフレーム中の第1の画像のスケーリングされ、クロップされたバージョンを符号化することになり、したがって、動きベクトル探索が、第2のビデオフレームを符号化するために第1の追加のビデオフレーム中の一致を見つけることがより自明に可能になるにつれて、ビットレートは低減され得る。さらに、第1の追加のビデオフレームは、新しい画像データ自体を含んでいる必要がないが、FOVの差に基づいて計算され、スケーリングなどの変換を効率的に実施するために必要とされる動きベクトルのみを含んでいる必要がある。想定される方法はまた、カメラがパンし、チルトし、および/またはロールするときなど、スケーリングよりも他の変換のために適用され得る。パンニング動作またはチルティング動作は、追加のビデオフレームにおいて説明され得るパースペクティブ変換を必要とし得、ローリング動作は、追加のビデオフレームにおいても説明され得る回転変換を必要とし得る。
【0011】
本方法の1つまたは複数の実施形態では、ビデオストリームを符号化することは、たとえば「スケーラブルビデオコーディング」(SVC)または「スケーラブル高効率ビデオコーディング」(SHVC)など、レイヤードタイプのコーディングを使用することを含み得る。第1の追加のビデオフレームは、符号化されたビデオストリームのベースレイヤ中に挿入され得、第2のビデオフレームは、符号化されたビデオストリームのエンハンスメントレイヤ中に挿入され得る。スケーラブルビデオコーディングの一例は、たとえば、H.264/MPEG-4 AVCビデオ圧縮規格のアネックスG拡張において定義されるようなものであり得る。スケーラブルビデオコーディングの別の例は、たとえば、H.265/MPEG-H HEVCビデオ圧縮規格のアネックスH拡張において定義されるようなものであり得る。一例として、ベースレイヤは、より低い解像度(たとえば、フルHD解像度または同様のもの)を提供するために符号化され得るが、エンハンスメントレイヤは、より高い解像度(たとえば、4K解像度または同様のものなど)を提供するために符号化され得る。コーディングのレイヤードタイプでは、当然、1つまたは複数の追加のエンハンスメントレイヤもあり得、たとえば、第2のビデオフレームが任意のそのようなエンハンスメントレイヤの部分として符号化され得ることが想定され得る。SVCなどのレイヤードコーディングを使用することは、第1の追加のビデオフレームと第2のビデオフレームとが異なるレイヤ中に挿入され、したがって、(非表示の)第1の追加のビデオフレームが、たとえば、表示されるべきである2つのビデオフレームの中間に挿入されなければならなくなることを回避し得るので、たとえば、所望のフレーム毎秒(FPS)レートを維持するのを助け得る。
【0012】
本方法の1つまたは複数の実施形態では、第1の追加のビデオフレームは、予測フレーム(「Pフレーム」)と双方向予測フレーム(「Bフレーム」)とのうちの一方であり得る。本明細書で使用されるように、これらの様々なタイプのビデオフレームは、現代のコーディング規格において通常行われるように定義される。Pフレームは、復号されるために、1つまたは複数の前のビデオフレームからのデータを使用/参照し得るが、Bフレームは、復号されるために、1つまたは複数の前のビデオフレームと1つまたは複数の将来の/未来のビデオフレームの両方からのデータを使用/参照し得る。そのようなビデオフレームは、たとえば、1つまたは複数の他のビデオフレームへの参照を含んでいない「イントラフレーム」または「イントラコード化フレーム」(「Iフレーム」)とは対照的に、1つまたは複数の他のビデオフレームへの参照を含むので、そのようなビデオフレームは、「インターフレーム」または「インターコード化フレーム」と呼ばれることもある。
【0013】
本方法の1つまたは複数の実施形態では、本方法は、カメラのFOVが変化している間(すなわち、進行中のズーミング動作または同様の動作中に)、1つまたは複数の追加のビデオフレームを生成し、挿入することに進むことを含み得る。これは、第2のFOVとは異なるが(第3のFOVが)少なくとも部分的に第2のFOVと重複する第3のFOVを有するビデオカメラによってキャプチャされた第3の画像を取得することを(たとえば、追加のステップ「g」として)さらに含む方法に対応し得る。本方法は、第2の画像の画像コンテンツを、第2のFOVよりも第3のFOVに近いFOVに変換する第2の動きベクトルを含む、第2の追加のビデオフレームを生成することであって、第2の動きベクトルが第3のFOVと第2のFOVとの間の差に基づいて形成される、第2の追加のビデオフレームを生成することを(たとえば、追加のステップ「h」として)さらに含み得る。本方法は、第2の追加のビデオフレームを非表示フレームとしてマークすることを含む、第2の追加のビデオフレームを符号化されたビデオストリームに挿入することを(たとえば、追加のステップ「i」として)さらに含み得る。本方法は、符号化されたビデオストリームの第3のビデオフレームの部分として第3の画像を符号化することであって、第3のビデオフレームが第2の追加のビデオフレームを参照する、第3の画像を符号化することを(たとえば、追加のステップ「j」として)さらに含み得る。別の言い方をすれば、より多くの追加のビデオフレームを符号化されたビデオストリーム中に挿入し続ける場合、本方法は、上記で説明されたステップc~fを繰り返すことを含み得るが、「第1および第2の」を「第2および第3の」と置き換えることなどを伴う。
【0014】
別の言い方をすれば、追加のビデオフレームは、したがって、たとえば、ズーミング動作が進行中である限り挿入され得る。前にキャプチャされたフレーム中の動きベクトルを探索することによって、進行中のズーミング動作中にキャプチャされた実際の画像(第2および第3の画像など)を符号化することを試みる代わりに、FOV変化が始まった後にカメラによってキャプチャされた画像は、代わりに、それぞれの追加のビデオフレーム(第1および第2の追加のビデオフレームなど)を参照することによって(第2および第3のビデオフレームなどとして)符号化される。
【0015】
本方法の1つまたは複数の実施形態では、第1のFOVと第2のFOVとの間の差(またはたとえば、第2のFOVと第3のFOVとの間の差など)は、カメラによって実施されるズーミング動作に起因し得る。ズーミング動作は、たとえば、符号化されたビデオストリームがキャプチャされたシーンのライブストリームを表すときなど、本方法が実施される間、進行中であり得る。想定される方法はまた、トランスコーディング事例のために使用され得、本方法は、すでに記録されたビデオ材料に適用され、たとえば、そのようなビデオ材料をストレージに(たとえば、サーバ上に)記憶するために必要とされるサイズを最適化する(低減する)ために使用される。そのような事例では、たとえば、変換中にカメラの様々なFOVに関係するデータ(たとえば、カメラ方向角度、各時間におけるカメラのズームレベルを定義する焦点距離、シーンに対するカメラの取付け位置など)が、記録されたビデオフレーム内のメタデータまたは同様のものとして、たとえば、ビデオフレームヘッダの部分として記憶されることが想定され得る。
【0016】
本方法の1つまたは複数の実施形態では、ズーミング動作は、第2のFOVが第1のFOVの拡大であるような(およびたとえば、第3のFOVが第2のFOVの拡大であり、以下同様であるような)ズーミングイン動作であり得る。ズーミングイン動作を実施しながら本方法を適用することは、たとえば、各画像のより大きい部分がビデオストリーム中の次の画像によって参照され得るという点で有利であり得る。想定される方法は、たとえば、第2のFOVが代わりに第1のFOVの低減/縮小であるなどのような、たとえば、ズーミングアウト動作中にも適用され得るが、各画像のより小さい部分のみがビデオストリーム中の次の画像によって参照され得るので、より少ない利益を伴うことに留意されたい。
【0017】
本方法の1つまたは複数の実施形態では、第1および第2の画像は、カメラ変換が進行中である間、追加の(非表示)ビデオフレームを追加することがビデオストリームの各画像について実施されるように、およびたとえば、各符号化された(表示されるべき)ビデオフレームが、対応する追加の(非表示)ビデオフレームを参照するように、たとえば、カメラによってキャプチャされたビデオストリームの連続画像であり得る。
【0018】
本方法の1つまたは複数の実施形態では、本方法は、少なくとも第1および第2の画像をキャプチャするために使用されるカメラにおいて実施され得る。これは、たとえば、符号化されたビデオストリームが、追加の中間ビデオ処理機器を必要とすることなしに「エッジ」において生成されることを可能にし得る。
【0019】
概して本明細書では、表示されるべきである(たとえば、非表示フレームとしてマークされない)符号化されたビデオストリームのビデオフレームが、少なくともそのビデオフレームの対応する追加の(非表示)ビデオフレームを参照することと、各追加の(非表示)ビデオフレームが、符号化されたビデオストリーム中の少なくとも前の(非表示)ビデオフレームを参照することとが仮定される。当然、たとえば、(表示されるべき)ビデオフレームも、たとえば、符号化されたビデオストリーム中の前の(表示されるべき)ビデオフレームを参照することも当てはまり得る。SVCなどのレイヤードコーディングを使用する場合、エンハンスメントレイヤ中の各ビデオフレームは、したがって、ベースレイヤ中の対応する追加のビデオフレームを参照するが、望ましい場合、たとえば、エンハンスメントレイヤ中の1つまたは複数の前の(またはさらに将来の/未来の)ビデオフレームをも参照し得る。
【0020】
本開示の第2の態様によれば、ビデオストリームを符号化するための対応するデバイスが提供される。デバイスは、プロセッサとメモリとを含む。メモリは、プロセッサによって実行されたとき、デバイスに、第1の態様による方法を実施させる命令を記憶する。これは、デバイスに、第1のFOVを有するビデオカメラによってキャプチャされた第1の画像を取得することと、符号化されたビデオストリームの第1のビデオフレームの部分として第1の画像を符号化することと、第1のFOVとは異なるが、少なくとも部分的に第1のFOVと重複する第2のFOVを有する、ビデオカメラによってキャプチャされた第2の画像を取得することと、第1のビデオフレームを参照し、第1の画像の画像コンテンツを、第1のFOVよりも第2のFOVに近いFOVに変換する第1の動きベクトルを含む第1の追加のビデオフレームを生成することであって、第1の動きベクトルが第2のFOVと第1のFOVとの間の差に基づいて形成/計算される、第1の追加のビデオフレームを生成することと、第1の追加のビデオフレームを非表示フレームとしてマークすることを含む、第1の追加のビデオフレームを符号化されたビデオストリームに挿入することと、符号化されたビデオストリームの第2のビデオフレームの部分として第2の画像を符号化することであって、第2のビデオフレームが第1の追加のビデオフレームを参照する、第2の画像を符号化することとを行わせることを含む。
【0021】
本デバイスの1つまたは複数の実施形態では、デバイスのメモリに記憶された命令は、さらに、命令が、プロセッサによって実行されたとき、デバイスに、本明細書で開示され、検討されるように(第1の態様の)方法の任意の実施形態を実施させるようなものであり得る。
【0022】
本デバイスの1つまたは複数の実施形態では、本デバイスは、少なくとも第1の画像と第2の画像とをキャプチャするためのカメラであり得る。
【0023】
本開示の第3の態様によれば、ビデオストリームを符号化するための対応するコンピュータプログラムが提供される。本コンピュータプログラムは、(第2の態様のデバイスなどの)デバイスのプロセッサによって実行されたとき、デバイスに、第1の態様の方法を実施させるように構成される(すなわち、デバイスに、第1の態様の方法を実施させる命令/コンピュータコードを含む)。これは、デバイスに、第1のFOVを有するビデオカメラによってキャプチャされた第1の画像を取得することと、符号化されたビデオストリームの第1のビデオフレームの部分として第1の画像を符号化することと、第1のFOVとは異なるが、少なくとも部分的に第1のFOVと重複する第2のFOVを有する、ビデオカメラによってキャプチャされた第2の画像を取得することと、第1のビデオフレームを参照し、第1の画像の画像コンテンツを、第1のFOVよりも第2のFOVに近いFOVに変換する第1の動きベクトルを含む第1の追加のビデオフレームを生成することであって、第1の動きベクトルが第2のFOVと第1のFOVとの間の差に基づいて形成/計算される、第1の追加のビデオフレームを生成することと、第1の追加のビデオフレームを非表示フレームとしてマークすることを含む、第1の追加のビデオフレームを符号化されたビデオストリームに挿入することと、符号化されたビデオストリームの第2のビデオフレームの部分として第2の画像を符号化することであって、第2のビデオフレームが第1の追加のビデオフレームを参照する、第2の画像を符号化することとを行わせることを含む。
【0024】
本コンピュータプログラムの1つまたは複数の実施形態では、本コンピュータプログラム(すなわち、コンピュータプログラムとともに提供される命令/コンピュータコード)は、さらに、プロセッサによって実行されたとき、デバイスに、本明細書で開示され、検討されるように(第1の態様の)方法の任意の実施形態を実施させるように構成され得る。
【0025】
本開示の第4の態様によれば、対応するコンピュータプログラム製品が提供される。本コンピュータプログラム製品は、第3の態様による(またはコンピュータプログラム製品の任意の本明細書で説明され、検討された実施形態による)コンピュータプログラムを記憶するコンピュータ可読記憶媒体を含む。本明細書で使用されるコンピュータ可読記憶媒体は、たとえば、非一時的であり、たとえば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、USBフラッシュドライブ、SDカード、CD/DVDとして、および/またはデータの非一時的記憶が可能な任意の他の記憶媒体として提供され得る。他の実施形態では、コンピュータ可読記憶媒体は一時的であり、たとえば、たとえば、通信リンク、ワイヤ、または信号転送の同様の手段上に存在する(電気、光学、機械、または同様の)信号に対応し得る。
【0026】
本開示の他の目的および利点は、以下の発明を実施するための形態、図面および特許請求の範囲から明らかになろう。本開示の範囲内で、たとえば、第1の態様の方法に関して説明されるすべての特徴および利点が、第2の態様のデバイス、第3の態様のコンピュータプログラム、および第4の態様のコンピュータプログラム製品にとって適切であり、それらに適用され、それらと組み合わせても使用され得、その逆も同様であることが想定される。
【0027】
次に、例示する実施形態が、添付の図面を参照しながら以下で説明される。
【図面の簡単な説明】
【0028】
図1】カメラのFOVが画像のキャプチャ中に変化するビデオストリームの一例を概略的に示す図である。
図2】本開示の実施形態による、図1のビデオストリームに適用されるビデオストリームを符号化する改善された方法の一例を概略的に示す図である。
図3】本開示の実施形態による、ビデオストリームを符号化する改善された方法のフローチャートを概略的に示す図である。
図4】本開示の実施形態による、図1のビデオストリームに適用されるビデオストリームを符号化する改善された方法の別の例を概略的に示す図である。
図5】本開示の改善された方法の実施形態による、カメラのFOVがどのように変化したかに関する知識に基づいて動きベクトルをどのように取得すべきかの例を概略的に示す図である。
図6】本開示の実施形態による、ビデオストリームを符号化するためのデバイスの一例を概略的に示す図である。
【発明を実施するための形態】
【0029】
図面において、同様の参照番号は、別段に記載されていない限り同様の要素のために使用される。反対のことが明示的に述べられない限り、図面は、例示的な実施形態を示すのに必要であるそのような要素のみを示すが、明快のために、他の要素は、省略されるか、または示唆されるにすぎないことがある。図に示されているように、要素および領域の(絶対的または相対的な)サイズは、説明の目的のためにそれらの真値に対して誇張されるかまたは控えめに述べられることがあり、したがって、実施形態の一般的な構造を示すために提供される。
【0030】
図1は、(ビデオ)カメラによってキャプチャされたビデオストリーム100の1つの一般的な例を概略的に示し、カメラのFOVはキャプチャしている間に変化する。この特定の例では、FOVの変化は、カメラが、ズーミング動作、より詳細には、関心のあるオブジェクトをカメラのFOVの中心に移動させるためにカメラのわずかなパンニングおよびチルティングをも含むズーミングイン動作を実施することに起因する。
【0031】
この特定の例では、シーンは、関心のある単一のオブジェクト110を含むと仮定される。ここで、このオブジェクト110は、植木鉢中の花であると仮定されるが、当然、1つまたは複数の他のオブジェクトの任意の組合せであり得る。ビデオシーケンス100は、第1のFOVにおいてカメラによってキャプチャされた第1の画像120aを含む。ここで、第1のFOVは、オブジェクト110が第1の画像120aの左下コーナーのみを占有するようなものである。時間が進むにつれて、カメラは、次いで、たとえば、カメラのレンズを調整することによって、および/またはそのような物理的ズーミングをエミュレートするデジタル処理を使用することによって、オブジェクト110に対してズーミングインを開始し、また、オブジェクト110をFOVの中央にセンタリングするためにわずかに左にパンし、ならびにわずかに下にチルトする。
【0032】
次の第2の画像120bがカメラによってキャプチャされたとき、カメラは、したがって、第1のFOVと比較してオブジェクト110の拡大を提供する第2のFOVを有する。オブジェクト110は、第1の画像120aにおいて示されたときに比較して、第2の画像120bにおいて示されたとき、サイズがややより大きく、また、カメラのパンニングおよびチルティングにより画像の中心のほうへ移動し始めしている。
【0033】
時間がさらに進むにつれて、カメラは、オブジェクト110が、たとえば、どんどん大きくなり、各画像の部分をどんどん大きく占有するように、シーンのより多くの画像をキャプチャしながらズームし続ける。図1に示されている特定の例では、これは、第3のFOVを有するカメラを用いて第3の画像120cをキャプチャすることと、第4のFOVを有するカメラを用いて第4の画像120dをキャプチャすることとを含む。第4の画像120dをキャプチャした後に、第4の画像120dにおいて、オブジェクト110は、次に、利用可能な画像空間のほぼすべてを占有し、大体FOV内の中心に位置し、カメラは、ズーミング動作を停止する。第5の画像120eおよび第6の画像120fなどの連続フレームでは、カメラのFOVは不変であり、第4の画像120dをキャプチャするために使用される第4のFOVに等しいままである。
【0034】
ビデオストリーム100を符号化するために、たとえば、ビットレート/帯域幅を節約するために、様々な符号化方式が適用され得る。従来のそのような方式は、たとえば、1つまたは複数の追加のビデオフレームへの参照がない、イントラ予測されたフレーム(Iフレーム)または同様のものとして第1の画像120aを符号化することから開始することができる。第2の画像120bは、次いで、インター予測フレーム(Pフレーム)として符号化され、たとえば、動きベクトルの形態で第1の画像120aを符号化するIフレームへの参照を提供することができる。しかしながら、そのような動きベクトルを見つけるために、エンコーダは、最初に動きベクトル探索を実施しなければならなくなり、動きベクトル探索において、エンコーダは、第2の画像120bの各部分について、第2の画像120bを符号化するPフレームを後で復号するために、第1の画像120aのどの部分から画像データが取り出されるべきであるかを識別することを試みる。これは、しばしば、第2の画像120bの各部分の周りの限られた探索エリアを定義することと、次いで、好適な一致を探すために第1の画像120a中のこのエリアを通して探索することとによって達成される。カメラFOVの変化が、ズーミング動作を含まなかったが、たとえば、(パンニングなど)カメラの遅い並進運動のみを含んだ場合、これは、必要とされる探索エリアが小さいままになり、動きベクトルが第2の画像120bのすべての部分についてほぼ同じになるので、Pフレームを(およびそれにより、第2の画像120bを)符号化する、最も可能性がある効率的なやり方であろう。
【0035】
しかしながら、図1に示されているようなズーミング動作の事例では、そのような動きベクトルのための探索は、おそらくより困難になり、探索エリアが拡大されることを必要とすることになろう。さらに、動きベクトルは、第2の画像120bの多くのまたはすべての部分についても異なることになり、これは、たとえば、植木鉢に属するピクセルの移動が、たとえば、花の上部に属するピクセルの移動よりも小さくなるようなものであり、たとえば、オブジェクト110の左部分に属するピクセルが、第1の画像120a中のものと比較して、第2の画像120b中のほぼ上方にのみ移動したであろう一方で、たとえば、オブジェクト110の右部分に属するピクセルが代わりに上方と右の両方に移動したであろうようなものである。ズーミングが進み、オブジェクト110の異なる部分が、各新しくキャプチャされた画像について互いから離れてさらにより高速に移動し始めるとき(および各新しいPフレームが、たとえば、前に符号化されたPフレームを参照しなければならなくなるとき)、動きベクトルでは、どんどん長くなることと、また、第2の画像120bの異なる部分、および第2の画像120bを符号化するPフレームについて(方向が)ますます変わることの両方が起こることになる。その結果、そのような動きベクトル探索を実施するのに必要とされる処理電力は、たとえば、符号化を担当するエンティティの能力を超える危険を冒すことになり、そのエンティティは、ライブ状況では、たとえば、カメラ自体であり得る。
【0036】
次に、本明細書で想定される方法がこの状況をどのように改善することができるかが、たとえば、図2および図4を参照しながらより詳細に説明される。また、そのような方法の様々なステップのフローチャート300を概略的に示す図3への参照が行われる。
【0037】
図2は、方法200の部分として実施される様々なビデオフレームの符号化を概略的に示す。本明細書で想定されるように、改善された方法200は、第1のFOVを有するビデオカメラによってキャプチャされた第1の画像(たとえば、第1の画像120a)を取得することを(ステップS301として)含む。方法200は、符号化されたビデオストリーム210の第1のビデオフレーム220aの部分として第1の画像120aを符号化することを(ステップS302として)さらに含む。これは、従来行われるように、たとえば、第1のビデオフレーム220aをIフレームまたは同様のものとして符号化することによって実施され得、したがって、第1のビデオフレーム220aは、デコーダ側(図示せず)において再び第1の画像120aを復号するのに必要とされるすべての必要な画像データを含んでいる。符号化は、たとえば、第1のビデオフレーム220aのそのような符号化のために使用される厳密な方法に応じて、第1のビデオフレーム210aを復号するとき、無損失であるか、または画像品質の少なくとも何らかの損失を生成し得る。
【0038】
方法200は、第2のFOVを有するビデオカメラによってキャプチャされた第2の画像(たとえば、第2の画像120b)を受信することを(ステップS303として)含む。たとえば、図1を参照しながら本明細書で前に説明されたように、第1のFOVは第2のFOVとは異なるが、第2のFOVは、第2のFOVが第1のFOVと少なくとも部分的に重複するようなものである。別の言い方をすれば、方法200が意図されるように機能するために、好ましくは、第1の画像120aと第2の画像120bの両方において可視である、たとえば、オブジェクト110の少なくとも何らかの部分があるべきである。より好ましくは、第2の画像120bにおいて可視であるオブジェクト110のすべての部分が、第1の画像120aにおいても可視であるべきである。
【0039】
従来の符号化方法とは対照的に、想定される改善された方法200は、たとえば、第1の画像120aにおける動きベクトル探索を使用する通常Pフレームとして、第2の画像120bを直接符号化することを試みることによって進まない。代わりに、ステップS304において、方法200は、第1のビデオフレーム220aを参照する第1の追加のビデオフレーム230aを生成することによって進み、第1のビデオフレーム220aは、第1の画像120aの画像コンテンツを第1のFOVよりも第2のFOVに近いFOVに変換する(この事例では、スケーリングし、並進させる)第1の動きベクトルを含む。これらの第1の動きベクトルは、算出集約的動きベクトル探索によって見つけられないが、代わりに、第2のFOVと第1のFOVとに関する知識、すなわち、第1の画像120aをキャプチャすることと第2の画像120bをキャプチャすることとの間にカメラのFOVがどのように変化したかに関する知識に基づいて計算/形成される。そのような情報は、たとえば、カメラ自体から、および/またはたとえば(パン/チルト/ロール角または同様のもの、ならびに/あるいはカメラおよびカメラのレンズの焦点距離など)カメラ方向を検出することが可能な任意の他の特定の(1つまたは複数の)センサーから受信され得る。たとえば、第1の画像120aをキャプチャすることと第2の画像120bをキャプチャすることとの間で、たとえば、レンズの焦点距離を特定の量で増加させることによって、および(ズームしながらオブジェクト110を画像の中心のほうへ移動させるために)カメラをわずかに左にパンしながらカメラをわずかに下方にチルトすることによって、カメラのFOVが変更されたことが知られ得る。この情報は、次いで、スケーリング/並進を実施するために必要とされる第1の動きベクトルを直接取得するために使用され得、スケーリング/並進は、第1の画像120aのFOVを、第2の画像120bをキャプチャするために使用される第2のFOVにより近いか、または第2のFOVに等しいFOVに変換する。本明細書で使用されるように、「画像のFOVが何らかの他のFOVに変換される」ということは、計算されるとき、変換が、画像の画像コンテンツに適用された場合に得られた画像を、その画像がこの他のFOVを有するカメラによってキャプチャされたのと(より)同様に見えるようにレンダリングすることになることを理解されるべきである。第1の動きベクトルが、2つの画像をキャプチャするために使用される様々なFOVに関する知識に基づいてどのように形成/計算され得るかは、たとえば、図5を参照しながら、ここで後でより詳細に説明される。
【0040】
第1の動きベクトルが形成/計算された後に、本方法200は、(ステップS305において)第1の追加のビデオフレーム230aを符号化されたビデオストリーム210に挿入することによって進み、(図2に示されている取り消し線で消されたスクリーンシンボルによって指示されるように)第1の追加のビデオフレーム230aを非表示フレームとしてマークすることを含む。第1の追加のビデオフレーム230aは、したがって、符号化されたビデオストリーム210の後続の復号中に示されないことになるが、他のビデオフレームの復号/符号化のための情報の容器としてのみ働く。特に、本例では、第1の追加のビデオフレーム230aは、実際の画像データを含まないが、(第1の追加のビデオフレーム230aの後続の復号中に)第1の画像120aのFOVを、第2のFOVにより近く似ているFOVに変換すること、すなわち、必要に応じて第1の画像120aの画像コンテンツをスケーリングすること、並進させること、および/または回転することによって、変換することを可能にする第1の動きベクトルのみを含む必要がある。
【0041】
本方法は、次いで、ステップS306において、符号化されたビデオストリーム210の第2のビデオフレーム220bの部分として第2の画像120bを符号化することを続け、第2のビデオフレーム220bは、第1の追加のビデオフレーム230aを参照するようなものである。第2のビデオフレーム220bは、たとえば、(復号された)第1の追加のビデオフレーム230aのどの部分が第2のビデオフレーム220bのどの部分を復号するために使用されるべきであるかを指示する動きベクトルをもつ、たとえば、Pフレームまたは同様のものであり得る。重要なことには、第1の追加のビデオフレーム230aの(復号されるべき)画像のFOVは、第2の画像120bのFOVにより近く似ている(または等しくさえある)ので、動きベクトル探索を使用して第2のビデオフレーム220bの復号のためにそのような動きベクトルを見つけることは、たとえば、第1の画像120aの画像コンテンツに基づいてそのような動きベクトルを直接見つけることを試みることよりも自明になる。第2のビデオフレーム220bのための動きベクトルは、たとえば、第2の画像120bの画像コンテンツを、第1の追加のビデオフレーム230a中に含まれる(または復号の後に第1の追加のビデオフレーム230aから生成された)第1の画像120aの並進させられた画像コンテンツの画像コンテンツと比較することによって見つけられ得る。想定される方法は、したがって、カメラのFOVの変化中にキャプチャされたビデオストリームを符号化する改善されたやり方を提供する。
【0042】
図2において、1つの符号化されたビデオフレームから別の符号化されたビデオフレームへの参照が、実線矢印によって示される。たとえば、実線矢印240aは、第1の追加のビデオフレーム230aがどのように第1のビデオフレーム220aを参照するかを示し、実線矢印240bは、第2のビデオフレーム220bがどのように第1の追加のビデオフレーム230aを参照するかを示し、実線矢印240cは、(本明細書で後で検討されるように、含まれる場合)第2の追加のビデオフレーム230bが第1の追加のビデオフレーム230aをどのように参照するかを示す、などである。本明細書で使用されるように、方向情報における矢印ポイントは、たとえば、第1のビデオフレーム220aから第1の追加のビデオフレーム230aに向いている矢印240aが、第1の追加のビデオフレーム230aが第1のビデオフレーム220aを参照するビデオフレームであることを指示するように転送される。本明細書で想定されるように、本方法のいくつかの実施形態では、当然、様々なビデオフレームの間に含まれる他の参照もあり得る。そのような追加の参照の例が、図2において破線矢印によって指示され、たとえば、動きベクトルを必要としない部分、たとえば、一定の背景または同様のものなどについて、たとえば、第2のビデオフレーム220aが第1のビデオフレーム220aをも参照することを含み得る。他のそのような随意の参照は、たとえば、1つまたは複数の「将来の」ビデオフレームへの参照をも含む、1つまたは複数のフレームが双方向予測フレーム(Bフレーム)であることを含み得る。
【0043】
上記で説明されたことに加えて、想定される方法はまた、当然、いくつかの実施形態では、たとえば、進行中のズーミング動作の部分として、カメラのFOVが変化している間にキャプチャされた1つまたは複数の追加の画像をも符号化するために同様の様式で続き得る。本明細書で想定され、フローチャート300によって説明される方法は、したがって、カメラのFOVが依然として変化しているかどうかが検査される随意のステップS307を含み得る。肯定の場合、本方法は、(破線矢印310によって指示されるように)後退し、再びステップS303~S306をやり直し、新しい画像を取得するたびに、前の追加のビデオフレームを参照する新しい、非表示の追加のビデオフレームを生成し、新しい追加のビデオフレームを参照する新しいビデオフレームの部分として新しい画像を符号化し得る。カメラFOVの変化が依然として進行中であることが肯定的でない場合、本方法は、代わりに、たとえば、停止し、たとえば、破線矢印312によって示されるように、従来行われるようにフレームを符号化することに戻り得る。
【0044】
図2に示されているように、方法200を続けることは、たとえば、第3のFOVを有するカメラによってキャプチャされた第3の画像(たとえば、第3の画像120c)を取得することを含み得、第3のFOVは、第2のFOVとは異なるが、また、第3のFOVが第2のFOVと少なくとも部分的に重複するようなものである。これは、たとえば、「第1および第2の」の代わりの「第2および第3の」などを除いて、上記のステップS303を繰り返すことに対応し得る。本方法は、たとえば、第1の追加のビデオフレーム230aを参照し、第2の動きベクトルを含む第2の追加のビデオフレーム230bを生成することを含み得、第2の動きベクトルは、上記で説明された第1の動きベクトルと同様の様式で、第2の画像120bの画像コンテンツを、第2のFOVよりも第3のFOVに近いFOVに変換するために使用される。ここで、第2の動きベクトルは、代わりに、第3のFOVと第2のFOVとの間の差に基づいて形成される。これは、たとえば、上記のステップS304を繰り返すことに対応し得るが、やはり「第1および第2の」の代わりに「第2および第3の」を用いる。本方法は、符号化されたビデオストリーム210に第2の追加のビデオフレーム230bを挿入することと、第2の追加のビデオフレーム230bを非表示フレームとしてマークすることとによって続き得る(これは、上記のステップS305を繰り返すことに対応し、「第1および第2の」の代わりに「第2および第3の」を用いることなどもある)。本方法は、第3のビデオフレーム220cの部分として第3の画像120cを符号化することによって続き得、第3の画像120cは、たとえば、第2の追加のビデオフレーム230bを参照し得る。本方法は、いくつかの実施形態では、カメラのFOVの変化が終了するまで、同様の様式で続き得る。本例では、これは、第4の画像、たとえば、第4の画像120dを取得すること、第2の追加のビデオフレーム230bを参照する第3の追加のビデオフレーム230cを生成すること、第3の追加のビデオフレーム230dを参照する第4のビデオフレーム230dの部分として符号化されたビデオストリーム210中の第4の画像120dを符号化することなどを含み得る。たとえば、第4の画像104dをキャプチャするときのカメラの第4のFOVが、第5の画像104eをキャプチャするときのカメラの第5のFOVと同じであることに気づくことによって、たとえば、ズーミングが停止したことを検出したとき、本方法は、たとえば、いくつかの実施形態では、追加のビデオフレームを挿入することを停止し、代わりに、たとえば、ズーミングが現在続いていないときに行われるような、フレームを符号化することに戻り得る。たとえば、第5の画像104eは、第4の追加のビデオフレーム230dを参照する第5のビデオフレーム220eの部分として符号化され得、次の画像230fは、ビデオフレーム230eを参照するビデオフレーム220fとして符号化され得る、などである。特に、本明細書で想定される方法は、主に、カメラがカメラのFOVを変更している間の時間、および動きベクトルを使用する従来のコーディングが、そのような動きベクトルが、カメラの変化するFOVに起因して長いことと変わることの両方であることにより困難である間の時間に対応するビデオフレームの符号化に適用される。
【0045】
カメラによって実施されるズーミングイン動作(プラス追加のパンニング/チルティング動作)によりFOVが変化することによってのみ例示されているが、想定される方法はまた、カメラのFOVの1つまたは複数の追加の変化がある、および/またはカメラのFOVの変化についての他の原因がある記録中にビデオストリームを符号化するために使用され得ることに留意されたい。そのような例は、たとえば、カメラの回転、あるいはパン、チルト、ロールおよび/もしくは焦点距離の変化、または同様のものに関係する可能な変化の他の組合せを含み得る。異なる画像を記録するとき使用される異なるFOVに関する知識が知られている(または場合によっては何らかのやり方で派生され得る)限り、追加のビデオフレームを生成するために必要とされる動きベクトルは、カメラなどのデコーダによる動きベクトル探索を必要とすることなしに、この知識から直接取得され得ることは想定される。追加のビデオフレームのFOVが、したがって、カメラによってキャプチャされた画像のFOVにより良く、または正確に一致するように作られ得る限り、動きベクトル探索は、次いで、追加のビデオフレームにおいて探索することと、追加のビデオフレームを参照することとによって、キャプチャされた画像を符号化したときに、より効率的に実施され得る。
【0046】
次に、想定される方法の別の実施形態が、図4を参照しながら説明される。ここで、方法400が、依然として、図1に示されているように、オブジェクト110に対するズーミングイン中にキャプチャされたビデオストリーム100を符号化すると考えられるが、図2を参照しながら説明された方法200とは対照的に、方法400は、スケーラブルビデオコーディング(SVC)など、レイヤードタイプのコーディングを代わりに使用すると仮定される。以下では、方法200と方法400との間の差のみがハイライトされる。
【0047】
符号化されたビデオストリーム410は、少なくともベースレイヤ412と少なくとも1つのエンハンスメントレイヤ414とを含む複数のレイヤを有する。方法400は、そのようなレイヤードコーディング方式において従来行われているように、第1の画像120aを取得することと、この画像を、ベースレイヤ412中の第1のビデオフレーム420aの部分として(たとえば、より低い解像度を用いて)、ならびにエンハンスメントレイヤ414中の第1のビデオフレーム440aの部分として(ベースレイヤ412の解像度よりも高い解像度を取得するためのディテールを用いて)符号化することとから開始する。
【0048】
第2の画像120bを取得した後に、第1の追加のビデオフレーム430aは、本明細書で前に説明されたように生成され、ベースレイヤ412の第1のビデオフレーム420aを参照する。第1の追加のビデオフレーム430aはまた、ベースレイヤ412中で符号化され、非表示フレームとしてマークされる。
【0049】
しかしながら、第2の画像120bは、ベースレイヤ412の任意のビデオフレームの部分として直接符号化されないが、代わりに、エンハンスメントレイヤ414の第2のビデオフレーム440bの部分としてのみ符号化され、第2のビデオフレーム440bは、ベースレイヤ412中の第1の追加のビデオフレーム430aを参照する。
【0050】
同様にして本明細書で前に説明されたように、方法400はまた、いくつかの実施形態では、当然、カメラのFOVが変化している限り、より多くのビデオフレームを生成および符号化し続け得る。第3の画像120cは取得され得、第3の画像120cをキャプチャするために使用される第3のFOVは、第2の画像120bをキャプチャするために使用される第2のFOVと比較され得、第2の動きベクトルは、計算され、ベースレイヤ412中で符号化される第2の追加のビデオフレーム430bを生成するために使用され得る。まさに前述のように、第3の画像120cは、ベースレイヤ412中で直接符号化されないが、代わりに、エンハンスメントレイヤ414中で第3のビデオフレーム440cとして符号化され、ベースレイヤ412中で第2の追加のビデオフレーム430bを参照するために作られる。同じプロシージャは、次いで、当然、たとえば、第4の画像120d、第5の画像120eなどを取得するために繰り返され得、本明細書で説明されるように、対応するフレームは生成され、ベースレイヤ412およびエンハンスメントレイヤ414中に挿入され得る。本例では、これは、ベースレイヤ412中で(非表示としてマークされ、第2の追加のビデオフレーム430bを参照する)第3の追加のビデオフレーム430cを生成すること、エンハンスメントレイヤ414中で第4のビデオフレーム440dの部分として第4の画像120dを符号化すること(ただし、第4のビデオフレーム440dがベースレイヤ412中の第3の追加のビデオフレーム430cを参照する)などを含む。オブジェクト110に対するズーミングインが停止すると、方法400は、追加のビデオフレームを生成および挿入することを停止し、代わりに、再びベースレイヤ412とエンハンスメントレイヤ414の両方中で第5の画像120eと第6の画像120fとを符号化することに戻り得る。たとえば、これは、第5の画像120eを、(より低い解像度を用いて)ベースレイヤ412中の第5のビデオフレーム420e中で符号化することと、(ベースレイヤ412の解像度よりも高い解像度を取得するためのディテールを用いて)エンハンスメントレイヤ414中の第5のビデオフレーム440e中で符号化することの両方を含み、第6の画像120を、ベースレイヤ412中の第6のビデオフレーム420f中で符号化することと、エンハンスメントレイヤ414中の第6のビデオフレーム440f中で符号化することの両方を含み得る。図4に見られ得るように、方法400では、追加のビデオフレーム230a、230bおよび230cは、したがって、場合によってはベースレイヤ412中の第2、第3および第4の通常符号化されたビデオフレームになるものを置き換える。
【0051】
ベースレイヤ412中の第5のビデオフレーム420eは、たとえば、図4において提供される実線矢印によって示されるように、および図2を参照しながらすでに説明されたように、第3の追加のビデオフレーム430cなどを参照し得る。また本明細書で説明されるように、様々なビデオフレームの間に含まれる他の参照があり得る。たとえば、図5において破線矢印によって示されるように、エンハンスメントレイヤ414中の各ビデオフレームはまた、たとえば、エンハンスメントレイヤ414中の1つまたは複数の前のビデオフレームを参照し得、ベースレイヤ412中の各「通常」(すなわち、非追加のビデオフレーム)は、ベースレイヤ412中の1つまたは複数の前のビデオフレームを参照し得る。当然、考えられる場合、たとえば、将来のフレームまたは同様のものへの参照など、図示されない他の参照があり得る。
【0052】
図2を参照しながら説明された方法200と比較すると、方法400は、すべての追加のビデオフレーム(たとえば、フレーム430a~c)がベースレイヤ412中に挿入されるとき、エンハンスメントレイヤ414が、依然として、カメラによってキャプチャされた画像ごとに1つの符号化されたビデオフレームのみを含むので、すべての追加のビデオフレームがFPSレートに影響を及ぼさないという利点を有する。エンハンスメントレイヤ414が復号されるべきでない状況において、たとえば、エンコーダの処理能力が復号するために不十分であるとき、またはエンハンスメントレイヤ414が、符号化されたビデオストリーム410をたとえば、ネットワークにわたって送る前に(帯域幅を節約するために)符号化されたビデオストリーム410からも削除される場合、追加のフレーム中で見つけられるスケーリング、並進および/または回転のために動きベクトルを使用して生成される様々なキャプチャされた画像の「FOV変換された」画像コンテンツが、依然として、画像コンテンツをレンダリングするために使用され得るように、依然として、ベースレイヤ412のみを取り出し、復号することにおいて何らかの使用があり得ることも想定され得る。
【0053】
図5は、必要とされる(第1の)動きベクトルの計算がどのように取得され得るかをより詳細に概略的に示す。ここで、一例として、第1のFOV(「FOV1」)を有するカメラ510が、オブジェクト110の第1の画像120aをキャプチャする。別の(たとえば、より遅い)時間において、同じカメラ510は、異なる第2のFOV(「FOV2」)を有しながら、オブジェクト110の第2の画像120bをキャプチャする。説明の目的のみのために、図5において提供される例では、第1のFOVと第2のFOVとの間の差(およびそれにより、第1の画像120aと第2の画像120bとの間の差)は、図5において、たとえば、図1および図2と比較し誇張されている。
【0054】
第1の画像120aをキャプチャするとき、第1のFOV(FOV1)は、たとえば、第1のパン角520a、第1のチルト角522a、および第1のロール角524a、ならびに第1の焦点距離526aを有するカメラ510によって定義される。第2の画像120bをキャプチャするとき、第2のFOV(FOV2)は、第2のパン角520b、第2のチルト角522b、第2のロール角524b、ならびに第2の焦点距離526bを有するカメラ510によって定義される。この特定の例では、上記で検討されたように、(カメラが、第1のFOVにおけるよりも第2のFOVにおいてズームインされ、わずかに左/下にパン/チルトされるので)ロール角524a~bは同じであるが、第2のパン角520bは第1のパン角520aよりもやや小さく、第2のチルト角522bは第1のチルト角522aよりもやや大きく、第2の焦点距離526bは第1の焦点距離526aよりも大きい。様々な角の厳密な定義は、その定義が、一方のFOVと他方のFOVとの間で角がどのように変化したかを測定/検出することを可能にする限り、重要であるものとして想定されない。
【0055】
カメラ510の第1および第2のFOVに関する知識を有することによって(たとえば、角520a~b、522a~b、524a~b、および焦点距離526a~bに関する知識を有することによって)、第1の動きベクトル(たとえば、530aおよび530bなど)は、次いで、図5にも示されている、第1の画像120aと第2の画像120bとのオーバーレイ540に示されているように計算され得る。オーバーレイ540に見られ得るように、第1のFOVから第2のFOVにより近くに進むために必要とされるスケーリングおよび並進が、オブジェクト110の異なる部分に異なる方向において異なる速度で移動させ得るので、第1の動きベクトル530aおよび530bは、第2の画像120bの異なる部分(たとえば、550aおよび550b)について異なり得る。当然、たとえば、第2の画像120bの各部分について、図5に示されているものよりも他の、追加の第1の動きベクトルがあり得る。
【0056】
本明細書では、次にまた図6を参照しながらより詳細に説明されるように、ビデオストリームを符号化するためのデバイスを提供することも想定される。
【0057】
図6は、本明細書で前に検討されたようにビデオストリームを符号化するためのデバイス600、すなわち、たとえば、図2を参照しながら説明された方法200、および/または図4を参照しながら説明された方法400を実施するように構成されたデバイスを概略的に示す。デバイス600は、少なくともプロセッサ(または「処理回路」)610とメモリ612とを含む。本明細書で使用される「プロセッサ」または「処理回路」は、たとえば、メモリ612に記憶されたソフトウェア命令を実行することが可能な、好適な中央処理ユニット(CPU)、マルチプロセッサ、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)などのうちの1つまたは複数の任意の組合せであり得る。メモリ612は、プロセッサ610の外部にあり得るか、またはプロセッサ610の内部にあり得る。本明細書で使用される「メモリ」は、ランダムアクセスメモリ(RAM)と読取り専用メモリ(ROM)との任意の組合せ、または命令を記憶することが可能な任意の他の種類のメモリであり得る。メモリ612は、プロセッサ610によって実行されたとき、デバイス600に、本明細書で説明される方法(すなわち、方法200、400、またはその方法の任意の実施形態)を実施させる命令を含んでいる(すなわち、記憶する)。デバイス600は、いくつかの状況では、方法を実施するために有用であり得る1つまたは複数の追加のアイテム614をさらに含み得る。いくつかの例示的な実施形態では、デバイス600は、たとえば、ビデオモニタリングカメラなどの(ビデオ)カメラであり得、(1つまたは複数の)追加のアイテム614は、次いで、モニタリングカメラが想定される方法を実施する部分としてシーンの画像をキャプチャし得るように、たとえば、画像センサー、およびたとえば、シーンからの光を画像センサー上に集束させるための1つまたは複数のレンズを含み得る。(1つまたは複数の)追加のアイテム614は、たとえば、要望に応じて画像センサーおよび/またはレンズを適切に動作させるために、ならびにたとえば、カメラおよび(1つまたは複数の)レンズの現在の方向および/または焦点距離に関係する情報を集めるために、たとえば、シーンをキャプチャするために必要とされる、様々な他のエレクトロニクス構成要素をも含み得、その情報は、たとえば、2つのFOV間の差に基づいて動きベクトルをどのように作成すべきかを計算するために使用され得る。モニタリングカメラにおいて本方法を実施することは、処理が「エッジ」に移動される、すなわち、(より集中型の処理サーバまたは同様のものにおいてなど)他のどこかで処理およびビデオ符号化を実施する場合と比較して、実際のシーンがキャプチャされるところにより近いという点で有用であり得る。デバイス600は、たとえば、本方法を実施することから生じる符号化されたビデオストリームがユーザに送信され得るようなネットワークに接続され得る。この目的のために、デバイス600は、たとえば、(たとえば、Wi-Fiをサポートする、たとえば、IEEE802.11または後続の規格のいずれかにおいて定義されている)ワイヤレスネットワークインターフェース、または(たとえば、イーサネットをサポートする、IEEE802.3または後続の規格のたとえば、いずれかにおいて定義されている)ワイヤードネットワークインターフェースであり得るネットワークインターフェース616を含み得る。ネットワークインターフェース616はまた、たとえば、符号化されたビデオを転送することが可能な、たとえば、Bluetoothまたは同様のものなど、任意の他のワイヤレス規格をサポートし得る。様々な構成要素610、612、614および616は、(存在する場合)、これらの構成要素が、互いに通信し、必要に応じてデータを交換し得るように1つまたは複数の通信バス620を介して接続され得る。
【0058】
デバイス600は、たとえば、シーンのより広いパースペクティブを提供することが可能なPTZカメラ、またはたとえば、魚眼カメラ、あるいは任意の他のタイプのモニタリング/監視カメラの形態で、たとえば、建築物上に取り付けられるかまたは取付け可能なモニタリングカメラであり得る。デバイス600は、たとえば、人、動物および/または様々な車両、あるいは同様のものに対して取り付けることに好適な、ボディカメラ、アクションカメラ、ダッシュカム、または同様のものであり得る。デバイス600は、たとえば、ユーザが携帯し、シーンを撮影することができるスマートフォンまたはタブレットであり得る。デバイス600の任意のそのような例では、デバイス600は、デバイス600が、本明細書で想定されるように、方法200、400またはその方法の任意の実施形態を実施することが依然として可能である限り、(もしあれば)本明細書ですでに説明されたもの以外のすべての必要な構成要素を含み得ると想定される。
【0059】
図6に明示的に示されていないが、デバイス600およびプロセッサ610は、たとえば、各々が、図3のフローチャート300に示されているように、たとえば、方法200および400の特定のステップによる機能を実施することを担当する、1つまたは複数の算出ブロックに構造化され得る。たとえば、1つのそのような機能ブロックは、第1の画像120aを取得するように(すなわち、ステップS301を実施するように)構成され得、別の機能ブロックは、第1の画像を符号化するように(すなわち、ステップS302を実施するように)構成され得、方法200、400のすべてのステップ、またはその方法の他の実施形態が、デバイス600によって実行されるまで、以下同様である。
【0060】
本明細書で提示される様々な実施形態の概要では、本開示は、ビデオストリームの画像をキャプチャしている間に、カメラのFOVが変化する状況では(たとえば、カメラによって実施されるズーミング動作中など)、ビデオストリームを符号化する改善されたやり方を提供する。FOV変化がFOV変化の様々な段においてカメラのFOVに一致し始める前に、キャプチャされた画像の画像コンテンツを連続的に変換する1つまたは複数の追加の非表示フレームを挿入することによって、およびそのような変換をFOVに関する知識から直接見つけられる動きベクトルに基づかせることによって(および動きベクトル探索を必要とすることなしに)、より効率的で、より算出集約的でない符号化が実施され得る。FOVの変化中のビットストリームの様々な画像は、次いで、たとえば、長く、変わる動きベクトルを/から生じない動きベクトル探索を実施することによって、様々な追加のビデオフレームを参照する動きベクトルを用いて符号化され得る。想定される方法、ならびに対応するデバイス、コンピュータプログラムおよびコンピュータプログラム製品は、本明細書で説明されるように、したがって、動きベクトル探索のみに基づく符号化技法が、特にリアルタイムまたはリアルタイムに近い状況において、しばしば、算出量的に扱いやすくないことが判明するので、そのようなビデオストリームを符号化する明らかな必要を満たす。
【0061】
特徴および要素は、特定の組合せで上記で説明され得るが、各特徴または要素は、他の特徴および要素を用いずに単独で、あるいは他の特徴および要素を用いるまたは用いない様々な組合せで、使用され得る。追加として、開示される実施形態の変形形態が、図面、本開示、および添付の特許請求の範囲の研究から、請求される本発明を行う際に、当業者によって理解および実現され得る。
【0062】
特許請求の範囲では、「備える(comprising)」および「含む(including)」という単語は、他の要素を除外せず、不定冠詞「a」または「an」は複数を除外しない。いくつかの特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組合せが有利に使用され得ないことを示すものではない。
【符号の説明】
【0063】
100 カメラによってキャプチャされたビデオストリーム
110 カメラFOVにおけるオブジェクト
120a~f 第1~6の画像
200 ビデオストリームを符号化する方法
210 符号化されたビデオストリーム
220a~f 符号化されたビデオストリームのビデオフレーム
230a~c 追加の非表示ビデオフレーム
240a~c 参照矢印
300 想定される方法のフローチャート
310、312 方法フローを指示する矢印
S301~S307 方法ステップ
400 ビデオストリーム(レイヤード)を符号化する方法
410 符号化されたビデオストリーム(レイヤード)
412 ベースレイヤ
414 エンハンスメントレイヤ
420a、e~f ベースレイヤ中のビデオフレーム
430a~c ベースレイヤ中の追加の非表示ビデオフレーム
440a~f エンハンスメントレイヤ中のビデオフレーム
510 (ビデオ)カメラ
520a~b カメラの第1および第2のパン角
522a~b カメラの第1および第2のチルト角
524a~b カメラの第1および第2のロール角
526a~b カメラの第1および第2の焦点距離
530a~b 第1の動きベクトル
540 第1および第2の画像のオーバーレイ
600 デバイス
610 プロセッサ
612 メモリ
614 (1つまたは複数の)追加のアイテム
614 ネットワークインターフェース
620 (1つまたは複数の)通信バス
FOV1、FOV2 カメラの第1および第2のFOV
図1
図2
図3
図4
図5
図6
【外国語明細書】