JP5231391B2 - ビデオ圧縮に関連する情報を符号化および復号化する方法およびシステム - Google Patents

ビデオ圧縮に関連する情報を符号化および復号化する方法およびシステム Download PDF

Info

Publication number
JP5231391B2
JP5231391B2 JP2009503224A JP2009503224A JP5231391B2 JP 5231391 B2 JP5231391 B2 JP 5231391B2 JP 2009503224 A JP2009503224 A JP 2009503224A JP 2009503224 A JP2009503224 A JP 2009503224A JP 5231391 B2 JP5231391 B2 JP 5231391B2
Authority
JP
Japan
Prior art keywords
run
processor
encoding
zero
encoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009503224A
Other languages
English (en)
Other versions
JP2009531997A (ja
Inventor
バオ、イリアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009531997A publication Critical patent/JP2009531997A/ja
Application granted granted Critical
Publication of JP5231391B2 publication Critical patent/JP5231391B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Description

[関連出願]
本特許出願は、本願と同一の譲受人に譲渡された「ビデオ圧縮において構文要素を効率的に符号化する方法および装置(Method and Apparatus for Efficient Coding of Syntax Elements in Video Compression)」と題する2006年3月27日出願の米国仮特許出願第60/786,799号の優先権を主張するものであり、その内容を本願明細書中で参照として援用する。
[技術の分野]
本システムおよび方法は、一般的にビデオ処理に関する。特に本システムおよび方法は、ビデオ圧縮技術に関する情報の符号化および復号化に関する。
[背景]
ビデオ圧縮とは、デジタル・ビデオ・データの圧縮のことをいう。ビデオ圧縮は、ビデオ・データをビデオ・ファイル形式に効率的に符号化し、ビデオ形式をストリーミングおよびブロードキャスティングするために使用される。圧縮とは、より効率的に保存または送信できるように、ビット数のより少ない形式にデータを変換することである。圧縮の逆は解凍であり、これは元のデータの複製をつくる。
今日のビデオ圧縮方法では、離散コサイン変換(Discrete Cosine Transform:DCT)のような特定のタイプの離散変換を利用して、時間予測技術または空間予測技術のいずれかを使用して生成される予測残差(prediction residual)における残りの空間的冗長性を減らすものもある。ビデオ圧縮技術の中には量子化を含むものもある。量子化は、スカラー量子化、またはベクトル量子化のいずれかとすることができる。量子化の後、量子化係数は、エントロピー符号化され圧縮されたビデオ・ビットストリームに配置さればよい。続いて、圧縮されたビットストリームはビデオ復号器に送信される。ビデオ復号器は、ビットストリームを解凍し、元のビデオ・データの近似値を復元する。
ビデオ圧縮技術は、様々な形式の媒体の消費者にとって役立つであろう。例えば、放送エンジニアリングでは、ビデオ圧縮によりデジタル・テレビが実用化されるであろう。テレビ局は、高精細度テレビジョン(High-Definition television:HDTV)の多数の仮想チャネルを同じ物理チャネル上で放送できる。デジタル・ビデオ放送は、MPEG−2規格のビデオ圧縮形式のようなムービング・ピクチャー・エクスパーツ・グループ(Moving Picture Experts Group:MPEG)規格を使用してもよいが、H.264/MPEG−4およびVC−1がビデオ圧縮の新しい規格として現れつつある。
残念ながら、情報をビデオ圧縮に符号化する既知のシステムおよび方法では、様々な難点を持つことがある。よって、情報をビデオ圧縮に符号化するシステムおよび方法が改善されれば、有用となるであろう。
[詳細な説明]
ビデオ圧縮に関連する情報を符号化する方法およびシステムを説明する。ビデオ・シーケンスは、複数のフレームで処理される。この複数のフレームの各フレームは、複数のマクロブロック(macroblocks)で処理される。現在のフレームにおいて、マクロブロックの一部である元のビデオ信号の予測は、ビデオ・シーケンスから構築される。残差信号(residual signal)は、現在のフレームにおいて元のビデオ信号から元のビデオ信号の予測を差し引いて形成される。残差信号への変換が適用される。複数の変換係数が量子化される。シンボルが、残差信号の特徴を定義する少なくとも一つの構文要素(syntax element)であると識別される。同じカテゴリーの少なくとも一つの構文要素のシンボルは、まとめて符号化される。
符号化ブロック・パターンが符号化されてもよい。符号化ブロック・パターンは、ゼロのラン(runs of zeros)およびゼロ以外の値のランとして符号化されてもよい。符号化ブロック・パターンは、ゼロのランのみとして符号化されてもよい。符号化されたゼロのランの初期値とゼロ以外の値のランの初期値を示すために、初期値シンボルが符号化されてもよい。遷移シンボル(transition symbol)が挿入されて、現在のランのシンボルの値が、次の少なくとも一つの構文要素のシンボルのランでのシンボルの値にどのように変化するかを示してもよい。符号化される少なくとも一つの構文要素のシンボルについて最大ランレングス(maximum run length)が定義されてもよい。
マクロブロック・スキップ・シンボル(macroblock skip symbol)が符号化されてもよい。マクロブロック・タイプ・シンボル(macroblock type symbol)が符号化されてもよい。デルタ量子化パラメータ・シンボルが(delta quantization parameter)符号化されてもよい。
少なくとも一つの構文要素のシンボルは、多数のパターンでスキャンされてもよい。スキップ・フラグ・ビット(skip flag bit)が定義され、少なくとも一つの構文要素シンボルの特定のセットの符号化が抜かされてもよい。スキップ・フラグ・ビットは、上位レイヤ(enhancement layer)で定義されてもよい。上位レイヤ内の少なくとも一つの構文要素のシンボルは、基本レイヤ(base layer)内の構文要素の対応するシンボルに基づいて符号化されてもよい。
ビデオ圧縮に関連する情報を符号化するように構成された装置も開示される。この装置は、プロセッサと、プロセッサと電気的に通信するメモリとを含む。メモリには、命令が格納される。ビデオ・シーケンスが受信される。ビデオ・シーケンスは、複数のフレームで処理される。この複数のフレームの各フレームは、複数のマクロブロック(macroblocks)で処理される。マクロブロックの一部である元のビデオ信号の予測は、現在のフレームにおいてビデオ・シーケンスから構築される。残差信号は、現在のフレームにおいて元のビデオ信号から元のビデオ信号の予測を差し引いて形成される。残差信号への変換が適用される。複数の変換係数が量子化される。シンボルは、残差信号の特徴を定義する少なくとも一つの構文要素であると識別される。同じカテゴリーの少なくとも一つの構文要素のシンボルは、まとめて符号化される。
ビデオ圧縮に関連する情報を符号化する実行可能命令を含むコンピュータ可読媒体も開示される。ビデオ・シーケンスが受信される。ビデオ・シーケンスは、複数のフレームで処理される。この複数のフレームの各フレームは、複数のマクロブロックにおいて処理される。マクロブロックの一部である元のビデオ信号の予測は、現在のフレームにおいてビデオ・シーケンスから構築される。残差信号は、現在のフレームにおいて元のビデオ信号から元のビデオ信号の予測を差し引いて形成される。残差信号への変換が適用される。複数の変換係数が量子化される。シンボルは、残差信号の特徴を定義する少なくとも一つの構文要素であると識別される。同じカテゴリーの少なくとも一つの構文要素のシンボルは、まとめて符号化される。
ビデオ圧縮に関連する情報を復号する方法も開示される。符号化されたビデオ・シーケンスが受信される。同じカテゴリーの複数のシンボルがまとめて復号される。複数の変換係数が逆量子化(dequantized)される。残差信号への逆変換が適用される。復号されたビデオ・シーケンスが構築される。
ビデオ圧縮に関連する情報を復号するように構成された電子デバイスも開示される。この電子デバイスは、プロセッサと、プロセッサと電気的に通信するメモリとを含む。メモリには、命令が格納される。符号化されたビデオ・シーケンスが受信される。同じカテゴリーの複数のシンボルがまとめて復号される。複数の変換係数が逆量子化される。残差信号への逆変換が適用される。復号されたビデオ・シーケンスが構築される。
ビデオ圧縮に関連する情報を符号化するように構成された装置が開示される。この装置は、処理する手段と、ビデオ・シーケンスを受信する手段とを含む。複数のフレームでビデオ・シーケンスを処理する手段と、複数のフレームの各フレームを複数のマクロブロックで処理する手段とが開示される。マクロブロックの一部である元のビデオ信号の予測を、ビデオ・シーケンスから現在のフレーム中に構築する手段と、現在のフレームにおいて、元のビデオ信号から元のビデオ信号の予測を差し引いて残差信号を形成する手段とが開示される。残差信号に変換を適用する手段と、複数の変換係数を量子化する手段とが開示される。残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別する手段と、同じカテゴリーの少なくとも一つの構文要素のシンボルをまとめて符号化する手段も開示される。
ここで図面を参照しながらシステムおよび方法の様々な特徴を説明するが、同じ参照符号は同じ要素、または機能的に同様な要素を示している。本願明細書の図面に全般的に記載され例示されるような本システムのシステムおよび方法の特徴は、多種多様の異なる構成にアレンジし設計することもできる。したがって、以下の詳細な説明は、本出願にかかるシステムおよび方法の範囲を制限するものではなく、単にシステムおよび方法の典型例を示すものである。
本願明細書で開示される構成の多くの機能は、コンピュータ・ソフトウェア、電子ハードウェア、またはそれら両方の組み合わせとして実装されてもよい(図11を参照)。このハードウェアとソフトウェアとの互換性を明らかに例示するために、様々なコンポーネントを、概してその機能の観点から説明する。このような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課された設計制約によって決まる。当業者は、ここで説明された機能を各アプリケーションについて様々な方法で実装することもできるが、このように実装を決定することは、本システムおよび方法の範囲を逸脱していると解釈されるべきではない。
説明される機能はコンピュータ・ソフトウェアとして実装される場合、このようなソフトウェアは、メモリ・デバイス内に置かれる、および/またはシステム・バスもしくはネットワーク上で電子信号として送信される任意のタイプのコンピュータ命令またはコンピュータ/マシン実行コードを含んでいればよい。本願明細書に記載のコンポーネントに関連する機能を実装するソフトウェアは、単一の命令または多くの命令を備えていてもよく、いくつかの異なるコード・セグメント、様々なプログラム間、いくつかのメモリ・デバイスにわたって分散されてもよい。
ビデオ符号化では、ビデオ・フレームは階層的に符号化される。フレームは、マクロブロックに分割される。各マクロブロックは、一般的に16×16のサイズの輝度ブロック(Y)から構成される。マクロブロックは、色差(chrominance)Cbのブロックと、色差Crのブロックから構成される。色差ブロックのサイズは、カラー・フォーマット(color format)によって決まる。YCbCr420カラー・フォーマットでは、各色差ブロックのサイズは8×8になる。本出願の目的では、ビデオはフォーマットYCbCr420を用いてYCbCr色空間で符号化される。ただし、本システムおよび方法は、他の色空間およびカラー・フォーマットにも適用されてもよい。
ビデオ符号器では、予測、変換、および量子化などの一般的なビデオ圧縮処理の後の次のステップでは、構文要素および量子化係数についてエントロピー符号化を実行して、ビットストリームを形成する。ビデオ復号器では、逆の処理が行われる。構文要素および量子化係数は、ビットストリームから復号される。続いて、逆量子化および逆変換が行われる。最後に、再構築された残差が予測に追加され、ビデオ信号が再構築される。
この構文要素の一つの例には、符号化ブロック・パターン(coded block pattern:CBP)がある。CBPは、マクロブロック中に非ゼロ量子化係数があるか、およびそれらがブロック・レベルでどのように分散されるかを示す。H.264/アドバンス・ビデオ符号化(Advanced Video Coding:AVC)規格では、マクロブロックが符号器によってスキップされなければ、ビットストリームの中で輝度(luma)CBPおよび色差(chroma)CBPが送信される。輝度CBPは、一つのビットが四つの8×8ブロックの各々に対応する4ビットで構成される。輝度CBPビットがゼロの場合、対応する8×8ブロックには非ゼロ係数がないことを意味する。よって、輝度CBPは、0〜15の値を持つことができ、色差CBPは0〜2の値を持つことができる。マクロブロックCBPは、輝度CBPと色差CBPとから形成され、符号番号(code number)にマッピングされる。この符号番号は、例えば指数ゴロム(Exponential Golomb)符号を使用して符号化され、ビットストリームに追加される。ただし、各マクロブロックCBPが個別に送信されるので、隣接のマクロブロックの符号化ブロック・パターン間の相関性が活用されないため、この符号方法は最適ではないことがある。
現在、ISO/IEC MPEGおよびITU−T VCEGからのビデオ符号化の専門家で構成される共同ビデオチーム(Joint Video Team:JVT)は、H.264/AVCへのスケーラブル・ビデオ符号化(Scalable Video Coding:SVC)の拡張に取り組んでいる。JVTにより進められている最新の開発は、粗SNR(Signal-to-noise)スケーラビリティ、細粒度SNRスケーラビリティ(fine granularity SNR scalability:FGS)、空間スケーラビリティ、および時間スケーラビリティを持つビットストリームを可能にするものである。粗SNRスケーラビリティおよび時間スケーラビリティ・レイヤでは、輝度CBPおよび色差CBPは、基本レイヤで符号化されるのと同じ方法で符号化されるため、これらのレイヤは基本レイヤでの問題と同様の問題を抱える。
FGSレイヤでの輝度符号化ブロック・パターンを符号化する一つの方法は、基本レイヤ中の輝度CBPに基づいて、マクロブロック内の四つの輝度CBPビットを二つのグループに分割するものである。基本レイヤでの対応する輝度CBPビットがゼロである上位レイヤの輝度CBPビット(タイプ0 CBPビット)は、基本レイヤでの対応する輝度CBPビットが非ゼロ上位レイヤの輝度CBPビット(タイプ1 CBPビット)とは別に符号化される。基本レイヤの輝度CBPの値に基づいて、タイプ0ビットおよびタイプ1ビットの数は、一つのマクロブロックから別のマクロブロックへ固定されなくてもよい。ある技術では、グループのビット数が3未満の場合、固定長の符号を使用してタイプ0ビットまたはタイプ1ビットのいずれかを符号化する。グループのビットの数が3以上の場合、可変長符号化(variable length coding:VLC)が使用されてもよい。さらに、この符号化方式では、タイプ0ビットおよびタイプ1ビットのいずれかを符号化するのに使用されるVLCテーブルが、現在の確率推定に基づいて選択されるので、CBPビットの確率が維持されることが必要になる。この符号化方式は、スケーラブル・ビデオ符号化(SVC)の初期のバージョンにあった。
FGSレイヤの輝度CBPのような構文要素用のこのような符号化方式での問題は、その複雑さにある。輝度CBPビットのグループ化、確率モデルの維持、およびVLCテーブルの選択のような操作には、多くの演算を要することがある。隣接するマクロブロック中の類似する構文要素間の相関性が利用されないため、符号化の効率は低くなることがある。
図1は、情報を符号化する方法100を示すフローチャートである。一つの態様では、符号化される情報はビデオ・シーケンスを備えている。方法100はビデオ符号器内で実施されればよく、方法100の逆はビデオ復号器によって実行されればよい。符号器は、信号またはデータを符号化されたストリームに変えるために使用されるデバイスである。次いで、復号器がその符号から元の信号またはデータの再構築されたバージョンを生成すればよい。損失のない圧縮では、元の信号またはデータの再構築されたバージョンは、元の信号またはデータと一致する。損失のある圧縮では、元の信号またはデータの再構築されたバージョンは、元の信号またはデータの近似である。符号器および復号器は、まとめてビデオ・コーデックと称されてもよく、これはソース画像またはビデオ・シーケンスを圧縮された形式に符号化し、圧縮された形式を復号して複製またはソース・シーケンスの近似を生成する。ここでの説明では、符号器の観点から特定の構成の態様をいくつか取り上げる。ビデオ圧縮の当業者であれば、復号器は逆の処理を行って符号器によって符号化された信号またはデータを再構築できることは容易に分かるだろう。
方法100は、符号器がビデオ・シーケンスを受信することから開始する102。ビデオ・シーケンスは、複数のフレームに処理される104。複数のフレーム内の各フレームは、さらに複数のマクロブロックで処理される105。符号器は、隣接するビデオ・フレーム間または同じフレーム中のピクセル間の類似性を利用してビデオ・シーケンスの圧縮を開始し、現在のビデオ・フレーム中のマクロブロックの一部である元のビデオ信号の予測を構築する106。予測が1つ以上の過去のまたは未来のフレームから形成される場合、これを時間予測という。予測が同じフレーム中のピクセルから形成される場合、これを空間予測という。符号化された信号から予測信号を差し引くことによって、残差信号が形成される108。
方法100は、残差信号に変換を適用して110、残りの空間冗長性を減らす。この変換では、予測残差サンプルを、変換係数によって表される別の領域に変換する。これらの係数は、残差信号のさらにコンパクトな表現を提供するわずかな重要な係数を残し、重要でない値を削除するために、量子化される112。
予測、変換、および量子化の後、符号器は、残差信号の特徴を定義する少なくとも一つの構文要素のシンボルを識別する114。例えば、構文要素は、残差信号の量子化後にマクロブロックに非ゼロ係数があるかどうかを示す符号化ブロック・パターンを含んでいてもよい。
符号器は、同じカテゴリーの構文要素の識別されたシンボルをまとめて符号化する116。一つの態様では、エントロピー復号器がエントロピー符号化を行う。エントロピー符号器は、ビデオ・シーケンスの構文要素を表す一連のシンボル変換し、それらを送信または保存に適した圧縮されたビットストリームに含める118。構文要素の例には、mb_skip_flag(マクロブロックが符号器によってスキップされるかどうかを示す。マクロブロックがスキップされる場合、復号器が隣接するマクロブロックの(複数の)動きベクトルからそれらの動きベクトルを導き出し、マクロブロック用のすべての量子化係数を0に設定する。)、mb_type(マクロブロックがイントラ・モードまたはインター・モードで符号化されるかを決める。マクロブロックの分割サイズを決める。)、sub_mb_type(各サブマクロブロックに対しサブマクロブロックの分割サイズを決める。)、coded_block_pattern(非ゼロ変換係数がどのように分散されるかを識別する。)、mb_qp_delta(量子化器のパラメータを変える。)、および残差(量子化後の残差サンプルに対応する符号化された量子化変換係数)が含まれる。
方法100は、同じカテゴリーの構文要素シンボルまとめて符号化し116、符号化された情報をビットストリームに含める118。一つの構成では、符号器は同じカテゴリーの多数の構文要素をまとめて符号化する。例えば、ビデオ符号化およびエントロピー符号モード用のH.264規格がコンテキストベース適応可変長符号化(Context-based Adaptive Variable Length Coding:CAVLC)の状況では、個々のマクロブロックに対してmb_skip_flagを送信する代わりに、構文要素mb_skip_runが使用される。mb_skip_runが「n」の値を持つとき、「n」個のスキップされたマクロブロックの後にスキップされない一つのマクロブロックが続く。この情報は、圧縮されたビットストリーム中に符号なし数値の「n」の指数ゴロム符号を含めることによって伝えられる。指数ゴロム符号の定義は、H.264/AVCの仕様書の9.1節に記載されていると思われる。同じカテゴリーの多数の構文要素をまとめて符号化するエントロピー符号器のさらなる例が、図2に示されている。
図2は、図1で説明した方法に従って、交互ランレングス(Alternating Run Length)符号化を使用して圧縮されてもよいバイナリ・シンボル200の列の一つの構成である。図示されているように、列200は、六つの連続したゼロ202、七つの1(204)、三つのゼロ206、および一つの1(208)のランを含んでいる。六つのゼロ202のランはまとめてグループ化され、ランレングスR=6を提供する。次いで、Rはエントロピー符号器によって符号化される。Rの最小値が1であり、H.264/AVCの規則によって、指数ゴロム符号を使用して、0から始まる負ではない数が符号化に使用されるため、一つの態様では「R−1」が指数ゴロム符号を使用して符号化される。例えば、値が「6」のRは、指数ゴロム符号を使用して「00110」として符号化されるだろう。七つの連続したゼロ204のランはまとめてグループ化され、ランレングスR=7を提供する。次いでこのランレングスは、指数ゴロム符号を使用してエントロピー符号器によって「00111」として符号化される。三つのゼロ206のランおよび一つの1(208)を含むランも同様の方法で符号化される。バイナリ・シンボルの列200は、「00110 00111 011 1」を構成するビットストリームに圧縮される。続いてこのビットストリームは、復号器よって読み出され、バイナリ・シンボルの列が再現される。復号器では、ビットストリームから復号されるシンボル「S」を、式R=S+1を使用してランレングスRに変換することができる。
図2が示すように、非ゼロ値のラン(runs of nonzero values)と同様に、ゼロのランはまとめて符号化される。一つの構成では、エントロピー符号器は、指数ゴロム符号を使用してランレングスを符号化する。二つのめの構成では、ランレングスは、別のタイプの可変長符号に符号化されてもよく、別の符号化方式を使用して符号化されてもよい。
交互ランレングス符号化では、図2で説明されるように、初期値を符号化して、最初のランに符号化されるバイナリ・シンボルの値を導き出すのに役立ててもよい。一つの構成では、この初期値は、最初のランに符号化されるバイナリ・シンボルの逆と等しくなるように設定される。例えば、最初のランに符号化されるバイナリ・シンボルが0の場合、初期値は1に設定されることになる。構文要素の復号処理において、バイナリ・シンボルの値は新しいランが復号される度に変わるので、初期値を符号化することは有効である。図2で提供された例に従うと、符号化される初期値は1である。復号器が初期値の後に六つのシンボル202の新しいランを検出すると、構文要素の値は初期値1から0へ変更され、復号器は六つの値をゼロとして復号する。七つのシンボル204の新しいランを検出すると、構文要素の値は0から1に変更され、復号器は七つの値のランをそれぞれ1として復号する。この処理は、復号器が復号するシンボルのランを検出しなくなるまで続く。
図3は、図1で説明した方法に関連して使用されてもよい符号化方式の別の態様である。このさらなる態様は、ゼロラン(Zero Runs)符号化と称してもよい。この方式は、H.264/AVCでmb_skip_flagフラグを符号化する際に使用されている。図3に示されているように、バイナリ値の列300が圧縮されようとしている。ゼロラン符号化を使用して、非ゼロ値の前のゼロのランだけが符号化される。一つの構成では、指数ゴロム符号を使用してゼロランを符号化する。図示されているように、最初の非ゼロ値304の前に四つのゼロ値302がある。四つのゼロ値302および最初の非ゼロ値304は、指数ゴロム符号を使用して「00101」と符号化される値「4」を割り当てられる。続いてこの符号は、ビットストリームに追加される。次の五つのゼロ値306およびこれに続く2番目の非ゼロ値308は、値「5」を割り当てられ、指数ゴロム符号を使用して「00110」と符号化される。この符号は同様に、復号器に送信されるビットストリームに追加される。図示されているように、2番目の非ゼロ値308の直後に3番目の非ゼロ値310が続く。3番目の非ゼロ値310は、「0」の値を割り当てられる。これは、指数ゴロム符号を使用して「1」として符号化され、ビットストリームに追加されればよい。残りの二つのゼロ値312およびこれに続く4番目の非ゼロ値314は、値「2」を割り当てられ、指数ゴロム符号を使用して「010」と符号化される。結果、復号器に送信されるビットストリームは「00101 00110 1 011」である。図3に示されるようなゼロラン符号化では、初期フラグ値をビットストリームに送信する必要がない。
図4は、符号化されるランレングスを制限する一つの構成400を示している。高解像度のビデオでは、いくつかの構文要素の最大ランレングスが非常に長いことがある。例えば、解像度1920×1080のビデオでは、輝度coded_block_pattern(CBP)の最大ランレングスは、(1920×1080)/64=32,400となるであろう。エントロピー符号器が指数ゴロム符号を使用してこのシンボルのランを符号化すると、符号は29ビットで構成されることになる。一つの態様では、符号化される最大ランレングス(maximum run length:MR)に上限が定義されてもよい。
復号器によって復号されたランレングスが定義されたMRよりも大きい場合、例えば「MR+1」の場合、実際のランレングスは、MRにビットストリーム中の次の符号化シーケンスから復号された追加のランレングスを加えたものなどとなる。例えば、図4は、指数ゴロム符号を使用して符号化される、五つの様々な長さのラン402、404、406、408、および410を示している。これらのシンボルのランは、三つのゼロ402、13個の1(404)、14個のゼロ406、15個の1(408)、および31個のゼロ410で構成されている。一つの構成では、一つの符号化シンボルから復号できる上限MRは、14の制限に設定される。三つのゼロ402のランシーケンスは、「011」として符号化されてもよい。13個の1(402)のランシーケンスは、「0001101」として符号化されてもよい。14個のゼロ406のランは、「0001110」として符号化されてもよい。15個の1(408)および31個のゼロ410の残りの二つのランは、上限MRの14よりも大きい。一つの構成では、15個の1(408)のランレングスは、二つの指数ゴロム符号「0001111 1」として符号化される。最初の符号から復号されるランレングス「0001111」は15である。しかし、上限MRは14と定義されている。復号された値15というのは、現在のランレングスは少なくとも14で、実際のランレングスを得るためにはさらなる指数ゴロム符号を復号しなければならないことを意味している。次の符号から復号されるさらなるランレングスは1である。復号後、実際のランレングスはMR、つまり14と、1などのさらに復号されたランレングスとを加えたものである。したがって、復号されるランレングスは15になる。
さらなる例として、31個のゼロ410のランシーケンスが符号化される場合を考える。31個のゼロ410のランレングスは、三つの指数ゴロム符号「001111 0001111 011」として符号化される。最初の符号から復号されるランレングスは15である。上限MRは14と定義されているので、復号された値15というのは、実際のランレングスは少なくとも14で、指数ゴロム符号をさらに復号し、以前に復号されたランレングスに追加されなければならないことを意味している。2番目の符号から復号されるランレングスも15であり、これは、実際のランレングスは少なくとも28(14+14)で、指数ゴロム符号をさらに復号し、以前に復号されたランレングスに追加されなければならないことを意味している。3番目の符号から復号されるランレングスは3である。これは、上限MRの14を下回るので、このランシーケンスの復号は終了する。続いて、復号されたランレングスは合計され(14+14+3)、31個のゼロのランシーケンスが再現される。
図5は、図1および図2で説明した交互ランレングス符号化方式を使用して、特定のタイプの構文要素coded_block_pattern(CBP)を符号化する一つの構成500を示すブロック図である。以下の図面および説明のいくつかでは、CBP構文要素の符号化を取り上げるが、本システムおよび方法が、このような構文要素の符号化および復号化のみに限定されることを意味するものではない。
前述のように、CBP構文要素は、どの8×8ブロック(輝度および色差)が符号化された非ゼロ変換係数を含んでいるかを識別する。図5は、五つのマクロブロック504、506、508、510、および512中の五つの別々の16×16輝度ブロックを示している。各16×16輝度ブロックは、さらに四つの8×8輝度ブロックに分割される。各8×8輝度ブロックは、符号化された非ゼロ変換係数を含んでいてもいなくてもよい。隣接する相関関係のために、隣接する8×8ブロックの輝度CBPビットはしばしば同じ値になる。図示された構成では、エントロピー符号器を使用して、8×8輝度ブロックが符号化された変換係数を含んでいるか否かを示しているシンボルのランシーケンスを符号化する。一つの構成では、「0」のシンボルは、特定の8×8輝度ブロックが符号化された変換係数を含んでいないことを示し、「1」のシンボルは、輝度ブロックが符号化された非ゼロ変換係数を含んでいるかもしれないことを示している。一つの態様では、エントロピー符号器は、指数ゴロム符号を使用してシンボルのランを符号化する。
図5に示されるように、エントロピー符号器は、ジグザグ・タイプのパターンによってシンボルのランシーケンスを符号化する。マクロブロック504の最初の三つの8×8輝度ブロックは、シンボル「0」を含んでおり、これはこれらのブロックが符号化された変換係数を含んでいないことを示す。エントロピー符号器は、指数ゴロム符号を使用してラン「3」を符号化し、結果として符号「011」がビットストリームに追加される。最初の16×16のマクロブロック504の4番目の8×8輝度ブロックは、シンボル「1」を含んでおり、これは8×8輝度ブロックが符号化された非ゼロ変換係数を含んでいるかもしれないことを示す。図示されているように、マクロブロック506の四つのすべての8×8輝度ブロック、およびマクロブロック508の最初の8×8輝度ブロックは、シンボル「1」を含んでいる。エントロピー符号器は、指数ゴロム符号を使用してラン「6」を「00110」として符号化し、この符号がビットストリームに追加される。ラン「6」は、1の連続したランがジグザグ・パターンを使用して六つの8×8輝度ブロックにわたって存在するので符号化される。エントロピー符号器は、マクロブロック508の残りの8×8輝度ブロック中のシンボルの符号化を続ける。ランシーケンスは、「1」として符号化されるシンボル「0」を持つ一つの8×8輝度ブロック、「1」として符号化されるシンボル「1」を持つ一つの8×8輝度ブロックで構成される。マクロブロック508の最後の8×8輝度ブロックのほか、マクロブロック510および512の残りの八つの8×8輝度ブロックはすべて、シンボル「0」を含んでいる。したがって、シンボル「0」を持つ九つの8×8輝度ブロックのランシーケンスがある。エントロピー符号器は、指数ゴロム符号を使用してラン「9」を「0001001」として符号化する。
エントロピー符号器が、図示された五つのマクロブロックの輝度CBPを符号化した後、復号器にビットストリーム「1 011 00110 1 1 0001001」が送信される。ビットストリームの最初の値「1」は、初期輝度CBPビット502を表し、これは値1の1ビットのフラグである。一つの構成では、初期CBP502の値は、復号される最初のランシーケンス中のバイナリ・シンボルの値の反転である。
図5で符号化されたビットストリームの復号処理は、復号器がビットストリームから初期CBP502の値を読み出すことによって開始する。この初期値は、符号器が、最初のランシーケンス中のシンボルの値を引き出すのに役立つ。復号された次の値は「011」であり、これはスキャン順(scanning order)中の三つのCBPビットのランレングスがゼロであることを示す。次に復号された値は「00110」であり、これはスキャン順中の六つのCBPビットのランレングスが「1」であることなどを示す。
図6は、複数のマクロブロック604、606、608、610、および612内のCBPビットをスキャンする別の構成600を示すブロック図である。エントロピー符号器は、図5で説明した方法と同じ方法でランシーケンスを符号化するが、エントロピー符号器は、ランレングスを統計的に増やし、符号化されるランの数を減らすために、一つの8×8ブロックから別のブロックまでの距離が最小になるようにマクロブロックを違った方法でスキャンしてもよい。最初のランシーケンスの値を示すために、初期値602も符号化され、ビットストリームに追加される。
図7は、SNR上位レイヤなどの上位レイヤにおいて輝度CBPを符号化する方法700の一つの構成を示すフローチャート図である。以下の説明では、SNR上位レイヤは、FGS SNRレイヤまたは粗粒度SNRレイヤのいずれかとすることができる。符号化される輝度CBPがSNR上位レイヤにある場合、この上位レイヤのCBPは、基本レイヤのCBPとの強い相関関係を持つ。図7に示される方法700は、上位レイヤの輝度CBPが符号化されるか否かを示している。
この方法は、702で開始し、上位レイヤの現在の8×8ブロックに対応する基本レイヤの8×8ブロックに非ゼロ変換係数があるかどうかを判断する704。基本レイヤの対応する8×8ブロックに、非ゼロ係数があることを示す「1」のシンボルがある場合、この方法は、引き続き上位レイヤの現在の8×8ブロックがさらに四つのサブブロックとして符号化されるかどうかを判断する706。上位レイヤの現在の8×8ブロックがさらに四つのサブブロックに符号化される場合、現在の8×8ブロックの輝度CBPビットは符号化されない708。そうでない場合、704、706の二つの条件のいずれかが満たされなければ、現在の8×8ブロックの輝度CBPビットは明示的に符号化される710。
基本レイヤの8×8ブロックは、基本レイヤの8×8ブロックに非ゼロ係数があることを示すシンボル「1」を含んでいてもよい。SNR上位レイヤの輝度CBPビットが符号化されず、「1」の値があると推測されると、1ビットが保存される。これは、この値が明示的に符号化される必要がなかったためである。しかし、上位レイヤの輝度CBPの実際の値が「0」の場合、上位レイヤの輝度CBPの値の誤予測がさらに低い構文レベルにおいて修正されてもよい。上位レイヤの8×8ブロックが、各サブブロックについて四つのサブブロックとして符号化される場合、サブブロックに非ゼロ係数があるかどうかを示すために、さらなる構文要素がビットストリーム中で符号化される。8×8ブロック・レベルでのこの上位レイヤの輝度CBPビットの誤予測は、サブブロック・レベルにて比較的小さいオーバーヘッドで修正されてもよい。図7の方法700によって示されるさらなる制約では、基本レイヤの8×8の対応するブロックに、非ゼロ係数を示す輝度CBPビットがあることが必要であるほか、上位レイヤの8×8ブロックが、上位レイヤの8×8ブロックCBPビットが符号化されないことになる前に、四つのサブブロックとして符号化されることが必要になる。
一つの構成では、基本レイヤの対応する輝度CBPビットがゼロであるか、8×8ブロックが四つのサブブロックとして符号化されないので上位レイヤ輝度CBPビットが明示的に符号化されなければならないかのいずれかの場合に、交互ランレングス符号化が上位レイヤの輝度CBPビットに適用される。一つの構成では、符号化されることになる上位レイヤの輝度CBPビットは、二つの別のスキャンによって符号化されてもよい。FGSレイヤで輝度CBPを符号化する一つのシステムでは、基本レイヤの対応する輝度CBPビットが0である輝度CBPビットは、タイプ0輝度CBPビットといい、基本レイヤの対応する輝度CBPビットが1である輝度CBPビットはタイプ1輝度CBPビットという。各スキャンでは、輝度CBPビットの一つのタイプが、交互ランレングス符号化を使用して符号化される。二つのスキャンは順に行われても、同時に行われてもよい。別の構成では、基本レイヤのCBP情報は、上位レイヤでの輝度CBPの符号化では無視される。
図8は、図7に従って説明した方法700の一つの構成800を示すブロック図である。図示されているように、SNR上位レイヤのマクロブロック804、806、808、810、および812内の五つの16×16輝度ブロックがエントロピー符号器によって符号化される。一つの構成では、エントロピー符号器は、マクロブロックの各8×8ブロック用の輝度CBPビットを符号化する。示されているように、最初のマクロブロック804の三つの8×8ブロックにはシンボル「0」があり、これらの8×8ブロックに非ゼロ係数がないことを示している。最初のマクロブロック804内の4番目の8×8ブロック804Aは、非ゼロ係数があることを示すシンボル「1」のを持つ基本レイヤ中の8×8ブロックに対応する。一つの構成では、4番目の8×8ブロック804Aは、さらにサブブロックに符号化される(図示せず)。図示されているように、エントロピー符号器は、この4番目の8×8ブロック804Aを抜かして、この4番目の8×8ブロック804Aに関連する輝度CBPビットを明示的に符号化しない。基本レイヤの対応する8×8ブロックに「1」のCBPビットがあり、8×8ブロック804Aはさらにサブブロックに分割されるので、輝度CBPビットはシンボル「1」を持っていると推測される。一つの構成では、エントロピー符号器は、指数ゴロム符号を使用して、三つのゼロのランシーケンスを「011」として符号化し、これをビットストリームに含める。
エントロピー符号器は、さらにマクロブロック806中の2番目の16×16輝度ブロックをスキャンする。四つの8×8ブロックのうち三つに、非ゼロ係数があることを示すシンボル「1」がある。4番目の8×8ブロック806Aは、非ゼロ係数が基本レイヤにあることを示しているシンボル「1」を持つ、基本レイヤ中の8×8ブロックに対応する。一つの構成では、この4番目の8×8ブロック806Aは、さらにサブブロックに符号化される(図示せず)。エントロピー符号器は、この4番目の8×8ブロック806Aを抜かして、このようなブロックに関連する輝度CBPを明示的に符号化しない。エントロピー符号器は、マクロブロック中の残りの8×8ブロックをスキャンし、サブブロックとしてさらに符号化され基本レイヤの対応する8×8ブロックにシンボル「1」のある8×8ブロック810Aを抜かして、同様の方法で符号化を続ける。初期ビット802が「1」に設定されたビットストリーム「1 011 00101 0001001」が復号器に送信される。これは初めに符号化された輝度CBPビットの値の反転である。
図9は、上位レイヤで交互ランレングス符号を利用する一つの構成900のブロック図を示している。ここでは、mb_skip_flagビットが定義され、マクロブロック910全体の符号化を抜かしている。図9に示されるマクロブロック904、906、および908中の最初の三つの16×16輝度ブロックは、図8に示されたものと同じである。エントロピー符号器は、8×8ブロックがさらにサブブロックに符号化されず、基本レイヤの対応する8×8ブロックに「1」の値がない限り、マクロブロックの各8×8ブロックをスキャンし、輝度CBPビット値を符号化する。先に図7および図8で説明したように、これらの8×8ブロック904Aおよび906Aは抜かされ、それらの対応する輝度CBPビットは符号化されない。一つの構成では、マクロブロック910の16×16輝度ブロック全体がエントロピー符号器によって抜かされてもよい。mb_skip_flagビットが定義され、その値が1の場合、符号器は現在のマクロブロックを飛ばす。マクロブロックが飛ばされた場合、輝度CBPビットおよび色差CBPビットの両方がゼロであると推測される。一つの構成では、エントロピー符号器は、現在のマクロブロックが完全に飛ばされるということを示すmb_skip_flag909をスキャンする。次の図では、エントロピー符号器が3番目のマクロブロック908に関連する輝度CBPビットのスキャンを完了すると、この復号器は4番目のマクロブロック910を飛ばし、5番目のマクロブロック912の輝度CBPビットのスキャンを続ける。輝度CBPに関連する結果のビットストリームは、初期CBPビット902が「1」である「1 011 00101 00110」となる。これは最初のランで輝度CBPビットが符号化された値の反転である。このビットストリームは、復号器に送信される前に他の構文要素から形成されたビットストリームでインターリーブされてもよい。
説明したように、mb_skip_flagが、粗粒度上位レイヤまたは細粒度SNR上位レイヤとすることができるであろう上位レイヤの符号化において使用されてもよい。上位レイヤのスライスがイントラ予測(intra-predicted)されない場合。非スケーラブル・ビデオの符号化では、イントラ予測されたスライスが、現在のスライス内でのサンプルに基づいて予測されたスライスである。スケーラブル・ビデオ符号化では、上位レイヤのイントラ予測されたスライスは、予測が基本レイヤの対応するフレーム中のサンプルから構築できるように定義されてもよい。可変長符号化(VLC)がエントロピー符号化の方法として使用されるときには、mb_skip_flag’sは、H.264/AVC規格で定義されている方法と同じ方法を使用して、mb_skip_run’sとして符号化される。別の態様では、mb_skip_flagは、先に説明したように交互ランレングス符号化を使用して符号化される。
図10は、交互ランレングス符号化および遷移フラグ(transition flags)を使用して色差符号化されたブロック・パターンを符号化する一つの構成1000を示すブロック図である。図10のブロック図は、先に説明した色差ブロックに関連するさらなる構文要素を符号化するために使用されてもよい。四つのバイナリ・シンボルで構成される輝度CBPとは異なり、色差CBPは0〜2の範囲の値を持ってもよい。H.264/AVCおよびそのSVCの拡張では、CbブロックおよびCrブロックの両方に対し、単一の色差CBPが定義される。以下の説明では、特に示されない限り、色差ブロックはCbブロックおよびCrブロックの両方のことをいう。説明した方式と同じ方式を拡張して、別の定義を用いて色差CBPを符号化してもよい。色差CBPの取り得る値は三つのみであるため、特定の色差CBPは、一つの値から、他の二つの値のうちの一つの値にしか変わることができない。例えば、ランシーケンスの最後に現在の色差CBPが1の場合、次のランの色差CBPの値は0か2でなくてはならない。一つの構成では、1ビットの遷移フラグが新しい色差CBPの値を伝える。
図示されているように、最初の六つの色差ブロック1004は0の値の色差CBPを持ち、次の七つの色差ブロック1006は値2を持ち、次の四つの色差ブロック1008は値0を持ち、残りの五つの色差ブロック1010は値1を持っている。一つの構成では、エントロピー符号器は、指数ゴロム符号を使用してこれらの値を符号化する。六つのゼロ1004の最初のランは、「00110」として符号化される。値2を持つ七つのブロック1006のランは、「00111」として符号化される。1ビットの遷移フラグ(図示せず)は、これら二つの符号化されたランの間に挿入される。一つの構成では、遷移フラグは、値0または1を割り当てられて、次の符号化された色差ランシーケンスの色差CBP値を示してもよい。例えば、値1の遷移フラグが、ゼロの値を持つ色差CBPのランの後に挿入され、次の色差CBPのランが2の値を持つことを示してもよい。七つの連続したブロック1006のランに続き、エントロピー符号器は四つのゼロ1008のランのほか、五つの1(1010)のランも符号化する。値1の遷移フラグが、値2(1006)の色差CBPのランの後にビットストリームに挿入され、次の色差CBP1008のランが0の値を持つことなどを示してもよい。値0の遷移フラグが、値ゼロ1008の色差CBPのランの後にビットストリームに挿入され、次の色差CBP1010のランが1の値を持つことを示してもよい。一つの構成では、復号器は、最後の色差CBPおよび遷移フラグから新しい色差CBP値を次のように導き出す。新しい色差Cbp=(最後の色差Cbp+遷移フラグ+1)%3
遷移フラグは、別の方法で定義されてもよい。一つの構成では、遷移フラグは、符号器の最後の色差Cbpおよび新しい色差Cbpによってインデックスされるルックアップ・テーブルから取り出されてもよい。復号器では、最後の色差Cbpおよび遷移フラグから新しい色差Cbpを導き出すのに使用できる、整合するルックアップ・テーブルが定義される。最初のランの色差CBPの値を導き出すのに役立つよう、色差CBPに関連する他の何らかの情報が符号化される前に、ビットストリームに初期値が格納される。
さらなる態様では、値1の色差CBPのランおよび値2の色差CBPのランは区別されない。ゼロ色差CBPのランおよび非ゼロ色差CBPのランが符号化される。ランレングスを「n」と想定して、非ゼロ色差CBPの各ランが復号された後、それぞれの「n個の」色差CBP値が1であるか、2であるかを識別するためにさらなる「n個の」ビットが復号される。初期値は、色差CBPに関連する他の何らかの情報が符号化される前に、ビットストリームに格納される。交互ランレングス符号化を使用して最初の符号化される色差CBPが非ゼロ場合、初期値として0の値が使用される。それ以外の場合、初期値として1の値が使用される。
さらなる態様では、色差CBPのランは、図3で説明したゼロラン符号化方式に従って符号化されてもよい。非ゼロ色差CBPの前のゼロのランは、指数ゴロム符号を使用して符号化されてもよい。さらなる1ビットフラグが、非ゼロ色差CBP値が1か2であるかを示すために符号化される。この特徴は、連続した非ゼロ色差CBP値がまとめてグループ化されないという点で、前述の構成とは異なる。
図11は、デジタル画像および/またはデジタル・ビデオを処理するように構成されたデバイス1100を示している。デバイス1100は、デジタル・テレビ、デジタル・ダイレクト・ブロードキャスト・システム(digital direct broadcast system)、無線通信デバイス、パーソナル・デジタル・アシスタント(PDA)、ラップトップ・コンピュータ、デスクトップ・コンピュータ、デジタル・カメラ、デジタル記録デバイス、ネットワーク可能なデジタル・テレビ、携帯電話もしくは衛星ラジオ電話(satellite radio telephone)、またはビデオ電話通信(video telephony:VT)機能のある任意の電気通信デバイスを表すか、それらに実装されてもよい。
デバイス1100は、画像データおよび/またはビデオ・データを処理、符号化、復号化、伝送すればよい。ビデオ・データは、ビデオ・キャプチャ・ユニット(またはイメージ・センサ)1112のようなビデオ・カメラによってキャプチャされるか、ビデオ・アーカイブから取り込まれるか、別の方法で取得されてもよい。デバイス1100のビデオ符号化ユニット1110は、MPEG−4、ITU−T H.263、ITU−T H.264、または他の何らかのビデオ符号化規格のようなビデオ符号化規格を使用してもよい。ビデオ符号化ユニット1110は、動き推定および動き補償などのフレーム間符号化(inter-frame coding)技術、ならびに空間推定およびイントラ予測符号化技術などのフレーム内符号化(intra-frame coding)技術をサポートしていればよい。
デバイス1100は、カメラまたはビデオ・カメラのような画像/ビデオ・キャプチャ・デバイス1112を含み、画像またはビデオ・シーケンスをキャプチャし、キャプチャした画像またはシーケンスをメモリ1114に格納すればよい。画像/ビデオ処理ユニット1102は、画像および/またはビデオ・シーケンスを処理すればよい。メモリ1104は、このような処理の前後に画像および/またはビデオ・シーケンスを格納すればよい。
トランシーバ1116は、符号化されたビデオ・シーケンスを別のデバイスに対して送信および/または受信すればよい。トランシーバ1116は、符号分割多元接続(code division multiple access:CDMA)などの無線通信規格を使用すればよい。CDMA規格の例には、CDMA IxEV−DO、広帯域符号分割多元接続(Wideband Code Division Multiple Access:WCDMA)などを含む。
デバイス1100の1つ以上の要素は、通信バス1118を介して通信可能に接続されればよい。図1に示される要素に加えて、またはそれらの要素の代わりに、デバイス1100に他の要素が含められてもよい。図1に図示されたアーキテクチャは、単に例にすぎない。本願明細書に記載の技術は、他の様々なアーキテクチャによって実装されてもよい。
メモリ1114は、比較的大きいメモリ空間を持っていればよい。メモリ1114は、ダイナミック・ランダム・アクセス・メモリ(dynamic random access memory:DRAM)、またはFLASHメモリを備えていればよい。メモリ1114は、「NOR」もしくは「NAND」ゲート・メモリ技術、または他の何らかのデータ記憶技術を備えていてもよい。他の例では、メモリ1114は、不揮発性メモリまたは他の何らかのタイプのデータ記憶ユニットを備えていてもよい。
画像/ビデオ処理ユニット1102は、移動無線電話機または他の移動デバイス用のチップセットを備えていればよく、これにはハードウェア、ソフトウェア、ファームウェア、および/または1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processors:DSPs)、特定用途向け集積回路(application specific integrated circuits:ASICs)、フィールド・プログラマブル・ゲートアレイ(field programmable gate arrays:FPGAs)、またはそれらの様々な組み合わせを含めてもよい。処理ユニット1102は、フロントエンド画像/ビデオ処理ユニット1108および画像/ビデオ符号化ユニット1119に接続されたローカル・メモリ1104を含んでいてもよい。この符号化ユニット1119は、デジタル・ビデオ・データを符号化(すなわち圧縮)および復号(すなわち解凍)する符号器/復号器(コーデック)を備えていてもよい。
ローカル・メモリ1104は、メモリ1114と比べて小さく高速なメモリを備えていてもよい。例えば、ローカル・メモリ1104は、同期ダイナミックランダム・アクセス・メモリ(synchronous dynamic random access memory:SDRAM)を備えていてもよい。ローカル・メモリ1104は、処理ユニット1102の他のコンポーネントとともに組み込まれる「オンチップ」メモリを備え、プロセッサを駆使する符号化処理の間のデータへの高速なアクセスを提供してもよい。なお、メモリ1114および1104を一つのメモリに結合してもよく、他の多くの構成に実装されてもよい。メモリ・コントローラ1106は、ローカル・メモリ1104に対するメモリ・フェッチおよびライト・バックを制御してもよい。
フロントエンド画像/ビデオ処理ユニット1108は、ビデオ・シーケンスのフレーム上で1つ以上の画像処理技術を実行して画像品質を向上させ、これによってビデオ・シーケンスの品質を向上させる。例えば、フロントエンド画像/ビデオ処理ユニット1108は、デモザイキング(demosaicing)、レンズロールオフ補正(lens rolloff correction)、スケーリング、色補正、色変換、および空間フィルタリング(spatial filtering)のような技術を行えばよい。フロントエンド画像/ビデオ処理ユニット1108は、他の技術を実行してもよい。一般的に、ユニット1108によって行われる技術は、「フロントエンド」画像処理技術という。これは、この技術が画像/ビデオ符号化ユニット1110による符号化の前に行われるからである。
画像/ビデオ・キャプチャ・ユニット1112は、センサの表面に配置されたカラー・フィルタ・アレイ(color filter arrays:CFAs)を含むイメージ・センサを備えていればよい。ユニット1108によって行われるフロントエンド画像処理は、キャプチャ・ユニット1112によってキャプチャされるビデオ・シーケンスの品質を向上させればよい。例えば、フロントエンド処理ユニット1108および/または符号化ユニット1110は、キャプチャ・ユニット1112によってキャプチャされた画像を処理するようにプログラムされたデジタル信号プロセッサ(DSP)を備えていてもよい。メモリ1104(またはメモリ1114)の同じ領域が、フロントエンド画像処理目的および他の記憶目的の両方に使用されてもよい。
画像/ビデオ符号化ユニット1110は、フレーム間圧縮および/またはフレーム内圧縮のような1つ以上のビデオ圧縮技術を含めばよい、画像および/またはビデオ符号化を行ってもよい。例えば、符号化ユニット1110は、フレーム間圧縮を提供するために、時間的またはフレーム間データの相関性を利用する動き推定および動き補償技術を実装してもよい。代替的に、または付加的に、符号化ユニット1110は、フレーム内圧縮を提供するために、空間的またはフレーム内データの相関性を利用する空間推定およびイントラ予測技術を実装してもよい。動き補償(すなわちイントラ予測)の出力は、「残差」といい、符号化される現在のビデオ・ブロックと動き推定または空間推定によって識別される予測ブロックとの間の差を示すデータのブロックを備えていればよい。
符号化ユニット1110が動き補償(すなわちイントラ予測)を行って残差ができた後、残差をさらに符号化し、データをさらに圧縮するためのさらなるステップが行われてもよい。さらなるステップは、使用される符号化の規格によって異なることがあるが、一般的に「残差符号化(residual coding)」と称される。符号化ユニット1110は、これらのビデオ圧縮技術のうち1つ以上を行い、ビデオ・シーケンスのトランシーバ1116を介した他のデバイスとの通信に必要になるデータの量を減らしてもよい。
情報および信号は、任意の様々なテクノロジーおよび技術を使用して表されてもよい。例えば、上記説明全体にわたり参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁粒子(particle)、光場(optical fields)もしくは光粒子、またはそれらの任意の組み合わせによって表されてもよい。
さらに、本願明細書で開示された構成と関連して説明された、様々な例としての論理ブロック、モジュール、回路、およびアルゴリズム・ステップは、電子的ハードウェア、コンピュータ・ソフトウェア、またはその両方の組み合わせとして実装されればよい。このハードウェアおよびソフトウェアの互換性を明らかに例示するために、上記において様々な例としてのコンポーネント、ブロック、モジュール、回路、およびステップを概してその機能の観点から説明した。このような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課された設計制約によって決まる。当業者は、ここで説明された機能を各特定のアプリケーションについて様々な方法で実装することもできるが、このように実装を決定することは、本システムおよび方法の範囲を逸脱していると解釈されるべきではない。
本願明細書で開示された構成と関連する、様々な例としての論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ信号(field programmable gate array signal:FPGA)もしくは他のプログラマブル・ロジック・デバイス、ディスクリート・ゲートもしくはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、または本願明細書に記載の機能を実行するように設計されたそれらの組み合わせとともに実装または実行されればよい。汎用プロセッサは、マイクロプロセッサであってもよいが、別の方法ではプロセッサは、従来のプロセッサ、コントローラ、マイクロコントローラ、またはステート・マシンのいずれでもよい。プロセッサは、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つ以上のマイクロプロセッサ、または他の何らかのこのような構成の組み合わせのような、コンピューティング・デバイスの組み合わせとして実装されてもよい。
本願明細書での開示される構成に関連して説明された方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェア・モジュール、またはその二つの組み合わせの中に直接具現化されてもよい。ソフトウェア・モジュールは、ランダム・アクセス・メモリ(random access memory:RAM)、フラッシュ・メモリ、リード・オンリー・メモリ(read-only memory:ROM)、消去可能プログラマブル・リード・オンリー・メモリ(erasable programmable read-only memory:EPROM)、電気的消去可能プログラマブル・リード・オンリー・メモリ(electrically erasable programmable read-only memory:EEPROM)、レジスタ、ハードディスク、リームーバブル・ディスク、コンパクト・ディスク・リード・オンリー・メモリ(compact disc read-only memory:CD−ROM)、または当技術分野で周知の他の形式の記憶媒体の中ににあってもよい。例としての記憶媒体は、プロセッサが記憶媒体に対し情報を読み出し、および書き込みできるようにプロセッサに接続される。別の方法では、記憶媒体は、プロセッサに一体化されていてもよい。プロセッサおよび記憶媒体は、ASICの中にあってもよい。ASICは、ユーザ端末内にあってもよい。別の方法では、プロセッサおよび記憶媒体は、ユーザ端末内のディスクリート・コンポーネントとしてあってもよい。
本願明細書で開示された方法は、説明された方法を実現するための1つ以上のステップまたは行為を備える。この方法ステップおよび/または行為は、本システムおよび方法の範囲を逸脱することなく、互いに入れ換えられてもよい。つまり、構成を適切に動作させるために必要とされない限り、ステップまたは行為の特定の順序が特定のステップおよび/または行為の順序および/または使用は、本システムおよび方法の範囲を逸脱することなく変更されてもよい。
本システムおよび方法の特定の構成および適用が例示され説明されたが、このシステムおよび方法は本願明細書で開示された厳密な構成およびコンポーネントに限定されるものではないことは分かるであろう。本願明細書で開示された方法およびシステムの配置、動作、および詳細に対し、システムおよび方法の精神および範囲から逸脱することなく、当業者であれば分かる様々な変更、改変、および変形をしてもよい。
情報を符号化する方法を示すフローチャート。 交互ランレングス符号化を使用して圧縮され得るバイナリ・シンボルの列の一つの構成を示す図。 本システムおよび方法に従って使用され得る符号化方式のさらなる構成を示す図。 符号化されるランレングスを制限する一つの構成を示すブロック図。 特定のタイプの構文要素を符号化する一つの構成を示すブロック図。 特定のタイプの構文要素を符号化するさらなる態様を示すブロック図。 上位レイヤで輝度符号化ブロック・パターン(CBP)ビットを符号化する方法の一つの構成を示すフローチャート図。 図7に従って説明される方法の一つの構成を示すブロック図。 上位レイヤでの交互ランレングス符号化のさらなる構成を示すブロック図。 交互ランレングス符号化を使用して色差CBPを符号化するさらなる態様を示すブロック図。 デジタル画像および/またはデジタル・ビデオを処理するために一般的に使用される主なハードウェア・コンポーネントを示すブロック図。

Claims (21)

  1. ビデオ圧縮の方法であって、前記方法は、
    プロセッサが、一連のビデオ・フレームのマクロブロックを符号化すること、
    前記プロセッサが、前記マクロブロックについての符号化ブロック・パターンを生成すること、ここにおいて、前記符号化ブロック・パターンは、前記マクロブロックの異なるビデオ・ブロックが非ゼロ変換係数を含んでいるかを示すビットを含み、および
    前記プロセッサが、ランレングス符号化において定義された1つまたは複数のランが複数の前記マクロブロックに関連した複数の前記符号化ブロック・パターンのシンボルにまたがるように、前記符号化ブロック・パターンをまとめてランレングス符号化することと、
    を含む方法。
  2. 前記符号化ブロック・パターンをランレングス符号化することは、前記プロセッサが、ゼロのランおよび非ゼロ値のランを符号化することを含み、ここにおいて、ゼロの前記ランの少なくともいくつかと非ゼロ値の前記ランの少なくともいくつかは、前記符号化ブロック・パターンのうちの異なるものに関連したシンボルにまたがる、請求項1に記載の方法。
  3. 前記ランレングス符号化は、前記符号化されたゼロのランと非ゼロ値のランの初期値を示すために、前記プロセッサが、初期値シンボルを符号化することをさらに含む、請求項1に記載の方法。
  4. 前記符号化ブロック・パターンをランレングス符号化することは、前記プロセッサが、ゼロのランのみを符号化することを含み、ここにおいて、ゼロの前記ランの少なくともいくつかは前記符号化ブロック・パターンのうちの異なるものに関連したシンボルにまたがる、請求項1に記載の方法。
  5. 前記ランレングス符号化は、現在のシンボルのラン中のシンボルの値が、次のシンボルのラン中の他のシンボルの値にどのように変化するのかを示すために、前記プロセッサが、遷移シンボルを挿入することを含む、請求項1に記載の方法。
  6. 前記マクロブロックを符号化することは、前記プロセッサが、前記少なくとも一つのマクロブロック・スキップ・シンボルを符号化することを含む、請求項1に記載の方法。
  7. 前記マクロブロックを符号化することは、前記プロセッサが、少なくとも一つのマクロブロック・タイプ・シンボルを符号化することを含む、請求項1に記載の方法。
  8. 前記マクロブロックを符号化することは、前記プロセッサが、少なくとも一つのデルタ量子化パラメータ・シンボルを符号化することを含む、請求項1に記載の方法。
  9. 前記プロセッサが、前記符号化ブロック・パターンをまとめてランレングス符号化することに関連した最大ランレングスを定義することをさらに含む、請求項1に記載の方法。
  10. 前記符号化ブロック・パターンをランレングス符号化することは、前記プロセッサが、ラスタスキャン順で前記符号化ブロック・パターンのシンボルをスキャンすることを含む、請求項1に記載の方法。
  11. 前記ランレングス符号化は、前記プロセッサが、スキップ・フラグ・ビットを定義し、前記スキップ・フラグ・ビットに基づいたシンボルの特定のセットのランレングス符号化を抜かすことを含む、請求項1に記載の方法。
  12. 前記方法は、前記プロセッサが、基本レイヤと上位レイヤを生成することを含み、前記方法は、前記プロセッサが、前記上位レイヤにおいて前記スキップ・フラグ・ビットを定義することをさらに含む、請求項11に記載の方法。
  13. 前記方法は、前記プロセッサが、基本レイヤと上位レイヤを生成することを含み、前記方法は、前記プロセッサが、前記上位レイヤのシンボルを、前記基本レイヤの対応するシンボルに基づいて符号化することをさらに含む、請求項1に記載の方法。
  14. 前記符号化ブロック・パターンをランレングス符号化することは、前記プロセッサが、前記符号化ブロック・パターンのシンボルをラスタスキャン順に対応しない順序でスキャンすることを含む、
    請求項1に記載の方法。
  15. ビデオ圧縮を行う装置であって、前記装置は、
    プロセッサと、
    前記プロセッサと電気的に通信するメモリと、
    前記メモリに格納されている命令であって、前記プロセッサに、
    一連のビデオ・フレームのマクロブロックを符号化すること、
    前記マクロブロックについての符号化ブロック・パターンを生成すること、ここにおいて、前記符号化ブロック・パターンは、前記マクロブロックの異なるビデオ・ブロックが非ゼロ変換係数を含んでいるかを示すビットを含み、および
    ランレングス符号化において定義された1つまたは複数のランが複数の前記マクロブロックに関連した複数の前記符号化ブロック・パターンのシンボルにまたがるように、前記符号化ブロック・パターンをまとめてランレングス符号化することと、を実行させる命令と、
    を備える装置。
  16. 前記符号化ブロック・パターンのランレングス符号化において、前記プロセッサはゼロのランおよび非ゼロ値のランを符号化し、ここにおいて、ゼロの前記ランの少なくともいくつかと非ゼロ値の前記ランの少なくともいくつかは、前記符号化ブロック・パターンのうちの異なるものに関連したシンボルにまたがる、請求項15に記載の装置。
  17. ビデオ圧縮を行うプロセッサによって実行可能な命令を含むコンピュータ可読記録媒体であって、前記命令は、前記プロセッサに
    一連のビデオ・フレームのマクロブロックを符号化すること、
    前記マクロブロックについての符号化ブロック・パターンを生成すること、ここにおいて、前記符号化ブロック・パターンは、前記マクロブロックの異なるビデオ・ブロックが非ゼロ変換係数を含んでいるかを示すビットを含み、および
    ランレングス符号化において定義された1つまたは複数のランが複数の前記マクロブロックに関連した複数の前記符号化ブロック・パターンのシンボルにまたがるように、前記符号化ブロック・パターンをまとめてランレングス符号化することと、を実行させる
    コンピュータ可読記録媒体。
  18. 前記符号化ブロック・パターンのランレングス符号化において、前記命令は、前記プロセッサにゼロのランおよび非ゼロ値のランを符号化することを実行させ、ここにおいて、ゼロの前記ランの少なくともいくつかと非ゼロ値の前記ランの少なくともいくつかは、前記符号化ブロック・パターンのうちの異なるものに関連したシンボルにまたがる、請求項17に記載のコンピュータ可読記録媒体。
  19. ビデオ圧縮に関連する情報を復号する方法であって、前記方法は、
    プロセッサが、ランレングス符号化において定義された1つまたは複数のランが複数のマクロブロックに関連した複数の符号化ブロック・パターンのシンボルにまたがるように、まとめてランレングス符号化された前記符号化ブロック・パターンを含む符号化されたビデオ・シーケンスを受信すること、
    前記プロセッサが、シンボルを生成するために前記符号化ブロック・パターンをまとめて復号すること、
    前記プロセッサが、前記シンボルに基づいて複数の変換係数を生成すること、
    前記プロセッサが、前記複数の変換係数を逆量子化すること、
    前記プロセッサが、残差信号を形成するために前記変換係数に対して逆変換を適用すること、そして
    前記プロセッサが、前記残差信号に基づいて復号されたビデオ・シーケンスを構築することと、
    を含む方法。
  20. ビデオ圧縮に関連する情報を復号する電子デバイスであって、前記電子デバイスは、
    プロセッサと、
    前記プロセッサと電気的に通信するメモリと、
    前記メモリに格納されている命令であって、前記プロセッサに、
    ランレングス符号化において定義された1つまたは複数のランが複数のマクロブロックに関連した複数の符号化ブロック・パターンのシンボルにまたがるように、まとめてランレングス符号化された前記符号化ブロック・パターンを含む符号化されたビデオ・シーケンスを受信すること、
    シンボルを生成するために前記符号化ブロック・パターンをまとめて復号すること、
    前記シンボルに基づいて複数の変換係数を生成すること、
    前記複数の変換係数を逆量子化すること、
    残差信号を形成するために逆変換を前記変換係数に適用すること、そして
    前記残差信号に基づいて復号されたビデオ・シーケンスを構築することと、を実行させる命令と、
    を備える電子デバイス。
  21. ビデオ圧縮に関連する情報を符号化する装置であって、前記装置は、
    一連のビデオ・フレームのマクロブロックを符号化する手段、
    前記マクロブロックについての符号化ブロック・パターンを生成する手段、ここにおいて、前記符号化ブロック・パターンは、前記マクロブロックの異なるビデオ・ブロックが非ゼロ変換係数を含んでいるかを示すビットを含み、および
    ランレングス符号化において定義された1つまたは複数のランが複数の前記マクロブロックに関連した複数の前記符号化ブロック・パターンのシンボルにまたがるように、前記符号化ブロック・パターンをまとめてランレングス符号化する手段と、
    を備える装置。
JP2009503224A 2006-03-27 2007-03-27 ビデオ圧縮に関連する情報を符号化および復号化する方法およびシステム Expired - Fee Related JP5231391B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US78679906P 2006-03-27 2006-03-27
US60/786,799 2006-03-27
US11/469,646 US8848789B2 (en) 2006-03-27 2006-09-01 Method and system for coding and decoding information associated with video compression
US11/469,646 2006-09-01
PCT/US2007/065294 WO2007112417A2 (en) 2006-03-27 2007-03-27 Method and system for coding and decoding information associated with video compression

Publications (2)

Publication Number Publication Date
JP2009531997A JP2009531997A (ja) 2009-09-03
JP5231391B2 true JP5231391B2 (ja) 2013-07-10

Family

ID=38533377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009503224A Expired - Fee Related JP5231391B2 (ja) 2006-03-27 2007-03-27 ビデオ圧縮に関連する情報を符号化および復号化する方法およびシステム

Country Status (10)

Country Link
US (1) US8848789B2 (ja)
EP (1) EP1999971A2 (ja)
JP (1) JP5231391B2 (ja)
KR (1) KR100991411B1 (ja)
CN (1) CN101411196B (ja)
BR (1) BRPI0709078A2 (ja)
CA (1) CA2645230C (ja)
RU (1) RU2406258C2 (ja)
TW (1) TWI357266B (ja)
WO (1) WO2007112417A2 (ja)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442108B2 (en) * 2004-07-12 2013-05-14 Microsoft Corporation Adaptive updates in motion-compensated temporal filtering
US8340177B2 (en) * 2004-07-12 2012-12-25 Microsoft Corporation Embedded base layer codec for 3D sub-band coding
US8374238B2 (en) * 2004-07-13 2013-02-12 Microsoft Corporation Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US7845571B2 (en) * 2006-06-19 2010-12-07 Monro Donald M Data compression
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US8938009B2 (en) 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US9197903B2 (en) * 2007-10-17 2015-11-24 Stmicroelectronics S.R.L. Method and system for determining a macroblock partition for data transcoding
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
AU2007237313A1 (en) * 2007-12-03 2009-06-18 Canon Kabushiki Kaisha Improvement for error correction in distributed vdeo coding
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
KR101426272B1 (ko) * 2008-03-10 2014-08-07 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
US8711948B2 (en) * 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8948822B2 (en) 2008-04-23 2015-02-03 Qualcomm Incorporated Coordinating power management functions in a multi-media device
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8908763B2 (en) 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
US8964828B2 (en) 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
CN102210152A (zh) * 2008-10-06 2011-10-05 Lg电子株式会社 用于处理视频信号的方法和设备
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
KR20110009058A (ko) * 2009-07-20 2011-01-27 삼성전자주식회사 계층 구조의 영상 부호화/복호화에서 색 채널을 부호화/복호화하는 방법 및 장치
CN102648583B (zh) * 2009-10-05 2015-05-20 法国电信 用于编码和解码图像的方法、对应的编码和解码装置
JP2013510462A (ja) * 2009-11-04 2013-03-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メディアデータ及びメタデータの組み合わせを供給する方法及びシステム
WO2011121715A1 (ja) * 2010-03-30 2011-10-06 株式会社 東芝 画像復号化方法
KR101798079B1 (ko) * 2010-05-10 2017-11-16 삼성전자주식회사 픽셀값의 차분을 이용하여 영상 프레임을 부호화하는 방법 및 이를 위한 장치
CN106067973B (zh) 2010-05-19 2019-06-18 Sk电信有限公司 视频解码设备
US20120189052A1 (en) * 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US9817665B2 (en) * 2011-03-31 2017-11-14 Silicon Laboratories Inc. System and technique for retrieving an instruction from memory based on a determination of whether a processor will execute the instruction
CA2839560C (en) 2011-06-16 2016-10-04 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Entropy coding of motion vector differences
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9060173B2 (en) * 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
US9800870B2 (en) * 2011-09-16 2017-10-24 Qualcomm Incorporated Line buffer reduction for short distance intra-prediction
JP6080375B2 (ja) 2011-11-07 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
RU2710303C2 (ru) 2011-11-08 2019-12-25 Кт Корпорейшен Способ декодирования видеосигнала
US9538200B2 (en) 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
SG11201404240PA (en) 2012-01-20 2014-08-28 Fraunhofer Ges Forschung Transform coefficient coding
EP2810440A1 (en) * 2012-02-04 2014-12-10 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
RU2607998C9 (ru) * 2012-03-28 2017-07-07 ДжейВиСи КЕНВУД КОРПОРЕЙШН Устройство кодирования изображения, способ кодирования изображения и программа кодирования изображения, а также устройство декодирования изображения, способ декодирования изображения и программа декодирования изображения
LT3793200T (lt) * 2012-04-13 2023-02-27 Ge Video Compression, Llc Vaizdo kodavimas su maža delsa
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US9521410B2 (en) * 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
CN104380733B (zh) * 2012-06-28 2017-09-05 日本电气株式会社 视频量化参数编码方法、视频量化参数解码方法、设备
AU2013283173B2 (en) 2012-06-29 2016-03-24 Ge Video Compression, Llc Video data stream concept
CN115052157A (zh) 2012-07-02 2022-09-13 韩国电子通信研究院 图像编码/解码方法和非暂时性计算机可读记录介质
WO2014007520A1 (ko) * 2012-07-02 2014-01-09 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
CN104604225B (zh) * 2012-09-10 2018-01-26 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
RU2619198C1 (ru) * 2012-11-08 2017-05-12 Кт Корпорейшен Способ декодирования видеосигнала
RU2619199C1 (ru) * 2012-11-08 2017-05-12 Кт Корпорейшен Способ декодирования видеосигнала
US11259020B2 (en) 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
PL2984837T3 (pl) * 2013-04-08 2018-07-31 Ge Video Compression, Llc Predykcja międzykomponentowa
JP6261215B2 (ja) * 2013-07-12 2018-01-17 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
WO2015015681A1 (ja) * 2013-07-31 2015-02-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像符号化方法および画像符号化装置
RU2557755C1 (ru) * 2014-02-25 2015-07-27 Открытое акционерное общество "Центр судоремонта "Звездочка" Способ сжатия изображения при фрактальном кодировании
US10362336B2 (en) 2014-03-25 2019-07-23 Qualcomm Incorporated Palette predictor signaling with run length code for video coding
US9716888B2 (en) * 2014-03-26 2017-07-25 Vixs Systems, Inc. Video processing with static and dynamic regions and method for use therewith
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding
CA2954386C (en) 2014-07-09 2021-01-19 Numeri Ltd. Universal video codec
SG11201708026TA (en) 2015-04-08 2017-10-30 Hfi Innovation Inc Methods of palette mode coding in video coding
KR102430173B1 (ko) 2015-11-24 2022-08-05 삼성전자주식회사 디스플레이 장치
EP3395071A4 (en) * 2015-12-22 2019-08-14 RealNetworks, Inc. REST TRANSFORMATION AND INVERSE TRANSFORMATION IN VIDEO PROCESSING SYSTEMS AND METHODS
GB2547934B (en) * 2016-03-03 2021-07-07 V Nova Int Ltd Adaptive video quality
US10630985B2 (en) 2016-05-27 2020-04-21 Samsung Electronics Co., Ltd. Method for scanning coding blocks inside a video frame by video codecs
US10244261B2 (en) * 2017-01-26 2019-03-26 Google Llc Transform coefficient coding using level maps
KR20210031296A (ko) 2019-09-11 2021-03-19 삼성전자주식회사 전자 장치 및 그 제어 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571019B1 (en) 1995-10-26 2003-05-27 Hyundai Curitel, Inc Apparatus and method of encoding/decoding a coded block pattern
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
JP3884172B2 (ja) * 1997-10-02 2007-02-21 株式会社東芝 可変長復号化装置および復号化方法
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6124811A (en) * 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
JP2002027469A (ja) 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ビットストリーム変換方法、ビットストリーム変換装置およびプログラム記録媒体
AU2002213713A1 (en) 2000-10-24 2002-05-06 Eyeball Networks Inc. Dct-based scalable video compression
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
CN100452883C (zh) 2001-12-17 2009-01-14 微软公司 处理视频图像的方法
ATE439704T1 (de) 2002-04-02 2009-08-15 Nokia Corp Codierung von transformationskoeffizienten in bild-/videocodierern- und/oder decodierern
US6985635B2 (en) 2002-04-22 2006-01-10 Koninklijke Philips Electronics N.V. System and method for providing a single-layer video encoded bitstreams suitable for reduced-complexity decoding
US7630440B2 (en) * 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7492956B2 (en) 2004-08-18 2009-02-17 Cisco Technology, Inc. Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding
US20060008009A1 (en) 2004-07-09 2006-01-12 Nokia Corporation Method and system for entropy coding for scalable video codec
US7664176B2 (en) 2004-07-09 2010-02-16 Nokia Corporation Method and system for entropy decoding for scalable video bit stream
US20060133495A1 (en) 2004-12-22 2006-06-22 Yan Ye Temporal error concealment for video communications
US7970219B2 (en) * 2004-12-30 2011-06-28 Samsung Electronics Co., Ltd. Color image encoding and decoding method and apparatus using a correlation between chrominance components
EP1711018A1 (en) 2005-04-08 2006-10-11 Thomson Licensing Method and apparatus for encoding video pictures, and method and apparatus for decoding video pictures
KR100746007B1 (ko) * 2005-04-19 2007-08-06 삼성전자주식회사 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더

Also Published As

Publication number Publication date
KR20090005080A (ko) 2009-01-12
US8848789B2 (en) 2014-09-30
TW200814787A (en) 2008-03-16
CN101411196A (zh) 2009-04-15
CN101411196B (zh) 2014-05-14
US20070223579A1 (en) 2007-09-27
EP1999971A2 (en) 2008-12-10
WO2007112417A3 (en) 2008-03-20
RU2008142358A (ru) 2010-08-20
TWI357266B (en) 2012-01-21
CA2645230C (en) 2013-04-30
WO2007112417A2 (en) 2007-10-04
JP2009531997A (ja) 2009-09-03
BRPI0709078A2 (pt) 2011-06-28
CA2645230A1 (en) 2007-10-04
RU2406258C2 (ru) 2010-12-10
KR100991411B1 (ko) 2010-11-02

Similar Documents

Publication Publication Date Title
JP5231391B2 (ja) ビデオ圧縮に関連する情報を符号化および復号化する方法およびシステム
US11677983B2 (en) Methods and apparatus for improved entropy encoding and decoding
JP5139416B2 (ja) ビデオ圧縮における重要度係数符号化のための方法およびシステム
JP5248475B2 (ja) 映像圧縮におけるリファインメント係数符号化のための方法及び装置
RU2452128C2 (ru) Адаптивное кодирование информации заголовка видеоблока
EP2319241B1 (en) Skip modes for inter-layer residual video coding and decoding
TWI357766B (en) Variable length coding table selection based on vi
JP2009531992A5 (ja)
US20110249754A1 (en) Variable length coding of coded block pattern (cbp) in video compression
US20130101033A1 (en) Coding non-symmetric distributions of data
KR20130105894A (ko) 비디오 데이터의 블록의 계수들의 모드 의존 스캐닝
RU2406254C2 (ru) Видеообработка с масштабируемостью
Kim et al. Efficient entropy coding scheme for H. 264/AVC lossless video coding
Bardone et al. Adaptive Golomb codes for level binarization in the H. 264/AVC FRExt lossless mode
Heo et al. New CAVLC encoding algorithm for lossless intra coding in H. 264/AVC

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111220

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120120

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120127

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120220

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121113

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees