KR101601864B1 - 동영상 코덱의 역변환 방법 및 그 장치 - Google Patents

동영상 코덱의 역변환 방법 및 그 장치 Download PDF

Info

Publication number
KR101601864B1
KR101601864B1 KR1020140022060A KR20140022060A KR101601864B1 KR 101601864 B1 KR101601864 B1 KR 101601864B1 KR 1020140022060 A KR1020140022060 A KR 1020140022060A KR 20140022060 A KR20140022060 A KR 20140022060A KR 101601864 B1 KR101601864 B1 KR 101601864B1
Authority
KR
South Korea
Prior art keywords
adder
inverse
column
input mode
input
Prior art date
Application number
KR1020140022060A
Other languages
English (en)
Other versions
KR20150100348A (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 숭실대학교산학협력단
Priority to KR1020140022060A priority Critical patent/KR101601864B1/ko
Priority to US14/585,425 priority patent/US9699478B2/en
Publication of KR20150100348A publication Critical patent/KR20150100348A/ko
Application granted granted Critical
Publication of KR101601864B1 publication Critical patent/KR101601864B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

동영상 코덱의 역변환 방법 및 그 장치가 개시된다. 역변환기는 역변환 계수를 공유하는 2n x 2n 블록의 짝수열 부분 또는 n x n 블록의 역변환 연산을 수행하는 제1 역변환부; 및 제1 입력 모드 및 제2 입력 모드에 따른 계수를 각각 저장하며, 입력 모드에 따라 선택적으로 계수를 선택하여 입력값과 각각 승산하여 2n x 2n 블록의 홀수열 부분 또는 n x n 블록의 역변환을 수행하는 제2 역변환부를 포함한다.

Description

동영상 코덱의 역변환 방법 및 그 장치{Inverse transform method and apparatus for video codec}
본 발명은 동영상 코덱에 관한 것으로, 보다 상세하게 동영상 코덱에서의 역변환 방법 및 그 장치에 관한 것이다.
기존의 동영상 압축 표준인 H.264/AVC는 영상 통화에서 디지털 멀티미디어 방송에 이르기까지 매우 다양한 분야에서 널리 사용되고 있다. 그러나, 최근 UHDTV(ultra high definition TV)와 같은 초고화질, 초고해상도 영상 서비스가 개발됨에 따라 4k, 8k급 영상에 대한 처리 필요성이 대두됨에 따라 HEVC(high efficiency video coding)이 발표되었다.
이러한 HEVC는 상위 크기 블록의 짝수 부분과 하위 크기 블록 전체의 계수가 동일한 재귀 구조를 가지는 특성이 있다.
도 1은 종래의 HEVC 역변환기 구조를 개략적으로 도시한 도면이다.
HEVC 역변환에서는 하위 크기 블록 전체와 상위 크기 블록의 짝수 부분이 동일하기 때문에, 도 1에 도시된 바와 같이, 8 x 8 역변환기 하나로 8 x 8 역변환과 4 x 4 역변환을 모두 수행할 수 있다. 하나의 8 x 8 역변환기를 이용하여 8 x 8 역변환과 4 x 4 역변환을 모두 처리하는 경우, 도 1과 같은 종래의 HEVC 역변환기 구조에서는 8 x 8 역변환 수행시에는 도 1의 (a)와 같이 동작되나 4 x 4 역변환 수행시에는 도 1의 (b)와 같이 동작되게 된다.
즉, 8 x 8 역변환이 8 픽셀을 동시에 처리하는 반면 4 x 4 역변환은 4 픽셀만을 동시에 처리하기 때문에 하나의 8 x 8 역변환기 하나로 4 x 4 역변환과 8 x 8 역변환을 모두 처리하는 경우 4 x 4 역변환에서 프레임을 처리하는데 필요한 시간이 8 x 8 역변환의 2배가 소요되는 단점이 있다.
본 발명은 상위 크기 블록과 하위 크기 블록의 역변환을 하나의 역변환 모듈을 통해 수행하도록 할 수 있는 동영상 코덱의 역변환 방법 및 그 장치를 제공하기 위한 것이다.
또한, 본 발명은 상위 크기 블록과 하위 크기 블록의 역변환을 하나의 역변환 모듈을 통해 수행함으로써 하드웨어 칩 면적을 12% 줄일 수 있는 동영상 코덱의 역변환 방법 및 그 장치를 제공하기 위한 것이다.
본 발명의 일 측면에 따르면, 상위 크기 블록과 하위 크기 블록의 역변환을 하나의 역변환 모듈을 통해 수행하도록 할 수 있는 동영상 코덱의 역변환 장치가 제공된다.
본 발명의 일 실시예에 따르면, 2n(자연수) x 2n 블록과 n x n 블록을 하나의 모듈에서 역변환할 수 있는 역변환기에 있어서, 역변환 계수를 공유하는 2n x 2n 블록의 짝수열 부분 또는 n x n 블록의 역변환 연산을 수행하는 제1 역변환부; 및 제1 입력 모드 및 제2 입력 모드에 따른 계수를 각각 저장하며, 입력 모드에 따라 선택적으로 계수를 선택하여 입력값과 각각 승산하여 2n x 2n 블록의 홀수열 부분 또는 n x n 블록의 역변환을 수행하는 제2 역변환부를 포함하는 역변환기가 제공될 수 있다.
상기 제2 역변환기는, 제1 입력 모드 및 제2 입력 모드에 따라 각각 n개의 계수를 각각 저장하는 계수 레지스터; 상기 입력 모드에 따라 상기 계수 레지스터로부터 제1 입력 모드 또는 제2 입력 모드에 따른 n개의 계수를 선택적으로 출력하는 스위치; 상기 스위치에 의해 선택적으로 출력된 n개의 계수와 각 입력값을 각각 승산하여 n 포인트로 출력하는 n개의 어레이 승산기; 및 상기 n개의 어레이 승산기에 의해 각각 출력된 중간값을 m회 가산 또는 감산하여 최종 역변환된 결과값을 출력하는 가감산부를 포함하되, 상기 계수 레지스터, 상기 스위치 및 상기 어레이 승산기 및 상기 가감산부는 하나의 모듈이다.
상기 입력 모드는 2n x 2n 블록 역변환을 위한 제1 입력 모드 및 n x n 블록의 역변환을 위한 제2 입력 모드 중 어느 하나일 수 있다.
상기 가감산부는 제m 열로 복수의 가산기 및 가감산기가 배치되되, 상기 가감산기는 상기 스위치의 입력 모드에 따라 가산 또는 감산 연산을 수행할 수 있다.
상기 가감산부는, 제1 및 제2 어레이 승산기에 의해 n 포인트로 출력되는 중간값들을 가산 또는 감산하기 위해 제1열에 제1 가산기, 제2 가산기, 제3 가산기 및 제4 가감산기를 순차적으로 배열하되, 제3 및 제4 어레이 승산기에 의해 n 포인트로 출력되는 중간값을 가산 또는 감산하기 위해 제5 가감산기, 제6 가산기, 제7 가산기 및 제8 가산기가 순차적으로 배열될 수 있다.
제1열의 상기 제n 가산기 또는 가감산기는 상기 제1 및 제2 어레이 승산기 또는 상기 제3 및 제4 어레이 승산기의 제n 포인트로 출력되는 중간값을 페어(pair)로 각각 가산 또는 감산하여 제2열의 지정된 가산기 또는 가감산기로 출력할 수 있다.
상기 가감산부의 상기 제2열은 제9 가산기, 제10 가산기, 제11 가감산기 및 제12 가산기를 포함하되, 상기 제11 가감산기는 상기 스위치의 입력 모드에 따라 가산 또는 감산 연산을 수행할 수 있다.
상기 제1 역변환부 및 상기 제2 역변환부에 의해 출력된 출력값에 대해 버터플라이 연산을 수행하기 위한 버터플라이 연산 모듈을 더 포함할 수 있다.
본 발명의 다른 실시예에 따르면, 2n(자연수) x 2n 블록과 n x n 블록을 하나의 모듈에서 역변환할 수 있는 방법에 있어서, 역변환 계수를 공유하는 2n x 2n 블록의 짝수열 부분 또는 n x n 블록의 역변환 연산을 수행하는 단계; 및 제1 입력 모드 및 제2 입력 모드에 따른 계수를 각각 저장하며, 입력 모드에 따라 선택적으로 계수를 선택하여 입력값과 각각 승산하여 2n x 2n 블록의 홀수열 부분 또는 n x n 블록의 역변환을 수행하는 단계를 포함하는 역변환 방법이 제공될 수 있다.
본 발명의 일 실시예에 따른 동영상 코덱의 역변환 방법 및 장치를 제공함으로써, 상위 크기 블록과 하위 크기 블록의 역변환을 하나의 역변환 모듈을 통해 수행하도록 할 수 있다.
또한, 본 발명은 상위 크기 블록과 하위 크기 블록의 역변환을 하나의 역변환 모듈을 통해 수행함으로써 하드웨어 칩 면적을 12% 줄일 수 있다.
도 1은 종래의 역변환기의 구조를 도시한 도면.
도 2는 본 발명의 일 실시예에 따른 역변환기의 구조를 개략적으로 도시한 도면.
도 3은 본 발명의 일 실시예에 따른 역변환 계수를 설명하기 위해 도시한 도면.
도 4는 본 발명의 일 실시예에 따른 제1 역변환부(210)의 구조를 도시한 도면.
도 5는 본 발명의 일 실시예에 따른 제2 역변환부의 구조를 도시한 도면.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 역변환기의 구조를 개략적으로 도시한 도면이고, 도 3은 본 발명의 일 실시예에 따른 역변환 계수를 설명하기 위해 도시한 도면이고, 도 4는 본 발명의 일 실시예에 따른 제1 역변환부(210)의 구조를 도시한 도면이고, 도 5는 본 발명의 일 실시예에 따른 제2 역변환부의 구조를 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 동영상 코덱의 역변환기(200)는 제1 역변환부(210), 제2 역변환부(215), 버터플라이 연산 모듈/먹스(220)를 포함하여 구성된다. 본 발명의 일 실시예에서는 버터플라이 연산 모듈과 먹스는 하나의 구성으로 구현된 것을 가정하여 설명하나 각각은 분리되어 일 구성으로 구현될 수도 있음은 당연하다.
본 발명의 일 실시예에 따른 동영상 코덱은 재귀 구조(recursive architecture)를 가진다. 즉, 본 발명의 일 실시예에 따른 동영상 코덱은 역변환시, 상위 크기 블록의 짝수 부분과 하위 크기 블록의 전체 계수가 동일한 재귀 구조를 가진다.
이에 따라, 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 역변환기(200)는 2n x 2n 크기 블록에 대한 역변환 수행시, 2n x 2n 블록의 짝수 열 부분에 대한 역변환 계수를 하위 크기 블록(즉, n x n)의 역변환에서 이용할 수 있도록 짝수 열 부분과 홀수 열 부분으로 분리하여 역변환을 수행한다.
제1 역변환부(210)는 2n x 2n 블록의 짝수열 부분에 대한 역변환을 수행하거나 n x n 블록의 역변환을 수행하기 위한 수단이다. 여기서, n은 자연수이다.
도 3에 도시된 바와 같이, 2n x 2n 블록에 대한 역변환을 수행함에 있어, 하위 크기 블록의 역변환을 위한 역변환 계수는 상위 크기 블록의 짝수열 부분의 역변환을 위한 역변환 계수와 동일한 것을 알 수 있다.
따라서, 제1 역변환부(210)는 역변환 계수가 동일하므로 2n x 2n 블록의 짝수열 부분 또는 n x n 블록에 대해 역변환을 수행할 수 있다.
제1 역변환부(210)의 상세 구조는 도 4에 도시되어 있다.
이하, 본 발명의 일 실시예에서는 이해와 설명의 편의를 도모하기 위해 n은 4인 것을 가정하여 설명하기로 한다. 즉, 제1 역변환부(210)는 8 x 8 블록의 짝수열 부분에 대한 역변환과 4 x 4 블록의 역변환을 수행하며, 제2 역변환부(215)는 8 x 8 블록의 홀수열 부분에 대한 역변환과 4 x 4 블록의 역변환을 수행할 수 있다.
우선, 도 4를 참조하여 제1 역변환부(210)의 내부 구조에 대해 상세히 설명하기로 한다.
도 4를 참조하면, 제1 역변환부(210)는 m개의 시프트 레지스터(410a, 410b), m개의 어레이 승산기(420a, 420b)와 가감산부(430)를 포함한다. 여기서, m은 2이상의 자연수일 수 있다.
m개의 시프트 레지스터(410a, 410b)는 입력값을 각각 k(자연수)회 왼쪽으로 시프트 이동시켜 출력하기 위한 수단이다.
예를 들어, k가 6이라고 가정하자. 시프트 레지스터(410a, 410b)는 입력값을 왼쪽으로 시프트시킴으로써, 결과적으로 입력값을 2k 승산 연산을 수행하는 것과 동일한 연산 효과를 얻을 수 있다.
각 시프트 레지스터(410a, 410b)는 입력값을 k회 왼쪽으로 시프트 이동시킨 결과값을 가감산부(430)로 출력한다.
각 어레이 승산기(420a, 420b)는 도 4에 도시된 바와 같이, m개의 계수를 각각 저장하기 위한 계수 레지스터를 포함하며, 입력값을 m개의 계수와 각각 승산한 결과값을 m 포인트로 각각 출력할 수 있다.
여기서, 각 어레이 승산기(420a, 420b)에 포함된 m개의 계수 레지스터는 8 x 8 블록의 짝수열 부분 또는 4 x 4 블록의 역변환을 위한 변환 계수로, 예를 들어, 83 및 36일 수 있다.
또한, 도 4에 도시된 바와 같이, 제1 어레이 승산기 및 제2 어레이 승산기의 각 계수 레지스터에 변환 계수가 저장되는 순서는 역대칭 구조일 수 있다.
즉, 어레이 승산기(420a, 420b)의 계수 레지스터에 “83, 36”의 순서로 역변환 계수가 저장된 경우, 어레이 승산기(420a, 420b)의 계수 레지스터에는 역순으로 “36, 83”순서대로 역변환 계수가 저장될 수 있다.
또한, 가감산부(430)는 도 4에 도시된 바와 같이 m열로 배치되며, 각 열마다 n개의 가산기(제1 가산기 내지 제4 가산기)가 순차적으로 배열될 수 있다.
제1 열에 배치된 n개의 가산기(제1 가산기 내지 제4 가산기)는 각각 시프트 레지스터(410a, 410b)를 통해 출력된 출력값(중간 결과값)을 지정된 페어로 가산하여 제2열의 지정된 가산기(제1 가산기 내지 제4 가산기)로 각각 출력할 수 있다.
예를 들어, 제1열의 제1 가산기는 각각 제1 시프트 레지스터(410a, 410b) 및 제2 시프트 레지스터(410a, 410b)를 통해 출력된 중간 결과값을 가산하여 제2열의 제1 가산기 및 제4 가산기로 출력할 수 있다.
또한, 제1열의 제2 가산기는 각각 제1 시프트 레지스터(410a, 410b) 및 제2 시프트 레지스터(410a, 410b)를 통해 출력된 중간 결과값을 가산하여 제2열의 제2 가산기 및 제3 가산기로 출력할 수 있다.
또한, 제1열의 제3 가산기는 어레이 승산기(420a, 420b) 및 어레이 승산기(420a, 420b)의 제1 포인트에서 출력되는 중간 결과값을 가산하여 제2열의 제2 가산기 및 제3 가산기로 출력할 수 있다.
마지막으로, 제1열의 제4 가산기는 어레이 승산기(420a, 420b)의 제2 포인트에서 출력되는 중간 결과값을 가산하여 제2열의 제1 및 제4 가산기로 각각 출력할 수 있다.
이에, 제2열의 각 가산기는 제1열의 가산기로부터 입력된 중간 결과값을 가산하여 역변환 출력값을 가산할 수 있다.
예를 들어, 제2열의 제1 가산기는 제1열의 제1 가산기 및 제4 가산기로부터 입력된 중간 결과값을 가산하여 역변환 결과값을 출력할 수 있다. 또한, 제2열의 제2 가산기 및 제3 가산기는 제1열의 제2 가산기 및 제3 가산기로부터 입력된 중간 결과값을 가산하여 역변환 결과값을 출력할 수 있다. 또한, 제2열의 제4 가산기는 제1열의 제1 가산기 및 제4 가산기로부터 입력된 중간 결과값을 가산하여 역변환 결과값을 출력할 수 있다.
다시, 도 2를 참조하면, 제2 역변환부(215)는 복수의 입력 모드에 따른 각 계수를 저장하고 있으며, 입력 모드에 따라 선택적으로 계수를 선택하여 입력값과 승산하여 역변환을 수행하기 위한 수단이다.
즉, 제2 역변환부(215)는 2n x 2n 블록의 홀수열 부분과 n x n 블록의 역변환을 선택적으로 수행할 수 있다. 이미 전술한 바와 같이, 2n x 2n 블록의 홀수열 부분과 n x n 블록의 역변환을 위한 역변환 계수를 상이하다. 이에 따라, 제2 역변환부(215)는 입력 모드에 따라(즉, 2n x 2n 블록의 홀수열 부분을 역변환할지 또는 n x n 블록을 역변환하는지에 따라) 각각 다른 역변환 계수를 적용해야만 한다.
이를 위해, 제2 역변환부(215)는 도 5에 도시된 바와 같이, n개의 어레이 승산기(510)에 각각 입력 모드별 계수를 선택할 수 있다.
도 5에는 본 발명의 일 실시예에 따른 제2 역변환부(215)의 상세 구조가 도시되어 있다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 제2 역변환부(215)는 n개의 어레이 승산기(510) 및 가감산부(520)를 포함하여 구성된다.
각 어레이 승산기(510)는 도 5에 도시된 바와 같이, 입력 모드에 따른 제어 신호를 출력할 수 있는 스위치(510-1), 입력값을 입력받기 위한 입력 버퍼(510-2), 입력 모드별 계수를 선택적으로 출력하기 위한 계수 레지스터(510-3) 및 승산 모듈(510-4)을 포함하여 구성된다.
스위치(510-1)는 입력 모드에 따라 계수 레지스터(510-3)에 저장된 각 계수를 선택적으로 출력할 수 있다.
이에 따라, 승산 모듈(510-4)은 스위치(510-1)에 의해 입력 모드에 따라 선택된 각 계수를 입력값과 각각 승산하여 n 포인트로 결과값을 출력할 수 있다.
도 5에 도시된 바와 같이, 각 어레이 승산기(510)는 하나의 입력값을 입력 모드에 따라 지정된 n개의 역변환 계수와 각각 승산하여 가감산기(520)로 출력할 수 있다. 결과적으로 각 어레이 승산기(510)는 n 포인트로 결과값을 각각 출력할 수 있다.
이하, 이해와 설명의 편의를 도모하기 위해, 출력값이 출력되는 위치에 따라 제1 포인트, 제2 포인트, 제3 포인트 및 제4 포인트로 칭하기로 한다. 즉, 제n 포인트의 출력값은 각각 출력되는 위치를 나타내는 것으로 시간 순서와는 무관할 수 있다.
각 어레이 승산기(510)에 포함된 계수 레지스터는 스위치(510-1)의 제어에 따라 제1 입력 모드에 따른 역변환 계수를 n개 출력하거나 제2 입력 모드에 따른 역변환 계수를 n개 출력할 수 있다.
가감산부(520)는 m열로 복수의 가산기 및 가감산기를 포함하며, 지정된 페어로 입력값을 입력받아(즉, 중간 결과값 입력받아) 가산 또는 감산하여 역변환 결과값을 출력하기 위한 수단이다.
예를 들어, 가감산부(520)는 제1열에 2(n-1)개의 가산기와 두개의 가감산기를 포함하며, 제2열에는 (n-1)개의 가산기와 하나의 가감산기를 포함할 수 있다.
제1열의 2(n-1)개의 가산기는 역대칭 구조로 배열될 수 있다.
즉, 제1 및 제2 어레이 승산기(510a, 510b)의 중간 결과값을 지정된 페어로 가산 또는 감산하기 위한 (n-1)개의 가산기 및 하나의 가감산기와 제3 및 제4 어레이 승산기(510c, 510d)의 중간 결과값을 지정된 페어로 가산 또는 감산하기 위한 (n-1)개의 가산기 및 하나의 가감산기는 역 대칭 구조로 배치된다.
예를 들어, 제1 및 제2 어레이 승산기(510a, 510b)의 중간 결과값을 지정된 페어로 가산 또는 감산하기 위해, 제1 가산기, 제2 가산기, 제3 가산기 및 제4 가감산기가 순서대로 배치되었다고 가정하자. 제3 및 제4 어레이 승산기(510c, 510d)의 중간 결과값을 지정된 페어로 가산 또는 감산하기 위해 역대칭 구조로 제5 가감산기, 제6 가산기, 제7 가산기 및 제8 가산기가 순서대로 배치될 수 있다.
제1열의 제n 가산기 및 제n 가감산기는 제1 및 제2 어레이 승산기(510a, 510b)의 제n 포인트로 출력되는 중간 결과값을 각각 입력받아 가산 또는 감산하여 제2열의 지정된 가산기 또는 가감산기로 출력할 수 있다.
제3 및 제4 어레이 승산기(510c, 510d)의 제n 포인트로 출력되는 중간 결과값 또한 제(n+1) 가산기 및 제(n+1) 가감산기에 의해 가산 또는 감산되어 제2열의 지정된 가산기 또는 가감산기로 출력될 수 있다. 또한, 가감산부(520)에 포함된 각 가감산부(520)는 스위치(510-1)를 통해 입력되는 입력 모드에 따라 입력된 입력값을 가산하거나 감산할 수 있다.
제1열의 제1 가산기는 제1 및 제2 어레이 승산기(510a, 510b)의 제1 포인트로 출력되는 중간 결과값을 가산하여 제2열의 제1 가산기로 출력하고, 제1열의 제2 가산기는 제1 및 제2 어레이 승산기(510a, 510b)의 제2 포인트로 출력되는 중간 결과값을 가산하여 제2열의 제4 가산기로 출력하며, 제1열의 제3 가산기는 제1 및 제2 어레이 승산기(510a, 510b)의 제3 포인트로 출력되는 중간 결과값을 가산하여 제3열의 제2 가산기로 출력하고, 제1열의 제4 가산기는 제1 및 제2 어레이 승산기(510a, 510b)의 제4 포인트로 출력되는 중간 결과값을 가산하여 제2열의 제3 가감산기로 출력할 수 있다.
이어, 제1열의 제5 가감산기는 제3 및 제4 어레이 승산기(510c, 510d)의 제1 포인트로 출력되는 중간 결과값을 입력받아 가산하여 제2열의 제2 가산기로 출력하고, 제1열의 제6 가산기는 제3 및 제4 어레이 승산기(510c, 510d)의 제2 포인트로 출력되는 중간 결과값을 입력받아 가산하여 제2열의 제3 가감산기로 출력하고, 제1열의 제7 가산기는 제3 및 제4 어레이 승산기(510c, 510d)의 제3 포인트로 출력되는 중간 결과값을 입력받아 가산하여 제2열의 제2 가산기로 출력하고, 제1열의 제8 가산기는 제3 및 제4 어레이 승산기(510c, 510d)의 제4 포인트로 출력되는 중간 결과값을 입력받아 가산하여 제2열의 제4 가산기로 출력할 수 있다.
이어, 제2열은 제1 가산기, 제2 가산기, 제3 가감산기 및 제4 가산기의 순서대로 배치되며, 제3 가감산기는 스위치의 제어 신호에 따라(즉, 입력 모드에 따라) 가산 또는 감산 연산을 수행할 수 있다.
제2열의 제1 가산기는 제1열의 제1 가산기 및 제7 가산기로부터 각각 입력된 입력값을 가산하여 최종 역변환된 결과값을 출력하고, 제2열의 제2 가산기는 제1열의 제3 가산기와 제5 가감산기로부터 입력된 입력값을 가산하여 최종 역변환된 결과값을 출력할 수 있다. 또한, 제2열의 제3 가감산기는 제1열의 제4 가감산기와 제6 가산기로부터 입력된 입력값을 가산 또는 감산하여 최종 역변환된 결과값을 출력하며, 제2열의 제4 가산기는 제1열의 제2 가산기와 제8 가산기로부터 입력된 입력값을 가산하여 최종 역변환된 결과값을 출력할 수 있다.
이와 같이, 제2 역변환부(215)는 n개의 어레이 승산기를 통해 각각 입력값을 입력 모드에 따라 선택된 복수의 계수와 승산하고, 이를 지정된 페어로 가산 또는 감산하여 2n x 2n 블록의 홀수열 부분과 n x n 블록을 선택적으로 역변환이 가능하도록 할 수 있는 이점이 있다.
다시 도 2를 참조하면, 버터플라이 연산 모듈/먹스(220)은 제1 역변환부(210) 및 제2 역변환부(215)에 의해 역변환된 결과값을 각각 버터플라이 연산을 수행하기 위한 수단이다. 버터플라이 연산은 당업자에게는 자명한 사항이므로 이에 대한 상세한 설명은 생략하기로 한다.
표 1은 본 발명의 일 실시예에 따른 역변환기와 종래의 역변환기를 비교한 표이다. 표 1의 결과를 도출하기 위해 동일한 조건에서 0.18um 공정에서 IDEC의 CAD 툴 지원을 통해 설계 버전을 사용하여 합성하고 게인트 수를 비교한 표이다.
본 발명 종래 이득
크기(게이트) 9966 11268 12
동작 속도(MHz) 300 300 -
본 발명의 일 실시예와 같이 2n x 2n 블록에 대한 역변환과 n x n 블록에 대한 역변환을 하나의 역변환 모듈을 통해 수행하도록 함으로써, 표 1에서 보여지는 바와 같이 역변환기의 칩 면적으로 12% 줄일 수 있는 이점이 있다.
한편, 본 발명의 실시예에 따른 동영상 코덱에서 역변환을 수행하는 방법은 다양한 전자적으로 정보를 처리하는 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 저장 매체에 기록될 수 있다. 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조등을 단독으로 또는 조합하여 포함할 수 있다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
210: 제1 역변환부
215: 제2 역변환부
220: 버터플라이 연산 모듈/먹스

Claims (9)

  1. 2n(자연수) x 2n 블록과 n x n 블록을 하나의 모듈에서 역변환할 수 있는 역변환기에 있어서,
    역변환 계수를 공유하는 2n x 2n 블록의 짝수열 부분 또는 n x n 블록의 역변환 연산을 수행하는 제1 역변환부; 및
    제1 입력 모드 및 제2 입력 모드에 따른 계수를 각각 저장하며, 입력 모드에 따라 선택적으로 계수를 선택하여 입력값과 각각 승산하여 2n x 2n 블록의 홀수열 부분 또는 n x n 블록의 역변환 연산을 수행하는 제2 역변환부를 포함하되,
    상기 제2 역변환부는, 상기 제1 입력 모드 및 상기 제2 입력 모드에 따라 각각 n개의 계수를 각각 저장하는 계수 레지스터; 상기 입력 모드에 따라 상기 계수 레지스터로부터 상기 제1 입력 모드 또는 상기 제2 입력 모드에 따른 n개의 계수를 선택적으로 출력하는 스위치; 상기 스위치에 의해 선택적으로 출력된 n개의 계수와 각 입력값을 각각 승산하여 n 포인트로 출력하는 n개의 어레이 승산기; 및 상기 n개의 어레이 승산기에 의해 각각 출력된 중간값을 m(자연수)회 가산 또는 감산하여 최종 역변환된 결과값을 출력하는 가감산부를 포함하는 것을 특징으로 하는 역변환기.
  2. 삭제
  3. 제1 항에 있어서,
    상기 입력 모드는 2n x 2n 블록 역변환을 위한 제1 입력 모드 및 n x n 블록의 역변환을 위한 제2 입력 모드 중 어느 하나인 것을 특징으로 하는 역변환기.
  4. 제1 항에 있어서,
    상기 가감산부는 m개의 열로 복수의 가산기 및 적어도 하나의 가감산기가 배치되되,
    상기 가감산기는 상기 스위치의 입력 모드에 따라 가산 또는 감산 연산을 수행하는 것을 특징으로 하는 역변환기.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제4 항에 있어서,
    상기 n은 4이고, 상기 m은 2이며,
    상기 가감산부의 제1열에는 제1 가산기, 제2 가산기, 제3 가산기, 제4 가감산기, 제5 가감산기, 제6 가산기, 제7 가산기 및 제8 가산기가 순차적으로 배치되되,
    상기 제1열의 제1 가산기, 제2 가산기, 제3 가산기 및 제4 가감산기는 상기 4개의 어레이 승산기 중 제1 어레이 승산기 및 제2 어레이 승산기에 의해 4개의 포인트로 출력되는 중간값들을 가산 또는 감산하기 위한 것이고,
    상기 제1열의 제5 가감산기, 제6 가산기, 제7 가산기 및 제8 가산기는 상기 4개의 어레이 승산기 중 제3 어레이 승산기 및 제4 어레이 승산기에 의해 4개의 포인트로 출력되는 중간값들을 가산 또는 감산하기 위한 것을 특징으로 하는 역변환기.
  6. 청구항 6은(는) 설정등록료 납부시 포기되었습니다.
    제5 항에 있어서,
    상기 가감산부의 제2열에는 제1 가산기, 제2 가산기, 제3 가감산기 및 제4 가산기가 순차적으로 배치되되,
    상기 제2열의 제1 가산기는 상기 제1열의 제1 가산기 및 상기 제1열의 제7 가산기로부터 각각 입력된 입력값을 가산하고, 상기 제2열의 제2 가산기는 상기 제1열의 제3 가산기 및 상기 제1열의 제5 가감산기로부터 입력된 입력값을 가산하고, 상기 제2열의 제3 가감산기는 상기 제1열의 제4 가감산기, 성가 제1열의 제6 가산기로부터 입력된 입력값을 가산 또는 감산하고, 상기 제2열의 제4 가산기는 상기 제1열의 제2 가산기 및 상기 제1열의 제8 가산기로부터 입력된 입력값을 가산하는 것을 특징으로 하는 역변환기.
  7. 삭제
  8. 제1 항에 있어서,
    상기 제1 역변환부 및 상기 제2 역변환부에 의해 출력된 출력값에 대해 버터플라이 연산을 수행하기 위한 버터플라이 연산 모듈을 더 포함하는 역변환기.
  9. 2n(자연수) x 2n 블록과 n x n 블록을 제1 역변환부 및 제2 역변환부를 포함하는 하나의 모듈에서 역변환할 수 있는 방법에 있어서,
    상기 제1 역변환부에서, 역변환 계수를 공유하는 2n x 2n 블록의 짝수열 부분 또는 n x n 블록의 역변환 연산을 수행하는 제1 역변환 단계; 및
    상기 제2 역변환부에서, 제1 입력 모드 및 제2 입력 모드에 따른 계수를 각각 저장하며, 입력 모드에 따라 선택적으로 계수를 선택하여 입력값과 각각 승산하여 2n x 2n 블록의 홀수열 부분 또는 n x n 블록의 역변환 연산을 수행하는 제2 역변환 단계를 포함하되,
    상기 제2 역변환부는 계수 레지스터, 스위치, n개의 어레이 승산기 및 가감산부를 포함하고,
    상기 제2 역변환 단계는, 상기 스위치가, 상기 입력 모드에 따라 상기 제1 입력 모드 또는 상기 제2 입력 모드에 따른 n개의 계수를 선택적으로 출력하는 단계 - 상기 n개의 계수는 상기 계수 레지스터에 저장됨 -; 상기 n개의 어레이 승산기가, 상기 스위치에 의해 선택적으로 출력된 n개의 계수와 각 입력값을 각각 승산하여 n 포인트로 출력하는 단계; 및 상기 가감산부가 상기 n개의 어레이 승산기에 의해 각각 출력된 중간값을 m(자연수)회 가산 또는 감산하여 최종 역변환된 결과값을 출력하는 단계를 포함하는 역변환 방법.
KR1020140022060A 2014-02-25 2014-02-25 동영상 코덱의 역변환 방법 및 그 장치 KR101601864B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140022060A KR101601864B1 (ko) 2014-02-25 2014-02-25 동영상 코덱의 역변환 방법 및 그 장치
US14/585,425 US9699478B2 (en) 2014-02-25 2014-12-30 Inverse transform method and apparatus for video codec

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140022060A KR101601864B1 (ko) 2014-02-25 2014-02-25 동영상 코덱의 역변환 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20150100348A KR20150100348A (ko) 2015-09-02
KR101601864B1 true KR101601864B1 (ko) 2016-03-10

Family

ID=53883521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140022060A KR101601864B1 (ko) 2014-02-25 2014-02-25 동영상 코덱의 역변환 방법 및 그 장치

Country Status (2)

Country Link
US (1) US9699478B2 (ko)
KR (1) KR101601864B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107181963B (zh) * 2017-03-31 2019-10-22 武汉斗鱼网络科技有限公司 一种视频压缩方法及装置
EP4152748A1 (en) * 2018-09-02 2023-03-22 LG Electronics, Inc. Method and apparatus for processing image signal

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788971B1 (ko) 2006-08-21 2007-12-27 엠텍비젼 주식회사 통합 코덱을 위한 역 트랜스폼 모듈 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152730A (ja) * 1993-11-30 1995-06-16 Toshiba Corp 離散コサイン変換装置
US6507673B1 (en) * 1998-03-06 2003-01-14 Divio, Inc. Method and apparatus for video encoding decision
KR100754167B1 (ko) * 2004-10-06 2007-09-03 삼성전자주식회사 다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
KR20130137951A (ko) * 2012-06-08 2013-12-18 한국전자통신연구원 초고해상도 영상 코덱을 위한 역변환 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788971B1 (ko) 2006-08-21 2007-12-27 엠텍비젼 주식회사 통합 코덱을 위한 역 트랜스폼 모듈 및 방법

Also Published As

Publication number Publication date
KR20150100348A (ko) 2015-09-02
US9699478B2 (en) 2017-07-04
US20150245027A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
KR101036731B1 (ko) 손실 및 무손실 2차원 데이터 압축을 위한 가역 변환
Shen et al. A unified 4/8/16/32-point integer IDCT architecture for multiple video coding standards
US9665540B2 (en) Video decoder with a programmable inverse transform unit
Kalali et al. A computation and energy reduction technique for HEVC discrete cosine transform
Zhao et al. High-performance multiplierless transform architecture for HEVC
Jeske et al. Low cost and high throughput multiplierless design of a 16 point 1-D DCT of the new HEVC video coding standard
JP4704333B2 (ja) 画像符号化装置および画像復号化装置、ならびにそれらで用いられる集積回路
Kammoun et al. Hardware acceleration of approximate transform module for the versatile video coding standard
US9378186B2 (en) Data processing apparatus and method for performing a transform between spatial and frequency domains when processing video data
KR101601864B1 (ko) 동영상 코덱의 역변환 방법 및 그 장치
JP4536109B2 (ja) 半導体装置および信号処理方法
Amer et al. Hardware prototyping for the h. 264 4/spl times/4 transformation [video coding]
Husemann et al. Hardware integrated quantization solution for improvement of computational H. 264 encoder module
Chang et al. A fast algorithm-based cost-effective and hardware-efficient unified architecture design of 4× 4, 8× 8, 16× 16, and 32× 32 inverse core transforms for HEVC
Abdelrasoul et al. Real‐time unified architecture for forward/inverse discrete cosine transform in high efficiency video coding
EP1544797A2 (en) Low power, high performance transform coprocessor for video compression
KR20130137951A (ko) 초고해상도 영상 코덱을 위한 역변환 방법
Martuza et al. A fast hybrid dct architecture supporting h. 264, vc-1, mpeg-2, avs and jpeg codecs
Silveira et al. A hardware design for the multi-transform module of the versatile video coding standard
Vayalil et al. An efficient ASIC design of variable-length discrete cosine transform for HEVC
Anas et al. FPGA implementation of a pipelined 2D-DCT and simplified quantization for real-time applications
KR101383515B1 (ko) 영상의 역변환 장치
Masoudnia et al. Design and performance of a pixel-level pipelined-parallel architecture for high speed wavelet-based image compression
Nan et al. A DST hardware structure of HEVC
Dimitroulakos et al. A high-throughput, memory efficient architecture for computing the tile-based 2D discrete wavelet transform for the JPEG2000

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200302

Year of fee payment: 5