JP4741658B2 - 映像コーディングデバイスにおけるac/dc予測に関する固定小数点整数除算 - Google Patents

映像コーディングデバイスにおけるac/dc予測に関する固定小数点整数除算 Download PDF

Info

Publication number
JP4741658B2
JP4741658B2 JP2008513792A JP2008513792A JP4741658B2 JP 4741658 B2 JP4741658 B2 JP 4741658B2 JP 2008513792 A JP2008513792 A JP 2008513792A JP 2008513792 A JP2008513792 A JP 2008513792A JP 4741658 B2 JP4741658 B2 JP 4741658B2
Authority
JP
Japan
Prior art keywords
coding
prediction
lut
fixed
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008513792A
Other languages
English (en)
Other versions
JP2008543182A (ja
Inventor
シャオ、シュ
ドゥ、ジュンチェン
シェン、タオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008543182A publication Critical patent/JP2008543182A/ja
Application granted granted Critical
Publication of JP4741658B2 publication Critical patent/JP4741658B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49963Rounding to nearest
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/12Reciprocal functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Color Television Systems (AREA)

Description

本開示は、映像コーディングに関するものである。本開示は、より具体的には、MPEG−4基準及びその他の映像コーディング基準におけるイントラコーディングに関して用いられる等のAC/DC予測に関するものである。
デジタル映像能力は、デジタルテレビ、デジタル直接放送システム、無線通信装置、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル記録装置、セルラー又は衛星無線電話等を含む広範な装置に組み入れることができる。デジタル映像装置は、完全な動画シーケンスを生成、修正、送信、格納、記録及び再生する際に従来のアナログ映像システムの有意な改良点を提供することができる。
デジタル映像シーケンスを符号化及び復号するための幾つかの異なる映像コーディング基準が確立されている。例えば、ムービング・ピクチャ・エキスパーツ・グループ(MPEG)では、MPEG−1、MPEG−2及びMPEG−4を含む幾つかのコーディング基準を開発している。その他の基準は、国際電気通信連合(ITU)H.263基準、カリフォルニア州クーパーティーノに所在するアップルコンピュータによって開発されたQuickTime(登録商標)、ワシントン州レッドモンドに所在するマイクロソフト・コーポレーションによって開発されたWindows(登録商標)及びWindows(登録商標)メディア、インテル・コーポレーションによって開発されたIndeo(登録商標)、ワシントン州シアトルに所在するリアルネットワークス・インクによるRealVideo(登録商標)、及びスーパーマック・インクによって開発されたCinepak(登録商標)を含む。これらの基準の更新バージョン及び新基準も引き続き現れさらに発展してきており、ITUH.264基準及び幾つかの専有基準を含む。静止画像を圧縮するための多くの画像コーディング基準、例えばJPEG基準、も開発されている。JPEGは、標準化委員会である「ジョイント・フォトグラフィック・エキスパーツ・グループ」を表す。
一部のコーディング基準は、いわゆる「AC/DC予測」を利用することができる。AC/DC予測は、「イントラ予測」と呼ばれることもあり、一般的にはイントラコーディングと関連する予測プロセスである。例えば、AC/DC予測は、イントラコーディングにおいて用いられる所定の映像フレーム又は画像内の他の映像ブロックを識別して前記所定の映像フレーム又は画像内の冗長性を利用してデータ圧縮を達成させる予測プロセスを含む。換言すると、イントラコーディングは、一般的には、映像フレーム又は画像をコーディングするために必要な量のデータを圧縮するフレーム内又は画像内プロセスであり、AC/DC予測は、現在の映像ブロックをイントラコーディングするためにいずれの近隣の映像ブロックを用いるべきであるかを識別するプロセスである。
イントラコーディングは、例えば静止画像の圧縮のための圧縮技術として単独で用いることができるが、映像シーケンスを圧縮する際にはその他の映像コーディング技術とともに実装されるのがより一般的である。例えば、イントラコーディングは、時間的相関又はインターフレーム相関と呼ばれる後続の映像フレーム間の類似性を利用するインターフレームコーディング技術と関連して用いることができる。イントラコーディングをインターフレーム圧縮とともに用いるときには、映像シーケンスは、インターフレーム圧縮が単独で用いられるときよりも多く圧縮することができる。
イントラコーディングに関しては、コーダは、希望されるAC/DC予測モードを選択するモード選択エンジンを利用することができる。ほとんどの映像コーディング基準は、AC予測モード及びDC予測モードを含む少なくとも2つの可能なAC/DC予測モードを考慮する。DC予測は、映像ブロックのDC係数(典型的には、映像ブロックのゼロ周波数値又は映像ブロックの平均値を表すことができる左上の係数)のみを用いるイントラ映像ブロック予測を意味する。AC予測は、映像ブロックの残りの(非DC)係数である映像ブロックのAC係数の一部又は全部を用いるイントラ映像ブロック予測を意味する。
発明の概要
本開示は、AC/DC予測中に映像コーディングデバイスによって実装される技術を説明する。これらの技術は、固定小数点演算によって機能するコーディングデバイス、例えばデジタル信号プロセッサ(DSP)において実装される映像コーダ、がAC/DC予測において用いられる浮動小数点演算を正確に推定するのを可能にするために有用である。より具体的には、これらの技術は、コーディングデバイスにおいてAC/DC予測の際に生じる可能性がある浮動小数点演算(A // B)のすべての可能な入力パラメータに関して行われる、浮動小数点演算の正確な固定小数点計算を含み、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表す。半整数値は、ゼロから遠い方に丸められる。
説明される技術は、インデックスBの逆関数であるエントリを有するルックアップテーブル(LUT)の生成を含むことができ、Bは、コーディング基準と関連するすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義する。例えばMPEG−4の場合は、Bは、MPEG−4と関連するすべてのDCスカラー値及びすべての量子化パラメータを包含する[1,46]の範囲を有することができる。浮動小数点演算A // Bを正確に推定するために、LUTの選択されたエントリを成分B1及びB2に分離することができ、成分B1及びB2は、LUTの選択されたエントリの高部分(high portion)と低部分(low portion)を具備する。浮動小数点演算(A // B)の固定小数点計算は、次式によって与えられる結果を具備することができる。
(((B1 * A << 1) + ((B2 * A) >> 15) + 32768) >> 16
<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す。デジタル信号プロセッサ(DSP)において計算を行うために必要な処理サイクル数をさらに減らすことができるその他の方程式も以下において識別されている。
一実施形態においては、本開示は、コーディングデバイスにおける浮動小数点演算(A// B)の固定小数点計算を行うための方法を説明し、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表す。前記方法は、インデックスBの逆関数として生成されたエントリを有するルックアップテーブル(LUT)からエントリを選択することと、値A、B1及びB2に基づいてコーディング基準に従ってコーディングするためにA // Bを計算すること、とを具備し、インデックスBは、コーディング基準と関連するすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義し、B1及びB2は、前記LUTの選択されたエントリの高部分及び低部分を具備する。
他の実施形態においては、本開示は、インデックスBの逆関数として生成されたエントリを有するルックアップテーブル(LUT)であって、インデックスBは、コーディング基準と関連するすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義するルックアップテーブル(LUT)と、値A1、B1、及びB2に基づいて前記コーディング基準に従ってコーディングするために浮動小数点演算(A // B)の固定小数点計算を行う固定小数点計算ユニットであって、B1及びB2は、前記LUTの選択されたエントリの高部分及び低部分を具備し、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表す固定小数点計算ユニットと、を具備するコーディングデバイスを説明する。
本明細書において説明されるこれらの技術及びその他の技術は、コーディングデバイスにおいてハードウェア内、ソフトウェア内、ファームウェア内、又はその組み合わせ内に実装することができる。ソフトウェア内に実装される場合は、前記ソフトウェアは、固定小数点演算を行うデジタル信号プロセッサ(DSP)又は他の装置において実行することができる。その場合は、これらの技術を実行するソフトウェアは、コーディングデバイスにおける浮動小数点演算の正確な固定小数点計算を行うために最初にコンピュータによって読み取り可能な媒体に格納し、DSP内にローディングして実行することができる。
様々な実施形態の追加の詳細が添付図面及び以下の説明において示されている。これらの説明と図面から、及び請求項からその他の特長、目的及び利点が明確になるであろう。
本開示は、AC/DC予測中にコーディングデバイスによって実装される技術を説明するものである。AC/DC予測は、一般的には、所定の映像フレーム又は画像内の他の映像ブロックが現在の映像ブロックをイントラコーディングする際に用いるために識別されるイントラコーディング技術において用いられるプロセスである。説明される技術は、コーディングデバイスにおける浮動小数点演算(A // B)の固定小数点計算を含み、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表す。半整数値は、ゼロから遠い方に丸められる。
MPEG−4等のコーディング基準及び他の基準に従ったAC/DC予測は、デジタル信号プロセッサ(DSP)等の固定小数点装置において複製することが(処理サイクルの点で)困難であるか又は高いコストを要する可能性がある整数除算浮動小数点計算(A // B)を要求する。重要なことであるが、本明細書において説明される技術は、MPEG−4等の映像コーディング基準に従ったAC/DC予測中に発生する可能性があるすべての可能な入力の組み合わせに関する計算精度を保証する。このことは、映像コーディングでは誤った予測が映像コーディングを損なう誤り伝播に結びつく可能性があるため非常に重要である。さらに、従来の技術又は実装と比較して、本明細書において説明される技術は、浮動小数点演算の適切な結果を生成するためにDSPによって用いられる処理サイクル数を減らすことができる。
より具体的には、これらの技術は、AC/DC予測において生じる可能性がある浮動小数点演算(A // B)のすべての可能な入力パラメータに関するコーディングデバイスにおける浮動小数点演算(A // B)の正確な固定小数点計算を含み、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表す。例えば、3 // 2は、2に丸められ、−3 // 2は−2に丸められる。これらの技術は、DC予測に関して用いることができ、その場合は、Aは、コーディング対象となる映像ブロックの非量子化DC係数を表し、Bは、DC係数を量子化するために用いられるDCスカラー値を表す。さらに、AC予測に関しても同じ技術を用いることができ、その場合は、Aは、候補となる予測ブロックの量子化されたAC係数と量子化パラメータの積を表し、Bは、コーディング対象となる映像ブロックの量子化パラメータを表す。
以下においてさらに詳細に説明されるように、計算ではルックアップテーブル(LUT)が用いられる。LUTは、インデックスBの逆関数として生成されたエントリを有する。インデックスBは、コーディング基準と関連するすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義する。例えばMPEG−4基準の場合は、Bは、MPEG−4と関連するすべてのDCスカラー値及びすべての量子化パラメータを包含する[1,46]の範囲を有することができる。特に、MPEG−4においては、DCスカラー値は、[8,46]の範囲内に入り、量子化パラメータは[1,31]の範囲内に入る。従って、[1,46]の範囲内の値を有する逆LUTは、MPEG−4に関するAC/DC予測におけるA // B計算に関するすべての可能な分母を包含する。
浮動小数点演算A // Bの結果を正確に推定するために、LUTの選択されたエントリを成分B1及びB2に分離することができ、成分B1及びB2は、LUTの選択されたエントリの高部分と低部分を具備する。浮動小数点演算(A // B)の固定小数点計算は、以下の式によって与えられる結果を具備することができる。
(((B1 * A) <<1) + ((B2 * A) >> 15) + 32768) >> 16
ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す。
さらに、一部のDSPに関する計算は、浮動小数点演算(A // B)の固定小数点計算を以下の式によって与えられる結果として実装することによって単純化することができる。
((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、Cは、(2*A)を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す。これらの方程式は、一般的には、LUTと関連づけられたQ数はQ31であると仮定しており、エントリのすべての値が10進値を表すことを意味する。
エントリの一部の値が分数でないようにするためにより小さいQ数を有するLUTのその他の実装に関しては、以下のようなより一般的な方程式を用いることができる。
(((B1 * A) << (32 − QNumber)) + ((B2 * A) >> (QNumber − 16)) + 32768) >> 16
又は
((B1 * A) + ((B2 * A >> 16) + (1 << (QNumber − 17)))) >> (QNumber − 16)
Q数31の場合と同様に、28以下のあらゆるQ数に関して、固定小数点DSP実装は以下の式のように行うことも可能であり、ほとんどのDPSにおいては下式のほうが実装しやすいであろう。
((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
図1は、固定小数点装置を具備する典型的コーディングデバイス10を例示するブロック図である。コーディングデバイス10は、一般的には、AC/DC予測をイントラ予測コーディング技術の一部として用いるコーディングデバイスを意味する。従って、装置10は、インター予測コーダ14及びイントラ予測コーダ16の両方を含むものとして示されているが、本明細書において説明される技術は、一般的には、イントラ予測コーダ16に対して適用可能であり、従って、インター予測を行わないコーディングデバイスにおいて実装することができる。例えば、これらの技術は、デジタルカメラ又はその他の画像撮影装置における画像圧縮に関しても用いることができる。コーダ14、16は、一般的には、1つ以上のDSP等の固定小数点装置である。
図1の例においては、コーディングデバイス10は、映像コーディングデバイスである。映像コーディングデバイスの例は、デジタルテレビ、デジタルビデオカメラ、デジタル直接放送システム、無線通信装置、パーソナルデジタルアシスタント(PDA)、ラップトップコンピュータ、デスクトップコンピュータ、デジタル記録装置、セルラー又は衛星無線電話等を含む。一般的には、本明細書において説明されるコーディング技術を行うあらゆる装置がコーディングデバイスであることができる。しかしながら、これらの技術は、浮動小数点計算を行わないデジタル信号プロセッサ(DSP)又は他の装置を実装するより小型の装置に対して最も適用可能である。
図1に示されるように、コーディングデバイス10は、イントラ予測コーダ14に結合されたメモリ12と、イントラ予測コーダと、を含む。メモリ12は、あらゆる揮発性又は非揮発性の記憶素子を具備することができる。一部の場合においては、メモリ12は、オンチップ及びオフチップの両メモリを含むことができる。例えば、メモリ12は、映像シーケンスを格納する相対的に大きなオフチップメモリ空間と、コーディングプロセスにおいて用いられるより小さい、より高速のローカルオンチップメモリと、を含むことができる。その場合は、オフチップメモリは、ダイナミックランダムアクセスメモリ(DRAM)又はFLASHメモリを具備することができ、ローカルオンチップメモリは、同期ダイナミックランダムアクセスメモリ(SDRAM)を具備することができる。しかしながら、説明を単純化するため、映像コーディングを容易にするために用いることができるあらゆる数のメモリ素子を表すために単一のメモリ12が例示されている。
コーダ14及び16の各々は、統合された符号器/復号器(CODEC)の一部を形成することができ、又は符号化素子又は復号素子のみを具備することができる。いずれの場合も、コーダ14及び16は、ハードウェア、ソフトウェア、ファームウェア、1つ以上のデジタル信号プロセッサ(DSP)、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートハードウェア構成品、又はそのあらゆる組合せ内においてまとめて又は別々に実装することができる。コーダ14及び16は、DSP等の固定小数点装置を少なくとも部分的に具備しており、従って、浮動小数点演算を固定小数点方式で計算するための本明細書において説明される技術が適用可能である。
インター予測コーダ14は、一般的には、映像シーケンス圧縮に関するインターフレーム相関を実行するコーディング素子を意味する。例えば、インター予測コーダ14は、映像シーケンスのインターフレーム圧縮を達成させるために動き推定及び動作補償技術を実行することができる。動き推定は、「最良の予測」映像ブロックを識別するために現在の映像ブロックをその他のフレームの映像ブロックと比較するプロセスを意味する。動き推定中に現在の映像ブロックに関して「最良の予測」が識別された時点で、インターフレームコーダ14は、動き補償を用いて現在の映像ブロックと最良の予測との間の差分をコーディングすることができる。動き補償は、コーディング対象となる現在の映像ブロックと最良の予測との間の差分を示す差分ブロックを生成するプロセスを具備する。特に、動き補償は、通常は、動きベクトルを用いて最良の予測ブロックをフェッチし、次に最良の予測を入力ブロックから減じて差分ブロックを生成する行為を意味する。差分ブロックは、典型的には、差分ブロックによって代表される原映像ブロックよりも実質的に少ないデータを含む。
動き補償が差分ブロックを生成後は、差分ブロックをさらにコーディングするために及びデータをさらに圧縮するために一連の追加コーディングステップをインター予測コーダ14によって行うことも可能である。これらの追加のコーディングステップは、使用中のコーディング基準に依存することができる。例えばMPEG−4に準拠したコーダにおいては、追加のコーディングステップは、8×8の離散コサイン変換を含み、その後にスカラー量子化を後続させ、ラスターツージグザグ順序変更を後続させ、ランレングス符号化を後続させ、ハフマン符号化を後続させることができる。コーディングされた差分ブロックは、コーディングデバイス10(説明を単純化するため送信器は示されていない)によって、前フレーム(又は後続フレーム)からのいずれの映像ブロックがコーディングのために用いられたかを示す動きベクトルとともに送信することができる。
イントラ予測コーダ16は、イントラフレーム圧縮を達成させるためのイントラフレーム相関を行うコーディング素子を具備する。イントラ予測コーダ16は、イントラフレーム又は画像圧縮を達成させるために単独で用いることができるが、映像シーケンスの圧縮の追加の一部としてインター予測コーダ14とともに実装されるのがより一般的である。MPEG−4に準拠した映像シーケンスのコーディングに関しては、イントラ予測コーダ16は、スカラー定量化後でラスターツージグザグ順序変更後に呼び出すことができる。繰り返しになるが、イントラ予測プロセスは、イントラコーディングにおいて用いられる近隣の映像ブロックを識別するAC/DC予測プロセスを含み、識別された映像ブロックをイントラフレーム圧縮のために用いるコーディングステップによって後続される。本明細書において説明される技術は、イントラ予測コーダ16によって行われるAC/DC予測プロセスに適用可能である。
イントラ予測コーダ16は、AC/DC予測に関して用いられるモードを選択する、例えばACモード又はDCモードを予測のために選択するモード選択エンジン17を含む。AC/DC予測ユニット18は、選択されたモードに依存して、AC予測又はDC予測を行う。さらに、本開示により、AC/DC予測ユニット18は、固定小数点装置において最も近い整数に丸められる整数除算の浮動小数点演算を効率的に及び有効に行うために固定小数点計算ユニット15を呼び出す。本明細書において説明されるように、固定小数点計算ユニット15は、ルックアップテーブル(LUT)19からエントリを選択し、これらのエントリはメモリ12に格納することができ、次に、固定小数点計算がAC/DC予測と関連する入力パラメータに関する浮動小数点演算の結果と完璧に一致するようにするための方程式を適用する。この方法により、コーダ装置10は、DSP等の固定小数点装置として実装されるが、AC/DC予測に関して必要な浮動小数点演算の結果を効率的に及び有効に計算することができる。
モード選択エンジン17によって選択可能なモードは、異なる映像コーディング基準によって異なることができる。MPEG−4によると、DCモード、ACモードの2つの一般モードが存在する。さらに、各モードは、水平方向及び垂直方向を有することができる。DCモードは、DC係数のみを利用し、ACモードは、DC係数及びAC係数を利用することができる。ACモードは、DC係数及びAC係数が用いられるためAC+DCモードと呼ぶこともできる。
1つの相対的に単純な例においては、ブロックBとAとの間のDC差(図2参照)がブロックBとCとの間のDC差よりも小さい場合は垂直モードが用いられる。ブロックBとCとの間のDC差がブロックBとAとの間のDC差よりも小さい場合は水平モードが用いられる(図2参照)。動きの方向が決定された時点で、選択された方向においてDC専用モードを用いるか又はAC+DCモードを用いるかの判断を、所定の状況に関していずれのモードが最良であるかに基づいて符号化のために決定することができる。しかしながら、これらのモード選択は、幾つかの変形を有する。復号の場合は、モードは、ビットストリーム内のビット又はフラグによって識別される。一般的には、イントラ予測に関してはどのようなモードも用いることができるが、一定の事例において特定のモードを選択することによってイントラコーディングプロセスの品質を向上させることができる。繰り返しになるが、本明細書において説明される技術は、AC/DC予測において発生する可能性があるすべての可能な浮動小数点演算の固定小数点計算を考慮することができる。
図2は、DC予測を例示することを目的とした映像ブロックの概念図である。この例においては、モード選択エンジン17は、イントラ予測に関して用いるモードとしてDCモードを選択しておくことができる。図2に示されるように、AC/DC予測ユニット18は、近隣映像ブロックA又はCのうちの1つのDC成分に基づいてDC予測を行う。MPEG−4によるDC予測においては、計算F[0][0]// dc_scalarが行われ、ここで、F[0][0]はDCに関する非量子化係数であり、dc_scalarは、係数F[0][0]を量子化するために用いられるDCスカラー値である。飽和検査により、F[0][0]は、MPEG−4の場合は[−2048,2047]の範囲内にあり、dc_scalarは、[8,46]の範囲内にある。
LUT19は、dc_scalarのすべての可能な値の逆関数を含むエントリを格納する。固定小数点計算ユニット15は、使用中のdc_scalarに対応する該当エントリをLUT19から選択する。次に、固定小数点計算ユニット15は、全体の計算を単純化するために、選択されたエントリの下半分と選択されたエントリの上半分を分離する方程式に従って係数F[0][0]を有する選択されたエントリを適用する。例えばこの場合においては、固定小数点計算ユニット15は、F[0][0]// dc_scalarの結果を達成させるために以下のような方程式を適用することができる。
(((B1 * F[0][0]) << 1) + ((B2 * F[0][0]) >> 15) + 32768) >> 16
この方程式において、B1及びB2は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められようにするための定数を表す。
LUT19は、dc_scalarのすべての可能な値の逆関数だけでなくコーディング基準に従って用いることができる量子化パラメータのすべての可能なエントリの逆関数にも対応する逆エントリを格納する。MPEG−4の場合は、量子化パラメータは、[1,31]の範囲を有する。従って、LUT19が[1,46]の範囲全体に及ぶ逆エントリを格納する場合は、LUT19は、dc_scalarのすべての可能な値及び量子化パラメータのすべての可能な値に対応する逆エントリを表すことができる。従って、AC予測及びDC予測に関して浮動小数点計算を模倣するために同じLUT19を呼び出すことができる。
図3は、AC予測、例えばAC+DC予測のAC部分、を例示することを目的とする映像ブロック概念図である。この例においては、モード選択エンジン17は、イントラ予測のために用いるモードとしてACモードを選択している。図3に示されるように、AC/DC予測ユニット18は、ブロックAの垂直AC成分c1乃至c7又はブロックCの水平AC成分r1乃至r7のいずれかに基づいてAC予測を行う。繰り返しになるが、DC成分は、AC+DC予測のためにも用いることができるが、図2においては説明を単純化するために別々に示されている。
MPEG−4に従ったAC予測においては、予測映像ブロックの各AC係数に関して計算(QF * QP)//(QP)が行われる。繰り返しになるが、映像ブロックA(図3)が予測に関して用いられる場合は、用いられるAC係数は、ブロックAのc1乃至c7であり、ブロックBが予測のために用いられる場合は、ブロックBのAC係数r1乃至r7が予測のために用いられる。QFpは、予測のために使用中であるブロックの所定の量子化されたAC係数を表し、QPpは、使用中のブロックと関連する量子化パラメータを表す。積(QF * QP)は、非量子化AC係数とまったく同じではないが、MPEG−4基準が規定するように、この値は、非量子化AC係数の半分によって制限され、[−2048,2047]の範囲内に十分に含めることができる。QPは、コーディングされるブロックX(図3)と関連する量子化パラメータを表し、MPEG−4に従った[1,31]の範囲内にある。
LUT19は、QPのすべての可能な値の逆関数を含むエントリを格納するため、固定小数点計算ユニット15は、使用中のQPに対応する該当エントリをLUT19から選択する。次に、固定小数点計算ユニット15は、全体的な計算を単純化するために、選択されたエントリの下半分と選択されたエントリの上半分を分離する方程式に従って積(QF * QP)を有する選択されたエントリを適用する。例えばこの場合は、固定小数点計算ユニット15は、(QF * QP)//(QP)の結果を達成させるために以下のような方程式を適用することができる。
(((B1 * (QFP*QPP)) << 1) + ((B2 * (QFP*QPP)) >> 15) + 32768) >> 16
この方程式において、B1及びB2は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められようにするための定数を表す。
一般的には、本明細書において説明される技術の最終目標は、[−2048,2047]の範囲内の数字A及び[1,46]の範囲内の数字Bを有する“A // B”の計算に関する逆数の適切な固定小数点概算を容易にすることである。繰り返しになるが、これらの技術は、前記計算を単純化しさらに固定小数点装置において計算を行うために必要な処理サイクル数を減らすことも可能である。
LUT19は、Q31に対応するQ数を定義することができ、LUT19のエントリの全値が分数値に対応することを意味する。テーブル内の各エントリは、floor(2^31/B)+1として計算され、ここで、Bは、テーブルのインデックスであり、[1,46]の範囲内にある。演算“floor”は、切り捨てて整数にするための演算を表す。テーブルは、以下の典型的な疑似符号を用いて生成することができる。
unsigned int q31Num, i; /* 符号なし整数を定義する*/
unsigned int vInverseTable[46]; /*配列を定義する*/
q31Num = 1 << 31; /*2^31 *を実行する/
(i=1; i<=46; i++)の場合/*各エントリを生成するため に繰り返す*/
{
vInverseTable[i-1] = q31Num/i+ 1
}
LUT19の生成のシミュレーション例は以下のとおりである。
Figure 0004741658
シミュレーションでは、分子[−2048,2047]及び分母[1,46]のすべての可能な数に関して、本明細書において説明される逆テーブル及び方程式を用いた結果は、これらの範囲内の分子又は分母のあらゆる可能な組み合わせに関する対応する浮動小数点計算と一致することが示されている。従って、本明細書において説明される逆テーブル及び方程式は、MPEG−4に従ったACDC予測の目的上正確である。繰り返しになるが、浮動小数点演算(A // B)の固定小数点計算は、以下によって与えられる結果を具備することができる。
(((B1 * A) << 1) + ((B2 *A) >> 15) + 32768) >> 16
ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数まで確実に丸められるようにするための定数を表す。
さらに、一部のDSPに関する計算は、浮動小数点演算(A // B)の固定小数点計算を以下の式によって与えられる結果として実装することによって単純化することができる。
((B1 * C) + (B2 * C) >> 16) + 32768) >> 16
ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、Cは、(2 *A)を表し、32768は、最も近い整数まで確実に丸められるようにするための定数を表す。C=2 * Aは16ビット([−4096,4094]内にあるため、*2に起因する精度損はない。さらに、C=2 * Aは、一部のDSPにおいてはフリーサイクル中に生成することができる。これらの方程式は、一般的には、LUTと関連づけられたQ数がQ31であると仮定し、エントリの全値が10進値を表すことを意味する。
以下は、分子(−2048,2047)及び分母[1,46]の範囲を有するQ数Q30乃至Q18とともに用いることができる逆テーブル例である。これらのテーブルは、異なるDSP及び異なる命令セットに関して役立つであろう。
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
Figure 0004741658
より小さいQ数を有するためエントリの値の一部が非分数であるLUTの実装に関しては、以下のようなより一般的な方程式を用いることができる。
(((B1 * A) << (32 − QNumber)) + ((B2 * A) >> (QNumber − 16)) + 32768) >> 16
又は
((B1 * A) + ((B2 * A >> 16) + (1 << (QNumber − 17)))) >> (QNumber − 16)
Q数31の場合と同様に、28以下のあらゆるQ数に関して、固定小数点DSP実装は以下の式のように行うことも可能であり、ほとんどのDPSにおいては下式のほうがプログラマによりやさしい。
((B1*C) + ((B2*C) >> 16) + 32768) >> 16
図4は、DSP等の固定小数点装置においてAC/DC予測に関する浮動小数点計算を行う技術を例示した流れ図である。図4に示されるように、固定小数点計算ユニット15は、Bの逆関数として生成されたエントリを有するルックアップテーブル(LUT)19からエントリを選択する(41)。次に、固定小数点計算ユニット15は、Aの値及び選択されたエントリの高部分と低部分に基づいて整数除算A // Bを計算する(42)。例えば、固定小数点計算ユニット15は、以下の方程式を適用することができる。
(((B1 * A) << 1) + ((B2 *A) >> 15) + 32768) >> 16
ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数まで確実に丸められるようにするための定数を表し、B1及びB2は、LUTの選択されたエントリの高部分及び低部分をそれぞれ具備する。AC/DC予測ユニット18は、A // Bの計算を用いてAC/DC予測を行うことができる(43)。
図5は、DSP等の固定小数点装置においてAC/DC予測に関する浮動小数点計算を行うためのより特定の技術を例示した流れ図である。図5に示されるように、固定小数点計算ユニット15は、可能なDCスカラーの逆関数として生成されたエントリを有するルックアップテーブル(LUT)19からエントリを選択する(51)。次に、固定小数点計算ユニット15は、DC Scalarの値及び選択されたエントリの高部分と低部分に基づいて整数除算F[0][0]// (DC Scalar)を計算する(52)。この場合は、F[0][0]は、DCに関する非量子化係数であり、(DC Scalar)は、係数F[0][0]を量子化するために用いられるDCスカラー値である。
例えば、固定小数点計算ユニット15は、F[0][0]// (DC Scalar)の結果を達成させるために以下の方程式を適用することができる。
(((B1 * F[0][0]) << 1) + ((B2 * F[0][0]) >> 15) + 32768 >> 16
この方程式において、B1及びB2は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す。AC/DC予測ユニット18は、F[0][0]// (DC Scalar)の計算を用いてDC予測を行うことができる(53)。
図6は、DSP等の固定小数点装置においてAC/DC予測に関する浮動小数点計算を行うためのより特定の技術を例示した流れ図である。図6に示されるように、固定小数点計算ユニット15は、映像ブロックXの可能な量子化パラメータQPの逆関数として生成されたエントリを有するルックアップテーブル(LUT)19からエントリを選択する(61)。AC予測において用いられる各AC係数に関して、固定小数点計算ユニットは、QF及びQPの値及びQPに対応する選択されたエントリの高部分及び低部分に基づいて整数除算(QF * QP)//(QP)を計算する(62)。この場合は、QFは、予測のために使用中のブロックの量子化されたAC係数を表し、QPは、使用中のブロックと関連する量子化パラメータを表す。
例えば、固定小数点計算ユニット15は、(QF * QP)//(QP)の結果を達成させるために以下の方程式を適用することができる。
(((B1 * (QFP *QPP)) << 1) + ((B2 *(QFP*QPP)) >> 15) + 32768) >> 16
この方程式において、B1及びB2は、選択されたエントリの下半分及び選択されたエントリの上半分をそれぞれ表し、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められようにするための定数を表す。
MPEG−4 AC/DC予測において起こる可能性があるすべての各々の入力において必要な精度で浮動小数点計算をシミュレーションするその他の手法と比較して、本明細書において説明される技術は、DSPの処理サイクル数を有意な数だけ減らすことができる。有利なことに、本明細書において説明される技術は、符号検査又はその他の処理前又は処理後のステップを行う必要なしに機能する。
幾つかの異なる実施形態が説明されている。特に、MPEG−4 AC/DC予測において起こる可能性があるすべての各々の入力において必要な精度を有する浮動小数点計算シミュレーション技術が説明されている。さらに、これらの技術は、前記計算を行うのに要する処理サイクル数をその他の手法よりも少なくすることができる。しかしながら、本明細書において説明される技術は、本発明の精神及び適用範囲から外れることなしに様々な修正を行うことが可能である。例えば、これらの技術は、例えばその他のコーディング基準に関するすべての可能な入力を包含するようにルックアップテーブルを修正することによって、前記その他のコーディング基準とともに用いるように個別適合化することができる。これらの技術は、映像コーディングに適用可能であるとして一般的に説明されており、これらの技術は、映像符号化、映像復号、又は符号化と復号の両方に関して適用可能であることを意味する。
本明細書において説明される技術は、コーディングデバイスにおいてハードウェア内、ソフトウェア内、ファームウェア内、又はその組み合わせ内に実装することができる。ソフトウェア内に実装される場合は、ソフトウェアは、固定小数点演算を行うデジタル信号プロセッサ(DSP)又は他の装置において実行することができる。その場合は、これらの技術を実行するソフトウェアは、最初にコンピュータによって読み取り可能な媒体に格納し、その後にコーディングデバイスにおいて浮動小数点演算の正確な固定小数点計算を行うためにDSPにローディングして実行することができる。例えば、コンピュータによって読み取り可能な媒体は、ランダムアクセスメモリ(RAM)、例えば同期ダイナミックランダムアクセスメモリ(SDRAM)、読み取り専用メモリ(ROM)、非揮発性ランダムアクセスメモリ(NVRAM)、電気によって消去可能なプログラマブル読み取り専用メモリ(EEPROM)、FLASHメモリ等を具備することができる。これらの実施形態及びその他の実施形態は、上記の請求項の適用範囲内である。
本明細書において説明される技術の実装に適する典型的コーディングデバイスのブロック図である。 DC予測を例示するための概念的映像ブロック図である。 AC予測を例示するための概念的映像ブロック図である。 本開示の実施形態による流れ図である。 本開示の実施形態による流れ図である。 本開示の実施形態による流れ図である。

Claims (17)

  1. インデックスBの逆関数として生成されたエントリを有するルックアップテーブル(LUT)を格納するメモリであって、前記インデックスBは、コーディング基準において用いられるすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義するメモリと、
    値A、B1及びB2に基づいて前記コーディング基準に従ってコーディングするために浮動小数点演算(A // B)の固定小数点計算を行う固定小数点計算ユニットであって、値Aは、コーディング基準において用いられる非量子化DC係数および量子化されたAC係数と量子化パラメータの積を含み、B1は、前記LUTの選択されたエントリの上方半分を含むとともに、B2は、前記LUTの選択されたエントリの下方半分を含み、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表す固定小数点計算ユニットと、を具備し、
    前記浮動小数点演算(A // B)の前記固定小数点計算は、以下の式
    (((B1 * A) << 1) + ((B2 * A) >> 15) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近くの整数に確実に丸められるようにするための定数を表す)か、あるいは、以下の式
    ((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、Cは、(2 * A)を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す)、のいずれか一方の式によって与えられる結果を具備するコーディングデバイス。
  2. 前記コーディングデバイスは、映像コーディングデバイスを具備し、前記コーディング基準は、MPEG−4映像コーディング基準を具備する請求項1に記載のコーディングデバイス。
  3. BがDCスカラーを表すときは前記固定小数点計算を用いて前記MPEG−4基準に従ってDC予測を行い、Bが量子化パラメータを表すときは前記固定小数点計算を用いて前記MPEG−4基準に従ってAC予測を行うAC/DC予測ユニットをさらに具備する請求項2に記載のコーディングデバイス。
  4. 前記LUTの前記エントリは、以下の式に従って生成され、floorは、切り捨てて整数にするための演算を表す請求項1に記載のコーディングデバイス。
    floor(2^31/B) + 1
  5. Bは、[1,46]の範囲内である請求項4に記載のコーディングデバイス。
  6. コーディングデバイスにおいて浮動小数点演算(A // B)の固定小数点計算を行うための方法であって、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表し、
    インデックスBの逆関数として生成されたエントリを有するルックアップテーブル(LUT)からエントリを選択することであって、Bは、コーディング基準において用いられるすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義することと、
    値A、B1及びB2に基づいて前記コーディング基準に従ってコーディングするためにA // Bを計算することであって、値Aは、コーディング基準において用いられる非量子化DC係数および量子化されたAC係数と量子化パラメータの積を含み、B1は、前記LUTの選択されたエントリの上方半分を含むとともに、B2は、前記LUTの選択されたエントリの下方半分を含み、
    前記浮動小数点演算(A // B)の前記固定小数点計算は、以下の式
    (((B1 * A) << 1) + ((B2 * A) >> 15) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す)か、あるいは、以下の式
    ((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、Cは、(2 * A)を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す)、のいずれか一方の式によって与えられる結果を具備する方法。
  7. 前記コーディング基準は、MPEG−4映像コーディング基準を具備する請求項6に記載の方法。
  8. BがDCスカラーを表すときは前記固定小数点計算を用いて前記MPEG−4基準に従ってDC予測を行うことと、Bが量子化パラメータを表すときは前記固定小数点計算を用いて前記MPEG−4基準に従ってAC予測を行うこと、とをさらに具備する請求項7に記載の方法。
  9. 前記LUTの前記エントリは、以下の式に従って生成され、floorは、切り捨てて整数にするための演算を表す請求項6に記載の方法。
    floor(2^31/B) + 1
  10. Bは、[1,46]の範囲内である請求項9に記載の方法。
  11. コーディングデバイスにおいて実行されたときに前記コーディングデバイスに浮動小数点演算(A // B)の固定小数点計算を行わせる命令を具備し、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表し、前記命令は、実行されたときに、インデックスBの逆関数として生成されたエントリを有するルックアップテーブル(LUT)からエントリを選択し、Bは、コーディング基準において用いられるすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義し、値A、B1及びB2に基づいて前記コーディング基準に従ってコーディングするためにA // Bを計算し、値Aは、コーディング基準において用いられる非量子化DC係数および量子化されたAC係数と量子化パラメータの積を含み、B1は、前記LUTの選択されたエントリの上方半分を含むとともに、B2は、前記LUTの選択されたエントリの下方半分を含み、
    前記浮動小数点演算(A // B)の前記固定小数点計算は、以下の式
    (((B1 * A) << 1) + ((B2 *A) >> 15) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す)か、あるいは、以下の式
    ((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、Cは、(2 * A)を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す)、のいずれか一方の式によって与えられる結果を具備するコンピュータ読み取り可能媒体。
  12. 前記コーディング基準は、MPEG−4映像コーディング基準を具備する請求項11に記載のコンピュータ読み取り可能媒体。
  13. 前記命令は、実行されたときに、BがDCスカラーを表すときは前記コーディングデバイスに前記固定小数点計算を用いて前記MPEG−4基準に従ってDC予測を行わせ、Bが量子化パラメータを表すときは前記固定小数点計算を用いて前記MPEG−4基準に従ってAC予測を行わせる請求項12に記載のコンピュータ読み取り可能媒体。
  14. 前記LUTの前記エントリは、以下の式に従って生成され、floorは、切り捨てて整数するための演算を表す請求項11に記載のコンピュータ読み取り可能媒体。
    floor(2^31/B) + 1
  15. Bは、[1,46]の範囲内である請求項14に記載のコンピュータ読み取り可能媒体。
  16. インデックス(B)の逆関数として生成されたエントリを有するルックアップテーブル(LUT)を格納するメモリであって、前記インデックス(B)は、コーディング基準において用いられるすべてのDCスカラー値及びすべての量子化パラメータを含む1つの範囲の値を定義するメモリと、
    値A、B1及びB2に基づいて前記コーディング基準に従ってコーディングのために浮動小数点演算(A // B)の固定小数点計算を行うための手段であって、値Aは、コーディング基準において用いられる非量子化DC係数および量子化されたAC係数と量子化パラメータの積を含み、B1は、前記LUTの選択されたエントリの上方半分を含むとともに、B2は、前記LUTの選択されたエントリの下方半分を含み、A // Bは、AがBによって除されて最も近い整数に丸められる整数除算を表す手段と、を具備し、
    前記浮動小数点演算(A // B)の前記固定小数点計算は、以下の式
    (((B1 * A) << 1) + ((B2 * A) >> 15) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、32768は、最も近くの整数に確実に丸められるようにするための定数を表す)か、あるいは、以下の式
    ((B1 * C) + ((B2 * C) >> 16) + 32768) >> 16
    (ここで、<<は、左シフト演算を表し、>>は、右シフト演算を表し、Cは、(2 * A)を表し、32768は、最も近い整数に確実に丸められるようにするための定数を表す)、のいずれか一方の式によって与えられる結果を具備するコーディングデバイス。
  17. BがDCスカラーを表すときは前記固定小数点計算を用いて前記MPEG−4基準に従ってDC予測を行うための手段と、Bが量子化パラメータを表すときは前記固定小数点計算を用いて前記MPEG−4基準に従ってAC予測を行うための手段と、をさらに具備する請求項16に記載のコーディングデバイス。
JP2008513792A 2005-05-25 2006-05-25 映像コーディングデバイスにおけるac/dc予測に関する固定小数点整数除算 Expired - Fee Related JP4741658B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/137,069 2005-05-25
US11/137,069 US7895250B2 (en) 2005-05-25 2005-05-25 Fixed point integer division techniques for AC/DC prediction in video coding devices
PCT/US2006/020637 WO2006128076A2 (en) 2005-05-25 2006-05-25 Fixed point integer division techniques for ac/dc prediction in video coding devices

Publications (2)

Publication Number Publication Date
JP2008543182A JP2008543182A (ja) 2008-11-27
JP4741658B2 true JP4741658B2 (ja) 2011-08-03

Family

ID=37150036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008513792A Expired - Fee Related JP4741658B2 (ja) 2005-05-25 2006-05-25 映像コーディングデバイスにおけるac/dc予測に関する固定小数点整数除算

Country Status (9)

Country Link
US (1) US7895250B2 (ja)
EP (1) EP1884119B1 (ja)
JP (1) JP4741658B2 (ja)
KR (1) KR100953554B1 (ja)
CN (1) CN101223788B (ja)
AT (1) ATE480103T1 (ja)
DE (1) DE602006016594D1 (ja)
TW (1) TW200706010A (ja)
WO (1) WO2006128076A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100370834C (zh) * 2005-08-08 2008-02-20 北京中星微电子有限公司 多模图像编解码芯片中的系数缩放计算模块
JP2009060153A (ja) * 2005-12-21 2009-03-19 Panasonic Corp 面内予測モード決定方法及び装置及びプログラム
US8185567B2 (en) * 2006-01-02 2012-05-22 Telecommunication Systems, Inc. Location aware content using presence information data formation with location object (PIDF-LO)
JP4621629B2 (ja) * 2006-05-25 2011-01-26 株式会社東芝 画像復号装置
WO2008136164A1 (ja) * 2007-04-23 2008-11-13 Panasonic Corporation 復号化回路、復号化方法及び画像再生装置
WO2009084814A1 (en) * 2007-12-28 2009-07-09 Lg Electronics Inc. Method for encoding and decoding image of ftv, and apparatus for encoding and decoding image of ftv
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
EP3648059B1 (en) * 2018-10-29 2021-02-24 Axis AB Video processing device and method for determining motion metadata for an encoded video
US11076152B2 (en) * 2019-03-18 2021-07-27 Sony Group Corporation Quantization step parameter for point cloud compression
CN110221808B (zh) * 2019-06-03 2020-10-09 深圳芯英科技有限公司 向量乘加运算的预处理方法、乘加器及计算机可读介质
US11343495B2 (en) * 2020-06-03 2022-05-24 Tencent America LLC Methods of simplification of temporal filtering
CN112765697B (zh) * 2021-01-25 2024-04-30 深圳市旗众智能科技有限公司 点钻机根据轨迹生成钻点示教的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001103472A (ja) * 1999-09-30 2001-04-13 Matsushita Electric Ind Co Ltd Mpeg−4逆dc/ac予測の固定点実施用の方法および装置
WO2003014914A1 (en) * 2001-08-07 2003-02-20 Nokia Corporation Method and apparatus for executing division
US20030035587A1 (en) * 2001-06-29 2003-02-20 Jeongnam Youn Decoding of predicted AC coefficient without division
JP2003204556A (ja) * 2001-12-24 2003-07-18 Shienesu Technology:Kk マルチメディア信号処理のための映像復元プロセッサ

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280595B1 (en) * 2003-10-21 2007-10-09 Redrock Semiconductor, Ltd. Post-inverse-quantization AC prediction with a unified variable-length-decoding and inverse-quantization stage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001103472A (ja) * 1999-09-30 2001-04-13 Matsushita Electric Ind Co Ltd Mpeg−4逆dc/ac予測の固定点実施用の方法および装置
US20030035587A1 (en) * 2001-06-29 2003-02-20 Jeongnam Youn Decoding of predicted AC coefficient without division
WO2003014914A1 (en) * 2001-08-07 2003-02-20 Nokia Corporation Method and apparatus for executing division
JP2003204556A (ja) * 2001-12-24 2003-07-18 Shienesu Technology:Kk マルチメディア信号処理のための映像復元プロセッサ

Also Published As

Publication number Publication date
ATE480103T1 (de) 2010-09-15
CN101223788A (zh) 2008-07-16
EP1884119A2 (en) 2008-02-06
EP1884119B1 (en) 2010-09-01
WO2006128076A3 (en) 2007-02-01
CN101223788B (zh) 2010-12-22
JP2008543182A (ja) 2008-11-27
DE602006016594D1 (de) 2010-10-14
US20060282237A1 (en) 2006-12-14
US7895250B2 (en) 2011-02-22
KR20080038089A (ko) 2008-05-02
WO2006128076A2 (en) 2006-11-30
TW200706010A (en) 2007-02-01
KR100953554B1 (ko) 2010-04-21

Similar Documents

Publication Publication Date Title
JP4741658B2 (ja) 映像コーディングデバイスにおけるac/dc予測に関する固定小数点整数除算
JP2006140758A (ja) 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
RU2444857C2 (ru) Устройство и способ кодирования видеоизображения и носитель данных, хранящий программу кодирования видеоизображения
EP2302933A1 (en) Weighted motion compensation of video
JP2006511113A (ja) 選択されたマクロブロックにおける動き推定のスキップを伴うビデオエンコーディング
JP2007531345A (ja) 高速サーチ・ブロック・マッチングを用いた動き推定
US9756340B2 (en) Video encoding device and video encoding method
US8050324B2 (en) Method and apparatus for selecting a reference frame for motion estimation in video encoding
US10154261B2 (en) Encoder and method for video processing
US20160277767A1 (en) Methods, systems and apparatus for determining prediction adjustment factors
US10091514B1 (en) Apparatus and method for inter and intra mode selection and block partitioning
JP2023168518A (ja) 予測ブロック生成装置、画像符号化装置、画像復号装置、及びプログラム
JP4686280B2 (ja) 動画像符号化装置
TWI825751B (zh) 視訊編碼方法和裝置
KR100835661B1 (ko) 다수 필터 결정법을 이용한 동영상 압축 부호화 장치 및방법
US20130329792A1 (en) Method and device for optimizing the compression of a video stream
JP2009055143A (ja) 動画像符号化における動き評価装置,方法およびそのプログラム並びにその記録媒体
US20070297517A1 (en) Entropy encoding and decoding apparatuses, and entropy encoding and decoding methods
KR20180018903A (ko) 참조 프레임 선택 방법 및 그 장치
JP6700877B2 (ja) 画像復号装置、画像復号プログラム及びチップ
US20120230425A1 (en) Encoding apparatus and method of conversion block for increasing video compression efficiency
EP3096518A1 (en) Methods, systems and apparatus for determining prediction adjustment factors
KR20000037946A (ko) 적응적 임계치를 이용한 움직임 추정 장치
KR20000025291A (ko) 엠펙-2 영상 부호화기의 움직임 보상 및 모드 결정 장치
JP2006340014A (ja) 低複雑度動き補償型時間方向フィルタ処理方法ならびに装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100818

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110309

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110506

R150 Certificate of patent or registration of utility model

Ref document number: 4741658

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

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

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

LAPS Cancellation because of no payment of annual fees