JP5480775B2 - ビデオ圧縮方法 - Google Patents

ビデオ圧縮方法 Download PDF

Info

Publication number
JP5480775B2
JP5480775B2 JP2010239018A JP2010239018A JP5480775B2 JP 5480775 B2 JP5480775 B2 JP 5480775B2 JP 2010239018 A JP2010239018 A JP 2010239018A JP 2010239018 A JP2010239018 A JP 2010239018A JP 5480775 B2 JP5480775 B2 JP 5480775B2
Authority
JP
Japan
Prior art keywords
encoding
partition
frame
block
data
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.)
Active
Application number
JP2010239018A
Other languages
English (en)
Other versions
JP2011050090A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2011050090A publication Critical patent/JP2011050090A/ja
Application granted granted Critical
Publication of JP5480775B2 publication Critical patent/JP5480775B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/172Methods 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 picture, frame or field
    • 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/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/177Methods 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 group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

[関連出願]
本出願は、2003年5月12日に出願された米国仮特許出願第60/469,187号及び2003年11月14日に出願された米国特許出願第10/713,807号の優先権を主張する。
本発明は、ビデオデータに関し、より詳細には、できるだけ効率的な方法でビデオデータの符号化、復号、圧縮、及び送信を行う方法及びシステムに関する。
データの送信は、通例、帯域幅及びスループットの制限によって制約を受ける。微少な時間で無限の情報量を送信することも受信することもできない。送信中の情報の量及び品質を最大にするために、場合により、情報は、圧縮又は符号化されて送信され、受信時に伸張又は復号される。
データ圧縮が不可欠である1つの分野は、ビデオデータの送信である。通常のテキストは、膨大でない限り、容易且つ高速に送信される。しかしながら、ビデオデータは、色の側面、明度の側面、及び多くの場合ステレオ音響情報の側面を含む可能性がある。短いビデオクリップであっても、定義するのに大量のデータが必要とされる。このようなデータの送信及び符号化は、できるだけ効率的でなければならない。すなわち、送信するのに必要な情報をできるだけ少なくしなければならない。
ビデオ圧縮は、データ圧縮の一般的な技法のサブセットである。データ圧縮によって、信号は、より小さな数字の集合にスクイーズ又は圧縮される。これらの数字は、したがって、ハードドライブを占める空間が小さくなるか、又は、ネットワーク上で送信に要する時間が少なくなる。これらの数字が再び使用される前に、伸張アルゴリズムが適用されて、その数字列は、その元の(又は少なくとも類似の)形に展開される。
記憶もしくは送信される数字列に適用できる圧縮比又はスクイーズ量を増加させるために、ビデオ圧縮は、信号が、デジタル化されたビデオとして発生していることが知られているという事実を利用する。ビデオ及びオーディオの大幅な圧縮は非可逆アルゴリズムを考えられる。その理由は、非可逆アルゴリズムが元の情報の或る部分を廃棄するか又は失い、再現された数字列は元の数字列とは正確には一致しないからである。我々がビデオ及びオーディオを鑑賞する精度は、デジタル化プロセスの解像度と比較して完全でないことから、これは許容することができる。ビデオ信号は、僅かに歪む場合があるが、それにもかかわらず認識することが可能である。圧縮アルゴリズムが、最小の歪み又は損失で元の信号を忠実に再現できる程度は、アルゴリズムの成功の尺度である。
技術的な問題及び機器のコストを含めて、ビデオ信号及びオーディオ信号を圧縮するもっともな理由が多数ある。1つの最優先の問題は、データ送信コストである。インターネットは、21世紀の事実上のデータ搬送プラットフォームに成熟するにつれて、ビデオテープ、フィルム、放送等のアナログメディアは、インターネット技術及びインターネット関連技術の上に構築されたデジタルメディアインフラストラクチャに取って代わられることになろう。このデジタルインフラストラクチャにより、必要に応じて、地球上のどの2つのコンピューティングマシン間でもデータを転送することが可能になる。しかしながら、このデータを送信できる速度は多数の要因に依存する。極端な場合、百年以上も前に敷設され、アナログ音声通信を対象とした銅線が、モデム技術(モデム(modem)は、モジュレーション(変調(Modulation))/ディモジュレーション(復調(DEModulation))の略語である)と共に使用されて、毎秒9600ビット程度の低速でデータが送信される。同様の速度は、携帯電話等の無線ネットワーク上で音声を運ぶのにも使用される。最近、ケーブルモデム技術、DSL技術、及び衛星技術が、6桁のデータレート(100,000ビット/秒から100万ビット/秒)をホームユーザにもたらしている。ハイエンドアプリケーションの場合、光ファイバによって、データレートをギガビットの範囲(毎秒数十億ビット)及びそれを超える範囲にすることが可能である。
所与のアプリケーションに利用可能なデータレートがいかなるものであっても、データの送信には、お金がかかる。現在のところ、1メガバイト(800万ビット)をインターネット上で送信するコストは、通例、小さなボリュームの5セントあたりから、安い場合は極端に大きなボリュームの1セント程度のコストがかかる(この価格は、受信端でのコストを含んでいない)。したがって、或る場所から別の場所へ1メガバイトのデータを搬送するコストは、常に、1ペニーよりも高い。
ビデオデータ圧縮の分野では、多くの研究が行われてきた。本出願の譲受人である、ニューヨーク州クリフトンパークのOn2 Technologies(当初はDuck Corporationとして知られていた)は、既にVP3やVP5等のコーデックを製造してきており、Microsoft Corporationは、MPEG等の符号を作成してきた。既存のビデオコーデックの特徴のいくつかには、動きベクトルの離散コサイン変換圧縮、エントロピー符号化、及び差分符号化が含まれる。また、従来のコーデックは、基準フレームを利用し、データパケットが喪失又は破損した場合に、基準フレームを参照することによってそのデータを取り出すことができるようにしている。これらの特徴及びこれらの特徴に伴う問題のすべてについて、以下でより詳細に解説することにする。
DCT(離散コサイン変換(Discrete Cosine Transform))に基づくビデオ圧縮システムでは、8×8のピクセルブロック又は予測エラー信号データが、1組の64個の周波数係数(1つのDC値及び63個のAC値)に変換される。これら64個の周波数係数は、その後、量子化されて1組のトークンに変換される。
通常、高周波のAC係数ほど、大きさが小さくなり、したがって、次の量子化で非ゼロになる可能性は小さくなる(すなわち、ゼロになる可能性が高くなる)。その結果、トークン化の前に、それら係数は、多くの場合、最も低い周波数係数(DC値)から開始して最も高周波のAC係数で終了する昇順に配列される。この走査順序は、時に、「ジグザグ順序」と呼ばれることがあり、その始点に非ゼロ値を集め、終点に向かうにつれてゼロを集める傾向があり、そうすることによって、より効率的な圧縮を容易にする。
しかしながら、この固定された走査順序は、最適になることがほとんどない。たとえば、インターレースされたビデオ素材を符号化する場合、一定の高周波係数は、はるかに顕著である。このことは従来技術に反映され、この従来技術では、インターレースされたビデオを符号化する時に代替的な走査順序を指令するコーデックが使用される例(たとえば、MPEG−2)が存在する。
特定のハードウェアデバイス用にコーデックを最適化する場合、そのデバイスが複数のタスクを並列に実行するのに提供できるあらゆる設備が十分に利用されることを確かめること、及び、復号プロセスの個々の部分がボトルネックとなる範囲を制限することが重要である。
本発明のビットストリームは、ほとんどの他のビデオコーデックと共通して、概して言えば、エントロピー符号化されたトークンを含むものとして説明することができる。このエントロピー符号化されたトークンは、プリディクタ(predictor)トークン又はPトークン、及び、予測エラートークン又はEトークンの2つの主要なカテゴリーに分割することができる。Pトークンは、画像のブロック又は領域を符号化するのに使用される方法又はモードを記述するトークンであり、或るフレームと別のフレームとの間の動きを記述するトークンである。Eトークンは、不完全な予測の結果生じたあらゆる残差を符号化するのに使用される。
エントロピー符号化は、ビットストリームにおける特定のPトークン又はEトークンの表現が、ビットストリームにおけるそのトークンの周波数、又は、そのトークンが特定の位置に現れる尤度に従って最適化されるプロセスである。たとえば、非常に頻繁に現れるトークンは、まれにしか現れないトークンよりも少ないビット数を使用して表される。
最も一般的なエントロピー符号化技法の2つは、ハフマン符号化及び算術符号化である。ハフマン符号化では、各トークンは、可変長のビットパターン(又は符号)によって表される。算術符号化は、計算がより複雑な技法ではあるが、各トークンについて多数のビット全体を使用する制約が除去されている。算術符号化器を使用すると、1ビットの1/2の平均コストで非常に一般的なトークンを符号化することが完全に可能である。
多くのマルチメディアデバイスは、エントロピー符号化のタスクによく適合したコプロセッサユニット、及び、より多目的のメインプロセッサを有する。その結果、並列化のために、ビットストリームの符号化又は復号のプロセスは、多くの場合、エントロピーに関連したタスクと、エントロピーに関連しないタスクとに分割される。しかしながら、所与のビットクリップの場合、データレートが増加するにつれて、符号化/復号するトークン数が急激に上昇し、エントロピー符号化がボトルネックになる場合がある。
従来のビットストリームでは、エントロピー符号化の計算負荷を再分散させて、このボトルネックを取り除くことは非常に困難である。特に、復号側では、通常は、トークンが符号化された順序で1度に1つずつトークンを復号しなければならない。また、フレームレベル以外の方法又はエントロピー符号化(たとえば、ハフマン符号化及び算術符号化)を混在させることもきわめて困難である。
慣例により、現代のほとんどのビデオコーデックは、差分符号化方式を使用して、動きベクトルの(x,y)成分を符号化する。すなわち、各ベクトルは、前のベクトルを基準にして符号化される。たとえば、2つのベクトル(7,3)及び(8,4)を考える。この場合、第2のベクトルは(1,1)、すなわち(7+1,3+1)として符号化されることになる。
この方式は、動きベクトルが符号化されるほとんどのブロック又は領域が、その近傍の動きと類似した動きを示す場合によく機能する。これは、多くの場合、たとえばパンする時に当てはまることを示すことができる。しかしながら、動きフィールドが不規則である場合、又は、異なる動き特性を有する背景領域と前景領域との間での遷移が頻繁である場合に、この方式はあまりよく機能しない。
現代のほとんどのビデオコーデックにとって、動き予測は、圧縮プロセスの重要な部分である。動き予測は、画像の物体又は領域の動きが、1つ又は複数のフレームにわたってモデル化され、1つ又は複数の「動きベクトル」が、この動きを表すためのビットストリームで送信されるプロセスである。ほとんどの場合、画像内の動きを完全にモデル化することはできず、そこで、動き情報に加えて残差信号を符号化することが必要である。
基本的に、各動きベクトルは、符号化される現在のフレームの領域と類似した、前に符号化されたフレームの領域を指し示す。残差信号は、各ピクセルの予測値を、現在のフレームの実際の値から差し引くことによって得られる。
現代の多くのビデオコーデックは、たとえば、1/2ピクセル又は1/4ピクセルの動き推定といったサブピクセル精度に対して動き予測のサポートを提供することによりこのプロセスを拡張している。端数ピクセルデータ点を作成するには、実際の(すなわち、フルピクセルアラインされた(full pixel aligned))データ点に適用される或る形態の補間関数又は補間フィルタを使用することが必要である。
初期のコーデックは、一般に、本明細書に添付した図1に示すような簡単な双1次補間を使用していた。この例では、A、B、C、及びDが、フルピクセルアラインされたデータ点であり、x、y、及びzが、1/2ピクセルアラインされた点である。点xは、X方向に1/2ピクセルアラインされ、方程式:
x=(A+B/2) (1)
を使用して計算することができる。
点yは、Y方向に1/2ピクセルアラインされ、方程式:
y=(A+C/2) (2)
を使用して計算することができる。
点zは、X及びYの双方で1/2ピクセルアラインされ、方程式:
z=(A+B+C+D/2) (3)
を使用して計算することができる。
後のコーデックは、画像がぼける傾向を少なくする、双3次フィルタ等のより複雑な補間フィルタの使用に向かう傾向がある。図2に示す例では、xは、2つのフルピクセルアラインされた点BとCとの間の中点にある1/2ピクセル点である。双3次フィルタに対して整数近似を使用すると、xは、方程式:
x=(−A+9B+9C−D)/16
を使用して計算することができる。
上記に示した双3次フィルタ等のフィルタは、よりシャープに見える結果を生成する傾向があるが、いくつかのフレームにわたってそれらフィルタが繰り返し適用されると、場合によっては、誤ったテキスチャや誤った輪郭等の不快な人工物となる可能性がある。
ビデオコーデックは、多くの場合、ビットストリームのエラーの影響を極端に受けやすいので、信頼性のないデータリンク又は問題の多いデータリンク上で圧縮ビデオデータを送信する場合、データが喪失又は破損したときの回復のためのメカニズムが存在することは重要である。
このようなリンクの信頼性のあるデータ送信のためのさまざまな技法及びプロトコルが存在し、これらは、通常、エラーの検出、及び、再送又は一定のタイプのエラーの訂正を可能にする追加データビットの使用のいずれかに依拠する。多くの状況では、これら既存の技法は十分である。しかし、制限された帯域幅のリンク上でビデオ会議を行う場合、上述した手法のいずれも理想的ではない。喪失したデータパケットの再送は、端末間の遅延の増加を引き起こす可能性があるので実用的でない場合がある一方、誤り訂正ビット又は誤り訂正パケットの使用は、帯域幅がすでに厳しく制限されている状況では受け入れられない場合がある。
代替的な手法は、単に、復号器においてエラーを検出し、そのエラーを符号化器に報告することである。符号化器は、その後、回復フレームを復号器へ送信することができる。この手法は、リンク上のエラーレートが非常に高い場合、たとえば、10フレーム〜20フレームごとに2つ以上のエラーがある場合に、適切でないおそれがあることに留意されたい。
最も簡単な形態の回復フレームは、キーフレーム(又はイントラオンリーフレーム(intra-only-frame))である。これは、前のフレーム又は前のフレームのデータに何ら依存関係を有しないフレームである。キーフレームに関連した問題は、それらキーフレームが、通例、比較的大きいということである。
本発明の目的は、効率的で信頼性のあるビデオ圧縮方法及びコーデックを提供することである。
本発明の別の目的は、適応性のある方法で離散コサイン変換を実行できるビデオ圧縮方法及びコーデックを提供することである。
本発明の別の目的は、使用されるハードウェアデバイスの資源を最適化するエントロピー符号化を実行するビデオ圧縮方法及びコーデックを提供することである。
本発明の別の目的は、動きベクトル符号化を高度化するビデオ圧縮方法及びコーデックを提供することである。
本発明の別の目的は、端数ピクセル動き予測を正確且つ効率的に実行するビデオ圧縮方法及びコーデックを提供することである。
本発明の別の目的は、ビデオ会議の環境であっても、エラー回復を効率的に実行するビデオ圧縮方法及びコーデックを提供することである。
本発明により上記の又は他の目的が達成され、本発明は、各ブロックがピクセルの配列を有する少なくとも1つのブロックを有する少なくとも1つのフレームを有するビデオデータを圧縮する方法である。本発明の方法は、以下のステップの少なくとも1つを含む。I)各ブロックのピクセルを係数に変換して、係数の最適な送信順序を作成するステップ、II)データのビットストリームを区画して各パーティションを独立に符号化することにより、圧縮されたビデオデータを処理する速度を最適化するステップ、III)所与の各ブロックに関連した少なくとも1つのメトリックに応じて所与の各複数のピクセルの補間方法を選択することにより、端数ピクセル動きを予測するステップ、及び、IV)現在のフレームの直前のフレームよりも前のフレームを唯一の基準フレームとして使用して現在のフレームのエラー回復を高度化するステップであって、それによって、データ送信中の品質損失を小さくする、現在のフレームのエラー回復を高度化するステップ。
本発明の係数の再配列の態様に関して、本方法は、各ブロックのピクセルを、各係数が係数位置及び値を有する係数に変換し、各係数位置に関連した位置の値を求める。次に、係数の最適な送信順序が、各係数位置の位置の値に基づいて作成され、係数は、そのようにして求められた順序で送信される。好ましくは、係数の送信順序は、ビデオデータの各フレームについて動的に再配列される。変換ステップは、好ましくは、ピクセルを離散コサイン変換係数に変換する。係数の送信順序は、係数と共に送信してもよい。好ましくは、各ブロックは、同じ個数の係数及び係数位置を有し、それぞれの対応する各係数位置は、ブロックごとに同じ各情報を運ぶ。
送信されるデータ量を削減するために、係数順序データの送信は、或るフレームから次のフレームへ係数順序が変更したものに制限してもよい。これに代えて又はこれに加えて、送信順序は係数の帯域に統合してもよい。各帯域は、上記で求められた数のランクによって編成された複数の係数を有する。この場合、帯域情報のみを係数と共に送信してもよい。好ましくは、係数が或るフレームから次のフレームにおいて帯域を変更した場合に、帯域情報のみが送信される。別の代替的なものとして、すべての帯域情報を常に送信してもよい。
係数を再配列することは、キーフレームを提供することも含むことができる。本発明の方法は、常に完全に自己符号化され、前のフレームからの情報も前のフレームに関する情報も必要としないこのようなキーフレームを提供してもよい。このような場合、符号化器は、所与のフレームがキーフレームであるかどうかを判断する。所与のフレームがキーフレームであると判断された場合、そのキーフレームの係数の送信順序全体が送信される。所与のフレームがキーフレームでないと判断された場合、前のフレームからこの所与のフレームにおいて係数の送信順序が変化したもののみが送信される。
上述したように、本発明は、データビットストリームを区画して各パーティションを独立に符号化することにより、圧縮ビデオデータの処理速度を最適化することを検討する。具体的には、本発明は、ビデオデータを少なくとも2つのデータパーティションに分割し、各データパーティションについて最適なエントロピー符号化方法を選択する。したがって、選択されたエントロピー符号化方法は、各データパーティションにそれぞれ適用される。1つの実施の形態では、ビデオデータは、プリディクタトークンデータパーティション及びエラートークンデータパーティションに分割される。好ましくは、各データパーティションは、ハフマン符号化及び算術符号化等の異なるエントロピー符号化方法を受ける。異なるデータパーティションのさまざまな復号プロセスは、非同期且つ/又は独立に実行してもよい。これは、ハードウェアに少なくとも2つのサブプロセッサを設けることによって行ってもよく、或るデータパーティションは或るサブプロセッサによって復号され、別のデータパーティションは別のサブプロセッサによって復号される。所与のデータパーティションにどのエントロピー符号化方法が使用されるかの判断は、その所与のデータパーティションのサイズに基づいてもよい。
本方法及びコーデックの1つの好ましい実施の形態では、プリディクタトークンデータパーティションは読み出されて、プリディクタブロックに変換される。エラートークンデータパーティションも読み出されて、係数及びそこからエラーブロックに変換される。プリディクタブロック及びエラーブロックは合計されて、画像ブロックが形成される。上述したように、少なくとも2つのサブプロセッサを設けることが好ましく、これらのステップのいくつかは、或るサブプロセッサで実行され、ステップの残りは別のサブプロセッサで実行される。具体的には、エラートークンデータパーティションを読み出すステップ、及び、エラートークンデータパーティションを係数に変換するステップは、好ましくは、高速エントロピー最適化サブプロセッサによって実行され、他のステップは、好ましくは、汎用サブプロセッサによって実行される。
本発明の方法は、データ及びコードのキャッシュミスを回避するようにビットストリームの復号器の性能を最適化する。コードキャッシュに適合できる個数の、復号器のコードの異なる関数がコードキャッシュに記憶される。このステップからのコードは、データキャッシュに適合できる個数のブロックについて実行される。復号器のコードの次の1組の異なる関数及び次に収集され、このプロセスは、ビットストリームのすべてが読み出され、データブロックのそれぞれが生成されるまで繰り返される。
ビットストリームの復号器の性能を最適化する別の態様は、各サブタスクを別々のプロセッサへ割り当てることによってサブプロセッサの利用を最適化するものである。好ましくは、ビットストリームからエラートークンを読み出して、それらエラートークンを係数に変換する、復号器の部分は、高速エントロピー最適化サブプロセッサで実行される。ビットストリームからプリディクタトークンを読み出して、これらのトークンからフィルタリングされたプリディクタブロックを構築する、復号器の部分は、メモリへの高速アクセスを有するサブプロセッサで実行される。上記ステップからの変換係数をエラー信号に変換する、復号器の部分は、変換符号化器の最適化された実施態様を有するサブプロセッサで実行され、プリディクタブロックをエラー信号に加える、復号器の部分は、動き補償に最適化されたサブプロセッサで実行される。
ビデオデータは、2つのデータパーティションに分割してもよい。第1のデータパーティションはフレームの第1のエリアを表し、第2のデータパーティションはフレームの第2のエリアを表す(たとえば、上半分及び下半分、又は、左半分及び右半分)。或いは、ビデオデータは、3つのデータパーティションに分割してもよい。各データパーティションは、それぞれ、フレームのレベル情報、彩度情報、及び色相情報を表す。別の変形では、これら3つのデータパーティションは、それぞれ、フレームのシアン情報、マゼンタ情報、及びイエロー情報を表すことができる。
前述したように、本発明は、各所与のブロックに関連した少なくとも1つのメトリックに応じて各所与の複数のピクセルの補間方法を選択することにより、端数ピクセル動きを予測する態様を含む。具体的には、符号化する所与の複数のピクセルに関連した少なくとも1つのメトリックの値が求められ、その所与の複数のピクセルを符号化する補間方法が、求められた少なくとも1つのメトリックの値に応じて選択される。このようにして選択された補間方法は、符号化する所与の複数のピクセルに適用される。このプロセスは、次の各複数のピクセルについて繰り返されるステップである。少なくとも1つのメトリックは、動きベクトル長及び複雑度因子の少なくとも1つとしてもよい。補間方法には、双1次補間、双3次補間、2次補間、及びBスプライン補間が含まれ得る。所与の複数のピクセルは、フレーム全体としてもよいし、フレームのサブ部分としてもよい。所与の複数のピクセルに関連した動きベクトル長が、所定の長さ値よりも小さいと判断され、且つ、所与の複数のピクセルに関連した複雑度因子が、所定の複雑度値よりも大きいと判断された場合、双3次補間が選択される。所定の長さ値及び所定の複雑度値は、好ましくは、所与の個数の複数のピクセルについて1回設定され、且つ、フレームごとに1回設定される。
複雑度因子は、好ましくは、所与の複数のピクセルの分散であり、次のように計算される。
C=(nΣx −(Σx)/n (4)
上述したように、本発明は、現在のフレームの直前のフレームよりも前のフレームを、データ送信中の品質損失を少なくするための唯一の参照フレームとして使用して、現在のフレームのエラー回復を高度化することを含む。具体的には、本発明は、喪失又は破損したパケットを引き起こす、ライン上の送信に関連した品質損失を少なくするために、最後のフレームよりも前に符号化されたフレームを、所与のフレームの唯一の基準フレームとして使用することを含む。このステップは、周期的(Fフレームごと)及び任意(或る他の判定基準に基づいて)の少なくとも1つに制限される。
本発明のこの態様は、特に、ビデオ会議によく適合する。具体的には、ビデオ会議の各当事者は、ビデオデータのフレームを圧縮し、パケットの喪失又は破損が検出可能なようにマーキングされたパケットで、圧縮されたビデオデータを他の当事者へ送信する。パケットが喪失又は破損したことをいずれかの当事者が検出した場合に、検出した当事者は、送信した当事者に信号で伝え、それによって、残りの当事者のすべてがすでに受信に成功して復号している基準フレームを使用して符号化された更新フレームが送信される。
本発明は、好ましくは、以下のように基準フレームを使用することができる。ビデオフレームの一定の間隔Fを符号化器が選択して、復号器へ送信することができる。F番目のフレームごとにフレームが、前の符号化されたF番目のフレームのみを基準に使用して符号化される。F番目でないあらゆるフレームは、その前のフレームを基準として使用して符号化される。ビデオの各フレームは、喪失及び破損が検出可能なように、復号器へ送信される。これらのステップのすべては、好ましくは、符号化器で行われる。復号器側では、符号化されたビデオデータが符号化器から受信され、復号器によって復号される。パケットが喪失し、喪失したパケットがF番目でないフレームに関連したものである場合、復号器は、次のF番目のフレームが喪失したパケットを回復するのを待つ。
別の代替形態として、本発明は、現在のフレームを、この符号化されたフレーム及び前の符号化されたフレームから取得された統計値のメトリックによって求められた周囲の品質よりも高い品質で、周期的及び任意の少なくとも1つで符号化し、符号化された現在のフレームを、2次的な基準フレームとしてのその後のフレームによる使用のために記憶する。
本発明のいくつかの異なる態様を以下に説明することにする。
<動的な係数の再配列(Dynamic Coefficient Reordering)>
DCT(離散コサイン変換)に基づくビデオ圧縮システムでは、8×8のピクセルブロック又は予測エラー信号データが、1組の64個の周波数係数(1つのDC値及び63個のAC値)に変換される。これら64個の周波数係数は、その後、量子化されて1組のトークンに変換される。
通常、高周波のAC係数ほど、大きさが小さくなり、したがって、次の量子化で非ゼロになる可能性は小さくなる。その結果、トークン化の前に、それら係数は、多くの場合、最も低い周波数係数(DC値)から開始して最も高周波のAC係数で終了する昇順に配列される。この走査順序は、時に、「ジグザグ順序」と呼ばれることがあり、その始点に非ゼロ値を集め、終点に向かうにつれてゼロ値を集める傾向があり、そうすることによって、より効率的な圧縮を容易にする。
しかしながら、この固定された走査順序は、最適になることがほとんどない。たとえば、インターレースされたビデオ素材を符号化する時、一定の高周波係数は、はるかに顕著である。このことは従来技術に反映され、この従来技術では、インターレースされたビデオを符号化する時に代替的な走査順序を指令するコーデックが使用される例(たとえば、MPEG−2)が存在する。
本発明の一態様は、特定のデータセットの特性をより最適に反映するように係数が符号化される走査順序を、コーデックが最適にカスタマイズできる方法である。
本発明によれば、コーデックは、1つ又は複数のビデオフレームにおいて、DCT係数のそれぞれについてゼロ値対非ゼロ値の分布の記録を保持する。この記録は、非ゼロになる可能性が高い係数がリストに先に現れるカスタムな走査順序を作成するのに使用される。
コーデックは、各係数について非ゼロ値の平均的な大きさ等の付加情報をオプションとして照合することができ、これを使用して走査順序をさらに最適化することができる。
新しいカスタム走査順序を送信するオーバーヘッド又は前に送信された走査順序を更新するオーバーヘッドは、場合によっては、改善された係数符号化効率から得られた利益を打ち消すおそれがある。したがって、更新がネットに利益を提供するかどうかを判断するのにコスト利益分析が必要となる場合がある。
この分析の結果に影響を与える主要な要因は、更新コスト、符号化されるブロック数(したがって、係数の個数)、及び新たな走査順序が標準的な走査順序又は前に符号化された走査順序のいずれかから逸脱する程度である。
8×8要素のDCTの場合、「完全な」カスタム走査順序(すなわち、64個の係数の1つ1つにつき新たな位置)を符号化するには、384ビット(それぞれ64個の係数×6ビット)が必要となる。このコストは、符号化されるブロック数(したがって、係数の個数)が非常に大きくない限り、又は、最適な走査順序がデフォルト走査順序(これは、標準的な走査順序又は前に符号化された走査順序のいずれかである)と大幅に異ならない限り、法外なものとなる可能性がある。この記述の背後にある理論的根拠は、デフォルト走査順序がカスタム走査順序と類似している場合、各ブロックの符号化に確保される平均ビット数が小さくなる可能性があり、したがって、走査順序を更新するオーバーヘッドを正当化するには多数のブロックを符号化しなければならないということである。逆に、デフォルト走査順序がカスタム走査順序と異なる場合、ブロックあたりの平均節減は高くなる可能性がある。
この状況を改善する簡単な方法は、走査順序に対する変更のみを符号化することである。たとえば、各係数について、その係数が走査順序において自身の位置を変更したかどうかを示すビットを符号化し、次いで、適切な場合は、その新しい位置を示すビットを符号化する。これは、通常、更新コストが低くなるが、ここでの最悪の場合のシナリオは、新たな走査順序がすべての係数について異なる場合である。この場合、更新コストは448ビット(64×7)となる。
このような手法の魅力的な態様は、カスタム走査順序とデフォルト走査順序とが最も類似している場合に更新コストが最小となり(したがって、ブロックごとの可能性のあるコスト削減は、その最小のものとなる)、それらの走査順序が最も異なる場合に最高となることである。
この状況は、個々の係数又は係数の対のレベルの「コスト利益」を考えることによってさらに改善することができる。たとえば、2つの係数が走査順序において互いに隣接しており、非ゼロ値の尤度がその双方でほとんど同一である場合を考える。それら2つの係数の一方又は他方の非ゼロ値の個数に小さな変化があると、それら2つの係数は、カスタム走査順序において場所を交換する可能性がある。この変化を符号化することは、(上記更新モデルを仮定した場合に)14ビットのコストで双方の係数の走査位置を更新することを意味する。しかしながら、達成される節減はごく僅かとなる場合がある。
この問題は、特に、高い順序のAC係数について該当する。この点で、非ゼロ値の周波数は、通常、非常に低く、きわめて小さな変化であっても、走査順序における係数の位置は大幅に変更される可能性がある。
カスタム走査順序の計算の基礎を、各係数についての単にゼロ対非ゼロの分布に置くことは確かに実現可能であるが、該当する他の要因がある。前述したように、これらの要因の1つは、非ゼロ値の平均的な大きさである。もう1つは、場合により、1つ又は複数の係数の値の間に正の相関が存在する場合があることである。たとえば、低い順序の「完全に水平な」AC係数と高い順序の「完全に水平な」係数との間である。このような場合、非ゼロ値の広がりに大幅な相違がない限り、非ゼロ値はその元の順序(最も低い周波数から最も高い周波数)に維持することが好ましい場合がある。
本発明のこの態様の好ましい実施態様は、このような問題に対処するのに幾分助けとなると同時に、走査順序の更新コストをさらに削減する。
カスタム走査順序を作成する手順は、概略的には以下の通りである。
・DC係数は常に最初(位置0)に符号化される。
・AC係数を、各係数の非ゼロである値の比率に基づいて降順に並べる。
・順序リストを16個の可変サイズの帯域に分割する(表1参照)。
・各帯域内において、ジグザグ走査順序に再配列する。
表1に示すような16個の帯域への再分化は、或る範囲の異なる試験クリップを用いた経験的な観測に基づいており、必ずしも最適ではないことに留意されたい。
Figure 0005480775
表1:好ましい走査順序の係数帯域
経験的な実験は、更新コストが考慮される前であっても、この帯域ストラテジーが、単に非ゼロである値の比率に基づく走査順序を使用して得られた結果と通例は同程度の良好な結果、又は、多くの場合それよりも良好な結果を与えることを示している。
第2の利点は、走査順序の更新コストが大きく削減されるということである。その理由は、値が或る帯域から別の帯域へ移動される場合にしか、その値を更新する必要がないからである。さらに、帯域内の変更の符号化には4ビットしか必要とされない。
好ましい実施態様で使用される最終的な最適化は、いくつかの係数が他の係数よりもはるかに頻繁に帯域を変更するという観察結果に基づいている。たとえば、高い順序のAC係数は、低い順序の係数よりも帯域を変更する頻度は低いという傾向を有する。
特定の係数が、たとえば、時間の2%しか更新されない場合、その係数が所与のフレームにおいて更新されるかどうかを示すのに1ビットを使用することは無駄である。算術符号化技法を使用して、経験的に求められた更新確率を各係数に割り当てることにより、係数あたり実質的に1ビット未満の平均更新コストを得ることが可能である。
以下の「C」コードセグメントは、本発明のこの態様の好ましい実施態様をサポートする詳細を与えるものである。
// 収集されたゼロ/非ゼロ周波数データを使用して新たな「好ましい」走査順序を
// 実現する
void CalculateScanOrder( CP_INSTANCE *cpi)
{
UINT32 i, j, k;
UINT32 Sum;
UINT32 tmp[2];
UINT32 NzValue[BLOCK_SIZE][2];
UINT32 GroupStartPoint, GroupEndPoint;

// 各係数について、非ゼロであった値の比率を0〜255からの
// 拡大縮小された数字として計算する
for ( i=1; i<BLOCK_SIZE; i++ )
{
Sum = cpi->FrameNzCount[i][0] + cpi->FrameNzCount[i][1];
if ( Sum )
NzValue[i][0] = (cpi->FrameNzCount[i][1]*255)/Sum;
else
NzValue[i][0] = 0;
NzValue[i][1] = i;
}

// 降順にソートする
for ( i=1; i<BLOCK_SIZE-1; i++ )
{
for ( j=i+1; j>1; j--)
{
if ( NzValue[j][0] > NzValue[j-1][0] )
{
// それらを交換する
tmp[0] = NzValue[j-1][0];
tmp[1] = NzValue[j-1][1];

NzValue[j-1][0] = NzValue[j][0];
NzValue[j-1][1] = NzValue[j][1];

NzValue[j][0] = tmp[0];
NzValue[j][1] = tmp[1];
}
}
}

// 帯域に分割し、次いで、各帯域内において、ジグザグ走査位置に基づいて
// 昇順に再ソートする
GroupEndPoint = 0;
for ( k=0; k<SCAN_ORDER_BANDS; k++ )
{
GroupStartPoint = GroupEndPoint + 1;
GroupEndPoint = EndPointLookup[k];

for ( i=GroupStartPoint; i<GroupEndPoint; i++ )
{
for ( j=i+1; j>GroupStartPoint; j-- )
{
if ( NzValue[j][1] < NzValue[j-1][1] )
{
// それらを交換する
tmp[0] = NzValue[j-1][0];
tmp[1] = NzValue[j-1][1];

NzValue[j-1][0] = NzValue[j][0];
NzValue[j-1][1] = NzValue[j][1];

NzValue[j][0] = tmp[0];
NzValue[j][1] = tmp[1];
}
}
}

// 各係数インデックス(coef index)について、その帯域番号に印を付ける
for ( i=GroupStartPoint; i<=GroupEndPoint; i++ )
{
// 各係数の新たな走査帯域番号に留意する
// NzValue[i][1]は従来のジグザグ順序の係数の位置であり、
// iは新たな走査順序の位置であり、kは帯域番号である。
cpi->NewScanOrderBands[NzValue[i][1]] = k;
}
}
}

// この構造体は、(従来のジグザグ順序の)dct係数のそれぞれについての
// (1〜255の範囲に拡大縮小された)走査順序更新確率を与える。
// これらの値は、関数「nDecodeBool()」に渡され、結果が0(FALSE)である
// 確率を示す。
//
const UINT8 ScanBandUpdateProbs[BLOCK_SIZE] =
{
255, 132, 132, 159, 153, 151, 161, 170,
164, 162, 136, 110, 103, 114, 129, 118,
124, 125, 132, 136, 114, 110, 142, 135,
134, 123, 143, 126, 153, 183, 166, 161,
171, 180, 179, 164, 203, 218, 225, 217,
215, 206, 203, 217, 229, 241, 248, 243,
253, 255, 253, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255
};

// 走査順序に対する更新がこのフレームに利用可能である場合、この更新を読み出す。
void UpdateScanOrder( PB_INSTANCE *pbi )
{
// 走査順序が更新されているのはこのフレームか?
if ( nDecodeBool( 128 ))
{
// 更新された走査帯域で読み出す
for ( i = 1; i < BLOCK_SIZE; i++ )
{
// この係数の帯域は更新されたか?
if ( nDecodeBool( ScanBandUpdateProbs[i] ))
{
pbi->ScanBands[i] = VP6_bitread( SCAN_BAND_UPDATE_BITS );
}
}

// 新たな走査順序を走査帯域データから構築する
BuildScanOrder( pbi, pbi->ScanBands );
}
}

// 1組の走査帯域データからカスタム走査順序を構築する
void BuildScanOrder( PB_INSTANCE *pbi, UINT8 *ScanBands )
{
UINT32 i, j;
UINT32 ScanOrderIndex = 1;

// DCは一定である。
pbi->ModifiedScanOrder[0] = 0;

// 各帯域内において、(係数の元の「ジグザグ」操作順序位置の点で)
// 係数が昇順である走査順序を作成する
for ( i = 0; i < SCAN_ORDER_BANDS; i++ )
{
for ( j = 1; j < BLOCK_SIZE; j++ )
{
if ( ScanBands[j] == i )
{
pbi->ModifiedScanOrder[ScanOrderIndex] = j;
ScanOrderIndex++;
<独立したビットストリームパーティションを使用した、符号化器及び復号器の最適化の容易化、及び、混在モードエントロピー符号化の使用>
特定のハードウェアデバイス用にコーデックを最適化する場合、そのデバイスが複数のタスクを並列に実行するのに提供できるあらゆる設備が十分に利用されることを確かめること、及び、復号プロセスの個々の部分がボトルネックとなる範囲を制限することが重要である。
本発明のビットストリームは、ほとんどの他のビデオコーデックと共通して、概して言えば、エントロピー符号化されたトークンを含むものとして説明することができる。このエントロピー符号化されたトークンは、2つの主要なカテゴリーに分割することができる。
プリディクタトークン(以下、Pトークンと呼ぶ)。たとえば、画像のブロック又は領域を符号化するのに使用される方法又はモードを記述するトークンであり、或るフレームと別のフレームとの間の動きを記述するトークンである。
予測エラー信号トークン(以下、Eトークンと呼ぶ)。これらは、不完全な予測の結果生じたあらゆる残差を符号化するのに使用される。
エントロピー符号化は、ビットストリームにおける特定のPトークン又はEトークンの表現が、ビットストリームにおけるそのトークンの周波数、又は、そのトークンが特定の位置に現れる尤度に従って最適化されるプロセスである。たとえば、非常に頻繁に現れるトークンは、まれにしか現れないトークンよりも少ないビット数を使用して表される。
最も一般的なエントロピー符号化技法の2つは、ハフマン符号化及び算術符号化である。ハフマン符号化では、各トークンは、可変長のビットパターン(又は符号)によって表される。算術符号化は、計算がより複雑な技法ではあるが、各トークンについて多数のビット全体を使用する制約が除去されている。算術符号化器を使用すると、たとえば、1ビットの1/2の平均コストで非常に一般的なトークンを符号化することが完全に可能である。
多くのマルチメディアデバイスは、エントロピー符号化のタスクによく適合したコプロセッサユニット、及び、より多目的のメインプロセッサを有する。その結果、並列化のために、ビットストリームの符号化又は復号のプロセスは、多くの場合、エントロピーに関連したタスクと、エントロピーに関連しないタスクとに分割される。
しかしながら、所与のビデオクリップの場合、データレートが増加するにつれて、符号化/復号するトークン数が急激に上昇し、エントロピー符号化がボトルネックになる場合がある。
従来のビットストリームでは、エントロピー符号化の計算負荷を再分散させて、このボトルネックを取り除くことは非常に困難である。特に、復号側では、通常は、トークンが符号化された順序で1度に1つずつトークンを復号しなければならない。また、フレームレベル以外の方法又はエントロピー符号化(たとえば、ハフマン符号化及び算術符号化)を混在させることもきわめて困難である。
本発明のこの態様は、エントロピー符号化の計算負荷を再分散することを容易にし、且つ、ビットストリームに対する構造的な変更を通じて混在モードのエントロピー符号化の使用を容易にするように設計された方法である。
本方法によれば、ビットストリームの各フレームは、完全に独立した2つ又は3つ以上のデータパーティションに分割される。これらのパーティションは、並列に書き込むこともできるし、並列に読み出すこともでき、同じエントロピー符号化メカニズムを使用するように制約されない。これによって、高いビットレートでエントロピーに関連したボトルネックを回避するように符号化プロセス又は復号プロセスを最適化することが容易になる。
単一のフレーム内でハフマン技法及び算術技法の双方又はそれら2つを混在させたものが使用できることによって、符号化器には、達成される圧縮量と計算複雑度との間のトレードオフをより良く最適化する機能が与えられる。たとえば、フレームの計画されたサイズが所与のしきい値を超えている場合、符号化器は、そのパーティションの1つ又は複数において、複雑さが少なくなったハフマン方法を使用するように構成することができる。
本発明のこの態様の特定の実施態様は、1つ又は2つのいずれかのメインデータパーティションの使用をサポートする。これに加えて、小さなヘッダパーティションがある。
単一のデータパーティションを使用する場合、コーデックは従来通りに振る舞う。Pトークン及びEトークンの双方が、単一のデータパーティションで独自の算術符号化器を使用して符号化される。本方法は、オーバーヘッドがわずかに低い(フレームあたり数ビット)が、柔軟性が少ない。
たとえば、
パーティション1
(ブロック1) P,P,E,E,E
(ブロック2) P,E,E
(ブロック3) P,E,E,E,E
一方、第2のケースでは、Pトークン及びEトークンは、別々のパーティションに書き込まれる。
たとえば、
パーティション1 パーティション2
(ブロック1) PP EEE
(ブロック2) P EE
(ブロック3) P EEEE
第1のパーティションのサイズは、データレートによって等しく変化する傾向はなく、比較的小さい。したがって、このパーティションは、常に、算術符号化器を使用して符号化される。第2のパーティションは、算術符号化器を使用して符号化することもできるし、ハフマン符号化器を使用して符号化することもできる。
第2のパーティションに対するハブマン符号化又は算術符号化の選択は、フレームレベルの信号で伝えることができる。好ましい実施態様では、この選択は、ターゲット復号器のプラットフォームの性能及びフレームの計画されたビットサイズに依存する。具体的には、フレームサイズがしきい値数を超える場合において、復号器が実時間でフレームを復号する問題を有するという危険性があるときは、ハフマン方法が使用される。
符号化器の性能も、実時間符号化が要件である場合に問題となる可能性がある。しかし、キーフレーム(より大きくなる傾向があり、他のフレームに依存しない)は例外になり得るとして、エントロピー符号化のコストは、通例、符号化器の全体の計算コストのより小さな一部分となる。
以下の「C」コードセグメントは、本発明のこの態様の好ましい実施態様をサポートする詳細を与えるものである。
// この関数は、算術符号化された1つのデータパーティション、算術符号化された
// 2つのデータパーティション、又は、算術符号化された1つのデータパーティ
// ション及び1つのハフマンデータパーティションのいずれかを使用して、
// フレーム用の符号化されたビデオデータを梱包する。
//
// 引数「cpi」は、主符号化器インスタンスデータ構造体へのポインタである。
void PackCodedVideo( CP_INSTANCE *cpi )
{
UINT32 PartitionTwoOffset;

BOOL_CODER *bc = &cpi->bc; // 算術符号化器インスタンスデータ構造体
BOOL_CODER *bc2 = &cpi->bc2; // 第2の算術符号化器インスタンス構造体
PB_INSTANCE *pbi = &cpi->pb; // 復号器インスタンスデータ構造体

// ヘッダパーティションに使用される生のバッファi/oを初期化する
InitAddRawBitsToBuffer( &cpi->RawBuffer, pbi->DataOutputPtr );

// 算術符号化器及び/又はハフマン符号化器を起動する
// 2つのデータパーティションを使用している場合…
if ( pbi->MultiStream || (pbi->VpProfile == SIMPLE_PROFILE))
{
// 第1の算術符号化器を起動する。生のヘッダバイトを考慮する。
VP6_StartEncode( bc, (pbi->DataOutputPtr + ((KeyFrame)? 4:3)));

// 第2の算術パーティション又はハフマンパーティションのいずれかを作成する
// これは、保持バッファ「cpi->OutputBuffer2」に最初に書き込まれる
if ( pbi->UseHuffman )
InitAddRawBitsToBuffer ( &pbi->HuffBuffer, cpi->OutputBuffer2 );
else
VP6_StartEncode( bc2, cpi->OutputBuffer2 );
}
// 算術符号化器を使用して符号化された単一のデータパーティションのみを使用している
else
{
// 算術符号化器を起動する。生のヘッダバイトを考慮する。
VP6_StartEncode( bc, (pbi->DataOutputInPtr + ((KeyFrame)? 2:1))); }




// サイズを含むフレームヘッダ情報を書き出す。
WriteFrameHeader( … );




if ( pbi->UseHuffman )
PackHuffmanCoeffs( … );
else
PackArithmeticCoeffs( … );

// 第1のデータパーティションに使用された算術符号化器インスタンスを停止する
VP6_StopEncode( bc );

// データパーティションへのオフセットを算出し、それらオフセットを、
//生のヘッダパーティションにおけるこの情報用に予約された空間に書き込む
//
// 2つのデータパーティションを使用している場合…
if ( pbi->MultiStream || (pbi->VpProfile == SIMPLE_PROFILE))
{
// バッファの始点から第1のデータパーティションへのオフセット
PartitionTwoOffset = 4 + bc->pos;

// オフセットを第2のデータパーティションパーティションに書き込む。
AddRawBitsToBuffer( &cpi->RawBuffer, PartitionTwoOffset, 16 );

// 第2のデータパーティションにハフマンが使用された場合…
if ( pbi->UseHuffman )
{
// ハフマン符号化された出力パーティション用のバッファをフラッシュする
EndAddRawBitsToBuffer( &pbi->HuffBuffer );



// ハフマン符号化されたデータを保持バッファから出力バッファへ
// コピーする
memcpy( &cpi->RawBuffer.Buffer[ PartitionTwoOffset ],
pbi->HuffBuffer.Buffer, pbi->HuffBuffer.pos );
}
else
{
// 第2のデータパーティションによって使用された
// 算術符号化器インスタンスを停止する。
VP6_StopEncode( bc2 );



// 第2のパーティションによって使用された保持バッファの内容を
// 出力バッファへコピーする
memcpy( &pbi->DataOutputInPtr[ PartitionTwoOffset ],
bc2.buffer, bc2.pos);
}
}

// ヘッダに使用された生のビット符号化器を停止してフラッシュする
EndAddRawBitsToBuffer( &cpi->RawBuffer );

}

// この関数は、2つのデータパーティションを使用する場合に符号化ストラテジーを選択するためにコールされる。
void SelectMultiStreamMethod( CP_INSTANCE *cpi)
{
// フレームにおけるトークンの分布から収集された情報を使用して
// フレームの見積もりコスト(シャノンエントロピー)を計算する。
// あらゆるモード情報及び動きベクトル情報を符号化するための、
// 前に計算されたコスト見積もりを算入する
EstimatedFrameCost = VP6_ShannonCost( cpi ) + ModeMvCost;

// 第2のデータパーティションにハフマン符号化を使用して下がるかどうかを判断する
if ( EstimatedFrameCost > HuffmanCodingThereshold )
pbi->UseHuffman = TRUE;
else
pbi->UseHuffman = FALSE;
<複数のフィルタを使用した、ビデオコーデックの端数ピクセル動き予測の高度化>
現代のほとんどのビデオコーデックにとって、動き予測は、圧縮プロセスの重要な部分である。動き予測は、画像の物体又は領域の動きが、1つ又は複数のフレームにわたってモデル化され、1つ又は複数の「動きベクトル」が、この動きを表すためのビットストリームで送信されるプロセスである。ほとんどの場合、画像内の動きを完全にモデル化することはできず、そこで、動き情報に加えて残差信号を符号化することが必要である。
基本的に、各動きベクトルは、符号化される現在のフレームの領域と類似した、前に符号化されたフレームの領域を指し示す。残差信号は、各ピクセルの予測値を、現在のフレームの実際の値から差し引くことによって得られる。
現代の多くのビデオコーデックは、サブピクセル精度に対して動き予測をサポートすることによりこのプロセスを拡張している。たとえば、1/2ピクセル又は1/4ピクセルの動き推定である。端数ピクセルデータ点を作成するには、実際の(すなわち、フルピクセルアラインされた)データ点に適用される或る形態の補間関数又は補間フィルタを使用することが必要である。
初期のコーデックは、一般に、簡単な双1次補間を使用していた。
A x B
y z
C D
この例では、A、B、C、及びDが、フルピクセルアラインされたデータ点であり、x、y、及びzが、1/2ピクセルアラインされた点である。点xは、X方向に1/2ピクセルアラインされ、公式:x=(A+B/2)を使用して計算することができる。点yは、Y方向に1/2ピクセルアラインされ、公式:y=(A+C/2)を使用して計算することができる。点zは、X及びYの双方で1/2ピクセルアラインされ、公式:z=(A+B+C+D/2)を使用して計算することができる。
後のコーデックは、画像がぼける傾向を少なくする、双3次フィルタ等のより複雑な補間フィルタの使用に向かう傾向がある。以下の例では、xは、2つのフルピクセルアラインされた点BとCとの間の中点にある1/2ピクセル点である。双3次フィルタに対して整数近似を使用すると、xは、公式:x=(−A+9B+9C−D)/16を使用して計算することができる。
A B x C D
上記に示した双3次フィルタ等のフィルタは、よりシャープに見える結果を生成する傾向があるが、いくつかのフレームにわたってそれらフィルタが繰り返し適用されると、場合によっては、誤ったテキスチャや誤った輪郭等の不快な人工物となる可能性がある。
本発明のこの態様は、コーデックが、フィルタリング技法を混在させたものを使用して、より最適な端数ピクセルプリディクタを作成でき、クリップレベル、フレームレベル、ブロックレベル、又は個々のピクセルレベルでもこれらの方法から選択を行える方法である。
好ましい実施態様では、ブロックレベルで、双1次フィルタリングのみを使用するのか、双3次フィルタリングのみを使用するのか、それとも選択を可能にするのかの選択をフレーム単位で行うことができる。
ブロックレベル又は領域レベルでの選択は、ビットストリーム内の明示的なシグナリングビットによって行うことができるが、好ましい実施態様では、ビットストリームにおいてすでに利用可能な文脈情報を使用し、且つ、フィルタリングされることになる、フルピクセルアラインされたデータ値に適用された複雑度メトリックによって、この選択は行われる。
動きプリディクタの品質が不十分な状況(たとえば、前のフレームの再構築においてブロックの良好な予測を見つけることができなかった場合)では、双1次フィルタリングは、多くの場合、最善の選択肢となる。具体的には、予測が不十分である場合、双3次フィルタのシャープ化特性は、残差信号の高周波の内容の増加につながる場合があり、符号化をより困難にする場合がある。
明示的なシグナリングビットがビットストリームにない場合、不十分な予測品質との相関の程度をより大きくしたりより小さくしたりする文脈的に利用可能なさまざまな値を示すことができる。これら値の最も単純なものの1つは、動きベクトル長(motion vector length)である。具体的には、予測の品質は、動きベクトル長の増加と共に劣化する傾向がある。別の可能な指標は、動きフィールドの滑らかさ(すなわち、近傍のブロックの動きベクトルがどれだけ類似しているか)である。
また、双1次フィルタリングは、ベクトルの選択に信頼性がない(たとえば、画像があまり詳細でなく、類似したエラースコアを有する多くの候補ベクトルがある)状況においてより良い選択肢となる傾向がある。特に、比較的平坦で特徴のない領域に対して多くのフレームにわたり双3次フィルタを繰り返し適用すると、不要な人工物が生み出される場合がある。
好ましい実施態様では、フィルタリング方法を選ぶ際に2つの因子が考慮される。第1の因子は、動きベクトルの長さである。第2の因子は、フィルタリングされることになる1組のフルピクセルアラインされたデータ点を解析することによって計算される複雑度メトリックCである。
双3次フィルタリングは、以下のテスト条件が共に満たされる場合にのみ使用される。
1.動きベクトルが、X及びYの双方でしきい値Lよりも短い。
2.複雑度Cが、しきい値Tよりも大きい。
好ましい実施態様では、Cは、公式:
C=(nΣx −(Σx)/n
に従って計算された1組のn個のデータ点xの分散である。
好ましい実施態様では、複雑度しきい値T及び動きベクトル長しきい値Lは、フレームごとに1回の割合で、符号化器が設定することができる。
以下の「C」コードセグメントは、本発明のこの態様の好ましい実施態様をサポートする詳細を与えるものである。
PredictBlockFunction( … )
{


if ( pbi->PredictionFilterMode == AUTO_SELECT_PM )
{

// ベクトルがX又はYにおいてしきい値長よりも大きい場合に双1次を使用する
if ( (( abs(pbi->mbi.Mv[bp].x ) > BicMvSizeLimit ||
(( abs(pbi->mbi.Mv[bp].y ) > BicMvSizeLimit))
{

FilterBlockBilinear( … );
}
else
{
// 複雑度メトリック(分散)を計算する。
// 注意:性能の理由から、分散関数は16個のデータ点
// (8×8ブロックのX及びYの1つおきの点)のみを検査する
Var = Var16Point( DataPtr, Stride );

// 複雑度が所与のしきい値よりも大きい場合には、双3次を使用し、
// そうでない場合には、双1次を使用する
if ( Var >= pbi->PredictionFilterVarThresh )
FilterBlockBilcubic( … )

else
FilterBlockBilinear( … )
}
}


}

UINT32 Var16Point ( UINT8 *DataPtr, INT32 Stride )
{
UINT32 i, j;
UINT32 XSum=0, XXSum=0;
UINT8 *DiffPtr = DataPtr;

// X及びYの1つおきの点を使用する
for ( i = 0; i < BLOCK_HEIGHT_WIDTH; i += 2 )
{
for ( j = 0; j < BLOCK_HEIGHT_WIDTH; j += 2 )
{
XSum += DiffPtr[j];
XXSum += DiffPtr[j] * DiffPtr[j];
}

// ブロックの次の行へステップする
DiffPtr += (SourceStride << 1)
}

// 適合しないメトリックとして母分散を計算する
return(((XXSum*16)-(XSum*XSum))/256);
<高度化された動きベクトル符号化>
慣例により、現代のほとんどのビデオコーデックは、差分符号化方式を使用して、動きベクトルの(x,y)成分を符号化する。すなわち、各ベクトルは、前のベクトルを基準にして符号化される。たとえば、2つのベクトル(7,3)及び(8,4)を考える。この場合、第2のベクトルは(1,1)、すなわち(7+1,3+1)として符号化されることになる。
この方式は、動きベクトルが符号化されるほとんどのブロック又は領域が、その近傍の動きと類似した動きを示す場合によく機能する。これは、多くの場合、たとえばパンする時に当てはまることを示すことができる。しかしながら、動きフィールドが不規則である場合、又は、異なる動き特性を有する背景領域と前景領域との間での遷移が頻繁である場合に、この方式はあまりよく機能しない。
本発明のこの態様は、差分符号化の利点を保持すると同時に不規則なフィールド及び背景前景遷移の許容範囲がより大きな、動きベクトルを符号化するための代替的なストラテジーである。
本発明によれば、コーデックは、動きベクトルを符号化できる基準になる2つ又は3つ以上の基準ベクトルを保持する。コーデックは、ビットストリーム内の明示的なシグナリングビットを介してこれらの基準ベクトルを切り換えることができるが、好ましい実施態様では、この決定は、符号化方法、及び、ブロックのすぐ隣のブロックによって使用される動きベクトルに基づく。
好ましい実施態様では、ブロックは、イントラブロック(intra block)(前のどのフレームにも依存しない)として符号化することもできるし、前のフレームの再構成又は周期的にしか更新されない代替的な基準フレームのいずれかに依存するインターブロック(inter block)として符号化することもできる。
前のフレームの再構成又は代替的な基準フレームを基準にして符号化する場合、本発明は、以下の符号化モードの選択肢をサポートする。
・動きベクトルなし(すなわち、暗黙的な(0,0)ベクトル)で符号化する。
・「最も近い」近傍と同じベクトルを使用して符号化する。
・「次に最も近い」近傍と同じベクトルを使用して符号化する。
・新たな動きベクトルを使用して符号化する。
最も近い近傍又は次に最も近い近傍を定義する際、現在のブロックと同じ基準フレームを基準にして符号化されたブロック及び非ゼロの動きベクトルで符号化されたブロックのみが考慮される。他のすべてのブロックは無視される。
次に最も近い近傍を定義する際、最も近い近傍と同じベクトルで符号化されたブロックも無視される。
新たな動きベクトルを符号化する際、コーデックは、(0,0)ベクトル又は最も近いベクトルを基準ベクトルとして使用することができる。好ましい実施態様では、最も近いベクトルが得られたブロックが、現在のブロックのすぐ左のブロック又はすぐ上のブロックのいずれかである場合に、その最も近いベクトルが使用される(ブロックは、左から右へ及び上から下へ符号化されるものと仮定する)。他のすべての場合には、新たなベクトルは(0,0)を基準にして符号化される。
基本的な方法のいくつかの拡張が可能である。最も近い近傍及び次に最も近い近傍が、それぞれ現在のブロックのすぐ左のブロック及びすぐ上のブロックである場合、それら2つから得られた或る種の合成ベクトルを、新たなベクトルを符号化するための基準として使用することができる。あるいは、「最も近い」はx成分を予測するのに使用することができ、「次に最も近い」はy成分を予測するのに使用することができる。
別の可能な拡張は、ここでも、最も近い又は次に最も近いが、現在のブロックのすぐ左のブロック及びすぐ上のブロックであると仮定して、最も近いベクトルと次に最も近いベクトルとが類似していない場合を特別に考慮したものである。このような場合、最も近いベクトル及び次に最も近いベクトルは、x、y、又はx及びyの双方の基準値として0に戻る。
本方法は、規則的な動きフィールド又はゆっくりと変化する動きフィールドがある場合に、単純な差分符号化の利益を保持する。しかしながら、特別な「ベクトルのない」モード、「最も近い」モード、及び「次に最も近いモード」を使用することは、前景と背景との間の遷移をより効率的に符号化するのに役立ち、複数の符号化の起点を自動的に切り換えることができることによって、本方法の不規則な動きフィールドの許容範囲は、より大きくなる。
以下の「C」コードセグメントは、本発明のこの態様の好ましい実施態様をサポートする詳細を与えるものである。
// この関数は、現在のブロックについて、限定的な(qualifying)最も近い近傍
// 及び次に最も近い近傍があるかどうか、それらの動きベクトルは何であるか、
// 並びに最も近い近傍がどれだけ接近しているかを判断する。
//
void VP6_FindNearestandNextNearest( PB_INSTANCE *pbi,
UINT32 MBrow,
UINT32 MBcol,
UINT8 ReferenceFrame,
INT32 *Type )
{
int i;
UINT32 OffsetMB;
UINT32 BaseMB = MBOffset( MBrow, MBcol );
MOTION_VECTOR ThisMv;

// デフォルト結果を設定する
*Type = NONEAREST_MACROBLOCK;

// 限定的な「最も近い」ブロックを探索する
for ( i=0; i<12; i++ )
{
OffsetMB = pbi->mvNearOffset[i] + BaseMB;

// ブロックは同じ基準フレームを基準にして符号化されたか?
if ( VP6_Mode2Frame[pbi->predictionMode[OffsetMB]] != ReferenceFrame )
continue;

// 動きベクトルがもしあれば、その動きベクトルは何を使用したか
ThisMv.x = pbi->MBMotionVector[OffsetMB].x;
ThisMv.y = pbi->MBMotionVector[OffsetMB].y;

// それが非ゼロであった場合、限定的な近傍を有する
if ( ThisMv.x || ThisMv.y )
{
Nearest.x = ThisMv.x;
Nearest.y = ThisMv.y;
*Type = NONEAR_MACROBLOCK;
break;
}
}

pbi->mbi.NearestMvIndex = i;

// 限定的な「次に最も近い」ブロックを探索する
for ( i=i+1; i<12; i++ )
{
OffsetMB = pbi->mvNearOffset[i] + BaseMB;

// ブロックは同じ基準フレームを基準にして符号化されたか?
if ( VP6_Mode2Frame[pbi->predictionMode[OffsetMB]] != ReferenceFrame )
continue;

// 動きベクトルがもしあれば、その動きベクトルは何を使用したか
ThisMv.x = pbi->MBMotionVector[OffsetMB].x;
ThisMv.y = pbi->MBMotionVector[OffsetMB].y;

// このベクトルが「最も近い」ベクトルと同じである場合、このベクトルを無視する
if ((ThisMv.x == Nearest.x) && (ThisMv.y == Nearest.y))
continue;

// それが非ゼロであった場合、限定的な近傍を有する
if ( ThisMv.x || ThisMv.y )
{
NextNearest.x = ThisMv.x;
NextNearest.y = ThisMv.y;
*Type = MACROBLOCK;
break;
<エラー回復における代替的な基準フレームの使用>
ビデオコーデックは、多くの場合、ビットストリームのエラーの影響を極端に受けやすいので、信頼性のないデータリンク上で圧縮ビデオデータを送信する場合、データが喪失又は破損したときの回復のためのメカニズムが存在することは重要である。
このようなリンクの信頼性のあるデータ送信のためのさまざまな技法及びプロトコルが存在し、これらは、通常、エラーの検出、及び、再送又は一定のタイプのエラーの訂正を可能にする追加データビットの使用のいずれかに依拠する。
多くの状況では、これら既存の技法は十分である。しかし、制限された帯域幅のリンク上でビデオ会議を行う場合、上述した手法のいずれも理想的ではない。喪失したデータパケットの再送は、端末間の遅延の増加を引き起こす可能性があるので実用的でない場合がある一方、誤り訂正ビット又は誤り訂正パケットの使用は、帯域幅がすでに厳しく制限されている状況では受け入れられない場合がある。
代替的な手法は、単に、復号器においてエラーを検出し、そのエラーを符号化器に報告することである。符号化器は、その後、回復フレームを復号器へ送信することができる。この手法は、リンク上のエラーレートが非常に高い場合、適切でないおそれがあることに留意されたい。たとえば、10フレーム〜20フレームごとに2つ以上のエラーがある場合である。
最も簡単な形態の回復フレームは、キーフレーム(又はイントラオンリーフレーム)である。これは、前のフレーム又は前のフレームのデータに何ら依存関係を有しないフレームである。キーフレームに関連した問題は、それらキーフレームが、通例、比較的大きいということである。
発明5の対象は、コーデックが、回復フレームのより効率的な符号化のための開始点として使用できる1つ又は複数の追加された基準フレーム(前に符号化されたフレームの再構成以外)を保持するメカニズムである。
本発明の好ましい実施態様では、コーデックは、キーフレームが存在する時は常に、且つ、オプションとしてそれ以外の時に、フレームヘッダのフラグビットを介して更新される第2の基準フレームを保持する。たとえば、符号化器は、「X」秒ごとに1回又はエラー回復フレームが符号化される時は常に第2の基準フレームを更新することを選択することができる。
第2の基準フレームの内容が、少なくともいくつかの点で現在のフレームの内容と類似しているという条件で、この第2の基準フレームを基準にした差分符号化は、キーフレームを符号化するよりもはるかに安価になる可能性がある。
1つ又は複数の代替的な基準フレームを使用して、圧縮品質又は圧縮効率を高めることができるいくつかの方法がある。従来技術に含まれる1つの明らかな使用は、2つ又は3つ以上の異なるシーン間を行ったり来たりするビデオシーケンスにおいてである。たとえば、ビデオがインタビューする側とインタビューされる側との間で行ったり来たりするインタビューを考える。各カメラアングル用のベースラインとして別々の基準フレームを記憶することにより、これらの間を行ったり来たりするコストを大きく削減することができ、特に、シーンが大幅に異なる場合に大きく削減することができる。
本発明は、代替的な基準フレームをこのように使用する選択肢を有するが、本発明の対象は、ビデオにゆっくりとした漸進的変化がある状況において、周期的に更新された代替的な基準フレームを使用して、圧縮されたビデオの品質を高めることである。この良い例はゆっくりとしたパン、ズーム、又はトラッキングショットである。
本発明のこの態様によれば、ゆっくりとしたパン又は他のこのようなゆっくりとした漸進的変化の間、符号化器は、周囲のフレームよりもきわめて高い品質で符号化され、且つ、第2の又は代替的な基準フレームの更新を引き起こすフレームを周期的に挿入する。
これらの高い品質の「第2の基準の更新」フレームの目的は、最後のキーフレーム以来又は最後の第2の基準の更新以来、次第に喪失してきた細部を元に戻すこと、及び、後続のフレームのインターフレーム予測のより良い基礎を提供することである。品質(したがってデータレート)を周期的に引き上げると同時に第2の基準フレームを更新するこのストラテジーは、いくつかの状況では、単にすべてのフレームを同様の品質で符号化することよりもはるかに良好なコスト/品質トレードオフを提供することを示すことができる。
第2の基準の更新の適切な間隔、及び、品質又はデータレートを増加させるべき量を決定するための方法は、有効な実施態様の中心となる。
本発明のこの態様の好ましい実施態様では、いくつかの因子が考慮される。これらの因子には、以下のものが含まれる。
・動きの速度の指標として、数個の先行フレームにおける動きベクトルの平均振幅。
・動きフィールドが相関する程度。たとえば、動きベクトルがすべてかなり類似している。
・前の数フレームにおける前のフレームの再構成に優先して、第2の基準フレームがプリディクタとして使用された程度。
・周囲の品質又は量子化器の設定。
使用された動きベクトルの平均振幅が高い場合(高速の動きを示す)、第2の基準の更新間隔及び品質ブースト(quality boost)はともに減少する。逆に、動きがゆっくりとしている場合、より大きな品質ブースト及びより長い間隔が使用される。
動きフィールドが高い相関を有する場合、すなわち、類似した動きベクトルが多数ある場合、第2の基準フレームの更新のための品質ブーストは増加する。逆に、動きフィールドの相関が乏しい場合、ブーストの程度は減少する。
第2の基準フレームが、前のフレームの再構成に優先して、プリディクタとして頻繁に使用されている場合、品質ブーストは増加する。逆に、第2の基準フレームが頻繁に使用されない場合、品質ブーストは減少する。
また、品質ブーストの程度は、周囲の品質にも或る程度依存し、周囲の品質が低い場合には大きなブーストが使用され、周囲の品質が高い場合には小さなブーストが使用される。
以下の擬似コードは、本発明のこの態様の好ましい実施態様の詳細をより与えるものである。
各フレームについて
1/4ピクセル単位で指定されたX及びYの動きベクトル成分の平均振幅(AvX及びAvY)を計算する。
MotionSpeed(動きの速度)=AvX及びAvYの大きい方
X及びYの動きベクトル成分の分散数(VarianceX(分散X)及びVarianceY(分散Y))を計算する
MaxVariance(最大分散)=VarianceX及びVarianceYの大きい方
MotionComplexity(動きの複雑度)=MotionSpeed+(VarianceX/4)+(VarianceY/4)
第2の基準フレームの更新がまさにこのフレームである場合
そのフレームの予測された品質インデックス(実際には量子化器の設定)に基づいてデータレート%ブースト数(Boost)を計算する。これは、最高品質の+0%と、品質レベルが非常に低い時の+1250%との範囲とすることができる。
BoostにMotionSpeed訂正係数(correction factor)を乗算する。ここで、この係数は、MotionSpeedが非常に小さい値である場合の1と、MotionSpeedが大きな値である場合の0との間で変化することができる。
第2の基準フレームが前の数フレームで使用された程度に基づいて、さらに別の訂正係数をBoostに適用する。この別の訂正係数は、第2の基準フレームが前の数フレームで全く使用されなかった場合の1/16から、第2の基準フレームが符号化されたブロックの15%以上に使用された場合の1まで変化することができる。
次に、一連のテストが適用されて、先に進むかどうか、及び、計算された%ブーストで第2の基準フレームを更新するかどうかが判断される。
主なテストは次の通りである。
(Boost>MinBoostTreshold)且つ
(MotionSpeed<MaxMotionSpeedThreshold)且つ
(MaxVariance<MaxVarianceThreshold)
ここで、MinBoostTreshold、MaxMotionSpeedThreshold、及びMaxVarianceThresholdは構成可能なパラメータである。
本発明は、複数の特別な「動き再利用」モードを有する。これらの「動き再利用」モードは、或るブロックの動きベクトルが、その近くにある近傍のブロックの1つによって使用された動きベクトルと同じである場合に、当該或るブロックの動きベクトルをより安価に符号化することを可能にするものである。これらのモードの使用がしきい値レベル未満に下がる場合を減らすためのさらなるテストが適用される。
ブーストを適用して第2の基準フレームを更新する決定がなされた場合、フレームデータレート目標値をベースライン値+Boost%に設定し、計算し、MotionSpeedに基づく次の更新までの間隔。
ブーストを適用せず、第2の基準フレームを更新しない決定がなされた場合、0%のデータレートブーストで通常通りフレームを更新する。
それ以外の場合、第2の基準フレームの更新は行われるべきではない。
第2の基準フレームが最後に更新された時に適用されたブーストのレベル及び現在の更新間隔を考慮した、削減されたフレームデータレート目標値(負のブースト)を計算する。
<再構成エラーメトリックを使用した、端数ピクセル予測を作成するための代替的な方法の選択>
現代の多くのビデオコーデックは、サブピクセル精度に対する動きの予測をサポートする。たとえば、1/2ピクセル又は1/4ピクセルの動き推定である。端数ピクセルデータ点を作成するには、実際の(すなわち、フルピクセルアラインされた)データ点に適用される或る形態の補間関数又は補間フィルタを使用することが必要である。
初期のコーデックは、一般に、簡単な双1次補間を使用していた。
A x B
y z
C D
この例では、A、B、C、及びDが、フルピクセルアラインされたデータ点であり、x、y、及びzが、1/2ピクセルアラインされた点である。
*点xは、X方向に1/2ピクセルアラインされ、公式(A+B/2)を使用して計算される。
*点yは、Y方向に1/2ピクセルアラインされ、公式(A+C/2)を使用して計算される。
*点zは、X及びYの双方で1/2ピクセルアラインされ、公式(A+B+C+D/2)を使用して計算される。
後のコーデックは、画像がぼける傾向を少なくする、双3次フィルタ等のより複雑な補間フィルタの使用に向かう傾向がある。以下の例では、「x」は、2つのフルピクセルアラインされた点BとCとの間の中点にある1/2ピクセル点である。xは、公式(−A+9B+9C−D)/16を使用して計算することができる。
A B x C D
上記に示した双3次フィルタ等のフィルタは、よりシャープな結果を生成する傾向があるが、いくつかのフレームにわたってそれらフィルタが繰り返し適用されると、時に、テキスチャの誇張や誤った輪郭等の不快な人工物となる可能性がある。
本発明のこの態様は、コーデックが、双1次フィルタリング及び双3次フィルタリングの混在したものを使用して、より最適な端数ピクセルプリディクタを計算することができ、フレームレベル、又は、動きベクトルが適用される個々のブロックもしくは領域のレベルのいずれかでこれらの方法を選択することができる方法である。
ブロックレベル又は領域レベルでの選択は、ビットストリーム内のシグナリングビットによって行うことができるが、好ましい実施態様では、この選択は、フィルタリングされることになる前の再構成された画像の1組のピクセルに適用された複雑度メトリックによって行われる。
本方法によれば、しきい値「T」よりも大きな複雑度スコアを有するブロック又は領域は、双3次方法を使用してフィルタリングされるのに対して、これより低い複雑度スコアを有するブロック又は領域は、双1次方法を使用してフィルタリングされる。
好ましい実施態様では、複雑度メトリックは、フィルタリングされる1組の「n」個のフルピクセルアラインされたデータ点の分散である。ここで、分散は次のように定義される。
(n?x2−(?x)2)/n2
好ましい実施態様では、しきい値「T」は、フレームごとに1回更新することができる。

Claims (14)

  1. 複数のフレームを有するビデオ信号を符号化する方法であって、
    前記複数のフレームに含まれる現在のフレーム内の第1ブロックを特定する段階と、
    前記第1ブロックに対応する少なくとも1つの予測トークンを決定する段階と、
    前記複数のフレーム内に参照ブロックを特定する段階と、
    前記第1ブロックと前記参照ブロックとの間の差から少なくとも1つの予測エラートークンを決定する段階と、
    前記少なくとも1つの予測トークンを、第1パーティションに割り当てる段階と、
    前記少なくとも1つの予測エラートークンを、第2パーティションに割り当てる段階と、
    前記第1パーティションに対して第1符号化方法を選択し、前記第2パーティションに対して第2符号化方法を選択する段階と
    を備える方法。
  2. 前記第1ブロックは予測モードに関連し、前記少なくとも1つの予測トークンは前記予測モードから導かれる
    請求項1に記載の方法。
  3. 前記少なくとも1つの予測トークンは前記第1ブロックの動きベクトルから導かれ、前記動きベクトルは前記第1ブロックと前記参照ブロックとの間の位置関係を示す
    請求項1に記載の方法。
  4. 前記参照ブロックは、前記現在のフレーム以外のフレーム内に存在する
    請求項1から3のいずれか一項に記載の方法。
  5. 前記第1パーティションを前記第1符号化方法で符号化し、前記第2パーティションを前記第2符号化方法で符号化する段階
    をさらに備える請求項1から4のいずれか一項に記載の方法。
  6. 前記第1符号化方法および前記第2符号化方法は、算術符号化である
    請求項1から5のいずれか一項に記載の方法。
  7. 前記第1符号化方法は算術符号化であり、前記第2符号化方法はハフマン符号化である
    請求項1から5のいずれか一項に記載の方法。
  8. 前記第1パーティションおよび前記第2パーティションを符号化する段階
    をさらに備え、
    前記符号化する段階は、
    第1プロセッサによって前記第1パーティションを前記第1符号化方法で符号化する段階と、
    第2プロセッサによって前記第2パーティションを前記第2符号化方法で符号化する段階と
    を有する請求項1から4のいずれか一項に記載の方法。
  9. 前記第1パーティションおよび前記第2パーティションは、並列に符号化される
    請求項8に記載の方法。
  10. 前記第1プロセッサは汎用サブプロセッサであり、前記第2プロセッサはエントロピー符号化に最適化されたプロセッサである
    請求項8または9に記載の方法。
  11. 前記選択する段階は、
    前記第1パーティションを符号化するコストおよび前記第2パーティションを符号化するコストを算出する段階と、
    前記第1パーティションを符号化するコストおよび前記第2パーティションを符号化するコストの和が予め定められた閾値を超える場合に、前記第2符号化方法としてハフマン符号化を選択する段階と
    を有する請求項1から10のいずれか一項に記載の方法。
  12. 前記コストの和が前記予め定められた閾値以下である場合に、前記第2符号化方法として算術符号化を選択する段階
    をさらに有する請求項11に記載の方法。
  13. 前記第1パーティションを符号化するコストおよび前記第2パーティションを符号化するコストの少なくとも一方は、シャノンエントロピーを用いて算出される
    請求項11または12に記載の方法。
  14. 前記現在のフレームには、前記第1符号化方法および前記第2符号化方法の前記選択を示す信号を含むヘッダ情報が付随する
    請求項1から13のいずれか一項に記載の方法。
JP2010239018A 2003-05-12 2010-10-25 ビデオ圧縮方法 Active JP5480775B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US46918703P 2003-05-12 2003-05-12
US60/469,187 2003-05-12
US10/713,807 US8824553B2 (en) 2003-05-12 2003-11-14 Video compression method
US10/713,807 2003-11-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010121008A Division JP5341024B2 (ja) 2003-05-12 2010-05-26 ビデオ圧縮方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014008689A Division JP2014099905A (ja) 2003-05-12 2014-01-21 ビデオ圧縮方法

Publications (2)

Publication Number Publication Date
JP2011050090A JP2011050090A (ja) 2011-03-10
JP5480775B2 true JP5480775B2 (ja) 2014-04-23

Family

ID=33423828

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2006533037A Expired - Fee Related JP4568887B2 (ja) 2003-05-12 2004-05-12 ビデオ圧縮方法
JP2010121008A Expired - Fee Related JP5341024B2 (ja) 2003-05-12 2010-05-26 ビデオ圧縮方法
JP2010239018A Active JP5480775B2 (ja) 2003-05-12 2010-10-25 ビデオ圧縮方法
JP2013117983A Expired - Fee Related JP5606591B2 (ja) 2003-05-12 2013-06-04 ビデオ圧縮方法
JP2014008689A Pending JP2014099905A (ja) 2003-05-12 2014-01-21 ビデオ圧縮方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2006533037A Expired - Fee Related JP4568887B2 (ja) 2003-05-12 2004-05-12 ビデオ圧縮方法
JP2010121008A Expired - Fee Related JP5341024B2 (ja) 2003-05-12 2010-05-26 ビデオ圧縮方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2013117983A Expired - Fee Related JP5606591B2 (ja) 2003-05-12 2013-06-04 ビデオ圧縮方法
JP2014008689A Pending JP2014099905A (ja) 2003-05-12 2014-01-21 ビデオ圧縮方法

Country Status (7)

Country Link
US (8) US8824553B2 (ja)
EP (1) EP1656791A2 (ja)
JP (5) JP4568887B2 (ja)
KR (6) KR101118438B1 (ja)
CN (2) CN101454990B (ja)
CA (1) CA2525390C (ja)
WO (1) WO2004102946A2 (ja)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US7471724B2 (en) * 2003-06-23 2008-12-30 Vichip Corp. Limited Method and apparatus for adaptive multiple-dimensional signal sequences encoding/decoding
JP2006086964A (ja) * 2004-09-17 2006-03-30 Toshiba Corp ビットレート変換装置およびビットレート変換方法
US7817723B2 (en) * 2004-12-14 2010-10-19 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E. V. Apparatus and method of optimizing motion estimation parameters for encoding a video signal
US7324708B2 (en) * 2004-12-23 2008-01-29 Primax Electronics Ltd. Interpolation method for digital pictures
US8634413B2 (en) * 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
KR100727969B1 (ko) * 2005-08-27 2007-06-14 삼성전자주식회사 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체
KR100727970B1 (ko) * 2005-08-30 2007-06-13 삼성전자주식회사 영상의 부호화 및 복호화 장치와, 그 방법, 및 이를수행하기 위한 프로그램이 기록된 기록 매체
KR100667815B1 (ko) * 2005-09-22 2007-01-12 삼성전자주식회사 영상 부호화 및 복호화 장치와, 그 방법, 및 이를 수행하기위한 프로그램이 기록된 기록 매체
JP2007189518A (ja) * 2006-01-13 2007-07-26 Matsushita Electric Ind Co Ltd 信号処理装置、撮像装置、ネットワークカメラシステム及び映像システム
KR100834757B1 (ko) 2006-03-28 2008-06-05 삼성전자주식회사 엔트로피 부호화 효율을 향상시키는 방법 및 그 방법을이용한 비디오 인코더 및 비디오 디코더
JP5248802B2 (ja) * 2006-06-16 2013-07-31 カシオ計算機株式会社 動画符号化装置および動画符号化方法と、動画復号化装置および動画復号化方法と、動画記録装置
KR101086435B1 (ko) * 2007-03-29 2011-11-25 삼성전자주식회사 영상 데이터 스트림의 에러 검출 방법 및 그 장치
US20100325255A1 (en) * 2007-04-05 2010-12-23 Gene Cheung Data transmission system and method
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
US8542748B2 (en) * 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
KR20100011628A (ko) * 2008-07-25 2010-02-03 삼성전자주식회사 코딩 방법 및 코딩 장치
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8311111B2 (en) * 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
US8326075B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video encoding using adaptive loop filter
US20100074336A1 (en) * 2008-09-25 2010-03-25 Mina Goor Fractional motion estimation engine
CN102158678A (zh) * 2010-05-20 2011-08-17 王洪剑 一种运动向量场插值方法
KR102080892B1 (ko) * 2010-09-02 2020-02-24 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US8503528B2 (en) 2010-09-15 2013-08-06 Google Inc. System and method for encoding video using temporal filter
US8344917B2 (en) 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
WO2012048055A1 (en) 2010-10-05 2012-04-12 General Instrument Corporation Coding and decoding utilizing adaptive context model selection with zigzag scan
US8611415B1 (en) 2010-11-15 2013-12-17 Google Inc. System and method for coding using improved motion estimation
US9532066B2 (en) * 2011-01-21 2016-12-27 Qualcomm Incorporated Motion vector prediction
KR101760333B1 (ko) * 2011-03-02 2017-07-21 삼성전자주식회사 다중 사용자 다중 안테나 전송에서 그룹 아이디 관리를 위한 타겟 단말 및 액세스 포인트의 통신 방법
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP2687015A4 (en) * 2011-03-14 2014-12-17 Mediatek Inc METHOD AND DEVICE FOR OBTAINING PREDICTIONS FOR TEMPORARY MOTION VECTORS
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US8780996B2 (en) 2011-04-07 2014-07-15 Google, Inc. System and method for encoding and decoding video data
US8638854B1 (en) 2011-04-07 2014-01-28 Google Inc. Apparatus and method for creating an alternate reference frame for video compression using maximal differences
US8780971B1 (en) 2011-04-07 2014-07-15 Google, Inc. System and method of encoding using selectable loop filters
US8781004B1 (en) 2011-04-07 2014-07-15 Google Inc. System and method for encoding video using variable loop filter
CN102811346B (zh) * 2011-05-31 2015-09-02 富士通株式会社 编码模式选择方法和系统
WO2012172811A1 (ja) * 2011-06-17 2012-12-20 パナソニック株式会社 動画像復号化装置および動画像復号化方法
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
CN102956027B (zh) * 2011-08-30 2016-08-03 安凯(广州)微电子技术有限公司 基于摄像头图像处理芯片的图像增强处理系统及处理方法
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
SG11201402160XA (en) * 2011-11-08 2014-08-28 Samsung Electronics Co Ltd Method and apparatus for motion vector determination in video encoding or decoding
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US9262670B2 (en) 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
US9131073B1 (en) 2012-03-02 2015-09-08 Google Inc. Motion estimation aided noise reduction
EP2842337B1 (en) 2012-04-23 2019-03-13 Google LLC Managing multi-reference picture buffers for video data coding
US9609341B1 (en) 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9014266B1 (en) 2012-06-05 2015-04-21 Google Inc. Decimated sliding windows for multi-reference prediction in video coding
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9344729B1 (en) 2012-07-11 2016-05-17 Google Inc. Selective prediction signal filtering
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
US9756331B1 (en) 2013-06-17 2017-09-05 Google Inc. Advance coded reference prediction
GB2516426B (en) * 2013-07-17 2015-10-07 Gurulogic Microsystems Oy Encoder, decoder and method of operation using interpolation
AU2014294215B2 (en) * 2013-07-22 2018-10-04 Sony Corporation Image processing device and method
US11425395B2 (en) 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
US10236906B2 (en) * 2013-10-22 2019-03-19 Schlumberger Technology Corporation Compression and timely delivery of well-test data
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
US9392272B1 (en) 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
US9578324B1 (en) 2014-06-27 2017-02-21 Google Inc. Video coding using statistical-based spatially differentiated partitioning
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
US10462480B2 (en) * 2014-12-31 2019-10-29 Microsoft Technology Licensing, Llc Computationally efficient motion estimation
US9787332B2 (en) * 2015-09-15 2017-10-10 Intel Corporation Error-checking compressed streams in heterogeneous compression accelerators
TWI546779B (zh) 2015-11-06 2016-08-21 財團法人工業技術研究院 串流資料的編碼排程方法、裝置與電腦可讀取媒體
US10334276B2 (en) * 2015-12-28 2019-06-25 Ati Technologies Ulc Method and apparatus for determining the severity of corruption in a picture
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
KR101742258B1 (ko) 2016-02-29 2017-05-31 경희대학교 산학협력단 웹 기반 가상 데스크탑 프로토콜을 이용한 컨텐츠 제공 방법 및 장치
KR101895294B1 (ko) * 2017-03-03 2018-09-05 주식회사 칩스앤미디어 프리 스캔을 이용한 블록 기반 동영상 복호화 방법 및 그 장치
US10326994B2 (en) * 2017-08-15 2019-06-18 Google Llc Modifying a scan order to limit scan distance
CN107846263B (zh) * 2017-11-01 2020-07-14 南京莱斯电子设备有限公司 一种基于分段计算的信源二进制算术编码方法和编码系统
CN109756739B (zh) * 2017-11-07 2022-09-02 华为技术有限公司 图像预测方法和装置
CN108230487A (zh) * 2017-12-21 2018-06-29 上海新案数字科技有限公司 共享摄像头资源的方法及设备
US11665365B2 (en) * 2018-09-14 2023-05-30 Google Llc Motion prediction coding with coframe motion vectors
US11212520B2 (en) * 2018-12-04 2021-12-28 Ati Technologies Ulc Region-based reference frame management
EP3700210A1 (en) * 2019-02-21 2020-08-26 Ateme Method and apparatus for image encoding
EP3713235B1 (en) * 2019-03-19 2023-08-02 Axis AB Methods and devices for encoding a video stream using a first and a second encoder
US20220215071A1 (en) * 2019-05-05 2022-07-07 Zhejiang Uniview Technologies Co., Ltd. Privacy protection method for transmitting end and receiving end, electronic device and computer readable storage medium
CN110582022B (zh) * 2019-09-27 2022-12-30 腾讯科技(深圳)有限公司 视频编解码方法和装置及存储介质
KR102153661B1 (ko) * 2019-11-29 2020-09-08 국방과학연구소 위성탑재용 영상레이더 및 위성탑재용 영상레이더의 텔레메트리 데이터 축소 방법
KR20210136476A (ko) 2020-05-07 2021-11-17 삼성전자주식회사 쿼드 트리 방법의 파라미터들을 이용하여 압축하는 장치 및 방법
EP3962091A1 (en) * 2020-08-26 2022-03-02 Tata Consultancy Services Limited Methods and systems for maintaining quality of experience in real-time live video streaming
CN115881140A (zh) * 2021-09-29 2023-03-31 华为技术有限公司 编解码方法、装置、设备、存储介质及计算机程序产品
US20230179764A1 (en) * 2021-12-06 2023-06-08 Tencent America LLC Arrangement of adaptive loop filter coefficients for fast vectorized transpositions
CN114640853B (zh) * 2022-05-18 2022-07-29 滨州市人防工程与指挥保障中心 一种无人机巡航图像处理系统
CN115865099B (zh) * 2022-12-01 2024-04-16 河南大学 基于霍夫曼编码的多类型数据分段压缩方法及系统

Family Cites Families (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60186179A (ja) * 1984-03-06 1985-09-21 Nec Corp 画像信号の予測符号化方式とその装置
JPS6192073A (ja) 1984-10-12 1986-05-10 Hitachi Ltd 画像デ−タ圧縮方式
DE3629472A1 (de) * 1986-08-29 1988-03-03 Licentia Gmbh Verfahren zur bewegungskompensierten bild-zu-bild-praediktionscodierung
DE3869475D1 (de) * 1987-06-02 1992-04-30 Siemens Ag Verfahren zur ermittlung von bewegungsvektorfeldern aus digitalen bildsequenzen.
US6563875B2 (en) 1987-12-30 2003-05-13 Thomson Licensing S.A. Adaptive method of encoding and decoding a series of pictures by transformation, and devices for implementing this method
JP2743434B2 (ja) 1989-02-17 1998-04-22 日本ビクター株式会社 動き補償フレーム間予測符号化回路
JPH02272970A (ja) 1989-04-14 1990-11-07 Sony Corp データ処理回路
US5091782A (en) * 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
EP0466981B1 (en) * 1990-07-20 1997-02-26 Koninklijke Philips Electronics N.V. Motion vector processing device
SE469866B (sv) 1991-04-12 1993-09-27 Dv Sweden Ab Metod för estimering av rörelseinnehåll i videosignaler
EP0533195A2 (en) * 1991-09-20 1993-03-24 Sony Corporation Picture signal encoding and/or decoding apparatus
JP3263960B2 (ja) * 1991-10-22 2002-03-11 ソニー株式会社 動きベクトル符号器および復号器
US5442458A (en) 1991-12-18 1995-08-15 Eastman Kodak Company Method and associated apparatus for encoding bitplanes for improved coding efficiency
US5461423A (en) * 1992-05-29 1995-10-24 Sony Corporation Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
US5289276A (en) 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
US5377018A (en) * 1992-06-22 1994-12-27 Media Vision Video compression and decompression using block selection and subdivision
US5365280A (en) * 1992-06-26 1994-11-15 U.S. Philips Corporation Method and apparatus for discriminating between movie film and non-movie film and generating a picture signal processing mode control signal
US5371841A (en) 1992-07-31 1994-12-06 Eastman Kodak Company Progressive bit plane reconstruction method
US5717394A (en) 1993-02-10 1998-02-10 Ricoh Company Ltd. Method and apparatus for encoding and decoding data
US5586285A (en) 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
US6181822B1 (en) 1993-05-12 2001-01-30 The Duck Corporation Data compression apparatus and method
US6327304B1 (en) 1993-05-12 2001-12-04 The Duck Corporation Apparatus and method to digitally compress video signals
FI94306C (fi) 1993-07-15 1995-08-10 Nokia Technology Gmbh Menetelmä televisiokuvan pienten kuvasegmenttien liikevektoreiden määrittämiseksi
US5398068A (en) * 1993-09-02 1995-03-14 Trustees Of Princeton University Method and apparatus for determining motion vectors for image sequences
JPH07135660A (ja) 1993-11-12 1995-05-23 Matsushita Electric Ind Co Ltd 動きベクトル符号化装置
US5999641A (en) 1993-11-18 1999-12-07 The Duck Corporation System for manipulating digitized image objects in three dimensions
KR100213018B1 (ko) 1994-07-30 1999-08-02 윤종용 동화상 부호화장치
US5706059A (en) * 1994-11-30 1998-01-06 National Semiconductor Corp. Motion estimation using a hierarchical search
EP0721287A1 (en) * 1995-01-09 1996-07-10 Daewoo Electronics Co., Ltd Method and apparatus for encoding a video signal
DE69619002T2 (de) * 1995-03-10 2002-11-21 Toshiba Kawasaki Kk Bildkodierungs-/-dekodierungsvorrichtung
JPH08275160A (ja) * 1995-03-27 1996-10-18 Internatl Business Mach Corp <Ibm> 離散余弦変換方法
KR0178198B1 (ko) 1995-03-28 1999-05-01 배순훈 영상 신호 부호화 장치
WO1996033558A1 (en) 1995-04-18 1996-10-24 Advanced Micro Devices, Inc. Method and apparatus for hybrid vlc bitstream decoding
US5812197A (en) * 1995-05-08 1998-09-22 Thomson Consumer Electronics, Inc. System using data correlation for predictive encoding of video image data subject to luminance gradients and motion
US5936673A (en) * 1995-05-26 1999-08-10 Intel Corporation Temporal tile staggering for block based video compression
JP3364074B2 (ja) 1995-06-05 2003-01-08 株式会社リコー ビットプレーン符号化装置
US5568200A (en) 1995-06-07 1996-10-22 Hitachi America, Ltd. Method and apparatus for improved video display of progressively refreshed coded video
JP3618833B2 (ja) 1995-07-14 2005-02-09 キヤノン株式会社 画像処理装置及び方法
KR0153671B1 (ko) * 1995-06-30 1998-11-16 배순훈 고선명 텔레비젼 엔코더의 레이트 콘트롤러
MY121607A (en) * 1995-07-10 2006-02-28 Hyundai Curitel Inc Grid moving method of object image and apparatus using the same and compaction/motion estimation method using the same and apparatus thereof
WO1997003516A1 (en) 1995-07-11 1997-01-30 Telefonaktiebolaget Lm Ericsson (Publ) Video coding
DE69630643T2 (de) * 1995-08-29 2004-10-07 Sharp Kk Videokodierungsvorrichtung
US5835138A (en) 1995-08-30 1998-11-10 Sony Corporation Image signal processing apparatus and recording/reproducing apparatus
JP3068002B2 (ja) 1995-09-18 2000-07-24 沖電気工業株式会社 画像符号化装置、画像復号化装置及び画像伝送システム
GB9519923D0 (en) * 1995-09-29 1995-11-29 Philips Electronics Nv Motion estimation for predictive image coding
JPH09102954A (ja) 1995-10-04 1997-04-15 Matsushita Electric Ind Co Ltd 1つまたは2つの予測ブロックからブロックの画素値を計算する方法
KR0181069B1 (ko) 1995-11-08 1999-05-01 배순훈 움직임 추정장치
GB2308262B (en) 1995-12-16 1999-08-04 Paul Gordon Wilkins Method for analysing the content of a video signal
KR100197368B1 (ko) * 1995-12-23 1999-06-15 전주범 영상 에러 복구 장치
JP3157101B2 (ja) 1996-03-08 2001-04-16 沖電気工業株式会社 画像符号化方法及び画像符号化装置
US5912676A (en) 1996-06-14 1999-06-15 Lsi Logic Corporation MPEG decoder frame memory interface which is reconfigurable for different frame store architectures
CA2208950A1 (en) * 1996-07-03 1998-01-03 Xuemin Chen Rate control for stereoscopic digital video encoding
US5926226A (en) * 1996-08-09 1999-07-20 U.S. Robotics Access Corp. Method for adjusting the quality of a video coder
US6075875A (en) 1996-09-30 2000-06-13 Microsoft Corporation Segmentation of image features using hierarchical analysis of multi-valued image data and weighted averaging of segmentation results
JP3967405B2 (ja) * 1996-10-09 2007-08-29 テキサス インスツルメンツ インコーポレイテツド 画像信号の符号化方法
US7453490B2 (en) * 1997-01-31 2008-11-18 Gyrus Acmi, Inc. Correction of image signals characteristic of non-uniform images in an endoscopic imaging system
US5991447A (en) * 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US6385341B1 (en) 1997-04-17 2002-05-07 Microsoft Corporation Technique for decoding variable length data codes
JP3351705B2 (ja) * 1997-04-25 2002-12-03 日本ビクター株式会社 動き補償符号化装置、動き補償符号化方法、及び記録媒体への記録方法
DE19721728C2 (de) 1997-05-24 2001-07-12 Byk Chemie Gmbh Dispergiermittel für Pigmente oder Füllstoffe auf der Basis von Acrylsäurealkylester-Polymeren, Verwendung und Verfahren zur Herstellung
JP3381827B2 (ja) * 1997-06-04 2003-03-04 富士ゼロックス株式会社 カラー画像符号化装置およびカラー画像復号装置
US6359929B1 (en) * 1997-07-04 2002-03-19 Matsushita Electric Industrial Co., Ltd. Image predictive decoding method, image predictive decoding apparatus, image predictive coding apparatus, and data storage medium
DE19730305A1 (de) 1997-07-15 1999-01-21 Bosch Gmbh Robert Verfahren zur Erzeugung eines verbesserten Bildsignals bei der Bewegungsschätzung von Bildsequenzen, insbesondere eines Prädiktionssignals für Bewegtbilder mit bewegungskompensierender Prädiktion
KR100244291B1 (ko) * 1997-07-30 2000-02-01 구본준 동영상 움직임 벡터 코딩 방법
US5956431A (en) 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
JP2001508633A (ja) * 1997-11-17 2001-06-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 動き補償予測画像の符号化及び復号化
JP2891253B1 (ja) * 1997-12-10 1999-05-17 日本電気株式会社 画像圧縮処理装置
KR100523908B1 (ko) * 1997-12-12 2006-01-27 주식회사 팬택앤큐리텔 격행주사 영상에 대한 영상신호 부호화 장치 및 그 방법
US5903382A (en) 1997-12-19 1999-05-11 Rockwell International Corporation Electrodeposition cell with high light transmission
US6501860B1 (en) * 1998-01-19 2002-12-31 Canon Kabushiki Kaisha Digital signal coding and decoding based on subbands
KR100328417B1 (ko) * 1998-03-05 2002-03-16 마츠시타 덴끼 산교 가부시키가이샤 화상부호화장치및화상복호화장치, 화상부보화방법 및 화상복호화방법, 및 데이터기억매체
JP3856262B2 (ja) 1998-03-09 2006-12-13 日本ビクター株式会社 動き補償符号化装置、動き補償符号化方法、及び動き補償符号記録媒体
JPH11289544A (ja) 1998-04-02 1999-10-19 Sony Corp 動き検出装置およびその方法
JP3553363B2 (ja) 1998-04-03 2004-08-11 京セラミタ株式会社 デジタル画像読取装置
JPH11341496A (ja) * 1998-05-28 1999-12-10 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置,及びデータ記憶媒体
US6411651B1 (en) 1998-06-26 2002-06-25 Compaq Information Technologies Group, L.P. Method and system for distributed video compression in personal computer architecture
JP3808241B2 (ja) * 1998-07-17 2006-08-09 富士写真フイルム株式会社 データ圧縮方法および装置並びに記録媒体
JP3606306B2 (ja) * 1998-10-08 2005-01-05 沖電気工業株式会社 画像符号化装置、画像復号化装置及び画像伝送システム
US20020141501A1 (en) * 1998-11-20 2002-10-03 Philips Electronics North America Corporation System for performing resolution upscaling on frames of digital video
US6570924B1 (en) * 1998-11-20 2003-05-27 Interval Research Corp Low cost video compression using fast, modified Z-coding of wavelet pyramids
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6389072B1 (en) * 1998-12-23 2002-05-14 U.S. Philips Corp. Motion analysis based buffer regulation scheme
JP3660513B2 (ja) 1998-12-25 2005-06-15 沖電気工業株式会社 画像通信装置およびローカルデコード処理方法
KR20010042310A (ko) 1999-02-01 2001-05-25 요트.게.아. 롤페즈 비디오 시퀀스를 위한 디스크립터 및 그 디스크립터를사용하는 영상 검색 시스템
US6400763B1 (en) * 1999-02-18 2002-06-04 Hewlett-Packard Company Compression system which re-uses prior motion vectors
US6222174B1 (en) 1999-03-05 2001-04-24 Hewlett-Packard Company Method of correlating immediately acquired and previously stored feature information for motion sensing
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
EP1035735A3 (en) * 1999-03-12 2007-09-05 Kabushiki Kaisha Toshiba Moving image coding and decoding apparatus optimised for the application of the Real Time Protocol (RTP)
JP3302939B2 (ja) 1999-03-12 2002-07-15 アールシーエー トムソン ライセンシング コーポレイシヨン 独立に圧縮された偶数および奇数フィールド・データ用のビデオ信号圧縮解除装置
US6381371B1 (en) 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
JP3591712B2 (ja) 1999-04-02 2004-11-24 松下電器産業株式会社 動画送信装置及び動画受信装置
WO2001010135A1 (en) * 1999-07-29 2001-02-08 Mitsubishi Denki Kabushiki Kaisha Moving vector detecting method
US6735249B1 (en) * 1999-08-11 2004-05-11 Nokia Corporation Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding
MXPA02004015A (es) 1999-10-22 2003-09-25 Activesky Inc Un sistema de video orientado a los objetos.
US6671319B1 (en) 1999-12-28 2003-12-30 Sony Corporation Methods and apparatus for motion estimation using neighboring macroblocks
JP2001203897A (ja) * 2000-01-18 2001-07-27 Nec Corp パタンマッチング符号化装置及び方法
JP2001251627A (ja) * 2000-03-03 2001-09-14 Matsushita Electric Ind Co Ltd 符号化装置、符号化方法及びプログラムを記録した記録媒体
JP3960451B2 (ja) 2000-03-06 2007-08-15 Kddi株式会社 シーン特性検出型動画像符号化装置
US6661925B1 (en) * 2000-03-22 2003-12-09 Board Of Supervisors Of Louisiana State University & Agricultural & Mechanical College Functional set compression
US6522784B1 (en) * 2000-04-11 2003-02-18 International Business Machines Corporation Enhanced compression of gray-level images
JP3677192B2 (ja) * 2000-04-19 2005-07-27 シャープ株式会社 画像処理装置
US6711211B1 (en) * 2000-05-08 2004-03-23 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
GB2403618A (en) 2000-05-10 2005-01-05 Picturetel Corp Video coding using multiple buffers
KR100708091B1 (ko) * 2000-06-13 2007-04-16 삼성전자주식회사 양방향 움직임 벡터를 이용한 프레임 레이트 변환 장치 및그 방법
JP2002010265A (ja) 2000-06-20 2002-01-11 Sony Corp 送信装置およびその方法と受信装置およびその方法
US6661842B1 (en) * 2000-09-22 2003-12-09 General Dynamics Decision Systems, Inc. Methods and apparatus for error-resilient video coding
JP4607305B2 (ja) * 2000-09-27 2011-01-05 株式会社東芝 映像符号化装置及び映像符号化方法
US9143546B2 (en) * 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US7224840B2 (en) 2000-10-26 2007-05-29 International Business Machines Corporation Method, system, and program for error recovery while decoding compressed data
JP2002141806A (ja) 2000-10-31 2002-05-17 Hitachi Ltd 可変長符号復号装置
JP3699910B2 (ja) * 2000-10-31 2005-09-28 株式会社東芝 データ伝送装置、データ伝送方法及びプログラム
CN1237465C (zh) * 2001-01-10 2006-01-18 皇家菲利浦电子有限公司 编码
CN1156168C (zh) * 2001-01-12 2004-06-30 北京航空航天大学 快速视频运动估计方法
CN1215720C (zh) * 2001-02-06 2005-08-17 皇家菲利浦电子有限公司 适用于任意形状目标结构的预处理方法
JP2004531925A (ja) 2001-03-05 2004-10-14 インタービデオインコーポレイテッド 圧縮されたビデオビットストリームにおける冗長な動きベクトルを符号化し復号するシステム及び方法
JP4121376B2 (ja) * 2001-03-07 2008-07-23 アルテラ コーポレイション 動き整合のための局所的制約
JP2002271788A (ja) * 2001-03-08 2002-09-20 Monolith Co Ltd 画像符号化方法と装置および画像復号方法および装置
JP2002290743A (ja) 2001-03-23 2002-10-04 Ricoh Co Ltd 画像情報符号化方法、符号化装置、ディジタル複写機、ディジタルファクシミリ装置、及び、ディジタルファイリング装置
US6819803B2 (en) 2001-07-02 2004-11-16 International Business Machines Corporation Faster lossless rotation of JPEG images
JP2003046944A (ja) 2001-08-02 2003-02-14 Sony Corp 信号処理装置および方法、記録装置および方法、再生装置および方法、記録再生装置および方法、ビデオカメラ、ならびに、映像モニタ装置
FR2828614A1 (fr) * 2001-08-07 2003-02-14 Koninkl Philips Electronics Nv Methode de codage et de decodage video pour pallier les pertes de donnees dans un signal video code transmis sur un canal
EP1294194B8 (en) * 2001-09-10 2010-08-04 Texas Instruments Incorporated Apparatus and method for motion vector estimation
EP2099228B1 (en) 2001-09-14 2014-11-12 NTT DoCoMo, Inc. Coding method, decoding method, coding apparatus, decoding apparatus, image processing system, coding program, and decoding program
US6856701B2 (en) * 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
FI112424B (fi) 2001-10-30 2003-11-28 Oplayo Oy Koodausmenetelmä ja -järjestely
EP1830577A1 (en) 2002-01-18 2007-09-05 Kabushiki Kaisha Toshiba Video decoding method and apparatus
JP3864098B2 (ja) 2002-02-08 2006-12-27 日本電信電話株式会社 動画像符号化方法、動画像復号方法、及びこれらの方法の実行プログラムとこれらの実行プログラムを記録した記録媒体
US20030161398A1 (en) * 2002-02-21 2003-08-28 Meir Feder Improving static picture quality in compressed video
US7596179B2 (en) * 2002-02-27 2009-09-29 Hewlett-Packard Development Company, L.P. Reducing the resolution of media data
BRPI0304565B1 (pt) 2002-03-15 2018-07-24 Nokia Technologies Oy Método de predição de movimento compensado para uso na codificação da sequência de vídeo digital, codificador e decodificador de vídeo para codificar/decodificar uma sequência de vídeo digital usando predição de movimento compensado, terminal de miltimídia, e, codec de vídeo
WO2003084235A1 (en) 2002-03-28 2003-10-09 British Telecommunications Public Limited Company Video pre-processing
US7116831B2 (en) * 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
US7110459B2 (en) * 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
JP4355156B2 (ja) 2002-04-16 2009-10-28 パナソニック株式会社 画像復号化方法及び画像復号化装置
JP4102973B2 (ja) * 2002-04-24 2008-06-18 日本電気株式会社 動画像の符号化方法および復号化方法、これを用いた装置とプログラム
PT1467491E (pt) 2002-05-02 2007-03-30 Fraunhofer Ges Forschung Codificação aritmética de coeficientes de transformação
CN100452668C (zh) * 2002-07-09 2009-01-14 诺基亚有限公司 用于在视频编码中选择插值滤波器类型的方法和系统
KR101075860B1 (ko) 2002-07-15 2011-10-25 노키아 코포레이션 비디오 시퀀스에서 오류 은폐 방법
KR100865034B1 (ko) * 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
US7068722B2 (en) 2002-09-25 2006-06-27 Lsi Logic Corporation Content adaptive video processor using motion compensation
US20040120398A1 (en) * 2002-12-19 2004-06-24 Ximin Zhang System and method for adaptive field and frame video encoding using rate-distortion characteristics
US20040131117A1 (en) * 2003-01-07 2004-07-08 Sheraizin Vitaly S. Method and apparatus for improving MPEG picture compression
US8040949B2 (en) * 2003-01-09 2011-10-18 The Regents Of The University Of California Video encoding methods and devices
JP4419458B2 (ja) * 2003-07-14 2010-02-24 リコープリンティングシステムズ株式会社 インクジェットヘッドの製造方法
JP4198608B2 (ja) 2004-01-15 2008-12-17 株式会社東芝 補間画像生成方法および装置
US20050271186A1 (en) 2004-06-02 2005-12-08 Audiopoint, Inc. System, method and computer program product for interactive voice notification
JP4852868B2 (ja) 2005-04-04 2012-01-11 トヨタ自動車株式会社 精密加工方法
JP4662171B2 (ja) 2005-10-20 2011-03-30 ソニー株式会社 符号化装置および方法、復号化装置および方法、プログラム、並びに記録媒体
CN105049894B (zh) 2005-12-08 2018-03-16 维德约股份有限公司 用于视频通信系统中的差错弹性和随机接入的系统和方法
US7924925B2 (en) 2006-02-24 2011-04-12 Freescale Semiconductor, Inc. Flexible macroblock ordering with reduced data traffic and power consumption
JP5313880B2 (ja) 2006-04-20 2013-10-09 トムソン ライセンシング 冗長ビデオ符号化方法および装置
WO2007130389A2 (en) 2006-05-01 2007-11-15 Georgia Tech Research Corporation Automatic video quality measurement system and method based on spatial-temporal coherence metrics
US20080170793A1 (en) 2007-01-12 2008-07-17 Mitsubishi Electric Corporation Image encoding device and image encoding method
US20090103635A1 (en) 2007-10-17 2009-04-23 Peshala Vishvajith Pahalawatta System and method of unequal error protection with hybrid arq/fec for video streaming over wireless local area networks
CN101414348A (zh) 2007-10-19 2009-04-22 三星电子株式会社 多角度人脸识别方法和系统
US8130823B2 (en) 2007-12-19 2012-03-06 Broadcom Corporation Channel adaptive video transmission system for use with layered video coding and methods for use therewith
AU2008259744B2 (en) 2008-12-18 2012-02-09 Canon Kabushiki Kaisha Iterative DVC decoder based on adaptively weighting of motion side information
CA2824751A1 (en) 2009-09-26 2011-03-31 Disternet Technology Inc. System and method for micro-cloud computing
US8879632B2 (en) 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
US8249361B1 (en) 2010-04-22 2012-08-21 Google Inc. Interdependent learning of template map and similarity metric for object identification
RU2010140334A (ru) 2010-10-01 2012-04-10 ЭлЭсАй Корпорейшн (US) Внутрикадровое режимное предсказание для видеотранскодера
US20120082225A1 (en) 2010-10-01 2012-04-05 Qualcomm Incorporated Selective indication of transform sizes
US8749565B2 (en) 2010-11-19 2014-06-10 Apple Inc. Error check-only mode
US8630341B2 (en) 2011-01-14 2014-01-14 Mitsubishi Electric Research Laboratories, Inc. Method for training and utilizing separable transforms for video coding
CN103597534B (zh) 2011-05-28 2017-02-15 伊格尼斯创新公司 用于快速补偿显示器中的像素的编程的系统和方法
US8775672B2 (en) 2012-06-13 2014-07-08 Hulu, LLC Architecture for simulation of network conditions for video delivery

Also Published As

Publication number Publication date
US20120320989A1 (en) 2012-12-20
KR20110028564A (ko) 2011-03-18
US8824553B2 (en) 2014-09-02
KR101140947B1 (ko) 2012-07-03
US8942290B2 (en) 2015-01-27
US20120320987A1 (en) 2012-12-20
KR101118438B1 (ko) 2012-03-13
CN103037214A (zh) 2013-04-10
KR101167006B1 (ko) 2012-07-27
JP2007520912A (ja) 2007-07-26
WO2004102946A2 (en) 2004-11-25
KR20110028562A (ko) 2011-03-18
CN101454990B (zh) 2012-09-05
WO2004102946A3 (en) 2009-01-22
US20040228410A1 (en) 2004-11-18
CN101454990A (zh) 2009-06-10
JP2010239640A (ja) 2010-10-21
CA2525390C (en) 2014-07-15
KR20060025528A (ko) 2006-03-21
KR20110028563A (ko) 2011-03-18
KR101133321B1 (ko) 2012-07-02
US20120320991A1 (en) 2012-12-20
JP2013211908A (ja) 2013-10-10
US10616576B2 (en) 2020-04-07
US20200236357A1 (en) 2020-07-23
KR101118456B1 (ko) 2012-03-22
US20120320978A1 (en) 2012-12-20
US11240498B2 (en) 2022-02-01
EP1656791A2 (en) 2006-05-17
JP5606591B2 (ja) 2014-10-15
US20120320992A1 (en) 2012-12-20
CA2525390A1 (en) 2004-11-25
KR101131689B1 (ko) 2012-04-23
KR20110028561A (ko) 2011-03-18
JP2011050090A (ja) 2011-03-10
JP2014099905A (ja) 2014-05-29
JP4568887B2 (ja) 2010-10-27
JP5341024B2 (ja) 2013-11-13
US20220132116A1 (en) 2022-04-28
KR20110028560A (ko) 2011-03-18

Similar Documents

Publication Publication Date Title
JP5480775B2 (ja) ビデオ圧縮方法
US8150178B2 (en) Image encoding/decoding method and apparatus
US9414086B2 (en) Partial frame utilization in video codecs
US7627040B2 (en) Method for processing I-blocks used with motion compensated temporal filtering
US20060251330A1 (en) Hybrid video compression method
CN101212685B (zh) 对图像进行编码/解码的方法和设备
JP2012170122A (ja) イメージをコード化する方法およびイメージコーダ
KR20070026451A (ko) 모션 예측을 사용하여 디지털 이미지 데이터를 압축하는방법 및 장치
JP4494803B2 (ja) 動き補償に基づいた改善されたノイズ予測方法及びその装置とそれを使用した動画符号化方法及びその装置
JP5566406B2 (ja) 画像データのブロックを予測する方法、当該方法を実現する復号化及び符号化装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

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: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140214

R150 Certificate of patent or registration of utility model

Ref document number: 5480775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250