KR100502586B1 - 처리효율을높인영상음성처리장치 - Google Patents

처리효율을높인영상음성처리장치 Download PDF

Info

Publication number
KR100502586B1
KR100502586B1 KR10-1998-0012261A KR19980012261A KR100502586B1 KR 100502586 B1 KR100502586 B1 KR 100502586B1 KR 19980012261 A KR19980012261 A KR 19980012261A KR 100502586 B1 KR100502586 B1 KR 100502586B1
Authority
KR
South Korea
Prior art keywords
address
data
block
processing
buffer
Prior art date
Application number
KR10-1998-0012261A
Other languages
English (en)
Other versions
KR19980081156A (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 마츠시타 덴끼 산교 가부시키가이샤
Publication of KR19980081156A publication Critical patent/KR19980081156A/ko
Application granted granted Critical
Publication of KR100502586B1 publication Critical patent/KR100502586B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42607Internal components of the client ; Characteristics thereof for processing the incoming bitstream
    • 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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42692Internal components of the client ; Characteristics thereof for reading from or writing on a volatile storage medium, e.g. Random Access Memory [RAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6143Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a satellite

Abstract

본 발명의 영상음성 처리장치는, 외부 요인에 의해 비동기로 발생하는 입출력 처리를 하는 입출력 처리부와, 상기 입출력 처리와 병행하여, 메모리에 저장된 데이터 스트림의 디코드를 주로 하는 디코드 처리를 행하는 디코드 처리부를 구비한다. 입출력 처리는 외부로부터 비동기로 입력되는 상기 데이터 스트림을 입력하고, 또 메모리에 저장하는 것, 메모리에 저장된 데이터 스트림을 디코드 처리부에 공급하는 것을 포함한다. 디코드 처리부는 데이터 스트림에 대하여, 조건 판단을 주로 하는 순차 처리와, 압축영상 데이터의 헤더 해석을 제외하는 압축영상 데이터의 디코드를 순차 처리와 병행하여 행하는 정형처리로 이루어진다.
이 구성에 의하면, 입출력 처리부와 디코드 처리부가 파이프라인적으로 병렬 동작하는 것에 덧붙여서, 비동기 처리와 디코드 처리를 입출력 처리부와 디코드 처리부로 분담시키기 때문에, 디코드 처리부는 비동기로 발생하는 처리로부터 해방되어 디코드 처리에만 종사할 수 있다. 그 결과, 본 영상음성 처리장치는, 스트림 데이터 입력, 디코드, 출력이라는 일련의 처리를 효율적으로 실행한다.

Description

처리 효율을 높인 영상음성 처리장치
본 발명은 디지털 신호처리의 기술 분야에 속하는 것으로, 압축된 영상 및 음성 데이터의 신장, 영상 및 음성 데이터의 압축, 그래픽스 처리 등을 행하는 영상음성 처리장치에 관한 것이다.
최근, 디지털 동화상 데이터의 압축/신장 기술이 확립된 것이나, LSI 기술이 향상된 것과 더불어 압축 영상 및 음성 데이터를 신장하는 디코더, 영상 및 음성 데이터를 압축하는 인코더, 그래픽스 처리를 행하는 그래픽스 처리 등의 여러가지 영상음성 처리장치가 중요시되고 있다.
제 1 종래 기술로서, MPEG(Moving Picture Experts Group) 규격의 압축 영상 및 음성 데이터를 신장하는 영상음성 디코더(일본국 특개평 8-1116429)가 있다. 이 영상음성 디코더는 1개의 신호처리 유니트을 이용하여 영상 디코드와 음성 디코드의 양쪽을 행한다.
도 1에 이 영상음성 디코더에 의한 디코드 처리의 설명도를 도시한다. 도 1의 종축은 시간을, 횡축은 연산량을 나타낸다.
종축에 따라 크게 보면, 영상 디코드와 음성 디코드가 교호로 처리된다. 이것은 공통의 하드웨어로 영상, 음성의 양자를 디코드하기 위해서이다. 도 1과 같이 영상 디코드는 순차 처리와 블록 처리로 나뉘어진다. 순차 처리는 블록 이외의 디코드, 요컨대 MPEG 스트림의 헤더 해석 등 다방면에 걸치는 조건 판단을 필요로 하는 처리이고, 그 연산량은 적다. 블록 디코드는 MPEG 스트림의 가변길이 부호를 복호하고 또 블록 단위로 역양자화, 역DCT(이산여현변환)를 행하는 처리이고, 그 연산량은 크다. 도 1과 같이 음성 디코드도 다방면에 걸치는 조건 판단을 필요로 하는 상기와 같은 순차 처리와, 음성 데이터 본체의 디코드 처리로 나뉘어진다. 음성 데이터 본체의 디코드 처리는 화상 데이터보다 높은 정밀도가 요구되며, 또한 한정된 시간 내에 처리해야 하므로 정밀도가 높게 고속으로 처리하 필요가 있고, 그 연산량은 크다.
이와 같이, 제 1 종래 기술은 1칩화를 가능하게 하고, 1칩이라는 적은 하드웨어로 효율적인 음성영상 디코드를 실현하고 있다.
제 2 종래 기술로서, 2칩 구성의 디코더가 있다. 1칩은 영상 디코더, 다른 1칩은 음성 디코더로서 이용된다. 도 2에 2칩 구성의 디코더에 의한 디코드 처리의 설명도를 도시한다. 영상 디코더, 음성 디코더 모두 헤더 해석 등의 조건 판단을 다수 포함하는 순차 처리와, 데이터 본체의 디코드를 주로 하는 블록 디코드 처리를 행한다. 영상 디코더, 음성 디코더 모두 독립적으로 처리하기 때문에 제 1 종래 기술에 비해 개개의 칩의 능력은 낮아도 된다.
그러나 상기 종래 기술에 의하면, 다음과 같은 문제점이 있었다.
제 1 종래 기술에 의하면, 신호처리 유니트가 영상도 음성도 디코드해야 하므로 높은 처리 능력이 요구된다. 요컨대 100㎒ 이상의 고속 클록을 이용하여 동작시킬 필요가 있고, 민간용 반도체로서는 가격이 비싸다는 문제점이 있다. 또한, 고속 클록을 이용하지 않고 처리 능력을 높이기 위해 VLIW(Very Long Instruction Word) 프로세서 등을 이용하는 것도 고려할 수 있으나, VLIW 프로세서 자체의 가격이 비싼데다가 별도 순차 처리를 행하는 프로세서를 이용하지 않으면 전체의 처리로서는 비효율이 된다는 문제점이 있다.
제 2 종래 기술에 의하면, 2개의 프로세서를 이용하므로 가격이 비싸다는 문제점이 있었다. 요컨대, 영상용 프로세서도 음성용 프로세서도, 처리능력이 낮은 범용의 염가인 프로세서를 그대로 사용할 수는 없다. 왜냐하면 영상용 프로세서는 대량의 화상 데이타를 실시간에 처리할 능력이 요구되기 때문이다. 또 음성용 프로세서는 영상용 프로세서만큼 많은 연산량이 요구되지만, 음성 데이터쪽이 화상 데이타보다 높은 정밀도가 요구되기 때문이다. 그러므로, 염가인 혹은 처리 능력이 낮은 프로세서에서는 영상용으로서도 음성용으로서도, 요구되는 처리 능력을 만족하지 않는다.
또, 디지털(위성) 방송용 튜너(STB(Set Top Box)라 함)이나 DVD(Digital Versatile/Video Disc) 재생 장치 등에 이용되는 AV 디코더 중에 상기 영상음성 처리장치가 이용되는 경우에는, 방송파로부터 수신된 혹은 디스크로부터 판독된 MPEG 스트림을 입력하고, 그 MPEG 스트림을 디코드하여, 최종적으로 디스플레이, 스피커 등으로 영상 신호 출력 및 음성 신호 출력을 할 때까지 필요로 되는 일련의 처리량은 방대한 것이 된다. 최근에는 이러한 일련의 방대한 처리를 효율적으로 실행하는 영상음성 처리장치에 대한 요구가 높아지고 있다.
본 발명은 압축 화상 및 압축음성 데이터를 나타내는 스트림 데이터의 입력, 디코드, 출력이라는 일련의 처리를 행하여 높은 주파수로 동작시키지 않더라도 높은 처리 능력을 갖고, 제조 가격을 저감시킬 수 있는 화상처리장치를 제공하는 것을 목적으로 한다.
또한 본 발명의 다른 목적은, 압축영상 데이터의 디코드, 영상 데이터의 인코드, 그래픽스 처리를 저가격으로 실현하는 영상음성 처리장치를 제공하는 것에 있다.
상기 목적을 달성하기 위한 영상음성 처리장치는 압축음성 데이터와 압축영상 데이터를 포함하는 데이터 스트림을 외부로부터 입력, 디코드하고, 디코드한 데이터를 출력장치에 출력하는 영상음성 처리장치에 있어서, 외부 요인에 의해 비동기로 발생하는 입출력, 즉 외부로부터 비동기로 입력되는 상기 데이터 스트림을 입력하여 메모리에 저장하는 것과, 메모리에 저장된 데이터 스트림을 디코드 처리수단에 공급하는 것을 포함하는 입출력 처리를 행하는 입출력 처리수단과, 상기 입출력 처리와 병행하여, 메모리에 저장된 데이터 스트림의 디코드를 주로 하는 디코드 처리를 행하는 디코드 처리수단을 포함하며, 상기 디코드된 영상 데이터, 디코드된 음성 데이터는 메모리에 저장되고, 상기 입출력 처리수단은, 또한 외부의 표시장치, 음성 출력장치 각각의 출력률에 맞추어 메모리로부터 판독하고, 그것들에 출력하는 것을 입출력 처리로서 행하는 것이다.
이 구성에 의하면, 입출력 처리수단과 디코드 처리수단이 파이프라인적으로 병렬 동작하는 것에 덧붙여, 비동기 처리와 디코드 처리를 입출력 처리수단과 디코드 처리수단으로 분담시키기 때문에, 디코드 처리수단은 비동기로 발생하는 처리로부터 해방되어 디코드 처리에만 종사할 수 있다. 그 결과, 본 영상음성 처리장치는 스트림 데이터 입력, 디코드, 출력이라는 일련의 처리를 효율적으로 실행하므로 스트림 데이터의 풀 디코드(프레임 누락없음)를 고속인 동작 클록을 이용하지 않아도 가능하게 하고 있다.
여기에서, 상기 디코드 처리수단은 데이터 스트림에 대하여 조건 판단을 주로 하는 순차 처리, 즉 압축음성 데이터 및 압축영상 데이터의 헤더 해석과, 압축음성 데이터의 디코드를 포함하는 순차 처리로 행하는 순차 처리수단과, 상기 순차 처리와 병행하여, 압축영상 데이터의 헤더 해석을 제외하는 압축영상 데이터의 디코드인 정형처리를 행하는 정형 처리수단을 포함하도록 할 수 있다.
이 구성에 의하면 처리 특성이 다른 순차 처리와 병렬 처리에 적합한 정형 처리를 하나의 유니트에 병존시키는 것을 해소함에 의해, 처리 효율을 대폭 향상시킬 수 있다. 특히, 정형 처리수단의 처리 효율을 향상시킬 수 있다. 왜냐하면 본 영상음성 처리장치에 있어서, 정형 처리수단은 상기의 비동기 처리 및 순차 처리로부터 해방되었기 때문에, 압축영상 데이터의 디코드에 요구되는 정형적인 여러가지 연산에만 종사할 수 있기 때문이다. 그 결과, 고속인 동작 클록을 이용하지 않아도 높은 처리 능력을 얻을 수 있다.
여기에서, 상기 입출력 처리수단은 외부로부터 비동기 데이터 스트림을 입력하는 입력수단과, 외부의 표시장치에 디코드된 영상 데이터를 출력하는 영상 출력수단과, 외부의 음성 출력장치에 디코드된 음성 데이터를 출력하는 음성 출력수단과, 명령 메모리에 저장된 제 1 내지 제 4의 태스크 프로그램을 전환하면서 실행하는 프로세서를 포함하며, 제 1 태스크는 입력부로부터 상기 메모리로 데이터 스트림을 전송하고, 제 2 태스크는 상기 메모리로부터 디코드 처리수단으로 데이터 스트림을 공급하며, 제 3 태스크는 상기 메모리로부터 영상 출력부에 디코드된 영상 데이터를 출력하고, 제 4 태스크는 상기 메모리로부터 음성 출력부에 디코드된 음성 데이터를 출력하도록 할 수 있다.
여기에서, 상기 프로세서는 상기 제 1 내지 제 4 태스크에 대응하는 적어도 4개의 프로그램 카운터를 갖는 프로그램 카운터부와, 하나의 프로그램 카운터가 지시하는 명령 어드레스를 이용하여, 각 태스크 프로그램을 기억하는 명령 메모리로부터 명령을 페치하는 명령 페치부와, 명령 페치부에 페치된 명령을 실행하는 명령 실행부와, 소정수의 명령 사이클이 경과할 때마다 명령 페치부에 대하여 프로그램 카운터를 순차 전환하도록 제어하는 태스크 제어부를 포함하도록 할 수 있다.
이 구성에 의하면, 외부 장치에 의해 정해지는 스트림 데이터의 입력률 및 입력 주기, 외부 표시장치, 외부 음성 출력장치에 의해 정해지는 영상 데이터, 음성 데이터 각각의 출력률 및 출력 주기가 어떠한 범위이어도 입출력 요구에 대한 응답 지연이 매우 작다고 하는 효과가 있다.
또한, 본 발명의 영상음성 처리장치는, 압축음성 데이터와 압축영상 데이터를 포함하는 데이터 스트림을 입력하는 입력수단과, 데이터 스트림에 대하여, 조건 판단을 주로 하는 순차 처리, 즉 데이터 스트림 중의 소정 블록 단위로 부가된 헤더 정보의 해석과, 데이터 스트림 중의 압축음성 데이터의 복호를 포함하는 순차처리를 행하는 순차 처리수단과, 상기 순차 처리와 병행하여, 정형 연산을 주로 하는 정형 처리, 즉 헤더 해석의 결과를 이용하여 데이터 스트림 중의 압축영상 데이터를 소정 블록 단위로 복호하는 정형처리를 행하는 정형 처리수단을 포함하며, 상기 순차 처리수단은 상기 소정 블록의 헤더 해석이 종료되었을 때, 정형 처리수단에 당해 소정 블록의 디코드 개시를 지시하고, 정형 처리수단으로부터 소정 블록의 디코드 종료통지를 받았을 때, 다음의 소정 블록의 헤더 해석을 시작하도록 할 수 있다.
이 구성에 의하면, 순차 처리수단이 압축영상 데이터에 대하여도 압축음성 데이터에 대하여도 다방면에 걸치는 조건 판단을 필요로 하는 헤더 해석을 담당함과 동시에 음성압축 데이터의 디코드도 담당한다. 한편, 정형 처리수단은 압축영상 데이터의 블록 데이터에 대한, 정형적인 대량의 연산량을 담당한다. 이러한 역할 분담에 의해, 또한 순차 처리수단은 영상 디코드에 비하여 연산량이 적은 음성 디코드 전반과, 압축영상 데이터의 헤더 해석과, 정형 처리수단의 제어를 행한다. 그 제어하에서, 정형 처리수단은 오로지 정형적인 연산을 하기 때문에, 낭비가 없는 효율적인 처리를 실현할 수 있다. 그러므로 높은 주파수로 동작시키지 않아도 처리 능력을 얻을 수 있고, 제조 가격을 저감시킬 수 있다. 또한, 순차 처리수단은 음성 디코드 전반과, 압축영상 데이터의 헤더 해석과, 정형 처리수단의 제어를 순차 행하므로 1프로세서로써 구성할 수 있다.
여기에서, 상기 정형 처리수단은, 순차 처리수단의 지시에 따라 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 데이터 변환수단과, 가변길이 복호에 의해 얻어진 영상 블록에 대하여, 소정의 연산을 함으로써 역양자화 및 역이산 여현변환을 행하는 연산수단과, 역이산 여현변환 후의 영상 블록과 복호완료 블록을 합성함으로써 움직임 보상처리를 행하여 영상 데이터를 복원하는 합성수단을 포함하며, 상기 순차 처리수단은, 데이터 변환수단에 의해 가변길이 복호된 헤더 정보를 취득하는 취득수단과, 취득된 헤더 정보를 해석하는 해석수단과, 해석 결과로서 얻어지는 파라미터를 정형 처리수단에 통지하는 통지수단과, 입력수단에 의해 입력된 데이터 스트림 중의 압축음성 데이터를 복호하는 음성 복호수단과, 상기 정형 처리수단으로부터 소정 블록의 디코드 완료를 통지하는 인터럽트 신호를 받았을 때, 음성 복호수단의 동작을 정지함과 동시에 취득수단을 기동하고, 상기 통지수단이 상기 통지를 하였을 때, 상기 데이터 변환수단에 영상 블록의 가변길이 복호의 시작을 지시하는 제어수단을 포함하도록 할 수 있다.
이 구성에 의하면, 매크로 블록 등 소정 블록단위로 순차 처리수단은 헤더 해석을 한 후 음성 디코드를 행하여, 정형 처리수단에 의해 소정 블록의 디코드가 완료하였을 때 다음 블록의 헤더 해석을 시작한다. 이와 같이 순차 처리수단은 시분할로 헤더 해석과 음성 디코드를 반복하기 때문에 1개의 프로세서로써 저가격으로 실현할 수 있다. 또한, 정형 처리수단은 다방면에 걸치는 조건 판단처리를 할 필요가 없기 때문에, 저가격으로 전용 하드웨어(혹은 하드웨어와 펌웨어)화할 수 있다.
여기에서, 상기 연산수단은, 또한 1블록에 상당하는 기억영역을 갖는 제 1 버퍼를 포함하며, 상기 데이터 변환수단은, 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 가변길이 복호수단과, 제 1 버퍼의 기억영역의 어드레스를 지그재그 스캔 순으로 나열한 제 1 어드레스열을 기억하는 제 1 어드레스표 수단과, 제 1 버퍼의 기억영역의 어드레스를 교호 스캔순으로 나열한 제 2 어드레스열을 기억하는 제 2 어드레스표 수단과, 제 1 어드레스열과 제 2 어드레스열의 한쪽에 따라 가변길이 복호수단의 가변길이 복호에 의해 얻어지는 블록 데이터를 제 1 버퍼에 기입하는 기입수단을 포함하도록 할 수 있다.
이 구성에 의하면, 기입수단은 지그재그 스캔과 교호 스캔의 어느쪽에도 대응하여, 제 1 버퍼의 기억 영역에 블록 데이터를 기입할 수 있다. 따라서 연산수단은 제 1 버퍼의 기억영역으로부터 블록 데이터를 판독시에 판독 어드레스의 순서를 변경하지 않아도 되고, 스캔 타입에 관계없이 항상 같은 판독 어드레스의 순서로 판독할 수 있다.
여기에서, 상기 해석수단은 헤더 정보에 따라 양자화 스케일과 동벡터를 산출하고, 상기 통지수단은 양자화 스케일을 연산수단에, 동벡터를 합성수단에 통지하도록 할 수 있다.
이 구성에 의하면, 동벡터의 산출을 순차 처리수단에 담당시킬 수 있고, 합성수단은 산출된 동벡터를 이용하여 정형적으로 움직임 보상처리를 할 수 있다.
여기에서, 상기 연산수단은 각각 마이크로 프로그램을 기억하는 제 1 제어 기억부, 제 2 제어 기억부와, 제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와, 제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와, 제 1 판독 어드레스와 제 2 판독 어드레스의 한쪽을 선택하여 제 2 제어 기억부로 출력하는 셀렉터와, 승산기와 가산기를 갖고, 제 1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역이산 여현변환을 실행하는 실행부를 포함하도록 할 수 있다.
이 구성에 의하면, 마이크로 프로그램(펌웨어)는 다방면에 걸치는 조건 판단처리를 할 필요가 없고, 정형적인 처리를 실현할 뿐이므로 프로그램 크기가 작고 또한 작성이 용이하고, 저가격화에 적합하다. 더구나, 2개의 프로그램 카운터를 사용하여 승산기와 가산기를 독립적으로 병렬로 동작시킬 수 있다.
여기에서, 상기 실행부는 셀렉터에 의해 제 2 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 독립 병행하여 행하고, 셀렉터에 의해 제 1 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 연동시켜 행하도록 할 수 있다.
이 구성에 의하면, 승산기 및 가산기의 여유 시간을 줄여 처리 효율을 향상시킬 수 있다.
여기에서, 상기 연산수단은 데이터 변환수단으로부터의 영상 블록을 유지하는 제 1 버퍼와, 실행부에 의해 역이산 여현변환된 블록을 유지하는 제 2 버퍼를 추가로 포함하며, 제 1 제어 기억부는 역양자화 처리하는 마이크로 프로그램과, 역이산 여현변환하는 마이크로 프로그램을 기억하고, 제 2 제어 기억부는 역이산 여현변환하는 마이크로 프로그램과, 역이산 여현변환된 영상 블록을 제 2 버퍼에 전송하는 마이크로 프로그램을 기억하며, 상기 실행수단은 역이산 여현변환된 영상 블록을 제 2 버퍼에 전송하는 처리와, 다음의 영상 블록을 역양자화하는 처리를 병렬로 실행하고, 역양자화된 당해 영상 블록을 역이산 여현변환하는 처리를 승산기와 가산기를 연동시켜 실행하도록 할 수 있다.
이 구성에 의하면, 역양자화 처리와 제 2 버퍼로의 전송처리를 병렬 실행하므로 처리 효율을 향상시킬 수 있다.
여기에서, 상기 입력수단은, 또한 폴리곤 데이터를 입력하고, 상기 순차 처리수단은, 또한 폴리곤 데이터를 해석하여 폴리곤의 정점 좌표와 에지의 경사를 산출하며, 상기 정형 처리수단은, 또한 산출된 정점 좌표와 경사에 따라 상기 폴리곤의 화상 데이터를 생성하도록 할 수 있다.
이 구성에 의하면, 순차 처리수단은 폴리곤 데이터의 해석을 담당하고, 정형 처리수단은 정형적인 화상 데이터 생성처리를 담당한다. 본 영상음성 처리장치는 효율적으로 폴리곤 데이터로부터 화상 데이타를 생성하는 그래픽스 처리를 할 수 있다.
여기에서, 상기 제 1 제어 기억부, 제 2 제어 기억부는, 또한 DDA 알고리즘에 의한 주사 변환을 행하는 마이크로 프로그램을 기억하며, 상기 실행부는, 또한 순차 처리수단에 의해 산출된 정점 좌표와 경사에 따라 마이크로 프로그램 제어에 의해 주사 변환을 행하도록 할 수 있다.
이 구성에 의하면, 화상 데이타의 생성은 상기 제 1, 제 2 제어 기억부에 주사변환 마이크로 프로그램에 의해 간단히 실현할 수 있다.
여기에서, 상기 합성수단은, 또한 압축해야 할 영상 데이터로부터 차분(差分) 화상을 나타내는 차분 블록을 생성하고, 상기 제 2 버퍼는, 또한 생성된 차분 화상을 유지하며, 제 1 제어 기억부는, 또한 이산 여현변환하는 마이크로 프로그램과, 양자화처리하는 마이크로 프로그램을 기억하고, 제 2 제어 기억부는, 또한 이산 여현변환하는 마이크로 프로그램과, 이산 여현변환된 영상 블록을 제 1 버퍼에 전송하는 마이크로 프로그램을 기억하고, 상기 실행수단은, 또한 제 2 버퍼에 유지된 차분 블록에 대하여 이산 여현변환과 양자화를 실행하여 제 1 버퍼에 전송하며, 상기 데이터 변환수단은, 또한 제 1 버퍼의 블록에 대하여 가변길이 부호화를 행하고, 상기 순차 처리수단은, 또한 데이터 변환수단에 의해 가변길이 부호화된 소정의 블록에 대하여 헤더 정보를 부가하도록 할 수 있다.
이 구성에 의하면 정형 처리수단은 정형적인 처리로서 양자화와 이산 여현변환을 담당하고, 순차 처리수단은 조건판단을 요하는 처리(헤더 정보의 부가)를 담당한다. 이 경우, 본 영상음성 처리장치는 고속 클록을 이용하지 않아도 화상 데이터로부터 압축영상 데이터로의 인코드 처리를 효율적으로 실행할 수 있다.
여기에서, 상기 연산수단은 마이크로 프로그램을 기억하는 제 1 제어 기억부, 제 2 제어 기억부와, 제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와, 제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와, 제 1 판독 어드레스와 제 2 판독 어드레스의 한쪽을 선택하여 제 2 제어 기억부에 출력하는 셀렉터와, 승산기와 가산기를 갖고, 제1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역이산 여현변환을 실행하는 복수의 실행부를 포함하며, 각 실행부는 블록을 분할한 부분 블록을 분담하여 처리하도록 할 수 있다.
이 구성에 의하면, 복수의 실행부가 병렬로 연산명령을 실행하기 때문에, 정형적인 대량의 연산을 효율적으로 실행할 수 있다.
여기에서, 상기 연산수단은 각 실행부에 대응하여 설정되고, 각 변환표는 소정의 어드레스열에 대응하여 부분적으로 어드레스 순서를 교체시킨 변환 어드레스를 유지하는 복수의 어드레스 변환표와, 소정의 연산을 실현하는 마이크로 프로그램을 구성하는 개개의 마이크로 명령을 변환 어드레스에 대응시켜 기억하는 복수 레지스터로 이루어지는 명령 레지스터군과, 제 1 및 제 2 제어 기억부와 복수의 실행부 사이에 설정되고, 제 1 제어 기억부 또는 셀렉터로부터 각 실행부로 출력되는 마이크로 명령을 명령 레지스터의 마이크로 명령으로 전환하여에 복수의 실행부로 출력하는 전환부를 포함하며, 상기 제 1 판독 어드레스 또는 제 2 판독 어드레스가 상기 소정의 어드레스열 중의 어드레스인 경우, 그 어드레스는 상기 각 어드레스 변환표에 의해 변환 어드레스로 변환되며, 상기 명령 레지스터군은 변환표로부터 출력된 각 변환 어드레스에 대응하는 마이크로 명령을 출력하도록 할 수 있다.
이 구성에 의하면, 복수의 실행부가 병렬로 마이크로 프로그램을 실행하는 동안, 실행부 사이에서 액세스의 경합 등 자원 간섭을 피하여 더욱 효율적으로 처리할 수 있다.
여기에서, 상기 각 변환표는 또한 제 1 프로그램 카운터가 상기 소정의 어드레스열 중의 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 가감산을 나타내는 마이크로 명령 출력에 따라, 가산할 것인지 감산할 것인지를 나타내는 플래그를 상기 복수의 실행부에 출력하고, 상기 각 실행부는 상기 플래그에 따라 가감산을 실행하며, 상기 플래그는 상기 제 2 제어 기억부의 마이크로 명령에 따라 설정되도록 할 수 있다.
이 구성에 의하면, 마이크로 명령에 의해 가산할 것인지 감산할 것인지를 변환표가 지정하기 때문에, 같은 마이크로 프로그램을 2가지로 공용할 수 있으므로 더욱 마이크로 프로그램의 전용량을 저감시킬 수 있고, 하드웨어 규모의 저감, 나아가서는 저가격화를 실현할 수 있다.
여기에서, 상기 제 2 제어 기억부는, 또한 제 1 프로그램 카운터가 상기 소정의 어드레스열 중 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 마이크로 명령 출력에 따라, 마이크로 명령 실행결과의 저장장소를 나타내는 정보를 상기 복수의 실행부에 출력하고, 상기 각 실행부는, 저장장소 정보에 따라서 실행 결과를 저장하도록 할 수 있다.
이 구성에 의하면, 저장장소 정보는 명령 레지스터군 중의 마이크로 프로그램과 별개로 지정할 수 있기 때문에, 해당 마이크로 프로그램을 다른 처리, 예를 들면 행렬 연산의 부분적인 처리에서 공용할 수 있다. 그 결과, 또한 마이크로프 로그램의 전용량을 저감시킬 수 있고, 하드웨어 규모의 저감, 나아가서는 저가격화를 실현할 수 있다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부 도면과 관련한 다음의 상세한 설명을 통해 보다 분명해 질 것이다.
본 발명의 영상음성 처리장치에 대하여 그 실시예를 다음과 같이 항을 분류하여 기재하기로 한다.
1. 제 1 실시예
1.1. 영상음성 처리장치의 개략 구성
1.1.1. 입출력 처리부
1.1.2. 디코드 처리부
1.1.2.1. 순차 처리부
1.1.2.2. 정형 처리부
1.2. 영상음성 처리장치의 구성
1.2.1. 입출력 처리부의 구성
1.2.2. 디코드 처리부
1.2.2.1. 순차 처리부
1.2.2.2. 정형 처리부
1.3. 각부의 상세 구성
1.3.1. 프로세서(7) (순차 처리부)
1.3.2. 정형 처리부
1.3.2.1. 코드 변환부
1.3.2.2. 화소 연산부
1.3.2.3. 화소 판독기입부
1.3.3. 입출력 처리부
1.3.3.1. IO 프로세서
1.3.3.1.1. 명령 판독회로
1.3.3.1.2. 태스크 관리부
1.4. 동작 설명
2. 제 2 실시예
2.1. 영상음성 처리장치의 구성
2.1.1. 화소 연산부
< 1. 제 1 실시예 >
본 실시예에서의 영상음성 처리장치는 위성방송 수신장치(STB : Set Top Box라 함), DVD(Digital Versati1e Disc) 재생장치, DVD-RAM 기록 재생장치 등에 구비되고, 압축영상/음성 데이터로서 위성방송으로부터 또는 DVD로부터의 MPEG 스트림을 입력하고, 신장 처리(이하 간단히 디코드라 함)를 행하여, 영상신호 및 음성신호를 외부의 출력장치에 출력한다.
< 1.1 영상음성 처리장치의 개략 구성 >
도 3은 본 발명의 제 1 실시예에서의 영상음성 처리장치의 개략 구성을 도시한 블록도이다.
영상음성 처리장치(1000)는 입출력 처리부(1001), 디코드 처리부(1002), 메모리 컨트롤러(6)를 구비하며, 입출력 처리와 디코드 처리를 분리하여 병행하여 행하도록 구성되어 있다. 또한, 외부 메모리(3)는 MPEG 스트림이나 디코드 후의 음성 데이터를 일시적으로 기억하는 작업용 메모리, 디코드 후의 영상 데이터를 기억하는 프레임 메모리로서 이용된다.
< 1.1.1 입출력 처리부 >
입출력 처리부(1001)는 영상음성 처리장치(1000)의 내부 동작과는 비동기로 발생하는 입출력 처리를 행한다. 이 입출력 처리는, (a) 외부에서 비동기로 입력되는 MPEG 스트림을 입력하여 외부 메모리(3)에 일시적으로 저장하는 것, (b) 외부 메모리(3)에 저장된 MPEG 스트림을 디코드 처리부(1002)에 공급하는 것, (c) 디코드된 영상 데이터, 음성 데이터를 외부 메모리(3)로부터 판독하여 외부의 표시 장치, 음성 출력장치(도시 생략) 각각의 출력률에 맞추어 출력하는 것을 내용으로 한다.
< 1.1.2 디코드 처리부 >
디코드 처리부(1002)는 입출력 처리부(1001)의 동작과는 독립적으로 병행하여, 입출력 처리부(1001)에 의해 공급되는 MPEG 스트림을 디코드하고, 디코드 후의 영상 데이터 및 음성 데이터를 외부 메모리(3)에 저장한다. MPEG 스트림의 디코드 처리는 연산량이 많고 처리 내용도 다방면에 걸치기 때문에, 디코드 처리부(1002)는 순차 처리부(1003), 정형 처리부(1004)를 구비하며, 다방면에 걸치는 조건 판단을 주로 하는 순차 처리와, 정형적인 대량의 연산을 주로 하고 또한 병렬 연산에 적합한 정형 처리를 분리하여 병행하여 실행하도록 구성되어 있다. 여기에서, 순차 처리는 MPEG 스트림의 헤더 해석 등이며, 헤더의 검출 및 헤더 내용의 판정 등의 다수의 조건 판단을 포함한다. 또, 정형 처리는 소정수의 화소로 이루어지는 블록 단위로 각종 연산을 실시할 필요가 있으므로 파이프라인적인 병렬 처리에 적합하고, 또한 다른 데이터(화소)에 대하여 전부 동일한 연산을 실행하는 벡터 연산과 같은 병렬처리에 적합하다.
< 1.1.2.1 순차 처리부 >
순차 처리부(1003)는 입출력 처리부(1001)로부터 공급되는 압축음성 데이터 및 압축영상 데이터의 헤더 해석과, 정형 처리부(1004)를 매크로 블록마다 기동하는 제어와, 압축음성 데이터의 디코드 처리를 상기 순차 처리로서 행한다. 헤더 해석은 MPEG 스트림에서의 매크로 블록 헤더의 해석과, 동벡터의 복호를 포함한다. 여기에서 블록이란, 8*8화소로 이루어지는 화상을 나타낸다. 매크로 블록이란 4개의 휘도 블록과 2개의 색차 블록으로 이루어진다. 동벡터란 참조 프레임 중의 8*8 화소의 구형영역을 가리키는 벡터이며, 당해 블록이 참조 프레임 중의 어느 구형영역과의 차분이 취해졌는지를 지시한다.
< 1.1.2.2 정형 처리부 >
정형 처리부(1004)는 순차 처리부(1003)로부터 매크로 블록별로 디코드의 기동 지시를 받아 순차 처리부(1003)의 음성 디코드 처리와 병행하여, 매크로 블록의 디코드 처리를 상기 정형 처리로서 행한다. 이 디코드 처리는 가변길이 부호의 복호(VLD : Variable Length code Decoding), 역양자화(IQ : Inverse Quantization), 역이산 여현변환(IDCT : Inverse Discrete Cosine Transform), 움직임 보상(MC : Motion Compensation)을 같은 순서로 실시하는 것을 내용으로 한다. 정형 처리부(1004)는 움직임 보상에 있어서, 복호 후의 블록을 프레임 메모리로서의 외부 메모리(3)에 메모리 컨트롤러(6)를 통해 저장한다.
< 1.2 영상음성 처리장치의 구성 >
도 4는 영상음성 처리장치(1000)의 보다 상세한 구성을 도시한 블록도이다.
< 1.2.1 입출력 처리부의 구성 >
도 4에서 입출력 처리부(1001)는 스트림 입력부(1), 버퍼 메모리(2), 입출력 프로세서(5)(이하 IO 프로세서(5)라 함), DMAC(Direct Memory Access Controller) (5a), 비디오 출력부(12), 음성 출력부(13), 호스트 I/F부(14)를 구비한다.
스트림 입력부(1)는 외부로부터 시리얼로 입력되는 MPEG 데이터 스트림을 패러렐 데이터(이후, MPEG 데이터라 함)로 변환한다. 그 때, 스트림 입력부(1)는 MPEG 데이터 스트림으로부터 GOP(Group 0f Picture : I 픽처를 1개 포함하고, 약 0.5초분의 동화상에 상당하는 MPEG 데이터 스트림)의 스타트 코드를 검출하고, 그 취지를 IO 프로세서(5)에 통지한다. 이 통지에 의해 변환 후의 MPEG 데이터는 IO 프로세서(5)의 제어에 의해 버퍼 메모리(2)에 전송된다.
버퍼 메모리(2)는 스트림 입력부(1)로부터 전송된 MPEG 데이터를 일시적으로 유지하는 완충용 메모리이다. 버퍼 메모리(2)에 유지된 MPEG 데이터는, 또한 입출력 프로세서(5)의 제어하에서 메모리 컨트롤러(6)를 통해 외부 메모리(3)로 전송된다.
외부 메모리(3)는 SDRAM(Synchronous Dynamic Random Access Memory) 칩으로 구성되며, 버퍼 메모리(2)로부터 메모리 컨트롤러(6)를 통해 전송된 MPEG 데이터를 일시적으로 유지한다. 또, 외부 메모리(3)는 복호 후의 영상 데이터(이후, 프레임 데이터라고도 함) 및 복호 후의 음성 데이터도 유지한다.
입출력 프로세서(5)는 스트림 입력부(1), 버퍼 메모리(2), 외부 메모리(3) (메모리 컨트롤러(6)가 개재함), FIFO 메모리(4) 사이의 데이터 입출력을 제어한다. 즉 이하의 (1)∼(4)에 나타내는 경로의 데이터 전송(DMA 전송)을 제어한다.
(1). 스트림 입력부(1)→버퍼 메모리(2)→메모리 컨트롤러(6)→외부 메모리(3)
(2). 외부 메모리(3)→메모리 컨트롤러(6)→FIFO 메모리(4)
(3). 외부 메모리(3)→메모리 컨트롤러(6)→버퍼 메모리(2)→비디오 출력부(12)
(4). 외부 메모리(3)→메모리 컨트롤러(6)→버퍼 메모리(2)→음성 출력부(13)
이들의 경로에서는 입출력 프로세서(5)는 MPEG 데이터 중의 영상 데이터와 음성 데이터를 독립적으로 각각의 전송을 제어한다. 또한, (1), (2)는 복호장소의 MPEG 데이터의 전송 경로이다. (1), (2)의 전송 경로에 있어서 입출력 프로세서(5)는 압축영상 데이터와 압축음성 데이터를 별개로 전송한다. (3), (4)는 각각 복호 후의 영상, 음성 데이터의 전송 경로이다. 복호 후의 영상, 음성 데이터는 외부의 표시 장치(도시 생략), 음성 출력장치(도시 생략) 각각의 출력률에 맞추어 전송된다.
DMAC(5a)는 스트림 입력부(1), 비디오 출력부(12), 음성 출력부(13)와 버퍼 메모리(2) 사이의 DMA전송, 버퍼 메모리(2)와 외부 메모리(3) 사이의 DMA전송, 외부 메모리(3)와 FIFO 메모리(4) 사이의 DMA 전송을 IO 프로세서(5)의 제어에 따라 실행한다.
비디오 출력부(12)는 외부의 표시 장치(CRT 등)의 출력률(예를 들면 수평 동기신호 Hsync의 주기)에 맞추어 입출력 프로세서(5)에 데이터 요구를 내고, 입출력 프로세서(5)에 의해 상기(3) 전송 경로에 의해 입력되는 영상 데이터를 그 표시 장치로 출력한다.
음성 출력부(13)는 외부의 음성 출력장치의 출력률에 맞추어 입출력 프로세서(5)에 데이터 요구를 내고, 입출력 프로세서(5)에 의해 상기 (4)의 전송 경로에 의해 입력되는 음성 데이터를 음성 출력장치(D/A 컨버터, 음성 앰프, 스피커의 조합 등)로 출력한다.
호스트 I/F(14)는 외부의 호스트 프로세서, 예를 들면 DVD 재생장치의 경우에는 그 제어 전반을 행하는 프로세서와의 통신을 하기 위한 인터페이스이다. 이 통신에서는 호스트 프로세서로부터 MPEG 스트림의 디코드 개시, 정지, 빨리감기 재생, 역재생 등의 지시 등이 보내진다.
< 1.2.2 디코드 처리부 >
도 4의 디코드 처리부(1002)는 FIFO 메모리(4), 순차 처리부(1003), 정형 처리부(1004)로 구비되며, 입출력 처리부(1001)로부터 FIFO 메모리(4)를 통해 공급되는 MPEG 데이터의 디코드 처리를 행한다. 또한, 순차 처리부(1003)는 프로세서(7)와 내부 메모리(8)를 구비한다. 정형 처리부(1004)는 코드 변환부(9), 화소 연산부(10), 화소판독 기입부(11), 버퍼(200), 버퍼(201)를 구비한다.
FIFO 메모리(4)는 2개의 FIFO(이하 영상 FIFO, 음성 FIFO라 함)로 이루어지며, 입출력 프로세서(5)의 제어하에서 외부 메모리(3)로부터 전송된 압축영상 데이터, 압축음성 데이터를 각각 선입 선출식(先入先出式)으로 기억한다.
< 1.2.2.1 순차 처리부 >
프로세서(7)는 FIFO 메모리(4)의 압축영상 데이터 및 압축음성 데이터의 판독을 제어하는 동시에, 압축영상 데이터에 대한 일부 디코드 처리와, 압축음성 데이터에 대한 전체 디코드 처리를 행한다. 압축영상 데이터의 일부 디코드처리란 MPEG 데이터 중의 헤더 정보의 해석과 동벡터의 계산과 압축영상 디코드 처리의 제어를 포함한다. 이것은 압축영상 데이터의 전체 디코드 처리를 프로세서(7)와, 정형 처리부(1004)로 분담하여 행하기 위해서이다. 요컨대 프로세서(7)는 다방면에 걸친 조건 판단을 필요로 하는 순차 처리를 분담하고, 정형 처리부(1004)는 대량의 정형적인 연산 처리를 분담한다. 이에 대하여 음성 디코드는 영상 디코드에 비해 연산량이 적기 때문에 프로세서(7)가 전부를 담당하고 있다.
프로세서(7)의 기능을 도 5를 이용하여 구체적으로 설명하기로 한다. 도 5는 MPEG 스트림을 계층적으로 도시하는 동시에 영상음성 처리장치 각부의 동작 타이밍을 도시한다. 도 5에서 횡축은 시간축이다. 제 1 계층은 MPEG 스트림의 흐름을 도시한다. 제 2 계층과 같이 1초 동안의 MPEG 스트림은 복수의 프레임(I, P, B 픽처)을 포함한다. 제 3 계층과 같이 1프레임은 픽처 헤더와 복수의 슬라이스를 포함한다. 제 4 계층과 같이 1슬라이스는 슬라이스 헤더와 복수의 매크로 블록을 포함한다. 제 5 계층과 같이 1매크로 블록은 매크로 블록 헤더와 6개의 블록을 포함한다.
도 5에서 도시된 제 1∼제 5 계층의 데이터 구성은, 공지 문헌, 예를 들면 주식회사 아스키「포인트 도해식 최신 MPEG 교과서」에 자세히 설명되어 있다.
프로세서(7)는 도 5의 제 5 계층 이하에 도시된 바와 같이, MPEG 스트림 중의 매크로 블록층까지의 헤더 해석과 압축음성 데이터의 복호를 행한다. 그 때, 프로세서(7)는 매크로 블록 단위의 헤더 해석결과에 따라 코드 변환부(9), 화소 연산부(10) 및 화소 판독기입부(11)에 대하여 매크로 블록의 디코드의 시작을 지시하고, 코드 변환부(9), 화소 연산부(10) 및 화소 판독기입부(11)에 의해 매크로 블록의 디코드가 이루어지고 있는 동안, FIFO 메모리(4)로부터 압축음성 데이터를 판독하여 디코드한다. 코드 변환부(9), 화소 연산부(10) 및 화소 판독기입부(11)에 의해 매크로 블록의 디코드가 종료되었다면 프로세서(7)는 인터럽트 신호에 의해 그 취지의 통지를 받고, 압축음성 데이터의 디코드를 중단하여 다음 매크로 블록의 헤더 해석을 시작한다.
내부 메모리(8)는 프로세서(7)의 워크 메모리이고, 복호된 음성 데이터를 일시적으로 유지한다. 유지된 음성 데이터는 입출력 프로세서(5)에 의해 상기 (4)의 경로로 외부 메모리(3)로 전송된다.
< 1.2.2.2 정형 처리부 >
코드 변환부(9)는 FIFO 메모리(4)로부터 판독된 압축영상 데이터를 가변길이 복호(VLD)한다. 도 5에 도시된 바와 같이, 코드 변환부(9)는 복호 후의 데이터 중, 헤더 정보 및 동벡터에 관한 정보(도면중의 점선 구간)를 프로세서(7)에 전송하고, 매크로 블록(휘도 블록 Y0∼Y3과 색차 블록 Cb, Cr로 이루어지는 6블록)의 데이터(도면중의 실선 구간)를 버퍼(200)를 통해 화소 연산부(10)로 전송한다. 코드 변환부(9)에 의한 복호 후의 매크로 블록의 데이터는 공간주파수 성분을 나타내는 데이터이다.
버퍼(200)는 코드 변환부(9)에 의해 기입되는 1블록(8×8화소분)분의 공간주파수 성분을 나타내는 데이터를 유지한다.
화소 연산부(10)는 코드 변환부(9)로부터 버퍼(200)를 통해 전송된 블록 데이터에 대하여, 역양자화 처리(IQ) 및 역이산 여현변환(IDCT)을 블록 단위로 한다. 화소 연산부(10)에 의한 처리 결과는 휘도 블록이면 화소의 휘도값 또는 그 차분을 나타내는 데이터이고, 색차 블록이면 화소의 색차 또는 그 차분을 나타내는 데이터이며, 버퍼(201)를 통해 화소 판독기입부(11)에 전송된다.
버퍼(201)는 1 블록(8×8화소분)분의 화소 데이터를 유지한다. 화소 판독기입부(11)는 화소 연산부(10)의 처리 결과에 대하여, 블록단위로 움직임 보상을 행한다. 즉, P픽처, B픽처에서는 외부 메모리(3) 내의 복호된 참조 프레임으로부터 동벡터가 나타내는 구형영역을 메모리 컨트롤러(6)를 통해 잘라내고, 화소 연산부(10)의 처리 결과의 블록과 합성함으로써 원래의 블록 화상으로 복호한다. 화소 판독기입부(11)에 의한 복호 결과는 메모리 컨트롤러(6)를 통해 외부 메모리(3)로 저장된다.
상기 움직임 보상, IQ, IDCT의 각 내용에 대해서는 공지 기술이기 때문에 자세한 설명은 생략하기로 한다(상기 문헌 참조).
< 1.3 각부의 상세 구성 >
다음으로, 영상음성 처리장치(1000)의 주요한 각부의 상세한 구성에 대하여 설명하기로 한다.
< 1.3.1 프로세서(7) (순차 처리부) >
도 6은 프로세서(7)에 의한 매크로 블록 헤더의 해석과, 다른 각부로의 제어내용을 도시한 도면이다. 우선 도 6에 약어로 나타내고 있는 매크로 블록 헤더 중의 각 데이터는 상기 문헌 등에 설명되어 있기 때문에 여기에서는 설명을 생략하기로 한다.
도 6과 같이 프로세서(7)는 코드 변환부(9)에 명령을 발행하여 가변길이 복호된 헤더 부분의 데이터를 순차 취득하고, 그 내용에 따라서 코드 변환부(9), 화소 연산부(10), 화소 판독기입부(11)에 대하여 매크로 블록의 디코드에 필요한 데이터를 설정한다.
구체적으로는, 우선 프로세서(7)는 코드 변환부(9)에 MBAI(Macro Block Address Increment)를 취득하기 위한 명령을 발행하여(S101), 코드 변환부(9)로부터 MBAI를 취득한다. 이 MBAI에 기초하여 당해 매크로 블록 데이터가 스킵 매크로 블록이면(지금 디코드하려고 하는 매크로 블록이 전회와 동일하면), 매크로 블록 데이터가 생략되어 있기 때문에 S117로 진행하고, 스킵 매크로 블록이 아니면 헤더 해석을 계속한다(S102, 103).
이어서, 프로세서(7)는 MBT(Macro Block Type)를 취득하기 위한 명령을 발행하여, 코드 변환부(9)로부터 MBT를 취득한다. 이 MBT에서 블록의 스캔 타입이 지그재그 스캔인지 교호 스캔인지를 판단하고, 화소 연산부(10)에 버퍼(200)의 판독 순서를 지시한다(S104).
또, 프로세서(7)는 이미 취득한 헤더 데이터로부터 STWC(Spartial Temporal Weight Code)이 존재하는지의 여부를 판정하고(S105), 존재하는 경우에는 명령을 발행하여 취득한다(S106).
마찬가지로, 프로세서(7)는 FrMT(Frame Motion Type), FiMT(Field Motion Type), DT(DCT type), QSC(Quantizer Scale Code), MV(Motion Vector), CBP(Coded Block Pattern)를 취득한다(S107∼116). 그 때, 프로세서(7)는 FrMT, FiMT, DT의 해석 결과를 화소 판독기입부(11)에 통지하고, QSC의 해석 결과를 화소 연산부(10)에 통지하고, CBP의 해석 결과를 코드 변환부(9)에 통지한다. 이에 따라 IQ, IDCT, 움직임 보상에 필요한 정보가 코드 변환부(9), 화소 연산부(10), 화소 판독기입부(11)에 설정된다.
또한 2 프로세서 구성에서는, 다방면에 걸치는 조건 판단을 필요로 하는 상기 순차 처리를 각 프로세서가 개별로 행하기 때문에 리던던시한 구성으로 되어 있었다.
이어서, 프로세서(7)는 코드 변환부(9)에 대하여 매크로 블록의 디코드 시작지시를 발행한다(S117). 이에 따라 코드 변환부(9)는 매크로 블록 내의 각 블록에 대하여 VLD를 시작하고, VLD의 결과를 버퍼(200)를 통해 화소 연산부(10)에 출력한다. 또, 프로세서(7)는 MV 데이터에 따라 동벡터를 계산하고(S118), 그 계산 결과를 화소 판독기입부(11)에 통지한다(S119).
상기 처리에서, 동벡터에 관해서는 동벡터의 데이터(MV)를 취득(S113)하고, 동벡터를 계산(S118)하며, 동벡터를 화소 판독기입부(11)에 설정 (S119)한다는 일련의 처리가 필요하다. 이 점, 프로세서(7)는 동벡터 데이터(MV)를 취득(S113)한 직후에 동벡터의 계산 및 설정(S118, 119)을 하지 않고, 정형 처리부(1004)로의 디코드 개시지시를 발행하고 나서 동벡터를 계산 및 설정하도록 하고 있다. 이에 따라, 프로세서(7)의 동벡터 계산 및 설정 처리와, 정형 처리부(1004)로의 디코드 처리가 병렬로 처리된다. 요컨대 정형 처리부(1004)의 디코드 시작 타이밍을 빠르게 하고 있다.
이상과 같이 하여 매크로 블록 1개분의 압축영상 데이터의 헤더 해석이 완료하기 때문에, 프로세서(7)는 FIFO 메모리(4)로부터 압축음성 데이터를 취득하여, 음성 디코드 처리를 시작한다(S120). 음성 디코드 처리는, 코드 변환부(9)로부터 매크로 블록의 디코드 완료를 나타내는 인터럽트 신호가 입력될 때까지 계속된다. 이 인터럽트 신호에 의해 프로세서(7)는 다음 매크로 블록에 대하여 상기 헤더 해석을 시작한다.
< 1.3.2 정형 처리부 >
다음으로, 정형 처리부(1004)는 매크로 블록 내의 6개의 블록을 코드 변환부(9), 화소 연산부(10), 화소 판독기입부(11)를 병렬로(파이프라인적으로) 동작시킴으로써 디코드 처리를 하고 있다. 여기에서는, 화소 연산부(10), 화소 판독기입부(11), 코드 변환부(9)의 순으로 그들의 구성을 보다 상세히 설명하기로 한다.
< 1.3.2.1 코드 변환부(9) >
도 19는 코드 변환부(9)의 구성을 도시한 블록도이다.
도 19의 코드 변환부(9)는, VLD부(901), 카운터(902), 증분기(903), 셀렉터(904), 스캔표(905), 스캔표(906), 플립플롭(이하 FF라 함)(907), 셀렉터(908)를 구비하며, 가변길이 복호(VLD)한 결과를 블록 단위로, 지그재그 스캔 또는 교호 스캔의 순서로 배열하도록 버퍼(200)에 기입하도록 구성되어 있다.
VLD부(901)는, FIFO 메모리(4)로부터 판독된 압축영상 데이터를 가변길이 복호(VLD)하여, 복호 후의 데이터 중, 헤더 정보 및 동벡터에 관한 정보(도 5 중의 점선 구간)를 프로세서(7)로 전송하고, 매크로 블록(휘도 블록 Y0∼Y3와 색차 블록 Cb, Cr와로 이루어지는 6블록)의 데이터(도 5 중의 실선 구간)를 블록(64개의 공간주파수 데이터)단위로 버퍼(200)로 출력한다.
카운터(902), 증분기(903), 셀렉터(904)로 이루어지는 회로 부분은 VLD부(901)로부터의 공간주파수 데이터의 출력에 동기하여, 0부터 63까지를 반복 카운트한다.
스캔표(905)는 버퍼(200)의 블록 기억영역의 어드레스를 지그재그 스캔의 순서로 기억하고 있는 표이고, 카운터(902)의 출력값(0∼63)이 순차로 입력되어, 순차 그 어드레스를 출력한다. 도 20에 버퍼(200) 중의 8×8개의 공간주파수 데이터를 기억하는 블록 기억영역과, 지그재그 스캔의 순서로를 도시한다. 스캔표(905)는 도 20의 순서로의 화소 어드레스를 순차 출력한다.
스캔표(906)는 버퍼(200)의 블록 기억영역의 어드레스를 교호 스캔의 순서로 기억하고 있는 표이고, 카운터(902)의 출력값(0∼63)이 순차로 입력되어, 순차 그 어드레스를 출력한다. 도 21에 버퍼(200) 중의 8×8개의 공간주파수 데이터를 기억하는 블록 기억영역과, 교호 스캔의 순서로를 도시한다. 스캔표(905)는 도 21의 순서로에서의 화소 어드레스를 순차 출력한다.
FF(907)는 스캔 타입(지그재그 스캔인지 교호 스캔인지)를 나타내는 플래그를 유지한다. 이 플래그는 프로세서(7)에 의해 설정된다.
셀렉터(908)는 FF(907)의 플래그에 따라 스캔표(905)와 스캔표(906)로부터 출력되는 어드레스를 선택하여, 버퍼(200)에 기입 어드레스로서 출력한다.
< 1.3.2.2 화소 연산부 >
도 7은 화소 연산부(10)의 구성을 도시한 블록도이다.
도 7과 같이 화소 연산부(10)는 승산기(502)와 가감산기(503)로 이루어지는 실행부(501)와, 제 1 프로그램 카운터(이후, 제 1 PC라 함)(504)와, 제 2 프로그램 카운터(이후, 제 2 PC라 함)(505)와, 제 1 명령 메모리(506)와, 제 2 명령 메모리(507)와, 셀렉터(508)를 가지며, IQ와 IDCT의 일부를 오버랩시키고 병렬로 실행할 수 있도록 구성되어 있다.
실행부(501)는 제 1 명령 메모리(506), 제 2 명령 메모리(507)로부터 순차 출력되는 마이크로 명령에 따라 버퍼(200, 201)의 액세스 및 연산을 실행한다.
제 1 명령 메모리(506), 제 2 명령 메모리(507)는 버퍼(200)에 유지된 블록 (주파수 성분)에 대하여 IQ, IDCT를 실현하기 위한 마이크로 프로그램을 기억하는 제어 기억이다. 도 8에, 제 1 명령 메모리(506) 및 제 2 명령 메모리(507)에 기억된 마이크로 프로그램의 일례를 도시한다.
도 8에서, 제 1 명령 메모리(506)는 IDCTlA 마이크로 프로그램과, IQ 마이크로 프로그램을 기억하고, 제 1 PC(504)에 의해서 판독하여 어드레스가 지정된다. IQ 마이크로 프로그램은 버퍼(200)의 판독과, 승산을 주체로 하는 연산 처리이고, 가감산기(503)를 이용하지 않는다.
제 2 명령 메모리(507)는 IDCTlB 마이크로 프로그램과, IDCT2 마이크로 프로그램을 기억하고, 셀렉터(508)를 통해 제 1 PC(504) 또는 제 2 PC(505)에 의해 판독 어드레스가 지정된다. 여기에서, IDCT1은 승산 및 가감산을 주로 하는 IDCT의 전반부분의 처리를 의미하며, IDCTlA 마이크로 프로그램과 IDCTlB 마이크로 프로그램이 동시에 판독됨으로써 실행부(501) 전체를 사용하여 실행된다. 또한, IDCT2는 가감산을 주로 하는 IDCT의 후반 부분의 처리와 버퍼(201)로의 기입 처리를 의미하며, 제 2 명령 메모리(507)의 IDCT2 마이크로 프로그램이 판독됨으로써 가감산기(503)를 사용하여 실행된다.
IQ는 승산기(502)에 의해, IDCT2는 가감산기(503)에 의해 처리되기 때문에 이들은 병렬동작 가능하게 되어 있다. 도 9에 화소 연산부(10)에 의한 IQ, IDCT1, IDCT2의 동작 타이밍도를 도시한다.
도 9에서, 코드 변환부(9)는 버퍼(200)에 휘도 블록 Y0의 데이터를 기입하면(타이밍 t0), 그 취지를 제어 신호(102)로써 화소 연산부(10)에 통지한다. 화소 연산부(10)는 프로세서(7)의 헤더 해석시에 설정된 QS(Quantizer Scale)값을 이용하여, 제 1 PC(504)의 어드레스 지정에 따라 제 1 명령 메모리(506)의 IQ 마이크로프로그램을 판독함으로써 버퍼(200)의 데이터에 대하여 IQ를 행한다. 이 때, 셀렉터(508)는 제 1 PC(504)를 선택한다(타이밍 tl).
또, 화소 연산부(10)는 제 1 PC(504)의 어드레스 지정에 따라 IDCTlA 및 IDCTlB 마이크로 프로그램을 판독함으로써 버퍼(200)의 데이터에 대하여 IDCT1를 행한다. 이 때, 셀렉터(508)는 제 1 PC(504)를 선택하기 때문에 제 1 명령 메모리(506), 제 2 명령 메모리(507)의 쌍방에 제 1 PC(504)로부터의 어드레스가 지정된다(타이밍 t2).
다음으로, 화소 연산부(10)는 상기 QS(Quantizer Scale)값을 이용하여, 제 1 PC(504)의 어드레스 지정에 따라 제 1 명령 메모리(506)의 IQ 마이크로 프로그램을 판독함으로써 버퍼(200)의 블록 Y1의 데이터에 대하여 IQ를 행하고, 동시에 제 2 PC(505)의 어드레스 지정에 따라 제 2 명령 메모리(507)의 IDCT2 마이크로 프로그램을 판독함으로써 블록 Y0에 대하여 IDCT 처리의 후반부분을 처리한다. 이 때 셀렉터(508)는 제 2 PC(505)를 선택한다. 제 1 PC(504)와 제 2 PC(505)는 독립적으로 어드레스를 지정하게 된다(타이밍 t3).
이후도 마찬가지로 화소 연산부(10)는 블록 단위로 처리를 계속한다(타이밍 t4 이후).
< 1.3.2.3 화소 판독기입부 >
도 10은 화소 판독기입부(11)의 상세한 구성을 도시한 블록도이다.
도 10과 같이 화소 판독기입부(11)는 버퍼(71∼74)(이하, 버퍼 A∼D라 함)와, 하프 픽셀 보간부(75)와, 합성부(76)와, 셀렉터(77, 78)와, 판독기입 제어부(79)로 이루어진다.
판독기입 제어부(79)는 버퍼(201)를 통해 입력되는 블록 데이터에 대하여, 버퍼 A∼D를 이용하여 움직임 보상을 행하고, 최종적인 복호 화상을 2 블록 단위로 외부 메모리(3)로 전송한다. 보다 구체적으로는, 프로세서(7)의 헤더 해석시에 설정된 동벡터에 따라 외부 메모리(3) 중의 참조 프레임으로부터 2블록분에 해당하는 구형영역을 판독하도록 메모리 컨트롤러(6)를 제어한다. 그 결과, 버퍼 A 또는 버퍼 B에 동벡터가 지시하는 2블록분의 구형영역의 데이터가 저장된다. 그 후, 픽처의 종류(I, P 또는 B 픽처인지)에 따라 2 블록분의 구형영역의 하프 픽셀 보간을 합성부(76)에서 행한다. 또, 버퍼(201)를 통해 입력되는 블록 데이터와, 하프 픽셀 보간 후의 구형영역을 합성함으로써, 당해 블록의 화소값을 산출하여 버퍼 B에 저장한다. 이렇게 해서 버퍼 B에 저장된 최종적인 복호 블록은 메모리 컨트롤러(6)를 통해 외부 메모리(3)로 전송된다.
< 1.3.3 입출력 처리부 >
입출력 처리부(1001)는 상기한 바와 같이 다수의 데이터 입출력(데이터 전송)을 실행하기 위해 여러가지 데이터 전송을 분담하는 복수의 태스크를 오버헤드없게 전환하고, 더구나 데이터 입출력 요구에 대하여 응답 지연을 생기게 하지 않도록 구성되어 있다. 여기에서 말하는 오버헤드는 태스크 스위치시에 발생하는 문맥의 세이브 및 복귀이다. 요컨대 입출력 프로세서(5)는 프로그램 카운터의 명령 어드레스나 레지스터 데이터를 메모리(스택 영역)로 세이브 및 복귀함에 의해 생기는 오버헤드를 해소하도록 구성되어 있다. 여기에서는, 그 상세한 구성에 대하여 설명하기로 한다.
< 1.3.3.1 IO 프로세서 >
도 11은 I0 프로세서(5)의 구성을 도시한 블록도이다. 도 11에서 IO 프로세서(5)는 상태감시 레지스터(51), 명령 메모리(52), 명령 판독회로(53), 명령 레지스터(54), 디코더(55), 연산 실행부(56), 범용 레지스터 세트군(57), 태스크 관리부(58)를 구비하고, 비동기로 발생하는 복수의 이벤트에 대응하기 위해 매우 짧은 주기(4명령 사이클)마다 태스크를 전환하면서 실행하도록 구성되어 있다.
상태감시 레지스터(51)는 레지스터(CR1∼CR3)로 이루어지고, IO 프로세서(5)가 여러가지 입출력 상태를 감시하기 위한 여러가지 상태 데이터(플래그 등)를 유지한다. 예를 들면, 상태감시 레지스터(51)는 스트림 입력부(1)의 상태(MPEG 스트림에서의 스타트 코드 검출플래그), 비디오 출력부(12)의 상태(수평 블랭킹 기간을 나타내는 플래그, 프레임 데이터의 전송완료 플래그), 음성 출력부(13)의 상태(음성프레임 데이터의 전송완료 플래그)나, 그들과 버퍼 메모리(2), 외부 메모리(3) 및 FIFO 메모리(4) 사이에서의 데이터 전송 상태(데이터 전송수, FIFO 메모리(4)로의 데이터요구 플래그) 등을 나타내는 상태 데이터를 유지한다.
보다 구체적으로는, 이하의 플래그 등을 포함한다.
·스타트 코드 검출플래그(이하 플래그1이라고도 함)
이 플래그는 스트림 입력부(1)에 의해 MPEG 스트림에서의 스타트 코드가 검출되었을 때 설정된다.
·수평 블랭킹 플래그(플래그 2)
이 플래그는 수평 블랭킹 기간을 나타내는 플래그이고, 비디오 출력부(12)에 의해 설정된다. 약 60마이크로초 주기로 설정된다.
·영상 프레임 데이터의 전송완료 플래그(플래그 3)
이 플래그는 외부 메모리(3)로부터 비디오 출력부(12)로 1프레임분의 복호된 화상 데이타가 전송되었을 때 DMAC(5a)에 의해 설정된다.
·음성 프레임 데이터의 전송완료 플래그(플래그 4)
이 플래그는 외부 메모리(3)로부터 음성 출력부(13)로 1프레임분의 복호된 음성 데이터가 전송되었을 때 DMAC(5a)에 의해 설정된다.
·데이터 전송완료 플래그(플래그 5)
이 플래그는 스트림 입력부(1)로부터 버퍼 메모리(2)로 IO 프로세서(5)에 의해 지정된 데이터수의 압축화상 데이터가 DMAC(5a)에 의해 DMA 전송되었을 때(터미널카운트가 되었을 때)에 설정된다.
·DMA 요구 플래그(플래그 6)
이 플래그는 버퍼 메모리(2)의 압축화상 데이터 또는 압축음성 데이터를 외부 메모리(3)로 DMA 전송해야 할 데이터가 있는 것을 나타내는 플래그이고, IO 프로세서(5)에 의해 설정된다(후술하는 태스크 1로부터 태스크 2로의 요구).
·영상 FIFO로의 데이터 요구 플래그(플래그 7)
이 플래그는 외부 메모리(3)로부터 FIFO 메모리(4) 중의 영상 FIFO로의 데이터 전송을 요구하는 플래그이고, 영상 FIFO의 압축영상 데이터가 소정량 이하가 되었을 때 설정된다. 이 플래그는 약 5∼40마이크로초 주기로 설정된다.
·음성 FIFO로의 데이터 요구 플래그(플래그 8)
이 플래그는 외부 메모리(3)로부터 FIFO 메모리(4) 중의 음성 FIFO로의 데이터 전송을 요구하는 플래그이고, 음성 FIFO의 압축음성 데이터가 소정량 이하가 되었을 때 설정된다. 이 플래그는 약 15∼60마이크로초 주기로 설정된다.
·디코더 통신요구 플래그(플래그 9)
이 플래그는 디코드 처리부(1002)로부터 입출력 처리부(1001)로 통신을 요구하는 플래그이다.
·호스트 통신요구 플래그(플래그 10)
이 플래그는 호스트 프로세서로부터 입출력 처리부(1001)로 통신을 요구하는 플래그이다.
상기의 플래그류는 IO 프로세서(5)에 의해 실행되는 각 태스크에 의해 인터럽트가 아니라 정상적으로 감시된다.
명령 메모리(52)는 다수의 데이터 입출력(데이터 전송) 제어를 분담하는 복수의 태스크 프로그램을 기억한다. 본 실시예에서는 태스크 0∼5의 6개의 태스크 프로그램을 기억한다.
·태스크 O(호스트 I/F 태스크)
본 태스크는 상기 플래그 10이 설정되었을 때, 호스트 컴퓨터와의 통신, 요컨대 호스트 I/F부(14)를 개재한 호스트 컴퓨터와의 통신 처리를 하기 위한 태스크이다. 예를 들면, 호스트 프로세서로부터의 MPEG 스트림의 디코드 개시, 정지, 빨리감기 재생, 역재생 등의 접수와, 디코드 상황(에러 등)의 통지 등이 행하여진다. 이 처리는 상기 플래그 10을 트리거로 한다.
·태스크 1 (퍼징 태스크)
본 태스크는 스트림 입력부(1)에 의해 스타트 코드가 검출되었을 때(상기 플래그 1), 스트림 입력부(1)로부터 입력되는 MPEG 데이터를 해석(퍼징)하여 개개의 엘리먼트리 스트림을 추출하여 추출된 엘리먼트리 스트림을, DMA 전송(상기 전송경로(1)의 전반부분)에 의해 버퍼 메모리(2)로 전송하는 프로그램이다. 여기에서 추출되는 엘리먼트리 스트림의 종류는 압축영상 데이터(비디오 엘리먼트리 스트림이라고도 함), 압축음성 데이터(오디오 엘리먼트리 스트림이라고도 함), 프라이비트 데이터 등이 있다. 엘리먼트리 스트림을 버퍼 메모리(2)에 저장했을 때 상기 플래그 6이 설정된다.
·태스크 2 (스트림 전송/오디오 태스크)
본 태스크는 다음 (a)∼(c)의 전송을 제어하는 프로그램이다.
(a) 버퍼 메모리(2)로부터 외부 메모리(3)으로 개개의 엘리먼트리 스트림의 DMA 전송(상기 전송경로(1)의 후반부분). 이 전송은 상기 플래그(1, 3)를 트리거로 한다.
(b) 오디오 FIFO에 유지되어 있는 압축음성 데이터의 데이터 사이즈(잔량)에 따라, 외부 메모리(3)로부터 FIFO 메모리(4)의 오디오 FIFO로의 압축음성 데이터의 DMA 전송(상기 전송경로(2)에서의 오디오 FIFO로의 전송). 이 데이터 전송은 오디오 FIFO에 유지되어 있는 압축음성 데이터의 데이터 사이즈가 일정량보다 적어진 경우에 이루어진다. 이 전송은 상기 플래그(8)를 트리거로 한다.
(c) 외부 메모리(3)로부터 버퍼 메모리(2)로, 또 버퍼 메모리(2)로부터 음성 출력부(13)로 복호 후의 오디오 데이터의 DMA 전송(상기 전송경로(4)). 이 전송은 상기 플래그(2)를 트리거로 한다.
·태스크 3 (영상공급 태스크)
본 태스크는 영상 FIFO에 유지되어 있는 압축영상 데이터의 데이터 사이즈(잔량)에 따라, 외부 메모리(3)로부터 FIFO 메모리(4)의 영상 FIFO로의 압축영상 데이터의 DMA 전송(상기 전송경로(2)에서의 영상 FIFO로의 전송)을 처리하는 프로그램이다. 이 데이터 전송은 영상 FIFO에 유지되어 있는 압축영상 데이터의 데이터 사이즈가 일정량보다 적어진 경우에 이루어진다. 이 전송은 상기 플래그 7을 트리거로 한다.
·태스크 4 (비디오 출력 태스크)
본 태스크는 외부 메모리(3)로부터 버퍼 메모리(2)로, 또 버퍼 메모리(2)로부터 비디오 출력부(12)로 복호 후의 영상 데이터의 DMA 전송(상기 전송경로(4))을 처리하는 프로그램이다. 이 전송은 상기 플래그 2를 트리거로 한다.
·태스크 5 (디코더 I/F 태스크)
본 태스크는 디코드 처리부(1002)로부터 IO 프로세서(5)로 향한 명령을 처리하는 프로그램이다. 명령에는, 「getAPTS」, 「getVPTS」, 「getSTC」등이 있다. getVPTS(Video Presentation Time Stamp)는 디코드 처리부(1002)가 IO 프로세서(5)에 대하여 압축영상 데이터에 부여되어 있는 VPTS의 취득을 요구하는 명령이다. getAPTS(Audio Presentation Time Stamp)는 디코드 처리부(1002)가 IO 프로세서(5)에 대하여 압축음성 데이터에 부여되어 있는 APTS의 취득을 요구하는 명령이다. getSTC(System Time C1ock)는 디코드 처리부(1002)가 IO 프로세서(5)에 대하여 STC의 취득을 요구하는 명령이다. 이들의 명령을 받은 IO 프로세서(5)는 디코드 처리부(1002)에 STC, VPTS, APTS를 각각 통지한다. STC, VPTS, APTS는 디코드 처리부(1002)에서 음성과 영상의 디코드를 동기시키거나, 프레임 단위로 디코드의 진도를 조정하기 위해 이용된다. 이 처리는 상기 플래그(9)를 트리거로 한다.
명령 판독회로(53)는 명령페치 어드레스를 가리키는 프로그램 카운터(이하 PC라 함)를 여러개 구비하여, 태스크 관리부(58)에 의해 지정된 PC를 이용하고 명령 메모리(52)로부터 명령을 판독하여 명령 레지스터(54)에 저장한다. 구체적으로는, 명령 판독회로(53)는 상기 태스크 0∼5에 대응하는 PC 0∼5를 갖고, 태스크 관리부(58)에 의한 PC의 지정이 변경되었을 때 하드웨어에 의해 고속으로 PC를 전환하도록 구성되어 있다. 이 구성에 의해 IO 프로세서(5)는 태스크 스위치에서 현재 태스크의 PC값을 메모리로 세이브하고, 메모리로부터 다음 태스크의 PC값을 복귀하는 처리로부터 개방되어 있다.
디코더(55)는 명령 메모리(52)로부터 판독되어 명령 레지스터(54)에 저장된 명령을 해독하고, 당해 명령을 실행하도록 연산 실행부(56)를 제어한다. 덧붙여, 디코더(55)는 IO 프로세서(5) 전체를 명령 판독회로(53)의 명령 판독 스테이지, 디코더(55)의 해독 스테이지, 연산 실행부(56)의 실행 스테이지의 적어도 3단으로 이루어지는 파이프라인 제어를 행한다.
연산 실행부(56)는 ALU(Arithmetic Logical Unit), 승산기, BS(Barrel Shifter) 등을 갖고, 디코더(55)의 제어에 따라 명령으로 지정된 연산을 실행한다.
범용 레지스터 세트군(57)은 태스크 0∼태스크 5에 대응하는 6개의 레지스터 세트(1레지스터 세트는 4개의 32비트 레지스터와 4개의 16비트 레지스터)를 구비하고 있다. 전부 24개의 32비트 레지스터와 24개의 16비트 레지스터를 갖고, 실행 중의 태스크에 대응하는 레지스터 세트가 사용된다. 이에 따라 IO 프로세서(5)는 태스크 스위치에서 현재의 전체 레지스터 데이터를 메모리에 세이브하고, 메모리로부터 다음 태스크의 레지스터 데이터를 복귀하는 처리로부터 개방되어 있다.
태스크 관리부(58)는 소정수의 명령 사이클수마다, 명령 판독회로(53)의 PC 및 범용 레지스터 세트군(57)의 레지스터 세트를 전환함으로써 태스크 전환을 행한다. 본 실시예에서는 상기 소정수는 4이다. 또한 IO 프로세서(5)는 1명령을 1명령 사이클로 파이프라인 처리하기 때문에, 태스크 관리부(58)는 상기 오버헤드를 생기게 하지 않고 4명령마다 태스크를 전환하게 된다. 이에 따라 비동기로 발생하는 각종 입출력 요구에 대하여 응답 지연을 억제한다. 요컨대 입출력 요구에 대한 응답 지연은 최대 24명령 사이클밖에 생기지 않는다.
< 1.3.3.1.1. 명령 판독회로 >
도 12는 명령 판독회로(53)의 상세한 구성을 도시한 블록도이다.
도 12에서 명령 판독회로(53)는 태스크별 PC 저장부(53a), 현재 IFAR(Instruction Fetch Address Register)(53b), 증분기(53c), 다음 IFAR(53d), 셀렉터(53e), 셀렉터(53f), DECAR(DECode Address Register)(53g)를 구비하고, 태스크 전환시에 오버헤드없이 명령 판독 어드레스를 전환하도록 구성되어 있다.
태스크별 PC 저장부(53a)는 태스크 0∼5에 대응하는 6개의 어드레스 레지스터를 갖고, 태스크마다 프로그램 카운트값을 유지한다. 각 프로그램 카운트값은 대응하는 태스크의 재개 어드레스이다. 태스크 전환시에 태스크 관리부(58) 및 디코더(55)의 제어하에서 다음에 실행할 태스크에 대응하는 어드레스 레지스터로부터 프로그램 카운트값이 판독되고 실제로 실행하고 있는 태스크에 대응하는 어드레스 레지스터의 프로그램 카운트값이 새로운 재개 어드레스로 갱신된다. 이 때, 다음에 실행할 태스크, 현재 태스크는 각각 태스크 관리부(58)에 의해 “nexttaskid (rd addr)”신호, “taskid(wr addr)”신호에 의해 지정된다.
태스크 0, 1, 2에 대응하는 프로그램 카운트값을 도 13의 PC 0, 1, 2에 도시한다. 도 13에서 (0-0)는 태스크 0의 명령 0을, (1-4)는 태스크 1의 명령 4를 나타낸다. 예를 들면, PC0는 태스크 0의 재개시에 판독되고(명령 사이클 t0), 다음 태스크로의 전환에서, 명령 (0-4)의 어드레스로 갱신된다(명령 사이클 t4).
증분기(53c), 다음 IFAR(53d), 셀렉터(53e)로 이루어지는 루프 회로는 셀렉터(53a)에 의해 선택된 명령 판독 어드레스를 갱신하는 회로이다. 셀렉터(53e)로부터 출력되는 어드레스를 도 13의 IF1에 도시한다. 도 13에서, 예를 들면 태스크 0으로부터 태스크 1로의 전환시에 셀렉터(53e)는 사이클 t4에서 태스크별 PC 저장부(53a)에서 판독된 명령(1-0) 어드레스를 선택하고, 사이클 t5∼t7에서 다음 IFAR(53d)로부터의 증분된 명령 어드레스를 선택한다.
현재 IFAR(53b)는 셀렉터(53e)의 선택 출력 IF1을 1사이클 늦게 유지하고, 명령 메모리(52)에 명령 판독 어드레스로서 출력한다. 바꿔 말하면, 현재 액티브인 태스크의 명령 판독 어드레스를 유지한다. 현재 IFAR(53b)의 명령 판독 어드레스를 도 13의 IF2에 도시한다. 도 13에 도시된 바와 같이, IF2는 4명령 사이클마다 다른 태스크의 명령 어드레스를 가리키고 있다.
DECAR(53g)는 명령 레지스터(54)에 유지되어 있는 명령의 어드레스를 유지한다. 요컨대, 디코드 중의 명령을 가리킨다. 도 13 중의 DEC에, DECAR(53g)에 유지된 어드레스를 도시한다. 또한, 도 13 중의 EX는 실행 중인 명령 어드레스를 도시한다.
셀렉터(53f)는 분기명령 실행시나 인터럽트 발생시에 분기 어드레스를 선택하고, 그 이외는 다음 IFAR(53d)의 어드레스를 선택한다.
이러한 명령 판독회로(53)를 구비함으로써, IO 프로세서(5)는 도 13에 도시된 바와 같이 4단(IF1, IF2, DEC, EX)의 파이프라인 처리를 하고 있다. 이 중 IF1스테이지는 복수 프로그램 카운트값의 선택 및 갱신을 하는 스테이지이다. IF2 스테이지는 명령을 판독하는 스테이지이다.
< 1.3.3.1.2. 태스크 관리부 >
도 14는 태스크 관리부(58)의 상세한 구성을 도시한 블록도이다. 도 14에서 태스크 관리부(58)는 태스크의 전환 타이밍을 관리하는 슬롯 관리자와, 태스크의 순서를 관리하는 스케줄러로 대별된다.
슬롯 관리자는 카운터(58a), 래치(58b), 비교기(58c), 래치 유니트(58d)를 갖고, 4명령 사이클마다 태스크 전환을 지시하는 태스크 전환신호(chgtaskex)를 명령 판독회로(53)로 출력한다.
구체적으로는, 래치(58b)는 카운터(58a)의 출력의 하위 2비트를 유지하는 2개의 FF(Flip Flop) 회로이다. 카운터(58a)는 명령 사이클을 나타내는 클록마다 래치(58b)의 2비트의 출력값을 +1 증분한 3비트를 출력한다. 그 결과, 카운터(58a)는 1, 2, 3, 4를 반복 출력하게 된다. 비교기(58c)는 카운터(58a)의 출력값이 정수(4)와 일치했을 때 태스크 전환신호(chgtaskex)를 명령 판독회로(53)와 스케줄러로 출력한다.
스케줄러는 태스크라운드 관리부(58e), 우선순위 인코더(58f), 래치(58g)를 구비하고, 태스크 전환신호(chgtaskex)가 출력될 때마다 태스크 id를 갱신하고, 현재의 태스크 id와 다음에 실행해야 할 태스크 id를 명령 판독회로(53)로 출력한다.
구체적으로는, 래치 유니트(58d), 래치(58g)는 모두 현재의 태스크 id를 인코드된 형식(3비트)으로 유지한다. 인코드된 형식은, 그 값이 태스크 id를 나타낸다.
태스크라운드 관리부(58e)는 태스크 전환신호(chgtaskex)가 입력되었을 때, 래치 유니트(58d)를 참조하여, 다음에 실행해야 할 태스크 id를 디코드된 형식(6 비트)으로 출력한다. 디코드된 형식(6비트)는 1비트가 1태스크에 대응하고, 비트 위치가 태스크 id를 나타낸다.
우선순위 인코더(58f)는 태스크라운드 관리부(58e)로부터 출력되는 태스크 id를 디코드된 형식으로부터 인코드된 형식으로 변환한다. 상기 래치 유니트(58d), 래치(58g)는 모두 인코드된 태스크 id를 1사이클 늦게 유지한다.
이 구성에 의해, 태스크라운드 관리부(58e)는 비교기(58c)에서 태스크 전환신호(chgtaskex)가 출력되었을 때, 우선순위 인코더(58f)에서 다음에 실행할 태스크의 id를 “nexttaskid (rd add)”신호로서, 래치(58e)로부터 현재 태스크 id를 “ taskid (wr addr)”신호로서 출력한다.
< 1.4. 동작 설명 >
이상과 같이 구성된 제 1 실시예에서의 영상음성 처리장치(1000)에 대하여 그 동작을 설명하기로 한다.
입출력 처리부(1001)에 있어서, 스트림 입력부(1)로부터 비동기로 입력되는 MPEG 스트림은 입출력 프로세서(5)의 제어에 의해 버퍼 메모리(2), 메모리 컨트롤러(6)를 통해 일단 외부 메모리(3)에 저장되고, 다시 메모리 컨트롤러(6)를 통해 FIFO 메모리(4)에 유지된다. 이 때 FIFO 메모리(4)에 대하여, IO 프로세서(5)는 상기 태스크 2(b), 태스크 3을 실행함으로써 그 잔량에 따라, 압축 동화상 데이터, 압축 음성 데이터를 공급한다. 이에 따라, FIFO 메모리(4)에는 과부족없이 일정량의 압축 동화상 데이터, 압축 음성 데이터가 공급되기 때문에, 디코드 처리부(1002)는 비동기의 입출력과는 분리되어 디코드 처리만 전담할 수 있다. 여기까지의 처리는 상기 입출력 처리부(1001)에 의해, 디코드 처리부(1002)와는 독립적으로 병행하여 이루어진다.
한편, 디코드 처리부(1002)에 있어서, FIFO 메모리(4)에 유지된 MPEG 스트림 데이터는, 이후 프로세서(7), 코드 변환부(9), 화소 연산부(10), 화소 판독 기입부(11)에 의해 복호된다. FIFO 메모리(4) 이후의 복호 동작을 도시하는 설명도를 도 15에 도시한다.
도 15에서는 횡축을 시간축으로 하여 약 1매크로 블록분의 헤더 해석 및 각 블록마다의 디코드의 형태를 나타낸다. 또 종방향은 디코드 처리부(1002)의 각부에서 블록마다의 디코드가 파이프라인적으로 실행되는 형태를 나타낸다.
도 15에 도시된 바와 같이, 프로세서(7)는 압축영상 데이터의 헤더 해석과, 압축음성 데이터에 대한 디코드 처리를 시분할로 반복한다. 즉, 프로세서(7)는 1매크로 블록분의 헤더 해석을 행하여, 해석 결과를 코드 변환부(9), 화소 연산부(10), 화소 판독 기입부(11)에 통지한 후, 코드 변환부(9)에 대하여 매크로 블록의 디코드 개시를 지시한다. 그 후 프로세서(7)는 코드 변환부(9)로부터의 인터럽트 신호가 통지될 때까지, 압축음성 데이터의 디코드 처리를 행한다. 디코드 후의 음성 데이터는 내부 메모리(8)에 일단 유지되고, 또 메모리 컨트롤러(6)에 의해 외부 메모리(3)에 DMA 전송된다.
또한, 코드 변환부(9)는 프로세서(7)로부터 매크로 블록의 디코드 개시지시를 받아, 매크로 블록 내의 각 블록별로 버퍼(200)에 저장한다. 이 때 코드 변환부(9)는 프로세서(7)의 헤더 해석시에 통지된 블록의 스캔 타입에 따라 버퍼(200)로의 기입 어드레스의 순서를 변경한다. 요컨대 지그재그 스캔인 경우와, 교호 스캔인 경우로 기입 어드레스의 순서를 변경한다. 이에 따라 화소 연산부(10)는 판독 어드레스의 순서를 변경하지 않아도 되고, 스캔 타입에 관계없이 항상 같은 판독 어드레스 순서로 판독할 수 있다. 코드 변환부(9)는 매크로 블록 내의 6개의 블록을 VLD 처리를 마칠때까지 상기 동작을 반복하여 버퍼(200)에 기입한다. 6블록의 VLD를 끝내면 프로세서(7)에 인터럽트를 발생한다. 이 인터럽트 신호는 매크로 블록 디코드 종료신호 End Of Macro Block(EOMB)이다. 코드 변환부(9)는 6개 째의 블록의 블록 종료신호 End Of Block(EOB)을 검출함으로써 EOMB를 생성하고 있다.
화소 연산부(10)는 코드 변환부(9)와 병행하여, 도 9에 도시된 바와 같이 버퍼(200)에 저장된 블록 데이터를 블록 단위로 IQ, IDCT를 실시하여 그 처리 결과를 버퍼(201)에 저장한다.
화소 판독 기입부(11)는 화소 연산부(10)와 병행하여 버퍼(201)의 블록 데이터와 프로세서(7)에 의한 헤더 해석에 의해 통지된 동벡터에 기초하여 도 15에 도시된바와 같이 외부 메모리(3)의 참조 프레임으로부터 구형영역을 잘라내고 블록 합성을 행한다. 블록 합성결과는 FIFO 메모리(4)를 통해 외부 메모리(3)로 저장된다.
상기는 스킵 매크로 블록이 아닌 경우의 동작이지만, 스킵 매크로 블록의 경우에는 코드 변환부(9) 및 화소 연산부(10)는 동작하지 않고, 화소 판독 기입부(11)만이 동작한다. 스킵 매크로 블록이 있는 경우에는, 참조 프레임 중의 구형영역과 같은 화상이기 때문에, 화소 판독 기입부(11)에 의해, 그 화상이 복호 화상으로서 외부 메모리(3)에 복사된다.
이 경우, 코드 변환부(9)로부터 프로세서(7)로의 인터럽트 신호는 다음과 같이 하여 생성된다. 즉, 프로세서(7)가 화소 판독 기입부(11)에 대하여 움직임 보상동작의 개시의 제어 신호를 송부한 것을 나타내는 신호와, 화소 판독 기입부(11)가 움직임 보상 동작이 가능하다는 것을 나타내는 신호와, 스킵 매크로 블록이라는 것을 나타내는 신호의 논리곱을 취하고, 또 이 논리곱과 상기 EOMB 신호의 논리합으로서 인터럽트 신호가 프로세서(7)에 입력된다.
이상 설명한 바와 같이, 본 발명의 제 1 실시예의 영상음성 처리장치에 의하면, 기억 매체나 통신 매체로부터의 MPEG 스트림 입력처리와, 표시장치 및 음성 출력장치로의 표시화상 데이터 및 음성 데이터의 출력처리와, 디코드 처리부(1002)로 스트림을 공급하는 처리를 입출력 처리부(1001)가 분담하고, 압축영상 데이터 및 압축음성 데이터의 디코드 처리를 디코드 처리부(1002)가 분담하도록 구성되어 있다. 이에 따라, 디코드 처리부(1002)는 비동기로 발생하는 처리로부터 개방되어 디코드처리에만 종사할 수 있다. 그 결과, MPEG 스트림 입력, 디코드, 출력이라는 일련의 처리를 효율적으로 실행하기 때문에, 고속인 동작 클록을 이용하지 않더라도 MPEG 스트림의 풀디코드(프레임 탈락 없음)를 실현할 수 있다.
또한, 본 영상음성 처리장치는 1칩에 LSI화하는 것이 바람직하다. 이 경우, 100㎒ 이하의 동작 클록(실제로는 54㎒)으로 상기 풀디코드가 가능하다. 이 점, 동작 클록이 100㎒ 또는 200㎒를 넘는 최근의 고성능 CPU는 화상 사이즈가 작으면 상기 풀디코드를 가능하게 하고 있지만, 그 반면 제조 가격이 비싸다. 이에 대하여, 본 영상음성 처리장치 제조 가격면과 풀디코드면에서 우수하다.
또, 본 영상음성 처리장치의 디코드 처리부(1002)는 다음과 같이 역할 분담하고 있다.
요컨대, 프로세서(7)가 압축영상 데이터에 대하여도 압축음성 데이터에 대하여도 다방면에 걸치는 조건 판단을 필요로 하는 헤더 해석을 담당함과 동시에 음성압축 데이터의 디코드도 담당한다. 압축영상 데이터의 블록 데이터에 대해서는 정형적인 대량의 연산량이 요구되기 때문에 코드 변환부(9), 화소 연산부(10), 화소 판독기입부(11)라는 전용의 하드웨어(firmware)가, 디코드 처리를 담당한다. 도 15에 도시된 바와 같이 코드 변환부(9), 화소 연산부(10), 화소 판독기입부(11)는 파이프라인화되어 있다. 화소 연산부(10)는 IQ과 IDCT가 병렬처리 가능하게 되어 있다. 화소 판독기입부(11)는 2블록 단위의 참조 프레임의 액세스를 실현하고 있다. 이들에 의해 압축음성 디코드 처리의 효율화가 달성되어 있기 때문에, 영상 디코드전용의 하드웨어 부분은 고속 클록을 이용하지 않더라도, 높은 처리 능력을 얻을 수 있다. 구체적으로는 100㎒를 넘는 고속클록을 이용하지 않고 50∼60㎒ 정도의 클록으로 종래와 같은 정도 이상의 처리 능력를 얻을 수 있었다. 따라서, 고속 소자를 이용할 필요가 없어 제조 가격을 내릴 수 있다.
또한, 영상 디코드의 기본 단위를 프로세서(7)에 있어서 매크로 블록 단위, 코드 변환부(9) 및 화소 연산부(10)에 있어서 블록, 화소 판독 기입부(11)에 있어서 2블록으로 하고 있기 때문에, 영상 디코드에서의 완충 버퍼의 용량을 최소한으로 억제하는 것이 가능해진다.
< 2 제 2 실시예 >
본 실시예의 영상음성 처리장치는 압축 스트림 데이터의 디코드 기능에 덧붙여, 또한 압축 기능(이후, 인코드라 함)과 그래픽스 기능을 담당하도록 구성되어 있다.
< 2.1 영상음성 처리장치의 구성 >
도 16은 본 발명의 제 2 실시예에서의 영상음성 처리장치의 구성을 도시한 블록도이다.
이 영상음성 처리장치(2000)는 스트림 입출력부(21), 버퍼 메모리(22), FIFO 메모리(24), 입출력 프로세서(25), 메모리 컨트롤러(26), 프로세서(27), 내부 메모리(28), 코드 변환부(29), 화소 연산부(30), 화소 판독기입부(31), 비디오 출력부(12), 음성 출력부(13), 버퍼(200), 버퍼(201)로 이루어진다. 영상음성 처리장치(2000)는 도 4에 도시된 영상음성 처리장치(1000)의 기능에 덧붙여, 다음 기능이 부가되어 있다. 즉, 영상 데이터와 음성 데이터의 압축 기능과, 폴리곤 데이터를 그리는 그래픽스 기능이 부가되어 있다.
그 때문에, 영상음성 처리장치(2000)에 있어서, 도 4와 같은 명칭의 구성 요소는 완전히 같은 기능을 갖고, 또 압축 기능과 그래픽스 기능을 담당하는 기능이 부가되어 있다. 이하 도 4와 같은 점은 설명을 생략하며, 다른 점을 중심으로 설명하기로 한다.
스트림 입출력부(21)는 쌍방향으로 되어 있는 점이 다르다. 요컨대, 입출력 프로세서(25)의 제어에 의해 버퍼 메모리(22)로부터 MPEG 데이터를 전송받으면 전송된 병렬 데이터를 직렬 데이터로 변환하여, MPEG 데이터 스트림으로서 외부로 출력한다.
버퍼 메모리(22), FIFO 메모리(24)도 쌍방향으로 된 점이 다르다.
입출력 프로세서(25)는 제 1 실시예에 나타낸 (1)∼(4)에 나타내는 경로의 데이터 전송을 제어하는 것에 덧붙여, (5)∼(8)의 경로의 전송을 제어한다.
(1). 스트림 입출력부(21)→버퍼 메모리(22)→메모리 컨트롤러(26)→외부 메모리(3)
(2). 외부 메모리(3)→메모리 컨트롤러(26)→FIFO 메모리(24)
(3). 외부 메모리(3)→메모리 컨트롤러(26)→버퍼 메모리(22)→비디오 출력부(12)
(4). 외부 메모리(3)→메모리 컨트롤러(26)→버퍼 메모리(22)→음성 출력부(13)
(5). 외부 메모리(3)→메모리 컨트롤러(26)→내부 메모리(28)
(6). 외부 메모리(3)→메모리 컨트롤러(26)→화소 판독기입부(31)
(7). FIFO 메모리(24)→메모리 컨트롤러(26)→외부 메모리(3)
(8). 외부 메모리(3)→메모리 컨트롤러(26)→버퍼 메모리(22)→스트림 입출력부(21)
(5), (6)의 경로는, 영상 데이터, 음성 데이터의 인코드 처리를 하는 경우의 원래의 데이터 경로이고, (7), (8)은 압축 후의 MPEG 스트림의 경로를 나타낸다.
우선, 인코드 처리에 대하여 설명하기로 한다. 인코드할 데이터는 외부 메모리(3)에 저장되어 있는 것으로 한다. 외부 메모리(3)의 영상 데이터는 메모리 컨트롤러(26)를 화소 판독기입부(31)가 제어함으로써 화소 판독기입부(31)에 전송된다. 화소 판독기입부(31)는 영상 데이터를 제 2 버퍼(201)에 기입하는 처리와 차분 화상생성 처리를 행한다. 차분 화상생성 처리는 블록 단위의 움직임 검출(동벡터의 산출)과 차분 화상의 생성으로 이루어진다. 그 때문에 화소 판독기입부(31)는 부호화 대상 블록과 유사한 구형영역과 참조 프레임 내에서 탐색함으로써 동벡터를 검출하는 동작 검출회로를 내부에 갖고 있다. 또 동작 검출회로 대신 인접하는 프레임의 이미 계산된 블록의 동벡터를 이용하여 부호화 대상의 동벡터를 견적하는 움직임 견적회로를 구비하도록 해도 된다.
화소 연산부(25)는 블록 단위로 차분 화상 데이타를 수취하고, DCT, IDCT, 양자화 처리(이후, Q처리), IQ를 행한다. 이렇게 해서 양자화된 영상 데이터는 버퍼(200)에 저장된다.
코드 변환부(29)는 버퍼(200)로부터 양자화 데이터를 수취하고 가변길이 부호처리(VLC)를 행한다. 가변길이 부호화된 데이터는 선입선출 메모리(24)에 저장되며, 메모리 컨트롤러(26)를 통해 외부 메모리(3)에 저장되는 동시에, 프로세서(27)에 의해 매크로 블록마다 헤더 정보가 부가된다.
또한, 외부 메모리(3)의 영상 데이터는 메모리 컨트롤러(26)를 통해 내부 메모리(28)에 전송된다. 프로세서(27)는 매크로 블록마다 헤더 정보를 부가하는 처리와 시분할로, 내부 메모리(28)의 음성 데이터의 압축처리를 한다.
이상과 같이, 인코드 처리는 제 1 실시예와 반대의 경로로 처리된다.
다음으로, 그래픽스 처리에 대하여 설명하기로 한다. 그래픽스 처리는 폴리곤이라는 구형 도형의 조합에 의해 행하여지는 3차원 화상생성 처리이다. 본 장치에서는 폴리곤의 정점좌표에서의 화소 데이터로부터 폴리곤 내부의 화소 데이터를 생성하는 처리를 한다.
처음에 폴리곤의 정점 데이터는 외부 메모리(3)에 저장되어 있다.
정점 데이터는 프로세서(27)가 메모리 컨트롤러(26)를 제어함에 따라 내부 메모리(28)에 저장된다. 프로세서(27)는 내부 메모리(28)로부터 정점 데이터를 판독하여 DDA(Digita1 Difference Ana1yze)의 전처리를 행하는 FIFO 메모리(24)에 기입한다.
코드 변환부(29)는 화소 연산부(30)의 지시에 따라 FIFO 메모리(24)로부터 정점 데이터를 판독하여 화소 연산부(30)로 전송한다.
화소 연산부(30)는 DDA 처리를 행하는 화소 판독기입부(31)로 송신한다. 화소 판독기입부(31)는 프로세서(27)의 지시에 따라, Z 버퍼 처리 혹은 α 혼합처리를 행하는 메모리 컨트롤러(26)를 통해 외부 메모리(3)에 화상 데이터를 기입한다.
< 2.1.1 화소 연산부 >
도 17은 화소 연산부(30)의 구성을 도시한 블록도이다.
도 17은 도 7에 도시된 화소 연산부(10)와 같은 구성 요소에는 같은 번호를 부여하여, 설명을 생략하며, 이하 다른 점을 중심으로 설명한다.
다른 점은 도 17과 같이 화소 연산부(30)는 도 7에 도시된 화소 연산부(10)에 대하여 실행부가 3면(50la∼501c)으로 되어 있는 점과, 명령 포인터 유지부(308)와 명령 레지스터(309)가 추가된 점이다.
실행부(50la∼501c)가 3면으로 되어 있는 것은, 연산 성능을 향상시키기 위해서이다. 구체적으로는, 그래픽스 처리에 있어서는 컬러화상 RGB를 독립적으로 병렬 연산한다. IQ 및 Q 처리에서는 승산기(502)를 3개 이용하여 고속화를 꾀하고 있다. IDCT에서는 승산기(502) 및 가감산기(503)를 복수 이용함으로써 시간 단축을 도모하고 있다. IDCT에서는 버터플라이 연산이라는 연산이 존재하며, 이것은 연산의 기초가 되는 모든 데이터 사이에서 의존 관계가 있으므로 실행부(50la∼501c)의 유니트간 통신을 행하는 데이터선(103)을 설치하고 있다.
제 1 명령 메모리(506), 제 2 명령 메모리(507)는 IDCT, IQ에 덧붙여 DCT, Q처리, DDA용 마이크로 프로그램이 저장되어 있다. 도 18에 제 1 명령 메모리(506), 제 2 명령 메모리(507)의 기억 내용의 예를 도시한다. 도 8에 비해 Q 처리마이크로 프로그램과, DCT 마이크로 프로그램과, DDA 마이크로 프로그램이 추가되어 있다.
명령 포인터 유지부(308a∼308c)는 실행부(50la∼501c)에 대응하여 설정되며, 각각 제 1 프로그램 카운터로부터 입력되는 어드레스를 변환하고 명령 레지스터부(309)로 출력하는 변환표를 갖는다. 변환 후의 어드레스는 명령 레지스터부(309)의 레지스터 번호를 의미한다. 또, 명령 포인터 유지부(308a∼308c)는 각각 후술하는 변경 플래그를 유지하고 명령 실행부(50la∼501c)로 출력한다.
변환표에서는 명령 포인터 유지부(308a, 308b, 308c)는, 예를 들면 입력 어드레스가 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12인 경우에, 각각 다음과 같은 변환 후 어드레스를 출력한다.
명령 포인터 유지부(308a) : 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
명령 포인터 유지부(308b) : 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11
명령 포인터 유지부(308c) : 4, 3, 2, 1, 8, 7, 6, 5, 12, 11, 10, 9
명령 레지스터부(309)는 도 23에 도시된 바와 같이, 마이크로 명령을 유지하는 복수의 레지스터의 3개의 셀렉터와 3개의 출력 포트로 이루어진다. 3개의 셀렉터는 명령 포인터부(308a, 308b, 308c)에서 입력되는 변환 어드레스(레지스터 번호)에 지정되는 레지스터의 마이크로 명령을 선택한다. 3개의 출력 포트는 셀렉터에 대응하여 설치되고, 각각 셀렉터로 선택된 마이크로 명령을 분배부(310)를 통해 실행부(501a∼501c)로 출력한다. 3개의 셀렉터 및 출력포트가 설치되어 있는 것은 3개의 가감산기(503)(또는 3개의 승산기(502))에 동시에 다른 마이크로 명령을 공급하기 위해서이다. 본 실시예에서는 3개의 출력 포트는 분배부(310)를 통하여 3개의 가감산기(503)와 3개의 승산기(502)의 어느 것에 선택적으로 공급하는 것이다.
예를 들면, 명령 레지스터부(309)는 레지스터(R1∼R16)(레지스터 번호 1∼16)를 구비하고 있다. 레지스터(R1∼R16)에 저장되어 있는 마이크로 프로그램은 DCT 및 IDCT에서 필요한 행렬 연산처리를 나타내며, 상기 3가지의 레지스터 번호순 중 어디것에 의하더라도 동일 처리를 하도록 저장되어 있다. 요컨대, 상기 3가지 실행순서를 갖는 마이크로 프로그램은 실행 순서가 전환 가능한 일부의 마이크로 명령 순서가 교체되어 있다. 이것은 실행부(50la∼501c)가 병렬로 마이크로 프로그램을 실행하기 때문에 실행부(50la∼501c) 사이에서 레지스터(도시 생략) 액세스의 경합 등 자원 간섭을 피하기 위해서이다. 또한, 상기 행렬 연산처리는 8×8 행렬의 승산, 전치, 전송을 그 내용으로 한다.
다음으로, 명령 레지스터부(309)의 각 레지스터에 저장되는 마이크로명령은 니모닉 형식에서는,
「op Ri, Rj, dest, (변경 플래그)」
로 표기된다. 단, 명령 레지스터부(309)의 마이크로 명령은 「op와 Ri, Rj(변경 플래그) 」 부분뿐이다. 「dest」부분은 명령 메모리(506, 507)로부터 지정된다. 「(변경 플래그)」의 부분명령 포인터 유지부(308a∼308c)로부터 지정된다.
여기에서, “op”는 승산명령, 가감산명령, 전송명령 등을 나타내는 오퍼레이션 코드, “R1, Rj”는 오퍼랜드이다. 승상명령은 3개의 실행부(501a∼c) 중의 각 승산기(502)로 실행되는 명령이며, 가산명령 및 전송명령은 3개의 실행부(501a∼501c) 중의 각 승산기(502)로 실행되는 명령이다.
“dest”는 연산 결과의 저장장소를 나타낸다. 이 “dest”는 명령 레지스터부(309)의 레지스터가 아니라, 명령 메모리(506)(승산명령의 경우) 또는 명령 메모리(507)(가감산명령이나 전송명령의 경우)로부터 지정된다. 이것은, 명령 레지스터부(309)의 마이크로 프로그램은 실행부(50la∼501c)에 공통화하기 때문이다. 만일 전송장소를 레지스터에 의해 지정하면 실행부(50la∼501c) 각각 개별의 마이크로 프로그램을 준비해야 하며, 마이크로 프로그램의 용량이 수 배로 팽창된다.
“변경 플래그”는 가감산 명령에 있어서, 가산인지 감산인지를 나타내는 플래그이다. 이 “변경 플래그”는 명령 레지스터부(309)의 레지스터로부터가 아니라, 명령 포인터 유지부(308a∼308c)로부터 별도 지정된다. 이것은 DCT, IDCT에서의 행렬 연산에 이용되는 정수 행렬 중에 전체요소가 “1”의 행(또는 열)과 전체요소가 “-1”의 행(또는 열)이 포함되므로 명령 포인터(308a∼308c)로부터 “변경 플래그”를 지정함으로써 명령 레지스터부(309)의 동일 마이크로 프로그램을 공용하는 것을 가능하게 하고 있다.
분배부(310)는 명령 레지스터부(309)로부터 입력되는 3가지의 마이크로 명령이 가감산명령인 경우에는, 그들의「op와 Ri, Rj」부분과, 명령 메모리(506)로부터 입력되는 「dest」부분과, 명령 포인터부(308a∼c)로부터 입력되는 「변경 플래그」를 3개의 가감산기(503)에 분배하고, 동시에 명령 메모리(506)의 마이크로 명령을 3개의 승산기(502)에 분배한다. 또한, 분배부(310)는 명령 레지스터부(309)로부터 입력되는 3개의 마이크로 명령이 승산명령인 경우에는, 그들의「op와 Ri, Rj」부분을 명령 메모리(506)로부터 입력되는 「dest」 부분을 3개의 승산기(502)에 분배하고, 명령 메모리(507)의 마이크로 명령을 3개의 가감산기(503)에 분배한다. 바꿔 말하면, 분배부(310)에 의해 3개의 가감산기(503)에 공급되는 마이크로 명령은 3개의 가감산기(503)에 공통되는 명령에 대해서는 명령 메모리(507)로부터 1개의 마이크로 명령이 각각 공급되고, 3개의 가감산기(503)에서 다른 가감산 명령에 대해서는 명령 레지스터부(309)로부터의 3개의 마이크로 명령이 각각 공급된다. 마찬가지로, 3개의 승산기(502)에 공급되는 마이크로 명령은 3개의 승산기(502)에 공통하는 명령에 대해서는 명령 메모리(506)로부터 마이크로 명령이 공급되고, 3개의 승산기(502)에서 다른 승산명령에 대해서는 명령 레지스터부(309)로부터의 마이크로 명령이 각각 공급된다.
화소 연산부(30)의 이와 같은 구성에 의하면, 명령 메모리(506), 명령 메모리(507)의 기억 용량을 삭감할 수 있다.
만일, 화소 연산부(30)가 명령 포인터 유지부(308a∼308c), 명령 레지스터부(309), 분배부(310)를 구비하고 있지 않다고 가정하면, 명령 메모리(506), 명령 메모리(507)는 어느 것이나 3개의 실행부(50la∼501c)에 대하여 다른 마이크로 명령을 공급하려면 3개의 마이크로 명령을 병렬로 기억해야 한다.
도 22에 명령 포인터 유지부(308a∼308c), 명령 레지스터부(309), 분배부(310)를 구비하고 있지 않은 경우의 명령 메모리(506) 및 명령 메모리(507)의 기억 내용의 예를 도시한다. 도 22에서는, 16스텝의 마이크로 프로그램이 기억되고, 하나의 마이크로 명령은 16비트 길이로 하고 있다. 이 경우, 명령 메모리(506)와 명령 메모리(507)는 3개의 마이크로 명령을 병렬로 기록함으로써, 합계 1536비트(16스텝× 16비트×3×2)의 기억 용량을 필요로 한다.
이에 대하여, 본 실시예의 화소 연산부(30)에서의 명령 포인터 유지부(308a∼c), 명령 레지스터부(309)의 기억 내용의 예를 도 23에 도시한다. 도 23에서도 16스텝의 마이크로 프로그램이 기억되고, 1마이크로 명령은 16비트로 하고 있다. 도 23에서 명령 포인터 유지부(308a∼c)는 각각 16개의 레지스터 번호(4비트길이)를 기억하고, 명령 레지스터부(309)는 16개의 마이크로 명령을 기억한다. 이 경우, 명령 포인터 유지부(308a∼c)와 명령 레지스터부(309)의 기억 용량은 448비트 (16스텝×(12+16))로 좋다. 이와 같이 화소 연산부(30)에서는, 마이크로 프로그램의 기억 용량을 대폭 삭감할 수 있다. 실제로는, 「dest」「변경 플래그」가 별도발행되도록 하고 있기 때문에 그 만큼의 기록 용량 또는 회로가 필요하다. 또한, 명령 메모리(506, 507)는 마이크로 명령 중의「dest」를 지정하고, 또한, 실행부(50la∼c)에 공통하는 승산명령, 가감산명령을 발행하도록 하고 있기 때문에, 명령메모리(506, 507)를 완전히 삭제하고 있지는 않다. 만일 명령 레지스터부(309)에 6개의 출력 포트를 설치하면, 명령 메모리(506)와 명령 메모리(507)를 삭제하는 것도 가능하게 된다.
또, 도 23에서는 명령 포인터 유지부(308a∼308c)는 제 1 프로그램 카운터의 값이 0∼15인 경우에 변환 어드레스(레지스터 번호)를 출력하고 있지만, 이것에 한정되지 않는다. 예를 들면 제 1 프로그램 카운터의 값이 32∼47인 경우에 변환 어드레스를 출력하도록 해도 된다. 이 경우, 제 1 프로그램 카운터의 값에 적절한 오프세트값을 가하는 구성으로 하면 된다. 이에 의해, 제 1 프로그램 카운터가 나타내는 임의의 어드레스열을 변환 어드레스로 변환할 수 있다.
이상의 구성에 의해, 본 실시예에서는 압축영상 데이터와 압축음성 데이터의 디코드 처리뿐 아니라, 영상 및 음성 데이터의 인코드 처리와, 폴리곤 데이터에 기초하는 그래픽스 처리가 가능해지고 있다. 또한, 복수의 실행부의 병렬 동작에 의해 처리 효율이 향상되고 있다. 더구나, 명령 레지스터부(308a∼308c)에서 일부의 마이크로 명령의 순서를 교체함으로써 복수의 실행부 사이의 자원 간섭을 피할 수 있기 때문에, 더욱 처리 효율을 향상시키고 있다.
또, 상기 실시예에서는 3개의 실행부를 갖는 구성을 보이고 있는 것은, RGB컬러의 각각을 독립적으로 연산할 수 있는 점에서 유리하기 때문이다. 또, 실행부의 수는 3개 이상이면 몇개라도 좋다.
또한, 상기 실시예에서 영상음성 처리장치(1000, 2000)는 각각 1칩 LSI화하는 것이 바람직하다. 또, 외부 메모리(3)는 칩 외부인 것으로 하여 설명하였으나, 1칩내에 내장하는 구성이라도 된다.
또, 상기 실시예에서는 외부 메모리에 대하여 스트림 입출력부(1) (혹은 스트림 입출력부(21))가 MPEG 스트림(혹은 영상음성 데이터)을 저장하고 있었으나, 호스트 프로세서가 직접 외부 메모리(3)에 저장하도록 구성해도 된다.
또, 상기 실시예에서 IO 프로세서(5)는 4명령 사이클마다 태스크 전환을 행하고 있으나, 4명령 사이클 이외의 복수 명령 사이클마다 행해도 된다. 또한, 태스크 전환 명령 사이클수는 태스크마다 미리 가중을 하여 다른 명령 사이클수로 해도 된다. 또한 우선도·긴급도에 따라 태스크마다의 명령 사이클수에 가중을 행해도 된다.
상술한 본 발명의 영상음성 처리장치에 의하면, 압축화상 및 압축음성 데이터를 나타내는 스트림 데이터의 입력, 디코드, 출력에 대한 일련의 처리를 고주파수로 동작시키지 않고도 효율적으로 처리할 수 있게 되므로 장치 제조비용의 절감화를 도모할 수 있다.
상술한 본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 첨부된 특허청구의 범위에 개시된 본 발명의 사상과 범위를 통해 각종 수정, 변경, 대체 및 부가가 가능할 것이다.
도 1은 제 1 종래 기술에서의 영상음성 디코더에 의한 디코드 처리의 설명도
도 2는 제 2 종래 기술에서의 2칩 구성의 디코더에 의한 디코드 처리의 설명도
도 3은 본 발명의 제 1 실시예에서의 영상음성 처리장치의 개략 구성을 도시한 블록도
도 4는 본 발명의 제 1 실시예에서의 영상음성 처리장치의 구성을 도시한 블록도
도 5는 MPEG 스트림을 계층적으로 도시하는 동시에 영상음성 처리장치 각부의 동작 타이밍을 도시한 도면
도 6은 프로세서(7)에 의한 매크로 블록 헤더의 해석과, 다른 각부로의 제어내용을 도시한 도면
도 7은 화소 연산부(10)의 구성을 도시한 블록도
도 8은 제 1 명령 메모리(506) 및 제 2 명령 메모리(507)에 기억된 마이크로 프로그램의 일례를 도시한 도면
도 9는 화소 연산부(10)의 동작 타이밍을 도시한 도면
도 10은 화소 판독기입부(11)의 상세한 구성을 도시한 블록도
도 11은 IO 프로세서(5)의 구성을 도시한 블록도
도 12는 명령 판독회로(53)의 상세한 구성예를 도시한 블록도
도 13은 IO 프로세서(5)의 동작 타이밍을 도시한 타임 챠트
도 14는 태스크 관리부의 구성을 도시한 블록도
도 15는 FIFO 메모리(4) 이후의 복호동작을 도시한 설명도
도 16은 본 발명의 제 2 실시예에서의 영상음성 처리장치의 구성을 도시한 블록도
도 17은 화소 연산부(30)의 구성을 도시한 블록도
도 18은 제 1 명령 메모리(506), 제 2 명령 메모리(507)의 기억 내용의 일례를 도시한 도면
도 19는 코드 변환부(9)의 구성을 도시한 블록도
도 20은 8×8개의 공간주파수 데이터를 기억하는 블록 기억영역과, 지그재그 스캔의 순서를 도시한 도면
도 21은 8×8개의 공간주파수 데이터를 기억하는 블록 기억영역과, 교번 스캔의 순서를 도시한 도면
도 22는 명령 포인터 유지부(308a∼308c), 명령 레지스터부(309) 및 분배부(310)를 구비하고 있지 않은 경우의 명령 메모리(506, 507)의 기억 내용의 예를 도시한 예시도
도 23은 본 실시예의 화소 연산부(30)에서의 명령 포인터 유지부(308a∼308c), 명령 레지스터부(309)의 기억 내용의 예를 도시한 예시도

Claims (71)

  1. 압축음성 데이터와 압축영상 데이터를 포함하는 데이터 스트림을 외부로부터 입력, 디코드 하고, 디코드 한 데이터를 출력장치에 출력하는 영상음성 처리장치로서,
    외부 요인에 의해 비동기로 발생하는 입출력인, 외부로부터 비동기로 입력되는 상기 데이터 스트림을 입력하여 메모리에 저장하고, 메모리에 저장된 데이터 스트림을 디코드 처리수단에 공급하는 입출력 처리를 행하는 입출력 처리수단과,
    상기 입출력 처리와 병행하여, 메모리에 저장된 데이터 스트림의 디코드를 주로 하는 디코드 처리를 행하는 디코드 처리수단을 포함하며,
    상기 디코드 된 영상 데이터 및 디코드 된 음성 데이터는 메모리에 저장되고,
    상기 입출력 처리수단은, 외부의 표시장치 및 음성 출력장치의 각각의 출력률에 맞추어 메모리로부터 판독하여, 상기 외부의 표시장치 및 음성 출력장치에 출력하는 것을 입출력 처리로서 더 행하는 것을 특징으로 하는 영상음성 처리장치.
  2. 제 1항에 있어서,
    상기 디코드 처리수단은,
    데이터 스트림에 대하여, 조건 판단을 주로 하는 순차 처리인, 압축음성 데이터 및 압축영상 데이터의 헤더 해석과, 압축음성 데이터의 디코드를 포함하는 순차 처리를 행하는 순차 처리수단과,
    상기 순차 처리와 병행하여, 압축영상 데이터의 헤더 해석을 제외하고 압축영상 데이터를 디코드 하는 정형처리를 행하는 정형 처리수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  3. 제 2항에 있어서,
    상기 순차 처리수단은, 데이터 스트림 중의 소정 블록 단위로 부가된 헤더 정보의 해석과, 데이터 스트림 중의 음성 데이터의 복호를 교호로 행하며, 1블록의 헤더 해석이 종료되었을 때 정형 처리수단에 당해 블록의 디코드 개시를 지시하고, 정형 처리수단으로부터 그 블록의 디코드 종료통지를 받았을 때 다음 블록의 헤더 해석을 시작하며,
    상기 정형 처리수단은, 순차 처리수단의 해석 결과에 따라 압축영상 데이터를 소정 블록 단위로 디코드 하는 것을 특징으로 하는 영상음성 처리장치.
  4. 제 3항에 있어서,
    상기 정형 처리수단은,
    순차 처리수단의 지시에 따라 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 데이터 변환수단과,
    가변길이 복호에 의해 얻어진 블록 데이터에 대하여, 소정의 연산을 함으로써 역양자화 및 역 이산 여현변환을 행하는 연산수단과,
    역 이산 여현변환 후의 블록 데이터와, 메모리에 저장된 복호완료 프레임의 구형(矩形) 화상을 합성함으로써 블록에 상당하는 영상 데이터를 복원하는 합성수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  5. 제 4항에 있어서,
    상기 연산수단은, 1 블록에 상당하는 기억영역을 갖는 제 1 버퍼를 더 포함하며,
    상기 데이터 변환수단은,
    데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 가변길이 복호수단과,
    제 1 버퍼의 기억영역의 어드레스를 지그재그 스캔 순으로 나열한 제 1 어드레스 열을 기억하는 제 1 어드레스 표 수단과,
    제 1 버퍼의 기억영역의 어드레스를 교호 스캔 순으로 나열한 제 2 어드레스열을 기억하는 제 2 어드레스 표 수단과,
    제 1 어드레스 열과 제 2 어드레스 열의 어느 하나에 따라서 가변길이 복호수단의 가변길이 복호에 의해 얻어지는 블록 데이터를 제 1 버퍼에 기입하는 기입수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  6. 제 5항에 있어서,
    상기 기입수단은,
    제 1 어드레스 표 수단 및 제 2 어드레스 표 수단에 대한 표 어드레스를 차례로 발생하는 표 어드레스 발생수단과,
    표 어드레스가 입력된 제 1 표 수단, 제 2 표 수단으로부터 각각 출력되는 제 1 어드레스열의 어드레스, 제 2 어드레스열의 어드레스 중, 한쪽을 선택하는 어드레스 선택수단과,
    선택된 어드레스를 제 1 버퍼에 출력하는 어드레스 출력수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  7. 제 1항에 있어서,
    상기 입출력 처리수단은,
    외부로부터 비동기 데이터 스트림을 입력하는 입력수단과,
    외부의 표시장치에 디코드 된 영상 데이터를 출력하는 영상 출력수단과,
    외부의 음성 출력장치에 디코드 된 음성 데이터를 출력하는 음성 출력수단과,
    명령 메모리에 저장된 제 1 내지 제 4의 태스크 프로그램을 전환하면서 실행하는 프로세서를 포함하며,
    제 1 태스크는 입력부로부터 상기 메모리로 데이터 스트림을 전송하고,
    제 2 태스크는 상기 메모리로부터 디코드 처리수단으로 데이터 스트림을 공급하며,
    제 3 태스크는 상기 메모리로부터 영상 출력부에 디코드 된 영상 데이터를 출력하고,
    제 4 태스크는 상기 메모리로부터 음성 출력부에 디코드 된 음성 데이터를 출력하는 것을 특징으로 하는 영상음성 처리장치.
  8. 제 7항에 있어서,
    상기 프로세서는,
    상기 제 1 내지 제 4 태스크에 대응하는 적어도 4개의 프로그램 카운터를 갖는 프로그램 카운터부와,
    하나의 프로그램 카운터가 지시하는 명령 어드레스를 이용하여, 각 태스크 프로그램을 기억하는 명령 메모리로부터 명령을 페치하는 명령 페치부와,
    명령 페치부에 페치된 명령을 실행하는 명령 실행부와,
    소정수의 명령 사이클이 경과할 때마다 명령 페치부에 대하여 프로그램 카운터를 순차 전환하도록 제어하는 태스크 제어부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  9. 제 8항에 있어서,
    상기 프로세서는,
    상기 제 1 내지 제 4 태스크에 대응하는 적어도 4개의 레지스터 세트를 갖는 레지스터부를 더 포함하며,
    상기 태스크 제어부는, 프로그램 카운터의 절환과 동시에, 명령 실행부가 사용할 레지스터 세트를 절환하는 것을 특징으로 하는 영상음성 처리장치.
  10. 제 9항에 있어서,
    상기 태스크 제어부는,
    프로그램 카운터가 전환될 때마다 클록 신호에 따라 명령 사이클 수를 카운트하는 카운터와,
    카운터에서의 카운트 값이 상기 소정 수에 도달했을 때, 명령 페치부에 대하여 프로그램 카운터를 전환하도록 제어하는 전환 지시부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  11. 제 10항에 있어서,
    상기 디코드 처리수단은,
    데이터 스트림에 대하여 조건 판단을 주로 하는 순차 처리인, 압축음성 데이터 및 압축영상 데이터의 헤더 해석과, 압축음성 데이터의 디코드를 포함하는 순차처리를 행하는 순차 처리수단과,
    상기 순차 처리와 병행하여, 압축영상 데이터의 헤더 해석을 제외하고 압축영상 데이터를 디코드 하는 정형처리를 행하는 정형 처리수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  12. 제 11항에 있어서,
    상기 순차 처리수단은, 데이터 스트림 중의 소정 블록 단위로 부가된 헤더 정보의 해석과, 데이터 스트림 중의 음성 데이터의 복호를 교호로 행하며, 1블록의 헤더 해석이 종료되었을 때 정형 처리수단에 당해 블록의 디코드 개시를 지시하고, 정형 처리수단으로부터 그 블록의 디코드 종료통지를 받았을 때 다음 블록의 헤더 해석을 시작하며,
    상기 정형 처리수단은, 순차 처리수단의 해석 결과에 따라 압축영상 데이터를 소정 블록 단위로 디코드 하는 것을 특징으로 하는 영상음성 처리장치.
  13. 제 12항에 있어서,
    상기 정형 처리수단은,
    순차 처리수단의 지시에 따라 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 데이터 변환수단과,
    가변길이 복호에 의해 얻어진 블록 데이터에 대하여, 소정의 연산을 함으로써 역양자화 및 역 이산 여현변환을 행하는 연산수단과,
    역 이산 여현변환 후의 블록 데이터와, 메모리에 저장된 복호완료 프레임의 구형(矩形) 화상을 합성함으로써 블록에 상당하는 영상 데이터를 복원하는 합성수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  14. 제 13항에 있어서,
    상기 연산수단은, 1블록에 상당하는 기억영역을 갖는 제 1 버퍼를 더 포함하며,
    상기 데이터 변환수단은,
    데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 가변길이 복호수단과,
    제 1 버퍼의 기억영역의 어드레스를 지그재그 스캔 순으로 나열한 제 1 어드레스 열을 기억하는 제 1 어드레스 표 수단과,
    제 1 버퍼의 기억영역의 어드레스를 교호 스캔 순으로 나열한 제 2 어드레스열을 기억하는 제 1 어드레스 표 수단과,
    제 1 어드레스 열과 제 2 어드레스 열의 한쪽에 따라 가변길이 복호수단의 가변길이 복호에 의해 얻어지는 블록 데이터를 제 1 버퍼에 기입하는 기입수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  15. 제 14항에 있어서,
    상기 기입수단은,
    제 1 어드레스 표 수단 및 제 2 어드레스 표 수단에 대한 표 어드레스를 차례로 발생하는 표 어드레스 발생수단과,
    표 어드레스가 입력된 제 1 표 수단, 제 2 표 수단으로부터 각각 출력되는 제 1 어드레스 열의 어드레스, 제 2 어드레스 열의 어드레스 중, 한쪽을 선택하는 어드레스 선택수단과,
    선택된 어드레스를 제 1 버퍼에 출력하는 어드레스 출력수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  16. 압축음성 데이터와 압축영상 데이터를 포함하는 데이터 스트림을 입력하는 입력수단과,
    데이터 스트림에 대하여, 조건 판단을 주로 하는 순차 처리인, 데이터 스트림 중의 소정 블록 단위로 부가된 헤더 정보의 해석과, 데이터 스트림 중의 압축음성 데이터의 복호를 포함하는 순차처리를 행하는 순차 처리수단과,
    상기 순차 처리와 병행하여, 정형 연산을 주로 하는 정형 처리인, 헤더 해석의 결과를 이용하여 데이터 스트림 중의 압축영상 데이터를 소정 블록 단위로 복호하는 정형처리를 행하는 정형 처리수단을 포함하며,
    상기 순차 처리수단은, 상기 소정 블록의 헤더 해석이 종료되었을 때, 정형 처리수단에 당해 소정 블록의 디코드 개시를 지시하고, 정형 처리수단으로부터 소정 블록의 디코드 종료통지를 받았을 때, 다음의 소정 블록의 헤더 해석을 시작하는 것을 특징으로 하는 영상음성 처리장치.
  17. 제 16항에 있어서,
    상기 정형 처리수단은,
    순차 처리수단의 지시에 따라 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 데이터 변환수단과,
    가변길이 복호에 의해 얻어진 영상 블록에 대하여, 소정의 연산을 함으로써 역양자화 및 역 이산 여현변환을 행하는 연산수단과,
    역 이산 여현변환 후의 영상 블록과 복호완료 블록을 합성함으로써 움직임 보상처리를 행하여 영상 데이터를 복원하는 합성수단을 포함하며,
    상기 순차 처리수단은,
    데이터 변환수단에 의해 가변길이 복호된 헤더 정보를 취득하는 취득수단과,
    취득된 헤더 정보를 해석하는 해석수단과,
    해석 결과로서 얻어지는 파라미터를 정형 처리수단에 통지하는 통지수단과,
    입력수단에 의해 입력된 데이터 스트림 중의 압축음성 데이터를 복호하는 음성 복호수단과,
    상기 정형 처리수단으로부터 소정 블록의 디코드 완료를 통지하는 인터럽트 신호를 받았을 때, 음성 복호수단의 동작을 정지함과 동시에 취득수단을 기동하고, 상기 통지수단이 상기 통지를 하였을 때, 상기 데이터 변환수단에 영상 블록의 가변길이 복호의 시작을 지시하는 제어수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  18. 제 17항에 있어서,
    상기 해석수단은 헤더 정보에 기초하여 양자화 스케일과 움직임벡터를 산출하고,
    상기 통지수단은, 양자화 스케일을 연산수단에, 움직임벡터를 합성수단에 통지하는 것을 특징으로 하는 영상음성 처리장치.
  19. 제 18항에 있어서,
    상기 연산수단은,
    각각 마이크로프로그램을 기억하는 제 1 제어 기억부 및 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스 중 어느 한쪽을 선택하여 제 2 제어 기억부에 출력하는 셀렉터와,
    승산기와 가산기를 가지며, 제 1, 제 2 제어 기억부에 의한 마이크로프로그램 제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 실행부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  20. 제 19항에 있어서,
    상기 실행부는, 셀렉터에 의해 제 2 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 독립적으로 병행하여 행하고, 셀렉터에 의해 제 1 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 연동시켜 행하는 것을 특징으로 하는 영상음성 처리장치.
  21. 제 20항에 있어서,
    상기 연산수단은,
    데이터 변환수단으로부터의 영상 블록을 유지하는 제 1 버퍼와,
    실행부에 의해 역 이산 여현변환 된 블록을 유지하는 제 2 버퍼를 더 포함하며,
    제 1 제어 기억부는, 역 양자화 처리를 하는 마이크로프로그램과, 역 이산 여현변환을 하는 마이크로프로그램을 기억하고,
    제 2 제어 기억부는, 역 이산 여현변환을 하는 마이크로프로그램과, 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 마이크로프로그램을 기억하며,
    상기 실행수단은, 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 처리와, 다음의 영상 블록을 역 양자화 하는 처리를 병렬로 실행하고, 역 양자화 된 당해 영상 블록을 역 이산 여현변환 하는 처리를 승산기와 가산기를 연동시켜 실행하는 것을 특징으로 하는 영상음성 처리장치.
  22. 제 21항에 있어서,
    상기 합성수단은, 압축해야 할 영상 데이터로부터 차분(差分) 화상을 나타내는 차분 블록을 더 생성하고,
    상기 제 2 버퍼는, 생성된 차분 화상을 더 유지하며,
    제 1 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 양자화 처리를 하는 마이크로프로그램을 더 기억하고,
    제 2 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 이산 여현변환 된 영상 블록을 제 1 버퍼에 전송하는 마이크로프로그램을 더 기억하고,
    상기 실행수단은, 또한, 제 2 버퍼에 유지된 차분 블록에 대하여 이산 여현변환과 양자화를 실행하여 제 1 버퍼에 전송하며,
    상기 데이터 변환수단은, 또한, 제 1 버퍼의 블록에 대하여 가변길이 부호화를 행하고,
    상기 순차 처리수단은, 또한 데이터 변환수단에 의해 가변길이 부호화된 소정의 블록에 대하여 헤더 정보를 부가하는 것을 특징으로 하는 영상음성 처리장치.
  23. 제 19항에 있어서,
    상기 입력수단은, 폴리곤 데이터를 더 입력하고,
    상기 순차 처리수단은, 폴리곤 데이터를 해석하여 폴리곤의 정점 좌표와 에지의 경사를 더 산출하며,
    상기 정형 처리수단은, 또한, 산출된 정점 좌표와 경사에 따라 상기 폴리곤의 화상 데이터를 생성하는 것을 특징으로 하는 영상음성 처리장치.
  24. 제 23항에 있어서,
    상기 제 1 제어 기억부, 제 2 제어 기억부는, DDA 알고리즘에 의한 주사 변환을 행하는 마이크로프로그램을 더 기억하며,
    상기 실행부는, 또한, 순차 처리수단에 의해 산출된 정점 좌표와 경사에 따라 마이크로프로그램 제어에 의해 주사 변환을 행하는 것을 특징으로 하는 영상음성 처리장치.
  25. 제 18항에 있어서,
    상기 연산수단은,
    마이크로프로그램을 기억하는 제 1 제어 기억부 및 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스 중 어느 한쪽을 선택하여 제 2 제어 기억부에 출력하는 셀렉터와,
    승산기와 가산기를 가지며, 제1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 복수의 실행부를 포함하며,
    각 실행부는 블록을 분할한 부분 블록을 분담하여 처리하는 것을 특징으로 하는 영상음성 처리장치.
  26. 제 25항에 있어서,
    상기 연산수단은,
    각 실행부에 대응하여 설정되고, 각 변환 표는 소정의 어드레스 열에 대응하여 부분적으로 어드레스 순서를 교체시킨 변환 어드레스를 유지하는 복수의 어드레스 변환 표와,
    소정의 연산을 실현하는 마이크로프로그램을 구성하는 개개의 마이크로 명령을 변환 어드레스에 대응시켜 기억하는 복수 레지스터로 이루어지는 명령 레지스터군과,
    제 1 및 제 2 제어 기억부와 복수의 실행부 사이에 설정되고, 제 1 제어 기억부 또는 셀렉터로부터 각 실행부로 출력되는 마이크로 명령을 명령 레지스터의 마이크로 명령으로 절환하여 복수의 실행부로 출력하는 절환부를 포함하며,
    상기 제 1 판독 어드레스 또는 제 2 판독 어드레스가 상기 소정의 어드레스열 중의 어드레스인 경우, 그 어드레스는 상기 각 어드레스 변환 표에 의해 변환 어드레스로 변환되며, 상기 명령 레지스터군은 변환표로부터 출력된 각 변환 어드레스에 대응하는 마이크로 명령을 출력하는 것을 특징으로 하는 영상음성 처리장치.
  27. 제 26항에 있어서,
    상기 각 변환 표는, 또한, 제 1 프로그램 카운터가 상기 소정의 어드레스 열 중의 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 가감산을 나타내는 마이크로 명령 출력에 따라, 가산할 것인지 감산할 것인지를 나타내는 플래그를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는 상기 플래그에 따라 가감산을 실행하며,
    상기 플래그는 상기 제 2 제어 기억부의 마이크로 명령에 따라 설정되는 것을 특징으로 하는 영상음성 처리장치.
  28. 제 26항에 있어서,
    상기 제 2 제어 기억부는, 또한 제 1 프로그램 카운터가 상기 소정의 어드레스 열 중 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 마이크로 명령 출력에 따라, 마이크로 명령 실행결과의 저장장소를 나타내는 정보를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는, 저장장소 정보에 따라서 실행 결과를 저장하는 것을 특징으로 하는 영상음성 처리장치.
  29. 압축음성 데이터와 압축영상 데이터를 포함하는 데이터 스트림을 입력하는 입력수단과,
    데이터 스트림에 대하여, 조건 판단을 주로 하는 순차 처리인, 데이터 스트림 중의 소정 블록 단위로 부가된 헤더 정보의 해석과, 데이터 스트림 중의 압축음성 데이터의 복호를 포함하는 순차처리를 행하는 순차 처리수단과,
    상기 순차 처리와 병행하여, 정형 연산을 주로 하는 정형 처리인, 헤더 해석의 결과를 이용하여 데이터 스트림 중의 압축영상 데이터를 소정 블록 단위로 복호하는 정형처리를 행하는 정형 처리수단을 포함하며,
    상기 순차 처리수단은, 상기 소정 블록의 헤더 해석이 종료되었을 때, 정형 처리수단에 당해 소정 블록의 디코드 개시를 지시하고, 정형 처리수단으로부터 소정 블록의 디코드 종료통지를 받았을 때, 다음의 소정 블록의 헤더 해석을 시작하며,
    상기 정형 처리수단은,
    순차 처리수단의 지시에 따라 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 데이터 변환수단과,
    가변길이 복호에 의해 얻어진 영상 블록에 대하여, 소정의 연산을 함으로써 역양자화 및 역 이산 여현변환을 행하는 연산수단과,
    역 이산 여현변환 후의 영상 블록과 복호완료 블록을 합성함으로써 움직임 보상처리를 행하여 영상 데이터를 복원하는 합성수단을 포함하며,
    상기 순차 처리수단은,
    데이터 변환수단에 의해 가변길이 복호된 헤더 정보를 취득하는 취득수단과,
    취득된 헤더 정보를 해석하는 해석수단과,
    해석 결과로서 얻어지는 파라미터를 정형 처리수단에 통지하는 통지수단과,
    입력수단에 의해 입력된 데이터 스트림 중의 압축음성 데이터를 복호하는 음성 복호수단과,
    상기 정형 처리수단으로부터 소정 블록의 디코드 완료를 통지하는 인터럽트 신호를 받았을 때, 음성 복호수단의 동작을 정지함과 동시에 취득수단을 기동하고, 상기 통지수단이 상기 통지를 하였을 때, 상기 데이터 변환수단에 영상 블록의 가변길이 복호의 시작을 지시하는 제어수단을 포함하며,
    상기 연산수단은, 1블록에 상당하는 기억영역을 갖는 제 1 버퍼를 더 포함하며,
    상기 데이터 변환수단은,
    데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 가변길이 복호수단과,
    제 1 버퍼의 기억영역의 어드레스를 지그재그 스캔 순으로 나열한 제 1 어드레스 열을 기억하는 제 1 어드레스 표 수단과,
    제 1 버퍼의 기억영역의 어드레스를 교호 스캔 순으로 나열한 제 2 어드레스 열을 기억하는 제 2 어드레스 표 수단과,
    제 1 어드레스 열과 제 2 어드레스열의 한쪽에 따라 가변길이 복호수단의 가변길이 복호에 의해 얻어지는 블록 데이터를 제 1 버퍼에 기입하는 기입수단을 더 포함하는 것을 특징으로 하는 영상음성 처리장치.
  30. 제 29항에 있어서,
    상기 기입수단은,
    제 1 어드레스 표 수단 및 제 2 어드레스 표 수단에 대한 표 어드레스를 차례로 발생하는 표 어드레스 발생수단과,
    표 어드레스가 입력된 제 1 표수 단, 제 2 표 수단으로부터 각각 출력되는 제 1 어드레스 열의 어드레스, 제 2 어드레스 열의 어드레스 중 어느 한쪽을 선택하는 어드레스 선택수단과,
    선택된 어드레스를 제 1 버퍼에 출력하는 어드레스 출력수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  31. 제 30항에 있어서,
    상기 해석수단은 헤더 정보에 따라 양자화 스케일과 움직임벡터를 산출하고,
    상기 통지수단은 양자화 스케일을 연산수단에, 움직임벡터를 합성수단에 통지하는 것을 특징으로 하는 영상음성 처리장치.
  32. 제 31항에 있어서,
    상기 연산수단은,
    각각 마이크로프로그램을 기억하는 제 1 제어 기억부 및 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스 중 어느 한쪽을 선택하여 제 2 제어 기억부로 출력하는 셀렉터와,
    승산기와 가산기를 가지며, 제 1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 실행부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  33. 제 32항에 있어서,
    상기 실행부는, 셀렉터에 의해 제 2 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 독립적으로 병행하여 행하고, 셀렉터에 의해 제 1 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 연동시켜 행하는 것을 특징으로 하는 영상음성 처리장치.
  34. 제 33항에 있어서,
    상기 연산수단은,
    실행부에 의해 역 이산 여현변환 된 블록을 유지하는 제 2 버퍼를 더 포함하며,
    제 1 제어 기억부는, 역양자화 처리를 하는 마이크로프로그램과, 역 이산 여현변환을 하는 마이크로프로그램을 기억하고,
    제 2 제어 기억부는, 역 이산 여현변환을 하는 마이크로프로그램과, 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 마이크로프로그램을 기억하며,
    상기 실행수단은, 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 처리와, 다음의 영상 블록을 역양자화 하는 처리를 병렬로 실행하고, 역 양자화 된 당해 영상 블록을 역 이산 여현변환 하는 처리를 승산기와 가산기를 연동시켜 실행하는 것을 특징으로 하는 영상음성 처리장치.
  35. 제 34항에 있어서,
    상기 합성수단은, 압축해야 할 영상 데이터로부터 차분(差分) 화상을 나타내는 차분 블록을 더 생성하고,
    상기 제 2 버퍼는, 생성된 차분 화상을 더 유지하며,
    제 1 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 양자화 처리를 하는 마이크로프로그램을 더 기억하고,
    제 2 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 이산 여현변환 된 영상 블록을 제 1 버퍼에 전송하는 마이크로프로그램을 더 기억하고,
    상기 실행수단은, 또한 제 2 버퍼에 유지된 차분 블록에 대하여 이산 여현변환과 양자화를 실행하여 제 1 버퍼에 전송하며,
    상기 데이터 변환수단은, 또한 제 1 버퍼의 블록에 대하여 가변길이 부호화를 행하고,
    상기 순차 처리수단은, 또한 데이터 변환수단에 의해 가변길이 부호화된 소정의 블록에 대하여 헤더 정보를 부가하는 것을 특징으로 하는 영상음성 처리장치.
  36. 제 32항에 있어서,
    상기 입력수단은, 폴리곤 데이터를 더 입력하고,
    상기 순차 처리수단은, 폴리곤 데이터를 해석하여 폴리곤의 정점 좌표와 에지의 경사를 더 산출하며,
    상기 정형 처리수단은, 또한, 산출된 정점 좌표와 경사에 따라 상기 폴리곤의 화상 데이터를 생성하는 것을 특징으로 하는 영상음성 처리장치.
  37. 제 36항에 있어서,
    상기 제 1 제어 기억부, 제 2 제어 기억부는, DDA 알고리즘에 의한 주사 변환을 행하는 마이크로프로그램을 더 기억하며,
    상기 실행부는, 또한, 순차 처리수단에 의해 산출된 정점 좌표와 경사에 따라 마이크로프로그램 제어에 의해 주사 변환을 행하는 것을 특징으로 하는 영상음성 처리장치.
  38. 제 31항에 있어서,
    상기 연산수단은,
    마이크로프로그램을 기억하는 제 1 제어 기억부 및 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스 중 어느 한쪽을 선택하여 제 2 제어 기억부에 출력하는 셀렉터와,
    승산기와 가산기를 가지며, 제1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 복수의 실행부를 포함하며,
    각 실행부는 블록을 분할한 부분 블록을 분담하여 처리하는 것을 특징으로 하는 영상음성 처리장치.
  39. 제 38항에 있어서,
    상기 연산수단은,
    각 실행부에 대응하여 설정되고, 각 변환 표는 소정의 어드레스 열에 대응하여 부분적으로 어드레스 순서를 교체시킨 변환 어드레스를 유지하는 복수의 어드레스 변환 표와,
    소정의 연산을 실현하는 마이크로프로그램을 구성하는 개개의 마이크로 명령을 변환 어드레스에 대응시켜 기억하는 복수 레지스터로 이루어지는 명령 레지스터군과,
    제 1 및 제 2 제어 기억부와 복수의 실행부 사이에 설정되고, 제 1 제어 기억부 또는 셀렉터로부터 각 실행부로 출력되는 마이크로 명령을 명령 레지스터의 마이크로 명령으로 전환하여 복수의 실행부로 출력하는 전환부를 포함하며,
    상기 제 1 판독 어드레스 또는 제 2 판독 어드레스가 상기 소정의 어드레스 열중의 어드레스인 경우, 그 어드레스는 상기 각 어드레스 변환 표에 의해 변환 어드레스로 변환되며, 상기 명령 레지스터군은 변환표로부터 출력된 각 변환 어드레스에 대응하는 마이크로 명령을 출력하는 것을 특징으로 하는 영상음성 처리장치.
  40. 제 39항에 있어서,
    상기 각 변환 표는 또한 제 1 프로그램 카운터가 상기 소정의 어드레스 열중의 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 가감산을 나타내는 마이크로 명령 출력에 따라, 가산할 것인지 감산할 것인지를 나타내는 플래그를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는 상기 플래그에 따라 가감산을 실행하며,
    상기 플래그는 상기 제 2 제어 기억부의 마이크로 명령에 따라 설정되는 것을 특징으로 하는 영상음성 처리장치.
  41. 제 39항에 있어서,
    상기 제 2 제어 기억부는, 또한 제 1 프로그램 카운터가 상기 소정의 어드레스 열 중 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 마이크로 명령 출력에 따라, 마이크로 명령 실행결과의 저장장소를 나타내는 정보를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는, 저장장소 정보에 따라서 실행 결과를 저장하는 것을 특징으로 하는 영상음성 처리장치.
  42. 압축음성 데이터와 압축영상 데이터를 포함하는 데이터 스트림을 입력, 디코드 및 출력하는 영상음성 처리장치로서,
    외부 요인에 의해 비동기로 입력되는 데이터 스트림을 메모리에 저장하는 것을 포함하는 입출력 처리를 행하는 입출력 처리수단과,
    메모리에 저장된 데이터 스트림에 대하여, 조건 판단을 주로 하는 순차 처리인, 압축음성 데이터 및 압축영상 데이터의 헤더 해석과, 압축음성 데이터의 디코드를 포함하며, 디코드 된 음성 데이터는 메모리에 저장되는 순차처리를 행하는 순차 처리수단과,
    순차 처리수단의 헤더 해석 결과에 따라서, 메모리에 저장된 압축영상 데이터에 대하여, 정형적인 연산을 주로 하는 정형 처리인, 압축영상 데이터의 디코드를 포함하며, 디코드 된 영상 데이터는 메모리에 저장되는 정형처리를 행하는 정형처리수단을 포함하며,
    상기 입출력 처리는, 디코드 된 음성 데이터, 영상 데이터를 각각 메모리로부터 판독하고, 외부의 표시장치, 음성 출력장치의 각각의 출력률에 맞춘 출력처리를 더 포함하는 것을 특징으로 하는 영상음성 처리장치.
  43. 제 42항에 있어서,
    상기 순차 처리수단은, 데이터 스트림 중의 소정 블록 단위로 부가된 헤더 정보의 해석과, 데이터 스트림 중의 음성 데이터의 복호를 교호로 행하며, 1블록의 헤더 해석이 종료되었을 때, 정형 처리수단에 당해 블록의 디코드 개시를 지시하고, 정형 처리수단으로부터 그 블록의 디코드 종료통지를 받았을 때, 다음 블록의 헤더 해석을 시작하며,
    상기 정형 처리수단은, 순차 처리수단의 해석 결과에 따라 압축영상 데이터를 소정 블록 단위로 디코드 하는 것을 특징으로 하는 영상음성 처리장치.
  44. 제 43항에 있어서,
    상기 정형 처리수단은,
    순차 처리수단의 지시에 따라 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 데이터 변환수단과,
    가변길이 복호에 의해 얻어진 블록 데이터에 대하여, 소정의 연산을 함으로써 역양자화 및 역 이산 여현변환을 행하는 연산수단과,
    역 이산 여현변환 후의 블록 데이터와, 메모리에 저장된 복호완료 프레임의 구형(矩形) 화상을 합성함으로써 블록에 상당하는 영상 데이터를 복원하는 합성수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  45. 제 44항에 있어서,
    상기 연산수단은, 1블록에 상당하는 기억영역을 갖는 제 1 버퍼를 더 포함하며,
    상기 데이터 변환수단은,
    데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 가변길이 복호수단과,
    제 1 버퍼의 기억영역의 어드레스를 지그재그 스캔 순으로 나열한 제 1 어드레스 열을 기억하는 제 1 어드레스 표 수단과,
    제 1 버퍼의 기억영역의 어드레스를 교호 스캔 순으로 나열한 제 2 어드레스열을 기억하는 제 2 어드레스 표 수단과,
    제 1 어드레스 열과 제 2 어드레스 열 중 어느 한쪽에 따라 가변길이 복호수단의 가변길이 복호에 의해 얻어지는 블록 데이터를 제 1 버퍼에 기입하는 기입수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  46. 제 45항에 있어서,
    상기 기입수단은,
    제 1 어드레스 표 수단 및 제 2 어드레스 표 수단에 대한 표 어드레스를 차례로 발생하는 표 어드레스 발생수단과,
    표 어드레스가 입력된 제 1 표 수단, 제 2 표 수단으로부터 각각 출력되는 제 1 어드레스 열의 어드레스, 제 2 어드레스 열의 어드레스 중 어느 한쪽을 선택하는 어드레스 선택수단과,
    선택된 어드레스를 제 1 버퍼에 출력하는 어드레스 출력수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  47. 제 42항에 있어서,
    상기 입출력 처리수단은,
    외부로부터 비동기 데이터 스트림을 입력하는 입력수단과,
    외부의 표시장치에 디코드 된 영상 데이터를 출력하는 영상 출력수단과,
    외부의 음성 출력장치에 디코드 된 음성 데이터를 출력하는 음성 출력수단과,
    명령 메모리에 저장된 제 1 내지 제 4의 태스크 프로그램을 전환하면서 실행하는 프로세서를 포함하며,
    제 1 태스크는 입력부로부터 상기 메모리로 데이터 스트림을 전송하고,
    제 2 태스크는 상기 메모리로부터 디코드 처리수단으로 데이터 스트림을 공급하고,
    제 3 태스크는 상기 메모리로부터 영상 출력부에 디코드 된 영상 데이터를 출력하며,
    제 4 태스크는 상기 메모리로부터 음성 출력부에 디코드 된 음성 데이터를 출력하는 것을 특징으로 하는 영상음성 처리장치.
  48. 제 47항에 있어서,
    상기 프로세서는,
    상기 제 1 내지 제 4 태스크에 대응하는 적어도 4개의 프로그램 카운터를 갖는 프로그램 카운터부와,
    하나의 프로그램 카운터가 지시하는 명령 어드레스를 이용하여, 각 태스크 프로그램을 기억하는 명령 메모리로부터 명령을 페치하는 명령 페치부와,
    명령 페치부에 페치된 명령을 실행하는 명령 실행부와,
    소정수의 명령 사이클이 경과할 때마다 명령 페치부에 대하여 프로그램 카운터를 순차 전환하도록 제어하는 태스크 제어부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  49. 제 48항에 있어서,
    상기 프로세서는, 상기 제 1 내지 제 4 태스크에 대응하는 적어도 4개의 레지스터 세트를 갖는 레지스터부를 더 포함하며,
    상기 태스크 제어부는, 프로그램 카운터의 전환과 동시에, 명령 실행부가 사용할 레지스터 세트를 전환하는 것을 특징으로 하는 영상음성 처리장치.
  50. 제 49항에 있어서,
    상기 태스크 제어부는,
    프로그램 카운터가 전환될 때마다 클록 신호에 따라 명령 사이클 수를 카운트하는 카운터와,
    카운터에서의 카운트 값이 상기 소정 수에 도달했을 때, 명령 페치부에 대하여 프로그램 카운터를 절환하도록 제어하는 절환 지시부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  51. 제 49항에 있어서,
    상기 정형 처리수단은,
    순차 처리수단의 지시에 따라 데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 데이터 변환수단과,
    가변길이 복호에 의해 얻어진 블록 데이터에 대하여, 소정의 연산을 함으로써 역양자화 및 역 이산 여현변환을 행하는 연산수단과,
    역 이산 여현변환 후의 블록 데이터와, 메모리에 저장된 복호완료 프레임의 구형(矩形) 화상을 합성함으로써 블록에 상당하는 영상 데이터를 복원하는 합성수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  52. 제 51항에 있어서,
    상기 해석수단은 헤더 정보에 따라 양자화 스케일과 움직임벡터를 산출하고,
    상기 통지수단은 양자화 스케일을 연산수단에, 움직임벡터를 합성수단에 통지하는 것을 특징으로 하는 영상음성 처리장치.
  53. 제 52항에 있어서,
    상기 연산수단은,
    각각 마이크로프로그램을 기억하는 제 1 제어 기억부 및 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스 중 어느 한쪽을 선택하여 제 2 제어 기억부로 출력하는 셀렉터와,
    승산기와 가산기를 가지며, 제 1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 실행부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  54. 제 53항에 있어서,
    상기 실행부는, 셀렉터에 의해 제 2 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 독립 병행하여 행하고, 셀렉터에 의해 제 1 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 연동시켜 행하는 것을 특징으로 하는 영상음성 처리장치.
  55. 제 54항에 있어서,
    상기 연산수단은,
    데이터 변환수단으로부터의 영상 블록을 유지하는 제 1 버퍼와,
    실행부에 의해 역 이산 여현변환 된 블록을 유지하는 제 2 버퍼를 더 포함하며,
    제 1 제어 기억부는, 역양자화 처리를 하는 마이크로프로그램과, 역 이산 여현변환을 하는 마이크로프로그램을 기억하고,
    제 2 제어 기억부는, 역 이산 여현변환을 하는 마이크로프로그램과, 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 마이크로프로그램을 기억하며,
    상기 실행수단은. 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 처리와, 다음의 영상 블록을 역 양자화 하는 처리를 병렬로 실행하고, 역 양자화 된 당해 영상 블록을 역 이산 여현변환 하는 처리를 승산기와 가산기를 연동시켜 실행하는 것을 특징으로 하는 영상음성 처리장치.
  56. 제 55항에 있어서,
    상기 합성수단은, 압축해야 할 영상 데이터로부터 차분(差分) 화상을 나타내는 차분 블록을 더 생성하고,
    상기 제 2 버퍼는, 생성된 차분 화상을 더 유지하며,
    제 1 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 양자화 처리를 하는 마이크로프로그램을 더 기억하고,
    제 2 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 이산 여현변환 된 영상 블록을 제 1 버퍼에 전송하는 마이크로프로그램을 더 기억하고,
    상기 실행수단은, 또한, 제 2 버퍼에 유지된 차분 블록에 대하여 이산 여현변환과 양자화를 실행하여 제 1 버퍼에 전송하며,
    상기 데이터 변환수단은, 또한, 제 1 버퍼의 블록에 대하여 가변길이 부호화를 행하고,
    상기 순차 처리수단은, 또한, 데이터 변환수단에 의해 가변길이 부호화된 소정의 블록에 대하여 헤더 정보를 부가하는 것을 특징으로 하는 영상음성 처리장치.
  57. 제 52항에 있어서,
    상기 연산수단은,
    마이크로프로그램을 기억하는 제 1 제어 기억부, 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스의 한쪽을 선택하여 제 2 제어 기억부에 출력하는 셀렉터와,
    승산기와 가산기를 갖고, 제1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 복수의 실행부를 포함하며,
    각 실행부는 블록을 분할한 부분 블록을 분담하여 처리하는 것을 특징으로 하는 영상음성 처리장치.
  58. 제 57항에 있어서,
    상기 연산수단은,
    각 실행부에 대응하여 설정되고, 각 변환 표는 소정의 어드레스 열에 대응하여 부분적으로 어드레스 순서를 교체시킨 변환 어드레스를 유지하는 복수의 어드레스 변환 표와,
    소정의 연산을 실현하는 마이크로프로그램을 구성하는 개개의 마이크로 명령을 변환 어드레스에 대응시켜 기억하는 복수 레지스터로 이루어지는 명령 레지스터군과,
    제 1 및 제 2 제어 기억부와 복수의 실행부 사이에 설정되고, 제 1 제어 기억부 또는 셀렉터로부터 각 실행부로 출력되는 마이크로 명령을 명령 레지스터의 마이크로 명령으로 절환하여 복수의 실행부로 출력하는 절환부를 포함하며,
    상기 제 1 판독 어드레스 또는 제 2 판독 어드레스가 상기 소정의 어드레스 열중의 어드레스인 경우, 그 어드레스는 상기 각 어드레스 변환 표에 의해 변환 어드레스로 변환되며, 상기 명령 레지스터군은 변환표로부터 출력된 각 변환 어드레스에 대응하는 마이크로 명령을 출력하는 것을 특징으로 하는 영상음성 처리장치.
  59. 제 58항에 있어서,
    상기 각 변환 표는, 또한, 제 1 프로그램 카운터가 상기 소정의 어드레스열 중의 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 가감산을 나타내는 마이크로 명령 출력에 따라, 가산할 것인지 감산할 것인지를 나타내는 플래그를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는 상기 플래그에 따라 가감산을 실행하며,
    상기 플래그는 상기 제 2 제어 기억부의 마이크로 명령에 따라 설정되는 것을 특징으로 하는 영상음성 처리장치.
  60. 제 59항에 있어서,
    상기 각 변환 표는, 또한, 제 1 프로그램 카운터가 상기 소정의 어드레스 열 중의 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 가감산을 나타내는 마이크로 명령 출력에 따라, 가산할 것인지 감산할 것인지를 나타내는 플래그를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는 상기 플래그에 따라 가감산을 실행하며,
    상기 플래그는 상기 제 2 제어 기억부의 마이크로 명령에 따라 설정되는 것을 특징으로 하는 영상음성 처리장치.
  61. 제 51항에 있어서,
    상기 연산수단은, 1블록에 상당하는 기억영역을 갖는 제 1 버퍼를 더 포함하며,
    상기 데이터 변환수단은,
    데이터 스트림 중의 압축영상 데이터를 가변길이 복호하는 가변길이 복호수단과,
    제 1 버퍼의 기억영역의 어드레스를 지그재그 스캔 순으로 나열한 제 1 어드레스 열을 기억하는 제 1 어드레스 표 수단과,
    제 1 버퍼의 기억영역의 어드레스를 교호 스캔 순으로 나열한 제 2 어드레스 열을 기억하는 제 2 어드레스 표 수단과,
    제 1 어드레스 열과 제 2 어드레스 열 중 어느 한쪽에 따라 가변길이 복호수단의 가변길이 복호에 의해 얻어지는 블록 데이터를 제 1 버퍼에 기입하는 기입수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  62. 제 61항에 있어서,
    상기 기입수단은,
    제 1 어드레스 표 수단 및 제 2 어드레스 표 수단에 대한 표 어드레스를 차례로 발생하는 표 어드레스 발생수단과,
    표 어드레스가 입력된 제 1 표 수단, 제 2 표 수단으로부터 각각 출력되는 제 1 어드레스 열의 어드레스, 제 2 어드레스 열의 어드레스 중 어느 한쪽을 선택하는 어드레스 선택수단과,
    선택된 어드레스를 제 1 버퍼에 출력하는 어드레스 출력수단을 포함하는 것을 특징으로 하는 영상음성 처리장치.
  63. 제 62항에 있어서,
    상기 해석수단은 헤더 정보에 따라 양자화 스케일과 움직임벡터를 산출하고,
    상기 통지수단은 양자화 스케일을 연산수단에, 움직임벡터를 합성수단에 통지하는 것을 특징으로 하는 영상음성 처리장치.
  64. 제 63항에 있어서,
    상기 연산수단은,
    각각 마이크로프로그램을 기억하는 제 1 제어 기억부 및 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스의 한쪽을 선택하여 제 2 제어 기억부로 출력하는 셀렉터와,
    승산기와 가산기를 가지며, 제 1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 실행부를 포함하는 것을 특징으로 하는 영상음성 처리장치.
  65. 제 64항에 있어서,
    상기 실행부는, 셀렉터에 의해 제 2 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 독립적으로 병행하여 행하고, 셀렉터에 의해 제 1 판독 어드레스가 선택되었을 때, 승산기를 이용한 처리와 가산기를 이용한 처리를 연동시켜 행하는 것을 특징으로 하는 영상음성 처리장치.
  66. 제 65항에 있어서,
    상기 연산수단은,
    실행부에 의해 역 이산 여현변환 된 블록을 유지하는 제 2 버퍼를 더 포함하며,
    제 1 제어 기억부는, 역양자화 처리를 하는 마이크로프로그램과, 역 이산 여현변환을 하는 마이크로프로그램을 기억하고,
    제 2 제어 기억부는, 역 이산 여현변환을 하는 마이크로프로그램과, 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 마이크로프로그램을 기억하며,
    상기 실행수단은, 역 이산 여현변환 된 영상 블록을 제 2 버퍼에 전송하는 처리와, 다음의 영상 블록을 역양자화 하는 처리를 병렬로 실행하고, 역 양자화 된 당해 영상 블록을 역 이산 여현변환 하는 처리를 승산기와 가산기를 연동시켜 실행하는 것을 특징으로 하는 영상음성 처리장치.
  67. 제 66항에 있어서,
    상기 합성수단은, 압축해야 할 영상 데이터로부터 차분(差分) 화상을 나타내는 차분 블록을 더 생성하고,
    상기 제 2 버퍼는, 생성된 차분 화상을 더 유지하며,
    제 1 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 양자화처리를 하는 마이크로프로그램을 더 기억하고,
    제 2 제어 기억부는, 이산 여현변환을 하는 마이크로프로그램과, 이산 여현변환 된 영상 블록을 제 1 버퍼에 전송하는 마이크로프로그램을 더 기억하고,
    상기 실행수단은, 또한 제 2 버퍼에 유지된 차분 블록에 대하여 이산 여현변환과 양자화를 실행하여 제 1 버퍼에 전송하며,
    상기 데이터 변환수단은, 또한 제 1 버퍼의 블록에 대하여 가변길이 부호화를 행하고,
    상기 순차 처리수단은, 또한 데이터 변환수단에 의해 가변길이 부호화된 소정의 블록에 대하여 헤더 정보를 부가하는 것을 특징으로 하는 영상음성 처리장치.
  68. 제 63항에 있어서,
    상기 연산수단은,
    마이크로 프로그램을 기억하는 제 1 제어 기억부 및 제 2 제어 기억부와,
    제 1 제어 기억부에 제 1 판독 어드레스를 지정하는 제 1 프로그램 카운터와,
    제 2 판독 어드레스를 지정하는 제 2 프로그램 카운터와,
    제 1 판독 어드레스와 제 2 판독 어드레스 중 어느 한쪽을 선택하여 제 2 제어 기억부에 출력하는 셀렉터와,
    승산기와 가산기를 가지며, 제1, 제 2 제어 기억부에 의한 마이크로 프로그램제어에 의해 블록 단위의 역양자화와 역 이산 여현변환을 실행하는 복수의 실행부를 포함하며,
    각 실행부는 블록을 분할한 부분 블록을 분담하여 처리하는 것을 특징으로 하는 영상음성 처리장치.
  69. 제 68항에 있어서,
    상기 연산수단은,
    각 실행부에 대응하여 설정되고, 각 변환 표는 소정의 어드레스 열에 대응하여 부분적으로 어드레스 순서를 교체시킨 변환 어드레스를 유지하는 복수의 어드레스 변환 표와,
    소정의 연산을 실현하는 마이크로프로그램을 구성하는 개개의 마이크로 명령을 변환 어드레스에 대응시켜 기억하는 복수 레지스터로 이루어지는 명령 레지스터군과,
    제 1 및 제 2 제어 기억부와 복수의 실행부 사이에 설정되고, 제 1 제어 기억부 또는 셀렉터로부터 각 실행부로 출력되는 마이크로 명령을 명령 레지스터의 마이크로 명령으로 절환하여 복수의 실행부로 출력하는 절환부를 포함하며,
    상기 제 1 판독 어드레스 또는 제 2 판독 어드레스가 상기 소정의 어드레스 열중의 어드레스인 경우, 그 어드레스는 상기 각 어드레스 변환 표에 의해 변환 어드레스로 변환되며, 상기 명령 레지스터군은 변환표로부터 출력된 각 변환 어드레스에 대응하는 마이크로 명령을 출력하는 것을 특징으로 하는 영상음성 처리장치.
  70. 제 69항에 있어서,
    상기 각 변환 표는, 또한, 제 1 프로그램 카운터가 상기 소정의 어드레스 열 중의 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 가감산을 나타내는 마이크로 명령 출력에 따라, 가산할 것인지 감산할 것인지를 나타내는 플래그를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는 상기 플래그에 따라 가감산을 실행하며,
    상기 플래그는 상기 제 2 제어 기억부의 마이크로 명령에 따라 설정되는 것을 특징으로 하는 영상음성 처리장치.
  71. 제 69항에 있어서,
    상기 제 2 제어 기억부는, 또한, 제 1 프로그램 카운터가 상기 소정의 어드레스 열 중 제 1 판독 어드레스를 출력하는 동안, 상기 레지스터 중의 마이크로 명령 출력에 따라, 마이크로 명령 실행결과의 저장장소를 나타내는 정보를 상기 복수의 실행부에 출력하고,
    상기 각 실행부는, 저장장소 정보에 따라서 실행 결과를 저장하는 것을 특징으로 하는 영상음성 처리장치.
KR10-1998-0012261A 1997-04-07 1998-04-07 처리효율을높인영상음성처리장치 KR100502586B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP8852397 1997-04-07
JP???9-088523 1997-04-07

Publications (2)

Publication Number Publication Date
KR19980081156A KR19980081156A (ko) 1998-11-25
KR100502586B1 true KR100502586B1 (ko) 2005-12-01

Family

ID=13945205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0012261A KR100502586B1 (ko) 1997-04-07 1998-04-07 처리효율을높인영상음성처리장치

Country Status (4)

Country Link
US (2) US6310921B1 (ko)
EP (1) EP0871334A3 (ko)
KR (1) KR100502586B1 (ko)
CN (1) CN1156171C (ko)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7929498B2 (en) 1995-06-30 2011-04-19 Interdigital Technology Corporation Adaptive forward power control and adaptive reverse power control for spread-spectrum communications
KR20010083063A (ko) * 1998-06-25 2001-08-31 벤자민 에프 커틀러 가변 길이 코딩 및 디코딩 처리 회로, 및 그 방법
US6573942B1 (en) * 1998-08-17 2003-06-03 Sharp Laboratories Of America, Inc. Buffer system for controlled and timely delivery of MPEG-2F data services
US7119853B1 (en) 1999-07-15 2006-10-10 Sharp Laboratories Of America, Inc. Method of eliminating flicker on an interlaced monitor
EP1115253A2 (en) * 1999-12-27 2001-07-11 Matsushita Electric Industrial Co., Ltd. Program information transmission apparatus
US6847687B2 (en) * 2000-03-08 2005-01-25 Matsushita Electric Industrial Co., Ltd. Audio and video processing apparatus
EP1744563A3 (en) * 2000-07-21 2007-02-28 Matsushita Electric Industrial Co., Ltd. Signal transmission system
US6940873B2 (en) 2000-12-27 2005-09-06 Keen Personal Technologies, Inc. Data stream control system for associating counter values with stored selected data packets from an incoming data transport stream to preserve interpacket time interval information
US6873735B1 (en) 2001-02-05 2005-03-29 Ati Technologies, Inc. System for improved efficiency in motion compensated video processing and method thereof
US7885336B2 (en) * 2001-02-05 2011-02-08 Ati Technologies Ulc Programmable shader-based motion compensation apparatus and method
JP2002236607A (ja) * 2001-02-13 2002-08-23 Matsushita Electric Ind Co Ltd 共有メモリ制御装置とマルチメディア処理システム
JP3861607B2 (ja) * 2001-02-22 2006-12-20 セイコーエプソン株式会社 画像信号復号装置
US7246220B1 (en) * 2001-07-27 2007-07-17 Magnum Semiconductor, Inc. Architecture for hardware-assisted context switching between register groups dedicated to time-critical or non-time critical tasks without saving state
JP2003169327A (ja) * 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd ソフトウェアでのmpeg−2ビデオ可変長復号化方法
JP3813930B2 (ja) * 2002-01-09 2006-08-23 松下電器産業株式会社 プロセッサ及びプログラム実行方法
KR100850705B1 (ko) * 2002-03-09 2008-08-06 삼성전자주식회사 시공간적 복잡도를 고려한 적응적 동영상 부호화 방법 및그 장치
US8401084B2 (en) 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
CA2525690C (en) * 2002-07-05 2014-12-02 Aspectus Ltd. A method and system for effectively performing event detection in a large number of concurrent image sequences
GB2395306B (en) * 2002-11-15 2006-02-15 Imagination Tech Ltd A configurable processor architecture
US20040193289A1 (en) * 2002-12-31 2004-09-30 Shi Chen Decoding system and method
KR20040079084A (ko) * 2003-03-06 2004-09-14 삼성전자주식회사 시간적 복잡도를 고려한 적응적 동영상 부호화와 그 장치
JP4750350B2 (ja) * 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
US7646817B2 (en) * 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
US6816922B2 (en) * 2003-04-14 2004-11-09 Faraday Technology Corp. Digital signal processor with a byte DMA controller
US9330060B1 (en) * 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) * 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
JP4431537B2 (ja) * 2003-06-16 2010-03-17 パナソニック株式会社 パケット処理装置及び方法
US7848432B2 (en) * 2003-07-02 2010-12-07 Broadcom Corporation System and method for efficiently storing macroblocks in SD-RAM
US7715479B2 (en) * 2003-07-21 2010-05-11 International Business Machines Corporation Power-aware on-chip memory management for video coding algorithms
US8423597B1 (en) 2003-08-29 2013-04-16 Nvidia Corporation Method and system for adaptive matrix trimming in an inverse discrete cosine transform (IDCT) operation
US8990255B2 (en) 2003-11-17 2015-03-24 Nokia Corporation Time bar navigation in a media diary application
CN1902904A (zh) * 2004-01-22 2007-01-24 半导体研究及设计公司 动态图像专家组数据接口之间的处理和后续路由的集成电路
JP2005217486A (ja) * 2004-01-27 2005-08-11 Matsushita Electric Ind Co Ltd ストリーム復号装置
US8948263B2 (en) * 2004-02-03 2015-02-03 Broadcom Corporation Read/write separation in video request manager
WO2005088982A1 (en) * 2004-03-03 2005-09-22 Koninklijke Philips Electronics N.V. Video processing circuit and method of video processing
TWI240574B (en) * 2004-03-24 2005-09-21 Sunplus Technology Co Ltd Liquid crystal display system with storage function
KR100624306B1 (ko) * 2004-05-28 2006-09-18 삼성에스디아이 주식회사 주사 구동장치와 이를 가지는 평판 표시장치 및 그의구동방법
CN100534193C (zh) * 2004-08-04 2009-08-26 松下电器产业株式会社 图像解码装置
DE102004038110B3 (de) * 2004-08-05 2005-12-29 Siemens Ag Verfahren zum Codieren und Decodieren, sowie Codier- und Decodiervorrichtung zur Videocodierung
US7304646B2 (en) * 2004-08-19 2007-12-04 Sony Computer Entertainment Inc. Image data structure for direct memory access
US20060120461A1 (en) * 2004-12-06 2006-06-08 Roy Knight Two processor architecture supporting decoupling of outer loop and inner loop in video decoder
US8773328B2 (en) * 2005-02-12 2014-07-08 Broadcom Corporation Intelligent DMA in a mobile multimedia processor supporting multiple display formats
US20070092149A1 (en) * 2005-10-24 2007-04-26 Sung Chih-Ta S Method and apparatus of high quality video compression
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US20080019517A1 (en) * 2006-04-06 2008-01-24 Peter Munguia Control work key store for multiple data streams
US8159550B2 (en) * 2006-06-22 2012-04-17 Apple Inc. Presenting images as mosaics
US8660380B2 (en) * 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
JP4769665B2 (ja) * 2006-08-29 2011-09-07 パナソニック株式会社 音楽再生装置および音楽再生端末
DE102007005866B4 (de) * 2007-02-06 2021-11-04 Intel Deutschland Gmbh Anordnung, Verfahren und Computerprogramm-Produkt zum Anzeigen einer Folge von digitalen Bildern
US20080225950A1 (en) * 2007-03-13 2008-09-18 Sony Corporation Scalable architecture for video codecs
US8756482B2 (en) * 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US20080291209A1 (en) * 2007-05-25 2008-11-27 Nvidia Corporation Encoding Multi-media Signals
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) * 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
WO2009016791A1 (ja) * 2007-07-30 2009-02-05 Panasonic Corporation 半導体集積回路及びそれを備えた映像音声処理装置
US7739481B1 (en) * 2007-09-06 2010-06-15 Altera Corporation Parallelism with variable partitioning and threading
US8364751B2 (en) * 2008-06-25 2013-01-29 Microsoft Corporation Automated client/server operation partitioning
JP2010015233A (ja) * 2008-07-01 2010-01-21 Panasonic Corp 集積回路及び電子機器
US8548061B2 (en) * 2008-08-05 2013-10-01 Panasonic Corporation Image decoding apparatus and image decoding method
US20100063825A1 (en) * 2008-09-05 2010-03-11 Apple Inc. Systems and Methods for Memory Management and Crossfading in an Electronic Device
US8666181B2 (en) * 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US8625837B2 (en) * 2009-05-29 2014-01-07 Microsoft Corporation Protocol and format for communicating an image from a camera to a computing environment
US8811473B2 (en) * 2009-07-07 2014-08-19 Panasonic Corporation Moving picture decoding device, moving picture decoding method, moving picture decoding system, integrated circuit, and program
CN103425954B (zh) * 2012-05-15 2016-05-25 仪鼎半导体股份有限公司 扫描演算方法
US9002122B2 (en) * 2012-07-19 2015-04-07 Omnivision Technologies, Inc. System and method for improving decoder performance using quantization control
US9798698B2 (en) 2012-08-13 2017-10-24 Nvidia Corporation System and method for multi-color dilu preconditioner
WO2014203031A1 (en) * 2013-06-18 2014-12-24 Freescale Semiconductor, Inc. Device and method for executing a program, and method for storing a program
US20160044339A1 (en) * 2014-08-07 2016-02-11 Qualcomm Incorporated System and method for reordering of prefixes and suffixes in variable length coding to increase throughput
KR102273023B1 (ko) * 2014-10-16 2021-07-05 삼성전자주식회사 화질 개선 알고리즘 처리 방법 및 장치
US10380028B2 (en) 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
CN111384962B (zh) * 2018-12-28 2022-08-09 上海寒武纪信息科技有限公司 数据压缩解压装置和数据压缩方法
CN111384963B (zh) * 2018-12-28 2022-07-12 上海寒武纪信息科技有限公司 数据压缩解压装置和数据解压方法
CN116166830B (zh) * 2023-04-21 2023-08-11 北京象帝先计算技术有限公司 数据处理系统、电子组件、电子设备及数据处理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649029A (en) 1991-03-15 1997-07-15 Galbi; David E. MPEG audio/video decoder
CA2062200A1 (en) 1991-03-15 1992-09-16 Stephen C. Purcell Decompression processor for video applications
CA2096584A1 (en) 1992-05-28 1993-11-29 Frank H. Liao Variable length code decoder for video decompression operations
US5598514A (en) 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
US5442747A (en) * 1993-09-27 1995-08-15 Auravision Corporation Flexible multiport multiformat burst buffer
JP4297518B2 (ja) * 1995-03-06 2009-07-15 沖電気工業株式会社 音声・ビデオ復号装置
US5852446A (en) 1995-06-30 1998-12-22 Matsushita Electric Industrial Co., Ltd. Rendering apparatus and rendering method, and mapping apparatus and mapping method
JP3810830B2 (ja) 1995-07-20 2006-08-16 株式会社日立製作所 符号化映像信号の復号化処理方法及びそれを用いた復号化装置
US5946052A (en) * 1996-08-01 1999-08-31 Thomson Consumer Electronics, Inc. System for acquiring and processing video data and program guides transmitted in different coding formats

Also Published As

Publication number Publication date
EP0871334A3 (en) 2000-11-02
US20020041626A1 (en) 2002-04-11
CN1156171C (zh) 2004-06-30
CN1204216A (zh) 1999-01-06
EP0871334A2 (en) 1998-10-14
US6310921B1 (en) 2001-10-30
KR19980081156A (ko) 1998-11-25
US7079583B2 (en) 2006-07-18

Similar Documents

Publication Publication Date Title
KR100502586B1 (ko) 처리효율을높인영상음성처리장치
USRE48845E1 (en) Video decoding system supporting multiple standards
KR100562116B1 (ko) 처리 효율을 높인 영상음성 처리장치
US5812791A (en) Multiple sequence MPEG decoder
US7403564B2 (en) System and method for multiple channel video transcoding
US6542541B1 (en) Method and apparatus for decoding MPEG video signals using multiple data transfer units
US5909224A (en) Apparatus and method for managing a frame buffer for MPEG video decoding in a PC environment
US5774206A (en) Process for controlling an MPEG decoder
US6574273B1 (en) Method and apparatus for decoding MPEG video signals with continuous data transfer
US7054964B2 (en) Method and system for bit-based data access
US7885336B2 (en) Programmable shader-based motion compensation apparatus and method
JP3589565B2 (ja) 映像音声処理装置
US6850568B1 (en) Method and apparatus for decoding mpeg video signals
JP3123496B2 (ja) 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
EP1351512A2 (en) Video decoding system supporting multiple standards
JP2002245448A (ja) 演算装置
JP3410669B2 (ja) 映像音声処理装置
JP3380236B2 (ja) 映像音声処理装置
JPH1155668A (ja) 画像符号化装置
Lee et al. MPEG-2 decoder implementation on MAP1000A media processor using the C language
Barbosa et al. Real-time MPEG encoding in shared-memory multiprocessors
JP2002051337A (ja) 映像音声処理装置
JPH066785A (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: 20130618

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160617

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170619

Year of fee payment: 13

EXPY Expiration of term