[go: up one dir, main page]

KR100270798B1 - Video dccompression - Google Patents

Video dccompression Download PDF

Info

Publication number
KR100270798B1
KR100270798B1 KR1019950023121A KR19950023121A KR100270798B1 KR 100270798 B1 KR100270798 B1 KR 100270798B1 KR 1019950023121 A KR1019950023121 A KR 1019950023121A KR 19950023121 A KR19950023121 A KR 19950023121A KR 100270798 B1 KR100270798 B1 KR 100270798B1
Authority
KR
South Korea
Prior art keywords
time
data
circuit
video
words
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1019950023121A
Other languages
Korean (ko)
Other versions
KR960006647A (en
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 KR960006647A publication Critical patent/KR960006647A/en
Application granted granted Critical
Publication of KR100270798B1 publication Critical patent/KR100270798B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/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
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01FMAGNETS; INDUCTANCES; TRANSFORMERS; SELECTION OF MATERIALS FOR THEIR MAGNETIC PROPERTIES
    • H01F38/00Adaptations of transformers or inductances for specific applications or functions
    • H01F38/42Flyback transformers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 MPEG 비디오해제 방법 및 장치에 관한 것으로서 이는 파이프라인 처리 머쉬인으로서 장치된 투-와이어 인터페이스에 의해서 상호 접속되는 다수의 단을 이용한다. 제어 토큰 및 DATA 토큰은 제어 및 데이타를 토큰 형태로 이동시키기 위해 단일의 투-와이어 인터페이스 상에서 이동한다. 토큰 디코드 회로는, 상기 단에 고정되는 제어 토큰으로서 어떤 토큰을 인식하며 상기 파이프라인을 따라 인식되지 않은 제어 토큰을 전달하도록 어떤 단에 배치된다. 재구성 처리 회로는 선택된 단에 배치되며 확인된 DATA 토큰을 조절하기 위해 그러한 단을 재구성하도록 인식된 제어 토큰에 응답한다. 매우 다양하고 독특한 지원 서브 시스템 회로 및 처리 기술이 공개되어 시스템을 수행하는데 사용되며, 이중에는 메모리 어드레싱, 공통 처리 블록을 이용하는 변환 데이타, 시간 동기, 비동기 스윙 버퍼링, 비디오 정보 저장, 병렬 허프만 디코더 등등이 포함된다.The present invention relates to an MPEG video decommissioning method and apparatus, which utilizes multiple stages interconnected by a two-wire interface equipped as a pipeline processing machine. The control token and the DATA token move on a single two-wire interface to move control and data in token form. A token decode circuit is arranged at any stage to recognize any token as a control token fixed to the stage and to convey an unrecognized control token along the pipeline. The reconstruction processing circuitry is disposed at the selected stage and responds to the recognized control token to reconstruct such stage to adjust the identified DATA token. A wide variety of unique supporting subsystem circuits and processing techniques have been disclosed and used to perform the system, including memory addressing, transform data using common processing blocks, time synchronization, asynchronous swing buffering, video information storage, parallel Huffman decoders, and more. Included.

Description

복수의 MPEG 오디오 및 비디오 신호를 디코딩하기 위한 시스템System for decoding a plurality of MPEG audio and video signals

제1도는 본 발명의 양호한 실시예를 통한 데이타 흐름도.1 is a data flow diagram through a preferred embodiment of the present invention.

제2도는 64 × 32 RAM 안의 8 비트 데이타를 주소 지정하는데 사용되는 13비트 워드의 예시도.2 is an illustration of a 13 bit word used to address 8 bit data in 64 x 32 RAM.

제3도는 본 발명에서 레지스터 파일의 기능적 블록 다이어그램.3 is a functional block diagram of a register file in the present invention.

제4도는 제3도에서 나타낸 레지스터 파일의 데이타 흐름도.4 is a data flow diagram of the register file shown in FIG.

제5도는 본 발명에 따라서 레지스터 파일 주소의 복호화를 나타내는 블록 다이어그램.5 is a block diagram illustrating decryption of a register file address in accordance with the present invention.

제6도는 본 발명에 따라서 마이크로 코드화된 상태의 기계의 블록 다이어그램.6 is a block diagram of a machine in microcoded state in accordance with the present invention.

제7도는 주소를 지정해주고, 주소 필드, 대체 필드 및 대체 헤더를 가지는 데 사용되는 본 발명에 따라 고정된 폭의 워드도.7 is a fixed-width word diagram in accordance with the present invention used to address and to have address fields, alternate fields and alternate headers.

제8도는 본 발명에 따라서 연산 핵심부의 한 예에 대한 블록 다이어그램.8 is a block diagram of an example of a computational core in accordance with the present invention.

제9도는 본 발명에 따라 입력 데이타의 IDCT를 실행하기 위한 방법의 기본 단계를 나타낸 도면.9 shows the basic steps of a method for executing IDCT of input data according to the present invention.

제10도는 본 발명에 따라 IDCT의 결합되고 단순화된 두 단계의 설계를 나타내는 블록 다이어그램.10 is a block diagram showing a combined, simplified two-step design of IDCT in accordance with the present invention.

제11도는 제10도에서 보여준 IDCT의 주요 시스템 요소를 구성하는 집적 회로의 단순화된 블록 다이어그램.FIG. 11 is a simplified block diagram of integrated circuits that make up the major system elements of IDCT shown in FIG.

제12(a)도 및 제12(b)도는 함께 주요 시스템 요소의 하나에 따르는 선행처리 회로의 블록 다이어그램; 설명을 쉽게 하기 위해 이들 도면은 제12도로 결합되어 언급된다.12 (a) and 12 (b) together show a block diagram of a preprocessing circuit according to one of the main system elements; These figures are referred to in conjunction with FIG. 12 for ease of explanation.

제13(a)도 및 제13(b)도는 제안된 구상체의 IDCT 시스템에서 타이밍과 제어 신호사이의 관계를 나타내는 시간 다이어그램.13 (a) and 13 (b) are time diagrams showing the relationship between timing and control signals in the proposed CT's IDCT system.

제14(a)도 및 제14(b)도는 함께 IDCT 시스템에서의 공통 처리 회로의 블록 다이어그램; 설명을 쉽게 하기 위해 이들 도면은 제14도로 결합되어 언급된다.14 (a) and 14 (b) together show a block diagram of a common processing circuit in an IDCT system; These figures are referred to in conjunction with FIG. 14 for ease of explanation.

제15(a)도 및 제15(b)도 및 제15(c)도는 함께 시스템의 또다른 주요 요소에 따르는 이후의 처리 회로의 블록 다이어그램으로, 제15도로 결합되어 언급된다.15 (a) and 15 (b) and 15 (c) together are referred to in conjunction with FIG. 15 as a block diagram of a subsequent processing circuit according to another main element of the system.

제16도는 쌍 데이타 흐름과 전치 RAM 및 개선된 버퍼를 가지는 IDCT를 나타내는 본 발명에 따르는 블록 다이어그램.16 is a block diagram in accordance with the present invention showing IDCT with pair data flow and pre-RAM and improved buffer.

제17도는 제16도에서 보여준 1-D IDCT 시스템의 좀 더 세부적인 것을 보여주는 블록 다이어그램.FIG. 17 is a block diagram showing more details of the 1-D IDCT system shown in FIG.

제18도는 제17도에서 보여준 변환 시스템의 더 세부적인 것을 나타내는 블록 다이어그램.FIG. 18 is a block diagram showing more details of the conversion system shown in FIG. 17. FIG.

제19도는 제18도에서 보여준 입력 버퍼의 더 세부적인 것을 나타내는 블록 다이어그램.FIG. 19 is a block diagram showing more details of the input buffer shown in FIG. 18. FIG.

제20도는 본 발명에 따라 선행 회로 PREC의 단순화된 블록 다이어그램.20 is a simplified block diagram of a preceding circuit PREC in accordance with the present invention.

제21도는 IDCT에서 나타난 공통 처리 회로 CBLK를 나타내는 블록 다이어그램.21 is a block diagram showing a common processing circuit CBLK shown in IDCT.

제22도는 이후의 처리 회로 POSTC의 블록 다이어그램.22 is a block diagram of subsequent processing circuit POSTC.

제23도는 제22도에서 나타난 이후의 처리 회로의 또다른 예시도.FIG. 23 is another illustration of a processing circuit after that shown in FIG. 22;

제24도는 본 발명에 따르는 전체적인 포화 블록을 설명하는 블록 다이어그램.24 is a block diagram illustrating an overall saturated block in accordance with the present invention.

제25도는 본 발명에서 출력 버퍼의 블록 다이어그램.25 is a block diagram of an output buffer in the present invention.

제26도는 본 발명에 따르는 제어 쉬프트 레지스터의 블록 다이어그램.26 is a block diagram of a control shift register in accordance with the present invention.

제27도는 본 발명에서 제어 쉬프트 레지스터 복호기의 블록 다이어그램.27 is a block diagram of a control shift register decoder in the present invention.

제28도는 제어 쉬프트 레지스터와 입력 제어 버퍼에 대한 도면.28 is a diagram for a control shift register and an input control buffer.

제29도는 T2 데이타 흐름에 대한 제어 회로도.29 is a control circuit diagram for a T2 data flow.

제30도는 T1 데이타 흐름에 대한 카운터에서의 데이타도.30 is a data diagram at the counter for the T1 data flow.

제31도는 본 발명에서 T2 데이타 흐름에 대한 카운터에서의 데이타도.Figure 31 is a data diagram at the counter for the T2 data flow in the present invention.

제32도는 IDCT의 초기화 및 관련 회로를 나타내는 타이밍 다이어그램.32 is a timing diagram illustrating initialization and associated circuitry of IDCT.

제33도는 T1 및 T2 데이타의 인터리빙을 나타내는 타이밍 다이어그램.33 is a timing diagram showing interleaving of T1 and T2 data.

제34도는 T2 데이타의 손실과 복구를 설명하는 타이밍 다이어그램.34 is a timing diagram illustrating the loss and recovery of T2 data.

제35도는 IDCT의 유출 과정 및 본 발명에서의 관련 회로를 설명하는 타이밍 다이어그램.35 is a timing diagram illustrating the outflow process of IDCT and related circuitry in the present invention.

제36도는 본 발명에 따르는 시스템의 시작을 도시하는 도면.36 shows the beginning of a system according to the invention.

제37도는 T1 및 T2 데이타를 인터리빙하는 초기 단계에서의 손실 및 복구를 설명하는 도면.FIG. 37 illustrates loss and recovery at an early stage of interleaving T1 and T2 data. FIG.

제38도는 제16도 내지 37도까지에서 보여준 IDCT 시스템의 또다른 제시된 실시예도.FIG. 38 shows another presented embodiment of the IDCT system shown in FIGS. 16-37.

제39도는 본 발명에 따라 MPEG 정보 흐름이 데이타 및 타임 스탬프 정보를 포함한 초기의 흐름으로 디멀티플렉싱 되는 것을 도시하는 도면.FIG. 39 illustrates that the MPEG information flow is demultiplexed into an initial flow including data and time stamp information in accordance with the present invention.

제40도는 본 발명에 따라 초기 흐름의 타임 스탬프 에러 결정 및 시간 동기화 시스템의 제1실시예도.40 illustrates a first embodiment of a time stamp error determination and time synchronization system of an initial flow in accordance with the present invention.

제41도는 본 발명에 따라 초기 흐름의 타임 스탬프 에러 결정 및 시간 동기화 시스템의 제2실시예도.41 is a second embodiment of a time stamp error determination and time synchronization system of an initial flow in accordance with the present invention.

제42도는 본 발명에 따라 초기 흐름의 타임 스탬프 에러 결정 및 시간 동기화 시스템의 제3실시예도.42 is a third embodiment of a time stamp error determination and time synchronization system of an initial flow in accordance with the present invention.

제43도는 본 발명에 따라 비디오 타임 스탬프 에러 결정 및 시간 동기화 시스템의 제1실시예도.Figure 43 illustrates a first embodiment of a video time stamp error determination and time synchronization system in accordance with the present invention.

제44도는 본 발명에 따라 비디오 타임 스탬프 에러 결정 및 시간 동기화 시스템의 제2실시예도.44 is a second embodiment of a video time stamp error determination and time synchronization system in accordance with the present invention.

제45도는 30 Hz에서 동작하는 제44도에서 보여준 비디오 타임 스탬프 에러 결정 및 시간 동기화 시스템의 제2도 실시예도.45 is a second embodiment of the video time stamp error determination and time synchronization system shown in FIG. 44 operating at 30 Hz.

제46도는 본 발명의 시스템을 통한 타임 스탬프 정보의 흐름도.46 is a flow chart of time stamp information through the system of the present invention.

제47도는 마이크로 프로그램 상태의 기계에 따라 처리되는 동기화 시간 정보를 설명하는 블록 다이어그램.Fig. 47 is a block diagram illustrating synchronization time information processed according to a machine in a microprogram state.

제48도는 본 발명의 제1실시예를 나타내는 블록 다이어그램.48 is a block diagram showing a first embodiment of the present invention.

제49도는 본 발명의 첫 번째 제시된 실시예를 나타내는 또다른 블록 다이어그램.49 is another block diagram illustrating a first presented embodiment of the present invention.

제50도는 본 발명의 제2실시예도.50 is a second embodiment of the present invention.

제51도는 본 발명에 따르는 제2실시예에 따라 사용된 주소 지정의 세부적 방법을 설명하는 도면.Fig. 51 illustrates a detailed method of addressing used according to the second embodiment according to the present invention.

제52도는 본 발명에 따라 허프만 VLCs 를 복호화하는 장치를 보여주는 블록 다이어그램.Figure 52 is a block diagram illustrating an apparatus for decoding Huffman VLCs in accordance with the present invention.

제53도는 본 발명의 평행 허프만 복호기의 전체적 구조를 보여주는 도표 다이어그램.53 is a diagrammatic diagram showing the overall structure of a parallel Huffman decoder of the present invention.

제54도는 평행 허프만 부호를 복호화하는 데 적용된 ROM을 설명하는 도표 다이어그램.54 is a diagrammatic diagram illustrating a ROM applied to decode parallel Huffman codes.

제55도는 평행 허프만 부호를 복호화하는 데 적용된 ROM의 제1실시예.55 is a first embodiment of a ROM applied to decrypt a parallel Huffman code.

제56도는 평행 허프만 부호를 복호화하는 데 적용된 ROM의 제2실시예.56 is a second embodiment of a ROM applied to decrypt a parallel Huffman code.

제57도는 평행 허프만 부호를 복호화하는 데 적용된 ROM의 제3실시예.FIG. 57 illustrates a third embodiment of a ROM applied to decode parallel Huffman codes.

제58도는 본 발명의 한 실시예의 주요 시스템 요소를 설명하는 블록 다이어그램.58 is a block diagram illustrating the major system elements of one embodiment of the present invention.

제59도는 본 발명의 시작 부호 감지기를 설명하는 블록 다이어그램.Fig. 59 is a block diagram illustrating the start sign detector of the present invention.

제60도는 본 발명의 분석 체계를 보여주는 블록 다이어그램.60 is a block diagram showing an analysis scheme of the present invention.

제61도는 본 발명의 공간적 처리 회로의 주요 요소들을 설명하는 블록 다이어그램.61 is a block diagram illustrating the major elements of the spatial processing circuit of the present invention.

제62도는 본 발명에 따라 전시 회로를 설명하는 블록 다이어그램.62 is a block diagram illustrating a display circuit in accordance with the present invention.

제63도는 본 발명에 따라 타임 스탬프 관리의 일 실시예도.63 is an embodiment of time stamp management in accordance with the present invention.

제64도는 본 발명에서 타임 스탬프 관리의 또 다른 실시예도.64 is yet another embodiment of time stamp management in the present invention.

제65도는 본 발명의 시스템의 하드웨어 요소를 설명하는 블록 다이어그램.65 is a block diagram illustrating hardware elements of the system of the present invention.

제66도는 본 발명의 마이크로 제어기의 시스템 요소들의 개요를 제공하는 블록 다이어그램.Figure 66 is a block diagram providing an overview of system elements of the microcontroller of the present invention.

제67도는 본 발명의 연산 핵심부를 설명하는 단순화된 다이어그램.67 is a simplified diagram illustrating the computational core of the present invention.

제68도는 본 발명의 ALU 예시도.68 is an exemplary ALU of the present invention.

제69도는 본 발명에 따르는 레지스터 파일도.69 is a register file diagram according to the present invention.

제70도는 본 발명에서 독립 버스 레지스터에 기록하는 것을 예시한 도면.70 is a diagram illustrating writing to an independent bus register in the present invention.

제71도는 벡터[1]=0 및 벡터[0]=0인 프레임에 근거한 예측을 설명하는 도면.FIG. 71 is a diagram explaining prediction based on a frame having a vector [1] = 0 and a vector [0] = 0. FIG.

제72도는 벡터[1]=0 및 벡터[0]=1인 프레임에 근거한 예측을 설명하는 도면.FIG. 72 is a diagram explaining prediction based on a frame having a vector [1] = 0 and a vector [0] = 1. FIG.

제73도는 벡터[1]=1 및 벡터[0]=0인 프레임에 근거한 예측을 설명하는 도면.FIG. 73 is a diagram explaining prediction based on a frame having a vector [1] = 1 and a vector [0] = 0. FIG.

제74도는 벡터[1]=1 및 벡터[0]=1인 프레임에 근거한 예측을 설명하는 도면.FIG. 74 is a diagram explaining prediction based on a frame having a vector [1] = 1 and a vector [0] = 1;

제75도는 모션_수직_필드_셀렉트=0 및 벡터[0]=0인 필드에 근거한 예측을 설명하는 도면.FIG. 75 illustrates a prediction based on a field having Motion_Vertical_Field_Select = 0 and Vector [0] = 0.

제76도는 모션_수직_필드_셀랙트=0 및 벡터[0]=1인 필드에 근거한 예측을 설명하는 도면.FIG. 76 illustrates a prediction based on fields with motion_vertical_field_select = 0 and vector [0] = 1.

제77도는 비슷하게 모션_수직_필드_셀렉트=1 및 벡터[0]=0인 필드에 근거한 예측을 설명하는 도면.FIG. 77 similarly illustrates prediction based on fields where Motion_Vertical_Field_Select = 1 and Vector [0] = 0.

제78도는 모션_수직_필드_셀렉트=1 및 벡터[0]=1인 필드에 근거한 예측을 설명하는 도면.FIG. 78 is a diagram explaining prediction based on a field having Motion_Vertical_Field_Select = 1 and Vector [0] = 1. FIG.

제79도는 모션_수직_필드_셀렉트=0 및 벡터[0]=0인 프레임 화면에서의 필드에 근거한 예측을 나타내는 도면.79 is a diagram showing field based prediction in a frame screen in which motion_vertical_field_select = 0 and vector [0] = 0.

제80도는 모션_수직_필드_셀렉트=0 및 벡터[0]=1인 제79도의 예측을 설명하는 도면.FIG. 80 illustrates the prediction of FIG. 79 with Motion_Vertical_Field_Select = 0 and Vector [0] = 1.

제81도는 모션_수직_필드_셀렉트=1 및 벡터[0]=0인 제79도의 예측 모드를 나타내는 도면.FIG. 81 shows the prediction mode of FIG. 79 with Motion_Vertical_Field_Select = 1 and Vector [0] = 0.

제82도는 모션_수직_필드_셀렉트=1 및 벡터[0]=1 인 제79도의 예측 모드를 나타내는 도면.FIG. 82 is a diagram showing the prediction mode of FIG. 79 with motion_vertical_field_select = 1 and vector [0] = 1.

제83도는 예측 필터링의 부가적 모드를 설명하는 도면.FIG. 83 illustrates an additional mode of predictive filtering. FIG.

제84도는 역시 또다른 예측 모드를 나타내는 도면.84 shows another prediction mode, too.

제85도는 역시 본 발명에 따르는 또다른 예측 모드를 설명하는 도면.FIG. 85 illustrates yet another prediction mode according to the present invention.

제86도는 본 발명의 또다른 예측 모드를 나타내는 도면.86 illustrates another prediction mode of the present invention.

제87도는 본 발명의 전시 시스템의 다양한 시스템 요소의 조직화를 설명하는 블록 다이어그램.87 is a block diagram illustrating the organization of various system elements of the exhibition system of the present invention.

제88도는 4 : 3 필터링 작업을 설명하는 도면.88 is a diagram illustrating a 4: 3 filtering operation.

제89도는 3 : 2 필터링 작업을 설명하는 도면.89 is a diagram illustrating a 3: 2 filtering operation.

제90도는 본 발명의 2 : 1 필터링 작업을 설명하는 도면.90 is a diagram illustrating the 2: 1 filtering operation of the present invention.

제91도는 본 발명에서 사용된 세 개의 탭 필터를 나타내는 도면.FIG. 91 shows three tap filters used in the present invention. FIG.

제92도는 잘못된 화면 요소의 반복을 설명하는 도면.92 is a diagram explaining repetition of wrong screen elements.

제93도는 본 발명의 field_id 신호를 설명하는 도면.FIG. 93 is a diagram explaining a field_id signal of the present invention. FIG.

제94도는 본 발명에 따라 수평 타이밍 지점(순환 주기)을 도시하는 도면.94 is a diagram showing horizontal timing points (cycle cycles) in accordance with the present invention.

제95도는 본 발명에 따라 필드 당 625 라인에서의 PAL 수직 타이밍을 설명하는 도면.FIG. 95 illustrates PAL vertical timing at 625 lines per field in accordance with the present invention. FIG.

제96도는 본 발명에 따라 필드 당 525 라인에서의 NTSCV 수직 타이밍을 설명하는 도면.FIG. 96 illustrates NTSCV vertical timing at 525 lines per field in accordance with the present invention. FIG.

제97도는 본 발명에 따라 수평 카운트 기계를 도시하는 도면.97 illustrates a horizontal counting machine in accordance with the present invention.

제98도는 본 발명에서 경계선 발생을 설명하는 도면.FIG. 98 is a diagram illustrating boundary line generation in the present invention. FIG.

제99도는 본 발명에 따라 화면 크라핑을 설명하는 도면.99 is a diagram illustrating screen clipping in accordance with the present invention.

제100도는 칩으로써 본 발명을 설명하는 블록 다이어그램.100 is a block diagram illustrating the present invention as a chip.

제101도는 본 발명의 시스템 클럭 요구 사항을 설명하는 도면.101 is a diagram illustrating a system clock requirement of the present invention.

제102도는 본 발명에 따르는 부호화된 데이타 인터페이스에서 two-wire 프로토콜을 설명하는 도면.102 illustrates a two-wire protocol in the encoded data interface according to the present invention.

제103도는 본 발명의 데이타 토큰을 나타내는 도면.Figure 103 illustrates a data token of the present invention.

제104도는 본 발명의 FLUSH 토큰을 나타내는 도면.104 illustrates the FLUSH token of the present invention.

제105도는 부호화된 데이타 인터페이스의 타이밍을 설명하는 도면.105 illustrates the timing of an encoded data interface.

제106도는 본 발명에 따르는 non-even mark-space 비율 CDCLOCK 의 사용을 설명하는 도면.106 illustrates the use of a non-even mark-space ratio CDCLOCK in accordance with the present invention.

제107도는 본 발명에서 16 비트 모드에서의 출력 타이밍을 나타내는 도면.FIG. 107 is a diagram showing output timing in the 16-bit mode in the present invention.

제108도는 본 발명에서 8 비트 모드에서의 출력 타이밍을 설명하는 도면.108 is a view for explaining output timing in 8-bit mode in the present invention.

제109도는 본 발명에서 비디오 출력 인터페이스의 출력 타이밍을 나타내는 도면.109 illustrates output timing of a video output interface in the present invention.

제110도는 본 발명에 따르는 비디오 출력 모드 신호를 설명하는 도면.110 illustrates a video output mode signal according to the present invention.

제111도는 본 발명에서 수평 타이밍을 나타내는 도면.111 is a diagram showing horizontal timing in the present invention.

제112도는 525 라인 시스템에 대한 수직 타이밍을 나타내는 도면.112 illustrates vertical timing for a 525 line system.

제113도는 625 라인 시스템에 대한 수직 타이밍을 나타내는 도면.113 illustrates vertical timing for a 625 line system.

제114도는 본 발명에 따르는 525 라인 시스템에 대한 동기 및 공백 신호를 설명하는 도면.114 illustrates a synchronization and blank signal for a 525 line system in accordance with the present invention.

제115도는 본 발명에 따르는 625 라인 시스템에 대한 동기 및 공백 신호를 나타내는 도면.115 illustrates a synchronization and blank signal for a 625 line system in accordance with the present invention.

제116도는 본 발명에서 영(0) SDRAM 연결 환경을 설명하는 도면.116 is a diagram for explaining a zero SDRAM connection environment in the present invention.

제117도는 본 발명에서 일(1) SDRAM 연결 환경을 설명하는 도면.FIG. 117 is a diagram illustrating one (1) SDRAM connection environment in the present invention. FIG.

제118도는 본 발명에 따르는 이(2) SDRAM 연결 환경을 설명하는 도면.Figure 118 illustrates two (2) SDRAM connection environments in accordance with the present invention.

제119도는 삼(3) SDRAM 연결 환경을 설명하는 도면.FIG. 119 is a diagram illustrating a three (3) SDRAM connection environment. FIG.

제120도는 본 발명에 따라서 flag_picture_end 작업을 설명하는 경로 도면.FIG. 120 is a path diagram illustrating a flag_picture_end operation in accordance with the present invention. FIG.

제121도는 본 발명에 따라서 start_code_search 작업을 보여주는 경로 도면.FIG. 121 is a path diagram showing a start_code_search operation in accordance with the present invention; FIG.

제122도는 본 발명에 따라서 타임 스탬프 변형을 보여준다.Figure 122 shows a time stamp variant in accordance with the present invention.

제123도는 마이크로 프로세서에 대한 판독 타이밍을 설명하는 도면.FIG. 123 illustrates read timing for a microprocessor. FIG.

제124도는 마이크로 프로세서 인터페이스에 대한 기록 타이밍을 나타내는 도면.124 is a diagram showing recording timing for a microprocessor interface;

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

201 : 시작 부호 감지기 202 : 비디오 분석기201: start sign detector 202: video analyzer

203 : 허프만 복호기 204 : 마이크로프로그램된 상태기계203 Huffman Decoder 204 Microprogrammed State Machine

206 : 동기 DRAM 제어기 212 : 비디오 타이밍 발생기206: Synchronous DRAM Controller 212: Video Timing Generator

본 원은 1994년 7월 29일에 출원된 영국 출원 제9415413. 5호에 따라서 우선권을 주장한다.This application is filed on July 29, 1994, filed in British application 9415413. Claim priority in accordance with No. 5.

본 발명은 일반적으로 복수의 오디오 및 비디오 신호를 복호화하기 위해 새롭게 개선된 시스템, 특히 복수의 MPEG 오디오 및 비디오 신호를 복호화하기 위한 새로운 개선 시스템에 관한 것이다.The present invention relates generally to a newly improved system for decoding a plurality of audio and video signals, in particular to a new enhancement system for decoding a plurality of MPEG audio and video signals.

본 발명의 연속된 파이프 라인 처리 시스템은 유일하며 특수하게 설계된 상호 작용 인터페이싱 토큰들을 제어 토큰들 및 데이타 토큰들의 형태로써, 재구성할 수 있는 파이프 라인 처리기로 배치된 복수의 개조된 압축 해제 회로들과 그 유사 회로에 운반하기 위해 사용된 단일의 투-와이어 버스(two-wire bus)를 포함하여 이루어진다.The continuous pipeline processing system of the present invention comprises a plurality of modified decompression circuits arranged with a reconfigurable pipeline processor, the only specially designed interaction interfacing tokens in the form of control tokens and data tokens and It consists of a single two-wire bus used to carry similar circuits.

미 합중국 특허 제5, 111, 292호에서는 HDTV 신호를 부호화/복호화하기 위한 장치에 대해 개시한다. 예를 들면, 지구상에서의 전송이 전송에 대한 높고 낮은 우선 순위를 채널들 사이에 압축된 비디오 코드 워드들을 분석하기 위해 우선권 선택 처리기를 포함한다. 고품위의 비디오 출처 신호에 해당하는 압축 회로는 압축된 비디오 데이타를 표현하는 단계적으로 층을 이룬 코드 워드 CW와 코드 워드 CW에 의해 표현된 데이타 유형들을 정의하는 관련 코드 워드 T를 제공한다. 코드 워드 CW와 T에 해당하는 우선권 선택 처리기는 소정의 데이타 블록내의 비트수를 세고, 각각의 채널에 할당될 각 블록내의 비트 수를 결정한다. 이 후에, 처리기는 높고 낮은 우선 순위의 코드 워드 시퀀스가 영상 재생에 각각 상대적으로 더 중요하고 덜 중요한 압축 비디오 데이타에 상응하도록 높고 낮은 우선 순위의 코드 워드 시퀀스로 코드 워드 CW를 분석한다.US Patent No. 5, 111, 292 discloses an apparatus for encoding / decoding an HDTV signal. For example, transmissions on Earth include a priority selection processor to analyze compressed video code words between channels of high and low priorities for transmission. A compression circuit corresponding to a high quality video source signal provides a stepped layer of code word CW representing compressed video data and an associated code word T defining the data types represented by code word CW. The priority selection processor corresponding to the code words CW and T counts the number of bits in a given data block and determines the number of bits in each block to be allocated to each channel. Subsequently, the processor analyzes the code word CW with a high and low priority code word sequence so that the high and low priority code word sequences correspond to the compressed video data, which are relatively more important and less important respectively for picture reproduction.

한 선행 기술 시스템이 미 합중국 특허 제5, 216, 724 에 기재되어 있다. 이 장치는 신청된 구현물에서 병렬로 쌍을 이룬 모두 4개의 계산 모듈에 대해 복수의 계산 모듈로 구성된다. 각 계산 모듈은 처리기, 양 방향성 기억장치, 잡기 용지철 기억장치 및 중개 구조를 가진다. 첫 버스는 계산 모듈들과 호스트 처리기를 연결한다. 이 장치는 호스트 처리기 및 두 번째 버스를 지닌 계산 모듈로 연결된 공유 기억장치로 구성된다.One prior art system is described in US Pat. Nos. 5, 216, 724. The apparatus consists of a plurality of calculation modules for all four calculation modules paired in parallel in the proposed implementation. Each calculation module has a processor, a bidirectional memory, a grabbing paper memory, and an intermediary structure. The first bus connects the compute modules with the host processor. The device consists of a shared processor connected to a compute module with a host processor and a second bus.

미 합중국 특허 제4, 785, 349호에서는 압축되고, 전송을 위해 포맷되고, 콤팩트 디스크 미디어에 기록되고, 일상적인 비디오 프레임 비율로 복호화된 전체 동 칼라 디지탈 비디오 신호를 나타낸다. 압축되는 동안, 프레임 구역은 각 구역에 특정한 최적의 충만 부호화 기법을 선택하기 위해 개별적으로 분석된다. 구역 복호 시간 판단은 압축 기준치를 최적화하도록 정해진다. 구역의 크기와 위치를 전달하는 구역 표현 코드들은 데이타 흐름의 첫 세그먼트내에 함께 모이게 된다. 구역에 대한 픽셀 진폭 지시를 전달하는 구역 충만 코드들은 충만 코드 형식에 따라 같이 분류되고 데이타 흐름의 다른 세그먼트 내에 배치된다. 데이타 흐름 세그먼트는 개별적으로 각각의 통계 분포에 따라 부호화되고 데이타 프레임을 형성하기 위해 포맷된 가변 길이를 갖는다. 프레임 당 바이트 수는 녹음 재생 중 콤팩트 디스크의 멈춤을 최소화시키기 위해 선택된 평균값을 제공하기 위한 역 프레임 시퀀스 분석에 의해 구해진 보조 데이타의 추가에 의해 줄어들고, 그로인해 콤팩트 디스크의 예상못한 탐색 로드 잠복기를 피한다. 복호기는 데이타 흐름의 개개의 세그먼트를 복호화 하는 분리된 가변 길이를 위해 코드 흐름내의 통계 정보에 해당하는 가변 길이 복호기를 포함한다. 구역 위치 데이타는 구역 표현 데이타로부터 얻을 수 있고, 구역 충만 코드와 함께 충만 코드 형태(예를 들면, 상대, 절대, 한 쌍, DPCM)의 감지에 의해 선택된 복수의 구역 특정 복호기에 적용되고, 복호화된 구역 픽셀은 그 이후의 표시를 위해 비트 도면에 저장된다.U. S. Patent Nos. 4, 785 and 349 show a full color digital video signal compressed, formatted for transmission, recorded on compact disc media, and decoded at the usual video frame rate. During compression, frame regions are analyzed separately to select the optimal full coding scheme specific to each region. The zone decoding time decision is made to optimize the compression threshold. Zone expression codes that convey the size and location of the zones are gathered together in the first segment of the data flow. The zone full codes that carry pixel amplitude indications for the zones are grouped together according to the full code format and placed in different segments of the data flow. The data flow segments are variable length, individually encoded according to each statistical distribution and formatted to form a data frame. Bytes per frame is reduced by the addition of auxiliary data obtained by inverse frame sequence analysis to provide a selected mean value to minimize the pause of the compact disc during recording playback, thereby avoiding the unexpected seek load latency of the compact disc. The decoder includes a variable length decoder that corresponds to statistical information in the code flow for separate variable lengths that decode individual segments of the data flow. Zone location data can be obtained from zone representation data and applied to a plurality of zone specific decoders selected by detection of the full code form (e.g., relative, absolute, pair, DPCM) together with the zone full code and decoded. The area pixels are stored in the bit diagram for later display.

미 합중국 특허 제4, 922, 341호는 디지탈 텔레비젼 신호에 대한 영상 데이타의 장면 모델 지원의 축소를 위한 방법을 개시한다. 그로인해 시간에 제공되는 화면 신호가 부호화되며, (t-1)의 시각에서 이미 부호화된 장면으로부터의 선행 프레임이 참조로써 영상 스토어에 현존하게 되고, 프레임 대 프레임의 정보는 증폭 요소, 쉬프트 요소, 적절히 얻어진 4진 트리 구분 구조로 구성된다. 시스템의 초기화 때, 균일하고 규정되어진 그레이 스케일 수치 또는 정의된 명도 수치로 표현된 화면 반조부는 모든 화면 성분(픽셀)에서와 같은 방법으로 전송 장치에서 부호기의 영상 스토어내에 또는 수신 장치에서 복호기의 영상 스토어내에 기록된다. 복호기의 영상 스토어 뿐 아니라 부호기의 영상 스토어도 부호기 및 복호기의 영상 스토어의 내용물이 가변 길이의 블록으로 판독될 수 있고, 명도 1 이상 또는 이하의 요소와 함께 증폭될 수 있고, 쉬프트된 주소와 함께 영상 스토어내로 다시 기록될 수 있도록 하는 방법으로 그 자신들에게도 귀환되는 것으로써 각각 실행된다. 이에 의해 가변 길이의 블록들이 4진 트리 데이타 구조로 알려진 방법에 따라 구성된다.US Patent No. 4, 922, 341 discloses a method for reducing scene model support of video data for digital television signals. As a result, the picture signal provided at time is encoded, and the preceding frame from the scene already encoded at the time (t-1) is present in the image store as a reference, and the frame-to-frame information is amplified, shifted, It consists of a quaternary tree division structure obtained suitably. When the system is initialized, the screen banjo represented by a uniform and defined gray scale value or defined brightness value is stored in the image store of the encoder at the transmitting device or in the image store of the decoder at the receiving device in the same way as for all screen components (pixels). Are written in. In addition to the video store of the decoder, the video store of the encoder can also read the contents of the encoder and the video store of the decoder into blocks of variable length, can be amplified with elements of brightness greater than or equal to 1 and less, and with the shifted address Each is done by returning to itself in such a way that it can be written back into the store. Thereby, blocks of variable length are constructed according to a method known as a quaternary tree data structure.

미 합중국 특허 제5, 122, 875호에서는 HDTV 신호를 부호화/복호화하기 위한 장치를 개시 한다. 이 장치는 압축된 비디오 데이타를 표현하는 단계적으로 층을 이룬 코드 워드 CW와 코드 워드 CW에 의해 표현된 데이타 유형들을 정의하는 관련 코드 워드 T를 제공하는 고품위의 비디오 출처 신호에 해당하는 압축 회로를 포함한다. 코드 워드 CW와 T에 해당하는 우선권 선택 회로는 높고 낮은 우선 순위의 코드 워드 시퀀스가 영상 재생에 각각 상대적으로 더 중요하고 덜 중요한 압축 비디오 데이타에 상응하도록 높고 낮은 우선 순위와 코드 워드 시퀀스로 코드 워드 CW를 분석한다. 높고 낮은 우선 순위의 코드 워드 시퀀스에 해당하는 전송 처리기는 각각 높고 낮은 우선 순위의 코드 워드들의 높고 낮은 우선 순위 전송 블록을 형성한다. 각 전송 블록은 헤더, 코드 워드 CW 및 에러 감지 검사 비트들을 포함한다. 각각의 전송 블록들은 더해진 에러 검사 데이타를 적응하기 위한 전위 에러 검사 회로에 적응된다. 그 이후에, 높고 낮은 우선 순위 데이타는 4진 진폭이 전송을 위한 각각의 반송파를 변조하는 모뎀으로 적용된다.US Patent No. 5, 122, 875 discloses an apparatus for encoding / decoding HDTV signals. The apparatus includes a compression circuit corresponding to a stepped layered code word CW representing compressed video data and a high quality video source signal providing an associated code word T defining the data types represented by the code word CW. do. Priority selection circuits corresponding to codewords CW and T provide codewords CW with high and low priority and codeword sequences so that high and low priority code word sequences correspond to compressed video data, which are relatively more important and less important for image playback, respectively. Analyze The transfer processors corresponding to the high and low priority code word sequences form high and low priority transport blocks, respectively, of high and low priority code words. Each transport block includes a header, code word CW and error detection check bits. Each of the transport blocks is adapted to a potential error check circuit for adapting the added error check data. After that, high and low priority data is applied to the modem where the quaternary amplitude modulates each carrier for transmission.

미 합중국 특허 제5, 146, 325호에서는 비디오 신호의 홀수 및 짝수의 필드가 내부프레임 및 상호프레임의 시퀀스에서 독립적으로 압축되고 그 후 전송에 대해 인터리브되는 압축 영상 데이타를 압축해제시키기위한 비디오 압축해제 시스템을 개시 한다. 홀수 및 짝수의 필드가 독립적으로 압축해제된다. 유효한 압축해제된 홀수/짝수의 필드의 데이타가 사용되지 못하는 기간동안 짝수/홀수의 필드 데이타가 사용불능의 홀수/짝수의 필드 데이타를 대체한다. 독립적으로 데이타의 짝수 및 홀수의 필드를 압축해제하고 사용불능의 데이타에 대해 데이타의 반대 필드로 대체시키는 것은 시스템의 시작과 채널의 변경 동안 영상 전시 잠복기를 줄여주는 데 이롭게 사용될 수 있다.In U.S. Patent No. 5,146,325, video decompression for decompressing compressed image data in which odd and even fields of the video signal are independently compressed in a sequence of inner and interframes and then interleaved for transmission. Start the system. Odd and even fields are independently decompressed. Even / odd field data replaces unusable odd / even field data while valid decompressed odd / even field data is unavailable. Independently decompressing even and odd fields of data and replacing them with opposite fields of data for unusable data can advantageously be used to reduce image display latency during system startup and channel changes.

미 합중국 특허 제5, 168, 356호에서는 부호화된 비디오 데이타를 신호 전송을 위한 전송 블록으로 분할하기 위한 장치를 포함한 비디오 신호 부호화 시스템을 개시 한다. 전송 블록 포맷은 수신기가 전송된 데이타의 손실이나 이상발생시 데이타 흐름내로 재진입 지점을 결정할 수 있는 헤더 데이타를 공급하여 수신기에서 신호의 복원을 증가시킨다. 재진입 지점은 각각의 전송 블록의 부호화된 비디오 데이타내에 들어 있는 2차 전송 헤더들을 공급함으로써 최대화된다.US Patent Nos. 5, 168 and 356 disclose a video signal encoding system including an apparatus for dividing encoded video data into transport blocks for signal transmission. The transport block format increases the reconstruction of the signal at the receiver by supplying header data that allows the receiver to determine the reentry point into the data flow in the event of loss or anomaly of transmitted data. The reentry point is maximized by supplying secondary transport headers contained in the encoded video data of each transport block.

미 합중국 특허 제5, 168, 375호에서는 데시메이션, 보간법 및 샤프닝(sharpening) 함수들의 하나 또는 그 이상으로 공급하는 영상 데이타 샘플의 필드를 프로세싱하는 방법을 개시한다. 이는 JPEG 압축 시스템에서 사용된 것과 같이 배열 변환 처리기에 의해 수행된다. 데이타 샘플의 블록들은 데시메이션 및 보간 처리를 함에 있어서 양쪽 다 이산 우함수 코사인 변환(DECT)에 의해 변환된다. 이 후에 주파수항의 수가 바뀐다. 데시메이션의 경우, 주파수항의 수는 줄어들며, 이후 데이타의 본 블록을 표현하는 샘플 지점의 줄어든 크기의 행렬을 만들어주는 역변환이 뒤이어 수행된다. 보간법의 경우, 0 값의 덧붙여진 주파수 성분들이 주파수 성분의 배열로 삽입되며, 이 후에 역변환이 스펙트럼 대역폭에서 증가없이 늘어난 데이타 샘플링 세트를 만들 수 있다. 샤프닝(Sharpening)의 경우, 주파수 변역에서 데이타 및 필터 중심의 변환의 곱을 포함한 콘볼류션이나 필터링 기법에 의해 수행되어, 거기에 처리된 데이타 샘플들의 블록들의 세트를 생기게 한 역변환이 공급된다. 볼록들이 겹쳐지고, 지시된 샘플들의 저장 및 겹친 지역으로부터 초과된 샘플들을 버리는 작업이 뒤따른다. 핵심 성분의 공간적 표현은 선형 위상 필터를 위한 성분의 수의 감소에 의해 변경되고 데이타 블록의 샘플의 수를 같게 하기 위해 0을 끼워 넣는다. 이후, 끼워맞춰진 핵심되는 행렬의 이산 기함수 코사인 변환(DOCT)의 형성이 뒤따른다.U. S. Patent No. 5, 168, 375 discloses a method of processing a field of image data samples that feeds one or more of decimation, interpolation, and sharpening functions. This is done by the array conversion processor as used in the JPEG compression system. The blocks of data samples are both transformed by a discrete right function cosine transform (DECT) in decimation and interpolation processing. This changes the number of frequency terms. In the case of decimation, the number of frequency terms is reduced, followed by an inverse transformation that produces a reduced size matrix of sample points representing the main block of data. In the case of interpolation, zero-valued added frequency components are inserted into an array of frequency components, after which the inverse transform can produce an increased data sampling set without increasing the spectral bandwidth. In the case of sharpening, it is performed by convolution or filtering techniques, including the product of the data and filter center transforms in the frequency domain, where an inverse transform is supplied which results in a set of blocks of processed data samples. Convexities overlap, followed by storage of the indicated samples and discarding excess samples from the overlapping area. The spatial representation of the key components is changed by the reduction of the number of components for the linear phase filter and interpolates 0 to equal the number of samples in the data block. This is followed by the formation of a discrete functional cosine transform (DOCT) of the fitted key matrix.

미 합중국 특허 제 5, 175, 617호에서는 전화선의 대역폭 제한된 아날로그 채널을 통한 로그상의 비디오 영상을 전송하기 위한 시스템 및 방법을 개시한다. 로그상의 영상에서 픽셀 조직은 육안의 센서 기하를 픽셀의 중심에 더 밀집시키는 방식에 맞춰주기 위해 고안된다. 송신기는 주파수 폭을 채널로 나누고, 각 채널에 하나 또는 두 개의 픽셀을 할당한다. 예를 들면, 3KHz의 음성 성분 전화선이 약 3.9Hz의 768개의 채널로 분할되어 있는 것이 있다. 각 채널은 4진에 두 개의 반송파 파동으로 구성되어 각 채널은 두 개의 픽셀을 실어 나를 수 있다. 어떤 채널은 수신기가 수신된 신호의 위상과 진폭을 모두 감지할 수 있는 특수한 측정 신호를 위해 보존된다. 만약 센서와 픽셀이 오실레이터 지역으로 직접적으로 연결되었고 수신기가 연속적으로 각 채널을 수신할 수 있으면, 수신기는 전송에서 동기화를 필요로 하지 않는다. FFT 알고리듬은 수신기가 첫 프레임에 동기되고 그 후에 각 프레임 주기에 뒤따르는 프레임들을 얻을 수 있는 연속 상태에 빠른 이산 근사치를 실행시킨다. 프레임 주기는 샘플링 주기에 비해 상대적으로 작아서, 일단 첫 프레임이 감지되면 수신기가 프레임 동기를 잃지 않는다. 초당 4 프레임을 전송한 실험적 비디오 전화는 4진 부호화를 1440 픽셀 로그상의 영상에 적용되어 초당 40,000 비트를 넘는 효과적인 데이타 전송률을 얻게 된다.U. S. Patent No. 5, 175, 617 discloses a system and method for transmitting video images on logs over a bandwidth limited analog channel of a telephone line. In logarithmic images, pixel organization is designed to fit the sensor geometry of the naked eye closer to the center of the pixel. The transmitter divides the frequency width into channels and allocates one or two pixels to each channel. For example, a 3 KHz voice component telephone line is divided into 768 channels of about 3.9 Hz. Each channel consists of two carrier waves in quadratic, so each channel can carry two pixels. Some channels are reserved for special measurement signals that allow the receiver to sense both the phase and amplitude of the received signal. If the sensor and pixel are directly connected to the oscillator area and the receiver can receive each channel in succession, the receiver does not require synchronization in the transmission. The FFT algorithm runs a fast discrete approximation in a continuous state where the receiver is synchronized to the first frame and then obtains frames following each frame period. The frame period is relatively small compared to the sampling period so that once the first frame is detected, the receiver does not lose frame synchronization. The experimental video telephony, which transmits 4 frames per second, applies quadratic encoding to images on a 1440 pixel log, resulting in an effective data rate of over 40,000 bits per second.

미 합중국 특허 제 5, 185, 819호에서는 내부 프레임 및 상호 프레임의 압축 모드의 시퀀스에 독립적으로 압축된 비디오 신호의 홀수 및 짝수 필드를 가진 비디오 압축 시스템을 개시한다. 독립적으로 압축된 데이타의 홀수 및 짝수 필드는 데이타를 압축한 내부 프레임의 짝수 필드가 데이타를 압축한 내부 프레임의 홀수 필드의 연속된 필드사이에서 발생하도록 전송을 위해 인터리브된다. 인터리브된 시퀀스는 전송된 데이타 양의 증가없이 복호화하기 위한 신호에 두 배의 진입지점의 수를 가진 수신기를 공급한다.US 5, 185, 819 discloses a video compression system having odd and even fields of a compressed video signal independently of a sequence of compression modes of inner and inter frames. Odd and even fields of independently compressed data are interleaved for transmission such that the even fields of the inner frame that have compressed the data occur between successive fields of the odd fields of the inner frame that have compressed the data. The interleaved sequence provides a receiver with twice the number of entry points in the signal for decoding without increasing the amount of data transmitted.

미 합중국 특허 제 5, 212, 742호에서는 실시간에서 압축/압축해제 를 위한 비디오 데이타를 처리하는 장치 및 방법을 개시한다. 이 장치는 제시된 구상에서, 병렬로 연결된 모두 4 개의 계산 모듈을 위한 복수의 계산 모듈로 구성된다. 각 계산 모듈은 처리기, 양방향 포트 기억장치, 스크래치-패드 기억장치 및 조정장치를 가진다. 첫 버스는 계산 모듈과 호스트 처리기를 연결한다. 마지막으로, 장치는 호스트 처리기와 두 번째 버스를 가진 계산 모듈에 연결된 공유 기억장치로 구성된다. 이 방법은 각 처리기가 수행하도록 하는 영상의 할당 부분을 다룬다.US Patent No. 5, 212, 742 discloses an apparatus and method for processing video data for compression / decompression in real time. This device consists of a plurality of calculation modules for all four calculation modules connected in parallel in the presented scheme. Each calculation module has a processor, bidirectional port storage, scratch-pad storage, and a controller. The first bus connects the compute module with the host handler. Finally, the device consists of a host processor and shared storage connected to a compute module with a second bus. This method deals with the allocation of the images that each processor performs.

미 합중국 특허 제 5, 231, 484호에서 제안된 ISO/IEC MPEG 표준과 함께 사용하기에 적합한 부호화기를 실행하기 위한 시스템과 방법을 개시 한다. 들어온 디지탈 동적 비디오 시퀀스를 다양하고 적절하게 우선 처리하기 위한 실행을 하고, 시퀀스의 화면에 비트를 할당시키고, 화면으로 할당된 비트 수가 주어진 최적시각 성분을 제공하기 위한 비디오 시퀀스내의 화면의 다른 영역에 있는 변환 계수를 적절히 양자화하는 세 개의 상호작용하는 성분 또는 서브 시스템이 포함된다.A system and method for implementing an encoder suitable for use with the ISO / IEC MPEG standard proposed in US Pat. No. 5,231,484. Perform various and appropriate priorities for the incoming digital dynamic video sequence, assign bits to the screen of the sequence, and assign the bits in the screen to different areas of the screen within the video sequence to provide the optimal time component. Three interacting components or subsystems are included to properly quantize the transform coefficients.

미 합중국 특허 제 5, 267, 334호에서는 동적 영상의 시퀀스를 위한 컴퓨터 시스템내의 프레임 여분을 제거하는 방법을 나타내 준다. 이 방법은 움직이는 영상의 시퀀스에서 첫 장면 변화를 감지하고, 첫 영상의 완전한 장면 정보를 포함하는 첫 키 프레임을 발생시킨다. 첫 키 프레임은 제시된 구상에서, 전위 대면 키 프레임 또는 내부 프레임으로 알려졌고, 이는 CCITT 압축 비디오 데이타내에 표준적으로 존재한다. 프로세스는 첫 영상으로부터 동 영상의 시퀀스내의 시간에서 첫 영상에 뒤따르는 적어도 하나의 영상을 위한 차이 정보를 담은 적어도 하나의 중간 단계의 압축 프레임을 발생시키는 것을 포함한다. 이 적어도 하나의 프레임은 상호 프레임으로 알려져 있다. 마지막으로 동 영상의 시퀀스에서의 두 번째 장면 변화를 감지하고, 두 번째 장면 변화에 앞선 시간에서 나타낸 영상에 대한 완전한 장면 정보를 담은 두 번째 키 프레임을 발생시키는 것은 후위 대면 키 프레임으로 알려져 있다. 첫 키 프레임과 적어도 하나의 중간 단계로 압축된 프레임은 전위 실행을 위해 연결되었고, 두 번째 키 프레임과 중간 단계로 압축된 프레임은 역실행을 위해 역으로 연결되었다. 내부 프레임은 또한 영상이 전위 방향으로 실행될 때 완전한 장면 정보의 발생을 위해 사용된다. 이 시퀀스가 역으로 실행될 때, 후위 대면 키 프레임이 환전한 장면 정보의 발생을 위해 사용된다.U.S. Patent Nos. 5, 267 and 334 show a method for removing redundant frames in a computer system for a sequence of dynamic images. This method detects the first scene change in the sequence of moving images and generates the first key frame containing complete scene information of the first image. The first key frame is known as a potential facing key frame or an inner frame in the presented scheme, which is standard in CCITT compressed video data. The process includes generating at least one intermediate level compressed frame containing difference information for at least one image following the first image at a time in the sequence of moving images from the first image. This at least one frame is known as a mutual frame. Finally, detecting the second scene change in the sequence of the video and generating a second key frame containing complete scene information about the image shown in time prior to the second scene change is known as the rear-facing key frame. The first key frame and the frame compressed in at least one intermediate stage were concatenated for the transposition execution, and the second key frame and the frame compressed in the intermediate stage were concatenated inverse for the reverse execution. The inner frame is also used for the generation of complete scene information when the image is run in the dislocation direction. When this sequence is executed in reverse, a back-to-face key frame is used for generation of exchanged scene information.

미 합중국 특허 제 5, 276, 513호에서는 최소의 시스템 처리 지연 및/또는 최소의 시스템 처리 지연의 실행 및/또는 최소 하드웨어 구조의 실행을 갖는 실시간에서의 효과적인 비용의 구조적인 움직임 분석(HMA)를 수행하는 주어진 수의 새로운 움직임 벡터 단을 구성하는 두 번째 회로장치와 함께, 같은 주어진 수의 선행 기술의 영상 피라미드 단을 구성하는 첫 회로장치를 개시한다. 특히, 상대적으로 높은 프레임 속도(예를 들어, 초 당 30 프레임)에서 발생하는 연속적으로 주어진 픽셀 밀도 영상 데이타의 진행되는 연속된 입력으로부터 상대적으로 높은 해상도의 영상 데이타에 상응하는 첫 번째 및 두 번째 회로장치는 어떤 프로세싱 시스템 지연 이후에, 같은 주어진 속도로 발생하는 주어진 픽셀 밀도 벡터 데이타 프레임의 진행되는 연속된 출력을 이끌어낸다. 각 벡터 데이타 프레임은 연속된 영상 프레임의 각 쌍 사이에서 발생하는 영상 움직임을 나타낸다.U.S. Patent Nos. 5, 276, and 513 provide effective cost-effective structural motion analysis (HMA) in real time with minimal system processing delay and / or minimal system processing delay and / or minimal hardware architecture. Disclosed is a first circuit arrangement that constitutes the same given number of prior art image pyramid stages, with a second circuit arrangement that constitutes a given number of new motion vector stages to perform. In particular, the first and second circuits correspond to relatively high resolution image data from a continuous continuous input of continuously given pixel density image data occurring at a relatively high frame rate (e.g., 30 frames per second). The apparatus derives a continuous continuous output of a given pixel density vector data frame occurring at the same given rate after some processing system delay. Each vector data frame represents an image movement occurring between each pair of consecutive image frames.

미 합중국 특허 제 5, 283, 646 호에서는 영상을 단 한번 부호화하는 것이 예를 들어, 통신 채널을 건너 전송되는 영상과 같은 것을 설명하는 계수를 양자화하기 위해 사용되는 양자화 단계의 크기를 개정하는 동안, 실시간 비디오 부호화 시스템이 정확히 요구되는 프레임 당 비트 수를 전달할 수 있도록 하는 방법과 장치를 개시한다. 데이타는 섹터로 나누어져 있고, 각 섹터는 복수의 블록을 포함한다. 블록들은 예를 들면, DCT 부호화를 사용하여 각 블록에 대한 계수의 시퀀스를 발생하기 위해 부호화된다. 계수는 양자화되고, 양자화 단계에 의존해서 데이타를 기술하는 데 필요한 비트 수가 상당히 변화하게 된다. 데이타의 각 섹터의 전송의 마지막에서 늘어난 비트의 축적된 실제 수는 특정 데이타 그룹과 관련된 선택된 수의 섹터를 위해 늘어난 비트의 축적된 요구되는 수와 비교된다. 시스템은 이후 예를 들어 영상을 기술하는 것과 같은 복수의 섹터를 위한 데이타 비트의 최후의 요구되는 수를 목표로 하는 양자화 단계의 크기를 재조정한다. 다양한 방법이 양자화 단계를 개정하고 요구되는 비트 할당을 결정하기 위해 설명된다.In US Pat. No. 5, 283, 646, while encoding a picture once only modifies the magnitude of the quantization step used to quantize a coefficient that describes, for example, a picture sent across a communication channel, A method and apparatus are disclosed that enable a real-time video encoding system to deliver exactly the required number of bits per frame. Data is divided into sectors, each sector including a plurality of blocks. The blocks are coded to generate a sequence of coefficients for each block, for example using DCT coding. The coefficients are quantized, and depending on the quantization step, the number of bits required to describe the data varies considerably. The accumulated actual number of bits increased at the end of each sector of data transfer is compared to the accumulated required number of bits increased for the selected number of sectors associated with the particular data group. The system then resizes the quantization step to target the last required number of data bits for a plurality of sectors, for example describing an image. Various methods are described to revise the quantization step and determine the required bit allocation.

미 합중국 특허 제 5, 287, 420호에서는 데이타를 두 단계로 압축하고 저장하는 개인용 컴퓨터 장치에 적합한 영상 압축의 방법과 장치를 개시한다. 영상은 실시간에서 획득되어 효과적인 방법을 사용하여 압축되어 하드 디스크에 저장된다. 일정 시간 뒤에, 데이타는 더 높은 압축률을 가져오는 계산적으로 더 강력한 알고리듬을 사용하여 비 실시간에서 더욱 압축된다. 두 단계의 접근방식은 실시간에서 이런 알고리듬을 수행하는 계산적 자원을 요구하지 않고 달성되는 매우 세련된 압축 알고리듬의 저장 감축 이득을 허용한다. 개인용 컴퓨터에서 호스트 처리기의 첫 압축 단계를 수행하기에 적합한 압축 알고리듬이 또한 기술된다. 첫 압축 단계는 비디오 디지타이저로부터 4 : 2 : 2 YCrCb 데이타를 받아 들인다. 두 색채 요소는 평균화되고, 유사 랜덤 수는 모든 요소에 더해진다. 결과적인 값은 양자화되고, 픽셀의 2 × 2 배열을 표현하는 하나의 32 비트 워드내로 모인다. 유사 랜덤 잡음이 두 번째 압축 단계를 수행하기 전에 제거될 수 있도록 유사 랜덤 수의 근원 값이 기억된다.US Patent No. 5, 287, 420 discloses a method and apparatus for image compression suitable for a personal computer device that compresses and stores data in two stages. The images are acquired in real time and compressed and stored on the hard disk using effective methods. After a period of time, the data is further compressed in non real-time using a computationally more powerful algorithm that results in a higher compression rate. The two-stage approach allows the storage reduction gains of a very sophisticated compression algorithm that is achieved without requiring computational resources to perform this algorithm in real time. A compression algorithm suitable for performing the first compression step of the host processor on a personal computer is also described. The first compression step receives 4: 2: 2 YCrCb data from the video digitizer. The two color elements are averaged and the pseudo random number is added to all the elements. The resulting values are quantized and gathered into one 32-bit word representing a 2x2 array of pixels. The pseudo random number's source value is stored so that pseudo random noise can be removed before performing the second compression step.

미 합중국 특허 제 5, 289, 577 호에서는 영상 데이타 입력 버퍼, 영상 데이타 출력 버퍼 및 주소 버퍼를 포함한 복수의 버퍼들을 통해 CODEC과 연결된 첫 프로세싱 단을 갖는 시퀀스 처리 파이프 라인을 위한 방법 및 장치를 개시한다. 주소 버퍼는 주소들을 저장하고, 이들 각각은 영상 기억장치내의 주소 블록의 초기 주소를 밝혀준다. 영상 기억장치내의 주소의 각 블록은 압축해제된 영상 데이타의 블록을 저장한다. 지역 제어기는 이산 코사인 변환 처리 및 이산 코사인 변환 양자화 처리를 실행하는 CODEC의 수행을 초기화하는 주소 버퍼내로 주소의 기록에 응답한다.US 5, 289, 577 discloses a method and apparatus for a sequence processing pipeline having a first processing stage connected to a CODEC via a plurality of buffers including an image data input buffer, an image data output buffer and an address buffer. . The address buffer stores the addresses, each of which identifies the initial address of the address block in the image store. Each block of addresses in the image storage device stores a block of decompressed image data. The local controller responds to the writing of the address into an address buffer that initiates the execution of the CODEC executing the discrete cosine transform process and the discrete cosine transform quantization process.

항목, Chong, Yong M., 디지탈 영상 처리를 위한 데이타 흐름 설계, Wescon Technical Papers : No. 2 Oct./Nov. 1984 에서는 영상 처리를 위해 특별히 고안된 실시간 신호처리 시스템을 개시한다. 좀 더 특별히, 토큰이 고정된 폭의 주소 필드를 가진 고정된 한 워드폭이 되는 데이타 흐름 설계에 근거한 토큰이 나타내진다. 시스템은 링 모양으로 연결된 복수의 동일 흐름 처리기를 포함한다. 토큰은 데이타 필드, 제어 필드 및 태그를 포함한다. 더구나 토큰의 태그 필드는 처리기 주소 필드 및 인식기 필드내로 분류된다. 처리기 주소 필드는 정확한 데이타 흐름 처리기로 토큰을 유도하기 위해 사용되고, 인식기 필드는 데이타 흐름 처리기가 데이타와 함께 무엇을 하는가를 알 수 있게 데이타에 꼬리표를 다는 데 이용된다. 이런 방식으로 인식기 필드는 데이타 흐름 처리기를 위한 지시와 같이 작용한다. 시스템은 모듈 숫자를 사용하여 특정 데이타 흐름 처리기로 각 토큰을 지시한다. 만약 모듈 숫자가 특정 단의 모듈 숫자에 맞춰지면 적절한 실행이 데이타에 행하여진다. 만약 인식되지 못하면 토큰은 출력 데이타 버스로 지시된다.Item, Chong, Yong M., Data Flow Design for Digital Image Processing, Wescon Technical Papers: No. 2 Oct./Nov. In 1984, a real-time signal processing system specially designed for image processing is disclosed. More specifically, a token is presented based on a data flow design where the token is a fixed word width with a fixed width address field. The system includes a plurality of identical flow processors connected in a ring shape. Tokens include data fields, control fields, and tags. Furthermore, the tag field of the token is classified into a processor address field and a recognizer field. The processor address field is used to derive the token into the correct data flow handler, and the identifier field is used to tag the data so that the data flow processor knows what to do with the data. In this way, the identifier field acts like an indication for the data flow handler. The system uses a module number to direct each token to a specific data flow handler. If the module number matches the number of modules in a particular row, then the appropriate action is taken on the data. If not recognized, the token is directed to the output data bus.

문헌, Kimori, S. et al. 자동적으로 시간 맞춰진 회로에 의한 적합한 파이프 라인 기구, IEEE J. of Solid-State Circuit, Vol. 23, No. 1,. Feb. 1988, 에서는 자동적으로 시간이 맞춰진 회로를 가진 적합한 파이프 라인을 개시한다. 비동기 파이프 라인은 복수의 파이프 라인 단으로 구성된다. 각각의 파이프 라인 단은 파이프 라인 단에 특정한 논리 동작을 수행하는 결합된 논리 회로에 앞선 입력 데이타 래치의 그룹으로 구성된다. 데이타 래치는 그 단과 관련된 데이타 전송 제어 회로에 의해 발생되는 트리거 신호와 동시에 공급된다. 데이타 전송 제어 회로는 연속된 파이프 라인 단사이에서 데이타 전송의 핸드 쉐이크 모드로 신호 선들의 제어를 보내고 승인하는 연결고리를 형성하기 위해 연결된다. 더군다나, 복호기는 일반적으로 현재의 단내의 연산자에서 행해진 실행을 선택하기위해 각 단에서 공급된다. 또한 복합 복호 처리를 앞서 복호화하고 논리 회로에서의 임계 진로 문제를 완화시키기 위해 앞선 단에서의 복호기를 배치시키는 것이 가능하다. 서브 모듈사이의 모든 상호처리는 완전히 지역 배분화된 결정에 의해 결정되고 이에 덧붙여서 각 서브모듈은 자체적으로 데이타 버퍼링 및 같은 시간에 자동 시간 맞춰진 데이타 전송 제어를 수행하기 때문에 파이프 라인의 적합한 특성은 어느 집중된 제어도 제거한다. 마지막으로 파이프 라인의 적합성을 증가시키기 위해 빈 단이 단들 사이에 신뢰할만한 데이타 전송을 확실히 하기 위해 점유된 단들 사이에 끼워진다.See, Kimori, S. et al. Suitable Pipeline Mechanism by Automatically Timed Circuits, IEEE J. of Solid-State Circuits, Vol. 23, No. One,. Feb. In 1988, a suitable pipeline with automatically timed circuits is disclosed. An asynchronous pipeline consists of a plurality of pipeline stages. Each pipeline stage consists of a group of input data latches prior to the combined logic circuitry that performs specific logic operations at the pipeline stage. The data latch is supplied simultaneously with the trigger signal generated by the data transfer control circuit associated with that stage. The data transfer control circuits are connected to form a link between the successive pipeline stages to send and acknowledge the control of the signal lines in the handshake mode of data transfer. Furthermore, a decoder is usually supplied at each stage to select the execution done by the operator in the current stage. It is also possible to place the decoder at the preceding stage to decode the complex decoding process earlier and to mitigate the critical path problem in the logic circuit. All interprocessing between submodules is determined by fully localized decisions, and in addition, each submodule performs its own data buffering and automatic timed data transfer control at the same time, so that the proper characteristics of the pipeline Remove control as well. Finally, to increase the suitability of the pipeline, empty stages are sandwiched between occupied stages to ensure reliable data transfer between stages.

이에 따라, 본 기술 분야에 숙련된 자라면 중대 기술 시스템의 단점을 제거하는 새롭고 개선된 비디오 압축해제 시스템에 대한 오래도록 느낀 필요성을 인식한다. 본 발명은 명백하게 이런 필요성을 충족시킨다.Accordingly, those skilled in the art recognize the long-standing need for a new and improved video decompression system that eliminates the shortcomings of critical technology systems. The present invention clearly meets this need.

간단히 그리고 일반적으로, 본 발명은 다양한 제어와 데이타 토큰을 가지는 이선식 파이프 라인 시스템에 적용되는 장치에서 새롭게 개선된 방식을 제공한다. 이 시스템의 중요 구성들은 시작 코드감시기, 허프만 디코더와 MSM을 장착한 화상파서(parser), 역 이산 코사인 변환기, 어드레스 생산기를 지닌 DRAM 동기기, 적절한 회로 예상기와 업샘플링과 화상 시간 생성기를 보여주는 회로를 지니고 있다.Briefly and generally, the present invention provides a novel and improved approach in devices applied to two-line pipeline systems with various control and data tokens. The key components of the system include a start code monitor, a Huffman decoder and a parser with an MSM, an inverse discrete cosine converter, a DRAM synchronizer with an address generator, circuitry showing appropriate circuit predictors and upsampling and picture time generators. have.

더 중요한 것은 본 발명의 여러 실현은 MPEG 화상 압축방식과 파이프라인 생성 기계로 정렬된 이선식 인터페이스로 연결된 다단계 기구들을 포함 한다는 것이다. 제어 토큰과 데이타 토큰은 제어와 데이타 토큰을 동시에 나르는 단일 이선식 인터페이스 형식을 능가한다. 토큰 디코더 회로는 그 단계에 타당한 토큰을 인식하기 위한 단계나, 파이프라인을 통과하는 확인되지 않은 토큰을 보내기 위한 곳에 위치한다. 재배치 생성 회로는 정해진 위치에 놓이게 되며, 데이타 토큰을 인식하는 단계들을 재배치하는 확인된 제어에 반응한다. 다양한 종류의 보조부시스템 회로와 생성기술은 메모리 어드레싱, 일반적인 생성 블록을 이용한 변형, 시동기, 비동기 스윙 버퍼, 병렬 허프만 디코더 등등을 나타낸다.More importantly, several implementations of the present invention include multi-level mechanisms connected by MPEG picture compression and a two-wire interface arranged by a pipeline generation machine. Control tokens and data tokens go beyond a single two-wire interface format that carries both control and data tokens at the same time. The token decoder circuitry is located either for recognizing tokens that are valid for that stage, or for sending unverified tokens through the pipeline. The relocation generation circuit is placed in a fixed position and responds to the confirmed control of relocating the steps of recognizing the data token. Various types of auxiliary system circuits and generation techniques represent memory addressing, transformations using common generation blocks, starters, asynchronous swing buffers, parallel Huffman decoders, and so on.

이상의 예로서, 단지 한계를 긋는 것이 아니라, 본 발명은 시동기, 현재의 시간을 결정하기 위한 스탬프, 첫번째 회로에 들어있는 시스템 초기화 시간의 클럭기준, 첫번째 회로의 시스템 시간을 위한 클럭기준을 지니는 통신 내의 첫번째 시간 카운터, 첫번째 시간 카운터에 의해서 동기화되는 두번째 회로의 클럭기준에 의해서 초기화되며, 지역 시스템 시간의 복사를 가지기 위한 그리고 두번째 시간 카운터와 시간 스탬프 비교에 의해서 지역 시스템 시간의 복사본과 시스템 시간 사이의 현 시간 오차를 결정하는 두번째 시간 카운터와 같은 다양한 사항을 포함한다. 더 나아가서는, 디스플레이 시간을 결정하기 위한 시간 스탬프를 사용한 시스템 디코더를 동기시키기 위한 기구, 시스템 디코더 내의 시스템 시간을 초기화시키는 클럭기준, 시스템 디코더 내에 있는 시스템 시간을 지키기 위한 클럭기준을 지니는 통신내의 첫번째 시간 카운터 그리고 지역 시스템 시간을 기지고 두번째 시간 카운터와 시간 스탬프의 비교에 의해서 시스템 시간과 지역 복사 시스템 시간의 차이에서 나타나는 디스플레이시 간 오차의 결정을 위한 첫번째 시간 카운터와 동기된 화상 디코더의 클럭기준에 의해 초기화되는 두번째 기간 카운터를 포함한다.In the above example, the present invention is not merely to draw a limit, but the present invention provides a communication system having a starter, a stamp for determining the current time, a clock reference for the system initialization time contained in the first circuit, and a clock reference for the system time of the first circuit. The first time counter, initialized by the clock reference of the second circuit synchronized by the first time counter, has a copy of the local system time and the current time between the copy of the local system time and the system time by comparing the time stamp with the second time counter. It includes a variety of things, such as a second time counter that determines the time error. Furthermore, the first time in a communication with a mechanism for synchronizing the system decoder using the time stamp to determine the display time, a clock reference for initializing the system time in the system decoder, and a clock reference for keeping the system time in the system decoder. By the clock reference of the picture decoder synchronized with the first time counter for determining the display time error resulting from the difference between the system time and the local copying system time by counting the counter and the local system time and comparing the second time counter with the time stamp. Contains a second period counter that is initialized.

본 발명의 다른 실시예는 첫번째 회로에서 시스템 시간을 초기화시키기 위한 클럭기준을 사용하여 첫번째와 두번째 회로를 동기시키는 장치, 시스템 시간을 지키는 클럭기준은 포함한 통신 내의 시간 카운터를 가진 첫번째 회로, 기본 스트림 시간을 제공하는 첫번째 회로내의 첫번째 기본 스트림 시간 카운터를 포함한다. 첫번째 회로는 타임 스탬프를 받아 들이는 곳에 적용되며, 기본 스트림 시간과 타임 스탬프의 합에서 시스템 시간을 뺀 것에 의해서 처음 회로는 동기화 시간을 발생한다. 두번째 회로는 첫번째 회로에서 동기화 된 시간을 받아들이는 데 적용되며 기본 스트림의 시간의 지역 복사본의 재공과 기본 스트림 시간의 지역 복사본과 동기화된 시간의 비교를 통하여 시간 오차를 결정하기 위한 기본 스트림 카운터와 동기되는 두번째 기본 스트림 카운터를 가지고 있다. 이 방법으로 시간의 오차를 결정하기 위해서 클럭기준 신호가 두번째 회로로 직접 전달되지 않아도 된다.Another embodiment of the present invention is an apparatus for synchronizing first and second circuits using a clock reference for initializing system time in a first circuit, a first circuit with a time counter in communication including a clock reference for keeping system time, and an elementary stream time. It includes the first elementary stream time counter in the first circuit that provides. The first circuit is applied where the time stamp is taken, and the first circuit generates a synchronization time by subtracting the system time from the sum of the elementary stream time and the time stamp. The second circuit is adapted to accept the synchronized time in the first circuit and synchronizes with the base stream counter to determine the time error through the comparison of the time synchronized with the local copy of the base stream's time and the synchronized time with the local copy of the base stream's time. Has a second elementary stream counter. In this way, the clock reference signal does not have to be passed directly to the second circuit to determine the time error.

본 발명의 다른 실시예는, 첫번째 회로 시스템 시간을 초기화시키기 위한 클럭기준을 가지는 첫번째와 두번째 회로를 동기화시키는 기기이다. 첫번째 회로는 시스템 시간을 지키기 위한 클럭기준을 가지는 통신내의 시간 카운터 그리고 화상 디코드하는 시간의 제공을 위한 첫번째 화상 시간 카운터를 가지고 있다. 첫번째 회로는 화상시간을 받고, 시스템 시간을 빼는 곳에 적용된다. 두번째 회로는 첫번째 회로로부터 들어온 동기된 시간을 받도록 적용되며, 화상 디코딩 시간의 복사본을 제공하며, 화상 디코딩 시간의 지역 복사본과 동기화된 시간을 비교하여 화상 시간 스탬프와 시스템 시간 사이의 시간 오차를 결정하기 위한 첫번째 화상 시간 카운터와 동기된 두번째 화상 시간 카운터를 가지고 있다. 따라서, 시간의 오차를 결정하기 위해서 클럭기준신호를 직접 두번째 회로로 보내지 않아도 된다.Another embodiment of the present invention is a device for synchronizing a first and a second circuit having a clock reference for initializing the first circuit system time. The first circuit has a time counter in the communication having a clock reference to keep the system time and a first picture time counter for providing time to decode the picture. The first circuit is applied to receive burn time and subtract system time. The second circuit is adapted to receive the synchronized time coming from the first circuit, providing a copy of the picture decoding time, and comparing the synchronized time with the local copy of the picture decoding time to determine the time error between the picture time stamp and the system time. Has a second picture time counter synchronized with the first picture time counter. Therefore, it is not necessary to send the clock reference signal directly to the second circuit to determine the error of time.

본 발명은 또한 패킷 헤더에 시간 스탬프를 가지는 화상 데이타 스트림에 시간 정보를 제공하는 방식을 포함하며 여기서 시간 스탬프라 함은 데이타 패킷에서의 첫번째 화상을 의미한다. 다음 단계에서는 레지스터에 패킷 헤더에서 추출된 기간 스탬프정보를 저장하는 플래그를 공급받는다. 다음은, 화상으로부터 시간 스탬프가 레지스터로 올겨진다. 다음으로 이 방법은 화상이 시작하는 곳과 만나게 되며, 후속으로 플래그의 상태를 검사함으로 레지스터에 정착한 시간 스탬프정보가 들어있나를 검사한다. 만일 플래그가 레지스터에 정확한 시간 스탬프가 들어 있음을 알리면, 거기에 대한 반응으로 시간 스트림(stream)이 생성되며 그 시간 스탬프는 다시 데이타 스트립으로 들어가게 된다.The invention also includes a way of providing time information in a picture data stream having a time stamp in the packet header, where the time stamp means the first picture in the data packet. In the next step, the register is supplied with a flag for storing the period stamp information extracted from the packet header. Next, the time stamp is posted from the image to the register. This method then encounters where the picture begins, and subsequently checks the state of the flag to see if it contains time stamp information that has settled in the register. If the flag indicates that the register contains the correct time stamp, a response to it creates a time stream, which in turn enters the data strip.

본 발명의 다른 실시예는 16비트로 제한된 기본 스트림 타임 카운터에 적용되는 위에서 설명한 장비를 포함한다. 비슷하게, 기본(elementary) 스트림 디코더 내에 위치한 두번째 기본 스트림 시간 카운터가 16비트로 제한된, 위에서 설명한 것과 비슷한 장비가 있다. 더 나아가서는, 기본 스트림디코더를 제어하기 위한 시간 동기화가 16비트로 제한된, 위에서 설명한 것과 비슷한 장비가 있다. 본 발명은 화상을 디코딩하고, 문턱값에 대한 디스플레이 시간 오차를 결정하기 위한 과정을 가지고 있다. 그리고, 앞으로의 진행을 위해서, 그리고 시간 스탬프가 지정되었는지를 결정하기 위해서, 시간 스탬프 토큰과 화상 시간을 비교하기 위해서 그리고 지정된 시간의 오차를 결정하기 위한 비교치 생성을 위해서 화상 데이타를 토큰으로 분해한다. 다음으로 시간 오차가 지정하는 값이 외부에서 인정받은 값과 비교되었을 때, 그 비교치가 - 문턱값과 비교한 경우에 - 수용할 수 있는 범위인지를 결정한다.Another embodiment of the present invention includes the equipment described above applied to an elementary stream time counter limited to 16 bits. Similarly, there is similar equipment as described above, where the second elementary stream time counter located within the elementary stream decoder is limited to 16 bits. Furthermore, there is a similar device as described above, where the time synchronization for controlling the elementary stream decoder is limited to 16 bits. The present invention has a process for decoding a picture and determining a display time error with respect to a threshold. Then, the image data is decomposed into tokens for further processing and to determine whether a time stamp is specified, to compare the time stamp token with the image time, and to generate a comparison value for determining an error of the specified time. . Next, when the value specified by the time error is compared with an externally recognized value, it is determined whether the comparison value is-if compared with a threshold value-an acceptable range.

다른 응용 범위는, 시스템 디코더와 화상 디코더를 사용하는 장치를 포함한다. 시스템 디코더는 MPEG 시스템 스트림을 받아들이고, 스트림으로부터의 화상 데이타와 화상 시간 스탬프를 디먹스시키도록 고안된다. 시스템 디코더는 시스템 시간을 표시하는 첫번째 시간 카운터를 가지고 있다. 화상 디코더는 화상 데이타와 화상 시간 스탬프를 받아들이며, 첫번째 시간 카운터와 동기된 두번째 시간 카운터를 가지고 있다. 화상 디코더는 지속적으로 동일한 비율로 화상 데이타를 받아들이고 다양한 비율로 화상 데이타를 출력하며, 화상 시간 스탬프를 분해하기 위한 디코더 버퍼를 가지고 있다. 화상 디코더는 화상 데이타로부터의 화상을 디코딩을 하는 동안, 디코딩된 화상을 위한 화상 시간 스탬프와 적절한 디스플레이 시간을 결정하는 두번째 시간 카운터와 비교도 한다. 첫번째 회로에, X=ET+TS-SY라는 공식에 의해서, 두번째 회로에 동기화된 시간(X)을 제공하고 동기화된 기본 스트림 시간(ET2)을 발생시키며, ET2-X공식에 의해서 그리고 동기화된 시간(X)을 이용해 시간의 오차를 얻어냄에 따라서 시스템 시간(SY), 시간 스탬프(TS), 기본 스트림 시간(ET)을 사용함에 있어서 얻어지는 동기화 시간(X), 시간 스탬프(TS) 그리고 시스템 시간(SY)을 제공함에 의해서 첫번째 회로와 두번째 회로의 시간 오차를 결정하는 방법도 있다. 따라서, 시스템 시간을 두번째 회로로 보내지 않고서도 첫번째 회로와 두번째 회로의 시간 등기화를 이룰 수 있다.Another application scope includes a system decoder and an apparatus using an image decoder. The system decoder is designed to accept an MPEG system stream and demux the picture data and picture time stamps from the stream. The system decoder has a first time counter that indicates the system time. The picture decoder accepts picture data and picture time stamps and has a second time counter synchronized with the first time counter. The picture decoder continuously receives picture data at the same rate, outputs picture data at various rates, and has a decoder buffer for decomposing picture time stamps. While the picture decoder decodes the picture from the picture data, it also compares the picture time stamp for the decoded picture with a second time counter that determines the appropriate display time. In the first circuit, the formula X = ET + TS-SY gives the synchronized time (X) to the second circuit and generates a synchronized elementary stream time (ET2), by the ET2-X formula and the synchronized time. Synchronization time (X), time stamp (TS) and system time obtained from using system time (SY), time stamp (TS), elementary stream time (ET) as the time error is obtained using (X) Another method is to determine the time error of the first and second circuits by providing (SY). Thus, time equalization of the first and second circuits can be achieved without sending system time to the second circuit.

첫번째와 두번째 회로의 시간오차를 결정하는 방법은 아래와 같은 절차를 거친다:The method for determining the time error of the first and second circuits is as follows:

첫번째 회로에 시간 스탬프(TS)와 시작 시간(IT)를 넣어주고, 공식 X=TS-1에 따라 TS와 IT를 이용하여 동기화된 시간(X)를 구한다. 두번째 회로에는 동기화된 시간(X)를 넣어 동기화된 기본 스트림 시간을 생성하여(ET), 공식 ET-X에 따라 동기화된 시간(X)를 사용하여 시간의 오차를 구한다.Put the time stamp (TS) and the start time (IT) in the first circuit, and find the synchronized time (X) using TS and IT according to the formula X = TS-1. In the second circuit, the synchronized time (X) is input to generate a synchronized elementary stream time (ET), and the time error is obtained using the synchronized time (X) according to the formula ET-X.

첫번째 회로와 두번째 회로의 시간 오차를 구하는 또 다른 방법은 다음과 같은 절차를 거친다 : 첫번째 회로에 신스템 시간(ST), 화상 시간 스탬프(VTS) 그리고 화상 디코딩 시간(VT)를 넣어주고, 공식 X=VT+VTS-SY에 따라서 동기화된 시간(X)을 구한다. 두번째 회로에 동기화된 시간(X)를 넣어주고 첫번째 회로의 화상 디코딩 시간(VT)와 동기된 두번째 회로의 화상 디코딩 시간(VT2)를 발생시켜 공식 VT2-X에 따라서 시간 오차를 구한다. 따라서 시스템 시간을 두번째 회로로 보내지 않고서도 첫번째 회로와 두번째 회로의 시간의 동기가 가능하다.Another way to find the time difference between the first and second circuits is as follows: Put the synth time (ST), the picture time stamp (VTS), and the picture decoding time (VT) in the first circuit, and Find the synchronized time (X) according to = VT + VTS-SY. A time error is obtained according to the formula VT2-X by inserting the time X synchronized to the second circuit and generating the picture decoding time VT2 of the second circuit synchronized with the picture decoding time VT of the first circuit. Thus, it is possible to synchronize the time of the first and second circuits without sending the system time to the second circuit.

본 발명에 의해서, 병렬 허프만 디코더 단은 MPEG 허프만 코드 가변 길이(VLCs)와 고정 길이 코드(FLCs)를 디코딩 시키기가 가능하고, 파서(parser) 마이크로 프로그램이 가능한 기계의 제어 아래서 토큰의 분배가 가능하며 그리고 좋은 출력을 유지할 수 있다.According to the present invention, the parallel Huffman decoder stage is capable of decoding MPEG Huffman code variable lengths (VLCs) and fixed length codes (FLCs), and the distribution of tokens under the control of a parser microprogrammable machine. And good output can be maintained.

본 발명의 실시예에서 코드 룩업 기술은 요구되는 결과를 얻기위한 허프만의 디코딩 그리고, 일정하지 않거나 자연계에서는 인정되지 않는 MPEG-2 변환 상수표를 다루기 위해서 사용된다. 본 발명의 실행은 외부제어기의 도음이 없이 한 주기동안의 스트림에서부터 오는 더 복잡한 요소들의 디코딩에도 사용된다.In the embodiment of the present invention, the code lookup technique is used to handle Huffman decoding to obtain the required result, and to handle MPEG-2 conversion constant tables which are not constant or not accepted in nature. The implementation of the present invention is also used to decode more complex elements from a stream for one period without the aid of an external controller.

VLC를 디코드하기 위해서, 먼저 입력은 최상위와 최하위를 다루는 이(異) 입력 레지스터에 넣어진다. 셀렉터가 다음 VLC의 시작과 ROM 입력을 정렬시키기 위해서 사용된다. 따라서 가장 처음의 VLC에 있어서, 셀렉터는 59비트의 입력중에서 28비트만 출력하고, 이중 처음 16비트는 허프만 코드 RAM으로 보내진다. 다음 VLC에 대해서는, 지금까지 디토딩된 비트 수에 의해서 셀렉터가 입력을 쉬프트한다. 디코드 되는 동안에 각각의 VLC의 크기를 더해나감으로서 비트의 가산은 전체합을 구하기 위해서 이루어진다. 다양한 워드의 길이는 디코드가 가능한 최대코드의 길이의 결과이며, 즉 28 비트 MPEG-1 에스케이프 코드 상수 이며, 그리고, 최대 VLC의 크기는 16비트이다. (DCT 상수표)To decode the VLC, the input is first put into two input registers that handle the top and bottom. The selector is used to align the start of the next VLC with the ROM input. Thus, for the first VLC, the selector only outputs 28 bits of the 59-bit input, of which the first 16 bits are sent to the Huffman code RAM. For the next VLC, the selector shifts the input by the number of bits detoted so far. By adding the size of each VLC while it is being decoded, the addition of bits is done to find the total. The length of the various words is the result of the maximum code length that can be decoded, that is, the 28-bit MPEG-1 escape code constant, and the maximum VLC size is 16 bits. (DCT constant table)

“도표 선택” 입력은 MPEG에 의해서 요구되는 다양한 허프만 코드표 중에서의 선택을 위해서 사용된다.The "Chart Selection" input is used to select from the various Huffman code tables required by MPEG.

RON은 셀렉터/쉬프터에 의해서 제어되는 어드레스를 가지고 있다. ROM은 VLC 테이블 인덱스 계산을 수행하며, 다음으로 디코드된 데이타를 얻기 위해서 인덱스-데이타 과정을 수행한다.RON has an address controlled by a selector / shifter. The ROM performs a VLC table index calculation, and then performs an index-data process to obtain decoded data.

인덱스 계산은 현 데이타 를 구성하는 허프만 코드를 다루기 위해서 구성된 “던-케어”와 같이 수행하는 내용물의 어드레스 지정이 가능한 메모리(content addressable memory-CAM)이다. 인덱스의 생성을 알고리즘에 의해서 보다는 룩-업 방식에 의해서 생성되기 때문에, 인정되고 있는 표(table)를 다루는 데는 아무런 제한이 없다.Index calculation is a content addressable memory (CAM) that performs the same thing as "Dung-Care" configured to handle the Huffman code that composes the current data. Since the creation of the index is created by a look-up rather than by an algorithm, there is no limit to dealing with a recognized table.

본 발명의 ROM어드레스는 두 가지의 분야가 있다. 더 넓은 분야는 디코드되기 위한 비트-패턴이고, 작은 분야는 검증되기 위한 허프만 코드표를 선택하는 것이다. 완성된 MPEG 코드표의 추가로, ROM은 다른 코드표를 위해서 존재하는 허용되지 않는 VLC 패턴을 인식하는 내용을 가지고 있다.The ROM address of the present invention has two fields. The wider field is the bit-pattern to be decoded, and the smaller field is to select the Huffman code table to be verified. In addition to the completed MPEG code table, the ROM has the content of recognizing the disallowed VLC patterns that exist for other code tables.

본 발명의 다른 실시예로, 제한된 길이의 워드를 제공하고, 다양한 길이의 데이타의 어드레스 지정을 위한 고정된 비트수를 가지고, 필드와 어드레스 필드의 길이를 정의하기 위해 사용되는 절차가 있다. 고정된 길이의 워드 메모리의 어드레스를 지정하고, 데이타에 어드레스를 지정하고 교환된 필드와 어드레스 필드를 가지는 고정된 비트수를 가지게 하는 절차도 있다. 또 상태 머신과 산술 코어를 포함하는 메모리에 어드레스를 지정하는 장치가 있다.In another embodiment of the present invention, there is a procedure used to provide a word of limited length, have a fixed number of bits for addressing data of varying length, and define the length of the field and address field. There is also a procedure for addressing a fixed length word memory, addressing data and having a fixed number of bits with swapped fields and address fields. There is also an apparatus for addressing a memory containing a state machine and an arithmetic core.

메모리에 어드레스 지정은 다음과 같은 절차에 의해서 특징지워진다 :Addressing in memory is characterized by the following procedure:

다양한 길이 워드의 어드레스 지정을 위해 사용되는 미리 지정된 고정된 수의 비트를 가지는, 고정된 길이의 워드를 제공; 필드와 어드레스 필드의 길이의 정의를 가지고 있는 고정된 길이의 워드를 정의; 적어도 한 비트를 종결 표시로 가지고 있는 필드를 정의하는 길이를 제공; 데이타의 어드레스를 정의하는 다양한 비트를 지닌 어드레스 필드의 정의; 가변 길이 데이타와 역관계에 있는 어드레스 필드내의 비트수 조정; 가변 길이 데이타의 크기와 직접적인 관계에 있는 필드의 비트수의 조정; 그리고 필드와 어드레스 필드의 길이를 조절하는 동안 가변길이 데이타를 위한 고정 길이의 워드를 유지등이다.Providing a fixed length word having a predetermined fixed number of bits used for addressing various length words; Defining a fixed length word having a definition of the length of the field and address field; Providing a length defining a field having at least one bit as a termination mark; Definition of an address field with various bits defining the address of the data; Adjusting the number of bits in an address field that is inversely related to variable length data; Adjusting the number of bits in a field that is directly related to the size of variable length data; And maintaining a fixed length word for variable length data while adjusting the length of the field and address field.

메모리의 어드레스 지정을 위한 과정은 다음과 같은 사항을 포함한다;The process for addressing the memory involves:

데이타의 어드레스를 정의하는 다양한 비트수를 가진 어드레스 필드의 정의; 적어도 하나의 보조 비트를 지니고 있는 보조 필드의 다양한 길이 정의; 적어도 하나의 보도 비트를 어드레스 필드와 보조 필드사이의 종결점으로 준비하고 있는 보조 필드; 분리된 어드레스 지정원으로부터 보조 비트를 지적하는 보조 필드의 사용; 그리고, 어드레스 필드의 길이와 보조 필드의 길이를 역으로 조정하는 동안 가변 길이 데이타를 위한 고정 길이의 워드를 유지.Definition of an address field with various number of bits defining the address of the data; Defining various lengths of auxiliary fields having at least one auxiliary bit; An auxiliary field preparing at least one press bit as an end point between an address field and an auxiliary field; Use of an auxiliary field indicating an auxiliary bit from a separate addresser; And maintain a fixed length word for variable length data while adjusting the length of the address field and the length of the auxiliary field in reverse.

본 발명에 의하면, 메모리에 가변 길이 데이타의 어드레스 지정은 부분적인 워드로 구성된 미리 길이가 예상된 워드의 길이를 가지는 메모리를 공급, 최하위 비트보정을 수용할 수 있도록 부분적인 워드를 회전, 나머지 부분의 워드도 확산시켜 수용된 워드가 부분적인 워드처럼 인식, 나머지 부분의 워드를 다시 저장, 그리고 부분적인 워드가 다시 본래의 자리로 들어가도록 회전에 의해서 특징지워질 수 있다.According to the present invention, addressing of variable-length data into a memory supplies a memory having a pre-expected word length consisting of partial words, rotating partial words to accommodate least significant bit correction, and rest of the remaining portions. Words can also be spread and recognizable as partial words, re-stored in the rest of the word, and characterized by rotation so that the partial word is returned to its original position.

본 발명은 고정길이 워드의 어드레스 지정, 다양한 길이의 데이타의 어드레스 지정을 위한 고정 길이의 비트를 가지고 필드와 어드레스 필드의 길이를 정의하기 위한 방법과 장비를 제공한다. 추가로, 고정된 길이의 비트수를 가지고 보조 필드와 어드레스 필드를 가지는 데이타의 어드레스 지정을 위해 사용되는 고정 길이의 워드가 사용될 수도 있다.The present invention provides methods and equipment for defining fields and lengths of address fields with fixed length bits for addressing fixed length words, addressing of various lengths of data. In addition, a fixed length word may be used that has a fixed number of bits and is used for addressing data having an auxiliary field and an address field.

본 발명은 RAM으로부터 RAM의 미리 지정된 길이 N보다 작은 M번째의 워드를 액세스하는 방법도 포함한다. RAM은 RAM으로부터 들어가고 나가는 것을 조정하는 인에이블, 디스에이블라인을 가지고 있으며, 그건 RAM에 액세스 하는 방법은 다음과 같은 단계를 포함한다.The present invention also includes a method of accessing the Mth word smaller than the predetermined length N of the RAM from the RAM. RAM has an enable and disable line that controls what goes in and out of RAM, and how to access RAM includes the following steps:

RAM으로부터 읽거나 쓰기위한 워드 N개를 배열한다;Arrange N words for reading or writing from RAM;

M 워드가 언제 RAM에 쓰였나 혹은 읽혔나를 결정, M은 N보다 작다;Determines when M words were written to or read from RAM, M is less than N;

M 워드가 RAM에 쓰이거나 읽힌 순간을 결정하여 RAM을 디스에이블 시킨다.Disables RAM by determining when M words are written to or read from RAM.

본 발명은 DRAM에 대해 2차원 영상은 꺼내고 저장하는 액세스 방법도 포함한다. DRAM은 서로다른 두 뱅크를 가지고 있으며, 각각의 뱅크는 데이타를 페이지와 같이 읽고 쓸 수 있으며, 2차원의 영상은 셀의 2차원적인 그리드에 정렬되며, 각각의 셀은 MxN 픽셀 행렬을 가지게 되며, 그리고 각각의 셀을 점거하고 있는 워드는 다음과 같은 방법으로 DRAM에 액세스 한다.The present invention also includes an access method for extracting and storing a two-dimensional image of a DRAM. DRAMs have two different banks, each bank can read and write data as pages, two-dimensional images are arranged in a two-dimensional grid of cells, and each cell has an MxN pixel matrix, The word occupying each cell accesses the DRAM in the following way.

a) 각각의 셀을 두 뱅크 중에서 특정한 벵크로 지정하여 그 특정 뱅크의 페이지로부터 특정 셀이 읽히거나 쓰일 수 있도록 하며, 각각의 셀이 다른 뱅크와 연관이 있도록 한다. 즉 경계에 있는 셀은 같은 열에 있거나 같은 행에 있도록 셀을 뱅크에 지정한다.a) Designate each cell as a particular bank of two banks so that a particular cell can be read or written from a page of that particular bank, and each cell is associated with a different bank. That is, you assign cells to banks so that the cells at the border are in the same column or in the same row.

b) 픽셀의 행렬로 이루어진 셀과 연합한 데이타 워드를 읽는다. 단 그것은 2차원 그리드 패턴과 일치하지 않으나 2차원 그리드 패턴속에 있는 셀속의 픽셀과는 일치한다.b) Read a data word associated with a cell consisting of a matrix of pixels. It does not match the two-dimensional grid pattern, but matches the pixels in the cells in the two-dimensional grid pattern.

c) 정렬되지 않은 셀과 연관된 데이타 워드를 지니고 있는 2차원 그리드 패턴속의 셀을 찾아낸다.c) Find cells in a two-dimensional grid pattern that contain data words associated with unaligned cells.

d) 정렬되지 않은 셀과 관련된 데이타 워드를 지니고 있다고 판정된 그리드 패턴내의 셀과 관련된 데이타 워드를 DRAM의 첫번째 뱅크로부터 읽어낸다.d) Read the data words associated with the cells in the grid pattern determined to have data words associated with the unaligned cells from the first bank of DRAM.

e) 정렬되지 않은 셀과 관련된 데이타 워드를 지니고 있다고 판정된 그리드 패턴내의 다른 셀과 관련된 데이타 워드를 DRAM의 두번째 뱅크로부터 읽어낸다.e) Read data words associated with other cells in the grid pattern determined to have data words associated with the unaligned cells from the second bank of DRAM.

f) 정렬되지 않은 모든 셀과 관련된 데이타 워드가 모두 읽혀질 때 까지 (d)부터 (e)의 과정을 반복한다.f) Repeat steps (d) through (e) until all data words associated with all unaligned cells have been read.

본 발명은 RAM 인터페이스가 RAM의 어드레스 지정을 위해 필요한 어드레스를 생성하는 발생기에서 RAM에 연결되는 버스를 위한 RAM 인터페이스도 제공한다. 어드레스 생성기는 이선식 인터페이스를 통하여 RAM 인터페이스와 통신을 한다.The present invention also provides a RAM interface for a bus that is connected to the RAM in a generator where the RAM interface generates the addresses needed for addressing the RAM. The address generator communicates with the RAM interface via a two-wire interface.

본 발명은 프레임이나 필드와 같이 정돈된, 인코드된 화상 정보를 수용하는 버퍼의 제어 방식을 제공한다. 이 방식은 입력되는 각 디코드된 프레임의 화상의 수를 결정, 어떤 시간에나 예상된 제공 가능한 수의 결정, 화상의 번호가 제공 가능한 수와 일치하거나 지난 경우에 버퍼를 준비시키는 것과 같은 방식을 동원한다.The present invention provides a control scheme of a buffer for receiving encoded picture information, such as a frame or a field. This method employs methods such as determining the number of pictures of each decoded frame to be input, determining the predictable number at any time, and preparing a buffer if the number of pictures matches or exceeds the number available. .

따라서, 디자인이나 발전 그리고 화상 디코딩 시스템을 위하여 고민했던 이들에게는 본 발명의 완성으로 더 개선된 성과가 있으리라 본다. 본 발명의 다른 목적과 쓰임은 다음에 나오는 더 자세한 설명과 도표를 통하여 소개될 것이다.Therefore, those who have struggled for the design or development and the image decoding system will have a further improvement in the completion of the present invention. Other objects and uses of the invention will be introduced through the following detailed description and diagrams.

발명 실행의 이어지는 설명에서, 하기의 항목들은 자주 사용되며 아래 용어에 의해 일반적으로 정의된다.In the following description of the practice of the invention, the following items are frequently used and are generally defined by the following terms.

[용어설명][Glossary]

블록 : 화면 요소들의 8행 8열 행렬 또는 64 DCT 계수(양자화 또는 양자화 해제된 출처)Block: an 8-row, 8-column matrix of screen elements, or 64 DCT coefficients (quantized or unquantized sources)

색체(요소) : 비트 흐름내에 정의된 방식에서 주요 색깔에 연관된 두 개의 다른 색의 신호 중 하나를 표현하는 행렬, 블록 또는 단일의 화면 요소Color element (element): A matrix, block, or single picture element that represents one of two different color signals associated with a primary color in a manner defined within a bit flow.

부호화된 표현 : 부호화된 형태에서 표현되는 데이타 요소Coded Representation: The data element represented in the coded form.

부호화된 비디오 비트 흐름 : 이 명세 사항에서 정의된 일련의 하나 또는 그 이상의 화면의 부호화된 표현Coded Video Bit Flow: A coded representation of a series of one or more screens as defined in this specification.

부호화된 순서 : 화면이 전송되고 복호화된 순서. 이 순서는 전시 순서와 같을 필요는 없다.Coded Order: The order in which the picture is transmitted and decoded. This order need not be the same as the display order.

요소 : 화면을 구성하는 세 가지 행렬들(명도, 두 가지 색채) 중 하나로부터의 행렬, 블록 또는 단일의 화면 요소.Element: A matrix, block, or single screen element from one of the three matrices (brightness, two colors) that make up the screen.

압축 : 데이타 항목을 표현하는데 사용되는 비트의 수의 감소.Compression: Reduction in the number of bits used to represent a data item.

복호기 : 복호화 처리 과정의 실시예.Decoder: An embodiment of a decoding process.

복호화(처리) : 이 명세 사항에서 정의된, 입력의 부호화된 비트 흐름을 판독하고, 복호화된 화면 또는 오디오 샘플을 발생시키는 처리 과정.Decoding (Processing): The process of reading the encoded bit flow of an input, as defined in this specification, and generating a decoded picture or audio sample.

전시 순서 : 복호화된 화면이 전시되는 순서. 전형적으로, 이것은 화면이 부호기의 입력에서 나타난 순서와 같다.Display Order: The order in which the decoded screens are displayed. Typically, this is the same order in which the screens appear at the input of the encoder.

부호화(처리) : 이 명세 사항에서 명기되지 않은, 입력 화면 또는 오디오 샘플의 흐름을 판독하고, 이 명세 사항에서 정의된 유효한 부호화된 비트 흐름을 발생시키는 처리 과정.Encoding (processing): The process of reading a stream of input pictures or audio samples, not specified in this specification, and generating a valid encoded bit flow defined in this specification.

내부 부호화 : 단지 매크로 블록 또는 화면으로부터의 정보만 사용하는 매크로 블록 또는 화면의 부호화.Internal encoding: Encoding of a macroblock or picture using only information from the macroblock or picture.

명도(성분) : 비트 흐름내에 정의된 방식에서 주요 색깔에 연관된 신호의 단색 표현을 표현하는 행렬, 블록 또는 단일의 화면 성분.Brightness (component): A matrix, block, or single picture component that represents a monochrome representation of a signal associated with a primary color in a manner defined within a bit flow.

매크로 블록 : 화면의 명도 요소의 16 × 16 구분으로부터 나온 색채 데이타의 8 × 8 블록에 해당하는 명도 데이타의 4개의 8 × 8 블록 및 2개의 4:2:0 색채 포맷, 4개의 4:2:2 색채 포맷 또는 8개의 4:4:4 색채 포맷. 매크로 블록은 때때로 화면 요소 데이타를 언급하는 데 사용되고, 때때로 이 명세 사항의 이 부분에서 정의된 구문의 매크로 블록 헤더에 정의된 화면 요소 값 및 다른 데이타 요소의 부호화된 표현을 언급하는 데 사용된다. 이 기술에서 통상적인 기능 중 하나로, 사용법은 문맥에서 제외된다.Macro Blocks: 4 8 × 8 blocks of brightness data and 2 4: 2: 0 color formats, 4 4: 2: corresponding to 8 × 8 blocks of color data from 16 × 16 divisions of brightness elements on the screen Two color formats or eight 4: 4: 4 color formats. Macro blocks are sometimes used to refer to picture element data, and sometimes used to refer to picture element values defined in the macro block header of syntax defined in this part of this specification, and to encoded representations of other data elements. As one of the common functions in this technique, usage is excluded from the context.

움직임 보상 : 화면 요소 값의 예측의 효율성을 개선하기 위한 움직임 벡터의 사용. 예측은 예측 에러 신호를 형성하는 데 사용되는 미리 복호화된 화면 요소 값을 포함한 과거 및/또는 미래의 참고 화면으로 오프셋을 제공하기 위해 움직임 벡터를 사용한다.Motion Compensation: Use of motion vectors to improve the efficiency of prediction of screen element values. Prediction uses motion vectors to provide an offset to past and / or future reference pictures that contain pre-decoded picture element values used to form the prediction error signal.

움직임 벡터 : 현재의 화면에서의 좌표상의 위치로부터 참고 화면에서의 좌표로 오프셋을 제공하는 움직임 보상을 위해 사용되는 이차원 벡터.Motion vector: A two-dimensional vector used for motion compensation that provides an offset from a coordinate location on the current screen to coordinates on a reference screen.

비-내부 부호화 : 매크로 블록, 또는 정보 자체 및 매크로 블록으로부터의 정보를 사용하는 화면, 및 다른 시간에서 발생한 화면들의 부호화Non-internal encoding: encoding of a macroblock or a picture using information itself and information from the macroblock, and pictures occurring at different times

PEL : 화면 요소.PEL: Screen element.

화면 : 출처, 부호화 또는 재건된 영상 데이타. 출처 또는 재건된 화면은 명도 및 두 개의 색채 신호를 표현하는 8 비트 숫자의 3 개의 직사각형 행렬들로 구성된다. 비월 주사 방식의 비디오에서, 화면이 한 프레임, 또는 문맥에 따르는 프레임의 탑(top) 필드나 바텀(bottom) 필드에 관계되는 데 반해, 개선된 비디오에서는 화면이 프레임과 동일하다.Screen: Source, coded or reconstructed image data. The source or reconstructed picture consists of three rectangular matrices of 8-bit numbers representing brightness and two chroma signals. In interlaced video, the picture is the same as the frame in the enhanced video, whereas the picture is related to the top or bottom field of one frame or frame according to the context.

예측 : 현재 복호화되는 화면 요소 값 또는 데이타 요소의 추정치를 제공하는 예측기의 사용.Prediction: The use of a predictor that provides an estimate of the current decoded picture element value or data element.

재구성 처리 단계(RPS) : 다양한 작업을 수행하기 위해 자체를 재구성하는, 인식된 토큰에 해당하는 단계.Reconstruction Processing Step (RPS): A step that corresponds to a recognized token that reconstructs itself to perform various tasks.

슬라이스(SLICE) : 일련의 매크로 블록.Slice A series of macro blocks.

토큰 : 제어 및/또는 데이타 함수를 위한 상호작용하는 인터페이싱 메신저 패키지 형태의 광범위하게 적용되는 단위.Token: A widely applied unit in the form of an interactive interfacing messenger package for control and / or data functions.

시작 부호[시스템 및 비디오] : 유일한 부호화된 비트 흐름내에 구체화된 32 비트 부호. 이들은 부호화 구문에서의 구조의 어느 부분을 인식하는 것을 포함한 몇 가지 목적을 위해 사용된다.Start code [system and video]: A 32-bit code embodied in a unique coded bit stream. These are used for several purposes, including identifying any part of the structure in the encoding syntax.

가변 길이 부호화 : VLC : 짧은 부호 워드를 자주 사용하는 종목에, 긴 부호 워드를 자주 사용하지 않는 종목에 할당하는 부호화를 위한 역으로 사용할 수 있는 과정.Variable length coding: VLC: A process that can be used as an inverse for coding to assign a short code word to a frequently used item and a long code word to a less frequently used item.

비디오 시퀀스 : 일련의 하나 또는 그 이상의 화면.Video sequence: A series of one or more screens.

“발명의 상세한 설명”은 다음의 부분을 포함한다."Detailed Description of the Invention" includes the following parts.

1) 기억 장치 주소 지정에 대한 발명의 상세한 설명1) Detailed description of the invention on storage addressing

고정된 폭의 워드내의 가변 길이 필드Variable-length fields in fixed-width words

주소 대체를 수행하는 가변 길이 필드를 가진 고정 폭 워드를 사용Use fixed-width words with variable length fields to perform address substitution

고정 폭 워드를 가진 가변 폭 데이타의 주소 지정Addressing variable width data with fixed width words

마이크로 부호화된 상태의 기계 구조Machine structure in microencoded state

연산 핵심Computational core

2) 공동의 처리 블록을 사용한 데이타 변환을 위한 발명의 상세한 설명2) Detailed description of the invention for data transformation using common processing blocks

발명의 이론적 배경Theoretical background of the invention

3) 시간 동기화를 위한 발명의 상세한 설명3) Detailed description of the invention for time synchronization

4) 비동기 스윙 버퍼를 위한 발명의 상세한 설명4) Detailed description of the invention for an asynchronous swing buffer

5) 비디오 정보 저장을 위한 발명의 상세한 설명5) Detailed description of the invention for storing video information

6) 평행 허프만 복호기를 위한 발명의 상세한 설명6) Detailed description of the invention for parallel Huffman decoder

허프만 부호 ROMHuffman code ROM

최대화되는 처리량Maximized Throughput

FLC 및 토큰FLC and Tokens

실행 기구Execution mechanism

7) 보다 상세한 설명7) more detailed description

제1도에서 특히 언급된, 발명의 가장 일반적인 특성의 예시적 실시예를 소개하는 것으로써, 발명의 제시된 구상 200을 통한 데이타 흐름이 나타난다. 현재 발명의 실시예는 주로 다양한 제어 및 데이타 토큰을 가진 투-와이어 파이프 라인 시스템을 사용하여 실행된다. 시스템의 주요 요소는 시작 부호 감지기 201, 허프만 복호기 203 및 마이크로 프로그램된 상태 기계(MSM) 204를 결합한 비디오 분석기 202, 역 이산 코사인 변환 205, 관련 주소 발생 단위 207을 가진 동기 DRAM 제어기 206, 업샘플링 210과 211 그리고 비디오 타이밍 발생기 212를 포함한 적절한 예측 회로 208 및 전시 회로 209.By introducing exemplary embodiments of the most common features of the invention, particularly mentioned in FIG. 1, data flow through the presented concept 200 of the invention is shown. Embodiments of the present invention are primarily implemented using a two-wire pipeline system with various control and data tokens. The main elements of the system are the video analyzer 202, which combines the start sign detector 201, the Huffman decoder 203, and the micro-programmed state machine (MSM) 204, the synchronous DRAM controller 206 with the inverse discrete cosine transform 205, the associated address generation unit 207, the upsampling 210 And 211 and a suitable prediction circuit including the video timing generator 212 208 and the display circuit 209.

본 원은 Discovision Associates에 의해 1994년 3월 24일에 파일로 만들어진 “비디오 압축해제”라 제목이 붙은 영국 특허 출원 제 9405914.4 호에 나타난 것과 비슷한 주제 사항에 관련한다. 그리고, 나중에 한 출원은 본 출원에서의 참고에 의해 특별히 결합된다.This application is related to a topic similar to that shown in British Patent Application No. 9405914.4 entitled “Video Decompression” filed on March 24, 1994 by Discovision Associates. And later applications are specifically incorporated by reference in this application.

위에서 언급한 것에 따라서, 본 발명의 특정 측면, 특성 및 서브시스템 영역은 아래의 보다 구체적인 상세서에 언급될 것이다. 도면에서 참고 자료에서와 같이 숫자들은 다양한 도면과 그림을 통해 같거나 해당하는 부분을 정의한다.In accordance with the above, certain aspects, features, and subsystems of the invention will be mentioned in more specific details below. As with references in the figures, the numbers define the same or corresponding parts throughout the various figures and figures.

기억 장치 주소 지정을 위한 발명의 자세한 설명Detailed description of the invention for storage addressing

본 발명에 따라 기억 장치에 주소 지정하기 위한 방법과 장치가 여기에 설명된다. 특히, 본 발명은 가변 폭 비트 필드를 맡기기 위해 고정된 폭의 워드를 제공한다. 더더욱, 본 발명은 고정된 폭 워드를 가진 가변폭의 데이타에 주소 지정의 방법을 제시한다. 실시예의 여러가지 형태에서 다양한 비트 필드는 워드내로 대체되는 비트를 명기하거나, 고정폭의 워드를 가진 가변폭 데이타에 주소를 지정하는 워드의 사용되지 않은 부분을 명기하는 데 사용된다. 덧붙여, 본 발명의 시스템은 연산 핵심부를 가진 마이크로 부호화된 상태의 기계를 포함한다.A method and apparatus for addressing a storage device in accordance with the present invention are described herein. In particular, the present invention provides a fixed width word for accepting a variable width bit field. Moreover, the present invention provides a method of addressing variable width data with fixed width words. In various forms of embodiments the various bit fields are used to specify the bits to be replaced within words, or to specify the unused portion of a word that addresses variable width data with words of fixed width. In addition, the system of the present invention includes a machine in a micro coded state with a computational core.

마이크로 부호화된 상태의 기계는 다방면의 계산 및/혹은 복잡한 계산에 대한 필요성이 있는 계획 문제를 풀기 위하여 사용될 예정이다. 이런 계획의 예시는 주소 발생, 흐름 분석 및 복호화, 그리고 필터 탭 계수 계산을 포함한다. 이런 관점에서 주소 지정은 두 가지 다른 특성을 처리해야 한다 : (1) 워드의 가변폭 부분에 액세스하는 가변 길이 주소 및 (2) 주소 대체. 현재 발명에서 64 × 32 비트 환경을 가지는 RAM은 64 × 32 비트, 128 × 16 비트, 256 × 8 비트, 512 × 4 비트, 1024 × 2 비트, 또는 2048 × 1 비트의 포맷을 가지는 부분 워드내에 주소 지정될 수 있어야 한다.Machines in the microencoded state will be used to solve planning problems that require the need for versatile and / or complex computations. Examples of such schemes include address generation, flow analysis and decoding, and filter tap coefficient calculations. In this regard, addressing must deal with two different characteristics: (1) variable-length addresses and (2) address substitution to access variable-width portions of words. In the present invention, a RAM having a 64 × 32 bit environment is addressed in a partial word having a 64 × 32 bit, 128 × 16 bit, 256 × 8 bit, 512 × 4 bit, 1024 × 2 bit, or 2048 × 1 bit format. Should be able to be specified.

[고정 폭 워드내의 가변 길이 필드][Variable length field in fixed width word]

많은 적용에서, 대체, 가변 폭 데이타 주소 지정, 또는 워드의 다른 부분의 압축과 같은 작용을 위한 워드의 가변 부분을 정의하는 것이 유용하다. 워드의 가변 부분을 정의하는 편리한 방법은 데이타 내의 필드의 폭을 지정하는 첨가된 워드(또는 워드들)을 갖는 것이다. 본 발명에 따라서, 워드 자신내의 이런 정보를 부호화하는 방법이 설명된다. 현재의 방법은 워드의 전체적 정의내의 비트를 저장하는 것, 부호화된 워드의 복호화를 단순화하는 것, 및 부호화된 것의 더 직관적인 관점을 제공하는 것에 대하여 이점을 갖는다. 더더욱, 만약 가변 폭 필드가 워드내에서 인정된 최상위 또는 최하위 비트라면, 이런 부호화 방법이 적용될 수 있다.In many applications, it is useful to define variable portions of words for actions such as replacement, variable width data addressing, or compression of other portions of words. A convenient way to define the variable part of a word is to have an added word (or words) that specifies the width of the field in the data. According to the invention, a method of encoding such information in the word itself is described. Current methods have advantages in storing bits in the overall definition of the word, simplifying the decoding of the coded word, and providing a more intuitive view of the coded. Moreover, if the variable width field is the most significant or least significant bit recognized in the word, this encoding method can be applied.

따라서, 테이블 1은 8 비트 워드내에 정의된 최하위의 것으로 인정된 비트인 가변 폭의 필드(“F” 표시가 된)의 두 가지 예를 보여준다.Thus, Table 1 shows two examples of a variable width field (denoted "F") that is the least significant bit defined within an 8 bit word.

[표 1]TABLE 1

테이블 2는 2 진 필드의 최대폭을 지정하는 충분한 추가 비트들을 사용하여 테이블 1에서 나타난 필드를 부호화하는 통상적 방법을 보여준다. (“x” 표시가 된 비트는 “던 케어”이다, 다시 말해, 그들의 값은 중요하지 않다.) 이런 방법은 비트의 사용에서 확실히 불충분하며, 더구나 본 발명에서 설명된 것보다 덜 직관적인 형태를 제공한다.Table 2 shows a typical way of encoding the field shown in Table 1 using enough additional bits to specify the maximum width of the binary field. (The bits marked with an "x" are "dun care", that is, their values are not important.) This method is certainly insufficient in the use of the bits, and moreover has a less intuitive form than described in the present invention. to provide.

[표 2]TABLE 2

본 발명에 따르는 새로운 방법은 워드내의 필드를 정의한다. 이 방법은 연속 표시기 및 종료 표시기를 사용하여 필드를 정의한다. 종료 표시기에 앞서는 일련의 연속 표시기로서, 필드는 필드의 한 끝에서부터 지정된다. 그러나, 길이 0인 필드인 경우, 오직 종료 표시기만이 워드의 끝에서 제공된다. 연속 표시기와 종료 표시기 둘다 단일의 비트이며, 서로 보수이어야 한다. 덧붙여, 필드는 워드의 다른 끝에서 인정되어야 한다. 따라서, 필드를 부호화 하기 위한 본 발명의 방법은 원래 워드 폭에 오직 한 비트의 여분의 폭을 필요로 한다.The new method according to the invention defines a field in a word. This method uses a continuous indicator and an end indicator to define the field. As a series of consecutive indicators preceding the end indicator, the field is specified from one end of the field. However, for a zero length field, only an end indicator is provided at the end of the word. Both the continuous indicator and the end indicator are single bits and must be complementary to each other. In addition, the field must be accepted at the other end of the word. Thus, the method of the present invention for encoding a field requires only one bit of extra width in the original word width.

테이블 3에서 보듯이, 새로운 방법에 따르는 테이블 1에서 보인 필드의 부호화가 설명된다. 이 예시에서 연속 표시기는 “1”이고, 종료 표시기는 “0”이다. 이 예시에서 필드는 가장 덜 중요한 비트로 인정된다.As shown in Table 3, the coding of the fields shown in Table 1 according to the new method is described. In this example, the continuous indicator is "1" and the end indicator is "0". In this example, the field is considered the least significant bit.

[표 3]TABLE 3

따라서, 본 발명에 따르는 부호화 방법의 장점은 다음과 같은 것이 있다. ;Therefore, the advantages of the encoding method according to the present invention are as follows. ;

1. 부호화에서 필요한 비트 수의 감소1. Reduction of the number of bits required for encoding

2. 일상적으로 요구되는 테이블 1-2에서 나타난 “필드 정의”의 복호화에서의 “1에 대한 x”를 위한 필요가 이미 2x에 대한 1의 형태가 된 부호화에서 갖춰져 있으므로, 복호화 처리에서 단순화된 것이 요구된다.2. Since the need for “x for 1” in the decoding of the “field definition” shown in Table 1-2, which is routinely required, is already in place in the encoding in the form of 1 for 2 x , it is simplified in the decoding process. Is required.

3. 부호화는 더 쉽게 인식되도록 정의된 필드를 허용하는 더욱 직관적인 형태이다.3. Encoding is a more intuitive form of allowing fields that are defined to be more easily recognized.

따라서, 테이블 3의 부호화가 테이블 4의 부호화와 유사한 것을 제공하게 종료 표시기와 연속 표시기가 뒤바뀌도록 본 발명의 부호화 방법의 사용이 또한 사용될 수 있다. 그래서, “1” 또는 “0”의 사용이 이 적용을 통해 상호 교환하여 사용된다.Thus, the use of the encoding method of the present invention can also be used such that the end indicator and the continuous indicator are reversed to provide that the encoding of Table 3 is similar to the encoding of Table 4. Thus, the use of "1" or "0" is used interchangeably through this application.

[표 4]TABLE 4

이전에 확인되었듯이, 부호화된 필드는 워드의 다른 한 쪽 끝에서 인정되어야 한다. 테이블 5는 가장 중요하다고 인정된 필드를 예시한다. 다시 말해, 이들은 필드가 최상위 비트(MSB)로부터 최하위 비트(LSB)를 향해 올라가며 도달하는 것과 첫 종료 표시기를 포함한다는 것을 제외하고는 가장 덜 중요하다고 인정되는 비트의 필드에서와 유사한 방법으로 부호화된다. 테이블 5에서 나타난 필드의 부호화는 테이블 6에서 나타난다.As previously identified, the coded field must be accepted at the other end of the word. Table 5 illustrates the fields that are considered the most important. In other words, they are encoded in a similar manner as in the field of bits that are considered least important except that the fields reach up from the most significant bit (MSB) to the least significant bit (LSB) and contain the first end indicator. The encoding of the fields shown in Table 5 is shown in Table 6.

[표 5]TABLE 5

[표 6]TABLE 6

더구나, 필드는 워드의 가장 덜 중요한 끝 및 가장 중요한 끝으로부터 동시에 부호화될 수도 있다. 예를 들어, 테이블 7에서 나타난 두 가지 필드는 예전에 설명한 것처럼 각 필드에 대해 오직 하나의 비트만 첨가하여 테이블 8에서와 같이 부호화될 수 있다.Moreover, the fields may be encoded simultaneously from the least significant end and most significant end of the word. For example, the two fields shown in Table 7 may be encoded as in Table 8 by adding only one bit for each field as described previously.

[표 7]TABLE 7

[표 8]TABLE 8

[주소 대체를 실행하는 가변 길이 필드를 가진 고정 폭 워드의 사용][Use of fixed width word with variable length field to perform address substitution]

다른 값에 의해 기억 장치 주소의 일부분을 대체하는 것이 유용한 경우가 있다. 이런 방식으로 데이타 의존의 주소를 구성하는 것이 가능하다. 본 발명의 부호화 방법은 주소의 어느 부분이 대체될 수 있는가를 지정하는 기억 장치의 주소들에 적용될 수 있다. 만약 가변 길이 필드에서 가장 덜 중요하다고 인정된 비트가 주소에 사용된다면, 대체 필드는 정의될 수 있다. 예를 들어, Obcccccccccccc의 12 비트 값에 의해 대체된 5 개의 가장 덜 중요한 비트를 갖는 부호화된 12 비트 주소 Obaaaaaaaaaaaa는 Obaaaaaaa011111이 될 것이며, 주소 Obaaaaaaaccccc를 제공한다. 테이블 9는 12 비트 주소내로 대체된 부호화를 나타낸다.It may be useful to replace part of the storage address by another value. In this way it is possible to construct an address of a data dependency. The encoding method of the present invention can be applied to addresses of a storage device specifying which part of the address can be replaced. If the least significant bit in the variable length field is used for the address, a replacement field may be defined. For example, the encoded 12-bit address Obaaaaaaaaaaaa with the five least significant bits replaced by the 12-bit value of Obcccccccccccc would be Obaaaaaaa011111, giving the address Obaaaaaaaccccc. Table 9 shows the encoding replaced into a 12-bit address.

[표 9]TABLE 9

[고정 폭 워드를 갖는 가변 폭 데이타에 주소 지정][Addressing variable width data with fixed width word]

본 발명의 한 실시예는 전체 폭에서, 또는 전체 폭까지 2n폭에서 액세스 될 수 있는 기억 장치에 주소 지정을 위한 것이다. (이들 작은 워드는 부분 워드라 불린다.) 따라서, 이는 본 발명의 가변 필드 부호화가 어떻게 이 기억 장치에 주소를 지정하는 데 사용될 수 있는가 하는 것 및 어떻게 기억 장치내로 그런 주소들에 색인을 달 수 있는가를 나타내 줄 것이다.One embodiment of the present invention is for addressing storage devices that can be accessed at full width, or at 2 n widths up to full width. (These small words are called partial words.) Thus, this shows how the variable field coding of the present invention can be used to address this memory and how it can index such addresses into the memory. Will indicate.

32, 16, 8, 4, 2, 1 비트의 폭에서의 64 × 32 비트 레지스터 파일에 액세스하는 것은 주소의 서로 다른 길이를 필요로 한다. 다시 말해, 이 실시예의 실행 도구는 64 × 32 비트, 128 × 16 비트, 256 × 8 비트, 512 × 4 비트, 1024 × 2 비트, 또는 2048 × 1 비트로써 액세스할 수 있는 64 × 32 비트 기억 장치이다. 이것은 12 비트는 2048 × 1 비트 위치들 중 하나에 주소를 지정하는 데 요구되는 반면, 5 비트는 64 × 32 비트 위치 중 하나에 주소를 지정하는데 요구된다는 것을 나타낸다. 따라서, 주소는 가변 길이일 수 있고, 사실 주소의 폭은 기억 장치의 주소 포맷을 지정한다. 따라서, 주소를 압축하고, 그 폭을 정하는 가장 중요하다고 인정된 가변 폭 필드를 사용하여 고정 워드 폭내에 주소를 정할 수 있다. 이는 테이블 10에 예시된다.Accessing a 64x32-bit register file at widths of 32, 16, 8, 4, 2, and 1 bits requires different lengths of addresses. In other words, the execution tool of this embodiment is a 64 × 32 bit storage device accessible as 64 × 32 bit, 128 × 16 bit, 256 × 8 bit, 512 × 4 bit, 1024 × 2 bit, or 2048 × 1 bit. to be. This indicates that 12 bits are required to address one of the 2048 × 1 bit positions, while 5 bits are required to address one of the 64 × 32 bit positions. Thus, the address can be of variable length, and in fact the width of the address specifies the address format of the storage device. Thus, the address can be addressed within a fixed word width using the variable width field, which is considered the most important, to compress the address and determine its width. This is illustrated in Table 10.

[표 10]TABLE 10

주소에 색인을 정하는 것을 허용하기 위해, 그것의 한 부분이 주소 대체를 위해 이전에 설명한 것과 같은 방법을 사용하여 대체될 수 있다. 주소의 대체 부분(또는 필드)는 테이블 10에서 나타낸 것들의 맨 위에 덧붙인 가변 길이 필드(연속 표시기 “1”, 종료 표시기 “0”)에서 가장 덜 중요한 비트로 인정된 것에 의해 정해질 수 있다. 한 예로써, 8 비트 워드의 주소를 사용하여 테이블 11은 대체되는 가장 덜 중요한 비트의 수를 어떻게 정하는 가를 나타낸다. 추가된 가장 덜 중요한 비트는 대체 표시기 척도이다(“w” 표시된). 대체를 위한 고정 폭 워드의 일반적 경우가 도면 2에 나타낸다.To allow indexing of an address, a portion of it can be replaced using the same method as previously described for address substitution. The replacement part (or field) of the address can be determined by the least significant bit recognized in the variable length field (continuous indicator “1”, end indicator “0”) added to the top of those shown in Table 10. As an example, using the address of an 8-bit word, Table 11 shows how to determine the number of least significant bits that are replaced. The least significant bit added is the alternate indicator scale (marked “w”). The general case of a fixed width word for replacement is shown in FIG.

[표 11]TABLE 11

사실상, 대체 부호는 이미 부호화된 주소의 맨 윗부분에 덧붙여진다. 이 부호화로부터, 비합법적 주소, 매우 분명하게 0×0000 과 0×3fff, 들이 있다는 것을 보일 수 있다. 이런 경우, “0”은 8 비트보다 많이 대체되는 것을 막기 위해 맨 아래의 9 비트에 있어야 하며, 위의 6 비트의 “1”은 허용될 수 있는 액세스 폭을 지정한다. 이러한 에러 중 하나가 감지된다면, 액세스는 정해지지 않고, 레지스터 파일 내용이 영향을 받지 않게 될 것이다.In fact, the replacement code is appended to the top of the already encoded address. From this encoding it can be seen that there are illegal addresses, very clearly 0x0000 and 0x3fff. In this case, “0” must be at the bottom 9 bits to prevent more than 8 bits being replaced, and “6” above 6 bits specifies the allowable access width. If one of these errors is detected, access will not be determined and the register file contents will not be affected.

본 발명에 따라서, 레지스터 파일에서 부분의 워드에 주소를 지정하기 위한 시스템 및 액세스하기 위한 시스템은 아래와 같이 논의된다.In accordance with the present invention, a system for addressing and a word for a portion of a register file is discussed below.

일상적인 기억 장치 회로는 기억 장치가 항상 전체 폭에 액세스 되어야 한다는 것을 지시한다. 가변 폭의 액세스를 성취하기 위해, 전체(32 비트) 폭 워드가 판독된다. 이런 전체의 워드는 액세스된 부분의 워드가 가장 덜 중요한 비트에서 인정될 때까지 순환된다. 워드의 윗 부분은 전체 폭으로 그 다음에 출력으로 확장된다. 새로운 가장 중요한 비트 또는 어떤 비슷한 통상적인 방법처럼 기호-크기 숫자의 기호 비트를 사용하여 영(0) 또는 일(1), 기호 확장으로 확장성은 삽입을 포함할수 있다. 확장은 동작의 모드에 의존한다. 부분의 워드가 기억 장치로의 입력이고, 기억 장치내로 다시 기록될 때, 이는 순환된 전체 워드내로 다시 멀티플렉스되고, 이는 이후에 다시 순환되며, 배열내로 기록된다. 제3도는 32 비트 워드의 4 번째 4 비트 워드에 4 비트 부분 워드의 액세스를 위한 이러한 단계를 나타낸다.Routine memory circuitry dictates that memory must always be accessed at full width. To achieve variable width access, a full (32 bit) wide word is read. This whole word is cycled until the word of the accessed part is acknowledged in the least significant bit. The upper part of the word extends to the full width and then to the output. Extensibility to zero or one (1), symbol expansion can include insertions using the symbol bits of the symbol-size number, as in the new most significant bit or any similar conventional method. Expansion depends on the mode of operation. When a word of a portion is input to the memory device and is written back into the memory device, it is multiplexed back into the whole word that was cycled, which is then cycled back and written into the array. 3 shows this step for accessing a four bit partial word to a fourth four bit word of a 32 bit word.

제3도의 “1” 213 행에서 나타낸 강조된 4 비트 워드 처럼, 부분 워드에 액세스하거나 부분 워드를 판독하기 위해서, “2” 214 행에서 나타난 것 처럼 전체폭 워드는 가장 덜 중요한 비트에서 부분의 워드를 배치하기 위해 순환되어야 한다. “3” 215 행에서 나타나는 것 같이, 4 비트 워드는 전체 32 비트 워드를 창조해내기 위해 확장된다. 이 워드는 이제 액세스 될 수 있다.To access a partial word or to read a partial word, as in the highlighted four-bit word shown at line 213 of line 1 of FIG. 3, the full-width word, as shown in line 214 of 214, selects the word of the portion at the least significant bit. To be deployed. As shown in row “3” 215, the 4-bit word is expanded to create the entire 32-bit word. This word can now be accessed.

제3도에서 나타났듯이, 다시 기록되도록 선택된 전체 폭 워드는 “2” 214 행에서 나타난 워드로 멀티플렉스되는 원래의 부분 워드의 폭으로 짧게 잘린다. 가장 덜 중요한 비트 위치에서, 이는 “4” 216 행에 나타난다. 결과적인 워드는 판독된 워드에서 원래의 중요도로 다시 순환되고, 이는 “5” 217 행에 나타난다. 이 전체 위드는 이제 레지스터 파일내로 다시 기록될 수 있다.As shown in FIG. 3, the full width word selected for rewriting is truncated shortly to the width of the original partial word multiplexed with the word shown in line “2” 214. At the least significant bit position, this appears in row “4” 216. The resulting word is cycled back to the original importance in the read word, which appears in line “217”. This entire Weed can now be written back into the register file.

따라서, 다음의 목록은 제3도에서 번호가 매겨진 단계의 요약이다.Thus, the following list is a summary of the numbered steps in FIG.

1. 기억 장치로부터 판독된 전체 워드.1. A whole word read from storage.

2. 오른쪽으로 순환하는 12 비트는 부분 워드를 가장 덜 중요한 비트내로 가져간다.2. The 12 bits circulating to the right bring the partial word into the least significant bits.

3. 전체 워드로 늘어나서 출력으로 전해진다.3. Stretches to the whole word and passes it to the output.

4. 입력 부분 워드는 (2)로부터의 순환된 전체 워드내로 멀티플렉스된다.4. The input partial word is multiplexed into the whole word circulated from (2).

5. 왼쪽으로 순환하는 12 비트는 전체 워드를 기록된 원래의 상태로 가져간다.5. The 12 bits circulating left bring the entire word to its original state as recorded.

위의 접근 방식은 제4도에서 나타난 기억 장치의 데이타 흐름 구조를 제시한다. 구조에서 숫자는 위의 본문과 제3도에서 언급된다.The above approach presents the data flow structure of the storage device shown in FIG. The numbers in the structure are mentioned in the text above and in Figure 3.

기억 장치 주소는 위의 구조를 제어하기 위해 복호화되어야 한다. 이는 주소의 어느 폭의 가장 중요한 비트가 기억 장치로 참고가 되는 비트와 함께 같은 중요도에 있음을 인식해야 한다. 복호화된 주소의 위의 여섯 비트는 32 비트 워드 주소이며, 그 나머지는 한 비트의 주소이다. 따라서, 복호화 단계(대체되는 것과 평행하게)는 가장 중요한 종료 표시기의 위치를 감지함으로써 가변 필드를 정하는 주소의 폭을 복호화하게 된다. (가장 덜 중요한 비트에서 영(0)에 쉬프트 함으로써) 이는 가장 중요한 비트로 인정된 주소를 허용한다. 위의 여섯 비트는 기억 장치의 32 비트 워드 행 주소로서 직접 사용될 수 있다. 예를 들어, 원래의 32 비트 주소는 항상 0b00000의 쉬프트를 가지기 때문에(이는 주소가 가장 중요한 비트로 인정되었을 때 쉬프트되었다), 밑의 다섯 비트는 (제4도에서 보듯이)배럴 쉬프터를 직접 제어하도록 사용될 수 있다. 비슷하게 16 비트 주소는 0bx0000의 쉬프트 다시 말해, 0 또는 16 비트 쉬프트를 가질 수 있다. 그리고, 1 비트 주소는 Obxxxxx 쉬프트, 다시 말해 0 부터 31 비트 쉬프트를 가질 수 있다. 확장기와 입력 멀티플레서는 각각 출력 워드를 숨기고 적절한 중요도로 입력 워드를 멀티플렉스하는 액세스 폭 복호화에 의해 제어된다. 복호화의 블록 다이어그램은 제5도에 나타난다. 이것은 폭과 대체를 위한 두 개의 가변 폭 필드의 복호가 평행으로 그리고 독립적으로 행하여 질 수 있다는 것은 나타낼 수 있다.The storage address must be decrypted to control the above structure. It should be recognized that the most significant bits of any width of the address are of the same importance along with the bits that reference memory. The six bits above the decoded address are 32-bit word addresses, and the rest are one-bit addresses. Thus, the decryption step (parallel to replacement) decodes the width of the address defining the variable field by detecting the position of the most important end indicator. This allows an address to be recognized as the most significant bit (by shifting to zero in the least significant bit). The six bits above can be used directly as the 32-bit word row address of the storage device. For example, since the original 32-bit address always has a shift of 0b00000 (which was shifted when the address was recognized as the most significant bit), the bottom five bits were used to directly control the barrel shifter (as shown in Figure 4). Can be used. Similarly, a 16 bit address can have a shift of 0bx0000, that is, a 0 or 16 bit shift. The 1-bit address may have an Obxxxxx shift, that is, a 0 to 31 bit shift. The expander and input multiplexer are each controlled by access width decryption, which hides the output words and multiplexes the input words with appropriate importance. The block diagram of the decryption is shown in FIG. This may indicate that decoding of the two variable width fields for width and replacement can be done in parallel and independently.

제2도는 아래 두 개의 행에서 보인 것처럼 가변 폭 데이타 및 대체되는 것에 주소를 지정하기 위해 고정된 폭 워드 13 비트 길이의 예를 예시한다. 이 예에서, 8 비트 워드는 0b110:ssss 위치에 주소 지정되고, 여기서 “ssss”는 다른 주소 출처로부터 대체된다.Figure 2 illustrates an example of a fixed width word 13 bit long to address variable width data and replacements as shown in the two rows below. In this example, an 8 bit word is addressed at location 0b110: ssss, where “ssss” is replaced from another address source.

[마이크로 부호화할 수 있는 상태 기계 구조][Micro-encodeable state machine structure]

본 발명에 따라 기억 장치 주소내의 대체되는 것 및 기억 장치의 가변 폭 액세스는 제6도에서 나타난 구조의 마이크로 부호화되는 상태 기계의 이행에서 같이 가져오게 된다. 그 구조는 마이크로 부호 명령이라 불리는 제어 신호의 넓은 워드에 의해 연산 핵심부 219 의 제어를 제공하는 상태 기계 218 중 하나이다. 연산부 핵심 219 는 상태 기계 218 로 차례로 상태 플래그와 데이타를 통과한다.The substitution in the storage address and the variable width access of the storage device are brought together in accordance with the invention in the implementation of the micro-encoded state machine of the structure shown in FIG. The structure is one of the state machines 218 that provide control of the computational core 219 by a broad word of control signal called a micro sign instruction. The operation unit core 219 passes the state flag and data in turn to the state machine 218.

본 발명에 따라서 상태 기계 218은 마이크로 부호 명령의 목록을 포함하는 기억 장치를 포함한다. 통상적인 마이크로 부호화 상태 기계처럼 이는 가까이에서 마이크로 부호 명령의 목록을 통해 착수할 수 있고 또는 점프가 한 명령에서 다른 명령으로 일어날수 있다. 점프 주소는 제7도에 나타난 형태에 있다. 대체된 값은 도면 6과 8에서 보인 것처럼 연산 핵심부 219로부터 온다. 이는 마이크로 부호 프로그램내에 점프 테이블의 구성을 허용한다. 따라서, 예를 들어 만약 점프가 대체된 32 비트를 가지고 만들어지면 점프될 수 있는 가능한 8 개의 인접한 위치가 있다. 각각은 연산 핵심부로부터의 값에 의존한다. 다시 말해, 이는 프로그램될 수 있는 점프가 된다.In accordance with the present invention, state machine 218 includes a storage device that contains a list of microcode instructions. Like a conventional microcoding state machine, this can be undertaken through a list of microsignal instructions at hand or a jump can occur from one instruction to another. The jump address is in the form shown in FIG. The substituted value comes from the computational core 219 as shown in FIGS. 6 and 8. This allows the construction of a jump table in the micro code program. Thus, for example, if a jump is made with 32 bits replaced, there are eight possible adjacent positions that can be jumped. Each depends on the value from the computational core. In other words, this is a jump that can be programmed.

[연산 핵심부][Operation Core]

도면 8에서 나타난 것처럼 연산 핵심부 219는 레지스터 파일 221 이라 불리는 기억 장치, 연산 및 논리 단위(ALU) 222, 입력 포트 223 및 출력 포트 224를 포함한다. 이들 요소는 버스 및 멀티플렉서를 통해 연결된다. 전술된 바와같이, 이들 요소와 이들의 연결을 정하는 멀티플렉서는 상태 기계 218에 의해 나타난 마이크로 부호 명령에 의해 완전히 제어된다. 연산 및 논리 단위(ALU) 222 와 포트 223, 224 는 통상적이나, 레지스터 파일 221은 가변 폭의 색인 지정된 액세스를 허용하는 기억 장치이다. 레지스터 파일 221에의 주소는 마이크로 부호 명령내로 직접 부호화된다.As shown in FIG. 8, arithmetic core 219 includes a storage device called a register file 221, an arithmetic and logic unit (ALU) 222, an input port 223, and an output port 224. These elements are connected via buses and multiplexers. As mentioned above, the multiplexer that defines these elements and their connections is fully controlled by the micro sign instruction indicated by state machine 218. Operational and logical unit (ALU) 222 and ports 223 and 224 are conventional, but register file 221 is a storage device that allows indexed access of variable width. The address in register file 221 is encoded directly into a micro code instruction.

레지스터 파일로 주소 지정하는 이런 방법을 사용하는 많은 이점이 있다. 첫째로 적용의 많은 위치가 기억 장치(이번 경우는 32 비트)의 전체 폭이 될 필요가 없다. 이것이 전체 폭의 위치를 사용하는 장치의 동작에 아무 영향을 못 미치는 반면, 이는 기억 장치 위치의 상당한 낭비이다. 기억 장치 위치의 수를 최소화하는 것은 기억 장치에 의해 사용된 공간의 양을 최소화하게 될 것이다. 따라서, 레지스터 파일내의 용량의 부하를 최소화하는 것이 될 것이다. 이것은 레지스터 파일의 속도를 최대화한다. 두 번째로, 액세스된 기억 장치의 가변 폭에 결합된 색인 지정은 가변 폭의 위치를 통하여 건너뛰는 것을 허용한다. 한 비트의 경우에, 이는 긴 나누기와 곱하기의 훌륭한 이행을 허용한다.There are many advantages to using this method of addressing a register file. Firstly, many locations of the application do not have to be the full width of the storage device (in this case 32 bits). While this has no effect on the operation of the device using full width locations, this is a significant waste of storage location. Minimizing the number of storage locations will minimize the amount of space used by the storage device. Thus, it will be to minimize the load of capacity in the register file. This maximizes the speed of the register file. Secondly, indexing coupled to the variable width of the accessed storage device allows skipping through the variable width locations. In the case of one bit, this allows a good transition of long division and multiplication.

따라서, 요약하면 다음의 단계를 가지는 기억 장치에 주소 지정을 위한 과정이 설명된다. (1) 가변 폭 데이타에 주소 지정에 사용되는 비트의 소정의 고정된 수를 가지는 고정 폭 워드를 제공한다. (2) 필드를 정의하는 폭을 가진 고정 폭 워드 및 종료 표시기로서 사용되는 적어도 한 비트를 가진 필드를 정하는 폭을 제공하는 주소 필드를 정의한다. (3) 데이타의 주소를 정하는 복수의 비트를 가진 주소 필드를 정의한다. (4) 필드와 주소 필드를 정의하는 폭을 변화시키는 동안 가변 폭 데이타의 크기에 직접적 관계에 있는 필드를 정의하고 가변 폭 데이타에 주소 지정을 위한 고정 폭 워드를 유지시키는 폭 내의 비트 수를 변화시키는 가변 폭 데이타의 크기에 역 관계에 있는 주소 필드내의 비트 크기를 변화시킨다. 덧붙여, 다음의 단계를 가지는 기억 장치에 주소 지정을 위한 과정이 설명된다. (1) 데이타에 주소 지정에 사용되는 비트의 소정의 고정된 수를 가지는 고정 폭 워드를 제공한다. (2) 주소 필드를 가진 고정 폭 워드 및 대체 필드를 정의한다. (3) 데이타의 주소를 정하는 복수의 비트를 가진 주소 필드를 정의한다. (4) 적어도 하나의 대체 비트를 갖는 가변 폭 대체 필드를 정의한다. (5) 대체 필드는 주소 필드와 대체 필드사이의 종료 표시기로서 사용하는 적어도 하나의 비트를 갖는다. (6) 주소 필드의 폭 및 대체 필드의 폭을 역으로 변화시키는 동안 분리된 주소 지정된 출처로부터 대체된 비트를 나타내는 대체 필드를 사용하고, 가변 폭 데이타에 주소 지정을 위한 고정 폭 워드를 유지시킨다. 여기에 더해, 기억 장치내에 가변 폭 데이타에 주소 지정을 위한 처리과정이 다음 단계와 같이 기술된다. (1) 부분의 워드로 구성된 소정의 폭의 워드를 가지는 기억 장치를 제공한다. (2) 가장 덜 중요한 비트로 인정된 비트로 액세스되는 부분의 워드를 순환시킨다. (3) 액세스된 워드가 부분의 워드로 인식되도록 워드의 남은 부분을 확장한다. (4) 부분의 워드가 원래의 지점으로 되돌아 갈 때까지 워드의 남은 부분 되돌리고, 워드를 순환시킨다.Thus, in summary, a process for addressing a storage device having the following steps is described. (1) Provide a fixed width word having a predetermined fixed number of bits used for addressing variable width data. (2) Define an address field that provides a fixed width word having a width defining a field and a width defining a field having at least one bit used as an end indicator. (3) Define an address field with a plurality of bits that address the data. (4) While varying the width defining the field and address field, define a field that is directly related to the size of the variable width data, and vary the number of bits within the width to maintain a fixed width word for addressing the variable width data. Change the bit size in the address field that is inversely related to the size of the variable-width data. In addition, a process for addressing a storage device having the following steps is described. (1) Provide a fixed width word having a predetermined fixed number of bits used for addressing data. (2) Define fixed-width words and replacement fields with address fields. (3) Define an address field with a plurality of bits that address the data. (4) Define a variable width replacement field having at least one replacement bit. (5) The replacement field has at least one bit used as an end indicator between the address field and the replacement field. (6) While changing the width of the address field and the width of the replacement field in reverse, use a replacement field that represents bits replaced from separate addressed sources, and maintain a fixed width word for addressing in variable width data. In addition, the processing for addressing variable width data in the storage device is described as the following steps. (1) A storage device having words of a predetermined width composed of words of a portion is provided. (2) Cycle the word of the part that is accessed with the bit recognized as the least significant bit. (3) The remaining part of the word is expanded so that the accessed word is recognized as the word of the part. (4) The remaining part of the word is returned until the word of the part returns to the original point, and the word is circulated.

[공동처리 블록을 이용한 데이타 변환에 관한 발명의 상세한 설명][Detailed Description of Invention on Data Conversion Using Joint Processing Block]

본 발명에 따른 본 실시예는 주파수 대역에서 시간대역으로의 신호변환 방법과, 그 변환을 실시하기 위한 디지탈 회로 구성에 대한 것이다.This embodiment according to the present invention relates to a signal conversion method from a frequency band to a time band and a digital circuit configuration for performing the conversion.

정보량과 전송속도를 동시에 증가시키는 것은 전자통신 분야의 공통된 목표이다. 그러나, 각 통신매체는 전송된 신호를 처리해야 하는 송신부의 하드웨어에서 그러하듯이, 전송속도에 한계를 과한다. 예를 들어, 대표적으로 전신선은 비록 우편문서를 타이핑하고 그것을 읽는 것이 전건(telegraph key)을 두드리는 것보다 빠를지는 모르지만 우편보다는 정보를 전송하는데 훨씬 빠른 매체이다.Increasing the amount of information and transmission speed at the same time is a common goal in the field of electronic communications. However, each communication medium exceeds the transmission speed limit, as is the hardware of the transmitter which must process the transmitted signal. For example, telegraph lines are typically a much faster medium for transmitting information than mail, although typing and reading mail is faster than tapping the telegraph key.

예를 들어, 같은 내용의 정보라도 간명하게 처리된 메시지보다는 길게 처리된 메시지가 전달하는데 더 오래 걸릴 것이다. 가장 빠른 전송 및 수신속도는 송신부와 수신부 모두에서 가능한 빨리 데이타를 처리하기 위해 전송할 데이타를 가능한 압축하고, 이후 고속 전송매체를 이용함으로써 실현되는 것인데, 이것은 흔히 시스템 병목지점의 축소 및 제거를 의미한다.For example, a message that has the same content will take longer to deliver to a processed message than to a simply processed message. The fastest transmission and reception speeds are achieved by compressing the data to be transmitted to process the data as quickly as possible at both the transmitter and the receiver, and then using a high-speed transmission medium, which often means reducing and eliminating system bottlenecks.

많은 양의 데이타를 고속으로 전송하는 것이 필수적인 적용분야는 디지탈 TV 이다. 보편적인 TV 시스템이 아날로그 라디오와 전기신호를 사용하는 반면, 디지탈 TV 전송 시스템은 텔레비전 스크린 상에 디스플레이 되는 각 행렬 화소(‘픽셀’)의 광도와 색조를 제어하는데 아날로그 신호를 이진‘수’로 바꿈으로써 픽셀의 광도와 색조에 대한 이미지의 디지탈형 표현양식을 발생시킨다. 현대식 디지탈 인코딩 방식과 하드웨어 구조는 보편적인 아날로그 전송 시스템보다 훨씬 높은 이유로 정보전송을 가능케 해주는 대표적인 것이다. 이를테면, 디지탈 TV는 보편적인 아날로그 방식으로 구현된 것보다 훨씬 높은 해상도와 생생한 이미지를 얻는 것이 가능하다. 디지탈 TV시스템은, 이른바 HDTV 시스템을 포함하여, 보편적인 아날로그 TV 테크놀로지를 대체할 것으로 기대된다. 공업화된 세계의 많은 곳에서 10년 이내에 전송 및 저장을 위해 아날로그에서 디지탈 이미지화로의 변환은 최근 도처에서 이루어지는 아날로그 오디오 레코드판에서 컴펙트 디스크(CD)로의 대체와 마찬가지 양상을 띌 것이다.Digital TV is an essential application for transmitting large amounts of data at high speed. While universal TV systems use analog radios and electrical signals, digital TV transmission systems convert analog signals to binary 'numbers' to control the luminosity and hue of each matrix pixel ('pixel') displayed on a television screen. This generates a digital representation of the image of the luminance and hue of the pixel. Modern digital encoding schemes and hardware architectures are typical of information transmissions for much higher reasons than conventional analog transmission systems. Digital TVs, for example, are capable of achieving much higher resolutions and vivid images than are realized in universal analog. Digital TV systems, including so-called HDTV systems, are expected to replace common analog TV technologies. In many parts of the industrialized world, the conversion from analog to digital imaging for transmission and storage within 10 years will be the same as the recent replacement of analog audio records to compact discs (CDs).

디지탈 이미지 테크놀로지의 일반적인 활용성을 증가시키기 위해 표준화된 디지탈 이미지 인코딩 방식이 채택되어 왔다. 예전에 표준화 방식은 JPEG으로 알려져 있고, 그것은 정지화상에 쓰인다. 동화상을 처리하는데는 현재 두가지 표준으로 MPEG과 H.261이 있는데, 두가지 모두 동화상의 일련의 프레임 각각에 대해서는 JPEG과 비슷한 방식으로 수행한다.In order to increase the general utility of digital image technology, standardized digital image encoding schemes have been adopted. In the past, the standardization method was known as JPEG, which is used for still images. There are currently two standards for processing moving images, MPEG and H.261, both of which perform in a manner similar to JPEG for each series of frames in a moving image.

단순히 JPEG을 반복적으로 사용하는 방식보다 이점을 가지기 위해 연속적인 프레임 사이의 차이에 근거해, 프레임과 프레임 사이의 변화는 적다는 주지의 사실을 이용하여, 동작한다. 이 ‘차이’에 근거한 정보를 전송 및 저장하는 것은 시간상 가장 가까이 있는 프레임끼리 전혀 비슷하지 않다는 가정 하에 정지화상을 전송하고 저장하는 것보다 적은 시간과 공간을 필요로 하게 된다.It works by using the well-known fact that there is little change between frames based on the difference between successive frames to have an advantage over simply using JPEG repeatedly. Transmitting and storing information based on this “difference” requires less time and space than transmitting and storing still images, assuming that the closest frames in time are not alike.

편의상, 요즘 이용되는 표준방식은 모두 이미지를 타일 혹은 블록으로 나뉘어 연산이 되는데, 각 블록은 픽셀 8개의 폭과 높이를 가지는 한 조각 화상으로 구성된다. 각 픽셀은 그것의 ‘컴포넌트’라 알려진 세개(혹은 그 이상)의 디지탈 숫자로 표현된다. 색깔을 가지는 픽셀은 컴포넌트로 바꾸는데는 많은 방식이 있는데, 예를 들자면 YUB, YCr, Cb, RGB 등의 표준 표기법을 한다. 보편적인 JPEG 류의 방식은 모두 각 컴포넌트에 대해 개별적인 연산을 하게 된다.For convenience, all of the standard methods used today are computed by dividing an image into tiles or blocks, each block consisting of a single image with a width and height of eight pixels. Each pixel is represented by three (or more) digital numbers known as its "components." There are many ways to convert colored pixels into components, for example YUB, YCr, Cb, and RGB. All of the common JPEG-like schemes operate on individual components.

가장 높은 주파수와 관계된 정보는, 사람이 보기에 이미지의 질을 거의 떨어뜨리지 않으면서도, 보통 모두 생략될 수 있다. 사람이 보기에 전혀 정보의 손실을 주지 않으면서 높은 주파수 정보를 제거하는 방식으로 화상의 정보를 줄일 수 있는 능력을 가지기 위해서 공간정보(spatial information 예를 들어, 과도의 실제값)를 가지는 8-by-8 픽셀 블록은 적절한 방법을 이용해 주파수 정보를 얻을 수 있도록 변환되어야 한다. JPEG, MPEG, H,261 표준방식은 모두 8-by-8 공간 행렬을 연산하는데 주지의 DCT(Discrete Cosine Transform)를 이용해 8-by-8 주파수 행렬을 얻는다.Information relating to the highest frequencies can usually be omitted, with little to no human detriment to the image. 8-by having spatial information (e.g., transient real values) in order to have the ability to reduce the information in the picture by removing high frequency information without any loss of information to the human eye. The -8 pixel block must be transformed to obtain frequency information using an appropriate method. The JPEG, MPEG, H, 261 standard methods all use 8-by-8 spatial matrices to calculate 8-by-8 frequency matrices using the known discrete cosine transform (DCT).

앞에서 설명했듯이, 입력 데이타는 정방형의 화상을 표현한다. 입력 데이타를 주파수 대역으로 변환시킬 때 적용하는 변환은 반드시 2차원적이어야 하는데, 그러한 2차원 변환을 효과적으로 계산하는 것은 어렵다. 하지만, 잘 알려진 2차원 DCT와 이것의 IMT(Inverse Discrete Cosine Transform)는 ‘분리가능(separable)’한 특성을 가지고 있다. 이것은 8-by-8 픽셀 블록 내의 64 픽셀을 반드시 동시에 해결하는 것보다는 우선 블록을 열-by-열로 변환하여 중간값을 얻고 이후 그것을 행-by-행으로 변환하여 결국 주파수 값을 얻을 수 있게 된다.As described above, the input data represents a square image. The transformation applied when converting the input data into the frequency band must be two-dimensional, and it is difficult to calculate such two-dimensional transformation effectively. However, the well-known two-dimensional DCT and its Inverse Discrete Cosine Transform (IMT) have a "separable" characteristic. Rather than necessarily solving 64 pixels in an 8-by-8 pixel block at the same time, it is possible to first convert the block to column-by-column to get the median and then to convert it to row-by-row to get the frequency value. .

1차원의 N차 DCT는 2개의 N-by-N 행렬의 곱셈과 수학적으로 같다. 8-by-8 픽셀 블록에 필요한 행렬 곱을 수행하기 위해서는 512번의 곱셈과 448번의 덧셈이 필요하다. 따라서, 8-by-8 픽셀 블록의 2차원 DCT를 완전하게 수행하기 위해서는 1024번의 곱셈과 896번의 덧셈이 필요하게 된다. 이러한 논리연산은, 특히 곱셈에서 복잡하고 느리며 따라서 달성가능한 송신율에 제한을 가한다. 또한, DCT를 구현하는 실리콘 칩 내에 상당한 공간을 필요로 한다.The one-dimensional N-th order DCT is mathematically equivalent to the multiplication of two N-by-N matrices. To perform the matrix multiplication required for 8-by-8 pixel blocks, 512 multiplications and 448 additions are required. Thus, 1024 multiplications and 896 additions are required to fully perform the two-dimensional DCT of the 8-by-8 pixel block. This logical operation is particularly complex and slow in multiplication and thus places a limit on the achievable transmission rate. In addition, significant space is required within the silicon chip implementing the DCT.

필요 계산량을 줄이기 위해 DCT의 순서는 재조정될 수 있다. 현재 DCT에 필요한 계산을 줄이기 위해, 두가지 방법이 쓰이고 있으며, 두가지 모두 이진 데시메이션(binary decimation)을 이용한다. 이진 데시메이션이란 용어는 2개의 N2-by-N2 변환과 이것을 정리하는데 필요한 약간의 계산을 이용하여 N-by-N 변환이 계산될 수 있다는 것을 의미한다. 8-by-8 변환이 512번의 곱셈과 448번의 덧셈을 필요로 하는 반면, 4-by-4 변환은 64번의 곱셈과 48번의 덧셈이 필요하다. 즉 이진 데시메이션은 284번의 곱셈과 352번의 덧셈을 절약해 주는데, 데시메이션을 수행하는데 들어가는 계산은 계산량의 감소와 비교하면 거의 무시할 만하다.The DCTs can be reordered to reduce the amount of computation required. Currently, two methods are used to reduce the computations required for DCT, both of which use binary decimation. The term binary decimation means that an N-by-N transform can be calculated using two N2-by-N2 transforms and some calculations needed to clean them up. The 8-by-8 transform requires 512 multiplications and 448 additions, while the 4-by-4 transform requires 64 multiplications and 48 additions. In other words, binary decimation saves 284 multiplications and 352 additions, and the computation involved in performing decimation is almost negligible compared to the reduction in computation.

현재 이진 데시메이션의 두가지 주된 방법은 용기 리(‘A New Algorithm to Compute the DCT’ IEEE Transaction on Acoustics, Speech and Signal Processing, Vol. Assp 32, No 6, p 1243 December 1984)와 웬-슝 첸(‘A Fast Computational Algorithm for the DCT’, Wen-Hsiung Chen, C, Harrison Smith, SC Pralick, IEEE Transaction on Communications, Col. Com 25, No. 9 1004, September 1977)에 의해 개발되었다. ‘리’의 방법은 ICDT의 정의의 대칭적 성격을 이용하는데, 코사인의 간단한 특성을 이용하여, 순환적인 이진 데시메이션을 위한 방법을 정의한다. ‘리’의 방법은 단지 IDCT에 적합하다.Currently, the two main methods of binary decimation are 'A New Algorithm to Compute the DCT' IEEE Transaction on Acoustics, Speech and Signal Processing, Vol.Assp 32, No 6, p 1243 December 1984) and Wen-Sung Chen ( A Fast Computational Algorithm for the DCT, Wen-Hsiung Chen, C, Harrison Smith, SC Pralick, IEEE Transaction on Communications, Col. Com 25, No. 9 1004, September 1977). Lee's method takes advantage of the symmetrical nature of the ICDT's definition, which uses a simple characteristic of cosine to define a method for circular binary decimation. Lee's method is only suitable for IDCT.

‘첸’의 방법은 행렬이 오직 대각행렬로 줄어드는 순환적인 행렬의 특성을 이용한다. 이 방법에서는 대각 행렬에 대해 알려진 특성을 이용하여 DCT의 간단한 이진 데시메이션을 제공한다.Chen's method takes advantage of the properties of a recursive matrix where the matrix is reduced to only a diagonal matrix. This method provides a simple binary decimation of the DCT using the known properties of the diagonal matrix.

리와 첸 방법의 심각한 단점은 곱셈과 덧셈이 행해져야 하는 시기의 관점에서 볼 때 균형이 잡혀있지 않다는 데 있다. 이 두가지 방법 모두 필연적으로 많은 곱셈 뒤에 따르는 많은 덧셈, 혹은 이와 반대를 요구한다. 따라서, 하드웨어로 리와 첸의 방법을 구현할 때 덧셈기와 곱셈기의 병렬연산은 불가능하게 된다. 이것은 하드웨어의 이상적인 사용은 모든 덧셈기와 뺄셈기가 항상 사용될 수 있을 때 이루어진다는 점에서 볼 때 속도와 효율을 감소시킨다.The serious disadvantage of the Li and Chen method is that it is not balanced in terms of when multiplication and addition should be performed. Both of these methods inevitably require a lot of addition followed by a lot of multiplication or vice versa. Therefore, when implementing Lee and Chen's method in hardware, parallel operation of an adder and a multiplier becomes impossible. This reduces speed and efficiency in that the ideal use of hardware is achieved when all adders and subtractors are always available.

DCT와 IDCT 연산을 수행하는 종래의 방법과 장치의 또다른 단점은, 소위 정규화 계수(normalization)를 처리하기에 대개 어렵고, 알려진 구조(architecture)를 모든 곱셈기가 사용될 때 부가적인 공생시간을 더해야 할 필요가 있다는 점이다.Another drawback of conventional methods and apparatus for performing DCT and IDCT operations is that they are often difficult to handle so-called normalization, and add an additional symbiosis time when all multipliers are used with known architectures. There is a need.

계산을 수행하는 회로장치의 레이아웃(layout)에 관여할 필요가 없는 소프트웨어 설계자들 사이에, 어떤 방법은 비디오 데이타에 순 혹은 역 DCT를 적용하는 것이 매우 간단하고 효율이 높다고 알려져 있다. 그러나, 그러한 방법들은 반도체 회로구조와 하드웨어 지부 연결에 있어서, 디지탈 비디오에 필요한 송신율로 만족스럽게 수행하기에는 너무 느리고 복잡하다.Among software designers who do not need to be concerned with the layout of the circuitry that performs the calculations, it is known that some methods are very simple and efficient to apply forward or reverse DCT to video data. However, such methods are too slow and complicated to perform satisfactorily at the transmission rates required for digital video in semiconductor circuitry and hardware branch connections.

비디오 데이타에 DCT와 IDCT 연산을 수행하는, 실제의 방법과 하드웨어 구조의 또다른 단점은 숫자를 표현하는 데 부동 소수점 내부 표기 방식을 필요로 한다는 것이다. 이 단점을 설명하기 위해 소수점의(있는 경우) 오른쪽에 위치한 자리를 포함하여 세자리 숫자만 다룰 수 있는 계산기를 가지고 있다고 가정하자. 또, 이 계산기로 12.3과 4.56을 더하는 계산을 한다고 가정하자(소수점은 이 두 수의 자지들에 상대적으로 고정되어 있지 않음을 유의하자. 다시 말해, 소수점은 움직일 수 있다.). 계산기로 12.86이라는 답을 충분히 나타내기에 필요한 4자리를 저장할 수 없기 때문에 답을 세자리 수로 줄이기 위해 가장 오른쪽에 있는 ‘6’을 제거하는 방식으로 답을 내림하여 16.8이란 답을 내든지 혹은 가장 가까운 세자리 수인 16.9를 얻기 위해 반올림에 필요한 하드웨어를 갖추어야 한다.Another disadvantage of the actual method and hardware architecture, which performs DCT and IDCT operations on video data, is that floating point internal notation is required to represent numbers. To illustrate this disadvantage, suppose you have a calculator that can handle only three digits, including the one to the right of the decimal point (if any). Also, suppose you use this calculator to add 12.3 and 4.56 (note that the decimal point is not fixed relative to these two cocks. In other words, the decimal point can move). Since the calculator cannot store the four digits necessary to give a 12.86 answer, the answer is rounded down by removing the rightmost '6' to reduce the answer to three digits. You must have the hardware necessary to round up to get 16.9.

이와 같은 간단한 예제가 보여주듯이, 만일 부동소수점 연산이 필요하다면, 정확도의 손실을 감수하든지, 자리맞춤 오차를 최소화하기 위해 매우 복잡하고 공간을 소비하는 회로를 갖추어야 한다. 효율적인 자리맞춤 회로에서조차도 반올림 혹은 내림으로 인한 오차의 누적 및 진행은 비디오 신호에 받아들일 수 없는 디스토션을 초래한다. 이러한 문제는(반올림 혹은 내림 오차는 일반적으로 덧셈보다 곱셈에서 더욱 커지므로) 비디오 신호처리 방법이 몇 번의 곱셈을 필요로 할 때 더욱 심각해진다.As this simple example shows, if floating point operations are needed, either a loss of accuracy or a very complex and space consuming circuit must be in place to minimize the alignment error. Even in efficient justification circuits, the accumulation and progression of errors due to rounding or rounding results in unacceptable distortion in the video signal. This problem is exacerbated when the video signal processing method requires several multiplications (as rounding or rounding errors are generally greater in multiplication than addition).

월등히 효율적인 DCT/IDCT 방법 및 하드웨어 구조는 이 방법에 쓰이는 숫자들이 고정 소수점표기방식을 쓰면서도 각 숫자의 온전한 다이내믹 영역(full dynamic range)이 표현될 수 있도록 보장할 것이다. 그러한 시스템에서는 내림 혹은 반올림 오차는 제거되거나, 적어도 상당히 감소될 것이다.The highly efficient DCT / IDCT method and hardware architecture will ensure that the numbers used in this method can be represented in the full dynamic range of each number while using fixed-point notation. In such a system, the rounding or rounding error will be eliminated or at least significantly reduced.

위의 예에서, 만일 하드웨어가 4자리 수를 처리할 수 있다면, 99.99이상의 숫자는 필요치 않을 것이고 모든 숫자는 둘째와 세째자리 사이에 소수점을 가지게 되는데, 이 소수점은 계산에 전혀 영향을 미치지 않을 것이다. 따라서, 연산은 모든 수가 정수인 것처럼 처리될 수 있다. 즉, 1230+0456=1686은 12.30+4.56=16.86인 것과 통하는데 이것은 ‘1686’이 중간의 6과 8사이에 반드시 소수점을 가져야 한다는 것을 알기 때문이다. 혹은, 만일 숫자(상수이든 아니든)가 선택적으로 스케일링되거나 같은 영역 내에 떨어지도록 조정된다면, 그 영역내의 각 수 또한 정수의 형태로 정확하고 명백하게 표현될 수 있다.In the example above, if the hardware can handle four digits, then numbers above 99.99 will not be needed and all numbers will have a decimal point between the second and third digits, which will not affect the calculation at all. Thus, the operation can be handled as if all numbers are integers. In other words, 1230 + 0456 = 1686 is equivalent to 12.30 + 4.56 = 16.86 because it knows that “1686” must have a decimal point between 6 and 8 in the middle. Or, if a number (either constant or not) is selectively scaled or adjusted to fall within the same area, each number in that area can also be represented accurately and clearly in the form of an integer.

필요한 곱셈기의 수를 줄이는 한가지 방법은 단순히 다른 소스들로부터 입력 데이타를 받아들일 수 있는 하나의 곱셈기를 갖추는 것이다. 어떤 구조에서는 DCT 및 IDCT 계산의 다른 과정에서 필요한 곱셈을 수행하는데 하나의 곱셈기를 사용한다. 비록 그러한 크로스바 스위칭(crossbar switching)은 필요한 곱셈기의 수를 줄여주지만 그것은 대신 곱셈기의 입력을 선택하고, 곱셈기로부터 다른 회로들은 고립시키며, 선택된 소스로부터 온 정확한 신호를 곱셈기에 연결시켜 줄 크고 복잡한 멀티플렉서 구조가 포함되어야만 함을 의미한다. 부가적인 대형 멀티플렉서는 또 공유한 공설기로부터 나온 많은 수의 출력들을 적당한 부회로에 연결시키는 것이 요구된다. 따라서, 크로스바 스위칭 혹은 멀티플렉싱은 복잡하여 일반적으로 느리고(부가적인 저장이 필요하므로), 최종적인 반도체 회로 구현시 많은 비용이 든다.One way to reduce the number of multipliers needed is to simply have a multiplier that can accept input data from other sources. In some structures, one multiplier is used to perform the multiplication required in other processes of DCT and IDCT calculations. Although such crossbar switching reduces the number of multipliers required, it instead has a large and complex multiplexer structure that selects the input of the multiplier, isolates other circuits from the multiplier, and connects the multiplier with the correct signal from the selected source. It must be included. Additional large multiplexers are also required to connect a large number of outputs from the shared snowbox to the appropriate subcircuits. Thus, crossbar switching or multiplexing is complex and generally slow (since additional storage is required), which is expensive to implement the final semiconductor circuit.

크로스바 스위칭을 포함해서, 실재 구조의 또 다른 결정은 범용(general purpose) 곱셈기를 필요로 한다는 것이다. 다시말해, 실재 시스템은 두 개의 입력이 모두 변수인 곱셈기를 필요로 한다. 주지된 바와 같이, 디지탈 곱셈기를 구현한 것에는 일반적으로 덧셈기와 쉬프터(shifter)가 포함되어 곱셈기 워드의 현재 비트가 ‘1’이면 피승수 값은 부분결과(partial sum)가 더해지지만, 현재 비트가 ‘0’이면 그렇지 않다. 범용 곱셈기는 모든 비트가 ‘1’인 경우에도 대처할 수 있어야 하므로, 곱셈기 워드의 모든 비트에는 덧셈기 열이 반드시 갖추어져 있어야 한다.Another decision of the actual structure, including crossbar switching, is that it requires a general purpose multiplier. In other words, a real system needs a multiplier where both inputs are variables. As is well known, implementations of digital multipliers typically include adders and shifters so that if the current bit of the multiplier word is' 1 ', the multiplicand value is added to the partial sum, but the current bit is' 0 'does not. Since a general purpose multiplier must be able to cope with all bits being '1', every bit of a multiplier word must have an adder string.

예를 들어, 데이타 워드가 8비트의 폭을 가지고 있고, 단일 입력(single inputs)에 5를 곱하고자 한다고 가정하자. 5의 9비트 표기는 00000101 이다. 다시 말해 5를 곱하는 디지탈 공정은 단지 입력치를 왼쪽으로 두자리(4를 곱한 것에 상응함)를 이동시키고 이어서 그 이동된 값에 자신을 더하기만 하면 된다.For example, suppose a data word is 8 bits wide and you want to multiply single inputs by 5. The 9-bit notation of 5 is 00000101. In other words, a digital process of multiplying by 5 simply shifts the input to the left two digits (corresponding to the product of 4) and then adds itself to the shifted value.

나머지 6자리의 계수들은 비트 값이 ‘0’이므로 어떠한 이동이나 부가적인 단계가 필요치 않다. 고정계수 곱셈기는, 이 경우 오직 ‘5’만을 곱할 수 있는 곱셈기, 곱셈(캐리 비트를 처리하는데 필요한 회로를 무시하면)을 수행하는데, 단지 하나의 쉬프터와 하나의 덧셈기만을 필요로 한다. 반면, 범용 곱셈기는 여덟 위치 각각에 쉬프터와 덧셈기를 필요로 하지만, 그 중 2개는 사용할 필요도 없다. 예에서 보듯이, 고정계수는 설계자가 계수 중 ‘0’에 해당하는 부분의 덧셈기 영을 제거할 수 있기 때문에 곱셈기를 단순화시킬 수 있고, 이에 따라 실리콘 회로의 면적을 절약하게 된다.The remaining six digit coefficients have a bit value of '0', so no movement or additional steps are required. The fixed-coefficient multiplier, in this case, performs a multiplier that can only multiply '5', multiplying (ignoring the circuitry needed to handle carry bits), and only requires one shifter and one adder. A general purpose multiplier, on the other hand, requires a shifter and an adder in each of the eight positions, but not two of them. As can be seen from the example, fixed coefficients can simplify the multiplier because the designer can remove the adder zero of the portion of the coefficient equal to zero, thus saving the area of the silicon circuit.

본 발명에 따른 IDCT 방법에서는 N-by-N 픽셀 블록의 N열과 N행 각각에 대한 1-D IDCT가 데시메이션되고, N-2 짝수 픽셀 입력워드와 N-2 혹은 픽셀 입력워드 각각에 1-D IDCT를 수행한다.In the IDCT method according to the present invention, 1-D IDCT for each of N columns and N rows of an N-by-N pixel block is decimated, and 1-D is applied to each of N-2 even pixel input words and N-2 or pixel input words. D Perform IDCT.

제기된 실시예에서는, JPEG 표준에 따라 N=8이다. 2차원 IDCT 결과는 2개의 1차원 IDCT를 차례대로 (중간에 데이타의 트랜스포지션을 재배열하는 과정(intermediate reordering-transposition of data)을 실시함으로써 얻어진다.In the example raised, N = 8 according to the JPEG standard. Two-dimensional IDCT results are obtained by performing two one-dimensional IDCTs in turn (intermediate reordering-transposition of data).

공동처리 단계에서, N=8인 경우, 입력값의 첫번째 쌍을 곱셈이 필요없이 출력 덧셈기와 뺄셈기로 통과된다. 입력값의 두번째 쌍 각각은 스케일링된 코사인 값에 따라 각각 2개의 상수 계수에 의해 곱해진다. 공동처리 단계에서 더 이상의 곱셈은 없고 단 한번의 뺄셈과 한번의 덧셈만 요구된다. 이후 두번째 쌍을 짝수 혹은 홀수 결과값을 만들기 위해 입력값의 첫번째 쌍과 쌍을 이루어 더해지거나 차이를 내게 된다.In the coprocessing step, when N = 8, the first pair of input values are passed to the output adder and subtractor without the need for multiplication. Each second pair of input values is multiplied by two constant coefficients each according to the scaled cosine value. There is no further multiplication in the co-processing phase, only one subtraction and one addition are required. The second pair is then added to or paired with the first pair of inputs to produce an even or odd result.

선-공동처리에서는 최소차수 홀수 입력 워드는 공동처리 블록에서 처리되기 전에 2제곱근으로 미리 곱셈되고 홀수 입력워드는 공동처리 블록에서 처리되기 전에 2제곱근으로 미리 곱셈되고 홀수 입력워드들은 쌍을 이루어 더해진다. 후-공동처리 단에서는, 처리된 홀수 입력치에 따른 중간값은 홀수 결과값을 형성하기 위한 소정의 상수 계수로 곱해진다.In pre-co-processing, least-order odd input words are premultiplied by the square root before being processed in the joint processing block, odd-numbered input words are premultiplied by the square root before being processed in the joint processing block, and odd input words are added in pairs. . In the post-joint processing stage, the intermediate value according to the processed odd input value is multiplied by a predetermined constant coefficient to form an odd result value.

짝수와 홀수 결과값을 계산한 후, N/2개의 고차 출력은 간단히 짝수 결과값에서 홀수 결과값을 뺌으로써 만들어지고, N/2개의 저차 출력은 간단히 짝수 결과값에서 홀수 결과값을 더함으로써 만들어진다.After calculating the even and odd results, the N / 2 higher order outputs are made by simply subtracting the odd result from the even result, and the N / 2 lower order outputs are made by simply adding the odd result from the even result. .

DCT(비디오 프로세스 시스템의 전송단에 있는)와 IDCT(본 발명과 여러가지 측면에서 결합하여 출력단에 있는)에 있어서, 수치들은 필요에 따라 고의적으로 단순한 이진 우측 이동에 의해 펙터 2만큼 하향 스케일링된다.For DCT (at the transmission end of a video processing system) and IDCT (at the output end in various aspects of the present invention), the values are scaled down by factor 2 by deliberately simple binary right shift as needed.

이 고의적이고 균형 있는 상향 스케일링은 보편적인 방법에 따라 요구되면 몇 개의 곱셈단계를 없앤다.This deliberate and balanced upscaling eliminates several multiplication steps if required according to a universal method.

본 발명에 따른 방법의 또다른 측면은, 선택된 비트를 ‘1’ 또는 ‘0’으로 미리 세팅하는 방식으로, 상수 계수의 선택된 비트 혹은 중간에 계산된 데이타 워드들이 반올림 내지 조종을 거친다는 점이다. 픽셀 데이타의 2차원 변환을 첫번째 1-D IDCT 처리 단계의 출력값에 두번째 동일한 연산을 수행함으로써 수행된다.Another aspect of the method according to the invention is that the data words calculated in the selected bit or intermediate of the constant coefficients are rounded or manipulated in such a way as to preset the selected bit to '1' or '0'. Two-dimensional transformation of the pixel data is performed by performing a second same operation on the output of the first 1-D IDCT processing step.

본 발명의 또 하나의 측면으로서, IDCT 시스템은 입력 데이타에 선-공동처리, 공동처리, 후-공동처리 계산을 수행하는, 선-공동처리 회로와 공동처리 회로를 포함한다. 총괄 제어기(supervisory controller)는 여러가지 시스템 래치의 로딩을 제어하기 위한 제어 신호를 발생시키는데, 필요에 따라 저차 출력 신호의 형성 및 래치를 위해 짝수와 홀수 결과값을 더하도록 지시하거나, 고차 출력 신호의 형성 및 래치를 위해 짝수 결과값으로부터 홀수 결과값을 빼도록 지시하거나, 내부 멀티플렉서를 순차적으로 제어하는 등 공동처리 블록의 입력래치에 N/2개의 짝수 혹은 N/2개의 홀수번째 입력들에 시간-멀티플렉스 적용을 하게 된다.As another aspect of the present invention, an IDCT system includes a pre-co-processing circuit and a co-processing circuit for performing pre-co-processing, co-processing and post-co-processing calculations on input data. A supervisory controller generates control signals for controlling the loading of various system latches, instructing the addition of even and odd result values for the formation and latching of lower order output signals as needed, or the formation of higher order output signals. And time-multiple of the N / 2 even or N / 2 odd inputs in the input latch of the co-processing block, such as instructing the latch to subtract the odd result from the even result, or sequentially controlling the internal multiplexer. You will apply the flex.

본 발명에서는, 짝수 및 홀수 입력워드들은 가급적 공동처리 블록을 통해 각각 통과되도록 처리된다. 입력워드들은 가급적(꼭 필요한 것은 아니지만), 정확히 오름 내지 내림차순이 아닌, 데이타 경로에 효율적인 ‘버터플라이’ 구조를 가능케 해주는 순서로 래치된다.In the present invention, even and odd input words are processed such that they each pass through a joint processing block whenever possible. The input words are latched in order to enable (but not necessarily) exactly, but not in ascending or descending order, an efficient "butterfly" structure in the data path.

아울러, 최소한 공동처리 회로는 선-논리회로(pre-logic circuit)로써 그것의 적절한 연산을 위해 클록이나 제어신호는 필요없이 형성될 수 있는데, 특별한 응용에 따라 다른 처리 블록에서도 가능하다.In addition, at least the co-processing circuit is a pre-logic circuit, which can be formed without the need for a clock or control signal for its proper operation, which may be possible in other processing blocks depending on the particular application.

범용 곱셈기(2개의 변수 입력)는 필요 없다. 그보다는 제기된 실시예의 전체에 상수 계수 곱셈기가 포함된다. 아울러, 본 발명에 제기된 실시예에서는 고정 소수점 논리장치가 포함되어 있으며, 비디오 데이타에 IDCT 변환을 수행하기 위한 방법과 시스템을 제공하도록 설계되어 있는데 다음의 몇 가지 특징이 있다.A general purpose multiplier (two variable inputs) is not necessary. Rather, a constant coefficient multiplier is included throughout the claimed embodiments. In addition, the embodiment of the present invention includes a fixed-point logic device, and is designed to provide a method and a system for performing IDCT transformation on video data.

1. 비용이 드는 모든 연산의 일정한 사용.1. Constant use of all costly operations.

2. IDCT를 구현하는데 필요한 실리콘 회로의 면적을 줄이기 위해, 작은 숫자의 저장 요소(래치와 같은)를 가지며, 가급적 구조의 효율적인 파이프 라인에 필요한 수보다 많지 않게 기타의 저장요소가 필요한 범용 곱셈기보다는 작은 수의 상수 곱셈기와 결합되어 있다.2. To reduce the area of silicon circuitry required to implement IDCT, have a small number of storage elements (such as latches) and preferably smaller than general-purpose multipliers that require no other storage elements than the number needed for an efficient pipeline of structures. Combined with a constant multiplier of numbers.

3. 각 연산은 난해한 설계가 필요 없도록 조정되어 있다. 예를 들어, ‘리플 덧셈기’가 사용되더라도 이들 연산은 답을 변형하고 구해내는 데 충분한 시간을 허용할 것이다 : 즉, 높은 계산량과 효율을 가지고 지연은 피할 수 있도록 하기 위해 다른 장치들이 재조정 연산을 앞서도록 연산이 조정되어 있는 경우.3. Each operation is tuned to eliminate the need for complicated designs. For example, even if a 'ripple adder' is used, these operations will allow enough time to transform and solve the answer: that is, other devices may be able to precede the recalibration operation with high computation and efficiency to avoid delays. If the calculation is adjusted to

4. 자연 순서대로 결과를 발생시킬 수 있다.4. You can produce results in a natural order.

5. 비용이 안 들고 복잡하지 않은 크로스바 스위칭이 필요하다.5. Inexpensive and uncomplicated crossbar switching is required.

6. 구조가 훨씬 빠른 연산을 지원할 수 있다.6. The structure can support much faster operations.

7. 변환 하드웨어를 통한 데이타의 흐름을 제어하는데 쓰이는 회로는 작은 면적을 차지한다.7. The circuitry used to control the flow of data through the conversion hardware takes up a small area.

[발명의 이론적인 기반][Theoretical basis of invention]

본 발명에 따라 IDCT 시스템에 사용된 다양한 컴포넌트의 목적 및 함수와 신호처리 방법의 장점을 이해하기 위해서는 시스템의 이론적인 기반을 이해하는 것이 도움이 된다.In order to understand the purpose and function of the various components used in the IDCT system and the advantages of the signal processing method, it is helpful to understand the theoretical basis of the system.

[2차원 IDCT의 분리성][Separation of 2D IDCT]

픽셀의 N×N 블록에 대한 2차원 순(forward) DCT의 수학적 정의는 다음과 같다. 여기서 U(j,k)는 픽셀의 절대값(pixel absolute value) X(m,n)에 따른 픽셀 주파수 값이다.The mathematical definition of the two-dimensional forward DCT for N × N blocks of pixels is as follows. U (j, k) is a pixel frequency value according to the pixel absolute value X (m, n).

식 1 :Equation 1:

여기서 j,k=0,1...,N-1 이고,Where j, k = 0,1 ..., N-1,

c(j), c(k)=1/j,k=0 인 경우 : 그 외 경우 1c (j), c (k) = 1 / If j, k = 0: 1 otherwise

2N은 변환의 DC 레벨을 좌우하고, 상수 c(j), c(k)는 주지의 정규 펙터이다.2N determines the DC level of the transform, and the constants c (j) and c (k) are well-known normal factors.

이에 따른 IDCT를 나타내면 다음과 같다.IDCT according to this is as follows.

식 2 :Equation 2:

여기서 j,k=0,1...,N-1 이고,Where j, k = 0,1 ..., N-1,

c(j), c(k)=1/j,k=0 인 경우 : 그외 경우 1c (j), c (k) = 1 / If j, k = 0: 1 otherwise

순방향 DCT는 공간값(spatial value, MPEG 표준에서와 같이, 직접적으로 광도와 같은 특성을 표현하거나 차이를 나타내는)을 주파수 대역 표현으로 변환하는 데 사용된다.Forward DCT is used to convert spatial values (directly expressing luminosity-like characteristics or representing differences, as in the MPEG standard) into frequency band representations.

그 이름이 의미하듯, 역방향 DCT(IDCT)는 다른 ‘방향’의 변환, 즉 주파수 값을 공간값으로 되돌리는 변환을 한다.As its name implies, reverse DCT (IDCT) is a transformation of another 'direction', that is, a frequency value back into a spatial value.

식 2에서, 코사인 함수는 각각 합산 인덱스 중 오직 하나에만 관계되는 함수임을 유의하자.Note that in Equation 2, the cosine function is a function each related to only one of the summation indices.

따라서 식 2는 다음과 같이 정리될 수 있다.Therefore, Equation 2 can be summarized as follows.

식 3 :Equation 3:

이 식은 1차 IDCT 동작의 결과를 입력으로 사용하는 두번째 1차원 IDCT에 의해 직접적인 표준 데이타 트랜스포지션(straightforward standard data transposition)를 거친 뒤 k와 n에 관계되는 모든 항의 곱에 수행된 첫번째 1차원 IDCT와 같다.This equation is the first one-dimensional IDCT performed on the product of all terms related to k and n, followed by a straightforward standard data transposition by a second one-dimensional IDCT using the result of the first-order IDCT operation. same.

[1-D IDCT의 정의][Definition of 1-D IDCT]

1차원 N점 IDCT(n이 짝수인 경우)는 다음과 같은 식에 의해 정의된다.One-dimensional N-point IDCT (when n is even) is defined by the following equation.

식 4 :Equation 4:

여기서 k=0,1...,N-1 이고,Where k = 0,1 ..., N-1,

c(n)=1/n=0 인 경우 : 그 외 경우 1c (n) = 1 / n = 0 otherwise 1

여기서 y(n)은 역변환 함수의 N개의 입력이고, x(k)는 그것에 따른 N개의 결과이다. 2-D인 경우에서와 같이 DCT에 대한 식은 합산부호 하에 같은 구조를 가졌다. 단, 정규화 상수가 합산부호 밖에 있고 식 중 x,y 벡터가 자리바꿈을 했다.Where y (n) is N inputs to the inverse transform function, and x (k) is N results accordingly. As in the case of 2-D, the equation for DCT had the same structure under the sum sign. However, the normalization constant is outside the sum sign and the x and y vectors are inverted.

[1-D IDCT의 레졸루션(resolution)][Resolution of 1-D IDCT]

위에서 보듯이, 2-D IDCT는 트랜스포즈에 의해 분리된 1-IDCT 처리를 순차적으로 이용하여 계산될 수 있다. 한 가지 방법에 따라, 이들 1-D 처리 각각은 또다시 반도체 회로 구현시 복잡도와 필요한 크기를 줄이기 위해 개발된, 하위-순차(sub-procedure)로 쪼개져 내려간다.As shown above, 2-D IDCT can be calculated sequentially using 1-IDCT processing separated by transpose. According to one method, each of these 1-D processes is broken down again into sub-procedures, which were developed to reduce the complexity and size required in semiconductor circuit implementation.

[계수의 정규화][Normalization of coefficients]

앞에서 토의했듯이, IDCT 하드웨어는 설계하는데 있어서 중요한 목표는 회로에 반드시 들어가야 하는 곱셈기와 수를 줄이는 것이다. 따라서 DCT 및 IDCT를 계산하는 거의 모든 방법은 필요한 곱셈의 횟수를 줄이려 시도한다. 하지만, 본 실시예에 따르면, 모든 입력값은 2제곱근 펙터에 의해 고의적으로 상향 스케일링 된다. 다시 말해, 본 발명에 따르면 IDCT식의 우측항은 고의적으로 2제곱근이 곱해진다.As discussed earlier, IDCT hardware is an important goal in design to reduce the number of multipliers that must fit into the circuit. Therefore, almost all methods of calculating DCT and IDCT attempt to reduce the number of multiplications needed. However, according to this embodiment, all input values are deliberately upscaled by a square root factor. In other words, according to the present invention, the right term of the IDCT equation is deliberately multiplied by the square root.

본 발명의 실시예에 따르면, 최종적인 2-D IDCT 처리가 순서대로(중간의 트랜스포지션을 거쳐) 처리된다. 이러한 1-D 처리는 각각 똑같이 2제곱근 펙터를 포함한다. 중간의 트랜스포지션에는 스케일링이 없기 때문에, 2제곱근에 의한 순차적 곱셈 두번의 결과로 최종적인 2-D는 2의 펙터로 상향 스케일링되게 된다. 스케일링되지 않은 값을 얻으려면 회로에서는 단지 2로 나눠주기만 하면 된다. 모든 값은 디지탈 식으로 표현되므로, 이러한 처리는 단순히 데이타를 우측으로 이동시킴으로써 쉽게 수행될 수 있다. 뒤쪽의 좀 더 자세한 설명과 간이, 각 1-D IDCT 단에서의 2제곱근에 의한 상향 스케일링과 2에 의한 하향 스케일링은 이 시스템이 연결되는 또다른 장치에 스케일링된 입력을 만들 필요가 없도록 하기 위해 시스템 하드웨어 내에 있는 덧셈기, 곱셈기, 쉬프터에 의해 수행된다. 이러한 이유로 이 시스템은 JPEG이나 MPEG표준에 따라 동작하는 다른 보편적인 장치와 호환성이 있다. 따라서, 본 발명의 실시예에 따른 정규화는 최소 두번의 2제곱근을 곱하는 동작을 해주기 위한 IDCT 반도체 구조 내의 하드웨어 곱셈기의 필요성을 배제한다. 뒤에 이어질 상세 설명에 따라, 한번의 1-D 동작 입력 데이타에 대한 추가 곱셈단계(2제곱근으로 상향 스케일링)는 보편적인 방법을 사용했을 때 요구되는 또다른 곱셈을 안해도 되게 만든다.In accordance with an embodiment of the invention, the final 2-D IDCT processing is processed in order (via intermediate transposition). Each of these 1-D treatments equally includes a square root factor. Since there is no scaling in the intermediate transposition, the result of two sequential multiplications by the square roots results in the final 2-D scaling up to a factor of two. To get an unscaled value, simply divide by two in the circuit. Since all values are represented digitally, this process can be easily performed by simply moving the data to the right. A more detailed description and explanatory detail later, the upscaling by the square root and the downscaling by 2 in each 1-D IDCT stage, ensures that the system does not need to make scaled inputs to another device to which it is connected. This is done by adders, multipliers, and shifters in hardware. For this reason, the system is compatible with other universal devices that operate according to the JPEG or MPEG standards. Thus, the normalization according to an embodiment of the present invention eliminates the need for a hardware multiplier in the IDCT semiconductor structure to perform the operation of multiplying at least two square roots. As detailed later, an additional multiplication step (upscaling to the square root) of one 1-D motion input data obviates the need for another multiplication required when using the universal method.

[1-D IDCT의 고차 및 저차 출력으로의 분리][Separation of Higher and Lower Order of 1-D IDCT]

식 4는 이제 N/2개의 저차 출력(k=0,1...,N/2-1)과 N/2개의 고차 출력(k=N/2, k=N/2+1, ...N)으로 각각 분리되어 구해줄 수 있다. N=8이면, 먼저 y(0), y(1), y(2), y(3)을 계산하기 위해 입력을 변환하고, 이어 y(0), y(1), y(2), y(3)을 계산하기 위해 입력을 변환하면 된다.Equation 4 now shows N / 2 lower order outputs (k = 0,1 ..., N / 2-1) and N / 2 higher order outputs (k = N / 2, k = N / 2 + 1, .. It can be obtained separately by .N). If N = 8, first convert the input to compute y (0), y (1), y (2), y (3), then y (0), y (1), y (2), We just need to convert the input to compute y (3).

k가 (N/2+1)에서 N으로 변함에 따라 (N/2-1)에서 N으로 변하는, 고차 출력(k=N/2+1,...N)을 위한 변수 k′=(N-1-k)를 도입한다. N=8이면, k=(4,5,6,7)에 대해 k′=(3,2,1,0)이다. 그러면, 식 4는 식 5(합산구간 외는 식 4와 같은)와 식 6의 두개의 보조식으로 나눠짐을 보일 수 있다.Variable k '= (for higher order output (k = N / 2 + 1, ... N), changing from (N / 2-1) to N as k changes from (N / 2 + 1) to N N-1-k) is introduced. If N = 8, then k '= (3,2,1,0) for k = (4,5,6,7). Then, Equation 4 may be divided into two sub-expressions of Equation 5 (the same as Equation 4 except for the summation interval).

저차 출력 :Low order output:

식 5 :Equation 5:

여기서 k={0,1...,(N/2-1)} 이고,Where k = {0,1 ..., (N / 2-1)},

c(n)=1/n=0 인 경우 : 그 외 경우 1c (n) = 1 / n = 0 otherwise 1

고차 출력 :Higher order output:

여기서 k={N...,(N/2+1) → k′=0,1...,(N/2-1)} 이고,Where k = {N ..., (N / 2 + 1) → k ′ = 0,1 ..., (N / 2-1)},

(모든 고차항에서 c(n)=1이므로 c(n)은 본 식에 포함되지 않음)(C (n) is not included in this expression because c (n) = 1 in all higher terms)

식 5와 식 6 모두 합산부호 내에 상위 N/2 출력값에 대해 홀수 입력(홀수 n)시 (-1)n 항이 합산 부호 내 곱들의 부호를 바꾸고, y항이 c(0)=1/으로 곱해지는 것 외에는 같은 구조를 가지고 있음을 주목하자.In both Equations 5 and 6, when the odd input (odd n) for the upper N / 2 output value within the sum code, the (-1) n term changes the sign of the products in the sum code, and the y term is c (0) = 1 / Notice that it has the same structure except multiply by.

[1-D IDCT의 짝수 및 홀수항으로의 분리][Isolation of 1-D IDCT into Even and Odd Terms]

식 4에 있는 1-D IDCT의 단일합은 두개의 합으로 분리될 수 있음을 확인하자. 하나는 짝수항 입력(N=8일때 y(0), y(2), y(4), y(6))에 대한 것이고 하나는 홀수항 입력(N=8일때 y(1), y(3), y(5), y(7))에 대한 것이다. g(k)가 짝수항 입력의 부분합을 표현하고 h(k)가 홀수항 입력을 표현한다고 가정하자.Note that the single sum of 1-D IDCT in Equation 4 can be separated into two sums. One for even-numbered inputs (y (0), y (2), y (4), y (6) when N = 8) and one for odd-numbered inputs (y (1), y ( 3), y (5), y (7)). Suppose g (k) represents a partial sum of even-numbered inputs and h (k) represents an odd-numbered inputs.

그러면 :then :

식 7.Equation 7.

여기서 k={0,1..., (N/2-1)} 이고,Where k = {0,1 ..., (N / 2-1)}

식 8.Equation 8.

여기서 k={0,1...,(N/2-1)}.Where k = {0,1 ..., (N / 2-1)}.

N=8일때, 식 7과 식 8의 합성은 모두 n={0,1,2,3}에 대해 실행되었음을 확인하자.When N = 8, make sure that the synthesis of equations 7 and 8 were both performed for n = {0,1,2,3}.

이제 주지된 코사인 성질을 상기하자:Recall the known cosine properties:

2·cosA·cosB=cos(A+B)+cos(A-B)2, cosA, cosB = cos (A + B) + cos (A-B)

여기서, A = π(2k+1)/2N, B = π(2k+1)(2N+1)/2N 로 하면Where A = π (2k + 1) / 2N, B = π (2k + 1) (2N + 1) / 2N

식 8의 양변에 다음식을 곱할 수 있다.Both sides of Equation 8 can be multiplied by

2·cosA = 1/{2·cos[π(2k+1)/2N]} = Ck2 · cosA = 1 / {2 · cos [π (2k + 1) / 2N]} = Ck

Ck는 합산 인덱스 n에 관계하지 않으므로, 합산 부호내로 들여 보낼 수 있음을 주목하자. 정의에 의해 y(-1)=0 이라 가정하면, 입력 y(7)에 대한 코사인 함수는 0이 됨을 주목하자. 그러면, h(k)에 대한 표현은 다음과 같은 형식으로 다시 쓸 수 있다.Note that Ck is not related to the sum index n, so it can be indented within the sum code. Note that by definition y (-1) = 0, the cosine function for input y (7) is zero. Then, the expression for h (k) can be rewritten in the form

식 9.Equation 9.

여기서 k={0,1..., (N/2-1)}.Where k = {0,1 ..., (N / 2-1)}.

입력 [y(2n+1)+y(2n-1)]은 h(k) 계산시 홀수 입력항들은 N/2 쌍의 입력 p(n)=[y(2n+1)+y(2n-1)]을 형성하기 위해 둘씩 묶여짐을 주목하자.Input [y (2n + 1) + y (2n-1)] is the odd input term when calculating h (k). N / 2 pairs of input p (n) = [y (2n + 1) + y (2n- Note that they are grouped together to form 1)].

N=8이면, p(n)값은 다음과 같다.If N = 8, the p (n) value is as follows.

따라서 h(k)를 표현하는 식 9는 다음과 같이 나타낼 수 있다.Therefore, Equation 9 expressing h (k) can be expressed as follows.

식 10.Equation 10.

여기서 k={0,1..., (N/2-1)}.Where k = {0,1 ..., (N / 2-1)}.

합산부호 내 코사인 항은 g(k)와 h(k) 모두 동일하고, 1-D IDCT(식 5에 비해서) 의 구조를 가짐을 확인하자. 결과적으로 홀수 k 항에 대한 IDCT의 결과인 h(k)는 펙터Note that the cosine term in the sum code is the same for both g (k) and h (k) and has the structure of 1-D IDCT (compared to Equation 5). As a result, h (k), the result of IDCT for odd k terms, is a factor

Ck = 1/{2·cos[π(2k+1)/2N]}로 곱해진다.It is multiplied by Ck = 1 / {2 · cos [π (2k + 1) / 2N]}.

다시 말해, g(k)는 짝수입력 y(2n)을 처리하는 n/2점의 IDCT이고 h(k)는 [y(2n+1)+y(2n-1)] (y(-1)=0으로 정의됨)을 처리하는 n/2점의 IDCT이다.In other words, g (k) is an n / 2 point IDCT that handles even input y (2n) and h (k) is [y (2n + 1) + y (2n-1)] (y (-1) IDCT of n / 2 points).

이제 다음과 같은 성질을 도입하자:Now introduce the following properties:

yn=y(n);yn = y (n);

c1=cos(π/8);c1 = cos (π / 8);

c2=cos(2π/8)=cos(π/4)=1/;c2 = cos (2π / 8) = cos (π / 4) = 1 / ;

c3=cos(3π/8);c3 = cos (3π / 8);

d1=1[2.cos(π/16)];d1 = 1 [2.cos (π / 16)];

d3=1[2.cos(3π/16)];d3 = 1 [2. cos (3 [pi] / 16)];

d5=1[2.cos(5π/16)];d5 = 1 [2.cos (5π / 16)];

d7=1[2.cos(7π/16)];d7 = 1 [2.cos (7π / 16)];

다음과 같이 스케일링된 계수를 좀더 도입하자.Let's introduce more scaled coefficients as follows:

c1s=cos(π/8);c1s = cos (π / 8);

c3s=cos(3π/8);c3s = cos (3π / 8);

코사인 함수의, 우함수 성질( cos(-φ)=cos(φ) )과 주기성( cog(π-φ)=-cos(φ) )을 이용하면, N=8에 대해 식 7과 식 8은 다음과 같이 서술될 수 있다. ( c(0)은 1/임을 상기할 것)Using cosine function, right function property (cos (-φ) = cos (φ) and periodicity (cog (π-φ) =-cos (φ)), It can be described as follows. (c (0) is 1 / Recall that

이제 본 발명의 실시예에 따라 DCT와 IDCT동작 모두에서 모든 값은 펙터 2로 상향 스케일링됨을 상기하자. 다시 말해, 실시예에 따라 h(k)와 g(k)는 모두 이 스케일링 펙터에 의해 곱해진다. 따라서, g(k)와 h(k)에 대한 표현은 다음과 같이 된다.Recall that now all values are scaled up to factor 2 in both DCT and IDCT operations in accordance with an embodiment of the present invention. In other words, according to the embodiment both h (k) and g (k) are multiplied by this scaling factor. Thus, the expressions for g (k) and h (k) are as follows.

식 11.Equation 11.

식 12.Equation 12.

c2 = cos(π/4) = 1/이기 때문에를 곱하면 스케일링된 c2의 값은 1이 됨을 주목하자. 본 실시예에 따른 스케일링 표현(비디오의 절대값과 주파수값의 상향 스케일링에 따른)에 의해 모두 상수계수인 c1s와 c3s는 곱할 필요가 없으며 범용 곱셈기도 필요 없게 된다. 이것은 다시 IDCT 처리를 위한 반도체 회로 구현시 이에 따른 하드웨어 곱셈기를 만들 필요가 없게 만든다.c2 = cos (π / 4) = 1 / Because Note that by multiplying the value of scaled c2 is 1. By the scaling expression according to the present embodiment (according to the upscaling of the absolute value of the video and the frequency value), the constant coefficients c1s and c3s do not need to be multiplied, nor do they need a general purpose multiplier. This in turn eliminates the need to create a hardware multiplier accordingly when implementing semiconductor circuits for IDCT processing.

g(k)와 h(k) 구조의 유사성은 그것의 식의 세트를 행렬형태로 표현함으로써 보일 수 있다. C를 다음과 같은 4×4 코사인 계수 행렬로 정의하자.The similarity of g (k) and h (k) structures can be seen by representing a set of equations in matrix form. Define C as a 4x4 cosine coefficient matrix:

식 13.Equation 13.

식 14.Equation 14.

식 15.Equation 15.

여기서 D=diag[d1, d3, d5, d7]으로 대각을 따라 d1, d3, d5, d7이고 다른 원소는 0인 4×4행렬이다. 식 14와 식 15에서 보듯이, g(k)를 얻기 위한 짝수번째 입력을 처리하는 순서와 h(k)를 얻기 위한 홀수번째 입력을 처리하는 순서에는 공통적으로 코사인 계수 행렬 C를 곱하는 단계가 있다. 하지만, h(k)를 얻기 위해서는, 입력은 우선 쌍으로 더해져야 하고( y(-1)=0으로 정의됨 ) y(1)은 우선 2로 곱해져야 한다.Here, D = diag [d1, d3, d5, d7] is a 4 × 4 matrix with d1, d3, d5, d7 along the diagonal, and the other elements are zero. As shown in equations (14) and (15), the order of processing even-numbered inputs to obtain g (k) and the order of odd-numbered inputs to obtain h (k) commonly include multiplying the cosine coefficient matrix C. . However, to get h (k), the inputs must first be added in pairs (defined as y (-1) = 0) and y (1) must first be multiplied by two.

앞서의 표현이 가리키듯 N점 1-D IDCT(식 4 참조)는 2개의 N점으로 가를 수 있고, 각 1-D IDCT는 N/2개의 홀수입력(그룹을 이룬)과 N/2개의 짝수 입력의 공동 핵심 연산(common core operation, 합산부호 아래)을 거친다.As the previous expression indicates, N-point 1-D IDCTs (see Equation 4) can be divided into two N-points, with each 1-D IDCT having N / 2 odd inputs (grouped) and N / 2 even numbers. It goes through a common core operation (under the minus sign) of the input.

위의 표현은 본 실시예에 의해 구현된 IDCT에 대한 다음의 단순한 구조를 제공한다.The above expression provides the following simple structure for the IDCT implemented by this embodiment.

저차 출력(N=8, 출력 k={0,1,2,3});Lower order output (N = 8, output k = {0,1,2,3});

식 16.Equation 16.

y(k)=g(k)+h(k)y (k) = g (k) + h (k)

고차출력(N=8, 출력 k={4,5,6,7});Higher order output (N = 8, output k = {4,5,6,7});

y(k)=1(N-1-k′)=g(k′)-h(k′)y (k) = 1 (N-1-k ′) = g (k ′)-h (k ′)

g(k)는 출력값을 바로 제공하기 위해 곧바로 짝수 입력값을 처리하는 반면, h(k′)는 d1, d3, d5, d7 값에 의한 곱셈뿐만 아니라 입력값을 그룹 짓는 과정을 거친다.g (k) processes the even inputs directly in order to provide the output directly, while h (k ') goes through the grouping of inputs as well as the multiplication by d1, d3, d5 and d7 values.

항상 그렇듯이, IDCT 회로 설계자는 회로의 크기와 속도, 구현될 기구들의 숫자와 내선 연결의 복잡성간의 균형 문제에 직면한다. 예를 들어, 종종 실리콘 칩 내에 부가적이고 좀 더 복잡한 장치를 함으로써 계산속도는 향상되지만, 회로의 덩치는 크고 좀더 복잡하게 된다. 또한, IDCT 칩 상에서 사용할 만한 것이 무엇인가 혹은 필요한 것이 무엇인가의 문제는 “look-ahead” 덧셈기와 같은 난해하고 복잡한 설계의 이용을 제한하고 배제한다.As always, IDCT circuit designers face a balance between the size and speed of the circuit, the number of instruments to be implemented and the complexity of the extension connection. For example, the computational speed is often improved by using additional and more complex devices in silicon chips, but the circuits are larger and more complex. In addition, the question of what is available or what is needed on an IDCT chip limits and excludes the use of difficult and complex designs such as "look-ahead" adders.

[정확도의 표준][Standard of Accuracy]

모든 계산의 무한한 정밀성과 정확도, 즉 무제한의 저장공간과 계산시간을 가정하면 IDCT의 DCT 변환된 이미지 데이타로 재생된 이미지는 오리지날 이미지를 완벽하게 재생시킬 수 있다. 물론 그러한 정확성은 현재의 기술로는 얻을 수 없다.Given the infinite precision and accuracy of all calculations, i.e. unlimited storage and calculation time, images reproduced with IDCT's DCT-converted image data can reproduce the original images perfectly. Of course, such accuracy is not attainable with current technology.

다소의 표준화를 하기 위해서 현재 IDCT 시스템은 (Comite Consultatif International Telegraphique et Telephonique (‘CCIT’) in ‘Annex 1 of CCITT Recommendations H.261-Inverse Transform Accuracy Specification’)에 의해 제안된 표준화 방법에 따라 측정되고 있다. 이 테스트에서는 불규칙적인 정수를 가지는 10,000개의 8-by-8 블록의 세트가 발생되도록 명시되어 있다. 그후, 이 블록들은 10,000개의 8-by-8 ‘기준’ IDCT 출력 데이타를 만드는 미리 정의된 정밀도로 DCT 및 IDCT 변환(전후에 미리 정의된 반올림, 클리핑과 논리연산을 실시하는)을 실시한다.For some standardization, the IDCT system is currently measured according to the standardization method proposed by (Comite Consultatif International Telegraphique et Telephonique ('CCIT') in 'Annex 1 of CCITT Recommendations H.261-Inverse Transform Accuracy Specification'). . This test specifies that a set of 10,000 8-by-8 blocks with irregular integers will be generated. The blocks then perform DCT and IDCT transformations (pre- and post-defined rounding, clipping and logic operations) with a predefined precision that produces 10,000 8-by-8 'reference' IDCT output data.

IDCT 구현을 테스트할때, CCITT 테스트 블록이 입력으로 사용된다. 그후, 실제 IDCT 변환된 출력은 ‘기준’ IDCT 출력 데이타와 통계적으로 비교된다. IDCT에 대한 최대치가 전체적인 혹은 개별요소의 피크, 평균, 평균의 제곱, 블록오차 평균 등에 대해 명시되어 있다. 아울러, 입력블록이 모두 0이면 IDCT는 모두 0을 출력시켜야하고, 모든 입력 데이타의 부호가 바뀌면 IDCT는 같은 표준으로 나와야 한다.When testing an IDCT implementation, the CCITT test block is used as input. The actual IDCT transformed output is then statistically compared with the 'reference' IDCT output data. Maximum values for IDCT are specified for peaks, means, squares of means, and block error means for the whole or individual elements. In addition, if all input blocks are 0, IDCT should output all 0s, and if all input data codes are changed, IDCT should come out with the same standard.

이러한 테스트를 실시했을때 그들의 최대오차들이 명시된 최대치를 벗어나지 않을 때만 IDCT를 구현한 것이 받아들일 만한 정확도를 가졌다고 말할 수 있다.When these tests were performed, it can be said that the implementation of IDCT had acceptable accuracy only when their maximum errors did not exceed the specified maximum.

알려진 다른 표준은 IEEE에서 명시한 표준이다(‘IEEE Draft Specification for the Implementation of 8 by 8 Discrete Cosine Transform’, P1180/D2, July 18, 1990; and Annex A of ‘8 by 8 Inverse Discrete Cosine Transform’,. ISO commitee Draft CD 11172-2). 이러한 표준들을 필연적으로 앞에서 언급한 CCITT와 마찬가지이다.Other known standards are those specified by the IEEE ('IEEE Draft Specification for the Implementation of 8 by 8 Discrete Cosine Transform', P1180 / D2, July 18, 1990; and Annex A of '8 by 8 Inverse Discrete Cosine Transform' ,. ISO commitee Draft CD 11172-2). These standards are essentially the same as the CCITT mentioned earlier.

[하드웨어 구현][Hardware implementation]

제9도는 본 발명의 하나의 실시예(뒤쪽에서 보여주고 설명하는 대로 하드웨어 구조가 좀 더 콤팩트하고 효율적이지만)에 따른 IDCT 방법의 데이타 흐름을 보여준다. 제9도에서 Y[0]과 Y[4]와 같은 시스템의 입력과 X[3]과 [6]같은 시스템의 출력이 단일 라인을 통해 전달되고 있는 것이 보여지고 있다. 제9도의 한 줄로 그려진 라인들은, 입력 및 출력을 결정하는 수 비트 폭의 워드를 가급적 병렬로 나르는 데이타 버스 형태의 전도체를 나타낸다고 보면 된다.9 shows the data flow of the IDCT method according to one embodiment of the present invention (although the hardware structure is more compact and efficient as shown and described later). In Figure 9 it is shown that the inputs of systems such as Y [0] and Y [4] and the outputs of systems such as X [3] and [6] are delivered on a single line. The lines drawn in one line in FIG. 9 represent conductors in the form of data buses carrying as many bits of words as possible in parallel to determine the input and output.

제9도에서, 큰 원 225와 226은 2-입력 덧셈기이고, 입력과 덧셈기의 교차점에 있는 작은 원 227은 입력워드의 보수가 사용됨을 나타낸다. 입력의 보수를 사용하는 덧셈기는 다시 말해 보수를 취하지 않는 입력으로부터 보수를 취한 입력은 빼게 된다. 예를 들어, 좌측 상단 덧셈기의 출력은 T0=Y0+Y4 이지만 T1의 출력을 얻는 덧셈기는 T1=Y0-Y4의 출력을 얻게 된다. 따라서 입력에 보수를 한번 취하는 덧셈기는 차이를 구하는 컴포넌트라 말할 수 있다.In FIG. 9, large circles 225 and 226 are two-input adders, and small circles 227 at the intersection of input and adder indicate that the complement of the input word is used. An adder that uses the complement of the input, in other words, subtracts the complemented input from the non-compensated input. For example, the output of the top left adder is T0 = Y0 + Y4, but the adder that gets the output of T1 gets the output of T1 = Y0-Y4. Thus, an adder that takes a complement of input can be said to be a component that finds the difference.

또한 제9도에서, 데이타 경로에 있는 삼각형 230은 상수계수 곱셈기이다. 예를 들어, 입력 Y1은 B0을 만들기 위해 덧셈기로 들어가지 전 2제곱근 곱셈기를 거친다. 결과적으로 중간값 T3=Y2·c1s+Y6·c3s 과 B2=p1·c3s-p3·c1s=(Y!+Y3)·c3s-(Y5+Y7)·c1s 이다. 지시된 덧셈, 뺄셈, 곱셈을 수행해가며 g(0)에서 g(3), h(0)에서 h(3)에 대한 식 11과 식 12를 구현하는 구조를 볼 수 있을 것이다.Also in Figure 9, triangle 230 in the data path is a constant multiplier. For example, input Y1 goes through a square root multiplier before entering the adder to make B0. As a result, the median values T3 = Y2 · c1s + Y6 · c3s and B2 = p1 · c3s-p3 · c1s = (Y! + Y3) · c3s- (Y5 + Y7) · c1s. You will see a structure that implements Equations 11 and 12 for g (0) to g (3) and h (0) to h (3) by performing the indicated addition, subtraction, and multiplication.

제9도는 본 발명에 따른 실시예의 중요한 이점을 보여준다. 제9도에서 보듯이, 구조는 4개의 주요부분으로 나눠진다: 쌍으로 묶여진 입력 p(k)를 형성하고, 입력 y(1)을 2제곱근으로 곱하는 선-공동블록; 상수 d1, d3, d5, d7 곱셈기(식 12 참조)를 포함하는 1차 후-공동블록 POSTC1 233;9 shows the important advantages of the embodiment according to the invention. As shown in FIG. 9, the structure is divided into four main parts: a pre-joint block that forms a paired input p (k) and multiplies the input y (1) by the square root; A first order post-joint block POSTC1 233 comprising a constant d1, d3, d5, d7 multiplier (see equation 12);

저차출력의 g0에서 g3 항과 h0에서 h3 항과의 합과 고차출력의 g0에서 g3 항과 h0에서 h3 항과의 차를 구하는 2차 후-공동블록 POSTC2 235; 및 짝수, 홀수 데이타 경로에 다같이 포함되어 있는 공동블록 CBLK 232. 본 발명의 실시예에 따른 처리회로에서는, 홀수번째 혹은 짝수번째 입력에 실행되는 공동연산이 제9도에 보여진 복제구조보다는 단일 구조에 의해 수행된다.A second post-co-block POSTC2 235 to find the difference between the sum of the low order output g0 and g3 and the h0 to h3 terms and the higher order output of g0 and g3 and h0 to h3 terms; And a common block CBLK 232. both of which are included in the even and odd data paths. In the processing circuit according to the embodiment of the present invention, the co-operation performed on the odd or even inputs is performed by a single structure rather than a duplicate structure shown in FIG. Is performed by.

본 실시예에 사용된 연산 방법과 주어진 디지탈 구조의 이점을 이해하는 데는 캐리 비트가 무엇인지 이해하는 것이 큰 도옴이 된다. 간단한 예로, 1+1=0으로 정확한 결과 “10”(십진수 2의 이진표현)을 만들기 위해 다음 고차항에 더해지는 캐리 “1”을 만드는, 두 이진수의 덧셈을 보자. 다시 말해, 01+01=00(캐리가 없을때)에 캐리 워드를 합해 정확한 답 00+10=10을 얻게 된다.It is a great help to understand what the carry bits are in understanding the advantages of the computational methods and the given digital structures used in this embodiment. As a simple example, let's look at the addition of two binary numbers to create a carry "1" that is added to the next higher order term to produce the correct result "10" (binary representation of decimal 2) with 1 + 1 = 0. In other words, the carry word is summed to 01 + 01 = 00 (without carry) to get the correct answer 00 + 10 = 10.

십진계산을 예로, ‘436’과 ‘825’를 더해야 한다고 가정하자. 손으로 두 수를 더하는 공통적인 방법은 일반적으로 다음과 같이 진행된다.For example, suppose we need to add "436" and "825." A common way of adding two numbers by hand generally proceeds as follows.

1. 일의 자리 : ‘6’ 더하기 ‘5’는 십의 자리에 ‘1’을 가지는 ‘1’이 됨.1. Place of work: '6' plus '5' becomes '1' with '1' in the ten's place.

합:1, 캐리-인:0, 캐리-아웃:0Total: 1, carry-in: 0, carry-out: 0

2. 십의 자리 : ‘3’ 더하기 ‘2’에 앞단계에서 올라온 캐리 ‘1’을 더해 캐리없이 ‘6’이 됨2. Decimal place: '3' plus '2' plus carry '1' raised from the previous step to become '6' without carry

합:5, 캐리-인:0, 캐리-아웃:0Sum: 5, Carry-in: 0, Carry-out: 0

3. 백의 자리 : ‘4’ 더하기 ‘8’는 천의자리로 캐리 ‘1’을 올리며 ‘2’이고 전단계에서 캐리는 올라오지 않음.3. The seat of the hundred: '4' plus '8' is the thousand seats, carry '1' to '2', and carry does not rise in the previous stage.

합:2, 캐리-인:0, 캐리-아웃:1Sum: 2, Carry-in: 0, Carry-out: 1

4. 천의 자리 : ‘0’ 더하기 ‘0’에 백의자리로부터 올라온 ‘1’을 더해 ‘1’이 됨.4. Thousand seats: '0' plus '0' plus '1' from the hundred's seat to become '1'.

합:0, 캐리-인:1, 캐리-아웃:0Total: 0, carry-in: 1, carry-out: 0

즉, ‘1261’이란 답은 인접한 저차위치의 캐리-아웃인 캐리-인과 그 위치의 합을 더해 만들어진다. (이 말은 최저차 위치의 캐리-인은 항상 ‘0’임을 의미함). 물론 문제는, 십의 자리로부터 만들어진 캐리-인이 있는지 알아낼 때까지 백의자리 ‘4’와 ‘8’을 더하는 것을 기다려야 한다는 점이다. 이것은 필연적으로 이런 식의 연산을 수행하는 리플 덧셈기에 대한 설명이다. 따라서, 리플 덧셈기는 별도의 저장 소자가 필요없이 최종 답을 얻을 수 있지만 다른 설계에 비해 느리다.In other words, the answer '1261' is made by adding the carry-in of the adjacent lower position and the sum of the positions. (Which means that the carry-in at the lowest position is always '0'). The problem, of course, is that you have to wait to add the hundreds '4' and '8' until you find out if there is a carry-in made from the tens. This is essentially a description of the ripple adder that performs this type of operation. Thus, the ripple adder can get the final answer without the need for a separate storage element but is slower than other designs.

또다른 설계방식으로는 부분합 즉 결과워드(본 예에서 0251)와 다른 워드의 캐리값을 저장하는 방식으로 형성된 각 자리의 두개의 수를 더하는 ‘캐리-세이브’ 방식이 있다. 완전한 답은 이 합과 캐리 워드를 다음과 같은 덧셈단계로, 0251+1010=1261, ‘변형’되어 얻어진다. 부분합이 저장되어 있는 한 캐리 워드가 부분합에 더해질 수 있는지의 결정을 기다릴 필요없이 각 자리에서 동시에 모든 자리의 덧셈을 수행할 수 있다.Another design approach is the "carry-save" approach, which adds two numbers to each digit formed by storing a subtotal, that is, a result word (0251 in this example) and a carry value of another word. The complete answer is obtained by transforming this sum and carry word into the following addition step, 0251 + 1010 = 1261. As long as the subtotals are stored, the addition of all the digits can be performed simultaneously in each digit without having to wait for the determination of whether the carry word can be added to the subtotal.

이 변형 연산은 일반적으로 각 계산단계에 필요한 시간의 대부분을 차지하므로 이 연산을 빠르게 하는 것은 전체 연산속도에 큰 영향을 미치는 반면, 변환 크기의 증가는 상대적으로 크지 않다. 따라서, 캐리-세이브 곱셈기는 보통 각 열에 리플 덧셈기를 사용하는 것보다 빠르다. 하지만, 이 시간상 이득은 곱셈기의 각 덧셈에 대한 캐리 워드가 저장되든지 다음 덧셈으로 통과되어야만 하므로 복잡성의 증대를 초래한다. 나아가, 곱셈의 최종 결과를 얻기 위해서는 최종 부분합과 최종 캐리 워드가, 보통 리플 덧셈기의 덧셈에 의해, 변형되어야 한다. 하지만, 보통 수행하는 곱셈의 크기에 비례하는 연산시간의 단축을 실현하는 데는 단 하나의 리플 덧셈기가 필요하다는 사실을 주목하자. 더욱이, 캐리 워드는 마치 더해야할 다른 수처럼 취급될 수 있고, 최종 곱셈 답이 필요하기 전의 어느 순간에 더해지고 있는 한 실제 덧셈은 지연될 수 있다는 사실을 주목하자.This transformation operation generally takes most of the time required for each calculation step, so making this operation faster affects the overall operation speed, while the increase in transform size is relatively small. Thus, a carry-save multiplier is usually faster than using a ripple adder for each column. However, this temporal gain causes increased complexity because the carry word for each addition of the multiplier must be stored or passed through to the next addition. Furthermore, to get the final result of the multiplication, the final subtotal and the final carry word must be modified, usually by the addition of the ripple adder. Note, however, that only one ripple adder is needed to realize a reduction in computation time that is proportional to the size of the multiplication being performed. Moreover, note that the carry word can be treated like any other number to add, and that the actual addition can be delayed as long as it is added at some point before the final multiplication answer is needed.

본 발명의 실시예에서는, 설계를 단순화하고 IDCT 회로의 처리량을 증가시키기 위해 변형의 지연 가능성이 이용된다. 또한 미리 선택된 캐리 워드의 어떤 비트는 변형단계 이전에 표준 테스트 데이타 세트에 대한 이 발명의 테스트 가동시의 통계적 분석에 기초하여 IDCT 결과에 기대되는 높은 정확도를 제공하기위해 필요에 따라 고의적으로 소정의 값을 가지게 된다.In an embodiment of the present invention, the possibility of delay of deformation is used to simplify the design and increase the throughput of the IDCT circuit. In addition, any bits of the preselected carry word are deliberately predetermined values as needed to provide the high accuracy expected for the IDCT results based on the statistical analysis of the test run of the present invention on a standard test data set prior to the transformation step. Will have

제10도는 본 발명에 따라 앞에서 제기한 구조를 보여주는 블록도이다. 본 발명에서 제기한 실시예에서는 짝수, 홀수 입력들은 시간-멀티플렉스되고, 공동블록 CBLK 232에서 분리되어 처리된다. 입력은 각 순서에 따라 처리될 수 있다.10 is a block diagram showing the structure raised above in accordance with the present invention. In the embodiment posed by the present invention, even and odd inputs are time-multiplexed and processed separately in coblock CBLK 232. Input can be processed in each order.

제10도에서 Y[1,0], Y[5,4], Y[3,2], Y[7,6]표기는, 홀수번째 입력 Y1, Y3, Y5, Y7이 가급적 먼저 계산회로를 통과하고 이어 홀수번째 입력 Y0, Y2, Y4, Y6이 뒤를 따라 통과된다는 사실을 나타내는데 쓰인다. 하지만, 이 순서가 본 실시예에 필연적이 아님에도 불구하고, 아래 설명에 따라, 어떤 다운 스트림 논리연산은 단지 홀수번째 입력에만 수행된다. 홀수 입력값을 먼저 집어넣는 방식으로, 이러한 다운 스트림 연산이 모든 입력에 공통된 논리연산은 짝수번째 입력에는 업스트림으로 처리되는 것과 동시에 처리될 수 있다. 이러한 방식은 이 방식을 실시하지 않을 경우 몇개의 논리장치가 휴면상태에 있을 시간을 줄이게 된다.In FIG. 10, Y [1,0], Y [5,4], Y [3,2], and Y [7,6] are represented by the odd-numbered inputs Y1, Y3, Y5, and Y7. This is used to indicate that the odd-numbered inputs Y0, Y2, Y4, and Y6 are passed through behind. However, although this order is not inevitable in this embodiment, according to the description below, some downstream logic is performed only on odd-numbered inputs. By putting odd input values first, the logic operations common to all these inputs can be processed simultaneously with the upstream inputs to even inputs. This approach reduces the time that some logic units sleep if not implemented.

마찬가지로 X[0,7], X[1,6], X[3,4], X[2,5]표기는 저차출력 X0, X1, X2, X3이 먼저 출력되고 이어 고차출력 X4, X5, X6, X7이 뒤를 따른다는 사실을 나타내는데 쓰인다. 제9도와 제10도에서 보여주듯이, 비록 홀수번째 입력에는 Y1, Y5, Y3, Y7이므로 이것이 꼭 필요한 것은 아니지만 입력은 가급적 초기에 오름차순으로 묶여져 있지 않다. 입력신호를 이러한 순서로 정렬시키는 것은 제9도와 제10도에서 보인 단순한 “버터플라이” 데이타 경로를 가능케 하고 실리콘 반도체 장치에서 본 발명의 실시예의 내선연결의 효율을 크게 증가시킨다.Similarly, X [0,7], X [1,6], X [3,4], and X [2,5] are the low order outputs X0, X1, X2, and X3 first, followed by the higher order outputs X4, X5, Used to indicate that X6 and X7 follow. As shown in Figures 9 and 10, although the odd-numbered inputs are Y1, Y5, Y3, Y7, this is not necessary, but the inputs are not initially tied in ascending order. Arranging the input signals in this order enables the simple “butterfly” data paths shown in FIGS. 9 and 10 and greatly increases the efficiency of the extension connections of embodiments of the present invention in silicon semiconductor devices.

제10도에서 보듯이 덧셈기와 뺄셈기는 원내에 ‘+’(덧셈기, 235) 및 입력 하나는 보수처리된 덧셈기인 ‘-’(뺄셈기, 236) 및 ‘±’(덧셈 및 뺄셈으로 스위칭 가능한 변형 덧셈기, 237)로 나타내진다. 2개의 m-비트 입력워드의 공동블록 232의 가장 좌측에 있는 덧셈기와 뺄셈기는 덧셈/뺄셈의 캐리 비트를 포함한 m-비트 혹은 (m-1)비트와 병렬인 m-비트 부분결과이다. 다시 말해, 공동처리 블록 CBLK 232의 첫번째 덧셈과 뺄셈은 가급적 변형되지 않는데, 이것은 캐리 비트의 덧셈이 이어지는 처리단까지는 지연됨을 의미한다. 이 단계의 이점은 캐리-세이브 덧/뺄셈기는 캐리비트 워드의 최종 덧셈을 수행할 필요가 없다는데 있다. 변형 덧셈기 또한, 덧셈기 출력단의 버스폭을 줄이기 위해 사용될 수 있다.As shown in Fig. 10, the adder and the subtractor have a '+' (adder, 235) and one input in the circle, '-' (subtractor, 236) and '±' (addition and subtraction, switchable variants). Adder 237). The leftmost adder and subtractor of the common block 232 of two m-bit input words is the m-bit partial result in parallel with the m-bit or (m-1) bits, including the carry bits of the add / subtract. In other words, the first addition and subtraction of the joint processing block CBLK 232 is not modified as much as possible, which means that the carry bit addition is delayed until the subsequent processing stage. The advantage of this step is that the carry-save add / subtractor does not need to perform the final addition of the carry bit word. Modified adders can also be used to reduce the bus width at the adder output.

제10도는 본 발명에 제기된 실시예에서 한개 및 두 래치의 이용을 보여준다. 제10도에서 래치들은 직사각형 288로 표시되고, 선-공동블록 PREC 231과 후-공동블록 POSTC 233 모두에 쓰인다. 래치 g[0,7], g[1,6], g[3,4], g[2,5]와 h[0,7], h[1,6], h[3,4], h[2,5]로부터 기대되는 출력에 의한 g(k)와 h(k)의 결과 값인 입력을 변형 덧/뺄셈기(resolving adders/subtractors)에 래치하는 동작을 하며, 곱셈기 D1, D3, D5, D7의 입력으로도 사용한다. 변형 덧/뺄셈기는 위의 식 16과 식 17에서 표현된 바와 같이 덧/뺄셈을 수행한다.10 shows the use of one and two latches in an embodiment addressed by the present invention. In FIG. 10, the latches are indicated by rectangle 288 and are used for both pre-co-block PREC 231 and post-co-block POSTC 233. Latches g [0,7], g [1,6], g [3,4], g [2,5] and h [0,7], h [1,6], h [3,4], latches inputs resulting from g (k) and h (k) from the output expected from h [2,5] into resolving adders / subtractors, multipliers D1, D3, D5 It is also used as an input to D7. The transform adder / subtracter performs addition / subtraction as expressed in Equations 16 and 17 above.

앞에서 설명했듯이 짝수번째 입력 Y0, Y2, Y4, Y6은 공동처리 블록 CBLK 232에서 처리되기 전에 쌍으로 묶일 필요가 없다. 하지만, 홀수번째 입력을 쌍으로 묶기만 하면 되는 것이 아니고, 적절한 입력값이 공동처리 블록 CBLK 232에 나타나는 것을 보장하기 위해 입력 Y12도 2제곱근으로 곱해져야만 한다. 따라서, 선-공동블록 PREC 231은 각 입력값에 2-입력 멀티플렉싱 래치 C10, C54, C32, C76을 포함한다. 다른 입력은 변형 덧셈기와 입력 Y1에 대해 변형 2제곱근 곱셈기로부터 받는 반면, 2-입력 멀티플렉싱 래치의 한 입력은 결과적으로 처리되지 않는 입력값에 곧바로 붙어 있게 된다. 따라서, 그들 두 입력 사이로 멀티플렉싱 래치를 단순히 전환시키는 방법으로 정확한 쌍 혹은 비쌍 입력을 공동블록 CBLK 232에 쉽게 나타내질 수 있다.As mentioned earlier, even-numbered inputs Y0, Y2, Y4, Y6 do not need to be paired before being processed in the co-processing block CBLK 232. However, it is not only necessary to pair odd-numbered inputs, but input Y12 must also be multiplied by two square roots to ensure that the proper input values appear in co-processing block CBLK 232. Thus, the pre-joint block PREC 231 includes two-input multiplexing latches C10, C54, C32, C76 for each input value. The other input is received from the modified adder and the modified quadratic root multiplier for input Y1, while one input of the two-input multiplexing latch is immediately attached to the unprocessed input value. Thus, the correct paired or unpaired inputs can easily be represented in the common block CBLK 232 by simply switching the multiplexing latch between those two inputs.

제10도에서, 2제곱근 곱셈기 D1, D3, D5, D7은 가급적 자신들의 출력을 변형시킨다. 즉, 완전한 합을 구하기 위해 캐리 비트가 더해진 결과를 발생시킨다. 이것은 곱셈기의 출력이 각 병렬 데이타 경로의 곱셈이 되지 않은 입력과 같은 폭의 버스를 가지도록 보장해 준다.In FIG. 10, the square root multipliers D1, D3, D5, D7 transform their output as much as possible. That is, a carry bit is added to find a perfect sum. This ensures that the output of the multiplier has the same width bus as the unmultiplied input of each parallel data path.

본 발명에 따라 공동블록 232에 제기된 실시예는 또한 Y[1,0]과 Y[5,4]의 순방향 데이타 경로에 각각 한개의 더미(dummy) 뺄셈기 240을 포함한다. 이러한 장치들은 병렬 출력과 같은 방식으로 통과되는 두개의 입력(더미 뺄셈기의 경우, 한 입력에 2의 보수를 취한 뒤)을 혼합하는 동작을 한다. 각각의 경우에 한 입력은 그것이 하나의 입력은 그것이 캐리비트를 가진 것처럼 조작되고, 그것은 이후의 처리단계에서 더해지게 된다. 비록 지연되지만, 이에 따라 덧셈과 뺄셈이 수행된다.Embodiments posed to joint block 232 in accordance with the present invention also include one dummy subtractor 240 each in the forward data path of Y [1,0] and Y [5,4]. These devices work by mixing two inputs that pass in the same way as a parallel output (in the case of a dummy subtractor, after a two's complement to one input). In each case one input is manipulated as it is one input as if it has a carry bit, which is added in subsequent processing steps. Although delayed, addition and subtraction are performed accordingly.

이 기술은 이러한 장치들에 온전한 크기(full scale)의 덧/뺄셈기를 필요로 하지 않기 때문에 위의 두 데이타 경로에 필요한 수단(resources)을 축소시킨다. 따라서, 혼합기는 덧셈기나 뺌셈기같이 작동하고, 이러한 장치들을 위해, 다음 장치에 부가적인 회고가 거의 필요없는 단순한 전도체(덧셈시)나 인버터 열로서 구현될 수 있다.This technique reduces the resources required for the above two data paths because these devices do not require a full scale adder / subtractor. Thus, the mixer operates like an adder or subtractor, and for these devices, it can be implemented as a simple conductor (on addition) or inverter train, which requires little additional review on the next device.

이러한 혼합기의 이용은 또한 공동블록 CBLK 232에 있는 초기 덧셈기와 뺄셈기의 출력이 모두 같은 폭을 가지고, 두개의 데이타 경로의 아래에 있는 캐리-세이브 덧/뺄셈기의 출력과 호환성이 있으며, 그것을 가지고 이어지는 공동블록 CBLK의 변형 덧/뺄셈기의 입력을 형성시킴을 의미한다.The use of this mixer is also compatible with the output of the carry-save adder / subtracter under the two data paths, with the outputs of the initial adder and the subtractor in the common block CBLK 232 all the same width. This means forming the input of the modified adder / subtractor of the joint block CBLK.

앞에서 설명했듯이, 본 발명에서 제기한 실시예에서 짝수번째 입력은 홀수번째 입력과 별도로 처리된다. 나아가, 홀수번째 입력이 우선해서 처리된다고 가정하자. 총괄 제어회로(제10도에 나타남)는 홀수번째 입력워드를 선-공동블록 PREC에 인가하고, 현재상태 쌍으로 죈 값 p0에서 p3(제10도에 보임)을 저장하고 있는 멀티플렉싱 래치 C10, C54, C32, C76의 저차 입력을 선택한다. 이후, 래치 1h0, 1h1, 1h3, 1h2는 각각 H0, H1, H3, H2를 래치시키도록 활성화된다.As described above, in the embodiment posed by the present invention, the even-numbered input is processed separately from the odd-numbered input. Furthermore, suppose that odd-numbered inputs are processed first. The overall control circuit (shown in FIG. 10) applies an odd-numbered input word to the pre-joint block PREC, and stores multiplexing latches C10, C54, which store the values p0 to p3 (shown in FIG. 10) as current pairs. Select the lower input of, C32, C76. Latches 1h0, 1h1, 1h3, 1h2 are then activated to latch H0, H1, H3, H2, respectively.

이후 총괄 제어회로 래치는 선-공동블록 PREC 231의 2-입력 멀티플렉싱 래치 C10, C54, C32, C76의 고차 입력을 선택하고, 짝수번째 입력워드를 이들 래치에 인가한다. 짝수번째 입력들은 g0에서 g3의 값을 형성하기 위해 쓰이므로, 총괄 제어회로는 또한, g(k)값을 저장하기 위해 후-공동블록 POSTC 233의 래치 Lg0에서 Lg3을 오픈한다.The overall control circuit latch then selects the higher order inputs of the two-input multiplexing latches C10, C54, C32, C76 of the pre-joint block PREC 231, and applies even-numbered input words to these latches. Since even-numbered inputs are used to form the values of g0 to g3, the overall control circuit also opens Lg3 at latch Lg0 of post-joint block POSTC 233 to store the g (k) value.

일단 g(k)와 h(k) 값이 래치되면, 후-공동블록 POSTC 233은 변형 덧/뺄셈기를 뺄셈 모드로 변환시켜 고차신호 X7, X6, X5, X4를 출력시킨다. 이후 저차 출력신호 X3, X2, X1, X0가 변형 덧/뺄셈기를 덧셈 모드로 변환시켜 발생된다. 출력 데이타는 자연 순서를 포함하여 임의의 순서로 나올 수 있음은 주목하자.Once the g (k) and h (k) values are latched, the post-joint block POSTC 233 converts the transform add / subtracter to the subtraction mode and outputs the higher order signals X7, X6, X5, X4. The lower order output signals X3, X2, X1, and X0 are then generated by converting the modified adder / subtractor to the add mode. Note that the output data can come in any order, including natural order.

본 발명에 제기된 멀티플렉싱 구현예는, 제10도의 구성형태로 상당히 단순화되어 나타내졌고, 제9도의 비멀티플렉싱 구조(non-multiplexing structure)와 똑같은 계산을 수행한다. 하지만, 공동블록 CBLK 232의 덧셈기, 뺄셈기 및 곱셈기의 숫자는 반으로 줄었으며, 더미 덧/뺄셈기 240은 값비싼 논리회로의 복잡성을 더욱 낮춘다.The multiplexing implementation addressed to this invention is shown to be quite simplified in the configuration of FIG. 10 and performs the same calculations as the non-multiplexing structure of FIG. However, the number of adders, subtractors and multipliers in the common block CBLK 232 is cut in half, and the dummy adder / subtracter 240 further reduces the complexity of expensive logic circuits.

제11도는 본 발명의 실시예에 따른 IDCT 회로를 실제 구현하는 주요 컴포넌트와 데이타 라인을 보여준다. 주요 컴포넌트에는 선-공동블록 회로 PREC 231과 공동블록 회로 CBLK 232가 있다. 이 시스템에는 직간접으로 입력과, 제어신호를 선-공동블록 PREC 231과 후-공동블록 POSTC 233에 인가하는 제어기 CNTL 241이 있다.11 shows main components and data lines that actually implement IDCT circuits according to embodiments of the present invention. The main components are the pre-co-block circuit PREC 231 and the co-block circuit CBLK 232. The system has a controller CNTL 241 which directly or indirectly inputs and controls signals to the pre-co-block PREC 231 and post-co-block POSTC 233.

본 발명에 제기된 실시예에서 입력과 출력신호(각각 Y0에서 Y7, X0에서 X7)의 폭은 22비트이다. 이것은 테스트시 현재의 공업표준에서 받아들일 수 있는 정확도를 낼 수 있는 최소의 폭이다. 뒤에서 설명하겠지만, 최소폭은 고의적으로 선택된 논리장치의 주어진 캐리 워드들에게 강제로 1 또는 0을 인가해서 얻어진다.In the embodiment posed by the present invention, the widths of the input and output signals (Y0 to Y7, X0 to X7 respectively) are 22 bits. This is the smallest width that can be tested to achieve the accuracy acceptable by current industry standards. As will be explained later, the minimum width is obtained by forcibly applying 1 or 0 to given carry words of a deliberately selected logic device.

이와 같이, 주어진 데이타 워드의 조정에 따른 비트 조작은, 본 발명에서는 알고 있는 입력 테스트 데이타의 IDCT 변화를 사용한 뒤 IDCT 시스템의 결과를 통계적으로 분석하여 수행된다. 어떤 비트를 소정의 값에 강제적으로 집어넣는 방식으로, 알고 있는 정확한 공간상 데이타로부터 IDCT 시스템의 공간상 출력 데이타가 될 수 있는 한 적게 빗나가도록, 반올림 및 내림 오차의 효과를 줄일 수 있다는 사실이 발견되었다. 본 발명은 본 실시예에 따라 회로에 사용된 컴포넌트들 모두는, 알고 있는 방법을 이용하여 다른 버스 폭에도 적용 가능하도록 고안되었기 때문에 다른 길이의 데이타 워드에도 적용 가능하다.As described above, bit manipulation according to adjustment of a given data word is performed by statistically analyzing the result of the IDCT system after using the IDCT change of the input test data known in the present invention. It is found that by forcing a bit into a predetermined value, the effect of rounding and rounding errors can be reduced so as to deviate from the exact spatial data known to the spatial output data of the IDCT system as little as possible. It became. The present invention is applicable to data words of different lengths because all of the components used in the circuit according to the present embodiment are designed to be applicable to other bus widths using known methods.

비록 함께 처리되는 4개의 입력 모두가 88개의 병렬 전도체(4×12)를 따라 선-공동블록 PREC에 동시에 입력되지만 일반적으로 픽셀 워드들은 전송 데이타로부터 동시에 하나로 바뀐다. 따라서 본 실시예에 따르면, 입력 데이타 워드들은 가급적이면 모두 22비트 버스를 통해 일렬로 전달되고, 각 입력 워드는 데이타 경로의 적당한 입력 시점에서 순차적으로 래치된다. 제11도에서 보듯이, 22비트 입력 데이타 버스는 T_IN[21:0]으로 라벨되어 있다.Although all four inputs processed together are simultaneously input to the pre-co-block PREC along 88 parallel conductors (4x12), the pixel words are generally turned into one at the same time from the transmitted data. Thus, according to this embodiment, the input data words are all delivered in series over a 22-bit bus, preferably with each input word sequentially latched at the appropriate input point in the data path. As shown in FIG. 11, the 22-bit input data bus is labeled T_IN [21: 0].

도면과 아래의 토의에서, 다비트(multiple-bit) 신호의 폭은 괄호 안에 표시되어 있고, 고차 비트는 콜론 ‘:’ 의 왼편에, LSB는 콜론의 오른편에 표시되어 있다. 예를 들면, 입력 신호 T_IN[21:0] 242는 0부터 21까지 순서 매겨진 폭이 22 비트인 신호이다. 단일 비트는 괄호 안의 한 숫자로 규정지어지며, 따라서 T_IN[1]은 T_IN신호의 LSB 다음의 수를 가리킨다.In the figure and the discussion below, the width of the multiple-bit signal is shown in parentheses, the higher order bits are to the left of the colon ':', and the LSB is to the right of the colon. For example, the input signal T_IN [21: 0] 242 is a 22-bit wide signal ordered from 0 to 21. A single bit is defined by a number in parentheses, so T_IN [1] points to the number following the LSB of the T_IN signal.

다음의 제어 신호들은 본 발명에 제기된 실시예의 선-공동블록 PREC 231의 연산을 제어하는데 쓰인다.The following control signals are used to control the operation of the pre-joint block PREC 231 of the embodiment posed herein.

IN_CLD, OUT_CLK : 본 발명에 따른 시스템은 가급적이면 오버랩이 일어나지 않는 두개의 페이즈 클록을 사용한다. IN_CLK, OUT_CLK 신호는 입력값, 중간값과 출력신호를 홀드시키는 래치의 행을 제어한다.IN_CLD, OUT_CLK: The system according to the present invention uses two phase clocks where possible that no overlap occurs. The IN_CLK and OUT_CLK signals control the rows of latches that hold the input, intermediate and output signals.

LATCH10, LATCH54, LATCH32, LATCH76 : 가급적 한번에 22비트의 한 워드가 시스템의 입력이다. 반면, 한번에 4개의 입력신호가 처리된다. 따라서, 각 입력신호는 3개의 디른 입력워드가 처리되기 전에 구조체의 적당한 위치까지 래치되어 와 있어야 한다. 이러한 래치신호는 각 입력 래치를 인에이블 시키는 데 쓰인다. 예를 들어, LATCH54 신호는 첫번째 입력신호 Y5를 래치시키고, 이어 선-공동블록 PREC 231에는, 이후 처리단계에서는 다르지만, 입력신호 Y5(제10도 참조)와 같은 시점에 들어가는 입력신호 Y4를 래치시키는데 쓰인다.LATCH10, LATCH54, LATCH32, LATCH76: Whenever possible, one word of 22 bits is input to the system. On the other hand, four input signals are processed at one time. Therefore, each input signal must be latched to the proper position in the structure before three different input words can be processed. This latch signal is used to enable each input latch. For example, the LATCH54 signal latches the first input signal Y5, and then latches the input signal Y4 which enters the same point in time as the input signal Y5 (see FIG. 10), although different in subsequent processing steps, in the pre-joint block PREC 231. Used.

LATCH : 일단 4 개의 짝수 혹은 홀수번째 입력신호가 선-공동블록 PREC 231에 래치되어 들어가면, 가급적 이후 래치의 행에 동시에 이동된다. 신호 LATCH는 선-공동블록 PREC 231의 논리 장치에 의해 처리될 4개의 입력값을 홀드시키는 입력 래치의 두번째 행을 인에이블 시키는데 쓰인다.LATCH: Once four even or odd input signals are latched into the pre-co-block PREC 231, they are moved simultaneously in rows of latches whenever possible. The signal LATCH is used to enable the second row of the input latch holding four input values to be processed by the logic unit of the pre-co-block PREC 231.

SEL_BYP, SEL_P : 제10도에서 보듯이, 래치 C10, C54, C32, C76로 래치되어 들어간 짝수번째 입력 신호들은 덧셈기와 2제곱근 변형 곱셈기를 거치지 않고 통과되어야만 하는 것들이다. 하지만, 홀수번째 입력 신호는 쌍으로 묶여진 입력 p(n)을 만들기 위해 우선 쌍을 지어야 하고, 신호 Y1은 2제곱근으로 곱해져야만 한다. 제어신호 SEL_P는 쌍으로 묶여진 입력을 선택하기 위해 활성화되어야 한다. 따라서 이러한 신호들은 정확한 신호들이 선-공동블록 PREC 231의 출력 래치로 통과되도록 만드는 멀티플렉서와 같이 작동하는 게이트를 제어하는데 사용된다.SEL_BYP, SEL_P: As shown in FIG. 10, even-numbered input signals latched into latches C10, C54, C32, and C76 must pass through the adder and the quadratic transform multiplier. However, odd-numbered input signals must first be paired to produce a paired input p (n), and signal Y1 must be multiplied by a square root. The control signal SEL_P must be activated to select the paired inputs. These signals are therefore used to control the gate acting as a multiplexer that allows the correct signals to be passed to the output latch of the pre-co-block PREC 231.

앞에서 토의된 바와 같이, 입력을 정확히 오름차순으로 정렬하지 않아도 되는 점은, 높은 효율의 내선연결을 지닌 단순화된 “버터플라이” 버스 구조를 가능케 한다. 또 앞에서 설명했듯이, 홀수번째 입력들은 가급적이면 우선 선-공동블록 PREC 231에 그룹으로 인가되고, 이어서 짝수번째 입력이 인가된다. 하지만, 각 홀수 혹은 짝수번째 그룹 내에서는 어떠한 순서라도 사용될 수 있다. 즉, 입력의 어떠한 순서라도 사용될 수 있다. 하지만, 홀수번째 입력들을 처리하기 위해 개별적으로 제공되거나 혹은 최소한 회로의 개별 부분에 제공된 적절한 래치의 정렬이 갖춰져야 한다.As discussed earlier, the need to sort the inputs in exactly ascending order enables a simplified “butterfly” bus structure with high efficiency extension connections. As described above, odd-numbered inputs are preferably applied to the pre-co-block PREC 231 as a group, and then even-numbered inputs are applied. However, any order may be used within each odd or even group. That is, any order of input may be used. However, an appropriate latch arrangement must be provided either individually to handle odd-numbered inputs, or at least on separate parts of the circuit.

총괄 제어회로는 또한 후-공동블록 POSTC 233에 티이밍 및 제어 신호를 발생시킨다. 이들 제어 신호는 다음과 같다:The overall control circuit also generates a timing and control signal to the post-joint block POSTC 233. These control signals are as follows:

EN_BH, EN_GH : 제9도를 다시 참조하면, 홀수번째 입력을 처리한 공동블록 CBLK 232로부터의 출력은 H0, H1, H3, H2로 나타낼 수 있다. 이들 신호들의 첫번째 후-공동블록 POSTC 1 233의 계수 곱셈기 d1, d3, d7, d5에 각각 보내진다. 신호 EN_BH은 h0에서 h3 신호를 홀드시키고 있는 래치를 계수 공정에서 그것들이 곱해진 뒤 인에이블 시킬 뿐 아니라, g0에서 g3 신호를 홀드시키고 있는 래치를 인에이블 시키는 데 쓰인다.EN_BH, EN_GH: Referring back to FIG. 9, the output from the common block CBLK 232 which processed the odd-numbered input may be represented by H0, H1, H3, H2. These signals are sent to the coefficient multipliers d1, d3, d7, d5 of the first post-joint block POSTC 1 233, respectively. The signal EN_BH is used to enable the latches holding the signal h3 at h0 after they have been multiplied in the counting process, as well as to enable the latches holding the signal g3 at g0.

ADD, SUB : 제10도에서 보듯이, 본 실시예는 저차 출력을 형성하기 위해 각기 g(k)와 h(k)를 각각 더하거나 빼는 방식으로 변형 덧/뺄셈기를 각각 덧셈 및 뺄셈 모드로 세팅하는 데 쓰인다.ADD, SUB: As shown in FIG. 10, this embodiment sets the modified add / subtractors to the addition and subtraction modes, respectively, by adding or subtracting g (k) and h (k), respectively, to form a lower order output. Used to

EN_O : 변형 덧/뺄셈기로부터의 결과를 래치시키는 출력 래치를 인에이블 시키는 데 쓰인다.EN_O Used to enable an output latch that latches the result from the transform adder / subtracter.

MUX_OUT70, MUX_OUT61, MUX_OUT43, MUX_OUT52 : 본 발명에 따르면, 시스템의 출력 데이타는 한번에 단 한개의 결과값(X0에서 X7)이 전달되도록 가급적 단일 22 비트 출력 버스를 통해 전송된다. 이들 신호들은 4개의 래치되어 온 출력값 중 최종 출력 래치에 보낼 것을 선택하기 위해 순차적으로 활성화된다. 이에 따라, 이들 신호들은 4-to-1 멀티플렉서의 제어 신호처럼 작동한다.MUX_OUT70, MUX_OUT61, MUX_OUT43, MUX_OUT52: According to the invention, the output data of the system is transmitted via a single 22-bit output bus as much as possible so that only one result value (X0 to X7) is delivered at a time. These signals are sequentially activated to select which of the four latched output values to send to the final output latch. Accordingly, these signals act like control signals of a 4-to-1 multiplexer.

T_OUT[21:0] : 이 라벨은 후-공동블록 POSTC 233의 22비트 출력 신호를 가리킨다.T_OUT [21: 0]: This label points to the 22-bit output signal of the post-joint block POSTC 233.

선-공동블록 PREC 231와 출력신호는 공동 처리블록 CBLK 232의 입력신호를 형성하기 위해 래치된다. 제11도에서 보듯이, 선-공동블록 PREC 231의 출력신호는 4개의 22비트 데이타 워드 CI10[21:0], CI54[21:0], CI32[21:0], CI76[21:0]로 나타나는데, 그것들은 각각 공동 처리블록 CBLK 232의 입력신호 IN[0], IN[1], IN[3], IN[2]가 된다.The pre-joint block PREC 231 and the output signal are latched to form an input signal of the joint processing block CBLK 232. As shown in FIG. 11, the output signal of the pre-co-block PREC 231 is composed of four 22-bit data words CI10 [21: 0], CI54 [21: 0], CI32 [21: 0], CI76 [21: 0]. These are the input signals IN [0], IN [1], IN [3], and IN [2] of the joint processing block CBLK 232, respectively.

제12도에서 보듯이, 공동 처리블록 CBLK로부터 얻어진 4개의 22비트 결과는 출력신호 OUT0[21:0], OUT1[21:0], OUT3[21:0], OUT2[21:0]과 병렬로 전달되는데, 이후, 그것들은 CO70[21:0], CO61[21:0], CO43[21:0], CO52[21:0]과 같은 후-공동블록 POSTC 233의 입력신호로서 래치되어 들어간다.As shown in FIG. 12, four 22-bit results obtained from the joint processing block CBLK are parallel to the output signals OUT0 [21: 0], OUT1 [21: 0], OUT3 [21: 0], and OUT2 [21: 0]. They are then latched in as input signals to the post-joint block POSTC 233, such as CO70 [21: 0], CO61 [21: 0], CO43 [21: 0], CO52 [21: 0]. .

어떠한 제어 신호로도 공동 처리블록 CBLK에는 필요치 않다는데 특별한 주의를 기울여야 한다. 본 예의 IDCT 시스템의 독창적인 구조때문에, 시스템의 공동 처리블록 연산은 클록, 타이밍, 제어신호가 필요없이 순수한 논리연산으로 수행될 수 있다. 이것은 나아가 장치의 복잡성을 감소시킨다. 또한, 어떤 응용에서는(특히 필요 논리연산을 수행하는데 충분한 시간이 있을때) 선-공동블록 PREC 231 및 후-공동블록 POSTC 233은 클록 타이밍이나 제어신호 없이도 연산이 될 수 있도록 조정될 수 있다.Special care should be taken that no control signal is required for the joint processing block CBLK. Because of the unique structure of the IDCT system of this example, the co-processing block operations of the system can be performed with pure logic without the need for clocks, timings, and control signals. This further reduces the complexity of the device. Also, in some applications (especially when there is sufficient time to perform the required logic operation) the pre-co-block PREC 231 and post-co-block POSTC 233 can be adjusted to operate without clock timing or control signals.

제12도는 본 발명의 블록도이다. 이번 및 다음 도면에서 S1[a], S2[b],..., SM[z] 표기는, S는 임의의 신호 라벨을, a,b,...,z는 신호의 버스 폭 내의 정수, 신호 S1, S2,..., SM으로부터 선택된 비트들(a,b,...,z)이 전달됨을 의미한다. 이때, MSB는 신호 S1의 선택된 비트 a이고, LSB는 선택된 신호 z이다. 선택된 비트는 단일 비트일 필요는 없으며, 오히려 전체 혹은 부분 다비트 워드들과 함께 전송될 수 있다. 도면에서, 심벌 S는 상응하는 신호 라벨로 교체될 것이다.12 is a block diagram of the present invention. In this and subsequent figures, the notations S1 [a], S2 [b], ..., SM [z] indicate that S is an arbitrary signal label, and a, b, ..., z are integers within the bus width of the signal. It means that the bits (a, b, ..., z) selected from the signals S1, S2, ..., SM are transferred. At this time, MSB is selected bit a of signal S1 and LSB is selected signal z. The selected bit need not be a single bit, but rather can be transmitted with full or partial multibit words. In the figure, the symbol S will be replaced with the corresponding signal label.

한 예로, 제12도에서 2제곱근 곱셈기가 R2MUL로 나타나 있다. 비변형 곱셈기(non-resolving multiplier)의 세이브 및 비변형합(unresolved sum)은 22비트 워드 M55[20:0]으로 나타내졌다. 마찬가지로 곱셈기 R2MUL의 출력은 22비트 워드 M5C[20:0]으로 나타내졌는데, 그것은 캐리-세이브 변형 덧셈기 M5A의 입력 b에 버스를 통해 전달된다. (0은 세이브 출력의 LS(least significant) 21비트에 MSB로서 삽입됨을 상기할 것, 하지만, 이것은 변형 덧셈기 M5A의 입력 a에 인가되기 전에 완성된다. 이것은 제12도의 GND.M5S[20:0]표기에서 드러난다). 다시 말해, 덧셈기 M5A의 MSB 입력에 해당하는 전도체는 접지 GND에 의해 강제로 0이 된다.As an example, in FIG. 12 a square root multiplier is shown as R2MUL. The save and unresolved sum of the non-resolving multiplier is represented by the 22-bit word M55 [20: 0]. Similarly, the output of the multiplier R2MUL is represented by the 22-bit word M5C [20: 0], which is passed over the bus to the input b of the carry-save modified adder M5A. Recall that (0 is inserted as the MSB in the least significant 21 bits of the save output, but this is done before being applied to the input a of the transform adder M5A. This is GND.M5S [20: 0] in FIG. 12). Revealed in the notation). In other words, the conductor corresponding to the MSB input of adder M5A is forced to zero by ground GND.

왜 0이 합의 22번째 비트로서 삽입되는지 이해하기 위해서는 곱셈의 부분합이 n자리의 폭을 가지는지, 혹은 캐리 워드가 부분합의 왼편으로 한자리 이동되는지 관찰해야 한다. 따라서, 캐리 워드는 LS 자리에 0, 즉 n+1번째 자리에 유효한 데이타를 가지고 n+1자리로 확장된다(이 자리의 앞쪽에는 일의 자리에 캐리 비트를 만들어 낼 수 있는 것이 없으므로). 이들 두 워드가 변형 이진 덧셈기의 입력으로 사용된다면, 캐리 워드의 비트들이 상응하는 부문합의 비트들과 적절히 정렬되었는지 주의를 기울여야 한다. 이것은 또한 소수점이(정수 논리에서는 단지 상상만 할 수 있지만) 이 두 워드 모두에서 정렬된 채로 있는 것을 보장해준다. 덧셈기의 입력의 폭이 n+1비트라고 가정하면 다른 입력의 캐리 워드와 정렬되어 있는 n+1비트 입력을 제공하기 위해 0은 n비트 양의 부분합의 최고차 비트에 삽입될 수 있다.To understand why zero is inserted as the 22nd bit of the sum, we need to observe whether the subtotal of the multiplication has n widths or if the carry word is shifted one digit to the left of the subtotal. Thus, the carry word is extended to n + 1 digits with valid data in the LS digit, i.e., the n + 1 digit (because there is nothing in front of this digit that can produce a carry bit). If these two words are used as inputs to the modified binary adder, care must be taken to ensure that the bits of the carry word are properly aligned with the corresponding subtotal bits. This also ensures that the decimal point (though just imaginable in integer logic) remains aligned in both words. Assuming that the width of the adder's input is n + 1 bits, 0 can be inserted into the most significant bit of the n-bit positive subtotal to provide an n + 1 bit input aligned with the carry word of the other input.

앞에서 설명했듯이, 선-공동블록 PREC 231에서 주어진 시간에 처리되는 4개의 입력은 입력 버스 T_IN[21:0]을 통해 전달된다. 이 입력 버스는 4개의 입력 래치와 연결된다. 각 래치는 입력신호 IN_CLK와 상응하는 래치 선택신호 LATCH10, LATCH54, LATCH32, LATCH76이 하이(high)일 때만 인에이블된다. 따라서, 4개의 입력은 순차적인 래치 인에이블 신호 LATCH10, LATCH54, LATCH32, LATCH76의 활성화에 의해 IN_CLK 신호의 4가지 주기의 각 입력 래치로 래치되어 들어간다. 이 시간동안, 4개 입력값들을 일정화시키고 래치시키기 위해서 입력 래치 IN10L, IN54L, IN32L, IN76L을 인에이블시키는 LATCH 신호는 로우(low)(혹은 다른 페이즈)이어야 한다.As described above, four inputs processed at a given time in the pre-co-block PREC 231 are delivered via input bus T_IN [21: 0]. This input bus is connected to four input latches. Each latch is enabled only when the latch selection signals LATCH10, LATCH54, LATCH32, and LATCH76 corresponding to the input signal IN_CLK are high. Therefore, four inputs are latched into each input latch of four cycles of the IN_CLK signal by sequential activation of the latch enable signals LATCH10, LATCH54, LATCH32, and LATCH76. During this time, the LATCH signal, which enables input latches IN10L, IN54L, IN32L, and IN76L, must be low (or another phase) to schedule and latch the four input values.

본 발명에 따른, 래치 타이밍의 한 예가 제13도에 있다. 일단 4개의 입력 신호가 앞에서 제기된 순서로 래치되면, 그것들은 래치 L10L, L54L, L32L, L76L의 두번째 뱅크로 통과된다. 이들 래치의 2차 뱅크로는 신호 OUT_CLK 및 LATCH가 high일때 인에이블된다. 이 신호간 타이밍이 제13도에 나타나 있다.One example of latch timing in accordance with the present invention is in FIG. Once the four input signals are latched in the order presented above, they are passed to the second bank of latches L10L, L54L, L32L, L76L. The secondary banks of these latches are enabled when the signals OUT_CLK and LATCH are high. This inter-signal timing is shown in FIG.

본 발명의 시스템은 8개 입력워드 모두를 받아들이는데 지연을 시킬 필요가 없음을 주목하자. 한번, 모든 짝수 및 홀수 입력워드들이 받아들여지고 입력 래치 IN10L, IN54L, IN32L, IN76L로 래치되어 들어오면, 인 래치(In latch)를 자유롭게 만들고, 이후 그것은 IN_CLK의 다음 도약에지(rising edge)에서 지연됨 없이 4개의 입력신호를 받아들이기 시작할 수 있다.Note that the system of the present invention does not need to delay the reception of all eight input words. Once all the even and odd input words are accepted and latched into the input latches IN10L, IN54L, IN32L, IN76L, they make the In latch free, after which it is not delayed at the next rising edge of IN_CLK. It can start accepting four input signals.

도면에 나타난 여러가지 컴포넌트에 사용된 2-자리 접미표기(2-digit suffix notation)는 홀수번째 신호가 우선 처리되고 이어 짝수번째 신호가 구조를 통해 통과됨을 나타낸다. 앞에서 언급했듯이, 이 순서는 본 발명에 의해 필요치 않으며, 그것은 부가적인 덧셈기가 사용될 수 있는 분야의 일반적인 기술의 하나에 의해 인식될 것이다.The 2-digit suffix notation used for the various components shown in the figure indicates that the odd numbered signal is processed first and then the even numbered signal passes through the structure. As mentioned earlier, this order is not required by the present invention, which will be appreciated by one of the general techniques in the art in which additional adders can be used.

일단 4개의 신호가 두번째 세트의 래치 L10L, L54L, L32L, L76L에 적당한 순서로 래치되어 들어가면, 이에 따른 값들은 선택된 통과신호 SEL_BYP의 활성화에 의해 출력래치 C10L, C54L, C32L, C76L의 입력으로 통과되거나, ‘p선택’ 신호 SEL_P의 활성화에 의해 같은 출력래치의 쌍으로 묶여져 곱해진 입력으로서 통과된다. 다시 말해, 모든 신호들을 직간접으로 논리장치를 통해 선-공동블록 PREC 231의 출력래치 C10L, C54L, C32L, C76L로 통과된다. 하지만, 정확한 값들은 ‘통과선택(select bypass)’ 신호 SEL_BYP(짝수번째 입력 Y0, Y2, Y4, Y6에 대해)의 활성화 및 ‘p선택’ 신호 SEL_P(홀수번째 입력 Y1, Y3, Y5, Y7에 대해)의 활성화에 의해 이들 래치들로 로딩되어 들어간다. 보통의 기술중 한가지로 평가되겠지만, 원하는 타이밍과 이들과 다른 제어신호들의 순서가 제어기 CNTL_241의 적절한 and/or 프로그레밍 조작으로 쉽게 수행된다.Once four signals are latched into the second set of latches L10L, L54L, L32L, and L76L in the proper order, the corresponding values are passed to the inputs of output latches C10L, C54L, C32L, and C76L by activation of the selected pass signal SEL_BYP. Passed as an input multiplied by the same pair of output latches by the activation of the 'p select' signal SEL_P. In other words, all signals are passed, directly or indirectly, through logic to the output latches C10L, C54L, C32L, and C76L of the pre-joint block PREC 231. However, the correct values are for the activation of the 'select bypass' signal SEL_BYP (for even inputs Y0, Y2, Y4, Y6) and the p selection' signal SEL_P (odd inputs Y1, Y3, Y5, Y7). Is loaded into these latches. As would be appreciated by one of the common techniques, the desired timing and the order of these and other control signals are easily performed with proper and / or programming operations of the controller CNTL_241.

래치 L10L 출력이 최상의 입력값은 우선 2제곱근 곱셈기 R2MUL로 통과되며, 이후 앞에서 언급한 바와 같이 변형 덧셈기 M5A의 출력은 래치 L10L 출력의 2제곱근 변형 곱셈기와 같게 보인다. 다른 세개의 래치 L54L, L32L, L76L 의 출력은 또한 이에 따른 출력 래치 C54L, C32L, C76L로 전달되는데,Latch L10L output The best input value is first passed to the square root multiplier R2MUL, and as mentioned earlier, the output of the strain adder M5A looks like the square root strain multiplier of the latch L10L output. The outputs of the other three latches L54L, L32L, and L76L are also passed to the output latches C54L, C32L, and C76L accordingly.

또한 다른 세 개의 래치(L54L, L32L, L72L, L76L)로부터의 출력은 각각 직접 22-비트 래치 버스[LCH54{21:0}, LCH32{21:0}, LCH6 {21:0}]를 통하여 대응하는 출력래치(C554L, C32L, C76L)로 전송되고 간접적으로 해상 가산기(P2A, P1A, P3A)를 통하여 출력래치에 전송된다.Outputs from the other three latches (L54L, L32L, L72L, L76L) also correspond directly through the 22-bit latch buses [LCH54 {21: 0}, LCH32 {21: 0}, and LCH6 {21: 0}], respectively. The output latches are transmitted to the output latches C554L, C32L, and C76L and indirectly transmitted to the output latches through the sea adders P2A, P1A, and P3A.

본 발명에 있어서, 각각의 가산기(P2A, P1A, P3A)는 두 개의 출력 “a” 및 “b”를 가지고 있다. 가산기(P2A)에서 하나의 입력을 래치(L32L)로부터 수신되고, 다른 입력은 래치(L54L)로부터 수신된다. 그러므로, 입력값 Y5(L54L에서 래치된)와 Y3(L32L에서 래치된), 가산기(P2A)로부터의 출력은 상기에서 도시되고 P(2)와 동일한 Y5+Y3와 동일하게 될 것이다. 따라서 짝을 이룬 가산기의 홀수개의 입력은 짝을 이룬 입력값 P(1), P(2) 및 P(3)를 형성한다. 물론, L54L, L32L 및 L76L내에 래치된 짝수의 입력신호는 각각 해상가산기(P2A, P1A 및 P3A)를 통하여 통과할 것이다. 합성 P “값”은 짝수 입력을 위해 “선택P” 신호 SEL_P가 활성화되지 않을 것이기 때문에 출력래치(C54L, C32L 및 C76L)를 통과하지 않은 것이다.In the present invention, each adder P2A, P1A, P3A has two outputs "a" and "b". In the adder P2A, one input is received from the latch L32L and the other input is received from the latch L54L. Therefore, the input values Y5 (latched at L54L) and Y3 (latched at L32L), output from adder P2A, will be equal to Y5 + Y3 as shown above and equal to P (2). Thus the odd inputs of the paired adders form a paired input value P (1), P (2) and P (3). Of course, the even input signals latched in L54L, L32L and L76L will pass through the sea adders P2A, P1A and P3A, respectively. The composite P “value” has not passed the output latches (C54L, C32L and C76L) because the “selection P” signal SEL_P will not be activated for even input.

따라서, 입력클럭신호 IN-CLK의 활성화에 따른 출력래치(C10L, C54L, C32L 및 C76L)에 래치되어 있는 값은 짝수입력(Y0, Y2, Y4, Y6) 또는 홀수입력을 위한 쌍으로 된 입력값(P0, P1, P2, P3)과 동일하게 될 것이다. 입력Y(1)은 0이 될 것으로 가정되는 값U(-1)과 쌍이 된다. 제12도에 도시되어 있는 바와 같이, 이러한 가정을 값(Y1)에 어떤 것도 부가하지 않는다는 것을 의미한다. 대신에, Y1은 제9도 및 제10도에 도시된 바와 같이 2의 제곱근의 곱이 된다.Therefore, the values latched in the output latches C10L, C54L, C32L and C76L according to the activation of the input clock signals IN-CLK are paired input values for even inputs (Y0, Y2, Y4, Y6) or odd inputs. Will be equal to (P0, P1, P2, P3). Input Y (1) is paired with the value U (-1), which is assumed to be zero. As shown in FIG. 12, it means that this assumption is not added to the value Y1. Instead, Y1 is the product of the square root of two, as shown in FIG. 9 and FIG.

제14도는 본 발명에 따른 공통블럭(CBLK232)의 양호한 구성을 도시하고 있다. 다른 시스템 블럭의 여러가지 부가 및 증가 때문에, 여러 계산을 수행하기 전에 공통블럭에 대한 입력값을 줄이는 것이 필요 또는 양호하다. 이는 시스템 내에서 여러가지 계산장치에 대응 입력을 위한 소수점(이는 정수법을 의미한다.)을 위하여 균일한 위치를 보장한다.14 shows a preferred configuration of the common block CBLK232 according to the present invention. Because of the various additions and increments of other system blocks, it is necessary or desirable to reduce the input to the common block before performing various calculations. This ensures a uniform position for the decimal point (which means integer method) for the corresponding input to the various computing devices in the system.

따라서, 입력값 IN0{21:0} 및 IN1{21:0}은 4라는 인수로 대응하게 작아지고 이는 디지탈 계산법에서 두 비트와 직각변위에 대응한다. 2진법에서 몇 개의 수(양의 값은 양을 지키고, 음의 값은 음을 지키는)의 신호를 보존하기 위하여 가장 중요한 비트(MSB)는 결과로서 나타나는 정변위 워드의 2개의 최상위 비트로 복제되어야 하며 이러한 처리는 “신호연장”이라 공지되어 있다. 입력값(IN0)은 IN[21], IN0[21], IN0[21], IN0[21:2]로 지정된 변환된 입력값을 형성하도록 신호 연장처리법으로 두 개의 비트에 의해 작게 변환된다. 입력값 IN1[21:0]은 두 위치에서 유사하게 신호 연장된다. 이는 한 위치 변환은 2가지 요소에 의해 절두 영역에 대응한다.Thus, the inputs IN0 {21: 0} and IN1 {21: 0} are correspondingly smaller with a factor of 4, which corresponds to two bits and orthogonal displacement in the digital calculation. In order to preserve some number of signals (positive values are positive and negative values are negative) in binary, the most significant bit (MSB) must be duplicated into the two most significant bits of the resulting positive word. This process is known as "signal extension". The input value IN0 is converted small by two bits by the signal extension process to form a converted input value specified by IN [21], IN0 [21], IN0 [21], IN0 [21: 2]. The input value IN1 [21: 0] is signal extended similarly in both positions. This one positional transformation corresponds to the truncated region by two factors.

제10도에 도시된 바와 같이, 입력(IN2, IN3)은 스케일된 계수(C1S 및 C3S)에 의해 곱해져야 한다. 각각의 입력(IN3, IN2)은 각각의 스케일된 계수에 의해 곱해져야만 한다. 제14도에 도시된 바와 같이, 이는 4개의 상수-계수 캐리세이브 곱셈기(MULC1S, MULNC1S, MULC3S3 및 MULC2S2)에 의해 수행된다. IN2를 위한 기본 곱셈기는 반전 곱셈기(MULC1S)이고, 즉 이것의 출력은 상수(C1S)에 의해 곱해진 입력값의 부와 대응한다. 그러므로, C76에 래치된 값은 C32(C3?에 의해 곱해진 후에)에 래치된 값으로부터 뺀다. 반전 곱셈기(MULNC1S)를 제공하기 위하여, 차를 형성하기에 동등한 대응?값의 부를 부가하여 달성된다. 이것은 연속가산기를 위하여 동일한 회로의 사용을 허용하고, 한편 비반전 곱셈기를 다음 공제기를 사용하도록 허용한다.As shown in FIG. 10, the inputs IN2, IN3 should be multiplied by the scaled coefficients C1S and C3S. Each input IN3, IN2 must be multiplied by a respective scaled coefficient. As shown in FIG. 14, this is performed by four constant-coefficient carry save multipliers (MULC1S, MULNC1S, MULC3S3 and MULC2S2). The basic multiplier for IN2 is an inverse multiplier (MULC1S), ie its output corresponds to the negative of the input value multiplied by the constant C1S. Therefore, the value latched in C76 is subtracted from the value latched in C32 (after being multiplied by C3?). In order to provide an inverse multiplier (MULNC1S), it is achieved by adding the corresponding value of the equivalent value to form the difference. This allows the use of the same circuit for the continuous adder, while allowing the non-inverting multiplier to use the next deductor.

본 발명의 도시된 실시예에 있어서, 네 개의 코사인 계수 곱셈기(MULC1S, MULNC1S, MULC2S3 및 MULC3S2)를 포함한다. 장치들은 신호가 곱셈기를 통하여 따로따로 통과하도록 만들어져 있으나, 필요한 곱셈은 오직 두 개의 곱셈기를 이용하여 수행할 수 있는데, 하나는 C1S계수를 위한 것이고, 다른 하나는 C3S 계수를 위한 것이다.In the illustrated embodiment of the present invention, four cosine coefficient multipliers (MULC1S, MULNC1S, MULC2S3 and MULC3S2) are included. The devices are designed to pass signals separately through a multiplier, but the necessary multiplication can be done using only two multipliers, one for the C1S coefficients and one for the C3S coefficients.

본 발명에 따라서, MULC1C, MULNC1S, MUL3S3 및 MULC3S2를 위한 곱셈기는 캐리-세이브형이 양호하며, 이는 그들이 두 개의 출력 단어를 생산하는데 하나는 하드웨어 곱셈기 내에서 완성된 여러 열의 부가의 결과에 대응하고 다른 하나는 생성된 캐리 비트들에 대응한다. 곱셈기로부터의 출력들은 4개의 입력 해상 가산기(BT2, BT3)중의 하나에 입력으로서 접속된다.According to the invention, the multipliers for MULC1C, MULNC1S, MUL3S3 and MULC3S2 are preferably carry-saved, which produces two output words, one corresponding to the additional result of several rows completed in the hardware multiplier and the other One corresponds to the generated carry bits. The outputs from the multiplier are connected as inputs to one of the four input resolution adders BT2, BT3.

오직 도시의 용이를 위하여, 곱셈기로부터의 5개의 출력버스는 가산기의 대응 입력 버스에 접속된 것으로 도시되어 있지 않으나, 본 기술분야에서 통상의 기술의 ???에 의해 이들의 접속을 이해할 것이며, 동일 라벨을 가진 각각의 입력 및 출력에 의해 도시되어 있다는 것을 알 것이다. 곱셈기(MULC1S)의 세이브 출력 M1S[20:0]은 가산기(BT3)의 “세이브-에이”의 낮은 21비트에 접속되어 있다.Only for ease of illustration, the five output buses from the multiplier are not shown connected to the corresponding input bus of the adder, but their connections will be understood by ??? of ordinary skill in the art, and the same It will be appreciated that it is shown by each input and output with a label. The save output M1S [20: 0] of the multiplier (MULC1S) is connected to the lower 21 bits of the "Save-A" of the adder BT3.

제14도에 도시된 바와 같이, 가산기(BT2, BY3)에 대한 5개의 입력이 “스플릿”인 것으로 도시되어 있다. 예를 들면, 가산기(BT2)의 “CA”입력은 최소로 중요한 21비트로서의 입력인 M3C[20:0]에 대한 IN3[21]을 가진 것으로 도시되어 있다. 유사하게, 같은 가산기의 “sa”(“세이브-에이” 입력)은 GND, M3S[19:0]에 대한 GND로 도시되어 있다. 이는 두 개의 0이 이러한 입력단어의 가장 중요한 2개의 비트로 부가된다는 것을 의미한다. 이러한 부가된 비트들은 적절한 22비트로 넓은 입력단어들은 적절한 신호로 형성되게 함을 보장한다.As shown in FIG. 14, five inputs to the adders BT2 and BY3 are shown to be "split". For example, the "CA" input of adder BT2 is shown having IN3 [21] for M3C [20: 0] which is the input as the least significant 21 bit. Similarly, “sa” (“Save-A” input) of the same adder is shown as GND, GND for M3S [19: 0]. This means that two zeros are added to the two most significant bits of this input word. These added bits are appropriate 22 bits to ensure that wide input words are formed with the appropriate signal.

캐리-세이브 가산기(BY2, BT3)는 22비트 출력 세이브 단어 T3S[21:0], 21비트 출력 캐리 단어 T3C[21:1]를 형성하도록 2개의 다른 22비트 입력의 단어를 캐리하고 세이브하게 부가한다. 따라서, 각 가산기의 입력은 88비트로 넓고 각 가산기로부터 출력은 43비트로 넓다. 제10도에 도시된 바와 같이, 래치(C10)로부터의 출력은 캐리세이브 가산기(BT3)로부터의 출력과 가산되기 전에 상부 대부분의 데이타 패스에서의 래치(C54)로부터의 출력과 결합된다. 그러나, “결합”은 상부 데이타 패스에서 다음의 가산기에 도달할 때까지 필요하지 않다. 따라서, 제14도에 도시된 바와 같이, 변환되고 신호-연장된 입력값(IN0)은 상부 캐리 입력에 접속된다.Carry-Save adders (BY2, BT3) carry and save words from two different 22-bit inputs to form 22-bit output save words T3S [21: 0] and 21-bit output carry words T3C [21: 1]. do. Thus, the input of each adder is wide at 88 bits and the output from each adder is wide at 43 bits. As shown in FIG. 10, the output from latch C10 is combined with the output from latch C54 in the upper most data path before being added with the output from carry save adder BT3. However, "combine" is not necessary until the next adder in the upper data path is reached. Thus, as shown in FIG. 14, the converted and signal-extended input value IN0 is connected to the upper carry input.

가산기(CS0)의 상부 캐리 입력은 변환되고 신호-연장된 입력값(IN0)에 접속되고, 변환되고 신호-연장된 입력(IN1)은 동일 가산기의 상부 세이브 입력과 같이 접속된다. 환언하면, IN0 및 IN1는 가산기(CS0)에서 후에 부가된다.The upper carry input of adder CS0 is connected to the converted and signal-extended input value IN0, and the converted and signal-extended input IN1 is connected together with the upper save input of the same adder. In other words, IN0 and IN1 are added later in the adder CS0.

그러므로, 제10도에 사용된 “더미” 가산기/감산기(240)의 지정은 제10도에 지정된 점에서 달성될 필요가 없을지라도 그 작용은 수행되어야 함을 나타낸다. 유사하게, 제10도에 도시된 하부 더미 감산기(240)는 래치(C54)로부터의 출력 래치(C10)으로부터의 출력으로부터 감해짐을 요구한다. 이는 C54의 출력의 여수에 C10으로부터의 출력을 부가함과 동일하다.Therefore, the designation of “dummy” adder / subtracter 240 used in FIG. 10 indicates that the action should be performed even though it does not need to be achieved at the point specified in FIG. Similarly, the lower dummy subtractor 240 shown in FIG. 10 requires subtracting from the output from the output latch C10 from the latch C54. This is equivalent to adding the output from C10 to the free number of outputs of C54.

제14도로 다시 보면, 입력(IN1)(제10도에서 래치[C54]의 출력에 대응)의 여수는 22비트 입력 반전기 IN1[21:0](비트 대 비트의 입력의 각 비트의 로직 역수를 발생하는)에 의해 수행된다. IN1값---NIN1[21:0]의 여수는 변환되고 신호-연장된 IN0인 대응하는 상부 “캐리”입력과 함께 가산기(CS1)의 상부 “세이브”입력으로 상부 부분은 IN0-IN1에 대응하여 감산을 수행한다.Referring back to FIG. 14, the evenness of the input IN1 (corresponding to the output of the latch [C54] in FIG. 10) is the 22-bit input inverter IN1 [21: 0] (the logic inverse of each bit of the bit-to-bit input). Is generated). The value of IN1 --- NIN1 [21: 0] is an extra number corresponding to IN0-IN1 as the upper "Save" input of adder (CS1) with the corresponding upper "Carry" input which is converted and signal-extended IN0. To perform the subtraction.

제10도에 도시된 하부 2개의 데이타 패스에서, 해상 감산기는 공통블럭(BLK232)의 출력으로 상부 2개의 데이타 패스에 도시된 가산기 대신에 상용된다. 각각의 해상가산기 또는 감산기는 해상 가산기에 따르는 캐리-세이브 가산기 또는 감산기와 동등하다. 이는 제14도에 도시되어 있다. 제산기(CS2, CS3)는 제10도에 도시된 접속구조에 따라 IN0 내지 IN3의 처리된 값의 그들의 입력들을 가진다.In the lower two data paths shown in FIG. 10, the sea subtractor is commercially used instead of the adder shown in the upper two data paths at the output of the common block BLK232. Each sea adder or subtractor is equivalent to a carry-save adder or subtractor following the sea adder. This is shown in FIG. Dividers CS2 and CS3 have their inputs of processed values of IN0 to IN3 according to the connection structure shown in FIG.

각 가산기/감산기(C20-CS3)으로부터의 22비트 캐리 및 세이브 출력은 분해 가산기(RES0-RES3)에서 분배된다. 본 기술분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 캐리 및 세이브 출력의 분배는 디지탈 설계 기술에서 설명을 생략하겠다. 제14도에 도시된 바와 같이, 캐리-세이브 가산기/감산기(CS0-CS3)의 세이브 출력은 대응하는 분해 가산기(RES0-RES3)의 “에이”입력에 22 비트 입력으로 직접 통과한다.The 22-bit carry and save outputs from each adder / subtractor C20-CS3 are distributed in the decomposition adder RES0-RES3. As will be appreciated by one of ordinary skill in the art, the distribution of carry and save outputs will be omitted from the digital design technique. As shown in Figure 14, the save output of the carry-save adder / subtracter CS0-CS3 passes directly to the "A" input of the corresponding decomposition adder RES0-RES3 as a 22-bit input.

종래 기술에서 잘 아는 바와 같이, 2개의 대응 2진수는 이것의 각 비트(모두 1에서 0으로 변화 또는 그 반대)와 1-???? 가역하여 형성된다. “1”은 비트가역후 바로 또 추후에 바로 부가할 수 있음을 알아야 한다. 캐리 단어의 LSB는 각각 분해 가산기(RES0, RES1)에 입력되는 그라운드(GND)에 캐리단어(O0C, O1C)의 LSB를 타이핑하여 본 발명의 도시된 실시예에서 수행되는 항상 “0”이 될 것이다. 제산기(CS2, CS3)의 캐리 출력에 “1”을 더하는 것은 2의 여수값을 형성하나, 공급전압(VDD)에 이들 데이타 단어(O2C, O3C)에 LSB를 타이핑하여 달성되며, 이에 의해 “1”을 부가하여 동일한 “1” LSB를 “대치”하게 된다.As is well known in the art, two corresponding binary numbers are represented by each bit of it (both from 1 to 0 or vice versa) and 1-???? It is formed reversibly. It should be noted that “1” can be added immediately after the inverse and later. The LSB of the carry word will always be "0" performed in the illustrated embodiment of the present invention by typing the LSB of the carry words O0C and O1C into ground GND, which is input to the decomposition adders RES0 and RES1, respectively. . Adding a “1” to the carry outputs of the dividers CS2 and CS3 forms a free value of 2, but is achieved by typing LSB in these data words O2C and O3C to the supply voltage VDD, thereby “ 1 ”is added to“ replace ”the same“ 1 ”LSB.

상기와 같은 이유로, “0”은 캐리-세이브 가산기(CS0, CS1)로부터의 21비트 캐리 단어에 LSB를 부가하고, 캐리-세이브 제산기(CS2, CS3)로부터의 캐리 단어들의 LSB는 공급전압(VDD)에 대응하는 데이타 라인을 타이핑하여 “1”과 동일하게 세트한다. 그러므로, 분해 가산기(RES0-RES3)는 22비트 출력신호(OUT0[21:0]-OUT3[21:0]를 형성하기 위하여 가산기/제산기(CS0-CS3)로부터의 출력을 분배한다.For the same reason as above, "0" adds an LSB to the 21-bit carry word from the carry-save adders CS0 and CS1, and the LSBs of the carry words from the carry-save dividers CS2 and CS3 are supplied with a supply voltage. A data line corresponding to VDD) is typed and set equal to "1". Therefore, decomposition adder RES0-RES3 distributes the output from adder / divider CS0-CS3 to form 22-bit output signals OUT0 [21: 0] -OUT3 [21: 0].

제14도에서 본 발명의 실시예에 따른 IDCT회로의 두가지의 이점이 도시되어 있다. 첫째, 공통블럭(CBLK 23L)을 위해 제어 또는 타이밍 신호가 필요하지 않다. 오히려, 공통블럭의 입력 신호는 공통블럭(232)내에서 순수-로직 산술장치에 즉시 공급될 수 있는 방법으로 이미 처리된다. 둘째, 데이타 단어 정수 계산의 적절한 크기에 결정은 처음부터 끝가지 사용될 수 있다. (또는 적어도 모든 값에 대하여 소수점은 고정될 것이다.) 이는 정밀도에서 허용할 수 없을 정도의 희생이 없이 플로우팅 포인트 장치의 복잡성 및 저속화를 회피한다.In FIG. 14, two advantages of the IDCT circuit according to the embodiment of the present invention are shown. First, no control or timing signal is needed for the common block CBLK 23L. Rather, the input signal of the common block is already processed in such a way that it can be immediately supplied to the pure-logic arithmetic unit in the common block 232. Second, the decision on the proper size of the data word integer calculation can be used from start to finish. (Or the decimal point will be fixed for at least all values.) This avoids the complexity and slowing down of the floating point device without unacceptably sacrificed precision.

본 발명의 또다른 하나의 이점은, 도시된 바와 같이 출력을 배열하고, 본 발명에 따른 균형적인 방법을 사용하는 것이고, 유사한 설계의 구조가 실리콘 기구에서의 여러 점으로 사용될 수 있다. 예를 들면, 제14도에 도시된 바와 같이, 상수 계수 곱셈기(MULC1S, MULC3S3, MULC3S2)는 모든 4개의 곱셈기가 동시에 동작하도록 데이타 패스내의 같은 점에서 데이타를 수신하고 모두 유사한 구조를 가지고 있다. 이는 장애를 제거하며 이에 의해 반도체가 복합적이고 평행구조의 이점을 모두 취할 수 있다. 캐리-세이브 가산기(BT2, BT3)는 다음의 캐리-세이브 가산기와 제산기와 같이 동시에 동작할 수 있게 한다. 여러 장치의 이러한 대칭적인 구조와 동시 사용은 본 발명의 실시예에 따른 구조를 통하여 공통적이다.Another advantage of the present invention is to arrange the outputs as shown and to use the balanced method according to the present invention, and a structure of similar design can be used at various points in the silicone apparatus. For example, as shown in FIG. 14, the constant coefficient multipliers (MULC1S, MULC3S3, MULC3S2) receive data at the same point in the data path so that all four multipliers operate simultaneously and all have a similar structure. This eliminates obstacles, whereby the semiconductor is complex and can take full advantage of parallelism. The carry-save adders BT2 and BT3 allow to operate simultaneously with the following carry-save adders and dividers. This symmetrical structure and simultaneous use of several devices are common throughout the structure according to embodiments of the present invention.

제15도는 본 발명에 따른 후공통블럭(POSTC 233)의 양호한 장치를 도시한다. 제10도 도시된 바와 같이, 후공통블럭(POSTC 233)의 일차적인 기능은 계수(d1, d3, d5, d7)에 의해 공통블럭의 출력을 곱하여 h0-h2의 값을 형성하고; 하부순서 출력을 형성하기 위한 g(k) 및 h(k)값을 부가하고; 높은 순서 출력을 형성하기 위한 대응하는 g(k)값으로부터 h(k)값을 제산하는 것이다. 제10도 및 제15도를 보면, 후공통블럭(POSTC 233)는 Bh 래치가 불능일 때 공통블럭(CBLK 232)으로부터의 대응출력을 래치(BH0L, BH1L, BH3L, BH2L)로 래치시키며, 제어회로는 EN_BH 신호는 높게, 출력 클럭 신호(OUTC_CLK)가 높게 될 때 대응 래치(G0L, G1L, G3L 및 G2L)내에 래치한다.Fig. 15 shows a preferred device of the post-common block (POSTC 233) according to the present invention. As shown in FIG. 10, the primary function of the post-common block POSTC 233 is to multiply the output of the common block by the coefficients d1, d3, d5, d7 to form a value of h0-h2; Add g (k) and h (k) values to form a lower order output; The h (k) value is divided by the corresponding g (k) value to form a high order output. 10 and 15, the post-common block POSTC 233 latches the corresponding output from the common block CBLK 232 to the latches BH0L, BH1L, BH3L, and BH2L when the Bh latch is disabled. The circuit latches in the corresponding latches G0L, G1L, G3L and G2L when the EN_BH signal is high and the output clock signal OUTC_CLK is high.

처리된 홀수 입력, 즉 h0-h3의 값은 EN_GH와 IN_CLK 신호가 높을 때 상수 계수 곱셈기(D1MUL, M3MUL, M5MUL, D7MUL)를 거쳐 래치(H0L, H1L, H3L, H2L)로 래치된다. 이들 곱셈기는 각각 d1, d3, d5, d7로 곱해진다. 양호한 실시예에 있어서, 이들 상수-계수 곱셈기는 설계를 단순하게 하고 계산속도를 증가시키기 위하여 캐리-세이브 곱셈기가 양호한다. 제15도에 도시된 바와 같이, 상수 계수 곱셈기로부터의 출력 “캐리” C″C″)는 하기에 설명된 변경으로 분배 가산기(H0A, H1A, H3A, H2A)의 입력에 접속되어 있다. 마찬가지로, 계수 곱셈기로부터의 “세이브” (“S”)출력은 하기에 설명된 변경으로서 대응하는 분배 가산기의 다른 입력에 접속되어 있다.The processed odd inputs, i.e., the values of h0-h3, are latched by latches H0L, H1L, H3L, and H2L via constant coefficient multipliers D1MUL, M3MUL, M5MUL, and D7MUL when the EN_GH and IN_CLK signals are high. These multipliers are multiplied by d1, d3, d5, d7, respectively. In a preferred embodiment, these constant-coefficient multipliers are good carry-save multipliers to simplify the design and increase the computation speed. As shown in FIG. 15, the output “carry” C ″ C ″ from the constant coefficient multiplier is connected to the inputs of distribution adders H0A, H1A, H3A, H2A with the modification described below. Similarly, the "save" ("S") output from the coefficient multiplier is connected to the other input of the corresponding distribution adder as a change described below.

제15도에 도시된 바와 같이, H0 신호의 LSB는 H0를 0에 세트(GND에 연결) 하고, 제2비트(HOS[1]에 대응)를 “1”에 세트하는 대응하고 “세이브” 출력을 타이프하여 “1”이 되게 하는 것이 양호하다. 상수-계수 곱셈기(D3MUL)의 캐리 및 세이브 출력으로부터의 테이터 단어들은 분해가산기(H1A)에 입력을 조작한다. 이는 조정과 분배 가산기(H1A)에 대한 그들의 입력의 이점이다.As shown in FIG. 15, the LSB of the H0 signal sets a corresponding "save" output that sets H0 to 0 (connects to GND) and sets the second bit (corresponding to HOS [1]) to "1". It is good to make it become "1" by typing. The data words from the carry and save outputs of the constant-coefficient multiplier D3MUL manipulate the input to the decomposition adder H1A. This is the advantage of their input to the adjustment and distribution adder H1A.

본 발명에 따라, 계수 곱셈기(D7MUL, D5MUL)로부터의 캐리 출력의 모든 22비트는 대응하는 분해 가산기(H3A, H2A)의 “에이”입력에 직접 연결된다. 그러나, 각 곱셈기의 “세이브” 출력의 MSB는 그라운드(GND)에 대응하는 데이타 라인을 타이프하여 “0”에 가압된다.According to the invention, all 22 bits of the carry output from the coefficient multipliers D7MUL, D5MUL are connected directly to the "A" inputs of the corresponding decomposition adders H3A, H2A. However, the MSB of the "save" output of each multiplier is pressed to "0" by typing a data line corresponding to ground (GND).

IDCT 시스템은 상기에서 설명된 CCITT 스페시피케이션에 따라 시험되었다. 디지탈 가산기 및 곱셈기의 크기와 다른 공지된 특성 때문에, 약간의 정밀도는 10,000개의 샘플에서 전형적으로 잃게 되나, 디지탈 전달의 감소되고 기대되는 에러는 “0” 또는 “1”로 상기에서 설명된 여러가지 비트를 가압하도륵 작용한다. 데이타 단어들의 비트 조작의 결과로서, 본 발명의 실시예는 오직 22비트 광역 데이타 단어를 사용하는 CCITT 기준 이하로 허용가능 정밀도를 달성하며, 한편 24비트는 동등한 정밀도를 산출하는데 정상적으로 요구된다.IDCT systems were tested according to the CCITT specification described above. Because of the size of the digital adder and multiplier and other known characteristics, some precision is typically lost in 10,000 samples, but the reduced and expected error of digital transfer is “0” or “1” to vary the various bits described above. It works even under pressure. As a result of the bit manipulation of data words, an embodiment of the present invention achieves acceptable precision below the CCITT criterion using only 22-bit wide data words, while 24 bits are normally required to yield equivalent precision.

제한된 정밀도, 개략적인 오차 때문에, IDCT 시스템 내에서 모든 데이타에는 전형적인 약간의 부정확이 있다. 그러나, 데이타 단어의 선택된 가압 비트는 에러에 의해 발견되고 이에 의해 특정 전체적인 결과보다 양호한 통계적으로 산출된 하드웨어에서의 특정 위치에서의 특정 데이타 단어는 체계적으로 도입된다. 예를 들면, 소정값에 하나 이상의 캐리 비트를 선택적으로 가압하여 “위쓰인” 곱셈을 적용할 수도 있다.Due to limited precision and rough errors, there is some inaccuracy typical for all data within the IDCT system. However, the selected push bit of the data word is found by an error, whereby a specific data word at a specific location in the statistically calculated hardware that is better than the particular overall result is introduced systematically. For example, a "whisked" multiplication may be applied by selectively pressing one or more carry bits to a predetermined value.

본 발명에 있어서, 비트 가압 방법은 정적이지 않고, 어떤 비트로서 항상 특정값으로 가압이 일어나나, 동적인 방법도 또한 사용할 수 있다. 예를 들면, 데이타 단어의 선택된 비트들은 단어(또는 다른 여러 데이타일지라도)가 홀수 또는 짝수, 양 또는 음, 설정 한계치의 이상 또는 이하인지에 따라 “1” 또는 “0”으로 가압된다.In the present invention, the bit pressing method is not static, and pressing is always performed at a specific value as a certain bit, but a dynamic method can also be used. For example, selected bits of a data word are pushed to "1" or "0" depending on whether the word (or any other data) is odd or even, positive or negative, above or below the set limit.

정상적으로, 적은 체계적인 변화만이 전체의 통계적인 성능을 개선할 필요가 있다. 따라서, 본 발명의 실시예에 따라, 선택된 데이타 단어(한번에 한 비트와 하나의 데이타 단어가 양호하고, 비록 이것이 필요없을지라도)의 LSB는 “1” 또는 “0”이 되도록 가압된다. CCITT 테스트가 실행되고, 실행을 위한 CCITT 통계를 컴파일한다. 다른 데이타 단어의 LSB(또는 LSB들)는 “1” 또는 “0”으로 가압되고, 유사하게 통계치가 컴파일한다. 여러가지 가압된 단어들에서 가압된 비트의 여러가지 조합을 위한 통계치를 검사하며 최상의 통계적인 성능이 결정될 수 있다.Normally, only a few systematic changes need to improve the overall statistical performance. Thus, in accordance with an embodiment of the present invention, the LSB of the selected data word (although one bit and one data word at a time is good, although this is not necessary) is pressed to be either "1" or "0". The CCITT test runs and compiles the CCITT statistics for execution. The LSB (or LSBs) of the other data word is pressed to "1" or "0" and similarly compiled by statistics. Examining statistics for various combinations of pressed bits in various pressed words may determine the best statistical performance.

이러한 통계적인 개선이 필요치 않다면, 상수-계수 곱셈기(D1MUL, D3MUL, D5MUL, D7MUL)로부터의 출력은 분해 가산기(HOA-H3A)에서 통상적인 방법으로 분해될 수도 있다. 이들 입력의 LSB와 대응 래치(H0L-H3L)의 입력의 하부 21비트는 그라운드에 연결되어 있다.If this statistical improvement is not necessary, the output from the constant-coefficient multipliers D1MUL, D3MUL, D5MUL, D7MUL may be decomposed in the usual way in the decomposable adder HOA-H3A. The LSBs of these inputs and the lower 21 bits of the inputs of the corresponding latches H0L-H3L are connected to ground.

H-래치(H0L-H3L)와 G-래치(G0L-G3L)로부터의 출력은 분해 가산기-제산기(S70A, S61A, S43A 및 S52A)에 각각 a 및 b 입력을 형성하도록 쌍이 된다. 상기에 지적된 바와 같이, 이들 장치는 ADD 신호가 높을 때 그들의 입력을 부가하고, “a” 입력으로부터 “b” 입력을 감산이 SUB 신호가 높을 때 감산할 수 있다. 상부 2개의 래치쌍(H0L, G0L, H1L, G1L)의 제2비트는 하기에 설명된 방법으로 곱셈장치에 의해 조정된다.The outputs from H-latch (H0L-H3L) and G-latch (G0L-G3L) are paired to form a and b inputs to decomposition adder-dividers S70A, S61A, S43A and S52A, respectively. As noted above, these devices may add their input when the ADD signal is high and subtract the “b” input from the “a” input when the SUB signal is high. The second bits of the upper two latch pairs H0L, G0L, H1L, G1L are adjusted by the multiplication apparatus in the manner described below.

분해 가산기-제산기(S70A, S61A, S43A, S52A)로부터의 출력들은 합성 래치(R70L, R61L, R43L, R52L)로 래치된다.The outputs from the decomposition adder-dividers S70A, S61A, S43A, S52A are latched into the composite latches R70L, R61L, R43L, R52L.

제15(b)도에 도시된 바와 같이, 본 발명에 따라 가산기/제산기 (S70A, dS61A)에 대한 입력 단어들은 조정된 각각의 입력 단어의 제2비트를 가진다. 예를 들면, 가산기-제산기(S70A)의 “a” 입력에 대한 입력 단어의 제2비트는 값(G01M)을 가지도록 세트된다. 가산기/제산기(S70A)에 대한 다른 입력의 제2비트는 유사하게 조정된다. 이러한 비트 조정은 4개의 2:1비트 곱셈기(H01MUX, G01MUX, H11MUX, G11MUX)(제15(b)도에서 오른쪽에 도시된)에 의해 수행된다. 본 발명에 있어서, 이들 곱셈기들은 제2비트(H01M, G01M, H11M, G11M)이 각각의 가산기, 제산기(S70A, S61A)가 ADD가 하이로 세트되어 있다면 하나에 세트되고 제2비트가 SUB 신호가 너무 높게 세트된다면, 실제적인 래치 출력값에 세트되도록 제어된다. 이러한 방법으로 개별적인 비트의 세트는 고속 운용으로 용이하게 수행된다. 그러므로 양호한 실시예는 비트가입 장치를 포함하고, 상기에서 설명한 바와같이 대다수의 시험 화소 다어의 통계적인 해석은 더욱 정확한 결과를 나타내며, 이에 의해 이것이 얻어진다. 그러나 는를 조정이 불필요하고, 이 방법에서 제2비트는 작은 단어폭의 이점을 준다.As shown in Figure 15 (b), the input words for the adders / dividers S70A, dS61A in accordance with the present invention have a second bit of each adjusted input word. For example, the second bit of the input word for the “a” input of the adder-divider S70A is set to have a value G01M. The second bit of the other input to the adder / divider S70A is similarly adjusted. This bit adjustment is performed by four 2: 1 bit multipliers (H01MUX, G01MUX, H11MUX, G11MUX) (shown on the right in FIG. 15 (b)). In the present invention, these multipliers are set to one if the second bits H01M, G01M, H11M, and G11M are each adder and dividers S70A, S61A and ADD is set high and the second bit is a SUB signal. If is set too high, it is controlled to be set to the actual latch output value. In this way, individual sets of bits are easily performed at high speeds. Therefore, the preferred embodiment includes a bit subscription device, and as explained above, the statistical interpretation of the majority of test pixel dare shows a more accurate result, whereby this is obtained. However, no adjustment is necessary, and the second bit in this method gives the advantage of a small word width.

4개의 높거나 낮은 순서의 결과는 출력 래치(R70L, R61L, R43L, R52L)에 래치된다. 그 결과는 곱셈 신호(MUX_OUT70, MUX_OUT61, MUX_OUT43, MUX_OUT52)의 제어 하에서 최종 출력 래치 OUTF로 연속적으로 래치된다. 합성 신호의 순서는 래치에 래치된 순서의 변화에 의해 단순히 제어할수 있다.The results of the four high or low orders are latched in the output latches R70L, R61L, R43L, and R52L. The result is successively latched to the final output latch OUTF under the control of the multiplication signals MUX_OUT70, MUX_OUT61, MUX_OUT43, MUX_OUT52. The order of the composite signals can be controlled simply by changing the order of latching in the latches.

후단 공통블럭(POSTC, 233)내의 블력과 제어 신호사이의 관계가 제13(b)도 및 제13(c)도에 도시되어 있다.The relationship between the block force and the control signal in the rear common block POSTC 233 is shown in FIGS. 13 (b) and 13 (c).

앞서 설명한 바와같이 두개의 일차원적 IDCT 동작도 2차원 IDCT를 수행하도록 데이타의 중간 전환으로 달성될 수도 있다. 그러므로, 후단 공통 블록(POSTC, 233)으로 부터의 출력 신호는 본 발명에 따라 RAM메모리 회로와 같은 통상적인 저장 유니트에 통상적인 칼럼 형식(또 행렬형식)으로 우선 쇼트되고, 저장 유니트는 연속적인 예비 공통 블록 입력으로 통과되고 이 블럭 및 공통 블럭(CBLK, 232)과 후단 공통 블록(POSTC, 233)에서 상기한 바와 같이 처리되기 위해서, 행렬형식(칼럼형식)으로 판독된다.As described above, two one-dimensional IDCT operations may also be achieved with intermediate conversion of data to perform two-dimensional IDCT. Therefore, the output signal from the rear common block (POSTC, 233) is first shorted in a conventional column format (and also in matrix form) to a conventional storage unit such as a RAM memory circuit according to the present invention, and the storage unit is successively reserved. In order to be passed to the common block input and processed as described above in this block and the common blocks CBLK 232 and the subsequent common blocks POSTC 233, they are read in matrix form (column form).

행렬(칼럼)은 저장되고 칼럼(행렬)으로의 판독은 제2 1-D 1DCT 이전에 전환의 요구되는 동작을 수행한다. 제2 POSTC(233)로 부터의 출력이 요구되고, 2-D 1DCT는 여러가지 처리블럭에서 달성된 치수변환을 편위하도록 변환하여 통상적인 방법으로 치수 결정 될수 있다. 특히, 한 위치에 의한 정변환은 1-D 1DOT 동작에서 달성된 2개의 곱셈의 두개의 제곱근을 편위시킬 필요에 의해 2분할이 달성될 것이다.The matrix (column) is stored and reading into the column (matrix) performs the required operation of the conversion before the second 1-D 1DCT. Output from the second POSTC 233 is required, and the 2-D 1DCT can be dimensioned in a conventional manner by converting to bias the dimensional transformations achieved in the various processing blocks. In particular, a positive transformation by one position will be achieved by two divisions by the need to bias the two square roots of the two multiplications achieved in the 1-D 1DOT operation.

적용에 따라, 제2 1DCT 구조(제11도에 도시된 것과 동일한 것이 양호하다)는 분리 반도체가 양호하다. 이는 속도의 저하를 회피하고 동일한 회로가 두 변환을 위해 사용되었다면 속도 저하가 일어나며, 분할 ID 변환은 화소-블럭 비율이 단일 회로가 실시간으로 2개의 통과를 처리할수 있도록 충분하다면 필요하지 않다.Depending on the application, the second 1DCT structure (preferably the same as that shown in FIG. 11) is preferably a separate semiconductor. This avoids the speed drop and slows down if the same circuit is used for both conversions, and split ID conversion is not necessary if the pixel-block ratio is sufficient to allow a single circuit to handle two passes in real time.

제16도 내지 38도에 도시된 바와같이, 본 발명의 제2실시예는 단일의 1차원적 변환을 사용한다. 상기 실시예는 상기한 바와 같은 화소 블럭 비율을 낮출 필요가 없다.As shown in Figures 16-38, the second embodiment of the present invention uses a single one-dimensional transform. The embodiment does not need to lower the pixel block ratio as described above.

제1실시예에서, “분해-가산기”의 존재는 “신속한 분해 가산기”로 변경 되었다. 제38도에 도시된 바와 같이, 이들은 “신속한 분해 가산기”로 명명되어 있다. 이러한 변경은 이것의 데이타 입력으로 작용하도록 각각의 데이타 패스 산술 블럭을 위해 더 많은 시간을 허용하는 효과를 가지고 있다. 양호한 제1실시예에서 “래치”의 존재는 2상 “플립-플롭” 또는 “레지스터”로 변경 되어있다. 존재하는 1D 1DCT 데이타 패스 파이프라인의 초단과 종단에 위치하는 래치 메모리 요소들은 제18도에 특별히 도시된 바와 같이 단일 블럭으로 결합되어 있다. 부가적으로, 양호한 제2실시예에서 입력과 출력에 존재하는 다수의 메모리 요소들도 다량의 T2데이타가 버퍼되는 것이 허용되도록 증가된다.In the first embodiment, the presence of the "decomposition-adder" was changed to "rapid decomposition adder". As shown in FIG. 38, they are termed "fast decomposition adders." This change has the effect of allowing more time for each data path arithmetic block to act as its data input. In the first preferred embodiment the presence of "latch" is changed to a two-phase "flip-flop" or "register". Latch memory elements located at the beginning and end of the existing 1D 1DCT data path pipeline are combined into a single block as shown in FIG. In addition, in the second preferred embodiment, the number of memory elements present in the input and output is also increased to allow a large amount of T2 data to be buffered.

제116도 및 제17도에 도시된 바와같이, 2개의 데이타 스트림″T″(1D 1DCT를 통과한 데이타, TRAM에서 변환된)는 공정으로 제시간에 데이타 패스 파이프라인으로 도입된다.As shown in FIG. 116 and FIG. 17, two data streams " T " (data passed through 1D 1DCT, converted in TRAM) are introduced into the data path pipeline in time with the process.

본 발명에서, 각각의 스트림은 데이타 패스 파이프 라인 안으로 데이타 아이템의 그룹으로 도입된다. 데이타 스트림은 연속적으로 데이타 패스 파이프라인으로 통과하도록 “인터리브하고” 제17,18도 및 제33도에 도시된 바와같이 데이타 패스 출력으로 “디-인터리브”된다. 그룹은 다수로 변경되나, 이 실시예에서 그들은 8 비트이다.In the present invention, each stream is introduced into a group of data items into the data path pipeline. The data stream is "interleaved" to pass continuously into the data path pipeline and "de-interleaved" to the data path output as shown in FIGS. 17, 18 and 33. The group is changed to many, but in this embodiment they are 8 bits.

본 발명에 따라서, T1은 설치되지 말아야만 한다. T2가 T1과 개재하는 점에 도달한다면 입력 버퍼는 파이프 라인으로 데이타를 도입하지 말아야 하며 이 때문에 T1 스트립과 충돌하고, 그런 다음에 스트립 T2는 T2가 데이타 스트림을 설치하지 않도록 여분의 버퍼링을 제공하고 스트림(T1)과 안전하게 인터리브될때까지 입력 스트림으로부터의 데이타를 버퍼한다. 이것은 제19도와 제33도에 도시되어 있는데 여기에서 스트림(T1)으로부터의 데이타는 신호(래치 1(0) 내지 래치(7)를 이용하는 래치내에서 제1변환으로 로딩된다. 부가적으로, T2로부터의 데이타는 제33도에 도시된 신호를 이용하여 제19도에 도시된 바와같이 “래치 2(0)” 내지 “래치 2(15)”에 로딩된다.According to the invention, T1 should not be installed. If T2 reaches the point where it intersects T1, the input buffer must not introduce data into the pipeline, which will cause it to collide with the T1 strip, and then strip T2 to provide extra buffering to prevent T2 from installing the data stream. Buffer the data from the input stream until it is safely interleaved with stream T1. This is illustrated in Figures 19 and 33, where data from stream T1 is loaded with a first transform in a latch using signals (latch 1 (0) through latch 7.) In addition, T2 The data from is loaded into "Latch 2 (0)" through "Latch 2 (15)" as shown in FIG. 19 using the signal shown in FIG.

인터리빙은 “T1 OK2 인서트”와 “T2 OK2 인서트”신호에 의해 제어된다. 정상 동작 하에서 인터리빙은 신호가 높을때 일어난다. 그러나, T2를 위한 래치 내에서의 데이타의 적당한 량이 “T2 OK 인서트”가 높게 될 때 도달하지 않았다면, 래치는 기회를 잃게 될 것이고 인서트 데이타에 대한 다음 기회가 일어날 때까지 데이타를 계속 버퍼하여야 한다.Interleaving is controlled by the "T1 OK2 Insert" and "T2 OK2 Insert" signals. Interleaving under normal operation occurs when the signal is high. However, if the proper amount of data in the latch for T2 has not reached when the “T2 OK insert” becomes high, the latch will lose its chance and must continue to buffer the data until the next opportunity for insert data occurs.

요약하면, 본 발명에 따른 상기에서 설명된 버퍼링이 일어난다면, 비교가능한 “슬립피지”는 T2의 출력에서 일어나야만 한다. T2는 이것의 데이타 삽입점을 잃어버릴 때 슬립되고 제19도에 도시된 래치로 버퍼링을 계속하여야만 한다. T2가 슬립되거나 파이프 라인으로 데이타를 도입하지 못한다면, 데이타 패스 출력으로 T2 스트립 출력으로 대응 갭이 될 것이다. 이러한 갭은 T2 출력으로 여분의 버퍼링의 사용에 의해 제거 또는 “삼킴”을 할 수도 있다. 이러한 처리는 변경가능한 T2-1D IDCT로 변경되는 “고정된” T1-ID IDCT를 가질 수도 있으며, 여기에서 데이타 스트립은 그들이 같은 산술 데이타 패스 파이프라인을 이용할 수 있도록 시간곱셈으로 인터리브된다.In summary, if the buffering described above according to the invention takes place, a comparable “slip sebum” must occur at the output of T2. T2 should sleep when it loses its data insertion point and must continue buffering with the latch shown in FIG. If T2 sleeps or fails to introduce data into the pipeline, there will be a corresponding gap from the datapath output to the T2 strip output. This gap may be eliminated or "swallowed" by the use of extra buffering at the T2 output. This process may have a “fixed” T1-ID IDCT that is changed to a modifiable T2-1D IDCT, where the data strips are interleaved in time multiplication so that they can use the same arithmetic data pass pipeline.

본 발명에 있어서, “리커버리”를 데이타가 T1으로 들어오지 않을 때 발생한다. 이는 T2를 위한 기회는 T1과 데이타 스트립을 캐치하도록 버퍼한다. 非데이타는 IDCT를 바이패스하는 형식의 데이타이고 제3도의 “래치 2[ø]”의 데이타 스파이크와 같이 도시되어 있다. 이것은 결국 T2 입력으로 하고, 이는 T2 버퍼링을 출력으로 달성된다. 리커버리는 제33도 및 제25도에 도시되어 있고, “T2 아웃” 신호와 “아웃” 신호는 다수의 사이클에 의해 갭핑된다. 갭은 데이타 스트립을 고정하는데 기준으로 사용된다. 이들 두 신호 사이의 사이클에서의 갭은 T2를 위한 래치가 이것의 데이타를 삽입하기 위해 기다릴 때 버퍼링된다는 것을 알아야 한다.In the present invention, "recovery" occurs when data does not enter T1. This buffers the opportunity for T2 to catch T1 and the data strip. Non-data is data in the form of bypassing IDCT and is shown with the data spikes in “Latch 2 [ø]” in FIG. This eventually results in a T2 input, which is accomplished by outputting T2 buffering. Recovery is shown in Figures 33 and 25, wherein the "T2 out" and "out" signals are gapped by multiple cycles. The gap is used as a reference to fix the data strips. It should be noted that the gap in the cycle between these two signals is buffered when the latch for T2 waits to insert its data.

부분 B의 POSTC 233에서 변명된 후에, 인터리브된 스트링은 제18도와 제23도에 도시된 바와 같이 “T2 아웃”으로 이-인터리브된다. “T2 아웃” 데이타 스트립은 상기한 바와 같이 데이타 내에 슬립갭을 가지고 있다. 제17도에 도시된 T2 아웃[143:ø]은 제17도에서 “IDDPMUX”라는 블럭으로 도시된 16대 1 곱셈기 블럭으로 도입된다. 상기 곱셈기 블럭은 제25도에 도시된 바와 같이 출력 버퍼 블럭내의 16M 위치 중의 한 위치로부터 데이타가 선택된 것이다. 이 위치는 제29도에 도시된 제어로직에 의해 선택되고, 이는 이것의 입력으로 T2 “버퍼드-업”에 의해 갭을 사용한다. 이 갭은 기준으로서 사용된다. 곱셈기 블럭으로부터의 출력 스트립(T2DOUT)은 “고정된” 데이타 스트립이다.After being excused in part B POSTC 233, the interleaved string is interleaved to “T2 out” as shown in FIG. 18 and FIG. The “T2 out” data strip has a slip gap in the data as described above. The T2 out [143: ø] shown in FIG. 17 is introduced into a 16-to-1 multiplier block shown by the block “IDDPMUX” in FIG. The multiplier block is one in which data is selected from one of the 16M positions in the output buffer block as shown in FIG. This position is selected by the control logic shown in FIG. 29, which uses a gap by T2 "buffer-up" as its input. This gap is used as a reference. The output strip (T2DOUT) from the multiplier block is a "fixed" data strip.

상기에서 설명된 ID(T 장치에 대한 본 발명의 한 실시예에서 실시된 일련의 시험에서, 중간값 및 최종값은 CCITT 기준에 맞으면서 각 점에서 공지의 범위내를 잘 지키고 있다. 이 때문에, 상기한 선택된 값은 산술계산에서 어떤 과다 유출 또는 과소 유출의 불안없이 적은 양(예를 들면, 요구되는 값에 선택된 데이타 단어의 어떤 비트를 가압하여)으로 “조정”가능하다.In the series of tests conducted in one embodiment of the present invention with the ID (T device described above), the median and final values meet the CCITT criteria and are well within known limits at each point. The selected value can be "adjusted" to a small amount (e.g. by pressing any bit of the selected data word to the required value) without fear of any overflow or underflow in arithmetic.

본 발명에 따른 방법과 시스템은 여러가지 방법으로 변경가능하다. 예를 들면, 분해 가산 또는 곱셈을 하는데 사용된 구조는 종래의 기술을 이용하여 변경할 수도 있다. 그러므로, 양호한 실시예가 분할 분해 가산기와 캐리-세이브 장치를 이용할 경우 제산기의 분해 가산기의 사용이 가능하다. 또한, 본 발명의 양호한 실시예는 모든 값이 그들의 허용가능 범위내에 있도록 보장하는 여러 점에서 다운 스케일링을 사용한다. 그러나, 다른 예비주의가 과다유출 또는 과소유출을 회피하도록 일어나면 다운 스케일링은 필요없다.The method and system according to the invention can be modified in many ways. For example, the structure used for decomposition addition or multiplication may be changed using conventional techniques. Therefore, the preferred embodiment makes it possible to use a decomposition adder of a divider when using a split decomposition adder and a carry-save device. In addition, the preferred embodiment of the present invention uses downscaling at several points to ensure that all values are within their acceptable range. However, if other precautions arise to avoid overflow or underflow, downscaling is not necessary.

본 발명의 한 실시예에서, 여러 데이타 단어들의 어떤 비트들은 시스템내에서 요구되는 단어폭을 감소시키도록 조정된다. 그러나, 물론 여러 중간값은 비트 조정없이 통과될 수도 있다. 더욱이, 비록 본 발명이 도시된 실시예에서 데이타 단어들이 비트 조정되었을지라도 또한 상수 계수의 비트들을 조정하여 가능하고 CCITT 기준하에서 결과를 평가가능하다. 결과들의 비교가 주어진 값에 특정하므로 가압하기 위해 양호하게 보여질지라도, 몇몇 경우에, 대응하는 곱셈을 수행하는데 요구되는 실리콘 영역을 더욱 감소시키기 위한 이들 계수의 이진법에서 “제로”의 숫자가 증가할 수도 있다. 다시 한번 비트 조정은 필요하지 않다.In one embodiment of the invention, certain bits of the various data words are adjusted to reduce the word width required in the system. However, of course, several intermediate values may be passed without bit adjustment. Furthermore, although the data words have been bit adjusted in the illustrated embodiment, it is also possible to adjust the bits of the constant coefficient and evaluate the results under CCITT criteria. Although the comparison of the results is shown to be good for pressurization because it is specific to a given value, in some cases the number of "zeros" will increase in the binary method of these coefficients to further reduce the silicon area required to perform the corresponding multiplication. It may be. Once again no bit adjustment is necessary.

본 발명의 상기 양상의 요약에는, 제1데이타 스트립 소스를 한정하는 제1래 치와 제2데이타 스트립 소스를 한정하는 제2래치를 가진 변형 데이타를 위한 장치가 설명되어 있다. 제1 및 제2래치는 단일 산술유니트와 통신한다. 산술유니트는 데이타를 전치램에 통신하고, 전치램은 데이타를 전치하고 제2래치와 통신한다. 제2래치는 조정가능하고 수신 및 송신되는 데이타의 변화율은 수용하기 위한 크기로 변경가능하다. 제2래치와 제1래치는 연속적으로 산술 유니트와 제1 및 제2데이타 스트립과 통신하나, 제2래치의 연속 통신은 제1래치로부터의 통신을 중단시키지 않는다. 이와 같은 방법으로, 공통 산술 유니트는 제1 및 제2데이타 스트립을 위해 사용된다. 더욱이, 후속단계를 가지는 공통산술 유니트를 사용하는 전송데이타를 처리하기 위한 순서를 설명한다. 첫째, 제1래치에 데이타를 산술유니트에 데이타를 송신하는 사이클의 소정수에 도달할 때 로딩하고, 제1마커 비트는 제어변환 레지스터에 로딩한다. 다음은 제2래치에 데이타를 로딩하고, 제2래치는 다른 비율로 수신 및 송신되는 데이타의 변화하는 비율을 수용하기 위한 크기로 변경가능하고 조정가능하다. 다음 단계는 제1제어변환 레지스터가 조정상태에 이르고 제2래치내의 데이타가 산술 유니트로 송신되는 것이다. 다음은, 제2래치로부터 데이타를 송신방지는 제2래치가 소정량의 데이타로 채워지지 않거나 제2래치는 제1래치가 데이타를 수신하지 않을 때 회복된다.In a summary of this aspect of the invention, an apparatus for deformation data having a first latch defining a first data strip source and a second latch defining a second data strip source is described. The first and second latches communicate with a single arithmetic unit. The arithmetic unit communicates data to the preamble ram, which transposes the data and communicates with the second latch. The second latch is adjustable and the rate of change of data received and transmitted is variable in size to accommodate. The second and first latches are in continuous communication with the arithmetic unit and the first and second data strips, but the continuous communication of the second latches does not interrupt the communication from the first latches. In this way, a common arithmetic unit is used for the first and second data strips. Moreover, a procedure for processing transmission data using a common arithmetic unit having subsequent steps will be described. First, data is loaded into the first latch when a predetermined number of cycles of transmitting data to the arithmetic unit is reached, and the first marker bit is loaded into the control conversion register. The next loads data into the second latch, the second latch being changeable and adjustable in size to accommodate the changing rate of data received and transmitted at different rates. The next step is that the first control conversion register reaches the adjustment state and the data in the second latch is sent to the arithmetic unit. Next, preventing transmission of data from the second latch is recovered when the second latch is not filled with a predetermined amount of data or the second latch is not receiving the data.

[시간동기를 위한 본 발명의 상세한 설명]Detailed Description of the Invention for Time Synchronization

MPEG-2에서, 비디오 및 오디오 데이타는 MPEG-2 시스템 스트립에 반송되는 정보를 이용하여 동기화된다. 이에 대하여, 동기화하는데 이용되는 정보에는 본질적으로 두 가지가 있는데; 이는 클럭 기준치와 타임 스탬프이다. 클럭 기준치는 디코더가 “지금”의 시간을 나타내는데 사용된 어떤 수를 인지하는데 사용된다. 이것은 디코더가 현재 시각이 무엇인가를 알기 위해 정상적인 간격에서 증가됨을 계수하는데 이용된다.In MPEG-2, video and audio data are synchronized using information carried in the MPEG-2 system strip. In this regard, there are essentially two pieces of information used to synchronize; This is the clock reference and time stamp. The clock reference is used to know what number the decoder used to represent the "now" time. This is used to count the decoder incrementing at normal intervals to see what the current time is.

타임 스램프는 프로그램(전형적으로 비디오와 오디오)를 만드는데 사용되는 데이타의 스트립들을 반송한다. 비디오의 경우에 있어서, 타임 스탬프는 화면과 연합하고, 디코더가 어떤 “시간”(클럭기준치에 의해 초기화되는 카운터에 의해 한정된다.)에 화면을 디스플레이하나를 말해준다.Time stamps carry strips of data that are used to create programs (typically video and audio). In the case of video, the time stamp is associated with the picture and tells the decoder to display the picture at some "time" (limited by a counter initialized by the clock reference).

MPEG에서, 시스템 스트립내로 일련의 클럭 기준치가 곱해진다. 이들 클럭기준치는 “시스템 시간”을 규정한다. 클럭기준치에는 2개의 형식, 프로그램 클럭기준치(PCRs)와 시스템 클럭기준치(SCRs)가 있다. 본 발명에 있어서, PCRs와 SCRs 사이의 구분은 각각의 클럭 기준치가 디코더에 의해 같은 방법으로 사용되지 않기 때문에 허용되지 않는다. PCRs와 SCRs는 90kHz의 해상도와 27MHz(또는 1/27 × 10e 6초)의 해상도를 연장하는 필드를 위한 시간정보를 가지고 있다. 클럭 기준치는 “시스템 시간”이 랜덤 액세스 또는 채널 변경후에 다시 초기화되도록 꽤 자주 데이타 스트립에 포함된다.In MPEG, a series of clock references is multiplied into a system strip. These clock thresholds define “system time”. There are two types of clock reference values: program clock reference values (PCRs) and system clock reference values (SCRs). In the present invention, the distinction between PCRs and SCRs is not allowed because each clock reference value is not used in the same way by the decoder. PCRs and SCRs have time information for fields that extend the resolution of 90 kHz and the resolution of 27 MHz (or 1/27 × 10e 6 seconds). The clock reference is often included in the data strip so that the "system time" is reinitialized after random access or channel change.

따라서, 곧바로 사진을 디코드할 수 있는 디코더의 가설로 부터 기인된 타임 스탬프를 이해하는 것이 중요하다. 예술의 보통 기술 중 하나를 이해함에 따라, 어떠한 실제의 디코더도 그렇게 하지 못하고 도면이 디스플레이 되어야 하는 이론적인 시간을 고치는 단계를 밟아야 한다. 더우기, 타임 스탬프와 클락레퍼런스들은 디스플레이 시간과 디스플레이 시간에서의 에러를 결정하는데 사용된다. 이러한 수정은 특이한 디코더의 구조의 세부사항에 달려있다. 명백히, 어떠한 딜레이도 비디오디코더가 반드시 오디오디코더에서와의 동등한 딜레이와 매치되어야만 한다는 것이 유도된다.Therefore, it is important to understand the time stamp resulting from the hypothesis of the decoder that can decode the picture immediately. As one understands one of the common techniques of art, no real decoder can do that and take steps to fix the theoretical time at which the drawing should be displayed. Moreover, time stamps and clock references are used to determine display time and errors in display time. This modification depends on the details of the architecture of the unusual decoder. Obviously, any delay is derived that the video decoder must match the same delay as in the audio decoder.

MPEG를 디코딩할때, “시스템 시간”이라는 관점의 불연속이 발생할 수 있다. 예를 들면, 비트스림 에디트시에 각각의 에디트 포인트는 불연속한 시간을 갖을 수 있다. 비슷한 상황이 채널을 바꿀때도 일어날 수 있다. 타임 스탬프를 사용하는 것이 다른 상황으로부터의 클락레퍼런스에에서 정의된 “시스템시간”이라는 부면을 가진 한때의 상황에서 엔코드하여 올바르지 않은 결과로 인도할수 있기 때문에, 타임 스탬프를 사용할때 주의가 필요함을 이해할 수 있다.When decoding MPEG, discontinuities in terms of "system time" can occur. For example, each edit point may have a discontinuous time in bitstream editing. A similar situation can occur when switching channels. It is important to understand that using time stamps requires caution when using them as they can encode and lead to incorrect results in one situation with the "system time" defined in Clock References from Other Situations. Can be.

제39도는 기본 스트림들 250으로의 MPEG 시스템 스트림의 디멀티플렉싱을 보여준다. 각각의 기본 스트림들은 보통 비디오나 오디오 데이타모두를 운반한다. 일반적으로, 어떠한 데이타의 형식도 전송된다. 각각의 기본 스트림들은 일련의 액세스 유닛으로 나늰다. 비디오면에서는, 그 액세스 유닛을 사진이라고 한다. 오디오면에선, 오디오 데이타 샘플의 지정된 번호이다.Figure 39 shows the demultiplexing of the MPEG system stream into elementary streams 250. Each elementary stream usually carries both video or audio data. In general, any type of data is transmitted. Each elementary stream is divided into a series of access units. On the video side, the access unit is called a photograph. On the audio side, this is the specified number of audio data samples.

역시 그 시스템 스트림으로의 멀티플레스하는 것은 일련의 클락 레퍼런스들이다. 이러한 클락 레퍼런스들은 “시스템 시간”을 정의한다.Again, multiplexing to the system stream is a series of clock references. These clock references define "system time."

본 발명과 일치하게 연관된, 각각의 기본 스트림은 일련의 타임 스탬프 251이다. 그 타임 스탬프들은 각각의 기본 스트림을 위한 다음 액세스 유닛이 표현되는 “시스템 타임”이라고 기술된다. 이러한 타임 스탬프들을 현재 시간 스탬프들, “PTS”라고 말한다.Associated with the present invention, each elementary stream is a series of time stamps 251. The time stamps are described as "system time" in which the next access unit for each elementary stream is represented. These time stamps are called current time stamps, “PTS”.

비디오 데이타의 경우에, 타임 스탬프의 두번째 타입은 역시 디코드 타임 스탬프, “DTS”라고 말한다. DTS가 단지 현재이기때문에 하나의 PTS가 역시 현재이고 그 둘사이에 간단한 관계가 있을때, PTS/DTS의 차이들이 본 안출에선 문제가 되지 않기 때문에, 이러한 타임 스탬프들의 두가지 타입사이의 세부적인 차이들은 무시될 수 있다.In the case of video data, the second type of time stamp is also called the decode time stamp, “DTS”. Since a DTS is only current, when one PTS is also present and there is a simple relationship between the two, the detailed differences between these two types of time stamps are ignored because the differences in PTS / DTS are not a problem in this presentation. Can be.

그 디코드 타임 스탬프들(DTS)은 액세스 유닛(비디오에 있어서의 사진)이 디코드되는 시간을 정의한다. 그 프레즌테이션 타임 스탬프(PTS)는 액세스 유닛이 표현(디스플레이)되는 시간을 정의한다. 그러나, 그 사용된 타이밍 모델은 무한히 빠른 디코더로서의 가설모델이다. 이러한 경우, DTS와 PTS는 다른것들과 동일하다.The decode time stamps DTS define the time at which the access unit (picture in video) is decoded. The presentation time stamp (PTS) defines the time at which the access unit is represented (displayed). However, the timing model used is a hypothetical model as an infinitely fast decoder. In this case, the DTS and PTS are the same as the others.

그러나, MPEG비디오 디코딩에서, 사진들의 어떤 것들은 재배열 된다. 그러므로, 디코딩후에, 그 사진들은 일정시간을 위한 용량을 갖는데, 예로, 디스플레이 되기전의 몇몇의 프래임 타임들이 있다. 이 일정시간 동안, 질문이 디스플레이 되고 다른 사진은 다른 그림들이 뒤이어 그림으로 디코드된다. 결과적으로, 이러한 재배열된 사진들이 DTS와 PTS의 차이이다.However, in MPEG video decoding, some of the pictures are rearranged. Therefore, after decoding, the pictures have capacity for a certain time, for example, some frame times before being displayed. During this period of time, questions are displayed and other pictures are decoded into pictures, followed by other pictures. As a result, these rearranged pictures are the difference between DTS and PTS.

본 발명과 일치하게, 적절한 싱크로나이즈 타임에 대해 타임 스탬들의 사용 부면에서 조화가 필요함이 이해된다. 하나의 선호되는 엠보디먼트에서, 타임 시트로나이징 서큐트리가 그 그림들이 그들의 디코드 순서에서 발생할때, 디코딩 파이프라인의 하나의 지점에 놓여진다. 따라서, 이러한 엠보디먼트는 DTS를 사용한다.In accordance with the present invention, it is understood that coordination is required in terms of the use of time stamps for the appropriate synchronization time. In one preferred embodiment, a time-sheetizing circtree is placed at a point in the decoding pipeline when the pictures occur in their decode order. Thus, such embodiments use DTS.

그럼에도 불구하고, 그 서큐트리는 그 그림들이 재배열후에 발생하는 디코딩 파이프라인의 하나의 지점으로 옮겨지는 것과 동일할 수 있다. 그러므로, 그 사진들은 그들의 디스플레이 순서의 싱크로나이징 서큐트리에 도달한다. 그러므로, 예술의 보통의 기술중 하나가 이해됨에 따라, PTS는 이 엠보디먼트된 상태로 사용된다.Nevertheless, the suctree can be equivalent to moving the pictures to a point in the decoding pipeline that occurs after rearrangement. Therefore, the photos arrive at the synchronizing document tree in their display order. Therefore, as one of the common techniques of art is understood, the PTS is used in this embodied state.

본 발명의 선호된 엠보디먼트들에서, 그 정보는 그 타임 스탬프가 토큰을 이용해 다양한 순환을 통해 전송되는 것을 유추한다. 토큰들은 일련의 하나 혹은 그 이상의 정보의 워드를 포함한다. 그 토큰의 첫 워드는 토큰의 타입을 구분하는 코드를 포함하고, 그러므로 그 정보의 타입은 그 토큰에 의해 전달된다. 각각의 워드들과 관련된 토큰들은 현재의 토큰내에 더 많은 워드들이 있음을 알리는 비트를 셋팅하는 확장 비트이다. 그러므로, 하나의 토큰의 마지막 워드는 확장 비트가 0이 되므로 지시된다. 본 발명에서, 첫번째 워드에서의 그 코드는 토큰의 타입이 어떠한 코드들은 다른 코드들이 비트들의 좀 더 큰 숫자를 사용할 동안에, 하나의 작은 비트의 숫자(첫번째 워드에서 비트들의 나머지가 다른 정보를 나타내도록 허용)를 사용하여 비트들의 유효 숫자를 지시한다.In preferred embodiments of the present invention, the information infers that the time stamp is transmitted through various cycles using a token. Tokens contain a series of words of one or more pieces of information. The first word of the token contains code that identifies the type of token, so the type of information is carried by the token. Tokens associated with each word are extension bits that set a bit indicating that there are more words in the current token. Therefore, the last word of one token is indicated since the extension bit is zero. In the present invention, the code in the first word is the type of the token so that while some codes use a larger number of bits, the number of one small bit (the rest of the bits in the first word represents different information). Allow) to indicate the significant number of bits.

토큰들은 콘트롤이나 DATA토큰이라고 간주될 수 있다. 예를 들면, 시스템 디코더와 비디오 디코더사이의 인터페이스에서, 정보의 두가지 타입이 있다: (1) 코드화된 비디오 데이타와 (2) 타임 스탬프 정보에서 유추된 동기 타임. 코드화된 비디오 데이타는 동기 타임이 정보의 콘트롤으로써 보여지고 콘트롤 토큰(SYNC_TIME)이라 불리워짐)에서 운반될되는 동안, 데이타로 보여지고 DATA 토큰에서 운반된다(그 토큰은 DATA라 불리워진다). 부가적인 콘트롤 토큰들은 때때로 본 발명에서 사용될수 있다. 예를 들면, 하나의 FLUSH 토큰은, 에러 때문에 디코딩을 다시 시작하기 전에 비디오 디코딩 서큐트리를 초기화 하는 것이 필요한, 리셋 시그날과 매너에 있어서 비슷하게 행동한다.Tokens can be thought of as controls or DATA tokens. For example, at the interface between the system decoder and the video decoder, there are two types of information: (1) coded video data and (2) sync time inferred from the time stamp information. Coded video data is shown as data and carried in a DATA token, while the sync time is shown as a control of information and carried in a control token (SYNC_TIME) (that token is called DATA). Additional control tokens can sometimes be used in the present invention. For example, a FLUSH token behaves similarly in a reset signal and manner, which requires an error to initialize the video decoding queue before starting decoding again.

본 발명과 일치하게, 첫번째와 두번째회로사이에 직접적인 통신 시스템 타임이 없는 타임 싱크로나이즈된 두개의 회로들을 타임 싱크로나이즈하여 좀더 선호되는 에모비디언트의 오브젝트이다. 그 발명과 일치하게, 두회로의 타임 동기는 각각의 희로에서 싱크로나이즈드된 타임 카운터들을 공급함으로, 두번째 회로에 직접적인 시스템 타임 패싱없이 수행된다.Consistent with the present invention, it is a more preferred object of the emojiant to time synchronize two time synchronized circuits without direct communication system time between the first and second circuits. In accordance with the invention, the time synchronization of the two circuits is performed without direct system time passing to the second circuit by supplying synchronized time counters in each furnace.

본 발명은 각각의 회로에서 기본 스트림 타임 카운터를 공급받는 첫번째와 두번째회로 사이에 통신 시스템 시간이 없는, 두 회로들을 시간적으로 싱크로나이즈 역시 가능하게 한다.The present invention also allows for synchronizing two circuits in time, with no communication system time between the first and second circuits being fed a base stream time counter in each circuit.

따라서, 본 발명의 다른 오브젝트는 두개의 회로에 시간적으로 싱크로나이즈하고 프레즌테이션 타임 에러를 결정하는 것으로, 그외의 것이 있다 하더라도 타임 스탬프 정보, 시스템 타임, 그리고 기본 스트림 타임으로 첫째회로를 지나 동기 타임이 발생하는 두번째 회로까지의 기본 스트림 타임 그리고 두번째 회로에서 첫번째 회로의 기본 시스템에 싱크로나이즈된 기본 스트림 타임의 복사본과 비교한다. 본 발명의 시스템은 시스템 디코더와 비디오 디코더사이의 직접적인 통신 시스템이 없이도, 시스템 디코더와 오디오 디코더 사이의 직접적인 통신 시스템이 없이도, 각각의 회로에 싱크로나이즈된 타임 카운터를 제공받는 비디오 디코더에 직접 패싱되는 시스템 없이도 그리고 시스템 디코더와 각각의 비디오카운터에 의해 공급받는 비디오 디코더 사이에 통신 시스템 타임이 없는 시스템 디코더와 비디오 디코더를 시간적으로 싱크로나이즈시킬수 있다.Thus, another object of the present invention is to synchronize the two circuits in time and determine the presentation time error, although the others have a synchronous time past the first circuit with time stamp information, system time, and elementary stream time. It compares the base stream time to the second circuit that occurs and the copy of the base stream time synchronized to the base system of the first circuit in the second circuit. The system of the present invention does not have a direct communication system between the system decoder and the video decoder, and without a system that is directly passed to a video decoder that is provided with a synchronized time counter for each circuit, without a direct communication system between the system decoder and the audio decoder. A system decoder and a video decoder without communication system time can be synchronized in time between the system decoder and the video decoder supplied by each video counter.

그 발명 역시 시스템 디코더와 비디오 디코더를 시간적으로 싱크로나이즈시키는 것과 디스플레이 타임 에러를 결정하는 것을 시스템에서 가능하게 하는 것으로, 그 외의 것이 있다하더라도 비디오 타임 스탬프 정보, 시스템 타임, 그리고 시스템 디코더로 부터 비디오 디코더를 패스하고 동기 타임이 발생하기 까지의 비디오 디코딩 타임이다.The invention also enables the system to synchronize the system decoder and the video decoder in time and determine the display time error, passing the video decoder from the video time stamp information, system time, and the system decoder, if anything else. Video decoding time until synchronization time occurs.

제40도는 본 발명과 일치한, 첫번째로 선호한 엠보디먼트로 이행된 기본 스트림 타임 스탬프 매니지먼트를 보여준다. 클락 레퍼런스 253은, 시스템 타임을 나타내는데, 이것은 시스템 디멀티플렉서 254에 의해 디코드되고 초기화되어 놓이며, 필요에 의해서, 시스템 디코더 256에서 타임카운터 255로, 그리고 90KHz로 증가한다. 클락 레퍼런스 253의 두번째 카피는 동시에 기본 스트림 디코더 257의 내부인 카운터 255로 로드되고, 역시 90kHz로 증가되며, 시스템 디코더 256의 타임 카운터 255로 싱크로나이즈된다.40 shows the elementary stream time stamp management transitioned to the first preferred embodiment, consistent with the present invention. Clock reference 253 represents the system time, which is decoded and initialized by the system demultiplexer 254, and, if necessary, increases from system decoder 256 to time counter 255 and to 90 KHz. The second copy of clock reference 253 is simultaneously loaded into counter 255, which is internal to elementary stream decoder 257, also incremented to 90 kHz, and synchronized to time counter 255 of system decoder 256.

타임 스탬프 251, 본 발명과 일치하게, 시스템 디멀티플렉서 254로 부터 기본 스트림 버퍼 260의 흐름이 유입되는 데이타와 같은 양에 의해 지연된다. 타임 스탬프(251)는 기본 스트림 디코더257 의 논-제로 디코드를 보충함으로 역시 해결책을 가질 수 있다. 정정된 타임 스탬프 251은 디코드된 정보가 너무 일찍 프레즌트되던지 너무 늦는지를 결정하기 위해 기본 스트림 디코더 257의 내부인 타임 카운터 258를 저장한 타임의 카피와 비교된다.Time stamp 251, consistent with the present invention, the flow of elementary stream buffer 260 from system demultiplexer 254 is delayed by the same amount of incoming data. Time stamp 251 may also have a solution by supplementing the non-zero decode of elementary stream decoder 257. The corrected time stamp 251 is compared with a copy of the time that stored the time counter 258, which is the interior of the elementary stream decoder 257, to determine whether the decoded information was presented too early or too late.

위의 엠보디먼트는 시스템 디코더에 있는 카운터가 초당 90,000번이 바뀌기 때문에 시스템 디코더(256)에서의 타임 카운터(255)로 부터 기본 스트림 디코더(257)의 단지 직접 패싱 시스템 보다 더 낫다. 그러므로, 시스템 타임은 본질적으로, 필요에 따라, 계속해서 기본 스트림 디코더(257)로 통과하게 하는 것이 필요하다. 패싱 시스템 타임은 계속적으로 데디케이티드 핀(dedicated pin)이나 그와 같은 것이 시스템 디코더(256)에 위치한 타임 카운터(255)를 기본 스트림 디코더(252)에 위치한 타임 카운터(256)을 사용함으로, 시스템 타임을 초당 몇번의 클락레퍼런스(253)의 형식안에서 패스될 수 있다.The above embodiment is better than just the direct passing system of the elementary stream decoder 257 from the time counter 255 in the system decoder 256 since the counter in the system decoder changes 90,000 times per second. Therefore, system time is essentially necessary to continue to pass to elementary stream decoder 257 as needed. The passing system time is continuously determined by using a time counter 255 located at the base stream decoder 252 and a time counter 255 located at the system decoder 256, such as a dedicated pin or the like. The time can be passed in the form of several clock references 253 per second.

다른 엠보디던트를 제41도에서 보여준다. 제41도의 그 엠보디던트는 기본 스트림 디코더(257)까지의 패스를 위해 클락 레퍼런스(253)를 위한 필요를 피하는 것을 보여준다. 이것은 두번째 카운터인 시스템 디코더(256)과 기본 스트림 디코더(257)로 유지되는 기본 스트림 타임의 정보를 포함한 “es_time”(262)를 사용함으로 수행된다. 두 es_time 카운터(262)와 (263)은 파우워 온 일때, 채널 바꿈과 같은 경우 리셋이고, 온으로부터 프리런이 된다. 이 엠보디던트 두 es_time 카운터인 262와 263에 단계적으로 머물러 있는 것에 달려있기 때문에, es_time 카운터가 단계를 밟지 못하도록 확실히 하기 위해 측정을 할필요가 있음을 이해하게 된다. es_time 카운터 262, 263이 일치되어 머무도록하는 한가지 방법은 시스템 디코더에서 제41도에서 보여지는 기본 스트림 디코더(257)안의 es_time 카운터를 리셋시키므로 es_time 카운터를 나르는 것을 이용하는 것이다.Another embodiment is shown in FIG. That embodiment of FIG. 41 shows that avoiding the need for clock reference 253 for the pass to elementary stream decoder 257. This is done by using an "es_time" 262 containing information of the elementary stream time maintained by the system decoder 256 and elementary stream decoder 257, which are the second counters. Both es_time counters 262 and 263 are reset when powered on, such as a channel switch, and free run from on. Because it depends on staying on the embodied two es_time counters, 262 and 263, we understand that we need to take measurements to make sure that the es_time counter does not step. One way to ensure that the es_time counters 262, 263 stay in agreement is to use the es_time counter as it resets the es_time counter in the elementary stream decoder 257 shown in FIG.

제41도를 더 자세히 보면, 클락 레퍼런스(253)은 시스템타임이 시스템 디멀티플렉서(254)에 의해 디코드되고, 시스템 디코더(256)에서 타임카운터(255)로 위치되고 90kHz로 증가한다. 본 발명 시스템 디코더(256)의 es_time 카운터(262)와 본 발명 시스템 기본 스트립 디코더(257)에서의 es_time 카운터(263)은 서로 싱크로나이즈되고 90kHz로 증가된다. 기본 스트림 타임 스탬프들 역시 시스템 디멀티플렉서(254)에 의해 디코드된다. 따라서, 동기 값 X는 기본 스트림 타임 스탬프를 사용해서 계산되고, 시스템 타임은 타임 카운터에서 포함하고 기본 스트림 타임은 3-1의 등식에 의하면 es_time 카운터(262), 시스템 디코더(256)에서 포함한다.Looking more closely at FIG. 41, clock reference 253 is decoded by the system demultiplexer 254, where the system time is decoded, placed by the time counter 255 in the system decoder 256 and increased to 90 kHz. The es_time counter 262 of the inventive system decoder 256 and the es_time counter 263 of the inventive system basic strip decoder 257 are synchronized with each other and incremented to 90 kHz. Elementary stream time stamps are also decoded by the system demultiplexer 254. Therefore, the synchronization value X is calculated using the elementary stream time stamp, the system time is included in the time counter and the elementary stream time is included in the es_time counter 262 and the system decoder 256 according to the equation 3-1.

다음 등식 3-1(a-d)의 셋은 클락 레퍼런스(253)에서 기본 스트림 디코더(257)까지 패싱을 피하는 타임 동기를 위한, 본 발명과 일치된 방법의 설명이다. 등식 3-1(a)는 타임 동기를 필요로 하는 등식이다. 기본 스트림 디코더 회로(257)에 시스쳄 타임이 직접 패스하기에 바람직하지 않기 때문에, 제41도에서 보인것처럼, 시스템 디코더(256)과 이 값이 기본 스트림 디코더에 패스됨에 의해서, 등식 3-1(b-d)를 사용하여 등기 타임 레프리젠테이션 X가 발생한다. 동기 X는 기본 스트림 타임이 기본 스트림 디코더(257)안에 위치한 es_time 카운터(263)을 포함하는 것이 비교된다. 그러므로, 그 비교된 결과는 디코드된 정보가 일찍 나타내는지 혹은 늦게 나타날것인지를 결정하는데 쓰이고 더 자세히 시스템을 타임 싱크로나이징 시키는데 사용된다.The following set of equations 3-1 (a-d) is a description of a method consistent with the present invention for time synchronization avoiding passing from clock reference 253 to elementary stream decoder 257. Equation 3-1 (a) is an equation requiring time synchronization. Since system time is not desirable to pass directly to the elementary stream decoder circuit 257, as shown in FIG. 41, by passing the system decoder 256 and this value to the elementary stream decoder, equation 3-1 ( Using bd), the registration time representation X occurs. Sync X is compared to include an es_time counter 263 whose elementary stream time is located within elementary stream decoder 257. Therefore, the comparison result is used to determine whether the decoded information will appear early or late, and to further time synchronize the system.

등식 3-1:Equation 3-1:

a) 타임 동기=(기본 스트림 타임 스탬프 - 시스템 타임)a) time sync = (default stream timestamp-system time)

b) 타임 동기=(X - 기본 스트림 타임)b) time sync = (X-elementary stream time)

c) (X - 기본 스트림 타임)=(기본 스트림 타임 스탬프 - 시스템 타임)c) (X-elementary stream time) = (elementary stream time stamp-system time)

d) X=(기본 스트림 타임 스탬프 - 시스템 타임 + 기본 시스템 타임)d) X = (Default Stream Time Stamp-System Time + Default System Time)

본 발명에서는, 동기 시간, X는 기본 스트림 디코더(257)의 논-제로 디코드 시간을 보충함으로써, 정정을 할수 있다. 정정된 동기 타임은 디코드된 정보가 빨리 나오는지 늦게 나오는지 그리고 시스템을 싱크로나이즈하는 시간을 더 자세히 사용하는 것을 결정하기 위한 기본 스트립 디코더(257)내부에 위치한 es_time 카운터(263)을 구성하는 기본 스트림 타임과 비교된다. 노트, 타임 정정은 같은 결과로 추가된 동기 X대신에, 기본 스트림 디코더(257)의 내부에 위치한 es_time을 포함하는 기본 스트림 타임으로 부터 생략될 수 있다. 위의 엠보디먼트는 동기 타임 X 가 발생하는 것에 대한 해결책의 예이고 그 정보가 빠르거나 늦는지를 나타냄을 결정한다. 예술에서 위의 성취를 위한 많은 다른 동등한 해결이 있는 그러한 기술이 있음은 확실할 것이다.In the present invention, the synchronization time, X, can be corrected by supplementing the non-zero decode time of the elementary stream decoder 257. The corrected sync time is compared with the base stream time constituting the es_time counter 263 located inside the base strip decoder 257 to determine whether the decoded information is coming out early or late, and to further use the time to synchronize the system. do. Note, the time correction may be omitted from the elementary stream time, including es_time located inside elementary stream decoder 257, instead of sync X added as a result. The embodiment above is an example of a solution to the occurrence of sync time X and determines whether the information is early or late. It will be clear that there is such a technique in art that there are many other equivalent solutions for the above achievement.

예를 들면, 제42도는 본 발명과 일치하게, 동기 X를 결정하는 선택적 방법을 보여준다. 이 배열에서, 그 시스템 디코더(256)은 기본 스트림 타임을 유지하지 않는다. 그것을 기록하는 대신, 레지스터 initial_time(265)에서는, 기본 스트림 타임 카운터의 때에 시스템 타임의 값은, 기본 스트림 디코더(257)에 위치한 es_time(263)제로로 리셋된다. es_time(263)의 값은 현재 시스템 타임과 initial_time에서 값이 기록되는 것과는 차이가 있을 것이기 때문에 시스템 디코더(256)에 의해 계산될 수 있다.For example, Figure 42 shows an alternative method of determining synchronization X, consistent with the present invention. In this arrangement, the system decoder 256 does not maintain the elementary stream time. Instead of recording it, in the register initial_time 265, the system time value at the time of the elementary stream time counter is reset to zero, es_time 263 located in the elementary stream decoder 257. The value of es_time 263 may be calculated by system decoder 256 because the value of es_time 263 will differ from the value recorded at the current system time and initial_time.

다음 등식 3-2(a-c)는 타임 동기를 위한 선택적인 방법 설명이다. 등식 3-2(a)는 기본 스트림 디코더(257)에 위치해 있는 es_time(263)안의 기본 스트림 타임의 값을 표현한다. 이것은 등식 3-2(b)가 등식 3-1(d)로 대체되는데, 시스템의 펑션으로서 그리고 initial_time 레지스터(265)의 값 저장으로써, 동기 타임 X 가 공급되므로 등식 3-2(c)로 유추되므로 간단히 된다.Equation 3-2 (a-c) below describes an alternative method for time synchronization. Equation 3-2 (a) represents the value of the elementary stream time in es_time 263 located in the elementary stream decoder 257. This is inferred by equation 3-2 (c) because equation 3-2 (b) is replaced by equation 3-1 (d), as a function of the system and by storing the value of the initial_time register 265, the synchronous time X is supplied. It is simple.

등식 3-2Equation 3-2

a) 기본 스트림 타임=시스템 타임 - initial_timea) elementary stream time = system time-initial_time

b) X=(기본 스트림 타임 스탬프 - 시스템 타임 + [시스템 타임 - initial_time])b) X = (default stream timestamp-system time + [system time-initial_time])

c) X=(기본 스트림 타임 스탬프 - initial_time)c) X = (default stream timestamp-initial_time)

동기 타임으로 유도하기 위한 두가지 솔루션 즉, X는 본 발명과 일치하게 설명되어 왔다. 그러나, 많은 다른 동등한 솔루션이 예술에 있어서 숙련된 것은 확실하다.Two solutions for leading to synchronous time, X, have been described in accordance with the present invention. However, it is clear that many other equivalent solutions are skilled in art.

제43도는 비디오 타임 스탬프 매니지먼트를 수행하는 발명을 표현하는 다른 엠보디멘트를 보여줍니다. 시스템 타임을 나타내는 클락 레퍼런스(253)은 시스템 디멀티플렉서(254)와 초기화되어, 필요할때 시스템 디코더(256)에서 타임 카운터(255)로 놓이고 90kHz로 증가된다. 클락 레퍼런스(253)의 두번째 카피는 비디오 디코더(270)의 안쪽의 타임 카운터(258)로 동시에 로드되고 90kHz로 증가하며, 시스템 디코더(255)에서 타임 카운터로 싱크로나이즈된다.Figure 43 shows another embodiment representing the invention of performing video time stamp management. Clock reference 253, which represents the system time, is initialized with system demultiplexer 254 to place a time counter 255 at system decoder 256 and increment to 90 kHz when necessary. The second copy of clock reference 253 is simultaneously loaded into time counter 258 inside video decoder 270 and incremented to 90 kHz and synchronized to time counter at system decoder 255.

비디오 타임 스탬프들은 유입된 비디오 데이타로서 같은양에 의해 연기되는 비디오 디코딩 버퍼(271)을 통해 시스템 디멀티플렉스(254)로부터 순환한다. 비디오 타임 스탬프들은 비디오 디코더(270)의 논-제로 디코드 타임으로 보충함으로 정정할 수 있다. 정정된 비디오 타임 스탬프들은 디코드된 사진이 너무 빨리 디스플레이될지 너무 느리게 될지 결정하기 위해 비디오 디코더 270내부에 타임 카운터(258) 에서의 타임의 카피에 비교된다.Video time stamps circulate from the system demultiplex 254 through the video decoding buffer 271 which is deferred by the same amount as the incoming video data. The video time stamps can be corrected by supplementing with the non-zero decode time of the video decoder 270. The corrected video time stamps are compared to a copy of the time at time counter 258 inside video decoder 270 to determine whether the decoded picture will be displayed too soon or too slowly.

엠보디멘트는 제43도에서 시스템 디코더의 카운터가 초당 90,000번을 변하기 때문에 시스템 디코더의 타임 카운터로 부터 비디오 디코더까지 단지 지접 시스템 타임에 연결하는 것보다 증진된 것이다. 그러므로, 시스템 타임은 모든 필요에 의해 계속해서 비디오 디코더로 패스될 것이다. 시스템 타임을 계속해서 패싱하는 것은 데디케이티드 핀이나 그러한 것이 필요하다. 시스템 디코더에 위치한 타임 카운터와 시스템 디코더, 비디오 디코더 시스템 타임에 위치한 타임 카운터를 사용하므로 초당 몇번마다 클락 레퍼런스의 형식으로 패스할 수 있다.The embodiment is enhanced in FIG. 43, since the counter of the system decoder varies 90,000 times per second from the system decoder's time counter to the video decoder only at the time of the direct system time. Therefore, system time will continue to be passed to the video decoder for all needs. Passing system time continuously requires a dedicated pin or something like that. It uses a time counter located at the system decoder, a system decoder, and a video decoder located at the system time, so it can pass in the form of a clock reference every few times.

이제 제44도에 의하면, 시스템 타임을 표현하는 클락 레퍼런스는 시스템 디멀티플렉서(254)에 의해 디코드되고 시스템 디코더(256)에서 타임 카운터(255)로 위치되고, 90kHz에서 증가된다. vid_time 카운터(272)는 서로 다르게 싱크로나이즈되고 90kHz에서 증가된다. 비디오 타임 스탬프들은 역시 시스템 디멀티플렉서(254)에 의해 디코드된다. 따라서, 동기 값 X는 비디오 타임 스탬프를 이용하므로 계산된다, 등식 3-3에 의하면, 시스템 타임은 타임 카운터(273)를 포함하고 비디오 디코딩 타임은 시스템 디코더(256)을 포함하는 vid_time 카운터(272)를 포함한다.Referring now to FIG. 44, the clock reference representing the system time is decoded by the system demultiplexer 254 and placed in the system decoder 256 as the time counter 255 and incremented at 90 kHz. The vid_time counter 272 is synchronized differently and incremented at 90 kHz. Video time stamps are also decoded by the system demultiplexer 254. Thus, the synchronization value X is calculated because it uses the video time stamp, according to equation 3-3, the system time includes a time counter 273 and the video decoding time includes a vid_time counter 272 including a system decoder 256. It includes.

다음 등식 3-3(a-d)의 조합은 본 발명과 일치한 타임 동기가 클락 레퍼런스(253)에서 비디오 디코더(270)까지 피하는 한가지 방법이다. 등식 3-3(a)는 타임동기를 필요로 하는 등식이다. 제44도에 보이는 것처럼, 비디오 디코더 회로(270)에 시스템 타임을 패스하는 것이 바람직하지 못하기 때문에, 동기 타임 레프리젠테이션 X가 발생하고, 등식 3-3(b-d)을 사용하여, 시스템 디코더(256)의해 비디오 디코더(270)로 패스된다. 동기 타임, X를 비디오 디코더(270)안에 있는 vid_time 카운터(273)을 포함하는 비디오 디코딩 타임과 비교한다. 비교된 결과는 디코드된 사진이 너무 일찍 이나 늦게 디스플레이 되는지를 결정하는데 사용하고 더 나아가 시스템의 타임 싱크로나이징에도 사용된다.The combination of the following equations 3-3 (a-d) is one way in which time synchronization consistent with the present invention avoids from the clock reference 253 to the video decoder 270. Equation 3-3 (a) is an equation requiring time synchronization. As shown in FIG. 44, since it is not preferable to pass the system time to the video decoder circuit 270, a synchronous time representation X occurs, and using the equation 3-3 (bd), the system decoder ( 256 is passed to video decoder 270. The sync time, X, is compared to the video decoding time, which includes the vid_time counter 273 in the video decoder 270. The result of the comparison is used to determine whether the decoded picture is displayed too early or too late, and furthermore, the time synchronization of the system.

등식 3-3Equation 3-3

a) 타임 동기=(비디오 타임 스탬프 - 시스템 타임)a) Time Sync = (Video Time Stamp-System Time)

b) 타임 동기=(X - 비디오 디코딩 타임)b) time sync = (X-video decoding time)

c) (X - 비디오 디코딩 시스템)=(비디오 타임 스탬프 - 시스템 타임)c) (X-video decoding system) = (Video time stamp-system time)

d) X=(비디오 타임 스탬프 - 시스템 타임 + 비디오 디코딩 타임)d) X = (Video Time Stamp-System Time + Video Decode Time)

본 발명에서, 동기 타임 X는 비디오 디코더의 논-제로 디코더를 위한 보충으로 정정될 수 있다. 정정된 싱크로나이제션 타임은 디코디된 사진이 너무 이르게 혹은 너무 느리게 디스플레이 될지와 시스템에 대한 타임 싱크로나이즈를 결정하기 위해 비디오 디코더(270) 안쪽에 위치한 vid_time 카운터(273)을 포함하는 비디오 디코딩 타임과 비교된다. 노트, 타임 정정은 같은 결과를 위해 동기 타임 X의 추가대신 비디오 디코더(270)의 안쪽에 위치한 vid_time 카운터(273)을 포함하는 비디오 디코딩 타임을 생략할 수 있다. 위의 본 발명의 엠보디멘트는 사진이 일찍 혹은 늦게 디스플레이되는 것을 결정하고 제너래이팅 싱크로나이제션 타임 X를 위한 해결책의 다른예이다. 그러나, 위의 일을 달성하는데 있어 많은 다른 동등한 해결책이 예술에 있어 숙련되어 있는것은 명백한 일이다.In the present invention, the sync time X can be corrected as a supplement for the non-zero decoder of the video decoder. The corrected synchronisation time is related to the video decoding time, which includes a vid_time counter 273 located inside the video decoder 270 to determine whether the decoded picture will be displayed too early or too slowly and for time synchronization to the system. Are compared. Note, the time correction may omit the video decoding time including the vid_time counter 273 located inside the video decoder 270 instead of the addition of sync time X for the same result. The embossment of the present invention above is another example of a solution for determining the picture to be displayed early or late and for generating synchronizing time X. However, it is evident that many other equivalent solutions to the above work are skilled in the arts.

본 발명들과 관련하여, 다른 훌륭한 특징들은 풀33비트 타임 스탬프 숫자나 42비트 클락 레퍼런스 숫자를 다룰 필요가 없는 것이다. 본 발명은 카운터를 16비트로 제한하고 비디오 디코더(270)에서는 16비트 핸들링을 허용한다. 처음 보기에, 16비트는 90kHz의 레솔루션의 숫자범위를 나타내기 에 충분치 못할 것처럼 보인다. 하지만, 비디오 디코더(270)는 단지 필드 타임(비디오 타이밍 제너래이터 VTG 는 자유롭게 작동되거나 어떤 닫혀져 있는 것은 디코드된 MPEG 스트림과는 관계없다)만 정확하면 되기 때문에 그렇게 높은 정확도는 필요가 없다. 그리고, 그러므로 어떻든 타임 스탬프나 프레즌테이션 타임과 관련이 없다.In connection with the present inventions, another good feature is that there is no need to deal with a full 33 bit time stamp number or a 42 bit clock reference number. The present invention limits the counter to 16 bits and allows video bit 270 to handle 16 bits. At first glance, 16 bits do not seem to be sufficient to represent the numerical range of a resolution of 90 kHz. However, such high accuracy is not necessary because the video decoder 270 only needs to be accurate in field time (the video timing generator VTG is free to operate or any closed is not related to the decoded MPEG stream). And, therefore, it is not related to the time stamp or presentation time anyway.

제44도 및 제45도에서 보여주는 것처럼, 동기 타임 X와 비디오 디코더(270)를 가지고는 vid_time 카운터(273)는 단지 16비트만을 사용한다. 이것은 두가지 요소에 의해 가능성만들어진다. 첫째는, 시스템 타임과 타임 스탬프(동기 타임으로 유추된다; 등식 3-3참조)의 차이는 항상 작아야만 하므로, 좀더 중요한 비트들이 버려지는 것을 허락이된다. 그러므로, 덜 중요한 비트들은 오른쪽으로 4비트 쉬프트되므로 필요하지 않고 버려진다.As shown in FIGS. 44 and 45, with synchronous time X and video decoder 270, vid_time counter 273 uses only 16 bits. This is made possible by two factors. First, the difference between the system time and the time stamp (inferred to synchronous time; see Equation 3-3) must always be small, thus allowing more important bits to be discarded. Therefore, less significant bits are discarded unnecessarily because they are shifted 4 bits to the right.

그래서, 본 발명에서 사용되는 타임 정보의 16비트들은 약 180㎲(필드 타임의 약1%)의 정확도로 약 11.5초동안 타이밍 에러를 다룰 수 있다. PAL이나 SECAM의 유럽의 625라인 시스템은 5625 Hz 클락에 112.5번의 점; NTSC 의 525라인 TV시스템에선 93.84의 점있다. 그러므로, 16비트는 필드 타임의 약 1%의 정확도를 가지고 타이밍 계산을 허용한다.Thus, 16 bits of time information used in the present invention can handle timing error for about 11.5 seconds with an accuracy of about 180 ms (about 1% of field time). PAL or SECAM's European 625-line system scored 112.5 points at 5625 Hz clock; NTSC's 525-line TV system has a 93.84 point. Therefore, 16 bits allow timing calculation with an accuracy of about 1% of field time.

제46도에서는 선호되는 프로세스를 보여준다. 본 발명과 하드웨어를 통한 타임 스탬프의 움직임은 일치한다. 선호되는 하드웨어에 있어서의 통신 정보 방법은 토큰들이나, 선택적인 방법이 역시 이용되는 것이 이해될 것이다. 하드웨어는 두개의 모듈들로 나뉜다. 첫번째 모듈은 스타트 코드 디텍터(201)뒤에 부가된다. 이 모듈이 토큰을 발생시키는 원인으로 위에서 토의한 것처럼, SYNC_TIME은 동기 타임 X를 포함하고 이것이 PICTURE_STERT 토큰과 관련되기전에 발생한다. MPEG 시스템 스트림에서, 타임 스탬프들은 패킷 헤더를 통해 전송되고 데이타의 패킷으로 첫번째 사진을 보낸다. 그 패킷은 비디오 데이타가 전송이 안되므로, 보통 타임 스탬프가 보낸 사진의 시작전에 바로 전 사진의 끝이 있다.Figure 46 shows the preferred process. The movement of the time stamp through the present invention and hardware is consistent. It will be appreciated that the communication information method in the preferred hardware is tokens, but an optional method is also used. The hardware is divided into two modules. The first module is added after the start code detector 201. As discussed above for this module generating tokens, SYNC_TIME contains sync time X and occurs before it is associated with the PICTURE_STERT token. In the MPEG system stream, time stamps are sent through the packet header and send the first picture in a packet of data. The packet has the end of the picture just before the start of the picture sent by the time stamp, since no video data is sent.

동기 타임 정보는 마이크로프로세서 인터페이스나 토큰을 사용함으로 이 발명에 공급된다. 두 경우 모두에 있어서, 테이블 12에서 상세히 알려주는 것처럼, 동기 타임 데이트(16비트)는 동기 타임 레지스터(각각의 바이트에 개별적으로 액세스하는 허락이 두부분으로 나뉜다)에 저장이 된다.Synchronous time information is supplied to this invention by using a microprocessor interface or token. In both cases, as detailed in Table 12, the synchronous time data (16 bits) is stored in the synchronous time register (the permission to access each byte in two parts).

[표 12]TABLE 12

본 발명에서 플레그, ts_waiting이 설정되어 유효 동기 시간정보가 타임 스탬프 레지스터에 있다는 사실을 표시한다. 상기 데이타가 SYNC_TIME 토큰을 이용하여 공급되었으면, 상기 토큰은 토큰 열로부터 제거된다.In the present invention, a flag, ts_waiting, is set to indicate that valid synchronization time information is in the time stamp register. If the data was supplied using a SYNC_TIME token, the token is removed from the token sequence.

PICTURE_START 토큰을 만날 때, 상기 동기시간 레지스터의 상태를 표시하는 플러그가 검사된다. 상기 플레그가 설정되지 않으면, 작용이 없으며 상기 PICTURE_START 토큰 및 모든 후속 데이타가 영향을 받지 않는다. 그러나 상기 플레그가 설정되면, 유효 동기 시간 정보가 레지스터에서 유용하며 SYNC_TIME 토큰이 발생되면 PICTURE_START 토큰 선에 데이타열에 배치됨을 표시한다. 상기 플레그는 클리어되며 동기 시간 레지스터는 발생되는 다음 시간_스탬프에서 대해서 유효해진다.When a PICTURE_START token is encountered, a plug indicating the state of the sync time register is checked. If the flag is not set, there is no action and the PICTURE_START token and all subsequent data are not affected. However, if the flag is set, it indicates that valid sync time information is available in the register and placed in the data string on the PICTURE_START token line when a SYNC_TIME token is generated. The flag is cleared and the sync time register is valid for the next time_stamp generated.

제46도에 도시된 바와 같은 제2모듈은 27MHz에서 클럭된 프리스케일러와 마이크로프로그램 상태 머쉬인(MSM)(128)과 관련된 프리스케일러(278)에 의해 클럭된 vid_time 카운터로 구성된다.The second module, as shown in FIG. 46, consists of a prescaler clocked at 27 MHz and a vid_time counter clocked by the prescaler 278 associated with the microprogram state machine (MSM) 128.

제44도 및 제46도에 도시된 바와 같이 클럭은 4800으로 분할하는 프리스케일러(278)가 있다. 다시 말해, 4800은 16의 300(27MHz/90KHz)배이다. 제45도 및 제46도에 도시된 4804.8 옵션은 후에 논의된다.As shown in Figures 44 and 46, there is a prescaler 278 that divides the clock into 4800. In other words, the 4800 is 300 (27 MHz / 90 KHz) times 16. The 4804.8 options shown in FIGS. 45 and 46 are discussed later.

상기 NTSC 칼라 텔레비전에서 상기 프레임 속도는 30Hz가 아니지만, 사실은, 거의 29.94Hz(정확히 30000/1001Hz)이외 [칼라 텔레비전 30Hz가 사용되었다.]. 정확히 NTSC 라인 시간에 대해 1716.27MHz 클럭 주기가 있다(라인 시간은 프레임 시간의 1/525이다.).In the NTSC color television, the frame rate is not 30 Hz, but in fact other than almost 29.94 Hz (exactly 30000/1001 Hz) [color television 30 Hz was used.]. There is exactly a 1716.27 MHz clock period for NTSC line time (the line time is 1/525 of the frame time).

미합중국 텔레비전 표준 바디는 미래에 30Hz[HDTV에 대해서는 아마도 60Hz 더한]로 되돌아갈 것에 관심을 표명해 왔다. 결국 MPEG은 30Hz의 프레임 속도를 정확히 지원한다. 그러나 27MHz 클럭(라인당 1714.29 사이클)으로부터 안정된 30Hz 텔레비전 신호를 발생하는 것이 불가능하므로, MPEG 프레임워크에서 30Hz 라스터를 발생하는 것은 어렵다. 하나의 가능한 해결방안은 디코더에서 클럭 속도를 “벤드”하는 것이다. 그리하여 27MHz 클럭을 발생하는 대신, 27.027MHz 클럭이 발생된다. 이 클럭은 300.3(300. 이외에도) 분할기를 갖는 MPEG 클럭을 이용하여 발생되며 90KHz 클럭을 발생한다. 이러한 27.027MHz 클럭은 27MHz로부터 29.94Hz 프레임 속도를 제공하는 일치하는 비디오 타이밍 회로를 클럭시킬 때 정확히 30Hz 속도를 제공한다.The US television standard body has expressed interest in reverting to 30Hz [probably 60Hz for HDTV] in the future. After all, MPEG supports exactly 30Hz frame rate. However, since it is impossible to generate a stable 30 Hz television signal from a 27 MHz clock (1714.29 cycles per line), it is difficult to generate a 30 Hz raster in the MPEG framework. One possible solution is to "bend" the clock speed at the decoder. Thus, instead of generating a 27 MHz clock, a 27.027 MHz clock is generated. This clock is generated using an MPEG clock with a 300.3 (in addition to 300.) divider and generates a 90 KHz clock. This 27.027MHz clock provides exactly 30Hz speed when clocking a matching video timing circuit that provides a 29.94Hz frame rate from 27MHz.

본 발명의 프레임 워크에서 또다른 인수 16으로 90kHz가 프리스케일된다. 따라서 27.027MHz를 300.3×16=4804.8로 분할한다.In the framework of the present invention, another factor of 16 is prescaled to 90 kHz. Therefore, divide 27.027MHz into 300.3 × 16 = 4804.8.

상기 Vid_time 카운터(273)(전술됨)는 비디오 디코딩 시간을 포함하여 상기 프리스케일러가 그 끝 카운트에 도달할 때마다 증가된다. 상기 vid_time 카운터(273)는 리셋-타임 핀에 의해 리셋된다.The Vid_time counter 273 (described above) is incremented each time the prescaler reaches its end count, including the video decoding time. The vid_time counter 273 is reset by a reset-time pin.

본 발명의 프리스케일러 및 vid_time 카운터는 다른 곳에서 사용되는 저항성 피드백 또는 약한 피드백 랫치보다 α-입자 붕괘에 훨씬더 저항성 있는 완전한 클럭드 피드백 플립-플롭으로 수행될 수 있다. 시간 카운터에 대한 클럭드 피드백 플립플롭을 이용하는 것은 상기 비디오 디코더의 시간 카운터가 시스템 디코더의 시간 카운터를 갖는 단계에 유지되게 한다.The prescaler and vid_time counter of the present invention can be performed with a fully clocked feedback flip-flop that is much more resistant to α-particle blight than resistive feedback or weak feedback latches used elsewhere. Using a clocked feedback flip-flop for the time counter causes the time counter of the video decoder to remain in step with the time counter of the system decoder.

제47도는 SYNC_TIME 토큰을 수용할 때 MSM(21A, 처리가 수행됨을 도시한다. 상기 MSM(218)은 비디오 시간 카운터에 의해 표시되는 현재 시간을 읽고 그 후 그것을 비디오 SYNC_TIME 토큰에 의해 공급된 값과 비교할 수 있다. 그러므로 그것이 이른지 또는 늦은지를 결정할 수 있는데, 화상을 디코딩해야 하는 시간에 비해서 그러하다.Figure 47 shows the MSM 21A, processing performed when accepting a SYNC_TIME token. The MSM 218 reads the current time indicated by the video time counter and then compares it with the value supplied by the video SYNC_TIME token. It is therefore possible to determine whether it is early or late, relative to the time at which the picture should be decoded.

본 발명에서, 16비트 신호 타임 스탬프 교정은, 비디오 SYNC_TIME 토큰에 의해 이동된 동기시간 X(전술됨)에 가산된다. 이러한 교정을 칩 리셋트에서 MSM(218)에 의해 제로로 리세트되며, 작용이 없으면, 상기 동기시간이 변경없이 유지된다. 제어 마이크로프로세서는 항상 상기 동기시간을 수정하기위해 ts_교정으로 값을 기록하며 따라서 비디오 및 오디오 디코더를 통해서 차지연을 보상한다.In the present invention, the 16 bit signal time stamp correction is added to the sync time X (described above) shifted by the video SYNC_TIME token. This calibration is reset to zero by the MSM 218 at chip reset, and if there is no action, the sync time remains unchanged. The control microprocessor always records the value with ts_calibration to correct the sync time and thus compensates for the charge delay through the video and audio decoder.

상기 vid_time 카운터(273)에 포함된 현재의 비디오 디코딩 시간은 교정된 동기시간으로부터 감산된다. 상기 신호값은 에러 방향을 주며(만약 있다면 MSM(218)에 의해 발생된 에러코드를 결정한다.) 차의 절대값이 취해져서 결과가 임계치와 비교되며 타이밍 에러가 허용 한계내에 있는지를 결정한다. 현재로서 상기 비디오 시간이 공칭 시간으로부터 프레임 기간 만큼 플러스 또는 마이너스 정밀로를 제어될 수 있으므로(VTG333이 자주하므로) 이러한 임계치는 하나의 프레임 시간에서 설정된다.The current video decoding time included in the vid_time counter 273 is subtracted from the calibrated sync time. The signal value gives the direction of error (if any, determines the error code generated by MSM 218) and the absolute value of the difference is taken so that the result is compared with a threshold and determines whether the timing error is within tolerance. This threshold is set at one frame time as the video time can now be controlled from nominal time to plus or minus precision by frame period (as VTG333 is often).

에러가 프레임_타임을 초과하면, 일부가 교정되어야 한다. 본 발명의 MSM(218)은 디코딩이 너무 이를 때 그 상황을 스스로 교정할 수 있다. 왜냐하면 상기 MSM이 적당한 시간까지 디코딩을 간단히 지연시킬 수 있기때문이다. 그러나 상기 디코딩이 의도된 시간보다 더 늦으면, 시간교정은 어렵다. 왜냐하면 코딩된 데이타 버퍼의 출력에서 화상을 신뢰성있게 폐기하는 것이 불가능하기 때문이다. 반드시 상기 순서의 디코딩은 깨어져 상기 상황을 교정하기 위한 최상의 신뢰성있는 방법은 랜덤 엑세스 또는 채널 변화와 유사한 방식으로 디코딩 프로세스를 다시 시작하는 것이다. 이러한 프로세스를 위해서, MSM(218)의 제어 레지스터가 프로그램되어 적당한 스타트 코드 또는 FLUSH 토큰을 만날 때까지 데이타를 폐기하게 된다. 이에 더해서 상기 에러 “ERR_TOO_EARLY”는 disbale_too_early 설정에 관계없이 스타트업 동안에 발생되지 않는다. 왜냐하면 스타트업에서 제1 화상이 이른 것으로 기대되기 때문이다.If the error exceeds frame_time, some must be corrected. The MSM 218 of the present invention can correct the situation by itself when the decoding is too early. This is because the MSM can simply delay decoding by a reasonable time. However, if the decoding is later than the intended time, time correction is difficult. This is because it is impossible to reliably discard the picture at the output of the coded data buffer. The decoding of the sequence must be broken so that the best reliable way to correct the situation is to restart the decoding process in a manner similar to random access or channel change. For this process, the control register of MSM 218 is programmed to discard data until it encounters the appropriate start code or FLUSH token. In addition, the error "ERR_TOO_EARLY" is not generated during startup regardless of the disbale_too_early setting. This is because the first image is expected to be early in the startup.

표 13은 MSM(218) 레지스터가 어떻게 작동하며 레지스터 내에 배치된 작용 및 에러 메시지 정보 중 일부가 어떻게 발생하는지를 예시한다.Table 13 illustrates how the MSM 218 register works and how some of the action and error message information placed within the register occurs.

[표 13]TABLE 13

본 발명의 싱크로니제이션 타임 조절의 결과로 두가지 실수들 중 하나가 생길 수 있다.As a result of the synchronization time adjustment of the present invention, one of two mistakes may occur.

ERR_TOO_EARLY는 디코딩이 타임 스탬프에 의해 표시된 시간보다 더빨리 일어났을 경우에 발생된다. ERR_TOO_EARLY는 억제될 수 있지만 ERR_TOO_LATE는 모든 에러들을 막지 않는한 항상 발생될 것이다.ERR_TOO_EARLY is generated when decoding has occurred earlier than the time indicated by the time stamp. ERR_TOO_EARLY can be suppressed, but ERR_TOO_LATE will always be raised unless all errors are prevented.

요약하면, 본 발명에는 다음이 포함된다. 갖고 있는 시간을 일치시키기 위한 기구, 제공시간을 결정하기 위한 타임 스탬프, 첫째 회로에서의 시스템 시간 개시를 위한 클럭 레퍼런스, 첫째 타임 카운터와 시간이 일치하도록 맞추어진 둘째 회로에서의 클럭 레퍼런스에 의해 개시된 둘째 타임 카운터와 첫째 회로에서의 시스템 타임을 유지시키고, 시스템 타임의 로컬 카피를 유지시키기고, 타임 스탬프와 둘째 타임 카운터를 비교함으로써 시스템 타임의 로컬 카피와 시스템 타임사이의 제공시간 상의 에러를 결정하기위한 클럭 레퍼런스와 연결된 첫째 타임 카운터. 이것에는 또한 디스플레이 타임을 결정하기위한 타임 스탬프를 사용하여 시스템 디코더와 비디오 디코더의 시간을 일치시키기위한 기구, 시스템 디코더에서의 시스템 타임 개시를 위한 클럭 레퍼런스, 첫째 타임 카운터와 시간이 일치하도록 맞추어진 비디오 디코더에서와 클럭 레퍼런스에 의해 개시된 둘째 타임 카운터와 시스템 디코더에서의 시스템 타임을 유지시키고, 시스템 타임의 로컬 카피를 유지하고, 타임 스탬프와 둘째 타임 카운터를 비교함으로서 시스템 타임의 로컬 카피와 시스템 타임사이의 디스플레이 타임 에러를 결정하기 위한 클럭 레퍼런스와 연결된 첫째 타임카운터. 또다른 실시예 중에는 첫째 회로에서의 시스템 타임을 개시하기위한 클럭 레퍼런스를 사용함으로써 첫째 회로와 둘째 회로의 시간을 일치시키기 위한 기구, 시스템 타임을 유지하기위한 클럭 레퍼런스와 연결된 타임 카운터를 갖고 있는 첫째 회로, 기본 스트림 타임을 제공하기 이한 첫째 회로에서의 첫째 기본 스트림타임 카운터가 포함된다. 첫째 회로는 타임 스탬프를 받기에 적합하도록 되어 있으며, 첫째회로는 기본 스트림 타임을 타임 스탬프에 더하고 시스템 타임을 뺌으로써 시간을 일치시킨다. 둘째 회로는 첫째 회로로부터 일치시켜진 시간을 받기에 적합하도록 되어 있으며, 기본 스트림 타임의 로컬 카피를 제공하고 동기 타임과 기본 스트림 타임의 로컬 카피 사이의 타이밍 에러를 결정하기 위한 첫째 기본 스트림 타임 카운터와의 일치된 시간을 갖는 둘째 기본 스트림 카운터를 갖고 있다. 이와 같은 방식으로 클럭 레퍼런스 신호는 타이밍 에러를 결정하기 위해서 둘째 회로로 직접 들어갈 필요가 없게 된다. 또다른 실시예 중에서 첫째 회로와 둘째 회로로 직접 들어갈 필요가 없게 된다. 또다른 실시예 중에서 첫째 회로와 둘째 회로의 시간을 일치시키기 위한 기구는 첫째 회로에서의 시스템 타임을 개시하기 위한 클럭 레퍼런스를 갖고 있다. 첫째 회로는 시스템 타임을 유지하기 위한 클럭 레퍼런스와 연결된 타임 카운터와 비디오 디코딩 타임을 제공하기 위한 첫째 비디오 타임 카운터를 갖고 있다. 첫째 회로는 비디오 타임 스탬프를 받기에 적합하도록 되어 있으며 비디오 디코딩 타임을 비디오 타임 스탬프에 더하고 시스템 타임을 뺌으로써 동기 타임을 만든다. 둘째 회로는 첫째 회로로부터 싱크로나이제이션 타임을 받기에 적합하도록 되어 있으며 비디오 디코딩 타임의 로컬 카피를 제공하고 동기 타임과 비디오 디코딩 타임의 로컬 카피를 비교하여서 시스템 타임과 비디오 스탬프 사이의 타이밍 에러를 결정하기 위한 첫째 비디오 타임 카운터와 일치한 시간을 갖도록 맞추어진 둘때 비디오 타임 카운터를 갖고 있다. 따라서 클럭 레퍼런스 신호는 타이밍 에러를 결정하기 위해 둘째 회로로 직접 들어갈 필요가 없다. 본 발명중에는 또한 타임 스탬프가 데이타 패킷에서의 첫째 픽쳐를 나타내는 패킷 헤더에서 실행되는 타임 스탬프를 갖고 있는 비디오 데이타 스트림을 제공함으로써 타이밍 정보를 제공하는 방법이 포함된다. 다음 단계에서는 패킷 헤더로부터 얻어져서 레지스터로 옮겨진 유효 타임 스탬프 정보를 표시하기위해 사용되는 플랙을 갖고 있는 레지스터가 제공된다. 다음에는 타임 스탬프가 비디오 데이타 스트림에서 제거된 후에 레지스터로 옮겨진다. 그 다음에 이 방법에서는 픽쳐 스타트가 실시되며 그 결과 플랙 상태를 검사함으로서 유효타임 스탬프 정보가 레지스터 중에 포함되었는가를 결정하기 위해서 레지스터의 상태를 검색하게 된다. 만일 플랙이 유효 타임 스탬프 정보가 레지스터에 포함되었으며 그 후에 타임 스탬프가 데이타 스트림으로 다시 삽입되었음을 표시하게 되면 픽쳐 스타트에 대한 반응으로 타임 스탬프가 생기게 된다. 또다른 실시예 중에는 기본 스트림 타임 카운터가 16비트로 제한된 위에서 설명된 기구가 포함된다. 마찬가지로 위에서 설명한 것과 같은 기구가 있는데, 그 기구 중에서 기본 스트림 디코더 내에 위치해 있는 둘째 기본 스트림 타임 카운터가 16비트로 제한된다. 또한 기본 스트림 디코드를 조절하기 위해서 싱크로니제이션 타임이 16비트로 제한되어 있는 위에서 설명한 것과 같은 기구가 있다. 본 발명 중에는 또한 비디오 디코딩과 임계값에 대해서 디스플레이 타임 에러를 결정하기 위한 과정이 들어 있다. 이것은 그후 비디오 데이타를 추가 처리, 타임 스탬프 표시가 나타났는가의 여부를 결정하고 타임 스탬프 표시를 비디오 타임과 비교하기위한 표시들로 분해하여, 타이밍 에러 표시를 결정하기 위해서 비교되는 값을 만들어준다. 다음에 이것은 비교되는 값을 임계값과 비교했을 때에 타이밍 에러가 표시되었을 때에 허용가능한 변수들 이내에 있는지의 여부를 결정하며, 비교되는 값이 허용가능한 변수를 밖에 있을 때에 표시를 해준다. 또다른 실시예 중에는 시스템 디코더와 비디오 디코더를 사용하기 위한 기구가 포함된다. 이 시스템 디코더는 MPEG 시스템 스트림과 스트림으로부터 비디오 데이타와 비디오 타임 스탬프를 다중 송신하기에 적합하도록 되어 있다. 이 시스템 디코더는 시스템 타임을 나타내는 첫째 타임 카운터를 갖고 있다. 이 비디오 디코더는 비디오 데이타와 비디오 타임 스탬프를 받아들이며 첫째 타임 카운터와 시간이 일치하도록 맞춰진 둘째 타임 디코더를 갖고 있다. 이 비디오 디코더는 또한 본질적으로 일정한 속도로 데이타를 받아들이고 변하는 속도로 비디오 데이타를 방출하고 비디오 타임 스탬프를 전송할 수 있기위한 비디오 디코더 버퍼를 가지고 있다. 비디오 디코더는 비디오 데이타로부터의 그림을 디코딩하는 동안에 또한 적절한 디스플레이 시간을 결정하기 위해서 디코드되는 그림에 대한 비디오 타임 스탬프와 둘째 타임 카운터를 비교한다. 또한 첫째 회로와 둘째 회로 사이의 타임 에러를 결정하는 방법이 있다. 즉 첫째 회로에 시스템 타임(SY), 타임 스탬프(TS) 및 기본 스트림 타임(ET)을 부여한 후에 기본 스트림 타임(ET), 타임 스탬프(TS) 및 시스템 타임(SY)을 방정식 X=ET+TS-SY에 대입하여서 싱크로니제이션 타임(X)를 얻는다. 싱크로니제이션 타임(X)을 둘째 회로에 부여한 후에 시간이 일치된 기본 스트림 타임(ET2)를 만들어내고 나서 싱크로나이즈드 타임(X)를 방정식 ET2-X에 대입하여서 타임에러를 얻는다. 따라서 첫째 회로는 시스템 타임을 둘째 회로로 보내지 않고도 둘째 회로와의 시간일치를 이룰 수 있다. 첫째 회로와 둘째회로와의 타임 에러를 결정하는 또다른 방법은 다음의 절차를 따른다. 첫째 회로에 타임 스탬프(TS)와 초기시간(IT)을 부여한 후에 타임 스탬프(TS)와 초기시간(IT)를 방정식 X=TS-I를 둘째 회로에 부여한 후에 시간이 일치된 기본 스트림 타임(ET)를 만들어 내고 나서 싱크로나이즈드 타임(X)을 방정식 ET-X에 대입하여 타임 에러를 얻는다. 이와 같은 방식으로 첫째 회로는 시스템 타임을 둘째 회로로 보내지 않고도 둘째 회로와의 시간일치를 이룰 수 있다. 첫째 회로와 둘째 회로 사이의 타임 에러를 결정하기 위한 또다른 방법은 다음의 절차를 따른다. 첫째 회로에 시스템 타임(SY), 비디오 타임 스탬프(VTS), 비디오 디코딩 타임(VT)를 부여한 후에 비디오 디코딩 타임(VT), 비디오 타임 스탬프(VTS) 및 시스템 타임(YS)를 방정식 X=VT+YS에 대입하여서 싱크로니제이션 타임(X)을 얻는다. 싱크로니제이션 타임(X)을 둘째 회로에 부여한 후에 첫째 회로에서의 비디오 디코딩 타임(VT)과 시간일치를 이룬 둘째 회로에서의 비디오 디코딩 타임(VT2)을 만들어 내고, 싱크로나이즈드 타임(X)을 방정식 VT2-X에 대입하여서 타임 에러를 얻는다. 따라서 첫째 회로는 시스템 타임을 둘째 회로로 보내지 않고도 시간일치를 이룰 수 있다.In summary, the present invention includes the following. A second time initiated by a mechanism to match the time it has, a time stamp to determine the serving time, a clock reference for starting the system time in the first circuit, and a clock reference in the second circuit that is set to match the time with the first time counter. To determine the error in the provision time between the local copy of the system time and the system time by maintaining the time counter and the system time in the first circuit, maintaining a local copy of the system time, and comparing the time stamp and the second time counter. First time counter associated with the clock reference. It also includes mechanisms to match the time of the system decoder and video decoder using time stamps to determine the display time, a clock reference to initiate system time at the system decoder, and a video that is timed to match the first time counter. Between the local copy of the system time and the system time by maintaining the system time at the system decoder at the decoder and the system decoder at the decoder and by the clock reference, maintaining a local copy of the system time, and comparing the time stamp with the second time counter. First time counter associated with a clock reference to determine display time error. In another embodiment, a first circuit having a time counter connected to a clock reference to maintain the system time, a mechanism for matching the time of the first and second circuits, and a clock reference to initiate the system time in the first circuit. The first elementary stream time counter is included in the first circuit to provide an elementary stream time. The first circuit is adapted to receive a time stamp, and the first circuit matches the time by adding the elementary stream time to the time stamp and subtracting the system time. The second circuit is adapted to receive the matched time from the first circuit, providing a local copy of the elementary stream time and a first elementary stream time counter for determining timing errors between the sync time and the local copy of the elementary stream time. It has a second elementary stream counter with a matched time of. In this way, the clock reference signal does not need to go directly to the second circuit to determine the timing error. In another embodiment there is no need to enter the first and second circuits directly. In yet another embodiment, the mechanism for matching the time of the first and second circuits has a clock reference to initiate the system time in the first circuit. The first circuit has a time counter connected to a clock reference to maintain system time and a first video time counter to provide video decoding time. The first circuit is adapted to receive a video time stamp and creates a synchronous time by adding the video decoding time to the video time stamp and subtracting the system time. The second circuit is adapted to receive the synchronization time from the first circuit and provides a local copy of the video decoding time and compares the local copy of the sync time and the video decoding time to determine the timing error between the system time and the video stamp. It has a two-time video time counter that is set to have a time that matches the first video time counter. Therefore, the clock reference signal does not need to go directly to the second circuit to determine the timing error. Also included in the present invention is a method of providing timing information by providing a video data stream having a time stamp whose time stamp is executed in a packet header representing the first picture in the data packet. In the next step, a register is provided with the flag used to display valid time stamp information taken from the packet header and transferred to the register. Next, the time stamp is removed from the video data stream and then moved to a register. This method then executes a picture start and, as a result, examines the state of the register to determine if valid time stamp information is included in the register. If the flag indicates that valid time stamp information has been included in the register and then the time stamp has been reinserted into the data stream, a time stamp is generated in response to the picture start. Another embodiment includes the mechanism described above where the elementary stream time counter is limited to 16 bits. Similarly, there is a mechanism as described above, in which the second elementary stream time counter located within the elementary stream decoder is limited to 16 bits. There is also the same mechanism as described above, where the synchronization time is limited to 16 bits to adjust the elementary stream decode. The present invention also includes a process for determining display time errors for video decoding and thresholds. This then further processes the video data to determine whether a time stamp indication has appeared and breaks the time stamp indication into indications for comparison with the video time, creating a value that is compared to determine the timing error indication. This in turn determines whether the timing value is within the allowable variables when the timing error is indicated when comparing the compared value to the threshold, and indicates when the value being compared is outside the allowable variable. Another embodiment includes a mechanism for using a system decoder and a video decoder. The system decoder is adapted for multiplexing video data and video time stamps from MPEG system streams and streams. This system decoder has a first time counter representing the system time. The video decoder accepts video data and video time stamps and has a second time decoder that is timed to match the first time counter. The video decoder also has a video decoder buffer that is capable of accepting data at essentially constant rate, releasing video data at varying rates and sending a video time stamp. The video decoder compares the second time counter with the video time stamp for the decoded picture while also decoding the picture from the video data to determine the appropriate display time. There is also a way to determine the time error between the first and second circuits. That is, after giving the system time (SY), time stamp (TS), and elementary stream time (ET) to the first circuit, the elementary stream time (ET), time stamp (TS), and system time (SY) are given by the equation X = ET + TS Substitute in -SY to obtain the synchronization time (X). After giving the synchronization time (X) to the second circuit, a time-matched elementary stream time (ET2) is produced, and then the synchronized error (X) is substituted into the equation ET2-X to obtain a time error. Thus, the first circuit can achieve time agreement with the second circuit without sending system time to the second circuit. Another method of determining the time error between the first and second circuits is to follow the procedure below. After a time stamp (TS) and an initial time (IT) are assigned to the first circuit, the time-stamped elementary stream time (ET) after the time stamp (TS) and initial time (IT) is given to the second circuit with the equation X = TS-I. ) And then obtain the time error by substituting the synchronized time (X) into the equation ET-X. In this way, the first circuit can be matched with the second circuit without sending system time to the second circuit. Another method for determining the time error between the first and second circuits follows the following procedure. The first circuit is given system time (SY), video time stamp (VTS), video decoding time (VT), and then the video decoding time (VT), video time stamp (VTS) and system time (YS) are equations X = VT + Substitute in YS to obtain the synchronization time (X). After the synchronization time (X) is given to the second circuit, the video decoding time (VT2) in the second circuit that coincides with the video decoding time (VT) in the first circuit is generated, and the synchronized time (X) is expressed by the equation VT2. Get a time error by substituting for -X. Thus, the first circuit can be time aligned without sending system time to the second circuit.

[비동기 스윙 버퍼링에 대한 발명의 상세한 설명]Detailed Description of the Invention for Asynchronous Swing Buffering

본 발명과 일치하게 비동시성 스윙 버퍼링에 대해서 두개의 버퍼가 비동시적으로 작동하는데 하나는 쓰여지고 다른 하나는 읽혀진다. 따라서 이때문에 첫번째의 처리속도를 갖고 있는 데이타 스트림이, 원하는 속도를 계속 유지하면서도 또다른 속도로 다시 시간일치를 이룰 수 있게 되는 것이 가능하다. 이 발명에서 쓰기 조절 장치와 읽기 조절 장치는 모두 이들이 어느 버퍼를 쓰고 있는지와 그 조절 장치가 접근을 기다리고 있는지 혹은 사실상 그 버퍼로 접근하고 있는지의 여부에 대해 통신을 하기 위한 상태 표시기들을 갖고 있다. 양측은 각각 어떤 1 비트를 통신한다. 이것은 비동시성 회로구조의 양측 사이에서 시간의 일치를 이루어야 할 유일한 신호이다. 한쪽의 조절 회로(읽기 또는 쓰기)가 버퍼에 접근하는 것을 마치게 되면 이 발명은 조절 장치가 다른 회로로 옮겨 갈 수 있게 해준다. 만일 조절 장치가 스윙한 후에 두 조절 회로들이 같은 버퍼를 쓰고자 한다면 나중의 조절 회로는 기다리기 시작할 것이다. 조절 회로는 각측이 각각의 버퍼를 사용하게 될 때까지, 즉 반대편이 스윙할 때까지 기다릴 것이다. 만일 스윙을 마친 후에 그것이 이제 각자의 버퍼를 상대편에 대해서 쓰고 있음을 알게 되면 그것은 기다리지 않고 즉시 접근을 시작할 것이다. 이와같은 버퍼들간의 조정체계는 똑같은 버퍼, 즉 이 경우에는 버퍼 0를 사용하는 두 버퍼들에 의해서 시작되게 된다. 쓰기 쪽이 접근하고 있는 동안에 읽기 쪽은 각 버퍼로 부터 읽어 낼만한 유효한 것이 없기 때문에 기다리면서 시작될 것이다.In accordance with the present invention, for asynchronous swing buffering, two buffers operate asynchronously, one being written and the other being read. This makes it possible for a data stream with the first processing rate to be reconsistent at another rate while still maintaining the desired rate. In the present invention, the write control device and the read control device both have status indicators for communicating about which buffer they are using and whether the control device is waiting for access or in fact accessing the buffer. Each side communicates one bit each. This is the only signal that must be matched in time between both sides of the asynchronous circuit structure. When one regulating circuit (read or write) finishes accessing the buffer, the invention allows the regulating device to move to the other circuit. If both regulating circuits try to use the same buffer after the regulating device swings, the latter regulating circuit will begin to wait. The regulating circuit will wait until each side uses its respective buffer, i.e. the other side swings. If after the swing it is found that it is now writing its own buffer to the other side, it will immediately start accessing without waiting. The coordination scheme between these buffers is started by two buffers using the same buffer, in this case buffer 0. While the write side is approaching, the read side will start waiting because there is no valid read from each buffer.

한 실시예에서 본 발명과 일치하게 스윙 버퍼들은 두개의 분리된 RAMS인데 이들은 스트로브, 어드레스 및 각 측에 의해서 어느 버퍼가 접근을 받고 있는지에 따라서 결정되는 읽기 또는 쓰기 쪽중의 하나로 부터 전송되는 데이타를 가능하게 해주는 모든 신호들을 갖고 있다. 이러한 구조는 두버퍼들 사이에 많은 신호들을 운송하는 데 많은 면적을 사용하게 하는것으로 알려져 있다.In one embodiment, in accordance with the present invention, swing buffers are two separate RAMSs that allow data to be transferred from either the strobe, address, or one of the read or write sides, depending on which buffer is being accessed by each side. It has all the signals that make it happen. This structure is known to use a large area to transport many signals between two buffers.

두 RAM들을 하나의 구조로 묶는 것은 기능을 똑같은 표준으로 유지시키면서도 전송면적의 상당부분을 절약해 준다. 이러한 구조는 두배나 되는 열들을 갖고 있다. 그러나 둘째 실시예는 분리된 버퍼들로의 읽기와 쓰기가 동시에 그리고 비동시적으로 일어나기 때문에 두쌍의 비트라인을 갖고 있어야 한다. 각각의 열은 원래의 두께를 갖고 있게 되는데(즉 같은 수의 셀을 갖게) 이는 접근하는 것들이 분리된 RAN들과 같은 두께를 갖기 때문이다. 각 쌍의 열들은 마치 똑같은 어드레스에서, 그러나 다른 버퍼들로부터 접근을 받으므로 이들은 각기 다른 쌍의 비트라인과 연결된다. 똑같은 어드레스를 사용하므로 이러한 열들의 쌍은 읽기 어드레스에 연결된 하나의 열 디코더와 쓰기 어드레스에 연결된 하나의 열 디코더에 의해서 쉽게 접근될 수 있다. 읽기 및 쓰기 조절 장치는 절대로 또다시 동시에 똑같은 버퍼에 접근하지 않으므로 어느 쌍이 어느 열 디코더에 의해 접근되야 하는 지에 대한 충돌이 없게 된다.Combining two RAMs into a single structure saves a significant part of the transfer area while maintaining the same functionality. This structure has twice as many columns. However, the second embodiment must have two pairs of bit lines because reads and writes to separate buffers occur simultaneously and asynchronously. Each row will have its original thickness (ie have the same number of cells) because the approaching ones will have the same thickness as the separate RANs. Each pair of columns is accessed at the same address, but from different buffers, so they are connected to different pairs of bit lines. Using the same address, these pairs of columns can be easily accessed by one column decoder coupled to the read address and one column decoder coupled to the write address. The read and write controls never access the same buffer again and again at the same time, so there is no conflict as to which pair should be accessed by which column decoder.

각각의 열 디코더가 각 버퍼의 열들로 접근할 수 있도록 하는 똑같은 방법에 의해서 본 발명의 구조속에 있는 읽기 및 쓰기 회로는 모두 각각의 버퍼중의 한 쌍인, 비트라인들의 각 쌍에 연결된다. 이러한 읽기와 쓰기들은 각 버퍼들로 다중 전송되며 위에서 설명한 것과 같은 이유 때문에 충돌일 없게 된다.By the same method that allows each column decoder to access the columns of each buffer, the read and write circuits in the structure of the present invention are all connected to each pair of bit lines, one pair in each buffer. These reads and writes are multiplexed into each buffer and are free of conflicts for the same reasons described above.

제48도에서 보인 것처럼 본 발명과 일치하게 스윙 유니트 1 중에는 RAM 12와 14를 갖는 스윙 버퍼 10이 포함된다. 스윙 유니트 1에는 또한 쓰기 조절 회로와 읽기 조절 회로가 포함되는데, 이들은 데이타를 RAM 12와 14의 안으로 또는 밖으로 조절한다. 읽기 조절 회로와 쓰기 조절 회로는 스트로브, 데이타 및 어드레스 조절 라인 8을 사용해서 이일을 이룩한다. 라인 7과 9는 쓰기 조절 회로에 의해 사용되는 RAM과 읽기 조절 회로에 의해서 사용되는 RAM을 표시하기 위한 조절라인들이다. 라인 7은 쓰기 조절 회로를 조절하기 위해서 작동하는 데, 즉 읽기 조절 회로를 사용시에 낮을 때에는 RAM 12를, 높을 때에는 RAM 14를 쓴다. 비슷하게 라인 9는 읽기 조절 회로에게 쓰기 조절 회로가 낮으면 RAM 12를, 높으면 RAM 14를 쓰고 있음을 알려주는 기능을 한다.As shown in FIG. 48, in accordance with the present invention, the swing unit 1 includes a swing buffer 10 having RAMs 12 and 14. Swing unit 1 also includes write control circuitry and read control circuitry, which control data in or out of RAM 12 and 14. The read and write control circuitry accomplishes this by using strobe, data and address control lines 8. Lines 7 and 9 are control lines for indicating the RAM used by the write control circuit and the RAM used by the read control circuit. Line 7 operates to regulate the write control circuitry, which uses RAM 12 when low and RAM 14 when high when using read control circuitry. Similarly, line 9 tells the read control circuit that it is using RAM 12 if the write control circuit is low and RAM 14 if it is high.

본 발명에서 스윙 버퍼 10은 12 및 14의 두개의 RAM 어레이를 갖고 있다. 스윙 버퍼 10은 이기구가 고속의 기억접근을 위해 필요한 밴드를 갖도록 해주는 RAM 영역에 대해 비동시성의, 양자택일적인 읽기와 쓰기가 가능하다. RAM 12와 14는 다음의 신호를 필요로 한다. 쓰기 어드레스 16, 읽기 어드레스 18, 데이타 인 2, 데이타 아웃 22 및 읽기 및 쓰기 가능 신호(나타나 있지 않음) 또한 제49도를 보라.In the present invention, the swing buffer 10 has two RAM arrays of 12 and 14. Swing buffer 10 allows asynchronous, alternative reads and writes to the RAM area that allows this mechanism to have the bands needed for fast memory access. RAM 12 and 14 require the following signals. See also FIG. 49 for write address 16, read address 18, data in 2, data out 22 and read and write enabled signals (not shown).

쓰기 어드레스 및 읽기 어드레스 신호들은 멀티플렉서 24에 의해서 다중 전송된다. RAM 어레이 12와 14는 전통적인 의미의 쓰기 회로, 열 디코더 및 읽기 회로와 함께 작동한다. 본 발명의 첫째 실시예 중에서 스윙 버퍼 10의 개시중에 RAM 12에는, 조절 회로가 쓰기 가능 신호를 RAM 14로 전환 시킬 때까지 쓰기가 계속될 것이다.Write address and read address signals are multiplexed by the multiplexer 24. RAM arrays 12 and 14 work with traditional write circuits, column decoders, and read circuits. In the first embodiment of the present invention, during the start of the swing buffer 10, the writing will continue in the RAM 12 until the control circuit converts the writeable signal to the RAM 14.

일단 RAM 어레이(12)가 쓰여지면 이것은 읽혀지게 될 읽기 조절 회로(4)의 지배하에 놓이게 된다. 이 시간 동안에 RAM 어레이(14) 또한 쓰여지게 된다. RAM 어레이가 읽기 어레이 콘트롤(2) 또는 쓰기 조절 회로(4)의 지배하에 놓이게 될 때에는 읽기 또는 쓰기가 완성되고 나서 조절이 바뀌게 될 때까지 조절이 확립된다는 점에 주의하는 것은 중요하다. 읽기 조절 회로(4)가 RAM 어레이(12)에 접근하고 있고 쓰기 조절 회로(2)가 똑같은 RAM 어레이(12)에 접근해야 하는 상황하에서는 쓰기 조절 회로가 기다리기 시작하게 된다.Once the RAM array 12 is written, it is under the control of the read control circuit 4 to be read. During this time the RAM array 14 is also written. It is important to note that when the RAM array is placed under the control of the read array control 2 or the write control circuit 4, the adjustment is established until the adjustment is changed after the read or write is completed. In a situation where the read control circuit 4 is accessing the RAM array 12 and the write control circuit 2 has to access the same RAM array 12, the write control circuit starts to wait.

따라서 본 발명과 일치하게 두 조절 이벤트가 만들어진다. 쓰기 조절 회로 또는 읽기 조절 회로가 다른 RAM으로 스윙될 때에 이것은 RAM이 자유롭고 또다른 회로의 지배하에 있지 않기 때문에 즉각적으로 RAM에 접근하거나 또는 기다리기 시작한다. 시작되는 동안에 읽기 쪽은, 각 버퍼로 부터 읽어들일 만한 유효한 것이 없으므로 쓰기 쪽에게 양보한다.Thus, two conditioning events are made in accordance with the present invention. When a write control circuit or a read control circuit swings to another RAM, it immediately starts accessing or waiting for RAM because the RAM is free and not under the control of another circuit. During startup, the read side yields to the write side because there is nothing valid to read from each buffer.

본 발명의 제2실시예가 제50도에 나타나 있다. 집적된 스윙 버퍼 30 중에는 RAM 어레이 14와 결합된 RAM 어레이 12의 로직컬 사이즈를 갖는 RAM 어레이 32가 포함된다. 다시 말하면 제1 및 제2 실시예 중에는 모두 같은 양의 RAM이 있지만 그것이 제2 실시예 중에는 결합되어 있는 것이다. 따라서 집적된 스윙 버퍼에는 똑같은 스윙 버퍼 기능을 하면서도 전송 면적을 상당히 줄여 준다는 장점이 있다.A second embodiment of the present invention is shown in FIG. The integrated swing buffer 30 includes a RAM array 32 having a logical size of RAM array 12 combined with a RAM array 14. In other words, there is the same amount of RAM in the first and second embodiments, but it is combined in the second embodiment. Thus, the integrated swing buffer has the same swing buffer function and significantly reduces the transmission area.

본 발명의 제2실시예 중에서 쓰기 회로 및 읽기 회로 34 및 36은 스윙 버퍼 10에서 사용된 것과 유사하다. 그러나 이러한 회로들은 이제 다음에 명기된 비트라인의 쌍으로부터 선택한 셀렉터를 갖게 된다. 마찬가지로 읽기 접근 열 디코더 38과 쓰기 접근 열 디코더 40은 스윙 버퍼 10에 포함된 것들과 유사하지만 이들은 아래에 제51도에서 설명한 것과 같은 한 쌍의 열에 접근하는 것이 가능하다.In the second embodiment of the present invention, the write circuits and read circuits 34 and 36 are similar to those used in the swing buffer 10. However, these circuits now have a selector selected from the next pair of bit lines specified. Similarly, read access column decoder 38 and write access column decoder 40 are similar to those included in swing buffer 10, but they are capable of accessing a pair of columns as described in FIG. 51 below.

제51도에서 나타낸 것처럼 본 발명과 일치하게 집적 스윙 버퍼 30의 특별한 구조가 상술되었다. 셀 42의 각각의 것들은 열 44에 포함되었다. 읽기 열 디코더 38과 쓰기 열 디코더 40은 열 44에 쌍으로 접근한다. 한쌍의 열은 어드레스 라인 16과 18에 의해 제공된 똑같은 어드레스를 갖고 있다. 읽기 버퍼 라인 52와 쓰기 버퍼 라인 54는 짝지워진 열 42 중의 하나를 선택하게 해주는 조절 정보를 제공한다. 버퍼 0 비트라인 48과 버퍼 1 비트 라인 50은 양자 택일적인 셀의 열들과 읽기 및 쓰기 회로 34 및 36과 연결된다. 어드레싱을 그리는 것을 명료하게 하기 위해서 더 밝은 쉐이딩은 버퍼 0에 있는 열에 접근하는 읽기 열 디코더 387을 나타내 준다. 유사하게도 더 어두운 쉐이딩은 버퍼 1의 열에 접근하는 쓰기 열 디코더 40을 나타내 준다.As shown in FIG. 51, the specific structure of the integrated swing buffer 30 has been described in accordance with the present invention. Each of cells 42 is included in column 44. Read column decoder 38 and write column decoder 40 access column 44 in pairs. The pair of columns have the same address provided by address lines 16 and 18. Read buffer line 52 and write buffer line 54 provide adjustment information to select one of the paired columns 42. Buffer 0 bitline 48 and buffer 1 bitline 50 are connected to columns of alternative cells and to read and write circuits 34 and 36. To clarify the drawing of the addressing, the brighter shading shows the read column decoder 387 accessing the column in buffer 0. Similarly, the darker shading represents write column decoder 40 accessing the column of buffer 1.

요약하자면, 본 발명 중에는 RAM 어레이에 입력되는 데이타를 조절하는 RAM 어레이와 연결되는 쓰기 조절 회로, 그리고 RAM 어레이로 부터 출력되는 데이타를 조절하기 위한 RAM 어레이와 연결되는 읽기 조절 회로의 최소한 두개의 RAM 어레이를 갖는 스윙 버퍼 기구가 포함된다. 더우기 읽기 조절 회로와 쓰기 조절 회로는 각기 서로 연락되어 있으므로 RAM 어레이의 시간일치 조절이 가능하다. 또한 RAM 어레이, 한쌍의 비트 라인을 통해 RAM 어레이와 연락되는 쓰기 조절 회로, 또다른 한 쌍의 비트 라인을 통해 RAM 어레이와 연락되는 읽기 조절 회로 및 RAM을 한쌍의 열을 통해 어드레스 시킴으로써 각각의 셀들이 판독될 수 있도록 해주는 읽기 열 디코더와 쓰기 열 디코더를 갖는 스윙 버퍼 기구가 있다.In summary, at least two RAM arrays of the present invention include a write control circuit connected to a RAM array for controlling data input to the RAM array, and a read control circuit connected to a RAM array for controlling data output from the RAM array. Swing buffer mechanism is included. Furthermore, the read and write control circuits are in contact with each other, allowing time-matching adjustment of the RAM array. In addition, each cell can be addressed by a RAM array, a write control circuit in contact with the RAM array via a pair of bit lines, a read control circuit in contact with the RAM array via another pair of bit lines, and a pair of columns to address the RAM There is a swing buffer mechanism having a read column decoder and a write column decoder to allow reading.

[비디오 정보를 저장하기 위한 발명의 상세한 설명][Detailed Invention for Storing Video Information]

비디오 디컴프레션 시스템은 화상정보를 해독하고 표시하는데 쓰이는 세개의 기본부분을 포함한다. 비디오 디컴프레션 시스템의 세개의 주요부분은 공간디코더, 임시디코더 및 비디오 포맷터(video formatter)이다. 본 발명은 임시디코더와 비디오 포맷터 및 이 임시디코더와 비디오 포맷터가 그들 개개의 화상 버퍼(picture buffer)와 이후 프레임 스토어 버퍼(frame store buffer)를 처리하는 방법을 포함하고 있다. MPEG 시스템에서는, 임시디코더에는 두개의 프레임 스토어 버퍼가 있으며 비디오 호맷터에도 두개의 프레임 스토어 버퍼가 있다.The video decompression system includes three basic parts used to decode and display picture information. The three main parts of a video decompression system are the spatial decoder, the temporary decoder and the video formatter. The present invention includes a temporary decoder and video formatter and a method in which the temporary decoder and video formatter process their respective picture buffers and then frame store buffers. In the MPEG system, the temporary decoder has two frame store buffers, and the video formatter also has two frame store buffers.

MPEG는 세개의 다른 화상형(picture types)을 사용한다 : 인트라(Intra) (I), 프리딕티드(Predicted) (P) 및 양방향 보간(Bid inrectionall Interpolated) (B) 화상은 두개의 다른 화상으로 부터의 예측에 근거하고 있다 : 한 화상은 퓨처(future)로 부터 나오고 다른 한 화상은 패스트(past)로 부터 나온다. I 화상은 더 이상 임시 디코더에 의해 디코딩 될 필요는 없지만, 나중에 P와 B 화상을 디코딩할 때 사용하기 위해 두개의 프레임 스토어 버퍼중의 하나에 저장되어야 한다. P화상을 디코딩할 때는 임 디코딩된 P 또는 I화상으로 부터 형예측(forming prediction)이 요구된다. 디코딩된 P화상은 다른 P 및 B화상을 디코딩할 때 사용하기 위해 프레임 스코어버퍼에 저장된다. B화상은 프레임 스토어 버퍼 양쪽으로부터 예측이 가능하다. 그러나 B화상은 프레임 스토어 버퍼에 저장되지 않는다.MPEG uses three different picture types: Intra (I), Predicted (P) and Bid inrectionall Interpolated (B) pictures into two different pictures. Based on predictions from: one picture comes from the future and the other from the past. The I picture no longer needs to be decoded by the temporary decoder, but must be stored in one of two frame store buffers for later use in decoding the P and B pictures. When decoding a P picture, forming prediction is required from the decoded P or I picture. The decoded P picture is stored in the frame scorebuffer for use in decoding other P and B pictures. The B picture can be predicted from both frame store buffers. However, B pictures are not stored in the frame store buffer.

I 및 P화상이 디코딩될 때는 이를 화상은 임시디코더로 부터 출력되지 않음을 알수 있다. 대신에, I 및 P화상은 프레임 스토어 버퍼들중의 하나에 입력되고, 후속 그 또는 P화상이 디코딩을 위해 도착할 때만 출력된다. 달리 말하면, 두개의 화상버퍼로부터 앞의 화상들을 흘러보내기 위해 임시디코더는 후속 P 또는 그 화상에 의존한다. 따라서, 임시디코더의 두개의 프레임 스토어 버퍼를 플러시(flush) 할 필요가 있을때는 본 발명의 공간디코더는 모조 그 또는 P 화상을 제공할 수 있다. 그리고 이 모조화상은 후속 비디오 시퀀스가 시작될 때 흘러 나온다.When I and P pictures are decoded, it can be seen that the pictures are not output from the temporary decoder. Instead, the I and P pictures are input into one of the frame store buffers and only output when the next or P picture arrives for decoding. In other words, the temporary decoder relies on the subsequent P or its picture to flow the preceding pictures from the two picture buffers. Therefore, when it is necessary to flush the two frame store buffers of the temporary decoder, the spatial decoder of the present invention can provide a dummy or P picture. The dummy picture flows out at the beginning of the subsequent video sequence.

표 14에 나와 있는 바와 같이 화상 프레임은 수적인 순서로 표시된다.As shown in Table 14, image frames are displayed in numerical order.

[표 14]TABLE 14

그러나, 임시디코더에 저장되어야 하는 프레임의 수를 줄이기 위해서 프레임들은 서로 다른 순서로 전송된다. 인트라 프레임 (I 프레임)으로 부터 해석을 시작하는 것이 유익하다. I 프레임은 표시되는 순서로 전송된다. 이어서 I 프레임과 P4 프레임 사이에서 표시되는 양방향 보간된 프레임(B 프레임) 즉 Be 와 B3가 전송된다. 따라서 전송된 B 프레임들은 앞 프레임(전향예측) 또는 뒤 프레임(후향예측)을 참조 할 수 있다.However, in order to reduce the number of frames to be stored in the temporary decoder, the frames are transmitted in different orders. It is useful to start the analysis from an intra frame (I frame). I frames are transmitted in the order in which they are displayed. Subsequently, bi-directional interpolated frames (B frames) that are displayed between I frames and P4 frames are transmitted. Therefore, the transmitted B frames may refer to the front frame (forward prediction) or the rear frame (forward prediction).

I와 P4 프레임 사이에 표시되는 모든 B프레임을 전송한 다음에는 P7 프레임이 전송된다. 다음에, P4와 P7 프레임 사이에 표시되는 모든 B 프레임 즉 B5와 B6가 전달된다. 이어서 다음 I 프레임 즉 I10이 전송된다. 결국, P7와 I10 프레임 사이에 표시되는 모든 B프레임 즉 B8와 B9가 전송된다. 전송된 프레임의 이 배열은 단지 두개의 프레임이 언제라도 한번에 임시디코더에 기억될 것이 요구되며, 인터젝팅 B 프레임을 표시하기 위해 다음 P 프레임 또는 I 프레임의 전송을 기다릴 필요는 없다. 이상의 설명과 표 14에서 보는 바와 같이, 본 발명의 임시 디코더는 MPEG 화상 재배열을 제공하도록 구성 할 수 있다. 이와 같은 화상 재배열로, 데이타 스트림(data stream)에 있는 다음 P 또는 I 화상이 임시디코더에 의해 디코딩되기 시작할 때 까지 P와 I 화상의 출력이 지연된다.After all B frames displayed between the I and P4 frames are transmitted, a P7 frame is transmitted. Next, all B frames displayed between P4 and P7 frames, that is, B5 and B6, are transferred. Subsequently, the next I frame, i10, is transmitted. As a result, all B frames that are displayed between P7 and I10 frames, that is, B8 and B9, are transmitted. This arrangement of transmitted frames only requires two frames to be stored in the temporary decoder at any one time, and there is no need to wait for the transmission of the next P frame or I frame to indicate the interacting B frame. As described above and shown in Table 14, the temporary decoder of the present invention may be configured to provide MPEG picture rearrangement. With this picture rearrangement, the output of the P and I pictures is delayed until the next P or I picture in the data stream begins to be decoded by the temporary decoder.

P와 I 화상이 재배열됨에 따라, 어떤 토큰(token) 즉 Picture_Start Picture_Type와 Temporal_Reference는 화상이 화상버퍼에 기록되면서 임시로 칩에 저장된다. 화상이 디스플레이를 위해 읽히면 이를 저장된 토큰들은 부활된다. 임시디코더의 출력시 새로 디코딩된 P 또는 I 화상의 DATA토큰들은 구 P 또는 그 화상을 위한 DATA토큰으로 대체되며, 이어서 비디오 포맷터로 보내진다. 임시디코더로부터의 출력은 tokenizal 매크로 블럭 포맷트에 있으며 블럭-래스터 변환은 없다.As the P and I pictures are rearranged, some tokens, Picture_Start Picture_Type and Temporal_Reference, are temporarily stored in the chip as the picture is written to the picture buffer. When the picture is read for display, the tokens stored there are revived. At the output of the temporary decoder, the DATA tokens of the newly decoded P or I picture are replaced with the DATA tokens for the old P or that picture and then sent to the video formatter. The output from the temporary decoder is in the tokenizal macroblock format and there is no block-raster conversion.

요컨대, 본 발명의 비디오 포맷터는 두개의 프레임 스토어 또는 화상을 저장한다. 어떤 비디오 포맷터에서는 리피팅 또는 스킵팽 화상을 수용하기위해 세개의 화상 또는 프레임스토어가 사용된다. 비디오 포맷티의 오프-칩(off-chip) DRAM은 세개의 프레임스토어를 가지고 있다. 여기서 세개의 프레임스토어를 사용하면 디코딩된 비디오와 디스플레이의 프레임을(frame rate)이 서로 다를 때 프레임이 반복 또는 스킵될 수 있다.In short, the video formatter of the present invention stores two frame stores or pictures. In some video formatters, three pictures or framestores are used to accommodate repeating or skippin pictures. Off-chip DRAM in video format has three framestores. In this case, using three framestores, frames may be repeated or skipped when the decoded video and the display have different frame rates.

모든 I, B 및 P 화상은 비디오 포맷터의 프레임스토어에 저장된다. 언제든지, 데이타가 표시되는 하나의 프레임 스토어와 데이타가 읽히는 하나의 프레임스토어가 있을 수 있으며, 세개의 프레임스토어가 있는 비디오 포맷터에서 다른 하나의 프레임은 세번째 프레임스토어에 저장된다.All I, B and P pictures are stored in the framestore of the video formatter. At any time, there may be one frame store where data is displayed and one frame store from which the data is read, and in the video formatter with three frame stores, another frame is stored in the third frame store.

본 실시예는 MPEG가 통상 두개의 프레임스토어가 각각 있는 임시디코더와 비디오 포맷티를 사용하여 취급하는 예측, 재배열 및 블럭-래스트 태스크(task)를 수행한다. 이것은 단지 세개의 프레임스토어를 사용하는 구조(scheme)를 공유하는 프레임스토어를 사용함으로써 본 발명에서 달성한다. 그러나, 본 실시예는 단지 세개의 프레임스토어만 가지고는 비디오 포맷터의 반복 및 스킵 프레임을 취급하지 못한다.This embodiment performs the prediction, rearrangement, and block-last tasks that MPEG typically handles using a temporary decoder and video format, each having two framestores. This is achieved in the present invention by using a framestore that shares a scheme using only three framestores. However, this embodiment does not handle repetition and skip frames of the video formatter with only three framestores.

본 발명은 그 화상을 제1프레임에 스토어에 저장하고 P 화상은 제2프레임 스토어에 저장한다. 블럭-래스터 변환을 수행할 필요가 있기 때문에, B 프레임은 이하의 상세한 방법으로 제3 프레임스토어에 저장된다. 요구되는 외부 DRAM의 양을 최소화하기 위해 연속 B 프레임이 제3 프레임스토어를 공유하는 구조가 사용된다.The present invention stores the picture in the store in the first frame and the P picture in the second frame store. Since it is necessary to perform block-raster conversion, the B frames are stored in the third framestore in the following detailed manner. In order to minimize the amount of external DRAM required, a structure in which consecutive B frames share a third framestore is used.

B 프레임이 디코딩되면, 제1 및 제2 프레임스토어를 점유하는 이미 디코딩된 두개의 I 또는 P 프레임을 참조할 수도 있다. 디코딩된 B프레임은 제3 프레임스토어에 기록된다. 본 실시예로 프레임스토어가 완전히 채워지기 전에 래스터가 작동할 수 있다. 이 래스터가 프레임스토어가 채워지기 전에 작동을 하기 때문에, 다음 B프레임이 동일한 프레임스토어에 읽혀 앞 프레임의 상부에 있는 래스터가 남겨 놓은 영역을 점유할 수 있다.If a B frame is decoded, it may refer to two already decoded I or P frames occupying the first and second framestores. The decoded B frame is recorded in the third frame store. In this embodiment, the raster can operate before the framestore is completely filled. Since this raster operates before the framestore is filled, the next B-frame can be read into the same framestore to occupy the area left by the raster on top of the previous frame.

프레임스토어가 화상 데이타로 점유되며 새로운 데이타로서 이용할 수 있는 레코드를 보존하기 위해 개개의 프레임스토어는 섹터들로 분리되어 있다. 본 발명에서는 개개의 프레임 스토어가 두개의 필드 스토어로 분리되는데, 각각의 필드 스토어는 N섹터로 이루어지며 여기서 M은 필드에서 블럭행의 갯수이다.The framestore is occupied with picture data and individual framestores are divided into sectors to keep records available as new data. In the present invention, each frame store is divided into two field stores, each field store consisting of N sectors, where M is the number of block rows in a field.

필드화상으로서 코딩된 프레임은 직진적이다. 개개의 연속적인 매크로블럭행은 한 필드 스토어에서 두개의 섹터를 점유한다. 일단 라이트백(write back)이 프레임 밑으로 충분히 진전되면, 레스터가 위에서부터 개개의 섹터를 읽어내기 시작한다. 일단 제1 프레임의 라이트백이 완료되면 다음 프레임이 래스터가 남겨 놓은 영역에 읽혀진다. 개개의 섹터의 상태를 체크함으로써 주사되는 섹터가 완전히 채워지는 지를, 또는 요구되는 두개의 섹터가 라이트백을 위해 비어 있는지를 확인할 수 있다.Frames coded as field pictures are straight. Each successive macroblock row occupies two sectors in one field store. Once the write back has advanced far below the frame, the raster starts reading individual sectors from above. Once the writeback of the first frame is complete, the next frame is read into the area left by the raster. By checking the status of the individual sectors, it is possible to check whether the sectors being scanned are completely filled, or whether the two sectors required are empty for writeback.

프레임 화상으로서 코딩된 프레임은 더 어렵다. 필드화상과는 달리 데이타의 매크로블럭행은 이들이 주사되는 순서대로 DRAM에 읽혀지지 않는다. 필드스토어는 나란히 읽히며 반면에 필드들은 교대로 주사된다.Frames coded as frame pictures are more difficult. Unlike field pictures, macroblock rows of data are not read into DRAM in the order in which they are scanned. Field stores are read side by side while fields are scanned alternately.

한 필드스토어에 8섹터가 있는 화상을 생각하자. 즉, 필드스토어(0)는 0에서 7까지의 8섹터로 이루어지며 개개의 섹터는 블럭의 한 행을 차지한다. (즉 화상의 폭당 8개의 화소) 필드 스토어(1)는 8에서 15까지의 8섹터로 이루어지며 개개의 섹터는 블럭의 한 행을 차지한다. (즉 화상의 폭당 8개의 화소).Consider an image with eight sectors on a field store. That is, the fieldstore 0 is composed of eight sectors from 0 to 7, and each sector occupies one row of the block. (Ie 8 pixels per width of the image) The field store 1 consists of 8 sectors from 8 to 15, with each sector occupying one row of blocks. (I.e. 8 pixels per width of the image).

첫2번째 매크로블럭행은 필드 스토어(0)에 있는 섹터(0)와 필드스토어(1)에 있는 섹터(8)에 다시 읽힌다. 어떤 점에서는 래스터가 필드스토어(0)로 부터 섹터를 표시하기 시작하며 그 점이 선택되기 때문에 필드 스토어(0)의 래스터가 라이트백을 따라잡지 못한다. 그러나, 두번째 프레임은 첫번째 프레임과 동일한 방법으로 다시 기록될 수 없다. 섹터들이 다른 순서로 기록되어 읽히기 때문에, 동일한 두개의 섹터가 프레임의 출발점에서 자유로워지기를 기다리는 것은 기록과 읽기가 연속적으로 일어날 수 없음을 의미한다. 디스플레이를 유지하고 필요한 속도로 디코딩을 유지하기 위해서는 이것을 달성해야한다.The first macroblock row is read back to sector 0 in field store 0 and sector 8 in field store 1. At some point, the raster in the field store (0) does not catch up to writeback because the raster begins to mark sectors from the fieldstore (0) and that point is selected. However, the second frame cannot be recorded again in the same way as the first frame. Since the sectors are written and read in a different order, waiting for the same two sectors to be free at the beginning of the frame means that writing and reading cannot occur consecutively. This must be achieved in order to maintain the display and keep the decoding at the required rate.

따라서 제2프레임은 래스터에 의해 자유로워진 프레임스토어의 섹터에 기록시켜야 한다. 이것은 프레임스토어를 두 부분으로 분리함으로써 이루어진다. 따라서 두번째 프레임에 대해서는 하프(half)필드 스토어의 의미가 변경된다. 섹터(4 ∼ 7)는 두번째 필드스토어의 상부가 되며 섹터(8 ∼ 11)는 첫번째 필드스토의 하부가 된다. 첫번째 매크로 블럭행은 섹터(0) 및 섹터(4)에 기록되며 일단 자유로워지면 이어지는 행들이 섹터(1)과 섹터(5) 그리고 섹터(2)와 섹터(6) 다음에 섹터(3)와 섹터(7)에 기록된다. 다음행이 섹터(8)과 섹터(12)에 기록되며 그리고 섹터(11)와 섹터(15)에 기록된다. 이 메모리의 재배열은 라이트백과 래스터가 적절한 속도로 지속되도록 하기에 충분하다.Therefore, the second frame must be recorded in the sector of the framestore freed by the raster. This is done by splitting the framestore into two parts. Therefore, the meaning of the half field store is changed for the second frame. Sectors 4 to 7 become the upper part of the second field store and sectors 8 to 11 become the lower part of the first field store. The first macro block row is written to sector (0) and sector (4) and once free, subsequent rows are sector (1) and sector (5) and sector (2) and sector (6) followed by sector (3) and It is recorded in the sector 7. The next row is recorded in sectors 8 and 12 and in sectors 11 and 15. This rearrangement of memory is sufficient to ensure that the writeback and raster persist at a reasonable rate.

제3 연속 B 프레임이 도달하면 라이트백 순서는 첫번째 프레임의 라이트백 순서로 복귀한다.When the third consecutive B frames arrive, the writeback order returns to the writeback order of the first frame.

공유되는 B 프레임 스토어에서, FRAME 화상으로 :In the shared B frame store, as a FRAME picture:

FIRST 화상은 섹터(0)와 섹터(8)에 다시 기록된다. [제1 매크로블럭행 = 2 블럭행(block row)]The FIRST image is recorded in sector 0 and sector 8 again. [First macroblock row = 2 block rows]

다음에 1과 9, 2와 10, 3과 11, ..., 7과 15에 기록된다. FIRST 화상은 섹터(0)로부터 레스터되고, 이어서 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15로 부터 래스터된다.Then it is written in 1 and 9, 2 and 10, 3 and 11, ..., 7 and 15. The FIRST picture is rasterized from sector 0 and then rasterized from 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

SECOND 프레임은 섹터(0)와 섹터(4)에 기록되고, 이어서 1와5, 2와6, 3와7, 8와12, 9와13, 10와14, 11와15에 기록된다.SECOND frames are recorded in sectors 0 and 4, and then in 1'5, 2'6, 3'7, 8'12, 9'13, 10'14, 11'15.

SECOND 프레임은 섹터(0)로부터 레스터되고 이어서 1, 2, 3, 8, 9, 10, 11, 4, 5, 6, 7, 12, 13, 14, 15에 기록된다.SECOND frames are rasterized from sector 0 and then written to 1, 2, 3, 8, 9, 10, 11, 4, 5, 6, 7, 12, 13, 14, 15.

본 발명에 따르면, 두번째 프레임과 첫번째 매크로블럭행은 섹터(0)와 섹터(1)에 기록되지 않는데 결국 처음 두개 섹터는 래스터를 받지 않는다. 대신에 섹터(4)가 밝아지기를 기다린다. 이것은 다음과 같은 두가지 이유로 행해진다 : 첫번째는, 섹터(4)가 밝아지기를 기다리는 것은 최악의 코딩된 데이타의 경우에도 연속적인 디코딩과 디스플레이를 유지시키는 시스템의 능력에 영향을 주지 않으며 실행하기도 쉽다. 두번째는, 두개의 파워가 아닌 다수의 섹터로 분리되는 화상 사이즈로 메모리 섹터에 입력하고 또한 이로부터 읽는 과정은 자주 반복되지 않는다(예컨대, NTSC 포맷은 필드당 30섹타를 가지며 시이퀀스는 58프레임마다 반복된다). 이것은 검사성(testability)과 회복을 어렵게 만든다.According to the present invention, the second frame and the first macroblock row are not recorded in sector 0 and sector 1, so that the first two sectors are not rasterized. Instead, it waits for the sector 4 to light up. This is done for two reasons: First, waiting for sector 4 to light up is easy to implement and does not affect the system's ability to maintain continuous decoding and display even in the case of worst coded data. Secondly, the process of entering and reading from a memory sector with a picture size that is divided into multiple sectors rather than two powers is often not repeated (e.g. NTSC format has 30 sectors per field and sequence is every 58 frames). Is repeated). This makes testability and recovery difficult.

본 발명의 실시예 대해서는 개개 섹터의 상태에 대한 레코드를 보존하기 보다는 기록되는 읽히는 다음 위치에 대한 포인터로 하프필드스토어가 피포(fifo)로서 효과적으로 수행된다. 따라서 개개의 피포가 채워지거나 비워지면 라이트백과 래스터는 불가능하게 된다. 이것은 개개의 하프필드스토어가 피포처럼 단지 한방향으로 기록되고 읽힌다는 사실을 이용하고 있다.In an embodiment of the present invention, a halffield store is effectively performed as a fifo with a pointer to the next position to be read, rather than keeping a record of the state of the individual sectors. Thus, once the individual envelopes are filled or emptied, lightback and raster are impossible. This takes advantage of the fact that individual half-field stores are written and read in just one direction, like Pippo.

요컨대, 본 발명은 비디오 정보를 I Frame, P Frame, B, Frame 및 B2 Frame형태로 제공하고 I Frame을 첫번째 프레임 스토어에 P Frame을 두번째 프레임에 저장함으로써 비디오 정보를 저장하는 방법을 제공한다 ; 첫번째와 두번째 필드 스토어를 갖는 세번째 프레임을 제공하고 첫번째와 두번째 필드 스토어를 적어도 두개의 메모리 영역으로 각각 분할하며 B, Frame을 세번째 register에 저장하고 첫번째 또는 두번째 필드 스토어에 있는 메모리영역의 선택된 부위로 부터 B, Frame을 읽는다 ; B, Frame이 읽어지는 메모리영역의 선택된 부위에 B2 Frame 부위를 기록한다 ; 따라서 감소된 메모리용량으로 비디오 정보를 저장할 수 있다.In short, the present invention provides a method of storing video information by providing video information in the form of I Frame, P Frame, B, Frame and B2 Frame and storing the I Frame in the first frame store in the second frame; Provide a third frame with the first and second field stores, split the first and second field stores into at least two memory regions, respectively, store B and Frame in the third register, and then select from the selected portion of the memory region in the first or second field stores. B, read Frame; B, write the B2 Frame part in the selected part of the memory area where the Frame is read; Thus, video information can be stored with a reduced memory capacity.

이하 두개의 프로그램은 본 발명의 바람직한 실시예서 사용되는 코드(Code)를 가지고 있다.The following two programs have Code used in the preferred embodiment of the present invention.

[병렬 허프만 디코더(Parallel Huffman Decoder)에 대한 발명의 상세한 설명][Detailed Description of the Invention for Parallel Huffman Decoder]

본 발명에 따르면, 병렬 허프만 디코더는 Huffman 코딩된 Variabre Length Code ( V L Cs ) 와 Fixed Length Codes ( F L Cs ) 를 디코딩하며, 파저 ( Parser ) 마이크로프로그래머블 상태 기계 ( MSM ) 의 제어를 받으면서 토큰을 통과한다.According to the present invention, the parallel Huffman decoder decodes Huffman coded Variabre Length Codes (VL Cs) and Fixed Length Codes (FL Cs), and passes the tokens under the control of a Parser microprogrammable state machine (MSM). .

본 발명의 실시예는 MPEG - 2 와 MPEG - 1 허프만 코드를 취급한다. 본 발명 실시예의 한 중요한 양태는 직렬 대코드 대신에 병럭 디코더이기 때문에 높은 처리량 ( throng - put ) 을 지지할 수 있다.Embodiments of the present invention deal with MPEG-2 and MPEG-1 Huffman codes. One important aspect of the embodiments of the present invention is that it can support high throughput (throng-put) because it is a parallel decoder instead of serial large code.

본 발명의 실시예는 허프만 코드들을 디코딩하기 위해 코드 룩업기술 ( code lookup technique ) 을 사용한다. 이것은 수행요구를 달성하기 위해 또한 본래 불규칙적인 즉 표준화되지 않은 제2 MPEG-2 변형계수 표를 취급하기 위해 행해진다.An embodiment of the present invention uses a code lookup technique to decode Huffman codes. This is done to fulfill the performance requirements and also to handle the second irregular MPEG-2 transform coefficient table which is inherently irregular, i.e. not standardized.

또한, 본 발명의 실시예는 다음과 같은 특징이 있는데, 즉 외부 제어기의 도움없이 단일 사이클 스트림으로 부터 더 복잡한 요소들의 예로서는 Escape - coded 계수, Intra-DC 값 및 Motion Vector 델타 (delta)를 들 수 있으며, 이들 모두는 복합 VLC/FLC 요소로서 스트림에 존재한다.In addition, embodiments of the present invention have the following characteristics, i.e., examples of more complex elements from a single cycle stream without the aid of an external controller include Escape-coded coefficients, Intra-DC values and Motion Vector deltas. All of which are present in the stream as complex VLC / FLC elements.

지금 제52도를 참조하면 이 도면에는 병렬 허프만 디코더 300 가 다양한 길이의 코드 ( VLCs ) 를 처리하는 방법이 도시되어 있다. FLCs는 데이타를 발생시키고 FLC의 길이를 명시하기 위해서 각각 셀렉터 301 출력과 입력 필드를 사용하는 바이패스 메카니즘을 필요로 한다. 그러므로 FLC 디코딩동안 ROM 302는 필요치 않다.Referring now to FIG. 52, this diagram shows how the parallel Huffman decoder 300 processes codes of various lengths (VLCs). FLCs require a bypass mechanism that uses selector 301 outputs and input fields, respectively, to generate data and specify the length of the FLC. Therefore, ROM 302 is not needed during FLC decoding.

명칭이 암시하듯이 “earlier” 즉 가장 중요한 데이타는 MSReg 저장된다. 다음 VLC 의 시작은 ROM 입력과 맞추기 위해 셀렉터(selector)가 사용된다. 따라서, 가장 먼저 나오는 VLC를 디코딩하기 위해 셀렉터는 59 비트 입력중에서 탑 28 비트를 출력하고 이들중 탑 16 비트는 Huffman Code ROM 302에 보내진다. 후속 VLCs에 대해서는 셀렉터는 지금까지 디코딩된 비트의 토탈 카운트에 따라 입력을 효과적으로 바꾼다. 이 카운트는 VLC에 추가함으로써 이루어진다. 디코딩될 수 있는 최대 코딩 사이즈의 결과로 다양한 워드폭 ( word width ) 이 생기며, 이 최대 사이즈는 28 비트 MPEG-1 Escape Coded Coefficient 이며 16 비트가 최대 VLC 사이즈다 ( DCT 계수표 ).As the name suggests, the "earlier" or most important data is stored in MSReg. The start of the next VLC is used with a selector to match the ROM input. Thus, to decode the first VLC, the selector outputs the top 28 bits of the 59 bit input, of which the top 16 bits are sent to Huffman Code ROM 302. For subsequent VLCs, the selector effectively changes the input according to the total count of bits decoded so far. This count is made by adding to VLC. As a result of the maximum coding size that can be decoded, there are various word widths, which are 28 bits MPEG-1 Escape Coded Coefficient and 16 bits the maximum VLC size (DCT coefficient table).

“table select” 입력은 MPEG에서 요구되는 다양한 허프만 코드 표 사이에서 선택하기 위해 사용된다.The “table select” input is used to select between the various Huffman code tables required by MPEG.

[허프만 Coed ROM][Huffman Coed ROM]

모든 VLCs 를 디코딩하기 위해 사용되는 본 발명의 수행의 핵심은 특별 ROM 302 인데 이 ROM 302 의 어드레스는 제52, 53도에 도시된 셀렉터/시프터 301로 제어된다. ROM 302 은 VLC 표 인덱스 계산을 수행하고 이어서 디코딩된 데이타를 산출하는 인덱스-데이타 작업을 수행한다.The key to the practice of the present invention used to decode all VLCs is a special ROM 302 whose address is controlled by the selector / shifter 301 shown in FIGS. ROM 302 performs VLC table index calculations and then performs index-data operations to yield decoded data.

인덱스 계산은 표시된 데이타를 형성하는 허프만 코드를 취급하기 위해 수행되는 “dont care” 맷칭과의 컨텐트 어드레서블 메모리 ( CAM ) 작업으로 생각할 수 있다. 모든 VLC 코드 표가 고정되어 있기 때문에, CAM-ROM은 충분할 것이며 이것은 제54∼57도에 도시된 ROM AMD-plane의 임무이다. 인덱스 발생이 룩업(look-up) 방식 (다소 연산방식으로) 이루어지기 때문에 불규칙한 표를 취급하는 데 제약이 없다.Index calculation can be thought of as a Content Addressable Memory (CAM) operation with “dont care” formatting performed to handle Huffman code forming the displayed data. Since all VLC code tables are fixed, the CAM-ROM will be sufficient and this is the task of the ROM AMD-plane shown in Figures 54-57. There are no restrictions on the handling of irregular tables because index generation is look-up (somewhat computational).

ROM Or - plane 은 “index” (활성화된 워드선 (word-line))을 디코팅된 데이타와 코드의 크기(즉 길이)로 변환한다. 데이타는 (에러체킹을 받는) 디코팅된 출력을 형성하며, 셀렉터를 제어하며 ROM 302이 후속 사이클에서 다음 VLC의 디코딩을 수행하도록 이에 정확한 데이타를 제공하는 계산이 수행되도록 사이즈 정보가 피드백된다.ROM Or-plane converts an “index” (enabled word-line) to the size (ie length) of the decoded data and code. The data forms a decoded output (error-checked), and the size information is fed back so that a calculation is performed that controls the selector and provides accurate data to the ROM 302 to perform decoding of the next VLC in subsequent cycles.

본 발명의 ROM 302 어드레스는 두개의 필드에 있다. 큰 필드는 디코딩되는 비트-패턴이며 작은 필드는 검사되는 허프만 코드 표를 선택한다. 검사되어야 할 비트패턴은 가장 긴 VLC 코드에 대응하는 16 비트이며, 표 셀렉트의 추가적인 4비트가 있다. 따라서, 비록 ROM 302에 단지 450 엔트리가 있지만 20 비트의 전어드레스 영역(약 100만 어드레스)이 있다. 상이한 이유는 “don′t care” 비트에 기인한다.The ROM 302 address of the present invention is in two fields. The large field is the bit-pattern to be decoded and the small field selects the Huffman code table to be examined. The bit pattern to be checked is 16 bits corresponding to the longest VLC code, with an additional 4 bits of the table select. Thus, although there are only 450 entries in ROM 302, there is a 20-bit full address area (a million addresses). The different reason is due to the “don't care” bit.

VLCs 를 디코드하기 위해 AND-plane 은 VLC 비트패턴에서 “don′t care” 비트를 디코팅할 수 있어야 한다. 이것은 최대 18 비트 보다 짧은 모든 VLCs 에 이어 VLC의 디코딩부를 형성하지 않는 추가적인 비트가 뒤따르기 때문이다. 와이드 어드레스 때문에 AND-plane은 미리 디코딩되며 (2 → 4) ROM 302 은 “don′'t care” 핸들링을 이 프리디코드와 결합시켜야한다. 또한 완전한 MPEG 코드 표 외에, ROM 302도 역시 불명료한 VLC 패턴을 확인하는 엔트리를 가지고 있으며 이 VLC 패턴 몇몇 코드 표를 위해 존재한다.To decode VLCs, the AND-plane must be able to decode the “don't care” bit in the VLC bit pattern. This is because all VLCs shorter than a maximum of 18 bits are followed by additional bits that do not form the decoding portion of the VLC. Because of the wide address, the AND-plane is decoded in advance (2 → 4) and ROM 302 must combine “don't care” handling with this predecode. In addition to the full MPEG code table, the ROM 302 also has an entry that identifies an ambiguous VLC pattern and exists for some code tables of this VLC pattern.

[처리량(Throughput)의 극대화][Maximum Throughput]

매 사이클시 한개의 디코딩된 항목의 출력을 유지하기 위해 디코더 입력을 제어하기 위해 몇몇 캐어(care)를 선택해야 하며 몇몇 “complex” 심벌 (예컨대 싱글 FLCs 또는 VLCs 가 아닌 심벌)을 위해 특별한 취급이 필요하다.Some care must be selected to control the decoder input to maintain the output of one decoded item at each cycle and special handling is required for some “complex” symbols (eg symbols other than single FLCs or VLCs). Do.

Escape-coded 계수의 피크 스루풋을 유지하기 위해서는 사이클당는 적어도 하나의 완전한 코드를 입력할 수 있어야 한다. MPEG-1에서 요구되는 최대길이가 28 비트이기 때문에 32 비트(28보다 큰 감지가능한 크기임)의 입력 워드폭을 지시한다.In order to maintain peak throughput of escape-coded coefficients, at least one complete code must be entered per cycle. Since the maximum length required in MPEG-1 is 28 bits, it indicates an input word width of 32 bits (a detectable size larger than 28).

레벨값의 신로를 주며 다른 복잡한 심벌(예컨대 모션벡터, 인트라 DC 및 Escape 코팅된 계수)와 유사한 방식으로 취급되는 1 비트 FLC 가 따르는 VLC로 노말 변형계수가 이루어지기 때문에 이 계수 역시 “complex” 심벌이다. 계수들이 FLC(개별적인 사이클에서)가 뒤따르는 VLC로서 디코딩되면 피크 스르우풋은 달성될 수 없으며, ROM 302 이 신호비트를 디코딩할 수 있으면 ROM에 두개의 가장 큰 표의 크기를 두배로 크게 할 수 있다. 따라서 본 발명에서는, 다양한 심벌을 위해 특별 핸들링이 사용되기 때문에 단일 사이클로 최종적으로 요구되는 결과를 얻을 수 있다.This coefficient is also a “complex” symbol because the VLC is followed by a 1-bit FLC that gives the level of the path and is treated in a similar manner to other complex symbols (eg motion vectors, intra DC and Escape coated coefficients). . If the coefficients are decoded as VLC followed by FLC (in individual cycles), peak throughput cannot be achieved, and if ROM 302 can decode the signal bits, then the size of the two largest tables in ROM can be doubled. Thus, in the present invention, special handling is used for the various symbols, resulting in the final required result in a single cycle.

[FLCs 와 토큰(Token)][FLCs and Tokens]

FLC 핸들링의 기본은 FLC의 요구되는 길이를 갖는 셀렉터를 제어하며 또한 ROM 302을 우회시켜 정확히 선택된 FLC를 간단히 출력하는 것이다. 따라서, 중요한 별도의 하드웨어가 없이 디코더로 간단한 FLCs 를 자연스럽게 취급할 수 있다. 또한 토큰은 조작되지 않지만 디코더의 출력에 직접적으로 간단히 전달된다.The basics of FLC handling are to control the selector with the required length of the FLC and to simply output the correctly selected FLC by bypassing the ROM 302. Thus, simple FLCs can be handled naturally with decoders without significant extra hardware. Also tokens are not manipulated but simply passed directly to the output of the decoder.

[실행 (Implementation)][Implementation]

이 부분에서는 본 발명에 따라 디코더의 실행에 대한 몇개의 중요한 특징들을 설명한다. 실행에서는 제52도에 도시되어 있는 바와 같이 카운터(303), 셀렉터(301), 및 현행 코드 ROM으로 레지스터를 배열하는 것을 포함한다.This section describes some important features of the implementation of the decoder in accordance with the present invention. Execution involves arranging registers in the counter 303, the selector 301, and the current code ROM, as shown in FIG.

제53도의 개략도는 본 발명의 메인 허프만 디코딩 코어 섹션을 실행하기 위해 코어요소들이 어떻게 상호연결되어 있는가를 보여주고 있다. 레지스터 ms [31 : 0] 과 ls [31 : 0]는 각각 MSReg 와 LSReg이며, 블럭 phselect 는 셀렉터이다. 카운터 로직(counter logic)은 (다른 다양한 로직과 함께) 불럭 phcclog에 수용되어 있으며 가운터 랫치(latch)는 cntl [4 : 0]이라 한다. 이 도면에 나와 있는 다른 로직은 핸들링 커멘드, 데이타, 커멘드 다이나믹스 및 (블럭 phcop에서 수행되는) 더 복잡한 심벌에 대한 조작을 처리한다.The schematic diagram of FIG. 53 shows how the core elements are interconnected to implement the main Huffman decoding core section of the present invention. Registers ms [31: 0] and ls [31: 0] are MSReg and LSReg, respectively, and the block phselect is the selector. Counter logic is contained in the phcclog (along with various other logic) and the latch is called cntl [4: 0]. Other logic shown in this figure handles handling commands, data, command dynamics, and manipulation of more complex symbols (performed by block phcop).

제54도에는 본 발명에 따른 허프만 코드 ROM 302을 실행하기 위해 사용되는 매우 작은 샘플 ROM 구성이 도시되어 있다. 이 ROM 302의 유용한 특징은, 가변길이 허프만 코드를 디코딩하는 방법을 실행하기 위해 프리디코드와 “don′t care” 가 사용되는 AND-plane에 있다.54 shows a very small sample ROM configuration used to implement the Huffman code ROM 302 according to the present invention. A useful feature of this ROM 302 is the AND-plane where predecode and “don't care” are used to implement the method of decoding variable length Huffman codes.

지금부터 제55∼57도를 참조하며 특히 제55도를 참조하면 “don′t care” 핸들링을 할 수 있는 ROM AND-plane의 제1실시예가 도시되어 있다. 이 실시예에서, 개개의 어드레스 라인(a[3], a[2], a[1], 및 a[0])이 정방향과 역방향 양쪽으로 AND-plane 을 횡단한다. 주어진 어드레스 라인에서 “one” 또는 “zero” 를 디코팅하기 위해 트랜지스터가 종래의 방법대로 정 또는 역 어드레스 라인에 연결된다. “don′t care” (X로 표시됨)를 디코딩하기 위해서 트랜지스터를 정 또는 역 라인에 접속하지 않는다.Reference is now made to Figs. 55-57 and particularly Fig. 55 is shown a first embodiment of a ROM AND-plane capable of "don't care" handling. In this embodiment, individual address lines a [3], a [2], a [1], and a [0] traverse the AND-plane in both the forward and reverse directions. Transistors are connected to the positive or reverse address lines in a conventional manner to decode "one" or "zero" at a given address line. To decode “don't care” (marked with X), do not connect the transistor to the positive or reverse line.

제56, 57도에는 디코딩 로직에서 직렬 트랜지스터의 갯수를 줄이기 위해 프리디코팅을 이용하는 다른 실시예가 도시되어 있다. 이들 실시예에서 두개의 어드레스 비트로 표시될 수 있는 네개의 가능한 숫자 각각을 위해 네개의 라인중의 하나가 높이 움직이도록 두개의 어드레스 비트가 프리디코딩에서 서로 결합된다. 본 발명은 그 비트 이상이 서로 결합하는 프리디코딩의 고레벌로도 동일하게 잘 작동함을 당기술에 대한 통상적인 지식이 있는 사람은 알 수 있다. 프리디코딩에서 서로 결합되어 있는 두개의 어드레스 비트가 값을 정의하면 (1 또는 zero, 그러나 “don′t care”는 아님), 트랜지스터가 종래의 방법대로 적절한 프리디코딩된 어드레스 라인에 접속된다. 그러나, 어드레스 비트중의 하나가 정의된 값(1 또는 zero)을 가질 필요가 있고 반면 다른 어드레스 비트는 “don′t care”가 필요하다면, 두개의 프리디코팅된 어드레스 하인중 어느 하나가 액티브 상태일때 Or-plane 을 횡단하는 워드라인을 선택하는 것이 디코딩시 필요하다. 제56도의 실시예에서, 이것은 두개의 트랜지스터를 설치함으로써 이루어지는데, 코드의 경우처럼 관련되는 프리디코딩된 어드레스 라인 각각에 병렬로 설치한다; 001. 제57도의 실시예에서는 요소되는 디코딩은 트랜지스터의 병렬접속을 사용함이 없이 이루어진다. 이경우 선택되어야 하는 두개의 개별적인 디코드가 수행된다. 워드라인이 두개의 셀렉트가 액티브 상태 일때 작동되도록 디코드가 워드라인 드라이버에서 NOR 게이트를 사용해 결합한다.56 and 57 illustrate another embodiment of using predecoding to reduce the number of series transistors in the decoding logic. In these embodiments, two address bits are combined with each other in predecoding so that one of the four lines moves high for each of the four possible numbers that can be represented by the two address bits. It will be appreciated by those skilled in the art that the present invention works equally well with the high level of precoding in which more than one bit is coupled to each other. If two address bits that are coupled to each other in predecoding define a value (1 or zero, but not “don't care”), the transistor is connected to the appropriate predecoded address line in a conventional manner. However, if one of the address bits needs to have a defined value (1 or zero) while the other address bit needs “don't care”, when either of the two predecoded address servants is active It is necessary to select a wordline that crosses the or-plane during decoding. In the embodiment of Fig. 56, this is done by installing two transistors, which are placed in parallel on each of the associated predecoded address lines as in the case of code; 001. In the embodiment of Fig. 57, elemental decoding is done without using parallel connection of transistors. In this case, two separate decodes to be selected are performed. Decode is combined using a NOR gate in the wordline driver so that the wordline is activated when two selects are active.

당기술에 통상의 지식이 있는 사람이 본 발명의 특징, 목적 및 이점을 염두에 두고 본 발명을 실시할 수 있도록 이상의 내용에서 본 발명의 전체적인 개념, 시스템 실행 및 다양한 작동 양태등이 충분히 상세하게 설명되었으리라 믿는다. 그러나, 본 발명의 더 완전한 이해와 상업적인 실행과 관련한 추가적인 상세한 내용은 다음의 다른 상세한 설명을 참조한다.The overall concept, system implementation and various operating aspects of the present invention are described in detail above so that a person skilled in the art may carry out the present invention with the features, objects, and advantages of the present invention in mind. I believe it would have been. However, for further details relating to a more complete understanding and commercial practice of the invention, see the following detailed description.

본 발명의 시스템에 대한 다음의 더욱 상세한 설명은 아래에 기재된 표제하에 편성, 명확성 및 설명의 편리를 위해 기술한다.The following more detailed description of the system of the present invention is described for ease of organization, clarity, and description, under the headings set forth below.

개요summary

스타트 코드 디텍터Start code detector

파저(Parser)Parser

공간 프로세싱Spatial processing

예측(Prediction)Prediction

디스플레이 회로Display circuit

병렬 스타트 코드 디텍터(SCDP)Parallel Start Code Detector (SCDP)

입력 피포(Input Fifo)Input Fifo

스타트 코드Start code

비트 스터핑의 제거Elimination of Bit Stuffing

탐색 모드Navigation mode

비정렬 스타트 코드Unaligned Start Code

오버랩핑 스타트 코드Overlap Start Code

비인식 스타트 코드Unrecognized Start Code

확장 및 사용자 데이타Extension and User Data

PICTUIE_END 토큰의 삽입Insertion of PICTUIE_END Token

화상 인터럽트 후의 정지(Stop)Stop after picture interrupt

discall_alldiscall_all

억세스 비트Access bits

SCDP에 의해 인식된 토큰Token recognized by SCDP

SCDP 메모리 맵(map)SCDP memory map

실행(Implementation)Implementation

코딩된 데이타 버퍼 주위의 데이타 흐름Data flow around coded data buffers

작동 이론Working theory

불연속성discontinuity

스타트 업(Start-up)Start-up

실시예Example

하드웨어hardware

타임 스탬프 정보의 MSM 핸들링MSM Handling of Time Stamp Information

스타트 업Start up

MSM 타임 스탬프 에러코드MSM time stamp error code

30 Hz에 대한 지원Support for 30 Hz

서언(Introduction)Introduction

상태기계(Start Machine)Start Machine

점프 및 콜(Jump and Calls)Jump and Calls

인터럽트 및 에러(Interrupt and Error)Interrupt and Error

점프 어드레스Jump address

상태기계 내부 지령State machine internal command

상태기계 테스팅State Machine Testing

상태기계 유코드 맵(Ucode map)State machine Ucode map

상태기계 유코드 워드State Machine Ucode Word

산술 코어(Arithmetric Core)Arithmetric Core

변환 블럭Transformation block

캐리 블럭(Carry block)Carry block

ALU코어ALU Core

ALU 유코드 워드ALU Ucode Word

ALU의 사용Use of ALU

레지스터 파일Register file

레지스터 파일 레지스터 타입Register file register type

레지스터 파일 레스 맵Register fileless map

레지스터 파일 유코드 워드Register file CODE word

토큰 포트(Token Port)Token Port

토큰 포트 유오드 워드Token Port Uod Word

멀티플렉서Multiplexer

UPI메모리 맵UPI memory map

서언Preface

기능 설명detail of fuction

타이밍에 대한 요구Demand for timing

마이크로 프로세서 인터페이스 억세스Microprocessor Interface Access

서언Preface

인터페이스interface

기능 설명detail of fuction

비정형 토큰(Mal-formed tokens)Mal-formed tokens

지그-재그 스캔 경로Zig-zag scan path

래스터 스캔 순서Raster Scan Order

마이크로 프로세서 인터페이스 억세스Microprocessor Interface Access

서언Preface

프레임 화상에서의 예측Prediction on Frame Images

프레임에 근거한 예측Frame based prediction

필드에 근거한 예측(프레임 화상에서)Field based prediction (in frame pictures)

이중 프라임 (프레임 화상에서)Double prime (in frame picture)

필드화상에서의 예측Prediction on Field Images

필드에 근거한 예측Field based prediction

16×8MC16 × 8MC

필드화상에서의 이중 프라임Double prime in field image

전반적인 구성Overall composition

수평 Up샘플러Horizontal Up Sampler

서언Preface

4:3 Up샘플링4: 3 Up Sampling

3:2 Up샘플링3: 2 Up Sampling

2:1 Up샘플링2: 1 Upsampling

경계 효과(Boundary Effects)Boundary Effects

출력펠(output pel)의 갯수Number of output pels

위치 신호Location signal

승산된 데이타(Multiplexed data)Multiplexed data

수평 정렬Horizontal alignment

Up샘플링비Up Sampling Ratio

비디오 타이밍 발생기Video timing generator

서언Preface

수평 타이밍Horizontal timing

수직 타이밍 PALVertical timing PAL

수직 타이밍 NTSCVertical timing NTSC

VTG구조VTG Structure

수평 머신Horizontal machine

수직 머신Vertical machine

하드 와이어 배선된 컴패러터 설계Hard Wired Comparator Design

출력 멀티플렉서Output multiplexer

보더 발생(Border generation)Border generation

수직 보더Vertical border

UPI제어UPI Control

출력 멀티플렉스Output multiplex

[개요][summary]

이 상세한 설명은 본 발명을 전체적인 칩(chip)으로서 다룬다. 제58도에는 시스템의 하이 레벨 블럭도가 도시되어 있다. 이어지는 부분에서는 더 상세한 블럭도를 제공하기 위해 개개의 블럭이 전개되어 있다.This detailed description deals with the invention as an overall chip. 58 shows a high level block diagram of the system. In the sections that follow, individual blocks are developed to provide more detailed block diagrams.

본 설명은 회로의 다양한 기능을 가진 블럭들 사이의 모든 인터페이스에 대한 정보를 제공한다. 이것은 개개의 블럭이 그가 제공해야 할 인터페이스에 대한 완전 지식을 가지고 구성되도록 해야 한다.This description provides information on all the interfaces between the various functional blocks of the circuit. This should ensure that each block is constructed with full knowledge of the interface he has to provide.

제58도에 도시되어 있는 바와 같이 기본 시스템의 구성요소에는 클럭발생기(350), 스타트 코드 감지기(201), 파저(parser)(202), 마이크로프로세서 인터페이스(320), 메모리제어 보조시스템(352), 공간 프로세싱 시스템(351), 예측보조시스템(208) 및 디스플레이(355)가 있다. 제58도는 또한 여러 시스템 구성요소들 사이에서 일어나는 인터페이스를 도시하고 있다.As shown in FIG. 58, components of the basic system include a clock generator 350, a start code detector 201, a parser 202, a microprocessor interface 320, and a memory control assistance system 352. , Spatial processing system 351, prediction assistance system 208, and display 355. 58 also illustrates the interface that occurs between the various system components.

[스타트 코드 감지기][Start code detector]

제59도는 스타트 코드 감지기(201)(SCD)가 본 발명에 따라 시스템회로의 다른 블럭들과 인터페이스를 하는 것을 보여주고 있다.Figure 59 shows the start code detector 201 (SCD) interfaces with other blocks of the system circuit in accordance with the present invention.

SCD(201)는 세개의 개별 기능을 제공하는 것으로 생각할 수 있다. 첫번째로, SCD(201)는 데디케이티드 핀(dedicated pin) 또는 MPI(320)으로 부터 데이타를 받는 입력회로를 제공한다. 두번째는, SDC(201)는 데이타에서 스타트 코드를 발견하며, 세번째로 유입하는 데이타를 코드디드 데이타 버퍼(CDB)(321) 내부에서 사용되는 포맷안으로 결집하는 필요한 회로를 제공한다.SCD 201 can be thought of as providing three separate functions. First, the SCD 201 provides an input circuit for receiving data from a dedicated pin or MPI 320. Secondly, the SDC 201 finds a start code in the data and provides the necessary circuitry to assemble the third incoming data into a format used within the coded data buffer (CDB) 321.

[파서][Parser]

제60도는 본 발명에 따라 파서 보조시스템을 도시하고 있다. CDB(321)를 위해 포맷된 데이타는 언팩킹(unpacking)되어 MPI(320)로 부터 명령을 받는 파서로 보내진다. 이후 데이타는 2-와이어(two-wire) 인터페이스를 통해 시스템의 나머지 부분으로 보내진다.60 shows a parser assistance system in accordance with the present invention. Data formatted for CDB 321 is unpacked and sent to the parser receiving commands from MPI 320. The data is then sent to the rest of the system via a two-wire interface.

[공간 프로세싱][Spatial processing]

제61도는 공간 프로세싱 회로의 구성요소들을 도시하고 있다. 이들 구성 요소에는 인버스 모델러(Imodel)(325), 인버스 지그-재그(IZZ)(326), 및 인버스 모델러(Iquant)(327) 그리고 인버스 디스크리트 코사인 트랜스퍼(IDCT)(328)이 있다. 데이타는 Imodel(325)내로 전달되고 이어서 IZZ(326)에 다음에 Iquant(327), 그리고 IDCT(328)에 전달된다.61 shows the components of the spatial processing circuit. These components include inverse modeler (Imodel) 325, inverse zig-zag (IZZ) 326, and inverse modeler (Iquant) 327 and inverse discrete cosine transfer (IDCT) 328. The data is passed into Imodel 325 and then to IZZ 326 followed by Iquant 327 and IDCT 328.

[디스플레이 회로][Display circuit]

제62도에는 본 발명의 디스플레이 회로가 도시되어 있다. 이 시스템은 수직 업샘플러(vertical upsampler)(210), 수평 스케일 보조시스템 (331), 출력 멀티플렉스(332) 및 비디오 타이밍 발생기(333)은 포함한다.62 shows a display circuit of the present invention. The system includes a vertical upsampler 210, a horizontal scale auxiliary system 331, an output multiplex 332 and a video timing generator 333.

[병렬 스타트 코드 감지기][Parallel Start Code Detector]

본 발명에 따른 스타트 코드 감지기(201)는 병렬 스타트 코드 감지기로서 즉 데이타를 병렬로 통과한다. 이 시스템은 전에 개시된 영국 특허출원 제 9405914.4 (1994. 3. 24.에 출원)호 및 EPO 특허출원 제 92306038.8 (1992. 6. 30에 출원) (이후로는 “Brolly”) 호의 시스템과 유사하다. 그러나 두개의 스타트 코드 감지기 사이에는 몇몇 주요차이점이 존재한다. 먼저, 바이트 정렬이 상정된다. 본 발명에서는 스타트 코드를 찾기 위한 데이타의 이동이 없다. 두번째는, 본 발명은 기본적으로 MPEG 데이타를 차지한다.The start code detector 201 according to the invention is a parallel start code detector, ie it passes data in parallel. This system is similar to the systems of the previously disclosed UK patent application No. 9405914.4 (filed March 24, 1994) and EPO patent application 92306038.8 (filed June 30, 1992) (hereinafter “Brolly”). However, there are some major differences between the two start code detectors. First, byte alignment is assumed. In the present invention, there is no movement of data to find the start code. Secondly, the present invention basically occupies MPEG data.

MPEG (1과2) 스타트 코드 프로픽스로 알려진 비트 스트림에서 단일비트(바이트 패턴)으로 이루어진다. 패턴은 하나가 따르는 23 제로이다. 스타트 코드 프리픽스를 따르는 8비트는 스타트 코드 값으로 알려져 있다. 이것은 스타트 코드의 형을 지시한다. 본 발명의 SCD에 도달하는 스타트 코드의 형을 지시한다. 본 발명의 SCD에 도달하는 스타트는 바이트 정렬이될 필요가 있다. 따라서 위의 데이타르 바이트 시이퀀스로도 특정화할 수 있다. 예컨대 :It consists of a single bit (byte pattern) in a bit stream known as MPEG (1 and 2) start code prefixes. The pattern is 23 zeros followed by one. The eight bits following the start code prefix are known as the start code value. This indicates the type of start code. Indicates the type of start code reaching the SCD of the present invention. The start reaching the SCD of the present invention needs to be byte aligned. Therefore, the above data byte sequence can also be specified. For example:

0 × 000 × 00

0 × 000 × 00

0 × 010 × 01

0 × b80 × b8

은 그룹 스타트 코드이다.Is the group start code.

[입력피포(Fifo)][Fifo]

250 K bytes/s 의 피크 데이타 속도가 주어지고 코딩된 데이타 버퍼가 오버플로어라지 않으면 인 억셉트 핀은 결코 밑으로 당겨지지 않도록 본 발명이 구성되어 있다. 따라서 입력 피포의 길이를 계산하기 위해서는 다음과 같은 것을 알 필요가 있다 : (1) 스윙 버퍼를 위한 최악의 경우의 대기 시간, 그리고 (2) 최악의 경우의 SCD를 통한 데이타 확장Given the peak data rate of 250 K bytes / s and the coded data buffer is not overflowed, the present invention is constructed such that the incept pin is never pulled down. Thus, to calculate the length of the input envelope, we need to know: (1) worst-case latency for the swing buffer, and (2) data expansion via the worst-case SCD.

본 발명에 따라 코딩된 데이타 클럭 속도로 도달하는 입력 데이타로 scdp는 데이타 스트림에서 제거된 3바이트를 갖는 스타트 코드당 두개의 스톨(stall)을 발생한다.With input data arriving at the data clock rate coded in accordance with the present invention, scdp generates two stalls per start code with 3 bytes removed from the data stream.

[입력회로][Input circuit]

본 발명의 입력 회로는 상기 Broll에서 개시된 방법과 완전히 동일하게 작동을 한다. 그러나, 두 회로 간에는 몇가지 차이점이 있다. 첫번째, vpi는 토큰의 유효단이 나타날 때까지 기다리지 않는다. 대신에 토큰에서의 신호가 낮아질 때까지 기다린다. 두번째는 바이트 모드에 들어갈 때 DATA헤더의 발생은 바이트 모드 데이타에 의존한다.The input circuit of the present invention operates exactly the same way as described in Broll. However, there are some differences between the two circuits. First, the vpi does not wait for the valid end of the token to appear. Instead, wait until the signal on the token goes low. Second, when entering byte mode, the generation of the DATA header depends on the byte mode data.

[스타트 코드][Start code]

본 발명에서는 MPEG 스타트 코드는 SCD에 의해 인식되고 토큰으로 변환된다. 표 15에 이것들이 표시되어 있다.In the present invention, the MPEG start code is recognized by the SCD and converted into tokens. These are shown in Table 15.

[표 15]TABLE 15

[비트 스터핑의 제거][Remove Bit Stuffing]

스타트 코드 프리픽스보다 앞서는 제로 비트들은 스터핑이며 안전하게 제거될 수 있다. 본 발명에서는 스터핑중 오직 완전한 바이트만을 제거한다.Zero bits preceding the start code prefix are stuffing and can be safely removed. In the present invention, only complete bytes are removed during stuffing.

예컨대, 아래에 나와 있는 13 스터핑 비트의 바이트 시이퀀스에서 이중 단지 8 스터핑 비트만 실제로 제거된다.For example, in the byte sequence of 13 stuffing bits shown below, only 8 stuffing bits are actually removed.

0 × 20 // 5 스터핑 비트0 × 20 // 5 stuffing bits

0 × 00 // 8 스터핑 비트0 × 00 // 8 stuffing bits

0 × 000 × 00

0 × 000 × 00

0 × 01 // 스타트 코드 프리픽스0 × 01 // start code prefix

[탐색 모드][Search mode]

본 발명에 따른 탐색모드가 아래 표 16에 설명되어 있다.The search mode according to the invention is described in Table 16 below.

[표 16]TABLE 16

비제로 탐색모드는 요구되는 스타트코드의 클래스가 발견될 때까지 도달하는 모든 데이타를 버린다. 이점에서 탐색모드는 제로로 리셋되고 또한 스타트 코드 탐색 인터럽트가 발생할 수도 있다. 새로운 컨트롤 비트 즉 스탑 온 탐색은 SCD가 인터럽트를 발생시킨 후 실제로 정지해 있는지를 결정한다(인터럽트는 톤상의 방법으로 마스크되지만, 스탑핑은 꼭 필요한 것은 아니다).Nonzero search mode discards all data that arrives until the required class of start code is found. At this point, the seek mode is reset to zero and a start code seek interrupt may occur. A new control bit, or stop on seek, determines whether the SCD is actually stopped after generating an interrupt (interrupts are masked in a tone-like manner, but stopping is not necessary).

본 발명에서, SCD가 FLUSH 토큰을 받으면 탐색모드는 또한 제로로 세팅된다. 그러나, FLUSH 토큰이 discard-all 을 끝내면 탐색모드는 완전히 리세팅되며, 즉 탐색모드는 FLUSH 토큰과 discard-all 의 조합으로 리세팅 된다.In the present invention, the search mode is also set to zero when the SCD receives the FLUSH token. However, when the FLUSH token finishes discard-all, the search mode is completely reset, that is, the search mode is reset with a combination of the FLUSH token and discard-all.

[비정렬 스타트 코드][Unaligned Start Code]

0 × 01 가 이어지는 하나 이상의 제로 바이트의 동작은 스타트 코드이다. 또한, 하나가 이어지는 23 제로 NOT 보다 큰 것에 대한 동작은 비정렬 스타트 코드이다. 이것은 바이트 정렬 월드로 변환된다 : 만약 비트 스터핑을 제거한 후 0 × 01가 받아들여지지 않으면, 스타트 코드는 정렬되지 않는다. 이 상태는 실제로 비정렬 스타트 코드가 없음을 알 수 있다(스터핑의 한 바이트 이하가 포함되어 있다).The operation of one or more zero bytes followed by 0 × 01 is a start code. Also, the operation for one greater than 23 zero NOT is the unaligned start code. This is converted to a byte alignment world: if 0x01 is not accepted after removing bit stuffing, the start code is not aligned. You can see that this state actually has no unaligned start code (contains less than one byte of stuffing).

비정렬 스타트 코드의 클래스가 탐지되는 데이타 시이트에 대한 설명을 하지 않고 본 발명의 scdp는 이것을 무시한다. 즉 스타핑이 여전히 제거된 상태다.The scdp of the present invention ignores this without explaining the data sheet in which the class of unaligned start code is detected. That is, the stapling is still removed.

[오버랩핑 스타트 코드][Overlap Start Code]

스타트코드의 “value”부는 후속 스타트 코드의 “prefix”부를 형성할 수 있다. 이것은 전형적으로 두가지 이유에서 일어난다. : 1) 스탠다드는 시스템레벌 스타트 코드가 스트림의 어디에서도 발생하는 것을 허용한다. - 비디오 레벨 스타트 코드의 중앙에서도 직접 일어날 수 있다. 그리고 2) 에러. 마지막 코드까지 에러가 있는 스타트 코드를 제거함으로써 더나은 에러복원을 할 수 있다.The "value" part of the start code may form the "prefix" part of the subsequent start code. This typically occurs for two reasons. Standards allow system-level start codes to occur anywhere in the stream. -It can happen directly in the middle of the video level start code. And 2) error. Better error recovery can be achieved by removing the faulty start code up to the last code.

바이드 정렬환경에서, 본 발명에 따라 오버랩핑 스타트가 발생할 수 있는 유일한 방법은 화상 스타트(값 = 0 × 00)가 다른 스타트 코드를 형성한 것이다. 이 경우에 화상 스타트는 데이타로부터 제거되며 두번째 스타트 코드가 디코딩된다. 만약 이것이 오버랩되면 넌오버랩핑 스타트 코드가 발견될 때까지 동일한 절차가 수행된다.In a bind alignment environment, the only way in which overlapping starts can occur in accordance with the present invention is that image start (value = 0x00) forms a different start code. In this case the picture start is removed from the data and the second start code is decoded. If this overlaps, the same procedure is performed until a non-overlapping start code is found.

[비인식 스타트 코드][Unrecognized Start Code]

본 발명에서, 보류값(0×b0, 0×b1, 0×b6), 모든 시스템 스타트 코드 (0×b9에 0×ff), 및 시퀀스 에러 코드(0×b4)는 각각 비인식 스타트 코드로 취급된다. 비인식 스타트 코드를 제거한 뒤에 SCD는 다음 유효 스타트 코드가 발견될 때까지 들어오는 모든 데이타를 버린다. 또한 비인식 스타트 에러 레지스터가 세팅되면 비인식 스타트 마스크에 따라 인터럽트를 발생시킨다.In the present invention, the holding values (0xb0, 0xb1, 0xb6), all system start codes (0xb to 0xb9), and sequence error codes (0xb4) are each set to an unrecognized start code. Are treated. After removing the unrecognized start code, the SCD discards all incoming data until the next valid start code is found. In addition, if the unrecognized start error register is set, an interrupt is generated according to the unrecognized start mask.

[확장 및 사용자 데이타][Extension and User Data]

두개의 구성 비트들이 본 발명에서 사용된다 :Two configuration bits are used in the present invention:

1) Discard_User (또는 아님)1) Discard_User (or not)

2) Discard_extn (MPEG2 메인 프로파일 뒤, 메인레벨)2) Discard_extn (behind MPEG2 main profile, main level)

이들 구성 비트는 ONE으로 리세팅된다.These configuration bits are reset to ONE.

MPEG2 확장 스타트 코드들은 서로 상이하다. 확장 스타트 값을 따르는 네개의 버트는 확장스타트 식별자이며 SCD로 디코딩되어야 한다. 이들은 신호로 알리기 위해 네개의 새로운 토큰이 발생된다. 허용된 확장 스타트 코드 식별자와 그들 개개의 토큰들이 표 17에 나와 있다. 그러나 보류된 확장 스타트코드 식별자들은 인식되지 않는다. 비인식된 확장 스타트 코드는 (Discard-extn)에 따라 버려지거나 또는 (old)확장 데이타 토큰으로 대체된다.MPEG2 extended start codes are different from each other. The four butts following the extended start value are extended start identifiers and must be decoded to the SCD. They generate four new tokens to signal. Allowed extended start code identifiers and their individual tokens are shown in Table 17. However, reserved extended start code identifiers are not recognized. Unrecognized extended start codes are discarded according to (Discard-extn) or replaced with (old) extended data tokens.

[표 17]TABLE 17

[PICTURE_END 토큰의 삽입][Insert token of PICTURE_END]

현 표준(STANDARD)중(MPEG 1,2, JPEG, 또는 H.26) 어느 것도 전류화상을 중지시키는 방법을 명시하지 못한다.None of the STANDARDs (MPEG 1,2, JPEG, or H.26) specify how to stop the current picture.

그러나, 본 발명에서 SCD 201은 in_picture라는 상태를 유지한다. 이 상태는 화상 스타트 토큰이 SCD(201)에 의해 출력될 때마다 세팅된다. 신택스(Syntax)면에서 화상 스타트(즉 FLUSH토큰)보다 높은 후속 스타트코드는 화상 엔드 토큰의 발생을 유발한다. 화상 엔드 토큰이 발생되고 토큰들이 새로운 스타트 코드와 결합하기 전에 출력된다. in_picture는 화상 엔드 토큰이 SCD(201)을 떠날 때 리세팅된다. SCD(201)가 입력 데이타 스트림에서 토큰을 받으면, 동작은 논리적으로 동일하게 된다-화상 엔드 토큰을 받는 것을 포함함. 요컨대, 본 발명에 따라 화상 엔드의 발생을 유발하는 스타트 코드들은 다음과 같다 :However, in the present invention, the SCD 201 maintains a state called in_picture. This state is set whenever the picture start token is output by the SCD 201. Subsequent start codes higher than picture start (i.e. FLUSH token) in terms of syntax cause the generation of a picture end token. A picture end token is generated and output before the tokens are combined with the new start code. in_picture is reset when the picture end token leaves SCD 201. When the SCD 201 receives a token in the input data stream, the operation is logically the same-including receiving an image end token. In short, the start codes that cause the generation of a picture end in accordance with the present invention are as follows:

화상 스타트 코드 OR 토큰Burn start code OR token

그룹 스타트 코드 OR 토큰Group Start Code OR Token

시퀀스 스타트 코드 OR 토큰Sequence start code OR token

시퀀스 엔드 코드 OR 토큰Sequence End Code OR Token

FLUSH 토큰FLUSH token

[화상 인터럽트 뒤의 정지][Stop after Image Interrupt]

본 발명의 화상 뒤의 정지(sap)의 특징은 전류 시퀀스 즉 채널변경을 완전히 끝내 버리는 것이다. 이것은 외부의 실시간 소프트웨어가 없이 가능한한 자동으로 이 기능을 수행하는 것이 필요하다.A feature of the sap behind the image of the present invention is the complete termination of the current sequence, i. It is necessary to perform this function as automatically as possible without external real-time software.

sap컨트롤비트는 플래그 화상 엔드로서 참조된다.The sap control bit is referred to as the flag picture end.

플래그화상 엔드, 마스크 및 에러비트외에 두개의 컨트롤 비트가 있다. :In addition to the flag image end, mask, and error bits, there are two control bits. :

1) after_picture_step : 인터럽트가 발생된 후 SCD가 정지해 있는지를 결정한다.1) after_picture_step: Determines whether SCD is stopped after interrupt is generated.

2) after_picture_discard : 플래그 화상 엔드 인터럽트를 발생하고, scdp가 자동적으로 discard_all 모드로 들어가는지를 결정한다.2) after_picture_discard: Generates a flag picture end interrupt and determines whether scdp automatically enters discard_all mode.

이와 같은 방법으로 discard_all 모드는 그것이 무엇으로 불리는지 알 필요가 없으며, discard_all 모드를 남겨 놓고 신속하고 확실하게 탐색모드로 진행할 수 있다.In this way, the discard_all mode does not need to know what it is called, and can quickly and reliably proceed to the search mode, leaving the discard_all mode.

본 발명에 따르면, PICTURE_END 토큰이 SCD에 의해 출력될 때 마다 플래그 화상 엔드가 세팅되면 PICTURE_END 뒤에 flush가 발생하며, 이벤트가 발생한다. 인터럽팅은 플래그 화상 엔드 마스크에 의존하며 스탑핑은 after_picture_stop에 의존한다.According to the present invention, whenever a flag picture end is set whenever a PICTURE_END token is output by the SCD, a flush occurs after PICTURE_END, and an event occurs. Interrupting depends on the flag picture end mask and stopping depends on after_picture_stop.

예를들면 채널변경에 대한 이벤트의 시퀀스는 다음과 같다. :For example, the sequence of events for channel change is as follows. :

1) flag_picture_end를 after_picture_stop = 0 과 after_picture_discard = 1 로 세팅한다.1) Set flag_picture_end to after_picture_stop = 0 and after_picture_discard = 1

2) flag_picture_end_event에 응답한다.2) Respond to flag_picture_end_event.

a) 탐색모드를 예컨대 시퀀스로 세팅한다.a) Set the search mode to sequence, for example.

b) 복귀b) return

3) FLUSH 또는 S/W는 discard_all 을 리세팅 시킨다.3) FLUSH or S / W resets discard_all.

4) scdp는 다음 시퀀스의 스타트를 탐색한다.4) scdp searches for the start of the next sequence.

[discard_all][discard_all]

R/W 컨트롤 비트 즉 discard_all 로 인해 본 발명의 scdp는 FLUSH토큰을 포함해 모든 입력을 버린다. 이 버트는 FLUSH토근에 의해 자동으로 리세팅되며 flag-picture-end 기능으로도 리세팅시킬 수 있다.Due to the R / W control bit, discard_all, the scdp of the present invention discards all input including the FLUSH token. This butt is automatically reset by the FLUSH token and can also be reset by the flag-picture-end function.

[scdp에 의해 인식된 토큰][token recognized by scdp]

본 발명의 대부분의 scdp의 기본적인 기능은 실제적인 토큰 발생과 관련되어 있으며, 코팅된 데이타 포트(즉 입력회로를 거쳐)에 주어지면 scdp에 의해 디코딩되고 작동하는 수개의 토큰이 있다. 표 18에는 이들 토큰들이 정의되어 있다.The basic function of most scdp of the present invention is related to actual token generation, and there are several tokens that are decoded and operated by scdp when given to a coated data port (i.e. via an input circuit). Table 18 defines these tokens.

[표 18]TABLE 18

[Scdp 메모리 맵][Scdp Memory Map]

본 발명의 다양한 레지스티와 scdp를 위한 그들의 관련 어드레스가 표 19에 설명되어 있다.The various registers of the present invention and their associated addresses for scdp are described in Table 19.

[표 19]TABLE 19

[코딩된 데이타 버퍼 주위의 데이타흐름][Data Flow Around Coded Data Buffer]

본 발명은 다음과 같은 이점을 제공한다.The present invention provides the following advantages.

1) 버퍼의 스윙(swing)을 강화하는 방법1) How to Enhance the Swing of a Buffer

2) 바이트를 홀수 비트로 패킹해야 하는 것을 피하는 방법2) how to avoid having to pack bytes with odd bits

3) SCD의 (근본적으로 긴)버스의 폭을 8비트로 감소시킴.3) Reduce the width of the (essentially long) bus of the SCD to 8 bits.

4) SCD자체가 32비트 데이타로 패킹된다. 큰 버스를 피하기 위해 SCD의 이 비트는 드래미프(dramif)내에 안착된다. 본 발명에서는 sccdbin으로 언급된다. 이 모듈은 모든 데이타를 32비트 워드로 패킹한다.4) The SCD itself is packed with 32 bit data. To avoid large buses, this bit of the SCD sits in a dramif. In the present invention, it is referred to as sccdbin. This module packs all data into 32-bit words.

5) 스윙 버퍼는 그들 자신의 카운팅과 스윙잉(swinging)을 행한다. 버퍼들은 신호 즉 fill_and_swing에 응답하여 PICTURE_END 또는 FLUSH 토큰(즉 신호)에 응답하는 Sccdbin로 부터 플러시 된다.5) Swing buffers do their own counting and swinging. The buffers are flushed from the Sccdbin in response to a signal, i.e. fill_and_swing, in response to a PICTURE_END or FLUSH token (i.e. signal).

6) 허프만 디코더 앞에 안착하는 언패킹 모듈 즉 sccdbout는 출력 스윙버퍼에 의해 제공된 buffer_start 신호를 받을 때까지 FLUSH 또는 PICTURE_END를 따르는 모든 데이타를 지운다.6) The unpacking module, sccdbout, sitting in front of the Huffman decoder erases all data following FLUSH or PICTURE_END until it receives the buffer_start signal provided by the output swing buffer.

[서언][Preface]

이 부분은 본 발명에 따른 타임-스탬프 정보의 취급을 규정한다.This part defines the handling of time stamp information in accordance with the present invention.

[작동이론][Theory of Operation]

MPEG-2 비디오 및 오디오에서는, MPEG-2 시스템 스트림에 있는 정보를 사용하여 데이타가 동기화된다. 동기화를 다루는 정보형태가 근본적으로 두가지가 있다 : 클럭 레퍼런스(Clock reference)와 타임-스탬프(time stamp)In MPEG-2 video and audio, data is synchronized using information in the MPEG-2 system stream. There are basically two types of information that deal with synchronization: clock reference and time stamp.

클럭레퍼런스는, 시간 “now” 을 표시하는 숫자가 무엇인지 디코페에 알려주기 위해 사용된다. 이것이 일정한 간격으로 증분되는 카운터를 초기화하는데 사용되기 때문에, 디코더는 항상 현재시간이 무엇인지에 대한 개념을 가지고 있다.The clock reference is used to tell Decope what number represents the time "now". Since it is used to initialize counters that are incremented at regular intervals, the decoder always has the concept of what the current time is.

타임-스탬프는, 프로그램(전형적으로 비디오와 오디오)을 구성하는데 사용되는 개개의 데이타 스트립을 위해 필요하다. 비디오의 경우 타임-스탬프는 화상과 관계되며 이 화상을 언제 디스플레이할 것인지를 디코더에 알려주는데, 시간은 클럭 페러런스로 초기화된 카운터로 정의된다.Time-stamps are needed for the individual data strips used to construct the program (typically video and audio). In the case of video, the time-stamp is related to the picture and tells the decoder when to display the picture, which is defined as a counter initialized with a clock perspective.

그러나, MPEG에 있는 모든 것처럼 이 상태는 이 보다 더 복잡하다. : 두가지 종류의 클럭 레퍼런스가 있다. : 프로그램 클럭 레퍼런스(PCRs)과 시스템 클럭 레퍼런스(SCRs), 클럭은 90KHz의 해상도에 대한 정보를 가지고 있으며 다른 클럭은 해상도를 27MHz까지 확장하는 추가적인 정보를 가진다. 클럭 레퍼런스는 종종 데이타 스트림에 포함되기 때문에 랜덤억세스 또는 채널변경 후에 “time”을 초기화 시킬 수 있다.However, as with everything in MPEG, this condition is more complicated than this. There are two types of clock references. Program clock references (PCRs), system clock references (SCRs), and clocks have information about 90KHz resolution, while other clocks have additional information to extend the resolution to 27MHz. Because clock references are often included in the data stream, they can initiate a “time” after random access or channel change.

또한 타임-스탬프에도 두가지 종류가 있다. : 프리젠테이션 타임-스탬프(PTSs)와 디코더 타임 스탬프(DTSs). 이들은 재배열되는 I 화상과 P 화상(B화상이 아님)을 위해 서로 다르다. DTS는 화상을 언제 디코딩할 것인지를 알려주고 PTS는 그것을 언제 디스플레이할 것인지를 알려준다. 2-3 풀-다운 효과가 없는 프레임 화상의 경우, DTS와 PTS 그리고 I 화상과 P 화상간의 차이점은 화상 프레임 기간을 따르는 B화상의 수보다 하나가 더 많다.There are also two types of time stamps. Presentation time stamps (PTSs) and decoder time stamps (DTSs). They are different for I pictures and P pictures (not B pictures) that are rearranged. The DTS tells you when to decode the picture and the PTS tells you when to display it. For frame pictures without 2-3 pull-down effects, the difference between the DTS and PTS and the I picture and P picture is one more than the number of B pictures following the picture frame period.

주요 복잡성은 DTS와 PTS가 화상을 즉각 디코딩할 수 있는 디코더의 가상모델을 참조한다는 것이다. 어떤 실제 디코더도 이것을 할 수 없으며 (타임-스탬프와 클럭 레퍼런스로 규정된)화상을 디스플레이 하는 이론적 시간을 수정하기 위한 조치를 취해야 한다.The main complexity is that the DTS and PTS refer to a virtual model of a decoder that can decode the picture immediately. No real decoder can do this and steps must be taken to correct the theoretical time to display the image (as defined by the time-stamp and clock reference).

이 수정은 디코더의 구조의 상세함에 의존한다. 분명히 비디오 디코더에 의해 도입된 어떠한 딜레이(delay)도 오디오 디코더에서의 등가적인 딜레이로 맷칭되어야 한다.This modification depends on the details of the structure of the decoder. Obviously any delay introduced by the video decoder must be matched with an equivalent delay in the audio decoder.

[불연속성][discontinuity]

“시간” 개념에서의 불연속성이 발생할 수도 있다. 예컨대, 편집된 비트스트림에서 개개의 편집점(edit point)은 불연속적인 시간을 가질 것이다. 유사한 상황이 채널변경시에도 일어난다. 다른 조직에서의 클럭 레퍼런스로 규정된 “시간”에 대해한 타임영역에서 인코딩된 타임-스탬프를 사용하면 부정확한 결과를 초래하기 때문에 주의를 요한다.Discontinuities in the concept of “time” can also occur. For example, individual edit points in the edited bitstream will have discontinuous time. A similar situation occurs when changing channels. Care should be taken when using time stamps encoded in one time domain for the “time” defined by the clock reference in another organization, as this will lead to inaccurate results.

[스타트 업][Start up]

정확하게 디코딩을 시작하는 것에 대한 두개의 경합적인 요구가 있기 때문에 특별한 문제가 스타트업(또는 채널변경)시 발생한다. 비디오의 경우, 시스템 헤더를 따르는 I 화상으로 디코딩을 시작할 필요가 있지만(이것은 모든 상황에 적용되지는 않지만 대체로 정확한 말이다), 시스템의 경우는, 첫번째로 디코딩된 화상은 타임-스탬프가 있어야 한다. 그러나, 모든 화상이 타임-스탬프를 가져야 될 필요는 없으며, 1 화상이 타임 스탬프가 있는 화상을 찾는다면 오랫동안 기다릴 수도 있다.A special problem arises at startup (or channel change) because there are two competing demands for starting decoding correctly. In the case of video, it is necessary to start decoding into an I picture following the system header (this does not apply to all situations but is generally correct), but in the case of a system, the first decoded picture must be time-stamped. However, not all pictures need to have a time stamp, and one picture may wait long if it finds a picture with a time stamp.

타임 스탬프를 가지는 화상을 선행하는 화상으로부터 I 화상에 대해 어떤 타임 스탬프인가를 계산하는 것에 대해 생각할 수 있다. 불행히도 이일은 매우 어려운데 그 이유는 화상들이 필드인지 프레임화상인지(그리고 repeat_first_field가 세팅되어 있는지)를 결정하기 위해 개입화상(intervening 화상)을 부분적으로 디코딩할 필요가 있기 때문이다. 이것은 데이타가 코딩된 데이타 버퍼를 통과해서 허프만 디코더에 의해 버려질것이 요구된다.One may think about calculating what time stamp for an I picture from a picture preceding a picture having a time stamp. Unfortunately this is very difficult because it is necessary to partially decode the intervening picture to determine whether the pictures are fields or frame pictures (and repeat_first_field is set). This requires that data pass through the coded data buffer and be discarded by the Huffman decoder.

[실시예]EXAMPLE

제63도는 타임 스탬프 매니저먼트에 대한 제1실시예를 보여주고 있다. 클럭레퍼런스(253)는 본 발명의 시스템 디멀티플렉스(254)로 디코딩되며 카운터(255)안에 설치되어 90KHz로 증분되고 시간을 표시한다. 또한 이들은 비디오 디코더(270)내에 위치하는 카운터(258)의 제2카피(Copy)로 들어간다.FIG. 63 shows a first embodiment of time stamp management. The clock reference 253 is decoded into the system demultiplex 254 of the present invention and installed in the counter 255, incremented by 90 KHz and indicating time. They also enter a second copy of the counter 258 located within the video decoder 270.

타임 스탬프가 비디오 버퍼(271)를 관류하기 때문에, 비디오 데이타와 동일한 양만큼 지연된다. 다음에 이들은 화상이 너무 빠른지 또는 너무 늦은지를 결정하기 위해 타임의 국소적 카피와 비교된다.Since the time stamp flows through the video buffer 271, it is delayed by the same amount as the video data. These are then compared with a local copy of the time to determine if the picture is too fast or too late.

본 발명의 다른 실시예가 제64도에 표시되어 있다. 이 실시예에서는 클럭 레퍼런스(253)가 비디오 디코더(270)에 전달될 필요가 없다. 이것은 제2카운터 “vid_time”(272, 273)을 사용함으로써 달성되는데 이 카운터는 비디오 디코더(270)와 시스템 디코더(256)양쪽에 내장된다. 이 실시예가 두개의 카운터가 스텝에 있기 때문에 이들이 스템에서나가지 않도록 조치를 취할 필요가 있다. 이것은 시스템 디먹스(demux)에 있는 카운터을 작동시켜 비디오 디코더에 있는 것을 리세팅함으로써 이루어진다.Another embodiment of the present invention is shown in FIG. In this embodiment, the clock reference 253 does not need to be passed to the video decoder 270. This is accomplished by using a second counter "vid_time" 272, 273, which is embedded in both video decoder 270 and system decoder 256. Since this embodiment has two counters in the step, it is necessary to take measures so that they do not leave the stem. This is done by turning on a counter in the system demux to reset what is in the video decoder.

이 실시예의 다른 이점은 33비트 전체를 필요가 없다는 것이다. 비디오 디코더(270)에서 16비트를 취급하도록 카운터를 16비트로 제한하는 것이 바람직하다. 이것이 90KHz(단자 2/3초)의 해상도에서 불충분한 수를 나타낼 수도 있겠지만 이러한 고정확성이 필요없는데 그 이유는 비디오 디코더에서 VTG가 자유로히 작동하기 때문에 (즉 디코딩되는 MPEG 스트림과 관련이 없는 것에 젠-락킹(gen-locking)되기 때문에) 시간제어는 어느쪽으로도 필드타임에 정확하다.Another advantage of this embodiment is that it does not need all 33 bits. It is desirable to limit the counter to 16 bits so that video decoder 270 handles 16 bits. This may represent an insufficient number at a resolution of 90 KHz (terminal 2/3 seconds), but this high accuracy is not necessary because the VTG works freely in the video decoder (ie it is not related to the MPEG stream being decoded). The time control is accurate to field time either way because it is gen-locked.

결과적으로, 디코더로 가는 타임 스탬프의 저차수 비트가 버려진다. 본 발명에서는 네개의 비트가 버려진다. 이것은 비디오 디코더가 20비트중 16비트를 사용함을 의미한다. 따라서 해상도는 5625Hz이며 11.65초의 시간차를 보일 수 있다.As a result, the lower order bits of the timestamp going to the decoder are discarded. In the present invention, four bits are discarded. This means that the video decoder uses 16 bits out of 20 bits. Therefore, the resolution is 5625Hz and can show a time difference of 11.65 seconds.

그러므로, PAL필드는 5625Hz 클럭의 112.5 틱스(ticks)이다. NTSC필드는 93.84 틱스이다. 그리하여 본 발명에 적합한 필드 타임에서 약 1%의 정확성까지 시간계산을 할 수 있다.Therefore, the PAL field is 112.5 ticks of 5625 Hz clock. The NTSC field is 93.84 ticks. Thus, a time calculation can be made up to an accuracy of about 1% at a field time suitable for the present invention.

[하드웨어][hardware]

제65도는 본 발명에 따른 하드웨어를 보여주고 있다. Brolly에 개시된 것들 외에 두개의 모듈이 더 있다. 첫번째의 것은 스타트코드 디텍터(201)바로 뒤에 첨가된다. 이것은 토큰을 발생시키는 역할을 한다. TIME_STAMP토큰은 PICTURE_START토큰 바로 앞에 나타난다. MPEG시스템에서, 타임 스탬프는 패킷헤더에 있으며 데이타의 패킷에 있는 첫번째 화상을 참조한다. 패킷이 비디오 데이타와 정렬하지 않기 때문에 일반적으로 타임 스탬프가 참조하는 화상의 스타트앞에 앞화상의 끝이 있게 된다.65 shows hardware according to the present invention. In addition to those disclosed in Brolly, there are two more modules. The first one is added immediately after the start code detector 201. This serves to generate tokens. The TIME_STAMP token appears just before the PICTURE_START token. In the MPEG system, the time stamp is in the packet header and refers to the first picture in the packet of data. Because the packet is not aligned with the video data, there is usually an end of the preceding picture before the start of the picture referenced by the time stamp.

타임 스탬프 정보는 마이크로프로세서 인터페이스를 거쳐 또는 토큰을 사용하여 본 발명의 시스템에 공급될 수 있다. 어느 경우든 타임 스탬프 데이타(16비트)는 레지스터에 저장된다. 플래그가 세팅되어 유효 타임 스탬프 정보가 레지스터에 있음을 지시한다. TIME_STAMP토큰을 사용하여 데이타가 공급되면 그 토큰은 토큰스트림에서 제거된다.The time stamp information can be supplied to the system of the present invention via a microprocessor interface or using a token. In either case, the time stamp data (16 bits) is stored in a register. A flag is set to indicate that valid time stamp information is in the register. When data is supplied using the TIME_STAMP token, the token is removed from the token stream.

PICTURE_START토큰을 만나면 레지스터의 상태를 지시하는 플래그가 검사된다. 확실하면 동작이 일어나지 않으며 모든 후속 데이타는 영향을 받지 않는다. 그러나 플래그가 유효 타임 스탬프 정보가 레지스터에서 이용될 수 있음을 지시하면 TIME_START토큰이 PICTURE_START토큰앞에서 발생된다. 그리고 플래그는 클리어되며 다음 타임 스탬프에서 사용된다.When a PICTURE_START token is encountered, a flag indicating the state of the register is checked. If it is certain, no action will occur and all subsequent data will not be affected. However, if the flag indicates that valid time stamp information is available in the register, a TIME_START token is generated before the PICTURE_START token. The flag is cleared and used at the next time stamp.

두번째 하드웨어 모듈은 마이크로프로그램 가능한 State Machine(218)에 관련된다. 이것은 27MHZ 디코더클럭에서 클럭되는 일련의 간단한 카운터이다. 첫번째의 것은 클럭을 480으로 나누어 프리스케일러(prescaler)이다(다이아그램의 4804.8 옵션은 뒤에 설명한다). 4800은 단순히 300(27MHz/90KHz)×16이다.The second hardware module relates to the micro programmable state machine 218. This is a series of simple counters that are clocked at the 27MHZ decoder clock. The first is a prescaler by dividing the clock by 480 (the 4804.8 option in the diagram is described later). The 4800 is simply 300 (27 MHz / 90 KHz) x 16.

두번째 카운터는 타임카운터이며 프리스케일러(278)가 클럭을 낼때 마다 증분된다. 이것은 reset_time핀으로 리세팅된다.The second counter is a time counter and is incremented each time prescaler 278 clocks. This is reset to the reset_time pin.

이 부분에서의 카운터를 완전히 클럭된 피드백 플립-플랍(SYNC′S)으로 실행되며 이 플립-플랍은 다른곳에서 사용되는 약 피드백 랫치 보다 입자부식에 대한 저항성이 훨씬 더 크다(그이유는 Brian에 있는 타임 카운터가 시스템 디코더에 있는 것과 함께 스텝 밖으로 나올 수 있기 때문이다).The counter in this section is implemented as a fully clocked feedback flip-flop (SYNC'S), which is much more resistant to particle corrosion than the weakly used feedback latches used elsewhere. Time counter can come out of step with what is in the system decoder).

마이크로프로그램 가능한 State Machine(218)은 타임 카운터로 지시되는 현재시간을 읽을 수 있으며 이 시간을 TIME_STAMP토큰에 의해 주어진 값과 비교를 한다. 따라서 화상을 디코딩해야 할 시간과 비교해서 빠른지 또는 느린지를 결정할 수 있다.The microprogrammable state machine 218 can read the current time indicated by the time counter and compare this time with the value given by the TIME_STAMP token. Thus, it can be determined whether it is fast or slow compared to the time to decode the picture.

표 20에는 타임 스탬프와 관계되는 SCD 201 에서 사용되는 레지스터가 도시되어 있다.Table 20 shows the registers used in SCD 201 related to time stamps.

[표 20]TABLE 20

[타임-스탬프정보의 MSG핸드링][MSG Handing of Time-stamp Information]

이 부분은 본 발명에 따라서 MSG(218)이 TIME_STAMP토큰을 받을때 그의 기능에 대해 설명한다.This part describes its function when the MSG 218 receives a TIME_STAMP token in accordance with the present invention.

먼저 16비트의 타임 스탬프보정이 TIME_STAMP토큰에 있어 타임 스탬프에 더해진다. 이 보정은 칩-리세트(chip-reset)에서 MSM(218)에 의해 제로로 리세팅되며 동작이 일어나지 않으면 타임 스탬프는 변하지 않는다. 그러나 타임 스탬프를 수정하기 위해 제어 마이크로프로세서는 어떤 값을 이 레지스터에 기록할 수도 있다. 그러므로 비디오와 오디오 디코더를 통한 자동지연에 대한 보상을 한다.First, a 16-bit time stamp correction is added to the time stamp for the TIME_STAMP token. This correction is reset to zero by the MSM 218 at chip-reset and the time stamp does not change unless operation occurs. However, to modify the time stamp, the control microprocessor may write some value to this register. Therefore, compensation for automatic delay through video and audio decoders is provided.

다음에, 보정된 타임 스탬프는 현재 시간으로부터 공제된다. 이의 신호는 에러의 방향을 제공한다(또한 MSM(218)에 의해 발생된 에러코드가 있으면 이것을 결정한다. 차의 절대값을 취하고 그 결과는 프레임 타임과 비교된다. 이 결과가 프레임 타임보다 작으면 동작이 일어나지 않는다. 앞에서 언급했듯이 VTG가 자유로히 작동하기 때문에 공칭시간에서 프레임타임을 빼거나 더함으로써 정확히 시간을 제어할 수 있다.Next, the corrected time stamp is subtracted from the current time. Its signal provides the direction of the error (and also determines if there is an error code generated by the MSM 218. It takes the absolute value of the difference and the result is compared to the frame time. As mentioned earlier, the VTG works freely, so you can control the time exactly by subtracting or adding frame time from the nominal time.

본 발명에서는, 에러가 프레임 타임은 초과하면 보정을 해야 한다. 적절한 시기까지 디코딩을 연기할 수 있기 때문에 디코딩이 너무 빠르면 MSM(218)는 이 상태를 보정할 수 있다. 그러나, 디코딩 의도된 시간보다 늦으면 이것은 더 어렵게 되는데 그 이유는 코딩된 데이타 버퍼 출력시 화상을 확실히 버릴 수 없기 때문이다. 근본적으로 시퀀스의 디코딩이 단절되고 상황을 보정할 수 있는 가장 좋은 방법은 랜덤억세스 또는 채널 별정 방식으로 디코딩처리를 다시 시작하는 것이다. 이 과정을 쉽게 하기 위해서는 FLUSH 토큰을 만날 때까지 모든 데이타를 버리기 위해 MSG(218)의 제어 레지스터를 프로그램할 수도 있다.In the present invention, the error must be corrected if the frame time exceeds. Because decoding can be deferred until the appropriate time, the MSM 218 can correct this condition if the decoding is too fast. However, if it is later than the intended decoding time, this becomes more difficult because the picture cannot be discarded at the output of the coded data buffer. Essentially, the decoding of the sequence is interrupted and the best way to correct the situation is to restart the decoding process in a random access or channel-specific manner. To facilitate this process, the MSG 218's control registers may be programmed to discard all data until a FLUSH token is encountered.

[스타트 업][Start up]

본 발명에 따라 스타트 업 상태로서 인식할 시간에 MSG(218)가 타임 스탬프를 받으면 (즉, 리세팅 뒤에 SEQUENCE_END 토큰 또는 FLUSH 토큰을 따르며 여전히 첫번째 PICTURE_START 앞에 있다), MSM(218)의 동작이 수정된다. 타임 스탬프가 디코딩이 현재시간보다 빨리 일어나야 함을 지시하면 이상에 설명한 것과 동일한 방식으로 상태가 취급된다. 그러나, 타임 스탬프가 디코딩이 스타트업에서 정상상태인 현재시간 뒤에도 계속 일어남을 지시하면, 디코더는 에러가 한 프레임 타임보다 작을 때도 정확한 시간까지 기다린다. 이와 같은 방법으로, 가능한 정확하게 공칭 디코딩 시간을 정확한 시간으로 세팅할 수 있다. 그리고 어떤 에러상태도 트리거함이 없이 후속 화상들이 공정시간 전 또는 후에 한 프레임 타임까지 디코딩될 수 있다.According to the present invention, when the MSG 218 receives a time stamp at the time to recognize it as a start-up state (i.e., following the SEQUENCE_END token or FLUSH token after reset and still before the first PICTURE_START), the behavior of the MSM 218 is modified. . If the time stamp indicates that decoding should occur earlier than the current time, the state is handled in the same manner as described above. However, if the time stamp indicates that decoding continues to occur after the current time when the decoding is normal at startup, the decoder waits until the correct time even when the error is less than one frame time. In this way, the nominal decoding time can be set to the correct time as accurately as possible. And subsequent pictures can be decoded up to one frame time before or after the process time without triggering any error condition.

또한, 본 발명에서는 에러 “ERR_TOO_EARLY”가 disable_too_early의 세팅에 무관하게 스타트업 동안 발생하지 않는다(그 이유는 디코딩이 빠를 것으로 생각되기 때문이다).Also, in the present invention, the error "ERR_TOO_EARLY" does not occur during startup regardless of the setting of disable_too_early (because the decoding is considered to be fast).

[MSM 타임-스탬프 에러코드][MSM Time-stamp Error Code]

타임 스탬프 핸드링의 결과로서 두개 에러중 하나가 발생한다.One of two errors occurs as a result of the time stamp handing.

디코딩이 타임 스탬프가 지시하는 시간보다 빨리 일어나면 ERR_TOO_EARLY가 발생한다.If decoding occurs earlier than the time stamp indicates, ERR_TOO_EARLY occurs.

디코딩이 타임 스탬프가 지시하는 시간보다 늦게 일어나면 ERR_TOO_LATE가 발생한다.If decoding occurs later than the time stamp indicates, ERR_TOO_LATE is raised.

ERR_TOO_EARLY는 억제할 수 있지만 모든 에러들이 마스크아웃 되지 않으면 ERR_TOO_LATE가 항상 발생한다.You can suppress ERR_TOO_EARLY, but ERR_TOO_LATE always occurs unless all errors are masked out.

표 21은 본 발명에 따라 마이크로프로그램 가능한 State Machine과 관련되어 있는 다양한 타임 스탬프를 설명한다.Table 21 describes the various time stamps associated with microprogrammable state machines in accordance with the present invention.

[표 21]TABLE 21

[30Hz에 대한 지지][Support for 30Hz]

본 발명은 30Hz 프레임레이트(rate)를 적절히 지지하지 못한다. 그러나, 클럭발생회로가 적절히 수정이 되면 본 발명은 30Hz데이타를 디코딩할수도 있음을 당 기술에 대한 통상의 지식이 있는 사람들은 알 것이다. 이경우, 시스템은 27.027MHz로 클럭킹되기 때문에 전형적인 “CCIR-601”래스터는 정확30Hz로 화상을 제공한다. 27.627MHz클력을 수용하기 위해서는 90KHz클럭을 제공하기 위해 300.3으로 분리되어야 한다. 본 발명이 16팩터로 이 값을 스케일하기 때문에 클럭을 4804.8로 나누는 것이 필요하다.The present invention does not adequately support 30 Hz frame rate. However, it will be appreciated by those of ordinary skill in the art that the present invention may decode 30 Hz data if the clock generation circuit is properly modified. In this case, the system is clocked at 27.027 MHz, so a typical “CCIR-601” raster will provide the picture at exactly 30 Hz. To accommodate the 27.627 MHz clock, it must be separated by 300.3 to provide a 90 KHz clock. Since the present invention scales this value to 16 factors, it is necessary to divide the clock by 4804.8.

[서언][Preface]

여기서는 본 발명에 따른 Micro-Codeable State Machine(MSM)을 상세히 설명한다. MSM의 구축의 목적은 작은 보정으로 VLC디코더와 어드레스 발생기 같은 많은 적용 요소에서 사용될 수 있는 머신을 제공하는 것이다.Here, the micro-codeable state machine (MSM) according to the present invention will be described in detail. The goal of building an MSM is to provide a machine that can be used in many applications, such as VLC decoders and address generators, with a small calibration.

본 발명의 MSM은 많은 특징을 제공한다. 그러나 MSM의 중요 구성은 유연성 있게 형성할 수 있는 모듈러(modular)이다. 따라서, 본 발명을 다방면에 적용할 수 있음을 당기술에 대한 통상의 지식을 갖고 있는 사람은 알 수 있다.The MSM of the present invention provides many features. An important component of MSM, however, is its modularity, which can be flexibly formed. Therefore, it can be seen by those skilled in the art that the present invention can be applied to various aspects.

제66도에 도시되어 있는 바와 같이, 본 시스템은 두개의 부분으로 분리되어 있다. 첫번째 부분은 상태 기계(218)이다. 앞에서 설명한 Brolly특허출원에서 처럼 2-와이어(two-wire)인터페이스의 제어하에 데이타 처리 파이프 라인으로 보내지는 지령을 이 상태 기계가 내린다. 두번째 부분은 산술코어(Arithmetic core)(219)로 이것은 ALU(222)와 관련 레지스터 파일(221)로 구성된다. 산술코어(219)는 데이타처리 파이프라인의 일부이다. 이것은 상기 2-와이어 인터페이스1의 제어하에서 데이타와 지형을 받는다. 또한 2-와이어 인터페이스의 제어하에서 출력시 데이타를 제공한다. 이들 두개의 구성요소를 사용하면 완전한 언코드 워드(uncode word)의 규정이 가능하다.As shown in FIG. 66, the system is divided into two parts. The first part is the state machine 218. This state machine issues commands to the data processing pipeline under the control of a two-wire interface as in the Brolly patent application described earlier. The second part is an Arithmetic core 219 which consists of an ALU 222 and associated register file 221. Arithmetic core 219 is part of the data processing pipeline. It receives data and terrain under the control of the 2-wire interface 1 above. It also provides data on output under the control of a two-wire interface. Using these two components allows the specification of complete uncode words.

――――――――――――――――――――――――――――――――――――――――――――――

1 상태 기계가 업스트림 블럭을 조정할 경우에도 이들 두개의 2-와이어 인터페이스는 결합될 수 있다.These two two-wire interfaces can be combined even if the one state machine coordinates the upstream block.

[상태 기계][State machine]

본 발명에 따른 상태 기계(218)은 산술코어(219)에 지령을 제공한다. 또한 지령을 통한 진행과정시 자신에게도 지령을 제공한다.State machine 218 in accordance with the present invention provides instructions to arithmetic core 219. It also provides a command to itself during the process through the command.

지령어 산술코어(219)에 전달되는 어드레스는 프로그램 카운터에 있다. 프로그램 카운터는 0×00으로 리세팅되고 어드레스를 통해 연속적으로 진행한다. 그러나, “jump” 또는 “call” 지령 및 /또는 “interrupt/error”이벤트는 프로그램 카운터가 재부하가 걸리도록 할 수 있으며 따라서 지형실행의 순서가 변경지게 된다.The address passed to the instruction arithmetic core 219 is in the program counter. The program counter is reset to 0x00 and proceeds continuously through the address. However, a "jump" or "call" command and / or an "interrupt / error" event may cause the program counter to reload, thus changing the order of terrain execution.

상태 기계가 또한 상류 블럭을 제어하면, 이들 2-와이어 인터페이스를 조합할 수도 있다.If the state machine also controls the upstream block, these two-wire interfaces may be combined.

상태 기계는 본 발명에서 4096지령까지 가능하다. 그러나, 다른 지형의 양도 또한 사용될 수 있으며 이것이 제한값으로 작용하지 않음을 당기술에 대한 통상의 지식이 있는 사람들은 알 것이다.The state machine is capable of up to 4096 instructions in the present invention. However, it will be appreciated by those of ordinary skill in the art that other terrain quantities may also be used and this does not act as a limiting value.

[점프와 콜(Jump and Call)][Jump and Call]

이 실행에서는 모든 지령들이 조건적 점프 지령이다. 점프를 할 것인가 안할것인가를 결정하기 위해 모든 지령에 대해 조건이 계산된다. 두개의 조건 즉 “True”와 “False”는 조건이 없이 점프를 하기 위해 또는 안하기 위해 각각 제공된다. 나머지 조건들(모두 16개)은 스테터스 버스(Status bus)에서 테스트를 받는다. 조건이 “true” 또는 “false”가 아니면 산술코어(219)가 지형을 처리해 조건에 대한 테스트를 하도록 스테터스 버스를 상태 기계에 다시 보낼 때까지 상태 기계(218)은 대기한다. 이들 조건은 표 22에 나와 있다.In this implementation, all commands are conditional jump commands. The condition is calculated for all commands to decide whether to jump or not. Two conditions, "True" and "False", are provided respectively to jump or not jump without conditions. The remaining conditions (all 16) are tested on the status bus. If the condition is not "true" or "false", the state machine 218 waits until the arithmetic core 219 processes the terrain and sends the status bus back to the state machine for testing of the condition. These conditions are shown in Table 22.

[표 22]Table 22

콜비트 세트로 점프 조건이 주어지면 점프 조건이 주어지지 않은 다음 어드레스가 리턴 어드레스로서 저장된다. 따라서, 이것을 루팅 콜링을 위한 메카니즘을 구성한다. 루틴으로부터 저장된 어드레스로 돌아오기 위해 콜이 어드레스(0×001)에 주어진다. 콜링은 단지 한 콜로만 주어지는데 즉 단지 한개의 리턴 어드레스만이 저장될수 있다. 그럼에도 불구하고 비록 에러가 있지만 콜에서의 콜링은 하드웨어에서 발견되지 않는다.If a jump condition is given with a set of call bits, the next address not given a jump condition is stored as the return address. Thus, this constitutes a mechanism for routing calling. A call is given to address (0x001) to return to the stored address from the routine. Calling is only given one call, ie only one return address can be stored. Nevertheless, although there is an error, the call in the call is not found in the hardware.

[인터럽트와 에러(Interrupt and Errors)][Interrupt and Errors]

본 발명에서 인터럽트/에러가 높게 채취되면 비조건적인 점프가 인터럽트/에러 어드레스(0×001)에 만들어진다. 인터럽트/에러가 없이 선택되어야 하는 다음 어드레스가 저장된다. 인터럽트/에러루틴으로부터 복귀하기 위해 인터럽트 어드레스(0×001)로의 점프가 일어난다.In the present invention, if the interrupt / error is collected high, an unconditional jump is made at the interrupt / error address (0x001). The next address that is to be selected without interrupts / errors is stored. A jump to the interrupt address (0x001) occurs to return from the interrupt / error routine.

본 발명의 상태 기계(218)는 인터럽트 또는 에러 루틴을 처리하기 위해 하드 와이어로 배선되어 있다. 인터럽트 루틴과 에러루틴간의 차이점은 전자는 수행과정시 다른 인터럽트를 마스크 아웃시키지만 후자는 그렇지 않다는 점이다. 상태 기계(218)는 에러편이 아닌 인터럽트로서 배선된다.The state machine 218 of the present invention is hardwired to handle interrupts or error routines. The difference between interrupt routines and error routines is that the former masks out other interrupts in the process, but the latter does not. The state machine 218 is wired as an interrupt rather than as an error.

[점프 어드레스(Jump Addresses)][Jump Addresses]

프로그램 카운터에 있는 어드레스는 점프 어드레스이다. 이 어드레스의 12비트는 언코드 필드에 들어 있다. 이것은 절대 어드레스가 될 수 있고 또는 ALU(222)의 출력으로부터 대체된 부분을 가질수도 있다. 어드레스가 대체되면 산술코어(219)가 지령을 실행하여 ALU(222)를 대체를 위해 상태 기계에 보낼때까지 상태 기계(218)는 대기를 한다.The address in the program counter is a jump address. 12 bits of this address are contained in an uncoded field. This may be an absolute address or may have a portion replaced from the output of ALU 222. If the address is replaced, the state machine 218 waits until the arithmetic core 219 issues a command to send the ALU 222 to the state machine for replacement.

본 발명에 따른 어드레스의 포맷이 표 23. “점프 어드레스 대체”에 나와 있다. “a”로 표시된 비트는 절대 어드레스 비트를 표시한다. 그리 중요하지 않은 나머지 어드레스는 대체된다. “s”로 표시된 LSB는 대체비트(substitute bit)이다.The format of the address according to the invention is shown in Table 23. “Jump Address Replacement”. Bits marked "a" indicate absolute address bits. The remaining less important addresses are replaced. The LSB, denoted by "s", is a substitute bit.

[표 23]TABLE 23

본 발명의 어드레스 대체 특성은 점프표 구성을 이룬다.The address substitution characteristic of the present invention constitutes a jump table configuration.

[상태기계 내부명령][State Machine Internal Command]

상태 버스에서 반복 조건 테스트를 행하는 것이 바람직하다.It is desirable to perform an iterative condition test on the state bus.

이들 명령은 상태기계(218)의 내부에 있으며 산술코너 219에서 정위피드백을 요구한다. 따라서 이들 명령형은 산술코어 219에 부당한 것으로 마크될 수 있어, 이들을 실행할 수 없을 것이다. 따라서, “유효(Valid)” 비트는 산술코어 219의 유효한 것으로 명령 표시하기 위해 주어진다.These commands are inside the state machine 218 and require stereo feedback at arithmetic corner 219. Thus, these imperatives may be marked as unfair to arithmetic core 219 and may not be executable. Thus, a "Valid" bit is given to indicate that the arithmetic core 219 is valid.

[상태기계 실험][State Machine Experiment]

상태기계의 218 작동을 증명 가능하게 하는 본 발명에서 레지스터 번호는 마이크로프로세서 버스로 액세스 가능할 것이다. 액세스는, “액세스” 레지스터를 하나에 셋팅하여 이 값을 되읽을 때까지 레지스터를 폴링함으로서 얻어진다. 그리고 상태기계는 정지하여 안전하게 액세스한다. 장치는 “액세스” 레지스터에 제로 기입함으로서 재스타트 할 수 있다.In the present invention which enables the demonstration of the 218 operation of the state machine, the register number will be accessible to the microprocessor bus. Access is obtained by setting the "access" register to one and polling the register until this value is read back. The state machine then stops for secure access. The device can be restarted by writing zeros to the "access" register.

마이크로프로세서가 액세스를 가질때 아래의 레지스터로 읽고 쓸 수 있다.When the microprocessor has access, it can read and write to the following registers.

- 프로그램 카운터Program counter

- 콜 리턴 어드레스-Call return address

- 인터럽 리턴 어드레스Interrupt Return Address

- 인터럽 상태 비트(즉, 인터럽이 프로그레스에 있는지를 말함)The interrupt status bit (ie, whether the interrupt is in progress)

- U 코드의 모드 비트Mode bits of U code

표 24는 이들 레지스터의 여러 어드레스를 나타내고 있다.Table 24 shows the various addresses of these registers.

상태기계 218은 마이크로프로세서 이벤트를 발생하여 자체적으로 정지할 수 있다. 이벤트 마스크비트가 설정될 경우에만 장치가 정지한다. 그러면 액세스는 이 이벤트를 서비싱할때 보통의 방식으로 얻어진다. 이벤트는 콜에 의해 리셋 어드레스(○×○○)로 야기된다. 콜은 실제적으로 일어나지 않고 단지 명령이 실행된 후에 이벤트를 발생한다. 그럼에도 불구하고 검사를 위한 명령 ROM 출력에서 남는다.State machine 218 may generate a microprocessor event and stop itself. The device stops only when the event mask bit is set. Access is then gained in the usual way when servicing this event. An event is caused by a call to a reset address (○ × ○○). The call doesn't actually happen, it just fires the event after the command has been executed. Nevertheless, it remains in the command ROM output for inspection.

본 발명의 상태기계 218는 그의 명령을 통한 단일의 단계인 모드를 갖는다. 단일 단계는 MSSR 레지스터의 비트를 0로 설정함으로서 시작된다. 그리고 장치는 각 명령전에 정지한다. 정지 상태를 “1”=정지로 나타낸다. 그리고 실행에 대한 명령은 명령 ROM 의 출력 상태이고 마이크로프로세서 액세스를 거쳐 변환 가능하다. 장치를 재스타트하기 위해 MSSR 레지스터의 비트 1에 “1”을 쓴다. 이들 비트 레지스터 모두는 동기 되어 액세스 되기전에 마이크로 프로세서 액세스를 필요로 한다.The state machine 218 of the present invention has a mode that is a single step through its command. The single step begins by setting the bits in the MSSR register to zero. The device then stops before each command. The stop status is indicated by "1" = stop. Instructions for execution are the output state of the instruction ROM and can be converted via microprocessor access. Write "1" to bit 1 of the MSSR register to restart the device. All of these bit registers require microprocessor access before they can be accessed synchronously.

[상태기계 U코드 맵][State Machine U Code Map]

표 25는 본 발명의 상태기계의 마이크로 코드맵을 보여준다.Table 25 shows the micro code map of the state machine of the present invention.

[표 25]TABLE 25

[상태기계 U 코드워드][State machine U codeword]

마찬가지로 표 26은 본 발명에 따른 상태기계의 마이크로 코드워드를 나타낸다.Table 26 likewise shows the micro codewords of the state machine according to the invention.

[표 26]TABLE 26

여기에서 ;From here ;

a = 어드레스a = address

s = 어드레스 대체s = address substitution

c = 콜 또는 점프c = call or jump

조건 = 점프조건코드 ; 및Condition = jump condition code; And

v = 산술코어 유효 명령v = arithmetic core valid instruction

[산술 코어]Arithmetic Core

본 발명에서 산술코어 219는 MSM 218 내에서 모든 데이타 조작을 행한다. 제67도에서 나타낸 바와 같이, 산술코어 219의 전체적인 구조는 유효한 버스에서 그들의 입력을 선택하여 버스를 출력으로 제공하는 기능블록을 포함한다.In the present invention, arithmetic core 219 performs all data manipulation in MSM 218. As shown in FIG. 67, the overall structure of arithmetic core 219 includes functional blocks that select their inputs on a valid bus and provide the bus as an output.

산술코어 219는 32 광비트이며, 다른 실행에서 구축되도록 하는 8, 16, 24 또 32비트 데이타 경로를 허용하는 비트-슬라이스로 구성된다.Arithmetic Core 219 is 32 optical bits and consists of bit-slices that allow 8, 16, 24 or 32-bit data paths to be built in other implementations.

제68도에서 나타낸 바와 같이, 본 발명의 산술코어 219는, 데이타 흐름과 커뮤니케이션 하는 코컨부(360)와; 계산을 실행하는(그리고 다른 기능 가능) ALU222; 그리고 모든 레지스터를 수용하는 레지스터 파일 221의 3가지 주기능블록을 갖는다. 모든 출력버스는 제68도에도 나타내었다. 블록으로의 입력은 이들 버스에서 선택된다. 이들 셀랙터의 크기와 그들 입력은 변할 수 있으며 U 코드 제어하에 있다.As shown in FIG. 68, the arithmetic core 219 of the present invention comprises: a coconn unit 360 for communicating with the data flow; ALU222 to perform calculations (and possibly other functions); It has three main functional blocks in register file 221 that accommodate all registers. All output buses are also shown in FIG. Input to the block is selected on these buses. The size of these selectors and their inputs can vary and are under U code control.

[ALU][ALU]

본 발명에 따른 ALU 브록222는, 산술코어에서 모든 산술과 숫자조작에 응답가능하다. 이는 상대적으로 단순한 작동의 조합(즉, 이동, 조건반전, 부가)에 의해 실행될 매우 복잡한(재순환, 증배, 분할과 같은) 계산을 가능하게 한다. 이들 블록의 각각을 이하 설명한다. 전체적으로 더 복잡한 계산을 수행하기 위해 어떻게 이들이 산술코어 219에서 사용되는지에 대한 예들을 제공한다.The ALU block 222 according to the present invention is responsive to all arithmetic and numeric manipulations in the arithmetic core. This allows for very complex calculations (such as recycling, multiplication, splitting) to be performed by a combination of relatively simple operations (i.e., shifting, reversing, adding). Each of these blocks is described below. We provide examples of how they are used in Arithmetic Core 219 to perform more complex calculations overall.

[시프트 블록][Shift Block]

본 발명에서, “시프트” 블록은 1비트 왼쪽, 오른쪽 시프트, 또는 노 시프트가 된다. 1비트 버스 K는 액스트라 비트처럼 워드로 회전한다. 이것은 표 27에 나타내었다.In the present invention, the “shift” block is a 1 bit left, right shift, or no shift. The 1-bit bus K rotates in words like an extra bit. This is shown in Table 27.

[표 27]TABLE 27

만약 SS = 0601이면 “NOP”는 ALU222에 전체적으로 시그널한다. 이것은 NO 작동으로서 어떤 상태 플래그가 최종 작동에서 변경되기 시작하는 것을 방지한다.If SS = 0601, "NOP" signals to ALU222 as a whole. This is an NO operation, which prevents any state flag from starting to change in the last operation.

[캐리 블록][Carry block]

캐리(이송)블록은 상태레지스터에서 이동비트를 택하거나 또는 이것을 클리어한다. 단일 워드부가 및 빼기 작동에서 이송비트는 클리어되고 반면 복합단어 작동에서는 앞선 작동에서 발생된(그리고 상태플래그에 저장된) 캐리(이송)는 이송으로 사용된다. 이것은 표 28로 나타내었다.The carry block picks up or clears the move bit in the state register. In single word addition and subtraction operations, the transfer bit is cleared, while in compound word operation, the carry (feed) generated in the preceding operation (and stored in the status flag) is used as the transfer. This is shown in Table 28.

[표 28]TABLE 28

[조건 블록][Condition block]

본 발명에 따른 블록조건, 피가산수 및 ALU 코어기능에의 캐리는 표 29로 이루어진다.The carry of block conditions, added water and ALU core functions according to the present invention is shown in Table 29.

[표 29]TABLE 29

[ALU 코어][ALU Core]

본 발명의 ALU 코어 222는, 두개의 보수 산술을 사용하여 단순한 로직셋트 및 산술기능을 수행한다. 이들은 표 30으로 나타내었다.The ALU Core 222 of the present invention uses two complementary arithmetic to perform simple logic sets and arithmetic functions. These are shown in Table 30.

[표 30]TABLE 30

ALU코어 222의 결과로 4개의 상태플래그가 발생된다(표 31 참조). 이들 모두는 레지스터 파일 221(표 36에 나타낸 바와 같이)에 저장되어 조건코드와 비교를 위해 상태기계 218로 되보내어진다.Four status flags are generated as a result of the ALU Core 222 (see Table 31). All of these are stored in register file 221 (as shown in Table 36) and sent back to state machine 218 for comparison with condition codes.

[표 31]Table 31

[ALU 코드 워드][ALU code word]

표 32는 ALV 마이크로 코드 워드를 나타낸다.Table 32 shows ALV microcode words.

[표 32]Table 32

여기에서,From here,

ss : 시프트블록 제어,ss: shift block control,

ii : 조건블록 제어,ii: condition block control,

ff : ALU 코어 콘트롤ff: ALU core control

c : 캐리블록 콘트롤.c: carry block control.

[ALU의 사용][Use of ALU]

표 33은 본 발명에 따른 ALU 의 여러 기능에 대한 비트 패턴을 나타내고 있다.Table 33 shows the bit patterns for the different functions of the ALU according to the present invention.

[표 33]Table 33

[래지스터 파일][Register file]

제69도는 본 발명의 레지스터 파일 221을 나타낸다. 레지스터 파일 221은 64·32비트 워드 레지스터를 갖는다. 레지스터 파일 221은 일부 워드를 어드레스할 수 있다. 즉, 파일은 64×32비트, 128×16비트, 256×8비트, 512×4비트, 1024×2비트, 또는 2048×1비트 포맷을 어드레스 할 수 있다. 어드레스는 U 코드로부터 바로 부여되거나 특별 레지스터로부터 대체되는 부분을 갖는다. 이는 레지스터의 인덱스된 액세스를 허용한다.69 shows register file 221 of the present invention. Register file 221 has 64-32-bit word registers. Register file 221 may address some words. In other words, the file can address a 64 × 32 bit, 128 × 16 bit, 256 × 8 bit, 512 × 4 bit, 1024 × 2 bit, or 2048 × 1 bit format. The address has a portion either given directly from the U code or replaced from a special register. This allows indexed access of the register.

각 기능에서, 읽기-변형-쓰기가 하나의 단일 레지스터 상에서 이루어진다. 읽기-변형-쓰기는 일부 워드를 파일에 기입하는데 편리하다. 기록원은 그 자신의 독립적인 U 코드와 외부의 다중화 장치에 의해 결정된다. 만약 기록을 원하지 않을 경우엔 레지스터 파일 221의 출력이 다중화 장치에 의해 선택된다.In each function, read-modify-write is done on one single register. Read-Modify-Write is convenient for writing some words to a file. The record source is determined by its own independent U code and external multiplexing device. If no recording is desired, the output of register file 221 is selected by the multiplexing device.

일부 워드는 모드 레지스터의 비트 0에 따라 정부 또는 정부되지 않은 수로 처리된다. 만약 일부 워드가 네거티브(즉 그의 MSB 세트를 가짐)이면 버스의 최대 폭까지 신장된다. 이것은 산술에서 일부 워드의 사용을 용이하게 해 준다.Some words are treated as either positive or non-negative numbers, depending on bit 0 of the mode register. If some words are negative (ie have their MSB set) they are stretched to the maximum width of the bus. This facilitates the use of some words in arithmetic.

본 발명의 레지스터 파일 221 내의 3개의 로케이션은 할당된 버스에 또한 연결되나 다른 레지스터 파일 로케이션과 평행하게 사용 가능케 한다. 이들은 A와 B 레지스터 그리고 제69도에 나타낸 상태 레지스터이다. 레지스터 파일은 또한, 터미널 카운트 레지스터와 함께 어드레스 대체를 위한 인덱스 레지스터와, 상수 레지스터, 그리고 레지스터 파일의 모드를 특정하는 모드 레지스터를 포함한다.The three locations in the register file 221 of the present invention are also connected to the assigned bus but are available in parallel with the other register file locations. These are the A and B registers and the status registers shown in FIG. The register file also includes an index register for address substitution along with a terminal count register, a constant register, and a mode register that specifies the mode of the register file.

[레지스터 파일 어드레싱][Register File Addressing]

본 발명에 따른 어드레싱은 두개의 다른 특징 즉, 워드의 변화폭부를 액세싱하는 가변길이 어드레스와, 그리고 어드레스 대체를 처리해야 한다.The addressing according to the present invention has to deal with two other features: variable length address accessing the width of the word change, and address substitution.

일부 워드 어드레스는 긴 어드레스를 필요로 한다. 따라서 모든 어드레스는 가변 길이로 이루어지고 다음과 같이 부호화 된다; 여기서 a는 어드레스 비트이고, 어드레스 비트의 최소 유의는 “s” 대체 비트이다.Some word addresses require long addresses. Thus all addresses are of variable length and encoded as follows; Where a is the address bit and the minimum significance of the address bit is the “s” replacement bit.

[표 34]Table 34

어드레싱은 큰 엔디언(endian)이다. 다시 말해 워드의 높고 더 유의한 부분이 낮은 어드레스와 어드레스된다.Addressing is a big endian. In other words, the higher and more significant part of the word is addressed with the lower address.

어드레스부 “a...a”는 인덱스 레지스터의 하나와 대체 가능하다. 예로써 표 34에 나타낸 바와 같은 8비트 워드의 어드레스를 사용하여 표 35는 대체될 최소 유의비트의 수를 어떻게 한정하는지를 보여주고 있다. 모든 하강제로는 대체된다.The address portion “a ... a” can be replaced with one of the index registers. By way of example, using an address of an 8-bit word as shown in Table 34, Table 35 shows how to limit the minimum number of significant bits to be replaced. All descendants are replaced.

[표 35]Table 35

예로써 4비트를 32비트 어드레스로 대체하는 것은 0b000001aaa01111 형태를 가지며, 또는 제로 비트를 1비트 어드레스로 대체하는 것은 0b1aaaaaaaaaaaa0 형태를 갖는다.For example, replacing 4 bits with a 32-bit address has the form 0b000001aaa01111, or replacing zero bits with a 1-bit address has the form 0b1aaaaaaaaaaaa0.

본 발명에서 대체는 28비인덱스 레지스터의 하나에서 나오고 레지스터 파일 U 코드워드에서 특정된다. 따라서, 8비트의 최대는 어드레스로 대체할 수 있음을 알 수 있다.In the present invention, the replacement comes from one of the 28 non-index registers and is specified in the register file U codeword. Therefore, it can be seen that the maximum of 8 bits can be replaced by the address.

상기표에서, 0b0000000000000 또는 0b11111111111111과 같은 불법 어드레스를 사용할 수 있음을 알 수 있다. 불법 어드레스는 액세스 되어 알 수 없는 레지스터 파일의 출력버스를 떠나는 어드레스가 없게 되는 결과가 초래된다.In the above table, it can be seen that illegal addresses such as 0b0000000000000 or 0b11111111111111 can be used. Illegal addresses result in no address being accessed and leaving the output bus of an unknown register file.

[레지스터 파일 레지스터 종류][Register File Register Type]

본 발명에서는 복수의 레지스터 파일 레지스터 종류가 있다. 그 각각은 하기와 같다.In the present invention, there are a plurality of register file register types. Each of them is as follows.

· 독립적으로 버스된 레지스터Independently Bused Registers

3개의 레지스터(A, B 및 상태 레지스터)는 레지스터 파일에서 보통의 방식으로 액세스 가능한 그들 자신이 부여한 버스를 갖는다. 이것은 레지스터가 산술코어 219에 더 위치되도록 하고 또, 레지스터 파일에서 다른 것에 평행하게 액세스 가능하게 한다. 독립 버스는 다른 충분한 폭 즉, 32 비트 폭에 레지스터를 단지 액세스 가능하다.The three registers (A, B, and status registers) have their own assigned buses that are accessible in the normal way in the register file. This allows the register to be placed further on arithmetic core 219 and to be accessible parallel to the other in the register file. The independent bus is only accessible to registers at other sufficient widths, i.e. 32 bit wide.

이들 레지스터에 가능한 U 코드 기록은 없다. 이들에의 기록은 자체가 U 코드 제어 워드를 갖는 외부의 다중화 장치에 의해서만 이루어진다. 기록을 방지하기 위해서는 제70도에 나타낸 바와 같이 그들은 그들 자체 값으로 기록되어야 한다.There are no U code records possible in these registers. Writing to them is done only by an external multiplexing device which itself has a U code control word. To prevent writing, they must be recorded at their own values, as shown in FIG.

독립 버스 레지스터가 레지스터 파일에서처럼 기록될 때 독립 버스 기록은 억제된다.Independent bus writes are suppressed when independent bus registers are written as in the register file.

상태 레지스터는 독립 버스 레지스터로 실행된다. 레지스터의 비트는 표 36 으로 규정된다.The status register is implemented as an independent bus register. The bits in the register are specified in Table 36.

[표 36]TABLE 36

· 인덱스와 터미널 카운트 레지스터Index and Terminal Count Registers

28비트 인덱스 레지스터는 어드레스로 대체하기 위해 설치된다. 이들의 하나는 U 코드의 제어하에 명령당 증가 가능하게 된다. 증가된 레지스터가 통과할 때 그의 터미널 카운트는 제로로 리셋트 된다.A 28-bit index register is installed to replace the address. One of these becomes incrementable per instruction under the control of the U code. As the incremented register passes, its terminal count is reset to zero.

인덱스 레지스터는, 터미널 카운트 레지스터 U와 V를 각각 갖는 Y 및 Z라 한다. 이들 모두는 레지스터 파일에 액세스 가능하다.The index registers are referred to as Y and Z having terminal count registers U and V, respectively. All of these are accessible to the register file.

인덱스 레지스터 Z는 그의 출력(현재 이 디코드는 반전이다)에 부착된 소정의 디코더를 갖는다. 모드 레지스터(비트 1)에서 인덱스 모드에 따라 인덱스 레지스터보다 이 디코더가 어드레스 대체로 사용되고 레지스터 파일에서 Z로부터 판독한다(인덱스모드 = 1 판독디코드, 인덱스모드 = 0 판독카운트)Index register Z has a predetermined decoder attached to its output (currently this decode is inverted). Depending on the index mode in the mode register (bit 1), this decoder is used as an address replacement, and read from Z in the register file (index mode = 1 read decode, index mode = 0 read count).

· 상수 레지스터Constant registers

본 발명에서 16개의 레지스터 파일의 32비트 로케이션은 소정의 상수이다. 이들은 보통의 레지스터로 판독한다. 이들 로케이션에 기입은 효과가 없다. (현 실시예에서 선택한 상수는 0∼7이다. 그러나 다른 상수를 사용할 수 있음은 물론이다.)In the present invention, the 32-bit location of the 16 register files is a predetermined constant. These are read into regular registers. Writing to these locations has no effect. (The constant chosen in the present embodiment is 0 to 7. However, of course, other constants can be used.)

본 발명에 따른 이 상수의 실행은 U 코드에서 일정영역과 산술코어에서 일정 버스를 필요로 하지 않는다. 그러나 프로그램에서 사용 가능한 상수를 한정한다. (수 16은 변경 가능하다) 이들 상수는 단위 임시 베이스에 프로그램 된다. 또한, 매우 빈번히 사용되는 값들은 필요시 다중화장치에 연결할 수 있다.Execution of this constant in accordance with the present invention does not require constant buses in certain areas and arithmetic cores in U code. However, it limits the constants available to the program. These constants are programmed into the unit temporary base. In addition, very frequently used values can be connected to the multiplexer if necessary.

[레지스터 파일 어드레스 맵][Register File Address Map]

표 37은 본 발명의 레지스터 파일 어드레스 맵을 나타내고 있다.Table 37 shows the register file address map of the present invention.

[표 37]TABLE 37

[레지스터 파일 U 코드 워드][Register File U Code Word]

표 38은 본 발명에 대한 레지스터 파일 마이크로 코드 워드를 나타낸다.Table 38 shows the register file microcode words for the present invention.

[표 38]Table 38

여기에서From here

a = 전체 레지스터 파일 어드레스(항상 12비트)a = full register file address (always 12 bits)

s = 대체 비트s = replacement bits

r = 대체용으로r = for replacement

l = r로 특정된 증분 인덱스 레지스터incremental index register specified by l = r

[토큰 포트][Token port]

본 발명의 토큰 포트는 데이타 스트림에 대한 산술 코어의 접속이다. 이것은 두개의 와이어 인터페이스 접속이다.The token port of the present invention is the connection of the arithmetic core to the data stream. This is a two wire interface connection.

토큰 포트 입력에서의 데이타는 토큰 포트 판독 싸이클 중에만 정의된다. 그러므로, 이것은 판독 싸이클 중에만 사용되어야 한다.Data at the token port input is defined only during the token port read cycle. Therefore, this should only be used during the read cycle.

판독 싸이클 중에 입력 포트가 타당한 데이타를 포함하지 않거나 기록 싸이클 중에 출력 포트가 허용되지 않는다면, 산술 코어는 정지할 것이다. 따라서, 산술 코어는 동작하지 않으며, 새로운 U 코드 워드를 판독하지 않고, 또한 레지스터를 기록하지 않는다. 산술 코어는 이들 조건이 존재하지 않을 때에만 재 스타트할 것이다.If the input port does not contain valid data during the read cycle or if the output port is not allowed during the write cycle, the arithmetic core will stop. Thus, the arithmetic core does not work, does not read new U code words, and does not write registers. The arithmetic core will only restart when these conditions are not present.

[토큰 포트 U 코드 워드][Token Port U Code Word]

표 39는 토큰 포트 마이크로 코드 워드를 묘사한다.Table 39 depicts token port micro code words.

[표 39]TABLE 39

여기에서From here

l = 입력포트내로의 판독l = read into input port

o = 출력포트로부터의 판독o = read from output port

[멀티플렉서][Multiplexer]

블록들에 대한 소오스의 선택은 멀티플렉서를 사용함으로써 행해진다. (기능 블록에 대한 입력, 예를 들어, ALU는 반드시 저장 블록(예: 토큰 포트 또는 레지스터 파일)으로부터 이어야 한다는 것은 제외하고)버스의 거의 모든 조합은 허용된다.The selection of the source for the blocks is done by using a multiplexer. Almost any combination of buses is allowed (except that input to a function block, eg, ALU, must be from a storage block (eg token port or register file)).

멀티플렉서는 2, 4 또는 8 입력이다. 그러므로, 이들은 그의 입력선택을 제어하도록 1, 2 또는 3비트 워드를 각각 사용한다.The multiplexer is 2, 4 or 8 inputs. Therefore, they use one, two or three bit words respectively to control their input selection.

[UPI 메모리 맵][UPI memory map]

표 40은 본 발명에 따른 MSM 어드레스 맵을 나타낸다.Table 40 shows an MSM address map in accordance with the present invention.

[표 40]TABLE 40

[서 문][Preface]

MPEG 부호화 표준(EGMP-1 및 MPEG-2)에서, 정량화된 계수는 “사상”으로 부호화 된다. 각각의 사상(event)은 RUN 및 LEVEL로 부호화 된다. RUN 은 0이 아닌 계수를 선행하는 제로 계수의 수이다. LEVEL은 그 계수의 값이다. 더욱이, 하나의 특정 사상에서, 블록들의 나머지가 모두 제로임을 지시하도록 최종 비-제로 계수 이후에 블록 종결 문자가 사용된다.In the MPEG coding standards (EGMP-1 and MPEG-2), the quantified coefficients are coded as "imaginary." Each event is encoded as RUN and LEVEL. RUN is the number of zero coefficients that precede nonzero coefficients. LEVEL is the value of the coefficient. Moreover, in one particular idea a block terminator character is used after the last non-zero coefficient to indicate that the rest of the blocks are all zeros.

예를 들어, 이하의 계수 시퀀스를 가정한다:For example, assume the following coefficient sequence:

1, -7, 0, 3, 0, 0, 0, -1, 0, 0, 0, 0, ...0 (총 64 계수)1, -7, 0, 3, 0, 0, 0, -1, 0, 0, 0, 0, ... 0 (total 64 coefficients)

이들은 (RUN, LEVEL)로 표현되는 다음의 사상들에 의해 모델화 된다.These are modeled by the following ideas expressed as (RUN, LEVEL).

(0,1) (0,7) (1,3) (3,-1) (EOB)(0,1) (0,7) (1,3) (3, -1) (EOB)

64계수의 각각이 후속 처리를 위해 단수로 표현되도록 모델링 공정을 역전시키는 것은 역전 모델기의 임무이다.It is the task of the inversion modeler to reverse the modeling process so that each of the 64 coefficients is represented in the singular for subsequent processing.

[인터페이스][interface]

본 발명의 역전 모델기 내로 데이타를 전달하는데 이하의 신호 핀들이 사용된다:The following signal pins are used to pass data into the inversion model of the present invention:

· level [11:0]Level [11: 0]

· run [5:0]Run [5: 0]

· in - extnIn-extn

· in - validIn-valid

· in - acceptIn-accept

레벨[11:0] 버스에 토큰이 전달된다(저 순위 8비트; 레벨[7:0] 에서)Tokens are passed on the level [11: 0] bus (low order 8 bits; at level [7: 0])

RUN[5:0]은 RUN 정보를 지니는 보조 버스로서 작용한다. 이것은 DATA 토큰이 데이타 워드에서를 제외하고는 의미를 갖지 않는다.RUN [5: 0] acts as an auxiliary bus with RUN information. This means that the DATA token has no meaning except in the data word.

역전 모델기의 출력에서는 이하의 신호가 사용된다:The following signals are used at the output of the inversion model:

· out_data [11:0]Out_data [11: 0]

· out_extnOut_extn

· out_validOut_valid

· out_acceptOut_accept

[기능적 설명][Functional description]

DATA 토큰에서의 데이타는 역전 모델기의 출력에 제공되는 DATA 토큰에 항상 64 계수가 존재하도록 확장된다. 대부분의 경우에, DATA 토큰의 최종 데이타 워드는 64차 계수가 발생되지 않도록 한다. 이것은 에러가 아니며, 단지 이 지점에서 EOB 사상이 비트 스트림에 부호화된 것이다. 그러므로, 이 상태에서, 역전 모델기는 총 64계수가 출력에서 발생될 때까지 제로 데이타 토큰 워드를 계속 출력하여야 한다.The data in the DATA token is expanded so that there are always 64 coefficients in the DATA token provided to the output of the inversion model. In most cases, the final data word of the DATA token ensures that no 64th order count occurs. This is not an error, only the EOB mapping is encoded in the bit stream at this point. Therefore, in this state, the inversion modeler must continue to output zero data token words until a total of 64 coefficients are produced at the output.

어떤 상황에서는(예컨대, 데이타 에러가 발생할 때), 역전 모델기로의 입력에서의 DATA 토큰이 64 계수 이상을 나타낼 수 있다. 이 상태에서, 모델기는 여분의 데이타를 모두 폐기하고 단지 64 계수를 포함하는 자신의 출력에서 토큰을 생성하여야 한다.In some situations (eg, when a data error occurs), the DATA token at the input to the inversion modeler may represent more than 64 coefficients. In this state, the modeler should discard all the extra data and generate a token from its output containing only 64 coefficients.

입력에서 나타나는 모든 비-DATA 토큰은 역전 모델기의 출력에 단순히 전달되어 비변조된다.All non-DATA tokens appearing at the input are simply passed to the output of the inversion modeler to be unmodulated.

[타이밍 요건][Timing Requirements]

클럭비에서 역전 모델기를 통해 데이타가 흘러야 하는 것이 본 발명의 요건이다.It is a requirement of the present invention that the data flow through the inversion model at the clock ratio.

1 모델로의 입력에 갭이 존재하지 않고 출력에 접속된 회로가 1 모델의 정지를 야기하지 않는 상황에서(즉, in-valid = 1, out-accept = 1), 클럭 사이클마다 1 모델의 출력에 새로운 데이타 워드가 나타난다. 그러나, 이 상태에서, non-제로 RUN(DATA 토큰에서)이 하나 이상의 데이타 워드를 각 입력에 대해 발생시키기 때문에, 1 모델은 매 단일 클럭 싸이클 마다 그의 입력에서 새로운 데이타를 수용하지 않을 수도 있다.In situations where there is no gap in the input to one model and the circuit connected to the output does not cause one model to stop (i.e. in-valid = 1, out-accept = 1), the output of one model per clock cycle A new data word appears. In this state, however, since non-zero RUN (in the DATA token) generates more than one data word for each input, one model may not accept new data at its input every single clock cycle.

[마이크로프로세서 인터페이스 액세스][Microprocessor Interface Access]

본 발명의 역전 모델기 회로는 그의 정상 작동 모드에서 MPI에 접속될 것이 요구되지 않는다. 에러 조건(과도한 계수)은 마이크로프로세서 인터럽트를 발생시키지 않는다. 이것은 여분의 데이타를 폐기함으로써 내부적으로 처리된다.The inversion modeler circuit of the present invention is not required to be connected to the MPI in its normal operating mode. Error conditions (excessive counts) do not cause microprocessor interrupts. This is handled internally by discarding the extra data.

그러나, 마이크로프로세서 액세스는 블록의 입력에서 스누퍼(시험) 회로에 요구된다.However, microprocessor access is required for the snooper (test) circuit at the input of the block.

[서 문][Preface]

MPEG 부호화 표준에서, 계수들은 고주파수 계수 전에 저주파수 계수가 전달되도록 “지그-재그” 주사된다.In the MPEG coding standard, the coefficients are “zig-zag” scanned such that low frequency coefficients are delivered before high frequency coefficients.

본 발명에 따라, 역전 모델기로부터 수신된 계수의 일차원 스트립을 IDCT에 의해 처리될 수 있는 계수의 2차원 어레이로 변환시키는 것이 역 지그-재그의 기능이다.According to the present invention, it is the function of the reverse zig-zag to transform a one-dimensional strip of coefficients received from the inversion modeler into a two-dimensional array of coefficients that can be processed by IDCT.

MPEG-1에서, 단지 하나의 주사 경로가 사용되며, 이것은 지그-재그를 뜻한다(즉, 명칭). 그러나, MPEG-2는 두 개의 스캔 경로를 사용한다. 첫 번째는 원래의 MPEG-1 경로이며, 두 번째는 비정상적으로 큰 수직 주파수 성분으로 되는 비월 주사 부호화에 사용되도록 최적화된다.In MPEG-1, only one scan path is used, meaning zig-zag (ie name). However, MPEG-2 uses two scan paths. The first is the original MPEG-1 path, and the second is optimized for use in interlaced scan coding with unusually large vertical frequency components.

명백히 지그-재그 주사 순서로 전달되는 계수에 부가하여, 마찬가지로 지그-재그 주사 순서로 정량화 매트릭스가 하향 전송된다. 이것은 MPEG-1, H.261 및 JPEG에서 발생한다. 결과적으로, 본 발명은 역 지그-재그(IDCT의 일부로서 수행됨) 전에 그의 정량기(quantizer)를 갖는다. 그러므로, 이 정량기는 하향 전송된 정량화 매트릭스 계수와 동일 순서로 도달하는 계수의 일차원 스트립에 작용한다. 따라서, 단순이 제1 계수를 제1 매트릭스 요소와, 그리고 제2 계수를 제2 매트릭스 요소와, 등등 연관시켜야 한다.In addition to the coefficients clearly transferred in the zigzag scan order, the quantification matrix is likewise transmitted downward in the zigzag scan order. This occurs in MPEG-1, H.261 and JPEG. As a result, the present invention has its quantizer before reverse zig-zag (performed as part of IDCT). Therefore, this quantifier acts on a one-dimensional strip of coefficients arriving in the same order as the downwardly transmitted quantification matrix coefficients. Thus, the simple should associate the first coefficient with the first matrix element, the second coefficient with the second matrix element, and so forth.

그러나, MPEG-2에는 두 개의 스캔 경로가 존재하므로, 역 지그-재그가 역 정량기를 선행하는 본 발명에 새로운 접근법이 취해졌다. 계수와 하향 전송 매트릭스는 역전 주사되고, 역전 정량기는 2차원 데이타 상에서 작동한다. 이것은 데이타의 모든 3개의 표시(두 개의 지그-재그 주사와 1ZZ의 출력에서의 라스터 주사 순서)에서 제1 계수는 항상 첫 번째이며 최종 계수는 항상 마지막이기 때문에 가능하다. 제1계수는 DC 텀이기 때문에 1 퀀트에서 특별히 처리된다. 최종 계수는 불일치 제어의 결과로서 모든 다른 계수의 값의 함수로서 변경될 필요가 있기 때문에 특별히 처리된다. (따라서 이것은 마지막이어야 한다.) 62 잔류 계수는 동일 방식으로 모두 처리된다(각각이 그 자체의 정량화 매트릭스 요소를 가지는 것을 제외함).However, since there are two scan paths in MPEG-2, a new approach has been taken in the present invention where the reverse zig-zag precedes the inverse quantifier. The count and downlink transmission matrices are inverted scanned and the inverted quantifier operates on two-dimensional data. This is possible because in all three representations of the data (two zig-zag scans and raster scan order at the output of 1ZZ) the first coefficient is always first and the last coefficient is always last. Since the first coefficient is a DC term, it is specially processed in one quant. The final coefficient is specially handled because it needs to be changed as a function of the values of all other coefficients as a result of the mismatch control. (Hence this must be the last.) 62 Residual coefficients are all processed in the same way (except that each has its own quantification matrix element).

[인터페이스][interface]

이하의 신호들은 본 발명의 역 지그-재그 입력에서 사용된다.The following signals are used at the reverse zig-zag input of the present invention.

· in - data [11:0]In-data [11: 0]

· in - extnIn-extn

· in - validIn-valid

· in - acceptIn-accept

이하의 신호들은 역 지그-재그의 출력에서 사용된다.The following signals are used at the output of the reverse zig-zag.

· out - data [11:0]Out-data [11: 0]

· out - extnOut-extn

· in - validIn-valid

· out - acceptOut-accept

[기능적 설명][Functional description]

1ZZ는 이하의 토큰에 응답한다 :1ZZ responds to the following tokens:

· PICTURE _ STARTPICTURE _ START

· ALTERNATE _ SCANALTERNATE _ SCAN

· DATADATA

· QUANT _ TABLEQUANT _ TABLE

모든 다른 토큰들은 1ZZ를 통해 패스되고 변경되지 않는다.All other tokens are passed through 1ZZ and do not change.

PICTURE _ START 토큰은 두 개의 주사 경로 중 어느 하나(예컨대, alternate _ scan)이 제로(MPEG-1 주사를 지시함)를 나타내는 1ZZ의 내부 상태를 리세트시킨다.The PICTURE_START token resets the internal state of 1ZZ where either one of the two scan paths (eg, alternate_scan) indicates zero (indicative of MPEG-1 scan).

ALTERNATE_SCAN은 값 Oxe6을 마스크 Oxfe로 할당할 수 있는 토큰이다.ALTERNATE_SCAN is a token that can assign the value Oxe6 to the mask Oxfe.

ALTERNATE _ SCAN 토큰이 표 41에 표시되어 있다.The ALTERNATE _ SCAN token is shown in Table 41.

[표 41]Table 41

“S”는 후속 DATA에 사용하는 주사의 지시이며, 따라서 1ZZ 레지스터 “alternate_scan”안으로 전송된다."S" is an indication of the scan to use for subsequent DATA, so it is sent into the 1ZZ register "alternate_scan".

DATA 토큰은 alternate_scan의 세팅에 상관없이 주사 경로 제로(MPEC-1 주사 경로)에 따라 재 정돈된다. alternate_scan은 후속 DATA 토큰이 정확히 처리되도록, 어떠한 값을 가지던 간에 보유되어야 한다(즉, 제로로 세트되어서는 안된다).The DATA token is rearranged according to the scan path zero (MPEC-1 scan path) regardless of the setting of alternate_scan. alternate_scan must be retained (ie, not set to zero) of any value, so that subsequent DATA tokens are correctly processed.

QUANT_TABLE 토큰은 alternate_scan의 세팅과 무관하게 주사 경로 제로(MPEG-1주사 경로)에 따라 재정돈된다. alternate_scan은 후속 DATA 토큰이 정확히 처리되도록, 어떠한 값을 가지던 간에 보유되어야 한다. (즉, 제로로 세트되어서는 안된다)The QUANT_TABLE token is rearranged according to the scan path zero (MPEG-1 scan path), regardless of the setting of alternate_scan. alternate_scan must be retained at any value in order for subsequent DATA tokens to be processed correctly. (Ie it should not be set to zero)

[기형 토큰][Hunger Token]

DATA 및 QUANT_TABLE은 모두 기형화될 수도 있다. 명백히, DATA 토큰은 1 모델이 정확히 형성되도록 보장되어야 하므로 정확하여야 한다. 그러나, 이러한 보장은 QUANT_TABLE에 대해서는 유용하지 않다. 기형 QUANT_TABLE 처리가 이행되어야 하므로, 이것은 마찬가지로 DATA 토큰에 대해서도 이행되어야 한다.Both DATA and QUANT_TABLE may be malformed. Obviously, the DATA token must be accurate because it must be guaranteed that 1 model is formed correctly. However, this guarantee is not useful for QUANT_TABLE. Since malformed QUANT_TABLE processing must be implemented, this must be done for DATA tokens as well.

본 발명에 따라, DATA 및 QUANT_TABLE 토큰이 1ZZ로의 입력에 나타날 때 너무 짧으므로 출력에서의 토큰에 정확한 갯수(64)의 데이타 워드를 유도하여야 한다. 이들 워드에 포함된 데이타는 중요하지 않으며, 토큰의 개시 전에 재정돈 RAM에 발생될 임의의 폐기자료이다. 유사하게, 너무 긴 DATA 및 QUANT_TABLE 토큰은 출력에서 정확히 형성된 토큰을 유도하여야 한다. 첫 번째 64 계수(매트릭스 요소)는 사용되어야 하며, 나머지는 폐기되어야 한다.In accordance with the present invention, the DATA and QUANT_TABLE tokens are too short when appearing at the input to 1ZZ, so the exact number of 64 data words must be derived from the tokens at the output. The data contained in these words is not critical and is any waste material that will be generated in the rearranged RAM prior to the initiation of the token. Similarly, DATA and QUANT_TABLE tokens that are too long should derive exactly formed tokens in the output. The first 64 coefficients (matrix elements) should be used and the rest should be discarded.

기형 토큰에 뒤이어, 모든 후속(정확히 형성된) 토큰은 적절히 처리되어야 한다.Following the malformed token, all subsequent (exactly formed) tokens must be properly processed.

발생될 마이크로 프로세서 인터페이스 에러(인터럽트)에 대한 요건은 없다.There is no requirement for a microprocessor interface error (interrupt) to be generated.

[라스터 주사 순서]Raster Scanning Sequence

1ZZ의 출력에서, 본 발명의 DATA 및 QUANT_TABLE 토큰은 2차원 데이타를 나타낸다. 그러나, 계수는 여전히 일차원 시리즈의 수로서 실제로 전달된다. 데이타가 열로 또는 행으로 전달되어야 하는지의 문제가 야기된다.At the output of 1ZZ, the DATA and QUANT_TABLE tokens of the present invention represent two-dimensional data. However, the coefficient is still actually delivered as the number of one-dimensional series. The question arises whether the data should be passed in columns or in rows.

예측 회로는 화소-영역 데이타가 라스터-주사 순서에서 편성될 것을 요구한다. IDCT가 데이타를 전위시키므로, IDCT 안으로 진행하는 주변의 다른 것이어야 한다. 표 42는 DATA 및 QUANT_TABLE 토큰에 대한 1ZZ의 출력에 전달되는 계수의 순서를 나타낸다.The prediction circuit requires that pixel-region data be organized in raster-scanning order. Since the IDCT displaces the data, it must be something else around it going into the IDCT. Table 42 shows the order of the coefficients passed in the output of 1ZZ for the DATA and QUANT_TABLE tokens.

[표 42]Table 42

[마이크로 프로세서 인터페이스 액세스][Microprocessor Interface Access]

1ZZ의 정상 기능에서 마이크로 프로세서 액세스에 대한 요건은 없다. 그러나, 재정돈 RAM이 시험될 수 있도록 액세스가 요구될 수 있다. 또한 스누퍼에 대한 요건도 예측할 수 있다. 양 블록에 대해 1 모델 개시에서의 하나면 충분하다.There is no requirement for microprocessor access in the normal function of 1ZZ. However, access may be required so that rearranged RAM can be tested. You can also predict the requirements for snoopers. One for one model start for both blocks is sufficient.

[서 문][Preface]

이 부분은 예측을 다룬다. 이 도입부에서, 모든 가능한 예측 모드는 열거되며, 정확히 무엇이 행해져야 하는지를 설명하도록 다이어그램이 제공된다.This section deals with forecasts. In this introduction, all possible prediction modes are listed and a diagram is provided to explain exactly what should be done.

이 부분을 통해 수평 차원에서 발생하는 절반-화소 필터링 같은 작동에 대해 특별한 주의가 주어지지 않는다. 이것은 이들 동작이 브롤리(Brolly)에서의 동작과 동일하기 때문이다. 그러나, 수직 차원에서는 비월 화상 포맷 때문에 사물들은 매우 상이하다.This section does not give special attention to operations such as half-pixel filtering that occur in the horizontal dimension. This is because these operations are the same as those in Brolly. However, things are very different in the vertical dimension because of the interlaced picture format.

[프래임 화상에서의 예측][Prediction in Framed Image]

[프레임-기초 예측][Frame-Based Prediction]

이 모드에서, 예측은 기준 프레임으로부터 형성된다. 이 결과는 두 개의 기준 필드가 먼저 프레임내로 조합된 다음 이 프레임으로부터 예측이 이루어지는 것과 같다. 이것은 정확히 브롤리에 개시된 상황과 같다.In this mode, prediction is formed from the reference frame. The result is that two reference fields are first combined into a frame and then prediction is made from this frame. This is exactly the same situation disclosed in Brawley.

절반-화소 필터링은 수직 차원에서 만들어질 수도 있으며, 이것은 벡터의 최소 중요 비트에 의해 트리거된다. 최소 중요 비트에 부가하여, 다음의 가장 중요한 비트(비트1)는 예측의 상부 라인이 상부 기준 필드에서 오는지 또는 하부 기준 필드에서 오는지를 상기 비트가 결정하므로 특별한 중요성을 갖는다.Half-pixel filtering may be made in the vertical dimension, which is triggered by the least significant bit of the vector. In addition to the least significant bit, the next most significant bit (bit 1) is of special importance because the bit determines whether the upper line of the prediction is from the upper reference field or the lower reference field.

따라서, 4가지 경우가 고려되어야 하며, 각각은 수직 벡터의 최소 중요한 2비트의 2진값에 좌우된다.Therefore, four cases should be considered, each dependent on the least significant two-bit binary value of the vertical vector.

[1]=0, 벡터 [0]=1[1] = 0, vector [0] = 1

마찬가지로, 제72도에 도시된 바와 같이, 17(9)라인이 판독되며, 9(5)라인은 상부 기준 필드로부터 판독되고, 8(4)라인은 하부 기준 필드로부터 판독된다.Similarly, as shown in FIG. 72, lines 17 (9) are read, lines 9 (5) are read from the upper reference field and lines 8 (4) are read from the lower reference field.

벡터 [1]=1, 벡터 [0]=0Vector [1] = 1, vector [0] = 0

다시, 제73도에 도시된 바와 같이, 단지 16(8)라인이 판독되지만 예측의 상부 라인을 하부 기준 필드로부터 판독되었다.Again, as shown in FIG. 73, only 16 (8) lines were read but the upper line of the prediction was read from the lower reference field.

벡터 [1]=1, 벡터 [0]-1Vector [1] = 1, vector [0] -1

그리고, 제74도는 17(9)라인이 판독되고, 8(4)라인이 상부 기준 필드로부터 판독되며, 9(5)라인이 하부 기준 필드로부터 판독됨을 나타낸다.And FIG. 74 shows that 17 (9) lines are read, 8 (4) lines are read from the upper reference field, and 9 (5) lines are read from the lower reference field.

따라서, 비트 1은 예측을 발생시키도록 판독되어야 하는 최상부 라인을 어느 기준 필드 보유하는지를 지시한다. 더욱이, 비트 0가 역시 세트된다면, 이것은 절반-화소 필터링이 행해질 수 있도록 어느 기준 필드가 여분의 라인을 가지는 지를 지시한다.Thus, bit 1 indicates which reference field holds the top line that should be read to generate prediction. Moreover, if bit 0 is also set, this indicates which reference field has an extra line so that half-pixel filtering can be done.

양 필드가 DRAM으로부터 판독되기까지는 절반-화소 예측은 행해질 수 없음은 자명하다.Obviously, half-pixel prediction cannot be done until both fields are read from the DRAM.

필드 저장에 있어서의 오프셋을 얻도록 수직 운동 벡터를 스케일링할 때 상당한 주의가 또한 있어야 한다. 아래의 표 43은 효과를 나타낸다.Great care must also be taken when scaling the vertical motion vector to obtain an offset in field storage. Table 43 below shows the effect.

[표 43]Table 43

[필드-기초 예측(프레임 화상)][Field-based prediction (frame picture)]

이 모드에서, 각각의 필드는 독립적으로 처리된다. 두 필드 각각에 대해 별도의 벡터가 사용된다. 각각의 벡터와 관련된 것은 부가 단일 비트 플래그(motion-vertical-field-select)이며, 이것은 예측이 상부 기준 필드로부터 또는 하부 기준 필드로부터 행해져야 하는지를 지시한다. 벡터의 하부 비트는 절반-화소 필터링의 필요성을 지시하지만 비트 1의 특별한 중요성을 갖지 않는다. 필드 벡터는 상이한 유니트의 프레임 벡터를 측정하며; n 값을 갖는 필드 벡터는 2n값을 갖는 프레임 벡터와 마찬가지로 동일한 실제 변위(글라스 상의)를 나타낸다.In this mode, each field is processed independently. Separate vectors are used for each of the two fields. Associated with each vector is an additional single bit flag (motion-vertical-field-select), which indicates whether prediction should be made from the upper reference field or from the lower reference field. The lower bits of the vector indicate the need for half-pixel filtering but have no particular significance of bit 1. The field vector measures frame vectors of different units; A field vector with a value of n represents the same actual displacement (on glass) as with a frame vector with a value of 2n.

그러나, 이때 고려해야할 16가지 경우가 있다. (그 이유는 4개의 2진 변수가 존재하기 때문이다; 두 벡터의 각각에 대해 motion-field-select 및 두 벡터 각각에 대해 0 비트) 묘사해야할 너무 많은 경우가 존재하므로, 이하의 표현은 상부 필드의 예측만을 다룬다. 하부 필드는 유사한 방식으로 얻어진다.However, there are 16 cases to consider. (The reason is that there are four binary variables; motion-field-select for each of the two vectors and 0 bits for each of the two vectors). There are too many cases to describe, so It deals only with the prediction of. The bottom field is obtained in a similar way.

제75도에 도시된 바와 같이, motion-vertical-field-select=0, 벡터 [0]=0As shown in FIG. 75, motion-vertical-field-select = 0, vector [0] = 0

8(4)라인이 상부 기준 필드로부터 판독되어 예측의 상부 필드를 형성한다.Line 8 (4) is read from the upper reference field to form the upper field of prediction.

제76도는 motion-vertical-field-select=0, 벡터 [0]=1을 나타낸다. 9(5)라인은 상부 기준 필드로부터 판독된 다음 절반-화소 필터되어 예측의 상부 필드를 형성한다.FIG. 76 shows motion-vertical-field-select = 0 and vector [0] = 1. Line 9 (5) is read from the upper reference field and then half-pixel filtered to form the upper field of prediction.

마찬가지로, 제77도는 motion-vertical-field-select=1, 벡터 [0]=0을 묘사한다. 8(4)라인은 하부 기준 필드로부터 판독되어 예측의 상부 필드를 형성한다.Similarly, Figure 77 depicts motion-vertical-field-select = 1, vector [0] = 0. Line 8 (4) is read from the lower reference field to form the upper field of prediction.

그리고, 제78도는 motion-vertical-field-select=1, 벡터 [0]=1을 예시한다.And, Figure 78 illustrates motion-vertical-field-select = 1, vector [0] = 1.

99(5)라인은 하부 기준 필드로부터 판독된 다음 절반-화소 필터되어 예측의 상부 필드를 형성한다.Line 99 (5) is read from the lower reference field and then half-pixel filtered to form the upper field of prediction.

[이중 프라임(프레임 화상에서)][Double Prime (in frame image)]

이중 프라임은 이전 부분의 필드-기초 예측의 특별한 경우이다. 본질적으로, 이중-프라임은 두가지 특징을 조합한다.Double prime is a special case of the field-based prediction of the previous part. In essence, double-prime combines two features.

· 4개의 독립 필드 예측이 형성되도록 (어느 정도 이들이 각기 다른 벡터를 가지는 것에는 독립적임) 특별한 방법으로 벡터를 부호화하여 효과적으로 단지 하나의 운동 벡터가 전달된다. 따라서 벡터 오버 헤드는 극적으로 감소된다.Only one motion vector is effectively delivered by encoding the vector in a special way so that four independent field predictions are formed (to some extent they are independent of having different vectors). Thus the vector overhead is dramatically reduced.

· 각각의 필드에 대해, 예측 정보는 각각의 기준 필드로부터 판독된다. 그 다음 이것은 최종 예측을 형성하도록 평균화된다. 이것은 별도의 전방 및 후방 예측이 이루어진 다음 평균화될 때 B-화상의 경우와 매우 유사하다.For each field, prediction information is read from each reference field. This is then averaged to form the final prediction. This is very similar to the case of B-pictures when separate forward and backward predictions are made and then averaged.

본 발명에서, 벡터 디코딩은 모두 파서에서 행해질 것이다. 따라서, 예측 회로가 데이타를 수신할 때, 실제로 4개의 분리 벡터가 존재할 것이다. ( · 각각의 필드에 대해, 예측 정보는 각각의 기준 필드로부터 판독된다. 그 다음 이것은 최종 예측을 형성하도록 평균화된다. 이것은 별도의 전방 및 후방 예측이 이루어진 다음 평균화될 때 B-화상의 경우와 매우 유사하다.In the present invention, vector decoding will all be done at the parser. Thus, when the prediction circuit receives the data, there will actually be four separation vectors. (For each field, prediction information is read from each reference field. This is then averaged to form the final prediction. This is very much like the case of B-pictures when separate forward and backward predictions are made and then averaged. similar.

본 발명에서, 벡터 디코딩은 모두 파서에서 행해질 것이다. 따라서, 예측 회로가 데이타를 수신할 때, 실제로 4개의 분리 벡터가 존재할 것이다. )In the present invention, vector decoding will all be done at the parser. Thus, when the prediction circuit receives the data, there will actually be four separation vectors. )

이중-프라임 평균화는 B-프레임 평균화 회로를 재 사용함으로써 행해진다(이중-프라임은 자체로 B-프레임에 사용될 수 없다). 그러므로, 예측 회로에 대한 단지 관련 병합만이 신호화에 포함되며, 이것은 후방 예측(후방 벡터 토큰 등을 사용함)이 전방 기준 필드(후방 기준 필드에 대향함)로부터 행해져야 함을 지시한다. P-화상이 후방 예측을 정상적으로는 결코 요구하지 않으므로, 어느 기준 저장이 “후방” 예측에 사용되는지를 결정할 수 있도록, 예측 회로는 단지 화상 타입(P 또는 B)의 기록을 유지하면 된다.Double-prime averaging is done by reusing the B-frame averaging circuit (double-prime cannot itself be used for B-frames). Therefore, only relevant merging for the prediction circuit is included in the signaling, which indicates that backward prediction (using backward vector tokens, etc.) should be made from the forward reference field (as opposed to the backward reference field). Since the P-picture never normally requires backward prediction, the prediction circuit only needs to keep a record of the picture type (P or B) so that it can determine which reference store is used for the "backward" prediction.

[필드 화상에서의 예측][Prediction in Field Image]

[필드-기초 예측][Field-based prediction]

이것은 프레임 화상에서의 필드-기초 예측과 매우 유사하다. motion-vertical-field-select 및 운동 벡터의 최소 중요한 비트에 좌우하여 4가지 경우가 존재한다. 예측은 단순히 디코드된 화상에 대한 것이므로, 형성되는 예측에서 상부-필드 및 하부-필드를 토론하는 것은 부적절하다 (이것은 모두 상부-필드이거나 모두 하부-필드이다).This is very similar to field-based prediction in frame pictures. There are four cases depending on the motion-vertical-field-select and the least significant bit of the motion vector. Since the prediction is simply for a decoded picture, it is inappropriate to discuss the top-field and the bottom-field in the prediction that is made (this is either all top-field or all bottom-field).

제79도는 motion-vertical-field-select=0, 벡터 [0]=0을 나타낸다.FIG. 79 shows motion-vertical-field-select = 0 and vector [0] = 0.

16(8)라인은 상부 기준 필드로부터 판독되어 예측을 형성한다.Line 16 (8) is read from the upper reference field to form the prediction.

제80도는 motion-vertical-field-select = 0, 벡터 [0]=1 을 보여준다.FIG. 80 shows motion-vertical-field-select = 0 and vector [0] = 1.

17(9)라인은 상부 기준 필드로부터 판독되고 절반-화소 필터되어 예측을 제공한다.Line 17 (9) is read from the upper reference field and half-pixel filtered to provide prediction.

제81도는 motion_vertical_field_select = 1, 벡터 [0] = 0을 묘사한다.Figure 81 depicts motion_vertical_field_select = 1, vector [0] = 0.

16(8) 라인은 하부 기준 필드로부터 판독되어 예측을 형성한다.Line 16 (8) is read from the lower reference field to form the prediction.

제82도는 motion_vertical_field_select = 0, 벡터 [0] = 1을 보여준다.FIG. 82 shows motion_vertical_field_select = 0, vector [0] = 1.

17(9) 라인은 하부 기준 필드로부터 판독되고 절반-화소 필터되어 예측을 제공한다.Line 17 (9) is read from the lower reference field and half-pixel filtered to provide prediction.

[16×8 MC][16 × 8 MC]

이 모드에서, 마이크로블록은 서로 중첩하여 16×8 영역으로 분할된다. 각각의 영역에 대해, 별도의 필드 벡터가 전달된다. 다시, 고려해야할 16가지 경우가 존재한다(그 이유는 4개의 이진 변수들이 있기 때문이다; 두개의 벡터 각각에 대해 motion_vertical_field_select 및 두개의 벡터 각각에 대해 비트 0). 또다시, 예시해야할 너무 많은 경우가 존재하므로 이하의 묘사는 상부 16×8 영역을 다루기만 한다. 하부 영역은 유사한 방식으로 얻어진다.In this mode, the microblocks are divided into 16 × 8 regions overlapping each other. For each region, a separate field vector is passed. Again, there are 16 cases to consider (because there are four binary variables; motion_vertical_field_select for each of the two vectors and bit 0 for each of the two vectors). Again, there are too many cases to illustrate, so the description below only covers the upper 16x8 area. The lower region is obtained in a similar way.

제83도는 motion_vertical_field_select = 0, 벡터 [0] = 0을 보여준다.FIG. 83 shows motion_vertical_field_select = 0, vector [0] = 0.

8(4) 라인은 상부 기준 필드로부터 판독되어 상부 16×8 영역의 예측을 형성한다.Line 8 (4) is read from the upper reference field to form a prediction of the upper 16x8 region.

제84도는 motion_vertical_field_select = 0, 벡터 [0] = 1을 묘사한다.FIG. 84 depicts motion_vertical_field_select = 0, vector [0] = 1.

9(5)라인은 상부 기준 필드로부터 판독되고 절반-화소 필터되어 상부 16×8 영역의 예측을 형성한다.Line 9 (5) is read from the upper reference field and half-pixel filtered to form a prediction of the upper 16x8 region.

제85도는 motion_vertical_field_select = 1, 벡터 [0] = 0을 나타낸다.FIG. 85 shows motion_vertical_field_select = 1, vector [0] = 0.

8(4) 라인은 하부 기준 필드로부터 판독되어 상부 16×8 영역의 예측을 형성한다.Line 8 (4) is read from the lower reference field to form a prediction of the upper 16x8 region.

제86도는 motion_vertical_field_select = 1, 벡터 [0] = 1을 묘사한다.Figure 86 depicts motion_vertical_field_select = 1, vector [0] = 1.

9(5) 라인은 하부 기준 필드로부터 판독되고 절반-화소 필터되어 상부 16×8 영역의 예측을 형성한다.Line 9 (5) is read from the lower reference field and half-pixel filtered to form the prediction of the upper 16x8 region.

[필드 화상에서의 이중 프라임][Double Prime in Field Image]

필드 화상에서의 이중 프라임은 단순히 필드 화상에서의 필드 예측의 특별한 경우이다. 두개의 필드 벡터가 사용된다(상부 기준 필드를 참고하는 외에 하부 기준 필드를 참고하고 파서는 이것을 보장한다). 예측들중 하나는 후방 예측을 만드는 것으로 나타나지만, 이것은 P-화상이기 때문에, 예측회로는 이것을 제2 전방 예측으로서 인터럽트한다. 이어서 두개의 결과적인 예측은 B-프레임 평균화에 사용된 것과 동일한 회로를 사용하여 평균화된다.Double prime in a field picture is simply a special case of field prediction in a field picture. Two field vectors are used (in addition to referring to the top reference field, see the bottom reference field and the parser guarantees this). One of the predictions appears to make a backward prediction, but since it is a P-picture, the prediction circuitry interrupts it as a second forward prediction. The two resulting predictions are then averaged using the same circuit used for B-frame averaging.

[종합 편성][General organization]

제87도는 본 발명에 따라 디스플레이 파이프라인의 종합 편성을 나타낸다. 데이타는 DRAM 인터페이스부터 단일의 다중 인터페이스에 도달한다. 더욱이, DRAM 인터페이스는 정확한 갯수의 바이트 이상의 다음 32 바이트 경계까지 처리된 라인에 데이타를 공급한다. 그러나, 화소는 의도된 디스플레이 영역 외측에 존재할 수도 있는 라인의 끝을 향한다.87 shows the overall organization of the display pipeline in accordance with the present invention. Data reaches from a DRAM interface to a single multiple interface. Moreover, the DRAM interface supplies data to the processed line up to the next 32 byte boundary over the correct number of bytes. However, the pixels are directed towards the end of the line, which may exist outside the intended display area.

데이타에 부가하여, DRAM 인터페이스는 각각의 채널 Y, Cr 및 (b)에 대해 하나의 비트를 공급하며, 각 채널은 바이트가 현재의 디스플레이 라인에서 마지막인지를 지시한다. 또다른 비트가 공급되어 어느 필드로부터 데이타가 오는지를 지시한다.In addition to the data, the DRAM interface supplies one bit for each channel Y, Cr and (b), each channel indicating whether the byte is last in the current display line. Another bit is supplied to indicate from which field the data comes.

본 발명의 디스플레이 파이프 라인에서의 제1블록은 3개의 채널을 분할한다. 크로미난스(Cr 및 C6) 데이타는 수직 업샘플기 210에 공급된다. 루미흔스(Y) 데이타는 필요에 따라 FIFO 에서 지연시킬 수 있다.The first block in the display pipeline of the present invention divides three channels. Chrominance (Cr and C6) data is fed to a vertical upsampler 210. Luminance (Y) data can be delayed in the FIFO as needed.

수직 업샘플기 210은 루미난스 데이타 만큼의 크로스난스 데이타의 라인이 인재하도록 크로미난스 데이타를 2:1 인자로 업샘플하는 임무를 갖는다. 이것을 행하기 위하여, 수직 업샘플러는 크로미난스 데이타의 각 라인을 저장하고 출력 화소를 발생시키며, 이 출력 화소들은 이 라인과 후속 라인 사이에 삽입된다.The vertical upsampler 210 is tasked to upsample the chrominance data by a 2: 1 factor so that the line of crossnanance data equals the luminance data. To do this, the vertical upsampler stores each line of chrominance data and generates an output pixel, which is inserted between this line and subsequent lines.

디스플레이 파이프 라인에서의 다음 단계는 “수평 정렬 370” 으로 명명된다. 이것은 수평 업샘플기 212의 일부로서 수행된다. 이것의 임무는 데이타를 정렬시켜 각 라인의 개시에서 3개의 채널의 각각의 제1 화소가 수평 업샘플기 212에 정확히 공급되도록 하는 것이다.The next step in the display pipeline is named "Horizontal Alignment 370". This is done as part of the horizontal upsampler 212. Its task is to align the data so that each first pixel of each of the three channels at the start of each line is correctly fed to the horizontal upsampler 212.

각 라인의 끝에서, 일반적으로 채널들은 상이한 시간에 “데이타를 소모한다”. “수평 정렬” 블록 370은 너무 많은 데이타를 가지는 채널들로 부터 여분의 데이타를 폐기하는 한편 다른 채널을 정지시켜 모든 3개의 채널이 정렬되고 다음 디스플레이 라인을 개시할 때까지 대기시키는 일을 갖는다.At the end of each line, channels generally "consume data" at different times. “Horizontal Alignment” block 370 has the task of discarding redundant data from channels with too much data while stopping other channels to wait until all three channels are aligned and start the next display line.

본 발명에서, 수평 업샘플기 212는 데이타를 수평으로 업샘플하여 데이타를 연신함으로써 TV 스크린의 글라스를 채운다. 실리콘 영역을 절감하기 위하여, 3개의 채널 사이에 필터가 할당된다. 이것은 필터의 총 출력비가 27Mbytes/s(클럭비) 이어야 하기 때문에 행해질 수 있다. 이 데이타가 CCIR 601 순서에서 다중화 됨으로써, 발생된 데이타 스트립은 최종 데이타 스트림만으로 단순히 다중화된다.In the present invention, the horizontal upsampler 212 fills the glass of the TV screen by stretching the data by up-sampling the data horizontally. To save silicon area, a filter is allocated between the three channels. This can be done because the total output ratio of the filter must be 27 Mbytes / s (clock ratio). As this data is multiplexed in CCIR 601 order, the generated data strips are simply multiplexed only into the final data stream.

수평 업샘플기(212)는 DRAM 인터페이스에 의해 공급된 데이타의 양을 단순히 취하며, 이것을 선택 인자에 의해 스케일한다. 일반적으로, 이들은 라스터내의 실제 라인 길이에 대해 너무 적거나 많은 데이타를 생성한다. 이것은 출력 멀티클렉스에서 처리된다.Horizontal upsampler 212 simply takes the amount of data supplied by the DRAM interface and scales this by a selection factor. In general, they produce too little or too much data about the actual line length in the raster. This is handled in the output multiplex.

또한, “수평 정렬” 블록 370은 라인을 완료하는데 각 채널의 얼마나 많은 화소가 요구되는지 알 필요는 없다. 업샘플링 필터에 있어 출력 화소에 대한 입력 화소의 갯수 사이의 관계가 아주 간단하지 않으므로 이 갯수를 계산하는 것은 매우 곤란하다. 수평 정렬 블록 370은 “요구대로” 그의 3개의 채널 각각의 수평 업샘플기 212에 데이타를 단순히 공급한다. 즉, 수평 업샘플기는 그안으로 요구되는 갯수의 화소를 요구 순서로 “당긴다”. 디스플레이 라인의 끝에서, 채널들중 하나가 먼저 데이타를 소모하고 이것은 다른 채널들에 대한 잔류 데이타(만일 있다면)가 폐기되어야 함을 지시한다.In addition, the “horizontal alignment” block 370 need not know how many pixels of each channel are required to complete the line. It is very difficult to calculate this number because the relationship between the number of input pixels to the output pixel is not very simple in the upsampling filter. Horizontal alignment block 370 simply supplies data to the horizontal upsampler 212 of each of its three channels “as required”. That is, the horizontal upsampler "pulls" the required number of pixels into it in the order required. At the end of the display line, one of the channels consumes data first, which indicates that residual data (if any) for the other channels should be discarded.

VTG 333은 라스터를 통해 단순히 계수하고, 출력 멀티플렉스 371에 공급되는 일련의 타이밍 신호들을 발생시킨다. 이들 신호들중 약간은 내부 신호이며, 이들은 출력 멀티플랙스 371이 어떻게 최종 라스터를 설립하는지를 알린다. 다른 신호들은 싱크(sync) 및 블랭킹 같은 “외부” 신호이며, 이들은 역시 출력 멀티플렉스 371 회로에 공급되어 데이타와 동일한 갯수의 클럭 싸이클에 의해 지연된다.The VTG 333 simply counts through the raster and generates a series of timing signals that are fed to the output multiplex 371. Some of these signals are internal signals, and they tell how output multiplex 371 establishes the final raster. Other signals are "external" signals such as sync and blanking, which are also fed to the output multiplex 371 circuit and delayed by the same number of clock cycles as the data.

출력 멀티플렉스 371 블록은 여러가지 임무를 갖는다. 이들중 가장 중요한 것은 아마도 데이타로부터 두개의 와이어 “인터페이스니스”를 제거하는 임무일 것이다. 수평 업샘플기 212로부터 공급된 데이타는 여전히 관련 Valid 신호를 갖는다(그리고, 출력 멀티플렉스는 accept 신호를 제공한다). 멀티플렉스의 출력에의 데이타는 2-와이어 인터페이스를 갖지 않으며, 클럭 싸이클마다 1 바이트씩 단순히 클럭된다.The output multiplex 371 block has several tasks. Perhaps the most important of these is the task of removing the two wire “interfaces” from the data. Data supplied from horizontal upsampler 212 still has an associated Valid signal (and the output multiplex provides an accept signal). The data at the output of the multiplex does not have a two-wire interface and is simply clocked by one byte per clock cycle.

출력 멀티플렉스 371은 화상 주위에 경계를 페인팅하는 직무를 갖는다. 상부 및 왼쪽 경계는 VTG 333의 제어하에서 페인트된다. VTG 333은 단순히 출력 멀티플렉스 371이 경계 칼라의 필요 갯수의 화소를 발생시키도록 알린다. 화상의 오른쪽 및 하부에서, 출력 멀티플렉스 371은 그 자체의 경계를 페인트하는데 이것은 화상 데이타를 소모하였기 때문에 행해진다.The output multiplex 371 has the task of painting a border around the picture. The upper and left boundaries are painted under the control of VTG 333. The VTG 333 simply informs the output multiplex 371 to generate the required number of pixels of the border color. At the right and bottom of the picture, the output multiplex 371 paints its own border, which is done because it has consumed picture data.

디스플레이 파이프 라인에서의 최종 블록은 8-비트 대 16-비트 출력 모드 컨버터 372 이다. 이것은 아주 간단히 플립-플롭(flip-flop) 및 멀티플렉서이다. 이것은 출력 PAD 자체에서 행해지도록 의도되었다. 이것을 행함으로써, 16-비트 버스보다는 단순히 8-비트 버스를 정할 수 있다. 각각의 비트는 두개의 출력 패드로 진행한다.The final block in the display pipeline is an 8-bit to 16-bit output mode converter 372. This is very simply a flip-flop and multiplexer. This is intended to be done on the output PAD itself. By doing this, one can simply define an 8-bit bus rather than a 16-bit bus. Each bit goes to two output pads.

[수평 업샘플러][Horizontal Upsampler]

[서 문][Preface]

본 발명에 따라, 수평 업샘플기 212는 디코드된 화상을 디스플레이 라스터에 적합하도록 연신하기 위해 업샘플링 또는 보간하는 임무를 수행한다. 본 발명의 업샘플러 212는 4가지 모드로 동작할 수 있다:In accordance with the present invention, the horizontal upsampler 212 performs the task of upsampling or interpolating to stretch the decoded picture to fit the display raster. Upsampler 212 of the present invention can operate in four modes:

1) 1:1 - 출력이 입력과 동일함1) 1: 1-Output is same as input

2) 2:12) 2: 1

3) 3:23) 3: 2

4) 4:34) 4: 3

약간의 화상 시뮬레이션 및 가능한 이행에 대한 고려가 있은 후에, 3개의 탭필터를 사용하여 보간을 행할것을 결정한다.After some image simulation and consideration of possible transitions, three tap filters are used to decide to interpolate.

필터는 상이한 세트의 필터 계수를 이용하여 각각의 연속 출력이 발생한다는 점에서 “다상”필터이다. 상의 갯수는 업샘플링 비의 분자와 항상 동일하다. 따라서, 4:3 업샘플러는 4개의 상을 가지며, 매 4개의 출력 샘플은 동일한 필터 계수를 사용하여 발생된다.A filter is a "polyphase" filter in that each successive output occurs using a different set of filter coefficients. The number of phases is always the same as the molecule of the upsampling ratio. Thus, a 4: 3 upsampler has four phases and every four output samples are generated using the same filter coefficients.

업샘플러 212는 입력 데이타로서 수신한 것 보다 많은 출력 데이타를 발생시킨다. 사실, 필터가 새로운 입력을 수신하지 않는 상의 수는 업샘플링 비의 분자와 분모 사이에서 상이하다. 각각의 비(1:1 은 제외)에서, 이것은 하나이다. 그러므로, 상 둘레의 각각의 완료 싸이클에 대해, 상들중 하나에는 새로운 입력 데이타가 수신되지 않는다. 이 경우에 데이타는 이전의 상에 대한 것과 동일하다. 그러나, 필터 계수는 이전의 상과는 다르다.Upsampler 212 generates more output data than received as input data. In fact, the number of phases for which the filter does not receive new inputs differs between the numerator and denominator of the upsampling ratio. In each ratio (except 1: 1), this is one. Therefore, for each completion cycle around the phase, no new input data is received in one of the phases. In this case the data is the same as for the previous phase. However, the filter coefficient is different from the previous phase.

[4:3 업샘플링][4: 3 upsampling]

4:3 업샘플링에서, 필터 계수는 표 44에 도시되어 있으며, 제88도는 동작시의 필터를 나타낸다. 출력 화소는 입력 화소의 계량 평균으로서 형성된다.In 4: 3 upsampling, filter coefficients are shown in Table 44, and FIG. 88 shows a filter in operation. The output pixel is formed as the weighed average of the input pixels.

[표 44]Table 44

최종 상(상 3)이 계산되기 전에 새로운 입력 데이타가 수신되지 않음에 주의Note that no new input data is received before the final phase (phase 3) is calculated.

[3:2 업샘플링][3: 2 upsampling]

표 45는 3:2 업샘플링을 나타내며, 제89도는 필터 동작을 나타낸다.Table 45 shows 3: 2 upsampling and FIG. 89 shows the filter behavior.

[표 45]TABLE 45

[2:1 업샘플링][2: 1 upsampling]

마찬가지로, 표 46은 2:1 업샘플링을 나타내며, 제90도는 그의 필터링을 나타낸다.Similarly, Table 46 shows 2: 1 upsampling and FIG. 90 shows its filtering.

[표 46]TABLE 46

상 1은 필터 계수 128, 128, 0을 가지는 것으로 하여 동일하게 잘 개시되었음에 주목하라. 이것은 필터 계수가 4:3 업샘플기의 상 2에 대한 것과 동일하다는 이점을 갖는다. 그러나, “최종 상”을 계산할 때 새로운 입력이 수신되지 않는 법칙이 부정되는 단점을 갖는다.Note that Phase 1 is equally well described as having filter coefficients 128, 128, 0. This has the advantage that the filter coefficients are the same as for phase 2 of the 4: 3 upsampler. However, there is a disadvantage that the law of not receiving a new input is negated when calculating the "final phase".

[경계효과]Boundary effect

화상의 가장자리에서, 화상 영역의 외측에 놓이는 화소로부터 형성되는 출력 화소를 발생시킬 필요가 있다. 이 문제를 피하기 위해, 필터가 화상의 가장자리에서 실현되지 않고 진행하도록 가장자리 화소들을 화소 반복시킬 필요가 있다.At the edge of the image, it is necessary to generate an output pixel formed from a pixel lying outside the image area. To avoid this problem, it is necessary to pixel repeat the edge pixels so that the filter proceeds without realizing at the edge of the image.

본 발명에서처럼 3개의 탭 필터인 경우에, 영상의 왼쪽에서 단지 하나의 오른쪽에서 하나를 반복할 필요가 있다(왼쪽에서 5개의 탭 필터가 요구되고, 오른쪽에서 2개가 요구된다). 이것이 제91도에 도시되어 있다.In the case of a three tap filter as in the present invention, it is necessary to repeat one on the left side of the image, only one on the right side (five tap filters on the left side and two on the right side). This is shown in FIG.

그러므로, 개념적으로 이행은 두개의 박스로 형성된 것처럼 나타낸다. DRAM 인터페이스 16 화소 폭의 곱인 데이타를 항상 공급하기 때문에 화상이 16 화소 폭의 곱이 아닌 경우에는 계획이 적절히 행해지지 않는다.Therefore, conceptually, the transition appears to be formed of two boxes. Since data that is a product of the DRAM interface 16 pixels in width is always supplied, a plan is not properly performed when the image is not a product of 16 pixels in width.

[출력 화소의 수][Number of output pixels]

본 발명에 있어서, 업샘플기는 소정 갯수의 입력 화소에 대해 한정된 갯수의 출력 화소를 발생시킨다. 이것은 얼마나 많은 화소가 업샘플기의 출력에서 발생하고 따라서 얼마나 많은 화소가 화상을 라스터 안에 적합시키기 위해 마무리(또는 경계 화소 첨가) 되어야 하는지를 파서 상태기가 결정하도록 허용하기 때문에 중요하다.In the present invention, the upsampler generates a limited number of output pixels for a predetermined number of input pixels. This is important because it allows the parser state to determine how many pixels occur at the output of the upsampler and therefore how many pixels should be finished (or border pixels added) to fit the image into the raster.

수평 업샘플기로부터의 첫 번째 타당 출력은 업샘플기에 입력되는 세번째 화소에 응답하여 발생한다(이것은 3개의 탭 필터이기 때문에). 하나의 화소가 반복되므로, 업샘플기에 제2 실제 화소가 입력될 때 이것이 발생한다.The first valid output from the horizontal upsampler occurs in response to the third pixel input to the upsampler (since it is a three tap filter). Since one pixel is repeated, this occurs when the second real pixel is input to the upsampler.

입력되는 최종(즉, 반복) 화소에 응답하여 모든 가능한 출력 샘플이 발생되었을때 최종 타당 출력이 발생한다. 다상 필터의 최종 상은 제2-최종 상과 동일한 입력 데이타를 이용하여 계산되므로, 업샘플기로 들어가는 이 최종 반복 화소의 결과로서 하나 또는 두개의 출력 화소가 발생될 수 있다.The final valid output occurs when all possible output samples have been generated in response to the last (i.e., repeated) pixel input. Since the final phase of the polyphase filter is calculated using the same input data as the second-final phase, one or two output pixels can be generated as a result of this last repeating pixel entering the upsampler.

만일 이것이 행해진다면, 업샘플기는 “q” 출력 샘플을 발생시킬 것이다:If this is done, the upsampler will generate a "q" output sample:

[방정식 1]Equation 1

q = N(pDIVM) + (pREMM)q = N (pDIVM) + (pREMM)

N:M 업샘플기에 대한 “P” 입력 샘플에 응답하여In response to the “P” input sample for the N: M upsampler

예를들어, 4:3 업샘플기에 대해, 표 47은 다음과 같이 묘사될 수 있다.For example, for a 4: 3 upsampler, Table 47 can be depicted as follows.

[표 47]TABLE 47

[위치신호][Position signal]

본 발명에서의 비데오 데이타와 함께 두개의 신호가 전달된다. 이들은 출력 멀티플렉스를 허용하여 데이타가 출력 라스터내의 적절한 위치 내로 페인트 되도록 보장한다.Two signals are delivered with the video data in the present invention. They allow output multiplexing to ensure that the data is painted into the proper location within the output raster.

여기에는:This includes:

· last_in_lineLast_in_line

· field_id 가 있다.Field_id

last_in_line은 하나의 화소 시간과 신호에 응답하며, 관련 화소는 주사 라인에서의 최종 화소이다.last_in_line responds to one pixel time and signal, with the associated pixel being the last pixel in the scan line.

field_id는 어느 필드에 데이타가 속하는지를 지시한다. “0”는 공간적으로 상부 필드를 지시한다. “1”은 공간적으로 하부 필드를 지시한다. 이 지정은 임의의 경계 라인 따위가 디코드된 영상에 인가되기 전에 적용된다. field_id는 필드의 두번째 내지 최종과 최종 화소 사이에서 한 화소의 상태를 너무 일찍 변경시킨다. 이것은 다음 필드의 첫번째 화소를 기다리지 않고 필드의 최종 화소가 정의되게끔 한다. 그러나, 어떤 이유로 디코딩이 정지된다면 “다음필드”는 존재하지 않는다. field_id 신호가 제93도에 도시되어 있다.field_id indicates which field the data belongs to. “0” spatially indicates the upper field. “1” spatially indicates the lower field. This designation is applied before any boundary lines are applied to the decoded image. field_id changes the state of one pixel too early between the second and last and last pixels of the field. This allows the last pixel of the field to be defined without waiting for the first pixel of the next field. However, if decoding stops for some reason, the "next field" does not exist. The field_id signal is shown in FIG.

진 필드 지시기가 요구된다면, 하나의 화소 시간 만큼 field-id를 지연시킴으로써 획득할 수 있다.If a true field indicator is required, it can be obtained by delaying the field-id by one pixel time.

이들 신호는 전체 디스플레이 파이프라인을 통한 데이타와 함께 그들의 방식으로 작업하므로, 3개가 아닌 두개의 신호를 사용하는 것이 중요한데(필드 신호에서 최종 화소를 허용함), 그 이유는 이것이 많은 플립-플롭을 절감하기 때문이다.Since these signals work their way with the data through the entire display pipeline, it is important to use two signals instead of three (allowing the final pixel in the field signal), because this saves a lot of flip-flops. Because.

[다중화된 데이타]Multiplexed data

다중화된 데이타에 위치신호가 인가될때, 주의가 요망된다.Care should be taken when position signals are applied to the multiplexed data.

데이타는 Cby Cry의 순서로 다중화된다.Data is multiplexed in the order of Cby Cry.

본 발명에서, 3개의 샘플(Cby Cr)은 시간내에 함께 입사되며, 따라서 불가분으로 나타난다. 잔류 바이트(y)는 선행(Cby Cr) 화소와 후속(Cby Cr) 화소 사이에 위치한다.In the present invention, the three samples (Cby Cr) are incident together in time and thus appear inseparably. The residual byte y is located between the preceding (Cby Cr) pixel and the subsequent (Cby Cr) pixel.

결과적으로, 라인내의 최종 바이트는 Cr 또는 y이다(3:2에 의한 업샘플링은 홀수의 Y 화소를 발생시킨다). 만일 라인에서의 최종 바이트가 Cr이면, 라인의 처음 바이트는 항상 Cb 이기 때문에 다중 신호에 불연속성이 존재한다:As a result, the last byte in the line is Cr or y (upsampling by 3: 2 generates an odd number of Y pixels). If the last byte on the line is Cr, there is a discontinuity in the multiple signals because the first byte of the line is always Cb:

(CbY, Cr)(Y)(CbY, Cr)\(CbY, Cr)(Y)(CbY, Cr)(CbY, Cr) (Y) (CbY, Cr) \ (CbY, Cr) (Y) (CbY, Cr)

[수평 정렬][Horizontal alignment]

업샘플기의 입력에는, 세개의 상이한 채널이 라인업 된다는 보장이 없다.At the input of the upsampler, there is no guarantee that three different channels will be lined up.

정렬을 얻기 위하여, 본 발명에서, 수평 업샘플기와 수평 정렬 블록들 사이의 “프로토콜”이 합치되어야 한다. 본 발명에 따라, 프로토콜은 다음과 같이 행한다:In order to achieve alignment, in the present invention, the "protocol" between the horizontal upsampler and the horizontal alignment blocks must match. According to the invention, the protocol is carried out as follows:

· 수평 블록은 화소를 필요에 따라 수평 업샘플기에 공급한다. 소정 채널에 대해 데이타를 소모했을때, 라인의 최종 화소를 표시하는 신호를 사용하여 필터에 신호를 출력한다. 이것은 반복 화소에 대해서 발생할 뿐이다.Horizontal blocks feed the pixels to the horizontal upsampler as needed. When data is consumed for a given channel, a signal is output to the filter using a signal representing the last pixel of the line. This only happens for repetitive pixels.

· 수평 업샘플기는 소정 채널로부터의 최종 화소를 일단 공급하도록 하고 현재 라인내의 그 채널로부터의 다른 화소를 요청하지 않는다. 그러나, 필터는 데이타를 소모한 것으로 알려진 채널로부터 화소를 요구하기 직전까지 다른 채널 들로부터 임의의 필요화소를 취하여 동작을 계속한다. 필터는 최종 화소에 표시를 하며 출력에서 라인내의 마지막으로서 발생시킬 수 있다. 이 지점에서, 데이타의 다음 라인을 위한 준비로서 자체가 리세트된다.The horizontal upsampler only supplies the last pixel from a given channel once and does not request another pixel from that channel in the current line. However, the filter continues to operate by taking any necessary pixels from other channels until just before requesting a pixel from a channel known to have consumed data. The filter marks the last pixel and can be generated as the last in the line at the output. At this point, it is reset itself in preparation for the next line of data.

· 수평 업샘플기는 이미 고갈된 채널용의 데이타를 필터가 수신하는지를 관찰하며, 필터는 다음 라인의 최초 화소를 요구한다. 이 지점에서, 다른 두 채널상의 모든 잔류 화소들은 폐기된다. 이들 채널들 각각에 공급될 다음 화소는 라인의 최초 화소일 것이다. 두개의 별도의 블록(수평 정렬 블록 및 수평 업샘플기 블록)을 고려하는 것이 편리하더라도, 동작의 설명을 위해 두개를 함께 수행한다.The horizontal upsampler monitors whether the filter receives data for a channel that has already been exhausted, and the filter requires the first pixel of the next line. At this point, all remaining pixels on the other two channels are discarded. The next pixel to be supplied to each of these channels will be the first pixel of the line. Although it is convenient to consider two separate blocks (horizontal alignment block and horizontal upsampler block), the two are performed together to illustrate the operation.

[업샘플링 비][Upsampling ratio]

업샘플링비는 2비트 이진수로서 필터에 공급된다. 필터가 감음 방식으로 동작하도록, 업샘플링 비는 필드 시간마다 한번씩 자체 업샘플기에 의해 샘플되어야 한다. 비를 공급하는 회로는 현재 필드중의 임의의 시간에 다음 필드에 대한 준비로서 샘플링 비를 갱신하도록 허용된다.The upsampling ratio is supplied to the filter as a 2-bit binary number. In order for the filter to operate in a damping manner, the upsampling ratio must be sampled by its own upsampler once per field time. The circuit for supplying the ratio is allowed to update the sampling ratio in preparation for the next field at any time in the current field.

비는 각 필드의 최초 화소가 실제로 수신될 때 이전 필드의 최종 필드 직후 보다는 샘플되어야 한다. 이런식으로, 리세트후의(또는 디코딩시의 어떤 정지후)의 최초 필드는 정확한 비로 샘플되지 않는다.The ratio should be sampled immediately after the last field of the previous field when the first pixel of each field is actually received. In this way, the first field after reset (or after any stop in decoding) is not sampled at the correct ratio.

[비디오 타이밍 발생 비][Video Timing Generation Ratio]

[서 문][Preface]

이 부분은 본 발명에 따른 비디오 타이밍 발생기 회로(VTG 333)를 개시한다. VTG는 주이 여러 유사 비디오 동기 신호를 발생시키도록 응답하며, 또한 디스플레이 시스템의 현재 라스터 위치의 지식을 유지하도록 응답한다. 이것은 VTG가 출력 멀티플렉스에 대한 제어신호를 제공하도록 하며, 출력에 대한 활동 비디오, 경계 및 블랭킹 소오스를 선택한다. 셋업시 선택 가능한 두개의 프레임 사이즈(PAL 및 NTSC) 및 관련 동기 거동과 함께 아날로그 및 디지탈 표준이 지원된다. VTG에의 배선 입력을 적재하는 토큰에 경계 또는 다듬기 쪽이 특정된다.This part discloses a video timing generator circuit VTG 333 according to the present invention. The VTG responds to the note to generate several similar video sync signals and also to maintain knowledge of the current raster position of the display system. This allows the VTG to provide control signals for the output multiplex and select the active video, boundary and blanking source for the output. Analog and digital standards are supported with two selectable frame sizes (PAL and NTSC) and associated sync behavior during setup. The boundary or trimming side is specified in the token that loads the wiring input to the VTG.

[수평 타이밍][Horizontal Timing]

수평 타이밍 변수들이 제94도에 예시되어 있다. 이들은 특정될 수 있는 임의의 경계 또는 다듬기와 관련된 변수들인 변동치 및 고정치(PAL 또는 NTSC에 대한)로 분할된다.Horizontal timing variables are illustrated in FIG. 94. These are divided into variances and fixed values (relative to PAL or NTSC) which are variables associated with any boundary or refinement that can be specified.

디스플레이 되는 비디오의 비율 특성은 절반-라인 기초 계산에 대한 요건을 부여하며, 각각의 절반 라인에 대해 여러 타이밍 지점이 별도로 도시된다.The ratio characteristic of the displayed video places a requirement on half-line based calculations, with several timing points shown separately for each half line.

라인은 초기 블랭킹 주기, SAV 토큰의 삽입, 활동주기, EAV 토큰의 삽입 및 후미 블랭킹 주기를 포함한다. 블랭킹 라인중, 활동 영역은 경계 및 데이타 대신 삽입된 블랭크 값을 갖는다.The line includes the initial blanking cycle, the insertion of the SAV token, the activity cycle, the insertion of the EAV token and the trailing blanking cycle. Among the blanking lines, the active area has a blank value inserted in place of the boundary and data.

라인 싱크 펄스는 매 라인(HSYNC)의 개시에 나타난다. 소정 블랭킹 라인에서, 두개의 싱크 펄스가 나타나며, 하나는 개시시에 다른 하나는 최초 절반 라인 후에 나타난다. 이들의 폭은 어느 수직 영역이 활동하는가에 좌우된다: 등가화 또는 세레이션(필드 싱크).Line sync pulses appear at the beginning of every line HSYNC. In a given blanking line, two sync pulses appear, one at the start and the other after the first half line. Their width depends on which vertical area is active: equalization or serration (field sink).

초기 수평 블랭킹 주기중, 다듬기 값에 따라 화소들이 폐기되며(만일 다듬기 비트가 세트된다면) - 선행 라인으로부터의 RHS 다듬기 화소를 폐기하도록 120 싸이클의 고정주기가 허용된다. 현재 라인에 대한 LHS 화소는 폐기되고 활동 영역의 개시까지 화소들은 정지된다. 화소들이 폐기되는 데이타 스트림에는 갭이 없어야 하며 그렇지 않으면 왜곡이 발생한다.During the initial horizontal blanking period, pixels are discarded according to the trim value (if the trim bit is set)-a fixed cycle of 120 cycles is allowed to discard the RHS trim pixel from the preceding line. The LHS pixel for the current line is discarded and the pixels are frozen until the start of the active area. There should be no gaps in the data stream where pixels are discarded or distortion will occur.

그러나, 마무리(corp) 비트가 세트되지 않으면, 경계 L의 주기에 대해 경계값을, 이어서 화 폭에 대한 데이타, 그리고 활동 영역의 끝에서 경계를 다시 삽입함으로써 경계가 구성된다: 경계 R 값은 계산할 필요는 없다.However, if the corp bit is not set, the boundary is constructed by reinserting the boundary value for the period of boundary L followed by the data for the picture width and the boundary at the end of the active area: the boundary R value is calculated. There is no need.

총 수직 경계와 다듬기 폭은 화소로 특정화 된다. LHS 경계/다듬기 값은 샘플링용 2개의 화소를 양립시키기 위해 다중화 되어야 한다. 결과적으로, 그 값은 클럭 싸이클의 항목에서 4개로 다중화 되어야 한다. 이는 화소에서 원래의 총 경계값으로 부터 최하위 2 비트를 마스킹을 제거함으로써 성취될 수 있다. 예컨대, 특정된 경계가 91 화소이면, 좌측 경계는 88 싸이클 길이가 되고 화상폭은 2 싸이클(720-91)이 될 것이다.The total vertical boundary and the trim width are specified in pixels. The LHS boundary / smoothing values must be multiplexed to ensure two pixels for sampling. As a result, the value must be multiplexed to four in the item of the clock cycle. This can be accomplished by removing masking the least significant two bits from the original total threshold in the pixel. For example, if the specified boundary is 91 pixels, the left boundary will be 88 cycles long and the image width will be 2 cycles 720-91.

출력 맥스(max)에 도달한 화소 스트링은 32화소 블록을 제공하도록 채워진다.The pixel string reaching the output max max is filled to provide 32 pixel blocks.

지원되는 스케일링 요소와 이를 고려하면 1 라인 동안 수신되는 최대 화소수는 832개가 될것이다. 이는 최대 다듬기 값이 112 화소가 되고, LHS와 RHS에서 다듬기 싸이클이 112로 주어지는 수단이다.Considering the scaling factor supported and this, the maximum number of pixels received in one line will be 832. This means that the maximum smoothing value is 112 pixels and the smoothing cycle is given 112 at the LHS and RHS.

[수직 타이밍 - 팔(PAL)][Vertical Timing-Arm (PAL)]

본 발명에 따른 PAL용 수직 타이밍 파라미터는 제95도에 나타내었다. 두개의 피일드가 분리되어 도시 되었으며, 그들은 약간 다른 타이밍을 갖는다. 분석 파라미터는 그늘진 영역에 의해 표시되며 각 피일드는 동일하며, 디지탈 파라미터는 파형에 의해 도시된다. 단순화를 위해, 제로-경계의 경우가 도시되었다. 제로가 아닌 수직 경계가 특정화 되어지면 경계는 경계 T의 주기동안 화상 높이용 데이타가 삽입되어지고 경계가 활성영역의 경계가 될때까지 삽입된다. 경계 T와 화상 높이는 각각 경계 L과 화상폭(수평 타이밍)을 분석하는 방식으로 계산된다. 초기 경계(경계 T)는 4로 다중화되고, 하프 라인의 항목에서 이 시간은 상부 경계가 2로 다중화 되어야 하므로 재 다중화 되어야 한다.Vertical timing parameters for the PAL according to the present invention are shown in FIG. Two shields are shown separately and they have slightly different timing. Analysis parameters are represented by shaded areas and each field is the same, and digital parameters are shown by waveforms. For simplicity, the case of zero-boundary is shown. If a non-zero vertical boundary is specified, the boundary is inserted for the image height data for the period of the boundary T until the boundary becomes the boundary of the active area. The boundary T and the image height are calculated by analyzing the boundary L and the image width (horizontal timing), respectively. The initial boundary (boundary T) is multiplexed to 4, and for the half line item this time must be remultiplexed because the upper boundary must be multiplexed to 2.

MPEG는 PAL에 대해 비디오의 576 라인을 부호화하는 반면, 아날로그 표준은 525 만을 지정한다. 이 차이는 필드당의 576 하프-라인에 대한 출력 데이타를 선택하고, 단지 필요 575 라인에 대한 아날로그 블랭킹 신호를 표명함으로써 조절된다.MPEG encodes 576 lines of video for PAL, while the analog standard specifies 525 million. This difference is adjusted by selecting the output data for 576 half-lines per field and expressing the analog blanking signal for only the required 575 lines.

[수직 타이밍 - NTSC][Vertical Timing-NTSC]

다음에, 본 발명에 따라 NTSC 수직 타이밍이 제96도에 예시되어 있다. 이것은 비록 약간 더 복잡하다 하더라도 본질적으로 PAL 타이밍과 유사하다. MPEG는 NTSC용 비디오의 480 라인을 부호화하는 반면, 아날로그 표준은 483을 지정한다. 이것은 경계의 3라인이 갭을 메우도록 프레임 마다 삽입되어야 함을 의미한다(필드당 3 하프라인). 더욱이, 공정한 수직 블랭킹 지시기 V는 활동 비디오 라인 전에 부가 경계 라인들이 패딩으로서 삽입되도록 요구하는 방식으로 지정된다. 앞부분에서 설명한 바와 같이, 이미 지시된 라인들에 부가하여 비제로 수직 경계가 삽입된다. 더욱이, 수직 다듬기는 어느 표준에도 허용되지 않는다.Next, NTSC vertical timing is illustrated in FIG. 96 in accordance with the present invention. This is essentially similar to PAL timing, although slightly more complicated. MPEG encodes 480 lines of video for NTSC, while the analog standard specifies 483. This means that three lines of border must be inserted frame by frame to fill the gap (three half lines per field). Moreover, the fair vertical blanking indicator V is specified in a manner that requires additional boundary lines to be inserted as padding before the active video line. As explained earlier, non-zero vertical boundaries are inserted in addition to the lines already indicated. Moreover, vertical smoothing is not allowed in any standard.

현재 디지탈 블랭크 신호 V에 대해 약간의 불확실성이 존재하는데, 그 이유는 여러 기준 소오스들이 모순 정보를 제공하기 때문이다. 각각 관련 경계 선택 신호 SB 및 SB′와 더불어 V 및 V′로 나타내지는 두개의 메인 타이밍 가능성이 존재한다.There is currently some uncertainty about the digital blank signal V, because several reference sources provide contradictory information. There are two main timing possibilities, denoted V and V ', with associated boundary select signals SB and SB', respectively.

[VTG 구조][VTG structure]

본 발명의 비디오 타이밍 발생기는 수평 및 수직 타이밍 영역에 대한 별도의 기계를 포함한다. 수직 기계는 수평 기계에 대한 제어신호를 제공하며, 이것은 차례로 수직 카운터에 대한 절반-라인 증분 신호를 제공한다.The video timing generator of the present invention includes separate machines for the horizontal and vertical timing regions. The vertical machine provides a control signal for the horizontal machine, which in turn provides a half-line incremental signal for the vertical counter.

VTG로의 입력은:Input to the VTG is:

· 클럭 및 리세트Clock and reset

· NTSC가 아닌 PALPAL, not NTSC

· 다듬기 지시기에 의한 수평 경계값Horizontal boundary value by trim indicator

· 수직 경계값Vertical threshold

출력은:The output is:

· 수평, 수직 및 합성 싱크 및 블랭킹 신호Horizontal, vertical, and composite sink and blanking signals

· 데이타, 경계, 블랭킹에 대한 선택신호Selection signal for data, boundary and blanking

· 다듬기에 대한 폐기 데이타 비트Discard data bits for smoothing

· 삽입 SAV 및 EVAInsert SAV and EVA

· SAV 및 EAV의 구성에 대한 F 및 V값F and V values for the configuration of SAV and EAV

· SAV/EAV 삽입에 대한 2-비트 YUV 위치 카운터2-bit YUV position counter for SAV / EAV inserts

· 개시기 화상의 개시를 지시하는 최초라인 비트First line bit indicating the start of the initiator image

[수평기재][Horizontal]

싱크 신호를 포함하여 모든 출력은 출력 멀티플렉스 블록으로 진행하고, 이것은 데이타와 동기화되어 유지될 수 있다. 수평 기계는 제94도에 도시된 바와 같이 여러 타이밍 지점의 도달을 검출하도록 하드웨어를 갖는 카운터이다. 카운트는 제로로부터 절반 라인 길이로 진행하며(이것은 PAL 및 NTSC 에 대한 것과는 상이함), 각 절반라인에 대해 반복된다. 각각의 고정 타이밍 지점에 대해 배선 비교기가 존재하며, 이것들은 표준에 따라 활성화된다. 더욱이, 경계값(필드마다 한번씩 다듬어짐), 화소폭을 결정하는 감산기 및 경계값으로 부터 제로까지 계산하는 보조 카운터 용의 레지스터가 존재한다. 이 절차는 메인 절반라인 코이닝과 평형하게 발생한다. 데이타 경로는 10비트 넓이이며, 15 배선 비교기는 PAL 및 NTSC를 수행하는데 요구된다. 이 현재 실시예의 구조가 근사한 사이즈로 제97도에 도시되어 있다. 데이타 경로는 360u × 330u로 평가된다.All outputs, including the sync signal, go to the output multiplex block, which can be kept in sync with the data. The horizontal machine is a counter with hardware to detect the arrival of various timing points as shown in FIG. The count runs from zero to half line length (this is different than for PAL and NTSC) and is repeated for each half line. There is a wire comparator for each fixed timing point, which is activated according to the standard. Furthermore, there are registers for the threshold value (one trimmed once per field), a subtractor for determining the pixel width, and an auxiliary counter for calculating from the threshold value to zero. This procedure occurs in parallel with the main half-line coining. The data path is 10 bits wide and 15 wire comparators are required to perform PAL and NTSC. The structure of this current embodiment is shown in FIG. 97 at an approximate size. The data path is evaluated as 360u × 330u.

데이타 경로에 부가하며, 본 발명의 VTG에서의 대부분의 제어 논리는 수평기계와 관련된다. 이것은 아마도 100-200 게이트에 달할 것이다.In addition to the data path, most of the control logic in the VTG of the present invention is associated with a horizontal machine. This will probably amount to 100-200 gates.

수평 기계로의 입력은:The input to the horizontal machine is:

· 클럭 및 리세트Clock and reset

· 수평 경계값 및 다듬기 비트Horizontal Threshold and Trim Bits

· 라인, 등가화 또는 필드 싱크 지시기Line, Equalization, or Field Sink Indicators

· NTSC 아닌 PALPAL, not NTSC

· 수직 블랭크Vertical blank

· 삽입 수직 경계Insert vertical boundary

수평 기계로부터의 출력은:The output from the horizontal machine is:

· 수평 및 합성 블랭크Horizontal and synthetic blanks

· 삽입 데이타Insert data

· 삽입 경계Insertion boundary

· 삽입 블랭크 값Insert blank value

. 폐기 입력. Discard input

· 삽입 SAV 또는 EAV 및 YUN 카운트Insert SAV or EAV and YUN Counts

· (hsync) 수직 동기신호(Hsync) vertical sync signal

· 합성 싱크Synthetic sink

· 라인의 개시· Start of line

· 절반-라인 증분Half-line increments

[수직 기계][Vertical machine]

수직 데이타 경로는 수평 데이타 경로와 본질상 동일한 구조를 갖지만, 22 하드웨어 비교기(PAL에 대해 8, NTSC에 대해 14)를 갖는다. 주 카운터는 각 절반라인을 증분시키고 차례로, 각 절반라인을 통해 절반라인을 계수하고, 각 필드를 통해 절반-라인을 계산한다. 이것은 또한 10비트 넓이이다.The vertical data path has essentially the same structure as the horizontal data path, but has 22 hardware comparators (8 for PAL and 14 for NTSC). The main counter increments each half line, in turn counting half lines through each half line, and counting half-lines through each field. This is also 10 bits wide.

더욱이, 시험의 목적으로 절반-라인 펄스 입력을 다른 더 빈번한 클럭과 다중화시켜 수직기계가 수평기계와 독립적으로 가동할 수 있도록 하는 것이 유리하다.Furthermore, it is advantageous to multiplex the half-line pulse input with other more frequent clocks for testing purposes so that the vertical machine can operate independently of the horizontal machine.

평가된 사이즈는 360u × 420u 이다.The estimated size is 360u × 420u.

수직 기계로의 입력은:The input to the vertical machine is:

· 클럭 및 리세트Clock and reset

· NTSC 아닌 PALPAL, not NTSC

· 수직 경계값Vertical threshold

· 절반-K라인 증분Half-K line increment

수직 기계로부터의 출력은:The output from the vertical machine is:

· 선택 등가, 필드 또는 라인 싱크(동기)Selective equivalence, field or line sink (synchronous)

· 수직 블랭크(아날로그)Vertical blanks (analog)

· 수직 싱크Vertical sink

· SAV/EAV 구성에 대한 F, V 및 V′ 비트F, V, and V ′ bits for SAV / EAV configuration

· 삽입 수직 경계Insert vertical boundary

· 삽입 데이타Insert data

· 삽입 블랭크 값Insert blank value

· 프레임의 개시Start of frame

[배선 비교기 구성]Wiring Comparator Configuration

본 발명에서, 배선 비교기 구성은 메모리열 디코더와 유사한 스타일로 사전 충전되거나 풀업편성된 일련의 n-형 트랜지스터의 스트링에 기초한다. 전형적으로, 이들 비교기는 소정 평가 영역에서 약 8u 높이이다.In the present invention, the wire comparator configuration is based on a string of a series of n-type transistors precharged or pulled up in a similar style as the memory string decoder. Typically, these comparators are about 8u high in a given evaluation area.

[출력 멀티플렉스][Output multiplex]

본 발명의 출력 멀티플렉스는 디스플레이용 데이타를 함께 두는 임무를 갖는다. 이것은 VTC로부터 획득한 타이밍 정보와 함께 디스플레이 파이프라인의 앞부분으로부터 도달하는 데이타를 조합한다.The output multiplex of the present invention has the task of putting together data for display. This combines the data arriving from the front of the display pipeline with timing information obtained from the VTC.

출력 멀티플렉스의 다른 입력 임무는 두개의 와이어 인터페이싱을 제거하는 것이다. 출력 멀티플렉스까지의 모든 파이프라인 단계는 2-와이어 인터페이스를 가지며, 사실 출력 멀티플렉스의 입력에 도달하는 데이타는 항상 너무 일찍 도달하고 저 accept를 취함으로써 정지된다. 그러나 장치의 출력에는 2-와이어 인터페이스가 존재하지 않는다.Another input task of the output multiplex is to eliminate two wire interfacing. All pipeline stages up to the output multiplex have a 2-wire interface, in fact the data arriving at the input of the output multiplex always arrives too early and is stopped by taking low accept. However, there is no two-wire interface at the output of the device.

2-와이어 인터페이싱의 상기 제거를 얻기 위하여, 수평 업샘플기의 출력에 도달하는 데이타를 DRAM이 정지시키지 않도록 데이타 공급 동력이 구분되어야 한다.In order to achieve this elimination of two-wire interfacing, the data supply power must be separated so that the DRAM does not stop the data reaching the output of the horizontal upsampler.

기본적으로, 출력 멀티플렉스는 데이타의 필드를 출력할 것인지 아닌지에 대해 필드 기초에 의해 필드상에서 결정한다. 어떤 지점, 필드의 첫번째 활동 라인의 개시부에 근접한 지점에서, 출력 멀티플렉스는 결정을 행한다. 그의 입력에서 대기하는 타당 데이타가 있으면(즉, in_accept가 낮음), 데이타 출력을 개시한다. 반면, 타당 데이타가 존재하지 않으면(예를 들어, 첫번째 화상이 디코드되기전), 전체 화상을 통해 경계 칼라를 페인트할 것이다.Basically, the output multiplex determines on the field by field basis whether or not to output a field of data. At some point, near the beginning of the first active line of the field, the output multiplex makes a decision. If there is valid data waiting on its input (i.e. low in_accept), the data output starts. On the other hand, if there is no valid data (eg, before the first picture is decoded), it will paint the border color over the entire picture.

실제로, 이 절차는 데이타가 정확한 필드내로 페인트될 것을 출력 멀티플렉스가 보장하여야 하기 때문에 다소 복잡하다. 즉, 디스플레이가 개시하기 전에 정확한 필드에 속하는 타당 데이타가 대기하여야 한다.In practice, this procedure is rather complicated because the output multiplex must ensure that data is painted into the correct fields. That is, valid data belonging to the correct field must wait before the display starts.

만일 어떤 지점에서 데이타가 더 이상 타당하지 않고, 동시에 출력 멀티플렉스가 디스플레이 안으로 페인트하기에 유용한 타당 데이타를 갖는 것으로 예측되며(이것은 결코 발생하지 않음), 출력 멀티플렉스는 출력 경계 칼라로 복귀하여 필드의 나머지에 대해 이것이 계속된다.If at some point the data is no longer valid and at the same time it is expected that the output multiplex has valid data useful for painting into the display (which never happens), the output multiplex returns to the output boundary color to This continues for the rest.

[경계 발생][Boundary occurrence]

제98도는 본 발명에 따른 화상 디스플레이의 왼쪽 및 오른쪽에 대한 경계 칼라의 발생을 나타낸다.Fig. 98 shows the generation of the border colors for the left and right sides of the image display according to the present invention.

도시된 바와 같이, VTG는 출력 멀티플렉스에서 경계 칼라를 선택하는 신호를 가정함으로써 화상의 왼쪽에서 경계 영역을 발생시킨다. 그러나, 화상의 오른쪽에서, 경계 칼라는 출력 멀터플렉스 자체에 의해 발생된다. 이것은 데이타를 “소모”하고 경계 칼라내의 화상의 나머지 폭을 페인트함을 인식함으로써 행해진다.As shown, the VTG generates a border region on the left side of the picture by assuming a signal to select a border color in the output multiplex. However, on the right side of the image, the border color is generated by the output multerplex itself. This is done by recognizing that it "consumes" the data and paints the remaining width of the image in the border color.

데이타의 “소모”에 대한 두개의 해석이 가능하다. 하나는 수평 업샘플기로부터의 출력 데이타가 타당하지 않다는 것이다. 그러나, 이것은 여기에서 의미하는 바는 아니다. 이 경우에, 하나는 last_in_line 신호에 의해 표시된 화소가 라인내의 최종 것으로 진행하면서 출력 스트림내에 포함된 후에 데이타를 소모한다. 제99도는 화사의 클립핑이 발생할때의 등가작용을 나타낸다.Two interpretations of the "consumption" of the data are possible. One is that the output data from the horizontal upsampler is not valid. However, this does not mean here. In this case, one consumes data after the pixel indicated by the last_in_line signal has been included in the output stream while proceeding to the last in the line. 99 shows an equivalent action when clipping of the firing occurs.

도시된 바와 같이, VTG는 출력 멀티플렉스에 신호를 보내어 신호를 가정함에 의해 화상의 왼쪽으로 화소를 클립하며 출력 멀티플렉스에 입력 화소를 폐기하도록 알린다. 일단 이것이 발생하고 나면, VTG는 신호를 보내어 출력 멀티플렉스가 잔류 화소를 출력하게끔 개시시킨다. 활동 라인잉 끝에서(즉, 720화소 이후), VTG는 신호를 나타내지 않고, 출력 멀티플렉스는 그의 입력상의 데이타내의 임의의 잔류화소를 폐기한다. 일반적으로, VTG가 다듬기 발생을 지시하는 시간과 활동 라인의 개시 사이에는(시간상의) 갭이 있다. 이것은 VTG의 구성을 상당히 단순화시킨다. 출력 멀티플렉스는 다듬기 신호가 나타날때 화소를 폐기하고 활동라인 주기의 개시까지 대기한다.As shown, the VTG sends a signal to the output multiplex to assume the signal to clip the pixel to the left side of the image and to tell the output multiplex to discard the input pixel. Once this occurs, the VTG signals to start the output multiplex to output the residual pixels. At the end of the active line (ie after 720 pixels), the VTG does not present a signal and the output multiplex discards any residual pixels in the data on its input. In general, there is a gap (in time) between the time that the VTG indicates a trimming occurrence and the start of the activity line. This greatly simplifies the configuration of the VTG. The output multiplex discards the pixel when the trim signal appears and waits until the start of the active line period.

[출력 멀티플렉스][Output multiplex]

출력 멀티플렉스는 여러 소오스의 데이타의 다중화를 함께 제어하여 CCIR 601 8비트 다중화 데이타 스트림을 형성한다.The output multiplex controls the multiplexing of the data of different sources together to form a CCIR 601 8-bit multiplexed data stream.

타이밍(즉, 다중화 될때)은 VTG에 의해 상당히 제어된다. 출력 멀티플렉스는 그들의 고레벨 발행과 관계한다. 예를 들어, 디코딩의 개시시, 디스플레이용으로 화상이 유용하지 않을때, 출력 멀티플렉스는 전체 영상을 통해 경계 칼라를 페인팅할 것이다. 결국, 첫번째 디코드된 화상은 수평 업샘플기에 도달한다. 전형적으로, 이것은 필드의 개시부에서 편리하게 발생하지 않는다. 출력 멀티플렉스는 필드시간 마다 한번씩 “디스플레이용으로 타당 데이카가 준비되었는가?”를 질문한다. 그렇지 않으면, 이것은 다음 필드가 발생하도록 대기한다(그리고, 그 사이에 판명된 임의의 타당 데이타는 다음 필드의 개시를 기다려야 한다).Timing (ie when multiplexed) is significantly controlled by the VTG. Output multiplexes are related to their high level issuance. For example, at the start of decoding, when the picture is not useful for display, the output multiplex will paint the border color over the entire picture. As a result, the first decoded picture reaches the horizontal upsampler. Typically, this does not occur conveniently at the beginning of the field. The output multiplex asks once per field hour, "Is there a valid daka ready for display?" Otherwise, it waits for the next field to occur (and any valid data found in between must wait for the start of the next field).

출력 멀티플렉스는 또한 SDRAM 인터페이스로 부터 도달하는 데이타의 정확한 필드가 PAL 또는 NTSC 라스터의 정확한 필드내로 페인트 되도록 보장한다.The output multiplex also ensures that the correct fields of data arriving from the SDRAM interface are painted into the correct fields of the PAL or NTSC raster.

더욱이, 데이타와 관련하여, 출력 멀티플렉스는 또한 핀에 출력하기 위한 블랭킹 신호 및 정확한 싱크를 선택한다.Moreover, with regard to data, the output multiplex also selects the correct sync and blanking signal for output to the pin.

이것은 광범위한 합성 인코더, DAC′s 등에의 접속을 용이하게 한다. 출력 멀티플렉스용의 레지스터는 표 48에 나타낸 바와 같다. 출력 멀티플렉스 제어를 위한 비트가 표 49에 나타나 있다.This facilitates access to a wide range of synthesized encoders, DAC's and the like. The registers for the output multiplex are shown in Table 48. The bits for output multiplex control are shown in Table 49.

출력 멀티플렉스와 관련한 MPI 레지스터의 4개의 바이트가 존재한다:There are four bytes of the MPI register associated with the output multiplex:

[표 48]TABLE 48

[표 49]Table 49

a. 비트의 세팅과 상관없이, 크로미난스 데이타(b 및 Cr)는 블랭킹중 0×80(128 십진수)일 것이다.a. Regardless of the setting of the bit, the chrominance data (b and Cr) will be 0x80 (128 decimal) during blanking.

[비데오 디코더 명세 및 특징][Video Decoder Specification and Features]

전술한 상세한 설명에 부가하여, 본 발명의 실시에 적절한 비데오 디코더의 바람직한 실시예에 관한 이하의 개시가 또한 제공된다.In addition to the foregoing detailed description, the following disclosure regarding a preferred embodiment of a video decoder suitable for the practice of the present invention is also provided.

본 발명은 사용이 용이한 고집적 MPEG-2 비데오 디코더를 포함한다. 이것은 메인 레벨에서 MPEG-2 메인 프로파일의 모든 요건을 지원한다.The present invention includes a highly integrated MPEG-2 video decoder that is easy to use. It supports all the requirements of the MPEG-2 main profile at the main level.

본 발명의 시스템은 또한 차체구성이며(단일핀이 PAL과 NTSC 동작 사이를 선택함), 많은 적용예에서 외부의 소프트웨어 지원없이 비데오 디코딩을 개시 및 유지할수 있다. 에러 은폐 및 회복은 완전 자동이다. 더 요구되는 적용예는 외부 마이크로프로세서 상에서 기능하는 소프트웨어에 의해 제어되는 진보적 구성을 이용할 수도 있다.The system of the present invention is also a body construction (a single pin selects between PAL and NTSC operation), and in many applications it is possible to initiate and maintain video decoding without external software support. Error concealment and recovery is fully automatic. More demanding applications may use advanced configurations controlled by software that functions on an external microprocessor.

본 발명은 그 자체의 마이크로코드를 온-칩 ROM에 저장하며, 따라서 디코딩이 개시되기 전에 외부 ROM이나 하향전송 마이크로코드를 사용할 필요가 없다. 제100도 참조.The present invention stores its own microcode in an on-chip ROM, thus eliminating the need for external ROM or downlink microcode before decoding is initiated. See also FIG.

본 발명의 시스템에 대한 이하의 더욱 상세한 설명은 아래에 기재된 표제하에 편성, 명확성 및 설명의 편리를 위해 기술한다.The following more detailed description of the systems of the present invention are set forth below for ease of organization, clarity, and description, under the headings set forth below.

신호signal

레지스터 맵Register map

전력 공급Power supply

논리 레벨Logic level

클럭 신호Clock signal

리세트 신호Reset signal

부호화된 데이타 인터페이스 신호Coded Data Interface Signal

마이크로프로세서를 통한 공급 데이타Supply data via microprocessor

입력 모드들 사이의 스위칭Switching between input modes

부호화된 데이타의 수신비Reception ratio of encoded data

부호화된 데이타 인터페이스 타이밍Coded Data Interface Timing

CDCLOCKCDCLOCK

비데오 출력 신호Video output signal

비데오 출력 제어 레지스터Video output control register

보더, 스케일링 및 다듬기Border, Scaling, and Trimming

비데오 출력 제어 레지스터Video output control register

비데오 신호 타이밍Video signal timing

MPI 신호MPI Signal

MPI 전기 명세MPI Electrical Specification

인터럽트Interrupt

페이지 레지스터Page registers

SDRAM 인터페이스 신호SDRAM Interface Signal

SDRAM 구성SDRAM Configuration

비-JTAG 시스템내의 JTAG핀의 접속Connection of JTAG Pin in Non-JTAG System

지원 명령Support command

특성characteristic

IEEE 1149.1에 대한 적합성 레벨Conformance level for IEEE 1149.1

개시 부호 검출 레지스터Start code detection register

개시 부호의 검출Detection of start code

discard_all 기능discard_all function

flag_picture_end 기능flag_picture_end function

start_code_search 기능start_code_search function

SCD 예- 채널 변환SCD Example-Channel Conversion

파서 레지스터Parser registers

에러 부호Error code

사용자 데이타로 처리Process as user data

시스템 편성System organization

신호 및 레지스터Signals and registers

전기 명세Electrical specification

부호화된 데이타 인터페이스Coded data interface

비데오 출력 인터페이스Video output interface

마이크로 프로세서 인터페이스Microprocessor interface

동기 DRAM 인터페이스Synchronous DRAM Interface

JTAG 인터페이스JTAG interface

개시 부호 검출기Start code detector

비데오 파서Video parser

타임 스탬프 관리Time stamp management

어드레스 발생기 구성Address generator configuration

기계적 정보Mechanical information

이 절은 본 발명과 관련하여 사용된 모든 신호(핀)의 목록과 마이크로프로세서 인터페이스를 통해 이용가능한 모든 레지스터의 목록을 포함한다(표 50과 51 참조).This section contains a list of all signals (pins) used in connection with the present invention and a list of all registers available through the microprocessor interface (see Tables 50 and 51).

[신호][signal]

[표 50]TABLE 50

[표 51]Table 51

[래지스터 맵][Register Map]

본 발명의 레지스터 맵은 영역으로 분할된다. 제1 32 로케이션은 시스템의 정상적 동작을 위해 요구된다. 여기에는 5비트의 어드레스만 있다. 32 로케이션의 다음 설정은 어드레스 발생회로 내에서 비-결합 SRAM 맵을 설치하기위해 요구되는 것이다.The register map of the present invention is divided into regions. The first 32 location is required for normal operation of the system. There are only 5 bits of address here. The next setup of 32 locations is what is required to install a non-coupled SRAM map in the address generator circuit.

레지스터 맵의 나머지는 테스트와 진단 목적으로만 사용되는 레지스터들이다. 이들 어드레스 발생기 레지스터 대신에 페이지될 수 있다.The rest of the register map is for registers used for testing and diagnostic purposes only. It may be paged instead of these address generator registers.

[표 52]Table 52

a 정상동작시 페이지_선택은 제로값으로 유지되어야 한다. 이 경우 로케이션 0×20...0×3f는 어드레스 발생 사용자 레지스터를 포함할 것이다.a Page_Selection should be kept at zero in normal operation. In this case, locations 0x20 ... 0x3f would contain an address generation user register.

표 53은 페이지 선택 레지스터를 서술한다.Table 53 describes the page select registers.

[표 53]Table 53

표 54는 인터럽트 제공 영역을 나타낸다.Table 54 shows an interrupt providing area.

[표 54]TABLE 54

표 55는 본 발명의 입력회로 레지스터를 나타낸다.Table 55 shows the input circuit register of the present invention.

[표 55]TABLE 55

표 56은 본 발명의 시작 부호 검출기 레지스터를 나타낸다.Table 56 shows the start sign detector registers of the present invention.

[표 56]TABLE 56

표 57는 본 발명에 따른 타임 스탬프 삽입 레지스터를 나타낸다.Table 57 shows a time stamp insert register according to the present invention.

[표 57]Table 57

마찬가지로 표 58은 비디오 파서 레지스터를 나타낸다.Similarly, Table 58 lists the video parser registers.

[표 58]TABLE 58

출력제어 레지스터는 표 59에 나타낸다.The output control registers are shown in Table 59.

[표 59]Table 59

[테스트 레지스터][Test register]

완성된 레지스터 맵은 표 60 내지 표 69에 나타낸다.The completed register map is shown in Tables 60-69.

[표 60]TABLE 60

[표 61]TABLE 61

[표 62]Table 62

[표 63]TABLE 63

[표 64]TABLE 64

[표 65]TABLE 65

[표 66]TABLE 66

[표 67]TABLE 67

[표 68]TABLE 68

[표 69]TABLE 69

[전원공급][Power supply]

본 발명은 필수적으로 5V의 신호공급으로 동작한다.The present invention essentially operates with a 5V signal supply.

그러나, 동기 DRAM에 간단히 접속되어 인에이블되도록 3.3V의 전원이 또한 공급된다.However, a 3.3V power supply is also supplied to enable simple connection to the synchronous DRAM.

[표 70]TABLE 70

a D[15:0], DA[11.0], DCKE, DCLKOUT, DCLKIN, DWE′; DCAS′, DRAS′, DCS′[1:0]과 TDCLK.a D [15: 0], DA [11.0], DCKE, DCLKOUT, DCLKIN, DWE '; DCAS ′, DRAS ′, DCS ′ [1: 0] and TDCLK.

b 장치에 영구적인 손상을 유발하는 스트레스는 여기에 나열된 것보다 크다. 이것은 단지 스트레스 비율이고, 이들 중에서 장치의 기능적 동작 또는 이 사양의 동작 부분에서 지적한 다른 조건은 언급되지 않았다. 기간연장을 위한 절대 최대치 비율 조건 제시는 신뢰성에 영향을 미친다.b The stresses that cause permanent damage to the device are greater than those listed here. This is only a stress ratio and none of these mentions the functional operation of the device or other conditions indicated in the operating part of this specification. Providing an absolute maximum rate condition for the extension of length affects reliability.

[표 71]TABLE 71

3개의 다른 인터페이스 타입은 본 발명에 따라 수행된다. 표준(5V) TTL 레벨은 마이크로프로세서 인터페이스로 사용된다. 더욱이, 5V CMOS 레벨은 부호화된 데이타 인터페이스와 비디오 출력 인터페이스로 사용된다. 또한, 3V LVTTL 레벨은 SDRAM 인터페이스로 사용된다.Three different interface types are performed in accordance with the present invention. The standard (5V) TTL level is used as the microprocessor interface. Moreover, the 5V CMOS level is used as the coded data interface and the video output interface. The 3V LVTTL level is also used as the SDRAM interface.

[TTL(5V) 레벨][TTL (5V) level]

[표 72]TABLE 72

a AC 입력 파라미터는 1.4V 측정레벨에서 측정된다.a AC input parameter is measured at 1.4V measurement level.

b IO≤IOOCminb I O ≤ I OOC min

c 이는 인터페이스의 안정 상태 구동 가능성이다.c This is the possibility of driving a steady state of the interface.

d 개방 콜렉터가 유지될 때 IRQ 출력은 100Ω 또는 그 이하의 임피던스로 풀-다운된다.d When the open collector is maintained, the IRQ output pulls down to an impedance of 100Ω or less.

[CMOS(5V) 레벨]CMOS (5V) level

CMOS 입력 VIHmin은 VDD의 대략 70%이므로 VILmax는 대략 VDD의 30%이다. 표 73에 도시된 값은 그들 각각의 동작 한계에서 VIH와 VIL에 대한 것이다.Since the CMOS input V IHmin is approximately 70% of V DD , V ILmax is approximately 30% of V DD . The values shown in Table 73 are for V IH and V IL at their respective operating limits.

[표 73]TABLE 73

a ioh≤ 1mAai oh ≤ 1mA

b IoH≤ 4mAb I oH ≤ 4 mA

c IOL≤ 1mAc I OL ≤ 1 mA

d IOL≤ 4mAd I OL ≤ 4 mA

[표 74]TABLE 74

a AC 입력 파라미터는 1.4V 측정레벨에서 측정된다.a AC input parameter is measured at 1.4V measurement level.

b 이는 인터페이스의 안정 상태 구동 가능성이다. 일시 전류는 훨씬 클 것이다.b This is the possibility of driving a steady state of the interface. The transient current will be much larger.

[클럭 신호][Clock signal]

본 발명은 거의 모든 온-칩 기능을 위해 1클럭(SYSCLOCK)을 사용한다. 이 클럭은 비디오 출력 회로에 의해 사용되므로 VTG(Video Timing Generator: 비디오 타이밍 발생기)가 교정비율로 화상을 생성하도록 27MHz 클럭이 사용되는 것으로 가정된다.The present invention uses one clock (SYSCLOCK) for almost all on-chip functions. Since this clock is used by the video output circuit, it is assumed that the 27 MHz clock is used so that the Video Timing Generator (VTG) generates the image at the calibration rate.

제2 클럭(CDCLOCK)이 본 발명에서 부호화된 데이타 클럭에 사용될 수도 있다. 이 클럭은 SYSCLOCK를 동기시켜 27MHz 클럭(아마도, 디스크 또는 네트워크 인터페스 회로로부터 유도되는 클럭)에서 동작하지 않는 회로로부터 시스템에 데이타가 전송되는 것을 가능하게 한다.The second clock (CDCLOCK) may be used for the data clock encoded in the present invention. This clock synchronizes SYSCLOCK to allow data to be transferred to the system from a circuit that is not operating at a 27 MHz clock (perhaps a clock derived from a disk or network interface circuit).

내면적으로, 본 발명은 위상 폐루프(PLL)를 사용하는 SDRAM을 구동하기위한 고속 클럭을 유도한다. 이 클럭은 DCLKOUT로서 SDRAH을 출력한다. 온-칩 PLL은 짝수의 표시-공간 비율을 유도하도록 사용된다. SYSCLOCK를 위한 요구조건은 제101도에 도시하였다.Internally, the present invention derives a high speed clock for driving SDRAM using a phase closed loop (PLL). This clock outputs SDRAH as DCLKOUT. On-chip PLLs are used to derive an even display-space ratio. The requirements for SYSCLOCK are shown in FIG.

[표 75]Table 75

a 클럭의 공차 및 안정도는 바람직한 표준 비디오 라인 주파수를 충족시키도록 바람직해야 함을 주목해야 한다.It should be noted that the tolerance and stability of a clock should be desirable to meet the desired standard video line frequency.

[리셋신호][Reset signal]

본 발명은 세개의 레세트 신호를 사용한다.The present invention uses three reset signals.

1) RESET′1) RESET ′

2) VTGRESET′2) VTGRESET ′

3) TIMERESET′3) TIMERESET ′

RESET′는 메인 칩 리세트 신호이다. 모든 회로는 리세트되고 여기에 기술한 바와 같이 여러가지 표에 나타낸 리세트 상태로 된다. RESET′는 전원과 클럭이 안정되어 정확히 리세트된 후에 적어도 4-사이클동안 반드시 LOW가 된다.RESET 'is the main chip reset signal. All circuits are reset and in the reset states shown in the various tables as described herein. RESET 'must be LOW for at least four cycles after the power and clock are stable and correctly reset.

VTGRESET′는 본 발명의 다른 양태에 영향을 미치지 않고 본 발명의 비디오 타이밍 발생기를 리세트시키기 위해 사용된다.VTGRESET 'is used to reset the video timing generator of the present invention without affecting other aspects of the present invention.

TIMERESET′는 본 발명에 따른 타임 스탬프 처리회로로 사용된다.TIMERESET 'is used as a time stamp processing circuit according to the present invention.

[서 문][Preface]

본 발명에 따른 부호화된 데이타 인터페이스는 시스템에 부호화된 비디오 데이타를 공급하는데 사용되는 핀세트가 제공된다. 이와 달리 부호화된 데이타는 마이크로 인터페이스를 경유하여 기록될 수 있다. 이 절은 이들 양 방법에 대해 논한다.The coded data interface according to the invention is provided with a tweezers for use in supplying coded video data to the system. Alternatively, the encoded data can be recorded via the micro interface. This section discusses both methods.

전용 핀이 사용되면, 코드화된 데이타는 바이트의 단순한 흐름 또는 토큰으로서 공급되어질 수도 있다. 상기 토큰은 부호화된 코드에 부가되어 다른 형태의 정보를 공급하는 것을 가능하게 한다. 예를 들면, 타임 스탬프 정보는 이 체계를 이용하여 전송될 수 있다.If a dedicated pin is used, the coded data may be supplied as a simple stream of bytes or token. The token is added to the encoded code to enable the supply of other forms of information. For example, time stamp information can be transmitted using this scheme.

마이크로 인터페이스가 부호화된 데이타를 위해 사용되면, 이때 토큰이 사용되어질 수 있다. 토큰헤드가 코드화된 데이타(기록을 위해 두개의 레지스터가 필요) 후속 데이타를 표시하도록 기록되어지면 부호화된 데이타는 레지스터에 간단히 기록된다.If a micro interface is used for the encoded data, then a token can be used. If the tokenhead is written to represent coded data (two registers are required for writing) and subsequent data, the coded data is simply written to the register.

[코드화된 데이타 인터페이스 신호]Coded Data Interface Signals

표 76은 본 발명에서 사용된 코드화된 데이타 인터페이스 신호를 정의한다.Table 76 defines the coded data interface signals used in the present invention.

[표 76]Table 76

CDVALID와 CDACCEPT는 본 발명에 따른 데이타의 전송을 제어하도록 사용된다. 이런 타입의 프로토콜은 “2-와이어” 인터페이스로서 언급된다. 양 신호는 데이타 전송을 발생시키기 위해 CDCLOCK의 상승에지에서 하이어야만 한다. 제102도는 데이타(CD[7:0] CDEXTN과 BMODE)와 CDVALID 및 CDACCEPT 사이의 관계를 도시한다.CDVALID and CDACCEPT are used to control the transmission of data in accordance with the present invention. This type of protocol is referred to as a "two-wire" interface. Both signals must be at the rising edge of CDCLOCK to generate data transfer. Figure 102 shows the relationship between data (CD [7: 0] CDEXTN and BMODE) and CDVALID and CDACCEPT.

주의: 데이타가 부호화된 데이타 인터페이스 핀을 경유하여 공급되어지면, 마이크로프로세서 인터페이스 레지스터 “enable_mpi_input”는 제로(이는 마이크로프로세서가 리세트 상태)가 되어야 한다.Note: If data is supplied via the encoded data interface pins, the microprocessor interface register “enable_mpi_input” must be zero (the microprocessor is in reset).

[바이트 모드][Byte mode]

본 발명에서, BMODE가 CDCLOCK(그리고 CDVALID 및 CDACCEPT가 둘다 하이)의 상승에지에서 하이로 표본화되면, 이때 데이타는 간단한 부화된 데이타로서 처리된다. 사실, 데이타는 DATA 내에 직접 내장된다. 이 경우 CDEXTN은 무시된다.In the present invention, if BMODE is sampled high on the rising edge of CDCLOCK (and both CDVALID and CDACCEPT high), then the data is treated as simple incubated data. In fact, data is embedded directly in DATA. In this case, CDEXTN is ignored.

[토큰 모드][Token Mode]

BMODE가 로우로 표본화되면, CDCLOCK(그리고 CDVALID 및 CDACCEPT 둘다 하이)의, 상승에지에서 데이타는 토큰으로서 처리된다.If BMODE is sampled low, the data at the rising edge of CDCLOCK (and both CDVALID and CDACCEPT high) is treated as a token.

토큰은 본 발명에서 시스템을 통과하는 데이타의 흐름과 제어 신호의 흐름을 제어하기 위해 널리 사용된다. 이론적으로, 부호화된 데이타 입력에 어떤 토큰을 공급하는 것은 가능하다.Tokens are widely used in the present invention to control the flow of data and control signals through the system. In theory, it is possible to supply any token to the encoded data input.

본 발명에 따른 모든 토큰은 토큰의 확장비트(CDEXTN)와 관련되는 각각의 직렬 바이트(CD[7:0])로 이루어진다. 상기 토큰의 제1 바이트는 토큰에 의해 이송된 정보의 형태를 표시한다. 토큰의 최종바이트는 로우인 확장비트에 의해 표시된다.Every token in accordance with the present invention consists of a respective serial byte (CD [7: 0]) associated with the extension bit (CDEXTN) of the token. The first byte of the token indicates the type of information carried by the token. The last byte of the token is indicated by the extension bit, which is low.

예를 들면, 부호화된 데이타는 DATA 토큰을 사용하여 공급된다. 이는 제103도에 나타냈다. 도시한 바와 같이 제1 바이트는 0×04(이는 DATA 토큰을 표시)이다. 이 정보는 CDEXTN이 로우로 표본화될 때까지 확장되는 부호화된 데이타의 바이트에 의해 추종된다. 표본화된 다음 데이타는 새로운 토큰(BMODE가 아직 로우인 것으로 가정)의 제1 바이트로서 해석될 수도 있다.For example, encoded data is supplied using a DATA token. This is shown in FIG. As shown, the first byte is 0x04 (which indicates a DATA token). This information is followed by bytes of encoded data that are extended until CDEXTN is sampled low. The next data sampled may be interpreted as the first byte of the new token (assuming BMODE is still low).

특별히 유용한 다른 토큰은 FLUSH 토큰이다. 이 토큰은 “리세트”와 같은 역할을 하며, 다음 비디오 스트림용 시스템을 위해 하나의 비디오 스트림의 마지막을 준비시킨 후 사용된다.Another token that is particularly useful is the FLUSH token. This token acts like a "reset" and is used after preparing the end of one video stream for the system for the next video stream.

[마이크로프로세서 인터페이스를 경유하여 공급되는 데이타][Data supplied via microprocessor interface]

본 발명에서, 토큰은 입력레지스터의 부호화된 데이타를 엑세싱함으로써 마이크로프로세서 인터페이스(MPI)를 경유하여 시스템에 공급될 수 있다. 표 77은 입력 레지스터의 부호화된 데이타를 정의한다.In the present invention, the token may be supplied to the system via a microprocessor interface (MPI) by accessing the encoded data of the input register. Table 77 defines the encoded data of the input registers.

[표 77]Table 77

[MPI에 토큰을 기록][Record token in MPI]

부호화된 데이타 레지스터는 효과적인 데이타 전송을 위해 메모리 맵 내에서 2바이트 그룹지어지는 것이 가능하다. 8비트 데이타 coded_data[7:0]는 하나의 로케이션에 있으며, 제어 레지스터, coded_busy, enable_mpi_input 및 coded_extn 은 제2 로케이션(표 56 참조) 내에 있다.The coded data registers can be grouped in two bytes in the memory map for efficient data transfer. The 8-bit data coded_data [7: 0] is in one location, and the control register, coded_busy, enable_mpi_input and coded_extn are in the second location (see Table 56).

MPI를 경유하여 토큰이 입력되도록 구성될 때, 현재의 토큰은 각 시간값이 coded_data[7:0] 내에 기록된 coded_extn의 현재값으로 확장된다. 소프트웨어는 어떤 토큰의 최종워드가 coded_data[7:0]에 기록되기전 coded_extn은 0으로 설정하도록 응답할 수 있다.When a token is configured to be entered via MPI, the current token is extended with the current value of coded_extn, where each time value is recorded in coded_data [7: 0]. The software may respond to set coded_extn to 0 before the last word of any token is written to coded_data [7: 0].

예컨데, DATA 토큰이 coded_extn 내에 1을 기록함으로써 개시되어 0×04 가 coded_data[7:0]에 기록된다. 이때, 이 새로운 DATA 토큰의 시작은 처리를 위해 시스템 내를 통과한다.For example, a DATA token is started by writing 1 in coded_extn so that 0x04 is written to coded_data [7: 0]. At this point, the start of this new DATA token passes through the system for processing.

매 시간마다 새로운 8비트 값이 coded_data[7:0]에 기록되고, 현재의 토큰은 확장된다. 현행 토큰(예컨대, 다른 토큰의 도입)이 종료될 때만 coded_extn이 재차 엑세스될 필요가 있다. 현재 토큰의 최종 워드는 최종 토큰의 워드가 coded_data [7:0] 내에 기록되어짐으로써 code_extn에 0이 기록됨을 가리킨다.Every time a new 8-bit value is written to coded_data [7: 0], and the current token is expanded. Coded_extn needs to be accessed again only when the current token (eg, the introduction of another token) is terminated. The last word of the current token indicates that zero is written to code_extn as the word of the last token is written in coded_data [7: 0].

더욱이, 각 시간마다 coded_data[7:0]에 데이타가 기록되기 전 coded_busy는 인터페이스가 데이타를 더 수용할 준비가 되어 있으면 이를 확인하기 위해 조사하여야 한다.Furthermore, before each time data is written to coded_data [7: 0], coded_busy should check to see if the interface is ready to accept more data.

[입력모드간의 스위칭][Switching between input modes]

제시된 적합한 예방책이 고찰되었고, 이는 데이타 입력 모드를 동적으로 바꾸도록 실행되어야 한다. 일반적으로, 어떤 한 경로를 경유한 토큰의 전송은 스위칭 모드 이전에 스위칭이 완료되어야 한다. 이 스위칭 모드는 표 78에 도시되었다.Appropriate precautions presented have been considered and should be implemented to dynamically change the data entry mode. In general, the transfer of tokens via any one path must complete switching before the switching mode. This switching mode is shown in Table 78.

[표 78]Table 78

제1 바이트는 온-칩을 생성시키는 DATA 토큰 헤더를 일으키는 바이트 모드에 공급된다. 바이트 모드에 추가로 전송되는 어떤 바이트는 입력 모드가 바뀔 때까지 이 DATA 토큰이 부가된다. MPI 레지스터 비트 coded_busy 및 신호 coded_accept는 시스템이 데이타를 받아들여 인터페이스시키는 것을 표시한다. 이 신호는 올바른 관찰이 데이타가 손실되지 않도록 보장된다.The first byte is fed to byte mode, which causes a DATA token header to generate on-chip. Any bytes transferred in addition to byte mode are appended with this DATA token until the input mode is changed. The MPI register bit coded_busy and the signal coded_accept indicate that the system accepts and interfaces data. This signal ensures that correct observation does not cause data loss.

[수용되는 부호화된 데이타의 비율][Ratio of encoded data accepted]

본 발명의 입력회로는 시작 부호화 검출기에 토큰을 전달한다. DATA 토큰 내의 분석 데이타와 그의 정상처리비율은 클럭(CDCLOCK)당 1바이트이다. 그러나, 여분의 처리 싸이클이 가끔 요구된다. 예컨데, 개시부호는 부호화된 데이타에서 마주친다. 이렇게 될 때, CDACCEPT는 로우로 되어 데이타가 수용될 수 없음을 표시한다.The input circuit of the present invention passes the token to the start encoding detector. The analysis data in the DATA token and its normal processing rate is 1 byte per clock (CDCLOCK). However, extra processing cycles are sometimes required. For example, the start code is encountered in the encoded data. When this happens, CDACCEPT goes low to indicate that data is not acceptable.

CDCLOCK은 데이타의 바이트가 시스템에 공급되어지는 비율보다 높은 클럭 주파수를 가져야 한다. 많은 응용에서, SYSCLOCK와 CDCLOCK을 위해 같은 클럭(일반적으로 27MHz)을 사용하는 것이 바람직할 것이다. 하나의 예가 제105도에 도시되었다.CDCLOCK must have a clock frequency higher than the rate at which bytes of data are supplied to the system. In many applications, it may be desirable to use the same clock (typically 27 MHz) for SYSCLOCK and CDCLOCK. One example is shown in FIG.

마찬가지로, 표 79는 본 발명의 부호화된 데이타를 인터페이스 타이밍을 도시한다.Similarly, Table 79 shows the interface timing of the encoded data of the present invention.

[표 79]Table 79

a 이 타이밍은 어떤 상황에서 관찰되어질 필요가 없다.a This timing need not be observed in any situation.

b 최대 적재신호는 20PF이다.b Maximum load signal is 20PF.

부호화된 데이타 인터페이스는 CMOS 레벨을 사용한다.The coded data interface uses the CMOS level.

CDCLOCKCDCLOCK

부호화된 데이타 인터페이스와 엇갈리는 데이타의 전송은 메인 비디오 디코더 클럭(SYSCLOCK)을 동기시키는 CDCLOCK에 의해 제어된다. 이러한 설비는 시스템 리코더가 비디오 클럭을 다른 클럭으로 동작시키는 것을 가능하게 하는데 유용할 것이다.The transmission of data that intersects with the encoded data interface is controlled by CDCLOCK, which synchronizes the main video decoder clock (SYSCLOCK). Such a facility would be useful to enable the system recorder to run the video clock to another clock.

그러나, CDCLOCK는 본 발명에서 개시 코드검출기와 같은 클럭회로에 사용된다. CDCLOCK는 우수 마크·스페이스 비율을 보장하는 위상 폐루프(PLL)의 장점을 갖지 않으며, 외부회로는 제105도에서 도시한 타이밍 파라미터 2와 3을 보장하도록 사용되어야 한다.However, CDCLOCK is used in the present invention for clock circuits such as start code detectors. CDCLOCK does not have the advantage of a phase closed loop (PLL) that guarantees good mark-space ratio, and an external circuit should be used to ensure timing parameters 2 and 3 shown in FIG.

CDCLOCK와 SYSCLOCK가 동기되어질 필요가 없는 상황에서 CDCLOCK보다는 오히려 PLL로부터의 개시부호검출기와 같은 내부회로를 구동시키는 용이성이 존재한다. 이는 우수 표시된 공간비율을 보증할 필요로부터 외부회로를 자유롭게 한다.In situations where CDCLOCK and SYSCLOCK do not need to be synchronized, there is an ease of driving an internal circuit such as an initiation detector from the PLL rather than CDCLOCK. This frees the external circuitry from the need to guarantee a good marked space ratio.

제106도는 PLL에 의해 발생된 우수 표시-공간 비율이 CDCLOCK의 장소에서 스타트 코드 검출기로 발송가능한 내부배열을 도시한다.FIG. 106 shows the internal arrangement in which the even indication-space ratio generated by the PLL can be sent to the start code detector at the location of the CDCLOCK.

un_named_register가 0(리세트 조건)이면, 개시부호 검출기는 PLL로부터 클럭된다. 이 경우, CDCLOCK 및 SYSCLOCK는 모두 동일한 신호에 접속되어야 한다.If un_named_register is 0 (reset condition), the start code detector is clocked from the PLL. In this case, both CDCLOCK and SYSCLOCK must be connected to the same signal.

AC 타이밍은 SYSCLOCK를 위해 필요한다.AC timing is required for SYSCLOCK.

un_named_register가 1이면, 개시 코드 검출기는 CDCLOCK를 사용한다. 이 경우, CDCLOCK는 SYSCLOCK로 동기된다. CDCLOCK는 제105도에서 한정한 타이밍에 따라야 한다.If un_named_register is 1, the start code detector uses CDCLOCK. In this case, CDCLOCK is synchronized with SYSCLOCK. The CDCLOCK should follow the timing defined in FIG.

[서 문][Preface]

본 발명의 비디오 출력 인터페이스는 CCIR 리커맨데이션 6이, 656을 허용하는 디지탈 출력인터페이스로 이루어진다. 모든 동기화와 블랭킹 정보가 특수한 부호 워드(SAV와 EAV)의 형태, 비디오 정보와 같은 데이타의 동일한 바이트-넓이 스트림 내에 포함된다.The video output interface of the present invention consists of a digital output interface allowing CCIR recommissionation 6 to allow 656. All synchronization and blanking information is contained in the same byte-width stream of data, such as the form of special sign words (SAV and EAV), video information.

더욱이, 동기화와 블랭킹 핀의 분리는 시스템이 장치(비디오 DAC 또는 NTSC 인코더)의 넓은 범위에 직접 접속됨으로써 제공된다. 이 신호의 타이밍은 CCIR 리커맨데이션 624를 만족시키는 비디오 신호의 발생에 적합하다.Moreover, separation of the synchronization and blanking pins is provided by the system being directly connected to a wide range of devices (video DAC or NTSC encoder). The timing of this signal is suitable for generation of a video signal that satisfies CCIR recommissionation 624.

비디오 데이타는 신호 바이트가 넓은 버스에 시간 다중화되어진다. 대안으로서, 16비트 출력 모드가 제공되는 경우, 휘도 데이타는 1바이트 넓이 버스에 출력되는 한편 두개의 다른 칼라 신호는 넓은 제2 바이트 버스에서 시간 다중화된다.Video data is time multiplexed onto a bus with wide signal bytes. Alternatively, if a 16-bit output mode is provided, the luminance data is output on a one byte wide bus while two different color signals are time multiplexed on a wide second byte bus.

[비디오 출력 신호][Video output signal]

표 80은 본 발명에 따른 비디오 출력 인터페이스용 신호를 제공한다.Table 80 provides a signal for a video output interface according to the present invention.

[표 80]TABLE 80

제107도는 16비트 모드에서 출력 타이밍을 도시한다. 제108도는 8비트 모드에서 출력 타이밍을 도시한다.107 shows output timing in the 16-bit mode. 108 shows output timing in the 8-bit mode.

[비디오 출력 조정 신호][Video output adjustment signal]

본 발명과 관련한 비디오 출력 조정 신호가 표 81에 나와 있다.The video output adjustment signals associated with the present invention are shown in Table 81.

[표 81]TABLE 81

a 이 비트의 설정에 관계없는 색도 데이타(Cb와 Cr)은 블랭킹 기간동안 0×80(128 십진법)이 될 것이다.a Color data (Cb and Cr) irrespective of the setting of this bit will be 0x80 (128 decimal) during the blanking period.

[가장자리 스케일링 및 크롭핑]Edge scaling and cropping

본 발명은 480라인(525라인 라스터) 또는 576라인(625라인 라스터) 중 어느 것으로 720 화소를 표시하기 위한 화상을 생성하도록 시도된다. 본 발명은 이 영역을 채우도록 시도하기 위해 디코드된 화상을 자동으로 확대한다.The present invention attempts to generate an image for displaying 720 pixels with either 480 lines (525 lines raster) or 576 lines (625 lines raster). The present invention automatically enlarges the decoded picture to attempt to fill this area.

스케일 요소의 제한된 수만이 지원되므로 이는 이 영역을 정밀하게 채우는 것이 항상 가능한 것은 아니다. 최종 화상은 너무 작으면, 가장자리는 디코드된 화상둘레를 도색할 것이다. 이 가장자리는 스크린의 중심에 있는 디코드된 화상과 같이 될 것이다.Since only a limited number of scale elements are supported, this is not always possible to precisely fill this area. If the final picture is too small, the edges will paint around the decoded picture. This edge will be like a decoded picture in the center of the screen.

역으로, 스케일링이 너무 큰 화상을 생성하면, 이때 화상은 적절히 디스플레이되는 것이 가능해지도록 다듬질되어진다. 디스플레이된 영역은 디코드된 화상의 중심이다. 이 크로핑은 크로피드된 디코드화 화상의 대략 10% 이하가 되도록 제한된다. 이 크로핑이 이보다 크면 보다 작은 스케일링 요소가 사용된다.Conversely, if the scaling produces an image that is too large, then the image is trimmed so that it can be displayed properly. The displayed area is the center of the decoded picture. This cropping is limited to approximately 10% or less of the cropped decoded picture. If this cropping is greater than this, a smaller scaling factor is used.

가장자리 칼라는 레지스터 border_cb, border_y 및 border_cr를 기록함으로써 선택되어질 수 있다. 장치가 리세트된 후와 어떤 화상이 디코드된 후 전 스크린은 가장자리 칼라로 채워질 것이다. 더욱이, blank_screen을 기록함으로써 전스크린에 걸쳐 가장자리 칼라를 도색하는 것이 가능하다. 이는 예컨대, 채널 변화시 비디오를 숨기기위해 사용될 수도 있다.The edge color can be selected by writing the registers border_cb, border_y and border_cr. After the device is reset and after any picture is decoded, the entire screen will be filled with edge color. Furthermore, it is possible to paint edge colors across the entire screen by writing blank_screen. This may be used, for example, to hide video on channel change.

[비디오 출력 특성][Video Output Characteristics]

[특 성][Characteristic]

제109도는 본 발명에 따라 비디오 출력 인터페이스의 타이밍을 나타낸다. 마찬가지로, 표 82는 비디오 출력 인터페이스 타이밍을 나타낸다.109 illustrates the timing of a video output interface in accordance with the present invention. Similarly, Table 82 shows video output interface timing.

[표 82]Table 82

a 최대 적재신호는 50PF이다.a Maximum load signal is 50PF.

b 이 타이밍 파라미터 실폐는 정밀한 클럭 싸이클에서 불확실성을 유도하여 리세트를 유발할 것이다. VTGRESET′는 타이밍 파라미터 관찰되지 않는 사상에서 준안전성 문제를 보호하는 온-칩 동기화기로 제공된다.b This timing parameter failure will cause a reset by inducing uncertainty in the precise clock cycle. VTGRESET 'is provided as an on-chip synchronizer that protects the quasi-safety problem in the event of no timing parameter observation.

표 83은 비디오 모드 신호를 정의한다. 제110도는 비디오 출력 모드 신호를 도시한다.Table 83 defines the video mode signal. 110 shows a video output mode signal.

[표 83]TABLE 83

a 리세트후 NTSC/PAL 또는 V1618 변화한 상태이면 동작은 정의되지 않는다.a If the NTSC / PAL or V1618 has changed after reset, the behavior is undefined.

[비디오 신호 타이밍][Video signal timing]

본 발명의 비디오 타이밍은 다음 CCIR 리커맨데이션을 만족시키는 비디오 출력의 결과이다.The video timing of the present invention is the result of the video output satisfying the next CCIR recommissionation.

· CCIR 권고안 601CCIR Recommendation 601

· CCIR 권고안 656CCIR Recommendation 656

· CCIR 권고안 624CCIR Recommendation 624

[수평타이밍][Horizontal Timing]

수평타이밍은 제111도에 도시되었다. 그 수는 525 라인 시스템(625 라인 시스템 삽하에서 625라인 시스템)용 SYSCLOCK 싸이클이다.The horizontal timing is shown in FIG. The number is the SYSCLOCK cycle for the 525 line system (625 line system under the 625 line system insert).

등화기간 동안, HSYNC′ 신호는 62싸이클(625라인 시스템에서 66 싸이클)용으로 로우이다.During the equalization period, the HSYNC 'signal is low for 62 cycles (66 cycles in the 625-line system).

필드 동기화 기간동안 HSYNC′ 신호는 732 싸이클(625 라인 시스템에서 738 싸이클)용으로 로우이다.During the field synchronization period, the HSYNC 'signal is low for 732 cycles (738 cycles in the 625 line system).

[수직 타이밍][Vertical timing]

수직타이밍은 525라인(NTSC) 시스템용으로서 제12도에, 625라인(PAL) 시스템용으로서 제113도에 나타내었다. 이들 도면에서 수는 CCIR Rec 656 수로 라인수가 좌측으로 다운되어 제공된다. 우측에서 두개의 칼럼이 “F”와 “V” 비트가 SAV와 EAV 부호(CCIR Rec.601 참조)에서 발견되도록 제공되었다.Vertical timing is shown in FIG. 12 for a 525-line (NTSC) system and in FIG. 113 for a 625-line (PAL) system. In these figures, the numbers are provided with CCIR Rec 656 channel lines down to the left. On the right two columns were provided so that the “F” and “V” bits were found in the SAV and EAV codes (see CCIR Rec. 601).

두꺼운 라인, 실선, 검은선의 중심에서 보다 작은 수들이 디코드된 MPEG 화상의 논리적 라인 수로 제공된다. 따라서, 480라인 용으로 0에서 479까지 번호가 부여된 것은 525라인(NTSC)에서 사용되고, 576라인용으로 90에서 575로 번호가 부여된 것은 625라인(PAL) 시스템에서 사용된다.Smaller numbers at the center of thick, solid and black lines are provided as the logical lines of the decoded MPEG picture. Thus, numbers 0 to 479 for 480 lines are used in 525 lines (NTSC), and numbers 90 to 575 for 576 lines are used in 625 lines (PAL) systems.

제114도는 525라인 시스템용 동기 및 블랭킹 핀의 타이밍을 도시하고, 제115도는 625라인 시스템용을 도시한다. HSYNC′ 또는 CSYNC′ 중 하나만이 출력(hs_not_cs_)될 수 있고 이들 각각의 신호의 극성은 역전(cblank_ah 등 참조)되어질 수 있다.FIG. 114 shows the timing of the sync and blanking pins for the 525 line system, and FIG. 115 shows for the 625 line system. Only one of HSYNC 'or CSYNC' can be output (hs_not_cs_) and the polarity of each of these signals can be reversed (see cblank_ah, etc.).

[VTG 리세트 상태][VTG Reset Status]

본 발명에서 VTG는 525라인(NTSC) 시스템용 4 라인을 개시하고, 625라인(PAL) 시스템용 1라인을 개시하도록 리세트된다.In the present invention, the VTG is reset to start four lines for a 525 line (NTSC) system and one line for a 625 line (PAL) system.

[서 문][Preface]

표준 바이트의 넓은 마이크로프로세서 인터페이스(MPI)가 본 발명에서 사용되었다. 상기 MPI는 다양한 디코더의 칩 클럭을 동기화하도록 동작한다.Standard byte wide microprocessor interface (MPI) has been used in the present invention. The MPI operates to synchronize chip clocks of various decoders.

[HPI 신호][HPI signal]

표 84는 MPI 인터페이스 신호를 서술하였다.Table 84 describes the MPI interface signals.

[표 84]TABLE 84

[MPI의 전기적 사양][Electrical Specifications of MPI]

[DC 특성][DC characteristics]

“TTL(5V) 레벨” 참조.See “TTL (5V) Level”.

제123도와 제124도는 각각 MPI의 판독과 기록 타이밍을 나타낸다.123 and 124 show the read and write timing of the MPI, respectively.

[AC 특성]AC characteristics

표 85는 MPI의 판독 타이밍을 도시한다.Table 85 shows the read timing of the MPI.

[표 85]TABLE 85

a 이 실시예에서 ME′[0]의 선택은 싸이클을 개시시키고 ME′[1]의 선택은 싸이클을 임의로 종료시킨다.a Selection of ME '[0] in this embodiment initiates the cycle and selection of ME' [1] arbitrarily terminates the cycle.

b 엑세스 타임은 각각의 MD[7:0]에 50PF의 최대 부하를 위해 서술되어진다. 보다 큰 부하는 엑세스 타임을 증가시킨다.b Access time is specified for the maximum load of 50PF in each MD [7: 0]. Larger loads increase access time.

마찬가지로, 표 86은 MPI용 기록 타이밍을 도시한다.Similarly, Table 86 shows the recording timing for MPI.

[표 86]TABLE 86

a 이 실시예에서 enable′[0]의 선택은 싸이클을 개시시키고, enable′[1]의 선택은 싸이클을 임의로 종료시킨다.a In this embodiment the selection of enable '[0] initiates the cycle and the selection of enable' [1] terminates the cycle arbitrarily.

[인터럽트][Interrupt]

“사상” 사용자가 관찰을 원하는 온-칩 조건을 설명하기위해 사용된 용어이다. 사상은 에러상태를 나타내거나, 사용자 소프트웨어를 알려줄 수 있다.“Imaginary” is a term used to describe an on-chip condition that you want to observe. An event may indicate an error condition or may indicate user software.

여기에 인터럽트 또는 “사상”에 각기 관계되는 두개의 단일 비트 레지스터가 있다. 이것들을 조건 사상 레지스터와 조건 마스크 레지스터이다.There are two single bit registers, each associated with an interrupt or "ideal". These are the condition mapping register and the condition mask register.

[조건 사상 레지스터][Condition mapping register]

사상 레지스터 회로내에서 조건을 발생시킴으로서 값이 1로 설정되는 1비트 판독/기록 레지스터이다. 레지스터는 조건이 일시적으로 존재하여도 1비트로 설정된다. 레지스터는 사용자 레지스터가 리세트 또는 전체 칩이 리세트될 때까지 1로 설정되어 유지되는 것이 보장된다.A 1-bit read / write register whose value is set to 1 by generating a condition in the mapping register circuit. The register is set to 1 bit even if the condition exists temporarily. The register is guaranteed to remain set to 1 until the user register is reset or the entire chip is reset.

· 레지스터는 값 1을 기록함으로서 제로로 설정된다.The register is set to zero by writing the value 1.

· 레지스터가 교체되지 않고 남도록 제로를 기록한다.Write zeros to keep the registers unchanged.

· 레지스터는 이러한 조건의 발생이 관찰되기전 사용자 소프트웨어에 의해 제로로 설정되어야 한다.The register must be set to zero by the user software before the occurrence of this condition is observed.

· 레지스터는 리세트에 이르기까지 제로로 리세트될 것이다.The register will be reset to zero until reset.

[조건 마스크 레지스터][Condition mask register]

조건 마스크 레지스터는 일치하는 조건 사상 레지스터가 설정되면 인터럽트 리퀘스트의 발생을 가능하게 하는 1비트 판독/기록 레지스터이다. 조건 마스크 레지스터에 1 기록될 때 조건사상이 이미 설정되어 있으면 인터럽트 리퀘스트가 곧바로 일어난다.The condition mask register is a 1-bit read / write register that enables generation of interrupt requests if a matching condition mapping register is set. When a condition is already set when 1 is written to the condition mask register, an interrupt request occurs immediately.

· 값 1은 인터럽트를 동작시킨다.A value of 1 turns on interrupts.

· 레지스터는 리세트될 때까지 제로로 클리어된다.The register is cleared to zero until it is reset.

달리 언급할 필요없이 블록은 인터럽트 리퀘스트를 발생한 후 동작을 멈추고, 조건 사상 또는 조건 마스크 레지스터가 클리어된 후 곧바로 재개시된다.Needless to say otherwise, the block stops working after generating an interrupt request, and resumes immediately after the condition mapping or condition mask register is cleared.

[사상 및 마스크 비트][Thoughts and Mask Bits]

본 발명에서, 사상비트와 마스크 비트는 항상 레지스터 맵(표 55 포함)내의 연속 바이트에서 일치하는 비트위치 내로 그룹지워진다. 이는 발생된 인터럽트는 일치시키는 사상 레지스터에서 값용 레지스터로서 마스크 레지스터로부터 판독한 값을 사용하도록 서비스 소프트웨어를 인터럽트하는 것을 가능하게 한다.In the present invention, the mapping bits and mask bits are always grouped into matching bit positions in consecutive bytes in the register map (including Table 55). This makes it possible to interrupt the service software to use the value read from the mask register as the register for the value in the matching register that generated the interrupt.

[칩 사상과 마스크][Chip Mapping and Masks]

본 발명은 칩의 사상 작용을 요약한 단일 “글로벌” 사상 비트를 갖는다. 칩사상 레지스터는 그들의 마스크 비트내에 1을 갖는 모든 온-칩 사상의 OR을 제시한다.The present invention has a single "global" mapping bit that summarizes the mapping behavior of the chip. Chip mapping registers present the OR of all on-chip mappings with 1s in their mask bits.

칩 마스크 비트에서 A1은 칩이 인터럽트를 발생하는 것을 가능하게 한다. 칩 마스크 비트에서 A0은 인터럽트 리퀘스트를 발생하는 어떤 온-칩 사상을 제시한다.A1 in the chip mask bit enables the chip to generate an interrupt. A0 in the chip mask bit suggests some on-chip mapping that generates an interrupt request.

칩사상에 1 또는 0을 기록하는 것은 효과가 없다. 그것은 모든 사상(그들의 마스크 비트에서 1로 인에이블된다) 클리어될 때만 클리어된다.Writing 1 or 0 on a chip is ineffective. It is cleared only when all events (enabled with 1 in their mask bits) are cleared.

[IRQ′ 신호][IRQ ′ signal]

본 발명에서 IRQ′ 신호는 칩 사상 비트와 칩 마스크 사상 마스크가 설정되면 나타난다. IRQ′ 신호는 오프-칩 풀업 레지스터를 필요로 하는 “개방 컬렉터” 출력인 능동 로우이다. 능동일 때 IRQ′ 출력은 100Ω 또는 그 이하의 임피던스에 의해 풀다운된다. 대략 4kΩ의 풀-업 레지스터는 가장 적합하게 적용될 수 있다.In the present invention, the IRQ 'signal appears when the chip mapping bit and the chip mask mapping mask are set. The IRQ ′ signal is active low, an “open collector” output that requires an off-chip pullup resistor. When active, the IRQ 'output is pulled down by an impedance of 100Ω or less. A pull-up resistor of approximately 4 kΩ can be applied most suitably.

[페이지 레지스터][Page register]

본 발명에 의해 요구되는 레지스터의 어드레스 신호수를 줄이기 위해 어드레스가 지정된 64개 이상의 레지스터를 인에이블시키도록 페이지 레지스터가 적용된다. 이 페이지 레지스터는 로케이션이 0×1f이다. 0×00 내지 0×1f의 레지스터 로케이션은 페이지 레지스터의 내용에 의해 영향을 받지 않으며, 항상 레지스터 맵 내에서 나타난다. 로케이션 0×20 내지 0×3f에서 레지스터는 페이지 레지스터에 의존한다.The page register is applied to enable more than 64 addressed registers to reduce the number of address signals in the registers required by the present invention. This page register has a location of 0x1f. Register locations of 0x00 to 0x1f are not affected by the contents of the page register and always appear within the register map. The registers at locations 0x20 through 0x3f depend on the page registers.

여기에서, 장치의 정상 동작을 위해 필요한 페이지가 매겨진 레지스터는 없다. 최종적으로 페이지가 매겨진 레지스터는 테스트 목적으로 사용된다.Here, no paginated registers are required for normal operation of the device. Finally, the paginated registers are used for testing purposes.

본 발명에서, 페이지 레지스터는 제로값으로 설정된다. 사용자는 이 레지스터에 기록되지 않은 다른 값을 보장할 수 없다.In the present invention, the page register is set to zero value. The user cannot guarantee any other value not written to this register.

[서 문][Preface]

[SDRAM 인터페이스 신호][SDRAM interface signal]

표 87은 SDRAM 인터페이스 신호를 나타낸다.Table 87 shows the SDRAM interface signals.

[표 87]TABLE 87

[SDRAM 구성][SDRAM Configuration]

표 88은 SDRAM 구성을 나타낸다.Table 88 shows the SDRAM configuration.

[표 88]TABLE 88

[구성제로][Zero configuration]

구성제로 SDRAM 접속에 대해서는 제116도 참조.See Figure 116 for SDRAM connection with configuration.

제117도는 한개의 SDRAM 접속을 위한 구성을 나타낸다. 마찬가지로, 제118도와 제119도는 각각 2개와 3개의 SDRAM 접속의 구성을 나타낸다.FIG. 117 shows a configuration for one SDRAM connection. Similarly, Figures 118 and 119 show the configuration of two and three SDRAM connections, respectively.

[서 론][Introduction]

본 발명에 따른 시스템은 Joint Test Action Group(JTAG) “표준 테스트 엑세스 포트와 경계 스켄 구조”를 완전히 지원되며 표준 1149.1로서 1EEE에 의해 채택되었다.The system according to the invention is fully supported by the Joint Test Action Group (JTAG) “Standard Test Access Ports and Boundary Scan Structures” and has been adopted by 1EEE as standard 1149.1.

모든 JTAG 동작은 테스트 엑세스 포트(TAP)를 경유하여 수행되며, 이는 5개의 핀으로 구성된다. TREST(테스트 리세트) 핀은 장치가 테스트 모드에서 전원이 승압되지 않도록 JTAG 회로를 리세트한다. TCK(테스트 클럭)핀은 TDI(테스트 테이터 입력) 핀에 클럭 순차 패턴과 TDO(테스트 데이타 출력) 핀의 외부에 사용된다. 더욱이, JTAG 회로의 동작모드는 TMS(테스트모드선택) 핀 내에 바람직한 비트 순서로 클럭킹되어 설정된다.All JTAG operations are performed via the test access port (TAP), which consists of five pins. The TREST (test reset) pin resets the JTAG circuit to prevent the device from powering up in test mode. The TCK (test clock) pin is used for the clock sequential pattern on the TDI (test data input) pin and external to the TDO (test data output) pin. Moreover, the operating mode of the JTAG circuit is set clocked in the desired bit order in the TMS (test mode select) pin.

JIAG 표준은 칩 제조자의 설명에서 부가적인 특징을 제공하도록 확장될 수 있다. 본 발명에 따르면, 여기에서 3개의 JTAG의 위임이 소개를 포함하여 9개의 사용자 소개가 있다. 나머지의 소개는 내부 장치의 테스팅 수행을 가능하게 하고 부가적인 외부 테스트의 용이성을 제공한다. 예컨대, 모든 장치의 출력은 간단한 JTAG 시퀀스에 의해 부유되도록 만들어진다. 표 89 참조.The JIAG standard can be extended to provide additional features in the chip manufacturer's description. According to the present invention, there are nine user introductions, including three JTAG delegations here. The remainder of the introduction enables testing of internal devices and provides the ease of additional external testing. For example, the output of all devices is made to float by a simple JTAG sequence. See Table 89.

[NON_JTAG 시스템에서 JTAG의 접속][JTAG connection in NON_JTAG system]

[표 89]Table 89

[지원된 명령][Supported Commands]

이 절은 본 발명의 실행에서 지원된 명령을 기술한다. 표 90, 91 및 92 참조.This section describes the commands supported in the practice of the present invention. See Tables 90, 91 and 92.

[표 90]Table 90

[표 91]TABLE 91

다음의 선택적 JTAG 명령은 지원되지 않는다.The following optional JTAG commands are not supported.

1) IDCODE1) IDCODE

2) RUNBIST2) RUNBIST

[표 92]Table 92

[명령 부호 할당][Command code assignment]

여기에서 전부 14개의 명령이 정의되었다.In total, 14 commands were defined.

따라서, 여기에는 할당되지 않은 2개의 명령과 함께 4-비트 길이의 명령 레지스터가 있다. 할당되지 않은 명령은 IEEE 1149.1에 따른 BYPASS 명령의 별칭이다.Thus, there is a 4-bit long instruction register with two unallocated instructions. Unassigned commands are aliases for BYPASS commands according to IEEE 1149.1.

명령의 전 항목과 그들의 부호는 표 93에 도시되었다.The full list of commands and their symbols are shown in Table 93.

[표 93]TABLE 93

[IEEE 11149.1과 일치하는 레벨][Levels consistent with IEEE 11149.1]

[규 칙][rule]

모든 규칙은 다음에 제시된 바와 같다.All rules are as set out below.

[표 94]Table 94

[리커맨데이션][Recommended]

[표 95]Table 95

[표 96]TABLE 96

[허가][permission]

[표 97]TABLE 97

[서 론][Introduction]

본 발명에 따른 스타트 코드 검출기(SCD)는 부호화된 데이타 스트림에서 개시부호를 검출하는 일을 한다. SCD는 시스템의 내부 처리를 위해 스타트 코드들을 토큰으로 변환시킨다.The start code detector (SCD) according to the invention is responsible for detecting the start code in the encoded data stream. SCD converts start codes into tokens for internal processing of the system.

이 부가하여 일련의 기능, 예컨대 채널 변환이 지원된다.In addition, a series of functions, such as channel conversion, are supported.

[개시부호 검출기 레지스터][Initial Detector Detector Register]

표 98은 본 발명의 스타트 코드 검출기용 레지스터를 나타낸다.Table 98 shows the start code detector register of the present invention.

[표 98]TABLE 98

a 사상 비트는 단순한 R/W 레지스터 비트가 아니다.The a bit is not a simple R / W register bit.

b 모든 인터럽트는 chip_mask가 1로 설정되는 조건이다.b All interrupts are condition that chip_mask is set to 1.

[스타트 코드 검출][Start code detected]

본 발명의 개시부호 검출기는 바르게 정렬된 바이트인 개시부호만을 검출할 것이다.The initiator detector of the present invention will detect only the initiator code, which is a correctly aligned byte.

본 발명은 비디오 개시부호만을 다룬다. 인정되지 않은 개시부호가 검출되어 unrecognized_start_code 사상을 발생시킨다. 인정되지 않은 스타트 코드는 개시부호(0×b0, 0×b1 및 0×b6)과 sequence_error_code(0×b4)를 역전시킨 시스템 스타트 코드(0×off를 통한 0×b9값)이다.The present invention deals only with video initiation. An unauthorized start code is detected and generates an unrecognized_start_code mapping. The unacceptable start codes are system start codes (0xb9 through 0xoff) in which start codes (0xb0, 0xb1 and 0xb6) and sequence_error_code (0xb4) are reversed.

[discard_all 기능][discard_all function]

discard_all 기능은 시스템 내에 들어 있는 모든 데이타를 패기시키기 위해 사용된다. 이것은 레지스터 discard_all을 1로 설정함으로써 discard_all 기능을 “수동”으로 선택하는 것이 가능하다. 그러나 scdp_access가 먼저 1로 설정되고, 그것이 뒤의 1을 판독할 때까지 폴링될 필요가 있다. 일반적으로, 이 모드가 flag_picture_end 기능의 일부로서 삽입되는 것은 전형적이다.The discard_all function is used to discard all data contained in the system. It is possible to select the discard_all function "manually" by setting the register discard_all to 1. However, scdp_access is first set to 1, and needs to be polled until it reads the next one. In general, this mode is typically inserted as part of the flag_picture_end function.

본 발명은 값 0이 discard_all에 기록되거나 FLUSH 토큰이 마주칠 때까지 모든 데이타를 계속하여 패기시킬 것이다. 리세트 discard_all은 토큰의 스트림으로부터 삭제되는 FLUSH 토큰이고 파서나 회로의 연속블록에 영향을 미치지 않는다.The present invention will continue to discard all data until a value of 0 is written to discard_all or a FLUSH token is encountered. The reset discard_all is a FLUSH token that is discarded from the stream of tokens and does not affect the parser or the circuit's contiguous block.

[flag_picture_end 기능][flag_picture_end feature]

발명에 따른 flag_picture_end 기능은 화상의 맨마지막 데이타의 흐름의 시스템 내에서 정지시키기전까지 대기하여 디코딩을 완료시키도록 한다. 따라서 파서는 화상을 완성시키지 않음을 알 수 있다.The flag_picture_end function according to the invention waits until it stops in the system of the last data flow of a picture to complete decoding. Thus, it can be seen that the parser does not complete the image.

제120도는 flag_picture_end 기능의 순서도로서 나타내었다. 도시한 바와 같이 마지막 화상의 검출되었을 때 인터럽트(flag_picture_end_event)를 발생시키는 것이 가능하다. 이것은 인터럽트가 제공될 때까지 데이타 처리를 정지시키는 SCD를 발생시킨다. 또한 SCD가 실행되도록 허용될 수도 있다.120 is shown as a flowchart of the flag_picture_end function. As shown in the figure, it is possible to generate an interrupt (flag_picture_end_event) when the last picture is detected. This generates an SCD that stops processing data until an interrupt is provided. SCD may also be allowed to run.

after_picture_discard가 1로 설정되면, 마지막 화상이 검출되어진 후 모든 후속 데이타가 패기될 수도 있다. 이것은 채널 변화전 시스템 멀티플랙서 내의 “상승”인 1 채널로부터 추종하는 데이타를 버리기위해서는 가장 유용하다.If after_picture_discard is set to 1, all subsequent data may be discarded after the last picture is detected. This is most useful to discard data following one channel that is "rising" in the system multiplexer prior to channel change.

이 실시예에서는 start_code_search 기능은 flag_picutre_end 기능을 앞선다. 이 방식에서, start_code_search는 마지막 화상이 도달하였는지를 결정하기 위해 시험되지 않았기 때문에 버려진다.In this embodiment, the start_code_search function precedes the flag_picutre_end function. In this way, start_code_search is discarded because it has not been tested to determine if the last picture has arrived.

[start_code_search 기능][start_code_search function]

본 발명에서 SCD는 개시부호의 특수한 타입을 탐색하도록 설정될 수 있다. 예컨대, 시작을 디코딩 하기전 순차개시부호를 탐색하기 위해 채널을 변화시킨 후 사용된다.In the present invention, the SCD may be set to search for a special type of start code. For example, it is used after changing the channel to search for the sequential start code before decoding the start.

[표 99]TABLE 99

탐색모드는 start_code_search에 제로가 아닌 값을 기록함으로서 개시된다. 이때, 개시모드 검출기는 표 99에 나타낸 것과 같은 적합한 개시부호를 탐색할 것이다. 모든 데이타와 토큰은 탐색이 계속되는 동안 버려진다. 적합한 1개의 개시부호가 마주칠 때 start_code_search는 제로로 설정되고 인터럽트가 선택적으로 발생되어 탐색이 종료된다.Search mode is initiated by writing a non-zero value to start_code_search. At this time, the start mode detector will search for a suitable start code as shown in Table 99. All data and tokens are discarded while the search continues. When one suitable start sign is encountered, start_code_search is set to zero and an interrupt is optionally generated to terminate the search.

또한 FLUSH 토큰이 지적한 개시부호와 마주치면 탐색을 종료함을 주목해야 한다. 그러나, FLUSH 토큰이 discard_all 기능을 종료시키는 특수한 경우에는 탐색이 종료되지 않는다. 이것은 더욱이, FLUSH 토큰이 마주칠 때 discard_all과 미리 선택된 탐색모드 사이의 직접 변이를 가능하게 한다.It should also be noted that the search ends when it encounters the opening code indicated by the FLUSH token. However, the search does not end in the special case where the FLUSH token terminates the discard_all function. This further enables a direct transition between discard_all and a preselected search mode when a FLUSH token is encountered.

제121도는 본 발명에 따른 start_code_search 기능의 순서도로서 나타낸다.121 is shown as a flowchart of the start_code_search function according to the present invention.

[SCD 예 - 채널변화][SCD Example-Channel Change]

본 발명에서 SCD 기능을 사용한 예는 채널 변환 동작에 영향을 미치는 다음의 시퀀스 동작에서 나타낸다.An example of using the SCD function in the present invention is shown in the following sequence operation affecting the channel conversion operation.

1) 제어되는 마이크로 프로세서는 채널변환(원격제어 장치로부터의 신호에 응답)을 위해 필요함을 알 수 있다. 마이크로프로세서는 기록에 의해 SCD의 flag_picture_end 기능을 사용한다.1) It can be seen that the controlled microprocessor is required for channel conversion (response to the signal from the remote control device). The microprocessor uses the flag_picture_end function of the SCD by writing.

· flag_picture_end에 11 in flag_picture_end

· after_picutre_discard에 11 to after_picutre_discard

· flag_picture_end_mask에 1을 기록.Write 1 to flag_picture_end_mask.

2) 개시부호 검출기가 현재 화상의 마지막을 검출할 때, 후속 데이타를 버리도록 검출기가 곧바로 스타트된다. 마이크로 프로세서는 인터럽트되어 flag_picture_event 인터럽트가 발생하였는가를 결정한다. 마이크로프로세서는 기록에 의해 새로운 채널용 개시부호 검출기를 준비시킨다.2) When the start detector detects the end of the current picture, the detector is immediately started to discard subsequent data. The microprocessor is interrupted to determine whether the flag_picture_event interrupt has occurred. The microprocessor prepares the start detector for the new channel by writing.

· start_code_search에 3(sequence_start를 탐색)을 기록Write 3 (search for sequence_start) to start_code_search

· flag_picture_end_event(사상을 클리어)에 1을 기록Record 1 in flag_picture_end_event (Clear thought)

3) 이어 마이크로프로세서는 새로운 채널을 선택하기위해 튜너로 복귀한다.3) The microprocessor then returns to the tuner to select a new channel.

4) 이전 채널로부터 마지막 데이타가 시스템 내에 전송되어진 후(새로운 채널로부터 제1 데이타가 전송되기전) FLUSH 토큰이 삽입된다(이와 다르게는 값 0이 discard_all에 기록됨.) 따라서 스타트 코드용 검출기는 데이타를 버리는 것을 정지(이전 채널로부터)하고 순차 스타트 코드의 탐색(새로운 채널로부터)을 개시한다.4) After the last data from the previous channel has been transferred into the system (before the first data from the new channel), the FLUSH token is inserted (otherwise the value 0 is written to discard_all). Stop discarding (from the previous channel) and start searching for the sequential start code (from the new channel).

5) 순차스타트 코드가 검출되면, 스타트 코드 검출기는 데이타를 버리는 것을 끝내고 정상 디코딩을 재수행한다.5) If a sequential start code is detected, the start code detector finishes discarding the data and re-executes normal decoding.

[서 문][Preface]

본 발명에 따른 비디오 파서(video parser)는 비디오 데이타 흐름을 디코딩 하도록 한다. 이것은 마이크로 프로그램된 프로세서로써 실행된다.The video parser according to the present invention allows decoding of the video data flow. This is done with a micro programmed processor.

사상의 일반 경로로 비디오 파서와 상호 작용할 필요가 없이 많은 단순한 장치를 단지 디코딩 비디오 자체의 일과 해나가도록 놓아둔다.A simple path of thought leaves many simple devices to work with the decoded video itself without having to interact with the video parser.

그러나 비디오 파서는 비트스트림 에러와 같은 비정상 또는 예상치 못한 것을 감지할 때 제어 마이크로프로세서를 알려줄 수 있다. 모든 경우, 마이크로 부호는 에러를 극복(및 취소)하는 부호를 포함하고 있어 비트스트림 에러를 무시할만큼 안전하다. 그러나 비트스트림 에러 발생을 하는 것이 진단 목적상 유용하다.However, the video parser can inform the controlling microprocessor when it detects an abnormal or unexpected, such as a bitstream error. In all cases, the micro code contains a sign that overcomes (and cancels) the error and is safe enough to ignore the bitstream error. However, generating a bitstream error is useful for diagnostic purposes.

또한, 타임 스탬프 관리의 다른 특징은 파서의 마이크로 부호 프로세서에서 처리되는 것이다. 이에 대한 것은 10장에서 기술하였다.Also, another feature of time stamp management is that it is handled by the parser's micro code processor. This is described in Chapter 10.

[파서레지스터]Parser Register

표 100에 나타낸 파서에 의해 사용되는 레지스터.Registers used by the parser shown in Table 100.

[표 100]TABLE 100

a 사상 비트는 단순 R/W 레지스터 비트가 아님.a mapping bit is not a simple R / W register bit.

b 모든 인터럽트는 1로 설정되는 칩-마스크에 대해 조건적이다.b All interrupts are conditional on a chip-mask that is set to one.

[에러 부호][Error code]

파서가 사상 조건을 감지할 때마다 파서-사상을 설정한다. 만약 파서-마스크가 IC 유저 시스템이 파서 사상을 서비스하는데 관여함을 나타냄)로 설정되면 파서는 프로세싱을 정지하여(칩-마스크가 1로 설정되었음을 추정함) 인터럽트가 발생된다.Whenever the parser detects a mapping condition, it sets the parser-imaging. If the parser-mask is set to indicate that the IC user system is involved in servicing the parser mapping, the parser stops processing (assuming that the chip-mask is set to 1) and an interrupt is generated.

인터럽트에 응해 제어 마이크로 프로세서는 파서-에러-부호를 판독하여 사상의 원인을 결정한다. 표 101은 이와 관련하여 규정된 에러 부호의 완전한 리스트를 제공한다.In response to the interrupt, the controlling microprocessor reads the parser-error-sign to determine the cause of the event. Table 101 provides a complete list of error codes defined in this regard.

제어 마이크로 프로세서가 소정의 방식으로 사상에 응한 후에 본 발명의 파서는 프로세싱을 떠맡도록 한다. 이것은 값 1을 파서-사상에 기록함으로서 사상을 클리어하는 것으로써 이루어진다.The parser of the present invention takes over the processing after the controlling microprocessor has responded to the idea in some manner. This is done by clearing the mapping by writing the value 1 into the parser-ideology.

[표 101]TABLE 101

[유저 데이타 처리][User Data Processing]

소량의 유저 데이타는 파서로부터 판독한다. 잘못하면 모든 유저 데이타가 스타트부호 감지기에 의해 버려진다. 이것은 그의 용량초과의 대량의 유저 데이타의 부적절한 사용으로부터 시스템을 보호하기위한 것이다.A small amount of user data is read from the parser. If wrong, all user data will be discarded by the start code detector. This is to protect the system from improper use of large amounts of user data beyond its capacity.

유저 데이타가 파서에 도달토록 하기 위하여는 레지스터 디스카드-유저가 0으로 설정되어야 한다. 유저 데이타가 비트 스트림에서 만날때마다 데이타 바이트는 온칩 유저 데이타 램에 완충된다. 램은 완충될 데이타의 192 바이트를 위한 간격을 갖는다. 모든 유저 데이타의 바이트가 판독되면 (또는 램이 풀로되면) 파서는 사상(ERR_USER_DATA)를 발생하여 제어 마이크로프로세서가 RAM에서 데이타를 읽도록 한다.In order for user data to reach the parser, the register discarder-user must be set to zero. Each time user data meets in the bit stream, the data byte is buffered in the on-chip user data RAM. RAM has an interval for 192 bytes of data to be buffered. When all the bytes of user data have been read (or the RAM is full), the parser generates a mapping (ERR_USER_DATA) that causes the control microprocessor to read the data from RAM.

유저 데이타 램이 판독되기전에 마이크로 프로세서는 먼저 파서-액세스를 1로 설정하여 파서 내부의 레지스터로 액세스를 얻어야 하며 그리고 이 비트를 1로 다시 읽을 때까지 폴링해야 한다. 유저 데이타 램에서의 바이트 수는 파서-상태에 의해 나타내어진다. 유저-데이타 램은 직접 액세스 불가능하다. 대신 user_keyhole_addr(보통 제로)로 읽혀지고 데이타가 user_keyhole_data로부터 판독되는 어드레스를 기록할 필요가 있다. user_keyhole_addr는 매 시간마다 자동적으로 증가하여 user_keyhole_data로부터 판독이 행해지므로 소정수의 유저 데이타를 매우 신속하게 읽을 수 있다.Before the user data RAM can be read, the microprocessor must first set the parser-access to 1 to gain access to the register inside the parser and poll until this bit is read back to 1. The number of bytes in the user data RAM is represented by the parser-state. User-data programs are not directly accessible. Instead, you need to record the address read by user_keyhole_addr (usually zero) and the data read from user_keyhole_data. user_keyhole_addr is automatically incremented every hour, and reading is performed from user_keyhole_data so that a predetermined number of user data can be read very quickly.

만약 유저 데이타의 192 바이트보다 작을 경우엔 모든 데이타가 하나의 사상에 의해 처리된다. 만약 192 바이트보다 클 경우엔 파서-상태가 먼저 192 바이트를 포함하여 에러-유저-데이타가 발생된다. 사상이 클리어된 후(파서-액세스에 제로 기입하여 파서-사상에 1을 기록함으로써) 마이크로 부호는 파서-연속을 관계시켜 다음에 무엇을 할 것인가를 결정한다.If it is smaller than 192 bytes of user data, all data is processed by one mapping. If it is larger than 192 bytes, the parser-status first contains 192 bytes, resulting in error-user-data. After the mapping is cleared (by writing zero to the parser-access and writing one to the parser-ideal), the microsignal relates the parser-continuation to determine what to do next.

만약 파서-연속이 1이면, 파서는 유저 데이타 처리를 계속한다. 유저 데이타의 잔류바이트(또는 다음 192 바이트)가 스트림으로부터 분석되면 프로세스는 반복한다. 그러나 만약 파서-컨티뉴(연속)이 0이면 파서는 잔류유저 데이타를 버리고 보통 비디오 디코딩으로 진행한다. 주의할 것은, 비록 파서-컨티뉴가 0이라도 1차 ERR_USER_DATA 사상은 항상 발생될 것이다.If the parser-continuation is 1, the parser continues processing the user data. The process repeats if the remaining bytes (or next 192 bytes) of user data are parsed from the stream. However, if the parser-continuity is zero, the parser discards the residual user data and proceeds to normal video decoding. Note that the primary ERR_USER_DATA mapping will always occur even if the parser-continue is zero.

[유저 데이타의 양 제한][Limit the amount of user data]

만약 유저 데이타를 사용하고자 할 경우엔, 이를 제한토록 하여 비디오 데이타의 디코딩하는 실제시간이 본 발명에 따라 보장되도록 하는 것이 중요하다. 유저 데이타의 수용가능한 한계를 특정하는 것은 매우 어렵다. 왜냐하면 제어 마이크로프로세서의 인터럽트 응답시간과 시스템으로부터 데이타의 바이트를 읽은 시간과 같은 외적인 많은 구속에 달려 있기 때문이다. 참고로, 유저 데이타의 양은 시스템에서 판독가능한 약 50㎲(인터럽트 응답시간 등을 포함하여)가 보장되는 양으로 한정된다.If it is desired to use user data, it is important to limit it so that the actual time of decoding the video data is guaranteed according to the invention. It is very difficult to specify acceptable limits of user data. This is because it depends on many external constraints, such as the interrupt response time of the control microprocessor and the time it takes to read a byte of data from the system. For reference, the amount of user data is limited to an amount that is guaranteed to be about 50 ms (including interrupt response time) readable by the system.

[데이타 유저 램][Data user RAM]

픽쳐 데이타의 디코딩 중에, 유저 램은 다른 목적을 위해(예로써, 은폐모션 벡터의 저장) 마이크로 디부호 프로세서에 의해 사용된다. 이런 까닭에 램에서 데이타를 떠나는 것이 불가능하고 차측의 사용을 위해 보유될 것이다.During the decoding of the picture data, the user RAM is used by the micro decode processor for other purposes (eg, storing the concealed motion vector). Because of this, it is impossible to leave data out of RAM and will be reserved for use on the secondary side.

[서 문][Preface]

본 발명은 비디오 타임 스탬프의 관리를 보조하는 회로를 포함한다. MPEG 시스템 스트립 파서와 관련된 외부 회로는, 클럭 레퍼런스(프로그램된 클럭 레퍼런스 또는 적당한 시스템 클럭 레퍼런스)를 사용하여 안정된 27MHz 클럭을 복귀한다.The present invention includes circuitry to assist in the management of video time stamps. External circuitry associated with the MPEG system strip parser returns a stable 27 MHz clock using a clock reference (programmed clock reference or appropriate system clock reference).

따라서 본 발명에 따른 회로는 소정의 시간에 스타팅 비디오 디코딩과 관련하여 오디오와 동기하게 한 후 비디오 타임 스탬프를 모니터하여 연속된 동기가 되도록 한다. 에러가 없으면 연속 보정을 필요로 하지 않는다.Thus, the circuit according to the present invention synchronizes the audio with respect to the starting video decoding at a predetermined time and then monitors the video time stamp for continuous synchronization. If there is no error, no continuous calibration is required.

클럭 레퍼런스 정보를 비디오 디코더에 옮길 필요없도록 하는 것이 바람직하다. 하드웨어는 시스템의 입력 단계와 관련하여 비디오 타임 스탬프를 로딩하는 회로와 비디오 파서 회로와 관계하는 실제시간-카운터로 두영역으로 나뉘어진다.It is desirable to avoid having to move the clock reference information to the video decoder. The hardware is divided into two areas: the circuit that loads the video time stamp with respect to the input stage of the system, and the real time-counter associated with the video parser circuit.

[구성 시스템][Configuration system]

본 발명은 27MHz 시스클럭(SYSCLOCK)으로부터 발생되는 일정 인터벌로 증가하는 카운터를 포함한다. 타임 스탬프 관리 시스템은 개념상 시스템의 외부에서 유지되는 이 카운터의 제2 복사에 의한다. 이들 두 카운터는 동일 신호에 의한 리세트에 의해 동일 값으로 시작된다. 그런후 두개의 카운터는 자유로 권한다.The present invention includes a counter that increments with a constant interval that results from a 27 MHz SYSCLOCK. The time stamp management system is conceptually dependent on a second copy of this counter maintained outside of the system. These two counters start with the same value by reset by the same signal. Then the two counters are free to recommend.

본 발명은 “비디오 타임”으로 표시되는 그의 내부 시간 카운터에 대한 그의 타임 스탬프 관리를 수행한다. 적당한 비교가 이루어지도록 하기위해 비디오 타임 스탬프가 시스템 디코더에 의해 변경된다. 이는 절대적인 시간을 알 필요가 없다.The present invention performs its time stamp management on its internal time counter, denoted as "video time". The video time stamp is changed by the system decoder to ensure proper comparison is made. It is not necessary to know the absolute time.

- 단지 픽쳐가 디부호되는 실제시간과 디부호될 액면시간 사이의 차이만 알면 된다.You only need to know the difference between the actual time the picture is to be decoded and the face time to be decoded.

하기 식 1은 실제 “시간”(클럭 레퍼런스로부터 나오는)과 타임 스탬프 사이의 차이와 동일한 비디오 타임 카운터와 변경된 타임 스탬프 사이의 차이를 세팅함으로서 이를 표시하며, 식 2는 단지 변경된 시간 스탬프를 끌어내기 위한 가변을 인식하는 것이다.Equation 1 below expresses this by setting the difference between the video time counter and the changed time stamp that is equal to the difference between the actual “time” (from the clock reference) and the time stamp, and Equation 2 is merely used to derive the changed time stamp. It is to recognize variables.

식 1 :Equation 1:

비디오 타임 - 변경된 타임 스탬프 = 타임 스탬프 - 타임Video Time-Changed Timestamp = Timestamp-Time

식 2 :Equation 2:

변경된 타임 스탬프 = 비디오 타임 + (타임 스탬프 - 타임)Time stamp changed = video time + (time stamp-time)

제122도는 변형된 시간 스탬프를 유출하기위한 하나의 가능한 산술구성을 보여주고 있다. 실제로 실질적인 부가(및 시프트)는 부여된 하드웨어보다 프로세서에서 오히려 실행될 것이다. 물론 어떤 다른 여러 방법으로 변형된 시간 스탬프의 동일 수치를 끌어낼 수도 있다. 예로써, 비디오 타임의 복사를 갖는 것보다 본 발명의 리셋트-타임 핀이 마지막으로 시위되었을 때 “타임” 값을 단순히 기록하는 것이 오히려 좋다. 이 정보와 현재의 “타임” 값으로부터, 시스템 내에서 비디오 타임의 현재 내용을 항상 끌어낼 수 있다.Figure 122 shows one possible arithmetic scheme for leaking modified time stamps. Indeed, substantial additions (and shifts) will be performed on the processor rather than on the given hardware. Of course, you can derive the same number of modified time stamps in some other way. For example, rather than having a copy of video time, it is better to simply record the “time” value when the reset-time pin of the present invention was last demonstrated. From this information and the current "time" value, you can always derive the current content of video time within the system.

변형된 시간의 소정의 값을 산출하는 어떤 소정의 재어레인지된 산술작동을 이용할 수도 있다.Any predetermined rearranged arithmetic operation may be used that yields a predetermined value of the modified time.

제122도에 나타낸 바와 같이 본 발명에서 사용되는 변형된 타임 스탬프는 단지 16비트이다. 이것은 2가지 방식으로 달성된다. 먼저, 시간과 타임 스탬프 사이의 차이(변형된 타임 스탬프를 알아내기 위해 사용됨 - 식 2 참조)는 항상 작고, 더 중요한 비트를 버릴 수 있다. 2번째는 발명은 비디오의 존재를 가장 가까운 프레임-시간으로 단지 제어하기 때문에 중요하지 않은 비트 역시 필요로 하지 않고 4비트로써 우측으로 시프팅하여 디스카드한다.As shown in FIG. 122, the modified time stamp used in the present invention is only 16 bits. This is accomplished in two ways. First, the difference between time and time stamp (used to find the modified time stamp-see Equation 2) is always small and can discard more significant bits. The second is that the invention only controls the presence of video to the nearest frame-time, so it does not need any non-significant bits and shifts to the right with 4 bits to discard.

그리하여 유지하고 있는 16비트 시간 정보는 타이밍에 에러를 약 180㎲(필드 시간의 약 10%)의 정확도로 약 11.5초까지 처리할 수 있다.The 16-bit time information thus held can process errors up to about 11.5 seconds with an accuracy of about 180 ms (about 10% of field time) in timing.

본 기술분야에서 통상의 지식을 가진 자가 쉽게 이해할 수 있는 추가도면들은 본 발명이 작동하는 주변의 상세 구조 및 동작을 알 수 있도록 하는 이 장치를 포함한다.Additional drawings, which are easily understood by those skilled in the art, include this apparatus to enable the user to know the detailed structure and operation of the surroundings in which the present invention operates.

상술한 본 발명의 파이프라인 시스템은, 파이프라인 프로세싱 장치로 설치한 2-와이어 인터페이스에 의해 상호연결되는 복수의 단계를 이용하는 MPEG 비디오 감압방법 및 장치를 포함하여, 비디오 디코딩 시스템의 여러 특성에 대한 오랜 시간의 또 다른 개선에 대한 욕구를 만족시킨다. 콘트롤 토큰과 데이타 토큰은 단일의 2-와이어 인터페이스를 지나 토큰 포맷의 콘트롤과 데이타 모두를 이송한다.The above-described pipeline system of the present invention includes an MPEG video decompression method and apparatus using a plurality of stages interconnected by a 2-wire interface installed as a pipeline processing apparatus, thereby providing a long time for various characteristics of the video decoding system. Satisfy the desire for another improvement of time. Control tokens and data tokens carry both token format controls and data over a single two-wire interface.

토큰 디부호 회로는 소정의 스테이지에 위치하여, 그 스테이지에 상응하는 콘트롤 토큰으로서의 소정의 토큰을 인식하고 또, 미인식된 콘트롤 토큰을 파이프 라인을 따라 지나가도록 한다. 재구성 프로세싱 회로는 선택된 스테이지에 위치하여 인식된 콘트롤 토큰에 응해 그 스테이지를 재구성하여 확인된 데이타 토큰을 처리한다. 매우 다양한 단일의 지지 보조 시스템 회로와 프로세싱 기술은, 메모리 어드레싱, 통상의 프로세싱 블록을 사용한 트랜스포밍 테이타, 시간동기, 비동기, 스윙 버퍼링, 비디오 정보의 저장, 평행 허프만 디코더 등을 포함하는 시스템 실행 기술이 나와 있다.The token decode circuit is located at a given stage to recognize the given token as the control token corresponding to that stage and to pass the unrecognized control token along the pipeline. The reconstruction processing circuitry is located at the selected stage and reconstructs the stage in response to the recognized control token to process the confirmed data token. A wide variety of single support auxiliary system circuits and processing techniques include system implementation techniques including memory addressing, transforming data using conventional processing blocks, time synchronization, asynchronous, swing buffering, storage of video information, parallel Huffman decoders, and the like. It is out.

비록 본 발명은 특정형태로써 기술되었지만 본 발명의 사상과 범위에서 벗어나지 않는 여러 변형이 가능함은 물론이다. 따라서 본 발명은 첨부한 청구범위에 특히 한정되는 것은 아니다.Although the present invention has been described in particular forms, various modifications are possible without departing from the spirit and scope of the invention. Accordingly, the invention is not particularly limited to the appended claims.

Claims (41)

멀티플렉스된 데이타 스트림 내의 시간 동기화 장치에 있어서, 멀티플렉스된 데이타의 스트림을 수용하고, 각각이 일련의 액세스 유닛들을 포함하고 그와 관련된 일련의 타임 스탬프(time stamps)들을 갖는 다수의 기본 데이타 스트림들을 출력하는 디멀티플렉서; 제1 회로의 시스템 타임을 초기화하기 위한 기준클럭과; 상기 기준클럭과 교신하여 상기 제1 회로내의 시스템 타임을 유지하기 위한 제1 타임 카운터와; 상기 제1 타임카운터와 동기화된 제2 회로에 상기의 기준클럭에 의해 초기화되는 제2 타임카운터를 포함하며, 상기 제2 타임카운터는 상기 시스템타임의 로컬카피를 보유하고 상기 타임 스탬프와 제2 타임카운터를 비교하여 상기 로컬카피와 상기 시스템타임 간의 프리젠테이션 타이밍 에러를 결정하는 것을 특징으로 하는 시간 동기화 장치.A time synchronization device in a multiplexed data stream, comprising: a plurality of elementary data streams that contain a stream of multiplexed data, each containing a series of access units and having a series of time stamps associated therewith; Output demultiplexer; A reference clock for initializing the system time of the first circuit; A first time counter in communication with the reference clock to maintain a system time in the first circuit; A second time counter initialized by the reference clock in a second circuit synchronized with the first time counter, the second time counter retaining a local copy of the system time and the time stamp and a second time. Compare a counter to determine a presentation timing error between the local copy and the system time. 시스템 디코더와 비디오디코더를 동기화하기 위한 장치에 있어서, 시스템 디코더와; 디스플레이 타임을 결정하기 위한 타임 스탬프와; 상기 시스템 디코더 내에서 시스템타임을 초기화하기 위한 기준클럭과; 상기 기준클럭과 교신하면서 상기 시스템 디코더의 시스템타임을 유지하기 위한 제1 타임카운터와; 상기 제1 타임카운터에 동기된 상기의 비디오디코더 내에서 상기 기준클럭에 의해 초기화되는 제2 타임카운터를 포함하며, 상기 제2 타임카운터는 시스템타임의 로컬카피를 보유하면서 상기 타임 스탬프와 제2 타임카운터를 비교하여 상기 시스템 타임과 상기의 시스템타임의 로컬카피 사이의 디스플레이 타이밍 에러를 결정하는 것을 특징으로 하는 시스템 디코더와 비디오디코더의 동기화 장치.An apparatus for synchronizing a video decoder with a system decoder, comprising: a system decoder; A time stamp for determining a display time; A reference clock for initializing system time in the system decoder; A first time counter for communicating with the reference clock to maintain system time of the system decoder; A second time counter initialized by the reference clock in the video decoder synchronized with the first time counter, wherein the second time counter maintains a local copy of system time while maintaining the time stamp and second time. And comparing a counter to determine a display timing error between the system time and a local copy of the system time. 제1 및 제2 회로를 동기화하기 위한 장치에 있어서, 제1 회로는 시스템타임을 초기화하기 위한 기준클럭을 갖고, 상기 제1 회로는 이 기준클럭과 교신하며 시스템타임을 보유하기 위해 타임카운터를 갖는 것이며; 기본 스트림타임을 부여하기 위한 상기 제1 회로 내의 제1 기본 스트림타임 카운터와; 타임 스탬프를 수신하도록 설정되며 이 타임 스탬프에 기본 스트림타임을 가산하고 시스템타임을 감산함으로서 동기시간을 생성하는데 적합한 상기 제1 회로와; 상기 제1 회로로부터 동기시간을 수신하며 상기 기본 스트림타임 카운터에 동기되어 상기 기본 스트림타임의 로컬카피를 부여하고 동기시간과 이 로컬카피를 비교함으로써 상기 시스템타임과 상기 타임 스탬프 간의 타이밍 에러를 결정하는 제2 회로를 포함하며, 타이밍 에러를 결정하기 위해 상기 기준클럭이 상기 제2 회로로 직접 전달될 필요가 없는 것을 특징으로 하는 제1 및 제2 회로를 동기화하기 위한 장치.20. An apparatus for synchronizing first and second circuits, the first circuit having a reference clock for initializing system time, said first circuit having a time counter to communicate with this reference clock and retain system time. Will; A first elementary stream time counter in said first circuit for granting elementary stream time; A first circuit configured to receive a time stamp and adapted to generate a synchronization time by adding an elementary stream time to the time stamp and subtracting a system time; Receiving a synchronization time from the first circuit and synchronizing with the elementary stream time counter to give a local copy of the elementary stream time and comparing the local time with the synchronization time to determine a timing error between the system time and the time stamp. And a second circuit, wherein the reference clock need not be passed directly to the second circuit to determine a timing error. 제1 및 제2 회로를 동기화하기 위한 장치에 있어서, 제1 회로의 시스템타임을 초기화하기 위한 기준클럭; 상기 기준클럭과 교신하며 시스템타임을 유지하기 위한 타임카운터를 갖는 상기 제1 회로; 비디오 디코딩타임을 제공하기 위한 제1 비디오타임 카운터; 비디오 타임 스탬프를 수신하며 이 비디오 타임 스탬프에 비디오 디코딩타임을 가산하고 시스템타임을 감산함으로써 동기시간을 생성하는데 적합한 제1 회로와; 상기 제1 회로로부터 동기시간을 수신하는데 적합하며 상기 제1 비디오 타임 카운터에 동기되어 비디오 디코딩타임의 로컬카피를 부여하고 이 로컬카피와 상기 동기시간을 비교함으로써 상기 시스템타임과 상기 비디오 타임 스탬프 간의 타이밍 에러를 결정하는 제2 비디오 타임카운터를 갖는 제2 회로를 포함하며, 타이밍 에러를 결정하는데 상기 기준클럭이 상기 제2 회로로 직접 전달될 필요가 없는 것을 특징으로 하는 제1 및 제2 회로를 동기화하기 위한 장치.11. An apparatus for synchronizing first and second circuits, comprising: a reference clock for initializing system time of the first circuit; The first circuit communicating with the reference clock and having a time counter for maintaining system time; A first video time counter for providing video decoding time; A first circuit adapted to generate a synchronous time by receiving a video time stamp and adding a video decoding time to the video time stamp and subtracting a system time; A timing between the system time and the video time stamp by suitable for receiving a synchronization time from the first circuit and synchronizing with the first video time counter to give a local copy of the video decoding time and comparing the local copy with the synchronization time. And a second circuit having a second video time counter for determining an error, wherein said reference clock need not be passed directly to said second circuit to determine timing error. Device for 타이밍정보를 설정하기 위한 방법에 있어서, 패킷헤더를 통해 전송되는 타임 스탬프를 갖는 비디오 데이타 스트림을 준비하는 단계와; 상기 타임 스탬프는 패킷 데이타에서 첫 화상을 지정하는 것이며; 유효 타임 스탬프 정보임을 표시하는 플래그를 갖는 레지스터를 설정하는 단계와; 상기 플래그는 상기 패킷헤더에서 얻어지고 이 레지스터에 기록되는 정보이며; 상기 타임 스탬프를 상기 비디오 데이타스트림에서 제거하고 이를 상기 레지스터에 기록하는 단계와; 화상개시 상황이 되면서 유효 타임 스탬프 정보가 상기 레지스터에 들어 있는지를 결정하기 위해 플래그를 체크하여 상기 레지스터의 상태를 검사하는 단계를 포함하는 것을 특징으로 하는 타이밍정보 설정 방법.CLAIMS 1. A method for setting timing information, the method comprising: preparing a video data stream having a time stamp transmitted through a packet header; The time stamp designates the first picture in the packet data; Setting a register having a flag indicating valid time stamp information; The flag is information obtained from the packet header and written to this register; Removing the time stamp from the video data stream and writing it to the register; And checking a flag to check a state of the register to determine whether valid time stamp information is included in the register at an image start state. 화상 디코딩을 위한 방법에 있어서, 설정값에 대한 디스플레이 타임 에러를 결정하는 단계와; 다음 처리를 위해 비디오데이타를 토큰으로 구분짓는 단계와; 타임 스탬프 토큰이 지시되는지를 확인하는 단계와; 상기 타임 스탬프 토큰을 비디오타임과 비교하는 단계와; 비교값을 생성함으로서 타이밍에러의 발생을 표시하는 단계와; 타이밍에러가 나타날때, 상기 비교값이 상기 설정값에 비교하여 허용가능한 범위에 있는지를 결정하는 단계와; 상기 비교값이 허용범위 밖에 있을때 이를 표시하는 단계를 포함하는 것을 특징으로 하는 화상 디코딩 방법.CLAIMS 1. A method for picture decoding, comprising: determining a display time error for a setting value; Separating the video data into tokens for subsequent processing; Confirming whether a time stamp token is indicated; Comparing the time stamp token with video time; Indicating occurrence of a timing error by generating a comparison value; When a timing error occurs, determining whether the comparison value is in an acceptable range compared to the set value; And displaying the comparison value when it is outside the allowable range. 시스템디코더와 비디오디코더를 사용하기 위한 장치에 있어서, MPEG 시스템 스트림을 수신하는데 적합하고 스트림으로부터 비디오데이타와 비디오 타임 스탬프를 디멀티플렉싱하는 하나의 시스템디코더와; 상기 시스템디코더는 시스템타임을 대표하는 제1 타임카운터를 갖는 것이며; 상기 비디오데이타 및 비디오타임 스탬프를 수신하는 하나의 비디오디코더와; 상기 비디오시스템은 상기 제1 타임카운터에 동기된 제2 타임카운터를 갖는 것이며; 상기 비디오디코더는 또한 상기 비디오데이타를 상당히 일정한 정도의 속도로 받아들이고 이것을 유동적인 속도로 출력하여 비디오 타임 스탬프를 통과시킬 수 있도록 하는 비디오디코더 버퍼를 포함하는 것을 특징으로 하는 시스템디코더와 비디오디코더를 사용하기 위한 장치.11. An apparatus for using a system decoder and a video decoder, comprising: a system decoder suitable for receiving an MPEG system stream and demultiplexing video data and video time stamps from the stream; The system decoder has a first time counter representative of the system time; A video decoder for receiving the video data and the video time stamp; The video system has a second time counter synchronized with the first time counter; The video decoder also includes a video decoder buffer for receiving the video data at a fairly constant rate and outputting it at a fluid rate to pass the video time stamp. Device for. 제1 회로와 제2 회로간의 타이밍 에러를 결정하는 방법에 있어서, 제1 회로에 시스템타임(SY), 타임 스탬프(TS), 그리고 기본스트림타임(ET)를 설정하는 단계와; 기본 트림타임(ET), 타임 스탬프(TS), 시스템타임(SY)와 수식 X=ET+TS-SY 를 사용하여 동기시간(X)를 구하는 단계와; 동기시간(X)를 제2 회로에 제공하는 단계와; 동기화된 기본 스트림타임(ET2)를 생성하는 단계와; 동기시간 (X)와 수식 ET2-X를 사용하여 타이밍 에러를 구하는 단계를 포함하며, 상기 제1 회로가 시스템타임을 제2 회로에 전달하지 않고 제2 회로와 동기되어질 수 있는 것을 특징으로 하는 제1 회로와 제2 회로간의 타이밍 에러 결정 방법.CLAIMS 1. A method for determining timing error between a first circuit and a second circuit, the method comprising: setting a system time (SY), a time stamp (TS), and an elementary stream time (ET) in a first circuit; Obtaining a synchronizing time (X) using a basic trim time (ET), a time stamp (TS), a system time (SY) and the expression X = ET + TS-SY; Providing a synchronizing time (X) to a second circuit; Generating a synchronized elementary stream time (ET2); Obtaining a timing error using the synchronizing time (X) and the equation ET2-X, wherein the first circuit can be synchronized with the second circuit without transferring system time to the second circuit. A timing error determination method between one circuit and a second circuit. 제1 회로와 제2 회로간의 타이밍 에러를 결정하기 위한 방법에 있어서, 제1 회로에 타임 스탬프(TS)와 초기시간(IT)를 설정하는 단계와; 타임 스탬프(TS), 초기시간(IT)와 수식 X=TS-IT를 사용하여 동기시간(X)를 구하는 단계와; 동기시간(X)를 제2 회로에 전달하는 단계와; 동기화된 기본 스트림타임(ET)를 생성하는 단계와; 동기시간(X)와 식 ET-X를 사용하여 타이밍에러를 얻는 단계를 포함하며, 제1 회로가 시간을 전달하지 않고 제2 회로와 시간동기될 수 있는 것을 특징으로 하는 제1 회로와 제2 회로간의 타이밍 에러 결정 방법.CLAIMS 1. A method for determining timing error between a first circuit and a second circuit, the method comprising: setting a time stamp (TS) and an initial time (IT) in a first circuit; Obtaining a synchronization time (X) using a time stamp (TS), an initial time (IT), and an expression X = TS-IT; Transferring a synchronizing time (X) to a second circuit; Generating a synchronized elementary stream time (ET); Obtaining a timing error using the synchronizing time (X) and the equation ET-X, wherein the first circuit and the second circuit can be synchronized with the second circuit without passing time. How to determine timing error between circuits. 제1 회로와 제2 회로간의 타이밍에러를 결정하기 위한 방법에 있어서, 제1 회로에 시스템타임(SY), 비디오 타임 스탬프(VTS)와 비디오 디코딩타임(VT)를 부여하는 단계와; 비디오 디코딩타임(VT), 비디오 타임 스탬프(VTS), 시스템타임(SY)과 수식 X=VT+VTS-SY를 사용하여 동기시간(X)를 구하는 단계와; 동기시간(X)를 제2 회로에 전달하는 단계와; 제1 회로의 디코딩타임(VT)에 동기되는 제2 회로의 비디오 디코딩타임(VT2)를 생성하는 단계와; 동기시간(X)와 식 VT2-X를 사용하여 타이밍에러를 구하는 단계를 포함하며, 상기 제1 회로가 시스템타임을 제2 회로에 전달하지 않고 동기될 수 있는 것을 특징으로하는 제1 회로와 제2 회로간의 타이밍에러 결정 방법.CLAIMS 1. A method for determining timing error between a first circuit and a second circuit, the method comprising: giving a system time (SY), a video time stamp (VTS), and a video decoding time (VT) to the first circuit; Obtaining a synchronizing time (X) using the video decoding time (VT), the video time stamp (VTS), the system time (SY) and the expression X = VT + VTS-SY; Transferring a synchronizing time (X) to a second circuit; Generating a video decoding time VT2 of a second circuit synchronized with the decoding time VT of the first circuit; Calculating a timing error using the synchronizing time (X) and equation (VT2-X), wherein the first circuit can be synchronized without transferring system time to the second circuit. How to determine timing error between two circuits. 메모리 어드레싱 방법에 있어서, 가변폭(width) 데이타를 어드레싱하기 위해 사용될 미리 설정된 일정수의 비트를 갖는 고정된 폭의 워드를 준비하는 단계와; 상기 고정폭의 워드를 폭정의 필드와 어드레스 필드로 정의하는 단계와; 상기 폭정의 필드에 종료마커로 쓰기 위해 최소한 하나의 비트를 구비하는 단계와; 상기 어드레스 필드를 데이타의 어드레스를 지정하는 복수의 비트로 정의하는 단계와; 상기 가변폭 데이타의 크기에 역비례하여 어드레스 필드의 비트수를 변경하는 단계와; 상기 가변폭 데이타의 크기에 직결되어 폭정의 필드의 비트수를 변경하는 단계를 포함하며, 가변폭 데이타의 어드레싱에서 대하여 상기 폭정의 필드와 어드레스 필드의 규모가 변화하여도 고정폭의 워드를 유지하는 것을 특징으로 하는 메모리 어드레싱 방법.CLAIMS 1. A memory addressing method, comprising: preparing a fixed width word having a predetermined number of bits to be used for addressing variable width data; Defining the word of fixed width into a field of tyranny and an address field; Having at least one bit in the field of tyranny as an end marker; Defining the address field with a plurality of bits that address data; Changing the number of bits of the address field in inverse proportion to the size of the variable width data; And changing the number of bits of the ganged field in direct connection with the size of the variable-width data, and maintaining a fixed-width word even when the size of the ganged and address fields changes in addressing the variable-width data. A memory addressing method, characterized in that. 메모리 어드레싱 방법에 있어서, 어드레싱 데이타로 사용될 미리 설정된 수의 비트를 갖는 고정된 폭의 워드를 구비하는 단계와; 상기 고정폭의 워드를 어드레스 필드와 대체필드로 정의하는 단계와; 상기 어드레스 필드를 데이타의 어드레스를 정의하는 복수의 비트로 정의하는 단계와; 가변폭 대체필드를 최소한 하나의 대체비트로서 정의하는 단계와; 상기 대체필드는 어드레스 필드와 대체필드 간의 종료마커로 쓰기 위해 최소한 하나의 비트를 갖는 것이며; 별개의 어드레싱 소스로부터 대체비트들을 표시하기 위해 대체필드를 사용하는 단계를 포함하며, 어드레스 필드폭과 대체필드 폭이 역비례한 변화를 하더라도 가변폭 데이타의 어드레싱에 있어서 고정폭의 워드를 유지하는 것을 특징으로 하는 메모리 어드레싱 방법.CLAIMS 1. A memory addressing method, comprising: having a fixed width word having a predetermined number of bits to be used as addressing data; Defining the fixed-width word as an address field and a replacement field; Defining the address field with a plurality of bits defining an address of the data; Defining a variable width replacement field as at least one replacement bit; The replacement field has at least one bit for writing as an end marker between the address field and the replacement field; Using a replacement field to indicate replacement bits from a separate addressing source, and maintaining a fixed width word in addressing variable width data even if the address field width and the replacement field width change in inverse proportion. Memory addressing method. 메모리내에서 가변폭 데이타를 어드레싱하기 위한 방법에 있어서, 미리 설정된 폭의 워드를 갖으며 부분워드로 구성되어진 메모리를 구비하는 단계와; 상기 부분워드를 회전시켜 최소자릿수 비트단에서 억세스되도록 하는 단계와; 상기 워드의 나머지부분을 억세스된 워드가 부분워드로 인식되도록 연장하는 단계와; 상기 워드의 나머지부분을 복원하는 단계와; 상기 워드를 상기 부분워드가 원래의 위치에 복귀하도록 회전하는 단계를 포함하는 것을 특징으로 하는 가변폭 데이타를 어드레싱하는 방법.CLAIMS What is claimed is: 1. A method for addressing variable width data in a memory, comprising: having a memory having words of a predetermined width and consisting of partial words; Rotating the partial word to be accessed at the least significant bit end; Extending the remainder of the word so that the accessed word is recognized as a partial word; Restoring the remainder of the word; And rotating the word such that the partial word returns to its original position. 병렬 허프만 디코더에 있어서, 선택기와; 허프만코드 데이타를 수신하기 위한 한 쌍의 입력 레지스터로서 이 두 레지스터는 상기 선택기에 병렬로 입력을 제공하며; 상기 선택기와 별개의 ROM테이블 선택입력으로부터 입력을 수신하는 하나의 허프만코드 ROM을 포함하며, 상기 ROM으로부터 디코드된 출력을 얻는 것을 특징으로 하는 병렬 허프만 디코더.A parallel Huffman decoder comprising: a selector; A pair of input registers for receiving Huffman code data, the two registers providing inputs in parallel to the selector; And a Huffman code ROM receiving an input from a ROM table selection input separate from the selector, wherein the Huffman decoder obtains a decoded output from the ROM. 버스를 RAM에 접속하기 위한 RAM 인터페이스에 있어서, 버스로부터 복수의 데이타워드를 수신하며, 수신된 데이타워드를 버퍼링 하는 수단과; 상기 버스로부터 상기 복수의 데이타워드에 관련된 어드레스를 수신하는 수단과; 상기 저장된 데이타워드가 기록될 RAM의 연속된 어드레스를 생성하기 위한 수단과; 상기 연속 어드레스는 상기 수신 어드레스로부터 추출되는 것이며; 상기 데이타 워드를 생성된 RAM의 상기 어드레스에 기록하는 수단을 포함하는 것을 특징으로 하는 RAM 인터페이스.A RAM interface for connecting a bus to RAM, comprising: means for receiving a plurality of datawords from a bus and buffering the received datawords; Means for receiving an address associated with the plurality of datawords from the bus; Means for generating a contiguous address of a RAM into which the stored dataword is to be written; The consecutive address is extracted from the receiving address; Means for writing said data word to said address of the generated RAM. 버스를 RAM에 접속하기 위한 RAM 인터페이스에 있어서, 미리 설정된 어드레스를 갖는 RAM에 저장된 복수의 데이타워드와; 상기 복수의 데이타워드에 관련된 RAM어드레스를 버스로부터 수신하기 위한 수단과; 상기 RAM에 저장된 상기 복수의 데이타워드를 어드레싱하기 위한 RAM어드레스 열을 생성하는 수단과; 상기 어드레스 열은 상기 수신 어드레스에서 추출되는 것이며; 상기 RAM에서 읽혀진 데이타워드들을 버퍼하는 수단과; 상기 RAM으로부터 상기 복수의 데이타워드를 읽는 수단을 포함하며, 상기 어드레스 생성수단에 의해 생성된 RAM어드레스를 사용하여 상기 버퍼수단으로 상기 데이타워드를 기록하는 것을 특징으로 하는 RAM인터페이스.A RAM interface for connecting a bus to a RAM, comprising: a plurality of datawords stored in a RAM having a preset address; Means for receiving a RAM address associated with the plurality of data words from a bus; Means for generating a RAM address column for addressing the plurality of data words stored in the RAM; The address string is extracted from the receiving address; Means for buffering datawords read from the RAM; And a means for reading said plurality of data words from said RAM, wherein said data words are written to said buffer means using a RAM address generated by said address generating means. 프레임으로 구성된 코드화된 비디오데이타의 버퍼링을 제어하기 위한 방법으로서, 프레임의 화상번호를 결정하는 단계와; 상기 프레임의 바람직한 표현 번호를 결정하는 단계와; 상기 화상번호가 바람직한 표현번호와 같거나 그 이후 일때 버퍼를 준비 상태로 표시하는 단계를 포함하는 것을 특징으로 하는 버퍼링 제어 방법.CLAIMS 1. A method for controlling buffering of coded video data composed of frames, comprising: determining a picture number of a frame; Determining a preferred representation number of the frame; And displaying a buffer in a ready state when the image number is equal to or later than a preferred representation number. 데이타 변환을 위한 장치에 있어서, 제1 데이타 스트림 소스를 정의하는 제1 래치 및 제2 데이타 스트림을 정의하는 제2 래치와; 상기의 제1 및 제2 래치는 산술처리 유닛과 교신하는 것이며; 상기 산술처리 유닛은 트랜스포져와 데이타를 교신하고; 상기 데이타를 상기 제2 래치와 트랜스포징 내지 교신하는 트랜스포져로서; 상기 제2 래치는 데이타를 수용하도록 설정된 것이며; 상기 제2 및 제1 래치는 인터리브 방식으로 상기 산술처리 유닛과 제1 및 제2 데이타 스트림을 교신하고, 인터리브 방식의 상기 교신에 있어서 상기 제2 래치가 상기 제1 래치로부터의 통신에 인터럽트하지 않도록 정의되는 것으로; 여기서 상기 제1 및 제2 데이타 스트림에 대해 통상의 산술처리유닛이 사용되는 것을 특징으로 하는 데이타 변환 장치.An apparatus for data conversion, comprising: a first latch defining a first data stream source and a second latch defining a second data stream; The first and second latches communicate with the arithmetic processing unit; The arithmetic processing unit communicates data with the transposer; A transposer for transposing or communicating said data with said second latch; The second latch is configured to receive data; The second and first latches communicate the arithmetic processing unit with the first and second data streams in an interleaved manner so that the second latch does not interrupt communication from the first latch in the interleaved communication. As defined; Wherein a normal arithmetic processing unit is used for the first and second data streams. 통상의 산술처리 유닛을 사용하여 데이타를 변환하기 위한 방법으로서, 상기 데이타를 제1 래치에 적재하며 미리 설정된 사이클 수에 이르러 상기 데이타를 상기 산술처리 유닛에 전송하고 제1 마커비트를 제어 쉬프트레지스터에 적하는 단계와; 제2 래치로 데이타를 적재하는 단계로서, 이 제2 래치는 데이타의 수용에 적합한 것이며; 상기의 제1 제어 쉬프트레지스터가 설정된 상태에 도달하고 상기의 제2 래치가 미리 설정된 양의 데이타에 이를 때 상기 제2 래치의 데이타를 상기 산술처리 유닛으로 전송하는 단계와; 상기 제2 래치가 이미 설정된 데이타만큼 채워지지 않은 경우 상기 제2 래치로부터의 데이타 전송을 무효화하는 단계와; 상기 제1 래치가 무효데이타(non-data)를 수신할때 상기 제2 래치를 복원하는 단계를 포함하는 것을 특징으로 하는 데이타 변환 방법.A method for converting data using a conventional arithmetic processing unit, comprising: loading the data into a first latch, transferring the data to the arithmetic processing unit at a predetermined number of cycles, and transferring a first marker bit to a control shift register; Dropping; Loading data into a second latch, the second latch being suitable for receiving data; Transferring data of the second latch to the arithmetic processing unit when the first control shift register reaches a set state and the second latch reaches a preset amount of data; Invalidating the data transfer from the second latch if the second latch is not filled by the data already set; Restoring the second latch when the first latch receives non-data. 스윙버퍼 장치에 있어서, 적어도 두개 이상의 메모리 어레이와; 상기 메모리 어레이와 교신하면서 상기 메모리 어레이로 입력되는 데이타를 제어하기 위한 하나의 기록제어회로와; 상기 메모리 어레이와 교신하면서 상기 메모리 어레이로부터 출력되는 데이타를 제어하기 위한 하나의 독출제어회로와; 상기 기록 및 독출제어회로는 상기 메모리 어레이의 동기화된 제어를 위해 상호 교신하는 관계로 이루어진 것을 특징으로 하는 스윙버퍼 장치.A swing buffer device, comprising: at least two memory arrays; One write control circuit for communicating with the memory array and controlling data input to the memory array; A read control circuit for communicating with the memory array and controlling data output from the memory array; And the write and read control circuits communicate with each other for synchronized control of the memory array. 스윙버퍼 장치에 있어서, 메모리 어레이와; 비트라인을 통해 상기 메모리 어레이와 교신하는 기록제어회로와; 상기 비트라인 통해 상기 메모리어레이와 교신하는 독출제어회로와; 개개의 셀들이 읽혀지도록 한 쌍의 로우를 통해 상기 메모리 어레이를 억세스하게 배치된 기록 로우디코터와 독출 로우디코더를 포함하는 것을 특징으로 하는 스윙 버퍼 장치.A swing buffer device, comprising: a memory array; A write control circuit in communication with the memory array via a bit line; A read control circuit in communication with the memory array through the bit line; And a write low decoder and a read low decoder arranged to access the memory array through a pair of rows so that individual cells are read. 메모리 셀을 비동기적으로 억세스하는 방법에 있어서, 적어도 한 쌍의 셀을 디코드하기 위한 하나의 디코더를 사용하는 단계와; 상기 셀의 하나를 독출하고 상기 셀의 나머지 하나를 기록하는 단계를 포함하는 것을 특징으로 하는 비동기 억세스 방법.A method of accessing a memory cell asynchronously, comprising: using a decoder to decode at least a pair of cells; Reading one of the cells and recording the other of the cells. 비디오 정보를 저장하기 위한 방법에 있어서, 비디오 정보를 I프레임, P프레임, B1프레임, B2프레임로 구분하는 단계와; 상기 I프레임을 제1 프레임스토어에 저장하고, 상기 P프레임을 제2 프레임스토어에 저장하며; 제1 및 제2 필드스토어를 갖는 제3 프레임스토어를 구비하는 단계와; 상기 제1 및 제2 필드스토어는 각각 적어도 두개의 메모리 영역으로 분할되어진 것이며; 상기 메모리영역의 선택된 부분으로부터 B1프레임을 상기의 제1 또는 제2 필드스토어에 저장하며; 상기 B2프레임의 일부를 B1 프레임이 독출된 상기 선택된 메모리 영역부분에 기록하는 단계를 포함하며, 비디오 정보의 저장에 사용되는 메모리의 양을 감소시키는 것을 특징으로 하는 비디오 정보 저장방법.A method for storing video information, the method comprising: dividing video information into I frames, P frames, B 1 frames, and B 2 frames; Store the I frame in a first frame store, and store the P frame in a second frame store; Providing a third frame store having first and second field stores; The first and second field stores are each divided into at least two memory areas; Store a B 1 frame in the first or second field store from a selected portion of the memory area; And recording a portion of the B 2 frame in the selected memory region portion from which the B1 frame is read, and reducing the amount of memory used for storing the video information. 돈케어(Don′t care)를 취급하기 위한 메모리에 있어서, 일군의 어드레스라인, 반전된 어드레스라인 및 데이타라인을 포함하며, 상기 어드레스라인과 반전된 어드레스라인은 데이타워드의 형태로 어드레스된 정보를 억세스하기 위해 디코딩포맷에 따라 연결된 것이며, 상기 데이타라인 상의 돈캐어 어드레스 위치는 상기의 관련 어드레스라인과 상기 반전된 어드레스라인과 분리되어진 것을 특징으로 하는 돈캐어 취급을 위한 메모리.A memory for handling Don't care, comprising: a group of address lines, inverted address lines, and data lines, wherein the address lines and inverted address lines store information addressed in the form of datawords. And connected to a decoding format for access, wherein the Don Carr address position on the data line is separated from the associated address line and the inverted address line. 2차원 화상과 연관된 데이타워드를 저장 및 재현하기 위한 DRAM 억세스 방법과 관련하여, 상기 DRAM은 두개의 분리된 뱅크를 포함하고, 이 각 뱅크는 데이타워드의 기입과 독출에 페이지모드의 동작이 가능한 것이며, 상기 2차원 화상은 셀의 2차원 그리드패턴으로 구성되고, M*N 픽셀매트릭스를 각 셀이 포함하고 있으며, 각 셀과 연관되어 한 뱅크의 1 페이지 또는 그 이하를 상기 워드가 점유하는 것에 대한 억세스 방법에 있어서, (a) 각 셀에 두 뱅크 중 특정의 하나를 할당하는 단계로서, 그 특정 셀에 연관된 모든 데이타워드들이 그 특정 뱅크의 일정 페이지로부터 독출되고 기입되도록 하며, 상기의 셀에 대한 뱅크의 할당은 각 셀이 동일한 로우는 물론 동일한 컬럼에서 나타나는 경계하는 어떠한 셀의 경우보다 다르게 뱅크가 연관되도록 할당하는 단계와; (b) 픽셀매트릭스로 구성되며, 상기 2차원 그리드패턴에 정렬되지는 않으나, 상기 2차원 그리드패턴의 셀들에서 픽셀로서 정렬되는 셀에 연관된 상기 데이타워드를 읽는 단계를 포함하는 것을 특징으로 하는 DRAM 억세스 방법.With regard to a DRAM access method for storing and reproducing data words associated with a two-dimensional image, the DRAM includes two separate banks, each of which is capable of page mode operation for writing and reading data words. The two-dimensional image consists of a two-dimensional grid pattern of cells, each cell containing an M * N pixel matrix, and the word occupies one page or less of a bank in association with each cell. A method of access, comprising: (a) assigning each cell a particular one of two banks, such that all datawords associated with that particular cell are read and written from a given page of that particular bank, Assigning a bank assigns the banks to be associated differently than for any cell that borders each cell appearing in the same row as well as in the same column. Wow; (b) DRAM access comprising a matrix of pixels and reading the datawords associated with cells not aligned to the two-dimensional grid pattern but aligned as pixels in the cells of the two-dimensional grid pattern. Way. 2차원 화상과 연관된 데이타워드를 저장 및 재현하기 위한 DRAM 억세스 방법과 관련하여, 상기 DRAM은 두개의 분리된 뱅크를 포함하고, 이 각 뱅크는 데이타워드의 기입과 독출에 페이지모드의 동작이 가능한 것이며, 셀의 상기 2차원 그리드패턴, M*N 픽셀매트릭스를 각 셀이 포함하고 있으며, 각 셀과 연관되어 한 뱅크의 1페이지 또는 그 이하를 상기 워드가 점유하는 것에 대한 억세스 방법에 있어서, (a) 각 셀에 두 뱅크 중 특정의 하나를 할당하는 단계로서, 그 특정 셀에 연관된 모든 데이타워드들이 그 특정 뱅크의 일정 페이지로부터 독출되고 기입되도록 하며, 상기의 셀에 대한 뱅크의 할당은 각 셀이 동일한 로우는 물론 동일한 컬럼에서 나타나는 경계하는 어떠한 셀의 경우보다 다르게 뱅크가 연관되도록 할당하는 단계와; (b) M*N 픽셀매트릭스로 구성되며, 상기 2차원 그리드패턴에 정렬되지는 않으나, 상기 2차원 그리드패턴의 셀들에서 픽셀로서 정렬되는 셀에 연관된 상기 데이타워드를 읽는 단계를 포함하는 것을 특징으로 하는 DRAM 억세스 방법.With regard to a DRAM access method for storing and reproducing data words associated with a two-dimensional image, the DRAM includes two separate banks, each of which is capable of page mode operation for writing and reading data words. And a method in which each cell includes the two-dimensional grid pattern of a cell, an M * N pixel matrix, and the word occupies one page or less of a bank in association with each cell. Assigning each cell a particular one of the two banks such that all datawords associated with that particular cell are read and written from a given page of that particular bank, and the assignment of the bank to that cell Assigning banks to be associated differently than in the case of any bordering cell appearing in the same column as well as in the same column; and (b) reading said dataword associated with a cell consisting of an M * N pixel matrix, said cells being aligned as pixels in the cells of said two-dimensional grid pattern but not aligned to said two-dimensional grid pattern. DRAM access method. 미리 설정된 RAM의 버스트 렝스(burst length) N 보다는 작은 M개의 워드를 RAM으로부터 억세스하는 방법과 관련하여, 상기 RAM에 대한 기입 및 독출을 선택적으로 인에이블/디스에이블하기 위한 인에이블라인을 갖는 것에 대한 억세스 방법에 있어서, 상기 RAM으로부터 기입 또는 독출될 N개의 워드를 요구하는 단계와; RAM으로부터 M개의 워드가 기입 또는 독출완료되었는지를 결정하는 단계와; 상기 M은 N 보다 작은 값이며; M개의 워드가 기입 또는 독출완료되었는지에 따라 상기 RAM을 디스에이블하는 단계를 포함하는 것을 특징으로 하는 억세스 방법.With respect to a method of accessing M words less than a predetermined burst length N of RAM from RAM, for having an enable line for selectively enabling / disabling writing and reading to the RAM. CLAIMS 1. An access method, comprising: requesting N words to be written or read from the RAM; Determining whether M words from the RAM have been written or read; M is a value less than N; Disabling the RAM according to whether M words have been written or read. 미리 설정된 RAM의 버스트 렝스(burst length) N 보다는 작은 M개의 워드를 RAM으로부터 억세스하는 방법과 관련하여, 상기 RAM에 대한 기입 및 독출을 선택적으로 인에이블/디스에이블하기 위한 인에이블라인을 갖는 것에 대한 억세스 방법에 있어서, 상기 RAM으로부터 독출될 N개의 워드를 요청하는 단계와; M개의 워드가 상기 RAM으로부터 독출완료되었는지를 결정하는 단계와; 상기 M은 N 보다는 작은 값이며; M개의 워드가 RAM으로부터 독출완료되었는지의 결정에 따라 상기의 RAM을 디스에이블하는 단계를 포함하는 것을 포함하는 것을 특징으로 하는 억세스 방법.With respect to a method of accessing M words less than a predetermined burst length N of RAM from RAM, for having an enable line for selectively enabling / disabling writing and reading to the RAM. An access method comprising: requesting N words to be read from the RAM; Determining whether M words have been read from the RAM; M is a value less than N; Disabling said RAM in accordance with a determination of whether or not M words have been read from the RAM. 미리 설정된 RAM의 버스트 렝스(burst length) N 보다는 작은 M개의 워드를 RAM으로부터 억세스하는 방법과 관련하여, 상기 RAM에 대한 기입 및 독출을 선택적으로 인에이블/디스에이블하기 위한 인에이블라인을 갖는 것에 대한 억세스 방법에 있어서, 상기 RAM에 기입될 N개의 워드를 요구하는 단계와; M개의 워드가 상기 RAM에 기입완료되었는지를 결정하는 단계와; 상기 M은 N 보다는 작은 값이며; M개의 워드가 RAM에 기입 완료되었는지의 결정에 따라 상기의 RAM을 디스에이블하는 단계를 포함하는 것을 특징으로 하는 억세스 방법.With respect to a method of accessing M words less than a predetermined burst length N of RAM from RAM, for having an enable line for selectively enabling / disabling writing and reading to the RAM. CLAIMS 1. An access method, comprising: requesting N words to be written to the RAM; Determining whether M words have been written to the RAM; M is a value less than N; Disabling said RAM in accordance with a determination of whether M words have been written to RAM. N 데이타 입력 워드들의 배열된 디지털 신호를 변환하기 위한 시스템에 있어서: 입력 워드들 중 홀수번째에 대한 소정의 페어링 동작(pairing opreration)을 이행하고 입력 워드들 중 짝수번째를 프리-커먼(pre-common) 출력들로 송신하도록 배열된 프리-커먼 처리 회로(PREC); 상기 프리-커먼 처리 회로(PREC)로부터 짝수번째 데이타 및 홀수번째 데이타를 수신하여 홀수 커먼 처리 출력값 및 짝수 커먼 처리 출력값을 각각 형성하기 위한 커먼 처리 회로(CBLK); 및 포스트-처리 홀수 값들을 형성하도록 상기 홀수 커먼 처리 출력 값들에 대한 소정의 출력 스케일링 동작들을 이행하고 상기 포스트-처리 홀수값을 상기 짝수 커먼 처리 출력값들과 산술적으로 결합시켜서 고차 및 저차 출력 워드들을 발생시키도록 배열된 포스트-커먼 처리 회로(post-common processing circuit; POSTC)를 포함하되, 상기 시스템은 출력 워드들이 입력 데이타 워드에 상응하는 변환값들을 포함하도록 배열되며, 상기 포스트-커먼 처리 회로는: 제1 데이타 스트림 소스를 정의하는 제1 래치 및 제2 데이타 스트림을 정의하는 제2 래치를 포함하며; 상기 제1 및 제2 래치는 산술처리 유닛과 교신하고; 상기 산술 유닛은 트랜스포져(transposer)와 데이타를 교신하고; 상기 트랜스포져는 상기 데이타를 상기 제2 래치와 트랜스포징 및 교신하며; 상기 제2 래치는 데이타를 수용하도록 배열되고; 상기 제2 및 제1 래치는 인터리브 방식으로 상기 산술 유닛과 상기 제1 및 제2 데이타 스트림을 교신하고, 인터리브 방식의 상기 교신에 있어서 상기 제2 래치가 상기 제1 래치로부터의 통신을 인터럽트하지 않도록 정의되며; 상기 제1 및 제2 데이타 스트림에 대해 공통 산술 유닛이 사용되는 것을 특징으로 하는 디지털 신호 변환 시스템.A system for converting an arrayed digital signal of N data input words, comprising: performing a predetermined pairing operation on an odd number of input words and pre-common on an even number of input words. Pre-common processing circuitry (PREC) arranged to transmit to the outputs; A common processing circuit (CBLK) for receiving even-numbered data and odd-numbered data from the pre-common processing circuit (PREC) to form an odd common processing output value and an even common processing output value, respectively; And perform predetermined output scaling operations on the odd common processing output values to form post-process odd values and arithmetically combine the post-process odd values with the even common processing output values to generate high and low order output words. A post-common processing circuit (POSTC) arranged to cause the system to be arranged such that the output words include conversion values corresponding to the input data word, wherein the post-common processing circuit is: A first latch defining a first data stream source and a second latch defining a second data stream; The first and second latches communicate with an arithmetic processing unit; The arithmetic unit communicates data with a transposer; The transposer transposes and communicates the data with the second latch; The second latch is arranged to receive data; The second and first latches communicate the arithmetic unit with the first and second data streams in an interleaved manner so that the second latch does not interrupt communication from the first latch in the interleaved communication. Defined; And a common arithmetic unit is used for said first and second data streams. 제30항에 있어서, 상기 제2 래치는 버퍼를 형성하기 위한 일련의 상호 접속된 래치들을 포함하고, 상기 버퍼는 데이타의 수신 및 송신의 가변적인 속도에 맞추어 크기가 형성될 수 있는 것을 특징으로 하는 디지털 신호 변환 시스템.31. The method of claim 30, wherein the second latch comprises a series of interconnected latches for forming a buffer, wherein the buffer can be sized to varying rates of receipt and transmission of data. Digital signal conversion system. 제31항에 있어서, 상기 제2 래치는 소정의 양의 데이타로 채워지는 경우에만 상기 산술 유닛과 상기 제2 데이타 스트림을 교신하는 것을 특징으로 하는 디지털 신호 변환 시스템.32. The digital signal conversion system according to claim 31, wherein said second latch communicates said arithmetic unit and said second data stream only when it is filled with a predetermined amount of data. 디지털 신호를 주파수로부터, 디지탈 신호가 N 데이타 입력 워드들의 그룹들로 배열되어 있는 시영역(time domain)으로 변환하기 위한 시스템에 있어서: 상기 입력 워드 중 홀수번째에 대한 소정의 페어링 동작(pairing opreration)을 이행하고 상기 입력 워드 중 짝수번째를 프리-커먼 출력들로 송신하도록 배열된 프리-커먼 처리 회로(PREC); 상기 프리-커먼 처리 회로(PREC)로부터 짝수번째 데이타 및 홀수번째 데이타를 수신하여 홀수 커먼 처리 출력값 및 짝수 커먼 처리 출력값을 각각 형성하기 위한 커먼 처리 회로(CBLK); 및 포스트-처리된 홀수값들을 형성하도록 상기 홀수 커먼 처리 출력값들에 대한 소정의 출력 스케일링 동작들을 이행하고 상기 포스트-처리된 홀수값을 상기 짝수 커먼 처리 출력값들과 산술적으로 결합시켜서 고차 및 저차 출력 워드들을 발생시키도록 배열된 포스트-커먼 처리 회로(POSTC)를 포함하되, 상기 시스템은 상기 출력 워드들이 상기 입력 데이타 워드에 상응하는 변환값들을 포함하도록 배열되며, 상기 시스템은 상기 출력 워드들이 상기 입력 데이타 워드에 상응하는 역이산 코사인 변환값들을 포함하도록 배열되며, 상기 포스트-커먼 처리 회로는: 제1 데이타 스트림 소스를 정의하는 제1 래치 및 제2 데이타 스트림 소스를 정의하는 제2 래치를 포함하고; 상기 제1 및 제2 래치는 산술 유닛과 교신하며; 상기 산술 유닛은 트랜스포져와 데이타를 교신하고; 상기 트랜스포져는 상기 데이타를 상기 제2 래치와 트랜스포징 및 교신하며; 상기 제2 래치는 데이타를 수용하도록 배열되고; 상기 제2 및 제1 래치는 인터리브 방식으로 상기 산술 유닛과 상기 제1 및 제2 데이타 스트림을 교신하고, 인터리브 방식의 상기 교신에 있어서 상기 제2 래치가 상기 제1 래치로부터의 통신에 인터럽트하지 않도록 정의되며; 상기 제1 및 제2 데이타 스트림에 대해 공통 산술 유닛이 사용되는 것을 특징으로 하는 디지털 신호 변환 시스템.A system for converting a digital signal from a frequency into a time domain in which the digital signal is arranged in groups of N data input words: a predetermined pairing operation for an odd number of the input words. A pre-common processing circuit (PREC) arranged to implement a P and transmit an even number of said input words to pre-common outputs; A common processing circuit (CBLK) for receiving even-numbered data and odd-numbered data from the pre-common processing circuit (PREC) to form an odd common processing output value and an even common processing output value, respectively; And perform predetermined output scaling operations on the odd common processed output values to form post-processed odd values and arithmetically combine the post-processed odd values with the even common processed output values to obtain higher and lower output words. And a post-common processing circuit (POSTC) arranged to generate the data, wherein the system is arranged such that the output words include conversion values corresponding to the input data word, and wherein the system outputs the input data to the input data. Arranged to include inverse discrete cosine transform values corresponding to a word, wherein the post-common processing circuitry comprises: a first latch defining a first data stream source and a second latch defining a second data stream source; The first and second latches communicate with an arithmetic unit; The arithmetic unit communicates data with the transposer; The transposer transposes and communicates the data with the second latch; The second latch is arranged to receive data; The second and first latches communicate the arithmetic unit with the first and second data streams in an interleaved manner so that the second latch does not interrupt communication from the first latch in the interleaved communication. Defined; And a common arithmetic unit is used for said first and second data streams. 제33항에 있어서, 상기 제2 래치는 버퍼를 형성하기 위한 일련의 상호 접속된 래치들을 포함하고, 상기 버퍼는 데이타의 수신 및 송신의 가변적인 속도에 맞추어 크기가 형성될 수 있는 것을 특징으로 하는 디지털 신호 변환 시스템.34. The method of claim 33, wherein the second latch comprises a series of interconnected latches for forming a buffer, wherein the buffer can be sized to varying rates of receipt and transmission of data. Digital signal conversion system. 제34항에 있어서, 상기 제2 래치가 소정의 양의 데이타로 채워지는 경우에만 상기 제2 래치는 상기 산술 유닛과 상기 제2 데이타 스트림을 교신하는 것을 특징으로 하는 디지털 신호 변환 시스템.35. The digital signal conversion system according to claim 34, wherein said second latch communicates said arithmetic unit and said second data stream only if said second latch is filled with a predetermined amount of data. 멀티플렉스된 데이타 스트림 내의 시간 동기화 장치에 있어서, 토큰들의 타임-멀티플렉스된 스트림을 발생시키는 토큰 소스로서, 상기 토큰들 각각이 다수의 데이타 워드들을 포함하고, 상기 데이타 워드들 각각이 상기 토큰 내의 부가적인 워드들이 존재함을 표시하는 확장비트를 포함하고 있는 토큰 소스; 멀티플렉스된 데이타 스트림을 수용하고, 각각이 일련의 액세스 유닛들을 포함하고 이와 관련된 일련의 타임 스탬프들을 갖는 다수의 기본 데이타 스트림들을 출력하는 디멀티플렉서; 제1 카운터를 포함하는 상기 디멀티플렉서에 접속된 제1 회로; 제2 카운터를 포함하는 상기 디멀티플렉서에 접속된 제2 회로, 및 상기 제1 카운터 및 상기 제2 카운터에 접속되어 시스템 타임을 초기화하고, 상기 토큰 소스 내에서 발생된 SYNC_TIME 토큰에 응답하는 제3 회로를 포함하되, 상기 제1 카운터는 상기 제1 회로 및 상기 제2 회로 내의 상기 시스템 타임의 제1 및 제2 국부적 버젼을 유지하기 위해 상기 제2 카운터와 독립적으로 카운트하는 것을 특징으로 하는 시간 동기화 장치.A time synchronization device in a multiplexed data stream, comprising: a token source for generating a time-multiplexed stream of tokens, each of the tokens comprising a plurality of data words, each of which is added in the token; A token source containing an extension bit to indicate the presence of significant words; A demultiplexer for accepting the multiplexed data streams and outputting a plurality of elementary data streams each comprising a series of access units and having a series of time stamps associated therewith; A first circuit connected to the demultiplexer including a first counter; A second circuit connected to the demultiplexer including a second counter, and a third circuit connected to the first counter and the second counter to initialize system time and responsive to a SYNC_TIME token generated in the token source. And the first counter counts independently of the second counter to maintain first and second local versions of the system time in the first circuit and the second circuit. 제36항에 있어서, 상기 제2 회로 내의 상기 토큰의 처리 시간에 따라 상기 타임 스탬프들을 교정하기 위한 제4 회로를 더 포함하는 것을 특징으로 하는 시간 동기화 장치.37. The apparatus of claim 36, further comprising a fourth circuit for calibrating the time stamps according to the processing time of the token in the second circuit. 제36항에 있어서, 상기 타임 스탬프들을 수신하고, 상기 제1 카운터 및 제2 카운터에 접속되어 액세스 유닛이 상기 제2 회로로부터 적시에 출력되었는지를 표시하는 신호를 발생시키기 위한 제5 회로를 더 포함하는 것을 특징으로 하는 시간 동기화 장치.37. The apparatus of claim 36, further comprising a fifth circuit for receiving the time stamps and generating a signal connected to the first counter and a second counter to indicate whether an access unit is output in a timely manner from the second circuit. Time synchronization device, characterized in that. 멀티플렉스된 데이타 스트림 내의 시간 동기화 장치에 있어서, 멀티플렉스된 데이타의 스트림을 수용하고, 각각이 일련의 액세스 유닛들을 포함하고 그와 관련된 일련의 타임 스탬프들을 갖는 다수의 기본 데이타 스트림들을 출력하는 디멀티플렉서; 제1 회로의 시스템 타임을 초기화하기 위한 기준클럭과; 상기 기준클럭과 교신하여 제1 회로내의 시스템 타임을 유지하기 위한 제1 타임카운터와; 상기 디멀티플렉서에 결합된 기본 스트림 타임 카운터와; 상기 타임 스탬프, 상기 기본 스트림 타임 카운터 및 상기 제1 타임 카운터에 응답하여 동기화 시간 X를 발생시키는 회로와; 상기 기본 스트림 타임 카운터와 동기되어, 상기 기본 스트림 타임의 로컬 카피를 유지시키고 상기 기본 스트림 타임의 상기 로컬 카피와 상기 동기화 시간 X 사이의 프리젠테이션 타이밍 에러를 판정하기 위한 제2 회로 내의 제2 타임 카운터를 포함하는 것을 특징으로 하는 시간 동기화 장치.1. A time synchronization apparatus in a multiplexed data stream, comprising: a demultiplexer for receiving a stream of multiplexed data and outputting a plurality of elementary data streams each comprising a series of access units and having a series of time stamps associated therewith; A reference clock for initializing the system time of the first circuit; A first time counter for communicating with the reference clock to maintain a system time in a first circuit; An elementary stream time counter coupled to the demultiplexer; Circuitry for generating a synchronization time X in response to the time stamp, the elementary stream time counter and the first time counter; A second time counter in a second circuit in synchronization with the elementary stream time counter to maintain a local copy of the elementary stream time and determine a presentation timing error between the local copy of the elementary stream time and the synchronization time X Time synchronization device comprising a. 제39항에 있어서, 상기 기본 스트림 타임 카운터는 캐리 아웃(carry out)을 표시하는 신호를 발생시키고 상기 제2 타임 카운터는 상기 신호에 응답하여 리셋되는 것을 특징으로 하는 시간 동기화 장치.40. The apparatus of claim 39 wherein the elementary stream time counter generates a signal indicative of a carry out and the second time counter is reset in response to the signal. 제39항에 있어서, 상기 동기화 시간 X 및 상기 제2 타임 카운터에 응답하여, 액세스 유닛이 상기 제2 회로로부터 적시에 출력되었는지를 표시하는 신호를 발생시키기 위한 얼리/레이트-지시자 회로(early/late-indicator circuit)를 더 포함하는 것을 특징으로 하는 시간 동기화 장치.40. The early / late-indicator circuit of claim 39, wherein in response to the synchronization time X and the second time counter, an early / late-indicator circuit for generating a signal indicating whether an access unit is output in a timely manner from the second circuit. and an indicator circuit.
KR1019950023121A 1994-07-29 1995-07-29 Video dccompression Expired - Fee Related KR100270798B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB9415413A GB9415413D0 (en) 1994-07-29 1994-07-29 Method and apparatus for video decompression
GB9415413.5 1995-06-07
GB9511569.7 1995-06-07
GB9511569A GB2293076B (en) 1994-07-29 1995-06-07 Time synchronisation in a multiplexed data stream

Publications (2)

Publication Number Publication Date
KR960006647A KR960006647A (en) 1996-02-23
KR100270798B1 true KR100270798B1 (en) 2000-11-01

Family

ID=10759147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950023121A Expired - Fee Related KR100270798B1 (en) 1994-07-29 1995-07-29 Video dccompression

Country Status (2)

Country Link
KR (1) KR100270798B1 (en)
GB (2) GB9415413D0 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771401B1 (en) 2005-08-01 2007-10-30 (주)펄서스 테크놀러지 Computation Circuit and Method for Processing MPP-2 or MP-4AC Audio Decoding Algorithm in Programmable Processor
US10791340B2 (en) * 2016-11-15 2020-09-29 Sony Corporation Method and system to refine coding of P-phase data

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9700956D0 (en) * 1997-01-17 1997-03-05 Digi Media Vision Ltd Improvements in or relating to switching between compressed bitstreams

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU672070B2 (en) * 1993-02-26 1996-09-19 Sony Corporation Synchronization of audio/video information
US5486864A (en) * 1993-05-13 1996-01-23 Rca Thomson Licensing Corporation Differential time code method and apparatus as for a compressed video signal

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771401B1 (en) 2005-08-01 2007-10-30 (주)펄서스 테크놀러지 Computation Circuit and Method for Processing MPP-2 or MP-4AC Audio Decoding Algorithm in Programmable Processor
US10791340B2 (en) * 2016-11-15 2020-09-29 Sony Corporation Method and system to refine coding of P-phase data

Also Published As

Publication number Publication date
KR960006647A (en) 1996-02-23
GB9415413D0 (en) 1994-09-21
GB2293076B (en) 1999-06-23
GB9511569D0 (en) 1995-08-02
GB2293076A (en) 1996-03-13

Similar Documents

Publication Publication Date Title
US6217234B1 (en) Apparatus and method for processing data with an arithmetic unit
US6119213A (en) Method for addressing data having variable data width using a fixed number of bits for address and width defining fields
US20020066007A1 (en) Multistandard video decoder and decompression system for processing encoded bit streams including pipeline processing and methods relating thereto
KR100291532B1 (en) An information processing system comprising a reconfigurable processing stage
JP3174996B2 (en) Start code detector
KR100304511B1 (en) Video restoration and decoding system
KR100270798B1 (en) Video dccompression
HK1009626A (en) Video decompression
HK1009625A (en) Reconfigurable data processing stage

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19950729

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19970703

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 19950729

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 19991118

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20000613

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20000807

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20000808

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
G170 Re-publication after modification of scope of protection [patent]
PR1001 Payment of annual fee

Payment date: 20030729

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20040806

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20050804

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20060802

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20070802

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20080721

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20090709

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20100729

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20110728

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20110728

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20130123

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20130123

Start annual number: 13

End annual number: 13

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20140709