KR100270799B1 - 이산코사인변환/역이산코사인변환 프로세서 - Google Patents

이산코사인변환/역이산코사인변환 프로세서 Download PDF

Info

Publication number
KR100270799B1
KR100270799B1 KR1019980002587A KR19980002587A KR100270799B1 KR 100270799 B1 KR100270799 B1 KR 100270799B1 KR 1019980002587 A KR1019980002587 A KR 1019980002587A KR 19980002587 A KR19980002587 A KR 19980002587A KR 100270799 B1 KR100270799 B1 KR 100270799B1
Authority
KR
South Korea
Prior art keywords
idct
dct
matrix
input
correlation coefficient
Prior art date
Application number
KR1019980002587A
Other languages
English (en)
Other versions
KR19990066552A (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 KR1019980002587A priority Critical patent/KR100270799B1/ko
Priority to US09/241,060 priority patent/US6308193B1/en
Publication of KR19990066552A publication Critical patent/KR19990066552A/ko
Application granted granted Critical
Publication of KR100270799B1 publication Critical patent/KR100270799B1/ko

Links

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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

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

Abstract

본 발명은 신속하고 효율적인 DCT 및 IDCT를 수행할 수 있도록 하며, DCT와 IDCT를 한 개의 ASIC으로 구현하기 위한 것으로, 이러한 본 발명은 DCT 계수 또는 IDCT 계수를 입력받아 프리스케일링을 수행하는 프리스케일러와, 벡터 곱셈을 수행하는 벡터 멀티플라이어 및 데이터를 축적하는 어큐뮬레이터를 구비한 행렬 멀티플라이어를 포함한 DCT/IDCT 프로세서에서 행렬 멀티플라이어가 DCT 계수와 IDCT 계수간의 스위칭을 수행하는 복수개의 스위치와, 어큐뮬레이터 유니트와 덧셈 유니트와 뺄셈 유니트 사이에서 DCT 계수와 IDCT 계수의 신호흐름을 제어하는 DCT/IDCT 판단부를 더 포함함으로써, 신속하고 효율적인 DCT 및 IDCT를 수행하고 DCT와 IDCT를 한 개의 ASIC으로 구현할 수 있으며, 곱셈에 대한 산술 횟수를 줄여 연산횟수의 감소시켜 처리속도가 빨라지고 고정소수점 곱셈 연산의 감소로 인하여 정확성을 향상시킬 수 있어 실시간으로 정보를 처리해야 하는 음성 및 영상정보처리에 유용하게 사용할 수 있게 되는 것이다.

Description

이산코사인변환/역이산코사인변환 프로세서
본 발명은 여러 DSP(Digital Signal Process, 디지털 신호 처리) 분야 및 음성과 영상 압축 시스템에서 널리 사용되는 부호화 방식인 DCT/IDCT(Discrete Cosine Transform / Inverse Discrete Cosine Transform, 이산 코사인 변환 / 역이산 코사인 변환) 프로세서에 관한 것으로, 특히 처리속도의 개선과 동시에 DCT와 IDCT를 동일한 회로를 이용하여 VLSI(Very Large Scale Integrated circuit, 초대규모 집적회로)로 구현하기 위한 DCT/IDCT 프로세서(Processor)에 관한 것이다.
일반적으로 셋-탑 디지털 케이블 텔레비젼 박스, 직접 위성 방송(DBS, Direct Broadcast Satellite) 텔레비젼, 지상 디지털(Terrestrial Digital) 텔레비젼, 디지털 비디오 디스크 플레이어(DVDP, Digital Video Disk Player), 대화형 텔레비젼, 주문형 비디오(VOD, Video On Demand), 비디오 네트워크 서버와 같은 새로운 디지털 비디오 시스템은 스펙트럼 및 저장능력을 유지하면서 수신가능한 화상의 질을 제공하는 효율적인 비디오 압축에 의존한다. 여기서 화상압축은 후속부호화 처리가 효율적으로 이루어질 수 있도록 하는 전처리 단계와 정보량을 대폭으로 삭감하는 서브샘플 단계와 인접 화소 간의 공간적 상관성과 움직임 영상에서의 시간적 상관성을 이용하여 예측하는 예측처리 단계와 샘플간의 상관관계를 제거하고 샘플값의 출현빈도 분포를 치우치게 하여 정보량을 감소시키는 직교변환 단계와 연속량의 데이터를 이산적인 값으로 치환하는 양자화 단계와 선행한 처리로 얻어진 신호를 가능한 적은 비트 수로 부호화하는 엔트로피 부호화 단계를 거쳐 이루어진다.
그리고 직교변환(Orthogonal Transform)이란 변환 행렬이 직교 행렬인 변환으로, 직교 행렬은 정방 행렬 중에서 각 행 또는 열들이 서로 직교하며, 각각의 크기가 1인 행렬을 말한다. 이러한 직교행렬은 상관성이 높은 입력신호를 상관성이 낮은 신호로 만드는 성질이 있다. 즉, 이 행렬에 입력 벡터를 곱하여 얻어진 결과의 데이터는 상관성이 낮아진다. 또한 어떤 직교 변환의 신호 흐름도가 주어졌을 때 그 역변환의 신호 흐름도는 순방향의 신호 흐름도의 화살표를 반전시킴으로써 얻어진다는 특성이 있다. 이러한 직교 변환은 영상처리의 여러분야에서 이용되는 데, 특히 영상 데이터의 압축분야에 많이 이용된다. 그리고 직교변환에는 고유값 벡터를 사용하는 카루넨-뢰베(Karhunen-Loeve) 변환과 이산 코사인 변환과 월시-아다마르 변환(WHT, Walsh-Hadamard Transform)이 있다.
또한 DCT/IDCT는 실시간 정보의 압축 및 복원 시스템에서 상당히 많은 처리시간을 요구하는 것으로, 이 부분의 성능을 향상시킴으로써 전체 영상 압축 및 복원 시스템의 성능을 향상시킬 수 있다.
그래서 그레이 스케일 및 칼라 영상을 포함하는 정지영상의 디지털 압축에 관한 국제 표준인 JPEG(Joint Photographic Experts Group, 사진술 전문가 그룹)은 다양한 응용분야를 지원하기 위하여 4가지의 동작 모드를 권고하고 있다. 이 중에서 무손실 압축모드(Lossless Mode)만 제외하고, 순차적 부호화(Sequential Mode), 점진적 부호화(Progressive Mode), 계층적 부호화(Hierarchical Mode)에서는 DCT/IDCT 기반의 압축 알고리듬을 표준안으로 권고하고 있다.
이러한 직교변환에서 종래 2차원 IDCT 프로세서("VLSI 실행용 역이산 코사인 변환 프로세서", 대한민국 특허 공개번호 97-12126)는, 도1에 도시된 바와 같이, IDCT 계수를 입력받아 프리스케일링(Prescaling)을 수행하는 프리스케일러(11)와; 상기 프리스케일러(11)에서 프리스케일링된 IDCT 상관계수 데이터를 행렬 멀티플라이어(13)의 입력부로 유도하는 먹스(MUX, Multiplexer)(12)와; 상기 먹스(12)로부터 입력되는 프리스케일링된 IDCT 상관계수 행렬의 각 행에 DCT 상관계수 행렬을 곱하는 행렬 멀티플라이어(13)와; 상기 행렬 멀티플라이어(13)에서 출력되는 중간 출력 행렬에 적절한 비트 정확성을 부여하는 기준화 및 반올림 수단(14)과; 상기 기준화 및 반올림 수단(14)에서 스케일링되고 반올림된 중간출력행렬을 전치시켜 상기 먹스(12)로 입력하는 트랜스포즈 버퍼(15)와; 상기 행렬 멀티플라이어(13)에서 출력되는 최종 출력 행렬에 적절한 비트 정확성을 부여하는 최종 기준화 및 반올림 수단(16)과; 상기 최종 기준화 및 반올림 수단(16)에서 입력되는 데이터를 버퍼링하여 DCT 계수를 출력하는 블록버퍼(17)로 구성되었다.
상기에서 행렬 멀티플라이어(13)는, 도2에 도시된 바와 같이, 복수개의 등록부(24)(26) 및 고정된 지점의 멀티플라이어(25)를 구비하여 벡터 곱셈을 수행하는 벡터 멀티플라이어(23)와; 복수개의 등록부(29)(30)(33)와 어큐뮬레이터 유니트(28)와 덧셈 유니트(31) 및 뺄셈 유니트(32)를 구비하여 데이터를 축적하는 어큐뮬레이터(27)로 구성되었다.
여기서 참조번호 21은 홀수 채널의 데이터 경로이고, 22는 짝수 채널의 데이터 경로이며, 34 및 35는 상기 벡터 멀티플라이어(23)와 상기 어큐뮬레이터(27) 간의 인터페이스를 수행하는 크로스바 스위치이고, 36 및 37은 상기 어큐뮬레이터 유니트(28)와 상기 덧셈 유니트(31)와 상기 뺄셈 유니트(32) 사이의 인터페이스를 수행하는 멀티플렉서이다.
이와 같이 구성된 종래 2차원 IDCT 프로세서의 동작을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
먼저 DCT 기반의 영상 압축 기법은, 부호화기의 입력으로 8×8의 64 화소 샘플로 이루어진 하나의 블록을 순차적으로 처리하며, 이 블록들은 DCT에 의해 변환된다. 복호화기에서는 8×8 재현 영상을 얻기 위해 IDCT를 통하여 원래의 영상정보를 복원한다.
그래서 프리스케일러(11)는 IDCT 계수를 입력받아 프리스케일링을 수행하여 먹스(12)로 입력시키고, 먹스(12)는 프리스케일링된 IDCT 상관계수 데이터를 행렬 멀티플라이어(13)의 입력부로 유도하게 된다.
그러면 행렬 멀티플라이어(13)의 벡터 멀티플라이어(23)는 먹스(12)로부터 입력되는 프리스케일링된 IDCT 상관계수 행렬의 각 행에 DCT 상관계수 행렬을 곱하고, 어큐뮬레이터(27)는 데이터를 저장하게 된다.
그래서 기준화 및 반올림 수단(14)에서 행렬 멀티플라이어(13)에서 출력되는 중간 출력 행렬에 적절한 비트 정확성을 부여하고, 트랜스포즈 버퍼(15)는 기준화 및 반올림 수단(14)에서 스케일링되고 반올림된 중간출력행렬을 전치시켜 먹스(12)로 입력하게 된다. 그리고 행렬 멀티플라이어(13)는 다시 IDCT 상관계수 행렬의 각 행에 DCT 상관계수 행렬을 곱하여 저장하게 된다.
이렇게 행렬 멀티플라이어(13)에서 출력되는 최종 출력 행렬에 대해 최종 기준화 및 반올림 수단(16)에서 적절한 비트 정확성을 부여하여, 블록버퍼(17)에서 DCT 계수를 출력하도록 동작하였다.
이러한 IDCT 프로세서는 MPEG-2 디코더 내에서 사용되도록 최적화되어 제공된다. 그래서 IDCT 프로세서는 8×8 블록의 MPEG 데이터 상에서 작동된다. 이 IDCT 프로세서는 신속한 이차원 8-점 IDCT 계산 과정을 수행한다. 이차원 DCT 계수의 입력 행렬이 프리스케일링된다. 이렇게 얻어진 프리스케일링된 행렬은 중간 출력 행렬을 축적하도록 행-대-행 방식으로 특정 이차원 IDCT 상관계수 행렬을 곱하는 행렬 멀티플라이어(13)에 적용된다. 이 중간 출력 행렬은 출력 행렬의 전치값을 형성하는 전치 메모리로 유입된다. 그리고 나서 행렬 멀티플라이어(13)는 행-대-행 방식으로 특정 이차원 출력 행렬을 전치된 출력 행렬과 곱하여 결과 행렬을 축적한다. 특정 이차원 상관계수 행렬 및 프리스케일링된 상관계수는 결과 행렬이 입력 DCT 상관계수의 IDCT에 근접하고 이차원 상관계수 행렬이 그 중의 하나가 1인 오직 5개의 특정값을 포함하도록 선택된다.
이처럼 디지털 비디오 시스템의 부호화기(인코더) 및 디스플레이 장치의 복호화기(디코더)에 사용되는 MPEG 인코더와 디코더에서는 많은 DCT/IDCT 동작이 수행된다. 예를 들어, MPEG(Motion/moving Picture Export Group, 동화상 표준화 그룹)-2에서 영상프레임이 30프레임/sec로 디스플레이 될 경우, 인코더에서의 DCT는 1920×1080×(6/4)×30 = 93.312 MPixel/sec의 속도로 수행해야만 한 개의 ASIC으로 구현이 가능하다. 또한, 디코더에서는 원래의 영상 데이터를 복원하기 위하여 IDCT 프로세서를 갖추어야 한다.
그래서 MPEG 디코더에서 프리스케일링 작동은 추가 처리 사이클이나 VLSI 영역을 필요로하지 않고 탈양자화에 필요한 계산과 함께 수행될 수 있다. 이차원 상관계수 행렬은 4개의 별개의 값에 한정되기 때문에, 행렬 멀티플라이어의 구축이 크게 단순화된다. 예를 들어 행렬 멀티플라이어(13)는 4개의 일정값의 멀티플라이어(25), 행렬에서 각 특정 1이 아닌 값에 대해서 하나의 멀티플라이어를 포함하는 데이터 경로로 수행될 수 있다. 이러한 방식으로 4개의 멀티플라이어(25)를 사용함으로써 클록(clock tick) 마다 두 개의 샘플이 처리된다. 필요로하는 멀티플라이어의 수는 특정 1이 아닌 상관계수치의 수와 일치하기 때문에 이러한 수행이 특히 효율적이다. 각 멀티플라이어는 단일 상수를 곱하기만 하여 멀티플라이어 로직을 크게 최적화시킬 필요가 있다.
또한 이 행렬 멀티플라이어에 필요한 데이터 경로는 매우 규칙적이기 때문에 VLSI에서 효율적으로 실행될 수 있다. 이 규칙성은 매우 작은 밀도 VLSI 레이아웃을 얻게하는 통상의 레이아웃 기술에서 활용될 수 있어 IDCT 프로세서가 전체 MPEG 디코더 면적의 20~30% 만이 소비하게 된다.
그러나 종래의 장치는 비슷한 구조를 갖는 DCT와 IDCT 프로세서를 인코더와 디코더에 각각 장착해야 하는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 신속하고 효율적인 DCT 및 IDCT를 수행할 수 있도록 하며, DCT와 IDCT를 한 개의 ASIC으로 구현할 수 있는 DCT/IDCT 프로세서를 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여 본 발명에 의한 DCT/IDCT 프로세서는,
DCT 계수와 IDCT 계수간의 스위칭을 수행하는 복수개의 스위치와; 어큐뮬레이터 유니트와 덧셈 유니트와 뺄셈 유니트 사이에서 DCT 계수와 IDCT 계수의 신호흐름을 제어하는 DCT/IDCT 판단부를 더 포함한 어큐뮬레이터로 이루어짐을 그 기술적 구성상의 특징으로 한다.
본 발명의 일 실시예인 IDCT의 수행과정은, 표준 IDCT식을 두부분으로 인수분해하여 변환시키고 각각의 입력 데이터를 프리스케일링한 다음, 특별히 선택된 행렬을 곱함으로써, IDCT를 수행하게 된다. 프리스케일링은 특별히 선택된 행렬이 제한된 수의 별개의 값을 갖도록 선택한다. 따라서 연산횟수의 감소로 인하여 처리속도가 빨라지며 및 고정소수점 곱셈 연산의 감소로 인하여 정확성 향상의 효과를 얻을 수 있다.
본 발명의 다른 실시예인 DCT 수행과정은, 표준 DCT식을 두 부분으로 인수분해하여 변환시키고 특별히 선택된 행렬을 곱함으로써 그 결과를 입력데이터의 DCT를 나타내게 한다. DCT 프로세서는 연산 횟수 감소로 인하여 처리속도가 빨라지며, 고정소수점 곱셈 횟수의 감소로 인하여 정확성 향상의 효과를 얻을 수 있다.
본 발명에 있어서 DCT/IDCT 프로세서에 사용되는 DCT/IDCT 상관계수 행렬은 동일하게 사용할 수 있도록 고안한다.
도 1은 종래 2차원 IDCT 프로세서의 블록구성도,
도 2는 도1에서 행렬 멀티플라이어의 상세블록도,
도 3은 본 발명이 적용되는 2차원 DCT/IDCT 프로세서의 블록구성도,
도 4는 본 발명에 의한 행렬 멀티플라이어의 상세블록도,
도 5는 본 발명 DCT/IDCT 프로세서에 의한 처리방법을 보인 흐름도,
도 6은 도4에서 IDCT 실행시 먹스의 출력치를 보인 도표,
도 7은 도4에서 DCT 실행시 먹스의 출력치를 보인 도표.
<도면의 주요 부분에 대한 부호의 설명>
51: 홀수 채널의 데이터 경로 52: 짝수 채널의 데이터 경로
53, 67: 스위치 54: 프리스케일러
55: 벡터 멀티플라이어 56, 58, 61, 62, 66: 등록부
57: 멀티플라이어 59: 어큐뮬레이터
60: 어큐뮬레이터 유니트 63: DCT/IDCT 판단부
64: 덧셈 유니트 65: 뺄셈 유니트
68, 69: 크로스바 스위치 70, 71: 멀티플렉서
이하, 상기와 같이 구성된 본 발명 DCT/IDCT 프로세서의 기술적 사상에 따른 일실시예를 상세히 설명하면 다음과 같다.
도3은 본 발명이 적용되는 2차원 DCT/IDCT 프로세서의 블록구성도이다.
이에 도시된 바와 같이, IDCT 계수 또는 데이터를 입력받아 프리스케일링을 수행하는 프리스케일러(41)와; 상기 프리스케일러(41)에서 프리스케일링된 IDCT 상관계수 또는 DCT 상관계수 데이터를 행렬 멀티플라이어(43)의 입력부로 유도하는 먹스(42)와; 상기 먹스(42)로부터 입력되는 프리스케일링된 IDCT 상관계수 행렬 또는 또는 DCT 상관계수 행렬의 각 행에 DCT 상관계수 행렬 또는 또는 IDCT 상관계수 행렬을 곱하는 행렬 멀티플라이어(43)와; 상기 행렬 멀티플라이어(43)에서 출력되는 중간 출력 행렬에 적절한 비트 정확성을 부여하는 기준화 및 반올림 수단(44)과; 상기 기준화 및 반올림 수단(44)에서 스케일링되고 반올림된 중간출력행렬을 전치시켜 상기 먹스(42)로 입력하는 트랜스포즈 버퍼(45)와; 상기 행렬 멀티플라이어(43)에서 출력되는 최종 출력 행렬에 적절한 비트 정확성을 부여하는 최종 기준화 및 반올림 수단(46)과; 상기 최종 기준화 및 반올림 수단(46)에서 입력되는 데이터를 버퍼링하여 DCT 계수 또는 IDCT 계수를 출력하는 블록버퍼(47)로 구성되었다.
도4는 본 발명에 의한 행렬 멀티플라이어(43)의 상세블록도이다.
이에 도시된 바와 같이, DCT 계수와 IDCT 계수간의 스위칭을 수행하는 복수개의 스위치(53)(67)와; 복수개의 등록부(56)(58) 및 고정된 지점의 멀티플라이어(57)를 구비하여 벡터 곱셈을 수행하는 벡터 멀티플라이어(55)와; 어큐뮬레이터 유니트(60)와, 복수개의 등록부(61)(62)(66)와, 상기 어큐뮬레이터 유니트(60)와 덧셈 유니트(64)와 뺄셈 유니트(65) 사이에서 DCT 계수와 IDCT 계수의 신호흐름을 제어하는 DCT/IDCT 판단부(63)와, 덧셈 유니트(64) 및 뺄셈 유니트(65)를 구비하여 데이터를 축적하는 어큐뮬레이터(59)로 구성된다.
여기서 참조번호 51은 홀수 채널의 데이터 경로이고, 52는 짝수 채널의 데이터 경로이며, 54는 홀수 채널의 데이터 경로로부터 DCT 계수 또는 IDCT 계수를 입력받아 프리스케일링을 수행하는 프리스케일러이고, 68 및 69는 상기 벡터 멀티플라이어(55)와 상기 어큐뮬레이터(59) 간의 인터페이스를 수행하는 크로스바 스위치이며, 70 및 71은 상기 어큐뮬레이터 유니트(60)와 상기 DCT/IDCT 판단부(63) 사이의 인터페이스를 수행하는 멀티플렉서이다.
상기에서 DCT/IDCT 판단부(63)는, DCT 신호가 입력되면 상기 어큐뮬레이터 유니트(60)의 DCT를 DCT_출력(DCT_OUTPUT)으로 출력시키고 입력되는 DCT(DCT_INPUT)를 상기 덧셈 유니트(64)와 뺄셈 유니트(65)에 입력시키는 것을 특징으로 한다.
상기에서 DCT/IDCT 판단부(63)는, IDCT 신호가 입력되면 상기 어큐뮬레이터 유니트(60)에서 입력되는 IDCT를 상기 덧셈 유니트(64)와 뺄셈 유니트(65)에 입력시켜 IDCT(IDCT_OUTPUT)가 출력되도록 하는 것을 특징으로 한다.
도5는 본 발명 DCT/IDCT 프로세서에 의한 처리방법을 보인 흐름도이다.
이에 도시된 바와 같이, IDCT 계수 또는 데이터를 입력받아 프리스케일링 상관계수를 곱하는 단계(ST11)와; 상기 프리스케일링 상관계수를 곱한 다음 프리스케일링된 데이터를 멀티플라이어(57)/어큐뮬레이터(59)에 입력하여 특정 IDCT 또는 DCT 상관계수 행렬을 곱하여 1차 IDCT 또는 DCT 결과에 기준화 및 반올림 처리를 하는 단계(ST12 - ST14)와; 상기 기준화 및 반올림 처리를 한 다음 전치를 수행하여 전치된 데이터를 멀티플라이어(57)/어큐뮬레이터(59)에 입력하여 특정 IDCT 또는 DCT 상관계수 행렬을 곱하여 최종결과에 기준화 및 반올림 처리를 하여 DCT 계수 또는 IDCT 계수를 출력시키는 단계(ST15 - ST18)로 구성된다.
이와 같이 구성된 본 발명에 의한 DCT/IDCT 프로세서의 동작을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
먼저 본 발명의 일 실시예인 IDCT 프로세서는 입력 DCT 상관 계수 데이터의 IDCT 계산을 2단계로 수행한다.
그래서 제1 단계에서는, 입력 DCT 상관계수에 데이터 내의 상관계수의 위치에 따라 변하는 프리스케일링 인수를 곱한다. 프리스케일링 인수는 주어진 벡터내에서의 위치에 따라 주기적으로 변한다. 그리고 제2 단계에서는, 프리스케일링된 입력 DCT 상관계수와 IDCT 상관계수 행렬의 곱셈이 수행된다.
또한 본 발명의 다른 실시예인 DCT 프로세서는 입력 IDCT 상관 계수 데이터 및 8×8의 64 화소 샘플의 DCT 계산을 1단계로 수행하며, 이는 입력 IDCT 상관계수 데이터 및 8×8의 64 화소 샘플 데이터와 IDCT 상관계수 행렬을 곱함으로써 수행된다.
본 발명에서 프리스케일링 인수 및 IDCT 상관계수 행렬은 정확한 결과를 보장하면서도 곱셈 하드웨어의 단순화 및 연산 횟수 감소, 그리고 DCT 프로세서와 동시에 사용할 수 있는 DCT / IDCT 상관계수 행렬이 되도록 선택된다.
본 발명의 한 측면에 따르는 DCT/IDCT 프로세서는 MPEG-2 인코더와 디코더에서 사용할 수 있도록 최적화되었다.
이러한 2차원 DCT와 IDCT의 표준식은 다음의 수학식1 및 수학식2와 같다.
여기서 수학식1은 DCT의 표준식이고, 수학식2는 IDCT 표준식이다. 그래서 수학식1을 예로 들어 DCT/IDCT 수행에 사용하는 상관계수의 변환 상관계수는 다음의 수학식3 내지 수학식5에서와 같이 인수분해하여 생성한다.
그리고 다음의 표1은 수학식4의 Pu 값을 도시한 도표이다.
u 0 1 2 3 4 5 6 7
Pu .71 .98 .92 .98 .71 .98 .38 .98
또한 다음의 표2는 Tx,uPu 의 값을 도시한 도표이며, 다음의 표3은 Tx,u 의 값을 나타낸다. 이러한 표1 내지 표3에 도시된 수는 간단히 설명하기 위해 반올림된 값으로, 특정한 실제 수행시에는 나타난 수식에 기초하여 재계산 되어야 한다.
Tx,uPu U
x 0 1 2 3 4 5 6 7
0 .71 .98 .92 .83 .71 .56 .38 .20
1 .71 .83 .38 -.20 -.71 -.98 -.92 -.56
2 .71 .56 -.38 -.98 -.71 .20 .92 .83
3 .71 .20 -.92 -.56 .71 .83 -.38 -.98
4 .71 -.20 -.92 .56 .71 -.83 -.38 .98
5 .71 -.56 -.38 .98 -.71 -.20 .92 -.83
6 .71 -.83 .38 .20 -.71 .98 -.92 .56
7 .71 -.98 .92 -.83 .71 -.56 .38 -.20
Tx,u U
x 0 1 2 3 4 5 6 7
0 .71 1.00 .92 .85 .71 .57 .38 .20
1 .71 .85 .38 -.20 -.71 -1.00 -.92 -.57
2 .71 .57 -.38 -1.00 -.71 .20 .92 .85
3 .71 .20 -.92 -.57 .71 .85 -.38 -1.00
4 .71 -.20 -.92 .57 .71 -.85 -.38 1.00
5 .71 -.57 -.38 1.00 -.71 -.20 .92 -.85
6 .71 -.85 .38 .20 -.71 1.00 -.92 .57
7 .71 -1.00 .92 -.85 .71 -.57 .38 -.20
그래서 Tx,u Pu 를 수학식1에 적용하면 2차원 IDCT는 다음과 같이 변환된다.
Fu,=PuPFu,
본 발명에서 Pu, Pv는 IDCT 수행시 변환에서 분리되어 입력 샘플의 프리스케일링으로써 수행될 수 있다. MPEG 인코더/디코더에서는 이 프리스케일링을 양자화 및 탈양자화 과정에서 함께 수행할 경우 가장 큰 이득을 볼 수 있다.
본 발명에서 Tx,u의 상관계수 행렬에 대하여 그 대칭성을 이용하면 더욱 단순화 될 수 있다.
다음의 표4는 표3을 u에 대하여 홀수부와 짝수부로 나누어서 나타낸 도표이다.
Tx,u u (짝수) u (홀수)
x 0 2 4 6 1 3 5 7
0 .71 .92 .71 .38 1.00 .85 .57 .20
1 .71 .38 -.71 -.92 .85 -.20 -1.00 -.57
2 .71 -.38 -.71 .92 .57 -1.00 .20 .85
3 .71 -.92 .71 -.38 .20 -.57 .85 -1.00
4 .71 -.92 .71 -.38 -.20 .57 -.85 1.00
5 .71 -.38 -.71 .92 -.57 1.00 -.20 -.85
6 .71 .38 -.71 -.92 -.85 .20 1.00 .57
7 .71 .92 .71 .38 -1.00 -.85 -.57 -.20
여기서 u가 짝수일 경우는 Tx,u는 x=0,1,2,3과 x=4,5,6,7 사이의 Tx,u값이 서로 대칭을 이루고 있다. u가 홀수일 경우는 x=0,1,2,3과 x=4,5,6,7 사이의 Tx,u값이 부호가 서로 반대며 대칭구조를 갖는 반대칭적 구조인 것을 알 수 있다. 이러한 대칭적 구조는 행렬의 상반부로부터 곱셈결과를 하반부에 까지 적용하여 이용할 수 있는 있으므로, 곱셈의 과정를 덧셈의 과정으로 돌릴 수 있는 역할을 한다.
그리고 x=0,1,2,3에 대한 행렬합은 짝수 및 홀수 u값에 대하여 별도로 산출하는 것이 바람직하며, 그리고 나서 x에 대하여 적절한 하게 조합하여 결합함으로써 모든 x에 대한 행렬합을 구할 수 있다. DCT/IDCT를 동일한 ASIC 으로 구현할 수 있는 것은 바로 x에 대하여 적절하게 조합하여 각각의 경우에 적합한 행렬합을 산출할 수 있기 때문이다.
또한 2차원 IDCT 프로세서에 대한 행렬합을, 단일 차원을 고려하고 1/4의 곱을 무시한다면 다음의 수학식8과 같이 나타낼 수 있다.
이러한 계산 과정을 살펴보면, 매 8개의 출력 샘플에 대해서 18회의 곱셈 및 40회의 덧셈만을 요구하는 효율적인 구조가 된다.
그래서 DCT/IDCT 프로세서에서의 IDCT 계수 처리과정을 보면 다음과 같다.
먼저 프리스케일러(41)에서는 IDCT 계수 또는 데이터를 입력받아 프리스케일링 상관계수를 곱하게 된다(ST11). 그리고 먹스(42)에서 프리스케일링된 IDCT 상관계수 데이터를 행렬 멀티플라이어(43)의 입력부로 유도하여, 프리스케일링된 데이터가 행렬 멀티플라이어(43)의 멀티플라이어(57)/어큐뮬레이터(59)에 입력된다(ST12). 그러면 DCT/IDCT 판단부(63)는 IDCT 신호가 입력되면 어큐뮬레이터 유니트(60)에서 입력되는 IDCT를 덧셈 유니트(64)와 뺄셈 유니트(65)에 입력시켜 IDCT(IDCT_OUTPUT)가 출력되도록 한다. 그래서 특정 IDCT 상관계수 행렬을 곱할 수 있게 된다(ST13).
그리고 기준화 및 반올림 수단(44)은 행렬 멀티플라이어(43)의 1차 IDCT 결과에 기준화 및 반올림 처리를 하게 된다(ST14). 그리고 트랜스포즈 버퍼(45)를 전치를 수행하여 먹스(42)에 입력시키고, 먹스(42)는 이를 다시 행렬 멀티플라이어(44)에 입력하여, 전치된 데이터가 멀티플라이어(57)/어큐뮬레이터(59)에 입력되게 된다(ST16). 그러면 행렬 멀티플라이어(43)는 특정 IDCT 상관계수 행렬을 곱하여 최종 기준화 및 반올림 수단(46)으로 출력하게 된다(ST17).
그래서 최종 기준화 및 반올림 수단(46)은 행렬 멀티플라이어(43)의 최종결과에 기준화 및 반올림 처리를 하여, 블록버퍼(47)에서 DCT 계수를 출력시키게 되는 것이다(ST18).
한편 DCT/IDCT 프로세서에서의 DCT 계수 처리과정을 보면 다음과 같다.
먼저 프리스케일러(41)에서는 데이터를 입력받아 프리스케일링 상관계수를 곱하게 된다(ST11). 그리고 먹스(42)에서 프리스케일링된 DCT 상관계수 데이터를 행렬 멀티플라이어(43)의 입력부로 유도하여, 프리스케일링된 데이터가 행렬 멀티플라이어(43)의 멀티플라이어(57)/어큐뮬레이터(59)에 입력된다(ST12). 그러면 DCT/IDCT 판단부(63)는 DCT 신호가 입력되면 어큐뮬레이터 유니트(60)의 DCT를 DCT_출력(DCT_OUTPUT)으로 출력시키고 입력되는 DCT(DCT_INPUT)를 덧셈 유니트(64)와 뺄셈 유니트(65)에 입력시키게 된다. 그래서 특정 IDCT 상관계수 행렬을 곱할 수 있게 된다(ST13).
그리고 기준화 및 반올림 수단(44)은 행렬 멀티플라이어(43)의 1차 DCT 결과에 기준화 및 반올림 처리를 하게 된다(ST14). 그리고 트랜스포즈 버퍼(45)를 전치를 수행하여 먹스(42)에 입력시키고, 먹스(42)는 이를 다시 행렬 멀티플라이어(44)에 입력하여, 전치된 데이터가 멀티플라이어(57)/어큐뮬레이터(59)에 입력되게 된다(ST16). 그러면 행렬 멀티플라이어(43)는 특정 DCT 상관계수 행렬을 곱하여 최종 기준화 및 반올림 수단(46)으로 출력하게 된다(ST17).
그래서 최종 기준화 및 반올림 수단(46)은 행렬 멀티플라이어(43)의 최종결과에 기준화 및 반올림 처리를 하여, 블록버퍼(47)에서 IDCT 계수를 출력시키게 되는 것이다(ST18).
여기서 행렬 멀티플라이어(43)에서의 동작을 상세히 설명하면 다음과 같다.
먼저 수학식8에 따라서 주어진 입력 행의 홀수치 F1,3,5,7및 짝수치 F0,2,4,6은 각 클록 사이클 마다 쌍으로 데이터 경로에 들어간다. 특정 IDCT 상관계수 행렬의 원래 대칭성을 이용하기 위해서, 데이터 경로는 홀수 채널(51) 및 짝수 채널(52)로 나뉜다. 고정된 지점의 멀티플라이어(57)는 표1의 상관계수 행렬의 1이 아닌 상관계수를 입력 샘플에 곱하여 크로스바 스위치(68)(69)로 입력되는 일련의 곱셈값을 발생시킨다. 크로스바 스위치(68)는 입력치 A-D 및 출력치 E-H를 갖는 4:4 크로스바 스위치가 바람직하며, 필수적으로 4개의 4:1 멀티플렉서로 이루어진다. 크로스바 스위치(69)는 입력부 I, J, W 및 출력부 K-N를 갖는 3:4 크로스바 스위치가 바람직하며 필수적으로 4개의 멀티플렉서로 이루어진다. 크로스바 스위치(68)(69)는 특정 입력치를 특정 출력치로 사상(Mapping)하는 기능을 갖는다.
그리고 도6은 IDCT 실행시 먹스의 출력치를 보인 도표이고, 도7은 DCT 실행시 먹스의 출력치를 보인 도표이다. 덧셈 유니트(64)는 클럭 행렬의 첫 번째 4개의 값을 발생시킨다. 뺄셈 유니트(65)는 마지막 4개의 값을 발생시킨다. 각 덧셈 유니트(64) 및 뺄셈 유니트(65)는 도6 및 도7에 곱셈값의 합을 더함으로써 4사이클 각각 동안에 그 값 중에서 상이한 하나를 발생시킨다. 등록부(57)에 포함된 어큐뮬레이터 출력값은 어큐뮬레이터가 초기 세 사이클에서 중간합을 저장하기 때문에 4 사이클 중의 하나 동안은 유효하다. 크로스바 스위치(68)(69)의 출력 E 및 K에 연결된 어큐뮬레이터는 그 출력이 유효한 클럭 주기 동안에 사용되기 때문에 이들에 대한 추가 등록부는 필요하지 않게 된다.
당업자라면 도6 및 도7이 표3의 행렬로 단일 행 벡터를 곱한 시스템을 나타낸 것임을 알 것이다. 덧셈 유니트(64) 및 뺄셈 유니트(65)는 평행하게 작동한다. 표3의 행렬 특성에 의해 단지 25개의 등록부(56)(58)(61)(62)(66), 4개의 고정-지점 멀티플라이어, 어큐뮬레이터 유니트(60), 덧셈유니트(64) 및 뺄셈유니트(65)를 포함하는 10개의 캐리 룩 어헤드 에더(Carry Look Ahead Adder) 및 크로스바 스위치(68)(69) 및 멀티플렉서(70)(71), DCT/IDCT 판단부(63)로만 계산이 수행될 수 있다.
이처럼 본 발명은 신속하고 효율적인 DCT 및 IDCT를 수행할 수 있도록 하며, DCT와 IDCT를 한 개의 ASIC으로 구현하게 되는 것이다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
이상에서 살펴본 바와 같이, 본 발명에 의한 DCT/IDCT 프로세서는 신속하고 효율적인 DCT 및 IDCT를 수행할 수 있도록 하며, DCT와 IDCT를 한 개의 ASIC으로 구현할 수 있는 효과가 있게 된다.
또한 본 발명은 곱셈에 대한 산술 횟수를 줄여 연산횟수의 감소시킴으로써 처리속도가 빨라지며 고정소수점 곱셈 연산의 감소에 의해 정확성을 향상시킬 수 있고 실시간으로 정보를 처리해야 하는 음성 및 영상정보처리에 유용하게 사용할 수 있는 효과도 있게 된다.

Claims (3)

  1. DCT 계수 또는 IDCT 계수를 입력받아 프리스케일링을 수행하는 프리스케일러와, 벡터 곱셈을 수행하는 벡터 멀티플라이어 및 데이터를 축적하는 어큐뮬레이터를 구비한 행렬 멀티플라이어를 포함한 이산코사인변환/역이산코사인변환(DCT/IDCT) 프로세서에 있어서, 상기 행렬 멀티플라이어는,
    DCT 계수와 IDCT 계수간의 스위칭을 수행하는 복수개의 스위치와;
    어큐뮬레이터 유니트와 덧셈 유니트와 뺄셈 유니트 사이에서 DCT 계수와 IDCT 계수의 신호흐름을 제어하는 DCT/IDCT 판단부를 더 포함한 어큐뮬레이터로 구성된 것을 특징으로 하는 이산코사인변환/역이산코사인변환 프로세서.
  2. 제 1항에 있어서, 상기 DCT/IDCT 판단부는,
    DCT 신호가 입력되면 상기 어큐뮬레이터 유니트의 DCT를 DCT_출력으로 출력시키고 입력되는 DCT를 상기 덧셈 유니트와 뺄셈 유니트에 입력시키는 것을 특징으로 하는 이산코사인변환/역이산코사인변환 프로세서.
  3. 제 1항에 있어서, 상기 DCT/IDCT 판단부는,
    IDCT 신호가 입력되면 상기 어큐뮬레이터 유니트에서 입력되는 IDCT를 상기 덧셈 유니트와 뺄셈 유니트에 입력시켜 IDCT가 출력되도록 하는 것을 특징으로 하는 이산코사인변환/역이산코사인변환 프로세서.
KR1019980002587A 1998-01-30 1998-01-30 이산코사인변환/역이산코사인변환 프로세서 KR100270799B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019980002587A KR100270799B1 (ko) 1998-01-30 1998-01-30 이산코사인변환/역이산코사인변환 프로세서
US09/241,060 US6308193B1 (en) 1998-01-30 1999-02-01 DCT/IDCT processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980002587A KR100270799B1 (ko) 1998-01-30 1998-01-30 이산코사인변환/역이산코사인변환 프로세서

Publications (2)

Publication Number Publication Date
KR19990066552A KR19990066552A (ko) 1999-08-16
KR100270799B1 true KR100270799B1 (ko) 2000-11-01

Family

ID=19532239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980002587A KR100270799B1 (ko) 1998-01-30 1998-01-30 이산코사인변환/역이산코사인변환 프로세서

Country Status (2)

Country Link
US (1) US6308193B1 (ko)
KR (1) KR100270799B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062098B1 (en) * 2000-05-12 2006-06-13 International Business Machines Corporation Method and apparatus for the scaling down of data
US6970179B1 (en) * 2000-05-12 2005-11-29 International Business Machines Corporation Method and apparatus for the scaling up of data
US6754383B1 (en) 2000-07-26 2004-06-22 Lockheed Martin Corporation Lossy JPEG compression/reconstruction using principal components transformation
US7194128B1 (en) 2000-07-26 2007-03-20 Lockheed Martin Corporation Data compression using principal components transformation
KR100475246B1 (ko) * 2001-10-23 2005-03-10 한국전자통신연구원 고정 소수점 코드 변환을 이용한 엠펙1 오디오 화일의디코딩 성능 향상 방법 및 이를 위한 기록 매체
US7096245B2 (en) * 2002-04-01 2006-08-22 Broadcom Corporation Inverse discrete cosine transform supporting multiple decoding processes
EP1376379A3 (en) * 2002-04-01 2004-08-11 Broadcom Corporation Apparatus and method to perform an inverse discrete cosine transform for multiple decoding processes
KR100925427B1 (ko) * 2002-12-27 2009-11-06 엘지전자 주식회사 채널 등화기
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US8595281B2 (en) * 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US8849884B2 (en) 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
CN101207818B (zh) * 2006-12-20 2010-08-11 普诚科技股份有限公司 数据转换装置
KR20130137951A (ko) * 2012-06-08 2013-12-18 한국전자통신연구원 초고해상도 영상 코덱을 위한 역변환 방법
CN103957430B (zh) * 2014-03-28 2017-06-20 华为技术有限公司 离散余弦变换和负离散余弦变换的复用器
CN104581174B (zh) * 2015-01-22 2018-04-03 复旦大学 一种适用于hevc标准的高吞吐率dct和idct硬件复用结构
CN108184127B (zh) * 2018-01-13 2020-06-12 福州大学 一种可配置的多尺寸dct变换硬件复用架构

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2646778B2 (ja) * 1990-01-17 1997-08-27 日本電気株式会社 ディジタル信号処理装置
US5361220A (en) * 1991-11-29 1994-11-01 Fuji Photo Film Co., Ltd. Discrete cosine transformation with reduced components
US5471412A (en) * 1993-10-27 1995-11-28 Winbond Electronic Corp. Recycling and parallel processing method and apparatus for performing discrete cosine transform and its inverse
US5831881A (en) 1994-12-02 1998-11-03 Sican Gmbh Method and circuit for forward/inverse discrete cosine transform (DCT/IDCT)
US5701263A (en) 1995-08-28 1997-12-23 Hyundai Electronics America Inverse discrete cosine transform processor for VLSI implementation
US6052703A (en) * 1998-05-12 2000-04-18 Oak Technology, Inc. Method and apparatus for determining discrete cosine transforms using matrix multiplication and modified booth encoding

Also Published As

Publication number Publication date
US6308193B1 (en) 2001-10-23
KR19990066552A (ko) 1999-08-16

Similar Documents

Publication Publication Date Title
KR100270799B1 (ko) 이산코사인변환/역이산코사인변환 프로세서
KR100965704B1 (ko) 이미지 및 비디오 코딩을 위한 2d 변환
KR100451035B1 (ko) Vsli실행용역이산코사인변환프로세서
JP4006047B2 (ja) 画像縮小サンプリング方法
KR101153105B1 (ko) 고속 비디오 코덱 변환의 구현
US7730116B2 (en) Method and system for fast implementation of an approximation of a discrete cosine transform
US7689052B2 (en) Multimedia signal processing using fixed-point approximations of linear transforms
WO1999039303A1 (en) Method and system for computing 8x8 dct/idct and a vlsi implementation
KR20090027696A (ko) 순이산 및 역이산 코사인 변환의 효율적인 고정 소수점 근사
AU748947C (en) Method and apparatus for inverse quantization of MPEG-4 video
KR20000008477A (ko) 엠펙디코더의 역이산여현변환장치
EP0776559B1 (en) System and method for inverse discrete cosine transform implementation
US20020021842A1 (en) Circuit and method for performing a two-dimensional transform during the processing of an image
WO1996004733A9 (en) System and method for inverse discrete cosine transform implementation
KR20000041795A (ko) 파이프라인 dct 장치
JP2002314998A (ja) 同時的フォーマット縮小方法、及びエンコード・ビデオ信号のデコード方法
US7756351B2 (en) Low power, high performance transform coprocessor for video compression
Hatim et al. Efficient architecture for direct 8× 8 2D DCT computations with earlier zigzag ordering
JPH08329047A (ja) 離散コサイン変換回路,離散コサイン逆変換回路,mpegビデオエンコーダ,mpegビデオデコーダ
KR20090028736A (ko) 순이산 및 역이산 코사인 변환의 효율적인 고정 소수점 근사
Abdelhalim et al. Implementation of 3D-DCT based video encoder/decoder system
Bakr et al. Implementation of 3D-DCT based video encoder/decoder system
KR100262645B1 (ko) 역 이산 코사인 장치
Braatz et al. Low-power hevc 1-d idct hardware architecture
Konstantinides Key Components in the design of image and video compression ICs

Legal Events

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

Payment date: 20050721

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee