KR20120098500A - 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치 - Google Patents

영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치 Download PDF

Info

Publication number
KR20120098500A
KR20120098500A KR1020120019343A KR20120019343A KR20120098500A KR 20120098500 A KR20120098500 A KR 20120098500A KR 1020120019343 A KR1020120019343 A KR 1020120019343A KR 20120019343 A KR20120019343 A KR 20120019343A KR 20120098500 A KR20120098500 A KR 20120098500A
Authority
KR
South Korea
Prior art keywords
matrix
discrete cosine
quantization
inverse
substituted
Prior art date
Application number
KR1020120019343A
Other languages
English (en)
Inventor
홍윤미
김일구
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20120098500A publication Critical patent/KR20120098500A/ko

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
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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
    • 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
    • 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

Landscapes

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

Abstract

영상의 변환/역변환 방법 및 장치가 개시된다. 본 발명에 따른 영상 변환 방법은 이산 코사인 변환 행렬에 포함된 삼각함수를 유리수로 치환하고, 양자화와 함께 수행되는 스케일링 과정에서 스케일링 행렬을 적용하여 치환된 이산 코사인 변환 행렬에 의한 변환 오차를 최소화한다.

Description

영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치{Method for transforming and inverse-transforming image, and apparatus using the same}
본 발명은 영상 부호화, 복호화 방법 및 장치에 관한 것으로, 보다 상세히는 큰 크기의 블록에 대한 향상된 변환, 역변환 방법 및 장치에 관한 것이다.
H.264 및 MPEG-4와 비디오 코딩 방식에서, 비디오 신호는 시퀀스, 프레임, 슬라이스, 매크로 블록 및 블록으로 계층적으로 분할되며, 블록은 최소 처리 유닛이 된다. 인코딩 측에서, 인트라-프레임 또는 인터-프레임 예측을 통하여, 블록의 예측 잔여 정보가 획득되며, 블록 변환은 에너지가 소수의 계수에 집중될 수 있도록 실행되고, 양자화, 스캐닝, 런 렝스 코딩(Run Length Coding) 및 엔트로피 코딩을 통하여 이미지 데이터는 압축된다. 디코딩 측에서, 엔트로피 코딩의 블록 변환 계수가 비트 스트림으로부터 추출된다. 그리고 역양자화 및 역변환을 통하여, 블록의 예측 잔여 정보는 재구성되며, 예측 정보는 블록의 비디오 데이터를 재구성하기 위하여 사용된다. 인코딩-디코딩 처리절차에서, 변환 모듈은 비디오 압축의 기초이며, 변환성능은 코덱의 일반적인 성능에 직접적으로 영향을 준다.
이산 코사인 변환(DCT)은 MPEG-1 및 H.261과 같은 초기 비디오 코딩 표준에서 채택되었다. 1974년 이산 코사인 변환의 제안 이후에, DCT는 이미지 및 비디오 코딩 분야에서 널리 사용되었다. DCT는 변환 도메인 내의 이미지 요소의 상관성을 제거하며, 고효율 이미지 압축을 위한 기반을 제공한다. 그러나, DCT 변환 행렬은 부동 소수점 수(floating point number)로 표현되기 때문에, 대량의 부동 소수점 계산으로 인하여 많은 시스템 자원이 소모된다. 변환 효율을 개선하는 한편, 큰 크기의 블록에 대한 변환을 수행하기 위하여 새로운 DCT 변환 알고리즘의 필요성이 증가되었다.
본 발명이 해결하고자 하는 기술적 과제는 연산 복잡도를 감소시키고 연산 속도를 향상시키는 영상 변환/역변환 방법 및 장치를 제공하는 데 있다.
본 발명의 일 실시예에 따른 영상의 변환 방법은 NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 변환 행렬(A)를 획득하는 단계; 상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계; 상기 치환된 이산 코사인 변환 행렬(A)를 이용하여 상기 NxN 블록을 변환하는 단계; 및 상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상의 역변환 방법은 변환 및 양자화된 NxN(N은 정수) 블록을 수신하는 단계; 상기 NxN 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 역변환 행렬(B)를 획득하는 단계; 상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계; 상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 NxN 블록을 역양자화하는 단계; 및 상기 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 역양자화된 NxN 블록을 역변환하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상 부호화 장치는 NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 변환 행렬(A)을 이용하여 상기 NxN 블록을 변환하는 변환부; 및 상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 양자화부를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상의 복호화 장치는 변환 및 양자화된 NxN(N은 정수) 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 NxN 블록을 역변환하는 역변환부; 및 상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 역변환부로 입력되는 변환 및 양자화된 NxN 블록을 역양자화하는 역양자화부를 포함하는 것을 특징으로 한다.
본 발명에 따르면 큰 크기의 블록에 대한 변환 및 역변환시에 부동 소수점 연산이 아닌 정수 기반의 연산 과정을 통해서 복잡도를 감소시키고 연산 속도를 증가시키는 영상의 변환 및 역변환 방법을 제공할 수 있다.
또한, 본 발명에 따르면 치환된 이산 코사인 변환을 이용한 결과값과 원래 이산 코사인 변환을 이용한 결과값 사이의 차이값을 양자화 단계에서 보상함으로써 연산 복잡도를 감소시키면서 보다 효율적인 영상의 변환 및 역변환 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 2는 본 발명의 일 실시예에 따른 이산 코사인 변환의 흐름도(flow graph)를 도시한다.
도 3a는 도 2의 도면 부호 210을 확대한 도면이며, 도 3b는 도 2의 도면 부호 211을 확대한 도면이다.
도 4는 도 2의 이산 코사인 변환 흐름도 중 도면 부호 212의 흐름도에 따른 연산 과정을 설명하기 위한 참조도이다.
도 5a 및 5b는 본 발명의 다른 실시예에 따른 특정한 각도의 삼각함수를 포함하는 연산 구조를 간략화하는 과정을 설명하기 위한 참조도이다.
도 6은 본 발명의 일 실시예에 따라서 삼각함수값을 유리수로 근사화하는 매핑 테이블의 일 예를 나타낸다.
도 7은 본 발명의 또 다른 실시예에 따른 이산 코사인 변환 과정을 변경하는 과정을 설명하기 위한 참조도이다.
도 8은 본 발명의 또 다른 실시예에 따라서 이산 코사인 변환 과정에 포함된 회전 변환을 변경한 연산 구조를 나타낸 도면이다.
도 9는 본 발명의 또 다른 실시예에 따라서 회전 변환을 변경한 연산 구조를 나타낸 도면이다.
도 10은 본 발명의 또 다른 실시예에 따라서 삼각함수값을 대체하는 유리수값을 나타내는 매핑 테이블을 나타낸다.
도 11a 내지 도 11c는 본 발명의 일 실시예에 따른 이산 코사인 변환 과정을 나타낸 도면이다.
도 12a 내지 도 12c는 본 발명의 일 실시예에 따른 이산 코사인 역변환 과정을 나타낸 도면이다.
도 13a 내지 도 13c는 본 발명의 다른 실시예에 따른 이산 코사인 변환 과정을 나타낸 도면이다.
도 14a 내지 도 14c는 본 발명의 다른 실시예에 따른 이산 코사인 역변환 과정을 나타낸 도면이다.
도 15는 본 발명의 일 실시예에 따른 영상 변환 과정을 나타낸 플로우 차트이다.
도 16은 본 발명의 일 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다.
도 17은 본 발명의 일 실시예에 따른 32x32 블록의 변환값에 적용되는 스케일링 행렬의 일 예이다.
도 18a 내지 도 18f는 본 발명의 일 실시예에 따라서 32x32 블록의 양자화에 이용되는 양자화 행렬(MF)의 예를 도시한다.
도 19a 내지 도 19f는 본 발명의 일 실시예에 따라서 32x32 블록의 역양자화에 이용되는 역양자화 행렬(V)의 일 예를 도시한다.
도 20a 내지 도 20f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 변환 행렬에 기초하여 변환된 변환 블록에 적용되는 양자화 행렬(MF)의 일 예를 나타낸 도면이다.
도 21a 내지 도 21f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 역변환 행렬에 기초하여 양자화된 변환 블록에 적용되는 역양자화 행렬(V)의 일 예를 나타낸 도면이다.
도 22는 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 23은 본 발명의 일 실시예에 따른 영상 역변환 방법을 나타낸 플로우 차트이다.
도 24는 본 발명의 일 실시예에 따라서 역양자화 행렬(V)를 획득하는 과정을 나타내는 플로우 차트이다.
도 25 내지 도 28은 본 발명의 일 실시예에 따라서 곱셈 연산 과정을 대체하기 위한 맵핑 테이블이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들에 대하여 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 예측부(110), 감산부(115), 변환부(120), 양자화부(130) 및 엔트로피 부호화부(140)를 포함한다.
예측부(110)는 입력 영상을 소정 크기의 블록들로 분할하고, 분할된 각 블록에 대하여 인터 예측 또는 인트라 예측을 통해 예측 블록을 생성한다. 구체적으로, 예측부(110)는 이전에 부호화된 후 복원된 참조 픽처의 소정 탐색 범위 내에서 현재 블록과 유사한 영역을 가리키는 움직임 벡터를 생성하는 움직임 예측 및 보상 과정을 통해 예측 블록을 생성하는 인터 예측 및 현재 블록에 인접한 주변 블록의 데이터를 이용하여 예측 블록을 생성하는 인트라 예측을 수행한다.
감산부(115)는 현재 블록의 예측 블록과 원 영상 데이터를 감산한 레지듀얼을 생성한다.
변환부(120)는 레지듀얼을 주파수 영역으로 변환한다. 특히, 본 발명의 일 실시예에 따른 변환부(120)는 16x16 이상의 큰 크기의 블록에도 적용될 수 있는 이산 코사인 변환에 이용되는 NxN(N은 정수) 변환 행렬 또는 NxN 블록을 이산 코사인 변환하는 알고리즘, 예를 들어 Loeffler 또는 Chen의 변환 알고리즘에서 이용되는 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환한 치환된 이산 코사인 변환 행렬(A)를 이용하여 입력된 NxN 블록의 신호를 주파수 영역으로 변환하여 변환 계수를 생성한다. 후술되는 바와 같이 본 발명의 일 실시예에 따른 변환부(120)는 이산 코사인 변환에 이용되는 변환 행렬의 연산 과정에 포함된 곱셈 인수 중 삼각함수값들을 유리수 값으로 치환함으로써, 정수 기반의 덧셈 및 뺄셈 연산과 시프트 연산에 의하여 이산 코사인 변환을 수행할 수 있다. 하드웨어 측면에서 곱셈 연산을 시프트 연산으로 대체함으로써, 하드웨어에 가해지는 로드를 감소시킬 수 있으며 연산의 복잡도를 감소시켜 변환 과정과 관련된 연산 속도가 증가된다.
또한, 본 발명의 다른 실시예에 따른 변환부(120)는 이산 코사인 변환 과정에 포함된 회전 변환에 해당하는 연산 과정을 동일한 결과값을 갖으면서 더 작은 곱셈 연산 과정을 포함하도록 변경할 수 있다. 후술되는 바와 같이, NxN 이산 코사인 변환 행렬을 구현하기 위한 흐름도에 포함된 일부 연산 과정은 입력 신호를 소정의 각도만큼 회전시키는 회전 변환에 해당된다. 이러한 회전 변환 과정은 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 포함하는데, 본 발명의 다른 실시예에 따른 변환부(120)는 이러한 회전 변환 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체하여 변환을 수행할 수 있다. 구체적인 대체 연산 과정은 도 5 내지 도 9를 참조하여 후술한다.
양자화부(130)는 변환된 레지듀얼을 양자화한다. 특히, 본 발명의 일 실시예에 따른 양자화부(130)는 양자화 스텝(Qstep)을 이용한 양자화 과정과 변환부(120)에서 출력되는 변환 계수들의 스케일링 과정을 결합함으로써, 변환부(120)에서 근사화된 이산 코사인 변환 행렬을 이용하여 입력 신호를 변환한 값과 원 이산 코사인 변환 행렬을 이용하여 입력 신호를 변환한 값 사이의 오차를 감소시킨다. 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)의 각 원소의 크기에 기초하여 스케일링 행렬(S)을 생성하고, 스케일링 행렬(S)에 기초하여 스케일링 과정을 포함하는 양자화 행렬(MF)를 생성한다. 후술되는 바와 같이 스케일링 행렬(S)은 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각선에 위치한 원소들의 제곱근의 역수를 원소로 갖는 행렬이다. 양자화부(130)는 이러한 양자화 행렬(MF) 및 양자화 스텝을 변환부(120)에서 출력되는 변환값에 적용하여 스케일링 과정과 양자화 과정을 동시에 수행한다. 구체적인 스케일링 및 양자화 과정에 대해서는 후술한다.
엔트로피 부호화부(140)는 양자화된 영상 데이터에 대하여 가변 길이 부호화를 수행하여 비트스트림을 생성한다.
이하, 본 발명의 일 실시예에 따른 영상 변환 방법에 대하여 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 따른 이산 코사인 변환의 흐름도(flow graph)를 도시한다. 도 3a는 도 2의 도면 부호 210을 확대한 도면이며, 도 3b는 도 2의 도면 부호 211을 확대한 도면이다.
도 2에 도시된 바와 같은 32 포인트 이산 코사인 변환의 흐름도는 N 포인트이산 코사인 변환 행렬 중 짝수 행(0번째 행, 2번째 행,...)의 성분은 대칭적(symmetric)이고, 홀수 행(1번째 행, 3번째 행,...)의 성분은 반대칭적(anti-symmetric)인 이산 코사인 변환 행렬의 특성을 이용하여, 임의의 16 포인트 이산 코사인 변환 알고리즘으로부터 구현될 수 있다. 유사하게, 도 2에 도시된 바와 같은 32 포인트 이산 코사인 변환 흐름도로부터 64포인트 이산 코사인 변환 흐름도, 128 포인트 이산 코사인 변환 흐름도, 256 포인트 이산 코사인 변환 흐름도를 획득할 수 있다.
도 2, 도 3a 및 도 3b를 참조하면, x0 내지 x31은 이산 코사인 변환의 입력값들, y0 내지 y31은 이산 코사인 변환의 출력값들을 나타낸다. 이산 코사인 역변환시에는 x0 내지 x31은 이산 코사인 역변환의 출력값, y0 내지 y31은 이산 코사인 역변환의 입력값에 해당된다. 이산 코사인 변환시에 데이터 처리 방향은 좌측에서 우측이며, 이산 코사인 역변환시에 데이터 처리 방향은 우측에서 좌측이다. 각 라인 위의 값은 각 라인을 지나는 값에 곱해지는 곱셈 인수를 나타낸다. cθ는 cosθ, sθ는 sinθ를 나타낸다. 라인에 표기된 '-'는 곱셈 인자가 -1인 경우, 즉 라인을 지나는 신호에 -1을 곱하는 것을 의미한다. -1을 곱하는 연산은 곱셈 연산이 아닌 비트 연산으로 구현될 수 있으므로 절대값이 1이 아닌 연산을 곱하는 곱셈 연산에 비하여 연산이 간단하다.
도 4는 도 2의 이산 코사인 변환 흐름도 중 도면 부호 212의 흐름도에 따른 연산 과정을 설명하기 위한 참조도이다.
도 4를 참조하면, 입력 신호를 A1 내지 A4, 출력값을 B1 내지 B4라고 하면, 도 4의 흐름도에 따라 B1 내지 B4는 다음의 수학식들; B1= A1*C(7π/16) + A4*S(7π/16); B2=A2*C(5π/16) + A3*S(5π/16); B3=-A2*S(5π/16)+A3*C(5π/16); B4==A1*S(7π/16)+A4*C(7π/16) 의 연산 과정을 통해 획득될 수 있다. 이와 유사하게, 도 2의 흐름도에 따라서 각 라인을 따라서 입력 신호에 대한 곱셈, 덧셈 및 뺄셈 등의 연산 과정을 수행함으로써 이산 코사인 변환이 수행될 수 있다.
이산 코사인 변환 흐름도(200)에 따른 이산 코사인 변환의 단점은 θ의 값에 따라서 cθ 및 sθ가 무리수(irrational number)가 될 수 있기 때문에 연산 복잡도가 증가할 수 있다는 것이다. 즉, 삼각함수값에 따라서 이산 코사인 변환 과정은 부동 소수점(floating point) 연산을 포함하게 되어 연산 복잡도가 증가될 수 있다. 따라서, 본 발명의 일 실시예에 따른 영상 변환 방법은 이산 코사인 변환에 이용되는 삼각함수값을 유리수 값으로 근사화하여 치환하고, 치환된 이산 코사인 변환 행렬을 이용하여 이산 코사인 변환을 수행하는 한편, 양자화 단계에서 스케일링을 통해 원래의 이산 코사인 변환과 최대한 유사한 결과값을 갖는 변환 방법을 제공한다.
본 발명의 일 실시예에 따르면, 변환부(120)는 원래의 NxN 변환 행렬(Original_A)에 기초한 이산 코사인 변환 알고리즘에 포함된 삼각함수의 값들을 유리수로 치환한다. 특히, 변환부(120)는 삼각함수값을 q/(2^p)(p 및 q는 정수)와 같이 분모가 2의 거듭제곱꼴(power of 2)인 유리수로 치환한다. p는 정확도값(precision value)으로써, p가 증가할수록 보다 세밀한 값의 표현이 가능하므로 삼각함수값을 보다 정확하게 유리수로 근사화할 수 있다. 도 6은 본 발명의 일 실시예에 따라서 삼각함수값을 유리수로 근사화하는 매핑 테이블의 일 예를 나타낸다. 도 6에서는, 정확도값(p)이 8인 경우, 즉 분모가 2^8인 유리수로 삼각함수값을 근사화하는 경우의 매핑 테이블을 나타낸 것이다.
이와 같이 삼각함수값을 분모가 2의 거듭제곱꼴인 유리수로 대체하여 이산 코사인 변환 과정을 수행하는 경우, 분모가 2의 거듭제곱꼴인 유리수를 이용한 연산 과정은 나눗셈 연산 대신에 시프트 연산으로 수행될 수 있으므로 연산 복잡도가 감소한다.
한편, 도 2에 도시된 이산 코사인 변환 흐름도(200)에 포함된 연산 과정들 중 출력값 이전의 특정한 θ을 갖는 연산 과정들은 곱셈 과정이 생략되도록 간략화될 수 있다.
도 5a 및 5b는 본 발명의 다른 실시예에 따른 특정한 각도의 삼각함수를 포함하는 연산 구조를 간략화하는 과정을 설명하기 위한 참조도이다.
도 5a를 참조하면, 도면 부호 510으로 도시된 연산 구조는 도 2의 도면 부호 213, 214, 215, 217, 218에 대응되는 것으로, θ가 π/4 인 경우이다. 도면 부호 510의 흐름도에 기초한 연산 구조는 입력값 [X1,X2]을 π/4 만큼 회전시켜 [Y1, Y2]를 출력하는 회전 변환에 해당하며 다음의 수학식;
Figure pat00001
과 같이 표현될 수 있다. cos(π/4) 및 sin(π/4)는 모두
Figure pat00002
의 값을 가지므로 도면 부호 510의 연산 구조는 도면 부호 520과 같은 연산 구조로 대체될 수 있다. 대체된 연산 구조(520)에 따르면, 출력값에
Figure pat00003
이 곱해지는데,
Figure pat00004
을 곱하는 연산 과정은 후술되는 양자화 과정과 병합되어 수행될 수 있다.
도 5b를 참조하면, 도면 부호 530로 도시된 연산 구조는 도 2의 도면 부호 216에 대응되는 것으로, θ가 -π/4 의 값을 갖는 경우에 해당한다. 도면 부호 530의 연산 구조는 입력값 [X1,X2]을 -π/4 만큼 회전시켜 [Y1, Y2]를 출력하는 회전 변환에 해당하며 다음의 수학식;
Figure pat00005
과 같이 표현될 수 있다. cos(-π/4)는
Figure pat00006
, sin(-π/4)는
Figure pat00007
의 값을 가지므로 도면 부호 530의 연산 구조는 도면 부호 540과 같은 연산 구조로 대체될 수 있다.
Figure pat00008
을 곱하는 연산 과정은 양자화 과정과 병합되어 수행될 수 있다. 따라서, 본 발명의 다른 실시예에 따르면 변환부(120)는 도 2의 흐름도(200)에 포함된 삼각함수값을 유리수로 치환하는 한편, 도면 부호 213, 214, 215, 217, 218의 연산 구조를 도 5a의 도면 부호 520의 연산 구조로 대체하고, 도면 부호 216의 연산 구조를 도 5b의 도면 부호 540의 연산 구조로 대체한 이산 코사인 변환 알고리즘에 따라 변환을 수행할 수 있다.
큰 크기의 블록에 대한 변환 과정에서는 작은 크기의 블록에 대한 변환 과정에 비하여 더 많은 연산 과정을 포함하게 된다. 일반적으로 곱셈 연산은 덧셈, 뺄셈 및 쉬프트 연산에 비하여 연산이 복잡하고 연산 시간 역시 많이 소요되므로 전체적인 연산을 느리게 한다. 따라서, 변환 과정에 필요한 곱셈 연산의 회수를 가능한 줄이는 것이 바람직하다. 본 발명의 또 다른 실시예에 따르면, 변환부(120)는 도 2의 흐름도(200)에 기초한 이산 코사인 변환 과정에 포함된 특정한 구조의 연산 구조(이하 "버터 플라이 연산 구조"라고 함)에 포함된 4개의 곱셈 연산과 2개의 덧셈 연산을 3개의 곱셈 연산과 3개의 덧셈 연산으로 대체한 변경된 버터플라이 연산 구조에 기초하여 변환을 수행할 수 있다.
도 7은 본 발명의 또 다른 실시예에 따른 이산 코사인 변환 과정을 변경하는 과정을 설명하기 위한 참조도이다.
도 7을 참조하면, 좌측에 도시된 바와 같은 연산 구조(710)에 따라서 입력값 X1, X2에 대한 결과값 Y1, Y2를 획득하는 과정은 다음의 수학식과 같다.
Y1=a*X1+b*X2; Y2=b*X1-a*X2
도 7의 좌측에 도시된 연산 구조(710)에서는 결과값 Y1, Y2를 얻기 위해서 총 4번의 곱셈 연산과 2번의 덧셈 또는 뺄셈 연산이 필요하다. 우측에 도시된 변경된 연산 구조(720)의 연산에 의한 입력값 X1, X2에 대한 결과값 Y1, Y2는 다음의 수학식과 같다.
Y1=X1*(a-b)+b*(X1+X2)=a*X1+b*X2;
Y2=b*(X1+X2)-X2*(a+b)=b*X1-a*X2
우측에 도시된 변경된 연산 구조(720)에 의하면, b*(X1+X2)의 계산에서 1번의 곱셈 연산이 수행되고 그 결과값이 Y1과 Y2의 계산에 모두 이용되므로 총 3번의 곱셈 연산과 3번의 덧셈 또는 뺄셈 연산이 필요하다. 따라서, 변경된 연산 구조(720)를 이용하여, 동일한 결과값을 가지면서도 복잡한 곱셈 연산 과정을 줄임으로써 연산 속도를 향상시킬 수 있다. 따라서, 본 발명의 또 다른 실시예에 따른 변환부(120)는 도 7에 도시된 변경된 연산 구조(720)를 도 2의 흐름도(200)에 적용할 수 있다.
한편, 회전 변환 과정은 리프팅 스킴(lifting scheme)을 이용하여 다음의 수학식 1과 같이 변경될 수 있다.
Figure pat00009
수학식 1에서, p=(cos α-1)/sin α, u= sin α이다.
도 8은 본 발명의 또 다른 실시예에 따라서 이산 코사인 변환 과정에 포함된 회전 변환을 변경한 연산 구조를 나타낸 도면이다. 도 9는 본 발명의 또 다른 실시예에 따라서 변환에 이용되는 회전 변환을 변경한 연산 구조를 나타낸 도면이다.
도 8을 참조하면, 좌측에 도시된 회전 변환 연산 구조(810)은 수학식 1에 기초하여 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820)로 변경될 수 있다. 리프팅 스킴에 의한 연산 구조(820)는 회전 변환 연산 구조(810)과 동일한 결과값을 출력한다. 회전 변환 연산 구조(810)은 4번의 곱셈 연산과 2번의 덧셈(또는 뺄셈) 연산이 필요한데 반하여, 리프팅 스킴에 의한 연산 구조(820)은 3번의 곱셈 연산과 3번의 덧셈(또는 뺄셈) 연산이 필요하다. 따라서, 리프팅 스킴에 의한 연산 구조(820)를 이용하는 경우 회전 변환 연산 구조(810)와 동일한 결과값을 가지면서도 곱셈의 연산 횟수를 줄임으로써 연산 속도를 향상시킬 수 있다. 리프링 스킴에 의한 연산 구조(820)에서 cos α 또는 1/cos α의 곱셈 인자들(825)을 출력값에 곱하는 과정은 변환 과정에 포함되지 않고 양자화 과정에서 적용되는 스케일링 팩터에 곱셈 인자들(825)을 곱함으로써 수행될 수 있다. 본 발명의 또 다른 실시예에 따른 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 213, 214, 215, 217, 218의 연산 구조를 도 8에 도시된 리프팅 스킴에 의한 연산 구조로 대체하고, 대체된 이산 코사인 변환 알고리즘에 따라 변환을 수행할 수 있다. 만약, α > π/4 인 경우, tan α >1 이므로 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 213, 214, 215, 217, 218의 연산 구조를 도 9에 도시된 리프팅 스킴에 의한 연산 구조(920)로 대체하고, 대체된 이산 코사인 변환 알고리즘에 따라 변환을 수행할 수 있다. 즉, 변환부(120)은 α 의 절대값이 π/4 보다 큰 경우 tan α의 절대값도 1보다 커지므로, 도 2의 흐름도(200)에 포함된 도면 부호 213, 214, 215, 217, 218의 연산 구조 대신에 도 9의 리프팅 스킴에 의한 연산 구조(920)을 이용할 수 있다.
전술한 도 8과 유사하게 도 9의 리프링 스킴에 의한 연산 구조(920)에서 sin α 또는 1/sin α의 곱셈 인자들(925)을 출력값에 곱하는 과정은 변환 과정에 포함되지 않고 양자화 과정에서 적용되는 스케일링 팩터에 곱셈 인자들(925)를 곱함으로써 수행될 수 있다.
한편, 도 2의 흐름도(200)에 포함된 도면 부호 216의 연산 구조 역시 도 8 및 도 9에 도시된 리프팅 스킴에 의한 연산 구조(820,920)를 이용하여 대체될 수 있다. 구체적으로, 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 216의 연산 구조 대신에 도 8의 리프팅 스킴에 의한 연산 구조(820)을 이용할 수 있으며, 이 때 α 대신 (-α)의 값을 대입하여 연산을 수행한다. 만약, α의 절대값이 π/4 보다 큰 경우, tan α의 절대값도 1보다 커지므로, 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 216의 연산 구조 대신에 도 9의 리프팅 스킴에 의한 연산 구조(920)을 이용할 수 있다. 이 경우, α 대신 (-α)의 값을 대입하여 연산을 수행한다.
한편, 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 도 2의 흐름도(200)에 적용하는 경우, 변환부(120)는 도 10에 도시된 바와 같이 이산 코사인 변환 과정에 필요한 삼각함수값을 우측 컬럼에 표기된 바와 같은 근사화된 유리수로 대체하여 이산 코사인 변환을 수행할 수 있다.
전술한 본 발명의 일 실시예에 따라서, 치환된 이산 코사인 변환 행렬(A)을 이용하여 32 포인트 이산 코사인 변환 과정을 수행하는 단계는 도 11a 내지 도 11c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 11a 내지 도 11c에서, X0 내지 X31은 변환되어야 할 입력값, Y0 내지 Y31은 변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
전술한 치환된 이산 코사인 변환 행렬(A)을 획득하는 과정과 유사하게, 이산 코사인 변환 행렬(Origin_A)의 역행렬인 이산 코사인 역변환 행렬(Origin_B)에 포함된 삼각함수의 값을 분모가 2의 거듭제곱꼴인 유리수로 치환하고, 치환된 이산 코사인 역변환 행렬(B)을 이용하여 이산 코사인 역변환이 수행될 수 있다. 치환된 이산 코사인 역변환 행렬(B)을 이용하여 32 포인트 이산 코사인 역변환 과정을 수행하는 단계는 도 12a 내지 도 12c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 12a 내지 도 12c에서, Y0 내지 Y31은 역변환되어야 할 입력값, X0 내지 X31은 역변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
전술한 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 도 2의 흐름도(200)에 적용하여 32 포인트 이산 코사인 변환 과정을 수행하는 단계는 도 13a 내지 도 13c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 13a 내지 도 13c에서, X0 내지 X31은 변환되어야 할 입력값, Y0 내지 Y31은 변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
리프팅 스킴에 의한 연산 구조(820, 920)를 도 2의 흐름도(200)에 적용한 32 포인트 이산 코사인 변환 과정의 역과정인 32 포인트 이산 코사인 역변환 과정을 수행하는 단계는 도 14a 내지 도 14c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 14a 내지 도 14c에서, Y0 내지 Y31은 역변환되어야 할 입력값, X0 내지 X31은 역변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
전술한 바와 같이, 변환부(120)에서 이산 코사인 변환 행렬에 포함된 삼각함수를 유리수로 치환하거나, 곱셈연산의 횟수를 감소시키는 연산 구조로 대체하는 경우, 이산 코사인 변환 알고리즘이 변경되므로 원 이산 코사인 변환 알고리즘에 따른 결과값과의 차이가 발생할 수 있다. 따라서, 본 발명의 일 실시예에 따른 양자화부(130)는 양자화와 함께 수행되는 스케일링 과정에서 스케일링 행렬을 적용하여 이러한 치환된 이산 코사인 변환 알고리즘을 이용함으로써 발생되는 변환 오차를 최소화한다.
도 16은 본 발명의 일 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다.
도 1 및 도 16을 참조하면, 단계 1610에서 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각선 상에 위치한 (i,i)(i는 1부터 N까지의 정수)의 원소의 제곱근인 sqrt(AAT(i,i))를 획득한다.
단계 1620에서, 양자화부(130)는 sqrt(AAT(i,i))의 역수, 즉 1/sqrt(AAT(i,i))을 획득한다.
단계 1630에서, 양자화부(130)는 1/sqrt(AAT(i,i))을 i번째 행의 원소들로 갖는 스케일링 행렬(S)를 획득한다. 도 17은 본 발명의 일 실시예에 따른 32x32 블록의 변환값에 적용되는 스케일링 행렬의 일 예이다. 도 17을 참조하면, 1/sqrt(AAT(i,i))을 s(i)라고 할 때, 양자화부(130)는 i번째 행의 모든 원소를 s(i)로 갖는 스케일링 행렬 S(1700)을 생성한다.
단계 1640에서, 양자화부(130)는 스케일링 행렬(S)의 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 값(SⓧST)과, 양자화 스텝(Qstep)을 이용하여 양자화 행렬(MF)를 획득한다. ⓧ는 원소 단위 곱셈(element-by-element multiplication, element-wise multiplication) 연산을 나타내는 것으로, 행렬의 동일 위치의 원소를 곱하는 연산을 나타낸다.
구체적으로, 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 곱한 행렬(SⓧST)을 PF라고 하면, 양자화 행렬(MF)은 다음의 수학식; MF=PF*2^m/Qstep 를 통해 획득될 수 있다. 여기서, Qstep은 양자화 스텝, m은 양의 정수이다. 일 예로 m=10 일 수 있다.
단계 1650에서, 양자화부(130)는 양자화 행렬(MF)을 적용하여 NxN 변환 블록에 대한 스케일링 및 양자화를 수행한다. 구체적으로 양자화부(130)는 양자화 행렬(MF)의 동일 위치의 원소와 NxN 변환 블록의 동일 위치의 원소를 곱한 값에 소정의 오프셋을 더한 값을 다음의 수학식; q=floor(QP/6)+m (QP는 양자화 파라메터) 의 q 비트만큼 비트 시프트 연산함으로써 양자화된 변환 계수의 크기를 결정한다. 즉, Zij를 양자화된 변환 계수값, Wij를 변환부(120)에서 출력되는 변환 계수, f를 오프셋이라고 하면, 다음의 수학식;
Figure pat00010
에 따라서 양자화된 변환 계수의 크기를 결정한다. 양자화된 변환 계수의 부호는 다음의 수학식;
Figure pat00011
에 따라서 결정된다. 여기서, '.MF'는 행렬의 동일 위치의 원소를 곱하는 벡터곱 연산을 의미한다. 전술한 바와 같이, 벡터곱 연산은 ⓧ와 같이 표현될 수도 있다. 단계 1650에 의한 양자화 과정에서, 양자화 행렬(MF)의 동일 위치의 원소와 NxN 변환 블록의 동일 위치의 원소를 곱하는 과정은 스케일링 과정에 해당하며, q 비트만큼 라이트 쉬프트 연산을 수행하는 과정은 양자화 과정에 해당된다. 즉, 본 발명의 일 실시예에 따르면 치환된 이산 코사인 변환 행렬(A)에 의한 변환 오차를 보상하는 스케일링 과정을 양자화 과정과 결합하여 수행하게 된다.
도 18a 내지 도 18f는 본 발명의 일 실시예에 따라서 32x32 블록의 양자화에 이용되는 양자화 행렬(MF)의 예를 도시한다. 특히, 도 18a 내지 도 18f에서는 m=10인 경우의 양자화 행렬(MF)을 도시한다.
도 18a 내지 도 18f에 도시된 바와 같은 양자화 행렬(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) 값에 따라서 선택될 수 있다.
한편, 역양자화 단계에서, 원래의 이산 코사인 역변환 행렬(Origin_B)와 치환된 이산 코사인 역변환 행렬(B) 사이의 차이값을 보정하기 위한 역양자화 행렬(V)을 적용하여 역양자화가 수행될 수 있다.
본 발명의 일 실시예에 따르면, 역양자화 행렬(V)은 전술한 양자화 행렬(MF)의 획득 과정과 유사하게 획득될 수 있다. 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 스케일링 행렬(S)이 획득되고, 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)가 생성될 수 있다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n (n은 정수)을 통해 획득된다. 일 예로, n=10 일 수 있다.
구체적으로, 역양자화는 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 수행될 수 있다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다. 전술한 바와 같이, '.V'는 행렬의 동일 위치의 원소를 곱하는 벡터곱 연산을 의미한다.
도 19a 내지 도 19f는 본 발명의 일 실시예에 따라서 32x32 블록의 역양자화에 이용되는 역양자화 행렬(V)의 일 예를 도시한다. 특히, 도 19a 내지 도 19f에서는 m=10인 경우의 역양자화 행렬(V)을 도시한다.
도 19a 내지 도 19f에 도시된 바와 같은 역양자화 행렬(V)은 전술한 양자화 행렬(MF)와 동일하게 모든 양자화 스텝에 대하여 정의될 필요없이 처음의 6단계의 Qstep 값인 (0.625, 0.6875, 0.8125, 0.875, 1, 1.25)에 대해서 정의된다.
한편, 전술한 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 32x32 블록의 변환을 위한 32 포인트 이산 코사인 변환 행렬에 적용하는 경우에도, 양자화부(130)는 스케일링 행렬(S)과 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 곱한 값(SⓧST)과 양자화 스텝(Qstep)을 이용하여 양자화 행렬(MF)를 획득할 수 있다. 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 곱한 행렬(SⓧST)을 PF라고 하면, 양자화 행렬(MF)은 다음의 수학식; MF=PF*2^m/Qstep 를 통해 획득될 수 있다. 도 20a 내지 도 20f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 변환 행렬에 기초하여 변환된 변환 블록에 적용되는 양자화 행렬(MF)의 일 예를 나타낸 도면이다.
또한, 전술한 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 32x32 블록의 역변환을 위한 32 포인트 이산 코사인 역변환 행렬에 적용하는 경우, 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)가 생성될 수 있다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n/256 (n은 정수)을 통해 획득될 수 있다. 전술한 수학식에서 '1/256'는 치환된 이산 코사인 변환 행렬(A) 및 치환된 이산 코사인 역변환 행렬(B)에 의한 B*(A*AT)*BT의 크기(norm)에 기초하여 결정된 값이다. 도 21a 내지 도 21f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 역변환 행렬에 기초하여 양자화된 변환 블록에 적용되는 역양자화 행렬(V)의 일 예를 나타낸 도면이다.
도 15는 본 발명의 일 실시예에 따른 영상 변환 과정을 나타낸 플로우 차트이다.
단계 1510에서, 변환부(120)는 NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 변환 행렬(A)를 획득한다. 전술한 바와 같이, 변환부(120)는 삼각함수값을 유리수로 치환하면서, 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 동시에 적용하여 치환된 이산 코사인 변환 행렬(A)을 획득할 수도 있다.
단계 1520에서, 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득한다. 전술한 바와 같이, 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각선 상에 위치한 (i,i)(i는 1부터 N까지의 정수)의 원소의 제곱근인 sqrt(AAT(i,i))의 역수, 즉 1/sqrt(AAT(i,i))을 i번째 행의 원소들로 갖는 스케일링 행렬(S)를 획득할 수 있다
단계 1530에서, 변환부(120)는 이산 코사인 변환 행렬(A)를 이용하여 NxN 블록을 변환하고, 단계 1540에서, 양자화부(130)는 스케일링 행렬(S) 및 양자화 스텝을 이용하여 생성된 양자화 행렬(MF)를 적용하여 변환된 NxN 블록을 양자화 및 스케일링한다.
도 22는 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 22를 참조하면, 본 발명의 일 실시예에 따른 영상 복호화 장치(2200)는 엔트로피 복호화부(2210), 역양자화부(2220), 역변환부(2230) 및 예측부(2240)를 포함한다.
엔트로피 복호화부(2210)는 입력 비트스트림으로부터 복호화되는 현재 블록의 예측 모드 정보, 참조 픽처 정보 및 레지듀얼 정보를 추출한다. 레지듀얼 정보는 양자화된 변환 계수에 해당된다.
역양자화부(2220)는 엔트로피복호화부(2210)에서 추출된 양자화된 변환 계수들을 역양자화한다. 구체적으로, 역양자화부(2220)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 역변환부로 입력되는 변환 및 양자화된 NxN 블록을 역양자화한다. 전술한 바와 같이, 스케일링 행렬(S)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 행렬일 수 있다. 역양자화부(2220)는 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)를 획득할 수 있다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n (n은 정수)을 통해 획득된다.
역양자화 행렬(V)이 결정되면, 역양자화부(2220)는 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 역양자화를 수행한다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 양자화부(2220)는 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
역변환부(2230)는 NxN 이산 코사인 역변환 행렬(Origin_B)의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 역양자화된 변환 계수들을 역변환한다. 역변환 결과, 블록 단위에 대한 레지듀얼 값들이 복원된다. 역변환 과정은 본 발명의 다양한 실시예를 통해서 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 수행될 수 있다. 예를 들어 NxN 이산 코사인 역변환 행렬(Origin_B)의 일부 연산 구조를 리프팅 스킴을 적용하여 대체한 이산 코사인 역변환 행렬(B)이 역변환 과정에 이용될 수 있다.
예측부(2240)는 예측 모드 정보에 기초하여 예측값을 생성하고, 예측값과 역변환부(2230)에서 복원된 레지듀얼 신호가 가산되어 영상이 복원된다.
도 23은 본 발명의 일 실시예에 따른 영상 역변환 방법을 나타낸 플로우 차트이다.
도 23을 참조하면, 단계 2310에서 엔트로피 복호화부(2210)는 변환 및 양자화된 NxN(N은 정수) 블록을 비트스트림으로부터 파싱하여 출력한다.
단계 2320에서, 역변환부(2230)는 NxN 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 역변환 행렬(B)를 획득한다.
단계 2330에서, 역양자화부(2220)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득한다. 전술한 바와 같이, 스케일링 행렬(S)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 행렬일 수 있다.
단계 2340에서, 역양자화부(2220)는 스케일링 행렬(S) 및 양자화 스텝을 이용하여 NxN 블록을 역양자화한다. 전술한 바와 같이, 역양자화부(2220)는 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)를 획득하고, 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 역양자화를 수행한다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 양자화부(2220)는 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
단계 2350에서, 역변환부(2230)는 치환된 이산 코사인 역변환 행렬(B)를 이용하여 역양자화된 NxN 블록을 역변환한다.
도 24는 본 발명의 일 실시예에 따라서 역양자화 행렬(V)를 획득하는 과정을 나타내는 플로우 차트이다.
도 24를 참조하면, 단계 2410에서 역양자화부(2230)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근인 sqrt(BBT(i,i))를 획득한다.
단계 2420에서, 역양자화부(2230)는 sqrt(BBT(i,i))의 역수인 1/sqrt(BBT(i,i))을 획득하고, 단계 2430에서 역양자화부(2230)는 1/sqrt(BBT(i,i))을 i번째 행의 원소로 갖는 스케일링 행렬(S)를 획득한다.
단계 2440에서, 역양자화부(2230)는 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)을 생성한다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n (n은 정수)을 통해 획득될 수 있다.
단계 2450에서, 역양자화부(2230)는 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 스케일링 및 역양자화를 수행한다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
한편, 치환된 이산 코사인 변환 행렬(A) 및 치환된 이산 코사인 역변환 행렬(B)를 이용한 변환 및 역변환 과정에서 수행되는 특정한 곱셈 연산은 도 25 내지 도 28에 도시된 맵핑 테이블에 기초하여 곱셈 연산 과정 대신에 몇 개의 시프트 연산과 덧셈 및 뺄셈 연산만으로 재구성될 수 있다. 도 25 및 도 27은 곱셈 연산 결과값과 우측의 재구성된 연산 결과가 동일한 결과값을 갖으며, 도 26 및 도 28은 곱셈 연산 결과값과 우측의 재구성된 연산 결과가 반올림에 의한 에러(rounding error)를 갖지만 성능의 저하는 크지 않다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.

Claims (24)

  1. 영상의 변환 방법에 있어서,
    NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 변환 행렬(A)를 획득하는 단계;
    상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계;
    상기 치환된 이산 코사인 변환 행렬(A)를 이용하여 상기 NxN 블록을 변환하는 단계; 및
    상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 단계를 포함하는 것을 특징으로 하는 영상 변환 방법.
  2. 제 1항에 있어서,
    상기 치환된 이산 코사인 변환 행렬(A)를 획득하는 단계는
    상기 삼각함수에 기초한 값들을 분모가 2의 거듭 제곱꼴인 유리수로 치환하는 것을 특징으로 하는 영상 변환 방법.
  3. 제 1항에 있어서,
    상기 스케일링 행렬(S)은
    상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(AAT(i,i))라고 할 때, 1/sqrt(AAT(i,i))을 i번째 행의 원소들로 갖는 행렬인 것을 특징으로 하는 영상 변환 방법.
  4. 제 1항에 있어서,
    상기 변환하는 단계는
    상기 치환된 이산 코사인 변환 행렬(A)을 이용한 변환 과정에 포함된 곱셈 연산을 쉬프트 연산, 덧셈 연산 및 뺄셈 연산으로 대체한 대체 연산을 이용하는 것을 특징으로 하는 영상 변환 방법.
  5. 제 1항에 있어서,
    상기 양자화하는 단계는
    상기 양자화 스텝을 Qstep, 상기 스케일링 행렬(S)의 원소들과 상기 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬을 PF, m은 양의 정수라고 할 때, 다음의 수학식; MF=PF*2^m/Qstep 을 통해 획득된 스케일링이 결합된 양자화 행렬(MF)를 획득하는 단계; 및
    상기 양자화 행렬(MF)를 이용하여 상기 변환된 NxN 블록에 대한 양자화를 수행하는 단계를 포함하는 것을 특징으로 하는 영상 변환 방법.
  6. 제 5항에 있어서,
    상기 양자화를 수행하는 단계는
    상기 양자화 행렬(MF)와 상기 변환된 NxN 블록의 동일 위치의 원소를 곱한 값에 소정의 오프셋을 더한 값을, 다음의 수학식; q=floor(QP/6)+m (m은 정수, floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터)에 따른 q 비트만큼 비트 시프트 연산함으로써 수행되는 것을 특징으로 하는 영상 변환 방법.
  7. 영상의 역변환 방법에 있어서,
    변환 및 양자화된 NxN(N은 정수) 블록을 수신하는 단계;
    상기 NxN 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 역변환 행렬(B)를 획득하는 단계;
    상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계;
    상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 NxN 블록을 역양자화하는 단계; 및
    상기 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 역양자화된 NxN 블록을 역변환하는 단계를 포함하는 것을 특징으로 하는 영상 역변환 방법.
  8. 제 7항에 있어서,
    상기 치환된 이산 코사인 역변환 행렬(B)를 획득하는 단계는
    상기 삼각함수에 기초한 값들을 분모가 2의 거듭 제곱꼴인 유리수로 치환하는 것을 특징으로 하는 영상 역변환 방법.
  9. 제 7항에 있어서,
    상기 스케일링 행렬(S)은
    상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 행렬인 것을 특징으로 하는 영상 역변환 방법.
  10. 제 7항에 있어서,
    상기 역변환하는 단계는
    상기 치환된 이산 코사인 역변환 행렬(B)을 이용한 변환 과정에 포함된 곱셈 연산을 쉬프트 연산, 덧셈 연산 및 뺄셈 연산으로 대체한 대체 연산을 이용하는 것을 특징으로 하는 영상 역변환 방법.
  11. 제 7항에 있어서,
    상기 역양자화하는 단계는
    상기 양자화 스텝을 Qstep, 상기 스케일링 행렬(S)의 원소들과 상기 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬을 PF, n은 양의 정수라고 할 때, 다음의 수학식; V=Qstep*PF*2^n 을 통해 획득된 스케일링이 결합된 역양자화 행렬(V)를 획득하는 단계; 및
    상기 역양자화 행렬(V)를 이용하여 상기 NxN 블록에 대한 역양자화를 수행하는 단계를 포함하는 것을 특징으로 하는 영상 역변환 방법.
  12. 제 11항에 있어서,
    상기 역양자화를 수행하는 단계는
    상기 역양자화 행렬(V)와 상기 NxN 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 비트 시프트 연산을 함으로써 수행되는 것을 특징으로 하는 영상 역변환 방법.
  13. 영상 부호화 장치에 있어서,
    NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 변환 행렬(A)을 이용하여 상기 NxN 블록을 변환하는 변환부; 및
    상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 양자화부를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  14. 제 13항에 있어서,
    상기 치환된 이산 코사인 변환 행렬(A)은
    상기 삼각함수에 기초한 값들을 분모가 2의 거듭 제곱꼴인 유리수로 치환한 행렬인 것을 특징으로 하는 영상 부호화 장치.
  15. 제 13항에 있어서,
    상기 스케일링 행렬(S)은
    상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(AAT(i,i))라고 할 때, 1/sqrt(AAT(i,i))을 i번째 행의 원소들로 갖는 행렬인 것을 특징으로 하는 영상 부호화 장치.
  16. 제 13항에 있어서,
    상기 변환부는
    상기 치환된 이산 코사인 변환 행렬(A)을 이용한 변환 과정에 포함된 곱셈 연산을 쉬프트 연산, 덧셈 연산 및 뺄셈 연산으로 대체한 대체 연산을 이용하는 것을 특징으로 하는 영상 부호화 장치.
  17. 제 13항에 있어서,
    상기 양자화부는
    상기 양자화 스텝을 Qstep, 상기 스케일링 행렬(S)의 원소들과 상기 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬을 PF, m은 양의 정수라고 할 때, 다음의 수학식; MF=PF*2^m/Qstep 을 통해 획득된 스케일링이 결합된 양자화 행렬(MF)를 획득하고, 상기 양자화 행렬(MF)를 이용하여 상기 변환된 NxN 블록에 대한 양자화를 수행하는 것을 특징으로 하는 영상 부호화 장치.
  18. 제 17항에 있어서,
    상기 양자화부는
    상기 양자화 행렬(MF)와 상기 변환된 NxN 블록의 동일 위치의 원소를 곱한 값에 소정의 오프셋을 더한 값을, 다음의 수학식; q=floor(QP/6)+m (m은 정수, floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터)에 따른 q 비트만큼 비트 시프트 연산하는 것을 특징으로 하는 영상 부호화 장치.
  19. 영상의 복호화 장치에 있어서,
    변환 및 양자화된 NxN(N은 정수) 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 NxN 블록을 역변환하는 역변환부; 및
    상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 역변환부로 입력되는 변환 및 양자화된 NxN 블록을 역양자화하는 역양자화부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  20. 제 19항에 있어서,
    상기 치환된 이산 코사인 역변환 행렬(B)은 상기 삼각함수에 기초한 값들을 분모가 2의 거듭 제곱꼴인 유리수로 치환한 행렬인 것을 특징으로 하는 영상 복호화 장치.
  21. 제 19항에 있어서,
    상기 스케일링 행렬(S)은
    상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 행렬인 것을 특징으로 하는 영상 복호화 장치.
  22. 제 19항에 있어서,
    상기 역변환부는
    상기 치환된 이산 코사인 역변환 행렬(B)을 이용한 변환 과정에 포함된 곱셈 연산을 쉬프트 연산, 덧셈 연산 및 뺄셈 연산으로 대체한 대체 연산을 이용하는 것을 특징으로 하는 영상 복호화 장치.
  23. 제 19항에 있어서,
    상기 역양자화부는
    상기 양자화 스텝을 Qstep, 상기 스케일링 행렬(S)의 원소들과 상기 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬을 PF, n은 양의 정수라고 할 때, 다음의 수학식; V=Qstep*PF*2^n 을 통해 획득된 스케일링이 결합된 역양자화 행렬(V)를 획득하고, 상기 역양자화 행렬(V)를 이용하여 상기 NxN 블록에 대한 역양자화를 수행하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  24. 제 23항에 있어서,
    상기 역양자화부는
    상기 역양자화 행렬(V)와 상기 NxN 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 비트 시프트 연산을 수행하는 것을 특징으로 하는 영상 복호화 장치.
KR1020120019343A 2011-02-25 2012-02-24 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치 KR20120098500A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161446656P 2011-02-25 2011-02-25
US61/446,656 2011-02-25

Publications (1)

Publication Number Publication Date
KR20120098500A true KR20120098500A (ko) 2012-09-05

Family

ID=46721367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120019343A KR20120098500A (ko) 2011-02-25 2012-02-24 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치

Country Status (3)

Country Link
US (1) US20140010284A1 (ko)
KR (1) KR20120098500A (ko)
WO (1) WO2012115487A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017135663A3 (ko) * 2016-02-01 2017-09-28 엘지전자 주식회사 행 -열 변환 (row- column transform)을 이용하여 변환을 수행하는 방법 및 장치
WO2018143687A1 (ko) * 2017-02-01 2018-08-09 엘지전자(주) 행-열 변환을 이용하여 변환을 수행하는 방법 및 장치
CN109309835A (zh) * 2017-07-26 2019-02-05 苏州智语新视信息科技有限公司 一种图像压缩方法及装置
WO2020046085A1 (ko) * 2018-09-02 2020-03-05 엘지전자 주식회사 영상 신호를 처리하기 위한 방법 및 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI519133B (zh) * 2012-02-29 2016-01-21 新力股份有限公司 影像處理裝置及方法
EP3474232A1 (en) * 2017-10-19 2019-04-24 Thomson Licensing A method and device for encoding and decoding a rotation 2d/3d matrix
US11769275B2 (en) 2017-10-19 2023-09-26 Interdigital Vc Holdings, Inc. Method and device for predictive encoding/decoding of a point cloud
RU2762873C2 (ru) * 2017-12-15 2021-12-23 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ кодирования изображений на основе преобразования и устройство для этого
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform
US10462486B1 (en) * 2018-05-07 2019-10-29 Tencent America, Llc Fast method for implementing discrete sine transform type VII (DST 7)
EP3918797A4 (en) * 2019-03-10 2023-01-25 HFI Innovation Inc. METHOD AND DEVICE FOR CALCULATION AND REPRESENTATION OF QUANTIZATION MATRICES FOR VIDEO CODING
US11170260B2 (en) 2019-11-14 2021-11-09 Alibaba Group Holding Limited Techniques for determining importance of encoded image components for artificial intelligence tasks
US11403783B2 (en) 2019-11-14 2022-08-02 Alibaba Group Holding Limited Techniques to dynamically gate encoded image components for artificial intelligence tasks
US11366979B2 (en) 2019-11-14 2022-06-21 Alibaba Group Holding Limited Using selected components of frequency domain image data in artificial intelligence tasks
US20210152832A1 (en) * 2019-11-14 2021-05-20 Alibaba Group Holding Limited Reconstructing transformed domain information in encoded video streams

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872866A (en) * 1995-04-18 1999-02-16 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
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
US7548727B2 (en) * 2005-10-26 2009-06-16 Broadcom Corporation Method and system for an efficient implementation of the Bluetooth® subband codec (SBC)
US8571340B2 (en) * 2006-06-26 2013-10-29 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms
WO2010085125A2 (ko) * 2009-01-22 2010-07-29 삼성전자 주식회사 영상의 변환 방법 및 장치, 역변환 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017135663A3 (ko) * 2016-02-01 2017-09-28 엘지전자 주식회사 행 -열 변환 (row- column transform)을 이용하여 변환을 수행하는 방법 및 장치
WO2018143687A1 (ko) * 2017-02-01 2018-08-09 엘지전자(주) 행-열 변환을 이용하여 변환을 수행하는 방법 및 장치
CN109309835A (zh) * 2017-07-26 2019-02-05 苏州智语新视信息科技有限公司 一种图像压缩方法及装置
WO2020046085A1 (ko) * 2018-09-02 2020-03-05 엘지전자 주식회사 영상 신호를 처리하기 위한 방법 및 장치

Also Published As

Publication number Publication date
WO2012115487A2 (ko) 2012-08-30
WO2012115487A3 (ko) 2012-12-13
US20140010284A1 (en) 2014-01-09

Similar Documents

Publication Publication Date Title
KR20120098500A (ko) 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치
KR102053317B1 (ko) 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
JP4067558B2 (ja) 画像符号化装置及び画像復号装置
US20130195177A1 (en) Method and device for the transformation and method and device for the reverse transformation of images
KR20120098499A (ko) 영상의 변환 방법 및 장치, 및 영상의 역변환 방법 및 장치
MX2008008987A (es) Transformadas con factores comunes.
CN105474642A (zh) 使用频域差对图像集合进行重新编码
KR101480412B1 (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
JP2008539646A (ja) 高速fgsを提供するビデオコーディング方法及び装置
KR20140014722A (ko) H.264/avc 복호기에서 역양자화 및 역변환을 수행하는 복호화 장치 및 이를 이용한 복호화 방법
KR20120139611A (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
KR101786921B1 (ko) 고속 움직임 추정을 위한 장치 및 방법
JP2005354307A (ja) 逆量子化器及びこれを用いた画像復号化装置
JP6727900B2 (ja) 符号化装置、復号装置、及びプログラム
KR101786957B1 (ko) 고속 움직임 추정을 위한 장치 및 방법
JP2015061143A (ja) 映像符号化装置、および、映像符号化プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal