(57)【特許請求の範囲】
【請求項１】
基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームの前記シーケンスのうちの少なくともいくつかのフレームをエンコードするビデオエンコード処理を使用する場合、ビデオデータのフレームのシーケンスのフレームをエンコードおよびデコードする方法であって、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームの解像度とは異なる解像度を有する、エンコードされているソースフレームの前記シーケンスにおける前記新たなソースフレームをエンコードすることが所望されている場合、
前記新たなソースフレームのための基準フレームとなるように前記新たなソースフレームの前記解像度へスケールされる、前記新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームの前記シーケンスにおける前記別のフレームのスケールされたコピーを生成するステップと、
前記別のフレームの前記生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、前記別のフレームの前記生成されたスケールされたコピーをエンコードするステップと、
前記新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして前記別のフレームの前記スケールされたコピーを使用して前記新たなソースフレームをエンコードするステップと、
前記別のフレームの前記スケールされたコピーを表す前記エンコードされたビデオ画像データと、前記新たなソースフレームを表す前記エンコードされたビデオ画像データとをビデオデコーダへ送信するステップと、
前記ビデオデコーダにおいて、
前記別のフレームの前記スケールされたコピーのための前記エンコードされたビデオ画像データをデコードするステップと、
前記新たなソースフレームのための出力ビデオ画像データを提供するために、基準フレームとして、前記別のフレームの前記デコードされたスケールされたコピーを使用して、前記新たなソースフレームのための前記エンコードされたビデオ画像データをデコードするステップとを含む、方法。
【請求項２】
エンコードされるべきソースフレームが、前記別のフレームまたはさらに別のフレームの前記解像度とは異なる解像度を有することを示すステップを含む、請求項1に記載の方法。
【請求項３】
前記別のフレームを使用して、前記別のフレームの前記生成されたスケールされたコピーをエンコードするステップを含む、請求項1または2に記載の方法。
【請求項４】
前記別のフレームの前記スケールされたコピーは、表示されるべきではないフレームであるというインジケーションを、送信されている前記別のフレームの前記スケールされたコピーを表す前記エンコードされたビデオ画像データに含めるステップを含む、請求項1または2または3に記載の方法。
【請求項５】
前記別のフレームを表すエンコードされた出力ビデオ画像データを提供するために、前記別のフレームをエンコードし、前記別のフレームを表す前記エンコードされたビデオ画像データを前記ビデオデコーダへ送信するステップを含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記ビデオデコーダにおいて、前記別のフレームの前記デコードされたスケールされたコピーを表示しないステップを含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームの前記シーケンスのうちの少なくともいくつかのフレームをエンコードするビデオエンコード処理を使用する場合に、ビデオデータのフレームのシーケンスのフレームをエンコードする方法であって、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける直前のフレームの解像度とは異なる解像度を有する、エンコードされているソースフレームの前記シーケンスにおける前記新たなソースフレームをエンコードすることが所望される場合、
前記新たなソースフレームのための基準フレームとなるように前記新たなソースフレームの前記解像度へスケールされた前記新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームの前記シーケンスにおける別のフレームのスケールされたコピーを生成するステップと、
前記別のフレームの前記生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、前記別のフレームの前記生成されたスケールされたコピーをエンコードするステップと、
前記新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして前記別のフレームの前記スケールされたコピーを使用して前記新たなソースフレームをエンコードするステップと、
前記別のフレームの前記スケールされたコピーを表す前記エンコードされたビデオ画像データと、前記新たなソースフレームを表す前記エンコードされたビデオ画像データとを出力するステップとを含む、方法。
【請求項８】
エンコードされたビデオフレームのシーケンスにおける1つまたは複数のフレームを基準フレームとして使用して、エンコードされたビデオフレームの前記シーケンスのうちの少なくともいくつかのフレームをデコードするビデオデコード処理を使用する場合、エンコードされたビデオデータのフレームのシーケンスのフレームをデコードする方法であって、
デコードするためのビデオフレームのシーケンスを表すエンコードされたビデオ画像データを受信するステップであって、ビデオフレームのシーケンスを表す前記エンコードされたビデオ画像データは、エンコードされたフレームの前記シーケンスにおける別のフレームのスケールされたコピーを表す少なくともエンコードされたビデオ画像データと、前記別のフレームの前記スケールされたコピーを基準フレームとして使用してエンコードされたビデオフレームを表すエンコードされたビデオ画像データとを含む、受信するステップと、
前記別のフレームの前記スケールされたコピーのための前記エンコードされたビデオ画像データをデコードするステップと、
前記ビデオフレームのための出力ビデオ画像データを提供するために、前記別のフレームの前記デコードされたスケールされたコピーを基準フレームとして使用して、前記別のフレームの前記スケールされたコピーを基準フレームとして使用してエンコードされた前記ビデオフレームのための前記エンコードされたビデオ画像データをデコードするステップとを含む、方法。
【請求項９】
ビデオデータのフレームのシーケンスのフレームをエンコードおよびデコードするためのシステムであって、
基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームの前記シーケンスのうちの少なくともいくつかのフレームをエンコードすることが可能なエンコード処理回路を備え、
前記エンコード処理回路はさらに、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームの解像度とは異なる解像度を有する、エンコードされているソースフレームの前記シーケンスにおける新たなソースフレームをエンコードすることが所望されている場合、
前記新たなソースフレームのための基準フレームとなるように前記新たなソースフレームの前記解像度へスケールされた前記新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームの前記シーケンスにおける前記別のフレームのスケールされたコピーを生成し、
前記別のフレームの前記生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、前記別のフレームの前記生成されたスケールされたコピーをエンコードし、
前記新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして前記別のフレームの前記スケールされたコピーを使用して前記新たなソースフレームをエンコードすることが可能であり、
前記システムはさらに、
前記別のフレームの前記スケールされたコピーを表す前記エンコードされたビデオ画像データと、前記新たなソースフレームを表す前記エンコードしているビデオ画像データとをビデオデコーダへ送信することが可能な処理回路と、
デコード処理回路を備えるビデオデコーダとを備え、前記デコード処理回路が、
前記デコード処理回路が、別のソースフレームのスケールされたコピーを基準フレームとして使用してエンコードされたソースフレームのためのエンコードされたビデオ画像データを受信した場合、
前記別のソースフレームの前記スケールされたコピーのための受信したエンコードされたビデオ画像データをデコードし、
別のソースフレームのスケールされたコピーを基準フレームとして使用してエンコードされた前記ソースフレームのための出力ビデオ画像データを提供するために、前記別のフレームの前記デコードされたスケールされたコピーを基準フレームとして使用して、別のソースフレームのスケールされたコピーを基準フレームとして使用してエンコードされた前記ソースフレームのための前記エンコードされたビデオ画像データをデコードすることが可能である、システム。
【請求項１０】
エンコードされるべきフレームのシーケンスにおけるソースフレームの解像度が、エンコードされるべきソースフレームの前記シーケンスにおける前記別のフレームまたはさらに別のフレームの解像度とは異なる場合、前記エンコード処理回路へ示すことが可能なホスト処理回路を備える、請求項9に記載のシステム。
【請求項１１】
前記エンコード処理回路は、前記別のフレームを使用して、前記別のフレームの前記生成されたスケールされたコピーをエンコードすることが可能である、請求項9または10に記載のシステム。
【請求項１２】
エンコード処理回路は、前記別のフレームの前記スケールされたコピーは、表示されるべきではないフレームであるというインジケーションを、送信されている前記別のフレームの前記スケールされたコピーを表す前記エンコードされたビデオ画像データに含めることが可能である、請求項9または10または11に記載のシステム。
【請求項１３】
前記エンコード処理回路は、前記別のフレームを表すエンコードされた出力ビデオ画像データを提供するために、前記別のフレームをエンコードすることが可能であり、
前記処理回路は、前記別のフレームを表す前記エンコードされたビデオ画像データを前記ビデオデコーダへ送信することが可能である、請求項9から12のいずれか一項に記載のシステム。
【請求項１４】
前記デコード処理回路は、前記別のフレームの前記デコードされたスケールされたコピーを表示しないことが可能である、請求項13に記載のシステム。
【請求項１５】
ビデオデータのフレームのシーケンスのフレームをエンコードするための装置であって、
基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームの前記シーケンスのうちの少なくともいくつかのフレームをエンコードすることが可能なエンコード処理回路を備え、
前記エンコード処理回路はさらに、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームの解像度とは異なる解像度を有する、エンコードされているソースフレームの前記シーケンスにおける新たなソースフレームをエンコードすることが所望されている場合、
前記新たなソースフレームのための基準フレームとなるように前記新たなソースフレームの前記解像度へスケールされた前記新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームの前記シーケンスにおける前記別のフレームのスケールされたコピーを生成し、
前記別のフレームの前記生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、前記別のフレームの前記生成されたスケールされたコピーをエンコードし、
前記新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして前記別のフレームの前記スケールされたコピーを使用して前記新たなソースフレームをエンコードし、
前記別のフレームの前記スケールされたコピーを表す前記エンコードされたビデオ画像データと、前記新たなソースフレームを表す前記エンコードされたビデオ画像データとを出力することが可能である、装置。
【請求項１６】
エンコードされたビデオフレームのシーケンスにおける1つまたは複数のフレームを基準フレームとして使用して、エンコードされたビデオフレームの前記シーケンスのうちの少なくともいくつかのフレームをデコードするビデオデコード処理を使用する場合、エンコードされたビデオデータのフレームのシーケンスのフレームをデコードするための装置であって、
デコードするためのビデオフレームのシーケンスを表すエンコードされたビデオ画像データを受信し、前記ビデオフレームのシーケンスを表すエンコードされたビデオ画像データは、エンコードされたフレームの前記シーケンスにおける別のフレームのスケールされたコピーを表す少なくともエンコードされたビデオ画像データと、前記別のフレームの前記スケールされたコピーを基準フレームとして使用してエンコードされたビデオフレームを表すエンコードされたビデオ画像データとを含み、
前記別のフレームの前記スケールされたコピーのための前記エンコードされたビデオ画像データをデコードし、
前記ビデオフレームのための出力ビデオ画像データを提供するために、前記別のフレームの前記デコードされたスケールされたコピーを基準フレームとして使用して、前記別のフレームの前記スケールされたコピーを基準フレームとして使用してエンコードされた前記ビデオフレームのための前記エンコードされたビデオ画像データをデコードすることが可能なデコード処理回路を備える、装置。
【請求項１７】
データ処理システムにおいて実行している場合、請求項1から8のいずれか一項に記載の方法を実行するコンピュータソフトウェアコードを記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ビデオデータの処理に関し、特に、ビデオ画像データをエンコードおよびデコードするための方法およびシステムに関する。
【背景技術】
【０００２】
ビデオ画像が、1つのデバイス(たとえば、ビデオカメラ)によって生成され、その後、別のデバイス(たとえば、コンピュータ)において視られるためにリンクを介して(たとえば、インターネットを介して)送信(ストリーミング)され得るように、ビデオ画像データ(たとえば、RGBまたはYUV値)が、エンコードされたビットストリームのフォーマットでの送信のために、一般に、VP9のような所定のビデオエンコードフォーマットに従ってエンコードされる。ビデオ画像が視られる場合、画像品質の著しい視覚的な損失なしで、VP9のようなビデオエンコードフォーマットが、ビデオ画像データのファイルサイズの著しい低減化を可能にし得る(したがって、これは、ビデオ画像データの効率的なストリーミングを支援する)。
【０００３】
ビデオ画像データは、典型的には、フレームのシーケンスとして生成される。VP9のような「差分」ビデオコーディング規格では、エンコードされるべきフレームのシーケンスにおけるフレーム(これは、エンコードされるべき「ソース」フレームとして考えられ得る)は、通常、たとえば、直前のような別のエンコードされるべきフレームのシーケンスのうちの1つまたは複数のフレームを参照してエンコードされる(したがって、他のフレームは、エンコードされている(ソース)フレームのための「基準」フレームとして考えられ得る)。(VP9では、これは通常、各ソースフレームを複数のピクセルのブロックへ分割し、たとえば、基準フレームからの基準ブロックのような、エンコードされた他のデータに関して各ブロックをエンコード(および、その後、デコード)することによって行われる。)
【０００４】
したがって、ソースフレームのためのエンコードされた各データブロックは、通常、対応する基準フレームにおける対応するデータブロックを示すベクトル値(いわゆる「動きベクトル」)と、ソース(すなわち、現在の)フレームデータブロックと、基準フレームデータブロックとにおけるデータ間の差分を記述するデータ(「残差」)とによって定義されるであろう。(これによって、これは、ソース(現在の)フレームのブロックのためのビデオデータが、動きベクトルによって示されたビデオデータから、および、基準フレームのブロックと、ソースフレームのブロックとの間の差分を記述する差分データから、構築されることを可能とする。)
【０００５】
たとえば、(ストリーミングされ、たとえば、その後、視られるフレームの連続的な表示を維持するために、)連続するフレーム間の任意の割込(たとえば、タイムラグ)を最小化しながら、送信されているビデオフレームの解像度(および、視聴品質)を最大化することを試みるために、エンコードされているビデオ画像データのデータストリーミングレートを、エンコードされたビデオ画像データの送信のために利用可能な帯域幅へ最も良く一致させるために、利用可能な帯域幅が変化した場合、エンコードおよび送信されているビデオフレームの解像度を変更することが所望され得る。ビデオフレームの解像度は、ストリーミングされるべきデータの量を決定する際における重要な要因であるので、解像度を定期的に変更することは、ビデオ画像データのデータストリーミングレートを、その送信のために利用可能な帯域幅へ一致させることを支援する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、ビデオ画像データをエンコードおよびデコードするための、改善された方法およびシステムを提供することを目指している。
【課題を解決するための手段】
【０００７】
第1の態様から見た場合、本発明は、基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームのシーケンスのうちの少なくともいくつかのフレームをエンコードするビデオエンコード処理を使用する場合、ビデオデータのフレームのシーケンスのフレームをエンコードおよびデコードする方法を提供し、
この方法は、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームの解像度とは異なる解像度を有し、エンコードされているソースフレームのシーケンスにおける新たなソースフレームをエンコードすることが所望される場合、
新たなソースフレームのための基準フレームとなるように新たなソースフレームの解像度へスケールされる、新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームのスケールされたコピーを生成するステップと、
別のフレームの生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、別のフレームの生成されたスケールされたコピーをエンコードするステップと、
新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして別のフレームのスケールされたコピーを使用して新たなソースフレームをエンコードするステップと、
別のフレームのスケールされたコピーを表すエンコードされたビデオ画像データと、新たなソースフレームを表すエンコードされたビデオ画像データとをビデオデコーダへ送信するステップと、
ビデオデコーダにおいて、
別のフレームのスケールされたコピーのためのエンコードされたビデオ画像データをデコードするステップと、
新たなソースフレームのための出力ビデオ画像データを提供するために、基準フレームとして、別のフレームのデコードされたスケールされたコピーを使用して、新たなソースフレームのためのエンコードされたビデオ画像データをデコードするステップとを含む。
【０００８】
第2の態様から見た場合、本発明は、ビデオデータのフレームのシーケンスのフレームをエンコードおよびデコードするためのシステムを提供し、このシステムは、
基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームのシーケンスのうちの少なくともいくつかのフレームをエンコードするように構成されたエンコード処理回路を備え、
エンコード処理回路はさらに、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームの解像度とは異なる解像度を有する、エンコードされているソースフレームのシーケンスにおける新たなソースフレームをエンコードすることが所望される場合、
新たなソースフレームのための基準フレームとなるように新たなソースフレームの解像度へスケールされる新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームのスケールされたコピーを生成し、
別のフレームの生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、別のフレームの生成されたスケールされたコピーをエンコードし、
新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして別のフレームのスケールされたコピーを使用して新たなソースフレームをエンコードするように構成され、
システムはさらに、
別のフレームのスケールされたコピーを表すエンコードされたビデオ画像データと、新たなソースフレームを表すエンコードされたビデオ画像データとをビデオデコーダへ送信するように構成された処理回路と、
デコード処理回路を備えるビデオデコーダとを備え、デコード処理回路は、
デコード処理回路が、別のソースフレームのスケールされたコピーを基準フレームとして使用してエンコードされたソースフレームのための、エンコードされたビデオ画像データを受信した場合、
別のソースフレームのスケールされたコピーのための受信したエンコードされたビデオ画像データをデコードし、別のソースフレームのスケールされたコピーを基準フレームとして使用してエンコードされたソースフレームのための出力ビデオ画像データを提供するために、別のフレームのデコードされたスケールされたコピーを基準フレームとして使用して、別のソースフレームのスケールされたコピーを基準フレームとして使用してエンコードされたソースフレームのためのエンコードされたビデオ画像データをデコードするように構成される。
【０００９】
本発明では、基準フレームとしてシーケンス内のフレームを使用して、シーケンス内のソースフレームをエンコードすることによって、(たとえば、デコード処理回路を備える)ビデオデコーダへの送信(ストリーミング)のために、フレームのシーケンスが(たとえば、エンコード処理回路を使用して)エンコードされる。基準フレームは、ソースフレームのシーケンスにおける1つまたは複数の他のソースフレーム(すなわち、エンコードされているソースフレームではないシーケンスにおけるソースフレーム)から導出される。エンコードされたフレームの送信されたシーケンスはその後、たとえば、表示のために、フレームのシーケンスのための出力ビデオ画像データを提供するために(たとえば、デコード処理回路を使用して)デコードされる。
【００１０】
たとえば、エンコードされたビデオ画像データ(のビットストリーム)を送信するために利用可能な帯域幅における変化によって、エンコードのためにエンコーダによって受信されるフレームの解像度は変化し得る。エンコードされるべきものに対して別の(たとえば、直前の)フレームの解像度に対する異なる「新たな」解像度におけるソースフレームをエンコードするために、基準フレームとなる別のフレームのスケールされたコピーが生成される。次いで、スケールされたコピーは、(新たな)ソースフレームの解像度に等しい解像度を有する。異なる解像度において、オリジナルの別のフレームに対してソースフレームをエンコードする代わりに、たとえば、従来方式では、新たな異なる解像度のソースフレームは、基準フレームとして、スケールされたコピーを使用してエンコードされる。
【００１１】
エンコードされたソースフレームおよびエンコードされたスケールされたコピー基準フレームは、後続するデコードのために(デコード処理回路を備える)ビデオデコーダへ送信(たとえば、ストリーミング)される。すなわち、スケールされたコピー基準フレームが、ビデオデコーダへ送信されるエンコードされたビットストリームにおけるフレームとして提供される。デコード処理回路は、たとえば、(エンコードされたソースフレームおよびスケールされたコピー基準フレームを含む)送信されたエンコードされたビデオデータを受信すると、デコード処理のための基準フレームとして、スケールされたコピー基準フレームを使用して、エンコードされたソースフレームを(新たな解像度で)デコードする。
【００１２】
以下にさらに議論されるように、スケールされたコピー基準フレーム(直前のフレームのスケールされたコピー)は、好適には表示されないが、新たな解像度でソースフレームをエンコードおよびデコードする目的のために単に使用される「隠蔽」フレームとして設定される。
【００１３】
新たな解像度においてソースフレームがエンコードされるものに対して、新たなソースフレームと同じ解像度において、スケールされたコピー基準フレームを生成することによって、基準フレームとなる別のフレーム(のコピー)が、新たなソースフレームをエンコードするために提供される前に(新たなソースフレームの解像度へ)スケールされることが可能となる。これは、新たな解像度におけるソースフレームが、その後、異なる解像度におけるオリジナルの別のフレームを使用してエンコードされる必要なく、同じ解像度を有するフレーム(つまり、スケールされたコピー基準フレーム)に対してエンコードされ得ることを意味する。
【００１４】
したがって、これは、たとえば、フィルタリング動作(たとえば、現在スケーリングと動き補償との両方を共に実行しているVP9における)を、基準フレームとして使用するため、スケールされたコピーを生成する初期スケーリング動作と、ソースフレームをエンコードするために、スケールされたコピー基準フレームを使用する場合、後続する動き補償動作とへ分離する。これは、スケールされるべき別のフレームが、最初に(スケーリングおよび動き補償が単一のフィルタリング動作において共に実行される場合に必要である)何れかの動きベクトルを計算する必要もなくスケールされ得ることを意味する。
【００１５】
エンコード処理回路は既に、スケーリングおよび差分エンコードを実行するように構成され得るので、(たとえば、エンコードパイプラインに既に存在するスケーリングと動き補償とが組み合わされた任意のハードウェアの前に)基準フレームとして使用するためにスケールされたコピーを生成するために、任意の追加の、たとえば、専用のハードウェアを提供することが必要ではない場合があり得る。
【００１６】
スケールされたコピー基準フレームに対するソースフレームをエンコードすることはまた、たとえあるにしても、デコーダに対する極めてわずかな変更しか必要としない。これは、デコード処理回路は単に、エンコードされたソースフレームを、オリジナルの別のフレームとは異なるスケールされたコピー基準フレームを使用してデコードでき得るからである。
【００１７】
本発明においてエンコードおよびデコードされるビデオデータのソースフレームのシーケンスは、ビデオフレームの任意の適切な、所望されるシーケンスであり得る。ビデオフレームのシーケンスには、少なくとも2つのフレームが存在するであろうが、好適には、ビデオフレームのシーケンスには、2つよりも多くのフレームが存在する。
【００１８】
エンコードされるべきフレームのシーケンスは、好適には、ビデオデータのフレームのシーケンスを表すビデオ画像データのビットストリームの形式で提供され、その後、出力ビデオフレームのシーケンスを提供するため、たとえば、好適には、表示の目的のために、本発明の方式でエンコードされ、送信され、デコードされる。
【００１９】
したがって、好適には、この方法は、エンコードされるべきビデオデータのソースフレームのシーケンスを受信するステップと、ソースフレームのシーケンスにおけるフレームの解像度における変化に応じて、本発明の方式で1つまたは複数のソースフレームをエンコードするステップとを含む(また、エンコード処理回路は、これらステップを実行するように構成される)。
【００２０】
エンコードされるべきソースフレームのシーケンスにおけるソースフレームの解像度における変化は、任意の適切な、所望される方式で、判定、たとえば、検出され得る。たとえば、エンコード処理回路は、(たとえば、エンコードのためにエンコード処理回路が受信する)新たなソースフレームの解像度が、(たとえば、エンコードされるべきソースフレームの解像度が、エンコードされた直前のソースフレームから変化したことを検出するために、)以前のソースフレームまたは直前のソースフレームとは異なることを検出するように構成され得る。
【００２１】
しかしながら、好適な実施形態では、システムは、ソースフレームのシーケンスにおけるソースフレームの解像度(および、それにより、エンコード処理回路がビデオ画像データのフレームをエンコードする必要がある解像度)が、たとえば、エンコードされたビデオデータをストリーミングするために利用可能である帯域幅における変化によって、別のソースフレームの解像度とは異なることを示すために、たとえば、エンコード処理回路へシグナリングするホストプロセッサ(たとえば、エンコードされるべきソースフレームのシーケンスを生成および/または提供するCPUまたはGPU)を含む。
【００２２】
したがって、好適には、システムは、エンコードされるべきフレームのシーケンスにおけるソースフレームの解像度が、エンコードされるべきソースフレームのシーケンスにおける別のフレームの解像度とは異なる場合をエンコード処理回路へ示すように構成されたホスト処理回路を備える。
【００２３】
相応して、好適には、この方法は、エンコードされるべきフレームのシーケンスにおける(次の)ソースフレームの解像度が、上記別のソースフレームまたはさらに別のソースフレームの解像度とは異なる場合、エンコードされるべきソースフレームが、上記別のソースフレームまたはさらに別のソースフレームの解像度とは異なる解像度を有していることを示すステップを含む。
【００２４】
たとえば、ホスト処理回路からエンコード処理回路へのこのインジケーションは、任意の適切な、所望される方式で提供され得る。たとえば、このインジケーションは、(ソースフレームの解像度が、別のソースフレームとは異なる場合、)エンコードされるべきソースフレームを、たとえば、フラグの形式で同伴し得る。あるいは、または、それに加えて、このインジケーションは、たとえば、ホストからエンコード処理回路へダイレクトにシグナリングされた、ソースフレームから分離された信号を備え得る。
【００２５】
ホストは、エンコードされるべきソースフレームの解像度が、任意の適切な、所望される方式で、別のソースフレームの解像度と異なっているか、異なっていなければならないことを判定し得る。好適には、たとえば、ホストが、その後、ソースフレームのシーケンスにおけるソースフレームが生成または提供される解像度を変化させることができるように、ホストは、利用可能な帯域幅における変化(増加または減少)を検出するために、エンコードされたビデオ画像データをストリーミングする(送信する)ために利用可能な帯域幅をモニタし、その後、エンコードされるべき(次の)ソースフレームの解像度が別のソースフレームとは異なることをエンコード処理回路へ示す。
【００２６】
ソースフレームの解像度における変化は、たとえば、利用可能な帯域幅における減少による低下であり得るか、または、たとえば、利用可能な帯域幅における(その後の)改善による増加であり得ることが理解されるであろう。
【００２７】
基準フレームは、任意の適切な、所望される方式で、ソースビデオフレームのシーケンスにおける別のフレーム(すなわち、エンコードされているソースフレーム以外のソースフレーム)から生成(たとえば、導出)され得る。好適には、基準フレームは、直前にエンコードされた(そして、たとえば、デコードされた)ソースフレームから導出される。したがって、好適には、基準フレームは、(別のソースフレームから導出されているが、基準フレームが、オリジナルのソースフレームのスケールされたコピーではないことがあり得るように、)たとえば、エンコードされデコードされた再構築されたソースフレームのスケールされたコピーを備える。
【００２８】
新たな「変更された解像度」のソースフレームをエンコードおよびデコードするためのスケールされた基準フレーム(すなわち、基準フレームが導出された別のフレーム)を提供するためにスケールされたビデオデータの別のフレームは、ソースフレームのシーケンスにおける他の任意のフレームであり得る。それは、直前にエンコードされたソースフレームのシーケンスにおけるフレーム(直前にエンコードされたフレーム)であるべきであり、好適にはそうであるが、それは必ずしもソースフレームのシーケンスにおける直前のフレームである必要はない(なぜなら、エンコーダは、所望されるのであれば、エンコードされているソースフレームのシーケンスにおいて、将来のフレームから、および/または、直前と将来との両方のフレーム等から、基準を取得するために、順不同でフレームをエンコードし得るからである)。
【００２９】
したがって、スケールされた基準フレーム(すなわち、基準フレームが導出される別のフレーム)を提供するためにスケールされたビデオデータの別のフレームは、ソースフレームのシーケンスにおける将来のフレーム(すなわち、ソースフレームのシーケンスにおいて、変更された解像度のソースフレームに続くフレーム)であるのみならず、ソースフレームのシーケンスにおける直前のフレームでもあり得る。
【００３０】
好適な実施形態では、新たな「変更された解像度」のソースフレームをエンコードおよびデコードするためのスケールされた基準フレームを提供するためにスケールされたビデオデータの別のフレームは、ソースフレームのシーケンスにおける直前のフレームである(しかし、前述したように、それは不可欠ではない)。
【００３１】
このケースでは、新たな「変更された解像度」のソースフレームをエンコードおよびデコードするための、スケールされた基準フレームを提供するためにスケールされたビデオデータの直前のフレームは、ソースフレームのシーケンスにおける任意の直前のフレームであり得る。
【００３２】
1つの好適な実施形態では、スケールされた基準フレームのために使用されるフレームは、エンコードされるべき新たな変更された解像度のソースフレームに対するソースフレームのシーケンスにおける直前のソースフレームである。
【００３３】
しかしながら、これは不可欠ではなく、スケールされた基準フレームを提供するためにスケールされた直前のフレームは、エンコードされるべきソースフレームのシーケンスにおけるより早期のフレーム(すなわち、エンコードされるべき新たな変更された解像度のソースフレームからの他のソースフレームによって間隔を置かれたフレーム)であり得る。
【００３４】
所望されるのであれば、ソースフレームのシーケンスにおける複数の他のフレーム(たとえば、ソースフレームのシーケンスにおける直前および将来のフレーム)を参照して、新たな「変更された解像度」のソースフレームをエンコード(および、相応してデコード)することもまた可能になるであろう。たとえば、VP9ビデオエンコードでは、最大3つの基準フレームが、フレームをエンコードするために使用され得る。他のビデオコーディング規格は、最大16の基準フレームを使用し得る。
【００３５】
したがって、好適な実施形態では、新たな「変更された解像度」のソースフレームが、ソースフレームのシーケンスにおける複数の他のフレームを参照して(たとえば、ソースフレームのシーケンスにおける直前のフレームおよび将来のフレームを参照して)エンコードされる。
【００３６】
エンコードされている変更された解像度のソースフレームが、ソースフレームのシーケンスにおける複数の他のフレームを参照してエンコードされるべきであるケースでは、その後、ソースフレームのシーケンスにおけるそのような各基準フレームは、相応して、新たな、変更された解像度のソースフレームの解像度に一致するように最初にスケールされるべきであり、好適には、そのようにスケールされ、その後、新たな、変更された解像度のソースフレームは、他の基準フレームの各々のスケールされたコピーに関してエンコードされる。
【００３７】
新たな、変更された解像度のソースフレームをエンコードするための、スケールされた基準フレームを提供するためにスケールされた別のフレーム(または複数のフレーム)は、スケールされたコピー基準フレームを提供するためにスケールされる目的のために、適切に記憶される(たとえば、バッファされる)べきである。これは、任意の適切な、所望される方式で達成され得る。
【００３８】
エンコード処理(エンコード処理回路)が、エンコードされるべきソースフレームのシーケンスにおけるソースフレームのための基準フレームとなるソースフレームを(自動的に)記憶するように構成されている場合、解像度変化がなかったのであれば、エンコードされているソースフレームのための基準フレームとしてサービス提供したであろう別のフレームの(そのオリジナルの解像度において)既に記憶されたコピーが、それをスケールする目的のために記憶された場所から検索され得、好適には、検索される。
【００３９】
したがって、好適な実施形態では、エンコード処理およびエンコード処理回路は、後続してエンコードされるべきソースフレームのための基準フレームとなるようにエンコードされているソースフレームのシーケンスにおけるソースフレームを記憶するように動作し、別のフレーム(または複数のフレーム)の記憶されたコピーがその後、スケールされたコピー基準フレーム(または複数のコピー基準フレーム)を提供するためにスケールされ、そのスケールされたコピー基準フレーム(または複数のコピー基準フレーム)は、その後、ソースフレーム解像度変更がある場合に、1つまたは複数のソースフレームを後続してエンコードするために使用する基準フレーム(または複数の基準フレーム)として記憶される。
【００４０】
別のフレームのスケールされたコピー、すなわち、エンコードされるべき新たな解像度におけるソースフレームの解像度へスケールされたコピーが、任意の適切な、所望される方式で(エンコード処理回路によって)生成され得る。スケール機能は既に、たとえばVP9のような、使用されているエンコードフォーマット内で提供され得、これによって、(たとえば、ビデオエンコードフォーマット(たとえば、VP9)に従ってビデオ画像データをエンコードするように構成された)エンコード処理回路は、既に、スケーリングを実行するように構成され得る(そして、好適には、構成されている)。好適には、(既に他のスケーリング動作のために提供されている)そのようなスケール機能は、別のフレームのスケールされたコピーを生成するために使用され、これによって、このスケーリングのための(専用の)追加ハードウェアを提供する必要がないようにされ得る。
【００４１】
好適な実施形態では、エンコード処理回路は、エンコードされるべき新たなソースフレームの解像度へスケールされる別のフレームのコピーを生成するように(たとえば、ビデオエンコードフォーマットの既存のスケール機能を使用して)構成されたスケール処理回路(たとえば、スケーリングステージ)を備える。
【００４２】
好適には、エンコード処理回路はまた、新たな、異なる解像度のソースフレームのためのエンコードされた出力ビデオ画像データを提供するために、スケールされたコピー基準フレームを使用して(スケールされたコピー基準フレームに対する)新たな解像度において新たなソースフレームをエンコードするように構成されたエンコードステージを備える。
【００４３】
したがって、好適には、エンコード処理回路は、スケーリングステージおよびエンコードステージ(これらは、スケールとエンコードとが組み合わされたステージであり得る)を備える。好適には、スケーリングステージからの結果、すなわち、別のフレームのスケールされたコピーが、(たとえば、動き補償を使用して)直前のフレームのスケールされたコピーに対するソースフレームをエンコードするためのエンコードステージへ渡される。
【００４４】
異なる解像度のソースフレームは、任意の適切な、所望される方式で、スケールされたコピー基準フレームを使用して(スケールされたコピー基準フレームに対して)エンコードされ得る。好適には、ソースフレームは、使用されている、たとえばVP9のようなビデオエンコードフォーマットのために、通常の方式でスケールされたコピー基準フレームを使用してエンコードされる。
【００４５】
したがって、好適には、ソースフレーム内のピクセルの各ブロックは、スケールされたコピー基準フレーム内のピクセルの対応するブロックに関してエンコードされる。好適には、(ソースフレームのための)エンコードされたデータブロックは、スケールされたコピー基準フレームのためのデータを示す動きベクトルと、(ソースフレームの)現在のデータブロックにおいてエンコードされたデータと、(スケールされたコピー基準フレームの)エンコードされた基準データとの間の差分を記述する残差とを備える。
【００４６】
ソースフレームおよびスケールされたコピー基準フレームは、同じ解像度を有するので、スケールされた基準フレームのピクセルの、ソースフレームのピクセルに対するマッチングは、比較的簡単であることが理解されるであろう。
【００４７】
スケールされたコピー基準フレームは、任意の適切な、所望される方式で、ビットストリームでデコーダへ送信するために、新たなソースフレームのためにエンコードされたビデオ画像データとともにエンコードされ得る。
【００４８】
好適には、スケールされたコピー基準フレームまたはそれぞれのスケールされたコピー基準フレームは、ベースとする別のフレーム(のオリジナルのバージョン)を使用して(に対して)エンコードされる。したがって、好適には、スケールされたコピー基準フレームは、好適には、ソースフレームのシーケンスにおける他の任意のソースフレームが、基準フレームに対してエンコードされるのと同じ方式で、そのスケールされたコピーである別のフレームに対してエンコードされる。
【００４９】
そのスケールされたコピー基準フレームおよびそれぞれのスケールされたコピー基準フレームは単に、(たとえば、解像度以外、オリジナルの基準フレームとの違いがない)対象とする別のフレームのスケールされたコピーであるので、出願人は、スケールされたコピー基準フレームが(0,0)動きベクトルを使用してエンコードされ、エンコードされ得ると仮定され得ることを認識している。たとえば、(0,0)動きベクトルを使用して、スケールされたコピー基準フレームをこのようにエンコードすることは、(使用されるビットに関して)非常に安価である。なぜなら、スケールされたコピー基準フレームのためのエンコードされたビデオデータは、単に、フレームにおけるブロックの表現と、(0,0)動きベクトルとを備え得るからである。したがって、好適には、スケールされたコピー基準フレームのエンコードは、何れの残差も必要としない。
【００５０】
さらに、たとえば、エンコード処理回路の動き補償フィルタリングは、スケーリングのみを含み相対的な動きを含まない別のフレームのスケールされたコピーとオリジナルとの間の差分により、別のフレームのスケールされたコピーのエンコードのためにアクティブになる必要がない場合がある。したがって、スケールされたコピー基準フレームをエンコードする場合、動き補償判定(動作)は、(そうすることが可能である場合)好適には無効化される。
【００５１】
これは、その後、すべて、エンコードされたビデオフレームのシーケンスにおけるスケールされたコピー基準フレームの追加の生成および包含は、実際には、ソースフレームのシーケンスのために送信されているエンコードされたビデオデータに、ほとんど追加の負担を加えることはなく、したがって、たとえば、処理のレイテンシに悪影響を与える可能性を少なくすることを意味する。
【００５２】
スケールされたコピー基準フレームが、スケールされたコピー基準フレームがそのスケールされたコピーであるオリジナルの(スケールされていない)別のフレームを使用して(に対して)エンコードされる場合、デコーダは、スケールされたコピー基準フレームをデコードし再生成することを可能にするために、スケールされていない別のフレームを必要とするであろう。
【００５３】
相応して、スケールされたコピー基準フレームが、(そのオリジナルの解像度において)表示されるべき別のソースフレームから生成される場合、デコーダは、それを表示できるようにするために、スケールされていない別のソースフレームを必要とするであろう。
【００５４】
したがって、特定の好適な実施形態では、スケールされたコピー基準フレームがそのスケールされたコピーである別のフレーム(たとえば、別のソースフレーム)が、(そのオリジナルの解像度において)その別のフレームを表すエンコードされた出力ビデオ画像データを提供するために(そのオリジナルの解像度において)エンコードされ、(そのオリジナルの解像度において)その別のフレームのためにエンコードされたビデオ画像データもまた、ビデオデコーダへ送信される。
【００５５】
したがって、特定の好適な実施形態では、スケールされたコピー基準フレームがそのオリジナルの解像度におけるもののスケールされたコピーである別のフレームと、そのフレームのスケールされたコピーとの両方が、デコーダへ送信されるエンコードされたビデオフレームのシーケンスに含まれる。言い換えれば、スケールされたコピー基準フレーム(変更された解像度のソースフレームをデコードする場合に基準フレームとして使用されるべき別のフレームのスケールされたコピー)は、(デコーダへ送信されるエンコードされたソースフレームのシーケンスに追加されたフレームとして)デコーダへ送信されるエンコードされたビデオフレームのシーケンスにおける更なる(追加の)フレームとして含まれる。
【００５６】
したがって、好適な実施形態では、デコーダへ送信されるエンコードされたビデオフレームのシーケンスは、エンコードされているソースフレームの解像度に変更がある場合、第1の解像度におけるソースフレームのスケールされたコピーである第2の異なる解像度においてエンコードされたフレームが(好適には直後に)後続し、その後、別の第2の解像度においてエンコードされたソースフレームが(好適には直後に)後続する、第1の解像度においてエンコードされたソースフレームを備える。
【００５７】
別のフレームは、任意の適切な、所望される方式で、たとえば、好適には、使用されているビデオエンコードフォーマットのための通常の方式で、そのオリジナルの解像度においてエンコードされ得る。
【００５８】
ビデオデコーダは、相応して、好適には、そのオリジナルの解像度において、別のフレームのためのエンコードされたビデオ画像データをデコードし、好適には、その後、スケールされた基準フレームのための出力ビデオ画像データを提供するために、スケールされた基準フレームのためのエンコードされたビデオ画像データをデコードする場合に、そのオリジナルの解像度において、デコードされた別のフレームを使用する。
【００５９】
最も好適には、別のフレームのオリジナルの解像度のバージョンもまた、たとえば、好適には、表示のために出力される(そして、好適には、新たな異なる解像度におけるソースフレームによって表示されたフレームのシーケンスが後続するであろう)。
【００６０】
スケールされたコピー基準フレームは好適には、(ビデオデコーダへ)送信されたエンコードされたビデオデータのフレームのシーケンスにおけるようなものとして識別される。好適には、送信されたエンコードされたビデオデータは、スケールされたコピー基準フレームに関連付けられた、たとえばヘッダデータにおける、たとえばフラグのようなインジケータを備える。これは、任意の適切な、所望される方式でなされ得る。これは、スケールされたコピー基準フレームが、(たとえば、デコード処理回路によって)識別されることを可能にする。
【００６１】
デコーダへ送信されるエンコードされたビデオフレームのシーケンスはまた、好適には、ソースフレームのシーケンスにおける「変更された解像度」のエンコードされたソースフレームをデコードする場合に、スケールされたコピー基準フレームが基準フレームとして使用されるべきであるという適切なインジケーションを含む。
【００６２】
これは、たとえば、好適には、使用されているビデオエンコードフォーマットに依存して、任意の適切な、所望される方式で示され得る。これは、好適には、使用されているビデオエンコードフォーマットのためにデコードされるべきビデオフレームのシーケンスにおけるエンコードされたフレームをデコードするために、どの基準フレームが使用されるべきであるかを示すための通常の方式でなされる。
【００６３】
たとえば、スケールされたコピー基準フレームが、エンコードされた新たな解像度のソースフレームをデコードするために使用されるべきであることを(たとえば、デコード処理回路へ)示す、たとえばフラグのようなインジケータが、エンコードされたスケールされたコピー基準フレームとともに(たとえば、関連付けられたヘッダデータにおいて)提供され(関連付けられ)得る。
【００６４】
それに加えて、または、その代わりに、エンコードされた新たな解像度のソースフレーム自体は、使用しているデコードされるべき基準フレームが、エンコードされたフレームのシーケンスに含まれるスケールされたコピー基準フレームであるというインジケーションを(そのエンコードされたフレームに関連付けられたメタデータまたは他のデータに)含み得るか、または、関連付けている。これは、エンコードされた各フレームが、フレームがエンコードされているものに対する1つまたは複数の基準フレームの識別情報であるというインジケーションを関連付けた場合、ビデオエンコードシステムにおいて適切であり得る。
【００６５】
それに加えて、または、その代わりに、デコーダは、実際、エンコードされた新たな解像度のソースフレームをデコードする場合、スケールされたコピー基準フレームを基準フレームとして自動的に使用するように構成され得る。これは、たとえば、基準フレームのためにどれを使用するのかを決定するために使用されるべき特定の、好適には所定のパターンが設定される場合、たとえば、好適には、ホストプロセッサによって、(ソースフレームの全シーケンスについて)ソースフレームのシーケンスのエンコードおよびデコードの開始時において行われ得る。
【００６６】
したがって、好適な実施形態では、エンコードされているソースフレームのシーケンスのためにシステムのホストプロセッサによって設定されたソースフレームをエンコード(および、したがってデコード)する場合に、基準フレームのために何を使用するのかを決定するために使用される固定されたパターンが存在する。この例は、たとえば、デコーダは単に、シーケンスにおいて次にエンコードされたフレームをデコードするための基準フレームとして、シーケンス内の直前のエンコードされたフレームを使用するように構成されている場合である。そのようなケースでは、エンコードされたスケールされたコピー基準フレームに後続するエンコードされたフレームは、その後、スケールされたコピー基準フレームを使用して自動的にデコードされるであろう。
【００６７】
特に好適な実施形態では、スケールされたコピー基準フレームは表示されない(ビデオデコーダによって表示のために出力されない)が、エンコードされた変更された解像度の1つまたは複数のソースフレームをデコードするための基準フレームとしてのみ使用される。したがって、このケースでは、スケールされたコピー基準フレームがそのスケールされたコピーである別のフレームは、たとえば、好適には、そのオリジナルの解像度で表示され得、新たな変更された解像度のソースフレームが、その解像度において表示されるが、スケールされたコピー基準フレームは表示されない。
【００６８】
このスケールされたコピー基準フレームの非表示または出力は、任意の適切な、所望される方式で引き起こされ得る。好適には、これは、デコーダへ送信されるエンコードされたビデオデータ内に、デコーダに対して、スケールされたコピー基準フレームが表示されないように指示するための(デコーダに対して、表示のために、スケールされたコピー基準フレームを出力させない)ある形態のインジケーションを含めることによってなされる。
【００６９】
したがって、好適には、方法は、スケールされたコピー基準フレームを、表示されるべきではないフレームであるとして(「隠蔽」フレームであるとして)、(たとえば、好適には、ビデオデコーダへ送信されるスケールされたコピー基準フレームを表すエンコードされたビデオ画像データにおいて)設定する(明示する)ステップを含む(また、エンコード処理回路は、上記ステップを行うように構成される)。
【００７０】
スケールされたコピー基準フレームは、任意の適切な、所望される方式で、(ビデオデコーダへ)送信されたエンコードされたビデオデータのフレームのシーケンスにおける「隠蔽」フレームとして(として設定されているものとして)識別され得る。好適には、送信されたエンコードされたビデオデータは、基準フレームのスケールされたコピーが表示されるべきではない(隠蔽フレームである)ことを示すために、スケールされたコピー基準フレームに関連付けられた、たとえばヘッダデータにおける、たとえばフラグのようなインジケータを備える。
【００７１】
出願人は、この点に関し、ビットストリームにおいて、余分な、たとえば「隠蔽」フレームをエンコードする可能性は、既に、使用されているビデオエンコードフォーマットのために提供され得ることを認識している(たとえば、VP9ビデオエンコードフォーマットでは、たとえば、フレームがシーケンスを外れてエンコードされ、将来のフレームから予測するために使用される場合に、異なる目的のためとはいえ「隠蔽」フレームが提供される)。これは、エンコードされたビットストリームにおけるスケールされたコピー基準フレームに適応するために、ビデオエンコードフォーマットに対する変更が必要とされないことと、さらに(エンコードおよび/またはデコードのために)さらなるハードウェアがおそらくは必要とされないこととを意味し得る。
【００７２】
したがって、出願人は、たとえばVP9における「隠蔽」フレームのこのプロビジョンが、異なる使用のために、つまり、フレームのシーケンスにおけるフレーム間の解像度における変更が、より効率的に、たとえば、低減された処理および電力で取り扱われるためにエンコードされることを可能にするために使用され得ることを認識している。
【００７３】
エンコードされるべきソースフレームは、ソースフレームのシーケンスの一部であることが理解されるであろう。したがって、たとえば、シーケンス内の直前のフレームに対する異なる解像度においてソースフレームがエンコードされ(そして、たとえば、その後送信およびデコードされ)ると、ソースフレームのシーケンスにおけるその後の後続するソースフレームは、(フレームのシーケンスにおけるその後の後続するフレームが、同じ新たな解像度において提供されると推定して、)たとえば、異なる解像度におけるフレームが、エンコードのために提供され(この時、新たな解像度におけるフレームが、本発明に従ってエンコードされ(そして、たとえば、送信およびデコードされ))るまで、ビデオエンコードフォーマットによって通常指定されるような方式でエンコードされ続け得る。
【００７４】
したがって、好適には、エンコード処理回路は、(たとえば、使用されているビデオコーディングフォーマットに従い)基準(たとえば、直前のソース)フレームのシーケンスに対するソースフレームのシーケンスをエンコードするように構成され、ソースフレームがエンコードされることを所望される直前の基準フレームの解像度とは異なる解像度を有するソースフレームのシーケンスにおけるソースフレームが受信された場合、本発明の方法が実行され、すなわち、スケールされたコピー基準フレームが生成され、ソースフレームをエンコードするために使用される。
【００７５】
上記は、主に、エンコード処理を議論している。
【００７６】
デコード処理(およびデコード処理回路)は、任意の適切な、所望される方式で、たとえば、好適には、使用されているビデオエンコード(およびデコード)フォーマットに従って、エンコードされたソースフレームのシーケンスをデコードし得る。したがって、好適には、方法は、ビデオデータのエンコードされたフレームのシーケンス(を表すビットストリーム)を受信し、表示のための出力ビデオ画像フレームのシーケンスを提供するために、ビデオデータのエンコードされたフレームをデコードするステップを含む(また、デコード処理回路は上記ステップを行うように構成される)。
【００７７】
デコード処理(デコード処理回路)は好適には、(たとえば、ソースフレームが、「キー」フレームであることとは反対に、差分的にエンコードされた場合、)基準フレームに対する各エンコードされたソースフレームを適切なようにデコードする。
【００７８】
スケールされたコピー基準フレームを使用してエンコードされたソースフレームのケースでは、デコード処理回路は、エンコードされたソースフレームをデコードするために、(すなわち、オリジナル「サイズ」の直前のフレームの代わりに)スケールされたコピー基準フレームを使用するであろう(しかし、そうではない場合には、好適には、スケールされたコピー基準フレームを、エンコードされたソースフレームのシーケンスにおける他の任意の(差分的に)エンコードされたソースフレームが、たとえばVP9のように、使用されているビデオエンコードフォーマットにおけるそれぞれの基準(たとえば、直前のソース)フレームを使用してデコードされるであろうことと同じ方式で、基準フレームとしてスケールされたコピー基準フレームを使用して、ソースフレームをデコードするであろう)。
【００７９】
相応して、スケールされたコピー基準フレームが、そのスケールされたコピーである(オリジナルの)フレームに対してエンコードされた場合、好適には、この方法は、エンコードされたスケールされたコピー基準フレームを、たとえば、好適には、そのスケールされたコピーである(オリジナルの)フレームを使用してデコードするステップを含む(また、デコード処理回路は、上記ステップを行うように構成される)。
【００８０】
一実施形態では、デコード処理およびデコード処理回路は、エンコードされたフレームのシーケンスにおける直前にエンコードされたフレームを基準フレームとして使用して、エンコードされたソースフレームのシーケンスにおける各エンコードされたソースフレームをデコードするように構成される。したがって、デコード処理回路は、エンコードされたソースフレームを、エンコードされたビットストリームにおいて受信した順序でデコードし得、それらの各々を、ビットストリームにおける直前のエンコードされたフレームを(基準フレームとして)使用してデコードする。
【００８１】
スケールされたコピー基準フレームを使用して、エンコードされたソースフレームをデコードする(したがって、スケールされたコピー基準フレームが、エンコードされたビットストリームにおける余分なフレームとして提供される)ために、好適には、デコード処理は、そのようにエンコードされたフレームが、(スケールされたコピーが生成されたオリジナルの解像度のソースフレームの代わりに)スケールされたコピー基準フレームを使用してデコードされるべきであることを判定するように構成される。これは、たとえば、デコードするために使用されるべき基準フレームを識別する、エンコードされたソースフレームに関連付けられたインジケーションと、および/または、それをそのようなものとして識別する、および/または、エンコードされたフレームのシーケンスにおける後続のエンコードされたフレームまたは直後のエンコードされたフレームをデコードするための基準フレームとして使用されるべきであるエンコードされたスケールされたコピー基準フレームに関連付けられたインジケーション、を使用して、および/または、所与のフレームをデコードする場合に、どのフレームを基準フレームとして使用するのかを決定するための示されたおよび/またはあらかじめ定義されたパターンにしたがって、任意の適切な、所望される方式で決定され得る。
【００８２】
一実施形態では、方法は、たとえば、スケールされたコピー基準フレームに関連付けられたインジケーションを使用して、(デコード処理回路によって受信された)エンコードされたフレームのシーケンスが、(たとえば、そのオリジナルの解像度において、そのフレームについてエンコードされたビデオ画像を備えるビットストリームに加えて、)スケールされたコピー基準フレームの表現を備えている場合を判定するステップを含む(また、デコード処理回路は、上記ステップを行うように構成される)。好適には、スケールされたコピー基準フレームは、それが将来、基準フレームとして使用されるべきであることをデコーダへ示す、フラグのようなインジケータを含み、これによって、デコーダは、将来の使用のためにそれが記憶されるべきであることを認識できるようになる。
【００８３】
デコード処理回路が、エンコードされたフレームを、スケールされたコピー基準フレームであるとして識別すると、好適には、スケールされたコピー基準フレームは、たとえば、フレームのシーケンスにおける適切な、たとえば、次の、エンコードされたソースフレームをデコードするために使用される。したがって、好適には、方法は、デコードされるべきフレームのシーケンスにおける、次の、エンコードされたソースフレームをデコードするための基準フレームとして、スケールされたコピー基準フレームを設定するステップを含む(また、デコード処理回路は、上記ステップを行うように構成される)。
【００８４】
スケールされたコピー基準フレームがそのように識別され、そして、たとえば、使用するための基準フレームとして設定されると、デコードされるべきエンコードされたソースフレームのシーケンスにおける、たとえば、次の、エンコードされたソースフレームが、その後、フレームのための出力ビデオ画像データを提供するために、スケールされたコピー基準フレームを、たとえば、ビデオコーディングフォーマットのために必要に応じて使用して、デコード処理回路によってデコードされ得る。
【００８５】
好適には、スケールされたコピー基準フレームが、デコード処理回路によって識別されると、スケールされたコピー基準フレームが、(新たな解像度において)エンコードされたソースフレームをデコードする場合における使用のために、たとえばバッファに記憶される。
【００８６】
デコードされるべきフレームは、エンコードされたフレームのシーケンス(の一部)となるであろうことが理解されるであろう。したがって、たとえば、新たな解像度においてソースフレームがデコードされると、エンコードされたソースフレームのシーケンスにおけるその後の後続するエンコードされたソースフレームは、(エンコードされたソースフレームのシーケンスにおけるその後の後続するフレームが、同じ新たな解像度において提供されると推定して、)たとえば、異なる解像度におけるエンコードされたソースフレームが、デコードのために提供される(この時、新たな解像度におけるフレームが、本発明に従ってデコードされる)まで、ビデオエンコードフォーマットによって通常指定されるような方式でデコードされ続け得る。
【００８７】
したがって、好適には、デコード処理回路は、(たとえば、対象とするビデオコーディングフォーマットに従い)エンコードされた基準(たとえば、直前のエンコードされたソース)フレームのシーケンスを使用して、エンコードされたソースフレームのシーケンスをデコードするように構成され、エンコードされたフレームのシーケンスにおける直前のエンコードされたソースフレームの解像度とは異なる解像度を有する、エンコードされたソースフレームのシーケンスにおけるエンコードされたソースフレームが受信された(たとえば、受信されているスケールされたコピー基準フレームによって示される)場合、本発明の方法が実行され、すなわち、スケールされたコピー基準フレームが、エンコードされたソースフレームをデコードするために使用される。
【００８８】
(好適には、デコードされたスケールされたコピー基準フレームを除く)デコードされたエンコードされたソースフレームは、好適には、たとえば、好適には表示のために、ビデオデコーダによって出力される。したがって、好適な実施形態では、(好適には、デコードされたスケールされたコピー基準フレームを除く)デコードされたエンコードされたソースフレームのシーケンスが表示される。
【００８９】
デコードされたエンコードされたソースフレームは、表示のために、たとえば、好適にはディスプレイコントローラによって、たとえば、ディスプレイデバイスへダイレクトにストリーミングすることによって、および/または、それらが読み取られ得る場所からメモリへ(たとえば、メモリ内のフレームバッファへ)記憶することによって、任意の適切な、所望される方式における表示のために提供され得る。
【００９０】
上記で議論されたように、特に好適な実施形態では、デコーダへ送信されるエンコードされた基準フレームのシーケンスに含まれるスケールされたコピー基準フレーム自体は表示されない。上記で議論されたように、これは、好適には、スケールされたコピー基準フレームのエンコードされたバージョンとともに適切なインジケーションを含めることによって達成され、これによって、デコーダは、表示のためにそれを出力しないようになる。
【００９１】
したがって、特に好適な実施形態では、デコード処理(デコード処理回路)は、エンコードされたスケールされたコピー基準フレームが表示されるべきではないことを識別し、そのような識別に応じて、スケールされたコピー基準フレームを、表示させないようにするように動作可能である。
【００９２】
したがって、特定の好適な実施形態では、ビデオデコーダは、とりわけ、第1の解像度においてエンコードされたソースフレームを備え、第1の解像度におけるソースフレームのスケールされたコピーである第2の異なる解像度においてエンコードされたソースフレームによって(好適には直後に)後続され、異なる第2の解像度においてエンコードされたソースフレームによって(好適には直後に)後続されるエンコードされたビデオフレームのシーケンスを受信し、第1の解像度においてエンコードされたソースフレームと、第2の異なる解像度においてエンコードされたフレームと、異なる第2の解像度においてエンコードされたソースフレームとをデコードし、第1の解像度においてデコードされたエンコードされたソースフレームと、異なる第2の解像度においてデコードされたエンコードされたソースフレームとを、たとえば、好適には、表示のために出力するが、第1の解像度においてソースフレームのスケールされたコピーであった第2の異なる解像度においてデコードされたエンコードされたフレームを表示するために出力しないであろう。
【００９３】
フレームのシーケンスのエンコードおよびデコードは、たとえば別々の時間、および、たとえば分離した場所において、分離した装置(たとえばデバイス)において実行され得る(実行されることが好ましい)ことが理解されるであろう。したがって、本発明は、ビデオデータのエンコードおよびデコードを参照して上述されたが、本発明はまた、ビデオ画像データのみのエンコードへも及ぶ。
【００９４】
第3の態様から見た場合、本発明は、基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームのシーケンスのうちの少なくともいくつかのフレームをエンコードするビデオエンコード処理を使用する場合に、ビデオデータのフレームのシーケンスのフレームをエンコードする方法を提供し、この方法は、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームの解像度とは異なる解像度を有する、エンコードされているソースフレームのシーケンスにおける新たなソースフレームをエンコードすることが所望されている場合、
新たなソースフレームのための基準フレームとなるように新たなソースフレームの解像度へスケールされた新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームのスケールされたコピーを生成するステップと、
別のフレームの生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、別のフレームの生成されたスケールされたコピーをエンコードするステップと、
新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして別のフレームのスケールされたコピーを使用して新たなソースフレームをエンコードするステップと、
別のフレームのスケールされたコピーを表すエンコードされたビデオ画像データと、新たなソースフレームを表すエンコードされたビデオ画像データとを出力するステップとを含む。
【００９５】
第4の態様から見た場合、本発明は、ビデオデータのフレームのシーケンスのフレームをエンコードするための装置を提供し、この装置は、
基準フレームとしてエンコードされるべきソースビデオフレームのシーケンスにおける1つまたは複数のソースフレームを使用してエンコードされるべきソースビデオフレームのシーケンスのうちの少なくともいくつかのフレームをエンコードするように構成されたエンコード処理回路を備え、
このエンコード処理回路はさらに、
新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームの解像度とは異なる解像度を有する、エンコードされているソースフレームのシーケンスにおける新たなソースフレームをエンコードすることが所望されている場合、
新たなソースフレームのための基準フレームとなるように新たなソースフレームの解像度へスケールされる新たなソースフレームのための基準フレームとなる、エンコードされているソースフレームのシーケンスにおける別のフレームのスケールされたコピーを生成し、
別のフレームの生成されたスケールされたコピーを表すエンコードされた出力ビデオ画像データを提供するために、別のフレームの生成されたスケールされたコピーをエンコードし、
新たなソースフレームを表すエンコードされた出力ビデオ画像データを提供するために、基準フレームとして、別のフレームのスケールされたコピーを使用して新たなソースフレームをエンコードし、
別のフレームのスケールされたコピーを表すエンコードされたビデオ画像データと、新たなソースフレームを表すエンコードされたビデオ画像データとを出力するように構成される。
【００９６】
相応して、本発明は、ビデオ画像データのみのデコードへ及ぶ。
【００９７】
したがって、第5の態様から見た場合、本発明は、エンコードされたビデオフレームのシーケンスにおける1つまたは複数のフレームを基準フレームとして使用して、エンコードされたビデオフレームのシーケンスのうちの少なくともいくつかのフレームをデコードするビデオデコード処理を使用する場合、エンコードされたビデオデータのフレームのシーケンスのフレームをデコードする方法を提供し、この方法は、
デコードするためのビデオフレームのシーケンスを表すエンコードされたビデオ画像データを受信するステップであって、ビデオフレームのシーケンスを表すエンコードされたビデオ画像データは、エンコードされたフレームのシーケンスにおける別のフレームのスケールされたコピーを表す少なくともエンコードされたビデオ画像データと、別のフレームのスケールされたコピーを基準フレームとして使用してエンコードされたビデオフレームを表すエンコードされたビデオ画像データとを含む、受信するステップと、
別のフレームのスケールされたコピーのためのエンコードされたビデオ画像データをデコードするステップと、
ビデオフレームのための出力ビデオ画像データを提供するために、別のフレームのデコードされたスケールされたコピーを基準フレームとして使用して、別のフレームのスケールされたコピーを基準フレームとして使用してエンコードされたビデオフレームのためのエンコードされたビデオ画像データをデコードするステップとを含む方法を提供する。
【００９８】
第6の態様から見た場合、本発明は、エンコードされたビデオフレームのシーケンスにおける1つまたは複数のフレームを基準フレームとして使用して、エンコードされたビデオフレームのシーケンスのうちの少なくともいくつかのフレームをデコードするビデオデコード処理を使用する場合、エンコードされたビデオデータのフレームのシーケンスのフレームをデコードするための装置を提供し、この装置は、
デコードするためのビデオフレームのシーケンスを表すエンコードされたビデオ画像データを受信し、ここで、ビデオフレームのシーケンスを表すエンコードされたビデオ画像データは、エンコードされたフレームのシーケンスにおける別のフレームのスケールされたコピーを表す少なくともエンコードされたビデオ画像データと、別のフレームのスケールされたコピーを基準フレームとして使用してエンコードされたビデオフレームを表すエンコードされたビデオ画像データとを含み、
別のフレームのスケールされたコピーのためのエンコードされたビデオ画像データをデコードし、
ビデオフレームのための出力ビデオ画像データを提供するために、別のフレームのデコードされたスケールされたコピーを基準フレームとして使用して、別のフレームのスケールされたコピーを基準フレームとして使用してエンコードされたビデオフレームのためのエンコードされたビデオ画像データをデコードするように構成されたデコード処理回路を備える。
【００９９】
当業者によって認識されるように、本発明のこれら態様は、必要に応じて、本明細書で議論される本発明の好適なオプションの特徴のうちの任意の1つまたは複数またはすべてを含み得、好適には含む。特に、エンコード処理は、好適には、相応して、エンコード処理に関して上記で議論された好適かつオプションの特徴を含み、デコード処理は、好適には、相応して、デコード処理に関して上記で議論された好適かつオプションの特徴を含む。
【０１００】
したがって、例えば、エンコード処理は、好適には、スケールされたコピー基準フレームを、表示されるべきではないフレームであるとして指定する。
【０１０１】
相応して、デコード処理は、好適には、別のフレームのスケールされたコピーを基準フレームとして使用して、エンコードされたビデオデータのフレームのシーケンスにおけるフレームが、デコードされるべきである場合を判定するステップと、および/または、エンコードされたビデオデータのフレームのシーケンスにおけるフレームが、別のフレームのスケールされたコピーを備えている場合を判定するステップとを含む。同様に、デコード動作は好適にはさらに、表示のために、基準フレームとして、別のフレームのスケールされたコピーを使用してエンコードされたデコードされたフレームを出力するが、表示のために、別のフレームのデコードされたスケールされたコピーを出力しないステップを含む(そして、相応して、好適には、別のフレームのエンコードされたスケールされたコピーが、表示のために出力されるべきではないことを識別するステップを含む)。
【０１０２】
本発明は、適切に構成されたマイクロプロセッサベースのシステムのような任意の適切なビデオ処理システムにおいて実施され得る。一実施形態では、本発明は、コンピュータおよび/またはマイクロプロセッサベースのシステムにおいて実施される。好適には、本発明は、ビデオデコーダ、エンコーダ、および/または、プロセッサにおいて(またはそれらとして)実施される。
【０１０３】
このシステムは、たとえば、レンダリングするための(たとえば、デコード処理回路から、出力された(デコードされた)ビデオ画像データが提供される)レンダリングユニット、レンダリングユニットから、レンダリングされたビデオのフレームが提供されるたとえばディスプレイのような出力、および、(エンコードされていないビデオデータ、結果として得られるエンコードされたデータブロック、および結果として得られる出力(デコード)されたビデオデータのような)必要とされるデータを記憶するためのメモリ、のような本発明の方式における動作を可能にするための任意の適切な、所望されるコンポーネントまたは要素を含み得る。
【０１０４】
エンコードされたビデオ画像データが(たとえば、エンコードされたデータのビットストリームとして)生成された場合、その後、エンコードされたビデオ画像データは、たとえば、適切に記憶されることによって、および/または、デコードのためにデコーダ(これは好適には、本発明のエンコードされたビデオ画像データをデコードするための装置である)へ送信されることによって、将来の使用のために所望されるように取り扱われ得る。そして、デコーダは、その後、たとえば、本発明のデコード方法にしたがって、エンコードされたビデオデータをデコードし得る。デコードされたビデオデータ(フレーム)は、好適には、その後、出力され、たとえば、好適には、記憶および/または表示される。
【０１０５】
本発明の様々な機能は、任意の所望される適切な方式で実行され得る。たとえば、所望されるように、本発明の機能は、ハードウェアまたはソフトウェアにおいて実施され得る。したがって、たとえば、別の方式で示されないのであれば、本発明の様々な機能要素、ステージ、および、「手段」は、所望される方式で動作するようにプログラムされ得る、適切に特化されたハードウェア要素(処理回路)および/またはプログラマブルハードウェア要素(処理回路)のように、様々な機能等を実行するように動作可能な適切な1つまたは複数のプロセッサ、1つまたは複数のコントローラ、機能ユニット、回路、処理ロジック、マイクロプロセッサ構成等を備え得る。
【０１０６】
当業者によって認識されるように、本発明の様々な機能等は、複製され得るか、および/または、所与のプロセッサにおいて並列して実行され得ることもまたここで留意されたい。所望されるのであれば、様々な処理ステージが、処理回路等を等しく共有し得る。
【０１０７】
上記で議論された特定の機能を実行するために必要な任意のハードウェアに従って、ビデオプロセッサは、そうではない場合には、ビデオエンコーダ、デコーダ、およびプロセッサが含む通常の機能ユニット等のうちの任意の1つまたは複数またはすべてを含み得る。
【０１０８】
また、本発明の記載された実施形態のすべてが、本明細書に記載された特徴のうちの任意の1つまたは複数またはすべてを必要に応じて含み得、一実施形態においても同様であることも当業者によって理解されるであろう。
【０１０９】
本発明に従う方法は、たとえばコンピュータプログラムのようなソフトウェアを使用して少なくとも部分的に実施され得る。したがって、さらなる実施形態から見た場合、本発明は、データプロセッサにインストールされた場合、本明細書に記載された方法を実行するために具体的に適合されたコンピュータソフトウェアと、プログラム要素がデータプロセッサにおいて実行されている場合、本明細書に記載された方法を実行するためのコンピュータソフトウェアコード部分を備えるコンピュータプログラム要素と、プログラムがデータ処理システムにおいて実行されている場合、本明細書に記載された1つまたは複数の方法のすべてのステップを実行するように適合されたコードを備えるコンピュータプログラムを提供することが理解されるであろう。データプロセッサは、マイクロプロセッサシステム、プログラマブルFPGA(フィールドプログラマブルゲートアレイ)等であり得る。
【０１１０】
本発明はまた、グラフィックプロセッサ、レンダラ、または、データプロセッサを備えるマイクロプロセッサシステムを動作させるために使用される場合、データプロセッサ、プロセッサ、レンダラ、またはシステムと連携して、本発明の方法のステップを実行させるそのようなソフトウェアを備えるコンピュータソフトウェアキャリアへ及ぶ。そのようなコンピュータソフトウェアキャリアは、ROMチップ、CD ROM、RAM、フラッシュメモリ、またはディスクのような物理的な記憶媒体であり得るか、または、ワイヤを介した電気信号、光信号、または、衛星等へのような無線信号であり得る。
【０１１１】
本発明の方法の必ずしもすべてのステップが、コンピュータソフトウェアによって実行される必要はないので、さらに広い実施形態から、本発明は、本明細書に記述された方法のステップのうちの少なくとも1つを実行するために、コンピュータソフトウェア、および、コンピュータソフトウェアキャリアにインストールされたそのようなソフトウェアを提供することがさらに理解されるであろう。
【０１１２】
したがって、本発明は、コンピュータシステムとともに使用するためのコンピュータプログラム製品として具体化され得る。そのような実施は、たとえばディスケット、CD ROM、ROM、RAM、フラッシュメモリ、またはハードディスクのようなコンピュータ可読媒体のような実体的な非一時的な媒体に固定された一連のコンピュータ可読命令を備え得る。それはさらに、モデムまたは他のインターフェースデバイスを経由して、限定されないが、光またはアナログ通信線を含む実体的な媒体を介して、または、限定されないが、マイクロ波、赤外線、または他の送信技術を含むワイヤレス技術を非実体的に使用して、コンピュータシステムへ送信可能な一連のコンピュータ可読命令をも備え得る。一連のコンピュータ可読命令は、本明細書に直前に記載された機能のすべてまたは一部を具体化する。
【０１１３】
当業者であれば、そのようなコンピュータ可読命令は、多くのコンピュータアーキテクチャまたはオペレーティングシステムとともに使用するために、複数のプログラミング言語で記述され得ることを認識するであろう。さらに、そのような命令は、限定されないが、半導体、磁気、または光を含む現在または将来の任意のメモリ技術を使用して記憶され得るか、または、限定されないが、光、赤外線、またはマイクロ波を含む現在または将来の任意の通信技術を使用して送信され得る。そのようなコンピュータプログラム製品は、たとえばシュリンクラップソフトウェアのような同伴する印刷されたまたは電子文書を伴うリムーバブル媒体として配信され得、たとえばシステムROMまたは固定ディスク上のコンピュータシステムを用いて予めロードされ得、または、たとえばインターネットまたはワールドワイドウェブのようなネットワークを介してサーバまたは電子掲示板から配信され得ることが考慮される。
【０１１４】
以下、本発明の複数の好適な実施形態が、例としてのみ添付図面を参照して記載される。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施形態に従ってビデオ画像データをエンコードおよびデコードするためのシステムを概略的に示す図である。
【図２】本発明の実施形態に従ってビデオ画像データをエンコードおよびデコードするためのシステムを概略的に示す図である。
【図３】本発明の実施形態に従ってビデオ画像データをエンコードするためのエンコーダを概略的に示す図である。
【図４】本発明の実施形態に従ってビデオ画像データをエンコードするためのエンコーダを概略的に示す図である。
【図５】本発明の実施形態に従ってビデオ画像データをエンコードするための動作のフローチャートである。
【図６】本発明の実施形態に従って基準フレームのスケールされたコピーがどのようにして使用されるのかを概略的に示す図である。
【図７】本発明の実施形態に従ってビデオ画像データをデコードするための動作のフローチャートを示す図である。
【発明を実施するための形態】
【０１１６】
以下、本発明の好適な実施形態を、VP9エンコードフォーマットに従ってビデオ画像データをエンコードおよびデコードする場合において説明する。
【０１１７】
図1は、本発明の実施形態に従ってビデオ画像データをエンコードおよびデコードする、すなわち、典型的には、たとえばVP9エンコードフォーマットを使用してビデオ画像データをエンコードおよびデコードするために使用されるであろうシステム21を図示する。
【０１１８】
図1に図示されるビデオエンコードおよびデコードシステム21は、ビデオ画像データを生成し、その後エンコードするデバイス1(たとえば、ビデオカメラ)を含む。その後、エンコードされたビデオ画像データは、たとえばワイヤレスなリンク3(たとえば、インターネット)を介して、たとえば、エンコードされたビデオ画像データをデコードし、デコードされたビデオ画像データを表示する遠隔のデバイス2(たとえば、モバイル電話)へ送信(ストリーミング)される。
【０１１９】
VP9のようなビデオエンコードフォーマットは、ビデオ画像が見られる場合、画像品質の著しい視覚的な損失なしで、送信のためのビデオ画像データのファイルサイズにおける著しい低減を可能にし得る(したがって、これは、ビデオ画像データの効率的なストリーミングを助ける)。
【０１２０】
ビデオ画像データは、典型的には、フレームのシーケンスとしてビデオ生成デバイス1によって生成される。VP9のような「差分」ビデオコーディング規格では、エンコードされるべきフレームのシーケンスにおける「ソース」フレームのほとんどは、「基準」フレーム(または複数の「基準」フレーム)(典型的には、フレームのシーケンスにおける直前のソースフレーム)に関して(参照して)エンコードされる。
【０１２１】
VP9エンコードスキームでは、この差分エンコードは、ビデオ画像データの各フレームを、フレームのピクセルの複数の長方形のブロックへ分割することによって行われる。各ブロックは、個々にエンコードおよびデコードされる。データの所与のブロックは、基準データにおける対応するデータのブロックを示す、関連付けられた動きベクトルと、現在のデータブロックにおけるデータと、基準フレームにおけるデータとの間の差分を記述する残差とを有し得る。(これによって、(現在の)フレームのブロックのためのビデオデータが、動きベクトルによって示されたエンコードされたビデオデータ、および、そのブロックと現在のビデオフレームのブロックとの差分を記述する差分データから構築されることが可能となる。)
【０１２２】
図2は、本発明の実施形態に従って、ビデオ画像データをエンコードおよびデコードするためのシステム21をより詳細に図示する。これは、図1に図示されるビデオ生成およびエンコードデバイス1と、デコードおよびディスプレイデバイス2とのより詳細な視点を図示する。
【０１２３】
ビデオ生成およびエンコードデバイス1は、エンコードのためのフレームビデオ画像データのシーケンスを生成および/または提供するビデオフレーム生成器29(たとえば、ビデオカメラ、画像信号プロセッサ、またはGPU)と、ホストCPU22とを含む。ビデオ生成およびエンコードデバイス1はまた、ビデオ画像データのフレームのシーケンスをエンコードするためのエンコーダ23を含む。(図3および図4を参照してより詳細に記載される)エンコーダ23は、動き補償ステージ26が後続するスケーリングステージ24を含む。
【０１２４】
送信リンク3の反対側では、デコードおよびディスプレイデバイス2は、ビデオ生成およびエンコードデバイス1からリンク3を介して送信されたエンコードされたビデオ画像データをデコードするためのデコーダ28と、デコードされたビデオ画像データを表示するためのディスプレイ10(たとえば、モバイル電話におけるディスプレイスクリーン)とを含む。
【０１２５】
当業者によって認識されるように、ビデオ生成エンコードデバイス1と、デコードおよびディスプレイデバイス2は、図2に図示されていない他の要素および構成要素を含み得る。図2は単に、本発明の方式における本実施形態の動作に関連するビデオ生成およびエンコードデバイス1と、デコードおよびディスプレイデバイス2との要素および構成要素を図示する。
【０１２６】
各々がエンコーダ23の異なるレベルの詳細を図示する図3および図4は、図2に図示されるエンコーダ23をより詳細に図示する。
【０１２７】
図3は、エンコーダ23が、互いに対してエンコードされるべきフレームのシーケンスをエンコード処理ステージ16へ提供する「ソース」および「基準」フレームローダ12,14を含んでいることを図示する。ソースフレームローダ12は、図2に図示されるビデオ生成器29から、「ソース」フレーム(エンコードされるべきフレームのシーケンスにおける新たなフレーム)のための入力ビデオ画像データを受信するように構成される。エンコードされ、「基準」フレームとして使用されるべきであるソースフレームのためのビデオ画像データ(ピクセルデータ)が、後続する新たな「ソース」フレームをエンコードするための基準フレームとして使用するために、エンコード処理ステージ16へ提供され、エンコード処理ステージ16によって使用され得るように、基準フレームローダ14は、これらビデオ画像データをエンコード処理ステージ16から受信するように構成される。
【０１２８】
エンコーダ23はまた、ソースおよび基準フレームローダ12,14各々から、ソースおよび基準フレームのためのビデオ画像データ(または、このデータに関連する情報)のうちの少なくともいくつかを受信するように構成されたエンコード決定ステージ18を含む。エンコード決定ステージ18はまた、エンコード処理ステージ16に対して、ソースフレームのシーケンスをどのようにしてエンコードするかに関して指示でき得るように、エンコード処理ステージ16と通信している。
【０１２９】
エンコード処理ステージ16からのエンコードされた出力(ソース)フレームは、エンコードされたビデオ画像データのビットストリームとしてリンク3を介して送信される。エンコード処理ステージ16はまた、エンコードしているソースフレームのための(フル)ピクセルデータを、基準フレームローダ14によってアクセスされ得る場所から基準フレームバッファ20へ送信する。
【０１３０】
図4は、エンコード決定ステージ18、基準フレームローダ14、および基準フレームバッファ20に加えて、エンコード処理ステージ16のさらなる詳細を図示する。各々の基準フレームに対するソースフレームのシーケンスをエンコードするエンコード処理ステージ16は、(図2にも図示されているように)スケーリングステージ24および動き補償ステージ26を含む。スケーリングステージ24は、基準フレームローダ14およびエンコード決定ステージ18からの入力を受信する(エンコード決定ステージ18自体は、図3に図示されるように、基準フレームローダ14のみならず、ソースフレームローダからも入力を受信する)。動き補償ステージ26は、スケーリングステージ24または基準フレームローダ14から入力を受信する。
【０１３１】
スケーリングステージ24および動き補償ステージ26は、図面において「別々の」ステージとして図示されているが、所望されるのであれば、1つの動作(スケーリングと動き補償とが組み合わされたステージ)へ組み合わされ得る動作についても等しく可能となるであろう。
【０１３２】
本発明の実施形態に従って、ビデオ画像データをエンコードするためのビデオ生成およびエンコードデバイス1の動作は、図5に図示されるフローチャート、図6における「隠蔽」フレームがどのようにして使用されるかの概要、および図1〜図4に図示されるシステムを参照して記載される。
【０１３３】
図5は、本発明の実施形態に従ってビデオ画像データをエンコードするための動作のフローチャートを図示する。図6は、本発明の実施形態に従って、(「隠蔽」フレームとして印されている)スケールされたコピー基準フレームがどのように使用されるのかを図示する。
【０１３４】
動作では、ビデオ生成器29は、(たとえば、図6に図示されるように)フレームのシーケンスを表すビデオ画像データを生成し、エンコーダ23へ提供し(ステップ101、図5)、エンコーダ23では、ビデオ画像データは、ソースフレームローダ12によって受信される。各フレームがどのようにしてエンコードされるべきであるかを決定するために、(たとえば、ヘッダデータを含む)フレームのシーケンスにおける各フレームに関連付けられた情報が、エンコード決定ステージ18へ渡される。
【０１３５】
フレームのシーケンスにおける第1の(「キー」)フレーム(たとえば、図6に図示された第1のソースフレーム5)について、関連するソースフレーム5をエンコードするための直前の(基準)フレームは存在しない。エンコード決定ステージ18は、この第1のソースフレーム5が、キーフレームとして(すなわち、他の何れのフレームも参照することなく)エンコードされるべきであると決定し、この決定が、エンコード処理ステージ16へ送信される。また、エンコード処理ステージ16は、第1のソースフレーム5を表すビデオ画像データをソースフレームローダ12から受信し(ステップ103、図5)、このフレームをキーフレームとしてエンコードする(ステップ106、図5)。
【０１３６】
第1のソースフレーム5のためのエンコードされたビデオ画像データは、その後、リンク3を介してデコーダ28へ送信される(ステップ107、図5)。第1のソースフレーム5のためのピクセルデータはまた、フレームのシーケンスにおける後続するフレームの差分エンコードにおいて使用され得るように、すなわち、図6に図示されるように、第1のソースフレーム5が、第2のソースフレーム6のための第1の基準フレーム5となるように、基準フレームバッファ20へ書き込まれる。
【０１３７】
フレームのシーケンスにおける第2のソースフレーム6について、ソースフレームローダ12がこのフレーム6を受信し(ステップ101、図5)、(そして、基準フレームローダ14が、直前の基準フレーム5を基準フレームバッファ20から読み取り、)エンコード決定ステージ18が、これらフレーム5,6から、新たなソースフレーム6が「インター」フレームとして(すなわち、直前の基準フレーム5に対して)エンコードされるべきであると決定する。新たなソースフレーム6の解像度が、直前の基準フレーム5の解像度とは異なることを示すための信号を、ホストCPU22から受信しないエンコード決定ステージ18は、その後、直前の基準フレーム5に対する新たなソースフレーム6をエンコードする際に(すなわち、新たなソースフレーム6が、直前の基準フレーム5と同じ解像度を有していることによって(ステップ102、図5))、単に通常通り(すなわち、VP9ビデオコーディングフォーマットに従って)進み得る。
【０１３８】
エンコード決定ステージ18は、これら決定を、エンコード処理ステージ16へ送信し、エンコード処理ステージ16は、第2のソースフレーム6を表すビデオ画像データをソースフレームローダ12からロードする(ステップ103、図5)。エンコード処理ステージ16はその後、たとえば、動き補償ステージ26を使用して、直前の基準フレーム5に対する第2のソースフレーム6をエンコードするために、(基準フレームローダ14によってロードされる)基準フレームバッファ20からの直前の基準フレーム5を表すエンコードされたビデオ画像データとともに、第2のソースフレーム6を表すビデオ画像データを使用する(ステップ106、図5)。
【０１３９】
第2のソースフレーム6のためのエンコードされたビデオ画像データは、その後、リンク3を介してデコーダ28へ送信される(ステップ107、図5)。第2のソースフレーム6のためのピクセルデータはまた、フレームのシーケンスにおける後続するフレームの差分エンコードにおいて使用され得るように、基準フレームバッファ20へ書き込まれる。すなわち、図6に図示されるように、第2のソースフレーム6は、次のソースフレームのために使用されるべき基準フレームとしてここで記憶される。
【０１４０】
この時、エンコードされたビデオ画像データを送信するために利用可能な帯域幅が低減されると仮定される。これは、ホストCPU22へシグナルされ、および/または、ホストCPU22によって検出される。その結果、ホストCPU22は、直前のソースフレーム6よりも低い解像度で第3のソースフレーム7を生成および/または提供するようにビデオ生成器29を制御し、これによって、結果として得られる第3のソースフレーム7のためのエンコードされたビデオ画像データは、低減された帯域幅に良好にマッチすることと比較して低減されるであろう。ホストCPU22はまた、新たなソースフレーム7が異なる(このケースでは、より低い)解像度を有していることをエンコーダ23へ示す。
【０１４１】
フレームのシーケンスにおける第3のソースフレーム7について、ソースフレームローダ12は、このフレーム7を受信し、(ステップ101、図5)(基準フレームローダ14が、基準フレームバッファ20から、記憶された直前の基準フレーム6を読み取り、)エンコード決定ステージ18が、これらフレーム6,7から、新たなソースフレーム7が、「インター」フレームとして(すなわち、直前のフレーム6に対して)エンコードされるべきであることを決定する。
【０１４２】
第3のソースフレーム7が、第2のソースフレーム6とは異なる(すなわち、より低い)解像度を有しているので、エンコード決定ステージ18は、解像度が変化したというインジケーションをホストCPU22から受信し、そのインジケーションに注目する(ステップ102、図5)。
【０１４３】
図4からわかるように、この事例では、エンコード決定ステージ18は、エンコード処理ステージ16のスケーリングステージ4に対して、新たなソースフレーム7が、記憶された直前の基準フレーム6とは異なる解像度を有していることを示す。これは、基準フレームローダ14に対して、直前の基準フレーム6をスケーリングステージ24へロードさせ、スケーリングステージ24は、新たなソースフレーム7と同じ解像度で直前の基準フレーム6のスケールされたコピー6'を生成する(ステップ104、図5)。
【０１４４】
スケーリングステージ24によって生成されたスケールされたコピー6'は、(直前の解像度で)直前の基準フレーム6に対してエンコードされる(ステップ104、図5)。この処理は、動き補償を必要としないので、動き補償ステージ26は、スケールされたコピー基準フレーム6'のエンコード中にアクティブではない(このフレームは、単に(0,0)動きベクトルを使用してエンコードされる)ことが理解されるであろう。
【０１４５】
スケールされたコピー基準フレーム6'はまた、このフレームは表示のためではない(よって、新たなソースフレーム7をデコードするためにのみ使用されるべきである)ことをデコーダへ示すために、スケールされたコピー基準フレーム6'を(たとえば、フレームに関連付けられたヘッダデータにおける)フラグを用いて印すことによって、送信されるべきエンコードされたビデオ画像データにおいて「隠蔽」フレームとして設定される(ステップ105、図5)。
【０１４６】
スケールされたコピー基準フレーム6'のためのピクセルデータはまた、フレームのシーケンスにおける後続するフレームの差分エンコードにおいて使用され得るように、すなわち、図6に図示されるように、スケールされたコピー基準フレーム6'が、次のソースフレームのために使用されるべき基準フレームとしてここで記憶されるように、基準フレームバッファ20へ書き込まれる。
【０１４７】
新たなソースフレーム7のエンコードはその後、新たなソースフレーム7をエンコードするために、(直前の解像度における)直前のフレーム6の代わりに、(新たな解像度において)スケールされたコピー基準フレーム6'が使用されることを除いて、以前のように進む。
【０１４８】
したがって、エンコード処理ステージ16は、新たな解像度において、スケールされたコピー基準フレーム6'に対して第3のソースフレーム7をエンコードするために、第3のソースフレーム7を表すビデオ画像データを、スケールされたコピー基準フレーム6'とともに使用する(ステップ106、図5)。
【０１４９】
第3のソースフレーム7のためのエンコードされたビデオ画像データは、その後、エンコードされたスケールされたコピー基準フレーム6'とともに、リンク3を介してデコーダ28へ送信される(ステップ107、図5)。以前のように、第3のソースフレーム7のためのピクセルデータはまた、フレームのシーケンスにおける後続するフレームの差分エンコードにおいて使用され得るように、すなわち、図6に図示されるように、第3のソースフレーム7が、ここで第4のソースフレーム8のための基準フレームとなるように、基準フレームバッファ20へ書き込まれる。
【０１５０】
後続するフレーム(前方の第4のソースフレーム8)のエンコードは、上述したように継続し、これらフレームのためのエンコードされたビデオ画像データは、デコードのために、エンコーダ23からリンク3を介してデコーダ28へ送信される。図6から見られ得るように、第4のソースフレーム8は、第3のフレーム7と同じ解像度を有するので、第4のソースフレーム8は、第1のフレーム5に対する第2のソースフレーム6について上述したものと同じ方式で、第3のフレーム7に対してエンコードされる。
【０１５１】
しかしながら、直前のフレームとは異なる解像度を有する後続するソースフレームが受信された場合、新たな解像度におけるこの新たなソースフレームは、第3のソースフレーム7について上述したものと同じ方式で、すなわち、直前のフレームのスケールされたコピーを最初に生成し、その後、直前のフレームのスケールされたコピーに対する新たな解像度で新たなソースフレームをエンコードすることによって、エンコードされる。
【０１５２】
次に、本発明の実施形態に従ってビデオ画像データをデコードするためのデコードおよびディスプレイデバイス2の動作が、図7に図示されるフローチャート、図6における「隠蔽」フレームがどのようにして使用されるかの概要、および図1〜図4に図示されるシステムを参照して記載される。
【０１５３】
図7は、本発明の実施形態に従ってビデオ画像データをデコードするための動作のフローチャートを図示する。
【０１５４】
フレームのシーケンスを表すビデオ画像データのエンコードに続いて、エンコードされたビデオ画像データが、上述したように、エンコーダ23から、リンク3を介してデコーダ28へ送信される(ステップ107、図5)。
【０１５５】
デコーダ28は、(たとえば、図6に図示されるように、)フレームのシーケンスを表すエンコードされたビデオ画像データを受信する。デコーダ28は、その後、直前のフレームに対する1つのフレーム(これが、どのように各フレームがエンコードされたのかを示す場合)をデコードすることによって、エンコードされたビデオ画像データを差分的にデコードする。
【０１５６】
(たとえば、図6に図示される第1のフレーム5のような)フレームのシーケンスにおける第1の(「キー」)フレームについて、フレーム5をデコードするために使用するための直前の(基準)フレームは存在しない。したがって、デコーダ28は、この第1のソースフレーム5がキーフレームとして(すなわち、他の何れのフレームをも参照することなく)デコードされるべきであると判定し、そのように第1のフレーム5をデコードする。このフレームのためのデコードされたビデオ画像データはその後、ディスプレイ10へ出力され、ディスプレイ10上に表示される。
【０１５７】
フレームのシーケンスにおける第2の(ソース)フレーム6について、デコーダ28は、このフレームが、第1の(基準)フレーム5に対してエンコードされたこと(したがって、そのようにデコードされるべきであること)を判定する。さらに、「隠蔽」フレームとして印された直前の基準フレーム5が欠如している場合(ステップ108、図7)、(すなわち、新たなソースフレーム6が、直前の基準フレーム5と同じ解像度を有することによって、)デコーダ28は単に、直前の基準フレーム5を使用して新たなソースフレーム6をデコードする際に通常通り進む。デコーダは、その後、第1の基準フレーム5を使用して第2のソースフレーム6をデコードし(ステップ109、図7)、表示するために、ディスプレイ10のためにデコードされたビデオ画像データを出力することができる(ステップ112、図7)。
【０１５８】
次に、デコーダ28は、スケールされたコピー基準フレーム6'を、エンコードされたビデオ画像データのビットストリームで受信する。スケールされたコピー基準フレーム6'は、それが「隠蔽」フレームであることを示すために、(すなわち、スケールされた基準フレーム6'が表示されるべきではないことを示すために、)フラグとともにエンコードされる。これは、デコーダ28によって認識される。したがって、デコーダ28は、スケールされた基準フレーム6'が「隠蔽」されていること(ステップ108、図7)と、表示されるべきではないこと(ステップ110、図7)とを認識する。
【０１５９】
デコーダ28は、その後、エンコードされたスケールされたコピー基準フレーム6'を(直前のフレーム6を、(スケールされたコピー基準フレーム6'が、関連してエンコードされたフレームであるので)基準フレームとして使用して)デコードし、次にエンコードされたソースフレームをデコードするために使用するために、デコードされたスケールされたコピー基準フレーム6'(のためのピクセルデータ)を基準フレームとして記憶する(ステップ111、図7)。
【０１６０】
次に、デコーダ28は、エンコードされたビデオ画像データのビットストリームで第3のソースフレーム7を受信する。このエンコードされた第3のソースフレーム7は、第3のソースフレーム7をデコードするために、スケールされたコピー基準フレーム6'を基準フレームとして使用するようにデコーダに伝えるインジケーション(たとえば、フラグ)をそれに関連付けた。したがって、デコーダ28は、第3のソースフレーム7をデコードするための基準フレームとして、(第3のソースフレーム7からの異なる解像度における)第2のフレーム6の代わりに、(第3のソースフレーム7と同じ解像度において)スケールされたコピー基準フレーム6'を使用すべきであることを認識する。
【０１６１】
デコーダ28は、その後、スケールされたコピー基準フレーム6'を使用して、第3のソースフレーム7のためのエンコードされたビデオ画像データをデコードし(ステップ109、図7)、第3のソースフレーム7のためのデコードされたビデオ画像データを、表示のためにディスプレイ10へ出力する(ステップ112、図7)。
【０１６２】
前述したように、後続するフレーム(前方の第4のフレーム8)のデコードが継続し、これらフレームのためのエンコードされたビデオ画像データは、ディスプレイ10による表示のためにデコーダ28によってデコードされる。図6からわかるように、第4のフレーム8は、第3の基準フレーム7と同じ解像度を有するので、第4のフレーム8は、第1のフレーム5に対する第2のフレーム6について上述されたものと同じ方式で、第3のフレーム7を使用してデコードされる。
【０１６３】
しかしながら、後続する隠蔽フレームが受信された場合、このフレームは、表示されるべきではないが、直前の基準フレームをリプレースし、次のフレームをデコードする場合に使用されるべきであることを示し、新たな解像度における次のフレームが、第3のフレーム7のために上述されたものと同じ方式で、すなわち、直前のフレームのスケールされたコピーを使用してデコードされる。
【０１６４】
上記から、本発明の実施形態の動作において、デコーダは、図6に図示された「基準」フレームのシーケンスに対応するエンコードされたビデオフレームのシーケンスを受信するが、表示のために、図6において「ソース」フレームとしてラベルされたフレームに対応するフレームのシーケンスを出力するであろうことが理解されるであろう。したがって、スケールされたコピー基準フレーム6'は、デコーダへ送信され、デコーダがデコードするフレームのシーケンスに含まれるが、実際には表示されないであろう。
【０１６５】
上記実施形態では、別のソースフレームを参照してエンコードされるべきソースフレームは、エンコードされるべきソースフレームのシーケンスにおける直前のソースフレームを参照してエンコードされる。しかしながら、他の構成も可能であり、一般に、もしも所望されるのであれば、所望されるように、所与のソースフレームは、ソースフレームのシーケンスにおける他の任意のソースフレーム(すなわち、ソースフレームのシーケンスにおける直前のソースフレームまたは将来のソースフレームの両方)を参照してエンコードされ得る。所望されるのであれば、ソースフレームが、ソースフレームのシーケンスにおける複数の他のソースフレーム(たとえば、ソースフレームのシーケンスにおける直前のソースフレームと将来のソースフレームとの両方)を参照してエンコードされることも可能になるであろう。本実施形態は、そのような構成まで及ぶ。
【０１６６】
本発明は、少なくともその好適な実施形態において、VP9のようなビデオエンコードシステムにおいてビデオデータをエンコードする場合、解像度変化を取り扱うための効率的で有効なメカニズムを提供することが上記から理解され得る。
【０１６７】
これは、少なくとも本発明の好適な実施形態において、新たな(変更された)解像度においてソースフレームをエンコードする場合に使用されるべき基準フレームとなるように、別のフレームのスケールされたコピーを生成することによって達成される。これは、新たな解像度を有するソースフレームはその後、異なる解像度の別のフレームを使用する必要なく、同じ解像度を有するフレーム(つまり、別のフレームのスケールされたコピー)に対してエンコードされ得ることを意味する。エンコード処理回路は、既にスケーリングを実行するように構成され得るので、スケールされた基準フレームを生成するために、任意の追加の、たとえば、専用のハードウェアを提供する必要はないことがあり得る。
【０１６８】
特に好適な実施形態では、解像度変更がある場合、基準フレームとして使用されるべき別のフレームのスケールされたコピーは、「隠蔽」フレームであるとして明示され、これによって、それ自体が表示されないようになる。
【符号の説明】
【０１６９】
1  ビデオ生成およびエンコードデバイス
2  デコードおよびディスプレイデバイス
3  リンク
10  ディスプレイ
12  ソースフレームローダ
14  基準フレームローダ
16  エンコード処理
18  エンコード決定
20  基準フレームバッファ
21  システム
22  ホストCPU
23  エンコーダ
24  スケーリング
26  動き補償
28  デコーダ
29  ビデオ生成器
【図１】
0006989299.tif 000002
【図２】
0006989299.tif 000003
【図３】
0006989299.tif 000004
【図４】
0006989299.tif 000005
【図５】
0006989299.tif 000006
【図６】
0006989299.tif 000007
【図７】
0006989299.tif 000008