KR100306743B1 - 피씨기반비디오부호화및복호화장치및그방법 - Google Patents

피씨기반비디오부호화및복호화장치및그방법 Download PDF

Info

Publication number
KR100306743B1
KR100306743B1 KR1019970071603A KR19970071603A KR100306743B1 KR 100306743 B1 KR100306743 B1 KR 100306743B1 KR 1019970071603 A KR1019970071603 A KR 1019970071603A KR 19970071603 A KR19970071603 A KR 19970071603A KR 100306743 B1 KR100306743 B1 KR 100306743B1
Authority
KR
South Korea
Prior art keywords
data
digital signal
module
input
signal processor
Prior art date
Application number
KR1019970071603A
Other languages
English (en)
Other versions
KR19990052154A (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 KR1019970071603A priority Critical patent/KR100306743B1/ko
Publication of KR19990052154A publication Critical patent/KR19990052154A/ko
Application granted granted Critical
Publication of KR100306743B1 publication Critical patent/KR100306743B1/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/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/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 많은 계산량과 함께 응용분야에 따라 알고리즘을 선택적으로 사용할 수 있는 융통성을 함께 요구하는 MPEG-4 비디오 방식을 이용하여 영상을 효과적으로 부호화 및 복호화 하도록 하는 PC 기반 비디오 부호화 및 복호화장치 및 방법에 관한 것이다. 이와같은 본 발명은 융통성 있는 구조를 제공하기 위해서는 고성능 DSP를 사용하고, 많은 계산량을 요구하는 움직임추정 및 보상 기능은 전용 칩이 수행하도록 함으로써 영상을 효과적으로 부호화 및 복호화할 수 있다.

Description

피씨 기반 비디오 부호화 및 복호화 장치 및 그 방법
본 발명은 PC 기반 비디오 부호화 및 복호화 장치 및 그 방법에 관한 것으로, 특히 많은 계산량과 함께 응용분야에 따라 알고리즘을 선택적으로 사용할 수 있는 융통성을 함께 요구하는 MPEG-4 비디오 방식을 이용하여 영상을 효과적으로 부호화 및 복호화 하도록 하는 PC 기반 비디오 부호화 및 복호화 장치 및 그 방법에 관한 것이다.
MPEG-4 비디오의 복잡하면서도 융통성이 있는 부호화 및 복호화 장치는 기존의 VLSI 기술을 이용한 전용 하드웨어 구현을 매우 어렵게 하며, 융통성 있는 구조를 제공하기 위해 프로그램이 가능한 범용 DSP로 구현할 경우에도 높은 압축율을 제공하기 위해 요구되는 많은 계산량으로 인해 성능면에서 큰 제약을 받는 단점이 있다.
본 발명의 목적은 융통성 있는 구조를 제공하기 위해서는 고성능 DSP를 사용하고, 많은 계산량을 요구하는 움직임추정 및 보상 기능은 전용 칩이 수행하도록 함으로써 영상을 효과적으로 부호화 및 복호화하기 위한 PC 기반 비디오 부호화 및 복호화장치 및 방법을 제공함에 있다.
이와같은 본 발명의 목적을 달성하기 위한 본 발명에 따른 PC 기반 비디오 부호화 및 복호화 장치는 MPEG-4 비디오 부호화 및 복호화를 위한 연산처리 및 각 모듈 사이의 데이터 흐름에 대한 스케쥴링을 수행하기 위한 디지털 신호 처리수단과, 상기 디지털 신호 처리수단의 제어를 받아 호스트 PC와의 데이터 송수신을 수행하기 위한 PCI 인터페이스 제어 모듈수단과, 외부에서 입력되는 영상데이터를 상기 디지탈 신호 처리수단의 필터계수에 의해 프레임 단위의 저주파 대역 필터링을 수행하기 위한 전처리 모듈수단(Pre-Processing module)과, 상기 전처리 모듈수단에서 입력되는 프레임 데이터를 부호화 순서에 맞도록 재배열한 뒤 상기 디지탈 신호 처리수단으로 출력하며, 동시에 원영상 데이터를 디스플레이 하기 위해 상기 PCI 인터페이스 제어수단을 거쳐 모니터로 출력하기 위한 입력 영상 재배열 메모리 모듈수단(Reordering memory module)과, MPEG-4 비디오 부호화 및 복호화 기능을 수행하기 위한 프로그램 및 데이터를 저장하기 위한 프로그램 및 데이터 메모리 블록수단과, 움직임추정 및 보상전용 칩인 ME2MC를 이용하여 움직임 추정 및 보상을 수행하기 위한 움직임추정 및 보상 모듈수단과, 부호화시 발생된 비트열을 상기 PCI 인터페이스 제어수단을 거쳐 PC로 출력하기 위한 비트열 출력 모듈수단과, 복호화하기 위한 비트열을 PC로부터 입력받기 위한 비트열 입력 모듈수단(Bitstream input module)과, 복호화에 사용되는 재생 영상 데이터를 저장하고, 재생 영상 데이터를 재배열한 뒤 디스플레이 하기 위해 상기 PCI 인터페이스 제어수단을 거쳐 모니터로 출력하기 위한 재생영상 메모리 모듈수단(Decording memory module)을 포함하여 구성된다.
또한, 본 발명에 따른 PC기반 비디오 부호화 및 복호화 방법은, PC 에 의해 디지탈신호 처리수단을 초기화하는 제1 단계와, 상기 초기화된 디지탈신호 처리수단에 의해 PC 로부터 프로그램 및 데이터를 입력바당 프로그램 및 데이터 메모리블럭수단에 저장시키는 제2 단계와, 상기 디지털 신호 처리수단에 의해 PC로부터 동작모드 정보를 입력받아, 그 동작모드를 판단하는 제3 단계와, 상기 판단결과 동작모드가 입력영상 저장모드인 경우, 외부로부터 입력되는 영상을 PC의 하드 디스크에 저장하고, 실시간 부호화모드인 경우 외부로부터 입력되는 영상을 부호화한 뒤 그 부호화된 비트열을 PC로 출력하고, 실시간 복호화모드인 경우 PC로부터 입력되는 비트열을 복호화한 뒤 그 복화화된 재생영상을 모니터로 출력하는 제4 단계와, 상기 판단결과 동작모드가 실시간 코덱모드인 경우 실시간 부호화 및 복호화를 프레임 단위로 번갈아가며 수행하고, 비 실시간 부호화모드인 경우 PC로부터 입력되는 영상을 부호화한 뒤, 부호화된 비트열을 PC로 출력하는 제5 단계로 이루어진다.
도 1은 본 발명의 실시예에 의한 PC 기반 비디오 부호화 및 복호화 장치의 구성도.
도 2는 도 1에서의 입력영상 재배열 메모리 모듈의 구성도.
도 3은 도 1에서의 움직임추정 및 보상 모듈의 구성도.
도 4는 도 1에서의 비트열 출력 모듈의 구성도.
도 5는 도 1에서의 비트열 입력 모듈의 구성도.
도 6은 도 1에서의 재생영상 메모리 모듈의 구성도.
(도면의 주요부분에 대한 부호의 설명)
1-1 : 전처리 모듈 1-2 : 입력영상 재배열 메모리 모듈
1-3 : 디지털 신호 처리기 1-4 : 프로그램 및 데이터 메모리 블록
1-5 : 움직임추정 및 보상 모듈
1-6 : 비트열 출력 모듈 1-7 : 비트열 입력 모듈
1-8 : 재생영상 메모리 모듈 1-9 : PCI 인터페이스 제어 모듈
2-1 : 소스 선택기 2-2 : 번지 발생기
2-3 : 입출력 제어기 2-4 : 번지 선택기
2-5 ~ 2-8 : 프레임 데이터 저장용 메모리
2-9 : 읽기 및 쓰기 제어기 2-10 : 데이터 재배열기
2-11 : FIFO 제어기 2-12 : FIFO
3-1 : 움직임추정 및 보상기(ME2MC) 제어기
3-2 ~ 3-3 : 재생 프레임 데이터 저장용 메모리
3-4 ~ 3-5 : FIFO 3-6 : 움직임추정 및 보상기(ME2MC)
3-7 : 메모리 입출력 제어기
4-1 : 입력 제어기 4-2 : FIFO
5-1 : 출력 제어기 5-2 : FIFO
6-1 : 번지 발생기 6-2 ~ 6-3 : FIFO
6-4 ~ 6-6: 재생 프레임 데이터 저장용 메모리
6-7 : 데이터 재배열기
이하, 본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
도 1 은 본 발명의 실시예에 의한 PC 기반 비디오 부호화 및 복호화 장치의 전체 구성도를 도시한 것이다.
도 1 에 도시된 바와같이, 전처리모듈(1-1)과, 입력영상 재배열 메모리 모듈(1-2)과, DSP(1-3)와, 프로그램 및 데이터 메모리 블록(1-4)과 움직임추정 및 보상모듈(1-5)과, 비트열 출력모듈(1-6)과, 비트열 입력모듈(1-7)과, 재생영상 메모리 모듈(1-8)과, PCI 인터페이스 제어 모듈(1-9)로 구성된다. 전처리 모듈(1-1)은 PC 기반 비디오 부호화 및 복호화장치는 외부에서 입력되는 영상 데이터(NTSC/PAL)를 SIF/QSIF 4:2:0 포맷으로 변환한 뒤, 필요한 경우 디지탈신호 처리기(DSP)(1-3)로부터 필터계수를 받아 프레임 단위의 저주파 대역 필터링을 수행한다. 입력영상 재배열 메모리 모듈(1-2)은 상기 전처리 모듈(1-1)에서 입력되는 프레임 데이터를 부호화 순서에 맞도록 재배열 한뒤 DSP(1-3)로 출력하며, 동시에 원영상 데이터를 디스플레이 하기 위해 PCI 인터페이스 제어모듈(1-9)를 거쳐 모니터터로 출력한다. DSP(1-3)는 MPEG-4 비디오 부호화 및 복호화 기능들 중에서 움직임추정 및 보상을 제외한 모든 기능을 수행하며, 각 모듈 사이의 데이터 흐름에 대한 스케쥴링을 수행한다. 프로그램 및 데이터 메모리 블록(1-4)은 MPEG-4 비디오 부호화 및 복호화 기능을 수행하기 위한 프로그램 및 데이터를 저장하고 있다. 움직임추정 및 보상 모듈(1-5)은 움직임 추정 및 보상 전용 칩인 ME2MC를 이용하여 많은 계산량을 요구하는 움직임 추정 및 보상 기능을 수행한다. 비트열 출력 모듈(1-6)은 부호화시 발생된 비트열을 PCI인터페이스 제어모듈(1-9)를 거쳐 PC로 출력하기 위해 사용된다. 비트열 입력 모듈(1-7)은 복호화하기 위한 비트열을 PC로 부터 입력받기 위해 사용된다. 재생영상 메모리 모듈(1-8)은 복호화에 사용되는 재생 영상 데이터를 저장하고, 재생영상 데이터를 재배열한 뒤 디스플레이 하기 위해 PCI인터페이스 제어모듈(1-9)를 거쳐 모니터로 출력한다. PCI 인터페이스 제어모듈(1-9)은 DSP(1-3)의 제어에 의해 부호화 및 복호화 연산 과 직접적으로 관계가 없는 데이터의 흐름을 제어하며, 주로 호스트 PC와의 데이터 송수신을 수행한다.
이와같이 구성된 본 발명의 실시예에 의한 PC 기반 비디오 부호화 및 복호화장치 및 방법의 동작을 설명하면 다음과 같다.
먼저, PC 기반 비디오 부호화 및 복호화 장치는 다음의 5가지 모드로 동작할 수 있다.
동작모드1: 외부로부터 입력되는 영상을 PC의 하드디스크에 저장하기 위한 입력영상 저장모드
동작모드2: 외부로부터 입력되는 영상을 부호화한 뒤, 부호화된 비트열을 PC로 출력하기 위한 실시간 부호화모드
동작모드3: PC 로부터 입력되는 비트열을 복호화한 뒤, 복호화된 재생 영상을 모니터로 출력하기 위한 실시간 복호화모드
동작모드4: 실시간 부호화 및 복호화를 프레임 단위로 번갈아가며 수행하기위한 실시간 코덱모드
동작모드5: PC로 부터 입력되는 영상을 부호화한 뒤, 부호화된 비트열을 PC로 출력하기 위한 비 실시간 부호화모드
도 1 을 참조하여 상기 각 모드에 따른 PC 기반 비디오 부호화 및 복호화장치의 동작을 상세히 설명하면 다음과 같다.
동작모드1: 입력영상 저장모드인 경우, PC기반 비디오 부호화 및 복호화 장치의 동작을 상세히 설명하면 다음과 같다.
제1 단계에서 PC에 의해 디지털 신호 처리기(1-3)가 초기화된다.
제2 단계에서 디지털 신호 처리기(1-3)는 PC로부터 프로그램 및 데이터를 입력 받아 프로그램 및 데이터 메모리 블록(1-4)에 저장한다.
제3 단계에서 디지털 신호 처리기(1-3)는 PC로부터 동작 모드 정보를 입력 받는다.
제4 단계에서 디지털 신호 처리기(1-3)는 전처리 모듈(1-1) , 입력영상 재배열 모듈(1-2)과 PCI 인터페이스 제어 모듈(1-9)을 초기화 한다. 제5 단계에서 디지털 신호 처리기(1-3)는 PC로부터 동작 시작 정보를 입력 받으면, 제6 단계를 수행한다.
제6 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 메모리 모듈(1-2)로 메모리 선택 신호를 출력한다. 이때, 출력되는 메모리 선택 신호는 전처리 모듈(1-1)로부터 입력되는 영상 데이터를 저장하기 위한 1개의 메모리와, 디지털 신호 처리기(1-3) 및 PCI 인터페이스 제어 모듈(1-9)로 데이터를 동시에 출력하기 위한 2개의 메모리를 선택하기 위해 사용된다.
제7 단계에서 디지털 신호 처리기(1-3)는 전처리 모듈(1-1)로부터 입력되는 첫번째 유효한 프레임 데이터를 저장하기 위해 도 2에 도시된 'WRITE_VAL' 신호를 '1'로 만든다.
제8 단계에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로 '동작3'을 시작하라는 신호를 출력한다.
제9 단계에서 PCI 인터페이스 제어 모듈(1-9)로부터 인터럽트가 입력되면 디지털 신호 처리기(1-3)는 '동작4'을 시작하라는 신호를 PCI 인터페이스 제어 모듈(1-9)로 출력한다.
제10 단계에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 인터럽트가 입력될 때까지 기다린 뒤, 인터럽트가 입력되면 제12 단계를 수행한다.
제11 단계에서 만일 디지털 신호 처리기(1-3)가 PC로부터 '동작 종료' 신호를 입력 받으면 제12 단계를 수행하고, 그렇지 않으면 제6 단계를 수행한다.
제12 단계에서 디지털 신호 처리기(1-3)는 남아 있는 데이터에 대한 동작을 수행한 뒤 동작을 종료한다.
동작모드2: 실시간 부호화 모드인 경우, PC 기반 비디오 부호화 및 복호화장치의 동작을 설명하면 다음과 같다.
제1 단계에서 PC에 의해 디지털 신호 처리기(1-3)가 초기화된다.
제2 단계에서 디지털 신호 처리기(1-3)는 PC로 부터 프로그램 및 데이터를 입력받아 프로그램 및 데이터 메모리 블록(1-4)에 저장한다.
제3 단계에서 디지털 신호 처리기(1-3)는 PC로 부터 동작 모드 정보를 입력 받는다.
제4 단계에서 디지털 신호 처리기(1-3)는 전처리 모듈(1-1), 입력영상 재배열 모듈(1-2), 움직임추정 및 보상 모듈(1-5), 비트열 출력 모듈(1-6)과 PCI 인터페이스 제어 모듈(1-9)을 초기화 한다.
제5 단계에서 디지털 신호 처리기(1-3)는 PC로부터 동작 시작 정보를 입력 받으면, 제6 단계를 수행한다.
제6 단계에서 디지털 신호 처리기(1-3)는 필요한 경우 현재 입력되는 프레임 데이터를 필터링 하기 위한 필터 계수와 필터링을 수행하라는 신호를 전처리 모듈(1-1)로 출력한다.
제7 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 메모리 모듈로 메모리 선택 신호를 출력한다. 이때, 출력되는 메모리 선택 신호는 전처리 모듈(1-1)로부터 입력되는 영상 데이터를 저장하기 위한 1개의 메모리와, 디지털 신호 처리기(1-3) 및 PCI 인터페이스 제어 모듈(1-9)로 데이터를 동시에 출력하기 위한 2개의 메모리를 선택하기 위해 사용된다.
제8 단계에서 디지털 신호 처리기(1-3)는 전처리 모듈(1-1)로부터 입력되는 첫번째 유효한 프레임 데이터를 저장하기 위해 도 2에 도시된 'WRITE_VAL' 신호를 '1'로 만든다.
제8-1 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 모듈(1-2)로 n(초기값 '0')번째 기준블록 데이터를 출력하라는 신호를 출력한다.
제8-2 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터를 모두 입력 받은 뒤, n번째 기준블록 데이터와 (n-3)번째 재생 오차 데이터를 움직임추정 및 보상 모듈(1-5)로 출력한다. 출력이 완료되면 움직임추정 및 보상 시작 신호를 출력한다.
제8-3 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터에 대한 부호화를 수행한다. 동시에 움직임추정 및 보상 모듈(1-5)은 움직임추정 및 보상을 수행한다.
제8-4 단계에서 움직임추정 및 보상 모듈(1-5)로부터 움직임추정 및 보상 연산이 완료되었다는 신호를 받으면, 디지털 신호 처리기(1-3)는 움직임추정 및 보상 결과를 출력하라는 신호를 움직임추정 및 보상 모듈(1-5)로 출력한다.
제8-5 단계에서 필요한 경우 디지털 신호 처리기(1-3)는 매크로블록 기반의 반복적 패딩 연산을 수행한 뒤, 움직임추정 및 보상 모듈(1-5)내에 있는 메모리로 출력한다.
제8-6 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터에 대한 부호화된 비트열을 비트열 출력 모듈(1-6)로 출력한다.
제8-7 단계에서 만일 현재 프레임의 모든 매크로블록에 대한 부호화가 완료었다면 제9 단계를 수행하고, 그렇지 않은 경우에는 n을 '1'만큼 증가시킨뒤 제8-1 단계를 수행한다.
상기 제8 단계부터 제8-7 단계가 수행되는 도중에 다음의 과정이 수행된다.
제8-a 과정에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로 출력되는 바이트 수와 '동작5'를 시작하라는 신호를 출력한다.
제8-b 과정에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 '동작5'가 완료되었음을 나타내는 인터럽트가 출력되면, '동작4'를 시작하라는 신호를 PCI 인터페이스 제어 모듈(1-9)로 출력한다.
제9 단계에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 '동작4'가 완료되었다는 인터럽트를 기다린 뒤, 인터럽트가 입력되면 제10단계를 수행한다.
제10 단계에서 만일 디지털 신호 처리기(1-3)가 PC로부터 '동작 종료' 신호를 입력 받으면 제11 단계를 수행하고, 그렇지 않으면 제6 단계를 수행한다.
제11 단계에서 디지털 신호 처리기(1-3)는 남아 있는 데이터에 대한 동작을 수행한 뒤 동작을 종료한다.
동작 모드3: 실시간 복호화 모드인 경우, PC 기반 비디오 부호화 및 복호화장치의 동작을 설명하면 다음과 같다.
제1 단계에서 PC에 의해 디지털 신호 처리기(1-3)가 초기화된다.
제2 단계에서 디지털 신호 처리기(1-3)는 PC로 부터 프로그램 및 데이터를 입력받아 프로그램 및 데이터 메모리 블록(1-4)에 저장한다.
제 3단계에서 디지털 신호 처리기(1-3)는 PC로 부터 동작모드 정보를 입력받는다.
제4 단계에서 디지털 신호 처리기(1-3)는 비트열 입력 모듈(1-7), 재생영상 메모리 모듈(1-8)과 PCI 인터페이스 제어 모듈(1-9)을 초기화 한다.
제5 단계에서 디지털 신호 처리기(1-3)는 PC로부터 동작 시작 정보를 입력 받으면, 제6 단계를 수행한다.
제6 단계에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로 '동작6'을 시작하라는 신호를 출력한다.
제7 단계에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 '동작6'이 완료되었음을 나타내는 인터럽트가 출력되면, '동작7'를 시작하라는 신호를 PCI 인터페이스 제어 모듈(1-9)로 출력한다.
제8 단계에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 '동작7'이 완료되었음을 나타내는 인터럽트가 출력되면, 비트열 입력 모듈(1-7)로부터 입력받아야 하는 바이트 수를 PCI 인터페이스 제어 모듈(1-9)로부터 입력받는다.
제9 단계에서 디지털 신호 처리기(1-3)는 비트열 입력 모듈(1-7)로부터 이전 단계에서 입력된 비트열을 입력 받아 복호화한 뒤, 복호화된 재생영상 데이터를 재생영상 메모리 모듈(1-8)로 출력한다.
제10 단계에서 만일 디지털 신호 처리기(1-3)가 PC로부터 '동작 종료' 신호를 입력 받으면 제11 단계를 수행하고, 그렇지 않으면 제6 단계를 수행한다.
제11 단계에서 디지털 신호 처리기(1-3)는 남아 있는 데이터에 대한 동작을 수행한 뒤 동작을 종료한다.
동작모드4: 실시간 코덱 모드인 경우, PC 기반 비디오 부호화 및 복호화장치의 동작을 설명하면 다음과 같다.
제1 단계에서 PC에 의해 디지털 신호 처리기(1-3)가 초기화된다.
제2 단계에서 디지털 신호 처리기(1-3)는 PC로부터 프로그램 및 데이터를 입력받아 프로그램 및 데이터를 입력받아 프로그램 및 데이터 메모리 블록(1-4)에 저장한다.
제3 단계에서 디지털 신호 처리기(1-3)는 PC로 부터 동작 모드 정보를 입력받는다.
제4 단계에서 디지털 신호 처리기(1-3)는 전처리 모듈(1-1), 입력영상 재배열 모듈(1-2), 움직임추정 및 보상 모듈(1-5), 비트열 출력 모듈(1-6), 비트열 입력 모듈(1-7), 재생영상 메모리 모듈(1-8)과 PCI 인터페이스 제어 모듈(1-9)을 초기화한다.
제5 단계에서 디지털 신호 처리기(1-3)는 PC로부터 부호화 동작 시작 정보를 입력 받으면, 제7 단계를 수행하고, 그렇지 않으면 제8 단계를 수행한다.
제6 단계에서 디지털 신호 처리기(1-3)는 필요한 경우 현재 입력되는 프레임 데이터를 필터링 하기 위한 필터 계수와 필터링을 수행하라는 신호를 전처리 모듈(1-1)로 출력한다.
제7 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 메모리 모듈(1-2)로 메모리 선택 신호를 출력한다. 이때, 출력되는 메모리 선택 신호는 전처리 모듈(1-1)로부터 입력되는 영상 데이터를 저장하기 위한 1개의 메모리와, 디지털 신호 처리기(1-3) 및 PCI 인터페이스 제어 모듈(1-9)로 데이터를 동시에 출력하기 위한 2개의 메모리를 선택하기 위해 사용된다.
제8 단계에서 디지털 신호 처리기(1-3)는 전처리 모듈(1-1)로부터 입력되는 첫번째 유효한 프레임 데이터를 저장하기 위해 도 2에 도시된 'WRITE_VAL' 신호를 '1'로 만든다.
제8-1 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 모듈(1-2)로 n(초기값 '0')번째 기준블록 데이터를 출력하라는 신호를 출력한다.
제8-2 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터를 모두 입력 받은 뒤, n번째 기준블록 데이터와 (n-3)번째 재생 오차 데이터를 움직임추정 및 보상 모듈(1-5)로 출력한다. 출력이 완료되면 움직임추정 및 보상 시작 신호를 출력한다.
제8-3 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터에 대한 부호화를 수행한다. 동시에 움직임추정 및 보상 모듈(1-5)은 움직임추정 및 보상을 수행한다.
제8-4 에서 움직임추정 및 보상 모듈(1-5)로부터 움직임추정 및 보상 연산이 완료되었다는 신호를 받으면, 디지털 신호 처리기(1-3)는 움직임추정 및 보상 결과를 출력하라는 신호를 움직임추정 및 보상 모듈(1-5)로 출력한다.
제8-5 단계에서 필요한 경우 디지털 신호 처리기(1-3)는 매크로블록 기반의 반복적 패딩 연산을 수행한 뒤, 움직임추정 및 보상 모듈(1-5)내에 있는 메모리로 출력한다.
제8-6 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터에 대한 부호화된 비트열을 비트열 출력 모듈(1-6)로 출력한다.
제8-7 단계에서 만일 현재 프레임의 모든 매크로블록에 대한 부호화가 완료되었다면 제9 단계를 수행하고, 그렇지 않은 경우에는 n을 '1'만큼 증가시킨뒤 제8-1 단계를 수행한다.
상기 제8 단계로부터 제8-7 단계까지 수행되는 도중에 다음의 동작이 수행된다.
제8-a 과정에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로 출력되는 바이트 수와 '동작5'를 시작하라는 신호를 출력한다.
제8-b 과정에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 '동작5'가 완료되었음을 나타내는 인터럽트가 출력되면, '동작4'를 시작하라는 신호를 PCI 인터페이스 제어 모듈(1-9)로 출력한다.
제8-c 과정에서 PCI 인터페이스 제어 모듈(1-9)로부터 '동작4'가 완료되었음을 나타내는 인터럽트가 출력된 뒤, PC로부터 복호화 동작 시작 정보를 입력 받으면, 디지털 신호 처리기(1-3)는 제8-e 과정을 수행하고, 그렇지 않으면 제8-d 과정을 수행한다.
제8-d 과정에서 디지털 신호 처리기(1-3)는 이전에 PC로부터 부호화 동작 시작 정보를 입력 받았으면, 제6 단계를 수행하고, 그렇지 않으면 제5단계를 수행한다. 제8-e 과정에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로 '동작6'을 시작하라는 신호를 출력한다.
제8-f 과정에서 PCI 인터페이스 제어 모듈(1-9)로부터 '동작6'이 완료되었음을 나타내는 인터럽트가 출력되면, PCI 인터페이스 제어 모듈(1-9)로 PC로부터 '동작7'을 시작하라는 신호를 출력한다.
제8-g 과정에서 디지털 신호 처리기(1-3)는 '동작 7'이 완료되었음을 나타내는 인터럽트가 PCI 인터페이스 제어 모듈(1-9)로부터 출력되기를 기다린다. 인터럽트가 출력되면 제9 단계를 수행한다.
제9 단계에서 디지털 신호 처리기(1-3)는 비트열 입력 모듈(1-7)로부터 입력받아야 하는 바이트 수를 PCI 인터페이스 제어 모듈(1-9)로부터 입력 받는다. 다음으로, 디지털 신호 처리기(1-3)는 비트열 입력 모듈(1-7)로부터 이전 단계에서 입력된 비트열을 입력 받아 복호화한 뒤, 복호화된 재생영상 데이터를 재생영상 메모리 모듈(1-8)로 출력한다.
제10 단계에서 만일 디지털 신호 처리기(1-3)가 PC로부터 '동작 종료' 신호를 입력 받으면 제12 단계를 수행하고, 그렇지 않으면 제11 단계를 수행한다.
제11 단계에서 디지털 신호 처리기(1-3)는 이전에 PC로부터 부호화 동작 시작 정보를 입력 받았으면, 제6 단계를 수행하고, 그렇지 않으면 제8-c 과정을 수행한다.
제12 단계에서 디지털 신호 처리기(1-3)는 남아 있는 데이터에 대한 동작을 수행한 뒤 동작을 종료한다.
위의 실시간 코덱 모드에서 부호화 및 복호화 동작은 프레임 단위로 번갈아 가며 수행된다. 그러나, 부호화되는 프레임률과 복호화 되는 프레임률이 다를 경우가 존재할 수 있다. 이러한 경우에는 부호화 또는 복호화 동작이 필요한 만큼씩 반복된다.
동작모드5: 비 실시간 부호화 모드인 경우, PC 기반 비디오 부호화 및 복호화장치의 동작을 설명하면 다음과 같다.
제1 단계에서 PC 에 의해 디지털 신호 처리기(1-3)가 초기화된다.
제2 단계에서 디지털 신호 처리기(1-3)는 PC로부터 프로그램 및 데이터를 입력받아 프로그램 및 데이터 메모리 블록(1-4)에 저장한다.
제3 단계에서 디지털 신호 처리기(1-3)는 PC로 부터 동작 모드 정보를 입력받는다.
제4 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 모듈(1-2), 움직임추정 및 보상 모듈(1-5), 비트열 출력 모듈(1-6)과 PCI 인터페이스 제어 모듈(1-9)을 초기화한다.
제5 단계에서 디지탈 신호 처리기(1-3)는 PC로부터 동작 시작 정보를 입력받으면, 제6 단계를 수행한다.
제6 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 메모리 모듈로 메모리 선택 신호를 출력한다. 이때, 출력되는 메모리 선택 신호는 전처리 모듈(1-1)로부터 입력되는 영상 데이터를 저장하기 위한 1개의 메모리와, 디지털 신호 처리기(1-3) 및 PCI 인터페이스 제어 모듈(1-9)로 데이터를 동시에 출력하기 위한 2개의 메모리를 선택하기 위해 사용된다.
제7 단계에서 디지털 신호 처리기(1-3)는 전처리 모듈(1-1)로부터 입력되는 첫번째 유효한 프레임 데이터를 저장하기 위해 도 2에 도시된 'WRITE_VAL' 신호를 '1'로 만든다.
제8 단계에서 디지털 신호 처리기(1-3)는 '동작 8'을 시작하라는 신호를 PCI 인터페이스 제어 모듈(1-9)로 출력한다.
제8-1 단계에서 디지털 신호 처리기(1-3)는 입력영상 재배열 모듈(1-2)로 n(초기값 '0')번째 기준블록 데이터를 출력하라는 신호를 출력한다.
제8-2 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터를 모두 입력 받은 뒤, n번째 기준블록 데이터와 (n-3)번째 재생 오차 데이터를 움직임추정 및 보상 모듈(1-5)로 출력한다. 출력이 완료되면 움직임추정 및 보상 시작 신호를 출력한다.
제8-3 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터에 대한 부호화를 수행한다. 동시에 움직임추정 및 보상 모듈(1-5)은 움직임추정 및 보상을 수행한다.
제8-4 단계에서 움직임추정 및 보상 모듈(1-5)로부터 움직임추정 및 보상 연산이 완료되었다는 신호를 받으면, 디지털 신호 처리기(1-3)는 움직임추정 및 보상 결과를 출력하라는 신호를 (1-5)의 움직임추정 및 보상 모듈로 출력한다.
제8-5 단계에서 필요한 경우 디지털 신호 처리기(1-3)는 매크로블록 기반의 반복적 패딩 연산을 수행한 뒤, 움직임추정 및 보상 모듈(1-5)내에 있는 메모리로 출력한다.
제8-6 단계에서 디지털 신호 처리기(1-3)는 n번째 기준블록 데이터에 대한 부호화된 비트열을 비트열 출력 모듈(1-6)로 출력한다.
제8-7 단계에서 만일 현재 프레임의 모든 매크로블록에 대한 부호화가 완료되었다면 제9 단계를 수행하고, 그렇지 않은 경우에는 n을 '1'만큼 증가시킨뒤 제8-1 단계를 수행한다.
상기 제8 단계에서 제8-7 단계가 수행되는 도중에 다음의 동작이 수행된다.
제8-a 과정에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로 출력되는 바이트 수와 '동작5'를 시작하라는 신호를 출력한다.
제8-b 과정에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 '동작5'가 완료되었음을 나타내는 인터럽트가 출력되면, '동작4'를 시작하라는 신호를 PCI 인터페이스 제어 모듈(1-9)로 출력한다.
제9 단계에서 디지털 신호 처리기(1-3)는 PCI 인터페이스 제어 모듈(1-9)로부터 '동작4'가 완료되었다는 인터럽트를 기다린 뒤, 인터럽트가 입력되면 제10 단계를 수행한다.
제10 단계에서 만일 디지털 신호 처리기(1-3)가 PC로부터 '동작 종료' 신호를 입력 받으면 제11 단계를 수행하고, 그렇지 않으면 제6 단계를 수행한다.
제11 단계에서 디지털 신호 처리기(1-3)는 남아 있는 데이터에 대한 동작을 수행한 뒤 동작을 종료한다.
도 2는 도 1에서의 입력영상 재배열 메모리 모듈의 세부 구성도를 보여주며, 다음과 같이 동작한다.
제1 단계에서 각 동작 모드의 초기화 단계에서 입력영상의 소스를 나타내는 도 2의 SEL_SRC 신호가 도 1 에서의 디지털 신호 처리기(1-3)에 의해 정해진다. 이때, SEL_SRC가 '0'인 경우에는 도 1 에서의 전처리 모듈(1-1)로부터 입력되는 다음 신호들이 소스 선택기(2-1)에 의해 선택된다.
1) DATA1[31:0] : 영상 데이터.
2) FR_ST1 : 프레임 데이터 입력 시작 신호.
3) FR_VAL1 : 프레임 데이터가 유효한 구간임을 나타내는 신호.
4) CLK1 : 외부로부터 입력되는 영상 데이터에 동기된 클록 신호.
만일, SEL_SRC가 '1'인 경우에는 도 1 에서의 PCI인터페이스 제어 모듈(1-9)로부터 입력되는 다음 신호들이 소스 선택기(2-1)에 의해 선택된다.
1) DATA11[31:0] : 영상 데이터.
2) FR_ST11 : 프레임 데이터 입력 시작 신호.
3) FR_VAL11 : 프레임 데이터가 유효한 구간임을 나타내는 신호.
4) CLK11 : PCI 버스 클록.
제2 단계에서 소스 선택기(2-1)로부터 출력되는 데이터인 'DATA_IN[31:0]'을 저장하기 위한 1개 메모리와, 메모리에 저장되어 있는 데이터를 도 1에서의 디지털 신호 처리기(1-3)와 PCI 인터페이스 제어 모듈(1-9)로 각각 출력하기 위한 2개 메모리 각각을 선택하기 위한 선택 신호가 도 1에서의 디지털 신호 처리기(1-3)에 의해 정해진다. 이때 사용되는 선택 신호들은 다음과 같다.
1) SEL_W[1:0] : 데이터 저장용 메모리 선택 신호
2) SEL_DSP[1:0] : 데이터를 도 1에서의 디지털 신호 처리기(1-3)로 출력하기 위한 메모리 선택 신호
3) SEL_PCI[1:0] : 데이터를 도 1에서의 PCI 인터페이스 제어 모듈(1-9)로 출력하기 위한 메모리 선택 신호
읽기 및 쓰기 제어기(2-9)는 SEL_W[1:0]를 이용하여 데이터 저장을 위한 제어신호인 WEN0, WEN1, WEN2, 그리고 WEN3을 발생시킨다.
제3 단계에서는 상기 제2 단계에서 정해진 선택 신호들을 이용하여, 번지 선택기(2-4)는 입력 및 출력 번지를 선택하여 각각 대응되는 메모리로 출력한다. 이때, 사용되는 메모리 번지 및 제어신호들은 다음과 같다.
1) ADDRW[14:0], CSW, R/WW, OEW : 데이터 저장용 메모리 번지 및 제어신호
2) ADDRR[14:0], CSR, R/WR, OER : 도 1 에서의 PCI 인터페이스 제어 모듈(1-9)로 출력하기 위한 메모리 번지 및 제어신호로서, 도 1에서의 PCI 인터페이스 제어 모듈(1-9)에서 입력된다.
3) ADDRD[31:0], CSD, R/WD, OED : 도 1에서의 디지털 신호 처리기(1-3)로 출력하기 위한 메모리 번지 및 제어신호
제4 단계에서 도 1의 디지털 신호 처리기(1-3)가 첫번째 유효한 프레임 데이터를 메모리에 저장하기 위한 신호인 WRITE_VAL을 '1'로 만들면, 번지 발생기(2-2)는 첫번째 유효한 프레임 데이터의 시작 신호인 'FR_ST_VAL'을 발생시킨다. 이때, 'FR_ST_VAL'에 의해 WRITE_VAL은 '0'이 된다.
제5 단계에서 'FR_ST_VAL'이 '1'이 되면 번지 발생기(2-2)는 소스 선택기(2-1)로부터 출력되는 제어신호인 'FR_ST, FR_VAL, CLK'을 이용하여 데이터 입력 및 출력용 메모리 번지 및 제어신호를 발생시킨다. 이때, 발생된 입력 번지 및 제어신호들은 번지 선택기(2-4)에 의해 선택되어 입력 데이터인 DATA_IN[31:0]와 함께 SEL_W[1:0]가 가리키는 메모리로 입력된다.
출력 번지 및 제어신호들은 SEL_DSP[1:0]가 가리키는 메모리로 입력되며, 출력 번지에 대응되는 출력 데이터는 입력 및 출력 제어기(2-9)에 의해 선택되어 데이터 재배열기(2-10)로 출력된다. 이와 동시에 도 1 에서의 PCI 인터페이스 제어 모듈(1-9)로부터 입력되는 출력 번지 및 제어신호들은 번지 선택기(2-4)에 의해 선택되어 SEL_PCI[1:0]가 가리키는 메모리로 입력되며, 대응되는 출력 데이터는 입력 및 출력 제어기(2-9)에 의해 선택되어 DATA_PCI[31:0]을 통해 도 1 에서의 PCI 인터페이스 제어 모듈(1-9)로 출력된다.
상기 제4 단계에서 제5 단계까지가 수행되는 도중에 다음의 단계들이 수행된다.
제6-1 단계에서 WRITE_VAL이 '1'이 되자마자, FIFO 제어기(2-11)는 내부에 있는 1비트 플래그 신호인 READ_MB와 FIFO(2-12)를 리셋한다.
제6-2 단계에서 번지 발생기(2-2)는 n(초기값 '0')번째 384 바이트를 SEL_DSP[1:0]이 가리키는 메모리로부터 읽어 데이터 재배열기(2-10)로 출력하기 위한 출력 번지 및 제어 신호들을 발생시킨다.
제6-3 단계에서 FIFO 제어기(2-11)는 데이터 재배열기(2-10)로부터 출력되는 데이터를 FIFO(2-12)에 저장하기 위한 제어 신호들을 발생시킨다. 데이터가 FIFO에 모두 저장되면 FIFO 제어기(2-11)는 내부에 있는 1비트 플래그 신호인 READ_MB를 '1'로 만든다.
제6-4 단계에서 만일 READ-MB가 1이면, 도 1에서의 디지털 신호 처리기(1-3)는 FIFO(2-12)에 있는 데이터를 출력하라는 신호를 도 2의 입력영상 재배열 모듈로 출력한다.
제6-5 단계에서 FIFO 제어기(2-11)는 FIFO 출력 제어신호를 발생시켜 FIFO(2-12)로부터 출력되는 데이터를 DATA[31:0]을 통해 도 1에서의 디지털 신호 처리기(1-3)로 출력하며, 모든 데이터의 출력이 완료되면 READ_MB를 '0'으로 만든다.
제6-6 단계에서 만일 n번째 384 바이트 데이터가 현재 프레임의 마지막 데이터이면 제7 단계를 수행하고, 그렇지 않으면 n값을 '1'만큼 증가시킨 뒤 제6-2 단계를 수행한다.
제7 단계에서는 다음 프레임을 처리하기 위해 제2 단계를 수행한다.
도 3은 도 1에서의 움직임추정 및 보상 모듈의 세부 구성도를 보여주며, 다음과 같이 동작한다.
제1 단계에서 움직임추정 및 보상기(ME2MC) 제어기(3-1)는 도 1에서의 디지털 신호 처리기(1-3)에 의해 초기화된 뒤, FIFO들(3-4)~(3-5)과 ME2MC(3-6)를 리셋한다. 이때, 초기화 신호인 RESET_N이 사용된다.
제2 단계에서 ME2MC 제어기(3-1)는 'H_VAL, H_DATA[3:0], H_CLK'을 이용하여 다음의 시스템 파라미터들을 ME2MC(3-6)로 입력한다.
1) 프레임의 수평 및 수직방향 크기
2) 루프(DCT-Q-iQ-iDCT) 지연 시간
제3 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 n번째 기준블록 데이터와 (n-3)번째 재생오차 데이터가 DATA[7:0]과 DATA[24:16]을 통해 각각 입력되면, ME2MC 제어기(3-1)는 FIFO 쓰기 제어신호(WEN3)를 발생시켜 이 데이터들을 FIFO(3-4)에 저장한다. 이때, FIFO 쓰기 클록인 WCLK가 사용된다.
제4 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 움직임추정 및 보상 동작 시작 신호가 입력되면, ME2MC 제어기(3-1)는 ME2MC 제어 신호(ENABLE, PIC_TYPE[1:0], MB_ST)를 발생시켜 ME2MC(3-6)로 출력한다. 동시에 FIFO 읽기 제어신호(REN3, OE3)를 발생시켜 FIFO(3-4)로 출력한다. 이때, FIFO 읽기 클록인 RCLK가 사용된다.
제5 단계에서 ME2MC(3-6)는 ME2MC 제어기(3-1)로부터 입력되는 제어신호들과 FIFO(3-4)로부터 입력되는 데이터들을 이용하여 움직임추정 및 보상을 수행한 뒤, (n-2)번째 기준블록 데이터에 대한 움직임추정 및 보상 결과들을 출력한다.
이때, ME2MC 제어기(3-1)는 ME2MC로부터 출력되는 모드 판정 신호(INTER_N), 예측방향(PRED[1:0]), 필드/프레임 판정 신호(FIELD_N), 패리티 신호(PARITY) 등의 데이터는 내부의 레지스터에 저장하고, 움직임보상된 데이터(MC_DATA[7:0])와 움직임벡터 및 재생된 (n-3)번째 데이터(MV[7:0])는 FIFO(3-5)에 저장한다.
이때, ME2MC 제어기(3-1)로부터 발생되는 FIFO 쓰기 제어신호(WEN4)와 쓰기용 클록인 WCLK가 사용된다. 이때, 재생영상 데이터는 메모리 입출력 제어기(3-7)를 통해 재생 프레임 데이터 저장용 메모리((3-2) 또는 (3-3))에 저장된다. 다음으로 (n-2)번째 기준블록 데이터에 대한 움직임추정 및 보상 데이터가 모두 의 FIFO(3-5)에 저장되면, ME2MC 제어기(3-1)는 도 1에서의 디지털 신호 처리기(1-3)에 움직임추정 및 보상 동작이 완료되었다는 것을 알려주기 위하여 내부에 있는 1비트 플래그 신호인 READY_N을 '0'으로 만든 후, ME2MC로 입력되는 클록인 CLK를 disable 시킨다.
제6 단계에서는 만일 READY_N이 '0'이면, 도 1에서의 디지털 신호 처리기(1-3)는 움직임추정 및 보상 결과를 출력하라는 신호를 ME2MC 제어기(3-1)로 출력한다. 그러면, ME2MC 제어기(3-1)는 READY_N을 '1'로 만든 뒤, (n-2)번째 기준블록 데이터에 대한 움직임추정 및 보상 결과들과 (n-3)번째 재생영상 데이터를 제 1 도 디지털 신호 처리기(1-3)로 출력한다.
이때, ME2MC 제어기(3-1)로부터 발생된 FIFO 읽기 제어신호인 RCLK, REN4, OE4가 사용된다.
제7 단계에서 만일 (n-3)번째 재생영상 데이터가 도 1 에서의 디지털 신호 처리기(1-3)에 의해 수정된 뒤, 재생 프레임 데이터 저장용 메모리((3-2) 또는 (3-3))에 다시 저장되어야 한다면, 다음 단계가 추가적으로 수행된다.
제7-1 단계에서 만일 데이터가 메모리(3-2)에 저장되어야 한다면, 도 1에서의 디지털 신호 처리기(1-3)는 WEN0을 통해 '0'을 출력한다. 그렇지 않은 경우에는 WEN1을 통해 '0'을 출력한다.
제7-2 단계에서 도 1의 디지털 신호 처리기(1-3)는 DATA[15:0]과 ADDR[15:0], CS, R/W, OE 신호들을 이용하여 데이터를 메모리에 저장한다.
제7-3 단계에서 마지막 데이터가 메모리에 저장되면, 도 1에서의 디지털 신호 처리기(1-3)는 WEN0과 WEN1을 모두 '1'로 만든다.
제8 단계에서 다음 기준블록 데이터를 처리하기 위해 n을 '1'만큼 증가시킨 뒤, 제3 단계를 수행한다.
도 4는 도 1에서의 비트열 출력 모듈의 세부 구성도를 보여주며, 다음과 같이 동작한다.
제1 단계에서 입력 제어기(4-1)는 도 1에서의 디지털 신호 처리기(1-3)에 의해 초기화된 뒤, FIFO(4-2)를 리셋한다. 이때, 초기화 신호인 RESETn이 사용된다.
제2 단계에서 입력 제어기(4-1)는 DATA[31:0]을 통해 도 1 에서의 디지털 신호 처리기(1-3)로부터 입력되는 비트열 데이터를 FIFO에 저장하기 위하여 ADDR[31:0]을 디코딩한 뒤, FIFO 쓰기 제어 신호(WCLK, WEN)를 발생시켜 FIFO(4-2)로 출력한다.
제3 단계에서 비트열 데이터가 모두 FIFO에 저장된 뒤, 도 1에서의 PCI 인터페이스 제어 모듈(1-9)로부터 FIFO 읽기 제어신호가 입력되면, FIFO(4-2)에 저장되어 있는 데이터는 도 1에서의 PCI 인터페이스 제어 모듈(1-9)로 출력된다.
제4 단계에서 비트열 데이터가 모두 도 1에서의 PCI 인터페이스 제어 모듈(1-9)로 출력되면, 제2 단계가 수행된다.
도 5는 도 1에서의 비트열 출력 모듈의 세부 구성도를 보여주며, 다음과 같이 동작한다.
제1 단계에서 출력 제어기(5-1)는 도 1에서의 디지털 신호 처리기(1-3)에 의해 초기화된 뒤, FIFO(5-2)를 리셋한다. 이때, 초기화 신호인 RESETn이 사용된다.
제2 단계에서 도 1의 PCI 인터페이스 제어 모듈(1-9)로부터 FIFO 쓰기 제어신호와 함께 입력되는 비트열 데이터가 FIFO(5-2)에 저장된다.
제3 단계에서 비트열 데이터가 모두 FIFO에 저장된 뒤, 출력 제어기(5-1)는 도 1에서의 디지털 신호 처리기(1-3)로부터 입력되는 ADDR[31:0]을 디코딩한 뒤, FIFO 읽기 제어 신호(RCLK, REN, OE)를 발생시켜 FIFO(5-2)로 출력한다. 이때, FIFO(5-2)로부터 출력되는 비트열 데이터는 DATA[7:0]을 통해 도 1에서의 디지털 신호 처리기(1-3)로 출력된다.
제4 단계에서 비트열 데이터가 모두 도 1에서의 디지털 신호 처리기(1-3)로 출력되면, 제2 단계가 수행된다.
도 6은 도 1에서의 재생영상 메모리 모듈의 세부 구성도를 보여주며, 다음과 같이 동작한다.
제1 단계에서 번지 발생기(6-1)는 도 1에서의 디지털 신호 처리기(1-3)로부터 복호화 동작 시작 신호를 입력 받으면 FIFO(6-2),(6-3)를 초기화한 뒤, 제2 단계 를 수행한다.
제2 단계에서 만일 n(초기값 '0')번째 600 또는 1200 바이트의 데이터가 메모리(6-4),(6-5)의 로부터 출력되어 도 1에서의 디지털 신호 처리기(1-3)로 출력되어야 한다면 제2-1 단계가 수행되고, 그렇지 않다면 제4 단계가 수행된다.
제2-1 단계에서 도 1의 디지털 신호 처리기(1-3)는 번지 발생기(6-1)내에 있는 예측방향을 나타내는 레지스터, 예측방향에 따라 순방향 예측을 위해 사용되는 메모리 1개와 역방향 예측을 위해 사용되는 메모리 1개를 선택하기 위해 사용되는 레지스터, 그리고 필드/프레임 모드를 나타내는 레지스터의 값을 정한다. 또한 필요한 경우 복호화시 발생되는 데이터가 저장되는 메모리를 선택하기 위해 사용되는 레지스터의 값을 정한다.
제2-2 단계에서 도 1의 디지털 신호 처리기(1-3)는 예측방향이 순방향이면 순방향 움직임벡터 정보를, 예측방향이 역방향이면 역방향 움직임벡터 정보를, 그리고 예측방향이 양방향이면 순방향 및 역방향 움직임벡터 정보를 번지 발생기(6-1)로 출력한다.
제2-3 단계에서 번지 발생기(6-1)내에 있는 1비트 플레그 신호인 READ_ST이 도 1에서의 디지털 신호 처리기(1-3)에 의해 '1'이 되면, 번지 발생기(6-1)는 예측 방향과 움직임벡터 정보를 이용하여 메모리로부터 각각이 600 바이트 크기를 갖는 순방향 및 역방향 데이터를 출력시킨 뒤, FIFO(6-2)에 저장한다. 이때, 번지 발생기(6-1)로부터 출력되는 메모리 번지 및 FIFO 쓰기 제어신호가 사용된다.
제2-4 단계에서 FIFO(6-2)에 600(순방향 또는 역방향의 경우) 또는 1200(양방향의 경우) 바이트 데이터가 모두 저장되면, 번지 발생기(6-1)는 내부에 있는 1비트 플래그인 READ-ST를 '0'으로 만든다.
제2-5 단계에서 READ-ST가 '0'이면, 도 1 에서의 디지털 신호 처리기(1-3)는 데이터를 출력하라는 신호를 번지 발생기(6-1)로 출력한다.
제2-6 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 데이터를 출력하라는 신호가 입력되면 번지 발생기(6-1)는 FIFO(6-2)에 있는 데이터를 읽어 도 1 에서의 디지털 신호 처리기(1-3)로 출력한다.
제3 단계에서 도 1의 디지털 신호 처리기(1-3)는 복호화 결과 얻어진 n번째 384 바이트 데이터를 FIFO(6-3)에 저장한다. 이때, 번지 발생기(6-1)가 ADDR[31:0]을 디코딩하여 만들어지는 FIFO 쓰기 제어신호가 사용된다. 모든 데이터가 FIFO(6-3)에 저장되면, 도 1에서의 디지털 신호 처리기(1-3)는 번지 발생기(6-1)내에 있는 1비트 플래그 신호인 WRITE-ST를 '1'로 만든다.
제4 단계에서 WRITE-ST이 '1'이 되면 번지 발생기(6-1)는 FIFO 읽기 제어신호와 메모리 입력 번지를 각각 발생시켜 FIFO(6-3)에 있는 데이터를 메모리((6-4)~(6-6))의 중 1개에 저장하고, 저장이 완료되면 WRITE-ST을 '0'으로 만든다.
제5 단계에서 만일 n이 현재 프레임의 마지막 값이면 제6 단계를 수행하고 그렇지 않으면, n을 '1'만큼 증가시킨 뒤, 제2 단계를 수행한다.
제6 단계에서 만일 n이 현재 프레임의 마지막 값이면 제7 단계를 수행하고 그렇지 않으면, n을 '1'만큼 증가시킨 뒤, 제2 단계를 수행한다.
제7 단계에서 도 1의 디지털 신호 처리기(1-3)는 하나의 프레임 데이터를 도 1의 PCI 인터페이스 제어 모듈(1-9)로 출력하는 경우 메모리((6-4)~(6-6))의 중에서 1개의 메모리를 선택하기 위해 사용되는 번지 발생기(6-1)내의 레지스터의 값을 정한다.
제8 단계에서 번지 발생기(6-1)는 도 1의 PCI 인터페이스 제어 모듈(1-9)로부터 입력되는 메모리 번지와 제어신호를 제7 단계에서 선택된 메모리로 출력한다. 이때 발생되는 데이터는 재배열기(6-7)를 거쳐 도 1에서의 PCI 인터페이스 제어 모듈(1-9)로 출력된다.
제9 단계에서 다음 프레임을 처리하기 위해 제1 단계를 수행한다.
마지막으로, 도 1에서의 PCI 인터페이스 제어 모듈(1-9)은 다음 8가지 동작을 수행한다.
동작 1에서는 PC와 도 1에서의 디지털 신호 처리기(1-3) 사이의 직접적인 인터페이스를 제공한다.
동작 2에서는 초기화 동작 동안에 도 1에서의 디지털 신호 처리기(1-3)가 수행하는 프로그램 및 데이터를 PC로부터 도 1에서의 디지털 신호 처리기(1-3)로 직접 다운로드할 수 있는 인터페이스를 제공한다.
동작 3에서는 도 1의 입력영상 재배열 메모리 모듈(1-2)로부터 원영상 데이터를 입력받아 PC의 하드디스크로 저장한다.
이를 좀더 상세히 설명하면 다음과 같다.
제1 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 '동작 3' 시작 신호를 입력 받는다.
제2 단계에서 메모리 읽기용 번지 및 제어신호를 발생시켜 도 1의 입력영상 재배열 메모리 모듈(1-2)로 출력한다.
제3 단계에서 도 1의 입력영상 재배열 메모리 모듈(1-2)로부터 입력되는 데이터를 PCI 버스를 통해 PC의 하드 디스크에 저장한다.
제4 단계에서 모든 데이터가 하드 디스크에 저장되면 도 1에서의 디지털 신호 처리기(1-3)에 '동작 3'이 완료되었음을 알려주기 위해 인터럽트를 출력한다.
동작 4에서 도 1의 입력영상 재배열 메모리 모듈(1-2)로부터 원영상 데이터를 입력받아 모니터로 출력한다.
이를 좀더 상세히 설명하면 다음과 같다.
제1 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 '동작 4' 시작 신호를 입력 받는다.
제2 단계에서 메모리 읽기용 번지 및 제어신호를 발생시켜 도 1에서의 입력영상 재배열 메모리 모듈(1-2)로 출력한다.
제3 단계에서 도 1의 입력영상 재배열 메모리 모듈(1-2)로부터 입력되는 데이터를 PCI 버스를 통해 PC의 비디오 메모리로 출력한다.
제4 단계에서 데이터가 모두 출력되면 도 1에서의 디지털 신호 처리기(1-3)에 '동작 4'가 완료되었음을 알려주기 위해 인터럽트를 출력한다.
동작 5에서 도 1의 비트열 출력 모듈(1-6)로부터 부호화된 비트열을 입력받아 PC로 출력한다.
이를 좀더 상세히 설명하면 다음과 같다.
제1 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 '동작 5' 시작 신호와 FIFO로부터 입력받아야 하는 바이트 수를 입력 받는다.
제2 단계에서 FIFO 읽기용 제어신호를 발생시켜 도 1의 비트열 출력 모듈(1-6)로 출력한다.
제3 단계에서 도 1의 비트열 출력 모듈(1-6)로부터 입력되는 데이터를 PCI 버스를 통해 PC로 출력한다.
제4 단계에서 데이터가 모두 출력되면 도 1에서의 디지털 신호 처리기(1-3)에 '동작 5'가 완료되었음을 알려주기 위해 인터럽트를 출력한다.
동작 6에서 PC로부터 복호화할 비트열을 입력받아 도 1에서의 비트열 입력 모듈(1-7)로 출력한다.
이를 좀더 상세히 설명하면 다음과 같다.
제1 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 '동작 6' 시작 신호를 입력 받는다.
제2 단계에서 PC에 1 프레임에 대응되는 비트열 데이터를 출력하도록 요구한다.
제3 단계에서 PC로부터 비트열 데이터와 데이터의 바이트 크기를 입력받아 FIFO 쓰기 제어 신호와 함께 도 1의 비트열 입력 모듈(1-7)로 출력한다.
제4 단계에서 데이터가 모두 출력되면 도 1에서의 디지털 신호 처리기(1-3)에 '동작 6'이 완료되었음을 알려주기 위해 인터럽트를 출력한다.
동작 7에서 도 1의 재생영상 메모리 모듈로부터 복호화된 재생영상 데이터를 입력받아 모니터로 출력한다.
이를 좀더 상세히 설명하면 다음과 같다.
제1 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 '동작 7' 시작 신호를 입력 받는다.
제2 단계에서 메모리 읽기용 번지 및 제어신호를 발생시켜 도 1에서의 재생영상 메모리 모듈(1-8)로 출력한다.
제3 단계에서 도 1의 재생영상 메모리 모듈(1-8)로부터 입력되는 데이터를 PCI 버스를 통해 PC의 비디오 메모리로 출력한다.
제4 단계에서 데이터가 모두 출력되면 도 1에서의 디지털 신호 처리기(1-3)에 '동작 7'이 완료되었음을 알려주기 위해 인터럽트를 출력한다.
동작 8에서 PC의 하드디스크로부터 비디오 데이터를 입력받아 도 1에서의 입력영상 재배열 메모리 모듈(1-2)로 출력한다.
이를 좀더 상세히 설명하면 다음과 같다.
제1 단계에서 도 1의 디지털 신호 처리기(1-3)로부터 '동작 8' 시작 신호를 입력 받는다.
제2 단계에서 PC에 1 프레임의 비디오 데이터를 출력하도록 요구한다.
제3 단계에서 PC로부터 1 프레임의 비디오 데이터를 입력받아 동기신호와 함께 도 1 에서의 입력영상 재배열 메모리 모듈(1-2)로 출력한다.
제4 단계에서 데이터가 모두 출력되면 도 1에서의 디지털 신호 처리기(1-3)에 '동작 8'이 완료되었음을 알려주기 위해 인터럽트를 출력한다.
본 발명은 프로그래밍이 가능한 DSP와 움직임추정 및 보상 기능을 수행하기 위한 전용 칩을 사용함으로써 융통성 있는 구조와 많은 계산량을 함께 요구하는 MPEG-4 비디오의 부호화 및 복호화를 효과적으로 수행할 수 있는 효과가 있다.

Claims (2)

  1. MPEG-4 비디오 부호화 및 복호화를 위한 연산처리 및 각 모듈 사이의 데이터 흐름에 대한 스케쥴링을 수행하기 위한 디지털 신호 처리수단과;
    상기 디지털 신호 처리수단의 제어를 받아 호스트 PC와의 데이터 송수신을 수행하기 위한 PCI 인터페이스 제어 모듈수단과;
    외부에서 입력되는 영상 데이터를 상기 디지탈 신호 처리수단의 필터계수에 의해 프레임 단위의 저주파 대역 필터링을 수행하기 위한 전처리 모듈 수단과;
    상기 전처리 모듈수단에서 입력되는 프레임 데이터를 부호화 순서에 맞도록 재배열한 뒤 상기 디지탈신호 처리수단으로 출력하며, 동시에 원영상 데이터를 디스플레이 하기 위해 상기 PCI 인터페이스 제어모듈수단을 거쳐 모니터로 출력하기 위한 입력영상 재배열 메모리 모듈수단과;
    MPEG-4 비디오 부호화 및 복호화 기능을 수행하기 위한 프로그램 및 데이터를 저장하기 위한 프로그램 및 데이터 메모리 블록수단과;
    움직임추정 및 보상 전용 칩인 ME2MC를 이용하여 많은 계산량을 요구하는 움직임추정 및 보상 기능을 수행하기 위한 움직임추정 및 보상 모듈수단과;
    부호화시 발생된 비트열을 상기 PCI 인터페이스 제어수단을 거쳐 PC로 출력하기 위한 비트열 출력 모듈수단과;
    복호화하기 위한 비트열을 PC로부터 입력받기 위한 사용되는 비트열 입력 모듈수단과;
    복호화에 사용되는 재생 영상 데이터를 저장하고, 재생 영상 데이터를 재배열한 뒤 디스플레이 하기 위해 상기 PCI 인터페이스 제어수단을 거쳐 모니터로 출력하기 위한 재생영상 메모리 모듈수단을 포함하여 구성되는 것을 특징으로 하는 PC 기반 비디오 부호화 및 복호화장치.
  2. PC 에 의해 디지탈신호 처리수단을 초기화하는 제1 단계와;
    상기 초기화된 디지탈신호 처리수단에 의해 PC 로부터 프로그램 및 데이터를 입력바당 프로그램 및 데이터 메모리블럭수단에 저장시키는 제2 단계와;
    상기 디지털 신호 처리수단에 의해 PC로부터 동작모드 정보를 입력받아, 그 동작모드를 판단하는 제3 단계와;
    상기 판단결과 동작모드가 입력영상 저장모드인 경우, 외부로부터 입력되는 영상을 PC의 하드 디스크에 저장하고, 실시간 부호화모드인 경우 외부로부터 입력되는 영상을 부호화한 뒤 그 부호화된 비트열을 PC로 출력하고, 실시간 복호화모드인 경우 PC로부터 입력되는 비트열을 복호화한 뒤 그 복화화된 재생영상을 모니터로 출력하는 제4 단계와;
    상기 판단결과 동작모드가 실시간 코덱모드인 경우 실시간 부호화 및 복호화를 프레임 단위로 번갈아가며 수행하고, 비 실시간 부호화모드인 경우 PC로부터 입력되는 영상을 부호화한 뒤, 부호화된 비트열을 PC로 출력하는 제5 단계로 이루어지는 것을 특징으로 하는 PC 기반 비디오 부호화 및 복호화 방법.
KR1019970071603A 1997-12-22 1997-12-22 피씨기반비디오부호화및복호화장치및그방법 KR100306743B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970071603A KR100306743B1 (ko) 1997-12-22 1997-12-22 피씨기반비디오부호화및복호화장치및그방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970071603A KR100306743B1 (ko) 1997-12-22 1997-12-22 피씨기반비디오부호화및복호화장치및그방법

Publications (2)

Publication Number Publication Date
KR19990052154A KR19990052154A (ko) 1999-07-05
KR100306743B1 true KR100306743B1 (ko) 2001-11-30

Family

ID=37530346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970071603A KR100306743B1 (ko) 1997-12-22 1997-12-22 피씨기반비디오부호화및복호화장치및그방법

Country Status (1)

Country Link
KR (1) KR100306743B1 (ko)

Also Published As

Publication number Publication date
KR19990052154A (ko) 1999-07-05

Similar Documents

Publication Publication Date Title
EP1446953B1 (en) Multiple channel video transcoding
US5812791A (en) Multiple sequence MPEG decoder
US7054964B2 (en) Method and system for bit-based data access
US5774206A (en) Process for controlling an MPEG decoder
US8774281B2 (en) Implementation of a DV video decoder with a VLIW processor and a variable length decoding unit
EP1542474A1 (en) Decoding device, electronic apparatus, computer, decoding method, program, and recording medium
US20060088279A1 (en) Reproduction apparatus, data processing system, reproduction method, program, and storage medium
US20090297051A1 (en) Image Processing Apparatus
US20090034625A1 (en) Image Decoder
US20110316862A1 (en) Multi-Processor
US6285789B1 (en) Variable length code decoder for MPEG
GB2307616A (en) Apparatus for decoding MPEG video bitstream
JPH10276164A (ja) 多重化装置および多重化方法、伝送装置および伝送方法、並びに記録媒体
JP2006157873A (ja) データ処理システム、再生装置、コンピュータ、再生方法、プログラムおよび記録媒体
KR100306743B1 (ko) 피씨기반비디오부호화및복호화장치및그방법
JP2000217109A (ja) 動画像再生装置及び再生方法
US7675972B1 (en) System and method for multiple channel video transcoding
WO2002087248A2 (en) Apparatus and method for processing video data
KR20050077145A (ko) 듀얼 비디오 디코딩을 위한 비디오 버퍼 제어 장치
US7729591B2 (en) Data processing apparatus, reproduction apparatus, data processing system, reproduction method, program, and storage medium
JP2009118226A (ja) メモリ制御装置および制御方法
US7627232B2 (en) Reproduction apparatus, data processing system, reproduction method, program, and storage medium
JP4538161B2 (ja) 映像音声処理装置
JPH05110447A (ja) データ処理装置
JP2001103427A (ja) 圧縮画像再生装置及びプログラム記録媒体

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee