KR101480412B1 - 영상의 변환 방법 및 장치, 역변환 방법 및 장치 - Google Patents

영상의 변환 방법 및 장치, 역변환 방법 및 장치 Download PDF

Info

Publication number
KR101480412B1
KR101480412B1 KR1020107017851A KR20107017851A KR101480412B1 KR 101480412 B1 KR101480412 B1 KR 101480412B1 KR 1020107017851 A KR1020107017851 A KR 1020107017851A KR 20107017851 A KR20107017851 A KR 20107017851A KR 101480412 B1 KR101480412 B1 KR 101480412B1
Authority
KR
South Korea
Prior art keywords
matrix
nxn
transform
inverse
transformation
Prior art date
Application number
KR1020107017851A
Other languages
English (en)
Other versions
KR20110114429A (ko
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 KR20110114429A publication Critical patent/KR20110114429A/ko
Application granted granted Critical
Publication of KR101480412B1 publication Critical patent/KR101480412B1/ko

Links

Images

Classifications

    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

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

Abstract

영상의 변환, 역변환 방법 및 장치가 개시된다. 본 발명에 따르면 NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 치환된 NxN 변환 행렬과 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬을 이용하여 NxN 크기의 블록을 변환하는 것을 특징으로 한다.
전술한 바와 같이 역스케일링 행렬(V)가 결정되면, 역양자화는 역스케일링 행렬(V)와 양자화된 변환 계수를 곱한 값에 대해서 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 왼쪽 방향으로 비트 시프트 연산(<<)을 통해 수행될 수 있다. 즉, Zij를 양자화된 계수값, Wij를 변환 계수라고 하면 다음의 수학식; Wij=(Zij)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
단계 630에서, 스케일링 행렬(MF) 및 시프트 연산을 적용하여 NxN 크기의 블록을 변환한 변환 블록에 대한 양자화를 수행한다. 구체적으로 양자화는 스케일링 행렬(MF)와 NxN 크기의 블록을 변환한 변환 블록을 곱한 값에 소정의 오프셋을 더한 값에 대해서 다음의 수학식; q=floor(QP/6)+m 의 q 비트만큼 오른쪽 방향으로 비트 시프트 연산(>>)을 통해 수행된다. Zij를 양자화된 계수값, Wij를 변환 계수, f를 오프셋이라고 하면,
Figure 112014032249661-pct00004
이고,

Description

영상의 변환 방법 및 장치, 역변환 방법 및 장치{Method and apparatus for transforming image, and method and apparatus for inverse-transforming image}
본 발명은 영상 부호화, 복호화 방법 및 장치에 관한 것으로, 보다 상세히는 큰 크기의 블록에 대한 향상된 변환, 역변환 방법 및 장치에 관한 것이다.
H.264 및 MPEG-4와 같은, 현재 국제 비디오 코딩 표준에서, 비디오 신호는 시퀀스, 프레임, 슬라이스, 매크로 블록 및 블록으로 계층적으로 분할되며, 블록은 최소 처리 유닛이 된다. 인코딩 측면에서, 인트라-프레임 또는 인터-프레임 예측을 통하여, 블록의 예측 잔류 오류가 획득되며, 블록 변환은 에너지가 소수의 계수에 집중될 수 있도록 실행되고, 양자화, 스캐닝, 런 렝스 코딩(Run Length Coding) 및 엔트로피 코딩을 통하여, 이미지 데이터는 압축되며, 코딩된 비트스트림으로 기록된다. 디코딩 측면에서, 처리 절차는 반대가 된다. 우선, 엔트로피 코딩의 블록 변환 계수가 비트 스트림으로부터 추출된다. 그리고 나서, 역양자화 및 역변환을 통하여, 블록의 예측 잔류 오류는 재구성되며, 예측 정보는 블록의 비디오 데이터를 재구성하기 위하여 사용된다. 인코딩-디코딩 처리절차에서, 변환 모듈은 비디오 압축의 기초이며, 변환성능은 코덱의 일반적인 성능에 직접적으로 영향을 준다.
이산 코사인 변환(DCT)은 MPEG-1 및 H.261과 같은 초기 비디오 코딩 표준에서 채택되었다. 1974년 이산 코사인 변환의 제안 이후에, DCT는 이미지 및 비디오 코딩 분야에서 널리 사용되었다. 변환 도메인 내의 이미지 요소의 상관성을 제거하며, 고효율 이미지 압축을 위한 기반을 마련하기 때문에, 그것의 변환 성능은 모든 차선 변환(sub-optimal transform)중 우수하다. 그러나, DCT 변환 행렬은 부동 소수점 수(floating point number)로 표현되기 때문에, 대량의 부동 소수점 계산으로 인하여 많은 시스템 자원이 소모된다. 변환 효율을 개선하는 한편, 큰 크기의 블록에 대한 변환을 수행하기 위하여 새로운 DCT 변환 알고리즘의 필요성이 증가되었다.
본 발명이 해결하고자 하는 기술적 과제는 보다 효율적인 이산 코사인 변환을 이용하여 영상을 변환, 역변환하는 방법 및 장치를 제공하는 데 있다.
본 발명은 변환 행렬의 무리수 성분을 유리수로 치환한 변경된 변환 행렬을 이용하고, 변환시 곱셈 연산의 횟수를 줄임으로써 연산 복잡도를 감소시킨다.
본 발명에 따르면 큰 크기의 블록에 대한 변환 및 역변환시에 부동 소수점 연산이 아닌 정수 기반의 연산 과정을 통해서 복잡도를 감소시키고 연산 속도를 증가시키는 영상의 변환 및 역변환 방법을 제공할 수 있다.
또한, 본 발명에 따르면 스케일링 팩터를 통해 부동 소수점 연산에 기반한 변환 과정과의 오차값을 보상함으로써 복잡도를 감소시키면서 보다 효율적인 영상의 변환 및 역변환 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 2는 4 포인트, 8 포인트, 16 포인트, 32 포인트 이산 코사인 변환의 흐름도(flow graph)를 도시한다.
도 3은 본 발명의 일 실시예에 따른 영상 변환 방법을 나타낸 플로우 차트이다.
도 4는 본 발명의 일 실시예에 따라서 16x16 변환 행렬의 원소에 구비된 삼각함수 성분을 변수들로 치환한 치환된 NxN 변환 행렬(A)의 원소들을 나타낸 참조도이다.
도 5는 본 발명의 일 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다.
도 6은 본 발명의 다른 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다.
도 7은 본 발명의 일 실시예에 따라서 16x16 블록의 변환시에 이용되는 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 8은 본 발명의 일 실시예에 따라서 16x16 블록에 적용되는 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)을 도시한다.
도 9 내지 도 14는 본 발명의 일 실시예에 따른 32x32 블록에 적용되는 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 15는 본 발명의 다른 실시예에 따른 32 포인트 이산 코사인 변환의 흐름도(flow graph)를 도시한다.
도 16은 도 15의 32 포인트 이산 코사인 변환을 구성하는 버터플라이 구조의 연산 과정을 나타낸 참조도이다.
도 17은 본 발명의 다른 실시예에 따른 영상 변환 방법을 나타낸 플로우 차트이다.
도 18은 본 발명의 일 실시예에 따른 변경된 버터플라이 구조를 나타낸 도면이다.
도 19는 본 발명의 다른 실시예에 따른 변경된 버터플라이 구조를 나타낸 도면이다.
도 20은 본 발명의 또 다른 실시예에 따른 변경된 버터 플라이 구조를 나타낸 도면이다.
도 21은 본 발명의 또 다른 실시예에 따른 변경된 버터 플라이 구조를 나타낸 도면이다.
도 22 내지 도 27은 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 28 내지 도 33은 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 34 내지 도 39는 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬 (v)의 예를 도시한다.
도 40 내지 도 45는 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬 (V)의 예를 도시한다.
도 46 내지 도 51은 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 52 내지 도 57은 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 58 내지 도 63은 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬 (v)의 예를 도시한다.
도 64 내지 도 69는 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬 (V)의 예를 도시한다.
도 70 내지 도 75는 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 76 내지 도 81은 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다.
도 82 내지 도 87은 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬 (v)의 예를 도시한다.
도 88 내지 도 93은 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬 (V)의 예를 도시한다.
도 94 내지 도 99는 본 발명의 일 실시예에 따라서 32x32 블록에 적용되는 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)의 예를 도시한다.
도 100은 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 101은 본 발명의 일 실시예에 따른 영상의 역변환 방법을 나타낸 플로우 차트이다.
도 102는 본 발명의 다른 실시예에 다른 영상의 역변환 방법을 나타낸 플로우 차트이다.
발명의 실시를 위한 최선의 형태
본 발명의 일 실시예에 따른 영상의 변환 방법은 NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하는 단계; 상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하는 단계; 상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하는 단계; 및 상기 획득된 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬을 이용하여 상기 NxN 크기의 블록을 변환하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 영상의 변환 방법은 NxN 크기(N은 정수)의 블록의 행 단위 및 열 단위 중 어느 하나에 대한 1차원 이산 코사인 변환을 수행하는 단계를 포함하며, 상기 1차원 이산 코사인 변환을 수행하는 단계는 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 수행되는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상의 변환 장치는 NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하고 상기 획득된 N개의 변수들에 기초한 값들로 치환함으로써 획득된 치환된 NxN 변환 행렬을 이용하여 상기 NxN 크기의 블록을 변환하는 변환부를 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 영상의 변환 장치는 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 NxN 크기(N은 정수)의 블록의 행 단위 및 열 단위 중 어느 하나에 대한 1차원 이산 코사인 변환을 수행하는 변환부를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상의 역변환 방법은 복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 양자화된 변환 계수들을 수신하는 단계; 상기 수신된 양자화된 변환 계수들을 역양자화하는 단계; 및 상기 NxN 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하고, 상기 획득된 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬을 이용하여 상기 NxN 크기의 블록의 역양자화된 변환 계수들을 역변환하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 영상의 역변환 방법은 복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 양자화된 변환 계수들을 수신하는 단계; 상기 수신된 양자화된 변환 계수들을 역양자화하는 단계; 및 역양자화된 변환 계수들에 대한 1차원 이산 코사인 역변환을 수행하는 단계를 포함하며, 상기 1차원 이산 코사인 역변환을 수행하는 단계는 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 수행되는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상의 역변환 장치는 복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하고, 상기 획득된 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬을 이용하여, 상기 NxN 크기의 블록의 역양자화된 변환 계수들을 역변환하는 역변환부를 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 영상의 역변환 장치는 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 복호화되는 NxN 크기(N은 정수)의 블록의 행 단위 및 열 단위 중 어느 하나에 대한 1차원 이산 코사인 역변환을 수행하는 역변환부를 포함하는 것을 특징으로 한다.
발명의 실시를 위한 형태
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들에 대하여 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 예측부(110), 감산부(115), 변환부(120), 양자화부(130) 및 엔트로피 부호화부(140)를 포함한다.
예측부(110)는 입력 영상을 소정 크기의 블록들로 분할하고, 분할된 각 블록에 대하여 인터 예측 또는 인트라 예측을 통해 예측 블록을 생성한다. 구체적으로, 예측부(110)는 이전에 부호화된 후 복원된 참조 픽처의 소정 탐색 범위 내에서 현재 블록과 유사한 영역을 가리키는 움직임 벡터를 생성하는 움직임 예측 및 보상 과정을 통해 예측 블록을 생성하는 인터 예측 및 현재 블록에 인접한 주변 블록의 데이터를 이용하여 예측 블록을 생성하는 인트라 예측을 수행한다.
감산부(115)는 현재 블록의 예측 블록과 원 영상 데이터를 감산한 레지듀얼을 생성한다.
변환부(120)는 레지듀얼을 주파수 영역으로 변환한다. 특히, 본 발명의 실시예들에서는 기존의 4x4, 8x8의 상대적으로 작은 크기에 대해서 정의되었던 이산 코사인 변환 행렬을 확장하여 16x16 이상의 큰 크기의 블록에도 적용될 수 있는 새로운 이산 코사인 변환 방식을 제공한다. 후술되는 바와 같이 본 발명의 일 실시예에 따른 변환부(120)는 기존의 이산 코사인 변환에 이용되는 변환 행렬의 원소들을 유리수 값으로 치환함으로써, 부동 소수점 연산이 아닌 정수 기반의 덧셈 및 뺄셈 연산과 시프트 연산에 의하여 이산 코사인 변환을 수행함으로써 연산의 복잡도를 감소시키는 한편 연산 속도를 증가시킨다. 또한, 본 발명의 다른 실시예에 따른 변환부(120)는 버터 플라이 구조의 1차원 이산 코사인 변환시에 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 변환을 수행함으로써 하드웨어적으로 복잡도가 큰 곱셈의 연산을 감소시키며 전체적인 연산 복잡도를 감소시킨다.
양자화부(130)는 변환된 레지듀얼을 양자화한다. 특히, 본 발명의 일 실시예에 따른 양자화부(130)는 변환부(120)에서 근사화된 변환 행렬을 이용하여 변환된 값과 실제 부동 소수점 연산에 기반한 이산 코사인 변환 사이의 오차값을 감소시키기 위하여 소정의 스케일링 팩터를 변환값에 적용한다. 이와 같이 본 발명의 일 실시예에 따른 양자화부(130)는 스케일링 팩터를 이용하여 부동 소수점 연산에 기반한 이산 코사인 변환에 의한 결과값과 유리수 기반의 근사화된 이산 코사인 변환에 의한 결과값 사이의 오차값을 감소시킨다. 구체적인 스케일링 및 양자화 과정에 대해서는 후술한다.
엔트로피 부호화부(140)는 양자화된 영상 데이터에 대하여 가변 길이 부호화를 수행하여 비트스트림을 생성한다.
이하, 본 발명의 일 실시예에 따른 영상 변환 방법에 대하여 구체적으로 설명한다.
DCT는 영상 압축을 위한 효과적인 코딩 기술인데, DCT를 이용하면 영상을 공간 영역에서 주파수 영역으로 변환할 수 있으며, 영상 데이터는 변화가 적으므로 낮은 주파수, 특히 0 주파수(DC) 성분이 큰 값을 가지게 되고, 높은 주파수 성분은 상대적으로 낮은 값을 갖게 되므로서, 대부분의 정보가 낮은 주파수 쪽으로 몰리게 되어 양자화 과정을 적절히 거치면 높은 압축율로 우수한 화질의 압축 이미지를 얻을 수 있다.
영상 부호화시에 다양한 DCT 방법이 있다. 그 종류로는 처리 속도면에서는 빠르지만 정확성이 조금 떨어지는 정수(integer)를 사용하는 방법, 그리고 처리 속도는 느리지만 정확성이 뛰어난 부동 소수점(floating-point) 연산을 사용하는 방법 등이 있다. 각각의 DCT 방법은 열 단위 및 행 단위로, 즉 1차원(1-D) DCT를 수행하는 것이 일반적이다.
도 2는 4 포인트, 8 포인트, 16 포인트, 32 포인트 이산 코사인 변환의 흐름도(flow graph)를 도시한다.
도 2를 참조하면, f0 내지 f31은 일차원 변환의 입력값들을 나타낸다. 동시에 f0 내지 f31은 일차원 역변환의 출력값이 될 수 있다. F0 내지 F31은 일차원 변환의 출력값들을 나타내는 동시에 일차원 역변환의 입력값이다. 변환시에 데이터 처리 방향은 좌측에서 우측이며, 역변환시에 데이터 처리 방향은 우측에서 좌측이다. 점에서 교차하는 2개의 라인은 2개의 수의 덧셈을 나타낸다. 각 라인 위의 값은 해당 계수에 의한 곱셈을 나타낸다. cθ는 cosθ, sθ는 sinθ를 나타내며, '-'는 부정(negation)을 나타낸다. 점선으로 표시된 도면 부호 210은 4 포인트 일차원 변환의 흐름도, 도면 부호 220은 8 포인트 일차원 변환의 흐름도, 도면 부호 230은 16 포인트 일차원 변환의 흐름도, 도면 부호 240은 32 포인트 일차원 변환의 흐름도를 나타낸다.
흐름도(200)에 도시된 바와 같이 이산 코사인 변환의 단점은 cθ 및 sθ가 θ의 값에 따라서 무리수(irrational number)가 될 수 있기 때문에 연산 복잡도가 증가할 수 있다는 것이다. 이로 인해서 입력값이 정수라고 하더라도 최종 변환 결과값은 무리수로 매핑될 수 있다. 이러한 이산 코사인 변환 과정은 하드웨어로 구현시에 복잡도를 증가시킨다. 따라서, 본 발명의 일 실시예에 따른 영상 변환 방법은 이산 코사인 변환에 이용되는 무리수 대신에 유리수 값으로 치환된 계수들에 의하여 원래의 이산 코사인 변환과 최대한 유사한 결과값을 갖도록 하는 정수 변환 방법을 제공한다.
도 3은 본 발명의 일 실시예에 따른 영상 변환 방법을 나타낸 플로우 차트이다.
도 3을 참조하면, 단계 310에서 NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬(Original_A)을 구성하는 원소들을 N개의 변수들(ai, i는 0부터 N-1까지의 정수)에 기초한 값들로 치환하여 치환된 NxN 변환 행렬(A)을 생성한다.
다시 도 2를 참조하면, N이 16인 경우, 즉 16x16 크기의 입력 블록에 대한 1차원 이산 코사인 변환 수행시에 도면 부호 230으로 도시된 흐름도를 따라서 입력 블록의 16개의 행 단위 및 16개의 열 단위 별로 1차원 이산 코사인 변환이 수행된다. 16개의 입력값을 f=[f0, f1, f2, ..., f14, f15]T, 변환 결과값을 F=[F0, F1, F2, ..., F14, F15]T, 도면 부호 230에 따른 입력값에 대한 변환 과정을 나타낸 변환 행렬을 Original_A라고 한다면 1차원 이산 코사인 변환은 F=Original_Axf 로 표현된다.
전술한 바와 같이, cosθ 및 sinθ는 θ의 값에 따라서 무리수가 될 수 있기 때문에, 본 발명의 일 실시예에 따르면 변환 행렬(Original_A)의 원소들에 포함된 cosθ 및 sinθ를 유리수 값으로 치환한다. 구체적으로, NxN 변환 행렬(Original_A)을 구성하는 원소들의 cos(πx(i/2)/N)(i는 0부터 N-1까지의 정수)인 성분을 유리수인 N개의 ai 변수들로 치환된다. 전술한 예에서, N=16인 경우라면, cos 0은 a0으로, cos(πx(1/2)/16)은 a1으로, cos(πx(2/2)/16)은 a2로, cos(πx(3/2)/16)은 a3로, cos(πx(4/2)/16)는 a4로, cos(πx(5/2)/16)는 a5로, cos(πx(6/2)/16)는 a6로, cos(πx(7/2)/16)는 a7, cos(πx(8/2)/16)는 a8, cos(πx(9/2)/16)는 a9, cos(πx(10/2)/16)는 a10, cos(πx(11/2)/16)는 a11, cos(πx(12/2)/16)는 a12, cos(πx(13/2)/16)는 a13, cos(πx(14/2)/16)는 a14, cos(πx(15/2)/16)는 a15로 치환된다. sinθ 성분은 sinθ=cos(90-θ)와 같은 관계를 이용하여 마찬가지로 ai 변수들로 치환될 수 있다.
도 4는 본 발명의 일 실시예에 따라서 16x16 변환 행렬의 원소에 구비된 삼각함수 성분을 변수들로 치환한 치환된 NxN 변환 행렬(A)의 원소들을 나타낸 참조도이다. 도 4를 참조하면, 원래의 16x16 변환 행렬을 구성하는 원소들은 16개의 변수들 ai에 기초한 값들로 표현될 수 있다.
다시 도 3을 참조하면, 단계 320에서 치환된 NxN 변환 행렬(A)과 치환된 NxN 변환 행렬의 전치 행렬(transpose)(AT)의 곱셈 행렬(AxAT)을 획득한다.
변환 행렬(A)이 갖추어야 할 조건 중 하나는 직교성(orthogonality)이다. 변환 행렬(A)이 직교성을 갖기 위해서는 변환 행렬(A)과 그 전치 행렬(AT)의 곱셈 결과에 따른 행렬의 원소들 중 대각 성분을 제외한 나머지 원소의 값이 0이어야 한다. 본 발명의 일 실시예에서는 원래 무리수였던 값을 유리수인 변수들 ai로 치환하였기 때문에 곱셈 행렬(AxAT)의 원소들 중 대각 성분을 제외한 나머지 원소의 값이 0이 아닐 수 있다. 그러나, 최대한 직교성을 갖도록 하기 위해서, 단계 330에서 곱셈 행렬(AxAT)의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 N개의 변수들(ai)을 획득한다. 전술한 도 4와 같은 16x16 크기의 블록에 대한 변환 행렬과 그 전치 행렬과의 곱셈 행렬(AxAT)을 계산한 다음, 곱셈 행렬(AxAT)의 대각 성분을 제외한 나머지 원소들의 제곱합은 다음의 수학식 f와 같다.
Figure 112010051715431-pct00001

Figure 112010051715431-pct00002

Figure 112010051715431-pct00003

Figure 112010051715431-pct00004

Figure 112010051715431-pct00005

전술한 수학식의 f값이 최소가 되도록 하는 ai는 다양한 최적화 알고리즘을 적용하여 계산될 수 있다. 최적화 알고리즘 적용시에 ai 변수들은 유리수이면서, 분모는 쉬프트(shift) 연산이 가능한 2의 거듭제곱 형태의 값을 갖는 것이 바람직하다. 이와 같이 변수 ai가 2의 거듭제곱 형태인 유리수(dyadic rational)인 제한 조건을 설정하는 이유는, 분모가 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을 갖을 수 있다.
단계 340에서 획득된 N개의 변수들(ai)에 기초한 값들로 치환된 NxN 변환 행렬(A)을 이용하여 NxN 크기의 블록을 변환한다. 즉, 입력값이 X라면 AX를 계산함으로써 N 포인트 1차원 이산 코사인 변환을 할 수 있다. 이와 같은 변환 행렬(A)는 전술한 과정을 통해 미리 획득된 다음 소정의 메모리에 저장된 후 소정 크기의 입력 블록에 적용되어 변환이 수행되도록 할 수 있다. 즉, 변환 과정을 위해서 매번 변환 행렬이 계산되는 것이 아니라, 다양한 크기의 입력 블록에 대하여 본 발명의 일 실시예에 따라서 미리 획득되어 저장된 변환 행렬이 이용되도록 할 수 있다.
전술한 예와 같이 N이 16인 경우, 즉 16x16 입력 블록에 대하여 치환된 16x16 변환 행렬(A)를 이용한 1차원 이산 코사인 변환을 수행하는 단계는, X0 내지 X15은 변환되어야 할 입력값, B0 내지 B15, C0 내지 C15, D0 내지 D15, E0 내지 E15, F0 내지 F15, G0 내지 G15은 중간값, Y0 내지 Y15은 변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00006

Figure 112010051715431-pct00007

Figure 112010051715431-pct00008

Figure 112010051715431-pct00009

Figure 112010051715431-pct00010

Figure 112010051715431-pct00011

Figure 112010051715431-pct00012

Figure 112010051715431-pct00013

Figure 112010051715431-pct00014

Figure 112010051715431-pct00015

Figure 112010051715431-pct00016

Figure 112010051715431-pct00017

Figure 112010051715431-pct00018

Figure 112010051715431-pct00019

Figure 112010051715431-pct00020

Figure 112010051715431-pct00021

Figure 112010051715431-pct00022

Figure 112010051715431-pct00023

Figure 112010051715431-pct00024

Figure 112010051715431-pct00025

Figure 112010051715431-pct00026

Figure 112010051715431-pct00027

Figure 112010051715431-pct00028

Figure 112010051715431-pct00029

Figure 112010051715431-pct00030

Figure 112010051715431-pct00031

Figure 112010051715431-pct00032

Figure 112010051715431-pct00033

상기 연산 과정에서 결과값이 변함없는 연산 과정, 예를 들어 F0=E0=G0=Y0와 같이 동일한 값이 계속 매핑되는 것에 불과한 연산 과정의 경우 중간 과정을 생략하고 바로 F0가 결과값 Y0로 매핑되도록 할 수 있다.
또한, 전술한 연산 과정에서 나눗셈에 대응되는 라이트 쉬프트 연산(>>)과 관련하여, 반올림 오차(rounding error)를 감소시키기 위하여 x>>y 연산은 (x+(1<<(y-1)))>>y 또는 (abs(x)+(1<<(y-1)))>>y 연산 형태로 대체될 수 있다.
다른 예로서 N이 32인 경우도 전술한 N이 16인 경우와 유사하게, 32x32 크기의 블록의 1차원 이산 코사인 변환에 이용되는 32x32 변환 행렬(Original_A)을 구성하는 원소들을 32개의 변수들(ai, i는 0부터 31까지의 정수)에 기초한 값들로 치환하여 치환된 NxN 변환 행렬(A)을 생성한다. 도 2를 다시 참조하면, N이 32인 경우, 즉 32x32 크기의 입력 블록에 대한 1차원 이산 코사인 변환 수행시에 도면 부호 240으로 도시된 흐름도를 따라서 입력 블록의 32개의 행 단위 및 32개의 열 단위 별로 1차원 이산 코사인 변환이 수행된다. 32개의 입력값을 f=[f0, f1, f2, ..., f30, f31]T, 변환 결과값을 F=[F0, F1, F2, ..., F30, F31]T, 도면 부호 240에 따른 입력값에 대한 변환 과정을 나타낸 변환 행렬을 Original_A라고 한다면 1차원 이산 코사인 변환은 F=Original_Axf 로 표현된다. 32x32 변환 행렬(Original_A)을 구성하는 원소들의 cos(πx(i/2)/32)(i는 0부터 31까지의 정수)인 성분을 유리수인 32개의 ai 변수들로 치환된다. 치환된 32x32 변환 행렬(A)과 치환된 32x32 변환 행렬의 전치 행렬(transpose)(AT)의 곱셈 행렬(AxAT)을 획득하고, 곱셈 행렬(AxAT)의 원소들 중 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 32개의 변수들(ai)을 최적화 알고리즘을 적용하여 획득한다.
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 을 갖을 수 있다.
다음 획득된 32개의 변수들(ai)에 기초한 값들로 치환된 32x32 변환 행렬(A)을 이용하여 32x32 크기의 블록을 변환한다.
전술한 N이 32인 경우, 즉 32x32 입력 블록에 대하여 치환된 32x32 변환 행렬(A)를 이용한 1차원 이산 코사인 변환을 수행하는 단계는 X0 내지 X31은 변환되어야 할 입력값, A0내지 B31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0 내지 G31, H0 내지 H31은 중간값, Y0 내지 Y31은 변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00034

Figure 112010051715431-pct00035

Figure 112010051715431-pct00036

Figure 112010051715431-pct00037

Figure 112010051715431-pct00038

Figure 112010051715431-pct00039

Figure 112010051715431-pct00040

Figure 112010051715431-pct00041

Figure 112010051715431-pct00042

Figure 112010051715431-pct00043

Figure 112010051715431-pct00044

Figure 112010051715431-pct00045

Figure 112010051715431-pct00046

Figure 112010051715431-pct00047

Figure 112010051715431-pct00048

Figure 112010051715431-pct00049

Figure 112010051715431-pct00050

Figure 112010051715431-pct00051

Figure 112010051715431-pct00052

Figure 112010051715431-pct00053

Figure 112010051715431-pct00054

Figure 112010051715431-pct00055

Figure 112010051715431-pct00056

Figure 112010051715431-pct00057

Figure 112010051715431-pct00058

Figure 112010051715431-pct00059

Figure 112010051715431-pct00060

Figure 112010051715431-pct00061

Figure 112010051715431-pct00062

Figure 112010051715431-pct00063

Figure 112010051715431-pct00064

Figure 112010051715431-pct00065

Figure 112010051715431-pct00066

Figure 112010051715431-pct00067

Figure 112010051715431-pct00068

Figure 112010051715431-pct00069

Figure 112010051715431-pct00070

Figure 112010051715431-pct00071

Figure 112010051715431-pct00072

Figure 112010051715431-pct00073

Figure 112010051715431-pct00074

Figure 112010051715431-pct00075

Figure 112010051715431-pct00076

Figure 112010051715431-pct00077

Figure 112010051715431-pct00078

Figure 112010051715431-pct00079

Figure 112010051715431-pct00080

Figure 112010051715431-pct00081

Figure 112010051715431-pct00082

Figure 112010051715431-pct00083

Figure 112010051715431-pct00084

Figure 112010051715431-pct00085

Figure 112010051715431-pct00086

Figure 112010051715431-pct00087

Figure 112010051715431-pct00088

Figure 112010051715431-pct00089

Figure 112010051715431-pct00090

Figure 112010051715431-pct00091

Figure 112010051715431-pct00092

Figure 112010051715431-pct00093

Figure 112010051715431-pct00094

Figure 112010051715431-pct00095

Figure 112010051715431-pct00096

Figure 112010051715431-pct00097

Figure 112010051715431-pct00098

Figure 112010051715431-pct00099

Figure 112010051715431-pct00100

Figure 112010051715431-pct00101

Figure 112010051715431-pct00102

Figure 112010051715431-pct00103

Figure 112010051715431-pct00104

Figure 112010051715431-pct00105

Figure 112010051715431-pct00106

Figure 112010051715431-pct00107

Figure 112010051715431-pct00108

Figure 112010051715431-pct00109

Figure 112010051715431-pct00110

Figure 112010051715431-pct00111

Figure 112010051715431-pct00112

Figure 112010051715431-pct00113

또 다른 예로서 N이 64인 경우, 64x64 크기의 블록의 1차원 이산 코사인 변환에 이용되는 64x64 변환 행렬(Original_A)을 구성하는 원소들의 cos(πx(i/2)/64)(i는 0부터 63까지의 정수)인 성분을 유리수인 64개의 ai 변수들로 치환하여 치환된 64x64 변환 행렬(A)을 생성하고, 치환된 64x64 변환 행렬(A)과 치환된 64x64 변환 행렬의 전치 행렬(transpose)(AT)의 곱셈 행렬(AxAT)을 획득하고, 곱셈 행렬(AxAT)의 원소들 중 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 64개의 변수들(ai)을 최적화 알고리즘을 적용하여 획득한다.
N이 64인 경우, 최적화 알고리즘을 적용하면 64개의 변수들 ai는 다음의 값들; a1 =1024/1024, a2 = 1023/1024, a3 = 1021/1024, a4 = 1019/1024, a5 = 1016/1024, a6 = 1013/1024, a7 = 1009/1024, a8 = 1004/1024, a9 = 999 /1024, a10 =993 /1024, a11 =987 /1024, a12 =980 /1024, a13 =972 /1024, a14 =964 /1024, a15 =955 /1024, a16 =946 /1024, a17 =936 /1024, a18 =926 /1024, a19 =915 /1024, a20 =903 /1024, a21 =891 /1024, a22 =878 /1024, a23 =865 /1024, a24 =851 /1024, a25 =837 /1024, a26 =822 /1024, a27 =807 /1024, a28 =792 /1024, a29 =775 /1024, a30 =759 /1024, a31 =742 /1024, a32 =724 /1024, a33 =706 /1024, a34 =688 /1024, a35 =669 /1024, a36 =650 /1024, a37 =630 /1024, a38 =610 /1024, a39 =590 /1024, a40 =569 /1024, a41 =548 /1024, a42 =526 /1024, a43 =505 /1024, a44 =483 /1024, a45 =460 /1024, a46 =438 /1024, a47 = 415 /1024, a48 =392 /1024, a49 =369 /1024, a50 =345 /1024, a51 =321 /1024, a52 =297 /1024, a53 =273 /1024, a54 =249 /1024, a55 =224 /1024, a56 =200 /1024, a57 =175 /1024, a58 =150/1024, a59 =125 /1024, a60 =100 /1024, a61 =75 /1024, a62 =50/1024 및 a63 =25/1024 을 갖을 수 있다.
다음 획득된 64개의 변수들(ai)에 기초한 값들로 치환된 64x64 변환 행렬(A)을 이용하여 64x64 크기의 블록을 변환한다.
전술한 N이 64인 경우, 즉 64x64 입력 블록에 대하여 치환된 64x64 변환 행렬(A)를 이용한 1차원 이산 코사인 변환을 수행하는 단계는 X0 내지 X63은 변환되어야 할 입력값, A0내지 B63, B0 내지 B63, C0 내지 C63, D0 내지 D63, E0 내지 E63, F0 내지 F63, G0 내지 G63, H0 내지 H63, I0내지 I63, O0 내지 O63은 중간값, Y0 내지 Y63은 변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00114

Figure 112010051715431-pct00115

Figure 112010051715431-pct00116

Figure 112010051715431-pct00117

Figure 112010051715431-pct00118

다시 도 3을 참조하면, 단계 350에서 이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬(Original_A)과 치환된 NxN 변환 행렬(A) 사이의 차이값을 보정하기 위한 스케일링 행렬 및 시프트 연산을 적용하여 NxN 크기의 블록을 변환한 변환 블록에 대한 양자화를 수행한다.
전술한 바와 같이, 본 발명의 일 실시예에 따르면 원래의 NxN 변환 행렬(Original_A)에 포함된 cosθ, sinθ 성분들을 유리수인 변수 ai로 치환하였기 때문에 원래의 NxN 변환 행렬(Original_A)과 치환된 변환 행렬(A)에 의한 결과값은 오차가 발생한다. 따라서, 본 발명의 일 실시예에 따르면 양자화 단계에서 양자화와 함께 수행되는 스케일링 단계에서 스케일링 행렬을 적용하여 이러한 오차를 최소화한다.
도 5는 본 발명의 일 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다.
도 5를 참조하면, 단계 510에서 각 i번째 행의 원소가 Si(i는 1부터 N까지의 정수)의 값을 갖는 NxN 크기의 중간 행렬(S)의 각 원소와 치환된 NxN 크기의 변환 행렬(A)의 동일 위치의 원소들을 각각 곱한 값(SⓧA)과, 원래의 NxN 변환 행렬(Original_A) 사이의 차이인 변환 오차 행렬(Original_A-SⓧA )을 획득한다. ⓧ는 원소 단위 곱셈(element-by-element multiplication, element-wise multiplication) 연산을 나타내는 것으로, 행렬의 동일 위치의 원소가 곱해진다.
예를 들어, 16x16 크기의 중간 행렬(S)는 다음과 같다.
Figure 112010051715431-pct00119

단계 520에서 변환 오차 행렬(Original_A-SⓧA)의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 Si 값들을 획득한다. Si 값들은 다양한 최적화 알고리즘을 이용하여 결정될 수 있다. 일 예로 S1의 초기값을 (1/4*2^(1/2))로 하고 Nelder-Mead Sipmlex 방법과 같은 최적화 알고리즘을 적용하여 Si값들을 결정할 수 있다.
단계 530에서 획득된 Si값들을 적용한 NxN 크기의 중간 행렬(S)의 각 원소와 중간 행렬(S)의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬(SⓧST)에 기초하여 스케일링 행렬을 생성한다.
중간 행렬(S)의 각 원소와 중간 행렬의 전치 행렬(ST)의 동일 위치의 원소를 곱한 행렬(SⓧST)을 PF라고 하면, 스케일링 행렬(MF)는 다음의 수학식; MF=PF*2^m/Qstep 과 같이 계산될 수 있다. 여기서, Qstep은 양자화 스텝, m은 양의 정수이다.
단계 540에서, 스케일링 행렬(MF) 및 시프트 연산을 적용하여 NxN 크기의 블록을 변환한 변환 블록에 대한 양자화를 수행한다. 구체적으로 양자화는 스케일링 행렬(MF)와 NxN 크기의 블록을 변환한 변환 블록을 곱한 값에 소정의 오프셋을 더한 값을 다음의 수학식; q=floor(QP/6)+m 의 q 비트만큼 비트 시프트 연산함으로써 수행된다. Zij를 양자화된 계수값, Wij를 변환 계수, f를 오프셋이라고 하면,
Figure 112010051715431-pct00120

이고,
Figure 112010051715431-pct00121

이다. 여기서, '.MF'는 행렬의 동일 위치의 원소를 곱하는 벡터곱 연산을 의미한다. 전술한 바와 같이, 벡터곱 연산은 ⓧ와 같이 표현될 수도 있다.
도 7은 본 발명의 일 실시예에 따라서 16x16 블록의 변환시에 이용되는 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다. 도 7에서는 스케일링 행렬 계산시 m=10인 경우이다.
도 7에 도시된 바와 같은 스케일링 행렬은 모든 양자화 스텝에 대하여 정의될 필요없이 처음의 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) 값에 따라서 선택될 수 있다.
이와 같은 스케일링 행렬(MF)는 32x32 블록이나 64x64 블록에 대해서도 전술한 16x16 블록에 대한 스케일링 행렬을 구하는 과정과 유사한 과정을 통해 획득될 수 있다. 도 9 내지 도 14는 이와 같은 과정을 통해 획득된 32x32 블록에 적용되는 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예를 도시한다. 64x64 블록에 적용되는 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)는 다음과 같이 정의될 수 있다.
< 64x64 입력 블록에 대한 스케일링 행렬(MF)의 예>
m = 11 일 때, Q0 = 102*ONES / Q1 = 93*ONES / Q2 = 79*ONES / Q3 = 73*ONES / Q4 = 64*ONES / Q5 = 57*ONES
m = 10 일 때, Q0 = 51*ONES / Q1 = 47*ONES / Q2 = 39*ONES / Q3 = 37*ONES / Q4 = 32*ONES / Q5 = 28*ONES
m = 9일 때, Q0 = 26*ONES / Q1 = 23*ONES / Q2 = 20*ONES / Q3 = 18*ONES / Q4 = 16*ONES / Q5 = 14*ONES
상기 예에서 Q#의 #값은 (QP mod 6)이며, ONES는 모든 원소가 1인 64x64 행렬을 나타낸다.
한편, 역양자화 단계에서는 이산 코사인 역변환에 이용되는 원래의 NxN 역변환 행렬과 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬 사이의 차이값을 보정하기 위한 역스케일링 행렬 및 시프트 연산을 적용하여 역양자화를 수행한다.
본 발명의 일 실시예에 따르면, 역스케일링 행렬(V)는 전술한 스케일링 행렬(MF)의 생성시에도 이용되는 중간 행렬(S)의 각 원소와 중간 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 생성될 수 있다. 구체적으로, 양자화 스텝을 Qstep, 중간 행렬(S)의 각 원소와 중간 행렬의 전치 행렬(ST)동일 위치의 원소들을 각각 곱한 행렬을 PF, n은 양의 정수라고 할 때, 역스케일링 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n 을 통해 획득된다.
전술한 바와 같이 역스케일링 행렬(V)가 결정되면, 역양자화는 역스케일링 행렬(V)와 양자화된 변환 계수를 곱한 값에 대해서 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 비트 시프트 연산을 통해 수행될 수 있다. 즉, Zij를 양자화된 계수값, Wij를 변환 계수라고 하면 다음의 수학식; Wij=(Zij)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
도 8은 본 발명의 일 실시예에 따라서 16x16 블록에 적용되는 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)을 도시한다. 도 8에서는 역스케일링 행렬 계산시 m=10인 경우를 나타낸다. 역스케일링 행렬(V) 역시 도 7의 스케일링 행렬과 같이 모든 양자화 스텝에 대하여 정의될 필요는 없고, 처음의 6단계의 Qstep 값인 (0.625, 0.6875, 0.8125, 0.875, 1, 1.25)에 대해서 정의될 수 있다. 나머지 QP에 따른 역스케일링 행렬(V)는 (QP mod 6) 값에 따라서 선택될 수 있다.
유사하게, 32x32 입력 블록 및 64x64 블록에 적용되는 양자화 파라메터에 따른 역스케일링 행렬(V)도 전술한 16x16 블록에 적용되는 역스케일링 행렬(V) 계산 과정과 유사한 과정을 통해 획득될 수 있다. 도 94 내지 도 99는 본 발명의 일 실시예에 따라서 32x32 블록에 적용되는 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)의 예를 도시한다.
64x64 블록에 적용되는 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)는 다음과 같이 정의될 수 있다.
< 64x64 입력 블록에 대한 역스케일링 행렬(V)의 예>
n = 11 일 때, Q0 = 40*ONES / Q1 = 44*ONES / Q2 = 52*ONES / Q3 = 56*ONES / Q4 = 64*ONES / Q5 = 72*ONES
n = 10 일 때, Q0 = 20*ONES / Q1 = 22*ONES / Q2 = 26*ONES / Q3 = 28*ONES / Q4 = 32*ONES / Q5 = 36*ONES
n = 9일 때, Q0 = 10*ONES / Q1 = 11*ONES / Q2 = 13*ONES / Q3 = 14*ONES / Q4 = 16*ONES / Q5 = 18*ONES
상기 예에서 Q#의 #값은 (QP mod 6)의 값이며, ONES는 모든 원소가 1인 64x64 행렬을 나타낸다.
도 6은 본 발명의 다른 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다. 도 6의 본 발명의 다른 실시예에 따른 양자화 과정은 도 5의 본 발명의 일 실시예에 따른 양자화 과정과 비교할 때, 스케일링 행렬 생성에 이용되는 중간 행렬(S) 생성 과정에 있어서 차이가 나고, 나머지 과정은 전술한 도 5의 본 발명의 일 실시예에 따른 양자화 과정과 유사하다.
구체적으로, 도 6을 참조하면, 단계 610에서 이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬(Original_A)의 각 원소를 치환된 NxN 변환 행렬(A)의 동일 위치의 원소들로 나눔으로써 중간 행렬(S) 획득한다.
단계 620에서, 단계 610에서 생성된 중간 행렬(S)의 각 원소와 중간 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬(SⓧST)에 기초하여 스케일링 행렬을 생성한다. 구체적으로, 중간 행렬(S)과 중간 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬(SⓧST)을 PF라고 하면, 스케일링 행렬(MF)는 다음의 수학식; MF=PF*2^m/Qstep 과 같이 계산될 수 있다. 여기서, Qstep은 양자화 스텝, m은 양의 정수이다.
단계 630에서, 스케일링 행렬(MF) 및 시프트 연산을 적용하여 NxN 크기의 블록을 변환한 변환 블록에 대한 양자화를 수행한다. 구체적으로 양자화는 스케일링 행렬(MF)와 NxN 크기의 블록을 변환한 변환 블록을 곱한 값에 소정의 오프셋을 더한 값에 대해서 다음의 수학식; q=floor(QP/6)+m 의 q 비트만큼 비트 시프트 연산을 통해 수행된다. Zij를 양자화된 계수값, Wij를 변환 계수, f를 오프셋이라고 하면,
Figure 112010051715431-pct00122

이고,
Figure 112010051715431-pct00123

이다. 여기서, '.MF'는 행렬의 동일 위치의 원소를 곱하는 벡터곱 연산을 의미한다.
도 15는 본 발명의 다른 실시예에 따른 32 포인트 이산 코사인 변환의 흐름도(flow graph)를 도시한다.
도 15를 참조하면, x0 내지 x31은 입력값들을 나타낸다. y0 내지 y31은 이산 코사인 변환의 출력값들을 나타낸다. 변환시에 데이터 처리 방향은 좌측에서 우측이며, 역변환시에 데이터 처리 방향은 우측에서 좌측이다. 점에서 교차하는 2개의 라인은 2개의 수의 덧셈을 나타낸다. '-'는 부정(negation)을 나타낸다. 각 라인 위의 값 R(θ)는 도 16에 도시된 바와 같은 버터플라이 구조에 기초한 연산 과정을 나타낸다.
도 16은 도 15의 32 포인트 이산 코사인 변환을 구성하는 버터플라이 구조의 연산 과정을 나타낸 참조도이다.
도 16을 참조하면, 버터 플라이 구조의 연산은 입력값 [X1,X2]에 대해서 다음의 수학식;
Figure 112010051715431-pct00124

과 같은 연산을 통해 출력값 [Y1, Y2]를 출력하는 것이다. 이러한 버터 플라이 구조의 연산 과정은 2개의 입력값을 2개의 출력값에 매핑시키는 과정에서 총 4개의 곱셈 연산과 2개의 덧셈 연산을 하게 된다.
일반적으로 곱셈 연산은 덧셈, 뺄셈 및 쉬프트 연산에 비하여 연산이 복잡하고 연산 시간 역시 많이 소요되므로 전체적인 연산을 느리게 한다. 따라서, 본 발명의 다른 실시예에 따른 영상 변환 방법에서는 버터 플라이 구조에 기초한 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 영상 변환을 수행한다.
도 17은 본 발명의 다른 실시예에 따른 영상 변환 방법을 나타낸 플로우 차트이다. 도 17을 참조하면, 단계 1710에서 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환한다. 전술한 바와 같이 도 15에 도시된 바와 같은 32 포인트 이산 코사인 변환의 계산에는 R(θ)에 따라서, cosθ 및 sinθ가 이용된다. 본 발명의 다른 실시예에서는 상기 θ값에 따른 cosθ 및 sinθ 값으로서 다음과 같은 근사화된 유리수를 이용할 수 있다. 하기 기재된 바와 같이 근사화되는 유리수는 분모가 2의 거듭제곱꼴인 유리수(dyadic rational)를 이용하는 것이 바람직하다.
Figure 112010051715431-pct00125

단계 1720에서, 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 NxN 크기(N은 정수)의 블록의 행 단위 및 열 단위 중 어느 하나에 대한 1차원 이산 코사인 변환을 수행한다.
도 18은 본 발명의 일 실시예에 따른 변경된 버터플라이 구조를 나타낸 도면이다. 도 18을 참조하면, 좌측에 도시된 바와 같은 버터플라이 구조(1810)의 연산에 의한 입력값 X1, X2에 대한 결과값 Y1, Y2는 다음의 수학식과 같다.
Figure 112010051715431-pct00126

도 18의 좌측에 도시된 바와 같은 버터플라이 구조(1810)의 연산에서는 결과값 Y1, Y2를 얻기 위해서 총 4번의 곱셈 연산과 2번의 덧셈 또는 뺄셈 연산이 필요하다. 우측에 도시된 변경된 버터플라이 구조(1820)의 연산에 의한 입력값 X1, X2에 대한 결과값 Y1, Y2는 다음의 수학식과 같다.
Figure 112010051715431-pct00127

Figure 112010051715431-pct00128

우측에 도시된 변경된 버터플라이 구조(1820)의 연산 과정에서는 b*(X1+X2)의 계산에서 1번의 곱셈 연산이 수행되고 그 결과값이 Y1과 Y2의 계산에 모두 이용되므로 총 3번의 곱셈 연산과 3번의 덧셈 또는 뺄셈 연산이 필요하다. 따라서, 변경된 버터플라이 구조(1820)을 통해서 동일한 결과값을 가지면서도 복잡한 곱셈 연산 과정을 줄임으로써 연산 속도를 향상시킬 수 있다. 한편, 도 18의 우측에 도시된 바와 같은 변경된 버터플라이 구조(1820)를 도 15의 32 포인트 이산 코사인 변환에 적용할 때, sine과 cosine의 선형 조합값이 필요한 연산이 있다. 이 경우, 다음과 같은 근사화된 유리값을 이용하는 것이 바람직하다.
Figure 112010051715431-pct00129

도 19는 본 발명의 다른 실시예에 따른 변경된 버터플라이 구조를 나타낸 도면이다. 도 19를 참조하면, 좌측에 도시된 바와 같은 버터플라이 구조(1910)의 연산에 의한 입력값 X1, X2에 대한 결과값 Y1, Y2는 다음의 수학식과 같다.
Figure 112010051715431-pct00130

도 19의 좌측에 도시된 바와 같은 버터플라이 구조(1910)의 연산에서는 결과값 Y1, Y2를 얻기 위해서 총 4번의 곱셈 연산과 2번의 덧셈 또는 뺄셈 연산이 필요하다.
우측에 도시된 변경된 버터플라이 구조(1920)의 연산에 의한 입력값 X1, X2에 대한 결과값 Y1, Y2를 삼각함수 공식을 이용하여 정리하면, 우측에 도시된 변경된 버터플라이 구조(1920)는 좌측에 도시된 버터플라이 구조(1910)와 동일한 결과값을 출력한다. 우측에 도시된 변경된 버터플라이 구조(1920)의 연산 과정에서는 총 3번의 곱셈 연산과 3번의 덧셈 또는 뺄셈 연산이 필요하다. 따라서, 변경된 버터플라이 구조(1920)을 통해서 동일한 결과값을 가지면서도 복잡한 곱셈 연산 과정을 줄임으로써 연산 속도를 향상시킬 수 있다. 한편, 도 19의 우측에 도시된 바와 같은 변경된 버터플라이 구조를 도 15의 32 포인트 이산 코사인 변환에 적용할 때, sine과 cosine의 분수값 및 tangent 값이 필요한 연산이 있다. 이 경우, 다음과 같은 근사화된 유리값을 이용하는 것이 바람직하다.
Figure 112010051715431-pct00131

Figure 112010051715431-pct00132

도 20은 본 발명의 또 다른 실시예에 따른 변경된 버터 플라이 구조를 나타낸 도면이다. 도 20을 참조하면, 좌측의 버터 플라이 구조(2010)는 동일한 결과값을 출력하는 우측의 버터 플라이 구조(2020)으로 변경될 수 있다. 본 발명의 또 다른 실시예에 따른 변경된 버터 플라이 구조(2020)에서는 최종 결과값인 Y1과 Y2가 획득되기 전에 도면 부호 2025로 표시된 바와 같이 각 연산 결과가 cosα 및 (1/(1-cosα))와 곱셈 연산이 수행된다. 이러한 도면 부호 2025로 표시된 곱셈 연산은 변환 과정에서 수행되지 않고, 양자화 과정에서 수행되는 스케일링 행렬에 반영될 수 있다. 다시 말해서, 도면 부호 2025에 표시된 곱셈 인자를 스케일링 행렬의 각 원소에 곱해줌으로써 변환 단계에서의 곱셈 연산을 감소시키고, 대신에 곱셈 연산을 양자화 과정에 통합시킬 수도 있다. 이와 같이, 도면 부호 2025에 표시된 곱셈 인자를 양자화 과정에 통합시키고 변환 단계에서 생략하는 경우, 도 20에 따른 버터 플라이 구조에서는 총 2회의 곱셈 및 2회의 덧셈 연산만으로 구성될 수 있다.
도 21은 본 발명의 또 다른 실시예에 따른 변경된 버터 플라이 구조를 나타낸 도면이다. 도 21에서는 버터 플라이 구조의 연산에서 변수에 해당하는 R(θ)의 θ가 특수한 값을 갖을 때, 예를 들어 도시된 바와 같이 θ=π/4일 때, 우측에 도시된 바와 같은 변경된 버터 플라이 구조(2120)에 의한 연산에 의해서도 좌측에 도시된 버터 플라이 구조(2110)에 의한 연산과 동일한 결과를 얻을 수 있는 것을 도시한다. 우측에 도시된 버터 플라이 구조(2120)에 의한 연산 과정에서는 좌측에 도시된 버터 플라이 구조(2110)에 비하여 전체 연산 횟수를 감소시킬 수 있다.
도 18의 우측에 도시된 바와 같은 변경된 버터 플라이 구조(1820)의 연산을 도 15의 버터 플라이 구조 각각에 적용하여 32 포인트 이산 코사인 변환을 수행하는 경우, X0 내지 X31는 변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31은 중간값, t는 보조 변수, Y0 내지 Y31은 변환된 값을 나타낸다고 할 때, 변환 결과 Y0 내지 Y31은 다음의 연산 과정을 통해 획득될 수 있다.
Figure 112010051715431-pct00133

Figure 112010051715431-pct00134

Figure 112010051715431-pct00135

Figure 112010051715431-pct00136

Figure 112010051715431-pct00137

Figure 112010051715431-pct00138

Figure 112010051715431-pct00139

Figure 112010051715431-pct00140

Figure 112010051715431-pct00141

Figure 112010051715431-pct00142

Figure 112010051715431-pct00143

Figure 112010051715431-pct00144

Figure 112010051715431-pct00145

Figure 112010051715431-pct00146

Figure 112010051715431-pct00147

Figure 112010051715431-pct00148

Figure 112010051715431-pct00149

Figure 112010051715431-pct00150

Figure 112010051715431-pct00151

Figure 112010051715431-pct00152

Figure 112010051715431-pct00153

Figure 112010051715431-pct00154

Figure 112010051715431-pct00155

Figure 112010051715431-pct00156

Figure 112010051715431-pct00157

Figure 112010051715431-pct00158

Figure 112010051715431-pct00159

Figure 112010051715431-pct00160

Figure 112010051715431-pct00161

Figure 112010051715431-pct00162

만약, 도 19의 우측에 도시된 바와 같은 변경된 버터 플라이 구조(1920)의 연산을 도 15의 버터 플라이 구조 각각에 적용하여 32 포인트 이산 코사인 변환을 수행하는 경우, X0 내지 X31는 변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0내지 G31은 중간값, Y0 내지 Y31은 변환된 값을 나타낸다고 할 때, 변환 결과 Y0 내지 Y31은 다음의 연산 과정을 통해 획득될 수 있다.
Figure 112010051715431-pct00163

Figure 112010051715431-pct00164

Figure 112010051715431-pct00165

Figure 112010051715431-pct00166

Figure 112010051715431-pct00167

Figure 112010051715431-pct00168

Figure 112010051715431-pct00169

Figure 112010051715431-pct00170

Figure 112010051715431-pct00171

Figure 112010051715431-pct00172

Figure 112010051715431-pct00173

Figure 112010051715431-pct00174

Figure 112010051715431-pct00175

Figure 112010051715431-pct00176

Figure 112010051715431-pct00177

Figure 112010051715431-pct00178

Figure 112010051715431-pct00179

Figure 112010051715431-pct00180

Figure 112010051715431-pct00181

Figure 112010051715431-pct00182

Figure 112010051715431-pct00183

Figure 112010051715431-pct00184

Figure 112010051715431-pct00185

Figure 112010051715431-pct00186

Figure 112010051715431-pct00187

Figure 112010051715431-pct00188

Figure 112010051715431-pct00189

Figure 112010051715431-pct00190

Figure 112010051715431-pct00191

Figure 112010051715431-pct00192

Figure 112010051715431-pct00193

Figure 112010051715431-pct00194

Figure 112010051715431-pct00195

Figure 112010051715431-pct00196

Figure 112010051715431-pct00197

Figure 112010051715431-pct00198

Figure 112010051715431-pct00199

Figure 112010051715431-pct00200

Figure 112010051715431-pct00201

Figure 112010051715431-pct00202

Figure 112010051715431-pct00203

Figure 112010051715431-pct00204

Figure 112010051715431-pct00205

Figure 112010051715431-pct00206

Figure 112010051715431-pct00207

Figure 112010051715431-pct00208

Figure 112010051715431-pct00209

Figure 112010051715431-pct00210

Figure 112010051715431-pct00211

Figure 112010051715431-pct00212

Figure 112010051715431-pct00213

Figure 112010051715431-pct00214

Figure 112010051715431-pct00215

Figure 112010051715431-pct00216

한편, 도 18 및 도 19에 도시된 변경된 버터플라이 구조에 기초한 32x32 크기의 블록의 변환을 위한 변경된 이산 코사인 변환 행렬을 A라고 할 때, 도 15에 대응되는 32x32 크기의 블록의 이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬(Original_A)과 변경된 이산 코사인 변환 행렬 A 사이의 차이값을 보정하기 위한 스케일링 행렬 및 시프트 연산을 적용하여 NxN 크기의 블록을 변환한 변환 블록에 대한 양자화를 수행할 수 있다.
전술한 도 5과 같이, 스케일링 행렬은 각 i번째 행의 원소가 Si(i는 1부터 N까지의 정수)의 값을 갖는 NxN 크기의 중간 행렬(S)의 각 원소와 변경된 이산 코사인 변환 행렬 A의 동일 위치의 원소들을 각각 곱한 값(SⓧA)과, 원래의 NxN 변환 행렬 사이의 차이인 변환 오차 행렬(Original_A-SⓧA)을 획득하고, 변환 오차 행렬(Original_A- SⓧA)의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 Si 값들을 획득하며, 획득된 Si값들을 적용한 NxN 크기의 중간 행렬(S)의 각 원소와 중간 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬(SⓧST)에 기초하여 생성될 수 있다. 원래의 NxN 변환 행렬(Original_A)이 차이가 난다는 점을 제외하고는 구체적인 과정은 전술한 도 5의 단계 530 및 540과 동일하므로 구체적인 설명은 생략한다. 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예는 도 22 내지 도 27과 같다. 도 22 내지 도 27에서는 m=10인 경우이다. 또한, 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예는 도 28 내지 도33과 같다. 도 28 내지 도 33에서는 m=10인 경우이다.
한편, 역양자화 단계에서는 이산 코사인 역변환에 이용되는 원래의 NxN 역변환 행렬과 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬 사이의 차이값을 보정하기 위한 역스케일링 행렬 및 시프트 연산을 적용하여 역양자화를 수행한다. 전술한 도 18 및 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하는 경우 이산 코사인 변환을 나타내는 행렬이 변화되기 때문에 역스케일링 행렬 역시 변화된다.
역스케일링 행렬(V)는 전술한 스케일링 행렬(MF)의 생성시에도 이용되는 중간 행렬(S)과 중간 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬(SⓧST)에 해당하는 PF에 기초하여 생성될 수 있다. 구체적으로, 양자화 스텝을 Qstep, 중간 행렬(S)과 중간 행렬의 전치 행렬(ST)동일 위치의 원소들을 각각 곱한 행렬을 PF, n은 양의 정수라고 할 때, 역스케일링 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n 을 통해 획득된다.
전술한 바와 같이 역스케일링 행렬(V)가 결정되면, 역양자화는 역스케일링 행렬(V)와 양자화된 변환 계수를 곱한 값에 대해서 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 비트 시프트 연산을 통해 수행될 수 있다. 즉, Zij를 양자화된 계수값, Wij를 변환 계수라고 하면 다음의 수학식; Wij=(Zij)<<floor(QP/6)을 통해 양자화된 계수를 역양자화한 Wij를 획득할 수 있다.
도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬(v)의 예는 도 34 내지 도 39과 같다. 도 34 내지 도 39에서는 n=10인 경우이다. 또한, 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)의 예는 도 40 내지 도 45과 같다. 도 40내지 도 45에서는 n=10인 경우이다.
또한, 전술한 도 6과 유사하게 스케일링 행렬은 이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬의 각 원소를 변경된 이산 코사인 변환 행렬 A의 동일 위치의 원소들로 나눔으로써 획득된 중간 행렬의 각 원소와 중간 행렬의 전치 행렬의 동일 위치의 원소를 곱하여 획득된 행렬일 수 있다. 도 18 및 도 19의 우측에 도시된 변경된 버터플라이 구조를 도 15의 알고리즘에 적용한 N 포인트 1차원 이산 코사인 변환을 나타내는 변경된 이산 코사인 변환 행렬(A)이 차이가 난다는 점을 제외하고는 구체적인 과정은 전술한 도 6과 동일하므로 구체적인 설명은 생략한다. 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예는 도 46 내지 도 51과 같다. 도 46 내지 도 51에서는 m=10인 경우이다. 또한, 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예는 도 52 내지 도 57과 같다. 도 52 내지 도 57에서는 m=10인 경우이다.
스케일링 행렬을 도 46 내지 57에 적용된 바와 같이 이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬의 각 원소를 변경된 이산 코사인 변환 행렬 A의 동일 위치의 원소들로 나눔으로써 중간 행렬을 획득하고, 획득된 중간 행렬의 각 원소를 중간 행렬의 전치 행렬의 동일 위치의 원소와 곱하여 획득하는 경우, 원래의 NxN 변환 행렬이 차이가 나기 때문에 역스케일링 행렬(V) 역시 변경된다. 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬(v)의 예는 도 58 내지 도 63과 같다. 도 58 내지 도 63에서는 n=10인 경우이다. 또한, 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)의 예는 도 64 내지 도 69과 같다. 도 64 내지 도 69에서는 n=10인 경우이다.
한편, 전술한 도 6과 유사하게 스케일링 행렬은 이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬의 각 원소를 변경된 이산 코사인 변환 행렬 A의 동일 위치의 원소들로 나눔으로써 획득된 중간 행렬의 각 원소를 중간 행렬의 전치 행렬의 동일 위치의 원소들을 곱하여 획득된 행렬을 이용하는 한편, 역스케일링 행렬은 중간 행렬(S)을 이용하는 대신에 원래의 32 포인트 이산 코사인 역변환 행렬(Original_InverseA)의 각 원소와, 본 발명의 일 실시예에 따른 변경된 버터 플라이 구조에 대응되는 32 포인트 이산 코사인 변환 행렬(InverseA)의 동일 위치의 원소를 직접 나눔으로써 획득된 중간 행렬(R)을 이용하여 결정될 수 있다. 이 경우, 중간 행렬(R)의 각 원소와 중간 행렬(R)의 전치 행렬(RT)의 동일 위치의 원소들을 각각 곱한 행렬(RⓧRT)에 기초하여 역스케일링 행렬(V)을 생성한다. 구체적으로, 중간 행렬(R)과 중간 행렬의 전치 행렬(RT)의 동일 위치의 원소들을 각각 곱한 행렬(RⓧRT)을 BF, n은 양의 정수라고 할 때, 역스케일링 행렬(V)은 다음의 수학식; V=Qstep*BF*2^n 을 통해 획득된다. 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예는 도 70 내지 도 75과 같다. 도 70 내지 도 75에서는 m=10인 경우이다. 또한, 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 스케일링 행렬(MF)의 예는 도 76 내지 도 81과 같다. 도 76 내지 도 81에서는 m=10인 경우이다. 도 18의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬(v)의 예는 도 82 내지 도 87과 같다. 도 82 내지 도 87에서는 n=10인 경우이다. 또한, 도 19의 우측에 도시된 변경된 버터 플라이 구조를 적용하였을 때 32x32 입력 블록에 대한 양자화 파라메터(QP)에 따른 역스케일링 행렬(V)의 예는 도 88 내지 도 93과 같다. 도 88 내지 도 93에서는 n=10인 경우이다.
도 100은 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 100을 참조하면, 본 발명의 일 실시예에 따른 영상 복호화 장치(10000)는 엔트로피 복호화부(10010), 역양자화부(10020), 역변환부(10030) 및 예측부(10040)를 포함한다.
엔트로피 복호화부(10010)는 입력 비트스트림으로부터 복호화되는 현재 블록의 예측 모드 정보, 참조 픽처 정보 및 레지듀얼 정보를 추출한다.
역양자화부(10020)는 엔트로피복호화부(10010)에서 엔트로피 복호화된 양자화된 변환 계수들을 역양자화한다. 전술한 바와 같이 본 발명의 다양한 실시예를 통해서 역스케일링 행렬(V)이 결정되면, 역양자화부(10020)는 역스케일링 행렬(V)와 양자화된 변환 계수를 곱한 값에 대해서 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 비트 시프트 연산을 통해 역양자화를 수행한다. 즉, Zij를 양자화된 계수값, Wij를 변환 계수라고 하면 다음의 수학식; Wij=(Zij)<<floor(QP/6)을 통해 양자화된 계수를 역양자화한 Wij를 획득할 수 있다.
역변환부(10030)는 역양자화된 변환 계수들을 역변환한다. 역변환 결과, 블록 단위에 대한 레지듀얼 값들이 복원된다. 역변환 과정은 본 발명의 다양한 실시예를 통해서 획득된 NxN 변환 행렬(A)의 역행렬(A-1)을 이용한 N 포인트 이산 코사인 역변환을 통해 수행될 수 있다.
전술한 도 3의 실시예에 따라서 변환된 16x16 입력 블록에 대하여 치환된 16x16 변환 행렬(A)의 역변환 행렬(A-1)를 이용한 1차원 이산 코사인 역변환을 수행하는 경우, X0 내지 X15은 역변환되어야 할 입력값, B0 내지 B15, C0 내지 C15, D0 내지 D15, E0 내지 E15, F0 내지 F15, G0 내지 G15은 중간값, Y0 내지 Y15은 역변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00217

전술한 도 3의 실시예에 따라서 변환된 32x32 입력 블록에 대하여 치환된 32x32 변환 행렬(A)의 역변환 행렬(A-1)를 이용한 1차원 이산 코사인 역변환을 수행하는 경우, X0 내지 X31은 역변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0 내지 G31, H0 내지 H31은 중간값, Y0 내지 Y31은 역변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00218

Figure 112010051715431-pct00219

Figure 112010051715431-pct00220

전술한 도 3의 실시예에 따라서 변환된 64x64 입력 블록에 대하여 치환된 64x64 변환 행렬(A)의 역변환 행렬(A-1)를 이용한 1차원 이산 코사인 역변환을 수행하는 경우, X0 내지 X63은 역변환되어야 할 입력값, A0 내지 A63, B0 내지 B63, C0 내지 C63, D0 내지 D63, E0 내지 E63, F0 내지 F63, G0 내지 G63, H0 내지 H63, I0 내지 I63, O0 내지 O63은 중간값, Y0 내지 Y63은 역변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00221

Figure 112010051715431-pct00222

Figure 112010051715431-pct00223

Figure 112010051715431-pct00224

Figure 112010051715431-pct00225

Figure 112010051715431-pct00226

전술한 도 18의 우측에 도시된 변경된 버터플라이 구조의 실시예에 따라서 변환된 32x32 입력 블록에 대하여 1차원 이산 코사인 역변환을 수행하는 경우, X0 내지 X31은 역변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0 내지 G31, H0 내지 H31은 중간값, t는 보조 변수, Y0 내지 Y31은 역변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00227

Figure 112010051715431-pct00228

Figure 112010051715431-pct00229

Figure 112010051715431-pct00230

Figure 112010051715431-pct00231

Figure 112010051715431-pct00232

Figure 112010051715431-pct00233

Figure 112010051715431-pct00234

Figure 112010051715431-pct00235

Figure 112010051715431-pct00236

Figure 112010051715431-pct00237

전술한 도 19의 우측에 도시된 변경된 버터플라이 구조의 실시예에 따라서 변환된 32x32 입력 블록에 대하여 1차원 이산 코사인 역변환을 수행하는 경우, X0 내지 X31은 역변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0 내지 G31, H0 내지 H31은 중간값, t는 보조 변수, Y0 내지 Y31은 역변환된 값을 나타낸다고 할 때, 다음의 연산 과정과 같이 표현될 수 있다.
Figure 112010051715431-pct00238

Figure 112010051715431-pct00239

예측부(10040)는 인터 예측 또는 인트라 예측을 통해 복호화되는 현재 블록의 예측 블록을 생성하고, 역변환부(10030)에서 출력되는 레지듀얼 값과 예측 블록을 가산하여 현재 블록을 복원한다.
도 101은 본 발명의 일 실시예에 따른 영상의 역변환 방법을 나타낸 플로우 차트이다.
도 101을 참조하면, 단계 10110에서 복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 양자화된 변환 계수들을 수신한다.
단계 10120에서, 수신된 양자화된 변환 계수들을 역양자화한다. 전술한 바와 같이, 역양자화는 역스케일링 행렬(V)와 양자화된 변환 계수를 곱한 값에 대해서 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 비트 시프트를 통해 수행될 수 있다.
단계 10130에서, NxN 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 치환된 NxN 변환 행렬과 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 N개의 변수들을 획득하고, 획득된 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬(A)의 역행렬인 NxN 역변환 행렬(A-1)을 이용하여 NxN 크기의 블록의 역양자화된 변환 계수들을 역변환한다.
도 102는 본 발명의 다른 실시예에 다른 영상의 역변환 방법을 나타낸 플로우 차트이다.
도 102를 참조하면, 단계 10210에서 복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 양자화된 변환 계수들을 수신한다.
단계 10220에서 수신된 양자화된 변환 계수들을 역양자화한다. 이 때, 역양자화는 전술한 도 18 및 도 19에 대응되는 변경된 버터 플라이 구조에 대응되는 변환 행렬의 역행렬을 이용하여 수행될 수 있다.
단계 10230에서 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 역양자화된 변환 계수들에 대한 1차원 이산 코사인 역변환을 수행한다.
한편, 전술한 16x16, 32x32, 64x64의 변환 및 역변환 과정은 곱셈을 포함하지 않는 형태로 변경될 수 있다. 구체적으로, 각 변환 과정은 분모가 2의 거듭 제곱꼴인 유리수(dyadic rational)와 중간값들의 곱으로 표현된다. 분모가 2의 거듭 제곱꼴인 유리수(dyadic rational) 형태의 상수를, 분자가 1인 분수들만의 덧셈 및 뺄셈의 형태로 분해하면 곱셈 연산 없이, 덧셈, 뺄셈 및 쉬프트 연산만으로 해당 연산이 수행될 수 있다. 또한, 분해시에 항의 개수가 최소가 되도록 하면 덧셈, 뺄셈 및 쉬프트 연산의 수를 줄일 수 있다. 예를 들어, 분모가 2의 거듭 제곱꼴인 유리수(dyadic rational)의 하나인 59/64는 (1-1/16-1/64)로 변경될 수 있다. 이러한 59/64를 소정의 중간값 x와 곱하는 연산, 즉 (59/64)*x=(59*x)/64이고 64는 2^6이기 때문에 (59*x)/64는 (59*x)>>6을 계산하는 것과 같다. 상기 59/64는 (1-1/16-1/64)로 분해될 수 있기 때문에, (59*x)>>6는 (x-(x>>4)-(x>>6))으로 변경될 수 있다. 이와 같은 경우 (59*x)/64를 계산하기 위해서 원래 곱셈 1번, 쉬프트 연산이 1번 필요했다면 (x-x>>4-x>>6)을 계산시에는 뺄셈 2번, 쉬프트 연산 2번이 필요하게 되므로 복잡도가 큰 곱셈 연산의 횟수를 줄일 수 있다.
다른 예로서, 분모가 2의 거듭 제곱꼴인 유리수(dyadic rational)인 255/256, 131/256, 999/1024, 75/1024는 각각 다음과 같이 분자가 1이면서 분모가 2의 거듭 제곱꼴인 유리수(dyadic rational)의 덧셈 및 뺄셈의 형태로 분해될 수 있다.
255/256=1-1/256; 131/256=1/2+1/128+1/256; 999/1024=1-1/32+1/128-1/1024; 75/1024=1/16+1/128+1/512+1/1024
하나 이상의 분모가 2의 거듭 제곱꼴인 유리수(dyadic rational)와 중간값의 곱셈을 포함하고 있는 식의 경우는, 총 연산의 수를 최소화하도록 변경할 수 있다. 예를 들어, F5=(53*E5+35*E6)>>6 과 같은 연산은, X=E5+E6라고 할 때 F5=(X>>6)+(X>>5)+(X>>1)+(E5>>5)+(E5>>2)와 같이 변경될 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
산업상 이용가능성
본 발명은 정지 영상 및 동영상의 변환 및 역변환 과정에 이용될 수 있다.

Claims (38)

  1. 영상의 변환 방법에 있어서,
    NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하는 단계;
    상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하는 단계;
    상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하는 단계; 및
    상기 획득된 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬을 이용하여 상기 NxN 크기의 블록을 변환하는 단계를 포함하는 것을 특징으로 하는 영상 변환 방법.
  2. 제 1항에 있어서, 상기 치환된 NxN 변환 행렬을 생성하는 단계는
    상기 NxN 변환 행렬을 구성하는 원소들의 cos(πx(i/2)/N)(i는 0부터 N-1까지의 정수)인 성분을 유리수인 N개의 ai 변수들로 치환하는 것을 특징으로 하는 영상 변환 방법.
  3. 제 2항에 있어서,
    상기 유리수인 N개의 ai 변수들의 분모는 쉬프트(shift) 연산이 가능한 2의 거듭제곱 형태의 값을 갖는 것을 특징으로 하는 영상 변환 방법.
  4. 제 2항에 있어서,
    상기 N은 16의 값을 갖으며, 상기 획득된 N개의 변수들 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을 갖는 것을 특징으로 하는 영상 변환 방법.
  5. 제 2항에 있어서,
    상기 N은 32의 값을 가지며, 상기 획득된 N개의 변수들 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 을 갖는 것을 특징으로 하는 영상 변환 방법.
  6. 제 2항에 있어서,
    상기 N은 64의 값을 가지며, 상기 획득된 N개의 변수들 ai는 다음의 값들; a1 =1024/1024, a2 = 1023/1024, a3 = 1021/1024, a4 = 1019/1024, a5 = 1016/1024, a6 = 1013/1024, a7 = 1009/1024, a8 = 1004/1024, a9 = 999 /1024, a10 =993 /1024, a11 =987 /1024, a12 =980 /1024, a13 =972 /1024, a14 =964 /1024, a15 =955 /1024, a16 =946 /1024, a17 =936 /1024, a18 =926 /1024, a19 =915 /1024, a20 =903 /1024, a21 =891 /1024, a22 =878 /1024, a23 =865 /1024, a24 =851 /1024, a25 =837 /1024, a26 =822 /1024, a27 =807 /1024, a28 =792 /1024, a29 =775 /1024, a30 =759 /1024, a31 =742 /1024, a32 =724 /1024, a33 =706 /1024, a34 =688 /1024, a35 =669 /1024, a36 =650 /1024, a37 =630 /1024, a38 =610 /1024, a39 =590 /1024, a40 =569 /1024, a41 =548 /1024, a42 =526 /1024, a43 =505 /1024, a44 =483 /1024, a45 =460 /1024, a46 =438 /1024, a47 =415 /1024, a48 =392 /1024, a49 =369 /1024, a50 =345 /1024, a51 =321 /1024, a52 =297 /1024, a53 =273 /1024, a54 =249 /1024, a55 =224 /1024, a56 =200 /1024, a57 =175 /1024, a58 =150/1024, a59 =125 /1024, a60 =100 /1024, a61 =75 /1024, a62 =50/1024 및 a63 =25/1024 을 갖는 것을 특징으로 하는 영상 변환 방법.
  7. 제 1항에 있어서,
    이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬 사이의 차이값을 보정하기 위한 스케일링 행렬 및 시프트 연산을 적용하여 상기 NxN 크기의 블록을 변환한 변환 블록에 대한 양자화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 영상 변환 방법.
  8. 제 7항에 있어서,
    상기 스케일링 행렬은
    각 i번째 행의 원소가 Si(i는 1부터 N까지의 정수)의 값을 갖는 NxN 크기의 중간 행렬과 상기 치환된 NxN 크기의 변환 행렬의 동일 위치의 원소들을 각각 곱한 값과, 상기 원래의 NxN 변환 행렬 사이의 차이인 변환 오차 행렬을 획득하고, 상기 변환 오차 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 Si 값들을 획득하며, 상기 획득된 Si값들을 적용한 상기 NxN 크기의 중간 행렬과 상기 중간 행렬의 전치 행렬의 동일 위치의 원소들을 각각 곱한 행렬에 기초하여 생성된 것을 특징으로 하는 영상 변환 방법.
  9. 제 8항에 있어서,
    양자화 스텝을 Qstep, 상기 중간 행렬의 원소들과 상기 중간 행렬의 전치 행렬의 동일 위치의 원소들을 각각 곱한 행렬을 PF, m은 양의 정수라고 할 때, 상기 스케일링 행렬(MF)은 다음의 수학식; MF=PF*2^m/Qstep 을 통해 획득되는 것을 특징으로 하는 영상 변환 방법.
  10. 삭제
  11. 제 7항에 있어서,
    상기 스케일링 행렬은
    이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬의 각 원소를 상기 치환된 NxN 변환 행렬의 동일 위치의 원소로 나눔으로써 획득된 중간 행렬의 각 원소와 상기 중간 행렬의 전치 행렬의 동일 위치의 원소를 곱하여 획득된 행렬인 것을 특징으로 하는 영상 변환 방법.
  12. 영상의 변환 방법에 있어서,
    NxN 크기(N은 정수)의 블록의 행 단위 및 열 단위 중 어느 하나에 대한 1차원 이산 코사인 변환을 수행하는 단계를 포함하며,
    상기 1차원 이산 코사인 변환을 수행하는 단계는 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 수행되는 것을 특징으로 하는 영상 변환 방법.
  13. 제 12항에 있어서,
    상기 1차원 이산 코사인 변환을 수행하는 단계는
    상기 N은 32, X0 내지 X31는 변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31은 중간값, t는 보조 변수, Y0 내지 Y31은 변환된 값을 나타낸다고 할 때,
    Figure 112010051715431-pct00240

    Figure 112010051715431-pct00241

    Figure 112010051715431-pct00242

    Figure 112010051715431-pct00243

    에 의하여 변환값을 생성하는 것을 특징으로 하는 영상 변환 방법.
  14. 제 12항에 있어서,
    상기 1차원 이산 코사인 변환을 수행하는 단계는
    상기 N은 32, X0 내지 X31는 변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0내지 G31은 중간값, Y0 내지 Y31은 변환된 값을 나타낸다고 할 때,
    Figure 112010051715431-pct00244

    Figure 112010051715431-pct00245

    Figure 112010051715431-pct00246

    에 의하여 변환값을 생성하는 것을 특징으로 하는 영상 변환 방법.
  15. 제 12항에 있어서,
    상기 변경된 버터플라이 구조에 기초한 N 포인트 1차원 이산 코사인 변환에 대응되는 변경된 이산 코사인 변환 행렬을 A라고 할 때,
    상기 버터플라이 구조에 기초한 원래의 NxN 변환 행렬과 상기 변경된 이산 코사인 변환 행렬 A 사이의 차이값을 보정하기 위한 스케일링 행렬 및 시프트 연산을 적용하여 상기 NxN 크기의 블록을 변환한 변환 블록에 대한 양자화를 수행하는 단계를 더 포함하는 것을 특징으로 하는 영상 변환 방법.
  16. 제 15항에 있어서,
    상기 스케일링 행렬은
    각 i번째 행의 원소가 Si(i는 1부터 N까지의 정수)의 값을 갖는 NxN 크기의 중간 행렬과 상기 변경된 이산 코사인 변환 행렬 A의 동일 위치의 원소들을 각각 곱한 값과, 상기 원래의 NxN 변환 행렬 사이의 차이인 변환 오차 행렬을 획득하고, 상기 변환 오차 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 Si 값들을 획득하며, 상기 획득된 Si값들을 적용한 상기 NxN 크기의 중간 행렬의 각 원소와 상기 중간 행렬의 전치 행렬의 동일 위치의 원소를 곱한 행렬에 기초하여 생성된 것을 특징으로 하는 영상 변환 방법.
  17. 제 15항에 있어서,
    상기 스케일링 행렬은
    이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬의 각 원소를 상기 변경된 이산 코사인 변환 행렬 A의 동일 위치의 원소들로 나눔으로써 중간 행렬을 획득하고, 상기 획득된 중간 행렬의 각 원소와 상기 중간 행렬의 전치 행렬의 동일 위치의 원소들을 곱하여 획득된 행렬인 것을 특징으로 하는 영상 변환 방법.
  18. 영상의 변환 장치에 있어서,
    NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하고 상기 획득된 N개의 변수들에 기초한 값들로 치환함으로써 획득된 치환된 NxN 변환 행렬을 이용하여 상기 NxN 크기의 블록을 변환하는 변환부를 포함하는 것을 특징으로 하는 영상 변환 장치.
  19. 영상의 변환 장치에 있어서,
    버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 NxN 크기(N은 정수)의 블록의 행 단위 및 열 단위 중 어느 하나에 대한 1차원 이산 코사인 변환을 수행하는 변환부를 포함하는 것을 특징으로 하는 영상 변환 장치.
  20. 영상의 역변환 방법에 있어서,
    복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 양자화된 변환 계수들을 수신하는 단계;
    상기 수신된 양자화된 변환 계수들을 역양자화하는 단계; 및
    상기 NxN 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하고, 상기 획득된 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬을 이용하여 상기 NxN 크기의 블록의 역양자화된 변환 계수들을 역변환하는 단계를 포함하는 것을 특징으로 하는 영상 역변환 방법.
  21. 제 20항에 있어서, 상기 치환된 NxN 변환 행렬은
    상기 NxN 변환 행렬을 구성하는 원소들의 cos(πx(i/2)/N)(i는 0부터 N-1까지의 정수)인 성분을 유리수인 N개의 ai 변수들로 치환함으로써 획득되는 것을 특징으로 하는 영상 역변환 방법.
  22. 제 21항에 있어서,
    상기 유리수인 N개의 ai 변수들의 분모는 쉬프트(shift) 연산이 가능한 2의 거듭제곱 형태의 값을 갖는 것을 특징으로 하는 영상 역변환 방법.
  23. 제 21항에 있어서,
    상기 N은 16의 값을 갖으며, 상기 획득된 N개의 변수들 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을 갖는 것을 특징으로 하는 영상 역변환 방법.
  24. 제 21항에 있어서,
    상기 N은 32의 값을 가지며, 상기 획득된 N개의 변수들 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 을 갖는 것을 특징으로 하는 영상 역변환 방법.
  25. 제 21항에 있어서,
    상기 N은 64의 값을 가지며, 상기 획득된 N개의 변수들 ai는
    다음의 값들; a1 =1024/1024, a2 = 1023/1024, a3 = 1021/1024, a4 = 1019/1024, a5 = 1016/1024, a6 = 1013/1024, a7 = 1009/1024, a8 = 1004/1024, a9 = 999 /1024, a10 =993 /1024, a11 =987 /1024, a12 =980 /1024, a13 =972 /1024, a14 =964 /1024, a15 =955 /1024, a16 =946 /1024, a17 =936 /1024, a18 =926 /1024, a19 =915 /1024, a20 =903 /1024, a21 =891 /1024, a22 =878 /1024, a23 =865 /1024, a24 =851 /1024, a25 =837 /1024, a26 =822 /1024, a27 =807 /1024, a28 =792 /1024, a29 =775 /1024, a30 =759 /1024, a31 =742 /1024, a32 =724 /1024, a33 =706 /1024, a34 =688 /1024, a35 =669 /1024, a36 =650 /1024, a37 =630 /1024, a38 =610 /1024, a39 =590 /1024, a40 =569 /1024, a41 =548 /1024, a42 =526 /1024, a43 =505 /1024, a44 =483 /1024, a45 =460 /1024, a46 =438 /1024, a47 =415 /1024, a48 =392 /1024, a49 =369 /1024, a50 =345 /1024, a51 =321 /1024, a52 =297 /1024, a53 =273 /1024, a54 =249 /1024, a55 =224 /1024, a56 =200 /1024, a57 =175 /1024, a58 =150/1024, a59 =125 /1024, a60 =100 /1024, a61 =75 /1024, a62 =50/1024 및 a63 =25/1024 을 갖는 것을 특징으로 하는 영상 역변환 방법.
  26. 제 20항에 있어서,
    상기 역양자화하는 단계는
    이산 코사인 역변환에 이용되는 원래의 NxN 역변환 행렬과 상기 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬 사이의 차이값을 보정하기 위한 역스케일링 행렬 및 시프트 연산을 적용하여 상기 역양자화를 수행하는 것을 특징으로 하는 영상 역변환 방법.
  27. 제 26항에 있어서,
    상기 역스케일링 행렬은
    각 i번째 행의 원소가 Si(i는 1부터 N까지의 정수)의 값을 갖는 NxN 크기의 중간 행렬의 각 원소와 상기 NxN 크기의 변환 행렬의 동일 위치의 원소들을 곱한 값과, 상기 원래의 NxN 변환 행렬 사이의 차이인 변환 오차 행렬을 획득하고, 상기 변환 오차 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 Si 값들을 획득하며, 상기 획득된 Si값들을 적용한 상기 NxN 크기의 중간 행렬의 각 원소와 상기 중간 행렬의 전치 행렬의 동일 위치의 원소들을 각각 곱한 행렬에 기초하여 생성된 것을 특징으로 하는 영상 역변환 방법.
  28. 제 27항에 있어서,
    양자화 스텝을 Qstep, 상기 중간 행렬의 각 원소와 상기 중간 행렬의 동일 위치의 원소들을 각각 곱한 행렬을 PF, n은 양의 정수라고 할 때, 상기 역스케일링 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n 을 통해 획득되는 것을 특징으로 하는 영상 역변환 방법.
  29. 삭제
  30. 제 26항에 있어서,
    상기 역스케일링 행렬은
    이산 코사인 역변환에 이용되는 원래의 NxN 역변환 행렬의 각 원소를 상기 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬의 동일 위치의 원소들로 나눔으로써 중간 행렬을 획득하고, 상기 획득된 중간 행렬의 각 원소와 상기 중간 행렬의 전치 행렬의 동일 위치의 원소들을 곱하여 획득된 행렬인 것을 특징으로 하는 영상 역변환 방법.
  31. 영상의 역변환 방법에 있어서,
    복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 양자화된 변환 계수들을 수신하는 단계;
    상기 수신된 양자화된 변환 계수들을 역양자화하는 단계; 및
    역양자화된 변환 계수들에 대한 1차원 이산 코사인 역변환을 수행하는 단계를 포함하며,
    상기 1차원 이산 코사인 역변환을 수행하는 단계는 버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 수행되는 것을 특징으로 하는 영상 역변환 방법.
  32. 제 31항에 있어서,
    상기 1차원 이산 코사인 역변환을 수행하는 단계는
    상기 N은 32, X0 내지 X31는 역변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0 내지 G31은 중간값, t는 보조 변수, Y0 내지 Y31은 역변환된 값을 나타낸다고 할 때,
    Figure 112010051715431-pct00247

    Figure 112010051715431-pct00248

    Figure 112010051715431-pct00249

    Figure 112010051715431-pct00250

    에 의하여 역변환값을 생성하는 것을 특징으로 하는 영상 역변환 방법.
  33. 제 31항에 있어서,
    상기 1차원 이산 코사인 역변환을 수행하는 단계는
    상기 N은 32, X0 내지 X31는 역변환되어야 할 입력값, A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, F0 내지 F31, G0 내지 G31은 중간값, t는 보조 변수, Y0 내지 Y31은 역변환된 값을 나타낸다고 할 때,
    Figure 112010051715431-pct00251

    Figure 112010051715431-pct00252

    Figure 112010051715431-pct00253

    에 의하여 역변환값을 생성하는 것을 특징으로 하는 영상 역변환 방법.
  34. 제 31항에 있어서,
    상기 역양자화하는 단계는
    상기 버터 플라이구조에 기초한 이산 코사인 변환에 이용되는 원래의 NxN 역변환 행렬과, 상기 변경된 버터 플라이 구조에 기초한 변경된 역변환 행렬 사이의 차이값을 보정하기 위하여 역스케일링 행렬 및 시프트 연산을 적용하여 역양자화를 수행하는 것을 특징으로 하는 영상 역변환 방법.
  35. 제 34항에 있어서,
    상기 역스케일링 행렬은
    각 i번째 행의 원소가 Si(i는 1부터 N까지의 정수)의 값을 갖는 NxN 크기의 중간 행렬의 각 원소와 상기 변경된 변환 행렬의 동일 위치의 원소들을 곱한 값과, 상기 원래의 NxN 변환 행렬 사이의 차이인 변환 오차 행렬을 획득하고, 상기 변환 오차 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 Si 값들을 획득하며, 상기 획득된 Si값들을 적용한 상기 NxN 크기의 중간 행렬의 각 원소와 상기 중간 행렬의 전치 행렬의 동일 위치의 원소들을 곱한 행렬에 기초하여 생성된 것을 특징으로 하는 영상 역변환 방법.
  36. 제 34항에 있어서,
    상기 역스케일링 행렬은
    이산 코사인 변환에 이용되는 원래의 NxN 변환 행렬의 각 원소를 상기 변경된 변환 행렬의 동일 위치의 원소들로 나눔으로써 중간 행렬을 획득하고, 상기 획득된 중간 행렬의 각 원소와 상기 중간 행렬의 전치 행렬의 동일 위치의 원소를 곱하여 획득된 행렬인 것을 특징으로 하는 영상 역변환 방법.
  37. 영상의 역변환 장치에 있어서,
    복호화되는 영상을 구성하는 NxN(N은 정수) 크기의 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬을 구성하는 원소들을 N개의 변수들에 기초한 값들로 치환하여 치환된 NxN 변환 행렬을 생성하고, 상기 치환된 NxN 변환 행렬과 상기 치환된 NxN 변환 행렬의 전치 행렬의 곱셈 행렬을 획득하며, 상기 획득된 곱셈 행렬의 대각 성분을 제외한 나머지 원소들의 제곱합이 최소가 되도록 하는 상기 N개의 변수들을 획득하고, 상기 획득된 N개의 변수들에 기초한 값들로 치환된 NxN 변환 행렬의 역행렬인 NxN 역변환 행렬을 이용하여, 상기 NxN 크기의 블록의 역양자화된 변환 계수들을 역변환하는 역변환부를 포함하는 것을 특징으로 하는 영상 역변환 장치.
  38. 영상의 역변환 장치에 있어서,
    버터플라이 구조의 곱셈 인수 중 삼각 함수 성분을 유리수로 치환하고, 상기 버터플라이 구조의 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체한 변경된 버터플라이 구조에 기초하여 복호화되는 NxN 크기(N은 정수)의 블록의 행 단위 및 열 단위 중 어느 하나에 대한 1차원 이산 코사인 역변환을 수행하는 역변환부를 포함하는 것을 특징으로 하는 영상 역변환 장치.
KR1020107017851A 2009-01-22 2010-01-22 영상의 변환 방법 및 장치, 역변환 방법 및 장치 KR101480412B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14637209P 2009-01-22 2009-01-22
US61/146,372 2009-01-22
PCT/KR2010/000443 WO2010085125A2 (ko) 2009-01-22 2010-01-22 영상의 변환 방법 및 장치, 역변환 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20110114429A KR20110114429A (ko) 2011-10-19
KR101480412B1 true KR101480412B1 (ko) 2015-01-09

Family

ID=42356351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107017851A KR101480412B1 (ko) 2009-01-22 2010-01-22 영상의 변환 방법 및 장치, 역변환 방법 및 장치

Country Status (3)

Country Link
US (1) US8483501B2 (ko)
KR (1) KR101480412B1 (ko)
WO (1) WO2010085125A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120098500A (ko) * 2011-02-25 2012-09-05 삼성전자주식회사 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치
AU2013227608B2 (en) 2012-02-29 2016-07-21 Sony Corporation Image processing device and method
KR101423083B1 (ko) * 2013-01-16 2014-07-25 한밭대학교 산학협력단 Hevc 복호기용 역변환기 설계 방법
US10406729B2 (en) * 2016-08-29 2019-09-10 The Boeing Company Compression molding assembly and methods for molding a thermoplastic blocker door
CN109522125B (zh) * 2018-11-19 2021-12-03 郑州云海信息技术有限公司 一种矩阵乘积转置的加速方法、装置及处理器
SG11202105607VA (en) 2018-11-27 2021-06-29 Op Solutions Llc Block-based picture fusion for contextual segmentation and processing
BR112021010167A2 (pt) * 2018-11-27 2021-08-17 Op Solutions, Llc medidas de atividade espacial baseadas em blocos para imagens

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022846A (ko) * 1995-10-28 1997-05-30 구자홍 영상 압축장치의 역이산 코사인 변환방법 및 장치
KR20030053108A (ko) * 2001-12-22 2003-06-28 한국과학기술원 블록 이산코사인변환 영역에서의 영상 크기 변환 방법
KR100790846B1 (ko) 2006-09-25 2008-01-02 광운대학교 산학협력단 영상처리의 정수 변환 방법 및 그의 프로세서

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044176A (en) * 1996-11-12 2000-03-28 Samsung Electronics Co., Ltd. Method of performing inverse discrete cosine transform
US6215909B1 (en) * 1997-11-17 2001-04-10 Sony Electronics, Inc. Method and system for improved digital video data processing using 4-point discrete cosine transforms
US6137916A (en) * 1997-11-17 2000-10-24 Sony Electronics, Inc. Method and system for improved digital video data processing using 8-point discrete cosine transforms
US6160920A (en) * 1998-09-15 2000-12-12 Winbond Electronics Corp. Cosine transforming and quantizing device, method of reducing multiplication operations in a video compressing apparatus
US6445829B1 (en) * 1998-09-15 2002-09-03 Winbond Electronics Corp. Joint cosine transforming and quantizing device and joint inverse quantizing and inverse cosine transforming device
US6870885B2 (en) * 2001-05-16 2005-03-22 Qualcomm Incorporated Apparatus and method for decoding and computing a discrete cosine transform using a butterfly processor
US6876704B2 (en) * 2001-05-16 2005-04-05 Qualcomm, Incorporated Apparatus and method for encoding and computing a discrete cosine transform using a butterfly processor
US6882685B2 (en) * 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US8548265B2 (en) * 2006-01-05 2013-10-01 Fastvdo, Llc Fast multiplierless integer invertible transforms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970022846A (ko) * 1995-10-28 1997-05-30 구자홍 영상 압축장치의 역이산 코사인 변환방법 및 장치
KR20030053108A (ko) * 2001-12-22 2003-06-28 한국과학기술원 블록 이산코사인변환 영역에서의 영상 크기 변환 방법
KR100790846B1 (ko) 2006-09-25 2008-01-02 광운대학교 산학협력단 영상처리의 정수 변환 방법 및 그의 프로세서

Also Published As

Publication number Publication date
WO2010085125A9 (ko) 2010-09-16
US20120020583A1 (en) 2012-01-26
KR20110114429A (ko) 2011-10-19
WO2010085125A3 (ko) 2010-11-04
WO2010085125A2 (ko) 2010-07-29
US8483501B2 (en) 2013-07-09

Similar Documents

Publication Publication Date Title
KR102087990B1 (ko) 비디오의 부호화 방법 및 장치, 복호화 방법 및 장치
KR101480412B1 (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
US8756482B2 (en) Efficient encoding/decoding of a sequence of data frames
US20130195177A1 (en) Method and device for the transformation and method and device for the reverse transformation of images
JP5078895B2 (ja) 統合時空間予測法
US20140010284A1 (en) Image transform and inverse transform method, and image encoding and decoding device using same
JP2006101506A (ja) 画像符号化装置及び画像復号装置
JP2010213296A (ja) 映像符号化のための低複雑性単一化変換
KR20120098499A (ko) 영상의 변환 방법 및 장치, 및 영상의 역변환 방법 및 장치
JP5909149B2 (ja) 色変換装置、符号化器および復号器ならびにそれらのプログラム
GB2305798A (en) Spatial frequency domain video signal processing
KR101419689B1 (ko) H.264/avc 복호기에서 역양자화 및 역변환을 수행하는 복호화 장치 및 이를 이용한 복호화 방법
US11205077B1 (en) Operating on a video frame to generate a feature map of a neural network
JP2005168028A (ja) 絶対差演算装置とそれを用いた動き推定装置及び動映像符号化装置
CN105338365A (zh) 视频编码方法和视频编码装置
JP2008104072A (ja) 画像データの符号化方法および符号化装置
JP4451759B2 (ja) 可逆ビデオ符号化装置,可逆ビデオ符号化方法,可逆ビデオ復号装置,可逆ビデオ復号方法,可逆ビデオ符号化プログラム,可逆ビデオ復号プログラムおよびそれらのプログラムの記録媒体
JP2005354307A (ja) 逆量子化器及びこれを用いた画像復号化装置
Wang et al. A parallel hybrid video coding method based on noncausal prediction with multimode
AU2018200072B2 (en) Video encoding method and device and decoding method and device
JP5662887B2 (ja) 符号化装置、復号装置及びプログラム
KR101786957B1 (ko) 고속 움직임 추정을 위한 장치 및 방법
KR20040014047A (ko) 이산여현변환 방법과 이를 이용한 영상압축방법
JP2008104124A (ja) 映像符号化方法、映像符号化装置、映像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
KR20160130351A (ko) 고속 움직임 추정을 위한 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee