JP2003333603A - コンピュータ実施される方法、システムおよびコンピュータ可読媒体 - Google Patents
コンピュータ実施される方法、システムおよびコンピュータ可読媒体Info
- Publication number
- JP2003333603A JP2003333603A JP2003107078A JP2003107078A JP2003333603A JP 2003333603 A JP2003333603 A JP 2003333603A JP 2003107078 A JP2003107078 A JP 2003107078A JP 2003107078 A JP2003107078 A JP 2003107078A JP 2003333603 A JP2003333603 A JP 2003333603A
- Authority
- JP
- Japan
- Prior art keywords
- filter
- pixel
- computer
- bicubic
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000033001 locomotion Effects 0.000 claims abstract description 137
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000001914 filtration Methods 0.000 abstract description 42
- 239000013598 vector Substances 0.000 description 57
- 230000006835 compression Effects 0.000 description 23
- 238000007906 compression Methods 0.000 description 23
- 238000013139 quantization Methods 0.000 description 17
- 239000000872 buffer Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 16
- 241000023320 Luma <angiosperm> Species 0.000 description 9
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 7
- 230000003595 spectral effect Effects 0.000 description 7
- 230000006837 decompression Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005562 fading Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 235000001674 Agaricus brunnescens Nutrition 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000005441 aurora Substances 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000012888 cubic function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66C—CRANES; LOAD-ENGAGING ELEMENTS OR DEVICES FOR CRANES, CAPSTANS, WINCHES, OR TACKLES
- B66C13/00—Other constructional features or details
- B66C13/04—Auxiliary devices for controlling movements of suspended loads, or preventing cable slack
-
- 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B66—HOISTING; LIFTING; HAULING
- B66C—CRANES; LOAD-ENGAGING ELEMENTS OR DEVICES FOR CRANES, CAPSTANS, WINCHES, OR TACKLES
- B66C1/00—Load-engaging elements or devices attached to lifting or lowering gear of cranes or adapted for connection therewith for transmitting lifting forces to articles or groups of articles
- B66C1/10—Load-engaging elements or devices attached to lifting or lowering gear of cranes or adapted for connection therewith for transmitting lifting forces to articles or groups of articles by mechanical means
- B66C1/12—Slings comprising chains, wires, ropes, or bands; Nets
- B66C1/16—Slings with load-engaging platforms or frameworks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Mechanical Engineering (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Picture Signal Circuits (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Electric Double-Layer Capacitors Or The Like (AREA)
- Control Of Motors That Do Not Use Commutators (AREA)
- Filters And Equalizers (AREA)
- Polarising Elements (AREA)
- Networks Using Active Elements (AREA)
Abstract
およびツールを提供する。 【解決手段】 たとえば、動き推定および動き補償中
に、ビデオエンコーダで、基準ビデオフレーム内の1/
4ピクセル位置のピクセル値を計算するときに、近似双
三次フィルタリングを使用する。あるいは、動き補償中
に、ビデオデコーダで、1/4ピクセル位置のピクセル
値を計算するときに、近似双三次フィルタリングを使用
する。
Description
技法およびツールを説明する。たとえば、ビデオエンコ
ーダまたはビデオデコーダで、基準ビデオフレームにお
ける1/4ピクセル位置でピクセル値を計算するとき
に、近似双三次フィルタが使用される。
および伝送容量を消費する。通常の生のディジタルビデ
オシーケンスには、毎秒15フレームまたは30フレー
ムが含まれる。各フレームに、1万個または10万個の
ピクセル(ペルとも称する)が含まれる可能性がある。
各ピクセルは、画像の小さい要素を表す。生の形では、
コンピュータは、一般に24ビットを用いて1ピクセル
を表す。たとえば、1つのピクセルに、ピクセルのグレ
イスケール成分を定義する8ビット輝度値(明度値とも
称する)と、ピクセルの色成分を定義する2つの8ビッ
トクロミナンス値(クロマ値とも称する)が含まれる場
合がある。したがって、通常の生のディジタルビデオシ
ーケンスのビット毎秒またはビットレートの数は、毎秒
500万ビット以上になる可能性がある。
ットワークには、生のディジタルビデオを処理するリソ
ースが欠けている。この理由から、エンジニアは、圧縮
(コーディングまたはエンコーディングとも称する)を
使用して、ディジタルビデオのビットレートを下げる。
圧縮は、ロスレス(lossless)とすることがで
き、この場合には、ビデオの品質は影響を受けないが、
ビットレートの減少が、ビデオの複雑さによって制限さ
れる。あるいは、圧縮をロッシイ(lossy)とする
ことができ、この場合には、ビデオの品質に影響がある
が、ビットレートの減少が、より劇的になる。圧縮解除
では、圧縮の逆を行う。
レーム圧縮(intraframecompressi
on)とインターフレーム圧縮(interframe
compression)とが含まれる。イントラフレ
ーム圧縮技法では、通常はIフレームまたはキーフレー
ムと呼ばれる個々のフレームを圧縮する。インターフレ
ーム圧縮技法では、通常は予測フレーム、Pフレーム、
またはBフレームと呼ばれる、前のフレームおよび/ま
たは後のフレームを参照してフレームを圧縮する。
on社のWindows(登録商標)Media Vi
deo、Version 8(「WMV8」)には、ビ
デオエンコーダおよびビデオデコーダが含まれる。WM
V8エンコーダでは、イントラフレーム圧縮およびイン
ターフレーム圧縮が使用され、WMV8デコーダでは、
イントラフレーム圧縮解除およびインターフレーム圧縮
解除が使用される。WMV8エンコーダのインターフレ
ーム圧縮では、ブロックに基づく動き補償された予測コ
ーディングと、その後の、残留誤差の変換コーディング
が使用される。
ルプレーンすなわち、輝度ピクセル値の輝度(Y)平面
およびクロミナンスピクセル値の2つの色(U、V)平
面として表される。Y平面の解像度は、水平および垂直
でU平面およびV平面の解像度の2倍である。したがっ
て、320ピクセル×240ピクセルのフレームは、3
20ピクセル×240ピクセルのY平面および160ピ
クセル×120ピクセルのU平面およびV平面を有す
る。
ピクセルの8×8ブロックに分割される。4つの8×8
輝度ブロックおよび2つの同一位置の8×8クロミナン
スブロック(一方はU色平面、他方はV色平面に関す
る)のグループによって、16×16マクロブロックと
が形成される。したがって、16×16マクロブロック
のそれぞれに、4つの8×8輝度ブロックと、2つの8
×8クロミナンスブロックとが含まれる。
WMV8エンコーダでは、動き推定(motion e
stimation)が実行される。動き推定では、予
測フレーム内でマクロブロックを検索し、基準フレーム
からのマクロブロックとマッチングすることによって、
予測フレーム内のマクロブロックの動きを近似する。た
とえば、図1では、WMV8エンコーダによって、予測
フレーム(110)内のマクロブロック(115)の動
きベクトルが計算される。この動きベクトルを計算する
ために、エンコーダは、基準フレーム(130)の検索
領域(135)内を検索する。検索領域(135)内
で、エンコーダは、よい一致を見つけるために、予測フ
レーム(110)からのマクロブロック(115)の輝
度値を、基準フレーム(130)からのさまざまな候補
ブロックの輝度値と比較する。WMV8エンコーダは、
動きベクトル精度を切り替えることができ、整数ピクセ
ル、1/2ピクセル、または1/4ピクセルの水平分解
能と、整数ピクセルまたは1/2ピクセルの垂直分解能
とを有する検索範囲および動きベクトルを使用すること
ができる。サブピクセル精度の動きベクトルを用いる
と、WMV8エンコーダによって、ビデオシーケンス内
のサブピクセル動きを近似することができる。
ation)中に、WMV8エンコーダでは、予測フレ
ームのマクロブロックの動きベクトルを使用して、基準
フレームからマクロブロックの予測子(predict
or)を判定する。動き予測されるマクロブロックのそ
れぞれについて、WMV8エンコーダでは、元のマクロ
ブロックとその予測子の間の差(残差または誤差と称す
る)を計算する。WMV8エンコーダでは、残差をブロ
ックに分割し、残差ブロックをロッシイ圧縮する。予測
フレームの動き予測されたマクロブロックを再構成する
ために、WMV8エンコーダでは、残差を圧縮解除し、
めいめいのマクロブロックの予測子に加算する。
クロブロックの動きベクトルを使用して、基準フレーム
からマクロブロックの予測子を判定する。予測フレーム
の動き予測されたマクロブロックを再構成するために、
WMV8デコーダでは、残差を圧縮解除し、マクロブロ
ックの予測子に加算する。
トルがサブピクセル精度を有する(すなわち、1/2ピ
クセルまたは1/4ピクセル)ときに、WMV8エンコ
ーダまたはWMV8デコーダでは、基準フレーム内のサ
ブピクセル位置のピクセル値を判定しなければならな
い。WMV8エンコーダまたはWMV8デコーダでは、
補間フィルタを使用して、サブピクセル位置の値を生成
する。図2に、整数ピクセル値a、b、c、...、p
の補間によって計算された値を有するサブピクセルサン
プル位置H0、H1、H2を示す。
動作するときに、3つの別個の1/2ピクセル位置
H0、H1、H2の輝度ピクセル値について使用される
補間フィルタは、次の通りである。 H0=(f+g+R2)>>1 (1) H1=(f+j+R2)>>1 (2) H2=(f+g+j+k+R1)>>2 (3)
ムの丸めモードを示す1ビット丸め制御フラグによって
制御される丸め制御値である。丸め制御フラグに0がセ
ットされている場合には、R1=2かつR2=1であ
る。丸め制御フラグに1がセットされている場合には、
R1=R2=0である。丸め制御フラグの値は、Pフレ
ームごとに1と0の間で交互に変える。各Iフレームで
は、丸め制御フラグの値が0にリセットされる。したが
って、丸め制御は、フレーム単位で動作する。
linear interpolation)の例であ
る。双一次補間は、高速であり、ピクセル値が滑らかに
なる傾向がある。この平滑化は、望ましい効果(量子化
雑音の知覚可能性の低下など)を有する場合があるが、
有効なピクセル情報の消失につながる可能性もある。
に、WMV8エンコーダまたはWMV8デコーダでは、
まず、双三次フィルタ(bicubic filte
r)を使用して、1/2ピクセル位置での輝度ピクセル
値を補間する。双三次補間は、双一次補間より低速であ
るが、エッジ値が保存される傾向があり、より少ない有
効ピクセル情報の消失をもたらす。3つの別個の1/2
ピクセル位置H0、H1、H2の双三次フィルタは、次
の通りである。 H0=(−e+9f+9g−h+8)>>4 (4) H1=(−b+9f+9j−n+8)>>4 (5) H2=(−t0+9t1+9t2−t3+8)>>4 (6)
ように計算される。 t0=(−a+9b+9c−d+8)>>4 (7) t1=(−e+9f+9g−h+8)>>4 (8) t2=(−i+9j+9k−l+8)>>4 (9) t3=(−m+9n+9o−p+8)>>4 (10)
外の出力をもたらすことができる。たとえば、8ビット
入力(範囲0、...、255)について、一連の値、
0255 255 0によって、式(4)から(10)
のどれにおいても、287の出力値が作られる。したが
って、WMV8エンコーダまたはWMV8デコーダで
は、有効な範囲内になるように、すべての式(4)から
(10)の出力値をクランプ(または「クリッピン
グ」)する。たとえば、8ビット出力値について、0未
満の値は0に変更され、255を超える値は255に変
更される。クランプは、範囲の問題に対処するが、計算
の速度が落ちる。さらに、クランプは、精度の消失をも
たらす。
ダでは、その後、補間の後続ステージで、ある1/4ピ
クセル位置のピクセル値を計算する。これらの1/4ピ
クセル位置は、水平方向に、2つの1/2ピクセル位置
の間または整数ピクセル位置と1/2ピクセル位置との
間のいずれかに配置される。これらの1/4ピクセル位
置に関して、WMV8エンコーダまたはWMV8デコー
ダでは、丸め制御なしで、2つの水平に隣接する1/2
ピクセル/整数ピクセル位置を使用する双一次補間(す
なわち(x+y+1)>>1)が使用される。
V8エンコーダまたはWMV8デコーダでは、同一位置
のクロミナンス動きベクトルを導出する。WMV8の色
平面は、水平と垂直の両方で輝度平面の半分の大きさな
ので、輝度動きベクトル値を、適当なクロミナンス動き
ベクトル値にスケーリングしなければならない。WMV
8では、この変換処理に、輝度動きベクトルを半分にす
ることと、結果のクロミナンス動きベクトルを1/2ピ
クセル精度に丸めることとが含まれる。したがって、1
/2ピクセル精度を有する輝度動きベクトルは、1/4
ピクセル精度を有するクロミナンス動きベクトルに変換
されない。さらに、WMV8でのクロミナンス丸めは、
ユーザによる修正または選択が可能ではない単一のモー
ドで動作する。
セル位置のピクセル値が、いくつかの状況でアンダーフ
ローまたはオーバーフローを示す場合がある。たとえ
ば、1/4ピクセル位置の輝度ピクセル値は、隣接する
整数ピクセル位置の値が255であり、隣接する1/2
ピクセル位置の値が287(0+9×255+9×25
5−0+8>>4=287)である場合に、271
(0、...、255の範囲の外)になる可能性がある
(255+287+1>>1=271)。この問題に対
処するために、マクロブロックについて残差ブロックを
予測子に加算した後に、WMV8エンコーダおよびWM
V8デコーダでは、必要な場合に、範囲0、...、2
55内になるようにマクロブロックの再構成される値を
クランプする。
ビデオの圧縮および圧縮解除に関係する。これらの標準
規格には、国際電気通信連合[「ITU」]のMoti
onPicture Experts Group
[「MPEG」]1、2、および4標準規格と、H.2
61標準規格、H.262標準規格、およびH.263
標準規格が含まれる。WMV8と同様に、これらの標準
規格では、イントラフレーム圧縮およびインターフレー
ム圧縮の組合せが使用されるが、これらの標準規格は、
通常は、使用される圧縮技法の詳細においてWMV8と
異なる。
よびH.263)が、双一次フィルタおよび基本的な丸
め制御を使用する1/2ピクセル動き推定および1/2
ピクセル動き補償を提供する。さらに、H.263で
は、理論的には1/4ピクセル分解能(すなわち、1/
2ピクセル輝度動きベクトルの分解能の半分)を有する
クロミナンス動きベクトルが、1/2ピクセル精度また
はフルピクセル精度のいずれかに丸められ、その結果、
1/4ピクセル値がクロミナンス空間で許容されなくな
る。標準規格の動き推定/補償に関する詳細について
は、各標準規格の仕様書自体を参照されたい。
償は、効果的な圧縮技法であるが、さまざまな前の動き
推定/補償技法(WMV8および上で述べた標準規格
の)は、下記を含む複数の短所を有する。
でピクセル値を計算するときに、エンコーダおよびデコ
ーダが、中間値の精度を不必要に失う。たとえば、WM
V8で1/4ピクセル位置のピクセル値を計算するとき
に、1/2ピクセル位置の中間値が、より多数のビット
深さが使用可能である可能性があるという事実にもかか
わらず、4ビットだけ右シフトされる。さらに、WMV
8エンコーダ/デコーダでは、1/4ピクセル位置の2
ステージ補間中に中間値がクランプされ、これによっ
て、計算速度が低下し、精度の不必要な消失がもたらさ
れる。
償のピクセル値の補間が、多くの場合に非効率的であ
る。たとえば、WMV8では、1次元1/4ピクセル位
置の計算が、1/2ピクセル位置に関するフィルタの使
用とその後の双一次フィルタの使用を必要とする。
ステージ補間で作成される可能性がある丸め誤差の累積
を考慮に入れることができない。丸め誤差は、たとえ
ば、ピクセル値が、ビデオシーケンスのフレームからフ
レームへと繰り返して丸められるときに発生する。この
丸め誤差によって、低品質低ビットレートビデオシーケ
ンスの知覚可能なアーチファクトが引き起こされる可能
性がある。たとえば、WMV8エンコーダおよびWMV
8デコーダで、複数のステージで1/4ピクセル位置の
ピクセル値について補間するときに、丸め制御が使用さ
れない。その代わりに、各ステージの結果が、補間の各
ステージで同一の形で(丸め制御なしで)丸められる。
ル精度で実行されず、クロミナンス動きベクトル丸めオ
プションに対する制御が与えられない。たとえば、WM
V8エンコーダおよびWMV8デコーダは、すべてのク
ロミナンス動きベクトルを1/2ピクセル値に丸め、単
一モードでのみ動作する。
オに対するクリティカルな重要性を与えられれば、動き
推定および動き補償がよく開発された分野であること
は、驚くべきものではない。しかし、前の動き推定技法
および動き補償技法の利益がどれほどであれ、それら
は、下記の技法およびツールの長所を有しない。
説明は、近似双三次フィルタリングのさまざまな技法お
よびツールを対象とする。たとえば、ビデオのコーディ
ングおよびデコーディングの応用分野は、ビデオエンコ
ーダおよびビデオデコーダで、基準ビデオフレーム内の
サブピクセル位置のピクセル値を計算するときに、1つ
または複数の近似双三次フィルタが使用される。これに
よって、計算されたピクセル値を使用する動き予測の有
効性が改善される。それと同時に、近似双三次フィルタ
リングは、計算に関し比較的効率的である。
どのコンポーネントによって、近似双三次フィルタを使
用して、ある位置の値が計算される。近似双三次フィル
タは、実質的に双三次フィルタに似た形で動作し、これ
は望ましいことであるが、近似双三次フィルタは、計算
を単純にするために、異なるフィルタ係数および/また
はより低い分解能を有する。たとえば、近似双三次フィ
ルタのフィルタ係数は、1/4サンプル位置でのより低
い分解能のフィルタについて、64の合計(128では
なく)を有する。
で、近似双三次フィルタを使用して、基準ビデオフレー
ム内のさまざまなサブピクセル位置のピクセル値を計算
することができる。サブピクセル位置は、たとえば、1
次元または2次元で1/4ピクセル(または3/4ピク
セル)シフトされた位置である。
せてまたは独立に使用することができる。追加の特徴お
よび長所は、添付図面に関して進められる以下の詳細な
説明から明白になる。
き推定および動き補償でのサブピクセル補間の技法およ
びツールに関する。さまざまな実施形態は、補間の後の
ステージまでクランプおよび/またはビットシフト(精
度の消失をもたらす可能性がある動作)を延期すること
によって、複数ステージ補間で精度を保つ技法およびツ
ールに関する。他の実施形態は、複数ステージ補間の効
率的なフィルタリング動作または丸め動作に関する。
フレームでのあるいは1つまたは複数のブロックまたは
マクロブロックなどのフレームの一部での、サブピクセ
ル補間を実行する。エンコーダ/デコーダによって、基
準フレーム内のサブピクセル位置のピクセル値を計算す
る。エンコーダ/デコーダによって、その後、サブピク
セル精度の動きベクトルを使用して、動き補償を実行す
ることができる。
またはビデオデコーダによって、ビデオコーディングア
プリケーションまたはビデオデコーディングアプリケー
ションでサブピクセル補間を実行する。その代わりに、
別のエンコーダまたはデコーダ、あるいは別のタイプの
コンポーネントによって、サブピクセル補間または以下
で別のタイプのアプリケーションで説明する他の技法を
実行する。
実行する代わりに、いくつかの実施形態で、エンコーダ
/デコーダによって、フィールド、オブジェクトレイ
ヤ、または他のイメージに対するサブピクセル補間を実
行する。
間は、YUV色空間で基準フレームの輝度平面および色
平面のピクセル値を計算することによって行われる。代
替案では、色空間が異なる(たとえば、YIQまたはR
GB)。
せてまたは独立に使用することができる。異なる実施形
態によって、1つまたは複数の本明細書に記載の技法お
よびツールが実施される。これらの技法の動作を、通常
は、提示のために特定のシーケンシャルな順序で説明す
るが、この説明の形に、特に順序付けが必要でない限
り、動作の順序の小さい再構成が含まれることを理解さ
れたい。たとえば、シーケンシャルに説明される動作
を、いくつかの場合に、再配置するか同時に実行するこ
とができる。さらに、説明を簡単にするために、流れ図
に、通常は、特定の技法を他の技法と共に使用すること
ができるさまざまな形を図示しない。
およびビデオデコーダで、ビットストリーム内のさまざ
まなフラグおよび信号を使用する。特定のフラグおよび
信号を説明するが、この説明の形に、フラグおよび信号
に関する異なる規約(たとえば1ではなく0)が含まれ
ることを理解されたい。
施される、適するコンピューティング環境(300)を
示す。この技法およびツールを、異なる汎用または特殊
目的のコンピューティング環境で実施することができる
ので、コンピューティング環境(300)は、使用また
は機能性に関する制限を暗示することを意図されたもの
ではない。
境(300)に、少なくとも1つの処理ユニット(31
0)およびメモリ(320)が含まれる。図3では、こ
の最も基本的な構成(330)が、破線の中に含まれ
る。処理ユニット(310)は、コンピュータ実行可能
命令を実行し、実際のプロセッサまたは仮想プロセッサ
とすることができる。マルチプロセッシングシステムで
は、複数の処理ユニットがコンピュータ実行可能命令を
実行して、処理能力を高める。メモリ(320)は、揮
発性メモリ(たとえば、レジスタ、キャッシュ、RA
M)、不揮発性メモリ(たとえば、ROM、EEPRO
M、フラッシュメモリなど)、またはこの2つの組合せ
とすることができる。メモリ(320)には、ビデオエ
ンコーダおよび/またはビデオデコーダなどのエンコー
ダおよび/またはデコーダでサブピクセル補間技法を実
施するソフトウェア(380)が格納される。
有する場合がある。たとえば、コンピューティング環境
(300)に、ストレージ(340)、1つまたは複数
の入力デバイス(350)、1つまたは複数の出力デバ
イス(360)、および1つまたは複数の通信接続(3
70)が含まれる。バス、コントローラ、またはネット
ワークなどの相互接続機構(図示せず)によって、コン
ピューティング環境(300)のコンポーネントが相互
接続される。通常、オペレーティングシステムソフトウ
ェア(図示せず)によって、コンピューティング環境
(300)内で実行される他のソフトウェアのオペレー
ティング環境が提供され、コンピューティング環境(3
00)のコンポーネントのアクティビティが調整され
る。
は取外し不能とすることができ、ストレージ(340)
には、磁気ディスク、磁気テープ、磁気カセット、CD
−ROM、DVD、または、情報を格納でき、コンピュ
ーティング環境(300)内でアクセスできる他の任意
の媒体が含まれる。ストレージ(340)には、サブピ
クセル補間技法を実施するソフトウェア(380)の命
令が格納される。
マウス、ペン、またはトラックボールなどの接触入力デ
バイス、音声入力デバイス、スキャニングデバイス、ま
たは、コンピューティング環境(300)に入力を提供
する別のデバイスとすることができる。オーディオエン
コードまたはビデオエンコードのために、入力デバイス
(350)を、サウンドカード、ビデオカード、TVチ
ューナカード、またはアナログ形式またはディジタル形
式でオーディオ入力またはビデオ入力を受け入れる類似
するデバイス、あるいは、オーディオサンプルまたはビ
デオサンプルをコンピューティング環境(300)に読
み込むCD−ROMまたはCD−RWとすることができ
る。出力デバイス(360)は、ディスプレイ、プリン
タ、スピーカ、CDライタ、または、コンピューティン
グ環境(300)からの出力を提供する別のデバイスと
することができる。
介する別のコンピューティングエンティティへの通信が
可能になる。通信媒体は、コンピュータ実行可能命令、
オーディオまたはビデオの入力または出力、あるいは他
のデータなどの情報が、変調されたデータ信号で伝えら
れる。変調されたデータ信号とは、信号内で情報をエン
コードする形で1つまたは複数の特性を設定されまたは
変更された信号である。限定ではなく例として、通信媒
体には、電気、光、RF、赤外線、音響、または他の搬
送波を用いて実施される有線もしくは無線の技術が含ま
れる。
体の全般的な文脈で説明することができる。コンピュー
タ可読媒体とは、コンピューティング環境内でアクセス
できるすべての使用可能な媒体である。制限ではなく例
として、コンピューティング環境(300)に関して、
コンピュータ可読媒体に、メモリ(320)、ストレー
ジ(340)、通信媒体、およびこれらの任意の組合せ
が含まれる。
ルに含まれるものなどの、ターゲットの実際のプロセッ
サまたは仮想プロセッサ上のコンピューティング環境内
で実行されるコンピュータ実行可能命令の全般的な文脈
で説明することができる。一般に、プログラムモジュー
ルには、特定のタスクを実行するか特定の抽象データ型
を実施する、ルーチン、プログラム、ライブラリ、オブ
ジェクト、クラス、コンポーネント、データ構造などが
含まれる。プログラムモジュールの機能性を、望みに応
じてさまざまな実施形態で、組み合わせるかプログラム
モジュールの間で分割することができる。プログラムモ
ジュールのコンピュータ実行可能命令を、ローカルコン
ピューティング環境または分散コンピューティング環境
内で実行することができる。
定」および「選択」などの用語を使用して、コンピュー
ティング環境でのコンピュータ動作を説明する。これら
の用語は、コンピュータによって実行される動作の高水
準の抽象化であり、人間によって実行される動作と混同
してはならない。これらの用語に対応する実際のコンピ
ュータ動作は、実施形態に応じて変化する。
びビデオデコーダ 図4は、一般化されたビデオエンコーダ(400)のブ
ロック図であり、図5は、一般化されたビデオデコーダ
(500)のブロック図である。
の間に示された関係は、エンコーダおよびデコーダ内の
情報の主な流れを示し、図を簡単にするために、他の関
係は図示されていない。具体的に言うと、図4および図
5には、通常は、ビデオシーケンス、フレーム、マクロ
ブロック、ブロックなどに使用されるエンコーダ設定、
モード、テーブルなどを示すサイド情報(side i
nformation)が示されていない。そのような
サイド情報は、通常はサイド情報のエントロピ符号化
(entropy encoding)の後に、出力ビ
ットストリーム内で送信される。出力ビットストリーム
のフォーマットは、Windows(登録商標)Med
ia Videoフォーマットまたは別のフォーマット
とすることができる。
00)は、ブロックベースであり、4:2:0マクロブ
ロックフォーマットを使用し、各マクロブロックには、
4つの8×8輝度ブロック(時には1つの16×16マ
クロブロックとして扱われる)と、2つの8×8クロミ
ナンスブロック(たとえば、1つはUブロック、1つは
Vブロック)が含まれる。代替案では、エンコーダ(4
00)およびデコーダ(500)が、オブジェクトベー
スであり、異なるマクロブロックフォーマットまたはブ
ロックフォーマットを使用するか、8×8ブロックおよ
び16×16マクロブロックと異なるサイズまたは構成
のピクセルの組に対する操作を実行する。
て、エンコーダまたはデコーダのモジュールを、追加
し、省略し、複数のモジュールに分割し、他のモジュー
ルと組み合わせ、かつ/または類似するモジュールで置
換することができる。代替実施形態では、異なるモジュ
ールおよび/またはモジュールの他の構成を有するエン
コーダまたはデコーダによって、本明細書に記載の技法
の1つまたは複数が実行される。
のブロック図である。エンコーダシステム(400)
は、現在のフレーム(405)を含むビデオフレームの
シーケンスを受け取り、出力として圧縮ビデオ情報(4
95)を作る。ビデオエンコーダの特定の実施形態で
は、通常は、一般化されたエンコーダ(400)の変形
形態または補足されたバージョンが使用される。
予測フレームおよびキーフレームが圧縮される。提示の
ために、図4に、エンコーダシステム(400)を介す
るキーフレームのパスと、順方向予測フレームのパスを
示す。エンコーダシステム(400)のコンポーネント
の多くが、キーフレームと予測フレームの両方の圧縮に
使用される。これらのコンポーネントによって実行され
る正確な動作を、圧縮される情報のタイプに応じて変更
することができる。
たフレーム、あるいは両方向予測の場合にpフレームま
たはbフレームとも称する]は、あるフレームから他の
フレームへの予測(または差)に関して表現される。予
測残差は、予測されたものと元のフレームの間の差であ
る。対照的に、キーフレーム[iフレーム、イントラコ
ーディングされたフレームとも称する]は、他のフレー
ムへの参照なしで圧縮される。
フレームである場合には、動き推定(motion e
stimator)(410)が、基準フレームに関し
て、現在のフレーム(405)のマクロブロックまたは
ピクセルの他の組の動きを推定し、基準フレームは、フ
レームストア(420)にバッファリングされた、再構
成された前のフレーム(425)である。代替実施形態
では、基準フレームが、後のフレームであるか、現在の
フレームであるかが、両方向予測される。動き推定(4
10)は、サイド情報として、動きベクトルなどの動き
情報(415)を出力する。動き補償(motion
compensator)(430)が、再構成された
前のフレーム(425)に動き情報(415)を適用し
て、動き補償された現在のフレーム(435)を形成す
る。しかし、予測は、ほとんどの場合に完全ではなく、
動き補償された現在のフレーム(435)と元の現在の
フレーム(405)との間の差が、予測残差(445)
である。代替案では、動き推定および動き補償が、別の
タイプの動き推定/補償を適用する。
nsformer)(460)が、空間領域ビデオ情報
を周波数領域(すなわちスペクトル)データに変換す
る。ブロックベースのビデオフレームについて、周波数
変換(460)は、離散コサイン変換[「DCT」]ま
たはDCTの変形形態を動き予測残差データのブロック
に適用して、DCT係数のブロックを作る。代替案で
は、周波数変換(460)が、フーリエ変換などの別の
普通の周波数変換を適用するか、ウェーブレット(wa
velet)分析またはサブバンド(subband)
分析を使用する。いくつかの実施形態で、周波数変換
(460)が、キーフレームの空間予測残差のブロック
に周波数変換を適用する。周波数変換(460)は、8
×8、8×4、4×8、または他のサイズの周波数変換
を適用することができる。
(470)が、スペクトルデータ係数のブロックを量子
化する。量子化は、フレームごとにまたは別の基準で変
化するステップサイズを用いてスペクトルデータに均一
のスカラ量子化を適用する。代替案では、量子化が、た
とえば不均一量子化、ベクトル量子化、または非適応量
子化などの別のタイプの量子化をスペクトルデータ係数
に適用し、あるいは、周波数変換を使用しないエンコー
ダシステムでは、スペクトル領域データを直接に量子化
する。適応量子化のほかに、エンコーダ(400)は、
ドロッピング、適応フィルタリング、または他のレート
制御の技法を使用することができる。
き推定/補償に必要なときには、逆量子化(inver
se quantizer)(476)が、量子化され
たスペクトルデータ係数に対して逆量子化を実行する。
その後、逆周波数変換(inverse freque
ncy transformer)(466)が、周波
数変換(460)の動作の逆を実行し、再構成された予
測残差(予測フレームの場合)または再構成されたキー
フレームを作る。現在のフレーム(405)が、キーフ
レームである場合には、再構成されたキーフレームが、
再構成された現在のフレーム(図示せず)として採用さ
れる。現在のフレーム(405)が、予測フレームであ
る場合には、再構成された予測残差を動き補償された現
在のフレーム(435)に加算して、再構成された現在
のフレームを形成する。フレームストア(420)は、
次のフレームの予測に使用するために、再構成された現
在のフレームをバッファリングする。いくつかの実施形
態で、エンコーダが、再構成されたフレームにデブロッ
キングフィルタ(deblocking filte
r)を適用して、フレームのブロック内の不連続性を適
応式に平滑化する。
der)(480)は、量子化(470)の出力ならび
にあるサイド情報(たとえば、動き情報(415)、量
子化ステップサイズなど)を圧縮する。通常のエントロ
ピ符号化技法には、算術コーディング、差分コーディン
グ、ハフマンコーディング、ランレングスコーディン
グ、LZコーディング、辞書コーディング、および上記
の組合せが含まれる。エントロピ符号化(480)は、
通常は、異なる種類の情報(たとえば、DC係数、AC
係数、異なる種類のサイド情報)に異なるコーディング
技法を使用し、特定のコーディング技法内で複数のコー
ドテーブルの中から選択することができる。
オ情報(495)をバッファ(490)に入れる。バッ
ファレベルインジケータが、ビットレート適応モジュー
ルにフィードバックされる。圧縮ビデオ情報(495)
は、一定のまたは比較的一定のビットレートでバッファ
(490)から放出され、そのビットレートでの後続の
ストリーミングのために格納される。代替案では、エン
コーダシステム(400)が、圧縮の直後に圧縮ビデオ
情報をストリーミングする。
ビデオ情報(495)を、ネットワークを介する伝送の
ためにチャネルコーディングすることができる。チャネ
ルコーディングでは、エラー検出および訂正データを圧
縮ビデオ情報(495)に適用することができる。
ブロック図である。デコーダシステム(500)は、ビ
デオフレームの圧縮されたシーケンスに関する情報(5
95)を受け取り、再構成されたフレーム(505)を
含む出力を作る。ビデオデコーダの特定の実施形態で
は、通常は、一般化されたデコーダ(500)の変形形
態または補足された版が使用される。
ームおよびキーフレームを圧縮解除する。提示のため
に、図5に、デコーダシステム(500)を介するキー
フレームのパスおよび順方向予測フレームのパスを示
す。デコーダシステム(500)のコンポーネントの多
くが、キーフレームおよび予測フレームの両方の圧縮解
除に使用される。これらのコンポーネントによって実行
される正確な動作を、圧縮解除される情報のタイプに応
じて変更することができる。
ンスに関する情報(595)を受け取り、受け取った情
報をエントロピ復号化(entropy decode
r)(580)から使用可能にする。バッファ(59
0)は、通常は、経時的にかなり一定の速度で情報を受
け取り、バッファ(590)には、帯域幅または伝送の
短期間変動を平滑化するためにジッタバッファが含まれ
る。バッファ(590)に、再生バッファおよび他のバ
ッファも含めることができる。代替案では、バッファ
(590)が、変化する速度で情報を受け取る。バッフ
ァ(590)の前または後に、圧縮ビデオ情報を、チャ
ネルデコードし、エラー検出および訂正のために処理す
ることができる。
ンコーダ内で実行されるエントロピ符号化の逆を適用す
ることによって、エントロピ符号化された量子化された
データならびにエントロピ符号化されたサイド情報(た
とえば、動き情報(515)、量子化ステップサイズ)
をデコードする。エントロピ復号化技法には、算術デコ
ーディング、差分デコーディング、ハフマンデコーディ
ング、ランレングスデコーディング、LZデコーディン
グ、辞書デコーディング、および上記の組合せが含まれ
る。エントロピ復号化(580)は、頻繁に、異なる種
類の情報(たとえば、DC係数、AC係数、異なる種類
のサイド情報)に異なるデコーディング技法を使用し、
特定のデコーディング技法内で複数のコードテーブルの
中から選択することができる。
向予測フレームである場合には、動き補償(530)
が、動き情報(515)を基準フレーム(525)に適
用して、再構成されるフレーム(505)の予測(53
5)を形成する。たとえば、動き補償(530)は、マ
クロブロック動きベクトルを使用して、基準フレーム
(525)内のマクロブロックを見つける。フレームバ
ッファ(520)に、基準フレームとして使用される、
前に再構成されたフレームが格納される。代替案では、
動き補償が、別のタイプの動き補償を適用する。動き補
償による予測は、ほとんどの場合に完全ではなく、した
がって、デコーダ(500)は、予測残差も再構成す
る。
構成されたフレームを必要とするときに、フレームスト
ア(520)に、再構成されたフレームが、次のフレー
ムの予測に使用するために格納される。いくつかの実施
形態で、エンコーダは、再構成されたフレームにデブロ
ッキングフィルタを適用して、フレームのブロック内の
不連続性を適応式に平滑化する。
されたデータを逆量子化する。一般に、逆量子化は、フ
レームごとにまたは別の基準で変化するステップサイズ
を用いてエントロピ復号化されたデータに均一のスカラ
逆量子化を適用する。代替案では、逆量子化が、たとえ
ば不均一逆量子化、ベクトル逆量子化、または非適応逆
量子化などの別のタイプの逆量子化をデータに適用し、
あるいは、逆周波数変換を使用しないデコーダシステム
では、空間領域データを直接に逆量子化する。
周波数領域データをスペクトル領域ビデオ情報に変換す
る。ブロックベースビデオフレームについて、逆周波数
変換(560)は、逆DCT[「IDCT」]またはI
DCTの変形をDCT係数のブロックに適用し、動き予
測残差データを作る。代替案では、逆周波数変換(56
0)が、逆フーリエ変換などの別の普通の逆周波数変換
を適用するか、ウェーブレット分析またはサブバンド分
析を使用する。いくつかの実施形態で、逆周波数変換
(560)は、キーフレームの空間予測残差のブロック
に逆周波数変換を適用する。逆周波数変換(560)
は、8×8、8×4、4×8、または他のサイズの逆周
波数変換を適用することができる。
フレームコーディングでは、フレームの間の時間的冗長
性を活用して、圧縮を達成する。時間的冗長性削減で
は、現在のフレームをコーディングするときに、予測子
として、前にコーディングされたフレームを使用する。
以下で説明する実施形態では、ビデオエンコーダで、よ
り少ないビット数を使用して情報をコーディングするた
めに、通常のビデオシーケンス内の時間的冗長性を活用
する。ビデオエンコーダでは、基準フレーム(たとえ
ば、前にコーディングされた、前のフレーム)に対する
予測フレームのピクセルのブロック、マクロブロック、
または他の組の動きをパラメータ化するのに動き推定を
使用する。ビデオエンコーダ(ならびに対応するデコー
ダ)では、動き情報および基準フレームを使用して予測
フレームを再構成するのに、動き補償を使用する。
とによってビデオフレームの予測(すなわち、予測フレ
ーム)を生成する処理である。上で注記したように、予
測は、基準フレームからのデータのブロック、マクロブ
ロック、または他の組について形成される。また、通常
は、変位が、直線をなし、予測されるタイル全体にわた
って一定である。そのような変位は、X方向およびY方
向に沿った変位またはシフトに対応する2つの成分を有
する動きベクトルによって定義される。X(水平)およ
びY(垂直)の動きベクトル成分は、現在予測されつつ
あるタイルと、基準フレーム内の対応する位置との間の
変位を表す。正の値は、現在の位置の下および右の位置
を表す。負の値は、現在の位置の上および左の位置を表
す。
8×8タイルであり、マクロブロックが、ピクセルの1
6×16タイルであり、動きベクトルが、1/4ピクセ
ル精度で定義される。他の実施形態では、エンコーダお
よびデコーダで、異なる分解能または任意の変化する動
きベクトルを用いて、かつ/または動きベクトル以外の
動き情報を使用して、本明細書に記載の技法の1つまた
は複数を、異なるサイズのタイルまたは任意の変化する
サイズのタイルに適用する。
位に関して、しばしばサブピクセル精度を用いて、指定
される。サブピクセル変位は、適当に定義された動き補
償フィルタを使用して基準フレームをフィルタリングす
ることによって実現される。直線をなすサブピクセル動
き補償の場合に、X成分およびY成分が、固定小数点数
として表現される。これらの数の整数部分を、フルピク
セルシフトと称し、仮数部分を、サブピクセルシフトと
称する。サブピクセルシフトが0のときに、動きは、整
数個のピクセルである。よりしばしば、これは、予測子
を生成するための基準フレームからのブロックコピーと
して実施される(理論上は、何らかの形のフィルタリン
グを潜在的に適用できるはずであるが)。その一方で、
サブピクセルシフトが非0のときには、サブピクセルシ
フトに対応する1つまたは複数のフィルタを基準フレー
ムの整数ピクセル位置に適用することによって、予測子
が生成される。したがって、動き補償フィルタは、サブ
ピクセルシフトによって決定される。
フトを実施するために、動き補償フィルタで、整数ピク
セル位置の基準値に基づいて、小数ピクセル位置でデー
タ点を補間する。一般に、補間の質は、フィルタのサポ
ートに伴って増加する。いくつかの実施形態では、分離
可能な2タップおよび4タップ(各方向で)のフィルタ
が使用され、これらのフィルタは、双一次インターポー
レータおよび双三次インターポーレータに対応する。
が、整数算術と、ビットシフトとして実施される除算と
を使用する。丸め制御パラメータRは、0または1の値
をとり、これによって、これらの除算の丸めの方向が決
定される。この丸め制御パラメータは、定数をセットさ
れる、外部からシグナリングされる、または過去のコー
ディングされた情報から暗黙のうちに導出することがで
きる。
ル動き推定およびサブピクセル動き補償中に使用される
基準フレーム(600)内の整数ピクセル位置およびサ
ブピクセル位置を示す。各方向の1/4ピクセル間隔
で、基準フレーム(600)に、エンコーダまたはデコ
ーダが特定の変位についてピクセル値を補間する可能性
があるサブピクセル位置が含まれる。基準フレーム(6
00)の整数位置aからpは、図6では影付きの円とし
て示され、整数位置の間で補間される1/4位置および
1/2位置は、影なしの円として示されている。位置P
0からP8は、表1に記載の、9個の代表的なサブピク
セル位置を表す。
1/4ピクセル位置の特別なケースとみなすことがで
き、これは、フルピクセル位置から1/4ピクセルだけ
シフトされている。他の3/4ピクセル位置は、可能で
あるが図示されていない。サブピクセル位置P0からP
8は、後の補間フィルタの説明で参照する。代替実施形
態では、エンコーダおよびデコーダが、追加のまたは異
なるサブピクセル位置、たとえば各方向に1/4ピクセ
ル以外の間隔で、値を補間する。
オエンコーダおよびビデオデコーダで、下記のように定
義される一次(linear)/双一次(biline
ar)フィルタおよび/または三次(cubic)/双
三次(bicubic)フィルタが使用される。
に最も近い2つの格子点での既知の値を使用する、線形
または一次の1次元の多項式である。補間される点での
線形関数の値が、線形補間である。線形多項式の乗数
は、式の線形系を解き、線形フィルタの係数を決定する
ことによって計算される。線形補間フィルタは、2つの
フィルタタップによって定義される。双一次インターポ
ーレータは、2つの次元で分離可能な線形インターポー
レータである。
に最も近い4つの格子点での既知の値を使用する、立方
または三次の多項式である。補間される点での三次関数
の値が、三次補間である。三次多項式の乗数は、式の系
を解き、三次フィルタの係数を決定することによって計
算される。三次インターポーレータフィルタは、4つの
フィルタタップによって定義される。双三次インターポ
ーレータは、2つの次元で分離可能な三次インターポー
レータである。
ビデオ圧縮およびビデオ圧縮解除の分野では交換可能に
使用される。普通の2次元補間では、1次元で実行され
る補間動作が、他の次元に複製され、したがって、各フ
ィルタリングステージを、双一次フィルタリングと称す
る。三次および双三次という用語は、同様に交換可能で
ある。
語は、1次元、2次元、または3次元以上でのフィルタ
リングを説明するのに交換可能に使用される。同様に、
三次および双三次という用語は、1次元、2次元、また
は3次元以上でのフィルタリングを説明するのに交換可
能に使用される。たとえば、式(11)から(13)で
は、三次フィルタのタイプが定義されるが、これらは、
双三次フィルタと呼ばれる。というのは、基準ビデオフ
レームの2ステージ補間の一般的な応用例で、フィルタ
が、2ステージ補間の両方の次元について複製される動
作で使用されるからである。より一般的には、フィルタ
リングの次元数は、文脈から既知である。
デコーダで、近似双三次フィルタを使用して、サブピク
セル位置の値を補間する。たとえば、エンコーダおよび
デコーダで、図6に示されたものなどの基準フレームの
可能なシフト位置で下記のフィルタ(F1が双三次フィ
ルタ、F2およびF3が近似双三次フィルタ)が使用さ
れる。 1/2ピクセルシフト F1:[−1 9 9 −1] (11) 1/4ピクセルシフト F2:[−4 53 18 −3] (12) 3/4ピクセルシフト F3:[−3 18 53 −4] (13)
係数によって導入される拡大を補償するために、右シフ
トが含まれる(たとえば、F1では4ビット、F2およ
びF 3では6ビット)。演算子>>は、右シフト演算子
である。右シフト演算子によって、2進数のビットが右
にシフトされ、最下位ビットが捨てられ、最上位ビット
に0が追加される。この演算は、剰余が切り捨てられ
る、シフトされるビット数の2のべきによる単純な除算
をもたらす(たとえば、3による右シフトは、2 3=8
による除算をもたらす)。
/4ピクセル双三次インターポーレータ(4タップフィ
ルタ)に粗く基づく。下記の式に、位置P0について真
の1/4ピクセル双三次フィルタを適用した結果を示
す。 (−7e+105f+35g−5h)>>7 (14)
タリングの産物は、7ビットだけ右シフトされる。近似
双三次フィルタF2およびF3は、性能に関して純粋な
双三次フィルタに迫るが、次式に示されるように、より
低い分解能を有する。 (−7e+105f+35g−5h)>>7 =(−3.5e+52.5f+17.5g−2.5h)>>6 ≒(−4e+53f+18g−3h)>>6 (15)
用することによって、複数ステージ補間での精度のビッ
トの消失がもたらされ、したがって、近似双三次フィル
タに関する正規化係数が、少なくとも1/2だけ減らさ
れる(すなわち、右シフトが1ビット以上減らされ
る)。式(15)の近似双三次フィルタについて選択さ
れたフィルタ係数は、周波数領域の挙動(たとえば、高
周波数情報を保存するため)および経験的挙動(たとえ
ば、あるビットレートに対する最小のひずみを達成する
ため)を考慮に入れた後の、真の双三次フィルタの丸め
に基づく。具体的に言うと、フィルタF2およびF3に
は、まだ4つのフィルタ係数が含まれる(一般に、フィ
ルタで使用されるフィルタ係数が少ないほど、実施が高
速になるが、近接ピクセルの雑音に対処するために、十
分なフィルタ係数を使用しなければならない)。フィル
タ係数値は、合計が64になるように調節され、これに
よって、より高い分解能の双三次フィルタを近似しなが
ら、16ビット算術を使用する実施形態が容易になる。
双三次フィルタを近似しながら、合計が64になる他の
フィルタ係数値を使用することもできる。実質的に純粋
な双三次フィルタのように実行されるが、より少ないサ
ポートおよび/またはより低い分解能を有するフィルタ
を、「近似」双三次フィルタと称する。フィルタが実質
的に純粋な双三次フィルタに似て実行されるかどうかを
客観的に測定する方法の1つが、近似フィルタが純粋な
双三次フィルタによく相関する(すなわち、定義された
閾値以内である)かどうかを検査することである。一実
施形態では、相関が、フィルタのベクトルの間の角度の
コサイン(できる限り1に近いことが望まれる)を測定
することであり、閾値は0.95である。他の客観的ま
たは主観的な測定、他の相関測定値、および/または閾
値を、使用することもできる。たとえば、近似双三次フ
ィルタのフィルタ係数を選択し、その結果、それらの合
計が、効率的なフーリエ変換または他の数学的操作を容
易にする他の値になるようにすることができる。
に、式(11)から(13)で概要を示された双三次フ
ィルタに対応する場合のそれぞれの補間されたピクセル
を計算するのに使用されるピクセル値と共に、整数ピク
セル位置を示す。Pは、ピクセル値が計算されるサブピ
クセル位置を示す。I1、I2、I3、およびI4は、
補間の次元に沿った整数ピクセル位置を表す。図7に
は、水平補間が示されているが、同一の演算および位置
の配置が、垂直補間に適用される。
ーダで、他のおよび/または追加の補間フィルタが使用
される。たとえば、エンコーダおよびデコーダで、双一
次(すなわち2タップの)フィルタが、値の補間に使用
される。たとえば、図6のサブピクセル位置を参照する
と、P1、P5、およびP7の値を決定するのに使用さ
れる補間フィルタを、式(1)から(3)に示されたフ
ィルタとすることができる。
形態のエンコーダおよびデコーダでは、補間された値を
1つの次元だけで計算する。図7に示されているよう
に、下記の式によって、整数ピクセルの間で補間すると
きの、フィルタF 1(1/2ピクセルシフト)、F
2(1/4ピクセルシフト)、およびF3(3/4ピク
セルシフト)の動作が示される。 F1:(−1I1+9I2+9I3−1I4+8−r)>>4 (16) F2:(−4I1+53I2+18I3−3I4+32−r)>>6 (17) F3:(−3I1+18I2+53I3−4I4+32−r)>>6 (18)
る。下記のように、値rは、2進フレームレベル丸め制
御パラメータRと補間方向に依存する。
1およびP5によって、1つの次元だけでの補間を必要
とする(すなわち、P1では水平方向、P5では垂直方
向)、基準フレーム(600)内の1/2ピクセル位置
が示されている。次式によって、P1およびP5につい
て整数ピクセルの間で補間するときのフィルタF1(1
/2ピクセルシフト)の動作が示される。 P1=(−1e+9f+9g−1h+8−r)>>4 (20) P5=(−1b+9f+9j−1n+8−r)>>4 (21)
1つの次元だけでの補間を必要とする、基準フレーム
(600)内の1/4ピクセル位置が示される。次式に
よって、P0およびP2について整数ピクセルの間で補
間するときのフィルタF2(1/4ピクセルシフト)の
動作が示される。 P0=(−4e+53f+18g−3h+32−r)>>6 (22) P2=(−4b+53f+18j−3n+32−r)>>6 (23)
2を、わずかな修正だけを用いて使用して、3/4ピク
セル位置を計算することもできる。たとえば、次式によ
って、P 8について整数ピクセルの間で補間するときの
フィルタF3(3/4ピクセルシフト)の動作が示され
る。 P8=(−3b+18f+53j−4n+32−r)>>6 (24)
で、1つの次元の1/2ピクセル、1/4ピクセル、ま
たは3/4ピクセルだけシフトされる位置について他の
および/または追加の補間フィルタが使用される。たと
えば、エンコーダおよびデコーダで、より多数またはよ
り少数のフィルタ係数、異なるフィルタ係数、異なる丸
め、または丸めなしのフィルタが使用される。
したサブピクセル位置で実行される。たとえば、図6
で、P3、P4、P6、およびP7が、水平と垂直の両
方の次元で補間が行われる位置である。
する一実施形態では、2次元サブピクセル位置が、まず
垂直方向に沿って、次に水平方向に沿って、補間され
る。以下でより完全に説明するように、補間は、上の式
(16)から(18)で指定されたフィルタ、F1、F
2、またはF3の1つまたは複数を使用して実行され
る。図8に示された実施形態では、丸めが、垂直フィル
タリングの後と水平フィルタリングの後の両方で適用さ
れる。丸め規則のビットシフトによって、中間結果での
16ビット算術によって許容される精度の維持が保証さ
れる。
され、水平フィルタリングがそれに続く。垂直フィルタ
リングから開始することによって、いくつかのアーキテ
クチャで性能が改善される。他の実施形態では、フィル
タリングの順序が異なる。たとえば、補間が、垂直方向
の前に水平方向で実行される。あるいは、補間フィルタ
のさまざまな他の組合せが使用される(たとえば、複数
の水平フィルタおよび/または複数の垂直フィルタ)。
セル値(838)は、8ビットのビット深さを有し、2
56値のダイナミックレンジを有する。中間値(82
0)は、16ビットのビット深さを有し、65536値
のダイナミックレンジを有する。代替実施形態では、入
力値、出力値、および中間値が、異なる(たとえばより
大きい)ビット深さを有する。
ィルタ(FV)が、8ビット入力ピクセル値(811)
に適用される(812)。適用される垂直フィルタは、
選択されたサブピクセル位置が、1/4ピクセル、1/
2ピクセル、または3/4ピクセルのどれだけシフトさ
れるかに依存し、上で説明した双三次フィルタの1つの
形をとることができる。
式によって定義される。 (S+RV)>>shiftV (25)
た結果であり、RV=2shift V−1−1+Rであ
る。Rは、フレームごとに0と1の間で交互に変える丸
め制御値である。したがって、丸め規則には、ステージ
で交互に変える(stage−alternatin
g)丸め制御(813)およびビットシフト(814)
が含まれる。
が引き起こされ、したがって、右シフトの少なくとも一
部が、補間の後のステージまで延期される。shift
Vの右シフト値は、補間されるサブピクセル位置に依存
する。具体的に言うと、P3、P4、P6、およびP7
について、shiftV={5、3、3、1}である。
シフトの量は、第1ステージフィルタ係数値に起因する
拡大の補償に必要な量より小さい(たとえば、シフト
は、近似双三次フィルタについて6ビット未満である)
が、後続フィルタリングの中間結果が中間値のダイナミ
ックレンジ内(たとえば、16ビットワードの場合に6
5536個の可能な値)にとどまることを保証するのに
十分である。フルシフトと比較して、この短縮されたシ
フトでは、補間の第1ステージ(810)の後に、中間
ピクセル値(820)の精度が保たれる。中間ピクセル
値(820)は、yビットのダイナミックレンジを有
し、yは、8ビットより大きい。第1ステージで実行さ
れるシフトの量は、使用可能なビット深さおよび補間フ
ィルタの係数に依存するものとすることができる。たと
えば、本明細書に記載の例示的実施形態では、中間値
が、16ビットのワード限界に制限される。
ビット)の入力値を検討されたい。近似双三次係数[−
4 53 18 −3]を8ビット入力値に適用するこ
とからの中間値の範囲は、フィルタ係数からの拡大要因
に起因して、−1785から18105までである(約
14.3ビット、実施については15ビットまでに丸め
られる)。中間値に近似双三次フィルタ係数(追加の拡
大を有する)を適用する後続の水平フィルタリングで
は、16ビットダイナミックレンジの外の値が作られ、
オーバーフローまたはアンダーフローが引き起こされる
可能性がある。したがって、中間値は、後続水平フィル
タリングで16ビットダイナミックレンジ内の値がもた
らされることを保証するのに十分にシフトされる。P3
について、最初のシフト量は、5ビットであり、シフト
された中間値のダイナミックレンジは、−55から56
5までである(約9.3ビット、実施については10ビ
ットまでに丸められる)。シフトされた中間値に近似双
三次フィルタ係数を適用することからの出力の範囲は、
−7860から40500までになり、これは、16ビ
ット未満のダイナミックレンジを有する。したがって、
短縮されたシフトは、16ビットワード限界が完全に利
用されるが、補間の第2ステージ(830)中にそれを
超えないことが保証されるように計算される。
フィルタ(FH)を適用して、垂直フィルタによって決
定された値(820)からの2次元サブピクセル位置の
値を補間する(832)。水平フィルタリングの後の丸
め規則は、次の通りである。 (S+64−R)>>7 (26)
結果であり、Rは、フレームごとに交互に変える丸め制
御値である。第1ステージの丸め規則と同様に、第2ス
テージの丸め規則には、ステージで交互に変える丸め制
御(833)およびビットシフト(834)を用いて丸
めが含まれる。第1ステージの延期されたシフトのゆえ
に、第2ステージでのシフトの量は、通常は、選択され
た水平フィルタについて通常期待されるものより大き
く、所望のダイナミックレンジを有する値を出力するよ
うに計算される。
で、潜在的に、値が負の補間されたピクセル、または値
が範囲の最大値(たとえば、8ビット出力では255)
より大きい補間されたピクセルが作られる可能性があ
る。このような8ビット出力値の場合には、エンコーダ
およびデコーダが、許容される範囲に収まるように出力
値(836)をクリッピングする。具体的に言うと、ア
ンダーフローが、0にセットされ、オーバーフローが、
255にセットされる。クランプの後に、補間された8
ビット値(838)が出力される。
ットである。したがって、9ビットを有するフィルタリ
ングされた出力値が、保たれる。たとえば、P3の前の
例を続けると、フィルタリングされた出力値の範囲は、
−61から316までであり、これは、約8.6ビット
のダイナミックレンジを有する(実施については9ビッ
トまでに丸められる)。補間されたデータの有効範囲
は、8ビットだけだが、ヘッドルームの余分の1ビット
によって、オーバーフロー情報およびアンダーフロー情
報が提供される。言い換えると、最上位ビット(すなわ
ち「符号」ビット)がセットされている場合に、アンダ
ーフローまたはオーバーフローがある。具体的にこの2
つのどちらが発生したかは、残りの8つの「仮数」ビッ
トを調べることによって導出される。
た2次元補間をさらに示す。図9に、図6の基準フレー
ム(600)のサブピクセル位置P7(水平に1/2ピ
クセル、垂直に1/2ピクセル)を示す。2つの1/2
ピクセル双三次補間フィルタを使用して、P7の値を補
間する。第1ステージでは、中間値V1からV4を、下
記の一般形を有する1/2ピクセル双一次フィルタを使
用して、近接する整数ピクセル位置から計算する。
ビットだけ右シフトする。第2ステージでは、中間結果
V1からV4が、1/2ピクセルフィルタによって使用
されて、P7のピクセル値が計算される。具体的に言う
と、下記の形を有する1/2ピクセルフィルタが使用さ
れる。 P7=(−1V1+9V2+9V3−1V4) (32)
は、9ビット値を得るために7ビットだけ右シフトされ
る。この9ビット値には、8つの仮数ビットおよび1つ
の符号ビットが含まれる。必要なクランプをすべて実行
してオーバーフローまたはアンダーフローを補償した後
に、最終的な8ビットの補間された値が出力される。
のサブピクセル位置P4(水平に1/2ピクセル、垂直
に1/4ピクセル)を示す。1/4ピクセルおよび1/
2ピクセルの双三次補間フィルタを使用して、P4の値
を補間する。第1ステージでは、中間値V1からV
4を、下記の一般形を有する1/4ピクセル双三次フィ
ルタを使用して、近接する整数ピクセル位置から計算す
る。 VInter=(−4x1+53x2+18x3−3x4) (33)
説明したものと同一の形で、基準フレーム(600)の
整数ピクセル値に適用される。RVの適当な値を加算し
た後に、結果を3ビットだけ右シフトする。第2ステー
ジでは、中間結果V1からV 4が、1/2ピクセルフィ
ルタによって使用されて、P4のピクセル値が計算され
る。具体的に言うと、下記の形を有する1/2ピクセル
フィルタが使用される。 P4=(−1V1+9V2+9V3−1V4) (34)
ために7ビットだけ右シフトされ、必要なクランプがす
べて実行され、最終的な8ビットの補間された値が出力
される。
に1/4ピクセル、垂直に1/2ピクセル)も示されて
いる。P6の値を補間するために、P4の補間の技法
が、わずかな修正だけを用いて使用される。修正された
技法では、第1ステージで1/2ピクセル双三次フィル
タを使用して、中間値を決定する。中間ピクセル値の位
置は、図10のV5からV8に示されている。第2ステ
ージ中に、1/4ピクセル双三次フィルタでこの中間値
を使用して、P6の値を計算する。具体的に言うと、下
記の形を有する1/4ピクセル双三次フィルタが使用さ
れる。 P6=(−4V5+53V6+18V7−3V8) (35)
トの量は、P4を計算する技法と同一である(すなわ
ち、第1ステージのシフトが3、第2ステージのシフト
が7である)。
のサブピクセル位置P3(水平に1/4ピクセル、垂直
に1/4ピクセル)を示す。2つの1/4ピクセル双三
次補間フィルタを使用して、P3の値を補間する。第1
ステージでは、中間値V1からV4が、下記の一般形を
有する1/4ピクセル双三次フィルタを使用して、近接
する整数ピクセル位置から計算される。 VInter=(−4x1+53x2+18x3−3x4) (36)
して上で説明したものと同一の形で基準フレーム(60
0)の整数ピクセル値に適用される。RVの適当な値を
加算した後に、その結果を5ビットだけ右シフトする。
第2ステージでは、中間結果V1からV4が、もう1つ
の1/4ピクセルフィルタによって使用されて、P3の
ピクセル値が計算される。具体的に言うと、下記の形を
有する1/4ピクセルフィルタが使用される。 P3=(−4V1+53V2+18V3−3V4) (37)
ために7ビットだけ右シフトされ、必要なクランプがす
べて実行され、最終的な8ビットの補間された値が出力
される。
または両方の次元で3/4ピクセルシフトを有するサブ
ピクセル位置の値も、計算することができる。そのよう
なサブピクセル位置を計算するために、上で概要を示し
た方法を、1/4ピクセル双三次フィルタの代わりに適
当な3/4ピクセル双三次フィルタを使用することによ
って修正することができる。
双一次フィルタと双三次フィルタとの組合せを使用し
て、サブピクセルサンプル位置の値を補間する。双一次
フィルタの使用によって、双三次フィルタの場合より係
数によって導入される膨張(expansion)が減
るので、一般に、実行されるシフトの量(第1ステージ
の後および全体の後)が減る。たとえば、双一次フィル
タおよび16ビット中間値を使用する一実施形態では、
第1ステージでシフトが実行されず、これによって16
ビットワード限界の使用が最大になり、4ビットの右シ
フトが最終ステージの後で実行される。同様に、クラン
プを、最終ステージまで延期することができる。
が、所望の「ワードサイズ」限界W内にとどまりなが
ら、フィルタリングのすべてのステージで可能な最高の
精度を使用することである。出力値が、Dビットのダイ
ナミックレンジを有し、Lビットが、最終ステージで破
棄される場合に、フィルタリングの最終ステージの出力
は、D+L+1ビットまでを占めることができ、この1
つの余分なビットは、アンダーフローおよびオーバーフ
ローのシグナリングに使用される。逆方向に進んで、フ
ィルタリングの最終ステージが、kビットの拡大をもた
らす場合に、最終ステージの入力は、D+L−k以内で
なければならない。したがって、Wビット表現で最大の
精度を保つために、下記の関係が存在する。 D+L+1=W (38)
−k=W−k−1ビットでなければならない。
番目のステージに再帰的に適用することができ、以下同
様である。実際に、フラクショナルビットを使用して非
2k範囲および拡大要因を表現することによって、上下
の限界を狭めることができる。
明したが、複数ステージ補間に別々に適用可能でもあ
る、さまざまな技法を示す図である。図12から図15
には、めいめいの複数ステージ補間(1200、130
0、1400、1500)を、他の複数ステージ補間技
法と共に使用することができるさまざまな形は示されて
いない。
つのステージが示されているが、図12から図15に示
された複数ステージ補間(1200、1300、140
0、1500)技法に、より多くのステージを含めるこ
とができる。より一般的には、複数ステージ補間(12
00、1300、1400、1500)技法を、複数の
次元の任意のタイプの分離可能なフィルタならびにカス
ケード構造、トレリス構造、または格子構造で実施され
る任意のフィルタを用いて実施することができる。
使用される一般化された入力値、出力値、およびフィル
タを示す。第1ステージの入力値、最終ステージの出力
値、および中間値のビット深さの特定の選択は、ターゲ
ットのアーキテクチャまたはアプリケーションの技術的
仕様に従って任意に拡張することができる。たとえば、
入力値を、基準フレームの整数ピクセル位置の8ビット
ピクセル値とし、出力値を、基準フレームのサブピクセ
ル位置の8ビットピクセル値とし、フィルタを、標準の
双三次フィルタおよび近似双三次フィルタ(図6から図
8に関して上で説明したもの)とすることができる。代
替案では、入力値および/または出力値が、異なるビッ
ト深さのダイナミックレンジを有するか、または異なる
フィルタが使用される。
エンコーダまたはデコーダなどのコンポーネントが、複
数ステージ補間(1200、1300、1400、15
00)を実行することができる。代替案では、別のエン
コーダまたはデコーダ、あるいは別のタイプのコンポー
ネントが、複数ステージ補間(1200、1300、1
400、1500)を実行することができる。
張されたダイナミックレンジ(ビット単位)を有する複
数ステージ補間(1200)の図を示す。第1ステージ
(1210)で、コンポーネントが、1つまたは複数の
xビット範囲の入力値(1211)に第1フィルタF1
を適用し(1212)、1つまたは複数のyビット範囲
の中間値(1220)を作る。ここで、yはxより大き
い。たとえば、yビット中間値は、8ビットより大きい
ダイナミックレンジを有するピクセル値であり、xビッ
ト入力値は、8ビットのダイナミックレンジを有する。
上の中間ステージ(1222)のそれぞれで、コンポー
ネントが、yビット範囲の中間値(1220)にフィル
タを適用する。中間ステージからの出力は、1つまたは
複数のzビット範囲の中間値(1229)であり、ここ
で、zはxより大きい(図12から図15では、最終ス
テージが第2ステージである場合に、第1ステージから
出力される中間値が、最終ステージへの入力中間値であ
る)。
ントが、1つまたは複数のzビット範囲の中間値(12
29)に最終フィルタFLを適用する(1232)。最
終的な出力は、xビット範囲の出力値(1234)であ
る。複数ステージ補間(1200、1300、140
0、1500)技法のそれぞれについて、必要な場合
に、コンポーネントは、追加の出力値について複数ステ
ージ補間(1200、1300、1400、1500)
を繰り返す。繰り返される補間では、コンポーネント
が、前の補間で計算されたある中間値を再利用すること
ができる。
る複数ステージ補間技法(1300)の図を示す。クラ
ンプの延期によって、たとえば、コンポーネントがもは
や範囲の上下界に対して各中間値を検査しないので、計
算が高速になる。延期されたクランプによって、中間値
の精度も保たれる。
ントが、1つまたは複数のxビット範囲の入力値(13
11)に第1フィルタF1を適用する(1312)。第
1フィルタF1の適用の後に、クランプは実行されな
い。したがって、第1フィルタF1から出力される1つ
または複数の中間値(1320)が、xビットを超える
ダイナミックレンジを有する場合がある。たとえば、入
力値が、8ビット値であり、第1フィルタF1からの出
力が、第1フィルタF1の係数によって導入される膨張
係数(expansion factor)に起因し
て、9ビットまたはそれ以上のダイナミックレンジを有
する。
上の中間ステージ(1322)のそれぞれで、コンポー
ネントが、1つまたは複数のクランプされていない中間
値(1320)にフィルタを適用する。クランプを、0
または1個以上の中間ステージ(1322)でスキップ
することもできる。0または1個以上の中間ステージ
(1322)から出力された中間値(1329)が、最
終ステージ(1330)に入力され、このステージで、
コンポーネントが値(1329)に最終フィルタFLを
適用する(1322)。最終フィルタFLからの最終的
な出力が、クランプされ(1334)、xビット範囲の
値(1336)が出力される。
る複数ステージ補間(1400)の図を示す。第1ステ
ージ(1410)で、コンポーネントが、1つまたは複
数のxビット範囲の入力値(1411)に第1フィルタ
F1を適用する(1412)。第1フィルタF1の適用
と共にまたはその後に、短縮されたシフト(1414)
を実行する。短縮されたシフト(1414)は、xビッ
ト範囲の出力値を保証するのに必要なシフトより少なく
(第1フィルタF1の係数の拡大要因に鑑みて)、した
がって、第1フィルタF1に通常関連するシフトより少
ない。したがって、短縮されたシフト(1414)によ
って、xビットより大きいダイナミックレンジ(yビッ
トの)を有する1つまたは複数の中間値が作られる。た
とえば、入力値が、8ビットのダイナミックレンジを有
し、中間値が、8ビットを超えるダイナミックレンジを
有する。
上の中間ステージ(1422)のそれぞれで、コンポー
ネントが、1つまたは複数の中間値(1420)にフィ
ルタを適用する。zビット(xビットより大きい)のダ
イナミックレンジを有する1つまたは複数の中間値(1
429)が、0または1個以上の中間ステージ(142
2)から出力され、最終ステージ(1430)で、コン
ポーネントが、値(1429)に最終フィルタFLを適
用する(1432)。最終フィルタFLからの最終的な
出力が、最終フィルタFLに通常関連するものより多い
量だけシフトされ(1434)、これによって、出力値
(1436)のダイナミックレンジが、指定されたビッ
ト深さに制限される。たとえば、出力値(1436)の
ダイナミックレンジ(ビット単位)が、xまたはx+1
と等しい。一実施形態では、第1ステージおよびすべて
の中間ステージのシフトが、最終ステージまで、できる
限り延期される。シフトが延期される量は、中間計算に
使用可能なビット深さと、めいめいのフィルタの拡大要
因に依存する可能性がある。
御を使用する複数ステージ補間技法(1500)を示
す。補間技法(1500)の複数のステージは、丸め制
御を適用して丸めを調整する形において交互に変える。
これは、あるビデオシーケンス内のフレームからフレー
ムへと丸め誤差が累積されるのを防ぐのに役立つ。たと
えば、低品質ビデオシーケンスに、1次元(パン)また
は2次元(ズーム)の漸進的な動きが含まれる場合に、
丸め誤差の累積によって、フレームからフレームへの漸
進的な退色(color fading)がもたらされ
る可能性があり、これによって、知覚可能なアーチファ
クトが引き起こされる可能性がある。ステージで交互に
変える丸め制御は、そのような退色を防ぐのに役立つ。
ジで交互に変える丸め制御が適用される丸めを示すのに
役立つ可能性がある。右ビットシフトは、本質的に、右
シフトされる値の除算および切捨をもたらす。シフトの
前に丸め値を加算することによって、シフトされる値
が、必ず切り下げられる(切捨)のではなく、上または
下に(最も近い整数に)丸められるようになる。丸め制
御を使用することによって、限界の値について丸めの方
向(上または下)が変更される。たとえば、複数ステー
ジのそれぞれで、フィルタリングの出力が、右シフトの
前に右シフトの「除数」の1/2を加算する(たとえ
ば、5ビット右シフトの前に24=16を加算する、7
ビット右シフトの前に26=64を加算する)ことによ
って調整されると仮定する。この加算の効果は、0.5
またはそれ以上の小数成分を有する値が(ビットシフト
に対応する除算の後に)(次に大きい整数に)切り上げ
られることである。そのような値は、そうでなければ右
シフトによって(次に小さい整数に)切り捨てられる。
加算にかかわらず、0.5未満の小数成分を有する値は
(ビットシフトに対応する除算の後に)、まだ右シフト
によって(次に小さい整数に)切り捨てられる。丸め制
御によって、ある限界の値の丸めの方向が変更される。
たとえば、複数ステージのそれぞれで、フィルタリング
の出力が、右シフトの前に0または1(交互に変える丸
め制御値)を減算することによって、さらに調整される
(たとえば、2shiftV−1または2
shiftV−1−1)。丸め制御調整の効果は、0.
5の小数成分を有する(ビットシフトに対応する除算の
後に)値の丸めの方向が変更されることである。1が減
算される場合に、そのような限界の値が、切り下げられ
る。そうでない場合には、そのような限界の値が、切り
上げられる。
ジ補間の前に、0と1の間で交互に変える丸め制御値が
使用され、したがって、異なるステージで、丸め制御値
が適用される形が交互に変わる。代替案では、複数ステ
ージ補間技法(1500)で、それ自体がステージから
ステージへ交互に変わる丸め制御値が使用される。
ンポーネントが、1つまたは複数のxビット範囲の入力
値(1511)に第1フィルタF1を適用する(151
2)。第1フィルタF1の適用と共にまたはその後に、
丸め(1514)が、第1フィルタF1からの出力に対
して実行される。丸め(1514)は、ステージで交互
に変える丸め制御によって調整される。たとえば、第1
ステージ(1510)で、ステージで交互に変える丸め
制御によって、出力値が限界の値(そうでなければ出力
値が下に丸められる)である場合に、出力値が最も近い
整数に向けて上に丸められるようになる。1つまたは複
数の丸められた中間値(1520)が、第1ステージか
ら第2ステージ(1530)へ出力される。
ネントが、1つまたは複数の中間値(1520)に第2
フィルタF2を適用する(1532)。丸め(153
4)が、第2フィルタF2からの出力に対して実行され
る。第2フィルタF2の適用と共にまたはその後に、丸
め(1534)が、ステージで交互に変える丸め制御を
用いて実行され、この丸め制御によって、限界の値につ
いて第1ステージと反対の方向の丸めが行われるように
なる。たとえば、第2ステージ(1530)で、ステー
ジで交互に変える丸め制御によって、出力値が限界の値
である場合に、出力値が、最も近い整数に向かって下に
丸められるようになる。1つまたは複数の中間値(15
36)が、第2ステージから出力され、0または1個以
上の追加ステージ(1540)でこれらを使用すること
ができる。0または1個以上の追加ステージ(154
0)に、さらに、ステージで交互に変える丸め制御を含
めることができる。
ジでの適用に制限されるのではなく、ステージのさまざ
まな他の組合せで適用することができる。さらに、第1
方向を、複数のパラメータに依存するものとすることが
できる。たとえば、ビデオエンコーダまたはビデオデコ
ーダで、第1方向を、前のフレームで使用されれた丸め
制御または補間されるフレームのタイプ(たとえば、I
フレーム、Pフレーム、またはBフレーム)に依存する
ものとすることができる。他の実施形態では、第1方向
に、臨時情報(casual informatio
n)(たとえば、過去にコーディング/デコーディング
された情報)から暗黙のうちに導出されるか、擬似乱数
ジェネレータを使用して導出されるか、ビットストリー
ムの一部としてシグナリングされる、定数をセットする
ことができる。ステージで交互に変える丸め制御は、双
一次フィルタ、双三次フィルタ、および近似双三次フィ
ルタを含む、さまざまな補間フィルタのどれかを使用し
て複数ステージ補間に適用することができる。
度動きベクトルから暗黙のうちに導出されるので、その
精度は、限られ、単純化のスコープが提供される。この
単純化では、コーディングされるビデオの知覚される質
を大きく落とさずに、エンコーダおよびデコーダでのク
ロミナンス値のサブピクセル補間の計算的複雑さを減ら
すことができる。さらに、エンコーダおよびデコーダ
を、クロミナンス動きベクトルの丸めおよび補間の異な
るモードの間で切り替えることができる。たとえば、あ
るモードでは、より高い計算的複雑さと引き換えに、コ
ーディングされるビデオの品質を際立たせる。別のモー
ドでは、品質を多少犠牲にして、計算的単純さを際立た
せる。
ビデオデコーダで、シーケンスレベルの1ビットフィー
ルド「FASTUVMC」を使用して、クロミナンス値
のサブピクセル補間およびクロミナンス動きベクトルの
丸めを制御する。したがって、ビデオエンコーダおよび
ビデオデコーダは、2つの異なるクロミナンス丸めモー
ドすなわち、高速モードと基本モードの1つで選択的に
動作する。
補間モードの間での選択の技法(1600)を示す。た
とえば、それぞれ上で図4および図5に関して説明した
ものなどのビデオエンコーダまたはビデオデコーダが、
この技法を実行する。
は、1ビットフラグFASTUVMCによって、高速ク
ロミナンス動き補償モード(フラグ=1)または基本ク
ロミナンス動き補償モード(フラグ=0)のどちらが示
されるかを判定する(1610)。たとえば、このフラ
グは、エンコーダがコーディングされるビデオのビット
ストリームに書き込み、デコーダがビットストリームか
ら読み取る、ユーザ設定に対応するシーケンスレベルの
フィールドである。代替案では、エンコーダおよびデコ
ーダが、より多くのビットを使用して、たとえば2つよ
り多い使用可能なモードの間で選択するために、固定さ
れた長さまたは可変長さのコードを使用してクロミナン
ス丸めおよび/または補間モードをシグナリングする。
あるいは、ユーザ設定に対応するシーケンスレベルのフ
ィールではなく、切替情報が、ビットストリーム内の他
所でシグナリングされ、かつ/または異なる判断基準に
従ってセットされる。
は、基本モード(1620)または高速モード(163
0)でクロミナンス動き補償を実行する。基本モード
(1620)および高速モード(1630)の動きベク
トルの丸めおよび補間の詳細は、一実施形態について以
下に示す。代替案では、これらのモードが、異なる実施
形態を有する。たとえば、以下で説明する高速モード
(1630)実施形態で使用されるルックアップテーブ
ルを、特定のハードウェアアーキテクチャの所望の性能
レベルをもたらすために異なるマッピングに変更する
か、または異なる精度の動きベクトルについて動作する
ように変更する。基本モード(1620)および高速モ
ード(1630)の代わりにまたはこれに加えて、エン
コーダまたはデコーダで、クロミナンス動きベクトルの
丸めおよび補間の他のモードを使用することができる。
ば、クロミナンス丸めフラグ=1の場合)、1/4ピク
セルオフセットにある(すなわち、1/4ピクセルオフ
セットおよび3/4ピクセルオフセット)クロミナンス
動きベクトルが、最も近いフルピクセル位置に丸めら
れ、1/2ピクセルオフセットにあるクロミナンス動き
ベクトルが、丸められないままにされ、双一次フィルタ
リングが、クロミナンス補間に使用される。このモード
では、エンコーダおよびデコーダの速度が高くなる。こ
の最適化の動機は、(a)整数ピクセル位置、(b)1
/2ピクセル位置、(c)少なくとも1つの座標(xま
たはy)について1/4ピクセル位置、および(d)両
方の座標について1/4ピクセル位置にあるピクセルオ
フセット補間の複雑さの間の大きな相違である。a:
b:c:dの比率は、おおむね1:4:4.7:6.6
である。この高速モードを適用することによって、
(a)および(b)を優先することができ、したがっ
て、デコーディング時間を削減することができる。これ
は、クロミナンス補間だけについて実行されるので、コ
ーディングおよび品質(特に可視の品質)の消失は、ど
ちらも無視してよい。
ルが、下記のようにクロミナンス動きベクトルに対して
行われる。
1/4ピクセル単位のクロミナンス動きベクトルのx座
標およびy座標であり、%は、剰余(または余り)演算
を表し、したがって、(x%a)=−(−x%a)と定
義される(負の数の剰余は、対応する正の数の剰余の負
数と等しい)。したがって、cmv_x(またはcmv
_y)が、4によって割られるときに、クロミナンス動
きベクトルが、整数オフセットを有する。cmv_x%
4=±2のときに、クロミナンス動きベクトルが、1/
2ピクセルオフセットを有する。cmv_x%4=±1
または±3のときに、クロミナンス動きベクトルが、1
/4ピクセルオフセットを有する。上の再マッピング動
作からわかるように、1/4ピクセル位置は、クロミナ
ンス動きベクトルを最も近い整数位置に丸めることによ
って禁止される(1/2ピクセル位置は変更されないま
まになる)。したがって、このモードによって、クロミ
ナンス座標が整数ピクセル位置および1/2ピクセル位
置に再マッピングされる。双一次フィルタリングを、さ
らなる高速化のためにこのモードのクロミナンス補間の
すべてに使用することができる。この高速モード実施形
態を、複数の丸めモードの間の選択と組み合わせて説明
したが、その代わりに、高速モード実施形態を独立に
(すなわち、唯一の可能なモードとして)使用すること
ができる。
ードを示す表図(1700)である。第1行(171
0)に、1/4ピクセル精度の輝度動きベクトル値が示
されている。輝度動きベクトル値は、整数ピクセル位置
からの小数オフセットに関して示されているが、これら
を、各整数が1/4ピクセル増分を表す整数値(すなわ
ち、0、1/4、1/2、3/4、1ではなく0、1、
2、3、4)として表現することができる。第2行(1
720)に、クロミナンス動きベクトル値が、高速モー
ドでどのように丸められ、その結果、整数ピクセル精度
および1/2ピクセル精度を有するようになるかが示さ
れている。
ば、クロミナンス丸めフラグ=0)では、1/4ピクセ
ルオフセットにあり、丸め誤差を有しないクロミナンス
動きベクトルは、1/4ピクセルオフセットのままであ
る。他のサブピクセルオフセットにあるクロミナンス動
きベクトルは、最も近いフルピクセル位置または1/2
ピクセル位置に丸められる。このモードでは、デコーダ
の速度が、他のモードより遅くなる可能性があるが、ク
ロミナンスピクセル値が計算される精度が、高くなる。
したがって、この基本モードでは、クロミナンス座標
が、整数ピクセル位置、1/2ピクセル位置、および1
/4ピクセル位置に再マッピングされる。上で説明した
双三次フィルタリングまたは双一次フィルタリングを、
クロミナンス補間に使用することができる。
ードを示す表図である。第1行(1810)に、1/4
ピクセル精度の輝度動きベクトル値が示されている。第
2行(1820)に、上で説明した基本モードで対応す
るクロミナンス動きベクトル値がどのように丸められ、
その結果、整数ピクセル精度、1/2ピクセル精度、お
よび1/4ピクセル精度を有するようになるかが示され
ている。他の実施形態では、クロミナンス空間が、クロ
ミナンス空間の他の分解能に丸められる。
を説明し、図示したが、これらのさまざまな実施形態
を、そのような原理から逸脱せずに配置および詳細にお
いてを修正できることを諒解されたい。たとえば、上で
説明した原理および技法は、ビデオエンコーダおよび/
またはビデオデコーダでの使用に制限されない。そうで
はなく、上で説明した原理および技法は、値が部分的に
1つまたは複数の中間値に基づいて計算されるか、分離
可能なフィルタが複数の次元で使用される、すべてのコ
ンピューティングの文脈で適用することができる。
たは方法が、他の形で示されない限り、特定のタイプの
コンピューティング環境に関連せず、それに制限されな
いことを理解されたい。さまざまなタイプの汎用のまた
は特殊化されたコンピューティング環境を、本明細書に
記載の教示による動作と共に使用するか、そのような環
境によって本明細書に記載の教示による動作を実行する
ことができる。ソフトウェアで示された実施形態の要素
を、ハードウェアで実施することができ、逆も同様であ
る。
の可能な実施形態に鑑みて、本発明として、請求項およ
びその同等物の範囲および趣旨に含まれるすべてのその
ような実施形態を請求する。
計算されたピクセル値を使用する動き予測の有効性が改
善される。それと同時に、近似双三次フィルタリングに
より、比較的効率的に計算を行うことができる。
を示す図である。
補償での補間に関するサブピクセル位置を示す図であ
る。
施することができる、適切なコンピューティング環境を
示すブロック図である。
一般化されたビデオエンコーダシステムを示すブロック
図である。
一般化されたビデオデコーダシステムを示すブロック図
である。
補償中のピクセル値補間に関する位置を示す図である。
値の計算に使用されるピクセル値を有する整数ピクセル
位置を示す図である。
間技法を示す図である。
ンプル位置の値を計算するのに使用されるサブピクセル
位置での中間値とを示す図である。
/2垂直1/4サンプル位置、およびそれらのサンプル
位置の値を計算するのに使用されるサブピクセル位置で
の中間値を示す図である。
サンプル位置の値を計算するのに使用されるサブピクセ
ル位置での中間値を示す図である。
位)中間値を用いる複数ステージ補間技法を示す図であ
る。
ジ補間技法を示す図である。
ジ補間技法を示す図である。
複数ステージ補間技法を示す図である。
間での選択の技法を示す流れ図である。
ある。
ある。
Claims (20)
- 【請求項1】 コンピュータシステムにおいて、コンピ
ュータ実施される方法であって、 近似双三次フィルタを使用して1/4サンプル位置での
値を計算するステップであって、前記近似双三次フィル
タは、純粋な双三次フィルタに実質的に類似して動作す
るが、純粋な双三次フィルタと異なるフィルタ係数およ
び/または前記純粋な双三次フィルタより低い分解能を
有するステップを備えることを特徴とするコンピュータ
実施される方法。 - 【請求項2】 前記近似双三次フィルタは、前記1/4
サンプル位置での前記値を計算するのに使用される唯一
のフィルタであることを特徴とする請求項1に記載の方
法。 - 【請求項3】 前記近似双三次フィルタは、フーリエ変
換を容易にする合計を有するフィルタ係数を含むことを
特徴とする請求項1に記載の方法。 - 【請求項4】 前記近似双三次フィルタは、64の合計
を有するフィルタ係数を含むことを特徴とする請求項1
に記載の方法。 - 【請求項5】 前記近似双三次フィルタは、−4、5
3、18、および−3のフィルタ係数を有することを特
徴とする請求項1に記載の方法。 - 【請求項6】 1つまたは複数の追加の1/4サンプル
位置のそれぞれについて前記計算を繰り返すステップを
さらに備えることを特徴とする請求項1に記載の方法。 - 【請求項7】 前記値はピクセル値であり、前記1/4
サンプル位置は、基準ビデオフレームにおける1/4ピ
クセル位置であることを特徴とする請求項1に記載の方
法。 - 【請求項8】 コンピュータシステムに、ビデオエンコ
ーディング中に請求項1に記載の方法を実行させるコン
ピュータ実行可能命令を記憶することを特徴とするコン
ピュータ可読媒体。 - 【請求項9】 コンピュータシステムに、ビデオデコー
ディング中に請求項1に記載の方法を実行させるコンピ
ュータ実行可能命令を記憶することを特徴とするコンピ
ュータ可読媒体。 - 【請求項10】 それによってプログラムされるコンピ
ュータシステムに、複数の基準ビデオフレームにおける
サブピクセル補間のコンピュータ実施される方法を実行
させるコンピュータ実行可能命令を記憶するコンピュー
タ可読媒体であって、前記方法は、 複数のサブピクセル位置のそれぞれで、前記近似双三次
フィルタを使用してピクセル値を計算するステップであ
って、第1基準ビデオフレームにおける複数のサブピク
セル位置のそれぞれについて2ステージ補間の少なくと
も1つのステージで近似双三次フィルタを使用するステ
ップを含むステップを備えることを特徴とするコンピュ
ータ可読媒体。 - 【請求項11】 前記計算は、第2基準ビデオフレーム
における複数のサブピクセル位置のそれぞれについて、
単一ステージ補間で前記近似双三次フィルタを使用する
ことをさらに備えることを特徴とする請求項10に記載
のコンピュータ可読媒体。 - 【請求項12】 前記少なくとも1つのステージは、前
記2ステージ補間の両方のステージを含むことを特徴と
する請求項10に記載のコンピュータ可読媒体。 - 【請求項13】 前記複数のサブピクセル位置は、少な
くとも1つの次元での1/4ピクセル位置であることを
特徴とする請求項10に記載のコンピュータ可読媒体。 - 【請求項14】 前記近似双三次フィルタは、双三次様
の動作を有するが、純粋な双三次フィルタと異なるフィ
ルタ係数および/または純粋な双三次フィルタより低い
分解能を有することを特徴とする請求項10に記載のコ
ンピュータ可読媒体。 - 【請求項15】 前記近似双三次フィルタは、64の合
計を有するフィルタ係数を含むことを特徴とする請求項
10に記載のコンピュータ可読媒体。 - 【請求項16】 前記近似双三次フィルタは、−4、5
3、18、および−3のフィルタ係数を有することを特
徴とする請求項10に記載のコンピュータ可読媒体。 - 【請求項17】 前記近似双三次フィルタは、4つのフ
ィルタ係数を有することを特徴とする請求項10に記載
のコンピュータ可読媒体。 - 【請求項18】 近似双三次フィルタを使用して基準ビ
デオフレームにおける1/4ピクセル位置でのピクセル
値を計算する手段であって、前記近似双三次フィルタ
は、双三次様の動作を有するが、純粋な双三次フィルタ
より低い分解能を有する手段と、 前記基準ビデオフレームに関する動き補償を実行する手
段とを備えることを特徴とするシステム。 - 【請求項19】 前記近似双三次フィルタは、64の合
計を有するフィルタ係数を含むことを特徴とする請求項
18に記載のシステム。 - 【請求項20】 前記近似双三次フィルタは、−4、5
3、18、および−3のフィルタ係数を有することを特
徴とする請求項18に記載のシステム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37186002P | 2002-04-10 | 2002-04-10 | |
US60/371,860 | 2002-04-10 | ||
US10/379,606 US7110459B2 (en) | 2002-04-10 | 2003-03-04 | Approximate bicubic filter |
US10/379,606 | 2003-03-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003333603A true JP2003333603A (ja) | 2003-11-21 |
JP4625240B2 JP4625240B2 (ja) | 2011-02-02 |
Family
ID=28794436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003107078A Expired - Lifetime JP4625240B2 (ja) | 2002-04-10 | 2003-04-10 | コンピュータ実施される方法、システムおよびコンピュータ可読媒体 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7110459B2 (ja) |
EP (1) | EP1359763B1 (ja) |
JP (1) | JP4625240B2 (ja) |
KR (1) | KR100681972B1 (ja) |
CN (1) | CN1238798C (ja) |
AT (1) | ATE350860T1 (ja) |
DE (1) | DE60310800T2 (ja) |
ES (1) | ES2278087T3 (ja) |
HK (1) | HK1060242A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007114368A1 (ja) * | 2006-03-30 | 2007-10-11 | Kabushiki Kaisha Toshiba | 画像符号化装置及び方法並びに画像復号化装置及び方法 |
WO2007116551A1 (ja) * | 2006-03-30 | 2007-10-18 | Kabushiki Kaisha Toshiba | 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法 |
JP2008547323A (ja) * | 2005-06-20 | 2008-12-25 | フレックストロニックス・インターナショナル・ユーエスエー・インコーポレーテッド | 高度なビデオエンコーダにおける補間値の再使用方法 |
JP2010087984A (ja) * | 2008-10-01 | 2010-04-15 | Ntt Docomo Inc | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、及び動画像符号化・復号システム |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620109B2 (en) * | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
JP4102973B2 (ja) * | 2002-04-24 | 2008-06-18 | 日本電気株式会社 | 動画像の符号化方法および復号化方法、これを用いた装置とプログラム |
WO2004030369A1 (en) * | 2002-09-27 | 2004-04-08 | Videosoft, Inc. | Real-time video coding/decoding |
US7869516B2 (en) * | 2003-03-31 | 2011-01-11 | Hewlett-Packard Development Company, L.P. | Motion estimation using bit-wise block comparisons for video compresssion |
US8824553B2 (en) * | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
EP1617672A1 (en) * | 2004-07-13 | 2006-01-18 | Matsushita Electric Industrial Co., Ltd. | Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter |
US7512182B2 (en) * | 2004-08-30 | 2009-03-31 | General Instrument Corporation | Method and apparatus for performing motion compensated temporal filtering in video encoding |
FR2876860A1 (fr) * | 2004-10-20 | 2006-04-21 | Thomson Licensing Sa | Procede de codage hierarchique d'images video |
US7893944B2 (en) | 2005-10-14 | 2011-02-22 | Samsung Electronics Co., Ltd. | Gamut mapping and subpixel rendering systems and methods |
CN1794821A (zh) * | 2006-01-11 | 2006-06-28 | 浙江大学 | 可分级视频压缩中插值的方法与装置 |
US8208553B2 (en) * | 2006-05-04 | 2012-06-26 | Altera Corporation | Methods and apparatus for quarter-pel refinement in a SIMD array processor |
WO2008068623A2 (en) * | 2006-12-01 | 2008-06-12 | France Telecom | Adaptive interpolation method and system for motion compensated predictive video coding and decoding |
US7529404B2 (en) * | 2007-06-20 | 2009-05-05 | Ahdoot Ned M | Digital video filter and image processing |
US8023562B2 (en) | 2007-09-07 | 2011-09-20 | Vanguard Software Solutions, Inc. | Real-time video coding/decoding |
GB0800277D0 (en) * | 2008-01-08 | 2008-02-13 | Imagination Tech Ltd | Video motion compensation |
US8638852B2 (en) | 2008-01-08 | 2014-01-28 | Qualcomm Incorporated | Video coding of filter coefficients based on horizontal and vertical symmetry |
US20090201380A1 (en) * | 2008-02-12 | 2009-08-13 | Decisive Analytics Corporation | Method and apparatus for streamlined wireless data transfer |
US8326075B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video encoding using adaptive loop filter |
US8131056B2 (en) * | 2008-09-30 | 2012-03-06 | International Business Machines Corporation | Constructing variability maps by correlating off-state leakage emission images to layout information |
US8315434B2 (en) * | 2009-01-06 | 2012-11-20 | Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. | Absolute tracking in a sub-pixel range |
US20100235314A1 (en) * | 2009-02-12 | 2010-09-16 | Decisive Analytics Corporation | Method and apparatus for analyzing and interrelating video data |
US8458105B2 (en) * | 2009-02-12 | 2013-06-04 | Decisive Analytics Corporation | Method and apparatus for analyzing and interrelating data |
WO2010126783A2 (en) * | 2009-04-30 | 2010-11-04 | Roman Gitlin | Method and apparatus for streamlined implementation of interpolation in multiple dimensions |
WO2011100347A2 (en) | 2010-02-09 | 2011-08-18 | Vanguard Software Solutions, Inc. | Video sequence encoding system and algorithms |
KR101682147B1 (ko) * | 2010-04-05 | 2016-12-05 | 삼성전자주식회사 | 변환 및 역변환에 기초한 보간 방법 및 장치 |
US9049454B2 (en) | 2011-01-19 | 2015-06-02 | Google Technology Holdings Llc. | High efficiency low complexity interpolation filters |
US20120224639A1 (en) * | 2011-03-03 | 2012-09-06 | General Instrument Corporation | Method for interpolating half pixels and quarter pixels |
US8437581B2 (en) | 2011-03-04 | 2013-05-07 | General Instrument Corporation | Method and system for interpolating fractional video pixels |
US9313519B2 (en) | 2011-03-11 | 2016-04-12 | Google Technology Holdings LLC | Interpolation filter selection using prediction unit (PU) size |
US8781004B1 (en) | 2011-04-07 | 2014-07-15 | Google Inc. | System and method for encoding video using variable loop filter |
US8780971B1 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method of encoding using selectable loop filters |
US8780996B2 (en) | 2011-04-07 | 2014-07-15 | Google, Inc. | System and method for encoding and decoding video data |
CN102811346B (zh) * | 2011-05-31 | 2015-09-02 | 富士通株式会社 | 编码模式选择方法和系统 |
EP2724534A2 (en) | 2011-06-24 | 2014-04-30 | Motorola Mobility LLC | Selection of phase offsets for interpolation filters for motion compensation |
BR112013033743A2 (pt) | 2011-07-01 | 2019-09-24 | Motorola Mobility Inc | filtro de interpolação de subpixel conjunto para predição temporal |
US8885706B2 (en) | 2011-09-16 | 2014-11-11 | Google Inc. | Apparatus and methodology for a video codec system with noise reduction capability |
JP2013098933A (ja) * | 2011-11-04 | 2013-05-20 | Sony Corp | 画像処理装置および方法 |
WO2013074964A1 (en) | 2011-11-16 | 2013-05-23 | Vanguard Software Solutions, Inc. | Video compression for high efficiency video coding |
US9131073B1 (en) | 2012-03-02 | 2015-09-08 | Google Inc. | Motion estimation aided noise reduction |
US9344729B1 (en) | 2012-07-11 | 2016-05-17 | Google Inc. | Selective prediction signal filtering |
US20140119446A1 (en) * | 2012-11-01 | 2014-05-01 | Microsoft Corporation | Preserving rounding errors in video coding |
US9185437B2 (en) | 2012-11-01 | 2015-11-10 | Microsoft Technology Licensing, Llc | Video data |
US9106922B2 (en) | 2012-12-19 | 2015-08-11 | Vanguard Software Solutions, Inc. | Motion estimation engine for video encoding |
WO2014163454A1 (ko) * | 2013-04-05 | 2014-10-09 | 삼성전자주식회사 | 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치 |
US9762920B2 (en) * | 2013-06-07 | 2017-09-12 | Qualcomm Incorporated | Dynamic range control of intermediate data in resampling process |
US10015515B2 (en) * | 2013-06-21 | 2018-07-03 | Qualcomm Incorporated | Intra prediction from a predictive block |
TWI602144B (zh) * | 2013-10-02 | 2017-10-11 | 國立成功大學 | 包裝彩色圖框及原始景深圖框之方法、裝置及系統 |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
US9942560B2 (en) | 2014-01-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Encoding screen capture data |
US9774881B2 (en) | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US9883197B2 (en) | 2014-01-09 | 2018-01-30 | Qualcomm Incorporated | Intra prediction of chroma blocks using the same vector |
US10863200B2 (en) * | 2014-07-25 | 2020-12-08 | Intel Corporation | Techniques for performing a forward transformation by a video encoder using a forward transform matrix |
US10102613B2 (en) | 2014-09-25 | 2018-10-16 | Google Llc | Frequency-domain denoising |
JP6473608B2 (ja) | 2014-11-27 | 2019-02-20 | 三星ディスプレイ株式會社Samsung Display Co.,Ltd. | 画像処理装置、画像処理方法、及びプログラム |
WO2016147836A1 (ja) * | 2015-03-13 | 2016-09-22 | ソニー株式会社 | 画像処理装置および方法 |
US10009622B1 (en) | 2015-12-15 | 2018-06-26 | Google Llc | Video coding with degradation of residuals |
CN106127757B (zh) * | 2016-06-21 | 2018-10-23 | 鲁东大学 | 基于改进遗传算法的夜晚安防监控视频分割方法及装置 |
FR3087309B1 (fr) * | 2018-10-12 | 2021-08-06 | Ateme | Optimisation d'un sous-echantillonnage intervenant avant le codage d'images en compression |
US11102487B2 (en) * | 2019-08-30 | 2021-08-24 | Adobe Inc. | Image resampling for DCT based image encoding formats using memory efficient techniques |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3854337T2 (de) * | 1987-06-09 | 1996-02-01 | Sony Corp | Bewegungskompensierte Interpolation von digitalen Fernsehbildern. |
US5103306A (en) * | 1990-03-28 | 1992-04-07 | Transitions Research Corporation | Digital image compression employing a resolution gradient |
US5594813A (en) * | 1992-02-19 | 1997-01-14 | Integrated Information Technology, Inc. | Programmable architecture and methods for motion estimation |
JPH06343172A (ja) * | 1993-06-01 | 1994-12-13 | Matsushita Electric Ind Co Ltd | 動きベクトル検出方法及び動きベクトル符号化方法 |
US5623311A (en) * | 1994-10-28 | 1997-04-22 | Matsushita Electric Corporation Of America | MPEG video decoder having a high bandwidth memory |
EP0710033A3 (en) * | 1994-10-28 | 1999-06-09 | Matsushita Electric Industrial Co., Ltd. | MPEG video decoder having a high bandwidth memory |
GB2301972B (en) * | 1995-06-06 | 1999-10-20 | Sony Uk Ltd | Video compression |
US6026182A (en) * | 1995-10-05 | 2000-02-15 | Microsoft Corporation | Feature segmentation |
US5929940A (en) * | 1995-10-25 | 1999-07-27 | U.S. Philips Corporation | Method and device for estimating motion between images, system for encoding segmented images |
US5991463A (en) * | 1995-11-08 | 1999-11-23 | Genesis Microchip Inc. | Source data interpolation method and apparatus |
US5692063A (en) * | 1996-01-19 | 1997-11-25 | Microsoft Corporation | Method and system for unrestricted motion estimation for video |
US5787203A (en) * | 1996-01-19 | 1998-07-28 | Microsoft Corporation | Method and system for filtering compressed video images |
US5799113A (en) * | 1996-01-19 | 1998-08-25 | Microsoft Corporation | Method for expanding contracted video images |
US6957350B1 (en) * | 1996-01-30 | 2005-10-18 | Dolby Laboratories Licensing Corporation | Encrypted and watermarked temporal and resolution layering in advanced television |
US5982438A (en) * | 1996-03-22 | 1999-11-09 | Microsoft Corporation | Overlapped motion compensation for object coding |
US6233017B1 (en) * | 1996-09-16 | 2001-05-15 | Microsoft Corporation | Multimedia compression system with adaptive block sizes |
US6130963A (en) * | 1996-11-22 | 2000-10-10 | C-Cube Semiconductor Ii, Inc. | Memory efficient decoding of video frame chroma |
US6377628B1 (en) * | 1996-12-18 | 2002-04-23 | Thomson Licensing S.A. | System for maintaining datastream continuity in the presence of disrupted source data |
US6005980A (en) * | 1997-03-07 | 1999-12-21 | General Instrument Corporation | Motion estimation and compensation of video object planes for interlaced digital video |
US5844613A (en) * | 1997-03-17 | 1998-12-01 | Microsoft Corporation | Global motion estimator for motion video signal encoding |
US5973755A (en) * | 1997-04-04 | 1999-10-26 | Microsoft Corporation | Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms |
US6067322A (en) * | 1997-06-04 | 2000-05-23 | Microsoft Corporation | Half pixel motion estimation in motion video signal encoding |
DE69808519T2 (de) * | 1997-06-09 | 2003-06-26 | Hitachi, Ltd. | Verfahren zur Bildsequenzcodierung |
JPH1169345A (ja) * | 1997-06-11 | 1999-03-09 | Fujitsu Ltd | フレーム間予測動画像符号化装置及び復号装置並びにフレーム間予測動画像符号化方法及び復号方法 |
FR2766946B1 (fr) * | 1997-08-04 | 2000-08-11 | Thomson Multimedia Sa | Procede et dispositif de pretraitement pour estimation de mouvement |
US6281942B1 (en) * | 1997-08-11 | 2001-08-28 | Microsoft Corporation | Spatial and temporal filtering mechanism for digital motion video signals |
US6122017A (en) * | 1998-01-22 | 2000-09-19 | Hewlett-Packard Company | Method for providing motion-compensated multi-field enhancement of still images from video |
JP4026238B2 (ja) * | 1998-07-23 | 2007-12-26 | ソニー株式会社 | 画像復号装置及び画像復号方法 |
GB2343579A (en) | 1998-11-07 | 2000-05-10 | Ibm | Hybrid-linear-bicubic interpolation method and apparatus |
US6418166B1 (en) * | 1998-11-30 | 2002-07-09 | Microsoft Corporation | Motion estimation and block matching pattern |
US6983018B1 (en) | 1998-11-30 | 2006-01-03 | Microsoft Corporation | Efficient motion vector coding for video compression |
US6320593B1 (en) * | 1999-04-20 | 2001-11-20 | Agilent Technologies, Inc. | Method of fast bi-cubic interpolation of image information |
US7206453B2 (en) | 2001-05-03 | 2007-04-17 | Microsoft Corporation | Dynamic filtering for lossy compression |
US6950469B2 (en) | 2001-09-17 | 2005-09-27 | Nokia Corporation | Method for sub-pixel value interpolation |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
US7277587B2 (en) * | 2002-04-26 | 2007-10-02 | Sharp Laboratories Of America, Inc. | System and method for lossless video coding |
-
2003
- 2003-03-04 US US10/379,606 patent/US7110459B2/en active Active
- 2003-03-27 DE DE60310800T patent/DE60310800T2/de not_active Expired - Lifetime
- 2003-03-27 ES ES03007021T patent/ES2278087T3/es not_active Expired - Lifetime
- 2003-03-27 EP EP03007021A patent/EP1359763B1/en not_active Expired - Lifetime
- 2003-03-27 AT AT03007021T patent/ATE350860T1/de not_active IP Right Cessation
- 2003-04-09 KR KR1020030022411A patent/KR100681972B1/ko active IP Right Grant
- 2003-04-10 JP JP2003107078A patent/JP4625240B2/ja not_active Expired - Lifetime
- 2003-04-10 CN CNB031103774A patent/CN1238798C/zh not_active Expired - Lifetime
-
2004
- 2004-05-03 HK HK04103091A patent/HK1060242A1/xx not_active IP Right Cessation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008547323A (ja) * | 2005-06-20 | 2008-12-25 | フレックストロニックス・インターナショナル・ユーエスエー・インコーポレーテッド | 高度なビデオエンコーダにおける補間値の再使用方法 |
WO2007114368A1 (ja) * | 2006-03-30 | 2007-10-11 | Kabushiki Kaisha Toshiba | 画像符号化装置及び方法並びに画像復号化装置及び方法 |
WO2007116551A1 (ja) * | 2006-03-30 | 2007-10-18 | Kabushiki Kaisha Toshiba | 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法 |
AU2007232828B2 (en) * | 2006-03-30 | 2011-03-10 | Kabushiki Kaisha Toshiba | Image coding apparatus and method, and image decoding apparatus and method |
JP5254004B2 (ja) * | 2006-03-30 | 2013-08-07 | 株式会社東芝 | 画像符号化装置及び方法 |
US8606028B2 (en) | 2006-03-30 | 2013-12-10 | Kabushiki Kaisha Toshiba | Pixel bit depth conversion in image encoding and decoding |
JP2010087984A (ja) * | 2008-10-01 | 2010-04-15 | Ntt Docomo Inc | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、及び動画像符号化・復号システム |
US8879627B2 (en) | 2008-10-01 | 2014-11-04 | Ntt Docomo, Inc. | Moving image encoding apparatus, moving image decoding apparatus, moving image encoding method, moving image decoding method, moving image encoding program, moving image decoding program, and moving image encoding/ decoding system |
Also Published As
Publication number | Publication date |
---|---|
EP1359763B1 (en) | 2007-01-03 |
CN1456992A (zh) | 2003-11-19 |
US20030194009A1 (en) | 2003-10-16 |
DE60310800T2 (de) | 2007-04-26 |
CN1238798C (zh) | 2006-01-25 |
ES2278087T3 (es) | 2007-08-01 |
JP4625240B2 (ja) | 2011-02-02 |
KR100681972B1 (ko) | 2007-02-15 |
DE60310800D1 (de) | 2007-02-15 |
US7110459B2 (en) | 2006-09-19 |
ATE350860T1 (de) | 2007-01-15 |
KR20030081115A (ko) | 2003-10-17 |
EP1359763A3 (en) | 2004-08-11 |
EP1359763A2 (en) | 2003-11-05 |
HK1060242A1 (en) | 2004-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4625240B2 (ja) | コンピュータ実施される方法、システムおよびコンピュータ可読媒体 | |
JP4077354B2 (ja) | マルチステージ補間の丸め制御 | |
US7620109B2 (en) | Sub-pixel interpolation in motion estimation and compensation | |
US7116831B2 (en) | Chrominance motion vector rounding | |
JP5302010B2 (ja) | 多重解像度ビデオ符号化および復号化のための再サンプリングおよび画像サイズ変更の演算方法 | |
US20030156646A1 (en) | Multi-resolution motion estimation and compensation | |
US10721481B2 (en) | Method and apparatus for motion compensation prediction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050729 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051031 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051208 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061017 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20070116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070214 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070305 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070921 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090907 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090910 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20100521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101004 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4625240 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131112 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |