KR100978391B1 - 이산여현변환/역이산여현변환 방법 및 장치 - Google Patents

이산여현변환/역이산여현변환 방법 및 장치 Download PDF

Info

Publication number
KR100978391B1
KR100978391B1 KR1020090002999A KR20090002999A KR100978391B1 KR 100978391 B1 KR100978391 B1 KR 100978391B1 KR 1020090002999 A KR1020090002999 A KR 1020090002999A KR 20090002999 A KR20090002999 A KR 20090002999A KR 100978391 B1 KR100978391 B1 KR 100978391B1
Authority
KR
South Korea
Prior art keywords
value
values
input
index
idct
Prior art date
Application number
KR1020090002999A
Other languages
English (en)
Other versions
KR20100083554A (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 KR1020090002999A priority Critical patent/KR100978391B1/ko
Publication of KR20100083554A publication Critical patent/KR20100083554A/ko
Application granted granted Critical
Publication of KR100978391B1 publication Critical patent/KR100978391B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

이산여현변환/역이산여현변환 방법 및 장치가 개시된다. 이산여현변환/역이산여현변환 방법은 입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하고, 가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함되도록 생성되어 미리 저장된 복수의 테이블 정보 중에서 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 읽어들인 후 이들을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산한다. 본 발명에 의해, 신속한 이산여현변환(DCT)/역이산여현변환(IDCT)이 가능하고 변환을 위한 에너지 소모량을 최소화할 수 있다.
DCT, IDCT, 이산여현변환, 역이산여현변환

Description

이산여현변환/역이산여현변환 방법 및 장치{Method and device for computing discrete cosine transform/inverse discrete cosine transform}
본 발명은 이산여현변환(DCT, Discrete Cosine Transform)/역이산여현변환(IDCT, Inverse Discrete Cosine Transform) 방법 및 장치에 관한 것이다.
현재의 통신 환경은 유무선 연동, 방송망과 통신망의 융합 등의 서비스를 가능하게 하는 광대역 통합망(BcN)이 사용되는 등 다양한 통신망이 융합되고 있으며, 이러한 추세는 더욱 가속화될 것이다.
다양한 통신망에서 디지털 융합(Digital Convergence)의 추세에 따라 범용 미디어 통신에 대한 많은 연구가 진행되고 있으며, 멀티미디어 단말기의 다양화에 따른 영상 이미지의 크기 변환 기법들도 다양하게 연구되고 있다.
이러한 영상 이미지의 크기 변환 기법들 중 이산여현변환(DCT)을 이용한 방법이 우수한 성능을 나타내고 있으며, MPEG-1, MPEG-2, MPEG-4, H.263 등의 동영상 코덱에서도 이산여현변환(DCT)이 이용되고 있어 호환성이 우수한 장점이 있다.
이산여현변환(DCT)은 입력된 아날로그 오리지널 영상을 수학적으로 정의된 이산여현변환 과정을 거쳐 저주파와 고주파의 주파수 성분으로 분해하는 변환기술이다.
이하, 종래기술에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 방식들에 관해 간략히 설명한다.
먼저, 종래기술에 따른 NxN 2D-DCT/IDCT의 수학적 정의를 설명한다. 하기 수학식 1은 역이산여현변환(IDCT)에 관한 수학적 정의를 나타내고, 하기 수학식 2는 이산여현변환(DCT)에 관한 수학적 정의를 나타낸다.
Figure 112009002405611-pat00001
여기서,
Figure 112009002405611-pat00002
Figure 112009002405611-pat00003
여기서,
Figure 112009002405611-pat00004
위 수학식들에서 x 및 y는 픽셀 도메인에서의 x좌표와 y좌표를 의미하며, f(x,y)는 샘플 도메인의 좌표 (x, y)에 해당하는 픽셀 값을 의미한다. u 및 v는 주파수 도메인에서의 u좌표 및 v좌표를 의미하며, F(u,v)는 DCT 도메인의 좌표 (u, v)에 해당하는 계수값을 의미한다. N은 사이즈를 의미하며, 예를 들어 N이 8인 경우 가로x세로 8x8이 되어 총 64개의 픽셀을 대상으로 IDCT/DCT를 수행하게 된다. 또한, C(u) 및 C(v)는 각각 스케일링 팩터(scaling factor)를 의미한다.
위 수학식 1을 이용하여 IDCT를 수행할 때, 이미지 또는 영상 압축 표준으로 많이 쓰이는 값인 N=8(즉, 8x8 블록)을 가정하면 필요한 연산량은 곱셈 연산 4096번, 덧셈 연산 4032번이 된다.
그러나, 이는 실제 시스템에서 사용하기에는 방대한 연산량이므로, 실제 구현에서는 상술한 수학식 1 및 2에 따른 수학적 정의에 의한 접근보다 행-열 분해법 (Row-Column Decomposition)을 이용한 IDCT/DCT가 주로 이용된다. 행-열 분해법에 의할 때, 행방향으로 열의 수만큼 1차 DCT/IDCT가 수행되고, 열방향으로 행의 수만큼 1차 IDCT/DCT가 수행된다. 따라서, 8x8 블록의 경우 행 방향으로 8번 수행되고, 열 방향으로 8번 수행되어 총 16번의 1차 DCT/IDCT가 수행된다.
도 1은 행-열 분해법(Row-Column Decomposition)에서 일반적으로 사용되는 첸(Chen)의 알고리즘을 나타낸 도면이다.
첸(Chen)의 알고리즘은 2D-DCT/IDCT를 수행하기 위해 행의 방향으로 열의 개수만큼 1차원 DCT/IDCT를 수행한 후, 열의 방향으로 행의 개수만큼 1차원 DCT/IDCT를 수행한다. 이와 같이, 행과 열의 방향으로 1차 DCT/IDCT를 모두 거친 값이 2차 원 DCT/IDCT 결과 값이 된다.
첸(Chen)의 알고리즘에 따를 때, N=8(즉, 8x8 블록)을 처리하기 위해 필요한 2D-DCT/IDCT 연산량은 곱셈 연산 256번, 덧셈 연산 416번으로, 상술한 수학적 정의에 의한 접근 방식보다 현저히 감소된다.
그러나, 이는 기존의 DCT/IDCT에 비해 연산량이 감소된 것일 뿐, DCT/IDCT 연산이 필요치 않는 입력값들이 여전히 연산에 포함된다는 문제점이 존재한다.
상술한 바와 같이, 종래의 이산여현변환(DCT)/역이산여현변환(IDCT) 방식들은 변환 과정에서 많은 연산량이 요구된다는 문제점이 있다. 이로 인하여, 시간 지연현상, 발열 현상이 변환 장치에서 야기되며, 또한 많은 에너지가 소모된다.
또한, 연산량을 감소시킨 것으로 인정되는 행-열 분해법(Row-Column Decomposition)의 경우에도, 버터플라이(butterfly) 구조를 이용하기 위해 연산이 필요하지 않는 입력값 '0(zero)'이 DCT/IDCT 계산에 포함된다는 문제점이 존재한다. 이로 인해, 불필요한 연산 복잡도가 증가되는 문제점이 발생된다.
본 발명은 이산여현변환(DCT)/역이산여현변환(IDCT) 방식이 적용되는 다양한 데이터 압축/복원 기술에 범용적으로 적용할 수 있는 이산여현변환/역이산여현변환 방법 및 장치를 제공하기 위한 것이다. 예를 들어, 본 발명은 JPEG 등의 이미지 코딩 기술, MPEG 시리즈와 H.26X 시리즈 등의 동영상 압축/복원 기술, MPEG 기술과 Dolby 기술 등의 음성 압축/복원 기술 등에 범용적으로 적용될 수 있다.
본 발명은 연산량 및 연산 복잡도를 최소화하여 신속한 변환이 가능하고, 에너지 소모량을 최소화함으로써 멀티미디어 압축 및 복원이 요구되는 휴대용 장치의 휴대성을 증진시킬 수 있는 이산여현변환/역이산여현변환 방법 및 장치를 제공하기 위한 것이다.
본 발명은 연산에 포함될 필요가 없는 입력값 '0(zero)'을 연산에 제외시킴으로써 신속한 변환이 가능한 이산여현변환/역이산여현변환 방법 및 장치를 제공하기 위한 것이다.
본 발명은 정확한 계산값을 미리 보유함으로써 많은 고속 DCT/IDCT 알고리즘에서 야기되는 미스매치(mis-match)에 의한 화질 열화가 야기되지 않는 이산여현변환/역이산여현변환 방법 및 장치를 제공하기 위한 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 연산장치가 이산여현변환(DCT) 및 역이산여현변환(IDCT) 중 하나 이상을 수행하는 방법 및/또는 그 방법을 수행하기 위한 프로그램이 기록된 기록매체가 제공된다.
본 발명의 일 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 방법은, 입력되는 입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해 서만 테이블 인덱스를 생성하는 단계; 가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함되도록 생성되어 미리 저장된 복수의 테이블 정보 중에서 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 읽어들이는 단계; 및 상기 읽어들인 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 단계를 포함할 수 있다.
상기 부분값들을 읽어들이는 단계는, 상기 테이블 정보에 상기 테이블 인덱스에 상응하는 부분값이 기재되어 있는지 여부를 판단하는 단계; 기재되어 있지 않은 경우, 상기 테이블 인덱스에 상응하는 곱셈 연산에 의해 부분값을 연산하여 상기 테이블 정보를 갱신하는 단계; 및 상기 갱신된 테이블 정보에서 상기 테이블 인덱스에 상응하는 부분값을 읽어들이는 단계를 포함할 수 있다.
상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정될 수 있다.
상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산될 수 있다.
Figure 112009002405611-pat00005
여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌 표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)일 수 있다.
본 발명의 다른 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 방법은, 입력 블록 내에 포함된 좌표별 입력값 중 0이 아닌 입력값의 개수를 인식하여 인식된 개수와 미리 지정된 기준값을 비교하는 단계; 및 행-열 분해법(Row-Column Decomposition) 및 테이블 기반 변환 방법 중에서 상기 0이 아닌 입력값의 개수가 상기 기준값 이하인 경우에만 상기 테이블 기반 변환 방법을 이용하는 단계를 포함할 수 있다. 여기서, 상기 테이블 기반 변환 방법은, 입력되는 입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하는 단계; 가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함되도록 생성되어 미리 저장된 복수의 테이블 정보 중에서 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 읽어들이는 단계; 및 상기 읽어들인 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 단계를 포함하여 실행될 수 있다.
상기 부분값들을 읽어들이는 단계는, 상기 테이블 정보에 상기 테이블 인덱스에 상응하는 부분값이 기재되어 있는지 여부를 판단하는 단계; 기재되어 있지 않은 경우, 상기 테이블 인덱스에 상응하는 곱셈 연산에 의해 부분값을 연산하여 상기 테이블 정보를 갱신하는 단계; 및 상기 갱신된 테이블 정보에서 상기 테이블 인덱스에 상응하는 부분값을 읽어들이는 단계를 포함할 수 있다.
0이 아닌 입력값의 수는 엔트로피 코딩(entropy coding) 과정에서의 레벨(level) 값의 개수를 참조하여 인식될 수 있다.
또한, MPEG-4 part10 AVC/H.264 코덱인 경우, 미리 계산되어 변수로 포함된 0이 아닌 입력값의 개수 정보를 이용하여 0이 아닌 입력값의 수가 인식될 수도 있다.
상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정될 수 있다.
상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산될 수 있다.
Figure 112009002405611-pat00006
여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)일 수 있다.
본 발명의 다른 측면에 따르면, 이산여현변환(DCT) 및 역이산여현변환(IDCT) 중 하나 이상을 수행하는 이산여현변환(DCT)/역이산여현변환(IDCT) 장치가 제공된다.
본 발명의 일 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 장치 는, 가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함된 복수의 테이블 정보를 저장하는 테이블 정보부; 입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하는 인덱스 계산부; 및 상기 복수의 테이블 정보에 포함되고 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 합산부를 포함할 수 있다.
상기 장치는 상기 부분값을 연산하여 하나 이상의 테이블 정보를 갱신하는 테이블 갱신부를 더 포함할 수 있다. 여기서, 상기 테이블 갱신부는 상기 생성된 테이블 인덱스에 의해 지정된 테이블 정보에 상응하는 부분값이 저장되어 있지 않은 경우 상기 인덱스 계산부 또는 상기 합산부의 요청에 따른 인덱스를 포함하도록 테이블 정보의 갱신을 수행할 수 있다.
상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정될 수 있다.
상기 장치는 입력 블록 내의 임의의 좌표에 대한 입력값이 0(zero)인지 여부를 판단하고, 입력값 0(zero)과 상응하는 좌표를 상기 합산부로 출력하는 판단부를 더 포함할 수 있다.
상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산될 수 있다.
Figure 112009002405611-pat00007
여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)일 수 있다.
상기 입력 블록 및 상기 출력 블록은 각각 NxN 크기를 가지고, 상기 N은 임의의 자연수일 수 있다.
본 발명의 다른 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 장치는, 행-열 분해법(Row-Column Decomposition)에 따른 이산여현변환(DCT)/역이산여현변환(IDCT)을 수행하는 행-열 분해 기반 연산부; 테이블 기반 이산여현변환(DCT)/역이산여현변환(IDCT)을 수행하는 테이블 기반 연산부; 및 입력 블록 내에 포함된 좌표별 입력값 중 0이 아닌 입력값의 개수를 인식하고, 인식된 개수와 미리 지정된 기준값을 비교하여 상기 행-열 분해 기반 연산부 또는 상기 테이블 기반 연산부에 의한 처리를 지시하는 방법 선택부를 포함할 수 있다. 여기서, 상기 테이블 기반 연산부는, 가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함된 복수의 테이블 정보를 저장하는 테이블 정보부; 입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하는 인덱스 계산부; 및 상기 복수의 테이블 정보에 포함되고 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 합산부를 포함할 수 있다.
상기 테이블 기반 연산부는, 상기 부분값을 연산하여 하나 이상의 테이블 정보를 갱신하는 테이블 갱신부를 더 포함할 수 있다. 여기서, 상기 테이블 갱신부는 상기 생성된 테이블 인덱스에 의해 지정된 테이블 정보에 상응하는 부분값이 저장되어 있지 않은 경우 상기 인덱스 계산부 또는 상기 합산부의 요청에 따른 인덱스를 포함하도록 테이블 정보의 갱신을 수행할 수 있다.
상기 방법 선택부는 0이 아닌 입력값의 개수가 상기 기준값 이하인 경우에만 상기 테이블 기반 연산부에 의한 처리를 지시할 수 있다.
상기 방법 선택부는 엔트로피 코딩(entropy coding) 과정에서의 레벨(level) 값의 개수를 참조하여 0이 아닌 입력값의 수를 인식할 수 있다.
MPEG-4 part10 AVC/H.264 코덱을 위한 상기 방법 선택부는 미리 계산되어 변수로 포함된 0이 아닌 입력값의 개수 정보를 이용하여 0이 아닌 입력값의 수를 인식할 수 있다.
상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정될 수 있다.
상기 장치는 입력 블록 내의 임의의 좌표에 대한 입력값이 0(zero)인지 여부를 판단하고, 입력값 0(zero)과 상응하는 좌표를 상기 합산부로 출력하는 판단부를 더 포함할 수 있다.
상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산될 수 있다.
Figure 112009002405611-pat00008
여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)일 수 있다.
본 발명은 이산여현변환(DCT)/역이산여현변환(IDCT) 방식이 적용되는 다양한 데이터 압축/복원 기술에 범용적으로 적용할 수 있는 효과가 있다. 예를 들어, 본 발명은 JPEG 등의 이미지 코딩 기술, MPEG 시리즈와 H.26X 시리즈 등의 동영상 압축/복원 기술, MPEG 기술과 Dolby 기술 등의 음성 압축/복원 기술 등에 범용적으로 적용될 수 있다.
본 발명은 연산량 및 연산 복잡도를 최소화하여 신속한 변환이 가능하고, 에너지 소모량을 최소화함으로써 멀티미디어 압축 및 복원이 요구되는 휴대용 장치의 휴대성을 증진시킬 수 있는 효과도 있다.
본 발명은 연산에 포함될 필요가 없는 입력값 '0(zero)'을 연산에 제외시킴 으로써 신속한 변환이 가능한 효과도 있다.
본 발명은 정확한 계산값을 미리 보유함으로써 많은 고속 DCT/IDCT 알고리즘에서 야기되는 미스매치(mis-match)에 의한 화질 열화가 야기되지 않는 효과도 있다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 또한, "/"의 기호는 "및"과 "또는"을 포함하는 것이고, 문장에서 어느 하나의 의미로 해석되는 것으로 이해되어야 한다.
이하, 본 발명의 실시예에 대해 관련 도면들을 참조하여 상세히 설명하기로 한다. 또한, 본 명세서에서는 역이산여현변환(IDCT) 또는 이산여현변환(DCT)을 중심으로 설명하지만, 이산여현변환(DCT) 또는 역이산여현변환(IDCT)의 경우를 포함하여 설명되는 것으로 해석되어야 한다.
도 2는 본 발명의 일 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 연산부의 구성을 나타낸 도면이다.
도 2를 참조하면, DCT/IDCT 연산부(200)는 입력값 선택부(210), 판단부(220), 인덱스 계산부(230), 합산부(240) 및 테이블 정보부(250)를 포함한다. 각 구성 요소는 하드웨어 구성으로 구현될 수도 있으며, 하나 이상의 구성 요소는 소프트웨어 알고리즘의 형태로 구현될 수도 있다.
이하에서 설명되는 바와 같이, DCT/IDCT 연산부(200)는 '0(zero)'의 입력값에 대해서는 DCT/IDCT 연산을 수행하지 않고, 곱셈 연산을 메모리 액세스 형태로 변경한 특징을 가진다. 따라서, 종래의 행-열 분해법(Row-Column Decomposition)에 따른 연산을 수행하는 DCT/IDCT 연산부와 구분하기 위해 본 명세서에서 테이블 기 반 연산부(200)라 칭해질 수도 있다.
입력값 선택부(210)는 테이블 기반 연산부(200)로 입력되는 입력값을 입력받아 판단부(220)로 입력한다. 여기서, 입력값 선택부(210)는 NxN 블록 내의 위치에 따른 출력값의 좌표를 참조하여 해당 입력값이 판단부(220)로 입력되도록 할 것인지 합산부(240)로 입력되도록 할 것인지를 결정하여 처리할 수도 있다. 예를 들어, 8x8 블록에서 출력값의 좌표가 (0,0)인 F(0,0)인 경우 가중치(수학식 3 참조)가 1이라면 별도의 테이블 인덱스 생성이 불필요하므로, 입력값 선택부(210)는 입력된 입력값들 자체(즉, 입력된 픽셀 도메인의 NxN 블록 픽셀값들)를 합산부(240)로 바로 출력할 수도 있다. 물론, 출력 값의 좌표가 (0,0) 이외인 경우라면 해당 입력값들을 판단부(220)로 출력할 것이다.
여기서, 입력값 선택부(210)로 입력되는 입력값은 이산여현변환(DCT)이 수행되는지, 역이산여현변환(IDCT)이 수행되는지 여부에 따라 상이할 수 있다. 예를 들어, 이산여현변환(DCT)이 수행되기 위한 입력값은 픽셀 도메인의 픽셀 값일 수 있고, 출력 값은 주파수 도메인의 DCT 계수값일 수 있다. 이에 비해, 역이산여현변환(IDCT)이 수행되기 위한 입력값은 주파수 도메인의 DCT 계수 값일 수 있고, 출력 값은 픽셀 도메인의 픽셀 값일 수 있다.
판단부(220)는 입력값 선택부(210)로부터 입력되는 입력값(예를 들어, 픽셀값)을 참조하여 DCT/IDCT 연산 과정에 포함되어야 하는지를 판단한다. 예를 들어, 판단부(220)는 '0(zero)'의 입력값에 대해서는 DCT/IDCT 연산을 수행하지 않는 것으로 판단하고, 입력값(즉, 0)을 합산부(240)로 출력할 수 있다. 이는, 이하의 수 학식 3에서 보여지는 바와 같이 입력값이 '0(zero)'인 경우 가중치에 관계없이 부분값(즉, 가중치와 입력값의 곱셈 연산 결과값)이 0으로 연산되기 때문이다.
인덱스 계산부(230)는 판단부(220)에 의해 DCT/IDCT 연산 과정에 포함하는 것으로 판단된 경우, 테이블 인덱스를 계산한다.
합산부(240)는 인덱스 계산부(230)에 의해 계산된 테이블 인덱스에 대한 부분값을 테이블 정보부(250)로부터 추출하거나 제공받아 합산한 후 합산 결과값을 출력한다. 합산부(240)는 NxN 블록에서의 출력값의 좌표에 대한 합산 결과값을 각각 출력할 수 있다.
테이블 정보부(250)는 DCT/IDCT 연산 과정 중의 모든 입력값 범위에 해당하는 부분값을 저장한다. 테이블 정보부(250)에 저장되는 부분값들이 입력값을 기준으로 출력되는 블록의 좌표값에 대응되도록 나열된 2차원 디자인 구조의 테이블이 도 6에 예시되어 있다. 즉, 도 6에는 610을 기준으로 생성된 테이블이 예시되어 있다. 상술한 바와 같이, 부분값은 입력값과 NxN 블록에서의 출력값의 좌표에 의해 그 값이 일정하게 결정되는 가중치의 곱셈 연산에 의해 결정된다.
그러나, 부분값들의 저장 형태는 도 6의 예시에 의해 제한되지 않는다. 이에 대해서는 도 6을 참조하여 설명한다. 즉, 부분값들의 저장 형태는 1차원 디자인 구조의 테이블, 3차원 디자인 구조의 테이블 등으로 디자인 구조에 따라 다양할 수 있다. 예를 들어, 테이블 정보부(250)에 1차원 디자인 구조의 테이블로 저장될 때 예시된 도 6의 620 단위로 각각 저장될 수도 있다.
또한, 테이블 정보부(250)에 3차원 디자인 구조의 테이블로 저장될 때 예시 된 도 6의 610들이 하나의 테이블로 통합되어 저장될 수도 있다.
이하, 테이블 기반 연산부(200)에 의해 수행되는 테이블 기반 DCT/IDCT(Table based DCT/IDCT)에 대해 설명하기로 한다.
테이블 기반 DCT/IDCT는 종래기술에 따른 DCT/IDCT 연산 과정에서 연산량을 감소시키기 위한 행-열 분해법과는 달리 일반적으로 사용되지 않았던 DCT/IDCT 수학적 정의로부터 접근된 DCT/IDCT 연산 방법이다. 이하에서, 테이블 기반 DCT/IDCT를 설명함에 있어 역이산여현변환(IDCT)을 중심으로 설명하지만, 동일한 기술적 사상이 이산여현변환(DCT)에도 동일하게 적용될 수 있다.
앞서 설명한 수학식 1은 역이산여현변환(IDCT)에 관한 수학적 정의를 나타낸 것이다. 수학식 1에서 보여지는 바와 같이, 해당 수식에서 곱셈과 덧셈 연산이 함께 요구되고 있다. 다만, 입력 계수의 값 F(u,v)와 관계없이, 출력값인 각 픽셀 값(x,y)를 구하기 위해 2/N, C(u), C(v) 및
Figure 112009002405611-pat00009
에 대해서는 동일한 연산 과정이 수행되고 또한 각 픽셀값의 좌표 (x,y)에 의해 결정되는 일정한 값들이 사용됨을 확인할 수 있다. 하기 수학식 3은 이와 같은 IDCT의 성격을 반영하여 IDCT 수식을 변형한 것이다.
Figure 112009002405611-pat00010
여기서,
Figure 112009002405611-pat00011
Figure 112009002405611-pat00012
수학식 3은 IDCT를 거친 픽셀값 f(x,y)를 구하기 위해 동일한 값을 거치는 부분과 입력값으로 작용하는 F(u,v)로 나누어 표시한 것이다.
함수 A(x,y,u,v)는 수학식 3에 정의된 바와 같이 곱셈 연산을 묶은 함수(또는, 기하학적 의미로서 변환(transform)을 위한 기저함수)로서, (x,y,u,v)의 값이 동일하다면 픽셀 또는 입력 계수값에 무관하게 동일한 값으로 연산되는 함수이며, 그 결과값은 가중치라 명칭될 수 있다. 그리고, F(u,v)의 값은 [-2n+3, 2n+3-1]의 범위를 가지는 값으로, 여기서 n은 하나의 픽셀값을 나타내기 위해 필요한 비트수를 의미한다. 예를 들어, 하나의 픽셀값을 표현하기 위해 8비트가 사용된다고 가정하면 픽셀값 범위는 0 ~ 255가 되고, 이때 DCT 계수의 범위는 (-211, 211-1)인 -2048 ~ 2047이 된다. 따라서, 테이블 정보부(250)에 저장되는 부분값은 인덱스(즉, 입력값 이 될 수 있는 범위 내의 임의의 값들)와 출력값 좌표에 따른 가중치가 각각 곱셈 연산된 값이며, 인덱스(index)는 범위 내의 각 값들이 각 테이블(예를 들어, 도 6에 예시된 F(0,1) 테이블) 내의 구분자로 지정된 것이라 할 수 있다.
따라서, 본 발명의 실시예에 따른 테이블 기반 IDCT는 모든 x,y,u,v에 대하여 가중치인 A(x,y,u,v)와 입력값인 F(u,v)가 곱셈 연산된 부분값들을 테이블 등의 형태로 미리 테이블 저장부(250)에 저장함으로써, IDCT 연산을 위해 필요한 곱셈 연산을 메모리 액세스로 대체하기 위한 것이다.
하기 수학식 4는 테이블 기반 IDCT를 테이블을 이용하여 만든 IDCT 수학식이다.
Figure 112009002405611-pat00013
여기서, index()는 x, y, F(u,v) 3개의 입력값에 따른 인덱스를 계산하는 함수를 의미한다. 즉, 계산된 테이블 인덱스를 이용하여 테이블 정보부(250)에 접근된다. Table(a)는 테이블 정보부(250)에 저장된 부분값들 중 a 인덱스에 상응하도록 저장된 부분값을 출력하는 함수이다. 다만, 함수 index() 및 Table()의 디자인은 구현 방식에 따라 다양할 수 있다.
상술한 수학식 4에 의해 모든 곱셈 연산이 메모리 액세스 형태로 변경되어졌음을 확인할 수 있고, 따라서 IDCT를 위해 필요한 총 연산량은 N2개의 덧셈 연산이 된다.
앞서 설명한 바와 같이, 상술한 수학식 3을 참조할 때, 입력값 F(u,v) 또는 DCT 연산의 경우 f(x,y)가 0이라면 부분 계산값이 0이 되며, 결과적으로 입력값 F(u,v)가 0인 경우라면 덧셈 연산이 불필요하다는 결론을 도출할 수 있다. 이를 바탕으로 테이블 인덱스 및 테이블 정보부(250)에 저장되는 부분값들의 집합(예를 들어, 테이블)을 디자인하면 IDCT 연산량을 덧셈 연산 N2개보다 추가적으로 감소시킬 수 있게 된다.
상술한 바와 같이 입력 값 F(u,v)가 0일 경우를 고려한 테이블 기반의 IDCT에 대한 수학식은 하기 수학식 5로 표현될 수 있다.
Figure 112009002405611-pat00014
여기서,
Figure 112009002405611-pat00015
이며, 집합 Axy는 x,y,F(u,v)에 해당하는 테이블 인덱스를 모아놓은 집합이다.
즉, 수학식 5는 입력값이 0(zero)일 경우 테이블 인덱스에 대한 연산은 생략됨을 나타내며, 실제 연산이 NxN에 대해 이루어지지 않으므로 실제 연산에 참가 하는 F(u,v)에 대한 개수를 고려한 테이블 디자인이다. 집합 Axy는 IDCT과정에서 하나의 픽셀값 (x,y)를 결정하기 위해 필요한 NxN개의 F(u,v) 값 중 0이 아닌 F(u,v)의 값을 확인하여, 각 F(u,v)의 값에 해당하는 인덱스들의 모임을 의미한다.
따라서 Axy의 원소를 테이블 인덱스로 하여 추출된 부분값들을 합산부(240)가 모두 덧셈 연산함으로써 IDCT과정이 완료되는 것이다.
상술한 설명 내용에 따라 테이블 기반 DCT에 관한 수학식은 상술한 수학식 5와 유사한 형태로 하기 수학식 6과 같이 표현될 수도 있다.
Figure 112009002405611-pat00016
여기서,
Figure 112009002405611-pat00017
이며, 집합 Bxy는 u,v,f(x,y)에 해당하는 테이블 인덱스를 모아놓은 집합이다.
상술한 바와 같이, 본 발명의 실시예에 따른 테이블 기반 DCT/IDCT는 종래 기술에 따른 DCT/IDCT에 대해, 곱셈 연산을 필요로 하지 않아 곱셈 연산 복잡도가 제거되고, 입력값이 0(zero)인 경우 연산을 생략함으로써 연산 복잡도가 최소화되며, 미리 정확한 계산값을 가지고 있으므로 화질열화 현상이 발생하지 않는 등의 차별적 특징을 가진다.
또한, 상술한 테이블 기반 DCT/IDCT은 DCT/IDCT 과정에 독립적으로 수행될 수도 있으나, 이하에서 설명되는 바와 같이 종래기술에 따른 행-열 분해법과 병행하여 이용될 수도 있다. 후자와 같이 테이블 기반 DCT/IDCT 연산과 행-열 분해법을 병행하여 선택적으로 이용하는 DCT/IDCT 연산부(300)의 경우, 본 명세서에서 구분을 위해 하이브리드(Hybrid) 테이블 기반 연산부라 칭해질 수도 있다.
도 3은 본 발명의 다른 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 연산부의 구성을 나타낸 도면이고, 도 4는 본 발명의 다른 실시예에 따른 하이브리드 테이블 기반 연산 방법과 행-열 분해법간의 연산 복잡도 비교 그래프이다.
도 3을 참조하면, 하이브리드 테이블 기반 연산부(300)는 방법 선택부(310), 행-열 분해 기반 연산부(320) 및 테이블 기반 연산부(200)를 포함한다. 각 구성 요소는 하드웨어 구성으로 구현될 수도 있으며, 하나 이상의 구성 요소는 소프트웨어 알고리즘의 형태로 구현될 수도 있다.
방법 선택부(310)는 하이브리드 테이블 기반 DCT/IDCT 연산을 위해 DCT/IDCT 입력 값 중 0(zero)이 아닌 입력값의 개수를 산출하고, 0이 아닌 입력값의 개수가 기준값 이하인 경우에는 테이블 기반 연산부(200)가 DCT/IDCT 연산을 수행하도록 하고, 0이 아닌 입력값의 개수가 기준값 초과(즉, 0인 입력값의 개수가 기준값보다 작은 경우)인 경우에는 행-열 분해 기반 연산부(320)가 DCT/IDCT 연산을 수행하도록 한다.
방법 선택부(310)가 0이 아닌 입력값의 개수(또는 0인 입력값의 개수)를 산출하는 방법은 다양하게 구현될 수 있다. 방법 선택부(310)는 0이 아닌 입력값의 개수 및 0인 입력값의 개수 중 어느 하나를 인식하기만 하면 다른 하나에 대해서도 인식할 수 있음은 자명하다. 0인 입력값의 개수를 산출하는 방법은 예를 들어, MPEG-4 part2 SP의 경우, IDCT과정 이전에 엔트로피(entropy) 코딩이 수행된다. 엔트로피 코딩 과정에서 0이 아닌 값을 대상으로 entropy 디코딩이 수행되며, 이때 해당 과정이 수행되는 횟수를 카운트함으로써 0이 아닌 입력값의 개수를 산출할 수 있다. 또한, MPEG-4 part10 AVC/H.264 코덱의 경우 0이 아닌 입력값의 개수가 이미 계산되어 특정 변수로 포함되어 있으므로 해당 값을 이용하여 0인 입력값의 개수를 산출할 수도 있다. 이외에도, 0인 입력값의 개수를 산출하는 구체적인 방법은 코덱별 또는 설계 기준별 등의 조건에 따라 다양하게 구현될 수 있을 것이다.
여기서, 도 4에 예시된 바와 같이 기준값(430)은 0(zero)이 아닌 입력값의 개수에 따라 행-열 분해법에 따른 연산 복잡도 그래프(410)와 테이블 기반 DCT/IDCT 연산에 따른 연산 복잡도 그래프(420)간의 교점으로 지정될 수 있다. 도 4에서 가로축(x축)은 입력값 중 0인 아닌 입력값의 개수를 나타내고, 세로축(y축)은 테이블 기반 DCT/IDCT 1개의 덧셈 연산에 대한 연산 복잡도의 상대적 비율을 나타낸다. 테이블 기반 DCT/IDCT는 입력값 중 0이 아닌 값의 개수만큼 DCT/IDCT 과정에 포함되는 입력값이 증가하므로 선형적인 연산 복잡도를 나타내며, 행-열 분해법은 전체 연산량이 작은 편이나, 입력값에 상관없이 동일한 연산 복잡도를 나타낸다.
따라서, 0인 아닌 입력값의 개수를 이용하여 경계(Threshold)인 기준값(430)을 설정한 후, 기준값(430) 이하인 범위에서는 테이블 기반 DCT/IDCT를 적용하고, 기준값(430) 초과인 경우 행-열 분해법을 적용하도록 함으로써, 다양한 방식의 조화를 통한 연산 복잡도상의 최대 이득이 기대된다.
물론, 기준값은 각 DCT/IDCT 연산의 처리 효율을 통계적으로 비교 검토하여 최선으로 결정된 임의의 값으로 지정될 수도 있다.
또한, 도 3에는 행-열 분해 기반 연산부(320) 및 테이블 기반 연산부(200) 중 어느 하나가 선택적으로 DCT/IDCT 연산을 수행하는 것으로 예시되었으나, 행-열 분해 기반 연산부(320)가 종래기술에 따른 다른 DCT/IDCT 연산 방법으로 대체되거나, 다른 DCT/IDCT 연산 방법이 추가적으로 포함될 수도 있다.
종래 기술에 따른 행-열 분해법에 따른 연산을 수행하는 행-열 분해 기반 연산부(320)의 기능 및 구성은 당업자에게 자명한 사항이므로 이에 대한 설명은 생략한다. 또한, 테이블 기반 연산부(200)의 기능 및 구성은 앞서 도 2를 참조하여 이미 설명하였으므로 이에 대한 설명은 생략한다.
도 5는 본 발명의 일 실시예에 따른 하이브리드 테이블 기반 연산부의 DCT/IDCT 연산 과정을 나타낸 순서도이고, 도 6은 본 발명의 일 실시예에 따른 IDCT 연산을 위한 룩업 테이블의 예시도이다.
도 3을 참조하여 설명한 바와 같이, 하이브리드 테이블 기반 연산부(300)는 계산 복잡도를 좀 더 효율적으로 낮추기 위해 테이블 기반 DCT/IDCT와 행-열 분해 법을 함께 사용할 수 있다.
도 4에 예시된 바와 같이, 테이블 기반 DCT/IDCT는 0(zero)의 입력값이 많을 경우 해당 입력값을 DCT/IDCT 과정에 포함시키지 않음으로써 계산 복잡도상의 큰 이득을 얻을 수 있다. 그러나, 입력 계수값 중 0의 값이 적을 경우 종래기술에 따른 DCT/IDCT 정의와 비교하여 계산 복잡도상의 큰 이득을 얻기 힘들 수 있다. 따라서, 하이브리드 테이블 기반 연산부(300)는 0의 입력값의 개수에 상관없이 일정한 연산 복잡도를 나타내는 행-열 분해법과 0의 입력값이 많을 경우 우수한 성능을 나타내는 테이블 기반 DCT/IDCT를 함께 또는 선택적으로 사용한다.
상술한 하이브리드 테이블 기반 연산부(300)의 처리 개념에 따른 DCT/IDCT는 하기 수학식 7로 표현될 수 있다. 참고로, 수학식 7은 IDCT에 관한 수학식이고, 수학식 8은 DCT에 관한 수학식이다.
Figure 112009002405611-pat00018
여기서,
Figure 112009002405611-pat00019
이며, 집합 Bb(x,y)는 행-열 분해법에 따른 IDCT 연산을 의미한다. 행-열 분해법에 따른 IDCT 연산 방법은 첸(Chen) 알고리즘일 수 있다.
Figure 112009002405611-pat00020
여기서,
Figure 112009002405611-pat00021
이며, 집합 Bf(u,v)는 행-열 분해법에 따른 DCT 연산을 의미한다. 행-열 분해법에 따른 DCT 연산 방법은 첸(Chen) 알고리즘일 수 있다.
도 5를 참조하면, 단계 510에서 방법 선택부(310)는 DCT/IDCT를 수행할 방법을 선택하기 위해 0(zero)이 아닌 입력값의 개수(또는 0(zero)인 입력값의 개수)를 계산하고, 단계 520에서 0이 아닌 입력값의 개수가 기준값 이하인지를 판단한다. 여기서, 0인 입력값의 개수를 이용하여 0이 아닌 입력값의 개수가 계산되어 기준값과 비교될 수도 있다. 즉, 실제적인 DCT/IDCT 과정의 수행 이전에 0이 아닌 입력 계수값의 개수를 계산하고, 계산된 0이 아닌 입력 계수값의 개수가 미리 지정된 기준값 이하인지 여부를 확인함으로써 DCT/IDCT를 수행할 어느 하나의 방법을 선택할 수 있다.
만일, 0인 입력값 개수가 기준값 이상(또는 0이 아닌 입력값 개수가 기준값 이하)인 경우, 단계 530에서 판단부(220)는 현재 입력된 k번째 입력값(예를 들어, 입력되는 NxN 블록 내의 특정 좌표에서의 픽셀값)이 0인지를 판단한다.
만일 k(임의의 자연수)번째 입력된 입력값이 0이라면 연산에서 제외하기 위해 단계 560으로 진행한다. 그러나, k번째 입력된 입력값이 0이 아니라면 단계 540으로 진행하여 인덱스 계산부(230)는 현재 입력된 입력값에 상응하는 부분값이 테이블 정보부(240)에서 추출될 수 있도록 테이블 인덱스를 계산한다. 다만, 앞서 설명한 바와 같이, 출력되는 NxN 블록에서 출력값의 좌표가 (0,0)인 F(0,0)인 경우 미리 계산된 가중치가 1이라면 별도의 테이블 인덱스 생성이 불필요하므로, 입력값 선택부(210)는 입력된 입력값들 자체(즉, 입력된 픽셀 도메인의 NxN 블록 픽셀값들)를 합산부(240)로 바로 출력할 수도 있다.
단계 550에서 합산부(240)는 인덱스 계산부(230)에서 계산된 테이블 인덱스에 상응하는 부분값을 테이블 정보부(240)에서 추출한 후 이전에 합산된 합산값과 합산한다. 만일, 단계 530의 판단에 의해 해당 입력값이 첫 번째 입력된 입력값인 경우 이전에 부분값의 합산이 없었으므로 합산값은 0일 것이다.
단계 560에서 판단부(220)는 출력될 NxN 블록의 특정 좌표에 대한 결과값을 출력하기 위해 모든 입력값에 대해 DCT/IDCT 연산이 완료되었는지 판단한다.
만일, 모든 입력값에 대해 DCT/IDCT 연산이 이루어지지 않았다면 k에서 1증가된 k+1, 즉 k+1번째 입력되는 입력값에 대한 부분값의 합산이 이루어지도록 단계 530 내지 단계 560을 다시 수행한다.
그러나, 만일 모든 입력값에 대해 DC/IDCT 연산이 이루어졌다면 단계 580으로 진행하여 결과값을 출력한다. 여기서 테이블 기반 연산이 이루어진 경우 그 결과값은 0이 아닌 모든 입력값들에 대해 추출된 부분값들이 합산된 값일 것이다.
부분값들의 합산은 각 입력값들에 대해 순차적으로 합산되어질 수도 있으며, 각 입력값들에 대한 부분값들이 모두 추출된 후 한꺼번에 합산될 수도 있다.
또한, 상술한 단계 530 내지 단계 580은 출력될 NxN 블록의 모든 좌표에 대한 결과값이 출력될 때까지 반복될 것이다. 만일, 합산부(240)가 각 테이블들에서 상응하는 인덱스에 해당하는 64개의 부분값들을 모두 불러들인 후 출력될 NxN 블록의 각 좌표에 해당하는 결과값을 연산하는 구조로 구현된다면 단계 530 내지 단계 580은 최대 N회만 반복되도록 할 수 있다.
이하, 도 6에 예시된 룩업 테이블을 참조하여 부분값 합산 과정을 설명한다.
도 6에 예시된 룩업 테이블은 발생 가능한 모든 입력값의 범위(예를 들어, N=8인 경우 -2048부터 2047까지)의 값을 인덱스(index)로 포함하고, 도 3의 수학식에 따라 계산된 각 인덱스에 해당하는 부분값을 포함한다.
도 6에는 F(0,1) 테이블만이 예시되었으나, 룩업 테이블은 N=8인 경우 F(0,0)부터 F(7,7)까지의 2차원 테이블로 구성될 수 있고, 각 테이블의 인덱스 값은 범위 내의 각 입력값과 동일하고, 하나의 인덱스에 대해 64개(N이 8인 경우)의 부분값이 저장된다. 각 부분값은 각 픽셀(pixel) 값을 구하기 위한 요소를 의미한다. 여기서, F(0,0)의 경우 테이블로 구성할 수도 있으나, 수학식 3 및 도 6의 예시에 의할 때 모두 동일한 가중치를 가지게 되므로 테이블로의 구성을 생략할 수도 있다.
예를 들어 F(0,1)에 -47라는 입력값이 입력되었다고 가정하면, 인덱스 -47에 해당하는 부분값들을 F(0,1) 테이블의 인덱스 값에 찾아 f(0,0)부터 f(7,7)에 해당하는 64개의 부분값 중 필요한 부분값을 추출한다. 이후, F(0,2)에서 111이 입력값으로 입력되면 동일하게 F(0,2) 테이블에서 인덱스 111에 해당하는 64개의 부분 값 중 필요한 부분값을 추출한다. 만약 F(0,3)에 0이라는 입력값이 입력되면, 테이블 정보부(250)로의 접근 없이 다음 계수로 넘어간다. 동일한 과정이 F(7,7)까지 반복되며, 각 해당 부분값을 모두 더하면 IDCT를 거친 f(0,0)부터 f(7,7)까지의 픽셀값이 완성된다. 여기서, 합산부(240)가 각 테이블들에서 상응하는 인덱스에 해당하는 64개의 부분값들을 모두 불러들인 후 f(0,0)부터 f(7,7)까지의 픽셀값을 완성하기 위해 필요한 값들을 개별적으로 연산하는 구조로 구현된다면 최대 64번의 메모리 액세스 및 덧셈 연산만으로 출력될 NxN 블록의 각 좌표에 해당하는 결과값을 연산하여 출력할 수 있다.
다시 도 5의 단계 520을 참조하여, 0이 아닌 입력값 개수가 기준값을 초과하는 경우라면 단계 590으로 진행하여 행-열 분해법에 따른 DCT/IDCT 연산이 수행되고, 연산에 따른 결과값이 단계 580에서 출력된다.
상술한 바와 같이, 하이브리드 테이블 기반 연산부(300)는 행-열 분해법을 사용하는 모든 DCT/IDCT 연산과 연동성을 가지는 장점뿐 아니라 테이블 기반 DCT/IDCT를 효율적으로 부가할 수 있어 DCT/IDCT 연산 과정의 연산 복잡도틀 크게 감소시키는 장점도 있다.
이하, 행-열 분해법에서 가장 일반적으로 사용되는 첸(Chen)의 알고리즘과 본 발명의 실시예들로 제시한 테이블 기반 IDCT 및 하이브리드 테이블 기반 IDCT를 각각 디코더(Decoder)에 적용시켜 측정 비교한 시간 복잡도 실험에 관하여 설명한다.
일반적으로 IDCT 성능을 평가하기 위해서 연산 복잡도(operation complexity)가 많이 사용되지만, 이하에서는 알고리즘 특성상 시퀀스(Sequence), 양자 파라미터(QP, Quantization Parameter)에 따라 연산 복잡도가 달라지므로 시간 복잡도를 이용하여 상호간의 알고리즘 성능을 평가하기로 한다. 이는, DCT 모듈에 대해서도 동일하게 적용될 수 있다.
MPEG-4 Simple profile에서 시간 복잡도 실험을 위한 각각의 IDCT 디자인은 하기와 같다.
MPEG-4 Simple profile의 디코더(Decoder)에서는 첸(Chen)의 알고리즘이 IDCT 기술로 쓰이고 있기 때문에 본 실험에서는 MPEG-4 SP reference S/W에서 사용하는 IDCT모듈을 사용한다.
MPEG-4 Simple profile의 테이블 기반 IDCT를 위해 테이블 정보부(250)에 저장되는 룩업 테이블(look-up table)의 구성은 앞서 설명한 도 6과 같이 구성할 수 있다.
MPEG-4 Simple profile의 하이브리드 테이블 기반 IDCT를 구성하기 위해 8x8 블록에서 0의 값이 아닌 계수의 개수의 정보가 필요하다. 이 정보를 얻기 위해, 앞서 설명한 바와 같이 IDCT 과정 이전인 엔트로피(Entropy) 과정에서 레벨(Level) 값의 개수를 세어 0의 값이 아닌 계수 개수의 정보를 획득하도록 구성하였다. 또한, 0의 값이 아닌 계수 개수와 비교하기 위한 임계값(Threshold)이 필요하며, 실 험을 위해 구현한 S/W에서 CIF 시퀀스의 경우 임계값이 12일 경우 가장 좋은 성능을 나타내었으므로 기준값을 12로 지정하였다. 물론, 기준값은 테이블 기반 IDCT를 어떻게 구현하느냐에 따라 상이해질 수 있다.
상술한 바와 같이, CIF 시퀀스의 경우 0의 값이 아닌 계수 개수가 12개 미만일 때는 테이블 기반 IDCT를 이용하고, 그렇지 않은 경우에는 종래기술에 따른 첸(Chen) 알고리즘을 이용한 행-열 분해법 IDCT를 이용하도록 MPEG-4 Simple Profile 디코더를 구성하였다.
상술한 IDCT 디자인에 따른 시간 복잡도 실험의 결과는 다음과 같다. 참고로, 실험은 CIF영상과 HD 시퀀스영상을 대상으로 하였으며, CIF 영상의 실험 조건은 아래 표 1과 같다.
표 1
시퀀스 akiyo(352x288, 300frame), foreman(352x288, 300frame),
mobile(352x288, 300frame), Stefan(352X240, 240frame)
Quantize
step size
5, 16, 25
상기 표 1에 따른 실험 조건에 따른 결과값이 하기 표 2에 예시되어 있다. 표 2에서 시간(Time)은 마이크로세컨드 단위의 IDCT 소요시간을 나타내며, 퍼센트(%)는 MPEG-4 Simple Profile 디코더에서 첸의 알고리즘 IDCT 소요 시간을 100%로 보았을 때 각 알고리즘의 IDCT의 비율을 나타낸다.
표 2
Figure 112009002405611-pat00022
위 표 2에서 보여지는 CIF영상의 실험 결과를 참조하면, 테이블 기반 IDCT는 모든 시퀀스 및 QP에서 첸의 알고리즘 IDCT 소요 시간과 비교할 때 약 70%(약 30% 시간 복잡도 감소) 및 최대 46%가 감소된 약 54%를 나타낸다. 이에 비해, 하이브리드 테이블 기반 IDCT는 모든 시퀀스 및 모든 QP에서 첸의 알고리즘 IDCT 소요 시간과 비교하여 약 60%(약 40% 시간 복잡도 감소) 및 최대 53%가 감소된 약 47%의 성능을 나타내었다.
상술한 바와 같이, 본 발명의 실시예에 따른 테이블 기반 IDCT 및 하이브리드 테이블 기반 IDCT가 종래기술에 따른 첸의 알고리즘 IDCT에 비해 성능이 우수함을 알 수 있다.
이외에도, 본 발명의 실시예에 따른 테이블 기반 IDCT 및 하이브리드 테이블 기반 IDCT가 종래기술에 따른 첸의 알고리즘 IDCT에 비해 화질 열화의 문제가 발생되는지 여부도 별도로 실험하였다. 이는, 기존의 많은 고속(Fast) IDCT 알고리즘이 화질 열화의 문제점을 가지고 있기 때문에 이를 확인하기 위함이다.
이를 위해, 압축률 대비 화질을 나타내는 RD 그래프를 이용하였으며, RD 그래프는 bitrate(bps 단위)인 가로축과 PSNR(dB)인 세로축으로 표현된다. 실험 결과, 본 발명의 실시예에 따른 테이블 기반 IDCT 및 하이브리드 테이블 기반 IDCT과 종래기술에 따른 첸의 알고리즘 IDCT과 동일한 PSNR 값이 나오는 것이 확인되었다.
도 7은 본 발명의 또 다른 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 연산부의 구성을 나타낸 도면이다.
도 7을 참조하면, DCT/IDCT 연산부(200)는 입력값 선택부(210), 판단부(220), 인덱스 계산부(230), 합산부(240), 테이블 정보부(250) 및 테이블 갱신부(710)를 포함한다. 즉, 앞서 설명한 도 2의 DCT/IDCT 연산부(200)에 비해 테이블 갱신부(710)를 더 포함한다.
앞서 도 2를 참조하여 DCT/IDCT 연산부(200)의 테이블 정보부(250)에 저장되는 테이블이 DCT/IDCT 연산 과정 중의 모든 입력값 범위에 해당하는 부분값을 포함할 수 있다고 설명하였다.
그러나, 모든 입력값 범위에 해당하는 부분값이 초기에 저장되어 있지 않고, 필요한 시점에서 해당 부분값이 계산되어 테이블에 포함되도록 실시간 테이블 갱신이 이루어지도록 할 수도 있다. 이 경우, 초기의 테이블은 아무런 값도 저장하지 않은 상태로 생성되어 필요 시점에서 실시간 갱신되도록 하거나, 사용 빈도가 높은 입력값에 대해서만 포함할 수 있을 것이다. 여기서, 사용 빈도가 높은 입력값은 통 계적으로 판단될 수 있을 것이다.
이하, 도 7을 참조하여 테이블 갱신 및 이용에 대해 설명하기로 한다. 앞서 도 2를 참조하여 설명한 사항과 동일한 사항에 대한 설명은 생략하기로 한다.
먼저, 인덱스 계산부(230)는 판단부(220)에 의해 DCT/IDCT 연산 과정에 포함하는 것으로 판단된 경우, 테이블 인덱스를 계산한다. 이후, 계산한 테이블 인덱스를 합산부(240)로 제공하여 부분값 합산이 이루어질 수 있도록 한다.
이때, 인덱스 계산부(230)는 테이블 인덱스를 합산부(240)로 제공하기 전에 해당 테이블 인덱스에 해당하는 부분값이 테이블 저장부(250)에 저장되어 있는지 여부를 판단한 후, 만일 부분값이 저장되어 있지 않은 경우라면 테이블 갱신부(710)에 테이블의 갱신을 지시할 수 있다. 예를 들어, 테이블 내에 인덱스로 -47, -45 등이 저장되어 있으나, 입력된 입력값이 -46이라면 이에 대한 DCT/IDCT가 가능하도록 테이블 갱신을 테이블 갱신부(710)로 지시할 수 있다. 물론, 테이블 정보부(250)에 해당 부분값이 저장되어 있는지 여부는 합산부(240)에 의해 확인될 수 있으며, 만약 해당 부분값이 저장되어 있지 않은 경우 테이블 갱신이 합산부(240)에 의해 지시될 수도 있다.
테이블 갱신부(710)는 인덱스 계산부(230) 또는 합산부(240)의 지시에 의해 요청된 입력값(즉, 인덱스)에 대한 부분값을 연산한 후, 연산된 부분값이 상응하는 테이블에 포함되도록 테이블을 갱신한다. 갱신된 테이블은 테이블 정보부(250)에 저장되어 유지되며, 이후의 DCT/IDCT 과정에서 필요시 독출하여 이용할 수 있도록 한다.
상술한 이산여현변환/역이산여현변환 방법은 DCT/IDCT 연산부에 내장된 소프트웨어 프로그램 등에 의해 시계열적 순서에 따른 자동화된 절차로 수행될 수도 있음은 자명하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 상기 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체를 포함한다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 행-열 분해법(Row-Column Decomposition)에서 일반적으로 사용되는 첸(Chen)의 알고리즘을 나타낸 도면.
도 2는 본 발명의 일 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 연산부의 구성을 나타낸 도면.
도 3은 본 발명의 다른 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 연산부의 구성을 나타낸 도면.
도 4는 본 발명의 다른 실시예에 따른 하이브리드 테이블 기반 연산 방법과 행-열 분해법간의 연산 복잡도 비교 그래프.
도 5는 본 발명의 일 실시예에 따른 하이브리드 테이블 기반 연산부의 DCT/IDCT 연산 과정을 나타낸 순서도.
도 6은 본 발명의 일 실시예에 따른 IDCT 연산을 위한 룩업 테이블의 예시도.
도 7은 본 발명의 또 다른 실시예에 따른 이산여현변환(DCT)/역이산여현변환(IDCT) 연산부의 구성을 나타낸 도면.

Claims (25)

  1. 이산여현변환(DCT) 및 역이산여현변환(IDCT) 중 하나 이상을 수행하는 변환 장치에 있어서,
    가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함된 복수의 테이블 정보를 저장하는 테이블 정보부;
    입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하는 인덱스 계산부; 및
    상기 복수의 테이블 정보에 포함되고 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 합산부를 포함하는 변환 장치.
  2. 제1항에 있어서,
    상기 부분값을 연산하여 하나 이상의 테이블 정보를 갱신하는 테이블 갱신부를 더 포함하되,
    상기 테이블 갱신부는 상기 생성된 테이블 인덱스에 의해 지정된 테이블 정보에 상응하는 부분값이 저장되어 있지 않은 경우 상기 인덱스 계산부 또는 상기 합산부의 요청에 따른 인덱스를 포함하도록 테이블 정보의 갱신을 수행하는 것을 특징으로 하는 변환 장치..
  3. 제1항에 있어서,
    상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정되는 것을 특징으로 하는 변환 장치..
  4. 제1항에 있어서,
    입력 블록 내의 임의의 좌표에 대한 입력값이 0(zero)인지 여부를 판단하고, 입력값 0(zero)과 상응하는 좌표를 상기 합산부로 출력하는 판단부를 더 포함하는 변환 장치.
  5. 제1항에 있어서,
    상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산되는 것을 특징으로 하는 변환 장치.
    Figure 112010031854512-pat00034
    여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)임.
  6. 제1항에 있어서,
    상기 입력 블록 및 상기 출력 블록은 각각 NxN 크기를 가지고, 상기 N은 임의의 자연수인 것을 특징으로 하는 변환 장치.
  7. 이산여현변환(DCT) 및 역이산여현변환(IDCT) 중 하나 이상을 수행하는 변환 장치에 있어서,
    행-열 분해법(Row-Column Decomposition)에 따른 이산여현변환(DCT)/역이산여현변환(IDCT)을 수행하는 행-열 분해 기반 연산부;
    테이블 기반 이산여현변환(DCT)/역이산여현변환(IDCT)을 수행하는 테이블 기반 연산부; 및
    입력 블록 내에 포함된 좌표별 입력값 중 0이 아닌 입력값의 개수를 인식하고, 인식된 개수와 미리 지정된 기준값을 비교하여 상기 행-열 분해 기반 연산부 또는 상기 테이블 기반 연산부에 의한 처리를 지시하는 방법 선택부를 포함하되,
    상기 테이블 기반 연산부는,
    가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함된 복수의 테이블 정보를 저장하는 테이블 정보부;
    입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하는 인덱스 계산부; 및
    상기 복수의 테이블 정보에 포함되고 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 합산부를 포함하는 변환 장치.
  8. 제7항에 있어서,
    상기 테이블 기반 연산부는,
    상기 부분값을 연산하여 하나 이상의 테이블 정보를 갱신하는 테이블 갱신부를 더 포함하되,
    상기 테이블 갱신부는 상기 생성된 테이블 인덱스에 의해 지정된 테이블 정보에 상응하는 부분값이 저장되어 있지 않은 경우 상기 인덱스 계산부 또는 상기 합산부의 요청에 따른 인덱스를 포함하도록 테이블 정보의 갱신을 수행하는 것을 특징으로 하는 변환 장치.
  9. 제7항에 있어서,
    상기 방법 선택부는 0이 아닌 입력값의 개수가 상기 기준값 이하인 경우에만 상기 테이블 기반 연산부에 의한 처리를 지시하는 것을 특징으로 하는 변환 장치.
  10. 제7항에 있어서,
    상기 방법 선택부는 엔트로피 코딩(entropy coding) 과정에서의 레벨(level) 값의 개수를 참조하여 0이 아닌 입력값의 수를 인식하는 것을 특징으로 하는 변환 장치.
  11. 제7항에 있어서,
    MPEG-4 part10 AVC/H.264 코덱을 위한 상기 방법 선택부는 미리 계산되어 변수로 포함된 0이 아닌 입력값의 개수 정보를 이용하여 0이 아닌 입력값의 수를 인식하는 것을 특징으로 하는 변환 장치.
  12. 제7항에 있어서,
    상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정되는 것을 특징으로 하는 변환 장치.
  13. 제7항에 있어서,
    입력 블록 내의 임의의 좌표에 대한 입력값이 0(zero)인지 여부를 판단하고, 입력값 0(zero)과 상응하는 좌표를 상기 합산부로 출력하는 판단부를 더 포함하는 변환 장치.
  14. 제7항에 있어서,
    상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산되는 것을 특징으로 하는 변환 장치.
    Figure 112010031854512-pat00035
    여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)임.
  15. 연산장치가 이산여현변환(DCT) 및 역이산여현변환(IDCT) 중 하나 이상인 변환을 수행하는 방법에 있어서,
    입력되는 입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하는 단계;
    가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함되도록 생성되어 미리 저장된 복수의 테이블 정보 중에서 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 읽어들이는 단계; 및
    상기 읽어들인 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 단계를 포함하는 변환 수행 방법.
  16. 제15항에 있어서,
    상기 부분값들을 읽어들이는 단계는,
    상기 테이블 정보에 상기 테이블 인덱스에 상응하는 부분값이 기재되어 있는지 여부를 판단하는 단계;
    기재되어 있지 않은 경우, 상기 테이블 인덱스에 상응하는 곱셈 연산에 의해 부분값을 연산하여 상기 테이블 정보를 갱신하는 단계; 및
    상기 갱신된 테이블 정보에서 상기 테이블 인덱스에 상응하는 부분값을 읽어들이는 단계를 포함하는 변환 수행 방법.
  17. 제15항에 있어서,
    상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정되는 것을 특징으로 하는 변환 수행 방법.
  18. 제15항에 있어서,
    상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산되는 것을 특징으로 하는 변환 수행 방법.
    Figure 112010031854512-pat00036
    여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)임.
  19. 연산장치가 이산여현변환(DCT) 및 역이산여현변환(IDCT) 중 하나 이상인 변환을 수행하는 방법에 있어서,
    입력 블록 내에 포함된 좌표별 입력값 중 0이 아닌 입력값의 개수를 인식하여 인식된 개수와 미리 지정된 기준값을 비교하는 단계; 및
    행-열 분해법(Row-Column Decomposition) 및 테이블 기반 변환 방법 중에서 상기 0이 아닌 입력값의 개수가 상기 기준값 이하인 경우에만 상기 테이블 기반 변환 방법을 이용하는 단계를 포함하되,
    상기 테이블 기반 변환 방법은,
    입력되는 입력 블록 내의 각 좌표별 입력값 중 0(zero)이 아닌 입력값에 대해서만 테이블 인덱스를 생성하는 단계;
    가중치 및 인덱스의 곱셈 연산에 따른 부분값들이 포함되도록 생성되어 미리 저장된 복수의 테이블 정보 중에서 상기 테이블 인덱스에 부합하는 하나 이상의 부분값을 읽어들이는 단계; 및
    상기 읽어들인 부분값을 덧셈 연산하여 출력 블록 내의 좌표별 결과값을 계산하는 단계를 포함하여 실행되는 것을 특징으로 하는 변환 수행 방법.
  20. 제19항에 있어서,
    상기 부분값들을 읽어들이는 단계는,
    상기 테이블 정보에 상기 테이블 인덱스에 상응하는 부분값이 기재되어 있는지 여부를 판단하는 단계;
    기재되어 있지 않은 경우, 상기 테이블 인덱스에 상응하는 곱셈 연산에 의해 부분값을 연산하여 상기 테이블 정보를 갱신하는 단계; 및
    상기 갱신된 테이블 정보에서 상기 테이블 인덱스에 상응하는 부분값을 읽어들이는 단계를 포함하는 변환 수행 방법.
  21. 제19항에 있어서,
    0이 아닌 입력값의 수는 엔트로피 코딩(entropy coding) 과정에서의 레벨(level) 값의 개수를 참조하여 인식되는 것을 특징으로 하는 변환 수행 방법.
  22. 제19항에 있어서,
    MPEG-4 part10 AVC/H.264 코덱인 경우, 미리 계산되어 변수로 포함된 0이 아닌 입력값의 개수 정보를 이용하여 0이 아닌 입력값의 수를 인식하는 것을 특징으로 하는 변환 수행 방법.
  23. 제19항에 있어서,
    상기 가중치는 상기 출력 블록 내의 각 좌표값과 상기 입력 블록 내의 좌표값에 의해 결정되는 값이고, 상기 인덱스는 입력값의 존재 범위에 속하는 하나 이상의 정수값들로 지정되는 것을 특징으로 하는 변환 수행 방법.
  24. 제19항에 있어서,
    상기 역이산여현변환(IDCT)을 위한 상기 가중치는 하기 수학식에 의해 연산되는 것을 특징으로 하는 변환 수행 방법.
    Figure 112010031854512-pat00037
    여기서, 상기 N은 상기 입력 블록의 가로 또는 세로 크기(Size)이고, x와 y는 픽셀 도메인에서의 좌표값 (x, y)를 구성하며, u와 v는 주파수 도메인에서의 좌표값 (u, v)를 구성하고, 상기 C(u) 및 상기 C(v)는 각각 스케일링 팩터(scaling factor)임.
  25. 제15항 내지 제24항 중 어느 하나에 기재된 변환 수행 방법을 수행하기 위하여 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체.
KR1020090002999A 2009-01-14 2009-01-14 이산여현변환/역이산여현변환 방법 및 장치 KR100978391B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090002999A KR100978391B1 (ko) 2009-01-14 2009-01-14 이산여현변환/역이산여현변환 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090002999A KR100978391B1 (ko) 2009-01-14 2009-01-14 이산여현변환/역이산여현변환 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100083554A KR20100083554A (ko) 2010-07-22
KR100978391B1 true KR100978391B1 (ko) 2010-08-26

Family

ID=42643285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090002999A KR100978391B1 (ko) 2009-01-14 2009-01-14 이산여현변환/역이산여현변환 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100978391B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101199861B1 (ko) * 2010-10-21 2012-11-09 한양대학교 산학협력단 부호화/복호화 장치 및 그 방법과 이를 구현하기 위한 프로그램이 기록된 기록매체
KR101252043B1 (ko) * 2011-08-03 2013-04-12 한양대학교 산학협력단 통합 모듈을 구비한 복호화 장치 및 복호화 처리 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436575B1 (ko) * 2011-07-19 2014-09-16 한양대학교 산학협력단 복호화 장치 및 이산여현역변환 처리 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030027321A (ko) * 2001-09-28 2003-04-07 한국전자통신연구원 분산 산술 처리장치 및 그 방법과 그를 이용한 이차원이산여현변환 처리장치 및 그 방법
WO2005038719A2 (en) 2003-10-18 2005-04-28 Koninklijke Philips Electronics N.V. Method and apparatus for calculating an inverse dct
KR20060016947A (ko) * 2004-08-19 2006-02-23 엘지전자 주식회사 Mpeg 비디오 부호화 시스템 및 부호화 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030027321A (ko) * 2001-09-28 2003-04-07 한국전자통신연구원 분산 산술 처리장치 및 그 방법과 그를 이용한 이차원이산여현변환 처리장치 및 그 방법
WO2005038719A2 (en) 2003-10-18 2005-04-28 Koninklijke Philips Electronics N.V. Method and apparatus for calculating an inverse dct
KR20060016947A (ko) * 2004-08-19 2006-02-23 엘지전자 주식회사 Mpeg 비디오 부호화 시스템 및 부호화 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101199861B1 (ko) * 2010-10-21 2012-11-09 한양대학교 산학협력단 부호화/복호화 장치 및 그 방법과 이를 구현하기 위한 프로그램이 기록된 기록매체
KR101252043B1 (ko) * 2011-08-03 2013-04-12 한양대학교 산학협력단 통합 모듈을 구비한 복호화 장치 및 복호화 처리 방법

Also Published As

Publication number Publication date
KR20100083554A (ko) 2010-07-22

Similar Documents

Publication Publication Date Title
CN1697328B (zh) 快速视频编解码变换实现
EP1610563A2 (en) Selecting encoding types and predictive modes for encoding video data
US20130215961A1 (en) Motion video encoding apparatus, motion video encoding method, motion video encoding computer program, motion video decoding apparatus, motion video decoding method, and motion video decoding computer program
JP2003507804A (ja) 動き補償されたブロックベースの圧縮デジタルビデオの可変複雑性デコーディングの方法と装置
CN106170093B (zh) 一种帧内预测性能提升编码方法
Katsenou et al. Content-gnostic bitrate ladder prediction for adaptive video streaming
Roy et al. Fractal image compression using upper bound on scaling parameter
US11470316B2 (en) Method and device for performing transformation by using layered-givens transform
EP1796397A1 (en) Stepwise reversible video encoding method, stepwise reversible video decoding method, stepwise reversible video encoding device, stepwise reversible video decoding device, program therefore, and recording medium for the program
US11606557B2 (en) Method and apparatus for performing low complexity computation in transform kernel for video compression
CN101843101A (zh) 用于获取16阶整数变换的方法和装置
KR100978391B1 (ko) 이산여현변환/역이산여현변환 방법 및 장치
JP4336789B2 (ja) 2次元直交変換と量子化方法及びその装置並びにプログラム
Rahmoune et al. Sparse approximation using m-term pursuit and application in image and video coding
KR20100123914A (ko) 오더-n 변환으로부터 오더-2n 변환을 생성하는 시스템 및 방법
Alshehri Video compression using frame redundancy elimination and discrete cosine transform coefficient reduction
JP2004518199A (ja) コーディング
Wang et al. An effective transform unit size decision method for high efficiency video coding
US9311275B2 (en) Method and apparatus for discrete cosine transform/inverse discrete cosine transform
KR101199861B1 (ko) 부호화/복호화 장치 및 그 방법과 이를 구현하기 위한 프로그램이 기록된 기록매체
KR101252043B1 (ko) 통합 모듈을 구비한 복호화 장치 및 복호화 처리 방법
EP1925095A2 (en) Variable shape motion estimation in video sequence
Roy et al. VQ-DCT based image compression: a new hybrid approach
KR101516947B1 (ko) Hevc를 위한 고속 변환 크기 결정 방법 및 장치
KR101619306B1 (ko) 부호화/복호화 장치 및 그 방법과 이를 구현하기 위한 프로그램이 기록된 기록매체

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: 20130628

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140528

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160705

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 10