KR20000025297A - Synchronous time-sharing variable encoder - Google Patents

Synchronous time-sharing variable encoder Download PDF

Info

Publication number
KR20000025297A
KR20000025297A KR1019980042322A KR19980042322A KR20000025297A KR 20000025297 A KR20000025297 A KR 20000025297A KR 1019980042322 A KR1019980042322 A KR 1019980042322A KR 19980042322 A KR19980042322 A KR 19980042322A KR 20000025297 A KR20000025297 A KR 20000025297A
Authority
KR
South Korea
Prior art keywords
data
vbv
block
header
ram
Prior art date
Application number
KR1019980042322A
Other languages
Korean (ko)
Inventor
박성완
Original Assignee
김영환
현대전자산업 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김영환, 현대전자산업 주식회사 filed Critical 김영환
Priority to KR1019980042322A priority Critical patent/KR20000025297A/en
Publication of KR20000025297A publication Critical patent/KR20000025297A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising

Abstract

PURPOSE: An encoder is provided to simplify a structure to reduce complicated operations by minimizing interface signals and by separating time to read or write data from or to a video buffer. CONSTITUTION: A block variable encoder(10) zigzag-scans inputted data, determines a level of a coefficient value, and stores a code value with respect to a macro block. A slicer(30) slices the inputted macro block data, inputs a synchronizing signal, and outputs a vertical synchronizing signal. A code packing part(40) packs slice header data inputted from the slicer(30) and the block data. A picture header production part(50) produces and adds picture header information to the data packed from the code packing part(40) according to the vertical synchronizing signal.

Description

동기시분할 가변부호화 장치Synchronous time division variable coding device

본 발명은 영상정보의 압축에 관한 것으로, 특히 부호의 발생확률의 편중에 따른 엔트로피 부호화 방법을 이용한 동기시분할 가변부호화 장치에 관한 것이다.The present invention relates to the compression of video information, and more particularly, to a synchronous time division variable encoding apparatus using an entropy encoding method according to a bias of a code generation probability.

일반적으로 영상정보를 압축하는 방법에는 크게 DCT(Discrete Cosine Transform, 이산 코사인 변환)를 이용해 화면내의 공간적 상관관계를 이용하는 방법과 화면간의 상관관계를 이용하는 방법 및 부호의 발생확률의 편중에 따라 엔트로피 부호화하는 방법이 있다.In general, a method of compressing image information includes a method of using spatial correlation in a screen using a discrete cosine transform (DCT), a method of using correlation between screens, and an entropy encoding method according to a bias of a code occurrence probability. There is a way.

그러나 종래에는 부호의 발생확률에 따른 엔트로피 부호화 방법을 구현한 장치가 없었다.However, conventionally, there is no device implementing the entropy encoding method according to the probability of occurrence of a code.

이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 부호의 발생확률의 편중에 따른 엔트로피 부호화 방법을 이용한 동기시분할 가변부호화 장치를 제공하는 데 있다.Accordingly, the present invention has been proposed to solve the above-mentioned general problems, and an object of the present invention is to provide a synchronous time division variable encoding apparatus using an entropy encoding method according to a bias of a code generation probability.

상기와 같은 목적을 달성하기 위하여 본 발명에 의한 동기시분할 가변부호화 장치는,Synchronous time division variable encoding apparatus according to the present invention in order to achieve the above object,

입력데이터를 지그재그 주사하고 계수값인 레벨을 결정하여 매크로블록에 대한 코드값을 저장하는 블록가변 부호화부와; 상기 블록가변 부호화부의 매크로블록 데이터를 입력받아 슬라이싱하고, 동기신호를 입력받아 수직동기신호를 출력하는 슬라이서와; 상기 슬라이서에서 입력되는 슬라이스 헤더 데이터와 블록 데이터를 패킹시키는 코드패킹부와; 상기 슬라이서의 수직동기신호에 따라 상기 코드패킹부에서 패킹된 데이터에 픽처헤더 정보를 생성하여 부가하는 픽처헤더 생성부와; 상기 픽처헤더 생성부의 VBV 데이터를 저장하는 VBV 램과; 상기 VBV 램을 제어하여 상기 VBV 램의 데이터를 읽고 고정된 비트레이트 데이터를 출력하는 VBV 램제어 및 출력부로 이루어짐을 그 기술적 구성상의 특징으로 한다.A block variable encoding unit for zigzag-scanning the input data, determining a level that is a coefficient value, and storing a code value for the macroblock; A slicer for receiving and slicing macroblock data of the block variable encoder and outputting a vertical synchronization signal by receiving a synchronization signal; A code packing unit for packing slice header data and block data inputted from the slicer; A picture header generator for generating and adding picture header information to the data packed by the code packing unit according to the vertical synchronization signal of the slicer; A VBV RAM storing VBV data of the picture header generator; Technical features of the present invention include a VBV RAM control and output unit which controls the VBV RAM to read data of the VBV RAM and outputs fixed bit rate data.

도 1은 본 발명에 의한 동기시분할 가변부호화 장치의 블록구성도,1 is a block diagram of a synchronous time division variable encoding apparatus according to the present invention;

도 2는 도1에서 블록가변 부호화부의 블록구성도,FIG. 2 is a block diagram of a block variable encoder of FIG. 1;

도 3은 도2에서 입력되는 동기 및 수직신호의 타이밍도,3 is a timing diagram of a synchronization and vertical signal input in FIG. 2;

도 4는 도2에서 한 영상에 대한 전체 타이밍도,4 is an overall timing diagram for one image shown in FIG. 2;

도 5는 도2에서 한 매크로블록에 대한 전체 타이밍도,5 is an overall timing diagram for one macroblock in FIG.

도 6은 도1에서 VBV 램제어 및 출력부의 상세블록도.6 is a detailed block diagram of the VBV RAM control and output unit in FIG.

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

10 : 블록가변 부호화부 30 : 슬라이서10: block variable encoding unit 30: slicer

40 : 코드패킹부 50 : 픽처헤더 생성부40: code packing unit 50: picture header generation unit

60 : VBV 램 70 : VBV 램제어 및 출력부60: VBV RAM 70: VBV RAM Control and Output

이하, 상기와 같은 본 발명 동기시분할 가변부호화 장치의 기술적 사상에 따른 일실시예를 첨부한 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, with reference to the accompanying drawings an embodiment according to the technical idea of the present invention synchronous time division variable coding apparatus as described above in detail.

먼저 가변 부호화하는 대상은 크게 DCT 계수들과 영상의 부가 정보들이다. 그래서 본 발명에서는 이 계수들과 부가 정보들을 효과적으로 부호화하기 위해서 동기신호를 설정하여 이 동기신호에 맞추어 동작을 하도록 하여 각 구현 블록들간의 인터페이스 신호를 최소화시켜 동작의 복잡도를 최대한 줄였다. 또한 부호화한 데이터를 저장하고 고정 비트 레이트로 부호화한 데이터를 출력시키는 비디오 버퍼에 데이터를 쓰는 시간과 읽어 내는 시간을 분할하여 사용함으로써 구조를 단순화시켰다.First, the variable coding targets are DCT coefficients and additional information of an image. Therefore, in the present invention, in order to effectively encode these coefficients and additional information, a synchronization signal is set to operate according to the synchronization signal, thereby minimizing the complexity of the operation by minimizing the interface signals between the respective implementation blocks. In addition, the structure is simplified by dividing the data writing time and the reading time into a video buffer which stores the encoded data and outputs the encoded data at a fixed bit rate.

도1은 본 발명에 의한 동기시분할 가변부호화 장치의 블록구성도이다.1 is a block diagram of a synchronous time division variable coding apparatus according to the present invention.

이에 도시된 바와 같이, 입력데이터를 지그재그 주사하고 계수값인 레벨을 결정하여 매크로블록에 대한 코드값을 저장하는 블록가변 부호화부(10)와; 상기 블록가변 부호화부(10)의 매크로블록 데이터를 입력받아 슬라이싱하고, 동기신호를 입력받아 수직동기신호를 출력하는 슬라이서(30)와; 상기 슬라이서(30)에서 입력되는 슬라이스 헤더 데이터와 블록 데이터를 패킹시키는 코드패킹부(40)와; 상기 슬라이서(30)의 수직동기신호에 따라 상기 코드패킹부(40)에서 패킹된 데이터에 픽처헤더 정보를 생성하여 부가하는 픽처헤더 생성부(50)와; 상기 픽처헤더 생성부(50)의 VBV 데이터를 저장하는 VBV 램(60)과; 상기 VBV 램(60)을 제어하여 상기 VBV 램(60)의 데이터를 읽고 고정된 비트레이트 데이터를 출력하는 VBV 램제어 및 출력부(70)로 구성된다.As shown therein, the block variable encoding unit 10 zigzag-scans the input data, determines a level which is a coefficient value, and stores a code value for the macroblock; A slicer (30) for receiving and slicing macroblock data of the block variable encoding unit (10) and receiving a synchronous signal and outputting a vertical synchronous signal; A code packing unit (40) for packing slice header data and block data input from the slicer (30); A picture header generator (50) for generating and adding picture header information to the data packed by the code packer (40) according to the vertical synchronization signal of the slicer (30); A VBV RAM (60) for storing VBV data of the picture header generator (50); The VBV RAM 60 is configured to read the data of the VBV RAM 60 and to output fixed bit rate data, and includes a VBV RAM control and output unit 70.

도2는 도1에서 블록가변 부호화부(10)의 블록구성도이다.FIG. 2 is a block diagram of the block variable encoder 10 of FIG. 1.

이에 도시된 바와 같이, 입력된 복수개의 블록 데이터를 각각 지그재그 주사하고 0이 아닌 계수 사이의 0의 개수를 세어 run과 0이 아닌 계수값인 레벨을 결정하는 복수개의 SCAN(11)과; 상기 복수개의 SCAN(11)에서 입력되는 데이터에서 각각의 유효한 run, 레벨에 대해 코드값을 할당하여 코드값과 코드의 크기를 결정하는 복수개의 가변길이 부호부(15)와; 상기 복수개의 가변길이 부호부(15)에서 입력받은 코드를 정해진 비트로 각각 패킹시키는 복수개의 패킹부(19)와; 상기 복수개의 패킹부(19)에서 패킹된 데이터를 저장하여 상기 슬라이서(30)에서 읽을 수 있도록 저장하는 복수개의 FIFO(23)와; 매크로블록의 부가정보를 입력받아 헤더를 생성하는 매크로블록 헤더생성부(27)와; 상기 매크로블록 헤더생성부(27)에 출력되는 데이터를 패킹하는 패킹부(28)와; 상기 패킹부(28)에서 패킹된 매크로블록의 부가정보를 저장하여 상기 슬라이서(30)에서 읽을 수 있도록 저장하는 FIFO(29)로 구성된다.As shown therein, a plurality of SCANs 11 each zigzag-scan the inputted block data and count the number of zeros between nonzero coefficients to determine a level that is a run and a nonzero coefficient value; A plurality of variable length coders (15) for determining code values and code sizes by allocating code values for each valid run and level in data input from the plurality of SCANs (11); A plurality of packing units 19 for packing codes received from the plurality of variable length code units 15 into predetermined bits; A plurality of FIFOs (23) for storing the data packed by the plurality of packing units (19) for reading by the slicer (30); A macroblock header generator 27 for receiving a macroblock additional information and generating a header; A packing unit 28 for packing data output to the macroblock header generation unit 27; It consists of a FIFO (29) for storing the additional information of the macroblock packed in the packing unit 28 to be stored in the slicer 30 to read.

도3은 블록가변 부호화부(10)에 입력되는 동기 및 수직신호의 타이밍도이고, 도4는 한 영상에 대한 전체 타이밍도이며, 도5는 한 매크로블록에 대한 전체 타이밍도이다.3 is a timing diagram of synchronization and vertical signals input to the block variable encoder 10, FIG. 4 is an overall timing diagram for one image, and FIG. 5 is an overall timing diagram for one macroblock.

그리고 도6은 도1에서 VBV 램제어 및 출력부(70)의 상세블록도이다.6 is a detailed block diagram of the VBV RAM control and output unit 70 in FIG.

이에 도시된 바와 같이, VBV의 쓰기 응답 신호를 입력받아 VBV 데이터를 VBV 램(60)에 쓰도록 제어하는 쓰기어드레스 제어부(71)와; 상기 슬라이서(30)에서 수직동기신호를 입력받아 1MB 시간을 동기시켜 읽는 시간 동안에 VBV 램(60)으로부터 데이터를 읽도록 제어하는 읽기어드레스 제어부(72)와; 상기 쓰기어드레스 제어부(71)와 읽기어드레스 제어부(72)의 제어명령을 저장하는 VBV 버퍼(73)와; 상기 VBV 버퍼(73)에 저장된 제어명령에 따라 상기 VBV 램(60)의 VBV 데이터를 저장하는 버퍼(74)와; 출력클럭을 발생시키기 위해 직렬 클럭을 받아 병렬로 변환시키는 직/병렬 변환부(75)와; 상기 직/병렬 변환부(75)의 병렬클럭에 따라 상기 버퍼(74)에 남아 있는 데이터 개수를 검사하여 읽어야 하는 데이터 개수를 결정하고 이 개수만큼 읽어들이도록 제어하는 ReadVBV 제어부(76)와; 상기 ReadVBV 제어부(76)에 의해 읽어들인 상기 VBV 램(60)의 32비트 데이터를 8비트로 변환시켜 고정 비트레이트의 데이터를 출력시키는 32/8 변환부(77)로 구성된다.As shown in the figure, a write address control unit 71 which receives a write response signal of VBV and controls to write VBV data to the VBV RAM 60; A read address control unit 72 which receives the vertical synchronization signal from the slicer 30 and controls to read data from the VBV RAM 60 during a read time in synchronization with 1 MB time; A VBV buffer 73 for storing control commands of the write address control unit 71 and the read address control unit 72; A buffer (74) for storing VBV data of the VBV RAM (60) in accordance with a control command stored in the VBV buffer (73); A serial / parallel converter 75 which receives serial clocks and converts them in parallel to generate an output clock; A ReadVBV control unit (76) which determines the number of data to be read by reading the number of data remaining in the buffer (74) according to the parallel clock of the serial / parallel conversion unit (75) and controls to read as many as this number; A 32/8 converter 77 converts 32 bits of data of the VBV RAM 60 read by the ReadVBV controller 76 into 8 bits to output data having a fixed bit rate.

이와 같이 구성된 본 발명의 동작을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.The operation of the present invention configured as described above will be described in detail with reference to the accompanying drawings.

먼저, 하나의 영상은 Picture/Slice/Macro Block/Block으로 계층적으로 구성할 수 있다. 블록은 8×8 픽셀의 데이터로 구성되고, 4개의 블록 즉, 16×16 픽셀의 데이터를 매크로 블록(MB, Macro Block)이라고 한다. 실제로 1MB에서 4개의 블록은 휘도용 데이터이고, 여기에 색차용 데이터 블록이 2개(4:2:0) 또는 4개(4;2:2) 또는 8개(4:4:4)로 구성된다.First, one image may be hierarchically composed of Picture / Slice / Macro Block / Block. A block is composed of data of 8x8 pixels, and four blocks, that is, 16x16 pixels of data, are referred to as a macro block (MB). In fact, at 1MB, 4 blocks are luminance data, and there are 2 (4: 2: 0) or 4 (4; 2: 2) or 8 (4: 4: 4) data blocks for chrominance. do.

따라서 4:2:0인 경우 1MB 당 블록수는 6개가 된다.Therefore, in case of 4: 2: 0, the number of blocks per MB is 6.

또한 슬라이스(Slice)는 여러 개의 MB의 모임으로 정의된다. 예를 들어 영상의 크기가 1920×1088인 경우 1 슬라이스는 120개의 MB로 구성되고, 1픽처(Picture)는 68개의 슬라이스로 구성된다. 여러 영상을 모아 하나의 GOP(Group Of Picture)를 구성한다.Slice is also defined as a collection of several MBs. For example, when the size of an image is 1920 × 1088, one slice is composed of 120 MB, and one picture is composed of 68 slices. Multiple images are collected to form a GOP (Group Of Picture).

그래서 본 발명에서는 MC/Slice/Picture/GOP의 시작 신호를 동기 신호로 정의한다. 이 동기신호들의 타이밍도는 도3의 SYNC 신호로 나타내었다. 여기서 SYNC[0]은 MB Start, SYNC[1]은 Slice Start, SYNC[2]는 Picture Start, SYNC[3]은 GOP Start를 나타낸다. 그리고 입력 신호는 상기한 SYNC 신호와 영상계수 데이터들이 동기되어 들어온다고 가정한다.Therefore, in the present invention, the start signal of MC / Slice / Picture / GOP is defined as a synchronization signal. The timing diagram of these synchronization signals is shown by the SYNC signal of FIG. SYNC [0] is MB Start, SYNC [1] is Slice Start, SYNC [2] is Picture Start, and SYNC [3] is GOP Start. The input signal assumes that the SYNC signal and the image coefficient data are synchronized with each other.

그리고 하나의 MB 데이터를 처리하는데 128 클럭을 할당하였다. 따라서 MB Start 신호는 매 128 클럭마다 항상 발생한다. 하나의 블록을 처리하는데는 64 클럭이 필요하므로 128 클럭 동안에는 2개의 블록 데이터를 처리할 수 있게 된다.In addition, 128 clocks are allocated to process one MB of data. Therefore, the MB Start signal always occurs every 128 clocks. One block requires 64 clocks, so two blocks of data can be processed for 128 clocks.

따라서 128 클럭 동안에 하나의 MB인 6개의 블록 데이터를 부호화하기 위해서는 병렬로 3개의 경로가 필요하다. 그래서 도1의 입력은 3개의 블록 데이터가 동시에 입력된다. 도2는 입력 데이터를 Raster Scan에서 지그재그(Zigzag) 스캔으로 바꾸고, 이 데이터의 0이 아닌 계수 사이의 0의 개수를 세어 run과 0이 아닌 계수값인 level을 결정한다.Therefore, three paths are required in parallel to encode six block data of one MB during 128 clocks. Thus, in the input of Fig. 1, three block data are simultaneously input. Figure 2 changes the input data from Raster Scan to Zigzag scan and counts the number of zeros between nonzero coefficients of this data to determine the level of run and nonzero coefficient values.

그래서 도2의 가변길이 부호부(15)는 각각의 유효한 run, level에 대해 코드값을 할당하여 코드값인 code와 코드의 크기를 결정한다. 그리고 32bit의 패킹부(19)는 입력받은 코드를 32비트로 패킹(Packing)시켜 FIFO(23)에 저장한다.Thus, the variable length coder 15 of FIG. 2 assigns a code value to each valid run and level to determine code and code size. The 32-bit packing unit 19 packs the received code into 32 bits and stores the received code in the FIFO 23.

도1에서 참조번호 24인 FIFO는 DCM[0]에 대한 블록 가변 부호화한 데이터를 저장하고, 참조번호 25인 FIFO는 DCM[1]에 대한 블록 가변 부호화한 데이터를 저장하며, 참조번호 26인 FIFO는 DCM[2]에 대한 블록 가변 부호화한 데이터를 저장한다. MB Start를 기준으로 128 클럭마다 FIFO(24 - 26)에는 하나의 MB에 대한 코드값이 저장된다.In FIG. 1, the FIFO with reference numeral 24 stores block variable encoded data for DCM [0], the FIFO with reference numeral 25 stores block variable encoded data for DCM [1], and the FIFO with reference numeral 26. Stores block variable coded data for DCM [2]. Based on the MB Start, the code value for one MB is stored in the FIFOs 24 through 26 every 128 clocks.

하나의 MB를 나타내는 데이터는 상기한 3개 경로의 블록 데이터 이외에 MB의 부가 정보를 처리해야 한다. 이 부가정보는 매크로블록 헤더생성부(MB Head)(27)에 입력되는 MBPARM[12]에 실려온다. 이 데이터는 매 128 클럭마다 그 MB에 해당되는 정보를 나타낸다. 그래서 매크로블록 헤더생성부(27)와 32bit의 패킹부(28)와 FIFO(29)는 각 MB마다 부가정보를 이용하여 MB Header를 만들어 FIFO(29)에 저장하게 된다. 여기서 매크로블록 헤더생성부(27)는 MBParm의 정보를 이용하여 MB Header 비트스트림을 만든다.The data representing one MB must process the additional information of the MB in addition to the block data of the three paths described above. This additional information is carried in the MBPARM [12] input to the macroblock header generation unit (MB Head) 27. This data represents information corresponding to that MB every 128 clocks. Thus, the macroblock header generation unit 27, the 32-bit packing unit 28, and the FIFO 29 make an MB header using additional information for each MB and store the MB header in the FIFO 29. Here, the macroblock header generation unit 27 creates an MB header bitstream using the information of the MBParm.

그리고 슬라이서(30)는 동기신호인 SYNC[4] 신호를 입력받아 수직동기신호인 VSYNC[4]를 만든다. VSYNC는 Picture Header, Slice Header, MB Header, Block 데이터를 차례로 처리하기 위해 재조정한 동기신호이다. VSYNC의 타이밍도는 도3에 나타내었다. 도3에서 VSYNC[0]은 MB Start 신호이고, VSYNC[1]은 Slice Start 신호이며, VSYNC[2]는 Picture Start 신호이고, VSYNC[3]은 GOP Start 신호이다. 도3에서 GOP/Picture Header에 1MB의 시간을 할당했기 때문에 VSYNC[1]은 1MB 시간만큼 지연되어 있고, 매 슬라이스 마다 Slice Header에 1MB의 시간을 할당했기 때문에 VSYNC[1]과 다음 VSYNC[1] 사이의 시간 간격은 SYNC[1]과 다음 SYNC[1]에 비해 1MB의 시간이 추가되어 있다.The slicer 30 receives the SYNC [4] signal, which is a synchronization signal, to generate a VSYNC [4], which is a vertical synchronization signal. VSYNC is a synchronization signal that is readjusted in order to process Picture Header, Slice Header, MB Header, and Block data. The timing diagram of VSYNC is shown in FIG. In FIG. 3, VSYNC [0] is an MB Start signal, VSYNC [1] is a Slice Start signal, VSYNC [2] is a Picture Start signal, and VSYNC [3] is a GOP Start signal. In FIG. 3, VSYNC [1] is delayed by 1MB time because 1MB of time is allocated to the GOP / Picture Header, and VSYNC [1] and next VSYNC [1] are allocated because 1MB of time is allocated to the Slice Header for each slice. The time interval between SYNC [1] and the next SYNC [1] adds 1 MB of time.

하나의 영역에 대한 전체 타이밍 할당 구조를 도4에 나타내었다. 그래서 MB 데이터 시간 동안에 슬라이서(30)는 FIFO(24 - 26)(29)로부터 블록 데이터를 차례로 읽어온다. 1MB 데이터 시간 동안 각 블록에 대해 할당된 시간은 도5에 나타내었다. 도5에서 3 클럭은 MB Header를 FIFO(24 - 26)(29)로부터 읽어 VBV(Video Buffering Verifier, 가상 복호기 버퍼) 램(60)에 쓰는 데 할당되어 있고, 각 블록 데이터를 FIFO(24 - 26)(29)로부터 읽어 VBV 램(60)에 쓰는 데는 블록당 20 클럭 즉, 6개의 블록인 경우에는 120 클럭이 할당되게 된다.The overall timing assignment structure for one area is shown in FIG. Thus, during the MB data time, the slicer 30 sequentially reads block data from the FIFOs 24-26 and 29. The time allocated for each block for 1MB data time is shown in FIG. In FIG. 5, three clocks are allocated to read the MB header from the FIFOs 24-26 (29) and write them to the VBV (Video Buffering Verifier) RAM 60, and writes each block data to the FIFOs 24-26. 20 clocks per block, that is, 120 clocks in the case of 6 blocks, is allocated to read from the (29).

여기서 1MB에 할당된 128 클럭을 VBV 램(60)에 데이터를 쓰고 읽는데 시간을 분할시킨 이유는 VBV 램(60)으로 SRAM(Static Random Access Memory, 정적 임의 접근 기억 장치)을 사용하기 때문에 SRAM의 데이터 버스를 공유하므로 분할할 수밖에 없다. 만일 동시에 쓰고 읽는 것이 가능하게 하려면 FIFO나 DPSRAM(Dual Port SRAM)을 써야 하는데, FIFO나 DPSRAM은 크기가 큰 것이 없기 때문에 상대적으로 복잡한 구조가 될 수밖에 없다.The reason why the time divided by writing and reading data from the 128 clock allocated to 1MB to the VBV RAM 60 is divided into the VBV RAM 60 because the SRAM (Static Random Access Memory) is used. Since the bus is shared, you have no choice but to split it. If you want to be able to write and read at the same time, you need to use FIFO or DPSRAM (Dual Port SRAM). Since FIFO or DPSRAM is not large, it is a relatively complicated structure.

그리고 슬라이서(30)는 VSYNC를 발생시키는 동작 외에 슬라이스 헤더(Slice Header)를 발생시킨다. 그러면 32bit의 코드패킹부(40)는 Slice Header 데이터와 블록 데이터를 32비트로 패킹시키는 역할을 수행하고, 픽처헤더 생성부(50)는 픽처헤더를 발생시키는 역할을 한다. 이는 픽처 헤더를 32비트로 발생시키기 때문에 패킹시킬 필요는 없게 된다. 또한 VBV 램제어 및 출력부(70)는 VBV 램(60)에서 데이터를 읽어들이게 된다.The slicer 30 generates a slice header in addition to the operation of generating the VSYNC. Then, the 32-bit code packer 40 packs the slice header data and the block data into 32 bits, and the picture header generator 50 generates the picture header. This causes the picture header to occur in 32 bits, so there is no need to pack it. In addition, the VBV RAM control and output unit 70 reads data from the VBV RAM 60.

한편 VBV 램제어 및 출력부(70)에서, 쓰기어드레스 제어부(71)는 VBV의 쓰기 응답 신호인 VBVWrReq을 받아 VBV 데이터를 VBV 램(60)에 쓰도록 하는 부분이고, 읽기어드레스 제어부(72)는 VSYNC를 받아 1MB 시간을 동기시켜 이중 읽는 시간 동안에 VBV 램(60)으로부터 데이터를 읽는다. 이때 최대 5클럭 중 읽어들이는 개수는 32×5의 버퍼(74)에 남아 있는 개수를 보고 ReadVBV 제어부(76)에서 읽어야 하는 개수를 결정하여 이 값을 보고 개수 만큼 읽어들인다.On the other hand, in the VBV RAM control and output unit 70, the write address control unit 71 receives VBVWrReq, which is a write response signal of VBV, to write VBV data to the VBV RAM 60, and the read address control unit 72 It receives VSYNC and synchronizes 1 MB of time to read data from the VBV RAM 60 during the double read time. At this time, the number of readings among the maximum 5 clocks determines the number of readings by the readVBV control unit 76 based on the number remaining in the buffer 74 of 32 × 5 and reads this value by the number of readings.

또한 직/병렬 변환부(75)는 출력클럭을 발생시키기 위해 직렬 클럭을 받아 병렬로 변환시킨다. 그리고 32/8 변환부(77)는 VBV 램(60)으로부터 읽어들인 32bit의 데이터를 8비트로 변환시켜 출력시킨다.In addition, the serial / parallel converter 75 receives a serial clock and converts in parallel to generate an output clock. The 32/8 conversion unit 77 converts the 32-bit data read from the VBV RAM 60 into 8-bit and outputs the converted 8-bit data.

그래서 5클럭을 데이터 출력으로 할당하는 경우 최대 발생가능한 비트레이트는 1920×1088 영상인 경우 5×32×120×68×30=39168000까지 가능하게 된다.Therefore, the maximum possible bit rate when allocating 5 clocks as data output is possible up to 5 × 32 × 120 × 68 × 30 = 39168000 for 1920 × 1088 video.

따라서 도4에서 처럼 하나의 영상에 대해 Picture Header - Slice Header - MB Header - Block 데이터 순으로 MB Start에 동기시켜 순차적으로 발생시킴으로써 구조가 간단하게 된다. 또 VBV 램(60)에 데이터를 쓰고 읽는 시간을 분할함으로써 SRAM을 써서 충분히 구현할 수 있게 된다.Therefore, as shown in FIG. 4, the structure is simplified by sequentially generating the MB image in synchronization with MB Start in order of Picture Header-Slice Header-MB Header-Block data. In addition, by dividing the time for writing and reading data into the VBV RAM 60, the SRAM can be sufficiently implemented.

이처럼 본 발명은 부호의 발생확률의 편중에 따른 엔트로피 부호화 방법을 이용한 동기시분할 가변부호화 장치를 구성할 수 있게 되는 것이다.As described above, the present invention can configure a synchronous time division variable encoding apparatus using an entropy encoding method according to a bias of a code generation probability.

이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.Although the preferred embodiment of the present invention has been described above, the present invention may use various changes, modifications, and equivalents. It is clear that the present invention can be applied in the same manner by appropriately modifying the above embodiments. Accordingly, the above description does not limit the scope of the invention as defined by the limitations of the following claims.

이상에서 살펴본 바와 같이, 본 발명에 의한 동기시분할 가변부호화 장치는 매크로블록의 계수들과 부가 정보들을 효과적으로 부호화하기 위해서 동기신호를 설정하여 이 동기신호에 맞추어 동작하여 각 블록들간의 인터페이스 신호를 최소화시켜 동작의 복잡도를 감소시키고, 부호화한 데이터를 저장하고 고정 비트 레이트로 부호화한 데이터를 출력시키는 비디오 버퍼에 데이터를 쓰는 시간과 읽어 내는 시간을 분할하여 사용함으로써 구조를 단순화시킬 수 있는 효과가 있게 된다.As described above, the apparatus for synchronizing time division variable coding according to the present invention operates to match the synchronization signal by setting a synchronization signal in order to effectively encode coefficients and additional information of a macroblock, thereby minimizing an interface signal between each block. The complexity of the operation can be reduced, and the structure can be simplified by dividing the data writing time and the reading time into a video buffer that stores the encoded data and outputs the encoded data at a fixed bit rate.

Claims (5)

입력데이터를 지그재그 주사하고 계수값인 레벨을 결정하여 매크로블록에 대한 코드값을 저장하는 블록가변 부호화부와;A block variable encoding unit for zigzag-scanning the input data, determining a level that is a coefficient value, and storing a code value for the macroblock; 상기 블록가변 부호화부의 매크로블록 데이터를 입력받아 슬라이싱하고, 동기신호를 입력받아 수직동기신호를 출력하는 슬라이서와;A slicer for receiving and slicing macroblock data of the block variable encoder and outputting a vertical synchronization signal by receiving a synchronization signal; 상기 슬라이서에서 입력되는 슬라이스 헤더 데이터와 블록 데이터를 패킹시키는 코드패킹부와;A code packing unit for packing slice header data and block data inputted from the slicer; 상기 슬라이서의 수직동기신호에 따라 상기 코드패킹부에서 패킹된 데이터에 픽처헤더 정보를 생성하여 부가하는 픽처헤더 생성부와;A picture header generator for generating and adding picture header information to the data packed by the code packing unit according to the vertical synchronization signal of the slicer; 상기 픽처헤더 생성부의 VBV 데이터를 저장하는 VBV 램과;A VBV RAM storing VBV data of the picture header generator; 상기 VBV 램을 제어하여 상기 VBV 램의 데이터를 읽고 고정된 비트레이트 데이터를 출력하는 VBV 램제어 및 출력부로 구성된 것을 특징으로 하는 동기시분할 가변부호화 장치.And a VBV RAM control and output unit for controlling the VBV RAM to read data of the VBV RAM and output fixed bit rate data. 제 1항에 있어서, 상기 블록가변 부호화부는,The method of claim 1, wherein the block variable encoder, 입력된 복수개의 블록 데이터를 각각 지그재그 주사하고 0이 아닌 계수 사이의 0의 개수를 세어 run과 0이 아닌 계수값인 레벨을 결정하는 복수개의 SCAN과;A plurality of SCANs for zigzag scanning input block data and counting the number of zeros between nonzero coefficients to determine a level that is a run and a nonzero coefficient value; 상기 복수개의 SCAN에서 입력되는 데이터에서 각각의 유효한 run, 레벨에 대해 코드값을 할당하여 코드값과 코드크기를 결정하는 복수개의 가변길이 부호부와;A plurality of variable length coders for allocating code values for each valid run and level from data input from the plurality of SCANs to determine code values and code sizes; 상기 복수개의 가변길이 부호부에서 입력받은 코드를 정해진 비트로 각각 패킹시키는 복수개의 패킹부와;A plurality of packing parts for respectively packing codes received from the plurality of variable length code parts with predetermined bits; 상기 복수개의 패킹부에서 패킹된 데이터를 저장하여 상기 슬라이서에서 읽을 수 있도록 하는 복수개의 FIFO와;A plurality of FIFOs for storing the data packed by the plurality of packing units to be read by the slicer; 매크로블록의 부가정보를 입력받아 헤더를 생성하는 매크로블록 헤더생성부와;A macroblock header generation unit configured to receive additional information of the macroblock and generate a header; 상기 매크로블록 헤더생성부에 출력되는 데이터를 패킹하는 패킹부와;A packing unit for packing data output to the macroblock header generation unit; 상기 패킹부에서 패킹된 매크로블록의 부가정보를 저장하여 상기 슬라이서에서 읽을 수 있도록 저장하는 FIFO로 구성된 것을 특징으로 하는 동기시분할 가변부호화 장치.And a FIFO for storing the additional information of the macroblock packed by the packing unit so as to be read by the slicer. 제 1항에 있어서, 상기 블록가변 부호화부는,The method of claim 1, wherein the block variable encoder, 128 클럭 동안에 하나의 매크로블록인 6개의 블록 데이터를 부호화하기 위하여 병렬로 3개의 경로를 설정하여 블록가변 부호화한 데이터를 동시에 저장하고, 매크로블록의 부가정보를 상기 블록가변 부호화한 데이터와 동시에 저장하는 것을 특징으로 하는 동기시분할 가변부호화 장치.In order to encode six block data which is one macroblock during 128 clocks, three paths are set in parallel to simultaneously store block-variable encoded data, and additional information of the macroblock is simultaneously stored together with the block-variable encoded data. A synchronous time division variable encoding apparatus, characterized in that. 제 1항에 있어서, 상기 슬라이서는,The method of claim 1, wherein the slicer, 동기신호를 입력받아 만든 수직동기신호를 Picture Header와 Slice Header와 MB Header와 Block 데이터를 차례로 처리하기 위해 재조정하여 출력하고, Slice Header를 처리하기 위한 수직동기신호를 1매크로블록의 시간만큼 지연하여 Slice Header를 처리하기 위한 수직동기신호와 다음 Slice Header를 처리하기 위한 수직동기신호 사이의 시간 간격은 Slice Header를 처리하기 위한 동기신호와 다음 Slice Header를 처리하기 위한 동기신호에 비해 1매크로블록의 시간을 추가한 것을 특징으로 하는 동기시분할 가변부호화 장치.The vertical synchronous signal created by receiving the sync signal is readjusted to process Picture Header, Slice Header, MB Header, and Block data in order, and the vertical synchronous signal for processing the Slice Header is delayed by 1 macroblock for the slice. The time interval between the vertical synchronous signal for processing the header and the vertical synchronous signal for processing the next Slice Header is one macroblock time compared to the synchronous signal for processing the Slice Header and the synchronous signal for processing the next Slice Header. A synchronous time division variable encoding apparatus characterized by the above-mentioned. 제 1항에 있어서, 상기 VBV 램제어 및 출력부는,The method of claim 1, wherein the VBV RAM control and output unit, VBV의 쓰기 응답 신호를 입력받아 VBV 데이터를 상기 VBV 램에 쓰도록 제어하는 쓰기어드레스 제어부와;A write address control unit which receives a write response signal of VBV and controls VBV data to be written to the VBV RAM; 상기 슬라이서에서 수직동기신호를 입력받아 1MB 시간을 동기시켜 읽는 시간 동안에 상기 VBV 램으로부터 데이터를 읽도록 제어하는 읽기어드레스 제어부와;A read address control unit which receives a vertical synchronization signal from the slicer and controls to read data from the VBV RAM during a read time in synchronization with 1 MB; 상기 쓰기어드레스 제어부와 읽기어드레스 제어부의 제어명령을 저장하는 VBV 버퍼와;A VBV buffer for storing control commands of the write address control unit and the read address control unit; 상기 VBV 버퍼에 저장된 제어명령에 따라 상기 VBV 램의 VBV 데이터를 저장하는 버퍼와;A buffer for storing VBV data of the VBV RAM according to a control command stored in the VBV buffer; 출력클럭을 발생시키기 위해 직렬 클럭을 받아 병렬로 변환시키는 직/병렬 변환부와;A serial / parallel converter configured to receive a serial clock and convert it in parallel to generate an output clock; 상기 직/병렬 변환부의 병렬클럭에 따라 상기 버퍼에 남아 있는 데이터 개수를 검사하여 읽어야 하는 데이터 개수를 결정하고 이 개수 만큼 읽어들이도록 제어하는 ReadVBV 제어부와;A ReadVBV control unit configured to determine the number of data to be read by reading the number of data remaining in the buffer according to the parallel clocks of the serial / parallel conversion unit, and to control the number of data to be read by the number; 상기 ReadVBV 제어부에 의해 읽어들인 상기 VBV 램의 32비트 데이터를 8비트로 변환시켜 고정 비트레이트의 데이터를 출력시키는 32/8 변환부로 구성된 것을 특징으로 하는 동기시분할 가변부호화 장치.And a 32/8 conversion unit for converting 32-bit data of the VBV RAM read by the ReadVBV control unit into 8-bit and outputting a fixed bit rate data.
KR1019980042322A 1998-10-09 1998-10-09 Synchronous time-sharing variable encoder KR20000025297A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980042322A KR20000025297A (en) 1998-10-09 1998-10-09 Synchronous time-sharing variable encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980042322A KR20000025297A (en) 1998-10-09 1998-10-09 Synchronous time-sharing variable encoder

Publications (1)

Publication Number Publication Date
KR20000025297A true KR20000025297A (en) 2000-05-06

Family

ID=19553545

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980042322A KR20000025297A (en) 1998-10-09 1998-10-09 Synchronous time-sharing variable encoder

Country Status (1)

Country Link
KR (1) KR20000025297A (en)

Similar Documents

Publication Publication Date Title
KR100322485B1 (en) Multi-Channel Video Encoding apparatus and method thereof
EP0562420B1 (en) Method and apparatus for vector coding of video transform coefficients
US8358706B2 (en) Apparatus and system to multiplex data on a plurality of digital frame images into data on one frame and to encode and transmit the data
JPH0779432A (en) Processor for coded video signal
KR20000071244A (en) Mpeg video decoder with integrated scaling and display functions
US6124881A (en) System for generating composed signals of multiple pictures for use in a video conference system
RU2119269C1 (en) Television system for converting compressed data presenting images and placed in blocks into decompressed data and system for processing compressed video data transmitted in the form of blocks
JP3044749B2 (en) Video signal encoding device
KR100555284B1 (en) Method and device for decoding moving picture
KR100451584B1 (en) Device for encoding and decoding a moving picture using of a wavelet transformation and a motion estimation
US6212300B1 (en) Image processing apparatus, method and computer-executable program product for converting the format of data for specific image data
JP3217507B2 (en) Image compression device
KR20000025297A (en) Synchronous time-sharing variable encoder
KR19990060489A (en) HDIVE Video Decoder
KR100295185B1 (en) bit extension variable encoder
US5359420A (en) Macro block address processor for digital compressed video signal decoder
EP0735777A2 (en) Cue-adaptive video encoding method and apparatus
KR100575179B1 (en) Image data processing device
KR100270327B1 (en) Video signal input device with surveillance function of video encoder
KR100285420B1 (en) Variable length coder in HDTV
JPH06217283A (en) Encoding process unit and moving picture data encoding device, and decoding process unit and moving picture data decoding device
KR950011308B1 (en) Raster to block converter
JPS6359312B2 (en)
JPS6366113B2 (en)
KR0152026B1 (en) Method and apparatus for decoding header detection

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination