KR0152019B1 - Method and apparatus for parallel processing of variable length - Google Patents

Method and apparatus for parallel processing of variable length

Info

Publication number
KR0152019B1
KR0152019B1 KR1019920017917A KR920017917A KR0152019B1 KR 0152019 B1 KR0152019 B1 KR 0152019B1 KR 1019920017917 A KR1019920017917 A KR 1019920017917A KR 920017917 A KR920017917 A KR 920017917A KR 0152019 B1 KR0152019 B1 KR 0152019B1
Authority
KR
South Korea
Prior art keywords
data
code
parallel processing
slice
variable length
Prior art date
Application number
KR1019920017917A
Other languages
Korean (ko)
Other versions
KR940008490A (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 윤종용
Priority to KR1019920017917A priority Critical patent/KR0152019B1/en
Publication of KR940008490A publication Critical patent/KR940008490A/en
Application granted granted Critical
Publication of KR0152019B1 publication Critical patent/KR0152019B1/en

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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • 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/436Methods 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 using parallelised computational arrangements
    • 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

Abstract

본 발명은 가변길이코드데이타의 병렬처리방법 및 그 장치에 관한 것으로, 특히 고화질 텔레비젼의 직렬처리가 불가능하므로 입력신호를 분할하여 병렬처리하는 것에 관한 것이다. 입력된 프레임의 슬라이스시작코드를 검출한 후 블록의 끝을 나타내는 패턴을 찾아 이를 카운트하면 소정의 군에 필요한 데이타양을 찾을 수 있으므로 이에 따라 소정의 군의 데이타를 나누어 메모리에 저장하고 병렬처리하게 디코딩을 행한다. 각 군내 에러발생시 회복을 위해 각 군에 들어가는 슬라이스당 비트수를 함께 카운트해 놓으면 디코딩 도중 발생할 수 있는 에러에 대해서도 잃어버리는 데이타양을 줄일 수 있게 된다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel processing method and apparatus thereof for variable length code data, and more particularly, to parallel processing of an input signal since serial processing of a high definition television is impossible. After detecting the slice start code of the input frame and finding the pattern indicating the end of the block and counting it, we can find the amount of data required for the given group. Therefore, the data of the given group is divided into the memory and decoded in parallel. Is done. Counting the bits per slice in each group to recover in case of error in each group reduces the amount of data lost for errors that may occur during decoding.

Description

가변길이코드데이타의 병렬처리방법 및 그 장치.Parallel processing method of variable length code data and apparatus therefor.

제1도는 본 발명에 의한 가변길이코드데이타의 병렬처리장치의 블록구성도.1 is a block diagram of a parallel processing apparatus for variable length code data according to the present invention.

제2도는 부호화된 화면의 예시도.2 is an exemplary diagram of an encoded picture.

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

11, 13 : 코드검출기 12, 14 : 카운터11, 13: code detector 12, 14: counter

15 : FIFO메모리15: FIFO memory

본 발명은 발생빈도에 따라 부호길이를 달리 갖는 일련의 데이타를 병렬처리하기 위한 방법 및 그 장치에 관한 것으로, 특히 입력데이타가 가변길이코딩되어 있으면서 데이타율이 상당히 높아 입력율대로 디코딩을 할 수 없거나 빠른 처리속도를 필요로 해 소정의 군(Group)으로 나누어 처리해야 하는 고화질텔레비젼(HDTV)의 디코더단에서 사용할 수 있는 가변길이코드데이타의 병렬처리방법 및 그 장치에 관한 것이다.The present invention relates to a method and apparatus for parallel processing a series of data having different code lengths according to the frequency of occurrence. In particular, the data rate is quite high while the input data is variable length coded, and thus the decoding cannot be performed at the input rate. The present invention relates to a parallel processing method of variable length code data that can be used in a decoder stage of a high-definition television (HDTV) that needs to be processed in a predetermined group by requiring a high processing speed, and a device thereof.

입력된 디지탈영상신호(Digital Image Signal)를 처리하기 위한 시스템에서 데이타를 일정대역을 통해 전송하기 위해서는 데이타압축(Data Compression)이 필요하다. 여기에는 직교변환(Orthogonal transform). 양자화(Quantization), 부호화(Coding)의 과정이 포함되며 이를 통과한 데이타는 비트스트림(bit stream)형태로 바뀌어 전송을 하게 된다.Data compression is required in order to transmit data through a predetermined band in a system for processing an input digital image signal. This includes an orthogonal transform. Quantization and coding processes are included, and the data passing through them is transformed into a bit stream to be transmitted.

일반적으로 데이타압축은 데이타를 전송하거나 저장할때, 전송대역폭이나 저장공간을 줄이기 위해 원래의 정보는 거의 포함하면서 전체적인 데이타의 양을 줄이는 것이다. 이런 데이타 압축을 보다 효과적으로 하기 위하여 많은 방식들이 제안되고 있는데, 그중에서도 부호화 데이타의 전송길이를 그 데이타의 발생빈도에 따라 가변하는 가변장부호화기법이 많이 사용되고 있다. 특히 부호화방법에 있어 발생하는 확률이 많은 데이타에 대해서는 짧은 길이로 코딩을 하고 발생빈도가 작은 데이타는 긴 길이의 코드로 할당하여 효율적인 데이타압축을 수행하는 허프만코드(Huffman code)가 널리 쓰이고 있다. 데이타의 발생빈도에 따라 가변 비트수를 할당하는 가변길이코딩(variable length coding)을 사용할 경우 영상종류에 따라 가변적인 비트스트림을 가지게 된다. 가변길이코드는 비블록코드(Nonblock code)로 블록의 크기가 일정하지 않다. 이에 따라 하나의 완전한 화면인 프레임(Frame)의 시작위치를 알려주는 프레임동기코드나 일반적인 영상데이타의 부호화 및 복호화등이 행해지는 데이타처리단위에 해당하는 매크로블록(Macroblock)을 일렬로 연결한 하나의 라인(Line)인 슬라이스(Slice)를 나타내주는 슬라이스시작코드(Slice Start Cold; 이하 SSC라 함)등의 부가적인 정보를 추가해 비트스트림내 필요한 정보를 추출하기 쉽도록 한다. 그러나,고화질텔레비젼(HDTV)의 경우 디지탈데이타의 처리속도(Data rate)가 높아 직렬처리(Serial Processing)가 불가능하므로 신호처리를 고속화할 수 있는 병렬처리(Parallel Processing)를 수행해야 한다.In general, data compression involves reducing the overall amount of data, including almost the original information, to reduce transmission bandwidth and storage space when transferring or storing data. Many methods have been proposed to make such data compression more effective. Among them, a variable length encoding technique is used in which the transmission length of encoded data varies depending on the frequency of occurrence of the data. In particular, Huffman codes are widely used for coding data having a high probability of occurrence in a short length and assigning data having a low frequency to a long length for efficient data compression. In the case of using variable length coding which allocates a variable number of bits according to the frequency of occurrence of data, it has a variable bitstream depending on the type of image. The variable length code is a nonblock code, and the block size is not constant. As a result, one frame that connects macroblocks corresponding to data processing units in which frame synchronization code indicating a start position of a frame, which is a complete screen, or encoding and decoding of general video data, is arranged in a row. Additional information such as a slice start code (Slice Start Cold, hereinafter referred to as SSC) representing a slice, which is a line, is added to make it easier to extract necessary information from the bitstream. However, in the case of high definition television (HDTV), since serial data is not possible due to the high data rate of digital data, parallel processing is required to speed up signal processing.

상기와 같은 데이타처리속도가 높은 고화질 텔레비젼(HDTV)에서 입력데이타가 가변길이코딩되어 있으면, 가변길이코드데이타(Variable length coded data)는 일정 크기의 블록을 갖는 고정길이코드데이타(Fixed length coded data)와는 달리 데이타의 시작과 끝을 분간하지 못하므로 데이타를 나누어 병렬처리하기가 여러운 문제점이 있었다.If the input data is variable length coded in a high-definition television (HDTV) having a high data processing speed as described above, variable length coded data is fixed length coded data having a block of a predetermined size. Unlike the beginning and end of data, it is difficult to divide and parallelize data.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 가변길이를 갖는 일련의 비트스트림을 소정의 영역으로 분할하여 병렬처리를 가능하도록 하며, 에러발생시 에러의 손실양도 줄일수 있는 가변길이코드데이타의 병렬처리방법을 제공함에 있다.SUMMARY OF THE INVENTION An object of the present invention for solving the above problems is to divide a series of bit streams having variable length into a predetermined area to enable parallel processing, and to reduce the amount of error loss when an error occurs. To provide a parallel processing method.

본 발명의 다른 목적은 전술한 가변길이코드데이타의 병렬처리방법을 구현하기 위한 장치를 제공함에 있다.Another object of the present invention is to provide an apparatus for implementing the above-described parallel processing method of variable length code data.

상기 목적을 달성하기 위한 본 발명의 특징은, 다수의 슬라이스로 구성되고 각 슬라이스는 각각이 다수의 블록들을 갖는 다수의 군으로 이루어진 비트스트림의 형태로 입력하는 가변길이코드데이타를 병렬처리하기 위한 장치에 있어서, 상기 가변길이코드데이타를 상기 각 군별로 순서적으로 저장할 수 있는 저장번지를 갖는 메모리와, 상기 가변길이코드데이타의 비트스트림에서 각 슬라이스의 시작위치를 검출하고, 상기 시작위치를 검출할 때 제어신호를 발생하는 제1코드검출기와, 상기 제어신호에 응답하여 상기 데이타의 비트스트림으로부터 각 블록들을 검출하고, 검출된 블록의 수가 사전 설정된 상기 일 군의 수에 달할 때 상기 메모리의 데이타저장번지를 변경하는 절환신호를 발생하는 수단을 포함하는 가변길이코드데이타의 병렬처리장치에 의하여 달성된다.A feature of the present invention for achieving the above object is an apparatus for parallel processing variable length code data consisting of a plurality of slices, each slice being input in the form of a bitstream consisting of a plurality of groups each having a plurality of blocks. And a memory having a storage address for sequentially storing the variable length code data for each group, a start position of each slice in a bitstream of the variable length code data, and detecting the start position. A first code detector for generating a control signal and detecting each block from the bitstream of the data in response to the control signal, and storing the data in the memory when the number of detected blocks reaches the preset number of groups. Parallel processing length of variable length code data including means for generating a switching signal for changing the address It is achieved by the.

본 발명의 다른 특징은, 다수의 슬라이스로 구성되고 각 슬라이스는 각각이 다수의 블록들을 갖는 다수의 군으로 이루어진 비트스트림의 형태로 입력하는 가변길이코드데이타를 병렬처리하기 위한 방법에 있어서, 상기 데이타의 각 슬라이스마다 슬라이스시작코드를 기록하는 단계와, 상기 슬라이스시작코드를 검출하는 단계와, 상기 슬라이스시작코드를 검출함과 동시에 상기 데이타의 블록을 구분하는 코드를 검출하여 카운트하는 단계와, 상기 카운트하는 동안 상기 가변길이코드데이타를 메모리의 지정된 번지에 순서적으로 저장하는 단계, 및 상기 블록구분코드를 사전 설정된 소정 갯수만큼 카운트할 때 상기 메모리의 번지를 변경하는 단계를 포함하는 가변길이코드데이타의 병렬처리방법에 의하여 달성된다.Another aspect of the present invention is a method for parallel processing variable length code data consisting of a plurality of slices, each slice having a plurality of groups each having a plurality of blocks, input in the form of a bitstream. Recording a slice start code for each slice of the slice; detecting the slice start code; detecting and counting a code for separating the block of data while detecting the slice start code; Sequentially storing the variable length code data at a designated address of a memory, and changing the address of the memory when the block classification code is counted by a predetermined number of preset lengths of the variable length code data. It is achieved by parallel processing method.

이하, 첨부한 도면을 참조하여 본 발명을 상세히 기술하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

제1도는 본 발명에 의한 가변길이코드데이타의 병렬처리장치의 블록구성도를 나타낸다. 제1도의 장치는 입력되는 가변길이코드데이타의 비트스트림(DSi)에서 슬라이스시작코드(SSC)를 검출하여 데이타들을 소정의 군으로 나누기 위한 제어신호(Cs₁)를 출력하는 제1코드검출기(11)와, 제1코드검출기(11)를 통해 인가되는 데이타의 각 비트수를 카운트하는 비트카운터(12)와, 제1코드검출기(11)를 통해 인가되는 제어신호(Cs₁)에 응답하여 데이타의 비트스트림을 구성하는 블록들을 구분하는 코드(End of Block;이하 EOB라 함)를 검출하는 제2코드검출기(13)와, 검출된 블록구분코드(EOB)의 갯수를 소정의 군에 필요한 데이타양만큼 카운트하는 EOB카운터(14)와, EOB카운터(14)로부터 저장위치를 스위칭 받는 제어신호(Cs₂)를 인가받아 소정의 블록들을 몇개의 군으로 나누어 순서적으로 저장하는 선입선출(First in First out; 이하 FIFO라 함)방식의 메모리(15)로 구성된다.1 is a block diagram of a parallel processing apparatus for variable length code data according to the present invention. The apparatus of FIG. 1 detects the slice start code SSC from the bitstream DSi of the variable length code data input and outputs a control signal Cs' for dividing the data into a predetermined group. And a bit counter 12 for counting the number of bits of data applied through the first code detector 11 and bits of data in response to the control signal Cs \ applied through the first code detector 11. The second code detector 13 for detecting a code (End of Block (hereinafter referred to as EOB)) for distinguishing the blocks constituting the stream and the number of detected block classification code (EOB) by the amount of data necessary for a predetermined group First in First out to receive the EOB counter 14 for counting and the control signal Cs2 which switches the storage position from the EOB counter 14 and divides predetermined blocks into several groups and stores them sequentially. FIFO) memory 15 It is.

제1도에서, 부호화된 하나의 프레임(Frame)을 다수개의 군으로 나누어 각 군에 들어가는 슬라이스딩 블록수를 구한다. 각 군의 슬라이스당 불록수단위로 병렬처리하기 위해 제1코드검출기(11)는 인가되는 데이타의 비트스트림(DSi)에서 필요한 정보를 추출하기 쉽도록 부가적으로 추가한 슬라이스시작코드(SSC)를 검출한다. 슬라이스시작코드(SSC)를 검출한 제1코드검출기(11)는 블록구분코드(EOB)의 검출동작을 수행하도록 하는 제어신호(Cs₁)를 제2코드검출기(13)에 인가하고, 슬라이스내에 데이타(DS를 FIFO메모리(15)에 각각 인가한다. 이때, 비트카운터(12)는 인가되는 각 군의 슬라이스당 블록수에 해당하는 데이타(DS)의 비트수를 카운트하게 된다. 제2코드검출기(13)는 제1코드검출기(11)로부터 슬라이스시작코드(SSC)를 검출하였음을 알리는 신호(CS1)를 인가받고 여러개의 블록들로 구성되는 가변길이코드데이타를 인가받아 각 블록을 구분시켜 주는 코드(EOB)를 검출한다. 블록구분코드(EOB)를 검출할 때마다 EOB카운터(14)에서는 카운트동작을 수행한다. EOB카운터(14)에서 각 군에 들어가는 슬라이스당 블록수만큼 카운트하는 동안 데이타(DS)들은 FIFO메모리(15)에 순서적으로 저장하게 된다. 각 군에 들어가는 슬라이스당 블록수만큼 카운트동작을 수행하였으면 FIFO메모리(15)의 다음 위치에 연속해서 데이타들을 저장할 수 있도록 EOB카운터(14)에서 제어신호(CS2)를 출력한다. 비트 카운터(12)는 EOB카운터(14)에서 출력되는 제어신호(CS2)에 의해 FIFO메모리(15)의 위치를 달리하게 되면 카운트된 각 군에 들어가는 슬라이스당 블록수에 해당하는 비트수(Db)를 도시하지 않은 디코더단으로 내보내게 된다. 이와 같이 FIFO메모리(15)에 순서대로 저장하여 FIFO단위로 병렬처리하게 디코딩을 행한다. FIFO메모리(15)로 부터 FIFO 단위로 디코딩하기 위해 읽어나가는 동안에 잡음(Noise)이 생겨 데이타를 잃어버리거나 읽어나가기 전에 새로운 데이타들이 기억되어 전에 기억된 데이타를 잃어버리는 에러가 발생할 수 있다. 각 군내 이런 에러 발생시 회복을 위해 각 군에 들어가는 슬라이스당 비트수를 비트 카운터(12)를 통해 함께 카운트 해놓으므로 디코딩 도중 발생할 수 있는 에러에 대해서도 잃어버리는 데이타양을 줄일 수 있게 된다.In FIG. 1, the number of sliced blocks included in each group is obtained by dividing an encoded frame into a plurality of groups. The first code detector 11 detects an additionally added slice start code SSC so that it is easy to extract necessary information from the bitstream DSi of the data to be applied in parallel processing for each group of slices per slice. do. The first code detector 11 that detects the slice start code SSC applies a control signal Cs \ to the second code detector 13 to perform the detection operation of the block classification code EOB, and the data in the slice. (DS Are applied to the FIFO memory 15, respectively. At this time, the bit counter 12 is a data (DS) corresponding to the number of blocks per slice of each group to be applied Count the number of bits. The second code detector 13 receives a signal CS 1 indicating that the slice start code SSC is detected from the first code detector 11 and receives variable length code data composed of several blocks. Detect the code (EOB) that identifies the block. Each time the block classification code EOB is detected, the EOB counter 14 performs a counting operation. While the EOB counter 14 counts the number of blocks per slice entering each group, the data (DS ) Are sequentially stored in the FIFO memory 15. If the count operation is performed for the number of blocks per slice in each group, the control signal C S2 is output from the EOB counter 14 so that data can be continuously stored in the next position of the FIFO memory 15. The bit counter 12 changes the position of the FIFO memory 15 according to the control signal C S2 output from the EOB counter 14, and thus the number of bits Db corresponding to the number of blocks per slice to be included in each counted group. ) Is sent to a decoder stage (not shown). In this way, the data is stored in the FIFO memory 15 in order and decoded in parallel in units of FIFO. Noise may occur during reading from the FIFO memory 15 to decode in units of FIFO, resulting in an error in which data is lost or new data is stored before the data is stored before being read. The number of bits per slice entering each group is counted together by the bit counter 12 to recover when such an error occurs in each group, thereby reducing the amount of data lost for errors that may occur during decoding.

제2도는 부호화된 화면의 예시도로서, (a)도는 8×8 블럭도이고, (b)도는 16×16매크로블럭이고, (c)도는 매크로블럭을 일렬로 나열한 여러개의 슬라이스를 모아둔 부호화된 화면이다. 제2도를 통해 본 발명에 따른 동작을 구체적으로 살펴보면, 도시한 바와 같은 크기를 갖는 화면(Frame)에서, 하나의 블록은 '8라인×8픽셀'의 크기를 갖고, 이러한 4개 블록의 단위로 하나의 매크로블록(Macroblock)을 구성한다. 한 프레임(Frame)에 해당되는 부호화된 데이타를 4개의 군으로 나누면 각 군내에 들어있는 각 슬라이스는 80개씩의 블록을 가질 수 있다. 즉, 제2(c)도에 보여진 것과 같이 한 화면(frame)의 크기(size)가 '720(라인)×320(픽셀)'이 된다. 이렇게 나누어진 각 군내의 각 슬라이스(slice)는 제2(b)도에 보여진 것과 같은, 크기의 매크로블록(MB)이 20개씩 들어있게 되어 결국, 80개(20×4)씩의 블럭(block)을 가질 수 있다. 따라서, 제1코드검출기(11)는 슬라이스시작코드(SSC)를 검출한 후 한프레임(Frame)에 해당되는 데이타를 다수개의 군(Group)으로 나누어 메모리에 저장하는데 필요한 데이타양을 찾기 위해 제2코드검출기(13)에 제어신호(Cs₁)를 인가한다. 제어신호(Cs₁)에 응답하여 동작을 시작한 제2코드검출기(13)는 인가되는 데이타(DS0)에서 블록구분코드(EOB)를 검출하고 EOB카운터(14)를 통해 80개의 블록구분코드(EOB)를 카운트한다. 카운트하는 동안 첫번째 FIFO메모리(15)에 데이타(DS0)들이 저장된다. 80개의 블럭구분코드(EOB)를 카운트한 EOB카운터(14)는 FIFO메모리(15)의 위치를 스위칭하는 제어신호(Cs2)를 출력하고 리셋트상태가 된다. 다시 그 다음 인가되는 데이타에서 블록구분코드(EOB)를 검출하고 80개의 블록구분코드(EOB)를 카운트하는 동안 제어신호(Cs2)에 의해 위치를 변경하여 두번째 FIFO메모리(15)에 80개의 블록 데이타를 저장하는 방법으로 가변길이코드데이타를 나누어 병렬 처리하게 된다. 또한, 가변길이코딩방식은 데이타를 압축하는 만큼 디코더의 설계가 복잡해지고 에러가 발생되면 여러 데이타에 걸쳐 영향을 미치므로 현 슬라이스중 각 군에 저장된 80개의 블록 비트수를 함께 세어두면 중간에 에러가 발생하여도 80개의 블록만 버리면 된다. 즉, 블록을 검출하는 도중에 계속 데이타의 비트수를 누적카운트하여 EOB카운터(14)로부터 발생하는 제어신호(Cs2)에 응답하여 도시되지 않은 디코더단으로 비트수(Db)를 출력하고 리셋트 상태가 된다. 다시 그 다음 인가되는 데이타의 비트수(Db)를 카운트하게 된다. 이와 같이 데이타의 비트수를 누적카운트해 놓은 것은 한 슬라이스단위에서 각 FIFO는 배당된 비트합이므로 FIFO내에서 발생한 에러를 누적카운트 만큼의 단위로 복구가 가능하도록 해주며 이에 따라 에러손실을 감소시킨다.FIG. 2 is an exemplary diagram of an encoded picture, where (a) is an 8x8 block diagram, (b) is a 16x16 macroblock, and (c) is an encoding of several slices arranged in a line with macroblocks It is a screen. Referring to the operation according to the present invention in detail with reference to FIG. 2, in a frame having a size as shown, one block has a size of '8 lines × 8 pixels', and the unit of these four blocks It consists of one macroblock. When coded data corresponding to a frame is divided into four groups, each slice in each group may have 80 blocks. That is, as shown in FIG. 2 (c), the size of one frame becomes '720 (line) x 320 (pixel)'. Each slice in this group has 20 macroblocks (MB) of the same size as shown in FIG. 2 (b), resulting in 80 (20 × 4) blocks. ) Therefore, after detecting the slice start code SSC, the first code detector 11 divides the data corresponding to one frame into a plurality of groups to find the amount of data necessary to store the data in a memory. The control signal Cs \ is applied to the code detector 13. The second code detector 13, which has begun to operate in response to the control signal Cs \, detects the block classification code EOB from the data DS 0 applied, and the 80 block classification codes EOB through the EOB counter 14. Count) During the counting, the data DS 0 is stored in the first FIFO memory 15. The EOB counter 14 counting 80 block division codes EOB outputs a control signal Cs 2 for switching the position of the FIFO memory 15 and enters the reset state. Then, the block classification code (EOB) is detected from the next applied data, and the position is changed by the control signal Cs 2 while counting the 80 block classification codes (EOB), and 80 blocks are stored in the second FIFO memory 15. As a method of storing data, variable length code data is divided and processed in parallel. In addition, the variable length coding method complicates the design of the decoder as it compresses the data, and if an error occurs, it affects the multiple data. If so, only 80 blocks need to be discarded. That is, during the detection of the block, the number of bits of the data is continuously accumulated, and the number of bits Db is output to the decoder stage (not shown) in response to the control signal Cs 2 generated from the EOB counter 14 and reset state. Becomes Then, the number of bits Db of the next applied data is counted. The cumulative count of the number of bits of the data as described above allows each FIFO to allocate the bit sum in one slice unit, so that an error occurring in the FIFO can be recovered in units of a cumulative count, thereby reducing error loss.

상술한 바와 같이, 본 발명에 의한 가변길이코드데이타의 병렬처리방법 및 그 장치는 고화질 텔레비젼의 데이타처리에 관한 것으로 해당 프레임의 블록들을 소정의 군으로 나누어 기억시킴으로 병렬처리가 가능하도록 했다. 가변길이 코딩에서는 시작 혹은 끝을 나타내는 규정된 비트패턴이나 표시가 없으면 중간에서 에러가 나타날시 특정위치를 나타내는 표시(Frame Synch)를 찾을 때까지 원래의 데이타를 디코딩할 수 없다. 따라서 누적카운트가 있으면 에러가 발생하여도 그 카운트까지만 에러로 버리고 그 다음부터는 다시 디코딩하면 되므로 에러에 의한 데이타 손실을 줄일 수 있는 효과가 있다.As described above, the parallel processing method and apparatus for variable length code data according to the present invention are related to data processing of a high-definition television, so that the parallel processing is possible by dividing and storing the blocks of the frame into predetermined groups. In variable-length coding, if there is no prescribed bit pattern or mark for the beginning or end, the original data cannot be decoded until an error is found in the middle until a frame synch is found. Therefore, if there is an accumulated count, even if an error occurs, only the count is discarded as an error, and since it is decoded again thereafter, the data loss caused by the error can be reduced.

Claims (8)

다수의 슬라이스로 구성되고 각 슬라이스는 각각이 다수의 블록들을 갖는 다수의 군으로 이루어진 비트스트림의 형태로 입력하는 가변길이코드데이타를 병렬처리하기 위한 장치에 있어서, 상기 가변길이코드데이타를 상기 각 군별로 순서적으로 저장할 수있는 저장번지를 갖는 메모리; 상기 가변길이코드데이타의 비트스트림에서 각 슬라이스의 시작위치를 검출하고, 상기 시작위치를 검출할 때 제어신호를 발생하는 제1코드검출기; 상기 제어신호에 응답하여 상기 데이타의 비트스트림으로 부터 각 블록들을 검출하고, 검출된 블록의 수가 사전 설정된 상기 일 군의 수에 달할 때 상기 메모리의 데이타저장번지를 변경하는 절환신호를 발생하는 수단을 포함하는 가변길이코드데이타의 병렬처리장치.An apparatus for parallel processing variable length code data, which is composed of a plurality of slices and each slice is input in the form of a bitstream having a plurality of groups, each of which has a plurality of blocks. A memory having a storage address that can be sequentially stored for each; A first code detector for detecting a start position of each slice in the bitstream of the variable length code data and generating a control signal when the start position is detected; Means for detecting each block from the bitstream of the data in response to the control signal, and generating a switching signal for changing the data storage address of the memory when the number of detected blocks reaches a predetermined number of groups; Parallel processing apparatus of variable length code data, including. 제1항에 있어서, 상기 데이타의 비트수를 카운트하는 비트카운터를 더 포함하는 것을 특징으로 하는 가변길이코드데이타의 병렬처리장치.The parallel processing apparatus of claim 1, further comprising a bit counter that counts the number of bits of the data. 제1항 또는 제2항에 있어서, 상기 절환신호발생수단은 상기 데이타의 비트스트림으로부터 각 블록들을 구분하는 코드를 검출하는 제2코드검출기와, 검출된 블록구분코드를 사전 설정된 수만큼 카운트할 때 리셋트됨과 동시에 상기 절환신호를 발생하는 EOB카운터를 구비한 것을 특징으로 하는 가변길이코드데이타의 병렬처리장치.3. The switching signal generating means according to claim 1 or 2, wherein said switching signal generating means includes a second code detector for detecting a code for distinguishing each block from the bitstream of said data, and when counting a detected block classification code by a predetermined number; And an EOB counter which resets and generates the switching signal. 제2항에 있어서, 상기 비트카운터는 상기 절환신호에 응답하여 상기 메모리의 데이타저장번지가 스위칭될 때마다 리셋트됨을 특징으로 하는 가변길이코드데이타의 병렬처리장치.3. The parallel processing apparatus of claim 2, wherein the bit counter is reset every time the data storage address of the memory is switched in response to the switching signal. 다수의 슬라이스로 구성되고 각 슬라이스는 각각이 다수의 블록들을 갖는 다수의 군으로 이루어진 비트스트림의 형태로 입력하는 가변길이코드데이타를 병렬처리하기 위한 방법에 있어서, 상기 데이타의 각 슬라이스마다 슬라이스시작코드를 기록하는 단계; 상기 슬라이스시작코드를 검출하는 단계; 상기 슬라이스시작코드를 검출함과 동시에 상기 데이타의 블록을 구분하는 코드를 검출하여 카운트하는 단계; 상기 카운트하는 동안 상기 가변길이코드데이타를 메모리의 지정된 번지에 순서적으로 저장하는 단계; 및 상기 블록구분코드를 사전 설정된 소정 갯수만큼 카운트할 때 상기 메모리의 번지를 변경하는 단계를 포함하는 가변길이코드데이타의 병렬처리방법.A method for parallel processing variable length code data which consists of a plurality of slices and each slice is input in the form of a bitstream consisting of a plurality of groups each having a plurality of blocks, the slice start code for each slice of the data Recording; Detecting the slice start code; Detecting and counting a code for dividing the block of data while detecting the slice start code; Sequentially storing the variable length code data at a designated address of a memory during the counting; And changing the address of the memory when the block classification code is counted by a predetermined number. 제5항에 있어서, 상기 데이타의 비트수를 누적하여 카운트하는 단계를 더 포함하는 가변길이코드데이타의 병렬처리방법.6. The parallel processing method of claim 5, further comprising accumulating and counting the number of bits of the data. 제6항에 있어서, 상기 블록구분코드를 사전 설정된 갯수만큼 카운트할 때 상기 카운트된 비트수를 출력하는 단계를 더 포함하는 가변길이코드데이타의 병렬처리방법.7. The parallel processing method of claim 6, further comprising the step of outputting the counted number of bits when the block classification code is counted by a predetermined number. 제7항에 있어서, 상기 카운트된 비트수를 출력함과 동시에 비트수를 초기화하는 단계를 포함하는 가변길이코드데이타의 병렬처리방법.8. The parallel processing method of claim 7, comprising outputting the counted bits and initializing the number of bits.
KR1019920017917A 1992-09-30 1992-09-30 Method and apparatus for parallel processing of variable length KR0152019B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920017917A KR0152019B1 (en) 1992-09-30 1992-09-30 Method and apparatus for parallel processing of variable length

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920017917A KR0152019B1 (en) 1992-09-30 1992-09-30 Method and apparatus for parallel processing of variable length

Publications (2)

Publication Number Publication Date
KR940008490A KR940008490A (en) 1994-04-29
KR0152019B1 true KR0152019B1 (en) 1998-10-15

Family

ID=19340388

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920017917A KR0152019B1 (en) 1992-09-30 1992-09-30 Method and apparatus for parallel processing of variable length

Country Status (1)

Country Link
KR (1) KR0152019B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9020286B2 (en) 2010-07-27 2015-04-28 Samsung Electronics Co., Ltd. Apparatus for dividing image data and encoding and decoding image data in parallel, and operating method of the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9020286B2 (en) 2010-07-27 2015-04-28 Samsung Electronics Co., Ltd. Apparatus for dividing image data and encoding and decoding image data in parallel, and operating method of the same

Also Published As

Publication number Publication date
KR940008490A (en) 1994-04-29

Similar Documents

Publication Publication Date Title
KR0160610B1 (en) Method and device for variable length image compression and decompression
US5504823A (en) Image data partitioning circuit for parallel image decoding system
KR100289559B1 (en) Arrangement of compressed video data for transmission over noisy communication channels
KR100530681B1 (en) How to send and receive coded video images
USRE41569E1 (en) Method of processing variable size blocks of data by storing numbers representing size of data blocks in a fifo
JP3419042B2 (en) Error masking method in transmission system
EP2395757A1 (en) Image decoding device
EP0663133A1 (en) Parallel encoding/decoding of dct compression/decompression algorithms
US5568278A (en) Image data coding and decoding method and apparatus with a plurality of DCT's, quantizers, and VLC's
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
JP2718908B2 (en) Variable length decoder for bit-stuffed data
CN110896483B (en) Method for compressing and decompressing image data
EP0925555B1 (en) Dual-speed variable length decoder and decoding architecture for mpeg-2 video data
KR20050074812A (en) Decoding method for detecting transmission error position and recovering correctly decoded data and appratus therefor
US6353685B1 (en) Method and apparatus for image compression
KR20050079418A (en) Decoding method and decoding apparatus for preventing of error propagation and parallel processing
KR100335441B1 (en) Multiplexing video decoding apparatus and method
KR0152019B1 (en) Method and apparatus for parallel processing of variable length
CN1193443A (en) Apparatus for decoding video data
JP2871139B2 (en) Image data encoding device and decoding device
JP3193288B2 (en) Variable length code data transmission device
KR0171443B1 (en) Apparatus and method of variable length code decoding of digital video cassette recorder
KR0165447B1 (en) Circuit for redistributing an encoded data in the apparatus for encoding video
JP3546439B2 (en) Digital image signal encoding apparatus and encoding method
KR100195715B1 (en) A variable length decoder

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080529

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee