(57)【要約】【課題】ループフィルタを用いた動画符号化を提供する。【解決手段】圧縮動画情報を復号する方法を開示する。動画情報は、各々複数のブロックを有する複数のフレームを含むことができる。この方法は、フレーム中のブロックを４つのセグメント識別子に関連付けるセグメントマップを動画情報から読み出すことを含む。各セグメント識別子は、量子化パラメータ、ループフィルタ種別、ループフィルタ強度、および部分画素補間フィルタなどの、１つ以上のセグメントパラメータに関連している。関連セグメントパラメータを用いて、各セグメントのブロックが復号される。後続フレームによって上書きされない限り、セグメントパラメータは、以下のフレームに対して存続できる。フレームは、ビット抑制セグメンテーションを含み、この場合、ディフォルトのパラメータは、フレームの全ブロックに対して用いられる。【選択図】図５
2014017868.tif 000002
【特許請求の範囲】
【請求項１】
各々複数のブロックを有する複数のフレームを含む符号化動画情報ストリームを復号する方法であって、
少なくとも第１のフレームに対して、前記第１のフレーム中の少なくとも１つのブロックを少なくとも１つのセグメント識別子に関連付けるセグメントマップを前記動画情報から読み出すことと、ここで、前記セグメント識別子は、バイナリ算術デコーダを用いて復号され、
前記セグメント識別子に関連した少なくとも１つのセグメントパラメータを前記符号化動画情報から読み出すことと、
前記セグメントパラメータを用いて、前記ブロックを復号することと、
少なくとも第２のフレームに対して、前記セグメント識別子を用いて、前記第１のフレーム中の前記ブロックに対応する前記第２のフレーム中のブロックを復号することと
を含むことを特徴とする方法。
【請求項２】
前記第２のフレームのブロックを復号することは、さらに、
前記第２のフレームに関連したレコードを前記符号化動画情報から読み出すこととし、ここで、前記レコードは、前記第２のフレームのセグメンテーション条件を示し、
前記セグメンテーション条件が、前記第２のフレームに対し存在するとき、前記セグメント識別子を用いて、前記第１のフレーム中の前記ブロックに対応する前記第２のフレーム中のブロックを復号することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記セグメントパラメータは、量子化パラメータ、ループフィルタタイプ、ループフィルタ強度値、および部分画素補間フィルタの少なくとも１つを含むことを特徴とする請求項１または２に記載の方法。
【請求項４】
複数のセグメントパラメータは、前記セグメント識別子に関連し、前記複数のセグメントパラメータの第１のパラメータは、代替参照フレームを示す値を含み、
前記方法は、さらに、
前記セグメント識別子に関連する前記複数のセグメントパラメータの少なくとも第２のパラメータを用いて、前記指定した代替参照フレームを更新することを含むことを特徴とする請求項１または２に記載の方法。
【請求項５】
復号されているフレームは、前記セグメントの特定の１つの更新されたセグメントパラメータを指定するか否か判断することと、
前記指定した更新セグメントパラメータを前記セグメントの特定の１つに関連付けることをさらに含むことを特徴とする請求項１または２に記載の方法。
【請求項６】
前記更新セグメントパラメータは、前記セグメントパラメータに加えられる増加値であることを特徴とする請求項５に記載の方法。
【請求項７】
前記セグメントマップを読み出すことは、さらに、
前記ブロックに固有のデータとインタリーブされた前記動画情報部分のセグメント識別子を読み出すことを含むことを特徴とする請求項１または２に記載の方法。
【請求項８】
前記セグメントマップを読み出すことは、さらに、
少なくとも１つのフレームに関連するヘッダファイル中の前記セグメント識別子を読み出すことを含むことを特徴とする請求項１または２に記載の方法。
【請求項９】
前記フレームが、キーフレームであるか否か判断することと、
前記フレームがキーフレームであるとき、前記セグメントパラメータをディフォルト値に設定することとをさらに含むことを特徴とする請求項１または２に記載の方法。
【請求項１０】
各々複数のブロックを有する複数のフレームを含む圧縮動画情報ストリームを復号する方法であって、
少なくとも１つのフレーム中の少なくとも１つのブロックを少なくとも１つのセグメント識別子に関連付けるセグメントマップを前記動画情報から読み出すことと、ここで、前記セグメント識別子は、バイナリ算術デコーダを用いて復号され、
前記セグメント識別子に関連する少なくとも１つのセグメントパラメータを前記動画情報から読み出すことと、
前記セグメントパラメータを用いて、前記ブロックを復号することと
を含むことを特徴とする方法。
【請求項１１】
前記セグメントパラメータは、量子化パラメータ、ループフィルタタイプ、ループフィルタ強度、および部分画素補間フィルタの少なくとも１つを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
複数のセグメントパラメータは、前記セグメント識別子に関連し、前記複数のセグメントパラメータの第１のパラメータは、別の参照フレームを示す値を含み、
前記方法は、さらに、
前記セグメント識別子に関連する前記複数のセグメントパラメータの少なくとも第２のパラメータを用いて、前記指定した代替参照フレームを更新することを含むことを特徴とする請求項１０または１１に記載の方法。
【請求項１３】
復号されているフレームが、前記セグメントの特定の１つの更新されたセグメントパラメータを指定しているか否か判断することと、
前記指定し更新されたセグメントパラメータを前記セグメントの特定の１つに関連付けることをさらに含むことを特徴とする請求項１０または１１に記載の方法。
【請求項１４】
前記更新されたセグメントパラメータは、前記セグメントパラメータに加えられる増加値であることを特徴とする請求項１３に記載の方法。
【請求項１５】
セグメンテーション条件を示すレコードを、特定フレームに関連する前記動画情報から読み出すことと、
前記セグメンテーション条件が偽であるとき、前記セグメントパラメータをディフォルトパラメータに設定し、前記セグメントマップの読み出しと前記セグメントマップの読み出しを抑制することとをさらに含むことを特徴とする請求項１０または１１に記載の方法。
【請求項１６】
前記セグメントマップを読み出すこととは、さらに、
前記ブロックに固有のデータとインタリーブされた前記動画情報部分のセグメント識別子を読み出すことを含むことを特徴とする請求項１０または１１記載の方法。
【請求項１７】
前記セグメントマップを読み出すことは、さらに、
前記フレームに関連するヘッダファイルの前記セグメント識別子を読み出すことを含むことを特徴とする請求項１０または１１記載の方法。
【請求項１８】
前記フレームが、キーフレームであるか否か判断することと、
前記フレームがキーフレームであるとき、前記セグメントパラメータをディフォルト値に設定することとをさらに含むことを特徴とする請求項１０または１１記載の方法。
【請求項１９】
各々複数のブロックを有する複数のフレームを含む符号化動画情報ストリームを生成する方法であって、
少なくとも第１のフレームに対して、前記第１のフレーム中の少なくとも１つのブロックを少なくとも１つのセグメント識別子に関連付けるセグメントマップを作成し、前記少なくとも１つのセグメント識別子を少なくとも１つのセグメントパラメータに関連付けることと、
バイナリ算術エンコーダを用いて、前記セグメント識別子を符号化することと、
前記セグメントパラメータを用いて、前記ブロックを符号化することと
を含むことを特徴とする方法。
【請求項２０】
少なくとも第２のフレームに対して、セグメンテーション変更条件を検出することと、
前記セグメンテーション変更条件が検出されたとき、前記セグメントパラメータを更新し、前記第２のフレームに関連する前記動画情報と共に、前記更新されたセグメントパラメータを格納することとをさらに含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記更新されたセグメントパラメータは、増加値であることを特徴とする請求項２０に記載の方法。
【請求項２２】
少なくとも第２のフレームに対して、セグメンテーション条件を検出することと、
前記セグメンテーション条件が検出されたとき、前記第２のフレームに関連する符号化動画情報と共に、セグメンテーションフラグを格納することとをさらに含むことを特徴とする請求項１９または２０に記載の方法。
【請求項２３】
前記セグメントパラメータは、量子化パラメータ、ループフィルタタイプ、ループフィルタ強度、および部分画素補間フィルタの少なくとも１つを含むことを特徴とする請求項１９または２０に記載の方法。
【請求項２４】
前記セグメントパラメータは、代替参照フレームを示す値を含み、
前記方法は、さらに、
前記セグメントパラメータを用いて、前記特定された代替参照フレームを更新することを含むことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記ブロックに固有のデータとインタリーブされた前記動画情報部分に、前記セグメント識別子を格納することを特徴とする請求項１９または２０に記載の方法。
【請求項２６】
前記セグメント識別子を、前記第１のフレームのヘッダ部分に格納することを特徴とする請求項１９または２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００８年９月１１日に提出された米国仮特許出願第６１／０９６，２４２号の優先権を主張している、２００８年１２月５日に提出された米国特許出願第１２／３２９，７７７号の優先権を主張しており、ここで両出願の内容全体を本明細書に参照として組み入れる。
本発明は、一般に動画符号化に関する。
【背景技術】
【０００２】
今日の増加しつつある多数のアプリケーションでは、例えば、テレビ会議による遠隔ビジネス会議、高精細動画エンターテイメント、動画広告、およびユーザー生成動画の共有を含む様々な目的のためにデジタル動画を利用している。技術の進歩につれて、人々は、高フレームレートでのスムーズな再生と共に、動画品質と高解像度動画により大きな期待を抱いている。
【０００３】
デジタル動画を表示する動画コーダー(coder)を選択するとき、考慮すべき多くの要因があり得る。ある用途では、優れた動画品質が要求され、その他の用途では、例えば、帯域幅または記憶装置要件を含む様々な制約に適合する必要があるかもしれない。帯域幅消費を制限しながら、より高品質の動画送信を可能にするために、現在および将来のバージョンを含む、ＶＰｘ（ニューヨーク市、クリフトンパーク、Ｏｎ２  Ｔｅｃｈｎｏｌｏｇｉｅｓ社により普及された），ＩＴＵ−Ｔ  ＶＣＥＧ（Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ：ＩＴＵ−Ｔ動画符号化専門家グループ）およびＩＳＯ／ＩＥＣ  ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ：ＩＳＯ／ＩＥＣ動画像専門家グループによって普及された）標準であるＨ．２６４などの、独自仕様フォーマットを含む多数の動画圧縮方式が知られている。Ｈ．２６４は、ＭＰＥＧ−４  Ｐａｒｔ１０またはＭＰＥＧ−４  ＡＶＣ（正式には、ＩＳＯ／ＩＥＣ  １４４９６−１０）としても知られている。
【０００４】
最新の動画符号化方式は、全フレームよりも小さい粒度(granularity)のレベルで、ある圧縮パラメータを調節する。例えば、ある圧縮方式では、マクロブロックまたはブロックに適用されるループフィルタのタイプまたは強度を調節する。量子化レベルをフレームの各マクロブロックに適用できる。このようにして、重要な情報を有するマクロブロックは、高いビットレートで送信することができ、一方、それ程重要でない情報を有するマクロブロックは、低いビットレートで送信することができる。
【発明の概要】
【０００５】
動画情報を符号化および復号化する方法の実施形態をここで教示する。一実施形態において、ある方法は、各々複数のブロックを有する複数のフレームを含む圧縮動画情報を復号する。この方法は、少なくとも１つのフレーム中の少なくとも１つのブロックを、少なくとも１つのセグメント識別子に関連付けるセグメントマップを、動画情報から読み取ることを含む。このセグメント識別子は、バイナリ算術デコーダを用いて復号される。また、この方法は、セグメントに関連する少なくとも１つのセグメントパラメータを、動画情報から読み取り、一組のセグメントパラメータを用いてブロックを復号することも含む。ある実施形態において、セグメントパラメータは、以下のパラメータ：量子化パラメータ、ループフィルタタイプ、ループフィルタ強度、および部分画素補間フィルタの少なくとも１つを含む。
【０００６】
別の実施形態において、各々複数のブロックを有する複数のフレームを含む符号化動画情報ストリームを復号する方法を開示している。この方法は、少なくとも第１のフレームに対して、第１のフレーム中の少なくとも１つのブロックを少なくとも１つのセグメント識別子に関連付けるセグメントマップを、動画情報から読み取ることを含む。セグメント識別子は、バイナリ算術デコーダを用いて復号される。少なくとも１つのセグメントパラメータは、セグメント識別子に関連する符号化動画情報から読み取られる。ブロックは、セグメントパラメータを用いて復号される。この方法は、少なくとも１つの第２のフレームに対して、セグメント識別子を用いて、第１のフレーム中のブロックに対応する第２のフレームのブロックを復号することをさらに含む。
【０００７】
別の実施形態において、各々複数のブロックを有する複数のフレームを含む符号化動画情報ストリームを作成する方法を開示している。この方法は、少なくとも第１のフレームに対して、第１のフレーム中の少なくとも１つのブロックを少なくとも１つのセグメント識別子に関連付けるセグメントマップを作成することと、このセグメント識別子を少なくとも１つのセグメントパラメータに関連付けることを含む。セグメント識別子は、バイナリ算術エンコーダを用いて符号化される。また、ブロックは、セグメントパラメータを用いて符号化される。
本発明のこれらと他の実施形態を、以下にさらに詳しく説明する。
【図面の簡単な説明】
【０００８】
ここでは、添付図面を参照して説明を行い、複数の図面にわたり、同一参照符号は同一部位を示す。
【図１】本発明の一実施形態による動画圧縮システムのブロック図である。
【図２】本発明の一実施形態による動画復元システムのブロック図である。
【図３】図１と図２の動画圧縮システムおよび復元システムで用いられるイントラ予測モードとインター予測モードの概略図である。
【図４】Ａは、図１と図２の動画圧縮システムおよび動画復元システムで用いられる例示的セグメンテーションマップである。  Ｂは、図１と図２の動画圧縮システムおよび動画復元システムで用いられる他の例示的セグメンテーションマップである。
【図５】図１の動画圧縮システムで用いられる動画のセグメンテーションを制御する方法のフローチャート図である。
【図６】図１と図２の動画圧縮システムおよび動画復元システムで用いられるセグメント識別子のコード化に用いるバイナリツリーの概略図である。
【図７】図１の動画圧縮システムで用いられるセグメント識別子の符号化方法のフローチャート図である。
【発明を実施するための形態】
【０００９】
動画圧縮とは、通常、動画信号中のある冗長情報を永久に除去することにより、動画信号を表すデータ量を低減させることを指す。圧縮は、例えば、帯域幅や記憶容量要件を含む様々な制約に従う必要があるだろう。このような圧縮標準の例として、ＭＰＥＧ標準とＨ．２６４標準がある。
ブロックベースの動画圧縮は、例えば、しばしばマクロブロックと呼ばれる近傍画素の固定形状群(fixed-shaped groups)に作用する。例えば、Ｈ．２６４標準は、１６×１６画素のマクロブロックを規定する。一般に、動画の各フレームは、マクロブロックに分割することができ、ここで、各マクロブロックは、複数のより小さなサイズのブロックから構成される。マクロブロックとブロック内のこれらの画素群は、予測データとエラー信号を生成するために、現フレームまたは他のフレームのいずれかの中のデータと比較される。
【００１０】
次に、各ブロックのエラー信号は、例えば、ＤＣＴ（離散コサイン変換）を用いて変換される。各ブロックについて結果として得られた変換係数は、量子化され、量子化係数は、ＣＡＢＡＣ（コンテキスト適応バイナリ算術コーディング）などの符号化方式により符号化される。
量子化レベルと呼ばれる、変換係数が量子化される程度は、画像データおよび結果として得られた復号化画像の質を表すのに使用されるビット数に影響する。一般に、量子化レベルが高い値に設定されたとき、より多くの係数が０に設定され、これにより、圧縮率がより高くなるだけでなく、画質が低下することになる。逆に、量子化レベルが低い値に設定されたとき、より少ない係数が０に設定され、これにより、画質は向上するが、圧縮率は低下する。
【００１１】
動画の画質は、動画シーケンス中のフレームにわたり量子化レベルがどのように分布するかに依存することがあるので、各フレームにわたる量子化レベルを制御することは有用である。現在の技術のあるものは、各フレームにわたり均一な量子化レベルを用いている。しかしながら、これらの技術は、人間の顔などの、より視覚的に重要なフレームの部分に対し、より低い量子化レベルを用いることができない。同様に、これらの均一な量子化レベル技術は、背景領域などの、視覚的にそれ程重要でないフレームの部分に対し、より高い量子化レベルを用いることもできない。
【００１２】
これらの困難を克服するには、オーバヘッドとエンコーダ／デコーダの計算複雑性を増大させることなく、各マクロブロックの量子化レベルを効率的に選択するのが望ましいだろう。
ブロックアーチファクト（artifacts:画像の乱れ）は、隣接ブロック間の不連続性として現れる。このような不連続性は、目ざわりであるばかりでなく、後続フレームのための予測子としての再構成フレームの有効性を低下させてしまう。
【００１３】
これらの不連続性を除去するためには、再構成パス時に、ループフィルタ処理を再構成フレームに適用できる。これについては下記に詳述する。どのようなループフィルタとループフィルタ強度を選択するかによって、画質に著しい影響を与えるだろう。余りに強いフィルタは、ぼけが生じ、細部が消失する可能性がある。一方、余りに弱いフィルタは、隣接ブロック間の不連続性を十分に抑制し得ない可能性がある。
【００１４】
そうであるから、ここで説明するのは、セグメンテーションマップ中の各セグメントに適用される、量子化レベル、ループフィルタのタイプおよび／または強度などの、セグメンテーションマップと一組のパラメータを効率的に送信する、効率的な適応セグメンテーション方式の実施形態である。
新規な適応セグメンテーションの実施形態の説明をＶＰ８ビデオコーディングフォーマットのコンテキストで説明するが、本発明の別の実施形態を、他のビデオコーディングアルゴリズムに実装することもできる。
【００１５】
図１は、本発明の一実施形態によるループフィルタ３４を用いた、汎用ビデオエンコーダ１４のブロック図である。図１について説明する。入力動画ストリーム１６を符号化するため、エンコーダ１４は、前方向パス（実線で示す）の以下の処理、すなわち、イントラ／インター予測１８、変換１９、量子化２２、およびエントロピー符号化２４を実行して、符号化ビットストリーム２６を生成する。エンコーダ１４は、さらなるマクロブロックを符号化するために、フレームを再構成する、再構成パス（点線で示す）も有している。エンコーダ１４は、再構成パスの以下の処理、すなわち、逆量子化２８、逆変換３０、再構成３２、およびループフィルタ処理３４を実行する。エンコーダ１４のその他の構造的変形を、ビットストリーム２６の符号化に用いることができる。
【００１６】
図１について説明する。入力動画ストリーム１６が符号化のため与えられたとき、入力動画ストリーム１６内の各フレームを、マクロブロック単位で処理できる。イントラ／インター予測ステージ１８で、イントラ予測モードまたはインター予測モードのいずれかを用いて、各マクロブロックを符号化できる。いずれにしても、再構成フレームに基づいて、予測マクロブロックを形成できる。イントラ予測の場合は、以前に符号化および再構成されている現フレームのサンプルから予測マクロブロックを形成できる。インター予測の場合は、すでに符号化または再構成されている以前または将来のフレームなどの、１つ以上の参照フレームから予測マクロブロックを形成できる。
【００１７】
次に、図１についてさらに説明する。予測マクロブロックを現マクロブロックから引いて、残差マクロブロック（残差(residual)）を生成できる。変換ステージ１９で、残差を変換コード化し、量子化ステージ２２で、残差を量子化して、一組の量子化変換係数を生成する。次いで、この量子化変換係数は、エントロピー符号化ステージ２４でエントロピー符号化される。エントロピー符号化係数は、用いた予測モードのタイプ、動きベクトル(motion vector)、および量子化値などの、マクロブロックを復号するのに必要な情報と一緒に、圧縮ビットストリーム２６に出力される。
【００１８】
図１の再構成パスにより、エンコーダとデコーダ両方は、マクロブロックの復号に必要な同じ参照フレームを用いることができる。復号処理時に実行される機能と同様に、以下に詳述する再構成パスは、逆量子化ステージ２８で変換係数を逆量子化し、逆変換ステージ３０で係数を逆変換して、微分残差マクロブロック（微分残差）を生成する。再構成ステージ３２で、予測マクロブロックを微分残差に加えて、再構成マクロブロックを生成できる。ループフィルタ３４を再構成マクロブロックに適用して、ブロッキングアーチファクトを低減することができる。
【００１９】
図２について説明する。一実施形態によれば、圧縮ビットストリーム２６を復号するため、デコーダ２１は、上述したエンコーダ１４の再構成パスと同様に、以下の機能、すなわち、エントロピー復号２５、逆量子化２７、逆変換２９、イントラ／インター予測２３、再構成３１、ループフィルタ３４、およびデブロッキングフィルタ処理３３を実行して、出力動画ストリーム３５を生成する。デコーダ２１のその他の構造的変形を用いて、再構成ビットストリーム２６を復号できる。
【００２０】
圧縮ビトストリーム２６が復号のため与えられたとき、エントロピー復号ステージ２５でデータ要素をエントロピー復号して、一組の量子化係数を生成できる。この係数を、逆量子化ステージ２７で逆量子化し、逆変換ステージ２９で逆変換して、エンコーダ１４の再構成ステージで生成されたものと同一の微分残差を生成する。圧縮ビットストリーム２６から復号されたヘッダ情報を用いて、イントラ／インター予測ステージ２３で、デコーダ２１は、エンコーダ１４で生成されたものと同じ予測マクロブロックを生成する。再構成ステージ３３で、予測マクロブロックを微分残差に加えて、再構成マクロブロックを生成できる。ループフィルタ３４を再構成マクロブロックに適用して、ブロッキングアーチファクトを低減できる。また、デブロッキングフィルタ３３を再構成マクロブロックに適用して、ブロッキング歪をさらに低減して、その結果を出力動画ストリーム３５に出力できる。
【００２１】
図３は、参照フレーム４４，４８と現在符号化または復号化されている現フレーム３６を示す。上述したように、各フレームは、マクロブロック単位で処理することができ、イントラ／インター予測ステージ１８で、イントラ予測モードまたはインター予測モードいずれかを用いて、各マクロブロックを符号化できる。例えば、以前に符号化された参照フレーム４４からのマクロブロック４６のインター予測を用いて、現マクロブロック３８を符号化または復号化できる。同様に、以前に符号化された参照フレーム４８からのマクロブロック５０のインター予測を用いて、現マクロブロック３８”を符号化または復号化できる。また、例えば、現フレーム３６内のマクロブロック５２からのイントラ予測を用いて、現マクロブロック３８”を符号化または復号化できる。
【００２２】
図４Ａ〜４Ｂは、本発明の実施形態によるサンプルフレームの例示的セグメンテーションマップを示す。
図４Ａについて説明する。例示的セグメンテーションマップ１００は、フレーム１１０を４つのセグメントにセグメント化する。すなわち、３つの前景セグメント１１２，１１４，および１１６と、１つの背景セグメント１１８にセグメント化する。本発明の一実施形態によれば、前景セグメント１１２（白いマクロブロックで示す）に対応する全マクロブロックは、同じ量子化レベル、ループフィルタタイプおよび／または強度を用いて符号化される。また、前景セグメント１１４（黒いマクロブロックで示す）に対応する全マクロブロックは、同じ量子化レベル、ループフィルタタイプおよび／または強度を用いて符号化される。さらに、前景セグメント１１６（点線マクロブロックで示す）に対応する全マクロブロックは、同じ量子化レベル、ループフィルタタイプおよび／または強度を用いて符号化される。またさらに、背景セグメント１１８（線を引いて示す）に対応する全マクロブロックは、同じ量子化レベル、ループフィルタタイプおよび／または強度を用いて符号化される。従って、各セグメントは、異なる量子化レベル、ループフィルタタイプおよび／または強度を有し得る。
【００２３】
前景画像データが、背景画像よりもフレームごとに変化する場合、前景画像と背景画像とを有する画像データを含むフレームを、エンコーダ１４が符号化しているとき、セグメントマップ１００は、有用であり得る。フレームのシーケンスは、家の前で会話をしている３人の顔を含むことができるだろう。３つの顔は前景画像の一例であり、家は背景画像の一例である。動画品質は、背景セグメント１１８ではなく、前景セグメント１１２，１１４，１１６でより重要であるので、低い量子化レベル、およびより良いループフィルタタイプおよび／または強度を、前景セグメント１１２，１１４，１１６に適用できる。
【００２４】
図４Ｂについて説明する。例示的セグメントマップ２００は、フレーム２１０を２つのセグメントにセグメント化する。すなわち、１つの本体(body)セグメント２１２と１つの境界(border)セグメント２１４にセグメント化する。本発明の一実施形態によれば、同じ量子化レベル、およびループフィルタタイプおよび／または強度を用いて、本体セグメント２１２（点線のマクロブロックで示す）に対応する全マクロブロックを符号化できる。また、同じ量子化レベル、およびループフィルタタイプおよび／または強度を用いて、境界セグメント２１４（白いマクロブロックで示す）を符号化できる。
【００２５】
エンコーダ１４が、ズームインがある画像シーケンスを符号化するとき、セグメントマップ２００は有用であろう。動画品質は、境界セグメント２０１ではなく、本体セグメントでより重要であるので、低い量子化レベル、およびより良いループフィルタタイプおよび／または強度を本体セグメント２１２に適用できる。
図４Ａ，４Ｂは、セグメントマップの例のみを示す。その他の適切なセグメントマップも利用可能であり、例えば、任意数セグメントを含むセグメントマップ、同一サイズまたは同一サイズでないセグメントを含むセグメントマップ、連続または非連続マクロブロックを含むセグメントマップ、または、ユーザ定義あるいはエンコーダ内でプリセットされたセグメントマップが利用可能である。
【００２６】
セグメンテーションのイネーブル／ディセーブル(enable/disable)の選択（つまり、セグメンテーション条件）と、セグメンテーションマップの定義は、エンコーダにより決定され、外部アプリケーションにより渡され、またはユーザにより指定し得る。一例として、テレビ会議アプリケーションでは、マップ中に渡されて、何処に人間の頭があるのかのセグメントを定義する。
【００２７】
図５は、本発明の一実施形態による動画データのセグメンテーションを制御する方法のフローチャートである。図５について説明する。エンコーダ１４は、ステップ３００で入力されるフレームを受け取る。エンコーダ１４は、その後、ステップ３０２で、現フレームが、現フレーム自身を除き、任意のどのフレームも参照することなく、符号化されたフレームであるか否か判断する。このフレームは、一般にキーフレームとして参照される。
現フレームがキーフレームである場合、エンコーダ１４は、ステップ３０４で、パラメータをゼロにリセットし、全マクロブロックを同じセグメントにマップするために、ステップ３０６で、セグメントマップをリセットする。このパラメータは、例えば、量子化レベルとループフィルタ強度である。そして、エンコーダ１４は、ステップ３０８に進む。
【００２８】
現フレームがキーフレームでない場合、または現フレームがキーフレームであって、かつエンコーダ１４がパラメータとセグメントマップをリセットした場合、エンコーダ１４は、ステップ３０８で、セグメンテーションがイネーブルされているか否か判断する。各フレームのビットストリームヘッダは、セグメンテーションをイネーブルまたはディスエーブルする単一のビットを含む。しかしながら、ビットの代わりに、任意の適切なフラグ、データ構造、またはその他のデータレコードを用いることができる。セグメンテーションが、ディスエーブルされた場合、エンコーダ１４は、全フレームに対して、ステップ３１０で、ディフォルトの量子化パラメータを適用し、ステップ３１２で、ディフォルトのループフィルタ強度パラメータを適用することができる。
【００２９】
セグメントパラメータは、例えば、量子化レベル、ループフィルタタイプ、ループフィルタ強度、参照フレームタイプ、または部分画素補間フィルタ(sub-pixel interpolation filter)の選択であろう。その他のセグメントパラメータも利用可能である。
一例として、セグメントパラメータの１つは、参照フレームタイプであってよい。参照フレームタイプは、１つ以上以前のフレーム、将来のフレーム、またはすでに符号化され再構成されているそれらのある組み合わせを示す値であってよい。そのため、参照フレームタイプは、例えば、最終フレーム、ゴールデンフレーム、または代替(alternate)参照フレームを含み得る。最終フレームは、現フレームの前の前に符号化されたフレームであり得る。ゴールデンフレームは、遠く離れた過去から任意に選択されて後続フレームのための予測子として用いた過去のフレームである。代替参照フレームは、最終フレームでもゴールデンフレームでもない任意のフレームを含み得る。例えば、代替参照フレームは、過去のフレーム、将来のフレーム、または構成参照フレーム(constructed reference frame)であろう。また、例えば、構成参照フレームは、本発明の譲渡人に譲渡され、本願と同時に出願され、その内容全体を本明細書に参照として組み入れる、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｖｉｄｅｏ  Ｅｎｃｏｄｉｎｇ  Ｕｓｉｎｇ  Ｃｏｎｓｔｒｕｃｔｅｄ  Ｒｅｆｅｒｅｎｃｅ  Ｆｒａｍｅ」と題する特許出願に開示されている参照フレームであってもよい。
【００３０】
エンコーダ１４とデコーダ２１は、その後、セグメントパラメータにより示される１つ以上の参照フレームの所与のセグメントＩＤに対応するマクロブロックの選択的更新に適用できる。このようにして、参照フレーム全体を完全に更新することを要することなく、現フレームからの情報を用いて、１つ以上の参照フレームの一部、例えば、背景を更新する方法として、セグメンテーションを用いることができる。
【００３１】
新規な適応(adoptive)セグメンテーションの実施形態は、２つのセグメンテーションパラメータ（すなわち、量子化レベルおよびループフィルタ強度）のみを説明するが、異なるセグメントパラメータ、またはあらゆる数のセグメンテーションパラメータを用いて、本発明の別の実施形態を実施できる。
セグメンテーションがディスエーブルされた場合、エンコーダ１４は、以前に送信されたセグメンテーションマップと、以前に送信されたセグメンテーションパラメータとを無視できる。このセグメンテーションイネーブル／ディスエーブルバイナリスイッチ、またはセグメンテーション条件により、オーバヘッドを最小限度に抑え、セグメンテーションがほとんど利点をもたらさない場合に、フレームに対しフレームごとにわずか１ビットを生成する。
【００３２】
図５についてなお説明する。しかしながらセグメンテーションがイネーブルされた場合、エンコーダ１４は、ステップ３１４で、セグメンテーションパラメータが更新されるべきか否か判断できる。セグメンテーションパラメータへの更新が示されていない場合、エンコーダ１４は、ステップ３１６で、以前に送信したセグメンテーションパラメータ値を用いることができる。換言すれば、セグメンテーションパラメータは、現動画フレーム用に更新できない。この更新セグメンテーションパラメータバイナリスイッチにより、セグメンテーションパラメータを再送しないことで、オーバヘッドを最小限に抑えることができる。この場合、以前のフレームからのセグメンテーションパラメータを、現フレームに対して用いることができる。
【００３３】
セグメンテーションパラメータへの更新が示された場合、エンコーダ１４は、セグメンテーションパラメータを更新できる。詳しく言うと、ある例示的実施形態において、ステップ３１８で、量子化レベルパラメータを更新し、ステップ３２０で、ループフィルタ強度パラメータを更新することができる。更新されたセグメンテーションパラメータ値は、絶対値、あるいは代替的に、基準値(baseline value)に加えられるデルタ（つまり、増加または減少）値のいずれかであってもよい。このパラメータ値がデルタである場合、クランピング(clamping)メカニズムを実装して、セグメンテーションパラメータ値が、許容範囲を越えないようにし得る。
【００３４】
図５についてなお説明する。ステップ３１４でセグメンテーションパラメータが更新されるか否かについて、エンコーダ１４は、ステップ３２２で、セグメンテーションマップ１００，２００が更新されるべきか否か判断できる。セグメンテーションマップ１００，２００への更新が示されていない場合、エンコーダ１４は、ステップ３２４で、以前に送信したセグメンテーションマップを用いることができる。この更新セグメンテーションマップバイナリスイッチにより、セグメンテーションマップ１００，２００を再送することなく、オーバヘッドを最小限に抑えることができる。この場合、以前のフレームからのセグメンテーションマップを、現フレームに対して用いることができる。
【００３５】
セグメンテーションマップ１００，２００への更新が示された場合、エンコーダ１４は、ステップ３２６で、セグメント識別子ビットの各々の生起確率(probabilities of occurrence)を更新できる。生起確率を更新した後で、エンコーダ１４は、ステップ３２８で、現フレーム中のマクロブロック用のセグメント識別子を更新できる。図４Ａに戻って説明する。例えば、セグメント識別子は、各マクロブロックを、セグメンテーションマップ１００の特定セグメント１１２，１１４，１１６，１１８に関連付ける。よって、４つのセグメント１１２，１１４，１１６，１１８がある場合、例えば、００，０１，１０，１１として特定できる４つのセグメント識別子があり得る。図５の処理は、エンコーダ１４が受け取る各フレームに対し繰り返すことができる。
セグメンテーションパラメータの更新を制御するフレームレベルヘッダ情報と、適応セグメンテーション(adaptive segmentation)のセグメンテーションマップとを実装する例示的疑似コードを以下に示す。
【００３６】
【表１】
2014017868.tif 000003
【００３７】
【表２】
2014017868.tif 000004
【００３８】
【表３】
2014017868.tif 000005
【００３９】
上記の疑似コードについて説明する。以下に述べるのは、変数と配列のリスト、および本発明の実施形態に対するそれらの重要性である。
ＳｅｇｍｅｎｔａｔｉｏｎＥｎａｂｌｅｄ：セグメンテーションイネーブル／ディスエーブルバイナリスイッチ。
ＵｐｄａｔｅＭｂＳｅｇｍｅｎｔａｔｉｏｎＭａｐ：セグメンテーションマップ更新／非更新バイナリスイッチ。
ＵｐｄａｔｅＭｂＳｅｇｍｅｎｔａｔｉｏｎＰａｒａｍｓ：セグメンテーションパラメータ更新／非更新バイナリスイッチ。
ＭｙＳｅｇｍｅｎｔＡｂｓＯｒＤｅｌｔａ：ＳｅｇｍｅｎｔＦｅａｔｕｒｅＤａｔａ配列中のセグメンテーションパラメータ値が、デルタ値または絶対値であるか否か示すバイナリスイッチ。
ＳｅｇｍｅｎｔＦｅａｔｕｒｅＤａｔａ［ｉ］［ｊ］：セグメンテーションパラメータ値（例えば、量子化器(quantizer)またはループフィルタ強度）。
ＭｂＳｅｇｍｅｎｔＴｒｅｅＰｒｏｂｓ［ｉ］：ツリーノード確率（以下の図６参照）。
【００４０】
疑似コードについて説明する。ＳｅｇｍｅｎｔａｔｉｏｎＥｎａｂｌｅｄ変数をビットストリームに書き込んで、セグメンテーションがイネーブルされたか否か示すことができる。セグメンテーションがイネーブルされていない場合、セグメンテーションパラメータもセグメンテーションマップも更新されず、上述したように、任意の以前に送信されたセグメンテーションパラメータまたはセグメンテーションマップが、エンコーダ１４とデコーダ２１で無視される。そうではなく、セグメンテーションがイネーブルされた場合、ＵｐｄａｔｅＭｂＳｅｇｍｅｎｔａｔｉｏｎＰａｒａｍｓビットが書き込まれ、セグメンテーションパラメータを更新すべきか否か示し、ＵｐｄａｔｅＭｂＳｅｇｍｅｎｔａｔｉｏｎＭａｐを書き込んで、セグメンテーションマップを更新すべきか否か示すことができる。なお、ビットの代わりに、任意の適切なフラグ、データ構造、または他のデータレコードも用いることができる。
【００４１】
ＵｐｄａｔｅＭｂＳｅｇｍｅｎｔａｔｉｏｎＰａｒａｍｓが真である場合、ＭｂＳｅｇｍｅｎｔａｔｉｏｎＡｂｓＯｒＤｅｌｔａビットをビットストリームに書き込んで、セグメンテーションパラメータが、デルタ値または絶対値であるか否か示すことができる。次いで、４つのセグメントの各々のための２つのセグメンテーションパラメータ（つまり、量子化器値(quantizer value)とループフィルタ強度）の各々に対して、ＳｅｇｍｅｎｔＦｅａｔｕｒｅＤａｔａ［ｉ］［ｊ］のデータを、その対応する符号ビット（もしあれば）と一緒にビットストリームに書き込むことができる。なお、ビットの代わりに、任意の適切なフラグ、データ構造、または他のデータレコードも用いることができる。
【００４２】
ＵｐｄａｔｅＭｂＳｅｇｍｅｎｔａｔｉｏｎＭａｐが真である場合、エンコーダ１４は、ＭｂＳｅｇｍｅｎｔＴｒｅｅＰｒｏｂｓ［ｉ］配列の値のどれもが、２５５であるか否かテストして、ＭｂＳｅｇｍｅｎｔＴｒｅｅＰｒｏｂｓ［ｉ］のデータが、更新できるか否か判断する。配列の値の１つが、２５５である場合、特定モード確率(probability)は更新されてはならない。そうでなければ、ＭｂＳｅｇｍｅｎｔＴｒｅｅＰｒｏｂｓ［ｉ］の各ノード確率をビットストリームに書き込むことができる。
【００４３】
ノード確率の更新のコストは、フレームレベルで発生し、最小化することができる。上記の疑似コードに従えば、どれだけ多くの確率が更新されているかに応じて、コストは、フレームごとに３〜２７ビットのいずれかでも構わない。低コスト端では、どのノード確率も更新すべきでないことを条件が示しているとき、結果的に３ビットになる。そうであるから、エンコーダ１４は、Ｗｒｉｔｅｂｉｔ（０）動作を３回実行することができる。一方、高コスト端で、ノード確率の３つ全てを更新しなければならないことを条件が示しているとき、結果的に２７ビットになる。従って、エンコーダ１４は、Ｗｒｉｔｅｂｉｔ（１）動作を３回実行して、各々８ビットのコストで、ＭｂＳｅｇｍｅｎｔＴｒｅｅＰｒｏｂｓ［ｉ］からの３つの確率値を書き込むことができる。
【００４４】
代替的に、一実施形態において、ＵｐｄａｔｅＭｂＳｅｇｍｅｎｔａｔｉｏｎＭａｐが真である場合、各々８ビットのコストでのＭｂＳｅｇｍｅｎｔＴｒｅｅＰｒｏｂｓ［ｉ］からの３つの全ての確率が、２４ビットのコストで、常にビットストリームに書き込まれる。この実施形態を示している例示的疑似コードを以下に示す。
【００４５】
【表４】
2014017868.tif 000006
【００４６】
図６は、特定の結果４０６，４０８，４１０，４１２になり得る確率を用いて、セグメント識別子の符号化に用いられるバイナリツリーを示す。各々の結果４０６，４０８，４１０，４１２は、４つのセグメント識別子００，０１，１０，１１の１つを示す。上述したように、本発明の実施形態は、異なる数のセグメント識別子を持ち得る。各種実施形態のセグメント数に応じて、図６のバイナリツリーは、適宣に変更されて、特定数のセグメントを符号化するのに必要な確率数を示す。そういうわけで、例えば、一実施形態が、８つのセグメントを含む場合、バイナリツリーは、８つの特定結果を符号化するために、７つの異なるノードで、７つの確率を含むだろう。
【００４７】
各ノード４００，４０２，４０４は、例えば、左側へ分岐することができる蓋然性(likelihood)を定義する関連確率(associated probability)を有する。図６に示す左側への分岐は、０を示すビットに対応し、一方、右側への分岐は、１を示すビットに対応している。左側へ分岐する蓋然性は、各ノード４００，４０２，４０４で示されるものに対応できる値の確率である。従って、ノード４００での確率１は、値が２より小さい蓋然性を示している。換言すれば、それぞれ、２より小さいバイナリ００値とバイナリ０１値を有するので、確率１は、結果４０６，４０８が得られる蓋然性を示している。式１−確率１を用いて、ノード４００で、右側への分岐が生起し得る蓋然性を計算できる。換言すれば、各々２より大きいバイナリ１０値とバイナリ１１値を有するので、１−確率１は、結果４１０，４１２が得られる蓋然性を示している。
【００４８】
ノード４０２での確率２は、値が０に等しい蓋然性を示している。換言すれば、確率２は、０に等しいバイナリ値００を有するので、結果４０６が得られる蓋然性を示している。式１−確率２を用いて、ノード４０２の右側へ分岐する確率を計算することができる。換言すれば、１−確率２は、０に等しくないバイナリ値０１を有するので、結果４０８が得られる蓋然性を示している。
【００４９】
ノード４０４での確率３は、値が２に等しい蓋然性を示している。換言すれば、確率３は、２に等しいバイナリ値１０を有するので、結果４１０が得られる蓋然性を示している。式１−確率３を用いて、ノード４０４で、右側へ分岐する蓋然性を計算することができる。換言すれば、１−確率３は、２に等しくないバイナリ値１１を有するので、結果４１２が得られる蓋然性を示している。
【００５０】
確率は、例えば、１〜２５４の範囲の整数として表すことができ、ここで、値１は、各ノード４００，４０２，４０４で左側へ分岐する可能性が、最も低いことを示し、値２５４は、各ノード４００，４０２，４０４で左側へ分岐する可能性が最も高いことを示している。各確率は、各セグメントに割り当てられているマクロブロック数を反映する。よって、ほとんどのマクロブロックがセグメント００に割り当てられている場合、確率１と確率２がハイ(high)になり得る。異なる範囲または値を用いても、確率を表すことができ、右側へ分岐する蓋然性などの他の意味を表している。
【００５１】
算術符号化またはハフマン符号化(Huffman coding)などの、様々な種類の符号化方式が存在する。算術符号化方式は、全メッセージシーケンスを１つの数に変換し、一方、ハフマン符号化方式は、メッセージの各記号を一連の桁(digits)に変換するので、算術符号化は、ハフマン符号化よりもより効率的であり得る。従って、算術符号化を本発明の好適な実施形態で用いることができる。ハフマン符号化または符号化方式の組み合わせなどの、その他の符号化方式は、本発明の別の実施形態で用いている。
【００５２】
エントロピー符号化ステージ２４（図１参照）で、算術エンコーダを用いて符号化できるか、またはエントロピー復号化ステージ２５（図２参照）で、４つのセグメント識別子の１つを表すために、３つの確率の各々を用いて、ゼロまたは１を復号する。算術符号化は、一般に、所定の範囲内の単一浮動小数点出力数として、メッセージシーケンスを表すことを含む。典型的には、この範囲は、０から１の確率ラインであろう。メッセージシーケンス中の各記号（つまり、セグメント識別子）は、確率ラインの一部を占有する範囲で表すことができる。記号の確率が高い場合、確率ライン上の大きな範囲を占めることができ、記号の確率が低い場合、確率ライン上の小さな範囲しか占めない。
【００５３】
符号化時、各記号がどの範囲に入るのかに基づいて、メッセージセーケンスを表すのに用いた実数を生成することができる。メッセージ中の各記号を処理したとき、この範囲は記号に割り当てられた部分に狭めることができる。メッセージが大きくなるにつれて、これを表すのに必要な範囲は小さくなり、その範囲を指定するのに必要なビット数は多くなる。よりあり得る記号ほど（つまり、高い確率を有する記号）、決してありそうにない記号（つまり、低い確率を有する記号）により範囲を狭めるため、メッセージにより少ないビットを加える。
【００５４】
図６に戻って説明する。各セグメント識別子が、個別に符号化される場合、セグメント識別子当たり２ビットのコストとなるであろう。しかしながら、上記の算術符号化を用い、４つの全てのセグメント識別子が用いられているが、あるものが他よりも確率が高い場合には、セグメント識別子を符号化する平均コストは、２ビットよりも非常に小さい。４つに満たないセグメント識別子が用いられている場合、セグメント識別子の各々を符号化するコストは、なおのこと少ないだろう。
図７は、本発明の一実施形態による各マクロブロックのセグメント識別子を符号化する方法のフローチャートである。ステップ５００で、エンコーダ１４は、第１のマクロブロックに、１に等しいＩＤを設定する。このＩＤは、フレーム中で現在符号化されている、マクロブロック識別子番号を示す。
【００５５】
そして、エンコーダ１４は、ステップ５０２で、セグメンテーションがイネーブルされたか否か判断する。セグメンテーションがイネーブルされていない場合、セグメンテーション識別子が、マクロブロックについて符号化されない。そうではなく、セグメンテーションがイネーブルされている場合、エンコーダ１４は、ステップ５０４で、セグメンテーションマップが、更新されるべきか否か判断する。セグメンテーションマップの更新が示されていない場合、新しいセグメント識別子が、マクロブロックについて符号化されず、符号化の際に以前のセグメンテーションマップを用いることができる。
【００５６】
そうではなく、セグメンテーションマップの更新が示されている場合、セグメンテーションマップ中の位置に基づいて、セグメントＩＤをマクロブロックに割り当てることができる。そのため、エンコーダ１４は、ステップ３０６で、識別子番号ＩＤを有するマクロブロックが、セグメント０にマップされるか否か判断する。識別子番号ＩＤを有するマクロブロックが、セグメント０にマップされるべき場合、エンコーダ１４は、ステップ５０８で、識別子番号ＩＤを有するマクロブロックに対しセグメント０（バイナリ００）を符号化する。識別子番号ＩＤを有するマクロブロックが、セグメント０にマップされるべきでない場合、エンコーダ１４は、ステップ５１０で、識別子番号ＩＤを有するマクロブロックが、セグメント１にマップされるか否か判断する。識別子番号ＩＤを有するマクロブロックが、セグメント１にマップされるべき場合、エンコーダ１４は、ステップ５１２で、識別子番号ＩＤを有するマクロブロックに対しセグメント１（バイナリ０１）を符号化する。識別子番号ＩＤを有するマクロブロックが、セグメント１にマップされるべきでない場合、エンコーダ１４は、ステップ５１４で、識別子番号ＩＤを有するマクロブロックが、セグメント２にマップされるべきか否か判断する。識別子番号ＩＤを有するマクロブロックが、セグメント２にマップされるべき場合、エンコーダ１４は、ステップ５１６で、識別子番号ＩＤを有するマクロブロックに対しセグメント２（バイナリ１０）を符号化する。識別子番号ＩＤを有するマクロブロックが、セグメント２にマップされるべきでない場合、エンコーダ１４は、ステップ５１８で、識別子番号ＩＤを有するマクロブロックに対しセグメント３（バイナリ１１）を符号化する。
【００５７】
いったん、ステップ５０８，５１２，５１６，５１８で、セグメント識別子が、マクロブロックに対し符号化されると、エンコーダ１４は、ステップ５２０で、ＩＤが、現フレーム中の総マクロブロック数を示すＮＵＭ＿ＯＦ＿ＭＢＳより小さいか否か判断する。ＩＤが総マクロブロック数よりも小さくない場合、現フレーム中の各マクロブロックに対して、それ以上もはやセグメント識別子を符号化する必要がない。そうでなく、ＩＤがＮＵＭ＿ＯＦ＿ＭＢＳより小さい場合、エンコーダ１４は、ステップ５２２で、ＩＤを１だけ増加させ、現フレームに対し全てのマクロブロックセグメント識別子が符号化されるまでこの処理を繰り返す。
図７の方法のステップを実装する例示的疑似コードを以下に示す。
【００５８】
【表５】
2014017868.tif 000007
【００５９】
上記の疑似コードについて説明する。フレーム中の各マクロブロックに対して、セグメンテーションがイネーブルされ、セグメントマップが更新されている場合、セグメント識別子は、例えば、ＥｎｃｏｄｅＢｉｔ（値、確率）関数を用いて符号化される。エンコーダのＥｎｃｏｄｅＢｉｔ関数を２回呼び出して、各マクロブロックに対して、セグメント識別子が符号化される。ＥｎｃｏｄｅＢｉｔ関数の各呼び出しにおいて、エンコーダは、符号化処理のコンテキストとして、３つの「確率」値の１つを用いて、０または１のいずれかである入力ビット「値」を符号化する。３つの確率値は、ＭｂＳｅｇｍｅｎｔＴｒｅｅＰｒｏｂｓと呼ばれる３つの値の配列として示される。このコンテキストが、どれ位の可能性で入力シーケンス中に現れるかに依存して、各セグメント識別子の確率分布についてのガイダンスを、エンコーダに与える。
【００６０】
上記の例示的疑似コードは、４つのセグメント識別子をサポートする実装である。上述したように、その他のセグメント数もサポートされており、それに応じて、疑似コードを変更して、正確なセグメント数を表してもよい。またさらに、上記の疑似コードは、特定のどのプログラミング言語とその実装に限定することを意図していない。数々のプログラミング言語とその実装を用いて、ここで説明した本発明の実施形態の教示を実装し得ることを理解するであろう。
【００６１】
本発明の理解を容易にするため、上記の実施形態を説明したが、かつ本発明を限定するものではない。それどころか、本発明は、開示した実施形態に限定されず、それどころか、添付クレームの精神と範囲内に含まれる様々な変更例と等価な構成を網羅することを意図することを理解すべきである。ここで範囲とは、上記の全ての変更例と法により許されている等価な構成を包合するために、最も広い解釈に一致する。
【図１】
2014017868.tif 000008
【図２】
2014017868.tif 000009
【図３】
2014017868.tif 000010
【図４】
2014017868.tif 000011
【図５】
2014017868.tif 000012
【図６】
2014017868.tif 000013
【図７】
2014017868.tif 000014
【手続補正書】
【提出日】平成25年10月17日(2013.10.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
符号化動画ストリームを復号する方法であって、
前記符号化動画ストリームからフレームの現ブロックを決定するステップと、
前記符号化動画ストリームから、前記現ブロックを含んだ前記フレームのセグメントを示すセグメント記号を決定するステップと、
前記セグメント記号を用いて前記セグメントに関連したセグメントパラメータを決定するステップと、
前記セグメントパラメータを使用して前記現ブロックを復号するステップと、
を含むことを特徴とする方法。
【請求項２】
前記セグメント記号を決定するステップは、前記符号化動画ストリームから複数の前記セグメント記号を決定するステップを含み、
前記符号化動画ストリームは、前記複数のセグメント記号のセグメント記号１個あたり平均２ビット未満を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記フレームは複数の前記セグメントを含み、
前記複数のセグメントは前記セグメントを含み、
前記セグメント記号を決定するステップは、前記符号化動画ストリームから複数の前記セグメント記号を決定するステップを含み、
前記複数のセグメント記号のセグメント記号１個あたりにつき前記符号化動画ストリームに含まれるビット数の最大値は、（（前記複数のセグメント記号の要素数−１）の底を２とする対数＋１）を超えないことを特徴とする請求項１に記載の方法。
【請求項４】
前記セグメント記号を決定するステップは、
前記符号化動画ストリームから二進数を決定するステップと、
前記二進数に対応する小数を決定するステップと、
複数の二進値の各々にそれぞれ関連する各々の確率範囲からなる複数の確率範囲から、前記小数を含むいずれかの確率範囲を決定するステップと、
前記いずれかの確率範囲に関連づけられ且つ前記セグメント記号である二進値を決定するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記セグメント記号を含む複数のセグメント記号を表す前記二進数のサイズは前記複数のセグメント記号の要素数より小さいことを特徴とする請求項４に記載の方法。
【請求項６】
前記セグメントは、前記現ブロックを含む複数のブロックを含み、
前記確率範囲は、前記複数のブロックの要素数に基づくことを特徴とする請求項４に記載の方法。
【請求項７】
前記フレームに関連するフレームヘッダであって前記セグメントに関連する確率を含むフレームヘッダを、前記符号化動画ストリームから決定するステップと、
前記確率に基づいて前記確率範囲を更新するステップと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記フレームは、前記現ブロックを含んだ複数のブロックを含み、
前記セグメント記号を決定するステップは、前記フレームに対するセグメントマップを決定するステップを含み、
前記セグメントマップは、前記セグメント記号を含んだ複数のセグメント記号を含み、
前記複数のブロックの要素数が前記複数のセグメント記号の要素数に等しいことを特徴とする請求項１に記載の方法。
【請求項９】
前記セグメントパラメータは、量子化レベル、ループフィルタタイプ、ループフィルタ強度または代替参照フレームを示すことを特徴とする請求項１に記載の方法。
【請求項１０】
前記セグメントパラメータは参照フレームを示し、
前記方法は、
前記セグメント記号に基づいて前記参照フレームの参照ブロックを決定するステップと、
前記セグメントパラメータに基づいて前記参照ブロックを更新するステップと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記セグメントはフレームの複数のブロックを含み、且つ現ブロックに隣接するブロックを含まないことを特徴とする請求項１に記載の方法。
【請求項１２】
前記フレームは独立符号化フレームを含み、
前記方法は、先に記憶されたセグメントマップをリセットするステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記符号化動画ストリームから、前記フレームに関連するフレームヘッダを決定するステップを更に含み、
前記フレームヘッダは、セグメンテーションを用いて前記フレームが符号化されたことを示すビットを含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記符号化動画ストリームから、前記フレームに関連するフレームヘッダを決定するステップを更に含み、
前記フレームヘッダは、前記セグメントパラメータが差分値であることを示すビットを含み、
前記ブロックは、前記セグメントパラメータと先に記憶されたセグメントパラメータの合計を用いて復号されることを特徴とする請求項１に記載の方法。
【請求項１５】
前記符号化動画ストリームから前記セグメント記号を決定するステップを更に含み、
前記符号化動画ストリームは、前記フレームに関連するフレームヘッダを含み、
前記フレームヘッダは、前記符号化動画ストリームが前記フレームに関連するセグメントパラメータを含むことを示すビットを含むことを特徴とする請求項１に記載の方法。
【請求項１６】
符号化動画ストリームから、後続フレームを決定するステップと、
前記後続フレームに関連するビットであって、前記後続フレームに関する更新されたセグメントパラメータを前記符号化動画ストリームが含んでいないことを示すビットを決定するステップと、
前記セグメントパラメータを用いて前記後続フレームを復号するステップと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１７】
符号化動画ストリームを復号する方法であって、
前記符号化動画ストリームからフレームの現ブロックを決定するステップと、
前記符号化動画ストリームから二進数を決定するステップと、
前記二進数に対応する小数を決定するステップと、
複数の二進値の各々にそれぞれ関連する各々の確率範囲からなる複数の確率範囲から、前記小数を含むいずれかの確率範囲を決定するステップと、
前記いずれかの確率範囲に関連づけられる二進値であって且つ前記現ブロックを含む前記フレームのセグメントを示すセグメント記号である二進値を決定するステップと、
前記セグメント記号を用いて前記セグメントに関連したセグメントパラメータを決定するステップと、
前記セグメントパラメータを使用して前記現ブロックから復号化ブロックを生成するステップと、
を含むことを特徴とする方法。
【請求項１８】
前記セグメントパラメータが参照フレームを示し、
前記方法は、
前記セグメント記号に基づいて前記参照フレームの参照ブロックを決定するステップと、
前記セグメントパラメータに基づいて前記参照ブロックを更新するステップと、
前記参照ブロック及び前記復号化ブロックを用いて再構成ブロックを生成するステップと、
を更に含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
符号化動画ストリームから、後続フレームを決定するステップと、
前記後続フレームに関連するビットであって、前記後続フレームに関する更新されたセグメントパラメータを前記符号化動画ストリームが含んでいないことを示すビットを決定するステップと、
前記セグメントパラメータを用いて前記後続フレームを復号するステップと、
を更に含むことを特徴とする請求項１７に記載の方法。
【請求項２０】
符号化動画ストリームを復号する方法であって、
前記符号化動画ストリームからフレームの第１のブロックを決定するステップと、
前記符号化動画ストリームから、前記フレームのセグメントのうち前記第１のブロックを含む第１のセグメントを示す第１のセグメント記号を決定するステップと、
前記第１のセグメント記号を使用して、前記第１のセグメントに関連する参照フレームを決定するステップと、
前記第１のブロック及び前記参照フレームを用いて第１の再構成ブロックを生成するステップと、
前記符号化動画ストリームから前記フレームの第２のブロックを決定するステップと、
前記符号化動画ストリームから、前記フレームのセグメントのうち前記第２のブロックを含む第２のセグメントを示す第２のセグメント記号を決定するステップと、
前記第２のセグメント記号を使用して、前記第２のセグメントに関連する代替参照フレームを決定するステップと、
前記第２のブロック及び前記代替参照フレームを用いて第２の再構成ブロックを生成するステップと、
を含むことを特徴とする方法。