KR101395143B1 - 영상처리의 정수변환 방법 및 정수변환 장치 - Google Patents

영상처리의 정수변환 방법 및 정수변환 장치 Download PDF

Info

Publication number
KR101395143B1
KR101395143B1 KR1020130067939A KR20130067939A KR101395143B1 KR 101395143 B1 KR101395143 B1 KR 101395143B1 KR 1020130067939 A KR1020130067939 A KR 1020130067939A KR 20130067939 A KR20130067939 A KR 20130067939A KR 101395143 B1 KR101395143 B1 KR 101395143B1
Authority
KR
South Korea
Prior art keywords
data
register
data block
calculation result
conversion
Prior art date
Application number
KR1020130067939A
Other languages
English (en)
Inventor
기창서
Original Assignee
이노뎁 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이노뎁 주식회사 filed Critical 이노뎁 주식회사
Priority to KR1020130067939A priority Critical patent/KR101395143B1/ko
Application granted granted Critical
Publication of KR101395143B1 publication Critical patent/KR101395143B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

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

Abstract

본 발명은 NxN 행열을 갖는 데이터 블록의 이산변환 또는 역이산변환을 수행하는 영상처리의 정수변환 방법 및 장치를 개시한다. 본 발명의 기술적 사상에 따른 영상처리의 정수변환 방법은, 데이터 블록에 대하여 행방향으로 1차원 변환이 수행되는 1차 변환단계 및 상기 1차 변환된 데이터 블록에 대하여 열방향으로 상기 1차원 변환이 수행되는 2차 변환단계를 포함하고, 상기 1차 변환 단계는, 레지스터에 상기 데이터 블록의 데이터를 재배치하고, 재배치된 데이터의 수평연산에 기초하여 상기 1차원 변환이 수행된다.

Description

영상처리의 정수변환 방법 및 정수변환 장치{Integer transform method for image processing and device threof}
본 발명의 기술적 사상은 영상 처리의 정수 변환 방법 및 그 장치에 관한 것으로서, 보다 구체적으로는 동영상 데이터의 압축 표준이 적용되는 영상 부호기 또는 복호기에서 이산여현변환 또는 역이산여현변환 기반의 정수변환을 수행함에 있어 효율적인 병렬처리 동작을 수행함으로써 데이터 처리 속도를 개선한 영상처리의 정수변환 방법 및 그 장치에 관한 것이다.
H.264/AVC(Advanced Video Coding) 와 같은 동영상 데이터의 압축 표준(codec standard)에 있어서, 하나의 프레임은 소정의 픽셀 구조, 예를 들면 4x4 또는 8x8 픽셀들(pixels)로 이루어지는 매크로 블록(macroblock)으로 분할(division)될 수 있으며, 상기 분할된 동영상 데이터는 매크로 블록 단위로 인코딩 또는 디코딩이 수행될 수 있다. 특히, 영상 신호 내의 공간적 중복을 줄이기 위해, 인코딩 시에 각 매크로 블록에 이산여현변환(discrete cosine transform)을 적용하여 데이터를 공간 영역에서 주파수 영역으로 변환한 후 고주파 성분을 제거하는 방식으로 압축 효과를 얻고, 디코딩 시에 각 매크로 블록에 역이산여현변환(Inverse cosine transform)을 적용하여 데이터를 다시 공간 영역으로 변환할 수 있다. H.264/AVC에서 이산여현변환 및 역이산여현변환은 4x4 화소 단위의 정수변환으로 수행될 수 있으며, 이러한 정수변환은 프로세서에서 제공되는 SIMD(single instruction multi data) 명령어를 사용하여 수행될 수 있다. SIMD 명령어는 하나의 명령으로 동시에 여러 데이터를 병렬로 처리하므로 데이터의 처리속도가 빨라질 수 있다.
본 발명의 기술적 사상은 단일 명령어로 복수의 데이터를 처리하는 환경에서, 데이터 블록의 이산여현변환 또는 역이산여현변환 기반의 정수변환을 수행할 때, 수평방향의 연산을 구현하여 효율적으로 정수변환을 수행하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 기술적 사상에 따른 NxN 행열을 갖는 데이터 블록의 이산변환 또는 역이산변환을 수행하는 영상처리의 정수변환 방법은, 상기 데이터 블록에 대하여 행방향으로 1차원 변환이 수행되는 1차 변환단계 및 상기 1차 변환된 데이터 블록에 대하여 열방향으로 상기 1차원 변환이 수행되는 2차 변환단계를 포함하고, 상기 1차 변환 단계는, 레지스터에 상기 데이터 블록의 데이터를 재배치하고, 재배치된 데이터의 수평연산에 기초하여 상기 1차원 변환이 수행된다.
일 실시예에 있어서, 상기 수평연산은 프로세서에서 제공되는 SIMD 명령어에 의해 수행될 수 있으며, 상기 데이터의 재배치는 레지스터 내에서의 byte 단위의 데이터 재배치 또는 64bit 단위의 데이터 재배치를 포함하고, 상기 수평연산은 수평덧셈 및 수평곱합, 부호변경 또는 데이터 쉬프트를 포함할 수 있다.
일 실시예에 있어서, 상기 1차 변환단계는, 상기 데이터 블록의 각 행의 홀수번째 열의 데이터를 상기 레지스터에 중복하여 배치하는 단계, 상기 레지스터에 배치된 데이터를 수평연산하여 제1 연산결과를 산출하는 단계, 상기 데이터 블록의 각 행의 짝수번째 열의 데이터를 상기 레지스터에 중복하여 배치하는 단계, 상기 레지스터에 배치된 데이터를 수평연산하여 제2 연산결과를 산출하는 단계 및 상기 제1 연산결과와 상기 제2 연산결과를 합산하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 2차 변환단계는, 상기 1차 변환된 데이터 블록의 각 열의 홀수번째 행의 데이터를 상기 레지스터에 중복하여 재배치하는 단계, 상기 레지스터에 배치된 데이터를 수평연산하여 제1 연산결과를 산출하는 단계, 상기 1차 변환된 데이터 블록의 각 열의 짝수번째 행의 데이터를 상기 레지스터에 중복하여 재배치하는 단계, 상기 레지스터에 배치된 데이터를 수평연산하여 제2 연산결과를 산출하는 단계 및 상기 제1 연산결과와 상기 제2 연산결과를 합산하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 제1 연산결과를 산출하는 단계는, 상기 레지스터에 배치된 데이터의 부호를 변경하는 단계, 상기 부호 변경된 데이터를 수평합산하는 단계 및 상기 수평합산에 의하여 발생하는 데이터를 중복하여 재배치하는 단계를 포함하고, 상기 제2 연산결과를 산출하는 단계는, 상기 레지스터에 배치된 데이터를 수평곱합연산하는 단계 및 상기 수평곱합연산에 의하여 발생하는 데이터를 1 bit씩 오른쪽으로 이동시키는 단계, 상기 쉬프팅된 데이터를 중복하여 재배치하는 단계 및 상기 재배치된 데이터의 부호를 변경하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 N은 4이고, 상기 데이터 블록의 데이터 각각은 2byte이고, 상기 레지스터는 256bit이고, 상기 이산여현변환 또는 역이산여현변환은 H.264/AVC 코딩 또는 디코딩 단계에 포함될 수 있다.
본 발명의 기술적 사상에 따른 NxN 행열을 갖는 데이터 블록의 이산변환 또는 역이산변환을 수행하는 영상처리의 정수변환 장치는 상기 데이터 블록에 대하여 행방향으로 1차원 변환을 수행하는 제1 변환부 및 상기 제1 변환부로부터 수신되는 행방향으로 변환된 데이터 블록에 대하여 열방향으로 상기 1차원 변환을 수행하는 제2 변환부를 포함하고, 상기 제1 변환부 및 상기 제2 변환부는, 입력되는 데이터 블록의 데이터를 레지스터에 재배치하고, 재배치된 데이터를 수평연산하여 상기 1차원 변환을 수행한다.
일 실시예에 있어서, 상기 제1 변환부 및 상기 제2 변환부는, 상기 입력되는 데이터 블록의 데이터를 상기 레지스터에 재배치하는 데이터 재배치부, 상기 재배치된 데이터를 수평 연산하여 제1 연산결과 및 제2 연산결과를 출력하는 수평연산부 및 상기 제1 연산결과 및 상기 제2 연산결과를 합산하는 합산부를 포함할 수 있다.
본 발명의 기술적 사상에 따른 영상 처리의 정수변환 방법 및 장치는 행열로 배열된 데이터 블록의 이산여현변환 또는 역이산여현변환 기반의 정수변환에 있어, 단일 명령으로 복수의 데이터를 처리하는 명령셋을 이용하여 수평연산을 수행함으로써, 데이터 처리 속도를 높일 수 있다.
도 1은 본 발명의 일 실시예에 따른 정수변환장치를 도시한 블록도이다.
도 2는 도 1의 제1 변환부의 일 구현예를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 정수변환방법에서, 행방향의 정수변환의 일 구현예를 나타낸 흐름도이다.
도 4a 및 도 4b는 행방향의 정수변환에서 제1 연산결과 및 제2 연산결과를 산출하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 정수변환방법에서, 열방향의 정수변환의 일 구현예를 나타낸 흐름도이다.
도 6a 및 도 6b는 열방향의 정수변환에서 제1 연산결과 및 제2 연산결과를 산출하는 방법을 설명하기 위한 도면이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고, 이들에 대한 중복된 설명은 생략한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것으로, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
달리 정의되지 않는 한, 여기에 사용되는 모든 용어들은 기술 용어와 과학 용어를 포함하여 본 발명 개념이 속하는 기술 분야에서 통상의 지식을 가진 자가 공통적으로 이해하고 있는 바와 동일한 의미를 지닌다. 또한, 통상적으로 사용되는, 사전에 정의된 바와 같은 용어들은 관련되는 기술의 맥락에서 이들이 의미하는 바와 일관되는 의미를 갖는 것으로 해석되어야 하며, 여기에 명시적으로 정의하지 않는 한 과도하게 형식적인 의미로 해석되어서는 아니 될 것임은 이해될 것이다.
우선, H.264/AVC 에서의 4x4 화소 단위의 정수변환에 대하여 설명한다. 이산여현변환(Discrete cosine transform; 이하 DCT라고 한다) 및 역이산여현변환(Invserse cosine transform; 이하 IDCT라고 한다)은 데이터를 시공간 영역에서 주파수 영역으로 또는 주파수 영역에서 시공간 영역으로 변환을 하는 것으로서 2차원 변환이다. 2차원의 변환을 효율적으로 수행하기 위하여 많은 알고리즘이 제안되었으며, H.264/AVC 에서는 4x4 화소 단위의 정수변환으로 2차원 DCT/IDCT 변환이 수행될 수 있다. 여기서, 4x4 행렬로 배열된 데이터 블록인 입력 X에 대한 4x4 DCT 기반의 정수 변환은 다음과 같은 수학식 1으로 나타낼 수 있다.
Figure 112013052700912-pat00001
E는 스케일링 펙터 행렬을 의미하며, (CXCT)행렬 연산결과에 곱해져 연산결과를 스케일링(scaling)한다.
그리고, IDCT는 DCT의 역변환이므로, 4x4 IDCT 기반의 역정수 변환은 다음과 같은 수학식 2로 나타낼 수 있다.
Figure 112013052700912-pat00002
상기 4x4 DCT/IDCT 기반의 정수변환은 직교변환이어서 입력되는 데이터 블록에 대하여 행방향과 열방향에 대한 각각의 1차원 변환을 수행함으로써 2차원 변환이 완성될 수 있다. 이러한 2차원 변환은 덧셈, 뺄셈, 쉬프트 연산으로 간단히 계산될 수 있으며, 정수연산만으로 변환과 역변환이 수행될 수 있다.
한편, 영상처리에 이용되는 컴퓨터의 마이크로프로세서는 멀티미디어 응용 프로그램의 빠른 실행을 돕기 위하여 SIMD(Single instruction multi data) 명령어를 제공하고 있다. 이러한 SIMD 명령어는 하나의 명령으로 동시에 여러 데이터를 병렬로 처리한다. 따라서, 상기 4x4 DCT/IDCT의 정수변환 과정에서 행방향과 열방향에 대한 각각 4번의 연산, 즉 총 8번의 연산이 아닌, 행방향과 열방향에 대한 각각 한번의 연산, 즉 총 2번의 연산으로 정수변환을 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 정수변환장치를 나타내는 블록도이다.
도 1을 참조하면, 정수변환장치(100)는 제1 변환부(110) 및 제2 변환부(120)를 포함하며, 제1 변환부(110) 및 제2 변환부(120) 각각이 1차원 변환을 수행함으로써, NxN 행열로 배열된 데이터 블록(DB)에 대하여 2차원 DCT/IDCT 기반의 정수변환을 수행할 수 있다. 이때, 각 구성 요소(110, 120)는 하드웨어 구성으로 구현될 수도 있으며, 소프트웨어 알고리즘의 형태로 구현될 수도 있다.
제1 변환부(110)는 데이터 블록(DB)에 대하여 행방향으로의 1차원 변환을 수행하며, 제2 변환부(120)는 제1 변환부(10)로부터 출력되는 변환된 데이터 블록(DB_1Dcvt)에 대하여 열방향으로의 1차원 변환을 수행하여 2차원 변환된 데이터 블록(DB_2Dcvt)을 출력할 수 있다.
이때, 제1 변환부(110) 및 제2 변환부(120)는 프로세서로부터 제공되는 SIMD 명령을 이용하여 NxN 데이터 블록(DB)에 대하여 한번의 연산을 수행하여 1차원 변환을할 수 있다. 상기 수학식 1 및 2를 참조하면, DCT/IDCT기반의 정수변환을 위해 데이터 블록(DB)의 각각의 행 또는 각각의 열에 배치된 데이터들에 대하여 동일한 연산이 수행되어야 함을 알 수 있다. SIMD 명령어를 이용하여, 제1 변환부(110)에서는 행방향의 연산을 각 행에 대하여 병렬적으로 수행하고, 제2 변환부(120)에서는 열방향의 연산을 각 열에 대하여 병렬적으로 수행할 수 있다.
한편, 제1 변환부(110)는 데이터 블록(DB)의 데이터를 레지스터에 재배치하고, 재배치된 데이터를 수평연산하여 1차원 변환을 수행할 수 있다. 이하, 상세한 설명을 위하여 4x4 IDCT 기반의 정수연산을 가정하여 제1 변환부(110)의 동작을 설명하기로 한다.
수학식 2를 참조하여, 데이터 블록(DB)에 대한 4x4 IDCT 기반의 행방향의 1차원 변환, 즉 Y행렬과 C행열의 행열의 곱에 따른 연산식을 계산하면, 다음과 같이 수학식 3으로 나타낼 수 있다. 이때, 데이터 블록(DB)는 도 1에 도시된 4x4 데이터 블록의 데이터값을 갖는다고 가정하고, 각 행에 대한 연산은 동일하므로 데이터 블록(DB)의 첫번째 행의 데이터(a0, a1, a2, a4)에 대한 연산만을 나타내기로 한다.
Figure 112013052700912-pat00003
여기에서, 기호 '>>1'는 데이터를 오른쪽으로 1bit 이동시킨다는 의미로, 데이터에 대한 1/2 연산, 즉 2로 나눔을 의미한다. 각각의 데이터가 소정 개수의 bit로 이루어진 디지털 데이터므로, 데이터에 대한 1/2의 연산은 데이터를 1bit 쉬프트 라이트 함으로써 수행될 수 있다. 반대로 데이터에 대한 2의 곱은 데이터에 대한 1bit 쉬프트 레프트로 수행될 수도 있다. 이때, 중복되는 연산에 대하여 수학식 4와 같이 치환하면 수학식 3은 수학식 5로 변환될 수 있다.
Figure 112013052700912-pat00004
Figure 112013052700912-pat00005
Figure 112013052700912-pat00006
수학식 5에서, 결과값 Rout(ro, r1, r2, r3)은 좌항 R1(z0, z1, z1, z0)과 우항 R2(z3, z2, -z2, -z3)로 나타낼 수 있으며, 이때, 좌항 R1은 z0, z1으로 이루어지고, 우항 R2는 z2, z3로 이루어짐을 알 수 있다.
이에 따라, 제1 데이터 변환부(110)는 별도의 연산을 통하여 좌항 R1과 우항 R2를 각각 구하고, 좌항 R1과 우항 R2를 합산하여 결과값 Rout을 산출할 수 있다. 이때, 제1 데이터 변환부(110)는 데이터 블록(DB) 각 행의 제1 열 및 제3 열의 데이터, 예컨대 a0, a2, b0, b2, c0, c2, d0 및 d2를 레지스터(미도시)에 중복 배치하고, 수평연산을 하여 수학식 5의 좌항 R1의 복수의 데이터(z0, z1, z1, z0)를 동시에 구할 수 있다. 또한, 데이터 블록(DB)의 각 행의 제2 열 및 제4 열의 데이터, 예컨대 a1, a3, b1, b3, c1, c3, d1 및 d3을 레지스터에 중복 배치하고, 수평연산을 하여 수학식 5의 우항 R2의 복수의 데이터(z3, z2, -z2, -z3)를 동시에 구할 수 있다. 상기 데이터 재배치 및 수평연산에 대한 구체적인 설명은 도 3 내지 도 4b를 참조하여 후술하기로 한다.
한편, 수학식 4를 참조하면, 우항 R2(z3, z2, -z2, -z3)를 구하기 위해서, a1 또는 a3를 1bit 쉬프트 라이트 하여야 하는데, SIMD 명령어를 이용한 연산에서 이러한 연산은 수행되기 어렵다. SIMD 명령어는 데이터들에 대하여 동일한 처리를 하므로, 1bit 쉬프트 라이트 명령어가 인가되면, 동일한 레지스터에 배치된 데이터들이 모두 1 bit 씩 오른쪽으로 이동하기 때문에 레지스터에 배치된 데이터 중 특정 데이터만을 이동시킬 수 없다.
그러나, 우항 R2의 z2, z3에 대한 연산식은 수학식 6과 같이 연산식을 변환하여 수행함으로써, SIMD 명령어를 이용하여 연산을 수행할 수 있다.
Figure 112013052700912-pat00007
수학식 4에서 z2, z3의 연산식 전체에 대하여 2를 곱하고 다시 1bit 쉬프트 라이트를 하여 2로 나누면 수학식 6의 z2, z3에 대한 연산식이 도출될 수 있다.
a1은 [x1x0], a3는 [y1y0]로 나타낸다면, 수학식 4의 z3 연산식에서 1bit 쉬프트 라이트에 의하여 사라지는 bit는 a3의 첫번째 bit인 y0이다. 수학식 6의 z3 연산식에서 a1에는 2가 곱해지므로 a1은 1bit씩 왼쪽으로 이동한다. 따라서, 2a1과 a3의 합의 최하위 bit는 y0이므로 1bit 쉬프트 라이트에 의하여 a3의 첫번째 bit인 y0가 사라진다. z3에 대한 수학식 4 및 6에서의 두 연산식 간의 오차는 쉬프트 라이트에 의하여 사라지는 최하위 bit에 의하여 결정되는데, 수학식 4 및 6의 연산에서 쉬프트 라이트에 의하여 사라지는 bit가 동일하므로 두 식이 등가임을 알 수 있다. 또한, 이와 유사하게 z2에 대한 수학식 4 및 6에서의 두 연산식이 등가임을 알 수 있다.
이상에서 설명한 바와 같이, 제1 데이터 변환부(110)는 데이터 블록(DB)의 데이터를 레지스터에 재배치한 후, 레지스터에 배치된 데이터를 수평연산 함으로써, 행방향의 1차 변환에 대한 연산식 Rout에 대한 좌항 R1과 우항 R2를 별도로 구할 수 있다. 또한, 연산식을 SIMD 구조에 적합하게 변환하여 수행함으로써, SIMD 명령어를 이용한 수평연산을 통하여 행방향의 1차원 변환을 수행할 수 있다.
종래에는, 데이터 블록의 행렬을 바꾸고, 열방향의 연산을 수행한 후, 결과로 출력되는 데이터 블록의 행렬을 다시 바꾸는 방법으로 SIMD 구조에서의 행방향의 연산을 수행하였다. 그러나, 본 발명에 따른 정수연산장치(100)에서 행방향의 연산을 수행하는 제1 변환부(110)는 데이터 블록의 행렬을 바꾸는 단계없이 행방향의 연산을 수행할 수 있는바, 연산단계가 줄어들고 데이터 처리속도가 향상될 수 있다.
또한, 제1 데이터 변환부(110)는 좌항 R1의 복수의 데이터(z0, z1, z1, z0)를 동시에 구하고 우항 R2의 복수의 데이터(z3, z2, -z2, -z3)을 동시에 구하므로, z0, z1, z2, z3를 단계적으로 구하는 경우보다 연산단계가 줄어들고 데이터 처리속도가 향상될 수 있다.
한편, 상술한 제 1 변환부(110)의 연산방법은 제2 변환부(120)에도 적용될 수 있다. 수학식 2를 참조하여, 데이터 블록(DB)에 대한 4x4 IDCT 기반의 열방향의 1차원 변환, 즉 CT행렬과 Y행열의 행열의 곱에 따른 연산식을 계산하면, 다음과 같이 수학식 7로 나타낼 수 있다. 각 열에 대한 연산은 동일하므로 데이터 블록(DB)의 첫번째 열의 데이터(a0, b0, c0, c4)에 대한 연산만을 나타내기로 한다.
Figure 112013052700912-pat00008
수학식 4와 수학식 7을 비교하면, 동일한 행의 데이터인 a0, a1, a2, a3가 동일한 열의 데이터인 a0, b0, c0, d0로 치환되었을 뿐, 연산식이 동일함을 알 수 있다. 따라서, 중복되는 연산을 수학식 8과 같이 치환하면, 수학식 7은 상기 수학식 5로 변환될 수 있다.
Figure 112013052700912-pat00009
Figure 112013052700912-pat00010
따라서, 제2 데이터 변환부(120)는 데이터 블록(DB) 각 열의 제1 행 및 제3 행의 데이터, 예컨대 a0, c0, a1, c1, a2, c2, a3 및 c3를 레지스터(미도시)에 중복 배치하고, 수평연산을 하여 좌항 R1을 구하고, 데이터 블록(DB)의 각 열의 제2 행 및 제4 행의 데이터, 예컨대 b0, d0, b1, d1, b2, d2, b3, d3를 레지스터에 중복 배치하고, 수평연산을 하여 우항 R2를 구하여, 좌항 R1과 우항 R2를 합산하여 열방향의 연산에 대한 결과값 Rout을 얻을 수 있다. 이때, 전술한 바와 같이 열방향의 연산식은 동일한 행의 데이터가 동일한 열의 데이터로 치환되었을 뿐, 행방향의 연산식과 동일하므로, 레지스터에 배치된 데이터들에 대한 수평연산은 제1 데이터 변환부(110)와 동일하다. 따라서, 중복되는 설명은 생략하기로 하며, 데이터 재배치 및 수평연산에 대한 구체적인 설명은 도 5내지 도 6을 참조하여 후술하기로 한다.
한편, 본 실시예에서는, 제1 변환부(110)에서 행방향의 변환이 먼저 수행된 후, 제2 변환부(120)에서 열방향의 변환이 수행되는 것으로 도시되었으나, 본 발명의 기술적 사상은 이에 제한되는 것은 아니다. 제1 변환부(110) 및 제2 변환부(120)에서의 데이터 변환 방향이 서로 다르다면, 변환되는 순서는 관계없으며, 열방향의 1차원 변환이 수행되고 이후에, 행방향의 1차원 변환이 수행될 수도 있다. 또한, 데이터 블록은 4x4 행열로 배열된 데이터 블록인 것을 예를 들어 설명하였으나, 이에 제한되는 것은 아니다. 데이터 블록은 다양한 행열구조를 갖을 수 있다.
도 2는 도 1의 제1 변환부의 일 구현예를 나타내는 블록도이다.
도 2를 참조하면 제1 변환부(110a)는 데이터 재배치부(10), 수평연산부(20) 및 합산부(30)를 포함할 수 있으며, 각 구성 요소(10, 20, 30)는 레지스터와 같은 하드웨어 구성 및 SIMD 명령어를 이용한 소프트웨어 알고리즘의 형태로 구현될 수 있다.
데이터 재배치부(110)는 데이터 블록(DBin)의 데이터를 레지스터에 재배치하며, 제1 배치부(11) 및 제2 배치부(12)를 포함할 수 있다.
제1 배치부(11)는 데이터 블록(DBin)의 각 행의 일부 데이터를 레지스터에 중복 배치하고, 제2 배치부(12)는 데이터 블록(DBin)의 각 행의 나머지 일부 데이터를 레지스터에 중복 배치한다. 예컨데, 4x4 IDCT 기반의 정수변환에서 데이터 블록(DB_in)에 대한 행방향의 변환의 경우, 제1 배치부(11)는 각 행의 홀수번째 열의 데이터, 즉, 제1 및 제3 열의 데이터를 레지스터에 중복하여 배치하고, 제2 배치부(12)는 각 행의 짝수번째 열의 데이터, 즉 제2 및 제4 열의 데이터를 레지스터에 중복하여 배치할 수 있다. 이때, 레지스터는 16개의 데이터가 배치되는 것이 바람직 할 수 있다. 예를 들어, 각각의 데이터는 2byte이고, 레지스터는 32byte, 즉 256bit의 용량을 갖을 수 있다.
수평연산부(20)는 레지스터에 배치된 데이터를 수평연산하며, 제1 연산부(21) 및 제2 연산부(22)를 포함할 수 있다.
제1 연산부(21)는 제1 배치부(11)에 의하여 레지스터에 배치된 데이터를 수평연산하여 제1 연산결과(R1)을 산출하고, 제2 연산부(22)는 제2 배치부(12)에 의하여 레지스터에 배치된 데이터를 수평연산하여 제2 연산결과(R2)를 산출할 수 있다.
한편, 제1 연산결과(R1)의 산출 및 제2 연산결과(R2)의 산출은 병렬적으로 또는 순차적으로 수행될 수 있다. 다시 말해, 데이터 재배치부(10)에서 제1 배치부(11) 및 제2 배치부(12)가 병렬적으로 동작하고, 수평연산부(20)의 제1 연산부(11) 및 제2 연산부(12)가 병렬적으로 동작할 수 있다. 또는 데이터 재배치부(10)의 제1 배치부(11) 및 수평연산부(20)의 제1 연산부(11)가 동작하여 제1 연산결과(R1)를 산출한 후 제2 배치부(12) 및 제2 연산부(12)가 동작하여 제2 연산결과(R2)를 산출할 수도 있다.
합산부(30)는 제1 연산결과(R1)과 제2 연산결과(R2)를 합산하여 행방향으로 1차원 변환된 데이터 블록(DB_cvt)을 출력할 수 있다.
한편, 도 2의 제1 변환부(110)의 구성, 즉 재배치부(10), 수평연산부(20) 및 합산부(30)는 도 1의 제2 변환부(120)에도 적용될 수 있다. 이때, 제2 변환부(120)는 입력되는 데이터 블록(DB_in)에 대하여 열방향의 변환을 수행하므로, 재배치부(10)의 제1 배치부(11)는 각 열의 홀수번째 행의 데이터, 즉, 각 열의 제1 및 제3 행의 데이터를 레지스터에 중복하여 배치하고, 제2 배치부(12)는 각 열의 짝수번째 행의 데이터, 즉 제2 및 제4 행의 데이터를 레지스터에 중복하여 배치할 수 있다.
데이터 블록(DB_in)의 데이터가 레지스터에 재배치된 이후의 변환과정은 제1 변환부(110)와 동일한바, 제2 변환부(120)의 수평연산부(20) 및 합산부(30)의 동작은 제1 변환부(110)와 동일할 수 있다.
이하, 도 3a 내지 도 4b를 참조하여, 행방향의 정수변환에 대하여 상세하게 설명하기로 한다. 도 3은 본 발명의 일 실시예에 따른 정수변환방법에서, 행방향의 정수변환의 일 구현예를 나타낸 흐름도이고, 도 4a 및 도 4b는 행방향의 정수변환에서 제1 연산결과 및 제2 연산결과를 산출하는 방법을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 데이터 블록의 각 행의 홀수번째 열의 데이터를 레지스터에 중복 배치한다(S110). 4x4 행열로 배열된 데이터 블록의 경우, 각 행의 제1 및 제3 열의 데이터가 레지스터에 중복 배치될 수 있다. 도 4a를 참조하면, 각각의 데이터는 2byte이고, 레지스터는(REG)는 256bit의 용량으로 16개의 데이터를 저장할 수 있다. 각 행의 제1 및 제3 열의 데이터(a0, a2, b0, b2, c0, c2, d0, d2)가 중복하여 배치될 수 있다. 이때, 도시된 바와 같이, 레지스터의 최상위 bit(255bit)부터 64bit 단위로 제1 행 내지 제4 행의 데이터가 순차적으로 중복하여 배치될 수 있다.
레지스터에 데이터가 배치되면, 데이터를 수평연산하여 제1 연산결과(R1)를 산출한다(S120). 제1 연산결과(R1)는 수학식 5에서 좌항 R1을 나타내며, 이러한 결과를 얻기 위하여 도 4a에 도시된 바와 같이, 부호변경, 수평합산 및 데이터 재배치 등이 수행될 수 있다.
이때, 수평연산은 SIMD 명령어에 의하여 64bit 단위로 동일하게 수행되므로, 레지스터의 상위 64bit에 배치된 데이터 블록의 제1 행(A)의 데이터(a0, a2, a0, a2)를 참조하여, 제1 연산결과(R1)를 산출하는 과정을 설명하기로 한다. 우선, 배치된 데이터들(a0, a2, a2, a0) 중 일부의 부호를 변경한다. 그리고, 부호가 변경된 데이터들(a0, a2, a0, -a2)에 대하여 수평덧셈을 수행한다. 이웃하는 두 데이터인 a0와 a2, 그리고 a0와 ?2가 더해진 합산 데이터(z0A, z1A)가 레지스터에 저장될 수 있다. 이후, 데이터 재배치를 통하여 상기 합산 데이터(z0A, z1A)를 중복 배치한다. 이에 따라 생성되는 데이터(z0A, z1A, z1A, z0A)는 제1 연산결과(R1)로서 출력된다.
다음으로, 데이터 블록의 각 행의 짝수번째 열의 데이터를 레지스터에 중복 배치한다(S130). 4x4 행열로 배열된 데이터 블록의 경우, 도 4b에 도시된 바와 같이, 각 행의 제2 및 제4 열의 데이터(a1, a3, b1, b3, c1, c3, d1, d3)가 레지스터에 중복 배치될 수 있다.
레지스터에 데이터가 배치되면, 배치된 데이터를 수평연산하여 제2 연산결과(R2)를 산출한다(S140). 제2 연산결과(R2)는 수학식 5에서 우항 R2를 나타내며, 이러한 결과를 얻기 위하여, 도 4b에 도시된 바와 같이, 수평곱합, 1bit 쉬프트 라이트, 데이터 재배치 및 부호변경이 수행될 수 있다.
레지스터의 상위 64bit에 배치된 데이터 블록의 제1 행(A)의 데이터(a1, a3, a1, a3)를 참조하여 좀더 구체적으로 설명하면 다음과 같다. 배치된 데이터(a1, a3, a1, a3)를 수평곱합하여 a1-2a3, 2a1+a3를 산출한다. 이때, 수평곱합이란, 데이터 각각에 미리 설정된 다른 데이터를 곱한후, 이웃하는 값들끼리 더하는 것을 의미한다. 예컨대, 다른 레지스터에 1, -2, 2, 1 값을 갖는 데이터가 저장되어 있고, 두 레지스터의 데이터 a1, a3, a1, a3와 1, -2, 2, 1을 각각 곱하여 a1, -2a3, 2a1, a3를 생성한 후, 이웃하는 두 데이터를 더하여 a1-2a3, 2a1+a3가 산출되어 저장될 수 있다. 다음으로, 수평곱합된 데이터(a1-2a4, 2a1+a3) 각각을 1bit 쉬프트 라이트하여 생성된 데이터(z2A, z3A, 여기서 A는 첫번째 행에 대한 데이터임을 나타낸다)가 레지스터에 저장될 수 있다. 다음으로, 데이터(z2A, z3A)를 중복 재배치하고, 재배치된 데이터(z3A, z2A, z2A, z3A)의 일부의 부호를 변경하여 생성되는 데이터(z3A, z2A, -z2A, -z3A)가 제2 연산결과(R2)로서 출력된다.
제1 연산결과(R1)와 제2 연산결과(R2)가 산출되면, 제1 연산결과(R1)와 제2 연산결과(R2)를 합산한다(S150). 합산결과 또한 NxN 행열의 데이터이며, 입력된 데이터 블록에 대하여 행방향으로 1차원 변환되어 생성되는 데이터 블록이다.
이하, 도 5 내지 도 6b를 참조하여, 열방향의 정수변환에 대하여 상세하게 설명하기로 한다. 도 5는 본 발명의 일 실시예에 따른 정수변환방법에서, 열방향의 정수변환의 일 구현예를 나타낸 흐름도이고, 도 6a 및 도 6b는 열방향의 정수변환에서 제1 연산결과 및 제2 연산결과를 산출하는 방법을 설명하기 위한 도면이다.
도 5에 도시된 바와 같이, 데이터 블록의 각 열의 짝수번째 행의 데이터를 레지스터에 중복 배치한다(S210). 4x4 행열로 배열된 데이터 블록의 경우, 각 열의 제1 및 제3 행의 데이터가 레지스터에 중복 배치될 수 있다. 이때, 도 6a에 도시된 바와 같이, 서로 다른 행의 데이터가 레지스터(REG)의 각 64bit에 배치되기 위하여 데이터의 재배치가 두 단계로 수행될 수 있다. 우선, 제1 행(A)의 데이터(a0, a1, a2, a3)와 제3 행(C)의 데이터(c0, c1, c2, c3)가 레지스터(REG)의 상위 및 하위 156bit에 중복 배치될 수 있다. 이를 위하여 64bit 단위의 데이터 재배치 명령어, 예를들어 인텔사의 AVX2에서 vpermq(64bit 단위의 데이터 재배치)가 사용될 수 있다. 이후, byte 단위의 데이터 재배치를 통하여 레지스터(REG)의 각 64bit에 제1 행(A)과 제3 행(C)의 데이터(a0, c0, a1, c1, a2, c2, a3, c3)가 연속하여 배치될 수 있다.
레지스터에 데이터가 배치되면, 데이터를 수평연산하여 제1 연산결과(R1)를 산출한다(S220). 도 6a에 도시된 바와 같이, 부호변경, 수평합산 및 데이터 재배치 등이 수행될 수 있다. 데이터가 레지스터(REG)에 배치된 이후의 수평연산단계는 행방향에 대한 정수변환과 열방향에 대한 정수변환이 동일하다. 따라서, 중복되는 설명은 생략하기로 한다.
다음으로, 데이터 블록의 각 열의 짝수번째 행의 데이터를 레지스터에 중복 배치한다(S230). 4x4 행열로 배열된 데이터 블록의 경우, 도 6b에 도시된 바와 같이, 각 열의 제2 및 제4 행의 데이터(b0, b1, b2, b3, d0, d1, d2, d3)가 레지스터(REG)에 중복하여 배치될 수 있다. 도 6a를 참조하여 설명한 바와 같이, 서로 다른 행의 데이터가 레지스터(REG)의 각 64bit에 배치되기 위하여 데이터의 재배치는 두 단계로 수행될 수 있다. 64bit 단위의 데이터 재배치를 통해, 제2 행(B)의 데이터(b0, b1, b2, b3) 및 제4 행(D)의 데이터(d0, d1, d2, d3)가 레지스터(REG)의 상위 및 하위 156bit에 중복 배치된 후, byte 단위의 데이터 재배치를 통하여 레지스터(REG)의 각 64bit에 제2 행(B)과 제4 행(D)의 데이터(b0, d0, b1, d1, b2, d2, b3, d3)가 연속하여 배치될 수 있다.
데이터가 재배치된 이후, 데이터를 수평연산하여 제2 연산결과(R2)를 산출한다(S230). 도 6b에 도시된 바와 같이, 수평곱합, 1bit 쉬프트 라이트, 데이터 재배치 및 부호변경이 수행될 수 있다. 이러한 연산은 도 4b에서 행방향의 정수변환에서 제2 연산결과를 산출하는 방법과 동일한 바, 중복되는 설명은 생략하기로 한다.
제1 연산결과(R1)와 제2 연산결과(R2)가 산출되면, 제1 연산결과(R1)와 제2 연산결과(R2)를 합산한다(S250). 합산결과 또한 NxN 행열의 데이터이며, 입력된 데이터 블록에 대하여 열방향으로 1차원 변환되어 생성되는 데이터 블록이다.
이상에서와 같이, 도 3 내지 도 4b를 참조하여 설명한 행방향의 정수변환은 도1의 제1 변환부(110)에서 수행되고, 도 5 내지 도 6b를 참조하여 설명한 열방향의 정수변환은 도 1의 제2 변환부(120)에서 수행될 수 있다.
상기 기술된 byte 단위의 데이터 재배치, 64bit 단위의 데이터 재배치, 수평덧셈, 수평곱합, 1bit 쉬프트 라이트 및 부호변경은 프로세서에서 제공되는 SIMD 명령어에 의하여 수행될 수 있다. 예를 들어, 인텔사의 AVX2 에서 vphaddw(수평덧셈), vpmaddwd(수평곱합), vpermq(64bit 단위의 데이터 재배치), vpshufb(byte 단위의 데이터 재배치), vpsravd(bit 단위의 쉬프트 라이트) 및 vpsignw(부호변경) 등과 같은 명령어가 사용될 수 있다. 또한, 레지스터(REG)는 바람직하게는 256bit 레지스터가 사용될 수 있다.
한편, 도 4a, 4b, 6a 및 도 6b에서는 H.264/AVC에 적용되는 IDCT 기반의 정수변환인 경우를 가정하여 데이터 재배치 및 수평연산이 설명되었으나, 본 발명의 기술적 사상은 이에 제한되는 것은 아니다. 변형된 실시를 통하여 DCT 기반의 정수변환 또는 다른 동영상 데이터의 압축 기법에서의 정수변환에도 적용될 수 있다.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.
100: 정수변환장치 110: 제1 변환부
120: 제2 변환부

Claims (12)

  1. NxN 행열(N은 2 이상의 정수)을 갖는 데이터 블록의 이산여현변환 또는 역이산여현변환을 수행하는 영상처리의 정수변환 방법에 있어서,
    상기 데이터 블록에 대하여 행방향으로 1차원 변환이 수행되는 1차 변환단계; 및
    상기 1차 변환된 데이터 블록에 대하여 열방향으로 상기 1차원 변환이 수행되는 2차 변환단계를 포함하고,
    상기 1차 변환단계는, 레지스터에 상기 데이터 블록의 데이터를 재배치하고, 재배치된 데이터의 수평연산에 기초하여 상기 1차원 변환이 수행되는 것을 특징으로 하는 영상처리의 정수변환 방법.
  2. 제1 항에 있어서, 상기 수평연산은
    프로세서에서 제공되는 SIMD(Single instructuin multi data)명령어에 의해 수행되는 것을 특징으로 하는 영상처리의 정수변환 방법.
  3. 제1 항에 있어서,
    상기 데이터의 재배치는 레지스터 내에서의 byte 단위의 데이터 재배치 또는 64bit 단위의 데이터 재배치를 포함하고,
    상기 수평연산은 수평덧셈 및 수평곱합, 부호변경 또는 데이터 쉬프트를 포함하는 것을 특징으로 하는 영상처리의 정수변환 방법.
  4. 제1 항에 있어서, 상기 1차 변환단계는,
    상기 데이터 블록의 각 행의 홀수번째 열의 데이터를 상기 레지스터에 중복하여 배치하는 단계;
    상기 레지스터에 배치된 데이터를 수평연산하여 제1 연산결과를 산출하는 단계;
    상기 데이터 블록의 각 행의 짝수번째 열의 데이터를 상기 레지스터에 중복하여 배치하는 단계;
    상기 레지스터에 배치된 데이터를 수평연산하여 제2 연산결과를 산출하는 단계; 및
    상기 제1 연산결과와 상기 제2 연산결과를 합산하는 단계를 포함하는 것을 특징으로 하는 영상처리의 정수변환 방법.
  5. 제1 항에 있어서, 상기 2차 변환단계는,
    상기 1차 변환된 데이터 블록의 데이터를 재배치하고, 재배치된 데이터의 수평연산에 기초하여 상기 1차원 변환이 수행되는 것을 특징으로 하는 영상처리의 정수변환 방법.
  6. 제5 항에 있어서, 상기 2차 변환단계는,
    상기 1차 변환된 데이터 블록의 각 열의 홀수번째 행의 데이터를 상기 레지스터에 중복하여 재배치하는 단계;
    상기 레지스터에 배치된 데이터를 수평연산하여 제1 연산결과를 산출하는 단계;
    상기 1차 변환된 데이터 블록의 각 열의 짝수번째 행의 데이터를 상기 레지스터에 중복하여 재배치하는 단계;
    상기 레지스터에 배치된 데이터를 수평연산하여 제2 연산결과를 산출하는 단계; 및
    상기 제1 연산결과와 상기 제2 연산결과를 합산하는 단계를 포함하는 것을 특징으로 하는 영상처리의 정수변환 방법.
  7. 제4 항 또는 제6 항에 있어서,
    상기 제1 연산결과를 산출하는 단계는,
    상기 레지스터에 배치된 데이터의 부호를 변경하는 단계;
    상기 부호 변경된 데이터를 수평합산하는 단계; 및
    상기 수평합산에 의하여 발생하는 데이터를 중복하여 재배치하는 단계를 포함하고,
    상기 제2 연산결과를 산출하는 단계는,
    상기 레지스터에 배치된 데이터를 수평곱합연산하는 단계; 및
    상기 수평곱합연산에 의하여 발생하는 데이터를 1 bit씩 오른쪽으로 이동시키는 단계;
    상기 1 bit씩 오른쪽으로 이동시킨 데이터를 중복하여 재배치하는 단계; 및
    상기 재배치된 데이터의 부호를 변경하는 단계를 포함하는 것을 특징으로 하는 영상처리의 정수변환 방법.
  8. 제1 항에 있어서,
    상기 N은 4이고, 상기 데이터 블록의 데이터 각각은 2byte이고, 상기 레지스터는 256bit인 것을 특징으로 하는 영상처리의 정수변환 방법.
  9. 제1 항에 있어서,
    상기 이산여현변환 또는 역이산여현변환은 H.264/AVC 코딩 또는 디코딩 단계에 포함되는 것을 특징으로 하는 영상처리의 정수변환 방법.
  10. NxN 행열(N은 2 이상의 정수)을 갖는 데이터 블록의 이산여현변환 또는 역이산여현변환을 수행하는 영상처리의 정수변환 장치에 있어서,
    상기 데이터 블록에 대하여 행방향으로 1차원 변환을 수행하는 제1 변환부; 및
    상기 제1 변환부로부터 수신되는 행방향으로 변환된 데이터 블록에 대하여 열방향으로 상기 1차원 변환을 수행하는 제2 변환부를 포함하고,
    상기 제1 변환부 및 상기 제2 변환부는, 입력되는 데이터 블록의 데이터를 레지스터에 재배치하고, 재배치된 데이터를 수평연산하여 상기 1차원 변환을 수행하는 것을 특징으로 하는 영상처리의 정수변환 장치.
  11. 제10 항에 있어서, 상기 수평연산은
    프로세서에서 제공되는 SIMD(Single instructuin multi data) 명령어에 의해 수행되는 것을 특징으로 하는 영상처리의 정수변환 장치.
  12. 제 10항에 있어서, 상기 제1 변환부 및 상기 제2 변환부는,
    상기 입력되는 데이터 블록의 데이터를 상기 레지스터에 재배치하는 데이터 재배치부;
    상기 재배치된 데이터를 수평 연산하여 제1 연산결과 및 제2 연산결과를 출력하는 수평연산부; 및
    상기 제1 연산결과 및 상기 제2 연산결과를 합산하는 합산부를 포함하는 영상처리의 정수변환 장치.
KR1020130067939A 2013-06-13 2013-06-13 영상처리의 정수변환 방법 및 정수변환 장치 KR101395143B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130067939A KR101395143B1 (ko) 2013-06-13 2013-06-13 영상처리의 정수변환 방법 및 정수변환 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130067939A KR101395143B1 (ko) 2013-06-13 2013-06-13 영상처리의 정수변환 방법 및 정수변환 장치

Publications (1)

Publication Number Publication Date
KR101395143B1 true KR101395143B1 (ko) 2014-05-21

Family

ID=50894136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130067939A KR101395143B1 (ko) 2013-06-13 2013-06-13 영상처리의 정수변환 방법 및 정수변환 장치

Country Status (1)

Country Link
KR (1) KR101395143B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101672539B1 (ko) * 2016-03-15 2016-11-04 이노뎁 주식회사 그래픽 처리 유닛 및 그 캐싱 방법
KR101699029B1 (ko) * 2015-08-07 2017-01-23 이노뎁 주식회사 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040014047A (ko) * 2002-08-09 2004-02-14 (주)씨앤에스 테크놀로지 이산여현변환 방법과 이를 이용한 영상압축방법
KR20060069254A (ko) * 2004-12-17 2006-06-21 마이크로소프트 코포레이션 손실 및 무손실 2차원 데이터 압축을 위한 가역 변환
WO2008005757A2 (en) 2006-06-26 2008-01-10 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040014047A (ko) * 2002-08-09 2004-02-14 (주)씨앤에스 테크놀로지 이산여현변환 방법과 이를 이용한 영상압축방법
KR20060069254A (ko) * 2004-12-17 2006-06-21 마이크로소프트 코포레이션 손실 및 무손실 2차원 데이터 압축을 위한 가역 변환
WO2008005757A2 (en) 2006-06-26 2008-01-10 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101699029B1 (ko) * 2015-08-07 2017-01-23 이노뎁 주식회사 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법
KR101672539B1 (ko) * 2016-03-15 2016-11-04 이노뎁 주식회사 그래픽 처리 유닛 및 그 캐싱 방법

Similar Documents

Publication Publication Date Title
JP4311759B2 (ja) データ変換装置及びその制御方法
CA2633897C (en) Transforms with common factors
US7129962B1 (en) Efficient video processing method and system
KR100944928B1 (ko) 버터플라이 프로세서를 이용하여 이산 코사인 변환을인코딩하고 계산하는 장치 및 방법
JP6357345B2 (ja) ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法
KR101395143B1 (ko) 영상처리의 정수변환 방법 및 정수변환 장치
KR101722215B1 (ko) 이산 여현 변환 장치 및 방법
KR101527103B1 (ko) 이산 코사인 변환 장치 및 방법
JP6555814B2 (ja) 直交変換処理装置、逆直交変換処理装置、符号化装置、復号装置、及びコンピュータプログラム
CN108184127A (zh) 一种可配置的多尺寸dct变换硬件复用架构
JPH10283343A (ja) データ処理方法
JP2009124353A (ja) データ変換装置及びその制御方法
KR20130137951A (ko) 초고해상도 영상 코덱을 위한 역변환 방법
JP4266512B2 (ja) データ処理装置
CN113286150B (zh) 用于视频编解码的变换编码硬件实现方法、装置及设备
KR20150100348A (ko) 동영상 코덱의 역변환 방법 및 그 장치
JP5546329B2 (ja) データ変換装置
Akkad et al. FPGA hardware architecture for stereoscopic image compression based on block matching, watermarking and hamming code
KR101383515B1 (ko) 영상의 역변환 장치
US9819951B2 (en) Image processing method, devices and system
KR101742765B1 (ko) 인터폴레이터 및 인터폴레이터 픽셀 생성 방법
CN104104965A (zh) 层次化图像和视频编解码器
CN112584157A (zh) 一种avs2反变换装置及方法
CN113962376A (zh) 基于混层级精度运算的稀疏神经网络处理器、方法
JP5588381B2 (ja) 直交変換処理装置、方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20170411

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180419

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190418

Year of fee payment: 6