KR20130137951A - 초고해상도 영상 코덱을 위한 역변환 방법 - Google Patents
초고해상도 영상 코덱을 위한 역변환 방법 Download PDFInfo
- Publication number
- KR20130137951A KR20130137951A KR1020120061669A KR20120061669A KR20130137951A KR 20130137951 A KR20130137951 A KR 20130137951A KR 1020120061669 A KR1020120061669 A KR 1020120061669A KR 20120061669 A KR20120061669 A KR 20120061669A KR 20130137951 A KR20130137951 A KR 20130137951A
- Authority
- KR
- South Korea
- Prior art keywords
- values
- value
- pixel
- pixel value
- pixel values
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
초고해상도 영상 코덱을 위한 역변환 방법이 개시된다. 본 발명에 따른 초고해상도 영상 코덱을 위한 역변환 방법은, 다수의 픽셀값들 중 제1픽셀값을 입력 받는 단계, 상기 제1픽셀값을 제외한 나머지 픽셀값들 중 하나를 제2픽셀값으로 입력 받는 단계, 상기 입력된 제1픽셀값 및 상기 제2픽셀값에 각각 대응하는 계수값들을 적용하여, 버터플라이 연산을 통해 제1중간값을 계산하는 단계 및 상기 역변환 방법을 재수행하기 위해 상기 계산된 제1중간값으로 상기 제1픽셀값이 대체되는 단계를 포함한다.
Description
본 발명은 초고해상도 영상 코덱을 위한 역변환 방법으로, 더욱 상세하게는 역변환 부호화 처리를 위하여 최적화된 연산 유닛을 구성하고 이를 재사용함으로써 하드웨어의 면적을 최소화 시킬 수 있는 역변환 방법에 관한 것이다.
현재 동영상 압축 코덱에서는 4x4, 8x8 블록 크기의 변환 부호화 방식을 사용하고 있다. 이를 통하여 멀티미디어 정보량을 압축하여 HD 영상에 대한 HDTV가 대중화가 이루어지고 있다. 이에 따라 사용자들이 고화질, 고해상도 영상에 익숙해지면서 mobile 기기에서조차 full HD급 영상의 재생이 가능해지고 점차 차세대 영상기기 발전 방향은 full-HD 3D, UHD 영상기기, 모바일 디바이스 간 양방향 HD급 화상통화 등과 같이 기존에 비해 높은 화질, 높은 해상도, 높은 현실감을 지원해주는 방향으로 나아가고 있다.
이러한 차세대 영상 서비스에서는 멀티미디어 정보량이 기존에 비해 기하급수적으로 늘어나게 되는 문제가 발생된다. 예를 들면 3D 영상의 경우 기존 2D 영상에 비해 2배의 데이터량이 필요하고 UD의 경우는 기존 full-HD 대비 4배, UHD의 경우는 16배에 달하는 엄청난 양의 데이터가 필요하게 된다.
따라서 이러한 문제점을 해결하기 위하여 고화질, 고해상도 영상에서는 압축 효율을 높이기 위하여 보다 더 큰 블록 사이즈의 변환 부호화가 필요함을 인식하게 되었다.
한국공개특허 제2011-7010112호는 4×4 및 8×8 보다 큰 변환을 이용한 비디오 코딩에 관한 기술을 개시하고 있으나, 이 한국공개특허에 개시된 기술은 큰 불록 크기로 역변환 부호화를 하드웨어로 설계할 경우 면적이 커지는 등의 한계가 있다.
따라서, 초고해상도 영상 코덱을 위한 역변환을 위하여 보다 새로운 기술의 필요성이 절실하게 대두된다.
본 발명의 목적은 16x16 및 32x32 블록 크기에도 공통으로 사용이 가능한 연산 유닛을 제공하는 것이다.
또한, 본 발명의 목적은 연산 유닛의 재사용을 통하여 하드웨어 면적을 최소화하기 위한 것이다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 의한 초고해상도 영상 코덱을 위한 역변환 방법은, FDCT(Forward Discrete Cosine Transform) 알고리즘을 이용한 역변환 방법에 있어서, 다수의 픽셀값들 중 제1픽셀값을 입력 받는 단계, 상기 제1픽셀값을 제외한 나머지 픽셀값들 중 하나를 제2픽셀값으로 입력 받는 단계, 상기 입력된 제1픽셀값 및 상기 제2픽셀값에 각각 대응하는 계수값들을 적용하여, 버터플라이 연산을 통해 제1중간값을 계산하는 단계 및 상기 역변환 방법을 재수행하기 위해 상기 계산된 제1중간값으로 상기 제1픽셀값이 대체되는 단계를 포함한다.
이 때, 상기 제2픽셀값으로 입력 받는 단계는, 4:1 멀티플렉서를 적용하여 상기 제2픽셀값이 선택될 수 있다.
이 때, 상기 제1중간값을 계산하는 단계는, 상기 계수값을 2의 제곱수로 분해하여, 상기 제1픽셀값 및 상기 제2픽셀값을 상기 분해한 제곱수의 승수만큼 쉬프트 연산하고, 상기 제1픽셀값 및 상기 제2픽셀값의 쉬프트 연산된 값을 덧셈 또는 뺄셈하여 제1중간값을 계산할 수 있다.
이 때, 상기 다수의 픽셀값들은 16x16 블록 사이즈의 픽셀값들로 할 수 있다.
본 발명의 일실시예에 의한 초고해상도 영상 코덱을 위한 역변환 방법은, 상기 다수의 픽셀값들 중 상기 제1픽셀값 및 제2픽셀값을 제외한 나머지 픽셀값들 중에서 제3픽셀값을 입력 받는 단계, 상기 제1픽셀값, 제2픽셀값 및 제3픽셀값을 제외한 나머지 픽셀값들 중 하나를 제4픽셀값으로 입력 받는 단계, 상기 입력된 제3픽셀값 및 상기 제4픽셀값에 각각 대응하는 계수값들을 적용하여, 버터플라이 연산을 통해 제2중간값을 계산하는 단계, 상기 역변환 방법을 재수행하기 위해 상기 계산된 제2중간값으로 상기 제2픽셀값이 대체되는 단계 및 상기 제1중간값 및 제2중간값에 각각 대응하는 계수값들을 적용하여, 버터플라이 연산을 통해 최종값을 계산하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 의한 초고해상도 영상 코덱을 위한 역변환 방법은, FDCT(Forward Discrete Cosine Transform) 알고리즘을 이용하여 32x32 블록 사이즈의 픽셀값들을 역변환하는 방법에 있어서, 상기 픽셀값들을 제1그룹 및 제2그룹의 16x16 블록 사이즈 픽셀값들로 양분하는 단계, 상기 제1그룹의 16개의 픽셀값들 중 2개의 픽셀값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 중간값들을 계산하는 단계 및 상기 16개의 중간값들 중 2개의 중간값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 최종값들을 계산하는 단계를 포함할 수 있다.
이 때, 상기 제2그룹의 16개의 픽셀값들 중 2개의 픽셀값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 중간값들을 계산하는 단계, 상기 16개의 중간값들 중 2개의 중간값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 최종값들을 계산하는 단계를 더 포함할 수 있다.
이 때, 상기 제1그룹 및 제2그룹에서 계산된 32개의 최종값들 중 2개의 최종값들이 선택적으로 입력되어, 버터플라이 연산을 통해 32개의 최종변환값들을 계산하는 단계를 더 포함할 수 있다.
이 때, 상기 제1그룹 및 제2그룹으로 양분하는 단계는, 홀수번째 픽셀값들과 짝수번째 픽셀값들로 양분할 수 있다.
본 발명에 따르면, 16x16, 32x32 블록 사이즈의 역변환에 있어서 공통적이고 규칙적인 버터플라이 연산구조를 활용하여 하나의 연산 유닛만으로 2개의 다른 블록 사이즈 변환 부호화를 처리할 수 있다.
또한, 본 발명은 연산에 필요한 멀티플렉서의 크기 및 쉬프트 연산부 개수를 최소화하여 설계된 최적화된 연산 유닛의 재사용을 통하여 하드웨어 면적을 최소화 시킬 수 있다.
도 1은 본 발명의 일실예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 흐름도이다.
도 2는 본 발명의 일실예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 흐름도이다.
도 3은 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 프로세스 엘레먼트를 나타낸 도면이다.
도 4는 일반적인 버터플라이 연산구조를 나타낸 도면이다.
도 5은 본 발명의 일실시예에 따른 32x32 블록 사이즈의 버터플라이 연산구조를 나타낸 도면이다.
도 6는 본 발명의 일실시예에 따른 4:1 멀티플렉서를 적용한 32x32 블록 사이즈의 버터플라이 연산구조를 나타낸 도면이다.
도 7는 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 1단계를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 16x16 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
도 9은 본 발명의 일실시예에 따른 중간값계산 과정을 나타낸 도면이다.
도 10은 본 발명의 일실시예에 따른 32x32 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
도 11는 본 발명의 일실시예에 따른 32x32 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
도 12는 본 발명의 일실시예에 따른 32x32 블록사이즈의 연산 단계별로 입력되는 중간값을 나타낸 도면이다.
도 13은 본 발명의 일실시예에 따른 중간값을 연산하기 위해 적용되는 계수값과 계산식을 나타낸 도면이다.
도 2는 본 발명의 일실예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 흐름도이다.
도 3은 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 프로세스 엘레먼트를 나타낸 도면이다.
도 4는 일반적인 버터플라이 연산구조를 나타낸 도면이다.
도 5은 본 발명의 일실시예에 따른 32x32 블록 사이즈의 버터플라이 연산구조를 나타낸 도면이다.
도 6는 본 발명의 일실시예에 따른 4:1 멀티플렉서를 적용한 32x32 블록 사이즈의 버터플라이 연산구조를 나타낸 도면이다.
도 7는 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 1단계를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 16x16 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
도 9은 본 발명의 일실시예에 따른 중간값계산 과정을 나타낸 도면이다.
도 10은 본 발명의 일실시예에 따른 32x32 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
도 11는 본 발명의 일실시예에 따른 32x32 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
도 12는 본 발명의 일실시예에 따른 32x32 블록사이즈의 연산 단계별로 입력되는 중간값을 나타낸 도면이다.
도 13은 본 발명의 일실시예에 따른 중간값을 연산하기 위해 적용되는 계수값과 계산식을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 흐름도이다.
초고해상도 영상 코덱을 위한 역변환 방법은 Chen의 FDCT 역변환 알고리즘 기반으로 한다.
본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 방법은 동영상 압축 코덱에서 16x16 또는 32x32 블록 크기의 16개 또는 32개의 픽셀값을 통해서 최종 역변환 처리된 값을 도출하게 된다.
본 발명의 일실예에 따른 초고해상도 영상 코덱을 위한 역변환 방법은 우선, 다수의 픽셀값 중에서 하나의 픽셀값을 입력한다. (S10)
이하, S10 단계에서 입력한 픽셀값은 '제1 픽셀값'이라 한다.
이후, 다수의 픽셀값 중에서 제1픽셀값을 제외한 나머지 픽셀값을 입력한다. (S20)
이 때, 16x16 블록 사이즈의 경우에는 15개의 픽셀값이 입력되고, 32x32 블록 사이즈의 경우에는 31개의 픽셀값이 입력된다.
한편, 32x32 블록 사이즈의 경우에는 홀수번째 픽셀값들과 짝수번째 픽셀값들로 양분하여, 16x16 블록 사이즈의 픽셀값들로 나누어 변환을 진행할 수 있다.
이후, S20 단계에서 입력된 나머지 픽셀값에서 하나의 픽셀값을 선택한다. (S30)
이하, S30 단계에서 입력한 픽셀값은 '제2 픽셀값'이라 한다.
이 때, 제2 픽셀값을 선택하는 과정은 4:1 멀티플렉서를 적용할 수 있으며, 이에 대한 상세한 설명은 도6을 통해 후술한다.
제1 픽셀값과 제2 픽셀값은 각각 FDCT 알고리즘에 의하여 각각 대응하는 계수값을 적용하여 연산을 수행하고(S40, S50), 연산된 값들을 더하거나 빼서 중간값을 도출한다. (S60, S70)
이 때, 제1 픽셀값 및 제2 픽셀값에 계수값을 적용하여 중간값을 도출하는 과정은, 곱셈연사자를 쉬프트 연산자, 덧셈 및 뺄셈 연산자로 대체하여 수행할 수 있으며, 이에 대한 상세한 설명은 도 9를 통해 후술한다.
이후, 16x16의 경우에는 6단계, 32x32의 경우에는 8단계의 연산이 이루어졌는지를 판단한다.
만약 각 블록 사이즈에서 요구하는 역변환 단계를 모두 거치지 않은 경우라면 제1 중간값을 S10 단계의 제1 픽셀값의 자리에 피드백하고(S80), 도 2를 통해서 후술할 제2 중간값을 S20 단계에 피드백(S700)하여 S10 내지 S70 단계의 프로세스를 반복하여 실행한다.
반대로 단계를 모두 거친 경우라면 해당 중간값은 제1최종값으로 도출된다. (S90)
도 1의 역변환 방법은 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 프로세스 엘레먼트에서 수행되며, 역변환 프로세스 엘레먼트는 도3을 통해 후술한다.
도 2는 본 발명의 일실예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 흐름도이다.
도 2의 S100 내지 S600 단계는 도 1의 S10 내지 S60 단계와 동일하므로 상세한 설명은 생략하도록 한다.
도 2의 방법을 통해서 도출된 제2 중간값은 도 1에서 설명한 바와 마찬가지로 제2 픽셀값의 자리에 피드백하여 단계를 수행하게 된다. (S700)
도 3은 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 프로세스 엘레먼트를 나타낸 도면이다.
도 3을 참고하면, 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 프로세스 엘레먼트는 제1 내지 제4 멀티플렉서(10, 20, 40, 60)와 중간값계산부(30)를 포함하여 구성된다.
본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 프로세스 엘레먼트는 동영상 압축 코덱에서 16x16 또는 32x32 블록 크기의 16개 또는 32개의 픽셀값을 통해서 최종 역변환 처리된 값을 도출하게 된다.
제1 멀티플렉서(10)는 16x16 또는 32x32 블록 사이즈를 가지는 다수의 픽셀값 중에서 하나의 픽셀값을 입력받는다.
제2 멀티플렉서(20)는 다수의 픽셀값 중에서 제1멀티플렉서(10)에 입력한 픽셀값을 제외한 나머지 픽셀값을 입력받는다.
이 때, 멀티플렉서는 여러 개의 입력 중에서 하나를 선택하여 단일 출력으로 연결하는 조합회로를 말하며, 본 발명의 일실시예에 의한 제2 멀티플렉서(20)는 4:1 멀티플렉서를 적용하는 것이 가능하다.
4:1 멀티플렉서의 적용원리에 관해서는 도 6를 통해서 후술한다.
제2 멀티플렉서(20)를 통해서 입력된 픽셀값들 중 하나의 픽셀값은 제1 멀티플렉서(10)를 통해서 입력받은 픽셀값과 함께 중간값계산부(30)로 입력된다.
중간값계산부(30)를 통해서 입력된 픽셀값들은 중간값으로 도출되어 출력이 되며, 이는 제3 멀티플렉서(30)로 입력이 되어 제1 멀티플렉서(10)의 위치로 피드백과정을 거친다.
중간값계산부(30)에서는 제1 멀티플렉서(10)와 제2 멀티플렉서(20)를 통해서 입력된 각각의 픽셀값에 대응하는 계수값을 적용하여 연산과정을 거치게 되며, 이 연산과정을 통해서 중간값이 도출된다.
계수값을 적용하여 중간값을 도출하는 과정 쉬프트 연산 및 덧셈 또는 뺄셈 연산이 적용되며, 이에 대한 자세한 설명은 도 4 내지 도 6을 통해서 후술한다.
본 발명의 일실예에 의한 초고해상도 영상 코덱을 위한 역변환 프로세스 유닛은 2개의 픽셀값으로 하나의 중간값을 도출하는 유닛이며, 16개의 픽셀값으로 16개의 최종값을 도출하기 위해서 총 16개의 프로세스 엘레먼트가 구비된다.
이 때, 총 16개의 프로세스 엘레먼트를 합쳐서 하나의 프로세스 유닛으로 구성할 수 있다.
한편, 16x16 또는 32x32 블록 크기의 16개 또는 32개의 픽셀값을 통해서 역변환 처리하는 과정은 16x16의 경우에는 하나의 프로세스 유닛에 픽셀값을 입력하고 이에 따라 도출된 중간값을 회귀하여 연산하는 과정을 6단계 반복하여 실시하면 최종값이 도출된다.
즉, 1단계에서 도출된 중간값을 피드백 처리하여 동일한 프로세스 유닛에서 2단계의 입력값으로 사용하고, 동일한 과정을 거쳐 새로운 중간값을 도출하고, 이러한 과정이 6 단계 반복되는 것이다. 이에 따라 기존에는 역변환 과정 6단계를 처리하기 위하여 총 6개의 프로세스 유닛이 필요하지만, 피드백 과정을 통해서 1개의 프로세스 유닛만으로도 8단계의 연산과정을 처리할 수 있게 되어, 하드웨어의 크기가 현저하게 감소될 수 있다.
32x32의 경우에는 16x16의 두개 그룹으로 픽셀값들을 양분한 후에 각각의 16x16 그룹에 대하여 하나의 프로세스 유닛에서 7단계의 연산을 거친 후에 도출된 최종값을 출력값저장부(50)에 저장하고, 도 11에서 보는 것처럼 두 개 그룹에서 도출된 총 32개의 최종값에 대하여 중간값 연산을 처리하여 최종 역변환값을 도출할 수 있다.
즉, 32x32 블록 사이즈 픽셀값들의 역변환 과정은 16x16을 처리하기 위한 프로세스 유닛 1개를 통하여 역변환 처리가 가능하므로, 16x16 과 32x32의 블록사이즈의 역변환 처리를 위한 하드웨어 설계를 별도로 할 필요가 없게 된다.
이 때, 32x32의 경우에는 16x16의 두개 그룹으로 픽셀값들을 양분하는 방법은, 홀수번째 픽셀값들과 짝수번째 픽셀값들로 양분하는 방법을 적용할 수 있다.
도 4는 일반적인 버터플라이 연산구조를 나타낸 도면이다.
도 4를 참고하면, 하나의 중간값을 얻기 위해서는 2개의 입력이 필요하다. 하나의 입력은 이전 단계에 같은 라인에 있는 픽셀값이다. 또 다른 하나의 입력은 이전 단계에서 같은 라인의 픽셀값을 제외한 나머지 픽셀값 중 하나가 입력이 된다.
이 2개의 입력을 통하여 계산된 값은 다시 다음 단계에서 필요한 입력 값 중 하나가 된다. 또 다른 입력값은 이전과 마찬가지로 같은 라인의 중간값을 제외한 나머지 중간값중 하나가 된다. 즉 버터플라이 연산구조에서는 각 단계별로 2개의 입력값을 받아 중간값을 계산하고 다음 단계의 입력으로 보내는 반복적인 방식을 사용한다.
도 5은 본 발명의 일실시예에 따른 32x32 블록 사이즈의 버터플라이 연산구조를 나타낸 도면이다.
도 5을 참고하면, 32개의 입력 중 같은 라인의 픽셀값이 하나의 입력으로 나머지 픽셀값 31개중 하나가 나머지 입력으로 사용됨을 알 수 있다.
X0 픽셀값을 하나의 입력값으로 사용하고, 32개의 픽셀값들 중에서 X0의 픽셀값을 제외한 나머지 31개의 픽셀값들을 멀티플렉서에 입력하여, 31개의 픽셀값들 중에서 하나의 픽셀값을 선택하여 1단계 연산을 거치게 되고, 이를 통해 제1중간값이 도출된다.
이후, 2단계에서는 1단계와 마찬가지로 제1중간값을 입력값으로 하고, 나머지 31개의 픽셀값들 중에서 선택된 하나의 픽셀값과 2번째 중간값 연산을 통해서 2번째 중간값이 도출된다.
도 6는 본 발명의 일실시예에 따른 4:1 멀티플렉서를 적용한 32x32 블록 사이즈의 버터플라이 연산구조를 나타낸 도면이다.
도 6를 참고하면, 도 5의 32x32 블록 사이즈의 버터플라이 연산구조에 있어서, X1 내지 X31의 픽셀값을 처리하는 멀티플렉서의 구조를 4:1 멀티플렉서(20)로 대체한 것을 확인할 수 있다.
버터플라이 연산구조의 특성을 이용하여 프로세스 엘레먼트를 구현하였을 때 31개의 픽셀값들을 처리해야 하므로 멀티플렉서의 크기가 커지는 문제가 발생한다. 즉, 2개의 입력 값 중 하나는 31개의 중간값 중 하나가 선택됨에 따라 31:1 필요하게 된다. 그리고 프로세스 유닛은 16개의 프로세스 엘레먼트를 통하여 구성됨에 따라 31:1 멀티플렉서가 16개 사용됨에 따라 하드웨어 면적이 증가되는 문제가 발생된다.
이를 해결하기 위하여 도 12와 같이 각 단계별로 31개의 중간값 중 어떠한 값을 사용하는 지를 분석해 보았다.
도 12에서 왼쪽열의 Y0 내지 Y15는 32x32를 16x16으로 분류한 첫번째 그룹에 적용되며, 오른쪽열의 Y16 내지 Y31은 두번째 그룹에 적용되도록 나누어 분석하였다.
그 결과 도 12의 1번째 라인 모든 스텝에서 필요한 중간값은 1,3,7,15번째 중간값 만을 필요로 함을 알 수 있다. 마찬가지로 2번째 라인에서는 0,2,6,14번째 중간값 만을 필요로 한다.
11번째 라인에서는 12, 10, 8, 12, 4번째 중간값을 필요로 하는데, 이 때 12번째 중간값은 반복되므로 결론적으로 4, 8, 10, 12번째 중간값 만을 필요로 하게 된다.
즉, 모든 라인에서 입력으로 필요한 중간값은 4개중의 하나임을 알 수 있다.
따라서 도 6에서 보는 것처럼 32:1 멀티플렉서를 4:1 멀티플렉서(20)로 대치가 가능하다.
이에 따라 프로세스 유닛을 구성함에 있어서 32:1 멀티플렉서 16개를 사용하지 않고 4:1 멀티플렉서 16개롤 사용함으로써 하드웨어 면적을 줄 일 수 있다.
또한 이러한 방법은 16x16 에서도 공통적으로 적용됨에 따라 하나의 PE로 16x16 및 32x32 처리하는데 아무런 문제가 발생되지 않는다.
도 7는 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 1단계를 나타낸 도면이다.
도 7를 참고하면, 본 발명의 일실시예에 따른 초고해상도 영상 코덱을 위한 역변환 방법의 1단계에 입력되는 픽셀값은 32x32 블록사이즈의 픽셀값들 중에서 홀수 그룹으로 분류된 픽셀값을 사용한다.
각 입력 픽셀값에 계수를 곱한 후 덧셈이나 뺄셈 연산을 통하여 중간값을 얻게 된다.
예를 들어 g16 중간값을 얻기 위해서는 X1의 픽셀값에 12를 곱한 값에서 X31의 픽셀값에 31을 곱한 값을 빼는 연산(g16 = 12*x1-255*x31)을 수행하게 된다.
또 다른 예를 들면, g17 중간값을 얻기 위해서는 X17의 픽셀값에 189를 곱한 값에서 X15의 픽셀값에 171을 곱한 값을 빼는 연산(189*x17-171*x15)을 수행하게 된다.
도 7의 g16 내지 g31을 계산하는 데 쓰이는 계수값과 계산식은 도 13을 통해서 확인할 수 있다.
도 8은 본 발명의 일실시예에 따른 16x16 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
가장 왼쪽의 X0 내지 X15의 16개의 입력값은 FDCT 역변환 알고리즘을 통해서 가장 오른쪽의 a0 내지 a15의 최종값으로 역변환 처리된다.
각 입력값과 중간값에 적용되는 계수값은 FDCT 역변환 알고리즘 계수값을 사용하며, 최적화되어 입력되는 4개의 중간값 순번은 도 12를 통해서 확인할 수 있다.
도 9은 본 발명의 일실시예에 따른 중간값계산 과정을 나타낸 도면이고, 도 13은 본 발명의 일실시예에 따른 중간값을 연산하기 위해 적용되는 계수값과 계산식을 나타낸 도면이다.
도 13를 참고하면, g16 중간값을 얻기 위해서는 상단 X0의 픽셀값에 X1을 입력하고 여기에 12를 곱한 값을 도출하고, 하단 X0의 픽셀값에 X31을 입력하고 여기에 31을 곱한 값을 빼는 연산(g16 = 12*x1-255*x31)을 수행하게 된다.
이 때, g16의 중간 값을 얻기 위해서는 2개의 곱셈기가 필요하게 된다.
이를 프로세스 유닛으로 구현할 때에는 총 32개의 곱셈기가 필요하게 되어 하드웨어 면적이 증가하는 문제가 발생된다.
이를 해결하기 위하여 곱셈 연산을 도 9처럼 쉬프트, 덧셈 연산으로 분해하여 곱셈기를 사용하지 않고 중간값을 도출할 수 있다.
도 13의 g16 중간 값을 얻기 위해서는 g16 = 12*x1-255*x31 연산을 수행함에 있어서, 계수값 12를 8과 4로 분해하여 입력값을 3번, 4번 쉬프트 값을 더하으로써 12*X1을 구할 수 있고 마찬가지로 255*x31은 계수값 255를 128, 128, -1로 분해하여 7번 쉬프트 값 2개를 더하고 0번 쉬프트 된 값 뺄셈 연산을 통하여 구함으로써 곱셈기를 사용하지 않고도 곱셈연산을 수행할 수 있다.
즉, 계수값을 2의 제곱수로 분해하여, X1 및 X31을 분해한 제곱수의 승수만큼 쉬프트 연산하고, X1 및 X31의 쉬프트 연산된 값을 덧셈 또는 뺄셈하여 중간값을 계산할 수 있다.
도 13을 참고하면, left로 표현된 값은 수식의 왼쪽 곱셈 연산 right로 표현된 부분은 수식의 오른쪽 곱셈 연산이다.
정리하면, 괄호로 표현된 부분은 쉬프트의 개수, 나머지 숫자는 쉬프트를 몇 번 할지를 나타낸다.
곱셈연산을 위해서 4개 또는 5개의 쉬프트 연산자 필요함을 알 수 있다. 따라서 도 9의 상단은 4개의 쉬프트 연산자(310)와 3개의 덧셈뺄셈 연산자(320)가 필요한 경우, 하단은 5개의 쉬프트 연산자(310)와 4개의 덧셈뺄셈 연산자(320)가 필요한 경우이다.
도 10은 본 발명의 일실시예에 따른 32x32 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이고, 도 11는 본 발명의 일실시예에 따른 32x32 블록 사이즈의 초고해상도 영상 코덱을 위한 역변환 방법을 나타낸 도면이다.
상술한 바와 같이 32x32 블록 사이즈의 경우에는 16x16 블록 사이즈 2개로 나누어 연산을 수행하므로, 도 8에서처럼 하나의 16x16 그룹에 대하여 역변환을 수행하고, 도 10에서처럼 나머지 하나의 16x16 그룹에 대하여 역변환을 수행하고, 이를 통해 얻어진 최종값 a0 내지 a31의 값을 도 11에서와 같이 한꺼번에 연산을 수행하면, 16x16 블록사이즈를 역변환 할 수 있는 프로세스 유닛 하나만으로 32x32 블록사이즈의 픽셀값들을 역변환할 수 있게 된다.
이상에서와 같이 본 발명에 따른 초고해상도 영상 코덱을 위한 역변환 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10 : 제1멀티플렉서 20 : 제2멀티플렉서
30 : 중간값계산부 40 : 제3멀티플렉서부
50 : 출력값저장부 60 : 제4멀티플렉서부
310 : 쉬프트 연산부 320 : 덧셈뺄셈 연산부
30 : 중간값계산부 40 : 제3멀티플렉서부
50 : 출력값저장부 60 : 제4멀티플렉서부
310 : 쉬프트 연산부 320 : 덧셈뺄셈 연산부
Claims (9)
- FDCT(Forward Discrete Cosine Transform) 알고리즘을 이용한 역변환 방법에 있어서,
다수의 픽셀값들 중 제1픽셀값을 입력 받는 단계;
상기 제1픽셀값을 제외한 나머지 픽셀값들 중 하나를 제2픽셀값으로 입력 받는 단계;
상기 입력된 제1픽셀값 및 상기 제2픽셀값에 각각 대응하는 계수값들을 적용하여, 버터플라이 연산을 통해 제1중간값을 계산하는 단계; 및
상기 역변환 방법을 재수행하기 위해 상기 계산된 제1중간값으로 상기 제1픽셀값이 대체되는 단계를 포함하는 초고해상도 영상 코덱을 위한 역변환 방법. - 청구항 1에 있어서,
상기 제2픽셀값으로 입력 받는 단계는,
4:1 멀티플렉서를 적용하여 상기 제2픽셀값이 선택되는 것을 특징으로 하는 초고해상도 영상 코덱을 위한 역변환 방법. - 청구항1에 있어서,
상기 제1중간값을 계산하는 단계는,
상기 계수값을 2의 제곱수로 분해하여, 상기 제1픽셀값 및 상기 제2픽셀값을 상기 분해한 제곱수의 승수만큼 쉬프트 연산하고, 상기 제1픽셀값 및 상기 제2픽셀값의 쉬프트 연산된 값을 덧셈 또는 뺄셈하여 제1중간값을 계산하는 것을 특징으로 하는 초고해상도 영상 코덱을 위한 역변환 방법. - 청구항 1에 있어서,
상기 다수의 픽셀값들은 16x16 블록 사이즈의 픽셀값들인 것을 특징으로 하는 초고해상도 영상 코덱을 위한 역변환 방법. - 청구항 1에 있어서,
상기 다수의 픽셀값들 중 상기 제1픽셀값 및 제2픽셀값을 제외한 나머지 픽셀값들 중에서 제3픽셀값을 입력 받는 단계;
상기 제1픽셀값, 제2픽셀값 및 제3픽셀값을 제외한 나머지 픽셀값들 중 하나를 제4픽셀값으로 입력 받는 단계;
상기 입력된 제3픽셀값 및 상기 제4픽셀값에 각각 대응하는 계수값들을 적용하여, 버터플라이 연산을 통해 제2중간값을 계산하는 단계;
상기 역변환 방법을 재수행하기 위해 상기 계산된 제2중간값으로 상기 제2픽셀값이 대체되는 단계; 및
상기 제1중간값 및 제2중간값에 각각 대응하는 계수값들을 적용하여, 버터플라이 연산을 통해 최종값을 계산하는 단계를 더 포함하는 초고해상도 영상 코덱을 위한 역변환 방법. - FDCT(Forward Discrete Cosine Transform) 알고리즘을 이용하여 32x32 블록 사이즈의 픽셀값들을 역변환하는 방법에 있어서,
상기 픽셀값들을 제1그룹 및 제2그룹의 16x16 블록 사이즈 픽셀값들로 양분하는 단계;
상기 제1그룹의 16개의 픽셀값들 중 2개의 픽셀값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 중간값들을 계산하는 단계; 및
상기 16개의 중간값들 중 2개의 중간값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 최종값들을 계산하는 단계를 포함하는 초고해상도 영상 코덱을 위한 역변환 방법. - 청구항 6에 있어서,
상기 제2그룹의 16개의 픽셀값들 중 2개의 픽셀값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 중간값들을 계산하는 단계;
상기 16개의 중간값들 중 2개의 중간값들이 선택적으로 입력되어, 버터플라이 연산을 통해 16개의 최종값들을 계산하는 단계를 더 포함하는 초고해상도 영상 코덱을 위한 역변환 방법. - 청구항 7에 있어서,
상기 제1그룹 및 제2그룹에서 계산된 32개의 최종값들 중 2개의 최종값들이 선택적으로 입력되어, 버터플라이 연산을 통해 32개의 최종변환값들을 계산하는 단계를 더 포함하는 초고해상도 영상 코덱을 위한 역변환 방법. - 청구항 6에 있어서,
상기 제1그룹 및 제2그룹으로 양분하는 단계는,
홀수번째 픽셀값들과 짝수번째 픽셀값들로 양분하는 것을 특징으로 하는 초고해상도 영상 코덱을 위한 역변환 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120061669A KR20130137951A (ko) | 2012-06-08 | 2012-06-08 | 초고해상도 영상 코덱을 위한 역변환 방법 |
US13/524,264 US20130329780A1 (en) | 2012-06-08 | 2012-06-15 | Inverse transform method for ultra-high resolution video codec |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120061669A KR20130137951A (ko) | 2012-06-08 | 2012-06-08 | 초고해상도 영상 코덱을 위한 역변환 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130137951A true KR20130137951A (ko) | 2013-12-18 |
Family
ID=49715291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120061669A KR20130137951A (ko) | 2012-06-08 | 2012-06-08 | 초고해상도 영상 코덱을 위한 역변환 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130329780A1 (ko) |
KR (1) | KR20130137951A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150100348A (ko) * | 2014-02-25 | 2015-09-02 | 숭실대학교산학협력단 | 동영상 코덱의 역변환 방법 및 그 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104093032A (zh) * | 2014-07-16 | 2014-10-08 | 苏州博联科技有限公司 | 一种低功耗二维fdct变换方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100270799B1 (ko) * | 1998-01-30 | 2000-11-01 | 김영환 | 이산코사인변환/역이산코사인변환 프로세서 |
US8385424B2 (en) * | 2006-06-26 | 2013-02-26 | Qualcomm Incorporated | Reduction of errors during computation of inverse discrete cosine transform |
-
2012
- 2012-06-08 KR KR1020120061669A patent/KR20130137951A/ko not_active Application Discontinuation
- 2012-06-15 US US13/524,264 patent/US20130329780A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150100348A (ko) * | 2014-02-25 | 2015-09-02 | 숭실대학교산학협력단 | 동영상 코덱의 역변환 방법 및 그 장치 |
US9699478B2 (en) | 2014-02-25 | 2017-07-04 | Foundation Of Soongsil University-Industry Cooperation | Inverse transform method and apparatus for video codec |
Also Published As
Publication number | Publication date |
---|---|
US20130329780A1 (en) | 2013-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4311759B2 (ja) | データ変換装置及びその制御方法 | |
Zhao et al. | High-performance multiplierless transform architecture for HEVC | |
Amish et al. | Fully pipelined real time hardware solution for high efficiency video coding (HEVC) intra prediction | |
JP6357345B2 (ja) | ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 | |
US7236997B2 (en) | Filter processing apparatus and method | |
Kammoun et al. | Hardware acceleration of approximate transform module for the versatile video coding standard | |
JP4536109B2 (ja) | 半導体装置および信号処理方法 | |
Darji et al. | High-performance multiplierless DCT architecture for HEVC | |
KR20130137951A (ko) | 초고해상도 영상 코덱을 위한 역변환 방법 | |
KR101412964B1 (ko) | Hevc를 위한 저면적 고성능 다중모드 1d 변환블록 및 이를 이용한 데이터 처리방법 | |
Husemann et al. | Hardware integrated quantization solution for improvement of computational H. 264 encoder module | |
KR101395143B1 (ko) | 영상처리의 정수변환 방법 및 정수변환 장치 | |
KR101601864B1 (ko) | 동영상 코덱의 역변환 방법 및 그 장치 | |
Abdelrasoul et al. | Scalable integer DCT architecture for HEVC encoder | |
JP4933405B2 (ja) | データ変換装置及びその制御方法 | |
Abdelrasoul et al. | Real‐time unified architecture for forward/inverse discrete cosine transform in high efficiency video coding | |
JP6555814B2 (ja) | 直交変換処理装置、逆直交変換処理装置、符号化装置、復号装置、及びコンピュータプログラム | |
KR101383515B1 (ko) | 영상의 역변환 장치 | |
CN101562744B (zh) | 二维反变换装置 | |
JP2007316844A (ja) | フィルタ処理装置、乗算器及び動き補償処理装置 | |
KR101423083B1 (ko) | Hevc 복호기용 역변환기 설계 방법 | |
Vayalil et al. | An efficient ASIC design of variable-length discrete cosine transform for HEVC | |
JP4963194B2 (ja) | フィルタ処理装置、乗算器及び動き補償処理装置 | |
WO2009095959A1 (ja) | 直交変換装置および集積回路 | |
Chatterjee et al. | Constant throughput HEVC core transform design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |