JP2013211908A - ビデオ圧縮方法 - Google Patents
ビデオ圧縮方法 Download PDFInfo
- Publication number
- JP2013211908A JP2013211908A JP2013117983A JP2013117983A JP2013211908A JP 2013211908 A JP2013211908 A JP 2013211908A JP 2013117983 A JP2013117983 A JP 2013117983A JP 2013117983 A JP2013117983 A JP 2013117983A JP 2013211908 A JP2013211908 A JP 2013211908A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- video data
- block
- encoded
- coefficients
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/114—Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion 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)
Abstract
【解決手段】各ブロックのピクセルを係数に変換し、これらの係数の最適な送信順序を作成する。また、データビットストリームを区画して各パーティションを独立に符号化することにより、圧縮ビデオデータの処理速度を最適化する。また、各所与のブロックに関連した少なくとも1つのメトリックに応じて、各所与の複数のピクセル又はピクセルブロックの補間方法を選択することにより端数ピクセル動きを予測し、ブロックごとに方法を変える。また、現在のフレームの直前のフレームよりも前のフレームを、データ送信中の品質損失を小さくするための唯一の基準フレームとして使用して、現在のフレームのエラー回復を高度化する。高度化された動きベクトル符号化も提供する。
【選択図】なし
Description
本出願は、2003年5月12日に出願された米国仮特許出願第60/469,187
号及び2003年11月14日に出願された米国特許出願第10/713,807号の優
先権を主張する。
タの符号化、復号、圧縮、及び送信を行う方法及びシステムに関する。
時間で無限の情報量を送信することも受信することもできない。送信中の情報の量及び品
質を最大にするために、場合により、情報は、圧縮又は符号化されて送信され、受信時に
伸張又は復号される。
は、膨大でない限り、容易且つ高速に送信される。しかしながら、ビデオデータは、色の
側面、明度の側面、及び多くの場合ステレオ音響情報の側面を含む可能性がある。短いビ
デオクリップであっても、定義するのに大量のデータが必要とされる。このようなデータ
の送信及び符号化は、できるだけ効率的でなければならない。すなわち、送信するのに必
要な情報をできるだけ少なくしなければならない。
信号は、より小さな数字の集合にスクイーズ又は圧縮される。これらの数字は、したがっ
て、ハードドライブを占める空間が小さくなるか、又は、ネットワーク上で送信に要する
時間が少なくなる。これらの数字が再び使用される前に、伸張アルゴリズムが適用されて
、その数字列は、その元の(又は少なくとも類似の)形に展開される。
に、ビデオ圧縮は、信号が、デジタル化されたビデオとして発生していることが知られて
いるという事実を利用する。ビデオ及びオーディオの大幅な圧縮は非可逆アルゴリズムを
考えられる。その理由は、非可逆アルゴリズムが元の情報の或る部分を廃棄するか又は失
い、再現された数字列は元の数字列とは正確には一致しないからである。我々がビデオ及
びオーディオを鑑賞する精度は、デジタル化プロセスの解像度と比較して完全でないこと
から、これは許容することができる。ビデオ信号は、僅かに歪む場合があるが、それにも
かかわらず認識することが可能である。圧縮アルゴリズムが、最小の歪み又は損失で元の
信号を忠実に再現できる程度は、アルゴリズムの成功の尺度である。
っともな理由が多数ある。1つの最優先の問題は、データ送信コストである。インターネ
ットは、21世紀の事実上のデータ搬送プラットフォームに成熟するにつれて、ビデオテ
ープ、フィルム、放送等のアナログメディアは、インターネット技術及びインターネット
関連技術の上に構築されたデジタルメディアインフラストラクチャに取って代わられるこ
とになろう。このデジタルインフラストラクチャにより、必要に応じて、地球上のどの2
つのコンピューティングマシン間でもデータを転送することが可能になる。しかしながら
、このデータを送信できる速度は多数の要因に依存する。極端な場合、百年以上も前に敷
設され、アナログ音声通信を対象とした銅線が、モデム技術(モデム(modem)は、モジ
ュレーション(変調(Modulation))/ディモジュレーション(復調(DEModulation))
の略語である)と共に使用されて、毎秒9600ビット程度の低速でデータが送信される
。同様の速度は、携帯電話等の無線ネットワーク上で音声を運ぶのにも使用される。最近
、ケーブルモデム技術、DSL技術、及び衛星技術が、6桁のデータレート(100,0
00ビット/秒から100万ビット/秒)をホームユーザにもたらしている。ハイエンド
アプリケーションの場合、光ファイバによって、データレートをギガビットの範囲(毎秒
数十億ビット)及びそれを超える範囲にすることが可能である。
の送信には、お金がかかる。現在のところ、1メガバイト(800万ビット)をインター
ネット上で送信するコストは、通例、小さなボリュームの5セントあたりから、安い場合
は極端に大きなボリュームの1セント程度のコストがかかる(この価格は、受信端でのコ
ストを含んでいない)。したがって、或る場所から別の場所へ1メガバイトのデータを搬
送するコストは、常に、1ペニーよりも高い。
ューヨーク州クリフトンパークのOn2 Technologies(当初はDuck Corporationとして知ら
れていた)は、既にVP3やVP5等のコーデックを製造してきており、Microsoft Corp
orationは、MPEG等の符号を作成してきた。既存のビデオコーデックの特徴のいくつ
かには、動きベクトルの離散コサイン変換圧縮、エントロピー符号化、及び差分符号化が
含まれる。また、従来のコーデックは、基準フレームを利用し、データパケットが喪失又
は破損した場合に、基準フレームを参照することによってそのデータを取り出すことがで
きるようにしている。これらの特徴及びこれらの特徴に伴う問題のすべてについて、以下
でより詳細に解説することにする。
テムでは、8×8のピクセルブロック又は予測エラー信号データが、1組の64個の周波
数係数(1つのDC値及び63個のAC値)に変換される。これら64個の周波数係数は
、その後、量子化されて1組のトークンに変換される。
になる可能性は小さくなる(すなわち、ゼロになる可能性が高くなる)。その結果、トー
クン化の前に、それら係数は、多くの場合、最も低い周波数係数(DC値)から開始して
最も高周波のAC係数で終了する昇順に配列される。この走査順序は、時に、「ジグザグ
順序」と呼ばれることがあり、その始点に非ゼロ値を集め、終点に向かうにつれてゼロを
集める傾向があり、そうすることによって、より効率的な圧縮を容易にする。
、インターレースされたビデオ素材を符号化する場合、一定の高周波係数は、はるかに顕
著である。このことは従来技術に反映され、この従来技術では、インターレースされたビ
デオを符号化する時に代替的な走査順序を指令するコーデックが使用される例(たとえば
、MPEG−2)が存在する。
タスクを並列に実行するのに提供できるあらゆる設備が十分に利用されることを確かめる
こと、及び、復号プロセスの個々の部分がボトルネックとなる範囲を制限することが重要
である。
えば、エントロピー符号化されたトークンを含むものとして説明することができる。この
エントロピー符号化されたトークンは、プリディクタ(predictor)トークン又はPトー
クン、及び、予測エラートークン又はEトークンの2つの主要なカテゴリーに分割するこ
とができる。Pトークンは、画像のブロック又は領域を符号化するのに使用される方法又
はモードを記述するトークンであり、或るフレームと別のフレームとの間の動きを記述す
るトークンである。Eトークンは、不完全な予測の結果生じたあらゆる残差を符号化する
のに使用される。
表現が、ビットストリームにおけるそのトークンの周波数、又は、そのトークンが特定の
位置に現れる尤度に従って最適化されるプロセスである。たとえば、非常に頻繁に現れる
トークンは、まれにしか現れないトークンよりも少ないビット数を使用して表される。
。ハフマン符号化では、各トークンは、可変長のビットパターン(又は符号)によって表
される。算術符号化は、計算がより複雑な技法ではあるが、各トークンについて多数のビ
ット全体を使用する制約が除去されている。算術符号化器を使用すると、1ビットの1/
2の平均コストで非常に一般的なトークンを符号化することが完全に可能である。
セッサユニット、及び、より多目的のメインプロセッサを有する。その結果、並列化のた
めに、ビットストリームの符号化又は復号のプロセスは、多くの場合、エントロピーに関
連したタスクと、エントロピーに関連しないタスクとに分割される。しかしながら、所与
のビットクリップの場合、データレートが増加するにつれて、符号化/復号するトークン
数が急激に上昇し、エントロピー符号化がボトルネックになる場合がある。
トルネックを取り除くことは非常に困難である。特に、復号側では、通常は、トークンが
符号化された順序で1度に1つずつトークンを復号しなければならない。また、フレーム
レベル以外の方法又はエントロピー符号化(たとえば、ハフマン符号化及び算術符号化)
を混在させることもきわめて困難である。
ベクトルの(x,y)成分を符号化する。すなわち、各ベクトルは、前のベクトルを基準
にして符号化される。たとえば、2つのベクトル(7,3)及び(8,4)を考える。こ
の場合、第2のベクトルは(1,1)、すなわち(7+1,3+1)として符号化される
ことになる。
動きと類似した動きを示す場合によく機能する。これは、多くの場合、たとえばパンする
時に当てはまることを示すことができる。しかしながら、動きフィールドが不規則である
場合、又は、異なる動き特性を有する背景領域と前景領域との間での遷移が頻繁である場
合に、この方式はあまりよく機能しない。
である。動き予測は、画像の物体又は領域の動きが、1つ又は複数のフレームにわたって
モデル化され、1つ又は複数の「動きベクトル」が、この動きを表すためのビットストリ
ームで送信されるプロセスである。ほとんどの場合、画像内の動きを完全にモデル化する
ことはできず、そこで、動き情報に加えて残差信号を符号化することが必要である。
号化されたフレームの領域を指し示す。残差信号は、各ピクセルの予測値を、現在のフレ
ームの実際の値から差し引くことによって得られる。
き推定といったサブピクセル精度に対して動き予測のサポートを提供することによりこの
プロセスを拡張している。端数ピクセルデータ点を作成するには、実際の(すなわち、フ
ルピクセルアラインされた(full pixel aligned))データ点に適用される或る形態の補
間関数又は補間フィルタを使用することが必要である。
を使用していた。この例では、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)
を使用して計算することができる。
間フィルタの使用に向かう傾向がある。図2に示す例では、xは、2つのフルピクセルア
ラインされた点BとCとの間の中点にある1/2ピクセル点である。双3次フィルタに対
して整数近似を使用すると、xは、方程式:
x=(−A+9B+9C−D)/16
を使用して計算することができる。
向があるが、いくつかのフレームにわたってそれらフィルタが繰り返し適用されると、場
合によっては、誤ったテキスチャや誤った輪郭等の不快な人工物となる可能性がある。
いので、信頼性のないデータリンク又は問題の多いデータリンク上で圧縮ビデオデータを
送信する場合、データが喪失又は破損したときの回復のためのメカニズムが存在すること
は重要である。
存在し、これらは、通常、エラーの検出、及び、再送又は一定のタイプのエラーの訂正を
可能にする追加データビットの使用のいずれかに依拠する。多くの状況では、これら既存
の技法は十分である。しかし、制限された帯域幅のリンク上でビデオ会議を行う場合、上
述した手法のいずれも理想的ではない。喪失したデータパケットの再送は、端末間の遅延
の増加を引き起こす可能性があるので実用的でない場合がある一方、誤り訂正ビット又は
誤り訂正パケットの使用は、帯域幅がすでに厳しく制限されている状況では受け入れられ
ない場合がある。
することである。符号化器は、その後、回復フレームを復号器へ送信することができる。
この手法は、リンク上のエラーレートが非常に高い場合、たとえば、10フレーム〜20
フレームごとに2つ以上のエラーがある場合に、適切でないおそれがあることに留意され
たい。
tra-only-frame))である。これは、前のフレーム又は前のフレームのデータに何ら依存
関係を有しないフレームである。キーフレームに関連した問題は、それらキーフレームが
、通例、比較的大きいということである。
とである。
法及びコーデックを提供することである。
ー符号化を実行するビデオ圧縮方法及びコーデックを提供することである。
を提供することである。
法及びコーデックを提供することである。
デオ圧縮方法及びコーデックを提供することである。
を有する少なくとも1つのブロックを有する少なくとも1つのフレームを有するビデオデ
ータを圧縮する方法である。本発明の方法は、以下のステップの少なくとも1つを含む。
I)各ブロックのピクセルを係数に変換して、係数の最適な送信順序を作成するステップ
、II)データのビットストリームを区画して各パーティションを独立に符号化すること
により、圧縮されたビデオデータを処理する速度を最適化するステップ、III)所与の
各ブロックに関連した少なくとも1つのメトリックに応じて所与の各複数のピクセルの補
間方法を選択することにより、端数ピクセル動きを予測するステップ、及び、IV)現在
のフレームの直前のフレームよりも前のフレームを唯一の基準フレームとして使用して現
在のフレームのエラー回復を高度化するステップであって、それによって、データ送信中
の品質損失を小さくする、現在のフレームのエラー回復を高度化するステップ。
係数位置及び値を有する係数に変換し、各係数位置に関連した位置の値を求める。次に、
係数の最適な送信順序が、各係数位置の位置の値に基づいて作成され、係数は、そのよう
にして求められた順序で送信される。好ましくは、係数の送信順序は、ビデオデータの各
フレームについて動的に再配列される。変換ステップは、好ましくは、ピクセルを離散コ
サイン変換係数に変換する。係数の送信順序は、係数と共に送信してもよい。好ましくは
、各ブロックは、同じ個数の係数及び係数位置を有し、それぞれの対応する各係数位置は
、ブロックごとに同じ各情報を運ぶ。
のフレームへ係数順序が変更したものに制限してもよい。これに代えて又はこれに加えて
、送信順序は係数の帯域に統合してもよい。各帯域は、上記で求められた数のランクによ
って編成された複数の係数を有する。この場合、帯域情報のみを係数と共に送信してもよ
い。好ましくは、係数が或るフレームから次のフレームにおいて帯域を変更した場合に、
帯域情報のみが送信される。別の代替的なものとして、すべての帯域情報を常に送信して
もよい。
方法は、常に完全に自己符号化され、前のフレームからの情報も前のフレームに関する情
報も必要としないこのようなキーフレームを提供してもよい。このような場合、符号化器
は、所与のフレームがキーフレームであるかどうかを判断する。所与のフレームがキーフ
レームであると判断された場合、そのキーフレームの係数の送信順序全体が送信される。
所与のフレームがキーフレームでないと判断された場合、前のフレームからこの所与のフ
レームにおいて係数の送信順序が変化したもののみが送信される。
立に符号化することにより、圧縮ビデオデータの処理速度を最適化することを検討する。
具体的には、本発明は、ビデオデータを少なくとも2つのデータパーティションに分割し
、各データパーティションについて最適なエントロピー符号化方法を選択する。したがっ
て、選択されたエントロピー符号化方法は、各データパーティションにそれぞれ適用され
る。1つの実施の形態では、ビデオデータは、プリディクタトークンデータパーティショ
ン及びエラートークンデータパーティションに分割される。好ましくは、各データパーテ
ィションは、ハフマン符号化及び算術符号化等の異なるエントロピー符号化方法を受ける
。異なるデータパーティションのさまざまな復号プロセスは、非同期且つ/又は独立に実
行してもよい。これは、ハードウェアに少なくとも2つのサブプロセッサを設けることに
よって行ってもよく、或るデータパーティションは或るサブプロセッサによって復号され
、別のデータパーティションは別のサブプロセッサによって復号される。所与のデータパ
ーティションにどのエントロピー符号化方法が使用されるかの判断は、その所与のデータ
パーティションのサイズに基づいてもよい。
パーティションは読み出されて、プリディクタブロックに変換される。エラートークンデ
ータパーティションも読み出されて、係数及びそこからエラーブロックに変換される。プ
リディクタブロック及びエラーブロックは合計されて、画像ブロックが形成される。上述
したように、少なくとも2つのサブプロセッサを設けることが好ましく、これらのステッ
プのいくつかは、或るサブプロセッサで実行され、ステップの残りは別のサブプロセッサ
で実行される。具体的には、エラートークンデータパーティションを読み出すステップ、
及び、エラートークンデータパーティションを係数に変換するステップは、好ましくは、
高速エントロピー最適化サブプロセッサによって実行され、他のステップは、好ましくは
、汎用サブプロセッサによって実行される。
ムの復号器の性能を最適化する。コードキャッシュに適合できる個数の、復号器のコード
の異なる関数がコードキャッシュに記憶される。このステップからのコードは、データキ
ャッシュに適合できる個数のブロックについて実行される。復号器のコードの次の1組の
異なる関数及び次に収集され、このプロセスは、ビットストリームのすべてが読み出され
、データブロックのそれぞれが生成されるまで繰り返される。
セッサへ割り当てることによってサブプロセッサの利用を最適化するものである。好まし
くは、ビットストリームからエラートークンを読み出して、それらエラートークンを係数
に変換する、復号器の部分は、高速エントロピー最適化サブプロセッサで実行される。ビ
ットストリームからプリディクタトークンを読み出して、これらのトークンからフィルタ
リングされたプリディクタブロックを構築する、復号器の部分は、メモリへの高速アクセ
スを有するサブプロセッサで実行される。上記ステップからの変換係数をエラー信号に変
換する、復号器の部分は、変換符号化器の最適化された実施態様を有するサブプロセッサ
で実行され、プリディクタブロックをエラー信号に加える、復号器の部分は、動き補償に
最適化されたサブプロセッサで実行される。
ィションはフレームの第1のエリアを表し、第2のデータパーティションはフレームの第
2のエリアを表す(たとえば、上半分及び下半分、又は、左半分及び右半分)。或いは、
ビデオデータは、3つのデータパーティションに分割してもよい。各データパーティショ
ンは、それぞれ、フレームのレベル情報、彩度情報、及び色相情報を表す。別の変形では
、これら3つのデータパーティションは、それぞれ、フレームのシアン情報、マゼンタ情
報、及びイエロー情報を表すことができる。
に応じて各所与の複数のピクセルの補間方法を選択することにより、端数ピクセル動きを
予測する態様を含む。具体的には、符号化する所与の複数のピクセルに関連した少なくと
も1つのメトリックの値が求められ、その所与の複数のピクセルを符号化する補間方法が
、求められた少なくとも1つのメトリックの値に応じて選択される。このようにして選択
された補間方法は、符号化する所与の複数のピクセルに適用される。このプロセスは、次
の各複数のピクセルについて繰り返されるステップである。少なくとも1つのメトリック
は、動きベクトル長及び複雑度因子の少なくとも1つとしてもよい。補間方法には、双1
次補間、双3次補間、2次補間、及びBスプライン補間が含まれ得る。所与の複数のピク
セルは、フレーム全体としてもよいし、フレームのサブ部分としてもよい。所与の複数の
ピクセルに関連した動きベクトル長が、所定の長さ値よりも小さいと判断され、且つ、所
与の複数のピクセルに関連した複雑度因子が、所定の複雑度値よりも大きいと判断された
場合、双3次補間が選択される。所定の長さ値及び所定の複雑度値は、好ましくは、所与
の個数の複数のピクセルについて1回設定され、且つ、フレームごとに1回設定される。
る。
C=(nΣxi 2−(Σxi)2)/n2 (4
)
データ送信中の品質損失を少なくするための唯一の参照フレームとして使用して、現在の
フレームのエラー回復を高度化することを含む。具体的には、本発明は、喪失又は破損し
たパケットを引き起こす、ライン上の送信に関連した品質損失を少なくするために、最後
のフレームよりも前に符号化されたフレームを、所与のフレームの唯一の基準フレームと
して使用することを含む。このステップは、周期的(Fフレームごと)及び任意(或る他
の判定基準に基づいて)の少なくとも1つに制限される。
当事者は、ビデオデータのフレームを圧縮し、パケットの喪失又は破損が検出可能なよう
にマーキングされたパケットで、圧縮されたビデオデータを他の当事者へ送信する。パケ
ットが喪失又は破損したことをいずれかの当事者が検出した場合に、検出した当事者は、
送信した当事者に信号で伝え、それによって、残りの当事者のすべてがすでに受信に成功
して復号している基準フレームを使用して符号化された更新フレームが送信される。
レームの一定の間隔Fを符号化器が選択して、復号器へ送信することができる。F番目の
フレームごとにフレームが、前の符号化されたF番目のフレームのみを基準に使用して符
号化される。F番目でないあらゆるフレームは、その前のフレームを基準として使用して
符号化される。ビデオの各フレームは、喪失及び破損が検出可能なように、復号器へ送信
される。これらのステップのすべては、好ましくは、符号化器で行われる。復号器側では
、符号化されたビデオデータが符号化器から受信され、復号器によって復号される。パケ
ットが喪失し、喪失したパケットがF番目でないフレームに関連したものである場合、復
号器は、次のF番目のフレームが喪失したパケットを回復するのを待つ。
の符号化されたフレームから取得された統計値のメトリックによって求められた周囲の品
質よりも高い品質で、周期的及び任意の少なくとも1つで符号化し、符号化された現在の
フレームを、2次的な基準フレームとしてのその後のフレームによる使用のために記憶す
る。
DCT(離散コサイン変換)に基づくビデオ圧縮システムでは、8×8のピクセルブロ
ック又は予測エラー信号データが、1組の64個の周波数係数(1つのDC値及び63個
のAC値)に変換される。これら64個の周波数係数は、その後、量子化されて1組のト
ークンに変換される。
になる可能性は小さくなる。その結果、トークン化の前に、それら係数は、多くの場合、
最も低い周波数係数(DC値)から開始して最も高周波のAC係数で終了する昇順に配列
される。この走査順序は、時に、「ジグザグ順序」と呼ばれることがあり、その始点に非
ゼロ値を集め、終点に向かうにつれてゼロ値を集める傾向があり、そうすることによって
、より効率的な圧縮を容易にする。
、インターレースされたビデオ素材を符号化する時、一定の高周波係数は、はるかに顕著
である。このことは従来技術に反映され、この従来技術では、インターレースされたビデ
オを符号化する時に代替的な走査順序を指令するコーデックが使用される例(たとえば、
MPEG−2)が存在する。
化される走査順序を、コーデックが最適にカスタマイズできる方法である。
のそれぞれについてゼロ値対非ゼロ値の分布の記録を保持する。この記録は、非ゼロにな
る可能性が高い係数がリストに先に現れるカスタムな走査順序を作成するのに使用される
。
して照合することができ、これを使用して走査順序をさらに最適化することができる。
するオーバーヘッドは、場合によっては、改善された係数符号化効率から得られた利益を
打ち消すおそれがある。したがって、更新がネットに利益を提供するかどうかを判断する
のにコスト利益分析が必要となる場合がある。
したがって、係数の個数)、及び新たな走査順序が標準的な走査順序又は前に符号化され
た走査順序のいずれかから逸脱する程度である。
1つ1つにつき新たな位置)を符号化するには、384ビット(それぞれ64個の係数×
6ビット)が必要となる。このコストは、符号化されるブロック数(したがって、係数の
個数)が非常に大きくない限り、又は、最適な走査順序がデフォルト走査順序(これは、
標準的な走査順序又は前に符号化された走査順序のいずれかである)と大幅に異ならない
限り、法外なものとなる可能性がある。この記述の背後にある理論的根拠は、デフォルト
走査順序がカスタム走査順序と類似している場合、各ブロックの符号化に確保される平均
ビット数が小さくなる可能性があり、したがって、走査順序を更新するオーバーヘッドを
正当化するには多数のブロックを符号化しなければならないということである。逆に、デ
フォルト走査順序がカスタム走査順序と異なる場合、ブロックあたりの平均節減は高くな
る可能性がある。
。たとえば、各係数について、その係数が走査順序において自身の位置を変更したかどう
かを示すビットを符号化し、次いで、適切な場合は、その新しい位置を示すビットを符号
化する。これは、通常、更新コストが低くなるが、ここでの最悪の場合のシナリオは、新
たな走査順序がすべての係数について異なる場合である。この場合、更新コストは448
ビット(64×7)となる。
似している場合に更新コストが最小となり(したがって、ブロックごとの可能性のあるコ
スト削減は、その最小のものとなる)、それらの走査順序が最も異なる場合に最高となる
ことである。
さらに改善することができる。たとえば、2つの係数が走査順序において互いに隣接して
おり、非ゼロ値の尤度がその双方でほとんど同一である場合を考える。それら2つの係数
の一方又は他方の非ゼロ値の個数に小さな変化があると、それら2つの係数は、カスタム
走査順序において場所を交換する可能性がある。この変化を符号化することは、(上記更
新モデルを仮定した場合に)14ビットのコストで双方の係数の走査位置を更新すること
を意味する。しかしながら、達成される節減はごく僅かとなる場合がある。
数は、通常、非常に低く、きわめて小さな変化であっても、走査順序における係数の位置
は大幅に変更される可能性がある。
とは確かに実現可能であるが、該当する他の要因がある。前述したように、これらの要因
の1つは、非ゼロ値の平均的な大きさである。もう1つは、場合により、1つ又は複数の
係数の値の間に正の相関が存在する場合があることである。たとえば、低い順序の「完全
に水平な」AC係数と高い順序の「完全に水平な」係数との間である。このような場合、
非ゼロ値の広がりに大幅な相違がない限り、非ゼロ値はその元の順序(最も低い周波数か
ら最も高い周波数)に維持することが好ましい場合がある。
ると同時に、走査順序の更新コストをさらに削減する。
・DC係数は常に最初(位置0)に符号化される。
・AC係数を、各係数の非ゼロである値の比率に基づいて降順に並べる。
・順序リストを16個の可変サイズの帯域に分割する(表1参照)。
・各帯域内において、ジグザグ走査順序に再配列する。
経験的な観測に基づいており、必ずしも最適ではないことに留意されたい。
に非ゼロである値の比率に基づく走査順序を使用して得られた結果と通例は同程度の良好
な結果、又は、多くの場合それよりも良好な結果を与えることを示している。
は、値が或る帯域から別の帯域へ移動される場合にしか、その値を更新する必要がないか
らである。さらに、帯域内の変更の符号化には4ビットしか必要とされない。
るかに頻繁に帯域を変更するという観察結果に基づいている。たとえば、高い順序のAC
係数は、低い順序の係数よりも帯域を変更する頻度は低いという傾向を有する。
ムにおいて更新されるかどうかを示すのに1ビットを使用することは無駄である。算術符
号化技法を使用して、経験的に求められた更新確率を各係数に割り当てることにより、係
数あたり実質的に1ビット未満の平均更新コストを得ることが可能である。
る詳細を与えるものである。
// 収集されたゼロ/非ゼロ周波数データを使用して新たな「好ましい」走査順序を
// 実現する
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トークンと呼ぶ)。これらは、不完全な予測の結果
生じたあらゆる残差を符号化するのに使用される。
表現が、ビットストリームにおけるそのトークンの周波数、又は、そのトークンが特定の
位置に現れる尤度に従って最適化されるプロセスである。たとえば、非常に頻繁に現れる
トークンは、まれにしか現れないトークンよりも少ないビット数を使用して表される。
。ハフマン符号化では、各トークンは、可変長のビットパターン(又は符号)によって表
される。算術符号化は、計算がより複雑な技法ではあるが、各トークンについて多数のビ
ット全体を使用する制約が除去されている。算術符号化器を使用すると、たとえば、1ビ
ットの1/2の平均コストで非常に一般的なトークンを符号化することが完全に可能であ
る。
セッサユニット、及び、より多目的のメインプロセッサを有する。その結果、並列化のた
めに、ビットストリームの符号化又は復号のプロセスは、多くの場合、エントロピーに関
連したタスクと、エントロピーに関連しないタスクとに分割される。
化/復号するトークン数が急激に上昇し、エントロピー符号化がボトルネックになる場合
がある。
トルネックを取り除くことは非常に困難である。特に、復号側では、通常は、トークンが
符号化された順序で1度に1つずつトークンを復号しなければならない。また、フレーム
レベル以外の方法又はエントロピー符号化(たとえば、ハフマン符号化及び算術符号化)
を混在させることもきわめて困難である。
つ、ビットストリームに対する構造的な変更を通じて混在モードのエントロピー符号化の
使用を容易にするように設計された方法である。
のデータパーティションに分割される。これらのパーティションは、並列に書き込むこと
もできるし、並列に読み出すこともでき、同じエントロピー符号化メカニズムを使用する
ように制約されない。これによって、高いビットレートでエントロピーに関連したボトル
ネックを回避するように符号化プロセス又は復号プロセスを最適化することが容易になる
。
が使用できることによって、符号化器には、達成される圧縮量と計算複雑度との間のトレ
ードオフをより良く最適化する機能が与えられる。たとえば、フレームの計画されたサイ
ズが所与のしきい値を超えている場合、符号化器は、そのパーティションの1つ又は複数
において、複雑さが少なくなったハフマン方法を使用するように構成することができる。
ィションの使用をサポートする。これに加えて、小さなヘッダパーティションがある。
ークン及びEトークンの双方が、単一のデータパーティションで独自の算術符号化器を使
用して符号化される。本方法は、オーバーヘッドがわずかに低い(フレームあたり数ビッ
ト)が、柔軟性が少ない。
パーティション1
(ブロック1) P,P,E,E,E
(ブロック2) P,E,E
(ブロック3) P,E,E,E,E
込まれる。
パーティション1 パーティション2
(ブロック1) PP EEE
(ブロック2) P EE
(ブロック3) P EEEE
第1のパーティションのサイズは、データレートによって等しく変化する傾向はなく、
比較的小さい。したがって、このパーティションは、常に、算術符号化器を使用して符号
化される。第2のパーティションは、算術符号化器を使用して符号化することもできるし
、ハフマン符号化器を使用して符号化することもできる。
ルの信号で伝えることができる。好ましい実施態様では、この選択は、ターゲット復号器
のプラットフォームの性能及びフレームの計画されたビットサイズに依存する。具体的に
は、フレームサイズがしきい値数を超える場合において、復号器が実時間でフレームを復
号する問題を有するという危険性があるときは、ハフマン方法が使用される。
、キーフレーム(より大きくなる傾向があり、他のフレームに依存しない)は例外になり
得るとして、エントロピー符号化のコストは、通例、符号化器の全体の計算コストのより
小さな一部分となる。
る詳細を与えるものである。
// この関数は、算術符号化された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ピクセル
の動き推定である。端数ピクセルデータ点を作成するには、実際の(すなわち、フルピク
セルアラインされた)データ点に適用される或る形態の補間関数又は補間フィルタを使用
することが必要である。
A x B
y z
C D
、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)を使用して計算することができる。
間フィルタの使用に向かう傾向がある。以下の例では、xは、2つのフルピクセルアライ
ンされた点BとCとの間の中点にある1/2ピクセル点である。双3次フィルタに対して
整数近似を使用すると、xは、公式:x=(−A+9B+9C−D)/16を使用して計
算することができる。
A B x C D
向があるが、いくつかのフレームにわたってそれらフィルタが繰り返し適用されると、場
合によっては、誤ったテキスチャや誤った輪郭等の不快な人工物となる可能性がある。
、より最適な端数ピクセルプリディクタを作成でき、クリップレベル、フレームレベル、
ブロックレベル、又は個々のピクセルレベルでもこれらの方法から選択を行える方法であ
る。
、双3次フィルタリングのみを使用するのか、それとも選択を可能にするのかの選択をフ
レーム単位で行うことができる。
グビットによって行うことができるが、好ましい実施態様では、ビットストリームにおい
てすでに利用可能な文脈情報を使用し、且つ、フィルタリングされることになる、フルピ
クセルアラインされたデータ値に適用された複雑度メトリックによって、この選択は行わ
れる。
ロックの良好な予測を見つけることができなかった場合)では、双1次フィルタリングは
、多くの場合、最善の選択肢となる。具体的には、予測が不十分である場合、双3次フィ
ルタのシャープ化特性は、残差信号の高周波の内容の増加につながる場合があり、符号化
をより困難にする場合がある。
関の程度をより大きくしたりより小さくしたりする文脈的に利用可能なさまざまな値を示
すことができる。これら値の最も単純なものの1つは、動きベクトル長(motion vector
length)である。具体的には、予測の品質は、動きベクトル長の増加と共に劣化する傾向
がある。別の可能な指標は、動きフィールドの滑らかさ(すなわち、近傍のブロックの動
きベクトルがどれだけ類似しているか)である。
まり詳細でなく、類似したエラースコアを有する多くの候補ベクトルがある)状況におい
てより良い選択肢となる傾向がある。特に、比較的平坦で特徴のない領域に対して多くの
フレームにわたり双3次フィルタを繰り返し適用すると、不要な人工物が生み出される場
合がある。
の因子は、動きベクトルの長さである。第2の因子は、フィルタリングされることになる
1組のフルピクセルアラインされたデータ点を解析することによって計算される複雑度メ
トリックCである。
1.動きベクトルが、X及びYの双方でしきい値Lよりも短い。
2.複雑度Cが、しきい値Tよりも大きい。
C=(nΣxi 2−(Σxi)2)/n2
に従って計算された1組のn個のデータ点xiの分散である。
ごとに1回の割合で、符号化器が設定することができる。
る詳細を与えるものである。
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)として符号化される
ことになる。
動きと類似した動きを示す場合によく機能する。これは、多くの場合、たとえばパンする
時に当てはまることを示すことができる。しかしながら、動きフィールドが不規則である
場合、又は、異なる動き特性を有する背景領域と前景領域との間での遷移が頻繁である場
合に、この方式はあまりよく機能しない。
景前景遷移の許容範囲がより大きな、動きベクトルを符号化するための代替的なストラテ
ジーである。
以上の基準ベクトルを保持する。コーデックは、ビットストリーム内の明示的なシグナリ
ングビットを介してこれらの基準ベクトルを切り換えることができるが、好ましい実施態
様では、この決定は、符号化方法、及び、ブロックのすぐ隣のブロックによって使用され
る動きベクトルに基づく。
レームにも依存しない)として符号化することもできるし、前のフレームの再構成又は周
期的にしか更新されない代替的な基準フレームのいずれかに依存するインターブロック(
inter block)として符号化することもできる。
は、以下の符号化モードの選択肢をサポートする。
・動きベクトルなし(すなわち、暗黙的な(0,0)ベクトル)で符号化する。
・「最も近い」近傍と同じベクトルを使用して符号化する。
・「次に最も近い」近傍と同じベクトルを使用して符号化する。
・新たな動きベクトルを使用して符号化する。
を基準にして符号化されたブロック及び非ゼロの動きベクトルで符号化されたブロックの
みが考慮される。他のすべてのブロックは無視される。
も無視される。
ベクトルを基準ベクトルとして使用することができる。好ましい実施態様では、最も近い
ベクトルが得られたブロックが、現在のブロックのすぐ左のブロック又はすぐ上のブロッ
クのいずれかである場合に、その最も近いベクトルが使用される(ブロックは、左から右
へ及び上から下へ符号化されるものと仮定する)。他のすべての場合には、新たなベクト
ルは(0,0)を基準にして符号化される。
それぞれ現在のブロックのすぐ左のブロック及びすぐ上のブロックである場合、それら2
つから得られた或る種の合成ベクトルを、新たなベクトルを符号化するための基準として
使用することができる。あるいは、「最も近い」はx成分を予測するのに使用することが
でき、「次に最も近い」はy成分を予測するのに使用することができる。
のブロック及びすぐ上のブロックであると仮定して、最も近いベクトルと次に最も近いベ
クトルとが類似していない場合を特別に考慮したものである。このような場合、最も近い
ベクトル及び次に最も近いベクトルは、x、y、又はx及びyの双方の基準値として0に
戻る。
に、単純な差分符号化の利益を保持する。しかしながら、特別な「ベクトルのない」モー
ド、「最も近い」モード、及び「次に最も近いモード」を使用することは、前景と背景と
の間の遷移をより効率的に符号化するのに役立ち、複数の符号化の起点を自動的に切り換
えることができることによって、本方法の不規則な動きフィールドの許容範囲は、より大
きくなる。
る詳細を与えるものである。
// この関数は、現在のブロックについて、限定的な(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つ以上のエラーがある場
合である。
ある。これは、前のフレーム又は前のフレームのデータに何ら依存関係を有しないフレー
ムである。キーフレームに関連した問題は、それらキーフレームが、通例、比較的大きい
ということである。
して使用できる1つ又は複数の追加された基準フレーム(前に符号化されたフレームの再
構成以外)を保持するメカニズムである。
つ、オプションとしてそれ以外の時に、フレームヘッダのフラグビットを介して更新され
る第2の基準フレームを保持する。たとえば、符号化器は、「X」秒ごとに1回又はエラ
ー回復フレームが符号化される時は常に第2の基準フレームを更新することを選択するこ
とができる。
しているという条件で、この第2の基準フレームを基準にした差分符号化は、キーフレー
ムを符号化するよりもはるかに安価になる可能性がある。
ができるいくつかの方法がある。従来技術に含まれる1つの明らかな使用は、2つ又は3
つ以上の異なるシーン間を行ったり来たりするビデオシーケンスにおいてである。たとえ
ば、ビデオがインタビューする側とインタビューされる側との間で行ったり来たりするイ
ンタビューを考える。各カメラアングル用のベースラインとして別々の基準フレームを記
憶することにより、これらの間を行ったり来たりするコストを大きく削減することができ
、特に、シーンが大幅に異なる場合に大きく削減することができる。
象は、ビデオにゆっくりとした漸進的変化がある状況において、周期的に更新された代替
的な基準フレームを使用して、圧縮されたビデオの品質を高めることである。この良い例
はゆっくりとしたパン、ズーム、又はトラッキングショットである。
進的変化の間、符号化器は、周囲のフレームよりもきわめて高い品質で符号化され、且つ
、第2の又は代替的な基準フレームの更新を引き起こすフレームを周期的に挿入する。
又は最後の第2の基準の更新以来、次第に喪失してきた細部を元に戻すこと、及び、後続
のフレームのインターフレーム予測のより良い基礎を提供することである。品質(したが
ってデータレート)を周期的に引き上げると同時に第2の基準フレームを更新するこのス
トラテジーは、いくつかの状況では、単にすべてのフレームを同様の品質で符号化するこ
とよりもはるかに良好なコスト/品質トレードオフを提供することを示すことができる。
定するための方法は、有効な実施態様の中心となる。
子には、以下のものが含まれる。
・動きの速度の指標として、数個の先行フレームにおける動きベクトルの平均振幅。
・動きフィールドが相関する程度。たとえば、動きベクトルがすべてかなり類似してい
る。
・前の数フレームにおける前のフレームの再構成に優先して、第2の基準フレームがプ
リディクタとして使用された程度。
・周囲の品質又は量子化器の設定。
新間隔及び品質ブースト(quality boost)はともに減少する。逆に、動きがゆっくりと
している場合、より大きな品質ブースト及びより長い間隔が使用される。
場合、第2の基準フレームの更新のための品質ブーストは増加する。逆に、動きフィール
ドの相関が乏しい場合、ブーストの程度は減少する。
使用されている場合、品質ブーストは増加する。逆に、第2の基準フレームが頻繁に使用
されない場合、品質ブーストは減少する。
には大きなブーストが使用され、周囲の品質が高い場合には小さなブーストが使用される
。
ある。
1/4ピクセル単位で指定されたX及びYの動きベクトル成分の平均振幅(AvX及び
AvY)を計算する。
MotionSpeed(動きの速度)=AvX及びAvYの大きい方
X及びYの動きベクトル成分の分散数(VarianceX(分散X)及びVaria
nceY(分散Y))を計算する
MaxVariance(最大分散)=VarianceX及びVarianceYの
大きい方
MotionComplexity(動きの複雑度)=MotionSpeed+(V
arianceX/4)+(VarianceY/4)
第2の基準フレームの更新がまさにこのフレームである場合
そのフレームの予測された品質インデックス(実際には量子化器の設定)に基づいてデ
ータレート%ブースト数(Boost)を計算する。これは、最高品質の+0%と、品質
レベルが非常に低い時の+1250%との範囲とすることができる。
BoostにMotionSpeed訂正係数(correction factor)を乗算する。こ
こで、この係数は、MotionSpeedが非常に小さい値である場合の1と、Mot
ionSpeedが大きな値である場合の0との間で変化することができる。
第2の基準フレームが前の数フレームで使用された程度に基づいて、さらに別の訂正係
数をBoostに適用する。この別の訂正係数は、第2の基準フレームが前の数フレーム
で全く使用されなかった場合の1/16から、第2の基準フレームが符号化されたブロッ
クの15%以上に使用された場合の1まで変化することができる。
次に、一連のテストが適用されて、先に進むかどうか、及び、計算された%ブーストで
第2の基準フレームを更新するかどうかが判断される。
(Boost>MinBoostTreshold)且つ
(MotionSpeed<MaxMotionSpeedThreshold)且つ
(MaxVariance<MaxVarianceThreshold)
ここで、MinBoostTreshold、MaxMotionSpeedThres
hold、及びMaxVarianceThresholdは構成可能なパラメータであ
る。
ドは、或るブロックの動きベクトルが、その近くにある近傍のブロックの1つによって使
用された動きベクトルと同じである場合に、当該或るブロックの動きベクトルをより安価
に符号化することを可能にするものである。これらのモードの使用がしきい値レベル未満
に下がる場合を減らすためのさらなるテストが適用される。
タレート目標値をベースライン値+Boost%に設定し、計算し、MotionSpe
edに基づく次の更新までの間隔。
ータレートブーストで通常通りフレームを更新する。
新間隔を考慮した、削減されたフレームデータレート目標値(負のブースト)を計算する
。
方法の選択>
現代の多くのビデオコーデックは、サブピクセル精度に対する動きの予測をサポートす
る。たとえば、1/2ピクセル又は1/4ピクセルの動き推定である。端数ピクセルデー
タ点を作成するには、実際の(すなわち、フルピクセルアラインされた)データ点に適用
される或る形態の補間関数又は補間フィルタを使用することが必要である。
A x B
y z
C D
、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
)を使用して計算される。
間フィルタの使用に向かう傾向がある。以下の例では、「x」は、2つのフルピクセルア
ラインされた点BとCとの間の中点にある1/2ピクセル点である。xは、公式(−A+
9B+9C−D)/16を使用して計算することができる。
A B x C D
るが、いくつかのフレームにわたってそれらフィルタが繰り返し適用されると、時に、テ
キスチャの誇張や誤った輪郭等の不快な人工物となる可能性がある。
の混在したものを使用して、より最適な端数ピクセルプリディクタを計算することができ
、フレームレベル、又は、動きベクトルが適用される個々のブロックもしくは領域のレベ
ルのいずれかでこれらの方法を選択することができる方法である。
によって行うことができるが、好ましい実施態様では、この選択は、フィルタリングされ
ることになる前の再構成された画像の1組のピクセルに適用された複雑度メトリックによ
って行われる。
は、双3次方法を使用してフィルタリングされるのに対して、これより低い複雑度スコア
を有するブロック又は領域は、双1次方法を使用してフィルタリングされる。
フルピクセルアラインされたデータ点の分散である。ここで、分散は次のように定義され
る。
(n?x2−(?x)2)/n2
。
Claims (53)
- 各ブロックがピクセルの配列を有する少なくとも1つのブロックを有する少なくとも1
つのフレームを有するビデオデータを圧縮する方法であって、
I)各ブロックの前記ピクセルを係数に変換して、該係数の最適な送信順序を作成する
ステップと、
II)前記データのビットストリームを区画して各パーティションを独立に符号化する
ことにより、圧縮されたビデオデータを処理する速度を最適化するステップと、
III)所与の各ブロックに関連した少なくとも1つのメトリックに応じて所与の各複
数のピクセルの補間方法を選択することにより、端数ピクセル動きを予測するステップと
、
IV)現在のフレームの直前のフレームよりも前のフレームを唯一の基準フレームとし
て使用して前記現在のフレームのエラー回復を高度化するステップであって、それによっ
て、データ送信中の品質損失を小さくする、前記現在のフレームのエラー回復を高度化す
るステップと
の少なくとも1つを含む、ビデオデータを圧縮する方法。 - ステップIは、
a)各ブロックの前記ピクセルを、各係数が係数位置及び値を有する係数に変換するス
テップと、
b)各係数位置に関連した位置の値を求めるステップと、
c)前記ステップb)で求められた各係数位置の前記位置の値に基づいて、係数の最適
な送信順序を作成するステップと、
d)前記ステップc)で求められた前記順序で前記係数を送信するステップと
をさらに含む、請求項1に記載の、ビデオデータを圧縮する方法。 - 前記ステップIは、e)ビデオデータの各フレームについて前記ステップc)の前記係
数の送信順序を動的に再配列するステップ、をさらに含む、請求項2に記載の、ビデオデ
ータを圧縮する方法。 - 前記変換するステップa)は、離散コサイン変換係数に前記ピクセルを変換する、請求
項2に記載の、ビデオデータを圧縮する方法。 - 前記ステップIは、前記ステップc)で求められた前記係数の送信順序を、前記ステッ
プd)で送信される前記係数と共に送信するステップ、をさらに含む、請求項2に記載の
、ビデオデータを圧縮する方法。 - 各ブロックは、同じ個数の係数及び係数位置を有する、請求項2に記載の、ビデオデー
タを圧縮する方法。 - それぞれの対応する各係数位置は、ブロックごとに同じ情報を伝達する、請求項2に記
載の、ビデオデータを圧縮する方法。 - 前記ステップIは、係数順序のデータの前記送信を、或るフレームから次のフレームに
おいて前記係数順序が変化したものに限定するステップ、をさらに含む、請求項5に記載
の、ビデオデータを圧縮する方法。 - 前記ステップIは、
i)各帯域がステップb)で求められた数のランクによって編成された複数の係数を有
する係数の帯域に、ステップc)の前記係数の送信順序を統合するステップと、
ii)帯域情報のみを、ステップd)で送信される前記係数と共に送信するステップと
をさらに含む、請求項2に記載の、ビデオデータを圧縮する方法。 - 前記ステップii)は、係数が或るフレームから次のフレームにおいて帯域を変更した
場合に帯域情報のみを送信するステップ、をさらに含む、請求項9に記載の、ビデオデー
タを圧縮する方法。 - 前記ステップii)は、すべての帯域情報を常に送信するステップ、をさらに含む、請
求項9に記載の、ビデオデータを圧縮する方法。 - 前記ステップIは、常に完全に自己符号化され、且つ、前のフレームからの情報又は前
のフレームに関する情報を必要としないキーフレームを提供するステップ、をさらに含む
、請求項2に記載の、ビデオデータを圧縮する方法。 - 前記ステップIは、
所与のフレームがキーフレームであるかどうかを判断するステップと、
前記所与のフレームがキーフレームであると判断された場合に、該キーフレームの前記
係数の送信順序全体を送信するステップと、
前記所与のフレームがキーフレームでないと判断された場合に、前記前のフレームから
前記所与のフレームにおける、前記係数の送信順序の変化したもののみを送信するステッ
プと
をさらに含む、請求項12に記載の、ビデオデータを圧縮する方法。 - ステップIIは、
a)前記ビデオデータを少なくとも2つのデータパーティションに分割するステップ、
b)各データパーティションについて最適なエントロピー符号化方法を選択するステッ
プ、
c)ステップb)で選択された前記エントロピー符号化方法を各データパーティション
にそれぞれ適用するステップ、
をさらに含む、請求項1に記載の、ビデオデータを圧縮する方法。 - ステップa)は、前記ビデオデータを、プリディクタトークンデータパーティション及
びエラートークンデータパーティションに分割するステップ、をさらに含む、請求項14
に記載の、ビデオデータを圧縮する方法。 - 各データパーティションは、ステップb)で異なるエントロピー符号化方法を選択して
いる、請求項14に記載の、ビデオデータを圧縮する方法。 - ステップb)で選択された前記エントロピー符号化方法は、ハフマン符号化及び算術符
号化を含む、請求項14に記載の、ビデオデータを圧縮する方法。 - 前記データパーティションを非同期に復号するステップ、をさらに含む、請求項14に
記載の、ビデオデータを圧縮する方法。 - 少なくとも2つのサブプロセッサを設けるステップ、をさらに含み、或るデータパーテ
ィションは或るサブプロセッサによって復号され、別のデータパーティションは別のサブ
プロセッサによって復号される、請求項18に記載の、ビデオデータを圧縮する方法。 - 前記選択するステップb)は、前記所与のデータパーティションのサイズに基づいて実
行される、請求項14に記載の、ビデオデータを圧縮する方法。 - 前記ステップIIは、
i)前記プリディクタトークンデータパーティションを読み出すステップと、
ii)前記プリディクタトークンデータパーティションをプリディクタブロックに変換
するステップと、
iii)前記エラートークンデータパーティションを読み出すステップと、
iv)前記エラートークンデータパーティションを係数に変換するステップと、
v)前記係数をエラーブロックに変換するステップと、
vi)前記プリディクタブロック及び前記エラーブロックを追加するステップであって
、それによって、画像ブロックを形成する、前記プリディクタブロック及び前記エラーブ
ロックを追加するステップと
をさらに含む、請求項15に記載の、ビデオデータを圧縮する方法。 - 前記ステップIIは、少なくとも2つのサブプロセッサを設けるステップ、をさらに含
み、ステップi)〜ステップvi)の少なくとも1つは或るサブプロセッサで実行され、
ステップi)〜ステップvi)の残りは別のサブプロセッサで実行される、請求項21に
記載の、ビデオデータを圧縮する方法。 - ステップiii)及びステップiv)は、高速エントロピー最適化サブプロセッサによ
って実行され、ステップi)、ステップii)、ステップv)、及びステップvi)は、
汎用サブプロセッサによって実行される、請求項22に記載の、ビデオデータを圧縮する
方法。 - データ及びコードのキャッシュミスを回避する、請求項14に記載の方法に従って生成
されたビットストリームの復号器の性能を最適化するための方法であって、該最適化方法
は、
i)前記コードキャッシュに適合できる個数の、前記復号器のコードの異なる関数を記
憶するステップ、
ii)前記データキャッシュに適合できる個数のブロックについてステップi)からの
前記コードを実行するステップ、
iii)前記復号器のコードの次の1組の異なる関数を収集するステップ、
iv)前記ビットストリームのすべてが読み出されて、前記データブロックのそれぞれ
が生成されるまで、ステップi)〜ステップiii)を繰り返すステップ、
を含む、生成されたビットストリームの復号器の性能を最適化するための方法。 - 各サブタスクを別々のプロセッサに割り当てることによって、サブプロセッサの利用を
最適化する、請求項14に従って生成されたビットストリームの復号器の性能を最適化す
るための方法であって、
i)前記ビットストリームからエラートークンを読み出して、該エラートークンを係数
に変換する、前記復号器の部分を、高速エントロピー最適化サブプロセッサで実行するス
テップと、
ii)前記ビットストリームから前記プリディクタトークンを読み出して、これらのト
ークンからフィルタリングされたプリディクタブロックを構築する、前記復号器の部分を
、メモリへの高速アクセスを有するサブプロセッサで実行するステップと、
iii)ステップi)からの前記変換係数をエラー信号に変換する、前記復号器の部分
を、前記変換符号化器の最適化された実施態様を有するサブプロセッサで実行するステッ
プと、
iv)ステップii)からの前記プリディクタブロックをステップiii)からの前記
エラー信号に加える、前記復号器の部分を、動き補償に最適化されたサブプロセッサで実
行するステップと
を含む、生成されたビットストリームの復号器の性能を最適化するための方法。 - 前記分割するステップa)は、前記ビデオデータを2つのデータパーティションに分割
するステップ、をさらに含み、第1のデータパーティションは前記フレームの第1のエリ
アを表し、第2のデータパーティションは前記フレームの第2のエリアを表す、請求項1
4に記載の、ビデオデータを圧縮する方法。 - 前記第1のデータパーティションは前記フレームの上半分を表し、前記第2のデータパ
ーティションは前記フレームの下半分を表す、請求項26に記載の、ビデオデータを圧縮
する方法。 - 前記第1のデータパーティションは前記フレームの左半分を表し、前記第2のデータパ
ーティションは前記フレームの右半分を表す、請求項26に記載の、ビデオデータを圧縮
する方法。 - 前記分割するステップa)は、前記ビデオデータを3つのデータパーティションに分割
するステップ、をさらに含み、各データパーティションは、それぞれ、前記フレームのレ
ベル情報、彩度情報、及び色相情報を表す、請求項14に記載の、ビデオデータを圧縮す
る方法。 - 前記分割するステップa)は、前記ビデオデータを3つのデータパーティションに分割
するステップ、をさらに含み、各データパーティションは、それぞれ、前記フレームのシ
アン情報、マゼンタ情報、及びイエロー情報を表す、請求項14に記載の、ビデオデータ
を圧縮する方法。 - ステップIIIは、
a)符号化する所与の複数のピクセルに関連した前記少なくとも1つのメトリックの値
を求めるステップと、
b)ステップa)で求められた前記少なくとも1つのメトリックの前記値に応じて、前
記所与の複数のピクセルを符号化する補間方法を選択するステップと、
c)ステップb)で選択された前記補間方法を、符号化する前記所与の複数のピクセル
に適用するステップと、
d)次に続く各複数のピクセルについてステップa)〜ステップc)を繰り返すステッ
プと
をさらに含む、請求項1に記載の、ビデオデータを圧縮する方法。 - 前記少なくとも1つのメトリックは、動きベクトル長及び複雑度因子の少なくとも1つ
である、請求項31に記載の、ビデオデータを圧縮する方法。 - 前記ステップb)は、双1次補間、双3次補間、2次補間、及びBスプライン補間から
成っている群から補間方法を選択する、請求項31に記載の、ビデオデータを圧縮する方
法。 - 前記所与の複数のピクセルはフレーム全体である、請求項31に記載の、ビデオデータ
を圧縮する方法。 - ステップa)は、
i)前記所与の複数のピクセルに関連した動きベクトル長が、所定の長さ値よりも小さ
いかどうかを判断するステップと、
ii)前記所与の複数のピクセルに関連した複雑度因子が、所定の複雑度の値よりも大
きいかどうかを判断するステップと
をさらに含む、請求項31に記載の、ビデオデータを圧縮する方法。 - 前記所与の複数のピクセルに関連した前記動きベクトル長が、前記所定の長さ値よりも
小さく、且つ、前記所与の複数のピクセルに関連した前記複雑度因子が、前記所定の複雑
度の値よりも大きい場合に、ステップb)で選択される前記補間方法は双3次補間である
、請求項35に記載の、ビデオデータを圧縮する方法。 - 前記所定の長さ値及び前記所定の複雑度の値を、所与の個数の複数のピクセルについて
1回設定するステップ、をさらに含む、請求項35に記載の、ビデオデータを圧縮する方
法。 - 前記設定するステップはフレームごとに1回実行される、請求項37に記載の、ビデオ
データを圧縮する方法。 - ステップii)の前記複雑度因子は、前記所与の複数のピクセルの分散である、請求項
35に記載の、ビデオデータを圧縮する方法。 - 請求項39に従ってビデオデータの動きを予測する方法であって、前記分散は、以下の
方程式
C=(nΣxi 2−(Σxi)2)/n2
に従って計算される、ビデオデータの動きを予測する方法。 - 前記ステップIVは、
a)喪失又は破損したパケットを引き起こす、ライン上の送信に関連した品質損失を少
なくするために、最後のフレームの前に符号化されたフレームを、所与のフレームの唯一
の基準フレームとして使用するステップと、
b)ステップa)の前記適用を、周期的及び任意の少なくとも1つに制限するステップ
と
をさらに含む、請求項1に記載の、ビデオデータを圧縮する方法。 - ステップa)及びステップb)をビデオ会議に適用するステップ、をさらに含む、請求
項41に記載の、ビデオデータを圧縮する方法。 - c)ビデオ会議の各当事者にビデオデータのフレームを圧縮させるステップと、
d)前記ビデオ会議の各当事者に、前記圧縮されたビデオデータを、パケットの喪失又
は破損が検出可能なようにマーキングされたパケットで他の当事者へ送信させるステップ
と、
e)パケットが喪失又は破損したことをいずれかの当事者が検出する場合に、送信する
当事者に信号で伝えることを前記検出する当事者に行わせるステップであって、それによ
って、残りの当事者のすべてがすでに受信に成功して復号している基準フレームを使用し
て符号化された更新フレームを送信する、送信する当事者に信号で伝えることを前記検出
する当事者に行わせるステップと
をさらに含む、請求項42に記載の、ビデオデータを圧縮する方法。 - i)ビデオフレームの一定の間隔Fを選択するステップと、
ii)この一定の間隔Fを前記復号器へ送信するステップと、
iii)F番目のフレームごとにフレームを、その前の符号化されたF番目のフレーム
のみを基準に使用して符号化するステップと、
iv)F番目でないあらゆるフレームを、その前のフレームを基準として使用して符号
化するステップと、
v)ビデオの各フレームを前記復号器へ送信し、それにより喪失及び破損が検出可能な
ようにするステップと
をさらに含む、請求項41に記載の、ビデオデータを圧縮する方法。 - 前記ステップi)〜前記ステップv)は前記符号化器で行われる、請求項44に記載の
、ビデオデータを圧縮する方法。 - vi)符号化されたビデオデータを前記符号化器から受信するステップと、
vii)前記ビデオを前記復号器で復号するステップと、
viii)パケットが喪失し、前記喪失したパケットがF番目でないフレームに関連し
たものである場合、次のF番目のフレームが前記喪失したパケットを回復するのを待つス
テップと
をさらに含む、請求項45に記載の、ビデオデータを圧縮する方法。 - 前記ステップIVは、
現在のフレームを、この符号化されたフレーム及び前の符号化されたフレームから取得
された統計値のメトリックによって求められた任意の品質よりも高い品質で、周期的及び
任意の少なくとも1つで符号化するステップと、
前記符号化された現在のフレームを、2次的な基準フレームとしてのその後のフレーム
による使用のために記憶するステップと
をさらに含む、請求項1に記載の、ビデオデータを圧縮する方法。 - 所与のフレームの前記ブロックは、前の符号化されたフレームの類似のサイズのブロッ
クとの差分として符号化され、以下のステップ、すなわち、
a)或る前の符号化されたフレームにおける、符号化される前記ブロックと最も良く整
合する前記ブロックを見つけるステップと、
b)周囲の8ブロックのいずれが、ステップa)で選択された前記ブロックと結合され
た場合に、符号化を試みている前記ブロックと最も近い整合を提供するかを判断するステ
ップと、
c)ステップa)で選択された前記ブロックに関するメトリック、前記前の符号化され
たフレーム、及び前記ブロックと係数を求めるために符号化される前記ブロックとの間に
間隔をおく動きベクトルを使用するステップと
をさらに含む、請求項1に記載の、ビデオデータを圧縮する方法。 - 所与のフレームの前記ブロックは、前の符号化されたフレームにおける類似のサイズの
ブロックとの差分として符号化され、以下のステップ、すなわち、
a)或る前の符号化されたフレームにおける、符号化される前記ブロックと最も良く整
合する前記ブロックを見つけるステップと、
b)その最も良いブロックから離れた最も良い端数ピクセルステップを求めるステップ
と。
c)前記ソースブロックとその最も良く整合するブロックとの間の、前記行及び列にお
ける前記差分から作成される動きベクトルを計算するステップと。
d)符号化する時を判断するためのアルゴリズムを使用するステップであって、
全く動きベクトルを符号化しない、
近くの動きベクトルを参照することにより前記動きベクトルを符号化する、
前記動きベクトルを直接符号化する、
近くの動きベクトルからの差分ベクトルとして前記動きベクトルを符号化する、
時を判断するためのアルゴリズムを使用するステップと、
e)前記動きベクトル又は前記差分ベクトルを送信するステップと
を含む、請求項1に記載の、ビデオデータを圧縮する方法。 - 左の前記ブロックが動きベクトルを有する場合には、そのブロックの前記動きベクトル
から動きベクトルを差分符号化し、又は、上の前記ブロックが動きベクトルを有するが、
該動きベクトルは有しない場合には、そのブロックの前記動きベクトルを差分符号化し、
それ以外の場合には、前記動きベクトルを直接符号化するステップ、をさらに含む、請求
項49に記載の、ビデオデータを圧縮する方法。 - 平均又は重み付け平均を通じて前記左のブロックの動きベクトル及び前記上のブロック
の動きベクトルを結合することによって計算される合成動きベクトルからの差分符号化を
行うステップ、をさらに含む、請求項49に記載の、ビデオデータを圧縮する方法。 - 前記左のブロックの前記動きベクトルからの差分として前記行を符号化し、前記上のブ
ロックとの差分として前記列を符号化する、請求項49に記載の、ビデオデータを圧縮す
る方法。 - 前記左のブロックの前記動きベクトル及び前記上のブロックの前記動きベクトルが類似
していると判断された場合、前記上のブロック又は前記左のブロックとの差分として前記
動きベクトルのみを符号化する、請求項51に記載の、ビデオデータを圧縮する方法。
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 | ビデオ圧縮方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013211908A true JP2013211908A (ja) | 2013-10-10 |
JP5606591B2 JP5606591B2 (ja) | 2014-10-15 |
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 Expired - Lifetime 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 (3)
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 Expired - Lifetime JP5480775B2 (ja) | 2003-05-12 | 2010-10-25 | ビデオ圧縮方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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) | KR101131689B1 (ja) |
CN (2) | CN101454990B (ja) |
CA (1) | CA2525390C (ja) |
WO (1) | WO2004102946A2 (ja) |
Families Citing this family (93)
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 |
US20040258147A1 (en) * | 2003-06-23 | 2004-12-23 | Tsu-Chang Lee | Memory and array processor structure for multiple-dimensional signal processing |
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 |
US8605786B2 (en) * | 2007-09-04 | 2013-12-10 | 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 | 王洪剑 | 一种运动向量场插值方法 |
CN105933713B (zh) | 2010-09-02 | 2019-03-19 | Lg电子株式会社 | 编码和解码视频的方法和使用该方法的装置 |
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 |
EP2606648A1 (en) | 2010-10-05 | 2013-06-26 | 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 |
KR101532665B1 (ko) * | 2011-03-14 | 2015-07-09 | 미디어텍 인크. | 시간적 움직임 백터 예측을 도출하기 위한 방법 및 장치 |
US8780996B2 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method for encoding and decoding video data |
US9154799B2 (en) | 2011-04-07 | 2015-10-06 | Google Inc. | Encoding and decoding motion via image segmentation |
US8780971B1 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method of encoding using selectable loop filters |
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 |
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 | 富士通株式会社 | 编码模式选择方法和*** |
CN103609116A (zh) * | 2011-06-17 | 2014-02-26 | 松下电器产业株式会社 | 动态图像编码装置以及动态图像编码方法 |
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 |
CN104811727B (zh) * | 2011-11-08 | 2018-02-16 | 三星电子株式会社 | 用于在视频编码或解码中的运动矢量确定的方法和设备 |
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 |
WO2013162980A2 (en) | 2012-04-23 | 2013-10-31 | Google Inc. | 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 |
RU2650181C2 (ru) * | 2013-07-22 | 2018-04-11 | Сони Корпорейшн | Устройство обработки информации и способ |
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 |
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 |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
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 |
CN113795861A (zh) * | 2019-05-05 | 2021-12-14 | 浙江宇视科技有限公司 | 发送端和接收端的隐私保护方法、电子设备、以及计算机可读存储介质 |
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 | 河南大学 | 基于霍夫曼编码的多类型数据分段压缩方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09149421A (ja) * | 1995-09-18 | 1997-06-06 | Oki Electric Ind Co Ltd | 画像符号化装置、画像復号化装置及び画像伝送システム |
JP2000197055A (ja) * | 1998-12-25 | 2000-07-14 | Oki Electric Ind Co Ltd | 画像通信装置およびロ―カルデコ―ド処理方法 |
JP2000350217A (ja) * | 1999-04-02 | 2000-12-15 | Matsushita Electric Ind Co Ltd | 動画送信/受信装置、及び動画データ記録媒体 |
JP2002010265A (ja) * | 2000-06-20 | 2002-01-11 | Sony Corp | 送信装置およびその方法と受信装置およびその方法 |
Family Cites Families (163)
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 |
US6327304B1 (en) | 1993-05-12 | 2001-12-04 | The Duck Corporation | Apparatus and method to digitally compress video signals |
US6181822B1 (en) | 1993-05-12 | 2001-01-30 | The Duck Corporation | Data compression apparatus and method |
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 |
AU6376296A (en) | 1995-07-11 | 1997-02-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Video coding |
EP1274252A3 (en) | 1995-08-29 | 2005-10-05 | Sharp Kabushiki Kaisha | Video coding device and video decoding device with a motion compensated interframe prediction |
US5835138A (en) | 1995-08-30 | 1998-11-10 | Sony Corporation | Image signal processing apparatus and recording/reproducing apparatus |
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 |
US6005980A (en) | 1997-03-07 | 1999-12-21 | General Instrument Corporation | Motion estimation and compensation of video object planes for interlaced digital video |
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 |
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 |
EP0953254B1 (en) | 1997-11-17 | 2006-06-14 | Koninklijke Philips Electronics N.V. | Motion-compensated predictive image encoding and decoding |
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 |
EP0940774A3 (en) | 1998-03-05 | 2000-07-05 | Matsushita Electric Industrial Co., Ltd. | Motion vector coding and decoding apparatus and method |
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 | 沖電気工業株式会社 | 画像符号化装置、画像復号化装置及び画像伝送システム |
AU1916800A (en) | 1998-11-20 | 2000-06-13 | Interval Research Corporation | Low cost video compression using fast, modified z-coding of wavelet pyramids |
US20020141501A1 (en) | 1998-11-20 | 2002-10-03 | Philips Electronics North America Corporation | System for performing resolution upscaling on frames of digital video |
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 |
JP2002536746A (ja) * | 1999-02-01 | 2002-10-29 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 動画シーケンスを表す記述子とその記述子を使用する画像検索システム |
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 |
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 |
KR20020064888A (ko) | 1999-10-22 | 2002-08-10 | 액티브스카이 인코포레이티드 | 객체 지향형 비디오 시스템 |
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 | 삼성전자주식회사 | 양방향 움직임 벡터를 이용한 프레임 레이트 변환 장치 및그 방법 |
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 |
JP3699910B2 (ja) * | 2000-10-31 | 2005-09-28 | 株式会社東芝 | データ伝送装置、データ伝送方法及びプログラム |
JP2002141806A (ja) | 2000-10-31 | 2002-05-17 | Hitachi Ltd | 可変長符号復号装置 |
JP2004518199A (ja) * | 2001-01-10 | 2004-06-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | コーディング |
CN1156168C (zh) * | 2001-01-12 | 2004-06-30 | 北京航空航天大学 | 快速视频运动估计方法 |
KR20020087957A (ko) | 2001-02-06 | 2002-11-23 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 임의로 형성된 오브젝트의 텍스처에 적용되는 전처리 방법 |
US7042948B2 (en) | 2001-03-05 | 2006-05-09 | Intervideo, Inc. | Systems and methods for management of data in a ring buffer for error resilient decoding of a video bitstream |
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 |
WO2003026315A1 (en) | 2001-09-14 | 2003-03-27 | 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 |
WO2003063502A1 (en) | 2002-01-18 | 2003-07-31 | Kabushiki Kaisha Toshiba | Moving picture coding method and apparatus and 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 |
HUE026930T2 (en) | 2002-03-15 | 2016-08-29 | Nokia Technologies Oy | Procedure for encoding motion in a series of images |
WO2003084235A1 (en) | 2002-03-28 | 2003-10-09 | British Telecommunications Public Limited Company | Video pre-processing |
US7110459B2 (en) * | 2002-04-10 | 2006-09-19 | Microsoft Corporation | Approximate bicubic filter |
US7116831B2 (en) * | 2002-04-10 | 2006-10-03 | Microsoft Corporation | Chrominance motion vector rounding |
JP4355156B2 (ja) | 2002-04-16 | 2009-10-28 | パナソニック株式会社 | 画像復号化方法及び画像復号化装置 |
JP4102973B2 (ja) * | 2002-04-24 | 2008-06-18 | 日本電気株式会社 | 動画像の符号化方法および復号化方法、これを用いた装置とプログラム |
ATE343302T1 (de) | 2002-05-02 | 2006-11-15 | Fraunhofer Ges Forschung | Kodierung und dekodierung von transformationskoeffizienten in bild- oder videokodierern |
US7349473B2 (en) | 2002-07-09 | 2008-03-25 | Nokia Corporation | Method and system for selecting interpolation filter type in video coding |
MXPA05000559A (es) | 2002-07-15 | 2005-04-19 | Nokia Corp | Metodo para ocultamiento de errores en secuencias de video. |
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 |
JP4593556B2 (ja) | 2003-01-09 | 2010-12-08 | ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア | 映像符号化方法及びデバイス |
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 | ソニー株式会社 | 符号化装置および方法、復号化装置および方法、プログラム、並びに記録媒体 |
EP3070922A1 (en) | 2005-12-08 | 2016-09-21 | Vidyo, Inc. | Systems and methods for error resilience and random access in video communication systems |
US7924925B2 (en) | 2006-02-24 | 2011-04-12 | Freescale Semiconductor, Inc. | Flexible macroblock ordering with reduced data traffic and power consumption |
WO2007126517A2 (en) | 2006-04-20 | 2007-11-08 | Thomson Licensing | Method and apparatus for redundant video coding |
US8488915B2 (en) | 2006-05-01 | 2013-07-16 | 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 |
CA2824745A1 (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 |
EP2715711A4 (en) | 2011-05-28 | 2014-12-24 | Ignis Innovation Inc | SYSTEM AND METHOD FOR FAST COMPENSATION PROGRAMMING OF PIXELS ON A DISPLAY |
US8775672B2 (en) | 2012-06-13 | 2014-07-08 | Hulu, LLC | Architecture for simulation of network conditions for video delivery |
-
2003
- 2003-11-14 US US10/713,807 patent/US8824553B2/en active Active
-
2004
- 2004-05-12 KR KR1020117005251A patent/KR101131689B1/ko active IP Right Grant
- 2004-05-12 KR KR1020057021588A patent/KR101140947B1/ko active IP Right Grant
- 2004-05-12 JP JP2006533037A patent/JP4568887B2/ja not_active Expired - Fee Related
- 2004-05-12 CN CN2004800200197A patent/CN101454990B/zh not_active Expired - Lifetime
- 2004-05-12 KR KR1020117005253A patent/KR101118438B1/ko active IP Right Grant
- 2004-05-12 CN CN2012101402633A patent/CN103037214A/zh active Pending
- 2004-05-12 KR KR1020117005250A patent/KR101133321B1/ko active IP Right Grant
- 2004-05-12 EP EP04752128A patent/EP1656791A2/en not_active Withdrawn
- 2004-05-12 CA CA2525390A patent/CA2525390C/en not_active Expired - Lifetime
- 2004-05-12 WO PCT/US2004/015025 patent/WO2004102946A2/en active Application Filing
- 2004-05-12 KR KR1020117005249A patent/KR101167006B1/ko active IP Right Grant
- 2004-05-12 KR KR1020117005252A patent/KR101118456B1/ko active IP Right Grant
-
2010
- 2010-05-26 JP JP2010121008A patent/JP5341024B2/ja not_active Expired - Fee Related
- 2010-10-25 JP JP2010239018A patent/JP5480775B2/ja not_active Expired - Lifetime
-
2012
- 2012-08-30 US US13/599,315 patent/US8942290B2/en not_active Expired - Lifetime
- 2012-08-30 US US13/599,333 patent/US20120320978A1/en not_active Abandoned
- 2012-08-30 US US13/599,360 patent/US10616576B2/en not_active Expired - Lifetime
- 2012-08-30 US US13/599,345 patent/US20120320987A1/en not_active Abandoned
- 2012-08-30 US US13/599,371 patent/US20120320992A1/en not_active Abandoned
-
2013
- 2013-06-04 JP JP2013117983A patent/JP5606591B2/ja not_active Expired - Fee Related
-
2014
- 2014-01-21 JP JP2014008689A patent/JP2014099905A/ja active Pending
-
2020
- 2020-03-24 US US16/827,864 patent/US11240498B2/en not_active Expired - Lifetime
-
2022
- 2022-01-07 US US17/570,533 patent/US20220132116A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09149421A (ja) * | 1995-09-18 | 1997-06-06 | Oki Electric Ind Co Ltd | 画像符号化装置、画像復号化装置及び画像伝送システム |
JP2000197055A (ja) * | 1998-12-25 | 2000-07-14 | Oki Electric Ind Co Ltd | 画像通信装置およびロ―カルデコ―ド処理方法 |
JP2000350217A (ja) * | 1999-04-02 | 2000-12-15 | Matsushita Electric Ind Co Ltd | 動画送信/受信装置、及び動画データ記録媒体 |
JP2002010265A (ja) * | 2000-06-20 | 2002-01-11 | Sony Corp | 送信装置およびその方法と受信装置およびその方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11240498B2 (en) | Independently coding frame areas | |
US6438168B2 (en) | Bandwidth scaling of a compressed video stream | |
US7643559B2 (en) | Coding method, decoding method, coding apparatus, decoding apparatus, image processing system, coding program, and decoding program | |
KR101599875B1 (ko) | 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 부호화 방법 및 장치, 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 복호화 방법 및 장치 | |
TWI436287B (zh) | 畫像編碼方法及裝置 | |
US9414086B2 (en) | Partial frame utilization in video codecs | |
US20060251330A1 (en) | Hybrid video compression method | |
US20100166073A1 (en) | Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors | |
JPWO2008084745A1 (ja) | 画像符号化装置および画像復号化装置 | |
KR20070026451A (ko) | 모션 예측을 사용하여 디지털 이미지 데이터를 압축하는방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140401 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20140630 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140715 |
|
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: 20140729 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140826 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5606591 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 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |