(57)【要約】  本明細書において、ビットストリームのビット数を推定するための方法および装置の例が記載される。エントロピー符号器は、ビットストリーム符号化モジュールと、ビット数推定モジュールとを含み得る。ビットストリーム符号化モジュールは、第１の符号化技術に従って複数の構文要素を符号化するように構成され得る。ビット数推定モジュールは、第２の符号化技術に従って複数の構文要素を符号化するために、推定されたビット数を提供するように構成され得る。少なくとも一実施形態において、ビットストリーム符号化モジュールは、推定されたビット数に基づいて複数の構文要素を符号化するようにさらに構成され得る。
2015516780.tif 000002
【特許請求の範囲】
【請求項１】
エントロピー符号器であって、
第１の符号化技術に従って複数の構文要素を符号化するように構成される、ビットストリーム符号化モジュールと、
推定されたビット数を、第２の符号化技術に従って複数の構文要素を符号化するために、推定されたビット数をモード決定ブロックに提供するように構成される、ビット数推定モジュールと、を備える、エントロピー符号器。
【請求項２】
前記第１の符号化技術は、リオーダリング可能な形式を含み、前記第２の符号化技術は、リオーダリング可能でない形式を含む、請求項１に記載のエントロピー符号器。
【請求項３】
前記リオーダリング可能な形式は、ＣＡＶＬＣを含み、前記リオーダリング可能でない形式は、ＣＡＢＡＣを含む、請求項２に記載のエントロピー符号器。
【請求項４】
前記ビット数推定モジュールは、前記複数の構文要素のうちの第１の構文要素および前記複数の構文要素のうちの第２の構文要素のためのビット数を並行して推定するように構成される、請求項１に記載のエントロピー符号器。
【請求項５】
前記ビットストリーム符号化モジュールは、空間コンテクストに少なくとも一部分は基づいて、前記複数の構文要素を符号化するように構成され、前記ビット数推定モジュールは、前記空間コンテクストに少なくとも一部分は基づいて、前記複数の構文要素のためのビット数を推定するように構成される、請求項１に記載のエントロピー符号器。
【請求項６】
前記ビット数推定モジュールは、ＣＡＢＡＣコンテクストに少なくとも一部分は基づいて、ビット数を推定するようにさらに構成される、請求項５に記載のエントロピー符号器。
【請求項７】
前記ビットストリーム符号化モジュールは、前記推定されたビット数に少なくとも一部分は基づいて、前記複数の構文要素を符号化するようにさらに構成される、請求項１に記載のエントロピー符号器。
【請求項８】
符号器であって、
ビデオ信号を受信し、前記ビデオ信号に少なくとも一部分は基づいて、第１の符号化技術に従って符号化されたビットストリームを提供するように構成される、マクロブロック符号器であって、前記符号化されたビットストリームのビットレートは、第２の符号化技術に従う、前記ビデオ信号符号化の推定されたビット数に少なくとも一部分は基づく、マクロブロック符号器と、
前記マクロブロック符号器に結合し、かつ前記符号化されたビットストリームを受け取るように構成される、トランスコーダであって、トランスコードされたビットストリームを提供するために、前記符号化されたビットストリームをトランスコードするようにさらに構成される、トランスコーダと、を備え、
前記トランスコードされたビットストリームは、前記第２の符号化技術に従って符号化される、符号器。
【請求項９】
前記マクロブロック符号器は、
第１の構文要素および第２の構文要素のためのビット数を並行して推定するように構成される、エントロピー符号器を含む、請求項８に記載の符号器。
【請求項１０】
前記エントロピー符号器は、前記第１の構文要素に少なくとも一部分は基づいて、第１の複数のビンを生成し、前記第２の構文要素に少なくとも一部分は基づいて、第２の複数のビンを生成するようにさらに構成され、前記エントロピー符号器は、前記第１の複数のビンのうちの第１および第２のビンのためのビット数を並行して推定するように構成される、請求項９に記載の符号器。
【請求項１１】
前記推定されたビット数は、前記第２の符号化技術でマクロブロックを符号化するための推定されたビット数を含む、請求項８に記載の符号器。
【請求項１２】
前記符号器は、リアルタイムで動作するように構成される、請求項８に記載の符号器。
【請求項１３】
前記マクロブロック符号器は、前記推定されたビット数に基づいて、１つ以上のモード決定を行うようにさらに構成される、請求項８に記載の符号器。
【請求項１４】
ビット数を推定する方法であって、
エントロピー符号器で複数の構文要素を受け取ることと、
コンテクストに少なくとも一部分は基づいて、前記複数の構文要素に対応するビット数を推定することと、
前記コンテクストに少なくとも一部分は基づいて、ビットストリームを提供するために、前記複数の構文要素を符号化することと、を含み、
前記複数の構文要素は、第１の符号化技術に従って符号化され、前記ビット数は、第２の符号化技術に従って推定される、方法。
【請求項１５】
前記複数の構文要素は、前記推定されたビット数に少なくとも一部分は基づいて符号化される、請求項１４に記載の方法。
【請求項１６】
前記第１の符号化技術はＣＡＶＬＣであり、前記第２の符号化技術はＣＡＢＡＣである、請求項１４に記載の方法。
【請求項１７】
前記ビット数を推定することは、
第１のビンの前記ビット数を推定することと、
第２のビンの前記ビット数を推定することと、を含み、
前記第１および第２のビンは、同一のＣＡＢＡＣコンテクストに対応する、請求項１４に記載の方法。
【請求項１８】
前記ビット数を推定することは、
前記ビット数の第１の部分を第１の推定モジュールで推定することと、
前記ビット数の第２の部分を第２の推定モジュールで推定することと、
前記第１および第２の部分を加算することに応じた前記ビット数を提供することと、を含む、請求項１４に記載の方法。
【請求項１９】
前記第１の部分がマクロブロックモードに対応し、前記第２の部分が差分動きベクトルまたは量子化係数のうちの少なくとも１つに対応する、請求項１８に記載の方法。
【請求項２０】
前記第１の符号化技術に従って符号化されたビットストリームから前記第２の符号化技術に従って符号化されたビットストリームに前記ビットストリームをトランスコードすることをさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
相互参照
本明細書は、２０１２年５月９日出願の米国非仮出願第１３／４６７，６２４号の優先権を主張し、この出願はあらゆる目的で全体として参照により本明細書に組み込まれる。
【０００２】
記載される実施形態は、ビデオの符号化に関し、より具体的にはビットストリームのビット数を推定することに関する。
【背景技術】
【０００３】
典型的に、音声またはビデオ信号などの信号は、可変ビットレート（ＶＢＲ）または固定ビットレート（ＣＢＲ）のビットストリームとして提供され得る。ＣＢＲビットストリームは、固定ビットレートが１つ以上のチャネルの帯域幅の予測可能な消費を可能にするため、多くの放送用途において特に一般的である。提供される信号の品質は、例えば多くの動きがあるビデオ場面においてさまざまであり得るが、この差異は比較的一定したビットレートを維持するという利点を踏まえ、許容可能であると見なされてきた。ＣＢＲビットストリームはリアルタイムのレート制御を要するストリーミング用途のためにしばしば用いられるため、ＣＢＲ方式を使用する符号器は、提供されるビットストリームが所望されるレート制限内に確実に留まるように、しばしば予測的および／または再帰的な方式を用いなければならない。
【０００４】
目標とされるビットレートでビットストリームを提供するために、いくつかの方法が利用されている。例えば、ビットストリームが確実に固定ビットレートを維持するように、ビットスタッフィングが用いられている。これは、ビデオ信号に関係のないデータをビットストリームの中に挿入することを伴う。いったん受信されると、スタッフィングデータはビデオ信号を回復するために除去することができる。レート歪みの最適化は、固定ビットレートを維持するために用いられてきた別の技術である。特定の量子化パラメータを選択することにより、ビットレートが制御され得るように残余の量子化係数が制御され得る場合、信号品質の損失量が発生する。
【発明の概要】
【０００５】
本明細書において、エントロピー符号器の例が開示される。エントロピー符号器の例は、第１の符号化技術に従って複数の構文要素を符号化するように構成されるビットストリーム符号化モジュールを含み得る。エントロピー符号器は、第２の符号化技術に従って複数の構文要素を符号化するために、推定されたビット数をモード決定ブロックに提供するように構成される、ビット数推定モジュールを備える。
【０００６】
いくつかの例において、第１の符号化技術はリオーダリング可能な形式を含み得、第２の符号化技術はリオーダリング可能でない形式を含み得る。
【０００７】
いくつかの例において、リオーダリング可能な形式はＣＡＶＬＣを含み得、リオーダリング可能でない形式はＣＡＢＡＣを含み得る。
【０００８】
いくつかの例において、ビット数推定モジュールは、複数の構文要素のうちの第１の構文要素および複数の構文要素のうちの第２の構文要素のためのビット数を並行して推定するように構成される。
【０００９】
いくつかの例において、ビットストリーム符号化モジュールは、空間コンテクストに少なくとも一部分は基づいて、複数の構文要素を符号化するように構成され得、ビット数推定モジュールは、空間コンテクストに少なくとも一部分は基づいて、複数の構文要素ビット数を推定するように構成され得る。
【００１０】
いくつかの例において、ビット数推定モジュールは、ＣＡＢＡＣコンテクストに少なくとも一部分は基づいて、ビット数を推定するようにさらに構成され得る。
【００１１】
いくつかの例において、ビットストリーム符号化モジュールは、推定されたビット数に少なくとも一部分は基づいて、複数の構文要素を符号化するようにさらに構成され得る。
【００１２】
本明細書において、符号器の例が開示される。符号器の例は、ビデオ信号を受信し、かつ第１の符号化技術に従って、ビデオ信号に少なくとも一部分は基づいて符号化されたビットストリームを提供するように構成され、符号化されたビットストリームのビットレートは、第２の符号化技術に従う、ビデオ信号符号化の推定されたビット数に少なくとも一部分は基づく。符号器は、マクロブロック符号器に結合され、符号化されたビットストリームを受信するように構成されるトランスコーダをさらに含み得る。トランスコーダは、トランスコードされたビットストリームを提供するために、符号化されたビットストリームをトランスコードするようにさらに構成され得る。いくつかの例において、トランスコードされたビットストリームは、第２の符号化技術に従って符号化され得る。
【００１３】
いくつかの例において、マクロブロック符号器は、第１の構文要素および第２の構文要素のためのビット数を並行して推定するように構成されるエントロピー符号器を備え得る。
【００１４】
いくつかの例において、エントロピー符号器は、第１の構文要素に少なくとも一部分は基づいて、第１の複数のビンを生成し、第２の構文要素に少なくとも一部分は基づいて、第２の複数のビンを生成するようにさらに構成され、エントロピー符号器は、第１の複数のビンのうちの第１および第２のビンのためのビット数を並行して推定するように構成される。
【００１５】
いくつかの例において、推定されたビット数は、マクロブロックを第２の符号化技術で符号化するための推定されたビット数を含み得る。
【００１６】
いくつかの例において、符号器は、リアルタイムで動作するように構成され得る。
【００１７】
いくつかの例において、マクロブロック符号器は、推定されたビット数に基づいて、１つ以上のモード決定を行うようにさらに構成され得る。
【００１８】
本明細書において、方法の例が開示される。ビット数を推定するための方法の例は、エントロピー符号器で複数の構文要素を受け取ることと、コンテクストに少なくとも一部分は基づいて、複数の構文要素に対応するビット数を推定することと、コンテクストに少なくとも一部分は基づいて、ビットストリームを提供するために、複数の構文要素を符号化することとを含み得る。いくつかの例において、複数の構文要素は、第１の符号化技術に従って符号化され得、ビット数は、第２の符号化技術に従って推定される。
【００１９】
いくつかの例において、複数の構文要素は、推定されたビット数に少なくとも一部分は基づいて符号化され得る。
【００２０】
いくつかの例において、第１の符号化技術はＣＡＶＬＣであり得、第２の符号化技術はＣＡＢＡＣであり得る。
【００２１】
いくつかの例において、ビット数を推定することは、第１のビンのビット数を推定することと、第２のビンのビット数を推定することとを含み得、第１および第２のビンは、同一のＣＡＢＡＣコンテクストに対応する。
【００２２】
いくつかの例において、ビット数を推定することは、ビット数の第１の部分を第１の推定モジュールで推定することと、ビット数の第２の部分を第２の推定モジュールで推定することと、第１および第２部分を加算することに応じたビット数を提供することとを含み得る。
【００２３】
いくつかの例において、第１の部分は、マクロブロックモードに対応し得、第２の部分は差分動きベクトルまたは量子化係数のうちの少なくとも１つに対応する。
【００２４】
方法の一例は、第１の符号化技術に従って符号化されたビットストリームから、第２の符号化技術に従って符号化されたビットストリームにビットストリームをトランスコードすることを含み得る。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に従う符号器のブロック図である。
【図２】本発明の実施形態に従う図１の符号器において用いられ得る、マクロブロック符号器の略ブロック図である。
【図３】本発明の実施形態に従う図２のマクロブロック符号器において用いられ得る、エントロピー符号器の略ブロック図である。
【図４】本発明の実施形態に従う図３のエントロピー符号器において用いられ得る、ビット数モジュールの略図である。
【図５】本発明の実施形態に従う図３のエントロピー符号器において用いられ得る、ビット数モジュールの略図である。
【発明を実施するための形態】
【００２６】
本明細書において、ビットストリームのビット数を推定するための方法および装置の例が記載される。本発明の実施形態の十分な理解を提供するために、一定の詳細が以下に記載される。しかしながら、本発明の実施形態が、これらの特定の詳細、または追加のもしくは異なる詳細なくして実施され得るということは、当業者には明白となろう。その上、本明細書に記載の本発明の特定の実施形態は、例を目的として提供されており、本発明の範囲をこれらの本発明の特定の実施形態に制限するように用いられるべきでない。他の事例において、よく知られるビデオ構成要素、符号器またはデコーダ構成要素、回路、制御信号、タイミングプロトコル、およびソフトウェア動作は、本発明を不必要に曖昧にすることを避けるために詳細に示されていない。
【００２７】
既知であるように、Ｈ．２６４規格では、ＣＡＢＡＣ符号化は、２値化、コンテクストモデリング、および２進算術符号化を含むいくつもの処理を使用する。２値化は、すべての非２進値化構文要素が二分決定のシーケンス（例えば、ビン）に一意的にマッピングされ、２進値化構文要素がバイパスされることを指定する。コンテクストモデリングは次に、状態遷移論理に基づいてそれぞれのビンにコンテクストを割り当て得る。コンテクストは、状態（例えば、確率指数）と、最も確率の高いシンボル（ＭＰＳ）とを含み得る。コンテクストを割り当てられた後、それぞれのビンが２進算術符号器に提供され得、ビンの状態および／またはＭＰＳに従ってそれぞれのビンが算術符号化され得る。ビンが符号化された後、現在の確率推定を反映するためにビンに対応するコンテクストが更新され得る。例えば、２進算術符号化は、それぞれのビンを符号化するためにいくつもの状態変数を用い得る。それぞれのビンが算術符号化された後にこれらの変数のそれぞれが更新されるため、ビンは通常連続的に符号化されなければならない。ゆえに、ＣＡＢＡＣ符号化を用いて符号化するために要する時間の長さは、２値化の間に生成されるビンの数に比例する。２進算術符号化は計算的に厳しいため、ビンを連続的に符号化することは、算術符号化（例えば、ＣＡＢＡＣ）を使用する符号化技術がリアルタイム用途について実用的でないようにする場合がある。
【００２８】
図１は、本発明の実施形態に従う符号器１００の略ブロック図である。符号器１００は、テレビ、放送システム、モバイルデバイス、およびラップトップ型コンピュータならびにデスクトップ型コンピュータの両方を含むがこれらに制限されないビデオの符号化を使用する種々のデバイスの任意のものに実装され得る。符号器１００は、マクロブロック符号器１１０とトランスコーダ１２０とを含み得る。マクロブロック符号器１１０は、トランスコーダ１２０に連結され得、一実施形態においてビデオデータ（例えば、フレーム）を含み得るビデオ信号などの信号を受信し得る。概して、マクロブロック符号器１１０は、速度に依存しない方途で生成され得るビットストリームを提供するように動作し得る。トランスコーダ１２０は次に、ビットストリームを算術符号化されたストリーム形式にリアルタイムで変換し得、こうして固定ビットレートのビットストリームを提供する。
【００２９】
マクロブロック符号器１１０は、１つ以上の論理回路、制御論理、論理ゲート、プロセッサ、メモリ、および／またはこれらの任意の組み合わせまたは部分的組み合わせを含み得、１つ以上の符号化技術を用いてビデオ信号を符号化および／または圧縮するように構成され得、その例は下記にさらに記載される。マクロブロック符号器１１０は、Ｈ．２６４および／またはＨ．ＨＥＶＣ符号化規格に準拠し得、可変ビットレート信号および／または固定ビットレート信号をさらに符号化し得る。少なくとも一実施形態において、マクロブロック符号器１１０は、コンテクスト適応可変長符号化（ＣＡＶＬＣ）符号器などのエントロピー符号器を含み得、および／または例えばマクロブロックレベルでデータを符号化し得る。それぞれのマクロブロックが、イントラ符号化モード、インター符号化モード、双方向、またはこれらの任意の組み合わせまたは部分的組み合わせで符号化され得る。したがって、マクロブロック符号器１１０は、固定レートで動作し得、かつ符号化されたビットストリームをトランスコーダ１２０に提供し得る。
【００３０】
トランスコーダ１２０は、現在または将来知られる当技術分野の任意のトランスコーダを含み得、第１の符号化技術で符号化されたビットストリームを第２の符号化技術で符号化されたビットストリームにトランスコードし得る。トランスコーダ１２０は、例えば、リオーダリング可能な形式を有するビットストリームをリオーダリング可能でない形式を有するビットストリームに変換（例えば、トランスコード）し得る。その上、トランスコーダ１２０はさらに、固定ビットレートを有するビットストリームを受け取り得、および／またはリアルタイムでトランスコードし得る。
【００３１】
装置１００の一動作例において、マクロブロック符号器１１０は、１つ以上の符号化技術に従い、符号化されたビットストリームを提供するためのビデオ信号を受信および符号化し得る。符号化されたビットストリームは、トランスコーダ１２０に提供され得、これは符号化されたビットストリームに少なくとも一部分は基づいて、トランスコードされたビットストリームを続いて提供（例えば、生成）し得る。トランスコードされたビットストリームは、例えばデータバスに、および／またはデコーダ（図示せず）などのデバイスに提供され得る。以下でより詳細に説明されるように、マクロブロック符号器１１０は、ビデオ信号に基づいてマクロブロックを生成し得、かつ例えばＣＡＶＬＣなどのリオーダリング可能な形式でマクロブロックを符号化し得る。マクロブロック符号器１１０は、例えばＣＡＢＡＣなどのリオーダリング可能でない形式を用いて、マクロブロックの符号化のビット数を推定し得る。一実施形態において、この推定されたビット数は、ビデオ信号を符号器１００で符号化する際、トランスコードされたビットストリームが所望されるビットレートでトランスコーダ１２０から提供されることを確実にするために用いられ得る。少なくとも一実施形態において、所望されるビットレートは予め定められ得、および／または動的に調節され得る。
【００３２】
図２は、本発明の実施形態に従うマクロブロック符号器２００の略ブロック図である。マクロブロック符号器２００は、図１のマクロブロック符号器１１０を実装するために用いられ得、かつ現在または将来知られる当技術分野の１つ以上の符号化規格に準拠し得る。マクロブロック符号器２００は、半導体技術において動作され得、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実装され得る。
【００３３】
マクロブロック符号器２００は、モード決定モジュール２３０、遅延バッファ２０２、トランスフォーム２０６、量子化器２０８、およびエントロピー符号器２５０を有する符号化パスを含み得る。既知であるように、モード決定モジュール２３０は、例えばフレーム毎、スライス毎、および／またはマクロブロック毎を基礎として適切な符号化モードを確定し得る。モード決定モジュール２３０は、例えばイントラモード、インターモード、差分動きベクトル、および／または量子化パラメータを含み得る。本発明のいくつかの例において、モード決定モジュール２３０は、エントロピー符号器２５０から推定されたビット数を受け取り得、以下でさらに記載されるように、ビデオ信号の符号化中にモード決定をするためにビット数をさらに利用し得る。
【００３４】
モード決定モジュール２３０の出力は、Ｈ．２６４標準法、または他の予測技術に従う予測子を生成するために、予測モジュール２２０によって利用され得る。この予測子は、減算器２０４でビデオ信号の遅延バージョンから減算される。ビデオ信号の遅延バージョンを用いると、モード決定ブロック２３０が作動するための時間を提供し得る。減算器２０４の出力は、残余、例えば、ブロックと予測されたブロックとの差分であり得る。
【００３５】
トランスフォーム２０６は、例えば、ビデオ信号内データのスペクトル成分に対応し得る関数のブロックを生成するために、残余に対し離散コサイン変換（ＤＣＴ）などのトランスフォームを実施するように構成され得る。概して、トランスフォーム２０６は、残余を係数ブロックと称される、残余の周波数領域表現にトランスフォームし得る。量子化器２０８は、係数ブロックを受容し、係数ブロックの係数を量子化して量子化係数ブロックを生成するように構成され得る。係数の量子化は不可逆であり得るが、例えばモード決定ブロック２３０によって提供されるラグランジュの未定乗数法を用いてレート歪みのコストを最適化し得る。そして、エントロピー符号器２５０は、符号化されたビットストリームを提供するために量子化係数ブロックを符号化し得る。エントロピー符号器２０８は、ＣＡＶＬＣ符号器などの当業者に既知の任意のエントロピー符号器であり得る。
【００３６】
エントロピー符号器２５０は、ＣＡＶＬＣなどの符号化技術で量子化係数を符号化し得、かつＣＡＢＡＣなどの異なる符号化技術で量子化係数を符号化するためのビット数をさらに推定し得る。エントロピー符号器２５０は、量子化器２０８および／または予測モジュール２２０などのマクロブロック符号器２００の他のデバイスから構文要素（例えば、量子化係数、差分動きベクトル、マクロブロックモードなど）を受け取り得る。エントロピー符号器２５０は、受け取られた構文要素に基づいてビット数を符号化および／または推定し得る。これらの推定されたビット数は、モード決定ブロック２３０に提供され得る。
【００３７】
検討したように、符号器２００は、Ｈ．２６４ビデオ符号化規格に従って動作し得る。ゆえに、Ｈ．２６４ビデオ符号化規格が動き予測および／または補償を使用するため、符号器２００は、逆量子化器２１０、逆変換２１２、復元加算器２１４、および非ブロック化フィルタ２１６を含むフィードバックパスをさらに含み得る。これらの要素は、符号器２００によって実施される符号化処理を少なくとも部分的に逆行させるように構成されるデコーダ（図示せず）内に含まれる要素のミラーを設け得る。追加的に、符号器のフィードバックループは、デコードされた画像バッファ２１８と予測ブロック２２０とを含み得る。
【００３８】
量子化係数は、回復された係数を提供するために、逆量子化器２１０によって逆量子化され得、復元された残余を産生するために、回復された係数は逆変換２１２によって逆変換され得る。復元された残余は、加算器２１４でプレディクタに加算されて復元されたビデオを産生し得、これは非ブロック化フィルタ２１６によって非ブロック化され得、将来のフレームに用いられるためにデコードされた画像バッファ２１８に書き込まれ得、さらなるマクロブロック内イントラ予測および／または他の予測動作のためにマクロブロック予測モジュール２２０にフィードバックされ得る。
【００３９】
符号器２００の一動作例において、ビデオ信号（例えば、ベースバンドビデオ信号）が符号器２００に提供され得る。ビデオ信号は、遅延バッファ２０２およびモード決定ブロック２３０に提供され得る。減算器２０４は、遅延バッファ２０２からビデオ信号を受信し得、このビデオ信号から動き予測信号を減算して残余を生成し得る。残余は、トランスフォーム２０６に提供され得、ＤＣＴなどのフォワードトランスフォームを用いて処理され得る。トランスフォーム２０６は、量子化器２０８に提供され得る係数ブロックを生成し得、量子化器２０８は係数ブロックを量子化し得る。量子化係数および他の構文要素は、エントロピー符号器２５０に提供され得、符号化されたビットストリームへと符号化され得る。記載されるように、符号化されたビットストリームを提供することに加え、エントロピー符号器は、符号化技術により構文要素を符号化するためのビット数を推定し得、ビット数推定をモード決定ブロック２３０に提供し得る。推定されたビット数は、符号化されたビットストリームのビットレートを制御するために、例えばモード決定ブロック２３０によって用いられ得る。
【００４０】
量子化係数のブロックもまた符号器２００のフィードバックループに提供され得る。つまり、量子化係数のブロックは、逆量子化ブロック２１０、逆変換２１２、および復元加算器２１４によって各々逆量子化され、逆変換され、および動き予測信号に追加され得、復元されたビデオ信号を産生する。予測ブロック２２０と非ブロック化フィルタ２１６の両方が復元されたビデオ信号を受信し得、デコードされた画像バッファ２１８が非ブロック化フィルタ２１６からフィルタリングされたビデオ信号を受信し得る。復元およびフィルタリングされたビデオ信号に少なくとも一部分は基づいて、予測ブロック２２０は、加算器２０４に動き予測信号を提供する。
【００４１】
したがって、図２のマクロブロック符号器２００は、ビデオ信号に基づいて符号化されたビットストリームを提供し得、構文要素はＣＡＶＬＣなどの符号化技術を用いて符号化され、ＣＡＢＡＣなどの異なる符号化技術を用いて構文要素を符号化するために推定されたビット数をさらに提供し得る。一実施形態において、符号化されたビットストリームは、固定レートで提供されるＣＡＶＬＣビットストリームであり得、ＣＡＶＬＣビットストリームが提供されるレートは、ＣＡＢＡＣでの符号化について推定されたビット数に基づき得る。前述のように、符号化されたビットストリームは、トランスコーダ１２０によって、例えばＣＡＶＬＣからＣＡＢＡＣにトランスコードされ得る。ゆえに、一実施形態において、少なくとも部分的に、符号化されたビットストリームのレートが推定されたビット数に基づいて制御され得るため、トランスコーダ１２０によって提供されるトランスコードされたビットストリームのビットレートは、推定されたビット数にも基づいて制御され得る。
【００４２】
図３は、本発明の実施形態に従うエントロピー符号器３００の略ブロック図である。エントロピー符号器３００は、図２のエントロピー符号器２５０を実装するために用いられ得、ビットストリーム符号化モジュール３０２、ビット数推定モジュール３０４、および空間コンテクストモジュール３１０を含み得る。ビットストリーム符号化モジュール３０２は、構文要素（例えば、差分動きベクトル、マクロブロックモード、量子化係数など）を受容し得、さらに空間コンテクストモジュール３１０に連結され得る。ビットストリーム符号化モジュール３０２は、上述のとおり、構文要素を符号化してビットストリームを提供し得、かつ一実施形態において、空間コンテクストモジュール３１０によって提供される空間コンテクストを用いてビットストリームを提供し得る。同様に、ビット数推定モジュール３０４は、構文要素を受容し得、空間コンテクストモジュール３１０にさらに結合され得る。ビット数推定モジュール３０４は、構文要素を符号化するためのビット数推定を提供し得、かつ一実施形態において、空間コンテクストモジュール３１０から受容された空間コンテクストを用いてビット数推定を提供し得る。
【００４３】
エントロピー符号器３００の一動作例において、構文要素はビットストリーム符号化モジュール３０２およびビット数推定モジュール３０４に提供され得る。ビットストリーム符号化モジュール３０２は、空間コンテクストモジュール３１０から空間コンテクストを受容し得、符号化技術（例えば、ＣＡＶＬＣ）を用いて構文要素を符号化する。ビット数推定モジュール３０４はまた、空間コンテクストモジュール３１０から空間コンテクストを受容し得、ビットストリーム符号化モジュール３０２によって用いられる符号化技術とは異なり得る符号化技術（例えば、ＣＡＢＡＣ）を用いて構文要素を符号化するためのビット数を推定する。後続の構文要素は、ビデオ信号から生成されたすべての構文要素が符号化される、および／またはビット数の推定のために用いられるまでビットストリーム符号化モジュール３０２およびビット数推定モジュール３０４に提供され得る。
【００４４】
よって、構文要素は、推定されたビット数を生成するために用いられ得、これは、図２を参照して記載されるように、モード決定ブロック２３０にフィードバックされ得る。こうして、ビットストリーム符号化モジュール３０２によって提供されるビットストリームのビットレートが制御され得る。記載したように、符号化されたビットストリームのビットレートを制御することにより、符号化されたビットストリームに基づいてトランスコードされたビットストリームのビットレートもまた制御され得る。
【００４５】
図４は、本発明の実施形態に従うビット数推定モジュール４００の略図である。ビット数推定モジュール４００は、図３のビット数推定モジュール３０４を実装するために用いられ得、２値化およびコンテクストモジュール４１０および推定モジュール４２０を含み得る。２値化およびコンテクストモジュール４１０は推定モジュール４２０に連結され得、上述のとおり構文要素および空間コンテクストを連続的に受容し得る。Ｈ．２６４符号化規格に従い、２値化およびコンテクストモジュール４１０は非２進値化構文要素を２値化し得、２進値化構文要素をバイパスして複数のビンを提供し得る。２値化およびコンテクストモジュール４１０は、それぞれのビンに、状態およびＭＰＳを含むコンテクスト（例えば、ＣＡＢＡＣコンテクスト）をさらに割り当て得る。一実施形態において、コンテクストは、２値化およびコンテクストモジュール４１０に記憶され得、別の実施形態において、コンテクストは、メモリ（図示せず）などの別個のデバイス（図示せず）に記憶され得、２値化およびコンテクストモジュール４１０に提供される。推定モジュール４２０は、それぞれのビン、状態、およびＭＰＳを受容し得、ＣＡＢＡＣなどの符号化規格に従って、ビンを符号化するために推定されたビット数を提供し得る。一実施形態において、推定モジュールは、推定されたビット数を提供するために推定テーブルを用い得る。推定テーブルは、例えば推定モジュール４２０内に含まれ得、特定の算術符号化（例えば、ＣＡＢＡＣ）アルゴリズムに基づく値を含み得る。少なくとも一実施形態において、この値はビンが対応するＭＰＳと一致するかどうかを判定するために用いられる方法論に基づき得る。推定モジュール４２０は、それぞれのビンに関連付けられる推定されたビット数をさらに合計し得、例えばマクロブロックを符号化するための合計ビット数を提供する。いくつかの実施形態では、推定モジュール４２０は、追加的に、または代替的に、ブロック、スライス、および／またはフレームを符号化するためのビット数を提供し得る。
【００４６】
ゆえに、ビット数推定モジュール４００は、算術符号化を利用せずにＣＡＢＡＣなどの符号化規格で符号化するためのビットレートを推定し得る。そうではなく、ビット数推定モジュール４００は、推定モジュール４２０に記憶された推定テーブルを用いて推定し得る。推定されたビット数は合計され得、図２を参照して記載されるように、モード決定ブロック２３０に提供され得る。推定されたビットレートは、図３のエントロピー符号器３００などのエントロピー符号器によって提供されるビットストリームのビットレートを制御するために用いられ得る。
【００４７】
図５は、本発明の実施形態に従うビット数推定モジュール５００の略図である。ビット数推定モジュール５００は、図３のビット数推定モジュール３０４を実装するために用いられ得、２値化およびコンテクストモジュール５１０、５１２、および推定モジュール５２０、５２２、５２４を備え得る。２値化およびコンテクストモジュール５１０、５１２は、図４の２値化およびコンテクストモジュール４１０と類似し得、推定モジュール５２０、５２２、５２４は、図４の推定モジュール４２０と類似し得る。ビット数推定モジュール５００は、加算器５３０、５３２、および積算器５４０をさらに含み得る。２値化およびコンテクストモジュール５１０、５１２は、例えば図３の空間コンテクストモジュール３１０から、各々の構文要素および空間コンテクストを受容し得る。２値化およびコンテクストモジュール５１０、５１２はそれぞれ、受容された構文要素を２値化してそれぞれの複数のビンを生成し得、上述のとおりそれぞれのビンにコンテクストを割り当て得る。それぞれのビン、状態、およびＭＰＳに基づき、各々の推定されたビット数が推定モジュール５２０、５２２、５２４によって提供され得る。推定されたビット数は、加算器５３０、５３２によってまとめられ、図５に示されるように積算器５４０に提供される。積算器５４０は、例えばマクロブロックの合計ビット数が推定されるまで、受容されたビット数を格納および／または合計し得る。合計ビット数は、上述のとおり、図２のモード決定モジュール２３０などのモード決定モジュールに提供され得る。
【００４８】
図５に図示されるような一実施形態において、２値化およびコンテクストモジュール５１０は、マクロブロックモードを含む構文要素を受容し得、２値化およびコンテクストモジュール５１２は、差分動きベクトルおよび量子化係数を含む構文要素を受容し得る。２値化およびコンテクストモジュール５１０、５１２はそれぞれ、ビン、状態、および最も確率の高いシンボルを、推定モジュール５２０、５２２、５２４などの各々の推定モジュールに提供し得る。これは、例えば、ビット数が並行して推定されることを可能にし得る。いくつかの例において、推定モジュール５２０、５２２、および５２４は、ビット数を同時に、または少なくとも部分的に同時に推定し得、それぞれの構文要素のビット数が順次に推定された場合に比べて、マクロブロックのビット数が少ない時間で推定されることを可能にする。
【００４９】
例えば、２値化およびコンテクストモジュール５１２が差分動きベクトルおよび量子化係数の構文要素を受容し得るため、これらの構文要素のうちのいくつかは２進値化であり得、加算器５３２にバイパスされる。その上、構文要素から生成される１つ以上のビンが推定モジュール５２４に提供され得、構文要素の残りのビンが推定モジュール５２２に提供され得る。一実施形態において、２値化およびコンテクストモジュール５１２は、ビンに割り当てられたコンテクストに基づいて、推定モジュールにビンを提供するように構成されるよう提供し得る。例えば、２つのビンが異なるコンテクストに割り当てられた場合、２値化およびコンテクストモジュールは、各々の推定モジュールにそれぞれのビンを提供し得る。
【００５０】
他の実施形態において、ビット数推定モジュール５００は、各々の構文要素を受容し得る追加的な２値化およびコンテクストモジュール（図示せず）を含み得る。一例として、マクロブロックモード、差分動きベクトル、および量子化係数は、各々の２値化およびコンテクストモジュールにそれぞれ提供され得る。その上、記載されるように、２値化およびコンテクストモジュール５１２は、構文要素の第１のビンを推定モジュール５２４に提供し得、残りのビンを推定テーブル５２２に提供し得る。いくつかの実施形態では、しかしながら、それぞれのビンについてのビット数の推定は、さらに並列化され得る。つまり、ビット数推定モジュール５００は、追加的な推定モジュール（図示せず）を備え得る。例えば、２値化およびコンテクストモジュール５１２などの２値化およびコンテクストモジュールは、第１の推定モジュールに第１のビン、状態、およびＭＰＳを、第２の推定モジュールに第２のビン、状態、およびＭＰＳを、第３の推定モジュールに残りのビン、状態、および最も確率の高いシンボルを提供するように構成され得る。任意の数のビンおよび／またはビット数が各々並行して生成および／または推定されるように、任意の数の２値化およびコンテクストモジュールおよび／または推定モジュールがビット数推定モジュール５００に用いられ得る。
【００５１】
ビット数推定モジュール５００は、並行して配置される任意数の２値化およびコンテクストモジュールおよび／または推定モジュールを備えるため、例えば、マクロブロックのビットレートを推定するために必要な時間は低減され得る。図３を参照して、一実施形態において、ビット数推定モジュール５００は、ビットストリーム符号化モジュール３０２がＣＡＶＬＣを用いてマクロブロックを符号化するのと同一またはより速い速度で、ＣＡＢＡＣを用いて符号化するためのビットレートを推定し得る。これは図１の符号器１００などの符号器がリアルタイムで動作することを可能にし得る。
【００５２】
前述から、本発明の特定の実施形態が本明細書で例証の目的で記載されているが、本発明の精神および範囲から逸脱することなく種々の修正が行われてもよいことが理解されるであろう。したがって、本発明は、添付の特許請求の範囲によるものを除いて制限されない。
【図１】
2015516780.tif 000003
【図２】
2015516780.tif 000004
【図３】
2015516780.tif 000005
【図４】
2015516780.tif 000006
【図５】
2015516780.tif 000007
【国際調査報告】
2015516780.tif 000008
2015516780.tif 000009