KR20000043735A - 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법 - Google Patents

비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법 Download PDF

Info

Publication number
KR20000043735A
KR20000043735A KR1019980060152A KR19980060152A KR20000043735A KR 20000043735 A KR20000043735 A KR 20000043735A KR 1019980060152 A KR1019980060152 A KR 1019980060152A KR 19980060152 A KR19980060152 A KR 19980060152A KR 20000043735 A KR20000043735 A KR 20000043735A
Authority
KR
South Korea
Prior art keywords
discrete cosine
dct
cosine transform
transform
idct
Prior art date
Application number
KR1019980060152A
Other languages
English (en)
Other versions
KR100289621B1 (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 KR1019980060152A priority Critical patent/KR100289621B1/ko
Publication of KR20000043735A publication Critical patent/KR20000043735A/ko
Application granted granted Critical
Publication of KR100289621B1 publication Critical patent/KR100289621B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • 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]

Landscapes

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

Abstract

1. 청구 범위에 기재된 발명이 속한 기술분야
본 발명은 변환 및 역변환 부호화를 이용하는 비디오 부호화 장치에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 4차례 중복된 1차원 DCT/IDCT를 단지 한 개의 1 차원 DCT/IDCT만으로 4번 반복하여 사용할 수 있도록 구성하여 하드웨어의 이용도를 높이며, 이를 통하여 소비전력의 감소시킨 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법을 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은 외부로부터 들어오는 비디오입력을 이산여현변환에 의해 주파수성분으로 변환시켜주는 한 개의 이산여현변환/역이산여현변환 수단; 한 개의 이산여현변환/역이산여현변환 수단에 연결되고 이산여현변환된 값들을 그 주파수성분의 중요성에 따라 다른 양자화 스텝으로 나누어 주는 양자화/역양자화 수단; 및 양자화된 데이터를 주사순서를 바꾸어 가변길이 부호화 수단으로 전달하는 주사변환 수단을 구비하고, 이산여현변환/역이산여현변환 수단을 소정 횟수만큼 반복하여 사용한다.
4. 발명의 중요한 용도
본 발명은 비디오 부호화 장치의 변환 및 역변환 부호화를 위해 이용됨.

Description

비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법
본 발명은 변환 및 역변환 부호화를 이용하는 비디오 부호화 장치에 관한 것으로, 특히 4차례 중복된 1차원 이산여현변환기/역이산여현변환기(DCT/IDCT : Discrete Cosine Transform/Inverse Discrete Cosine Transform)를 단지 한 개의 1 차원 DCT/IDCT만으로 4번 반복하여 사용할 수 있도록 구성하여 하드웨어의 이용도를 높이는 장치 및 그 방법에 관한 것이다.
MPEG-2 비디오 부호화장치는 크게, 영상을 입력으로 받아들이는 입력모듈, 움직임 보상과 추정을 위한 ME/MC 모듈, 전체 메모리를 관리하는 프레임 메모리 모듈, DCT 등의 데이터 변환에 관련된 변환기 모듈, 가변길이 부호화를 위한 VLC(Variable Length Coding) 모듈로 나뉘어질 수 있다. 특히 DCT/IDCT, 양자화기/역양자화기(Q/IQ)로 이루어진 변환기 모듈은 인코더(Encoder) 전체회로의 구성상 영상의 압축이 가장 많이 이루어지는 부분이며, 입력되는 영상의 처리시간도 다른 모듈에 비해 시간이 많이 할당되는 모듈이다.
이와 관련하여 일반적으로, 비디오 부호화 장치, 특히 변환 및 역변환 부호화를 위한 장치에 있어서 종래에는 2개의 2차원 DCT/IDCT와 양자화기/역양자화기, 그리고 주사 변환기를 이용하여 구현하였다. 여기서, 2차원 DCT/IDCT는 DCT 변환의 직교 변환의 직교 변환 특성과 분리성으로 인해서 각각 2개의 1차원 DCT/IDCT와 1개의 매트릭스 전치기로 분리 구성될 수 있었다. 종래에는 이렇게 구현된 2개의 2차원 DCT/IDCT를 한 개는 DCT를 위해 사용하고 다른 한 개는 IDCT를 위해서 사용함으로써 동일한 기능을 수행하는 하드웨어를 중복해서 사용하였다. 이는 전체 변환 및 역변환 부호화를 위한 하드웨어 비용을 증가시키는 요인이 될 뿐만 아니라, 소비전력을 증가시키는 요인으로 작용하였다.
이러한 문제를 해결하기 위해 우라모토(Uramoto) 등은 논문 "IEEE JSSC(Journal of Solid-State Circuit)"에 "A 100MHz 2-D DCT Core Processor(pp. 492-499 참조)"라는 제목하에 2차원 DCT/IDCT를 구현하는데 1차원 DCT/IDCT 2개와 1개의 전치회로를 사용하여 구현한 기술을 발표한 바 있지만, 종래의 문제점을 많이 개선하지는 못하였다.
따라서, 본 발명은 상기 문제점을 해결하기 위해 안출된 것으로서, 하드웨어 비용과 소비전력을 줄인 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법을 제공하는데 그 목적이 있다.
또한, 본 발명의 다른 목적은, 중복된 DCT/IDCT를 단지 한 개의 1차원 DCT/IDCT만으로 다수번 반복하여 사용할 수 있도록 구성하여 하드웨어의 이용도를 높인 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법을 제공하는데 있다.
도 1 은 본 발명에서 제시하는 변환 및 역변환 장치를 사용한 비디오 인코더 전체 블록도.
도 2 는 본 발명에서 제시하는 변환 및 역변환 장치의 구성도.
도 3 은 본 발명에서 제시하는 변환 및 역변환 장치의 타이밍도.
도 4 는 도 2 의 입력 데이터(DATA_IN)에 대한 타이밍도.
도 5 는 도 2 의 입력 데이터(DATA_IN)에 대한 인터페이스 장치 구성도.
도 6 은 도 2 의 출력 데이터(TO_DPCM)에 대한 인터페이스 장치 구성도.
도 7 은 도 2 의 출력 데이터(TO_VLC)에 대한 데이터 출력 순서도.
도 8 은 지그재그 주사 순서도.
도 9 는 얼트네이트 주사 순서도.
도 10 은 주사 어드레스 생성기(SAG)에서 출력 어드레스 생성시 지그재그 및 얼트네이트 주사에 다른 데이터 순서 매핑 관계도.
도 11 은 본 발명에서 사용한 2차원 DCT/IDCT(Discrete Cosine Transform/Inverse Discrete Cosine Transform)의 구현 방식(scheme)의 나타낸 도면.
도 12 는 본 발명에서 제시하는 변환 및 역변환기를 위한 3비트 시리얼 분산 연산을 이용한 1차원 DCT/IDCT의 구조도.
도 13 은 본 발명에서 제시하는 변환 및 역변환기를 위한 DCT/IDCT의 입력 데이터 타이밍 스케쥴.
도 14 는 도 2 의 PISO에 대한 회로도.
도 15 는 도 2 의 PISO에 대한 회로도.
* 도면의 주요 부분에 대한 부호의 설명
100 : 1차원 DCT/IDCT 200A : 양자화기
200B : 역양자화기
상기 목적들을 달성하기 위한 본 발명의 장치는, 비디오 인코더의 변환 및 역변환 부호화 장치에 있어서, 외부로부터 들어오는 비디오입력을 이산여현변환(DCT)에 의해 주파수성분으로 변환시켜주는 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단; 상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단에 연결되고 이산여현변환(DCT)된 값들을 그 주파수성분의 중요성에 따라 다른 양자화 스텝으로 나누어 주는 양자화/역양자화 수단; 및 양자화된 데이터를 주사순서를 바꾸어 가변길이 부호화 수단으로 전달하는 주사변환 수단을 구비하고, 상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단을 소정 횟수만큼 반복하여 사용는 것을 특징으로 한다.
상기 본 발명에 의한 비디오 인코더의 변환 및 역변환 부호화 장치는, 상기 양자화/역양자화 수단의 출력과 외부데이터를 입력하여 상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단으로 전달하는 입력 버퍼링 수단; 및 상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단의 출력을 상기 양자화/역양자화 수단으로 전달하는 출력 버퍼링 수단을 더 포함하는 것을 특징으로 한다.
상기 목적들을 달성하기 위한 본 발명의 방법은, 비디오 인코더의 변환 및 역변환 부호화 방법에 있어서, 외부로부터 들어오는 비디오입력을 1개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단에 의해 주파수성분으로 변환시켜주는 제 1 단계; 상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단을 통해 이산여현변환(DCT)된 값들을 그 주파수성분의 중요성에 따라 다른 양자화 스텝으로 나누어 주는 제 2 단계; 양자화된 데이터를 주사순서를 바꾸어 가변길이 부호화 수단으로 전달하는 제 3 단계를 포함하되, 상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단을 소정 횟수만큼 반복하여 사용하는 것을 특징으로 한다.
상기 본 발명에 의한 비디오 인코더의 변환 및 역변환 부호화 방법은, 양자화/역양자화 수단의 출력과 외부데이터를 입력 버퍼링 수단을 통해 상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단으로 전달하는 제 4 단계; 및 상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단의 출력을 출력 버퍼링 수단을 통해 상기 양자화/역양자화 수단으로 전달하는 제 5 단계를 더 포함하는 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다. 도면에서 종래기술과 동일한 구성요소에 대하여는 동일한 도면 부호를 인용하였다.
본 발명에서 제시하는 한 개의 1차원 DCT/IDCT만을 이용한 비디오 부호화기의 변환 및 역변환 부호화 장치는 도1과 같은 전체 부호화 장치의 일부로 이용된다. 도1에서 우측 점선블럭으로 표시된 것이 본 발명에 의한 한 개의 1차원 DCT/IDCT만을 이용한 비디오 부호화기의 변환 및 역변환 부호화 장치의 개념을 나타내고 있다. 그 구성은, 크게, 외부로부터 들어오는 비디오입력을 DCT에 의해 주파수성분으로 변환시켜주는 한 개의 DCT/IDCT부(100)와, 상기 한 개의 DCT/IDCT부에 연결되고 DCT변환된 값들을 그 주파수성분의 중요성에 따라 다른 양자화 스텝으로 나누어 주는 양자화기/역양자화기부(200)와, 양자화된 데이터를 주사순서를 바꾸어 가변길이부호화부로 전달하는 주사변환기부가 주요 구성을 이루고 있다.
도1에서 DCT부(100)는 외부에서 들어오는 비디오 입력을 DCT(Discrete Cosine Transform)에 의해 주파수 성분으로 변환시켜 주는 역할을 하고, Q(Quantization)(200A)는 DCT변환된 값들을 그 주파수 성분의 중요성에 따라 다른 양자화 스텝(step)으로 나누어 주어 부호화되는 비트 수를 줄여 압축률을 높여 주는 역할을 한다. 그리고, SCAN은 양자화된 데이터(data)를 주사순서를 바꾸어 VLC(Variable Length Coding)로 넘겨주는 역할을 한다. 또한, 양자화된 데이터는 다시 IDCT(Inverse Discrete Cosine Transform)(100)와 IQ(Inverse Quantization) (200B)를 거쳐 DPCM(Differential Pulse Coded Modulation)에서 이용할 수 있도록 넘겨지게 된다.
본 발명에서 제시하는 변환 및 역변환 부호화 장치는 54MHz sck4를 클럭으로 사용하며, DCT용 mbck(매크로블럭클럭)이 뜰 때마다 1개의 매크로블럭(macro block)을 처리해야 한다. 매크로블럭클럭은 27MHz sck2로 660 클럭 마다 발생하므로 sck4로는 1320 클럭마다 하나의 매크로블럭을 처리할 수 있도록 장치를 구성해야 한다. 본 발명에 의한 부호화장치는 sck4와 매크로블럭클럭 신호 이외에도 다음과 같은 신호가 필요하다. 다음의 (표 1)은 본 발명에 의한 부호화장치의 입출력 신호와 그 기능을 기술한 것이다.
altscan 주사방식 선택신호
sck4 54MHz 클럭 신호
DATA_IN(9) DPCM부에서 DCT로 입력되는 데이터
FROM_VLC(12) VLC 에스램으로부터 오는 DCT 데이터
MB_CK 매크로블럭 클럭
QSCALE_CODE(5) 비트율제어부에서 양자기로 입력되는 양자화 스케일 코드 값
QSCALE_TYPE 비트율제어부에서 양자기로 입력되는 양자화 스케일 종류 지정 신호
RESET 시스템 리셋 신호
TO_DPCM(9) DPCM으로 출력되는 IDCT 출력 데이터
VLC_MEM_ADDR(6) VLC 내의 에스램에 입력되는 어드레스
변환 및 역변환 장치의 실시간 처리를 위해서는 54MHz의 sck4 클럭을 사용할 시에 하나의 매크로블럭을 처리하는데 할당이 된 1320 클럭내의 2차원 DCT, Q, IQ, 2차원 IDCT, SCAN의 5가지 연산을 수행하여야 한다. 연산의 양과 하드웨어의 복잡도를 비교해 볼 때 2차원 DCT와 IDCT의 연산 시간이, 전체 2차원 DCT, Q, IQ, 2차원 IDCT, 스캔(SCAN)으로 이루어진 변환 및 역변환 장치의 클럭 스케쥴링의 전 부분을 차지하고 있다. 따라서, DCT/IDCT의 동작에 대한 고려가 전체 장치의 실시간 처리여부에 대한 중요한 열쇠가 된다. 2차원 DCT/IDCT의 경우, 수학적인 연산이 직교 변환이기 때문에 1차원 DCT/KDCT의 동일한 연산이 두 번 수행되며, 두 번의 1차원 DCT/IDCT 연산을 하나의 1차원 DCT/IDCT만으로 전체 2차원 DCT/IDCT를 구현할 수 있다. 이러한 속성을 기본으로, 1차원 DCT/IDCT 하나를 이용해 첫 번째 1차원 DCT, 두 번째 1차원 DCT, 첫 번 째 1차원 IDCT, 그리고 두 번째 1차원 IDCT의 연산을 수행하는 2차원 DCT/IDCT를 구성한다. 하나의 1차원 DCT/IDCT가 4번의 1차원 DCT/IDCT를 수행해야 하므로 6개의 블록을 실시간 처리하려면, 변환 및 역변환 장치가 1320 클럭내에 12개의 블록을 수행하여야 한다.
위와 같은 제한 조건을 만족하는 전체의 클럭에 대한 스케쥴링을 기술하면 아래와 같다. 변환 및 역변환 장치의 전체 구조는 도 2와 같으며, 입출력 타이밍은 도 3과 같다.
본 구조에서는 도 2와 같이 6개의 블록(block)이 한꺼번에 DCT부에서 DCT에 대한 연산과 양자화(Quantization)의 연산만 이루어지게 되며, 이렇게 되면, 이 IQ와 IDCT를 거치지 않은 6개의 블록을 저장할 에스램(SRAM)이 필요하게 된다. 여기서는 이 에스램(SRAM)을 따로 두지 않고 인접 VLC에서 사용되는 에스램(SRAM)을 이용하는데, 이 에스램(SRAM)에는 데이터가 양자화되어 얼트네이트(alternate) 주사나 지그재그(zig-zag) 주사순서로 저장되어 있으므로 다시 IQ와 IDCT에서 사용하기 위해서는 ISCAN(Inverse SCAN) 작업이 필요하다. 이 작업은 주사 어드레스 생성기(SAG)에서 생성되는 주소를 저장할 때와 동일 하게 하여 읽어오는 동작으로 수행될 수 있다. 변환 및 역변환 장치는 도 2에서와 같이 6개의 블록이 한꺼번에 DCT, Q가 수행되고, VLC_DCT_MEM(SRAM)에 저장되었다가 IQ, IDCT를 수행하기 위해 다시 읽어오는 방법을 취하고 있다. 또한, ID DCT/IDCT 코어(core)는 1개의 칼럼(8 pixel)의 데이터를 동시에 입력으로 받고, 마찬가지로 1개 칼럼을 동시에 출력으로 내 놓고, ID의 경우 한 개 칼럼을 처리하는데 5개 클럭이 소요되므로 5 클럭 마다 8개의 데이터를 입력으로 넣어 주어야 한다. 출력도 2번째 1차원의 경우 7클럭이 소요되어 7클럭마다 8개의 데이터를 처리해야 한다. 따라서, 매 클럭마다 1개의 픽셀(pixel) 값이 입력되는 기존의 구조에 적용하기 위해서는 입력부에서 데이터(DATA)의 언더플로우(underflow)를 해결해 주는 입력 버퍼(input buffer)와, DCT/IDCT로부터 7클럭마다 출력되는 1개의 칼럼(column)의 데이터(data)를, 매 클럭마다 1개의 픽셀(pixel)의 데이터를 받아들이는 인접 장치와의 데이터 레이트(rate)와 동기시키기 위한 출력 버퍼(output buffer)가 필요하게 된다.
DCT/IDCT의 인접 장치인 DPCM으로부터 DCT/IDCT로 입력이 되는 형태는 매 클럭마다 1개의 픽셀(pixel) 값이 출력된다. DCT/IDCT의 값은 입력측에서는 64클럭 동안 64개의 데이터를 줄 수 있고, IDCT는 35 클럭 동안 64개의 데이터가 들어가야 하므로 그 차이인 64-35=29개 픽셀(pixel) 만큼의 데이터가 버퍼에 저장되어야 한다. 또 픽셀(pixel)별로 순차적으로 들어오는 데이터를 8개 픽셀(pixel)씩 병렬적으로 처리해야 하므로 SIPO(Serial Input to Parallel Output) 버퍼가 필요하여 3개의 칼럼(24 픽셀)의 데이터를 저장할 일반 플립플롭(F/F : Flip Flop) 버퍼와 함께 1개 칼럼의 SIPO 버퍼가 입력측에 필요하다. 출력측에서는 7개 클럭당 8개의 픽셀(pixel)을 처리해야 하므로 한 개의 칼럼을 처리하는데 1개의 데이터가 적체되고, 8개의 칼럼, 즉 1개 블록을 처리하는데는 8개의 데이터가 쌓이게 되므로 이를 저장할 1개 칼럼(8 픽셀)을 저장할 버퍼와 8개의 데이터가 병렬적으로 출력되는 것을 1개의 데이터씩 순차적으로 내보내려면 PISO(Parallel Input to Serial Output) 버퍼가 필요하므로 2개의 칼럼을 처리할 수 있는 PISO 버퍼가 필요하다. 도 3과 같이 변환 및 역변환 장치의 입력은 매크로블럭클럭 이후 64 클럭 동안 데이터가 들어오고, 32 클럭을 중단했다가 다시 64 클럭 동안 데이터가 들어오는 동작을 반복하여 6개 블록의 데이터를 받아들이고, 마찬가지로 출력도 64 클럭 동안의 데이터출력과 32 클럭의 휴식이 6번 반복되어 결과를 모두 출력하도록 되어 있다.
주변 장치와의 인터페이스에 관하여 설명하면 다음과 같다.
DPCM의 인터페이스를 위해서는 먼저 클럭이 서로 다른 것을 사용할 경우에 1) 변환 및 역변환 장치로 데이터를 54MHz로 전달하고, 2) IDCT를 거친 후 54 MHz로 전달되는 데이터와의 인터페이스이다. 이는 DPCM에 있는 버퍼를 통해서 가능하다. 1)에 해당하는 사항으로, 기본적으로 출력은 54MHz이며, 인에이블(enable) 신호는 도 4와 같은 형태로 나와야 하며, 도 4는 변환 및 역변환 장치의 DCT_ENABLE신호를 나타낸 것이다. 도 4와 같은 형태의 신호를 만들기 위해 이 장치의 클럭은 sck2로 하여 각각 32클럭(sck4 64클럭)과 16클럭(sck4 32클럭)을 카운트하고, 6개 블록을 카운트한 후 다시 인에이블 신호를 기다리는 동작을 수행한다.
도5는 에스램(SRAM)에서 저장된 값을 읽어와서 감산(subtract)한 후에 변환 및 역변환 장치로 보내주는 과정을 도시한 것으로 모든 램(RAM) 제어신호와 어드레스를 dct_enable에 맞추어 54MHz로 출력되도록 하여야 한다. 변환 및 역변한 장치로부터 입력된 값은 움직임 보상된 데이터와 합해져서 다시 램(RAM)에 저장된다. 따라서, 변환 및 역변환 장치로부터 입력된 IDCT값과 합해질 움직임 보상 데이터를 램(RAM)으로부터 IDCT값이 들어오는 순서대로 읽어와서 더해진 값을 다시 램(RAM)에 저장하는 장치가 필요하다. 이에 대한 데이터 흐름은 도6에 도시되어 있다.
VLC와의 인터페이스는 다음과 같다. DCT와 Q를 끝낸 데이터는 도 7과 같은 순서로 나오게 된다. 그런데, DCT의 결과는 DC(한글이름 또는 영문 풀네임:
값과 DC에 가까운 AC(한글이름 또는 영문 풀네임: )값들이 중요하게 되고, 나머지 고주파 성분은 0에 가까워 양자화에 의해 0이 되어버릴 확률이 높다. 따라서, 현재의 순서를 그대로 이용한다면, 불필요한 구조파의 0값들도 모두 코딩해야 하므로 압축에 도움이 되지 못한다.
이러한 이유로 양자화된 데이터는 도 8과 같이 지그재그 방식이나 도 9와 같은 얼트네이트 방식으로 순서를 바꾸어 유용한 데이터만 코딩하기 좋은 형태를 만들어 놓게 된다. 이를 위해 SAG부에서는 도 10의 순서로 나오는 DCT 데이터를 얼트스캔(altscan) 신호를 보고 얼트스캔(altscan)이 1이면 얼트네이트 주사순서에 해당하는 주소를, 0이면 지그재그 주사 순서에 해당하는 주소를 발생시켜 주고, 이 값을 양자화의 결과를 저장할 에스램(SRAM)이 있는 VLC로 전달해준다. 마찬가지로 양자화된 결과를 읽어와 역 스캔(SCAN)할 때에도 저장되어진 순서 그대로 읽어오면 되므로 동일한 롬(ROM) 테이블을 사용하면 된다. VLC의 에스램(SRAM)에 데이터를 읽기(read)하거나, 쓰기(write)할 경우에 SAG부에서 발생되는 어드레스(address)는 도 10과 같은 순서로 출력된다.
1차원 DCT/IDCT부의 설계에 관해 기술하면 다음과 같다. DCT의 구현은 현재까지 여러 가지 방법들이 제안되었으며, 본 연구에서는 매트릭스 분해(Matrix decomposition)를 이용한 직접 연산 방식을 기본으로 하여 구현한다. 본 연구에서 사용한 알고리즘은 매트릭스(Matrix)의 분해(decomposition) 방법으로 하나의 픽셀(pixel)값을 처리하기 위한 곱셈의 회수가 적어서, 곱셈에 의해서 생길 수 있는 에러(error)의 크기가 작다는 장점이 있다. 에러(error)가 적은 알고리즘에서는 구현하고자 하는 회로의 내부 최소 처리 비트수가 적어져, 전체적인 회로의 크기가 작아진다. 또한, 변환 및 역변환의 구현상 DCT부에 할당된 클럭수가 적기 때문에, 매트릭스 분해(Matrix decomposition)를 이용한 직접 연산 방식이 적합한 구조이다.
DCT의 하드웨어 구현 방식(scheme)은 도 11과 같다. 2-D DCT/IDCT의 구현은 DCT(Discrete Cosine Transform)이 직교 변환(orthogonal transform)이기 때문에, 1차원과 2차원의 연산은 같다. 1-D DCT/IDCT의 하드웨어 구현은 매트릭스 분해(matrix decomposition)를 통해 매트릭스(matrix)의 차원(dimension)을 줄인 후, 이를 직접 하드웨어로 구현한다. 매트릭스(matrix) 연산의 방법은 롬 곱셈기(ROM multiplier)를 통한 3-비트 직렬 처리(serial processing)를 기본으로 한다. 도 12는 구현된 1-D DCT/IDCT의 블록도를 나타내었다. 2-D DCT/IDCT를 구현하기 위하여 1-D DCT/IDCT를 반복적으로 사용하고 있다. 본 발명에서는 반복적으로 쓰이는 2개의 1-D DCT/IDCT를 한 개만 사용하여 2-D DCT/IDCT를 구현하였다. 그리고, 이와같은 과정을 2차원 IDCT에도 적용하여 결과적으로 한 개의 1차원 DCT/IDCT로 2개의 2차원 DCT/IDCT를 연산하도록 구성하였다.
본 발명에서 사용하는 1차원 DCT/IDCT의 클럭 속도는 DCT 및 IDCT에 대해서 도 13에 나타나 있다. DCT 데이터의 입력은 선입선출회로(FIFO)를 거친 데이터가 9비트 2의 보수로 8개의 픽셀 데이터가 병렬로 입력된다. IDCT 데이터는 역양자화를 거친 계수들이 에스램(SRAM) 버퍼에 저장되어 있던 데이터가 12 비트 2의 보수의 포맷으로 병렬로 입력된다. 이렇게 입력된 데이터는 IDCT를 거친 후 9비트 2의 보수 포맷으로 출력된다.
입력 데이터와 출력데이터의 범위는 다음의 (표 2)와 같다.
IDCT 입력 데이터 12 비트 2의 보수 -2048∼2047
IDCT 출력 데이터 9 비트 2의 보수 -256∼255
DCT 입력 데이터 9 비트 2의 보수 -256∼255
ICT 출력 데이터 12 비트 2의 보수 -2048∼2047
내부의 데이터 포맷은 21 비트로 설계하였다. 첫 번째 1차원 DCT에서 4번, 두 번째 1차원 DCT에서 6번의 누적 연산 과정을 거친 데이터는 16 비트이며, 하위 2비트와 상위 5비트를 라운딩(rounding)과 클립핑(clipping)을 통해 9비트의 값으로 출력하게 된다.
1차원 DCT/IDCT후의 계산값에 대한 전치행렬을 구성하는 회로는 램(RAM)으로 구성하지 않고 다중화기(MUX)와 플립플롭(Flip-flop)으로 구성하였다. 전치회로의 한 전치셀은 16 비트의 레지스터들과 멀티플렉서로 구성될 수 있다. 또한 전치행열의 값이 출력되는 마지막 칼럼의 경우에 데이터의 출력이 16비트가 아닌 DCT/IDCT의 처리 단위인 3비트로 이루어져 있다. 이는 16비트로 그 출력을 정할 경우 18 × 8 = 144 비트의 버스가 필요하게 되며, 이는 레이아웃(layout)시 와이어(wire)가 차지하는 배선영역이 많은 부분을 차지하게 되어 비효율적이다. 이를 해결하기 위하여, DCT/IDCT의 입력부에 있는 PISO를 전치회로의 출력단에 추가시켰다. 이때, 필요한 부분은 다중화기(MUX)만 필요하게 된다. 결과적으로 DCT/IDCT의 입력단에 필요한 1차원/2차원 DCT/IDCT의 선택을 위한 멀티플렉서의 크기가 16 × 8 = 128 비트의 다중화기(mux)가 아닌 3 × 8 = 24 비트의 다중화기로 감소시킬 수 있었다.
입력버퍼는 DPCM과 IQ의 결과가 1클럭에 1개의 픽셀(pixel)값을 입력과, DCT/IDCT의 처리 속도가 일치하지 않음으로서 발생되는 데이터의 언더플로우(underflow)를 해결하기 위해 쓰이게 된다. DCT/IDCT의 경우 5클럭마다 1개의 칼럼(column)이 처리되며, 입력되는 픽셀(pixel)은 매 클럭마다 입력된다. 따라서, 1-D DCT/IDCT의 경우 1블록이 처리되는데 5 × 7 = 35 클럭이 소요되며 이는 64 - 35 = 29 픽셀(pixel)의 데이터가 저장될 버퍼가 필요하다. 따라서, 입력버퍼의 크기(size)는 DCT/IDCT의 두가지 모드에 대한 입력을 저장할 수 있도록 12비트 × 29이다.
도 14는 입력버퍼의 구조를 나타내었다. 도 14에서 8 : 1 다중화기(mux)의 각각의 입력은 3개의 플립플롭(F/F) 간격으로 연결되어 있으며, 각 윈도우 사이의 간격은 5클럭이 된다. 따라서, DCT/IDCT에서 각 데이터를 읽어가는 5클럭마다 다중화기(MUX)의 어드레스(address)를 증가시켜주면 8 칼럽(column)의 데이터를 순서에 맞게 읽어 들일 수 있게 된다.
도 15는 출력버퍼를 나타낸 것으로, DCT의 결과와 IDCT의 결과가 각각 Q와 DPCM으로, 1클럭에 1픽셀의 데이터를 입력시켜 준다. DCT/IDCT로부터의 결과는 7클럭마다 하나의 칼럼(COLUMN)의 데이터가 출력되므로 7x7 = 49 클럭만에 모든 결과가 출력 되며, 64 클럭 동안 1 블록의 데이터가 출력 되어야 하므로 64-49=15 픽셀의 버퍼가 필요하다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
이상에서 설명한 바와 같이 본 발명에서 제시하는 1개의 1차원 DCT/IDCT만을 사용하여 4번 반복 수행하도록 구성하면 비디오 부호화 장치를 하드웨어로 구현하는데 약 3/4의 면적 감소 효과를 얻을 수 있다. 이를 위해서 본 발명에서는 입/출력부에 버퍼를 약간 추가하여 인접 장치와의 인터페이스를 도모하였고 1차원 DCT/IDCT의 내부 처리속도 향상을 위해서 1번에 3비트씩 쉬프트하면서 연산하는 3비트 시리얼 분산 연산 구조를 채택하였다. 이는 영상 신호처리 분야에서 비디오 부호화를 위한 시스템을 구현할때 하드웨어 면적으로 인한 비용을 줄이고 소비전력을 감소시키기 위해서 활용될 수 있다.

Claims (9)

  1. 비디오 인코더의 변환 및 역변환 부호화 장치에 있어서,
    외부로부터 들어오는 비디오입력을 이산여현변환(DCT)에 의해 주파수성분으로 변환시켜주는 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단;
    상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단에 연결되고 이산여현변환(DCT)된 값들을 그 주파수성분의 중요성에 따라 다른 양자화 스텝으로 나누어 주는 양자화/역양자화 수단; 및
    양자화된 데이터를 주사순서를 바꾸어 가변길이 부호화 수단으로 전달하는 주사변환 수단을 구비하고,
    상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단을 소정 횟수만큼 반복하여 사용는 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 장치.
  2. 제 1 항에 있어서,
    상기 양자화/역양자화 수단의 출력과 외부데이터를 입력하여 상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단으로 전달하는 입력 버퍼링 수단
    을 더 포함하는 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 장치.
  3. 제 2 항에 있어서,
    상기 입력 버퍼링 수단이 에스램(SRAM)으로 구성된 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 장치.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단의 출력을 상기 양자화/역양자화 수단으로 전달하는 출력 버퍼링 수단
    을 더 포함하는 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 장치.
  5. 제 4 항에 있어서,
    상기 출력 버퍼링 수단이 에스램(SRAM)으로 구성된 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 장치.
  6. 비디오 인코더의 변환 및 역변환 부호화 장치에 있어서,
    외부로부터 들어오는 비디오입력을 이산여현변환(DCT)에 의해 주파수성분으로 변환시켜주는 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단;
    상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단에 연결되고 이산여현변환(DCT)된 값들을 그 주파수성분의 중요성에 따라 다른 양자화 스텝으로 나누어 주는 양자화/역양자화 수단;
    상기 양자화/역양자화 수단의 출력과 외부데이터를 입력하여 상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단으로 전달하는 입력 버퍼링 수단;
    상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단의 출력을 상기 양자화/역양자화 수단으로 전달하는 출력 버퍼링 수단; 및
    양자화된 데이터를 주사순서를 바꾸어 가변길이 부호화 수단으로 전달하는 주사변환 수단을 구비하고,
    상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단을 소정 횟수만큼 반복하여 사용하는 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 장치.
  7. 비디오 인코더의 변환 및 역변환 부호화 방법에 있어서,
    외부로부터 들어오는 비디오입력을 1개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단에 의해 주파수성분으로 변환시켜주는 제 1 단계;
    상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단을 통해 이산여현변환(DCT)된 값들을 그 주파수성분의 중요성에 따라 다른 양자화 스텝으로 나누어 주는 제 2 단계;
    양자화된 데이터를 주사순서를 바꾸어 가변길이 부호화 수단으로 전달하는 제 3 단계를 포함하되,
    상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단을 소정 횟수만큼 반복하여 사용하는 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 방법.
  8. 제 7 항에 있어서,
    양자화/역양자화 수단의 출력과 외부데이터를 입력 버퍼링 수단을 통해 상기 한 개의 이산여현변환/역이산여현변환(DCT/IDCT) 수단으로 전달하는 제 4 단계
    를 더 포함하는 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 이산여현변환/역이산여현변환(DCT/IDCT) 수단의 출력을 출력 버퍼링 수단을 통해 상기 양자화/역양자화 수단으로 전달하는 제 5 단계
    를 더 포함하는 것을 특징으로 하는 비디오 인코더의 변환 및 역변환 부호화 방법.
KR1019980060152A 1998-12-29 1998-12-29 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법 KR100289621B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980060152A KR100289621B1 (ko) 1998-12-29 1998-12-29 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980060152A KR100289621B1 (ko) 1998-12-29 1998-12-29 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20000043735A true KR20000043735A (ko) 2000-07-15
KR100289621B1 KR100289621B1 (ko) 2001-05-02

Family

ID=19566991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980060152A KR100289621B1 (ko) 1998-12-29 1998-12-29 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100289621B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100348210B1 (ko) * 2000-07-21 2002-08-09 (주)씨앤에스 테크놀로지 영상신호의 압축/복원용 양자화기
KR100776235B1 (ko) * 2003-07-14 2007-11-16 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 변환 표시로의 변환 또는 변환 표시의 역변환을 위한 장치및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100348210B1 (ko) * 2000-07-21 2002-08-09 (주)씨앤에스 테크놀로지 영상신호의 압축/복원용 양자화기
KR100776235B1 (ko) * 2003-07-14 2007-11-16 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. 변환 표시로의 변환 또는 변환 표시의 역변환을 위한 장치및 방법

Also Published As

Publication number Publication date
KR100289621B1 (ko) 2001-05-02

Similar Documents

Publication Publication Date Title
Kovac et al. JAGUAR: A fully pipelined VLSI architecture for JPEG image compression standard
US5659362A (en) VLSI circuit structure for implementing JPEG image compression standard
Zhu et al. Fully pipelined DCT/IDCT/Hadamard unified transform architecture for HEVC Codec
US5649077A (en) Modularized architecture for rendering scaled discrete cosine transform coefficients and inverse thereof for rapid implementation
JP3615241B2 (ja) ビデオデータデコーダのアーキテクチャ
CN111405289A (zh) 部分解码电路和部分编码电路
EP0714212A2 (en) Video decoder using concurrent processing and resource sharing
Hartenstein et al. Reconfigurable machine for applications in image and video compression
JPH07240844A (ja) 画像データ処理装置および画像データ処理方法
Lafruit et al. An efficient VLSI architecture for 2-D wavelet image coding with novel image scan
Zheng et al. A reconfigurable architecture for discrete cosine transform in video coding
Sjövall et al. High-level synthesis implementation of HEVC 2-D DCT/DST on FPGA
Kim et al. An area efficient DCT architecture for MPEG-2 video encoder
Li et al. A highly parallel joint VLSI architecture for transforms in H. 264/AVC
KR100289621B1 (ko) 비디오 인코더의 변환 및 역변환 부호화 장치 및 그 방법
KR100451584B1 (ko) 웨이블릿 변환과 움직임 추정을 이용한 동영상 부호화 및복호화 장치
KR100230251B1 (ko) 동영상 부호화장치에 있어서 신호처리방법 및 회로
Bae et al. Synthesis of VLSI architectures for two-dimensional discrete wavelet transforms
Viitamäki et al. High-level synthesized 2-D IDCT/IDST implementation for HEVC codecs on FPGA
KR100451731B1 (ko) 역 이산 코사인 변환 장치
CN101237574A (zh) 图像数据的译码运算系统
Bakr et al. Implementation of 3D-DCT based video encoder/decoder system
KR0178746B1 (ko) 매크로블럭의 반픽셀처리장치
JP2003256405A (ja) 画像処理装置、画像処理方法、プログラム、及び記憶媒体
Lee et al. Design of high-performance transform and quantization circuit for unified video CODEC

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

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140205

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee