【課題を解決するための手段】
【0010】
本発明の第1の態様によれば、ビデオストリームをビデオコーディングフォーマットで符号化するための方法であって、ビデオコーディングフォーマットが、補助フレームを符号化されたビデオストリーム内に含めることをサポートし、補助フレームが、符号化されたビデオストリーム内の別のフレームによって参照され、符号化されたビデオストリーム内の別のフレームを補完する画像データを備え、補助フレームが、補助フレームの画像データが、符号化されたビデオストリームを復号するときに示されることは意図されず、代わりに、画像データが示されることを達成するために前記別のフレームのデータに関して使用されることが意図されることを指示するフラグ値を備える、符号化するための方法が提供される。
【0011】
この方法は、
ビデオ捕捉デバイスによって捕捉された第1の画像データを受信するステップと、
復号されるとき、ビデオストリームに対して意図される解像度を判定するステップと、
第1のスケールダウンされた画像データを取得するために第1の画像データをスケールダウンするステップであって、第1のスケールダウンされた画像データが意図される解像度よりも低い第1の解像度を有する、スケールダウンするステップと、
空の第1の補助フレームを準備するステップであって、第1の補助フレームの画像データが、意図される解像度に等しい解像度を有し、すべてが同じ事前定義された値を有するビットを備える、準備するステップと、
第1のスケールダウンされた画像データを第1の補助フレームの画像データ内に貼り付けるステップと、
第1の補助フレームをイントラフレームとして符号化するステップと、
第1の補助フレームの画像データ内の第1のスケールダウンされた画像データを意図される解像度を有する第1のアップスケールされた画像データにアップスケールするための第1の画像変換を判定するステップと、
少なくとも1つの所定のマクロブロックサイズに従って、第1の画像変換の結果生じる画素の移動をサンプリングすることによって、第1の動きベクトルを判定するステップと、
第1の画像データを第1の補助フレームを参照するインターフレームとして第1のフレームに符号化するステップであって、第1のフレームの動きベクトルが第1の動きベクトルに対応する、符号化するステップとを備える。
【0012】
補助フレームは、一般に、符号化されたビデオストリーム内の(マスタ画像としても知られている)別のフレームを補完する画像データのストレージを意味する。言い換えれば、前記別のフレームは補助フレームを参照する。補助フレームは、その補助フレームが補完するフレームの表示を助けるために様々な形態で使用され得るが、一般に、そのようなものとして表示されない。補助フレームは、補助画像、補助画像項目、非表示フレーム、補助ピクチャなどと呼ばれることがある。補助フレームの知られているアプリケーションは、補助フレームをアルファプレーンまたは深度マップ用に使用することを含む。
【0013】
第1のフレーム(および、第2のフレーム、第3のフレームの下のフレーム)も、したがって、マスタ画像またはマスタフレームと呼ばれることがある。
【0014】
本開示において、「解像度」という用語は、一般に、画像内の画素の数を指す。解像度は、時々、画像の幅および高さ、ならびに画像内の画素の総数によって識別される。解像度に関する別の用語は、「サイズ」または画素寸法である。
【0015】
「意図される解像度」は、一般に、ビデオストリームが示されることが意図される解像度、たとえば、4K、1080P、720P、DVD、VCD、1920×1080などを意味する。たとえば、クライアントは一定の解像度(たとえば、1080P)のビデオストリームを要求することができ、エンコーダは、さもなければ、符号化されたビデオストリームが、たとえば、エンコーダ内のハードコード値で、または要求側クライアントのIPアドレスまたは類似物に基づいて、どの解像度で復号されることが意図されるかを知ることができる。意図される解像度は、画素の総量およびアスペクト比、たとえば、3.6メガピクセルおよび16
*9を備える場合もある。意図される解像度は、いくつかの実施形態によれば、符号化されたビデオストリームが示されることが意図される電子画像デバイスの画素密度に基づき得る。
【0016】
「第1の補助フレームの画像データは意図される解像度に対応する解像度を有する」という表現(および、第2のフレーム、または第3のフレームなどに関する同様の表現)は、一般に、補助フレームの画像データのサイズは、意図される解像度を有する画像のサイズ、たとえば、1080Pの意図される解像度に対して1920×1080に対応することを意味する。
【0017】
たとえば、H.265符号化規格(および、GoogleのVP10など、他のさらに新しい符号化規格)内では、フレームは、フレームがユーザに表示されないことを意味する「非表示」としてタグ付けされ得る。H.265では、たとえば、タグ付けは、スライスヘッダ内のpic_output_flagを偽にセットするか、またはSEIヘッダ内のno_display_flagを真にセットすることによって行うことができる。
【0018】
本発明者は、補助フレームの画像データが、ビデオ捕捉デバイスによって捕捉された画像データのダウンスケールされたバージョンを備え、意図される解像度を再び有するように、画像データのダウンスケールされたバージョンをスケールアップするように補助フレームを参照するフレームの動きベクトルが算出/判定されるという点で、そのような補助フレームが、補助フレームを参照するフレームとともに、レート制御のために使用され得ることを実現した。ダウンスケーリング係数、すなわち、第1の解像度は、符号化されたビデオストリームのビットサイズの要求される低減を達成するように判定され得る。補助フレームのダウンスケールされた画像は、意図される解像度を有する画像データと比較してより少ないビットを使用して符号化され得るため、符号化されたビデオストリームを送信するために必要とされる帯域幅が低減され得る。この実施形態では、ダウンスケールされた画像データを備えない補助フレームの画像データの一部分は、空になり、したがって、非常に少数のビットを使用して符号化され得る。たとえば、第1の補助フレームをIフレームとして符号化するステップは、第1のスケールダウンされた画像データを備える第1の補助フレームの画像データを符号化するための第1のマクロブロックサイズおよび第1のスケールダウンされた画像データを備えない第1の補助フレームの画像データを符号化するための第2のマクロブロックサイズを使用することであって、第1のマクロブロックサイズが第2のマクロブロックサイズよりも小さい、使用することを備え得る。したがって、レート制御を達成するさらなる方法が提供され得る。
【0019】
上記の方法は、エンコーダによって使用されるビデオコーディングフォーマットの規格に従うため、本実施形態は、符号化されたビデオストリームがそのようなビデオコーディングフォーマットをサポートする標準的なビデオストリームデコーダによって復号され得るという点でさらに有利であり得る。さらに、ユーザは、ストリームを再度開始せずに、基準に準拠した方法で低解像度ビデオストリームを受信することが可能であることから恩恵を受けることになる。
【0020】
いくつかの実施形態では、この方法は、
ビデオ捕捉デバイスによって捕捉された第2の画像データを受信するステップと、
第2のスケールダウンされた画像データを取得するために第2の画像データをスケールダウンするステップであって、第2のスケールダウンされた画像データの解像度が第1の解像度である、スケールダウンするステップと、
空の第2の補助フレームを準備するステップであって、第2の補助フレームの画像データが意図される解像度に等しい解像度を有する、準備するステップと、
第2のスケールダウンされた画像データを第2の補助フレームの画像データ内に貼り付けるステップと、
第2の補助フレームを第1の補助フレームを参照するインターフレームとして符号化するステップと、
第2の補助フレームの画像データ内の第2のスケールダウンされた画像データを意図される解像度を有するアップスケールされた画像データにアップスケールするための第2の画像変換を判定するステップと、
第2の画像変換をサンプリングすることによって、第2の動きベクトルを判定するステップと、
第2のフレームを、第2の補助フレームを参照するインターフレームとして第2のフレームに符号化するステップであって、第2のフレームの動きベクトルが第2の動きベクトルに対応する、符号化するステップと
をさらに備える。
【0021】
本明細書で説明するビデオ符号化フォーマットなど、いくつかのビデオ圧縮規格は、イントラフレーム、たとえば、Iフレーム、およびインターフレーム、たとえば、PフレームまたはBフレームの観点から実装される時間的ビデオ圧縮を規定する。イントラフレームは、基本的に、符号化されることになる画像フレーム内の情報のみを使用して符号化される画像フレームである。さらに、イントラフレームは、符号化されることになる画像フレームに関して捕捉されたすべての画像データから算出される。したがって、イントラフレームは、時々、フルフレームと呼ばれる。予測フレームまたは差分フレームとも呼ばれるインターフレームは、前に(かつ、オプションで、後に)符号化されたフレームからの情報ならびに現在符号化されているフレームからの情報に基づき、すなわち、インターフレームは、前の(かつ、オプションで、後の)画像フレーム内の時間的に冗長な情報を利用するとして説明され得る。このタイプのコーデック(圧縮規格)を実装するエンコーダは、一般に、イントラフレームを、その後に、所定の数のインターフレームを、次いで、新しいイントラフレームを、その後に、同じ数のインターフレームを生成する。イントラフレームの後にいくつかのインターフレームが続くこのシーケンスの長さは、グループオブピクチャ長(GOP−length)と呼ばれることが多い。いくつかの圧縮規格、たとえば、H.265の場合、GOP長は、符号化の間に調整され得る。
【0022】
本実施形態に関して、第2の補助フレームの符号化は、時間的ビデオ圧縮を利用する。第2の補助フレームの符号化は、したがって、前の、第1の補助フレーム内の時間的に冗長な情報を利用する。符号化された第2の補助フレームは、したがって、第1の補助フレームの画像データ(すなわち、第1の画像データ)および第1の補助フレーム内に存在しない画像コンテンツを記述する画像データの関係で第2の画像データの動きベクトル変位と(残差値とも呼ばれる)予測誤差の両方を包含し得る。
【0023】
上記の開示された実施形態は、反復的な様式で実行され得ることに留意されたい、これは、この実施形態が、定義されたGOP長に応じて、ビデオ捕捉デバイスによって捕捉された第3の画像データ、第4の画像データなどに対して繰り返されてよいことを意味する。この後で、イントラフレームの後にいくつかのインターフレームが続く新しいシーケンスが開始され得る。したがって、いくつかの実施形態によれば、この方法は、
ビデオ記録デバイスによって第3の画像データを捕捉するステップと、
第3のスケールダウンされた画像データを取得するために第3の画像データをスケールダウンするステップであって、第3のスケールダウンされた画像データが第2の解像度を有し、第2の解像度が、第1の解像度とは異なり、意図される解像度よりも低い、スケールダウンするステップと、
空の第3の補助フレームを準備するステップであって、第3の補助フレームの画像データが意図される解像度に等しい解像度を有する、準備するステップと、
第3のスケールダウンされた画像データを第3の補助フレームの画像データ内に貼り付けるステップと、
第3の補助フレームをイントラフレームとして符号化するステップと、
第3の補助フレームの画像データ内の第3のスケールダウンされた画像データを意図される解像度を有する第3のアップスケールされた画像データにアップスケールするための第3の画像変換を判定するステップと、
第3の画像変換をサンプリングすることによって、第3の動きベクトルを判定するステップと、
第3の画像データを第3の補助フレームを参照するインターフレームとして第3のフレームに符号化するステップであって、第3のフレームの動きベクトルが第3の動きベクトルに対応する、符号化するステップと
をさらに備える。
【0024】
新しいGOPが開始するフレーム上のダウンスケール係数(第2の解像度が第1の解像度とは異なる)を変更し、インターフレーム符号化された補助フレームをもたらすことは、インターフレームが補助フレームのすべての画像データから算出され、したがって、異なるダウンスケール係数(第1の解像度)に基づいて符号化された前のフレームに依存しないという点で有利であり得る。ダウンスケール係数が符号化の間に変更されることを可能にすることによって、エンコーダは、符号化されたビデオストリームのサイズの低減、たとえば、利用可能な帯域幅の変更に関する新しい要件に非常に速やかに対応することができ、したがって、改善されたレート制御を提供する。いくつかの実施形態によれば、エンコーダが新しい要件にさらに急速に適応することができるように、GOP長も符号化の間に変更される。
【0025】
いくつかの実施形態によれば、この方法は、
第1の画像データROI1のセクションが符号化されたビデオストリーム内に第3の解像度で含まれるべきと判定するステップであって、第3の解像度が第1の解像度よりも高い、判定するステップと、
ROI1が第1のスケールダウンされた画像データに重複しないために、ROI1が、第1のスケールダウンされた画像データを上書きしないように、または第1のスケールダウンされた画像データによって上書きされるように、第3の解像度を有するROI1を第1の補助フレームの画像データ内に貼り付けるステップと、
意図される解像度を有するROI1を第1のアップスケールされた画像データ内に挿入するための第4の画像変換を判定するステップと、
第4の画像変換をサンプリングすることによって、第4の動きベクトルを判定するステップと
をさらに含み、
第1の画像データをインターフレームとして第1のフレームに符号化するステップは、第1のフレームの動きベクトルが第1の動きベクトルおよび第4の動きベクトルに対応すると判定するステップを備える。
【0026】
この実施形態では、第1の補助フレームの画像データの空の部分は、視聴者(または、画像分析ソフトウェア)が特別な関心をもつ可能性があるより高い解像度の画像データ、たとえば、人物の顔または車のナンバープレートを提供するために使用される。第1のフレームの動きベクトルを再設定することによって、ビデオ捕捉デバイスによって捕捉された画像データの任意の所与の関心領域に対して復号されたビデオストリーム内でより高い解像度が達成され得る。第4の動きベクトルは、その結果、ROI1を第1のアップスケールされた画像データ内の(第1の画像データ内のROI1の位置に対応する)正確な位置内にマッピングする。
【0027】
いくつかの実施形態によれば、この方法は、
第2の画像データROI2のセクションが符号化されたビデオストリーム内に第3の解像度で含まれるべきと判定するステップと、
ROI2が、第2のスケールダウンされた画像データを上書きしないように、または第2のスケールダウンされた画像データによって上書きされるように、第3の解像度を有するROI2を第2の補助フレームの画像データ内に貼り付けるステップと、
意図される解像度を有するROI2を第2のアップスケールされた画像データ内に挿入するための第5の画像変換を判定するステップと、
第4の画像変換をサンプリングすることによって、第5の動きベクトルを判定するステップと
をさらに備え、
第2の画像データをインターフレームとして第2のフレームに符号化するステップは、第2のフレームの動きベクトルが第2の動きベクトルおよび第5の動きベクトルに対応すると判定するステップを備える。
【0028】
ROI2は、一般に、ROI1と同じ被写体を示しており、第2の補助フレームのインターフレーム符号化はより効果的であり得るため、これは符号化の観点から有利であり得る。しかしながら、これは常に当てはまるとは限らず、より高い解像度バージョンで補助フレーム内に含まれるべきと判定される第1のおよび第2の画像データのセクションは、異なる場合があり、たとえば、第1の補助フレーム内でナンバープレートを示し、第2の補助フレーム内で運転手の顔を示している場合がある。第5の動きベクトルは、その結果、ROI2を第2のアップスケールされた画像データ内の(第2の画像データ内のROI2の位置に対応する)正確な位置にマッピングする。
【0029】
いくつかの実施形態によれば、ROI1およびROI2は、それぞれ、第1のおよび第2の補助フレームの画像データ内の対応する位置に貼り付けられる。これは、第2の補助フレームの画像データをインターフレーム符号化するとき、符号化の観点から有利であり得るが、これは、その場合、前の(第1の)補助フレームの画像データ内の同様のマクロブロックに対するエンコーダ探索のとき、エンコーダのブロック整合アルゴリズムの探索ウィンドウがより小さい可能性があるためである。
【0030】
いくつかの実施形態によれば、第3の解像度は、意図される解像度に等しい、および意図される解像度よりも大きい、のうちの1つである。この実施形態は、復号され表示されるとき、ROI1に関する詳細レベルを増大し得る。
【0031】
いくつかの実施形態によれば、意図される解像度は、ビデオ記録デバイスによって捕捉された画像データの解像度に等しい。スケールダウン係数は、スケールダウンされた画像データが、要件に応じて、詳細の高い損失(高いスケールダウン係数)に至るまで、捕捉された画像データ(低いスケールダウン係数)と比較して、詳細の損失をほとんどもたらさないように変化し得るため、これは符号化方法の柔軟性を増大し得る。しかしながら、いくつかの実施形態によれば、意図される解像度は、ビデオ記録デバイスによって捕捉された画像データの解像度よりも低い場合もある。
【0032】
いくつかの実施形態によれば、ビデオコーディングフォーマットは、高効率画像ファイルフォーマット、高効率ビデオコーディング、H.265、H.264、VP10、VP9、AV1、アドバンストビデオコーディング、およびH.266のうちの1つである。しかしながら、本明細書で説明するように、補助フレームをサポートする任意のビデオコーディングフォーマットが本発明によって網羅されることに留意されたい。
【0033】
いくつかの実施形態によれば、この方法は、エンコーダが接続されたデジタルネットワークのビットレートに基づいて、第1の解像度を判定することを備える。たとえば、エンコーダおよび/またはレートコントローラは、たとえば、エンコーダと送信されたビデオストリームの受信機との間のリンクを介して、維持されたトラフィックをプッシュし、経時的に平均を算出するアプリケーションからのビットレートに関する報告を継続的に受信することができる。ビットレートの別の例は、エンコーダが接続されたデジタルネットワークの最大アップロード速度(プリセットされた値)である。「ビットレート」という用語は、一般に、エンコーダが接続されたデジタルネットワークの効果的なスループットを意味する。上記は、第2の解像度にも等しく有効である。第1の/第2の解像度を判定する他の方法について下記で説明する。
【0034】
本発明の第2の態様によれば、上記の目的は、処理能力を有するデバイスによって実行されると、第1の態様の方法を実行するように適合された命令を備えたコンピュータ可読記憶媒体を備えるコンピュータプログラム製品によって達成される。
【0035】
第3の態様によれば、上記の目的は、ビデオ記録デバイスによって捕捉されたビデオストリームをビデオコーディングフォーマットで符号化するように適合されたエンコーダであって、ビデオコーディングフォーマットが、補助フレームを符号化されたビデオストリーム内に含めることをサポートし、補助フレームが、符号化されたビデオストリーム内の別のフレームによって参照され、符号化されたビデオストリーム内の別のフレームを補完する画像データを備え、補助フレームが、補助フレームの画像データが、符号化されたビデオストリームを復号するときに示されることは意図されず、代わりに、画像データが示されることを達成するために前記別のフレームのデータに関して使用されることが意図されることを指示するフラグ値を備え、エンコーダが、
ビデオ捕捉デバイスによって捕捉された第1の画像データを受信することと、
復号されるとき、ビデオストリームに対して意図される解像度を判定することと、
第1のスケールダウンされた画像データを取得するために第1の画像データをスケールダウンすることであって、第1のスケールダウンされた画像データが意図される解像度よりも低い第1の解像度を有する、スケールダウンすることと、
空の第1の補助フレームを準備することであって、第1の補助フレームの画像データが、意図される解像度に等しい解像度を有し、すべてが同じ事前定義された値を有するビットを備える、準備することと、
第1のスケールダウンされた画像データを第1の補助フレームの画像データ内に貼り付けることと、
第1の補助フレームをイントラフレームとして符号化することと、
第1の補助フレームの画像データ内の第1のスケールダウンされた画像データを意図される解像度を有する第1のアップスケールされた画像データにアップスケールするための第1の画像変換を判定することと、
少なくとも1つの所定のマクロブロックサイズに従って、第1の画像変換の結果生じた画素の移動をサンプリングすることによって、第1の動きベクトルを判定することと、
第1の画像データを第1の補助フレームを参照するインターフレームとして第1のフレームに符号化することであって、第1のフレームの動きベクトルが第1の動きベクトルに対応する、符号化することと
を行うようにさらに適合されたエンコーダによって達成される。
【0036】
第4の態様によれば、上記の目的は、第3の態様によるエンコーダを備えたシステムであって、エンコーダが、デジタルネットワークを介してデコーダに接続され、デコーダが、エンコーダのビデオコーディングフォーマットで符号化されたビデオストリームを復号するように構成され、エンコーダが、
デジタルネットワークを介して意図される解像度を受信し、
第1の解像度を受信し、
受信された意図される解像度および受信された第1の解像度に従って、ビデオストリームを符号化し、
デジタルネットワークを介して、符号化されたビデオストリームを送信する
ように適合されており、
デコーダが、
デジタルネットワークを介して、符号化されたビデオストリームを受信し、
復号されたビデオストリームを達成するために、符号化されたビデオストリームを復号する
ように適合されている、エンコーダによって達成される。
【0037】
いくつかの実施形態によれば、このシステムは、ディスプレイをさらに備え、エンコーダが、
第1の画像データのセクションROI1が符号化されたビデオストリーム内に第3の像度で含まれるべきと判定することであって、第3の解像度が第1の解像度よりも高い、判定することと、
ROI1が第1のスケールダウンされた画像データに重複しないために、ROI1が、第1のスケールダウンされた画像データを上書きしないように、または第1のスケールダウンされた画像データによって上書きされるように、第3の解像度を有するROI1を第1の補助フレームの画像データ内に貼り付けることと、
意図される解像度を有するROI1を第1のアップスケールされた画像データ内に挿入するための第4の画像変換を判定することと、
第4の画像変換をサンプリングすることによって、第4の動きベクトルを判定することと
を行うようにさらに適合されており、
第1の画像データをインターフレームとして第1のフレームに符号化するステップが、第1のフレームの動きベクトルが第1の動きベクトルおよび第4の動きベクトルに対応すると判定することをさらに備え、
デコーダが、
復号されたビデオストリームを達成するために、符号化されたビデオストリームを復号することであって、第1の補助フレームの画像データからROI1を抽出することを備える、復号することと、
ROI1を復号されたビデオストリームとは個別にディスプレイ上に表示することと
を行うように適合されている、エンコーダによって達成される。
【0038】
この実施形態では、カスタムデコーダは、エンコーダのビデオコーディングフォーマットをサポートするデコーダの標準的な復号方法に従って、符号化されたビデオストリームを復号しているとともに、同時に、たとえば、静止画像またはROI1の画像データ(および、オプションで、その後の補助フレームの他の関心領域)を備えた第2の復号されたビデオストリームを提供するために、第1の補助フレームからROI1の画像データを抽出している。この実施形態は、視聴者が、ROI1が抽出された画像データの残りの部分の画像コンテンツによって妨害されずに、ROI1の画像コンテンツを観ることができるように、特別な関心領域(ROI1)が個別に示されるという点で有利であり得る。ROI1を個別に表示することは、復号されたROI1の解像度が復号されたビデオストリームの解像度よりも大きく、したがって、復号されたビデオストリームの画像コンテンツ内に挿入されるときにスケールダウンされる場合、特に有利であり得る。このために、いくつかの実施形態によれば、第3の解像度は、意図される解像度よりも大きく、ROI1を復号されたビデオストリームとは個別にディスプレイ上に表示するステップは、ROI1をディスプレイ上に第3の解像度で表示することを備える。
【0039】
第2の、第3の、および第4の態様は、一般に、第1の態様と同じ特徴および利点を有する。本発明は、別段に明記されていない限り、特徴のすべての可能な組合せに関することにさらに留意されよう。
【0040】
本発明の上記の、ならびに追加の目的、特徴、および利点は、同様の要素に関して同じ参照番号が使用される添付の図面を参照して、以下の本発明の好ましい実施形態の例示的かつ非限定的な詳細な説明を通してよりよく理解されよう。