KR100262453B1 - Method and apparatus for processing video data - Google Patents
Method and apparatus for processing video data Download PDFInfo
- Publication number
- KR100262453B1 KR100262453B1 KR1019970034995A KR19970034995A KR100262453B1 KR 100262453 B1 KR100262453 B1 KR 100262453B1 KR 1019970034995 A KR1019970034995 A KR 1019970034995A KR 19970034995 A KR19970034995 A KR 19970034995A KR 100262453 B1 KR100262453 B1 KR 100262453B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- bit
- address
- register
- arm7
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computer Hardware Design (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Complex Calculations (AREA)
Abstract
Description
본 발명은 컴퓨터에 의한 데이터 처리에 관한 것으로서, 특히 컴퓨터에 의한 비디오 데이터 처리에 관한 것이다.The present invention relates to data processing by a computer, and more particularly, to video data processing by a computer.
컴퓨터는 시스템 데이터를 압축하거나 복원하기 위하여 사용되어 왔다. 시스템 데이타에는 정지 및/또는 동화상의 이미지를 포함하는 비디오 데이터가 포함된다. 또한, 시스템 데이터에는 오디오 데이터, 예를 들어 동화상의 사운드 트랙이 포함될 수 있다. 비디오 데이터를 고속 처리할 수 있는 방법 및 회로를 제공하는 것이 바람직하다.Computers have been used to compress or restore system data. System data includes video data including images of still and / or moving images. In addition, the system data may include audio data, for example, a sound track of a moving picture. It is desirable to provide a method and circuit that can process video data at high speed.
따라서 본 발명의 목적은 비디오 데이터를 고속 처리할 수 있는 방법 및 회로를 제공하는 데 있다. 몇가지 실시예에 있어서, 본 발명에 의한 컴퓨터 시스템은 동시에 동작할 수 있는 3개의 처리기, 즉 스칼라 처리기, 벡터 처리기 및 비트 스트림 처리기를 포함한다. 비디오 데이터를 엔코딩 또는 디코딩함에 있어서, 벡터 처리기는 단일 명령 다중 데이터(Single Iinstruction Multiple Data:SIMD) 처리기에 의해 효율적으로 수행되는 동작을 수행한다. 이와 같은 동작으로는, 1) 이산여현변환(Discrete Cosine Transform:DCT)와 같은 선형 데이터 변환, 2) 움직임 보상이 있다. 비트스트림 처리기는 워드 또는 반워드(half-words) 보다 특정 비트상에서의 동작을 포함하는 동작들을 수행한다. 이와 같은 동작으로는 예를 들어 MPEG-1, MPEG-2, H.261 및 H.263에 사용되는 허프만(huffman) 및 RLC 엔코딩과 디코딩이 있다. 스칼라 처리기는 하이 레벨 비디오 처리(예를 들어, 픽쳐 레벨 처리)를 수행하고, 벡터 및 비트스트림 처리기의 동작을 동기화시키고, 외부 장치와의 인터페이스를 제어한다.Accordingly, an object of the present invention is to provide a method and a circuit capable of processing video data at high speed. In some embodiments, the computer system according to the present invention includes three processors capable of operating simultaneously, namely a scalar processor, a vector processor and a bit stream processor. In encoding or decoding video data, the vector processor performs an operation that is efficiently performed by a single instruction multiple data (SIMD) processor. Such operations include 1) linear data transformations such as Discrete Cosine Transform (DCT), and 2) motion compensation. The bitstream processor performs operations including operations on specific bits rather than words or half-words. Such operations include the Huffman and RLC encoding and decoding used for MPEG-1, MPEG-2, H.261 and H.263, for example. The scalar processor performs high level video processing (eg, picture level processing), synchronizes the operations of the vector and bitstream processors, and controls the interface with external devices.
몇가지 실시예에 있어서, 컴퓨터 시스템은 여러개의 데이터 스트림을 동시에 처리할 수 있다. 그 결과, 컴퓨터 시스템의 사용자는 2개 이상의 모임과 영상 회의를 할 수도 있다. 비트스트림 처리기에서는 여러 가지 비트스트림이 실시간적으로 동시에 엔코딩 또는 디코딩되도록 문맥들(contexts)을 절환할 수 있기 때문에 다중 데이터 스트림을 동시에 처리할 수 있다.In some embodiments, the computer system may process multiple data streams simultaneously. As a result, a user of a computer system may be able to video conference with two or more meetings. The bitstream processor can process multiple data streams simultaneously because the contexts can be switched so that different bitstreams can be encoded or decoded simultaneously in real time.
몇가지 실시예에 있어서, 스칼라 및 벡터 처리기는 각각 처리기가 단일 산술 명령 또는 불(boolean) 명령을 수행하도록 프로그램될 수 있다는 점에서 볼 때 프로그램가능하다. 비트스트림 처리기는 단일 산술 명령 또는 불(boolean) 명령을 수행하도록 프로그램될 수 없다는 점에서 볼 때 프로그램가능하지 않다. 오히려, 비트스트림 처리기는 한 세트의 비디오 데이터에 대하여 전체적인 비디오 데이터 처리동작을 수행하도록 프로그램될 수 있다. 비트스트림 처리기가 단일 산술 명령 또는 불 명령을 수행하기 위해 프로그램되지 않도록 함으로써, 비트스트림 처리기가 고속으로 동작할 수 있다. 스칼라 및 벡터 처리기가 프로그램 가능하도록 함으로써, 비디오 데이터 엔코딩 및 디코딩 표준에서 변형된 시스템을 채택하는 것이 용이하다.In some embodiments, scalar and vector processors are each programmable in the sense that the processor can be programmed to perform a single arithmetic or boolean instruction. Bitstream processors are not programmable in the sense that they cannot be programmed to perform a single arithmetic or boolean instruction. Rather, the bitstream processor may be programmed to perform an overall video data processing operation on a set of video data. By not allowing the bitstream processor to be programmed to perform a single arithmetic or Boolean instruction, the bitstream processor can operate at high speed. By making the scalar and vector processor programmable, it is easy to adopt a system modified from the video data encoding and decoding standard.
제1도는 본 발명에 따른 미디어 카드의 블록도.1 is a block diagram of a media card according to the present invention.
제2도는 본 발명에 따른 멀티미디어 처리기의 블록도.2 is a block diagram of a multimedia processor according to the present invention.
제3도는 도 2에 도시된 처리기의 일부인 비트스트림 처리기의 블록도.3 is a block diagram of a bitstream processor that is part of the processor shown in FIG.
제4도 내지 제6도는 본 발명에 따른 컴퓨터 시스템의 블록도.4-6 are block diagrams of computer systems in accordance with the present invention.
제7도는 제2도에 도식된 처리기의 펌웨어 구조를 나타내는 도면.7 is a diagram showing the firmware structure of the processor illustrated in FIG.
제8도 및 제9도는 제1도의 시스템을 위한 어드레스 맵을 보여주는 도면.8 and 9 show an address map for the system of FIG.
제10도는 제2도에 도시된 처리기의 DSP 코아를 나타내는 블록도.FIG. 10 is a block diagram illustrating a DSP core of the processor shown in FIG.
제11도는 제2도에 도시된 처리기의 일부인 벡터 처리기에 적용된 파이프라인을 나타내는 도면.FIG. 11 shows a pipeline applied to a vector processor that is part of the processor shown in FIG.
제12도는 제11도의 벡터 처리기의 기능적인 블록도.12 is a functional block diagram of the vector processor of FIG.
제13도는 제11도의 벡터 처리기에 있어서 실행 데이터 경로를 나타내는 도면.13 is a diagram showing an execution data path in the vector processor of FIG.
제14도는 제11도의 벡터 처리기에 있어서 로드 및 저장 데이터 경로를 나타내는 도면.14 shows load and store data paths in the vector processor of FIG.
제15도는 제2도의 처리기의 캐쉬 시스템의 블록도.15 is a block diagram of the cache system of the processor of FIG.
제16도는 제15도의 캐쉬 시스템에 있어서의 명령 데이터 캐쉬를 나타내는 도면.FIG. 16 shows instruction data caches in the cache system of FIG.
제17도는 제2도의 처리기에 있어서 캐쉬 제어 유니트의 데이터 경로 파이프 라인을 나타내는 도면.FIG. 17 illustrates the data path pipeline of the cache control unit in the processor of FIG. 2. FIG.
제18도는 제2도에 도시된 시스템에 있어서 캐쉬 제어 유니트의 어드레스 처리 파이프라인을 위한 데이터 경로를 나타내는 도면.18 shows a data path for an address processing pipeline of a cache control unit in the system shown in FIG.
제19도 내지 제22도는 제2도의 처리기에 있어서 스테이트 머쉰을 나타내는 도면.19 to 22 show state machines in the processor of FIG.
제23도는 제15도의 캐쉬 시스템에서 사용된 어드레스 포맷을 나타내는 도면.FIG. 23 shows the address format used in the cache system of FIG.
제24도는 제2도의 처리기에 있어서 버스를 나타내는 도면.FIG. 24 shows a bus in the processor of FIG. 2. FIG.
제25도는 제2도의 처리기에 있어서 중재 제어 유니트를 나타내는 도면.25 illustrates an arbitration control unit in the processor of FIG.
제26도 내지 제29도는 제2도의 처리기에 대한 타이밍도.26 through 29 are timing diagrams for the processor of FIG.
제30도 내지 제32도는 제2도의 처리기에 있어서 메모리 리퀘스트 신호를 나타내는 도면.30 to 32 show memory request signals in the processor of FIG.
제33도는 제2도의 처리기에 있어서 버스 중재 제어 유니트를 나타내는 도면.FIG. 33 shows a bus arbitration control unit in the processor of FIG. 2. FIG.
제34도 내지 제36도는 제2도의 처리기에 대한 타이밍도.34-36 are timing diagrams for the processor of FIG.
제37도 및 제38도는 제2도의 처리기에 있어서 버스 인터페이스 회로를 나타내는 도면.37 and 38 show bus interface circuits in the processor of FIG.
제39도 및 제40도는 제1도의 시스템에 대한 가상 프레임 버퍼(VFB)를 나타내는 도면.39 and 40 illustrate virtual frame buffers (VFBs) for the system of FIG.
제41도은 제1도의 시스템에 대한 버스 인터페이스 회로를 나타내는 도면.FIG. 41 shows a bus interface circuit for the system of FIG.
제42도 및 제43도는 제2도의 시스템에 대한 메모리 콘트로러를 나타내는 도면.42 and 43 illustrate memory controllers for the system of FIG.
제44도는 제2도의 시스템에 대한 어드레스 콘트롤러를 나타내는 도면.FIG. 44 illustrates an address controller for the system of FIG.
제45도 및 제46도 제1도의 시스템에 사용되는 포맷들을 나타내는 도면.45 and 46 illustrate formats used in the system of FIG.
제47도는 제1도의 시스템에 있어서 스테이트 머쉰을 나타내는 도면.FIG. 47 shows a state machine in the system of FIG.
제48도는 제1도의 시스템에 대한 데이터 콘트롤러의 블록도.48 is a block diagram of a data controller for the system of FIG.
제49도 내지 제51도는 제1도의 시스템에 대한 타이밍도.49-51 are timing diagrams for the system of FIG.
제52도 및 제53도는 제2도의 처리기에 있어서 장치 인터페이스 회로를 나타내는 도면.52 and 53 illustrate device interface circuits in the processor of FIG.
제54도 내지 제56도는 제1도의 시스템의 각 부에 대한 블록도.54-56 are block diagrams for respective parts of the system of FIG.
제57도 내지 제59도는 제1도의 시스템에 있어서 레지스터들을 나타내는 도면.57-59 illustrate registers in the system of FIG.
제60도는 제1도의 시스템에 있어서 프레임 버퍼 및 비디오 윈도우를 나타내는 도면.60 shows a frame buffer and a video window in the system of FIG.
제61도는 제1도의 시스템에 대한 타이밍도.61 is a timing diagram for the system of FIG.
제62도는 제1도의 시스템에 있어서 레지스터를 나타내는 도면.FIG. 62 shows a register in the system of FIG.
제63도는 제1도의 시스템에 대한 타이밍도.63 is a timing diagram for the system of FIG.
제64도 내지 제66도는 제1도의 시스템에서 사용되는 버퍼들을 나타내는 도면.64 through 66 illustrate buffers used in the system of FIG.
도 1은 멀티미디어 처리기(110)를 포함하는 미디어 카드(100)를 나타낸 것이다. 실시예에 있어서, 멀티미디어 처리기(110)는 그 사양이 캘리포니아 산호세에 있는 삼성 반도체 주식회사에서 만들어지는 타입 MSP-1EX(상표) 처리기이다. 처리기 MSP-1EX는 아래에 있는 블록 A에 기술되어 있다.1 illustrates a
처리기(110)는 로컬 버스(105)를 통해 호스트 컴퓨터 시스템(도시안됨)과 통신한다. 몇가지 실시예에 있어서, 버스(105)는 32비트, 33MHz PCI 버스이다.
처리기(110)로부터 출력되는 디지탈 비디오 데이터는 D/A(디지탈/아날로그) 변환기(112)에 결합된다. 비디오 부분 뿐만 아니라, 디지탈 비이오 데이터는 오디오 부분, 예를 들어 영화의 사운드 트랙을 포함할 수 있다. 변환기(112)의 출력은 아날로그 데이터를 처리하는 TV 세트(도시안됨) 또는 다른 시스템에 결합될 수 있다.Digital video data output from the
몇가지 실시예에 있어서, 처리기(110)는 A/D(아날로그/디지탈) 변환기(도 4 내지 6 참조)로 ㅂ터 출력되는 디지탈 비디오 데이터를 수신하기 위한 입력 포트를 포함한다.In some embodiments,
처리기(110)는 코덱(114)에 연결된다. 코덱(114)은 테이프 레코더(도시안됨) 또는 다른 장치로 부터 아날로그 오디오 데이터를 수신한다. 코덱(114)은 전화선(도시안됨)으로 부터 아날로그 전화 데이터를 수신한다. 코덱(114)은 아날로그 데이터를 디지탈화한 후, 이를 처리기(10)로 전송한다. 코덱(114)은 처리기(110)로 부터 디지탈 데이터를 수신하여, 이들 데이터를 아날로그 형태로 변환하고, 필요에 따라 이 아날로그 데이터를 전송한다.
처리기(110)는 버스(122)에 의해 메모리(120)에 연결된다. 도 1에 있어서, 메모리(120)는 SDRAM(synchronous DRAM)이고, 버스(122)는 64비트, 89MHz 버스이다. 다른 실시예에서는 다른 메모리, 버스 폭, 및 버스 속도가 사용된다. 비동기 메모리 및 버스들이 몇가지 실시예에 사용된다.
카드(100)의 몇가지 실시예는 르 누옌을 출원인으로 하여 본출원과 동일자로 출원된 Multiprocessor Operation in a Multimedia Signal Processor라는 발명의 명칭을 갖는 미합중국 특허출원 명세서(변리사 참조번호:M-4364 US)를 기재되어 있으며, 상기 미합중국 특허출원 명세서의 전체적인 내용은 본 발명에서 참조로 인용된다.Some embodiments of the
도 2는 처리기(110)의 일실시예에 따른 블록도이다. 처리기(110)은 스칼라 처리기(210), 벡터 처리기(VP;220) 및 비트스트림 처리기(BP; 245)를 포함한다. 몇가지 실시예에 있어서, 처리기(210)는 40MHz로 동작하며, 공지된 표준 ARM7 명령어 세트를 지원하는 32비트 RISC 처리기이다. 벡터 처리기(220)는 80MHz로 동작하며, 288 비트 벡터 레지스터들을 구비한 단일 명령 다중 데이터(SIMD) 처리기이다. VP(220)의 일실시예는 송 등을 출원인으로 하여 본출원과 동일자로 출원된 Efficient Context Saving and Restoring in a Multitasking Computing System Environment라는 발명의 명칭을 갖는 미합중국 특허출원 명세서(변리사 참조 번호:M-4365 US)에 기재되어 있으며, 상기 미합중국 특허출원 명세서의 전체적인 내용은 본 발명에서 참조로 인용된다. 처리기(210,220)는 단일 산술 명령 또는 불 명령 또는 이들 명령의 시퀀스를 수행하도록 프로그램될 수 있다.2 is a block diagram of an embodiment of a
몇가지 실시예에 있어서, 비디오 데이터를 고속으로 행하기 위해서 비트스트림 처리기(245)는 단일 산출 명령 또는 불 명령을 수행하기 위해 프록램되지 않도록 설계된다. 특히, BP(245)는, ADD, OR, ADD AND ACCUMULATE등과 같은 단일 명령을 수행하도록 프로그램될 수 없다. 오히려, BP(245)는 부록 A의 10장에 기술되어 있는 비디오 데이터 처리 동작을 수행하도록 프로그램된다. 이와 동시에, 스칼라 처리기(210)와 벡터 처리기(20)는 단일 산술 또는 불 명령을 수행하도록 프로그램될 수 있다. 그러므로, 처리기(110)는 비디오 표준에서 변형을 도모할 수 있다.In some embodiments, to perform video data at high speed, the
도 2에 도시된 바와 같이, 스칼라 처리기(210)과 벡터 처리기(220)는 캐쉬 서브시스템(230)에 연결된다. 캐쉬 서브시스템(230)은 버스(IOBUS;240)와 버스(FBUS;250)에 연결된다. 몇가지 실시예에 있어서, IOBUS(240)는 32비트, 40MHz 버스이고, FBUS(250)는 64 비트, 80MHz 버스이다.As shown in FIG. 2,
IOBUS(240)는 비트스트림 처리기(245), 인터럽트 콘트롤러(248), 전 2중 통신(full-duplex) UART 유니트(243)과 4개의 타이머(242)에 연결된다. FBUS(250)는 메모리 버스(122; 도 1 참조)에 연결된 메모리 콘트롤러(258)에 연결된다. FBUS(250)는 PCI 버스(105)에 연결된 PCI 버스 인터페이스 회로(255)에 연결된다. 또한, FBUS(250)는 비디오 D/A(112;도 1 참조), 코덱(114)과 경우에 따라 비디오 A/D 변환기(도 4 내지 도 6에 도시된 것과 같음)를 인터페이스하는 회로를 포함하는 장치 인터페이스 회로(252;Customer ASIC으로도 불리워짐)에 연결된다. 또한, 처리기(110)는 메모리 데이터 이동기(290)를 포함한다.
처리기(110)는 여러개의 데이터 스트림을 동시에 처리할 수 있다. 예를 들어, 처리기(110)의 사용자가 2개 이상의 모임과 영상 회의를 하는 경우, 처리기(110)는 사용자가 여러 개의 모임에 대해 보고 들을 수 있도록 비디오 및 오디오 처리를 수행한다. 다중 비디오 데이터 스트림을 처리하기 위해서 처리기(110)는 문맥 절환을 지원한다. 이는 BP(245)가 다중 데이터 스트림들 사이를 절환하는 것을 의미한다. 영상 회의에 있어서, 각 데이터 스트림은 멀리 떨어져 있는 별개의 모임으로 부터 올 수 있다. 대안으로, 사용자가 영상 회의에 첨가하여 동시에 영상 회의 또는 영화 상영을 시청할 수 있도록 하기 위하여 부가적인 데이터 스트림이 영화 채널로 부터 올 수 있다. 문백 절환은 부록 A의 10.12절에 기술되어 있다. 문맥이 절환되면, 스칼라 처리기(210)는 현재 문맥들을 저장하고, 다른 문맥을 처리하기 위하여 BP(245)를 초기화시킨다.
BP(245)는 다음과 같은 비디오 데이터 포맷 즉,The
1. ISO/IEC 표준 11172(1992) 에 기술되어 있는 MPEG-1;1. MPEG-1 as described in ISO / IEC Standard 11172 (1992);
2. 문서 ISO/IEC JTC 1/SC 29 N 0981 Rev(1995. 3. 31)에 기술되어 있는 MPEG-2;2. MPEG-2 as described in document ISO /
3. IUT-T 권고 H.261(1993. 3)에 기술되어 있는 H.261; 및3. H.261 described in IUT-T Recommendation H.261 (1993. 3); And
4.드래프트 IT-T 권고 H.263(1996. 5. 2)에 기술되어 있는 H.263을 처리할 수 있다.4. Can deal with H.263 as described in draft IT-T Recommendation H.263 (May 2, 1996).
비디오 데이터는 스칼라 처리기(210), 벡터 처리기(220) 및 비트스트림 처리기(245)로 나누어져 처리됨으로써 고속 처리가 실현되도록 한다. 좀더 상세하게는, 벡터 처리기(220)는 선형 변환(DCT 또는 역DCT)과 움직임 보상을 수행한다.The video data is divided into a
이들 동작은 벡터 처리기에 적합하다. 왜냐하면, 이들 동작은 때때로 데이터의 여러 부분에 대하여 수행되는 동일한 명령을 필요로 하기 때문이다. 비트스트림 처리기(245)는 허프만 디코딩 및 엔코딩과 지그재그 비트스트림 처리를 수행한다.These operations are suitable for vector processors. This is because these operations sometimes require the same instructions to be performed on different parts of the data. The
스칼라 처리기(210)는 비디오 및 오디오 역다중화와 동기화 및 I/O 인터페이싱 작업을 수행한다.The
엔코딩 및 디코딩 동작의 예는 부록 A의 10.6.1절 및 10.6.2절에 나타나 있다. 엔코딩 동작에 있어서, 압축되지 않은 디지탈 데이터가 버스(105)를 통해 프레임 메모리(120) 또는 호스트 시스템(도시안됨)으로 부터 도착한다. 몇가지 실시예에 있어서, 장치 인터페이스 회로(252)는 비디오 A/D 변환기를 포함하고, 압축되지 않은 데이터가 변환기로 부터 도착한다. 벡터 처리기(220)는 양자화, DCT 및 움직임 보상을 수행한다. 비트스트림 처리기(245)는 VP(220)의 출력을 수신하고, GOB(Group of Blocks)들 및 슬라이스들을 생성한다. 특히, BP(245)는 허프만 및 RLC 엔코딩과 지그재그 비트스트림 처리를 수행한다. 스칼라 처리기(210)는 BP(245)의 출력을 수신하고, 픽쳐 계층 부호화(picture layer coding), GOP(group of pictures) 부호화 및 시퀀스 계층 부호화를 수행한다. 이후, 스칼라 처리기(210)는 오디오 및 비디오 데이터를 다중화하고, 부호화된 데이터를 버스(105 또는 122)를 통해 저장 장치 또는 네트워크로 전송한다. 네트워크로의 전송은 몇가지 실시예에 있는 네트워크에 연결된 장치 인터페이스 회로(252)로의 전송을 포함한다.Examples of encoding and decoding operations are given in Sections 10.6.1 and 10.6.2 of Appendix A. In an encoding operation, uncompressed digital data arrives from the
디코딩에 있어서, 처리는 역으로 수행한다. 스칼라 처리기(210)는 시스템 데이터를 비디오 및 오디오 성분으로 역다중화하고, 비디오 데이터의 시퀀스 계층, GOP 및 픽쳐 계층 디코딩을 수행한다. 그 결과 생성되는 GOB들 또는 슬라이스들은 비트스트림 처리기(245)로 공급된다. 처리기(245)는 지그재그 처리와 허프만 및 RLC 디코딩을 수행한다. VP(220)는 BP(245)의 출력을 수신하여 역양자화, IDCT 및 움직임 보상을 수행하다. VP(220)는 필요로 하는 경우(예를 들어, 픽쳐 이미지의 에지를 평탄화하고자 하는 경우) 임의의 전처리를 수행하고, 복원된 디지탈 픽쳐들을 장치 인터페이스 회로(252) 또는 저장 장치로 공급한다. 스칼라 처리기(210), 벡터 처리기(220)와 비트스트림 처리기(245)는 여러 블록의 데이터에 대하여 병렬로 동작할 수 있다.In decoding, the process is performed in reverse. The
스칼라 처리기(210)가 픽쳐 계층 및 상위 계층들을 처리함으로써, 처리기 내부의 통신을 감소시킨다. 이는 픽쳐 계층 및 상위 게층들이 제어 및 I/O 기능을 위해 스칼라 처리기(210)에서는 사용되지만, 벡터 처리기(220) 및 비트스트림 처리기(245)에서는 사용되지 않는 정보를 포함하고 있기 때문이다. 이와 같은 정보의 예로는 프레임들을 장치 인터페이스 회로(252)로 전송하기 위해 스칼라 처리기(210)에서 사용되는 프레임 레이트를 들 수 있다.The
도 3은 비트스트림 처리기(245)의 일실시예에 따른 블록도이다. 도 3에 도시된 신호들은 브록 A의 10.5절에 기술되어 있다. 이들 신호들은 비트스트림 처리기(245)와 IOBUS(240; 도 2 참조)간의 인터페이스를 제공한다. BP(245)에 있어서, 이들 신호들은 SRAM(320)을 포함하는 IOBUS 인터페이스 유니트(310)에 의해 처리된다. 또한, BP(245)는 VLC FIFO 유니트(330), VLC LUT ROM(340), 제어 스테이트 머쉰(350)과, 레지스터 파일과 SRAM을 포함하는 BP 코아 유니트(360)을 포함한다. 도 3의 블록은 부록 A의 10.4절에 기술되어 있다.3 is a block diagram of an embodiment of the
ROM(340)은 4가지 표준 즉, MPEG-1, MPEG-2, H.261 및 H.263에 대하여 허프만 엔코딩 및 디코딩시 사용되는 룩업테이블을 포함한다. 테이블에 저장되는 정보의 양이 방대함에도 불구하고, ROM(340)은 768*12 비트의 작은 사이즈를 가진다.
작은 사이즈는 테이블을 공유하고, 부록, A의 4절에 기술되어 있는 다른 기술들에 의해 실현된다.The small size is shared by the table and is realized by the other techniques described in
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니고 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 게조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다. 특히, 본 발명은 임의의 회로, 클럭 게이트 또는 이들 실시예의 타이밍에 의해 한정되는 것은 아니다.While the present invention has been illustrated and described with reference to certain preferred embodiments, the invention is not limited thereto, and the invention is not limited to the spirit or field of the invention as set forth in the following claims. Those skilled in the art will readily appreciate that various modifications and variations can be made. In particular, the invention is not limited by any circuit, clock gate, or timing of these embodiments.
상술한 바와 같이 본 발명에 따르면, 비트스트림 처리기에서는 여러 가지 비트스트림이 실시간적으로 동시에 엔코딩 또는 디코딩되도록 문맥을 절환할 수 있기 때문에 다중 데이터 스트림을 동시에 처리할 수 있다. 또한, 비트스트림 처리기가 단일 산술 명령 또는 불 명령을 수행하기 위해 프로그램되지 않도록 함으로써 비트스트림 처리가 고속으로 동작할 수 있다.As described above, according to the present invention, the bitstream processor can process multiple data streams simultaneously because the context can be switched so that various bitstreams can be encoded or decoded simultaneously in real time. In addition, bitstream processing can operate at high speed by not allowing the bitstream processor to be programmed to perform a single arithmetic or bool instruction.
Claims (5)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69930396A | 1996-08-19 | 1996-08-19 | |
US08/699,382 US6192073B1 (en) | 1996-08-19 | 1996-08-19 | Methods and apparatus for processing video data |
US8/699,382 | 1996-08-19 | ||
US8/699,303 | 1996-08-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980018215A KR19980018215A (en) | 1998-06-05 |
KR100262453B1 true KR100262453B1 (en) | 2000-08-01 |
Family
ID=27106388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970034995A KR100262453B1 (en) | 1996-08-19 | 1997-07-25 | Method and apparatus for processing video data |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP4290775B2 (en) |
KR (1) | KR100262453B1 (en) |
CN (2) | CN1145362C (en) |
DE (1) | DE19735880A1 (en) |
TW (1) | TW436710B (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100440715B1 (en) * | 1999-05-07 | 2004-07-21 | 인텔 코오퍼레이션 | A method and apparatus for video decoding |
KR100899258B1 (en) * | 2006-04-12 | 2009-05-27 | 야마하 가부시키가이샤 | Digital signal processing device |
US8416251B2 (en) | 2004-11-15 | 2013-04-09 | Nvidia Corporation | Stream processing in a video processor |
KR101270925B1 (en) | 2005-05-20 | 2013-06-07 | 소니 주식회사 | Signal processor |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
US8624906B2 (en) | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US11238771B2 (en) | 2017-12-20 | 2022-02-01 | Samsung Electronics Co., Ltd | Display driver circuit for synchronizing output timing of images in low power state |
US11257436B2 (en) | 2019-08-26 | 2022-02-22 | Samsung Display Co., Ltd. | Scan driver and display device including the same |
US11797450B2 (en) | 2020-08-31 | 2023-10-24 | Samsung Electronics Co., Ltd. | Electronic device, system-on-chip, and operating method thereof |
US11948579B2 (en) | 2019-12-05 | 2024-04-02 | Samsung Electronics Co., Ltd. | Electronic device performing operation based on user speech in multi device environment and operating method thereof |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100440408B1 (en) * | 1997-07-29 | 2005-09-28 | 삼성전자주식회사 | Video data conversion method and conversion circuit |
KR19990060505A (en) * | 1997-12-31 | 1999-07-26 | 구자홍 | TV system with multiprocessing |
KR20030030403A (en) * | 2001-10-11 | 2003-04-18 | (주)씨앤에스 테크놀로지 | macro block level control circuit of video decoding |
US8284844B2 (en) | 2002-04-01 | 2012-10-09 | Broadcom Corporation | Video decoding system supporting multiple standards |
TWI249356B (en) * | 2002-11-06 | 2006-02-11 | Nokia Corp | Picture buffering for prediction references and display |
US8111753B2 (en) | 2003-02-06 | 2012-02-07 | Samsung Electronics Co., Ltd. | Video encoding method and video encoder for improving performance |
US20040252761A1 (en) * | 2003-06-16 | 2004-12-16 | Dilithium Networks Pty Limited (An Australian Corporation) | Method and apparatus for handling video communication errors |
KR101160640B1 (en) * | 2003-12-30 | 2012-06-28 | 삼성전자주식회사 | Data processing system and data processing method |
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
KR100858244B1 (en) * | 2005-01-14 | 2008-09-12 | 주식회사 휴맥스 | Device and Method for encoding/decoding video data |
KR101084806B1 (en) * | 2004-11-15 | 2011-11-21 | 엔비디아 코포레이션 | Video processing |
KR100688092B1 (en) * | 2005-04-13 | 2007-03-02 | 한국전자통신연구원 | Run_before decoding method, appartus and recording medium based on FSM for H.264/AVC |
KR100720684B1 (en) * | 2005-05-09 | 2007-05-21 | 이화여자대학교 산학협력단 | Method and Apparatus for Huffman Decoding by Using Balanced Binary Search Tree |
US20060256854A1 (en) * | 2005-05-16 | 2006-11-16 | Hong Jiang | Parallel execution of media encoding using multi-threaded single instruction multiple data processing |
KR100765267B1 (en) * | 2005-06-29 | 2007-10-09 | 삼성전자주식회사 | Electronic Apparatus, Control Method Thereof And Electronic Control System Comprising The Same |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
KR100732418B1 (en) * | 2006-02-16 | 2007-06-27 | 삼성전자주식회사 | Multimedia record/play device and play method threrof |
US8155454B2 (en) | 2006-07-20 | 2012-04-10 | Qualcomm Incorporated | Method and apparatus for encoder assisted post-processing |
US8253752B2 (en) | 2006-07-20 | 2012-08-28 | Qualcomm Incorporated | Method and apparatus for encoder assisted pre-processing |
CN101090504B (en) * | 2007-07-20 | 2010-06-23 | 清华大学 | Coding decoding apparatus for video standard application |
CN101093474B (en) * | 2007-08-13 | 2010-04-07 | 北京天碁科技有限公司 | Method for implementing matrix transpose by using vector processor, and processing system |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US8665996B2 (en) | 2008-04-01 | 2014-03-04 | Qualcomm Incorporated | Efficient parallel sub-packet decoding using multiple decoders |
KR101641683B1 (en) * | 2008-05-14 | 2016-07-21 | 삼성전자주식회사 | Method and apparatus for data transferring for time-slicing mode, and method and apparatus for data receiving by time-slicing mode |
JP5332369B2 (en) * | 2008-07-18 | 2013-11-06 | ソニー株式会社 | Image processing apparatus, image processing method, and computer program |
US8194977B2 (en) * | 2008-12-09 | 2012-06-05 | Microsoft Corporation | Remote desktop protocol compression acceleration using single instruction, multiple dispatch instructions |
CN103914426B (en) * | 2013-01-06 | 2016-12-28 | 中兴通讯股份有限公司 | A kind of method and device of multiple threads baseband signal |
CN103957437A (en) * | 2014-04-26 | 2014-07-30 | 吉安英佳电子科技有限公司 | Wireless servo portable high-integration digital multimedia all-in-one machine |
CN105786224A (en) * | 2016-03-29 | 2016-07-20 | 电子科技大学 | Universal laser pointer and computer operation method |
CN106940875B (en) * | 2017-02-10 | 2020-07-24 | 杭州朔天科技有限公司 | Gray level image background processing and table building method |
CN111159076B (en) * | 2019-11-29 | 2021-04-13 | 北京空间机电研究所 | Satellite-borne CAN bus master-slave switching and response control method |
CN115834975B (en) * | 2022-11-17 | 2024-05-17 | 中国联合网络通信集团有限公司 | Video transmission method, device, equipment and medium |
-
1997
- 1997-07-25 KR KR1019970034995A patent/KR100262453B1/en not_active IP Right Cessation
- 1997-08-15 JP JP23539897A patent/JP4290775B2/en not_active Expired - Fee Related
- 1997-08-19 DE DE19735880A patent/DE19735880A1/en not_active Withdrawn
- 1997-08-19 TW TW086111970A patent/TW436710B/en not_active IP Right Cessation
- 1997-08-19 CN CNB971227314A patent/CN1145362C/en not_active Expired - Fee Related
- 1997-08-19 CN CNA2004100050168A patent/CN1523895A/en active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100440715B1 (en) * | 1999-05-07 | 2004-07-21 | 인텔 코오퍼레이션 | A method and apparatus for video decoding |
US8624906B2 (en) | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8493397B1 (en) | 2004-11-15 | 2013-07-23 | Nvidia Corporation | State machine control for a pipelined L2 cache to implement memory transfers for a video processor |
US8424012B1 (en) | 2004-11-15 | 2013-04-16 | Nvidia Corporation | Context switching on a video processor having a scalar execution unit and a vector execution unit |
US8416251B2 (en) | 2004-11-15 | 2013-04-09 | Nvidia Corporation | Stream processing in a video processor |
US8493396B2 (en) | 2004-11-15 | 2013-07-23 | Nvidia Corporation | Multidimensional datapath processing in a video processor |
KR101270925B1 (en) | 2005-05-20 | 2013-06-07 | 소니 주식회사 | Signal processor |
KR100899258B1 (en) * | 2006-04-12 | 2009-05-27 | 야마하 가부시키가이샤 | Digital signal processing device |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US9064333B2 (en) | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
US11238771B2 (en) | 2017-12-20 | 2022-02-01 | Samsung Electronics Co., Ltd | Display driver circuit for synchronizing output timing of images in low power state |
US11257436B2 (en) | 2019-08-26 | 2022-02-22 | Samsung Display Co., Ltd. | Scan driver and display device including the same |
US11626077B2 (en) | 2019-08-26 | 2023-04-11 | Samsung Display Co., Ltd. | Scan driver and display device including the same |
US11948579B2 (en) | 2019-12-05 | 2024-04-02 | Samsung Electronics Co., Ltd. | Electronic device performing operation based on user speech in multi device environment and operating method thereof |
US11797450B2 (en) | 2020-08-31 | 2023-10-24 | Samsung Electronics Co., Ltd. | Electronic device, system-on-chip, and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
TW436710B (en) | 2001-05-28 |
KR19980018215A (en) | 1998-06-05 |
CN1523895A (en) | 2004-08-25 |
DE19735880A1 (en) | 1998-05-14 |
CN1189058A (en) | 1998-07-29 |
JP4290775B2 (en) | 2009-07-08 |
JPH1093961A (en) | 1998-04-10 |
CN1145362C (en) | 2004-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100262453B1 (en) | Method and apparatus for processing video data | |
US8314808B2 (en) | Electronic system and method for selectively allowing access to a shared memory | |
US5812789A (en) | Video and/or audio decompression and/or compression device that shares a memory interface | |
US5448310A (en) | Motion estimation coprocessor | |
US5486876A (en) | Video interface unit for mapping physical image data to logical tiles | |
JPH11508066A (en) | Image compression coprocessor with data flow control and multiple processing units | |
JPH0870452A (en) | Start cord detector | |
KR100304511B1 (en) | Video restoration and decoding system | |
EP0772159B1 (en) | Memory sharing in a MPEG decoder | |
Kim et al. | A real-time MPEG encoder using a programmable processor | |
Lee et al. | Real-time MPEG video codec on a single-chip multiprocessor | |
Lee | Architectures and algorithms for MPEG video coding | |
Kim et al. | PC sound and video compression boards for information infrastructure | |
FR2753031A1 (en) | Digital video coding apparatus, e.g. for teleconferencing |
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: 20120430 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |