JP2014233095A - ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置 - Google Patents

ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置 Download PDF

Info

Publication number
JP2014233095A
JP2014233095A JP2014190191A JP2014190191A JP2014233095A JP 2014233095 A JP2014233095 A JP 2014233095A JP 2014190191 A JP2014190191 A JP 2014190191A JP 2014190191 A JP2014190191 A JP 2014190191A JP 2014233095 A JP2014233095 A JP 2014233095A
Authority
JP
Japan
Prior art keywords
matrix
block
transform
descaling
scaling
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.)
Pending
Application number
JP2014190191A
Other languages
English (en)
Inventor
ホン,ユン−ミ
Yoon-Mi Hong
ハン,ウ−ジン
Woo-Jin Han
チョン,ミン−ス
Min-Su Cheon
チョン,ジアンル
Jianle Chen
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014233095A publication Critical patent/JP2014233095A/ja
Pending legal-status Critical Current

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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】大きいサイズのブロックに対する高速周波数変換を可能にするビデオ復号化方法及びその装置を提供することである。
【解決手段】ビデオの復号化方法である。該方法は、量子化された変換係数を獲得するステップと、変換係数に適用される量子化パラメータを6で割った残り値に基づいて、変換係数の逆量子化に利用されるデスケーリング定数を決定するステップと、決定されたデスケーリング定数を利用して変換係数をデスケーリングするステップと、デスケーリングされた変換係数に対する逆変換を行うステップとを含む。
【選択図】 図12

Description

本発明は、ビデオの符号化、復号化方法及びその装置に係り、特に大きいサイズのブロックを変換する方法及びその装置、並びに大きいサイズの変換ブロックを逆変換する方法及びその装置に関する。
H.264及びMPEG−4のような現在の国際ビデオコーディング標準において、ビデオ信号は、シーケンス、フレーム、スライス、マクロブロック及びブロックに階層的に分割され、ブロックは、最小処理ユニットとなる。エンコーディングの側面において、イントラ・フレームまたはインター・フレームの予測を通じて、ブロックの予測残留エラーが獲得され、ブロック変換は、エネルギーが小数の係数に集中するように実行され、量子化、スキャニング、ランレングスコーディング(Run Length Coding)及びエントロピーコーディングを通じて、イメージデータは圧縮され、コーディングされたビットストリームとして記録される。デコーディングの側面において、処理手続きは逆になる。まず、エントロピーコーディングのブロック変換係数が、ビートストリームから抽出される。次いで、逆量子化及び逆変換を通じて、ブロックの予測残留エラーは再構成され、予測情報は、ブロックのビデオデータを再構成するために使われる。エンコーディング・デコーディング処理手続きにおいて、変換モジュールは、ビデオ圧縮のベースであり、変換性能は、コーデックの一般的な性能に直接的に影響を与える。
離散コサイン変換(Discrete Cosine Transform: DCT)は、MPEG−1及びH.261のような初期のビデオコーディング標準で採択された。1974年DCTが提案された後、DCTは、イメージ及びビデオコーディング分野で広く使われた。変換ドメイン内のイメージ要素の相関性を除去し、高効率のイメージ圧縮のためのベースを設けるので、DCTの変換性能は、全ての次善変換(sub-optimal transform)のうち優秀である。しかし、DCT行列は、浮動小数点数で表現されるので、大量の浮動小数点計算によって、多くのシステム資源が消耗される。変換効率を改善する一方、大きいサイズのブロックに対する変換を行うために、新たなDCTアルゴリズムの必要性が高くなった。
本発明が解決しようとする課題は、大きいサイズのブロックに対する高速周波数変換を可能にするビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置を提供することである。また、本発明が解決しようとする他の課題は、高速周波数変換を利用する時に発生する変換誤差を、量子化過程または逆量子化過程で、スケーリングまたはデスケーリング過程を通じて補償するビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置を提供することである。
本発明の一実施形態によれば、変換ブロックに対するスケーリングを行うことによって、高速変換行列を利用した結果の誤差を減少させる。
本発明によれば、大きいサイズのブロックに対する変換及び逆変換時に、浮動小数点演算ではない整数に基づいた演算過程を通じて、複雑度を低減させ、演算速度を速める映像の変換及び逆変換方法を提供することができる。
また、本発明によれば、量子化過程または逆量子化過程で、スケーリング及びデスケーリングを行うことによって、浮動小数点演算に基づいた変換過程との誤差値を補償することができる。
本発明の一実施形態によるビデオ符号化装置を示すブロック図である。 本発明の一実施形態による4ポイント、8ポイント、16ポイント、32ポイントDCTのフローグラフである。 本発明の一実施形態によるスケーリング行列を生成する方法を示すフローチャートである。 本発明の一実施形態によって、16×16ブロックの変換時に利用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、16×16ブロックの変換時に利用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、16×16ブロックの変換時に利用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、16×16ブロックの変換時に利用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、16×16ブロックの変換時に利用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、16×16ブロックの変換時に利用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるスケーリング行列MFの例を示す図面である。 本発明の一実施形態によって、16×16ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、16×16ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、16×16ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、16×16ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、16×16ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、16×16ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す図面である。 本発明の他の実施形態による32ポイントDCTのフローグラフである。 図8の32ポイントDCTを構成するバタフライ構造の演算過程を示す参照図である。 本発明の一実施形態によるビデオ符号化方法を示すフローチャートである。 本発明の一実施形態によるビデオ復号化装置を示すブロック図である。 本発明の一実施形態によるビデオ復号化方法を示すフローチャートである。
前述した課題を解決するための本発明の一実施形態によるビデオ符号化方法は、所定サイズのブロックの周波数変換に利用される変換行列に基づいて、高速変換行列を生成するステップと、前記高速変換行列を利用して、前記所定サイズのブロックを変換して、変換ブロックを生成するステップと、前記周波数変換に利用される変換行列と、前記高速変換行列との差値を補正するために、前記変換ブロックに対するスケーリングを行うステップと、を含むことを特徴とする。
本発明の一実施形態によるビデオ符号化装置は、所定サイズのブロックの周波数変換に利用される変換行列に基づいて、高速変換行列を生成し、前記高速変換行列を利用して、前記所定サイズのブロックを変換して、変換ブロックを生成する変換部と、前記周波数変換に利用される変換行列と、前記高速変換行列との差値を補正するために、前記変換ブロックに対するスケーリングを行う量子化部と、を備えることを特徴とする。
本発明の一実施形態によるビデオ復号化方法は、所定サイズの量子化された変換ブロックを受信するステップと、前記量子化された変換ブロックの周波数逆変換に利用される逆変換行列と、前記逆変換行列に基づいて生成される高速逆変換行列との差値を補正するために、前記変換ブロックに対するデスケーリングを行うステップと、前記高速逆変換行列を利用して、前記デスケーリングされた変換ブロックを逆変換して、逆変換ブロックを生成するステップと、を含むことを特徴とする。
本発明の一実施形態によるビデオ復号化装置は、所定サイズの量子化された変換ブロックの周波数逆変換に利用される逆変換行列と、前記逆変換行列に基づいて生成される高速逆変換行列との差値を補正するために、前記変換ブロックに対するデスケーリングを行う逆量子化部と、前記高速逆変換行列を利用して、前記デスケーリングされた変換ブロックを逆変換して、逆変換ブロックを生成する逆変換部と、を備えることを特徴とする。
以下、添付された図面を参照して、本発明の望ましい実施形態について具体的に説明する。
図1は、本発明の一実施形態によるビデオ符号化装置を示すブロック図である。図1を参照すれば、本発明の一実施形態によるビデオ符号化装置100は、予測部110、減算部115、変換部120、量子化部130及びエントロピー符号化部140を備える。
予測部110は、入力映像を所定サイズのブロックに分割し、分割された各ブロックに対して、インター予測またはイントラ予測を通じて、予測ブロックを生成する。具体的に、予測部110は、以前に符号化された後で復元された参照ピクチャーの所定の探索範囲内で、現在ブロックと類似した領域を指す動きベクトルを生成する動き予測及び補償過程を通じて、予測ブロックを生成するインター予測、及び現在ブロックに隣接した周辺ブロックのデータを利用して、予測ブロックを生成するイントラ予測を行う。
減算部115は、現在ブロックの予測ブロックを、原映像データから減算したレジデュアルを生成する。
変換部120は、レジデュアルを周波数領域に変換する。特に、本発明の実施形態では、既存の4×4、8×8の相対的に小さいサイズに対して定義された離散コサイン変換(Discrete Cosine Transform: DCT)行列を拡張して、16×16以上の大きいサイズのブロックにも適用される新たなDCT方式を提供する。後述するように、本発明の一実施形態による変換部120は、既存のDCTに利用される変換行列の元素を、有理数値に置換することによって生成された高速変換行列を利用して、浮動小数点演算ではない整数に基づいた加算、減算及びシフト演算によりDCTを行うことによって、演算の複雑度を低減させる一方、演算速度を速める。また、本発明の他の実施形態による変換部120は、既存のDCTに利用される変換行列の元素に2の累乗を乗じた後で四捨五入した元素から構成された高速変換行列を利用して、DCTを行うことによって、全体的な演算複雑度を低減させる。
量子化部130は、変換されたレジデュアルを量子化する。特に、本発明の一実施形態による量子化部130は、変換部120で高速変換行列を利用した変換結果と、実際の浮動小数点演算に基づいたDCT行列を利用した変換結果との誤差値を減少させるために、所定のスケーリングを行う。具体的なスケーリング及び量子化過程については後述する。
エントロピー符号化部140は、量子化された映像データに対して可変長符号化を行って、ビットストリームを生成する。
以下、図1の変換部120で行われる変換過程について具体的に説明する。変換部120は、N×N(Nは、整数)入力ブロックに対して、列方向変換及び行方向変換を行って、N×N変換ブロックを生成する。N×N入力ブロックをInput、行方向のDCT行列をTransform_hor、列方向のDCT行列をTransform_ver、変換結果値をOutputとすれば、変換部120は、次の数式;Output=Transform_hor×Input×Transform_verのような行列演算を行って、変換結果値Outputを出力する。ここで、最初の行列乗算Transform_hor×Inputは、N×N入力ブロックInputである各行に対して、一次元水平方向DCTを行うことに該当し、Transform_hor×InputにTransform_verを乗じることは、一次元垂直方向DCTを行うことに該当する。行方向のDCT行列Transform_horと、列方向のDCT行列Transform_verは、互いに二項行列関係である。本発明を説明するにあたって、N×N入力ブロックに対する周波数変換及び周波数逆変換を行うN×Nサイズの変換行列及び逆変換行列を中心に説明するが、本発明による思想は、任意のa×b(a,bは、整数)サイズの周波数変換行列及び周波数逆変換行列を利用する場合にも適用されることを、当業者ならば理解できるであろう。
垂直変換行列の(i,k)番目(i,kは、整数)に位置した元素をAikとすれば、N×N入力ブロックの変換のための垂直変換行列の(i,k)番目の元素Aikは、下記の数式(1)のように定義される。
Figure 2014233095
垂直変換行列と水平変換行列は、互いに二項関係にあるので、水平変換行列の(i,k)番目の元素Bikは、垂直変換行列と同様に、コサイン関数を利用した値として表現される。本発明の一実施形態による変換部120は、DCTに利用される変換行列の元素を、有理数値に置換することによって生成された高速変換行列を利用して、加算、減算及びシフト演算によりDCTを行う。また、本発明の他の実施形態による変換部120は、DCTに利用される変換行列の元素に2の累乗を乗じた後で四捨五入した元素から構成された高速変換行列を利用して、DCTを行う。
図2は、本発明の一実施形態による4ポイント、8ポイント、16ポイント、32ポイントDCTのフローグラフである。図2を参照すれば、f0ないしf31は、一次元DCTの入力値を表すと共に、一次元逆DCTの出力値となる。F0ないしF31は、一次元DCTの出力値を表すと共に、一次元逆DCTの入力値となる。DCT時に、データ処理方向は、左側から右側であり、逆DCT時に、データ処理方向は、右側から左側である。点で交差する二本のラインは、二つの数の加算を表す。各ライン上の値は、当該係数による乗算を表す。cθは、cosθ、sθは、sinθを表し、‘−’は、否定を表す。点線で表示された210は、4ポイント一次元DCTのフローグラフ、点線で表示された220は、8ポイント一次元DCTのフローグラフ、点線で表示された230は、16ポイント一次元DCTのフローグラフ、点線で表示された240は、32ポイント一次元DCTのフローグラフを示す。
フローグラフ200に示したDCTの短所は、cθ及びsθがθの値によって無理数となるため、演算複雑度が増加するというものである。かかるDCT過程は、ハードウェアで具現する時に複雑度を増加させる。したがって、本発明の一実施形態による変換部120は、DCTに利用される元素の三角関数値を、有理数値に置換することによって、本来のDCT行列と類似した高速変換行列を生成する。また、本発明の他の実施形態による変換部120は、DCTに利用される元素に所定の定数、例えば、2^nを乗じた後で四捨五入することによって、高速変換行列を生成する。
具体的に、図2を参照すれば、Nが16である場合、すなわち、16×16サイズの入力ブロックに対する一次元DCTの実行時に、フローグラフ230によって、入力ブロックの16個の行単位及び16個の列単位別に一次元DCTが行われる。16個の入力値をf=[f0,f1,f2,…,f14,f15]、変換結果値をF=[F0,F1,F2,…,F14,F15]、フローグラフ230による入力値に対する変換過程を表した変換行列をOriginal_Aとすれば、一次元DCTは、F=Original_Axfで表現される。
前述したように、cosθ及びsinθは、θの値によって無理数となるため、本発明の一実施形態による変換部120は、変換行列Original_Aの元素に含まれたcosθ及びsinθを有理数値に置換する。具体的に、変換部120は、N=16の場合、cos0はa0に、cos(π×(1/2)/16)はa1に、cos(π×(2/2)/16)はa2に、cos(π×(3/2)/16)はa3に、cos(π×(4/2)/16)はa4に、cos(π×(5/2)/16)はa5に、cos(π×(6/2)/16)はa6に、cos(π×(7/2)/16)はa7に、cos(π×(8/2)/16)はa8に、cos(π×(9/2)/16)はa9に、cos(π×(10/2)/16)はa10に、cos(π×(11/2)/16)はa11に、cos(π×(12/2)/16)はa12に、cos(π×(13/2)/16)はa13に、cos(π×(14/2)/16)はa14に、cos(π×(15/2)/16)はa15に置換する。sinθ成分は、sinθ=cos(90−θ)のような関係を利用して、同様に変数aiに置換される。ここで、変数aiは、有理数であり、かつ分母は、シフト演算が可能な2の累乗の値を有することが望ましい。このように、変数aiが2の累乗形態の有理数である制限条件を設定する理由は、分母が2の累乗形態である場合、ライトシフト演算(>>)を利用して、変換過程時に必要な除算などを代替できるためである。
一例として、Nが16である場合、16個の変数aiは、次の値;a1=63/64,a2=62/64,a3=61/64,a4=59/64,a5=56/64,a6=53/64,a7=49/64,a8=45/64,a9=40/64,a10=35/64,a11=30/64,a12=24/64,a13=18/64,a14=12/64及びa15=6/64を有する。
Nが16である場合、すなわち、16×16入力ブロックに対して、置換された16×16変換行列Aを利用した一次元DCTを行うステップは、Xi(iは、0から15までの整数)が変換される入力値、Bi,Ci,Di,Ei,Fiが中間値、Yiが変換された結果値を表すとする時、次の演算過程のように表現される。
{
/stage 0
B0 = X0 + X15;B15 = X0 - X15;B1 = X1 + X14;B14 = X1 - X14;B2 = X2 + X13;B13 = X2 - X13;B3 = X3 + X12;B12 = X3 - X12;B4 = X4 + X11;B11 = X4 - X11;B5 = X5 + X10;B10 = X5 - X10;B6 = X6 + X9;B9 = X6 - X9;B7 = X7 + X8;B8 = X7 - X8;
/stage 1
C0 = B0 + B7;C7 = B0 - B7;C1 = B1 + B6;C6 = B1 - B6;C2 = B2 + B5;C5 = B2 - B5;C3 = B3 + B4;C4 = B3 - B4;C10 = ( 45 * ( B13 - B10 ) ) >> 6;C13 = ( 45 * ( B13 + B10 ) ) >> 6;C11 = ( 45 * ( B12 - B11 ) ) >> 6;C12 = ( 45 * ( B12 + B11 ) ) >> 6;
/stage 2
D0 = C0 + C3;D3 = C0 - C3;D8 = B8 + C11;D11 = B8 - C11;D12 = B15 - C12;D15 = B15 + C12;D1 = C1 + C2;D2 = C1 - C2;D9 = B9 + C10;D10 = B9 - C10;D13 = B14 - C13;D14 = B14 + C13;D5 = ( 45 * ( C6 - C5 ) ) >> 6;D6 = ( 45 * ( C6 + C5 ) ) >> 6;
/stage 3
Y0 = ( 45 * ( D0 + D1 ) ) >> 6;Y8 = ( 45 * ( D0 - D1 ) ) >> 6;Y4 = ( 59 * D3 + 24 * D2 ) >> 6;Y12 = ( 24 * D3 - 59 * D2 ) >> 6;E4 = C4 + D5;E5 = C4 - D5;E6 = C7 - D6;E7 = C7 + D6;E9 = ( 24 * D14 - 59 * D9 ) >> 6;E10 = (-59 * D13 - 24 * D10 ) >> 6;E13 = ( 24 * D13 - 59 * D10 ) >> 6;E14 = ( 59 * D14 + 24 * D9 ) >> 6;
/stage 4
Y2 = ( 12 * E4 + 62 * E7 ) >> 6;Y10 = ( 53 * E5 + 35 * E6 ) >> 6;Y6 = ( 53 * E6 - 35 * E5 ) >> 6;Y14 = ( 12 * E7 - 62 * E4 ) >> 6;F8 = D8 + E9;F9 = D8 - E9;F10 = D11 - E10;F11 = D11 + E10;F12 = D12 + E13;F13 = D12 - E13;F14 = D15 - E14;F15 = D15 + E14;
/stage 5
Y1 = ( 6 * F8 + 63 * F15 ) >> 6;Y9 = ( 49 * F9 + 40 * F14 ) >> 6;Y5 = ( 30 * F10 + 56 * F13 ) >> 6;Y13 = ( 61 * F11 + 18 * F12 ) >> 6;Y3 = ( 61 * F12 - 18 * F11 ) >> 6;Y11 = ( 30 * F13 - 56 * F10 ) >> 6;Y7 = ( 49 * F14 - 40 * F9 ) >> 6;Y15 = ( 6 * F15 - 63 * F8 ) >> 6;
}
他の例として、Nが32である場合も、前述したNが16である場合と同様に、32×32サイズのブロックの一次元DCTに利用される32×32変換行列Original_Aを構成する元素を、32個の変数ai(iは、0から31までの整数)に基づいた値に置換して、高速変換行列Aを生成する。再び図2を参照すれば、Nが32である場合、すなわち、32×32サイズの入力ブロックに対する一次元DCTの実行時に、フローグラフ240によって、入力ブロックの32個の行単位及び32個の列単位別に一次元DCTが行われる。32個の入力値をf=[f0,f1,f2,…,f30,f31]、変換結果値をF=[F0,F1,F2,…,F30,F31]、フローグラフ240による入力値に対する変換過程を表した変換行列をOriginal_Aとすれば、一次元DCTは、F=Original_Axfで表現される。本発明の一実施形態による変換部120は、32×32変換行列Original_Aを構成する元素の成分cos(π×(i/2)/32)(iは、0から31までの整数)を、有理数である32個の変数aiに置換して、高速変換行列Aを生成する。
Nが32である場合、32個の変数aiは、次の値;a1=255/256,a2=254/256,a3=253/256,a4=251/256,a5=248/256,a6=244/256,a7=241/256,a8=236/256,a9=231/256,a10=225/256,a11=219/256,a12=212/256,a13=205/256,a14=197/256,a15=189/256,a16=181/256,a17=171/256,a18=162/256,a19=152/256,a20=142/256,a21=131/256,a22=120/256,a23=109/256,a24=97/256,a25=86/256,a26=74/256,a27=62/256,a28=49/256,a29=37/256,a30=25/256及びa31=12/256を有する。
Nが32である場合、すなわち、32×32入力ブロックに対して、高速変換行列Aを利用した一次元DCTを行うステップは、Xi(iは、0から31までの整数)が変換される入力値、Ai,Bi,Ci,Di,Ei,Fiが中間値、Yiが変換された結果値を表すとする時、次の演算過程のように表現される。
{
/stage 0
A0 = X0 + X31;A31 = X0 - X31;A1 = X1 + X30;A30 = X1 - X30;A2 = X2 + X29;A29 = X2 - X29;A3 = X3 + X28;A28 = X3 - X28;A4 = X4 + X27;A27 = X4 - X27;A5 = X5 + X26;A26 = X5 - X26;A6 = X6 + X25;A25 = X6 - X25;A7 = X7 + X24;A24 = X7 - X24;A8 = X8 + X23;A23 = X8 - X23;A9 = X9 + X22;A22 = X9 - X22;A10 = X10 + X21;A21 = X10 - X21;A11 = X11 + X20;A20 = X11 - X20;A12 = X12 + X19;A19 = X12 - X19;A13 = X13 + X18;A18 = X13 - X18;A14 = X14 + X17;A17 = X14 - X17;A15 = X15 + X16;A16 = X15 - X16;
/stage 1
B0 = A0 + A15;B15 = A0 - A15;B1 = A1 + A14;B14 = A1 - A14;B2 = A2 + A13;B13 = A2 - A13;B3 = A3 + A12;B12 = A3 - A12;B4 = A4 + A11;B11 = A4 - A11;B5 = A5 + A10;B10 = A5 - A10;B6 = A6 + A9;B9 = A6 - A9;B7 = A7 + A8;B8 = A7 - A8;B20 = ( 181*( A27 - A20 ) ) >> 8;B27 = ( 181*( A27 + A20 ) ) >> 8;B21 = ( 181*( A26 - A21 ) ) >> 8;B26 = ( 181*( A26 + A21 ) ) >> 8;B22 = ( 181*( A25 - A22 ) ) >> 8;B25 = ( 181*( A25 + A22 ) ) >> 8;B23 = ( 181*( A24 - A23 ) ) >> 8;B24 = ( 181*( A24 + A23 ) ) >> 8;
/stage 2
C0 = B0 + B7;C7 = B0 - B7;C1 = B1 + B6;C6 = B1 - B6;C2 = B2 + B5;C5 = B2 - B5;C3 = B3 + B4;C4 = B3 - B4;C10 = ( 181*( B13 - B10 ) ) >> 8;C13 = ( 181*( B13 + B10 ) ) >> 8;C11 = ( 181*( B12 - B11 ) ) >> 8;C12 = ( 181*( B12 + B11 ) ) >> 8;C16 = A16 + B23;C23 = A16 - B23;C24 = A31 - B24;C31 = A31 + B24;C17 = A17 + B22;C22 = A17 - B22;C25 = A30 - B25;C30 = A30 + B25;C18 = A18 + B21;C21 = A18 - B21;C26 = A29 - B26;C29 = A29 + B26;C19 = A19 + B20;C20 = A19 - B20;C27 = A28 - B27;C28 = A28 + B27;
/stage 3
D0 = C0 + C3;D3 = C0 - C3;D8 = B8 + C11;D11 = B8 - C11;D12 = B15 - C12;D15 = B15 + C12;D1 = C1 + C2;D2 = C1 - C2;D9 = B9 + C10;D10 = B9 - C10;D13 = B14 - C13;D14 = B14 + C13;D5 = ( 181*( C6 - C5 ) ) >> 8;D6 = ( 181*( C6 + C5 ) ) >> 8;D18 = ( 97*C29 - 236*C18 ) >> 8;D20 = ( - 236*C27 - 97*C20 ) >> 8;D26 = (- 236*C21 + 97*C26 ) >> 8;D28 = ( 97*C19 + 236*C28 ) >> 8;D19 = ( 97*C28 - 236*C19 ) >> 8;D21 = (- 236*C26 - 97*C21 ) >> 8;D27 = (- 236*C20 + 97*C27 ) >> 8;D29 = ( 97*C18 + 236*C29 ) >> 8;
/stage 4
Y0 = ( 181*( D0 + D1 ) ) >> 8;Y16 = ( 181*( D0 - D1 ) ) >> 8;Y8 = ( 236*D3 + 97*D2 ) >> 8;Y24 = ( 97*D3 - 236*D2 ) >> 8;E4 = C4 + D5;E5 = C4 - D5;E6 = C7 - D6;E7 = C7 + D6;E9 = ( 97*D14 - 236*D9 ) >> 8;E10 =(-236*D13 - 97*D10) >> 8;E13 = (97*D13 - 236*D10 ) >> 8;E14 = ( 236*D14 + 97*D9 ) >> 8;E16 = C16 + D19;E19 = C16 - D19;E20 = C23 - D20;E23 = C23 + D20;E24 = C24 + D27;E27 = C24 - D27;E28 = C31 - D28;E31 = C31 + D28;E17 = C17 + D18;E18 = C17 - D18;E21 = C22 - D21;E22 = C22 + D21;E25 = C25 + D26;E26 = C25 - D26;E29 = C30 - D29;E30 = C30 + D29;
/stage 5
Y4 = ( 49*E4 + 251*E7 ) >> 8;Y20 = ( 212*E5 + 142*E6 ) >> 8;Y12 = ( 212*E6 - 142*E5 ) >> 8;Y28 = ( 49*E7 - 251*E4 ) >> 8;F8 = D8 + E9;F9 = D8 - E9;F10 = D11 - E10;F11 = D11 + E10;F12 = D12 + E13;F13 = D12 - E13;F14 = D15 - E14;F15 = D15 + E14;F17 = ( 49*E30 - 251*E17 ) >> 8;F18 = ( - 251*E29 - 49*E18 ) >> 8;F21 = ( 212*E26 - 142*E21 ) >> 8;F22 = ( - 142*E25 - 212*E22 ) >> 8;F25 = ( 212*E25 - 142*E22 ) >> 8;F26 = ( 142*E26 + 212*E21 ) >> 8;F29 = ( 49*E29 - 251*E18 ) >> 8;F30 = ( 251*E30 + 49*E17 ) >> 8;
/stage 6
Y2 = ( 25*F8 + 254*F15 ) >> 8;Y18 = ( 197*F9 + 162*F14 ) >> 8;Y10 = ( 120*F10 + 225*F13 ) >> 8;Y26 = ( 244*F11 + 74*F12 ) >> 8;Y6 = ( 244*F12 - 74*F11 ) >> 8;Y22 = ( 120*F13 - 225*F10 ) >> 8;Y14 = ( 197*F14 - 162*F9 ) >> 8;Y30 = ( 25*F15 - 254*F8 ) >> 8;G16 = E16 + F17;G17 = E16 - F17;G18 = E19 - F18;G19 = E19 + F18;G20 = E20 + F21;G21 = E20 - F21;G22 = E23 - F22;G23 = E23 + F22;G24 = E24 + F25;G25 = E24 - F25;G26 = E27 - F26;G27 = E27 + F26;G28 = E28 + F29;G29 = E28 - F29;G30 = E31 - F30;G31 = E31 + F30;
/stage 7
Y1 = ( 12*G16 + 255*G31 ) >> 8;Y17 = ( 189*G17 + 171*G30 ) >> 8;Y9 = ( 109*G18 + 231*G29 ) >> 8;Y25 = ( 241*G19 + 86*G28 ) >> 8;Y5 = ( 62*G20 + 248*G27 ) >> 8;Y21 = ( 219*G21 + 131*G26 ) >> 8;Y13 = ( 152*G22 + 205*G25 ) >> 8;Y29 = ( 253*G23 + 37*G24 ) >> 8;Y3 = ( 253*G24 - 37*G23 ) >> 8;Y19 = ( 152*G25 - 205*G22 ) >> 8;Y11 = ( 219*G26 - 131*G21 ) >> 8;Y27 = ( 62*G27 - 248*G20 ) >> 8;Y7 = ( 241*G28 - 86*G19 ) >> 8;Y23 = ( 109*G29 - 231*G18 ) >> 8;Y15 = ( 189*G30 - 171*G17 ) >> 8;Y31 = ( 12*G31 - 255*G16 ) >> 8;
}
前述したように、本発明の他の実施形態による変換部120は、DCTに利用される元素に2^nを乗じた後で四捨五入することによって、高速変換行列を生成する。具体的に、一次元DCTに利用される変換行列Original_Aを構成する元素に2^n(nは、整数)を乗じた後で四捨五入する次の数式;A=round(Original_A*2^n)によって、DCT行列Original_Aの元素の値を変換して、高速変換行列Aを生成する。
一方、本発明の実施形態による変換部120は、本来のN×N変換行列Original_Aの代わりに、高速変換行列Aを利用して変換を行うので、本来のN×N変換行列Original_Aによる結果値と、置換された変換行列Aによる結果値との間には、誤差が発生する。したがって、本発明の一実施形態によれば、量子化ステップで、変換ブロックに対するスケーリングを行うことによって、かかる誤差を最小化する。
図3は、本発明の一実施形態によるスケーリング行列を生成する方法を示すフローチャートである。図3を参照すれば、ステップ310で、各i番目の行の元素がSi(iは、1からNまでの整数)の値を有するN×Nサイズの中間行列Sの各元素と、N×Nサイズの高速変換行列Aの同一位置の元素とをそれぞれ乗じた値
Figure 2014233095
と、本来のN×N変換行列Original_Aとの差である変換誤差行列
Figure 2014233095
を獲得する。
Figure 2014233095
は、元素単位乗算(element-by-element multiplication, element-wise multiplication)を表すものであって、行列の同一位置の元素が乗じられる。
例えば、16×16サイズの中間行列Sは、下記の通りである。
Figure 2014233095
ステップ320で、変換誤差行列
Figure 2014233095
の対角成分を除いた残りの元素の自乗和を最小にするSi値を獲得する。Si値は、多様な最適化アルゴリズムを利用して決定される。一例として、S1の初期値を(1/4*2^(1/2))とし、Nelder-Mead Sipmlex方法のような最適化アルゴリズムを適用して、Si値を決定する。
ステップ330で、獲得されたSi値を適用したN×Nサイズの中間行列Sの各元素と、中間行列Sの転置行列Sの同一位置の元素とをそれぞれ乗じた行列
Figure 2014233095
に基づいて、スケーリング行列を生成する。
中間行列Sの各元素と、中間行列の転置行列Sの同一位置の元素とを乗じた行列
Figure 2014233095
とすれば、スケーリング行列MFは、次の数式;MF=PF*2^m/Qstepのように計算される。ここで、Qstepは、量子化ステップ、mは、正の整数である。
図4Aないし図4Fは、本発明の一実施形態によって、16×16ブロックの変換時に利用される量子化パラメータQPによるスケーリング行列MFの例を示す。図4では、スケーリング行列の計算時に、m=10の場合である。
図4Aないし図4Fに示したようなスケーリング行列MFは、全ての量子化ステップに対して定義される必要なしに、最初の6ステップのQstep値である0.625,0.6875,0.8125,0.875,1,1.25に対して定義される。なぜならば、量子化パラメータQPが6増加すれば、量子化ステップQstepが2倍に増加するため、スケーリング行列MFは、最初の6ステップのQstep値に対して定義され、残りのQPによるスケーリング行列MFは、(QP mod 6)値によって選択される。また、図4Aないし図4Fに示したスケーリング行列MFは、一実施形態に過ぎず、図示したスケーリング行列MFの各元素は、±1,±2の範囲内で調節される。
かかるスケーリング行列MFは、32×32ブロックに対しても、前述した16×16ブロックに対するスケーリング行列を求める過程と類似した過程を通じて獲得される。図5Aないし図5Fは、かかる過程を通じて獲得された32×32ブロックに適用される量子化パラメータQPによるスケーリング行列MFの例を示す。また、図5Aないし図5Fに示したスケーリング行列MFは、一実施形態に過ぎず、図示したスケーリング行列MFの各元素は、±1,±2の範囲内で調節される。一方、本発明の一実施形態によれば、ブロックサイズごとに別途のスケーリング行列MFを適用するものではなく、所定サイズのブロックのみに対して、量子化パラメータQPを基準として、6個のスケーリング行列MFを設定した後、所定サイズのブロックより小さいか、または大きいブロックのスケーリング行列は、所定サイズのブロックとのサイズ割合によって、所定サイズのブロックに対して設定されたスケーリング行列の元素を増加または減少させたスケーリング行列MFを利用する。すなわち、M×Mブロックに対して、量子化パラメータによって、6個のスケーリング行列MFを設定した後、N×Nブロックに対するスケーリング行列としては、M×Mブロックに対して設定されたスケーリング行列の各元素を(M/N)倍したスケーリング行列を利用する。例えば、32×32ブロックに対して、スケーリング行列MFを設定した場合、2×2、4×4、8×8、16×16ブロックは、32×32ブロックに対して設定されたスケーリング行列MFの各元素を16倍、8倍、4倍及び2倍増加させたスケーリング行列を利用する。同様に、32×32ブロックに対して、スケーリング行列MFを設定した場合、64×64、128×128ブロックは、32×32ブロックに対して設定されたスケーリング行列MFの各元素を(1/2)倍及び(1/4)倍減少させたスケーリング行列を利用する。このように、所定サイズのブロックのみに対して、スケーリング行列を設定し、他のサイズのブロックの場合、サイズ割合によって増加または減少したスケーリング行列を利用する場合、ブロックサイズによるスケーリング行列の元素値間の割合ほど、量子化または逆量子化を行って、本来の値に復元する。前述したように、所定サイズのブロックのみに対して、スケーリング行列を設定し、他のサイズのブロックの場合、サイズ割合によって増加または減少したスケーリング行列を利用する場合、スケーリング行列MFの保存のためのメモリを減少させることができるので、効率的である。
前述したように、量子化部130は、変換部120で高速変換行列Aを利用した変換結果値と、実際の浮動小数点演算に基づいたDCT行列Original_Aを利用した変換結果値との誤差値を減少させるために、スケーリング行列MFまたは所定のスケーリング定数を適用して、変換ブロックに対するスケーリングを行う。具体的に、量子化部130は、スケーリング行列MF及びシフト演算を適用して、N×Nサイズのブロックを変換した変換ブロックに対するスケーリング及び量子化を同時に行う。量子化は、スケーリング行列MFと、N×Nサイズのブロックを変換した変換ブロックとを乗じた値に、所定のオフセットを加えた値を、次の数式;q=floor(QP/6)+mのqビットほど、ビットシフト演算することによって行われる。Zijを量子化された係数値、Wijを変換係数、fをオフセットとすれば、
Figure 2014233095
であり、
Figure 2014233095
である。ここで、‘.MF’は、行列の同一位置の元素を乗じるベクトル積演算を意味する。前述したように、ベクトル積演算は、
Figure 2014233095
のように表現されもする。
一方、逆量子化ステップでは、逆DCTに利用される本来のN×N逆変換行列Original_A−1と、N×N高速逆変換行列A−1との逆変換結果の差値を補正するためのデスケーリング行列及びシフト演算を適用して、逆量子化を行う。
本発明の一実施形態によれば、デスケーリング行列Vは、前述したスケーリング行列MFの生成時にも利用される中間行列Sの各元素と、中間行列の転置行列Sの同一位置の元素とをそれぞれ乗じた行列
Figure 2014233095
であるPFに基づいて生成される。具体的に、量子化ステップをQstep、中間行列Sの各元素と、中間行列の転置行列Sの同一位置の元素とをそれぞれ乗じた行列をPF、nは正の整数とする時、デスケーリング行列Vは、次の数式;V=Qstep*PF*2^nを通じて獲得される。
デスケーリング行列Vが決定されれば、デスケーリング及び逆量子化過程は、デスケーリング行列Vと、量子化された変換係数とを乗じた値に対して、floor(QP/6)(floor[x]は、xより小さいか、または同じ最大整数、QPは、量子化パラメータ)ビットほど、ビットシフト演算を通じて行われる。すなわち、Zijを量子化された係数値、Wijを変換係数とすれば、次の数式;Wij=(Zij).V<<floor(QP/6)を通じて、量子化された係数Zijを逆量子化したWijを獲得する。‘.V’は、行列の同一位置の元素を乗じるベクトル積演算を意味する。前述したように、ベクトル積演算は、
Figure 2014233095
のように表現されもする。
図6Aないし図6Fは、本発明の一実施形態によって、16×16ブロックに適用される量子化パラメータQPによるデスケーリング行列Vを示す。図6Aないし図6Fでは、デスケーリング行列の計算時に、m=10の場合を表す。デスケーリング行列Vも、図4のスケーリング行列のように、全ての量子化ステップに対して定義される必要なしに、最初の6ステップのQstep値である0.625,0.6875,0.8125,0.875,1,1.25に対して定義される。残りのQPによるデスケーリング行列Vは、(QP mod 6)値によって選択される。また、図6Aないし図6Fに示したデスケーリング行列Vは、一実施形態に過ぎず、図示したデスケーリング行列Vの各元素は、±1,±2の範囲内で調節される。
同様に、32×32入力ブロックに適用される量子化パラメータによるデスケーリング行列Vも、前述した16×16ブロックに適用されるデスケーリング行列Vの生成過程と類似した過程を通じて獲得される。図7Aないし図7Fは、本発明の一実施形態によって、32×32ブロックに適用される量子化パラメータQPによるデスケーリング行列Vの例を示す。また、図7Aないし図7Fに示したデスケーリング行列Vは、一実施形態に過ぎず、図示したデスケーリング行列Vの各元素は、±1,±2の範囲内で調節される。一方、本発明の一実施形態によれば、ブロックサイズごとに別途のデスケーリング行列Vを適用するものではなく、所定サイズのブロックのみに対して、量子化パラメータQPを基準として、6個のデスケーリング行列Vを設定した後、所定サイズのブロックより小さいか、または大きいブロックのデスケーリング行列は、所定サイズのブロックとのサイズ割合によって、所定サイズのブロックに対して設定されたデスケーリング行列の元素を増加または減少させたデスケーリング行列Vを利用する。すなわち、M×Mブロックに対して、量子化パラメータによって、6個のデスケーリング行列Vを設定した後、N×Nブロックに対するデスケーリング行列としては、M×Mブロックに対して設定されたデスケーリング行列の各元素を(M/N)倍したデスケーリング行列を利用する。例えば、32×32ブロックに対して、デスケーリング行列Vを設定した場合、2×2、4×4、8×8、16×16ブロックは、32×32ブロックに対して設定されたデスケーリング行列Vの各元素を16倍、8倍、4倍及び2倍増加させたデスケーリング行列を利用する。同様に、32×32ブロックに対して、デスケーリング行列Vを設定した場合、64×64、128×128ブロックは、32×32ブロックに対して設定されたデスケーリング行列MFの各元素を(1/2)倍及び(1/4)倍減少させたデスケーリング行列を利用する。このように、所定サイズのブロックのみに対して、デスケーリング行列を設定し、他のサイズのブロックの場合、サイズ割合によって増加または減少したデスケーリング行列を利用する場合、ブロックサイズによるデスケーリング行列の元素値間の割合ほど、量子化または逆量子化を行って、本来の値に復元する。前述したように、所定サイズのブロックのみに対して、デスケーリング行列を設定し、他のサイズのブロックの場合、サイズ割合によって増加または減少したデスケーリング行列を利用する場合、デスケーリング行列Vの保存のためのメモリを減少させることができるので、効率的である。
図8は、本発明の他の実施形態による32ポイントDCTのフローグラフである。図8において、x0ないしx31は、入力値、y0ないしy31は、DCTの出力値を表す。変換時に、データ処理方向は、左側から右側であり、逆変換時に、データ処理方向は、右側から左側である。点で交差する二本のラインは、二つの数の加算を表す。‘−’は、否定を表す。各ライン上の値R(θ)は、図9に示したようなバタフライ構造に基づいた演算過程を表す。
図9は、図8の32ポイントDCTを構成するバタフライ構造の演算過程を示す参照図である。図9を参照すれば、バタフライ構造の演算は、入力値[X1,X2]に対して、次の数式;
Figure 2014233095
のような演算を通じて、出力値[Y1,Y2]を出力するものである。
図8のフローグラフによってDCTを行う場合、R(θ)によってcosθ及びsinθが利用される。前述した図2のフローグラフを利用した変換過程と同様に、変換部120は、θ値によるcosθ及びsinθ値を、分母が2の累乗である有理数を利用して代替した高速変換行列A、または図8のフローグラフによるDCTの各元素に2^nを乗じた後で四捨五入して生成された高速変換行列Aを利用して、加算、減算及びシフト演算のみを行って、入力ブロックに対するDCTを行う。
具体的に、32×32入力ブロックに対して、高速変換行列Aを利用した一次元DCTを行うステップは、Xi(iは、0から31までの整数)が変換される入力値、Ai,Bi,Ci,Di,Eiが中間値、Yiが変換された結果値を表すとする時、次の演算過程のように表現される。
{
/stage 0
A0 = X0 + X15;A1 = X1 + X14; A2 = X2 + X13;A3 = X3 + X12;A4 = X4 + X11;A5 = X5 + X10;A6 = X6 + X9;A7 = X7 + X8;A8 = X7 - X8;A9 = X6 - X9;A10 = X5 - X10;A11 = X4 - X11;A12 = X3 - X12;A13 = X2 - X13;A14 = X1 - X14;A15 = X0 - X15;
/stage 1
B0 = A0 + A7;B7 = A0 - A7;B1 = A1 + A6;B6 = A1 - A6;B2 = A2 + A5;B5 = A2 - A5;B3 = A3 + A4;B4 = A3 - A4;
B8 = (49*A8 + 40*A15) >> 6;B15 = (-40*A8 + 49*A15) >> 6;B9 = (30*A9 - 56*A14) >> 6;B14 = (56*A9 + 30*A14) >> 6;B10 = (61*A10 + 18*A13) >> 6;B13 = (-18*A10 + 61*A13) >> 6;B11 = (6*A11 - 63*A12) >> 6;B12 = (63*A11 + 6*A12) >> 6;
/stage 2
C0 = B0 + B3;C3 = B0 - B3;C1 = B1 + B2;C2 = B1 - B2;
C4 = (6*B4 + 31*B7, 5);C7 = (-31*B4 + 6*B7, 5);C5 = (35*B5 + 53*B6) >> 6;C6 = (-53*B5 + 35*B6) >> 6;
C8 = B8 + B11;C11 = B8 - B11;C9 = B9 + B10;C10 = B9 - B10;
C12 = B12 + B15;C15 = B12 - B15;C13 = B13 + B14;C14 = B13 - B14;
/stage 3
D0 = (45*(C0 + C1)) >> 6;D1 = (45*(-C0 + C1)) >> 6;
D2 = (24*C2 + 59*C3) >> 6;D3 = (-59*C2 + 24*C3) >> 6;
D4 = C4 + C5;D5 = C4 - C5;D6 = -C6 + C7;D7 = C6 + C7;
D8 = C8 + C14;D14 = C8 - C14;D9 = C9 + C15;D15 = C9 - C15;D10 = C10 + C11; D11 = C10 - C11;D12 = C12 + C13;D13 = C12 - C13;
/stage 4
E5 = (45*(D5 + D7)) >> 6;E7 = (45*(-D5 + D7)) >> 6;
E8 = (24*D8 - 59*D9) >> 6;E9 = (59*D8 + 24*D9) >> 6;
E11 = (45*(D11 + D12)) >> 6;E12 = (45*(-D11 + D12)) >> 6;
E14 = (24*D14 - 59*D15) >> 6;E15 = (59*D14 + 24*D15) >> 6;
/stage 5
Y0 = D0;Y8 = -D1;Y4 = D2;Y12 = D3;Y2 = D4;Y6 = E5;Y14 = D6;Y10 = -E7;Y3 = E8;Y13 = E9;Y9 = D10;Y15 = E11;Y1 = E12;Y7 = D13;Y11 = -E14;Y5 = E15;
}
一方、本発明の他の実施形態による量子化部130は、変換ブロックに所定のスケーリング定数を乗じて、スケーリングを行う。具体的に、量子化部130は、スケーリング定数QMat及びシフト演算を適用して、N×N変換ブロックに対するスケーリング及び量子化を同時に行う。量子化及びスケーリングは、スケーリング定数QMatと、N×N変換ブロックとを乗じた値に、所定のオフセットを加えた値を、次の数式;q=floor(QP/6)+mのqビットほど、ビットシフト演算することによって行われる。Zijを量子化された係数値、Wijを変換係数、fをオフセットとすれば、
Figure 2014233095
であり、
Figure 2014233095
である。
スケーリング定数QMatは、量子化パラメータQPに基づいて選択され、スケーリング定数QMatは、全ての量子化ステップに対して定義される必要なしに、最初の6ステップのQstep値である0.625,0.6875,0.8125,0.875,1,1.25に対して定義される。前述したように、量子化パラメータQPが6増加すれば、量子化ステップQstepが2倍に増加するので、スケーリング定数QMatは、最初の6ステップのQstep値に対して定義され、残りのQPによるスケーリング定数QMatは、(QP mod 6)値によって選択される。
一例として、i=(QP mod 6)と仮定する場合、前述した図2または図8のフローグラフによって、DCTされた16×16変換ブロックのスケーリングのためのスケーリング定数QMatiは、下記のように定義される。
QMat0=81,QMat1=89,QMat2=105,QMat3=113,QMat4=129;QMat5=146
スケーリング定数QMatiは、前記の例に限定されず、±1,±2の範囲内で調節される。すなわち、前述した例に限定されず、スケーリング定数QMatiは、QMati±1,QMati±2の範囲内で調節される。
また、前述した図2または図8のフローグラフによって、DCTされた32×32変換ブロックのスケーリングのためのスケーリング定数QMatiは、下記のように定義される。
QMat0=40,QMat1=44,QMat2=52,QMat3=56,QMat4=64;QMat5=72
スケーリング定数Qmatiは、前記の例に限定されず、±1,±2の範囲内で調節される。すなわち、前述した例に限定されず、スケーリング定数QMatiは、QMati±1,QMati±2の範囲内で調節される。一例として、QMat0=40,QMat1=45,QMat2=51,QMat3=57,QMat4=64;QMat5=72が、スケーリング定数Qmatiとして利用される。
一方、逆量子化ステップでは、逆DCTに利用される本来のN×N逆変換行列Original_A−1と、N×N高速変換行列Aの逆行列であるN×N高速逆変換行列A−1との差値を補正するためのデスケーリング定数及びシフト演算を適用して、逆量子化を行う。
本発明の他の実施形態によれば、デスケーリング定数DQMatは、量子化パラメータQPによって決定される。デスケーリング定数DQMatが決定されれば、逆量子化及びデスケーリングは、デスケーリング定数DQMatと、量子化された変換係数とを乗じた値に対して、floor(QP/6)(floor[x]は、xより小さいか、または同じ最大整数、QPは、量子化パラメータ)ビットほど、ビートシフト演算を通じて行われる。すなわち、Zijを量子化された変換係数値、Wijを変換係数とすれば、次の数式;Wij=(Zij)*DQMat<<floor(QP/6)を通じて、量子化された係数Zijをデスケーリング及び逆量子化したWijを獲得する。
また、デスケーリング定数DQMatは、全ての量子化ステップに対して定義される必要なしに、最初の6ステップのQstep値である0.625,0.6875,0.8125,0.875,1,1.25に対して定義される。なぜならば、量子化パラメータQPが6増加すれば、量子化ステップQstepが2倍に増加するので、デスケーリング定数DQMatは、最初の6ステップのQstep値に対して定義され、残りのQPによるデスケーリング定数DQMatは、(QP mod 6)値によって選択される。
一例として、i=(QP mod 6)と仮定する場合、前述した図2または図8のフローグラフによって、DCTされた16×16変換ブロックのデスケーリングのためのスケーリング定数DQMatiは、下記のように定義される。
DQMat0=81,DQMat1=89,DQMat2=105,DQMat3=113,DQMat4=129;DQMat5=146
デスケーリング定数DQmatiは、前記の例に限定されず、±1,±2の範囲内で調節される。すなわち、前述した例に限定されず、デスケーリング定数DQMatiは、DQMati±1,DQMati±2の範囲内で調節される。
また、前述した図2または図8のフローグラフによって、DCTされた32×32変換ブロックのデスケーリングのためのデスケーリング定数DQMatiは、下記のように定義される。
DQMat0=40,DQMat1=44,DQMat2=52,DQMat3=56,DQMat4=64;DQMat5=72
デスケーリング定数DQmatiは、前記の例に限定されず、±1,±2の範囲内で調節される。すなわち、前述した例に限定されず、デスケーリング定数DQMatiは、DQMati±1,DQMati±2の範囲内で調節される。一例として、DQMat0=40,DQMat1=45,DQMat2=51,DQMat3=57,DQMat4=64;QMat5=72が、デスケーリング定数DQMatiとして利用される。
図10は、本発明の一実施形態によるビデオ符号化方法を示すフローチャートである。図10を参照すれば、ステップ1010で、変換部120は、N×N(Nは、整数)サイズのブロックの一次元DCTに利用されるN×N変換行列に基づいて、高速変換行列を生成する。前述したように、変換部120は、DCTに利用される変換行列の元素を、有理数値に置換したり、DCTに利用される変換行列の元素に2の累乗を乗じた後で四捨五入した元素から構成された高速変換行列を利用して、高速変換行列を生成する。
ステップ1020で、変換部120は、高速変換行列を利用して、N×Nサイズのブロックを変換して、N×N変換ブロックを生成する。
ステップ1030で、量子化部130は、一次元DCTに利用されるN×N変換行列と、高速変換行列との差値を補正するために、N×N変換ブロックに対するスケーリングを行う。前述したように、量子化部130は、変換部120で高速変換行列Aを利用した変換結果値と、実際の浮動小数点演算に基づいたDCT行列Original_Aを利用した変換結果値との誤差値を減少させるために、量子化パラメータQPによって決定されるスケーリング行列MFまたはスケーリング定数QMatを適用して、変換ブロックに対するスケーリングを行う。
図11は、本発明の一実施形態によるビデオ復号化装置を示すブロック図である。図11を参照すれば、本発明の一実施形態によるビデオ復号化装置1100は、エントロピー復号化部1110、逆量子化部1120、逆変換部1130及び予測部1140を備える。
エントロピー復号化部1110は、入力ビットストリームから、復号化される現在ブロックの予測モード情報、参照ピクチャー情報及びレジデュアル情報を抽出する。
逆量子化部1120は、エントロピー復号化部110でエントロピー復号化された量子化された変換係数を逆量子化する。特に、本発明の一実施形態による逆量子化部1120は、量子化されたN×N変換ブロックの一次元逆DCTに利用されるN×N逆変換行列と、N×N逆変換行列に基づいて生成される高速逆変換行列との差値を補正するために、N×N変換ブロックに対するデスケーリングを行う。
逆変換部1130は、逆量子化された変換係数を逆変換する。逆変換の結果、ブロック単位に対するレジデュアル値が復元される。逆変換過程は、本発明の多様な実施形態を通じて獲得されたN×N高速変換行列Aの逆行列A−1を利用したNポイント逆DCTを通じて行われる。逆変換部1130は、逆DCTに利用される逆変換行列の元素を、有理数値に置換したり、逆DCTに利用される逆変換行列の元素に2の累乗を乗じた後で四捨五入した元素を利用して生成された高速逆変換行列を利用して、逆DCTを行う。
前述した図2のフローグラフによって、変換された16×16変換ブロックの逆DCT過程は、Xi(iは、0から15までの整数)が入力値、Bi,Ci,Di,Ei,Fiが中間値、Yiが逆変換結果値を表すとする時、次の演算過程のように表現される。
{
/stage 0
F8 = ( 6*X1 - 63*X15 ) >> 6;F9 = ( 49*X9 - 40*X7 ) >> 6;F10 = ( 30*X5 - 56*X11 ) >> 6;F11 = ( 61*X13 - 18*X3 ) >> 6;F12 = ( 61*X3 + 18*X13 ) >> 6;F13 = ( 30*X11 + 56*X5 ) >> 6;F14 = ( 49*X7 + 40*X9 ) >> 6;F15 = ( 6*X15 + 63*X1 ) >> 6;
/stage 1
E4 = ( 12*X2 - 62*X14 ) >> 6;E5 = ( 53*X10 - 35*X6 ) >> 6;E6 = ( 53*X6 + 35*X10 ) >> 6;E7 = ( 12*X14 + 62*X2 ) >> 6;E8 = F8 + F9;E9 = F8 - F9;E10 = F11 - F10;E11 = F11 + F10;E12 = F12 + F13;E13 = F12 - F13;E14 = F15 - F14;E15 = F15 + F14;
/stage 2
D0 = ( 45*( X0 + X8 ) ) >> 6;D1 = ( 45*( X0 - X8 ) ) >> 6;D2 = ( 24*X4 - 59*X12 ) >> 6;D3 = ( 59*X4 + 24*X12 ) >> 6;D4 = E4 + E5;D5 = E4 - E5;D6 = E7 - E6;D7 = E7 + E6;D9 = ( 24*E14 - 59*E9 ) >> 6;D10 = ( - 59*E13 - 24*E10 ) >> 6;D13 = ( 24*E13 - 59*E10 ) >> 6;D14 = ( 59*E14 + 24*E9 ) >> 6;
/stage 3
C0 = D0 + D3;C3 = D0 - D3;C8 = E8 + E11;C11 = E8 - E11;C12 = E15 - E12;C15 = E15 + E12;C1 = D1 + D2;C2 = D1 - D2;C9 = D9 + D10;C10 = D9 - D10;C13 = D14 - D13;C14 = D14 + D13;C5 = ( 45*( D6 - D5 ) ) >> 6;C6 = ( 45*( D6 + D5 ) ) >> 6;
/stage 4
B0 = C0 + D7;B7 = C0 - D7;B1 = C1 + C6;B6 = C1 - C6;B2 = C2 + C5;B5 = C2 - C5;B3 = C3 + D4;B4 = C3 - D4;B10 = ( 45*( C13 - C10 ) ) >> 6;B13 = ( 45*( C13 + C10 ) ) >> 6;B11 = ( 45*( C12 - C11 ) ) >> 6;B12 = ( 45*( C12 + C11 ) ) >> 6;
/stage 5
Y0 = B0 + C15;Y15 = B0 - C15;Y1 = B1 + C14;Y14 = B1 - C14;Y2 = B2 + B13;Y13 = B2 - B13;Y3 = B3 + B12;Y12 = B3 - B12;Y4 = B4 + B11;Y11 = B4 - B11;Y5 = B5 + B10;Y10 = B5 - B10;Y6 = B6 + C9;Y9 = B6 - C9;Y7 = B7 + C8;Y8 = B7 - C8;
}
また、前述した図2のフローグラフによって、変換された32×32変換ブロックの逆DCT過程は、Xi(iは、0から31までの整数)が入力値、Ai,Bi,Ci,Di,Ei,Fiが中間値、Yiが逆変換結果値を表すとする時、次の演算過程のように表現される。
{
/stage 0
G16 = ( 12*X1 - 255*X31) >> 8;G17 = ( 189*X17 - 171*X15) >> 8;G18 = ( 109*X9 - 231*X23) >> 8;G19 = ( 241*X25 - 86*X7) >> 8;G20 = ( 62*X5 - 248*X27) >> 8;G21 = ( 219*X21 - 131*X11) >> 8;G22 = ( 152*X13 - 205*X19) >> 8;G23 = ( 253*X29 - 37*X3) >> 8;G24 = ( 253*X3 + 37*X29) >> 8;G25 = ( 152*X19 + 205*X13) >> 8;G26 = ( 219*X11 + 131*X21) >> 8;G27 = ( 62*X27 + 248*X5) >> 8;G28 = ( 241*X7 + 86*X25) >> 8;G29 = ( 109*X23 + 231*X9) >> 8;G30 = ( 189*X15 + 171*X17) >> 8;G31 = ( 12*X31 + 255*X1) >> 8;
/stage 1
F8 = ( 25*X2 - 254*X30) >> 8;F9 = ( 197*X18 - 162*X14) >> 8;F10 = ( 120*X10 - 225*X22) >> 8;F11 = ( 244*X26 - 74*X6) >> 8;F12 = ( 244*X6 + 74*X26) >> 8;F13 = ( 120*X22 + 225*X10) >> 8;F14 = ( 197*X14 + 162*X18) >> 8;F15 = ( 25*X30 + 254*X2) >> 8;F16 = G16 + G17;F17 = G16 - G17;F18 = G19 - G18;F19 = G19 + G18;F20 = G20 + G21;F21 = G20 - G21;F22 = G23 - G22;F23 = G23 + G22;F24 = G24 + G25;F25 = G24 - G25;F26 = G27 - G26;F27 = G27 + G26;F28 = G28 + G29;F29 = G28 - G29;F30 = G31 - G30;F31 = G31 + G30;
/stage 2
E4 = ( 49*X4 - 251*X28) >> 8;E5 = ( 212*X20 - 142*X12) >> 8;E6 = ( 212*X12 + 142*X20) >> 8;E7 = ( 49*X28 + 251*X4) >> 8;E8 = F8 + F9;E9 = F8 - F9;E10 = F11 - F10;E11 = F11 + F10;E12 = F12 + F13;E13 = F12 - F13;E14 = F15 - F14;E15 = F15 + F14;E17 = ( 49*F30 - 251*F17) >> 8;E18 = ( - 251*F29 - 49*F18) >> 8;E21 = ( 212*F26 - 142*F21) >> 8;E22 = ( - 142*F25 - 212*F22) >> 8;E25 = ( 212*F25 - 142*F22) >> 8;E26 = ( 142*F26 + 212*F21) >> 8;E29 = ( 49*F29 - 251*F18) >> 8;E30 = ( 251*F30 + 49*F17) >> 8;
/stage 3
D0 = ( 181*( X0 + X16 )) >> 8;D1 = ( 181*( X0 - X16 )) >> 8;D2 = ( 97*X8 - 236*X24) >> 8;D3 = ( 236*X8 + 97*X24) >> 8;D4 = E4 + E5;D5 = E4 - E5;D6 = E7 - E6;D7 = E7 + E6;D9 = ( 97*E14 - 236*E9) >> 8;D10 = (-236*E13 - 97*E10) >> 8;D13 = ( 97*E13 - 236*E10) >> 8;D14 = (236*E14 + 97*E9) >> 8;D16 = F16 + F19;D19 = F16 - F19;D20 = F23 - F20;D23 = F23 + F20;D24 = F24 + F27;D27 = F24 - F27;D28 = F31 - F28;D31 = F31 + F28;D17 = E17 + E18;D18 = E17 - E18;D21 = E22 - E21;D22 = E22 + E21;D25 = E25 + E26;D26 = E25 - E26;D29 = E30 - E29;D30 = E30 + E29;
/stage 4
C0 = D0 + D3;C3 = D0 - D3;C8 = E8 + E11;C11 = E8 - E11;C12 = E15 - E12;C15 = E15 + E12;C1 = D1 + D2;C2 = D1 - D2;C9 = D9 + D10;C10 = D9 - D10;C13 = D14 - D13;C14 = D14 + D13;C5 = ( 181*( D6 - D5 )) >> 8;C6 = ( 181*( D6 + D5 )) >> 8;C18 = ( 97*D29 - 236*D18) >> 8;C20 = (- 236*D27 - 97*D20) >> 8;C26 = (- 236*D21 + 97*D26) >> 8;C28 = ( 97*D19 + 236*D28) >> 8;C19 = ( 97*D28 - 236*D19) >> 8;C21 = (- 236*D26 - 97*D21) >> 8;C27 = (- 236*D20 + 97*D27) >> 8;C29 = ( 97*D18 + 236*D29) >> 8;
/stage 5
B0 = C0 + D7;B7 = C0 - D7;B1 = C1 + C6;B6 = C1 - C6;B2 = C2 + C5;B5 = C2 - C5;B3 = C3 + D4;B4 = C3 - D4;B10 = ( 181*( C13 - C10 )) >> 8;B13 = ( 181*( C13 + C10 )) >> 8;B11 = ( 181*( C12 - C11 )) >> 8;B12 = ( 181*( C12 + C11 )) >> 8;B16 = D16 + D23;B23 = D16 - D23;B24 = D31 - D24;B31 = D31 + D24;B17 = D17 + D22;B22 = D17 - D22;B25 = D30 - D25;B30 = D30 + D25;B18 = C18 + C21;B21 = C18 - C21;B26 = C29 - C26;B29 = C29 + C26;B19 = C19 + C20;B20 = C19 - C20;B27 = C28 - C27;B28 = C28 + C27;
/stage 6
A0 = B0 + C15;A15 = B0 - C15;A1 = B1 + C14;A14 = B1 - C14;A2 = B2 + B13;A13 = B2 - B13;A3 = B3 + B12;A12 = B3 - B12;A4 = B4 + B11;A11 = B4 - B11;A5 = B5 + B10;A10 = B5 - B10;A6 = B6 + C9;A9 = B6 - C9;A7 = B7 + C8;A8 = B7 - C8;A20 = ( 181*( B27 - B20 )) >> 8;A27 = ( 181*( B27 + B20 )) >> 8;A21 = ( 181*( B26 - B21 )) >> 8;A26 = ( 181*( B26 + B21 )) >> 8;A22 = ( 181*( B25 - B22 )) >> 8;A25 = ( 181*( B25 + B22 )) >> 8;A23 = ( 181*( B24 - B23 )) >> 8;A24 = ( 181*( B24 + B23 )) >> 8;
/stage 7
Y0 = A0 + B31;Y31 = A0 - B31;Y1 = A1 + B30;Y30 = A1 - B30;Y2 = A2 + B29;Y29 = A2 - B29;Y3 = A3 + B28;Y28 = A3 - B28;Y4 = A4 + A27;Y27 = A4 - A27;Y5 = A5 + A26;Y26 = A5 - A26;Y6 = A6 + A25;Y25 = A6 - A25;Y7 = A7 + A24;Y24 = A7 - A24;Y8 = A8 + A23;Y23 = A8 - A23;Y9 = A9 + A22;Y22 = A9 - A22;Y10 = A10 + A21;Y21 = A10 - A21;Y11 = A11 + A20;Y20 = A11 - A20;Y12 = A12 + B19;Y19 = A12 - B19;Y13 = A13 + B18;Y18 = A13 - B18;Y14 = A14 + B17;Y17 = A14 - B17;Y15 = A15 + B16;Y16 = A15 - B16;
}
また、前述した図8のフローグラフによって、変換された16×16変換ブロックの逆DCT過程は、Xi(iは、0から15までの整数)が入力値、Ai,Bi,Ci,Di,Eiが中間値、Yiが逆変換結果値を表すとする時、次の演算過程のように表現される。
{
/stage 0
D0 = X0;D1 = -X8;D2 = X4;D3 = X12;D4 = X2;E5 = X6 ;D6 = X14;E7 = -X10;E8 = X3;E9 = X13;D10 = X9;E11 = X15;E12 = X1;D13 = X7;E14 = -X11;E15 = X5;
/stage 1
D5 = (45*(E5 - E7)) >> 6;D7 = (45*(E5 + E7)) >> 6;
D8 = (24*E8 + 59*E9) >> 6;D9 = (-59*E8 + 24*E9) >> 6;
D11 = (45*(E11 - E12)) >> 6;D12 = (45*(E11 + E12)) >> 6;
D14 = (24*E14 + 59*E15) >> 6;D15 = (-59*E14 + 24*E15) >> 6;
/stage 2
C0 = (45*(D0 - D1)) >> 6;C1 = (45*(D0 + D1)) >> 6;
C2 = (24*D2 - 59*D3) >> 6;C3 = (59*D2 + 24*D3) >> 6;
C4 = D4 + D5;C5 = D4 - D5;C6 = -D6 + D7;C7 = D6 + D7;
C8 = D8 + D14;C14 = D8 - D14;C9 = D9 + D15;C15 = D9 - D15;C10 = D10 + D11; C11 = D10 - D11;C12 = D12 + D13;C13 = D12 - D13;
/stage 3
B0 = C0 + C3;B3 = C0 - C3;B1 = C1 + C2;B2 = C1 - C2;
B4 = (6*C4 - 31*C7, 5);B7 = (31*C4 + 6*C7, 5);B5 = (35*C5 - 53*C6) >> 6;B6 = (53*C5 + 35*C6) >> 6;
B8 = C8 + C11;B11 = C8 - C11;B9 = C9 + C10;B10 = C9 - C10;
B12 = C12 + C15;B15 = C12 - C15;B13 = C13 + C14;B14 = C13 - C14;
/stage 4
A0 = B0 + B7;A7 = B0 - B7;A1 = B1 + B6;A6 = B1 - B6;A2 = B2 + B5;A5 = B2 - B5;A3 = B3 + B4;A4 = B3 - B4;
A8 = (49*B8 - 40*B15) >> 6;A15 = (40*B8 + 49*B15) >> 6;A9 = (30*B9 + 56*B14) >> 6;A14 = (-56*B9 + 30*B14) >> 6;A10 = (61*B10 - 18*B13) >> 6;A13 = (18*B10 + 61*B13) >> 6;A11 = (6*B11 + 63*B12) >> 6;A12 = (-63*B11 + 6*B12) >> 6;
/stage 5
Y0 = A0 + A15;Y1 = A1 + A14;Y2 = A2 + A13;Y3 = A3 + A12;Y4 = A4 + A11;Y5 = A5 + A10;Y6 = A6 + A9;Y7 = A7 + A8;Y8 = A7 - A8;Y9 = A6 - A9;Y10 = A5 - A10;Y11 = A4 - A11;Y12 = A3 - A12;Y13 = A2 - A13;Y14 = A1 - A14;Y15 = A0 - A15;
}
また、前述した図8のフローグラフによって、変換された32×32変換ブロックの逆DCT過程は、Xi(iは、0から31までの整数)が入力値、Zi,Ai,Bi,Ci,Di,Ei,Fiが中間値、Yiが逆変換結果値を表すとする時、次の演算過程のように表現される。
{
/stage 0
D0= X0;E24 = X1;E12 = X2;F16 = -X3;D4 = X4; F31 = X5; E8 = X6; E26 = -X7;D2 = X8; E21 = X9; E15 = X10; F29 = X11;E5 = X12; F18 = -X13; D13 = X14; D22 = X15;D1 = -X16; D25 = X17; D10 = X18; F19 = -X19;E7 = -X20; F28 = -X21 ; E14 = -X22; E20 = -X23;D3 = X24; E27 = -X25; E9 = X26; F30 = -X27;D6 = X28; F17 = -X29 ; E11 = X30; E23 = -X31;
/stage 1
E16 = (251*F16 + 49*F17) >> 8;E17 = (-49*F16 + 251*F17) >> 8;E18 = (212*F18 + 142*F19) >> 8;E19 = (-142*F18 + 212*F19) >> 8;
E28 = (212*F28 + 142*F29) >> 8;E29 = (-142*F28 + 212*F29) >> 8;E30 = (251*F30 + 49*F31) >> 8;E31 = (-49*F30 + 251*F31) >> 8;
/stage 2
D5 = (181*(E5 - E7)) >> 8;D7 = (181*(E5 + E7)) >> 8;
D8 = (97*E8 + 236*E9) >> 8;D9 = (-236*E8 + 97*E9) >> 8;
D11 = (181*(E11 - E12)) >> 8;D12 = (181*(E11 + E12)) >> 8;
D14 = (97*E14 + 236*E15) >> 8;D15 = (-236*E14 + 97*E15) >> 8;
D16 = E16 + E18;C18 = E16 - E18;C17 = E17 + E19;D19 = E17 - E19;
D20 = (236*E20 - 97*E21) >> 8;D21 = (97*E20 + 236*E21) >> 8;D23 = (181*(E23 - E24)) >> 8;D24 = (181*(E23 + E24)) >> 8;D26 = (236*E26 - 97*E27) >> 8;D27 = (97*E26 + 236*E27) >> 8;D28 = - E28 + E30;C30 = E28 + E30;C29 = - E29 + E31;D31 = E29 + E31;
/stage 3
C0 = (181*(D0 - D1)) >> 8;C1 = (181*(D0 + D1)) >> 8;
C2 = (97*D2 - 236*D3) >> 8;C3 = (236*D2 + 97*D3) >> 8;
C4 = D4 + D5;C5 = D4 - D5;C6 = -D6 + D7; C7 = D6 + D7;
C8 = D8 + D14;C14 = D8 - D14;C9 = D9 + D15;C15 = D9 - D15;C10 = D10 + D11; C11 = D10 - D11;C12 = D12 + D13;C13 = D12 - D13;
C16 = (181*(D16 - D19)) >> 8;C19 = (181*(D16 + D19)) >> 8;C20 = D20 + D26;C26 = D20 - D26;C21 = D21 + D27;C27 = D21 - D27;C22 = D22 + D23;C23 = D22 - D23;C24 = D24 + D25;C25 = D24 - D25;C28 = (181*(D28 - D31)) >> 8;C31 = (181*(D28 + D31)) >> 8;
/stage 4
B0 = C0 + C3;B3 = C0 - C3;B1 = C1 + C2;B2 = C1 - C2;
B4 = (49*C4 - 251*C7) >> 8;B7 = (251*C4 + 49*C7) >> 8;B5 = (142*C5 - 212*C6) >> 8;B6 = (212*C5 + 142*C6) >> 8;
B8 = C8 + C11;B11 = C8 - C11;B9 = C9 + C10;B10 = C9 - C10;
B12 = C12 + C15;B15 = C12 - C15;B13 = C13 + C14;B14 = C13 - C14;
B16 = C16 + C28;B28 = C16 - C28;B17 = C17 + C29;B29 = C17 - C29;B18 = C18 + C30;B30 = C18 - C30;B19 = C19 + C31;B31 = C19 - C31;
B20 = C20 + C23;B23 = C20 - C23;B21 = C21 + C22;B22 = C21 - C22;
B24 = C24 + C27;B27 = C24 - C27;B25 = C25 + C26;B26 = C25 - C26;
/stage 5
A0 = B0 + B7;A7 = B0 - B7;A1 = B1 + B6;A6 = B1 - B6;A2 = B2 + B5;A5 = B2 - B5;A3 = B3 + B4;A4 = B3 - B4;
A8 = (197*B8 - 162*B15) >> 8;A15 = (162*B8 + 197*B15) >> 8;A9 = (120*B9 + 225*B14) >> 8;A14 = (-225*B9 + 120*B14) >> 8;A10 = (244*B10 - 74*B13) >> 8;A13 = (74*B10 + 244*B13) >> 8;A11 = (25*B11 + 254*B12) >> 8;A12 = (-254*B11 + 25*B12) >> 8;
A16 = B16 + B23;A23 = B16 - B23;A17 = B17 + B22;A22 = B17 - B22;A18 = B18 + B21;A21 = B18 - B21;A19 = B19 + B20;A20 = B19 - B20;
A24 = B24 + B31;A31 = B24 - B31;A25 = B25 + B30;A30 = B25 - B30;A26 = B26 + B29;A29 = B26 - B29;A27 = B27 + B28;A28 = B27 - B28;
/stage 6
Z0 = A0 + A15;Z1 = A1 + A14;Z2 = A2 + A13;Z3 = A3 + A12;Z4 = A4 + A11;Z5 = A5 + A10;Z6 = A6 + A9;Z7 = A7 + A8;Z8 = A7 - A8;Z9 = A6 - A9;Z10 = A5 - A10;Z11 = A4 - A11;Z12 = A3 - A12;Z13 = A2 - A13;Z14 = A1 - A14;Z15 = A0 - A15;
Z16 = (171*A16 + 189*A31) >> 8;Z31 = (-189*A16 + 171*A31) >> 8;Z17 = (205*A17 - 152*A30) >> 8;Z30 = (152*A17 + 205*A30) >> 8;Z18 = (131*A18 + 219*A29) >> 8;Z29 = (-219*A18 + 131*A29) >> 8;Z19 = (231*A19 - 109*A28) >> 8;Z28 = (109*A19 + 231*A28) >> 8;Z20 = (86*A20 + 241*A27) >> 8;Z27 = (-241*A20 + 86*A27) >> 8;Z21 = (248*A21 - 62*A26) >> 8;Z26 = (62*A21 + 248*A26) >> 8;Z22 = (37*A22 + 253*A25) >> 8;Z25 = (-253*A22 + 37*A25) >> 8;Z23 = (255*A23 - 12*A24) >> 8;Z24 = (12*A23 + 255*A24) >> 8;
/stage 7
Y0 = Z0 + Z31;Y31 = Z0 - Z31;Y1 = Z1 + Z30;Y30 = Z1 - Z30;Y2 = Z2 + Z29;Y29 = Z2 - Z29;Y3 = Z3 + Z28;Y28 = Z3 - Z28;Y4 = Z4 + Z27;Y27 = Z4 - Z27;Y5 = Z5 + Z26;Y26 = Z5 - Z26;Y6 = Z6 + Z25;Y25 = Z6 - Z25;Y7 = Z7 + Z24;Y24 = Z7 - Z24;Y8 = Z8 + Z23;Y23 = Z8 - Z23;Y9 = Z9 + Z22;Y22 = Z9 - Z22;Y10 = Z10 + Z21;Y21 = Z10 - Z21;Y11 = Z11 + Z20;Y20 = Z11 - Z20;Y12 = Z12 + Z19;Y19 = Z12 - Z19;Y13 = Z13 + Z18;Y18 = Z13 - Z18;Y14 = Z14 + Z17;Y17 = Z14 - Z17;Y15 = Z15 + Z16;Y16 = Z15 - Z16;
}
図12は、本発明の一実施形態によるビデオ復号化方法を示すフローチャートである。図12を参照すれば、ステップ1210で、逆量子化部1120は、N×Nサイズの量子化された変換ブロックを受信し、ステップ1220で、量子化されたN×N変換ブロックの一次元逆DCTに利用されるN×N逆変換行列と、N×N逆変換行列に基づいて生成された高速逆変換行列との差値を補正するために、N×N変換ブロックに対するデスケーリングを行う。前述したように、デスケーリングは、逆量子化過程と同時に行われ、量子化パラメータQPによって決定されるデスケーリング行列Vまたはデスケーリング定数DQMatを適用して、量子化された変換係数に対するデスケーリングを行う。
ステップ1230で、逆変換部1130は、高速逆変換行列を利用して、デスケーリングされたN×N変換ブロックを逆変換して、N×N逆変換ブロックを生成する。前述したように、高速逆変換行列は、本発明の多様な実施形態を通じて獲得されたN×N高速変換行列Aの逆行列A−1であって、逆DCTに利用される逆変換行列の元素を、有理数値に置換したり、逆DCTに利用される逆変換行列の元素に2の累乗を乗じた後で四捨五入した元素を利用して生成された高速逆変換行列を利用して、逆DCTを行う。
以上のように、本発明は、たとえ限定された実施形態及び図面により説明されたとしても、本発明が前記の実施形態に限定されるものではなく、これは、当業者ならば、かかる記載から多様な修正及び変形が可能であろう。したがって、本発明の思想は、特許請求の範囲によってのみ把握されねばならず、これと均等または等価的な変形は、いずれも本発明の思想の範疇に属するといえる。また、本発明によるシステムは、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムにより読み取られるデータが保存される全ての種類の記録装置を含む。記録媒体の例としては、ROM(Read Only Memory)、RAM(Random Access Memory)、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードが保存されて実行される。
なお、上記実施形態について、次の付記を記す。
(付記1) ビデオの符号化方法において、
所定サイズのブロックの周波数変換に利用される変換行列に基づいて、高速変換行列を生成するステップと、
前記高速変換行列を利用して、前記所定サイズのブロックを変換して、変換ブロックを生成するステップと、
前記周波数変換に利用される変換行列と、前記高速変換行列との差値を補正するために、前記変換ブロックに対するスケーリングを行うステップと、を含むことを特徴とするビデオ符号化方法。
(付記2) 前記高速変換行列を生成するステップは、
前記周波数変換に利用される変換行列の元素のうち、三角関数に基づいた値を、分母が2の累乗である有理数に置換して、前記高速変換行列を生成することを特徴とする付記1に記載のビデオ符号化方法。
(付記3) 前記高速変換行列を生成するステップは、
前記周波数変換に利用される変換行列の元素それぞれに所定の定数を乗じた値を四捨五入して、前記高速変換行列を生成することを特徴とする付記1に記載のビデオ符号化方法。
(付記4) 前記スケーリングを行うステップは、
前記N×N変換ブロックと、所定のスケーリング行列とのベクトル積演算を利用したり、前記N×N変換ブロックに所定のスケーリング定数を乗じて行われることを特徴とする付記1に記載のビデオ符号化方法。
(付記5) 前記スケーリング行列及びスケーリング定数は、量子化パラメータに基づいて決定されることを特徴とする付記4に記載のビデオ符号化方法。
(付記6) 前記量子化パラメータをQPとする時、前記QPが0ないし5であるそれぞれの場合に対応する6個のスケーリング行列及びスケーリング定数が設定され、(QP mod 6)値によって、前記6個のスケーリング行列及びスケーリング定数のうち一つが選択されることを特徴とする付記5に記載のビデオ符号化方法。
(付記7) 前記スケーリング行列は、
所定サイズのM×M(Mは、整数)のブロックのみに対して、前記量子化パラメータQPを基準として、6個のスケーリング行列(MF)を設定し、前記所定サイズのブロックより小さいか、または大きいN×Nブロックに対するスケーリング行列としては、前記M×Mブロックに対して設定されたスケーリング行列の各元素を(M/N)倍したスケーリング行列を利用することを特徴とする付記4に記載のビデオ符号化方法。
(付記8) ビデオの復号化方法において、
所定サイズの量子化された変換ブロックを受信するステップと、
前記量子化された変換ブロックの周波数逆変換に利用される逆変換行列と、前記逆変換行列に基づいて生成される高速逆変換行列との差値を補正するために、前記変換ブロックに対するデスケーリングを行うステップと、
前記高速逆変換行列を利用して、前記デスケーリングされた変換ブロックを逆変換して、逆変換ブロックを生成するステップと、を含むことを特徴とするビデオ復号化方法。
(付記9) 前記高速逆変換行列を生成するステップは、
前記一次元離散コサイン逆変換に利用されるN×N逆変換行列の元素のうち、三角関数に基づいた値を、分母が2の累乗である有理数に置換して、前記高速逆変換行列を生成することを特徴とする付記8に記載のビデオ復号化方法。
(付記10) 前記高速逆変換行列を生成するステップは、
前記一次元離散コサイン逆変換に利用されるN×N逆変換行列の元素それぞれに2^n(nは、整数)を乗じた値を四捨五入して、前記高速逆変換行列を生成することを特徴とする付記8に記載のビデオ復号化方法。
(付記11) 前記デスケーリングを行うステップは、
前記量子化されたN×N変換ブロックと、所定のデスケーリング行列とのベクトル積演算を利用したり、前記N×N逆変換ブロックに所定のデスケーリング定数を乗じて行われることを特徴とする付記8に記載のビデオ復号化方法。
(付記12) 前記デスケーリング行列及びデスケーリング定数は、量子化パラメータに基づいて決定されることを特徴とする付記11に記載のビデオ復号化方法。
(付記13) 前記デスケーリング行列及びデスケーリング定数は、
前記量子化パラメータをQPとする時、前記QPが0ないし5であるそれぞれの場合に対応する6個のデスケーリング行列及びデスケーリング定数が設定され、(QP mod 6)値によって、前記6個のデスケーリング行列及びデスケーリング定数のうち一つが選択されることを特徴とする付記12に記載のビデオ復号化方法。
(付記14) 前記デスケーリング行列は、
所定サイズのM×Mのブロックのみに対して、前記量子化パラメータQPを基準として、6個のデスケーリング行列を設定し、前記所定サイズのブロックより小さいか、または大きいN×Nブロックに対するデスケーリング行列としては、前記M×Mブロックに対して設定されたデスケーリング行列の各元素を(M/N)倍したデスケーリング行列を利用することを特徴とする付記13に記載のビデオ復号化方法。
(付記15) 前記デスケーリング定数は、
i=(QP mod 6)とする時、デスケーリング定数DQMatiは、DQMat0=40,DQMat1=45,DQMat2=51,DQMat3=57,DQMat4=64,DQMat5=72であることを特徴とする付記13に記載のビデオ復号化方法。

Claims (2)

  1. ビデオの復号化方法において、
    量子化された変換係数を獲得するステップと、
    前記変換係数に適用される量子化パラメータを6で割った残り値に基づいて、前記変換係数の逆量子化に利用されるデスケーリング定数を決定するステップと、
    前記決定されたデスケーリング定数を利用して前記変換係数をデスケーリングする ステップと、
    前記デスケーリングされた変換係数に対する逆変換を行うステップとを含む
    ことを特徴とするビデオ復号化方法。
  2. 前記量子化パラメータをQPとする時、前記QPが0~5であるそれぞれの場合に対応する6つのデスケーリング定数が設定され、前記残り値iはi=(QP mod 6)であるとする時、前記iの値によるデスケーリング定数(DQMati)はDQMat0=40、DQMat1=45、DQMat2=51、DQMat3=57、DQMat4=64; DQMat5=72である
    ことを特徴とする請求項1に記載のビデオ復号化方法。
JP2014190191A 2010-09-28 2014-09-18 ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置 Pending JP2014233095A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38712810P 2010-09-28 2010-09-28
US61/387,128 2010-09-28

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013531492A Division JP5620587B2 (ja) 2010-09-28 2011-09-28 ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置

Publications (1)

Publication Number Publication Date
JP2014233095A true JP2014233095A (ja) 2014-12-11

Family

ID=45893663

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013531492A Active JP5620587B2 (ja) 2010-09-28 2011-09-28 ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
JP2014190191A Pending JP2014233095A (ja) 2010-09-28 2014-09-18 ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013531492A Active JP5620587B2 (ja) 2010-09-28 2011-09-28 ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置

Country Status (8)

Country Link
US (5) US9350997B2 (ja)
EP (2) EP2624556A4 (ja)
JP (2) JP5620587B2 (ja)
KR (4) KR101982819B1 (ja)
CN (3) CN105263028A (ja)
AU (1) AU2011308204A1 (ja)
BR (2) BR122020016581B1 (ja)
WO (1) WO2012044076A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017090968A1 (ko) * 2015-11-24 2017-06-01 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
WO2017090965A1 (ko) * 2015-11-24 2017-06-01 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
DK3300370T3 (da) 2012-02-29 2019-05-20 Sony Corp Anordning og fremgangsmåde til billedbehandling
US10194158B2 (en) * 2012-09-04 2019-01-29 Qualcomm Incorporated Transform basis adjustment in scalable video coding
US9554152B2 (en) * 2013-07-12 2017-01-24 Qualcomm Incorporated Concurrent processing of horizontal and vertical transforms
JP2018533284A (ja) * 2015-09-21 2018-11-08 エルジー エレクトロニクス インコーポレイティド 係数誘導予測を用いてビデオ信号を処理する方法及び装置
US10305717B2 (en) 2016-02-26 2019-05-28 VertoCOMM, Inc. Devices and methods using the hermetic transform for transmitting and receiving signals using multi-channel signaling
JP2019101264A (ja) * 2017-12-04 2019-06-24 シャープ株式会社 外部制御装置、音声対話型制御システム、制御方法、およびプログラム
CN112740688A (zh) * 2018-09-17 2021-04-30 韩国电子通信研究院 图像编码/解码方法和设备以及存储比特流的记录介质
CN111225206B (zh) * 2018-11-23 2021-10-26 华为技术有限公司 视频解码方法和视频解码器
WO2020251279A1 (ko) * 2019-06-11 2020-12-17 엘지전자 주식회사 스케일링 리스트 데이터의 시그널링 기반 비디오 또는 영상 코딩
WO2020251275A1 (ko) * 2019-06-11 2020-12-17 엘지전자 주식회사 스케일링 리스트 기반 비디오 또는 영상 코딩
MX2022001595A (es) 2019-08-06 2022-03-11 Op Solutions Llc Método de señalización implícita de gestión de resolución adaptativa basada en el tipo de trama.
CN114467305A (zh) * 2019-08-06 2022-05-10 Op方案有限责任公司 自适应分辨率管理预测重缩放
AU2020326881A1 (en) 2019-08-06 2022-03-24 Op Solutions, Llc Block-based adaptive resolution management
WO2021026324A1 (en) * 2019-08-06 2021-02-11 Op Solutions Adaptive resolution management prediction rescaling
CN114902671A (zh) 2019-11-08 2022-08-12 Op方案有限责任公司 用于自适应裁剪的方法和系统
KR20220098017A (ko) 2020-01-10 2022-07-08 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
JP7458489B2 (ja) * 2020-01-10 2024-03-29 エルジー エレクトロニクス インコーポレイティド 変換に基づく画像コーディング方法及びその装置
US20210329267A1 (en) * 2020-04-17 2021-10-21 Qualcomm Incorporated Parallelized rate-distortion optimized quantization using deep learning
WO2022220545A1 (ko) * 2021-04-12 2022-10-20 엘지전자 주식회사 저주파 비분리 변환 설계 방법 및 장치
CN117597934A (zh) * 2021-06-16 2024-02-23 Lg电子株式会社 用于设计低频不可分离变换的方法和装置
CN116366867A (zh) * 2021-12-28 2023-06-30 中国电信股份有限公司 数据变换与恢复方法、装置、系统、电子设备及存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539836A (en) * 1991-12-20 1996-07-23 Alaris Inc. Method and apparatus for the realization of two-dimensional discrete cosine transform for an 8*8 image fragment
EP0735772A3 (en) * 1995-03-27 1998-04-01 Hewlett-Packard Company Method for selecting JPEG quantization tables for low bandwidth applications
US6134270A (en) * 1997-06-13 2000-10-17 Sun Microsystems, Inc. Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
US7185037B2 (en) * 2001-08-23 2007-02-27 Texas Instruments Incorporated Video block transform
US7082450B2 (en) * 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7242713B2 (en) 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
CN1306818C (zh) * 2003-06-27 2007-03-21 中国科学院计算技术研究所 一种用于编码处理的8输入/输出的整数变换/反变换方法
US7298925B2 (en) * 2003-09-30 2007-11-20 International Business Machines Corporation Efficient scaling in transform domain
US20050074062A1 (en) * 2003-10-06 2005-04-07 Sung Chih-Ta Star Fast DCT method and apparatus for digital video compression
US7756351B2 (en) * 2003-12-19 2010-07-13 Stmicroelectronics, Inc. Low power, high performance transform coprocessor for video compression
US7487193B2 (en) * 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US7606427B2 (en) * 2004-07-08 2009-10-20 Qualcomm Incorporated Efficient rate control techniques for video encoding
CN1286322C (zh) * 2004-08-06 2006-11-22 联合信源数字音视频技术(北京)有限公司 一种低复杂度整数4×4离散余弦变换量化实现方法
US7489826B2 (en) * 2004-10-07 2009-02-10 Infoprint Solutions Company, Llc Compensating for errors in performance sensitive transformations
US7558815B2 (en) * 2004-10-08 2009-07-07 Infoprint Solutions Company Llc Processing of performance sensitive transforms
KR100744807B1 (ko) 2005-07-25 2007-08-01 매그나칩 반도체 유한회사 Cmos 이미지센서 및 그 제조방법
KR100712531B1 (ko) 2005-09-10 2007-04-27 삼성전자주식회사 Mpeg-2 데이터를 h.264 데이터로변환부호화하는 장치 및 방법
US7689052B2 (en) * 2005-10-07 2010-03-30 Microsoft Corporation Multimedia signal processing using fixed-point approximations of linear transforms
US8548265B2 (en) * 2006-01-05 2013-10-01 Fastvdo, Llc Fast multiplierless integer invertible transforms
KR100809686B1 (ko) * 2006-02-23 2008-03-06 삼성전자주식회사 이산 여현 변환을 이용한 영상 리사이징 방법 및 장치
US8849884B2 (en) * 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
US8059721B2 (en) * 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
EP1850597A1 (en) * 2006-04-24 2007-10-31 Universität Dortmund Method and circuit for performing a cordic based Loeffler discrete cosine transformation (DCT), particularly for signal processing
CN101083768B (zh) * 2006-06-02 2010-04-14 三星电子株式会社 处理视频数据的编码器和编码方法及解码器和解码方法
US8606023B2 (en) * 2006-06-26 2013-12-10 Qualcomm Incorporated Reduction of errors during computation of inverse discrete cosine transform
KR100899658B1 (ko) * 2007-04-16 2009-05-27 경희대학교 산학협력단 고속 동작을 위한 mpeg2/h.264 디지털 비디오트랜스코딩 시스템 및 방법
US8417045B2 (en) * 2010-07-29 2013-04-09 Infoprint Solutions Company Llc Mechanism for processing order-16 discrete cosine transforms
US20120230395A1 (en) * 2011-03-11 2012-09-13 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform with quantization matricies
US9560347B2 (en) * 2011-08-23 2017-01-31 Hfi Innovation Inc. Method and system of transform block processing according to quantization matrix in video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015024224; Teruhiko Suzuki, Ali Tabatabai: Description of video coding technology proposal by Sony , 20100415, pp.28-29, Joint Collaborative Team on Video Coding (JCT-VC) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017090968A1 (ko) * 2015-11-24 2017-06-01 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치
WO2017090965A1 (ko) * 2015-11-24 2017-06-01 삼성전자 주식회사 영상을 부호화/복호화 하는 방법 및 그 장치

Also Published As

Publication number Publication date
BR112013007023A2 (pt) 2017-07-25
US20190394490A1 (en) 2019-12-26
CN103125116A (zh) 2013-05-29
EP2985700A3 (en) 2016-08-17
US20160255372A1 (en) 2016-09-01
KR20120032458A (ko) 2012-04-05
KR20190058423A (ko) 2019-05-29
US20180041775A1 (en) 2018-02-08
WO2012044076A3 (ko) 2012-06-14
US10038918B2 (en) 2018-07-31
WO2012044076A2 (ko) 2012-04-05
JP2013542665A (ja) 2013-11-21
CN105263028A (zh) 2016-01-20
US20130188730A1 (en) 2013-07-25
EP2624556A2 (en) 2013-08-07
CN105512093A (zh) 2016-04-20
KR20200028373A (ko) 2020-03-16
KR101982819B1 (ko) 2019-05-28
KR102087990B1 (ko) 2020-03-11
US9350997B2 (en) 2016-05-24
AU2011308204A1 (en) 2013-04-11
JP5620587B2 (ja) 2014-11-05
KR20200105773A (ko) 2020-09-09
US20180310026A1 (en) 2018-10-25
EP2624556A4 (en) 2016-08-24
BR122020016581B1 (pt) 2022-03-03
US10743026B2 (en) 2020-08-11
US9788013B2 (en) 2017-10-10
US10455252B2 (en) 2019-10-22
EP2985700A2 (en) 2016-02-17
KR102149828B1 (ko) 2020-08-31

Similar Documents

Publication Publication Date Title
JP5620587B2 (ja) ビデオ符号化方法及びその装置、並びにビデオ復号化方法及びその装置
JP2013542664A (ja) 映像変換方法及びその装置、並びに映像逆変換方法及びその装置
US8600184B2 (en) System and method for reducing artifacts in images
KR20120098499A (ko) 영상의 변환 방법 및 장치, 및 영상의 역변환 방법 및 장치
KR101480412B1 (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
Nosratinia et al. Interframe coding of magnetic resonance images
AU2016234944B2 (en) Video encoding method and device and decoding method and device
CN107181963B (zh) 一种视频压缩方法及装置
KR20110118598A (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
AU2015221483A1 (en) Video encoding method and device and decoding method and device
JP2005168030A (ja) デジタル動画像の処理方法および装置
JP2005535263A (ja) 符号化器内のデータを伝達する方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160830