KR0171443B1 - Apparatus and method of variable length code decoding of digital video cassette recorder - Google Patents

Apparatus and method of variable length code decoding of digital video cassette recorder Download PDF

Info

Publication number
KR0171443B1
KR0171443B1 KR1019940031737A KR19940031737A KR0171443B1 KR 0171443 B1 KR0171443 B1 KR 0171443B1 KR 1019940031737 A KR1019940031737 A KR 1019940031737A KR 19940031737 A KR19940031737 A KR 19940031737A KR 0171443 B1 KR0171443 B1 KR 0171443B1
Authority
KR
South Korea
Prior art keywords
data
length
segment
variable length
memory
Prior art date
Application number
KR1019940031737A
Other languages
Korean (ko)
Other versions
KR960019243A (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 KR1019940031737A priority Critical patent/KR0171443B1/en
Publication of KR960019243A publication Critical patent/KR960019243A/en
Application granted granted Critical
Publication of KR0171443B1 publication Critical patent/KR0171443B1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10268Improvement or modification of read or write signals bit detection or demodulation methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10037A/D conversion, D/A conversion, sampling, slicing and digital quantisation or adjusting parameters thereof
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/008Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
    • G11B5/00813Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

디지털 비디오 카세트 레코더의 가변장 복호화 장치에 관한 것으로, 특히 가변장 부호를 복수의 비트로 병렬처리하여 데이터 경로를 단일화하여 복호화하는 기술이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a variable length decoding apparatus of a digital video cassette recorder, and more particularly, to a technique of unifying and decoding a data path by parallel processing a variable length code into a plurality of bits.

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

복호화 장치에서 영상신호를 비트 단위 처리를 한다면 처리 속도가 재생 데이터의 입력 속도를 따르지 못하여 동일한 기능을 수행하는 복수의 복호화기를 만들어 병렬로 처리한 후 다시 직렬형태 데이터로 배열하여야 하므로 시스템이 복잡해지고, 또한 시스템의 부피가 커지는 문제를 해결한다.If the decoding apparatus processes the video signal bit by bit, the system becomes complicated because the processing speed does not follow the input speed of the reproduction data, and a plurality of decoders having the same function must be made and processed in parallel, and then arranged in serial data again. It also solves the problem of bulky system.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

가변장부호화된 데이터를 세그먼트단위로 조합하여 저장하고, 상기 세그먼트단위의 데이터를 읽어들인 후, 코드 길이를 검출하여 데이터가 시프트비트수를 결정하여 시프트처리 하며, 상기 쉬프트 처리된 데이터가 출력될때마다 유효 데이터 값을 출력되는 코드에 해당하는 길이만큼 감산하고, 상기 유효 데이터를 검사하여 설정값보다 작아질 시 상기 세그먼트단위로 조합된 데이터를 읽어들여 시프트시키며, 상기 시프트된 데이터를 코드워드 길이에 따라 윈도우를 씌워 입력된 코드워드를 가변장 테이블과 비교하여 run,amp 데이터를 생성한다.After storing variable-length coded data in a unit of segment, storing the data in the segment unit, detecting the code length, determining the number of shift bits, and shifting the data, and outputting the shifted data. The valid data value is subtracted by the length corresponding to the output code, and the valid data is inspected to read and shift the combined data in the segment unit when the valid data is smaller than the set value, and shift the shifted data according to the codeword length. The codeword inputted by the window is compared with the variable length table to generate run and amp data.

4. 발명의 중요한 용도4. Important uses of the invention

디지털 비디오 카세트 레코더의 복호화 장치에 사용한다.Used for decoding device of digital video cassette recorder.

Description

디지털 비디오 카세트 레코더의 가변장 복호화 장치 및 방법Variable length decoding apparatus and method of digital video cassette recorder

제1도는 일반적인 가변장 복호화 장치의 블럭 구성도.1 is a block diagram of a general variable length decoding apparatus.

제2도는 본 발명에 따른 가변장 복호화 장치의 블럭 구성도.2 is a block diagram of a variable length decoding apparatus according to the present invention.

제3도는 본 발명에 따른 메모리맵 구성도.3 is a memory map configuration diagram according to the present invention.

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

101 : 세그먼트 조합부 102 : 프레임 메모리101: segment combination unit 102: frame memory

104 : 세그먼트 메모리 106 : 데이터 제어부104: segment memory 106: data control unit

108 : MR 및 VR 잔류 데이터 메모리 110 : 데이터 시프트108: MR and VR residual data memory 110: data shift

112 : Run 및 Amp 데이터 생성부 114 : 가변장 복호화기112: run and amp data generator 114: variable length decoder

본 발명은 디지털 비디오 카세트 레코더의 가변장 복호화 장치에 관한 것으로, 특히 가변장 부호를 복수의 비트로 병렬처리하여 데이터 경로를 단일화하여 복호화하는 가변장 복호화장치 및 방법에 관한 것이다.The present invention relates to a variable length decoding apparatus of a digital video cassette recorder, and more particularly, to a variable length decoding apparatus and method for unifying and decoding a data path by parallel processing a variable length code into a plurality of bits.

일반적으로 비디오 카세트 레코더(VCR)는 영상 데이터를 기록 및 저장하기 위해서는 부호화 및 복호화를 수행한다.In general, a video cassette recorder (VCR) performs encoding and decoding to record and store image data.

제1도는 일반적인 복호화 장치의 블럭 구성도로서, 영상신호를 입력하는 에러 검출 및 정정부(10)에서는 에러를 검출한 후 이 에러를 정정하여 출력한다.FIG. 1 is a block diagram of a general decoding apparatus. The error detection and correction unit 10 for inputting a video signal detects an error and then corrects and outputs the error.

상기 에러를 검출 및 정정부(10)로부터 에러정정된 데이터는 도시하지 않는 제어부에 의해 프레임 메모리(12)에 저장된다. 이때 세그먼트 조합부(14)에서는 상기 프레임 메모리(12)로부터 독출된 데이터를 압축시 데이터량을 고정시키는 단위인 세그먼트로 조합하여 출력한다. 상기 세그먼트 조합부(14)로부터 조합된 데이터는 도시하지 않는 제어부에 의해 세그먼트 메모리(16)로 저장된다. 상기 세그먼트 메모리(16)로부터 독출된 데이터는 가변장 복호화기(18)를 통해 원래의 양자화 계수로 변환된다. 여기서 하나의 세그먼트는 이보다 작은 복수개의 마크로 블럭으로 이루어진다. 하나의 마크로블럭은 8×8 화소로 이루어지는 4개의 휘도 신호 블럭과 2개의 색차신호 블럭으로 구성된다. 상기 가변장 부호화 과정을 거친 후의 데이터 량은 각 세그먼트 단위로 고정되어, 부호화 후의 데이터량이 할당된 양보다 적을 때는 더미 데이터가 부가되고 데이터량이 할당된 비트수를 초과할 때는 초과분의 데이터는 버린다. 일반적인 화상에서 인접한 부분을 추출하여 세그먼트를 구성하면 각 세그먼트의 정보량 차이가 커서 화질의 불균형 현상이 심해지고 결과적으로 화질이 떨어진다. 이를 방지하기 위해 세그먼트는 화상의 여러 부분에서 랜덤한 형태에 가깝도록 추출하여 구성한다.The error corrected data from the error detection and correction unit 10 is stored in the frame memory 12 by a controller (not shown). At this time, the segment combination unit 14 combines and outputs the data read from the frame memory 12 into segments, which are units for fixing the data amount during compression. The data combined from the segment combination unit 14 is stored in the segment memory 16 by a controller (not shown). The data read out from the segment memory 16 is converted into original quantization coefficients through the variable length decoder 18. Here, one segment is composed of a plurality of macro blocks smaller than this. One macro block is composed of four luminance signal blocks consisting of 8x8 pixels and two color difference signal blocks. The amount of data after the variable length encoding process is fixed in units of segments. When the amount of data after encoding is smaller than the allocated amount, dummy data is added, and when the amount of data exceeds the allocated number of bits, excess data is discarded. When segments are formed by extracting adjacent portions from a general image, the difference in the amount of information of each segment is large, resulting in an unbalanced image quality and consequently deteriorating image quality. In order to prevent this, the segments are extracted and configured to be close to a random form in various parts of the image.

그리고 DCT를 지난 데이터는 각 블럭의 DC 와 AC성분 계수들이다. 이중 가변장 부호화 AC 계수를 대상으로 한다. 먼저 AC 계수의 run과 amp를 구한다. run은 계수값 0이 연속되는 개수이고, amp는 연속된 0후 최초의 0이 아닌 계수값을 말한다. run과 amp가 구해지면 정해진 테이블에 따라 이를 부호화한다. 부호화된 데이터는 사인(sign) 비트를 포함하여 3∼16비트의 길이가 된다.The data past DCT are the DC and AC component coefficients of each block. Double variable-length coded AC coefficients are used. First find the run and amp of AC coefficients. run is the number of consecutive zeros, and amp is the first nonzero number of consecutive zeros. Once run and amp are found, they are coded according to the specified table. The coded data is 3 to 16 bits long, including sign bits.

휘도신호 블럭과 색차신호 블럭은 각각 부호화후의 데이터량이 정해져 있다. 하나의 블럭에서 부호화후의 데이터량이 이 크기를 넘을 경우 초과된 데이터는 각 마크로블럭마다 존재하는MR 메모리에 저장된다. 결과적으로 동일한 마크로블럭에서 메모리에 비트 단위로 저장된다. 하나의 마크로블럭을 처리한 다음 MR메모리의 데이터를 순차적으로 남는 영역에 채워 넣는다. 이와 같이 하여도 저장되지 않고 남은 데이터는 VR메모리에 저장된다. 한 세그먼트를 이루는 마크로블럭에 대하여 위의 과정을 수행한 다음 저장되지 못한 VR 메모리의 데이터를 여유가 남는 마크로블럭의 빈자리에 채워 넣고, 이렇게 해도 저장되지 못하는 데이터는 버린다. 저장되지 못하는 데이터는 각 블럭에서 고주파 성분에 해당하므로, 화상에 미치는 영향은 상대적으로 적다. 기록할 때는 하나의 마크로블럭에 해당하는 유니트를 단위로 에러정정 내부호를 부가하여 기록한다. 테이프에 기록되는 순서는 에러의 영향을 줄이기 위하여 부호화 과정의 세그먼트 순서화 다르게 기록된다. 따라서 재생측에서는 흩어져 있는 동일한 세그먼트의 데이터를 모으는 작업을 먼저 해 주어야 한다. 원래의 세그먼트 모아진 데이터들은 먼저 유니트별로 복호화에 들어간다. 하나의 유니트는 6개의 블럭으로 되어있고, 각 블럭에 대하여 가변장 복호화기(18)에서 가변장 복호화를 한다. 세그먼트 메모리(16)에서 읽는 데이터를 가변장 복호화하기 위해서는 각 코드의 길이를 구해야 한다. 앞에서 설명한 바와 같이 각 코드는 3∼16 비트의 길이를 가지므로 우선 각 코드의 길이를 구하여 그 길이만큼만 복호화하고 다시 다음 코드를 복호화하여야 한다. 한 블럭분의 데이터내에서 하나의 블럭이 모두 복호화된 경우에는 그 다음부터 블럭의 마지막 데이터까지의 남은 데이터는 MR또는 VR 메모리로부터의 데이터이다. 한 블럭분의 데이터로 하나의 블럭이 완전히 복호화되지 않은 경우는 MR또는 VR 데이터가 필요한 것이다. 가변장 복호화기(18)에서는 가변장 부호로부터 일차적으로 run,amp를 구하고 그다음 이 값을 이용하여 원래의 계수로 바꾼다.The amount of data after encoding is determined for each of the luminance signal block and the color difference signal block. If the amount of data after encoding in one block exceeds this size, the excess data is stored in the MR memory existing for each macro block. As a result, the same macroblock is stored in bits in memory. After processing one macro block, the data in the MR memory is sequentially filled in the remaining areas. Even in this way, the data remaining without being stored is stored in the VR memory. After the above process is performed on the macroblock forming one segment, the unsaved VR memory data is filled in the empty space of the remaining macroblock, and the data that cannot be stored are discarded. Since data that cannot be stored corresponds to high frequency components in each block, the effect on the image is relatively small. When recording, the error correction internal code is added in units of units corresponding to one macroblock. The order in which the tapes are recorded is recorded differently in the segment ordering of the encoding process in order to reduce the effects of errors. Therefore, the playback side must first collect the data of the same segment that is scattered. The original segmented data is first decoded in units. One unit is composed of six blocks, and the variable length decoder 18 performs variable length decoding on each block. In order to variably decode the data read from the segment memory 16, the length of each code must be obtained. As described above, since each code has a length of 3 to 16 bits, first, the length of each code is obtained, and only the length thereof is decoded and the next code is decoded again. When all one block is decoded in one block of data, the remaining data from the next to the last data of the block are data from the MR or VR memory. If one block is not completely decoded with one block of data, MR or VR data is required. The variable length decoder 18 first obtains run and amp from the variable length code, and then uses this value to convert the original coefficients into original coefficients.

하나의 마크로블럭에서 MR데이터가 발생하면 완전하게 복호화되지 않은 블럭의 남은 부분을 MR데이터를 이용하여 복호화하고, MR메모리의 데이터중 복호화후에 남는 데이터는 VR 메모리에 저장한다. 모든 마크로블럭에 대해 복호화 과정을 수행한 후 완전히 복호화되지 않은 블럭들의 남은 부분을 VR메모리에 저장된 데이터를 이용하여 복호화한다.When MR data is generated in one macroblock, the remaining portion of the block that is not completely decoded is decoded using the MR data, and the data remaining after decoding among the data in the MR memory is stored in the VR memory. After the decoding process is performed on all the macroblocks, the remaining portions of the blocks that are not completely decoded are decoded using the data stored in the VR memory.

이렇게 상기 가변장 복호화기(18)로부터 원래의 양자화 계수로 변환된 데이터는 양자화 복호화기(20)에서 양자화하여 데이터 비트수를 변환함으로 복호화 한다. 상기 양자화 복호화기(20)로부터 양자화 복호화된 데이터는 역 DCT변환기(22)에서 역 DCT변환을 수행하여 출력한다.The data transformed from the variable length decoder 18 into original quantization coefficients is quantized by the quantization decoder 20 and decoded by converting the number of data bits. The data quantized and decoded by the quantization decoder 20 is output by performing an inverse DCT transform on the inverse DCT converter 22.

상기와 같은 종래의 복호화 장치는 MR/VR메모리에 기록되는 데이터는 길이가 일정하지 않은 비트 단위의 데이터로서 순차적으로 읽어 내야 하는데, 이를 위해서는 비트 단위로 저장하는 FIFO 형식의 메모리가 필요하며, 원칙적인 비트 단위처리를 한다면 처리 속도가 재생 데이터의 입력 속도를 따르지 못하여 동일한 기능을 수행하는 복수의 복호화기를 만들어 병렬로 처리한 후 다시 직렬형태 데이터로 배열하여야 하므로 시스템이 복잡해지고, 또한 시스템의 부피가 커지는 문제점이 있었다.In the conventional decoding apparatus as described above, the data recorded in the MR / VR memory should be sequentially read as data in bit units having a non-uniform length, and for this purpose, a FIFO type memory storing in bit units is required. In the case of bit unit processing, the processing speed does not follow the input speed of the reproduction data. Therefore, it is necessary to make a plurality of decoders that perform the same function, process them in parallel, and arrange them in serial data again. There was a problem.

따라서 본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 가변장 복호화장치 및 방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a variable length decoding apparatus and method for solving the above problems.

본 발명의 다른 목적은 디지털 비디오 카세트 레코더에서 비트단위의 처리에 바이트 또는 워드처리 개념을 도입하여 복호화 처리 데이터를 단일 경로화함으로 시스템을 간소화하는 동시에 부피를 줄일 수 있는 가변장 복호화 장치 및 방법을 제공함에 있다.It is another object of the present invention to provide a variable length decoding apparatus and method which can simplify the system and reduce the volume by introducing a concept of byte or word processing into a bit unit processing in a digital video cassette recorder, thereby simplifying the system by single path. Is in.

본 발명의 또 다른 목적은 디지털 비디오 카세트 레코더에서 가변 길이의 부호를 run,amp데이터로 바꾸어 세그먼트 단위로 복호화를 수행하는 가변장 복호화 장치 및 방법을 제공함에 있다.It is still another object of the present invention to provide a variable length decoding apparatus and method for performing decoding on a segment basis by changing codes of variable length into run and amp data in a digital video cassette recorder.

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

제2도는 본 발명에 따른 가변장 복호화장치의 블럭 구성이고,2 is a block diagram of a variable length decoding apparatus according to the present invention,

제3도는 본 발명에 따른 메모리 맵 구성도이다.3 is a memory map configuration diagram according to the present invention.

상술한 제2-제3도를 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.One preferred embodiment of the present invention will be described in detail with reference to FIGS.

세그먼트 조합부(301)는 프레임 메모리(102)에 연결되며, 도시하지 않은 인코더에서 가변장 부호화를 위해 화면상에서 인접하지 않은 마크로블럭을 세그먼트로 만들 때와 같은 규칙으로 프레임 메모리(102)에서 불연속적으로 저장되어 있는 데이터들을 세그먼트 단위로 조합하여 세그먼트 메모리(302)에 저장한다. 이때 데이터 제어부(106)는 세그먼트 메모리에서 데이터를 읽어서 데이터 시프트부(110)에 저장한다. 데이터 시프트부(110)는 일반적인 직렬 형태의 시프트나 FIFO 메모리가 아니고, 임의의 길이로 시프트 할 수 있는 배럴 시프트의 기능에 병렬 로드가 가능하게 구성한다. 데이터 제어부(106)는 코드의 길이를 검출하여 데이터가 몇 비트 시프트되어야 하는가를 결정하고, 그 값에 따라 시프트를 제어한다. 가변장 부호화 규칙에서 하나의 부호길이는 사인 비트를 포함하여 최대 16비트이다. 데이터 제어부(106)는 데이터 시프트부(110)에 저장되어 있는 유효 비트 값을 갖고 있다가, 시프트가 이루어져서 데이터가 출력될때마다 출력되는 코드에 해당하는 길이 만큼을 그 값에서 뺀다. 그 값이 16보다 작게 되면 데이터 시프트(110)에 저장되어 있는 데이터들이 하나의 완전한 하나의 코드를 이루지 못하는 경우가 생기게 되고, 결과적으로 정확한 복호화를 할 수 없다. 데이터 제어부(106)는 데이터시프트(110) 내의 유효 데이터 비트가 16비트보다 작아지면 세그먼트 메모리(104)에 저장된 데이터를 읽고, 이 데이터로 데이터 시프트(110)에 데이터를 채운다. 이 데이터를 채울 때에는 채워지는 비트수 만큼을 더한다.The segment combination unit 301 is connected to the frame memory 102, and is discontinuous in the frame memory 102 with the same rules as when segmenting non-contiguous macroblocks on the screen for variable length coding in an encoder (not shown). The data stored in the segment are combined and stored in the segment memory 302. In this case, the data controller 106 reads data from the segment memory and stores the data in the data shift unit 110. The data shift unit 110 is not a general serial shift or a FIFO memory, but is configured to allow parallel load in the function of a barrel shift that can be shifted by an arbitrary length. The data control unit 106 detects the length of the code to determine how many bits of data should be shifted, and controls the shift according to the value. In the variable-length coding rule, one code length is a maximum of 16 bits including a sine bit. The data control unit 106 has a valid bit value stored in the data shifting unit 110, and subtracts the value corresponding to the code that is output every time the data is output by shifting. If the value is smaller than 16, data stored in the data shift 110 may not form a single complete code, and as a result, accurate decoding cannot be performed. The data control unit 106 reads the data stored in the segment memory 104 when the valid data bit in the data shift 110 is smaller than 16 bits, and fills the data shift 110 with the data. When filling this data, add as many bits as filled.

데이터 시프트(110)에서 출력되는 데이터는 run,amp 데이터 생성부(112)로 보내진다. 데이터 시프트(110)로 입력되는 데이터는 하나의 코드 워드와, 그 코드 워드의 길이이다. run,amp 데이터 생성부(112)는 코드 워드의 길이에 따라 별도의 윈도우를 써서 입력된 코드 워드를 가변장 부호 테이블과 비교하여 해당하는 run,amp데이터를 얻고 이를 가변장 복호화기(114)로 보낸다. 그리고 데이터 제어부(106)에서 코드 길이를 검출하는 방법은 다음과 같다. 부호화된 데이터는 코드 워드의 길이에 관계없이 데이터 시프트(106)에 저장된 데이터의 최초 8비트(출력단에 가까운 쪽)의 값을 비교하여 하기 표 1과 같이 구할 수 있다. 여기에서는 코드 워드의 길이뿐만 아니라 하나의 블럭에 해당하는 코드의 끝을 나타내는 블럭종료( EOB End Of Block) 패턴도 검출할 수 있다.The data output from the data shift 110 is sent to the run and amp data generator 112. Data input to the data shift 110 is one code word and the length of the code word. The run and amp data generator 112 compares the input code word with a variable length code table by using a separate window according to the length of the code word, and obtains the corresponding run and amp data to the variable length decoder 114. send. The method of detecting the code length in the data control unit 106 is as follows. The coded data can be obtained by comparing the values of the first 8 bits (near the output terminals) of the data stored in the data shift 106, regardless of the length of the code word, as shown in Table 1 below. Here, not only the length of the code word but also the EOB End Of Block pattern indicating the end of the code corresponding to one block can be detected.

하나의 블럭에 해당하는 비트들을 모두 처리하기 전에 블럭 종료 패턴이 검출되었다면 그 블럭의 데이터중 아직 처리되지 않은 나머지의 데이터(데이터 시프트부에 남아 있는 데이터와 그 블럭에 해당하는 데이터중 아직 세그먼트 메모리(104)에서 읽어내지 않은 데이터)는 MR 또는 VR 데이터이므로 이 데이터들을 MR VR 잔류데이터 메모리에 저장한다. MR,VR 잔류 데이터 메모리(108)는 원칙적으로 데이터를 직렬의 비트스트림 형태로 저장하여야 한다. 그러나 이럴 경우, 단일 처리 경로로는 입력되는 데이터 속도를 따르지 못하여 동일한 기능 블럭을 병렬로 구성하여야만 한다. 본 발명에서는 MR 및 VR 잔류 데이터 메모리를 일반적인 8비트 또는 16비트의 메모리를 사용하여 비트 단위가 아니라 바이트 또는 그 이상의 단위로 데이터를 처리한다. 또, 블럭의 끝부분 데이터중에는 하나의 코드로 완결되지 않고 MR 또는 VR 데이터가 있어야 복호화될 수 있는 데이터가 발생한다. 이러한 잔류 데이터는 최대 15 비트로서 하나의 블럭에서 나하가 존재하거나 그렇지 않으면 존재하지 않는다. 이 잔류 데이터를 저장하기 위한 메모리도 별도로 필요하다.If a block termination pattern is detected before processing all the bits corresponding to one block, the remaining data that has not yet been processed among the data of the block (the data remaining in the data shift portion and the segment memory among the data corresponding to the block) The data not read in 104) is MR or VR data, and the data are stored in the MR VR residual data memory. The MR, VR residual data memory 108 should in principle store data in the form of a serial bitstream. In this case, however, a single processing path cannot follow the incoming data rate and the same functional blocks must be configured in parallel. In the present invention, the MR and VR residual data memory is processed using a general 8-bit or 16-bit memory, and the data is processed in units of bytes or more rather than units of bits. In addition, the data at the end of the block does not have a single code but can be decoded only when there is MR or VR data. This residual data is a maximum of 15 bits, with Naha present or not present in one block. A memory for storing this residual data is also required separately.

MR,VR 및 잔류 데이터 메모리(108)는 제3(a)도와 같이 실제 데이터가 기록되는 데이터와 기록된 데이터중 실제로 유효한 데이터가 몇 비트인가를 저장하는 제3(b)도와 같은 싸이즈 메모리로 구성된다. 하나의 세그먼트는 n 개의 블럭으로(n은 6의 배수) 이루어지며, 한 블럭에서 발생할 수 있는 MR데이터는 64바이트를 넘지 않는다. 이 점에 착안하여 하나의 블럭에 64×8비트, 또는 32×16비트의 메모리를 할당하였다. 즉, MR 데이터를 발생하는 순서대로 저장하지 않고 그 블럭에 해당하는 세그먼트 메모리(104)에 저장한다.The MR, VR and residual data memory 108 is composed of a size memory as shown in FIG. 3 (a) and a size memory as shown in FIG. 3 (b) which stores how many bits of data are actually valid among the recorded data and the recorded data. do. One segment is composed of n blocks (n is a multiple of 6), and MR data that can occur in one block does not exceed 64 bytes. With this in mind, 64 × 8 bits or 32 × 16 bits of memory are allocated to one block. That is, the MR data is stored in the segment memory 104 corresponding to the block without storing the MR data in the order of occurrence.

이렇게 하나의 블럭을 처리하다가 블럭종료 패턴이 검출되면 그때 데이터 시프트(110)에서 출력되지 않고 남아 있는 데이터를 8비트 또는 그 배수로 끊어서 그 블럭에 해당하는 세그먼트의 첫 번째 주소에 저장하면서 동시에 그 중에서 유효한 데이터 비트의 수를 동일한 번지의 싸이즈 메모리에 기록한다. 싸이즈 메모리는 4 비트 또는 5비트만 사용하게되므로 3∼4 비트가 남는다. 이 중 1 비트를 그 블럭의 마지막 MR 데이터인지 아니면 더 이상의 MR 데이터가 있는지를 나타내는 플래그로 사용한다. 데이터 시프트(110)의 데이터를 MR메모리에 저장한 다음 세그먼트 메모리(104)에서 그 블럭에 해당하지만 아직 읽어내지 않은 데이터를 읽어서 제3(a)도와 같은 MR 메모리에 저장한다. 하나의 블럭 처리가 종료되면 다음 블럭에 대하여 처리 과정을 수행한다.When a block termination pattern is detected while processing a block like this, data remaining without being output from the data shift 110 is then broken into 8 bits or a multiple thereof and stored at the first address of a segment corresponding to the block, and valid among them. The number of data bits is written to the size memory of the same address. The size memory uses only 4 or 5 bits, so 3 to 4 bits remain. One bit is used as a flag indicating whether the last MR data of the block is present or if there are no more MR data. The data of the data shift 110 is stored in the MR memory, and then the data corresponding to the block but not yet read in the segment memory 104 are read and stored in the MR memory as shown in FIG. When one block is finished, the next block is processed.

하나의 비트로 블럭을 구성하는 6개의 블럭 처리가 끝나면 그 마크로 블럭의 첫 번째 블럭에 할당된 번지에서 잔류 데이터의 싸이즈와 데이터를 읽으며, 유효한 데이터 만을 데이터 시프트(110)에 저장한다. 또, 첫 번째 블럭에 할당된 제3(a)도와 같은 MR 메모리에 저장되어 있는 플래그와 제3(b)도와 같은 싸이즈메모리에 저장된 싸이즈 데이터를 이용하여 유효한 데이터 비트만을 다시 데이터 시프트(110)로 보내어 잔류 데이터와 함께 이들을 처리한다. MR 처리 과정에서 블럭의 종료 패턴이 검출되면 다음 블럭의 잔류 데이터와 MR데이터를 조합하여 다음 블럭의 처리를 계속한다. MR처리과정에서도 처리가 되지 않고 추가의 데이터를 필요로 하는 블럭이 발생할 수 있으며, 이 데이터는 VR 처리 과정을 거쳐야 한다. MR 처리 과정에서 한 마크로블럭에 포함된 모든 블럭에 대하여 처리가 완료된 후, 즉 모든 블럭에서 블럭 종료 패턴이 검출된 후에도 남는 MR 데이터는 다른 마크로 블럭의 복호화에 필요한 VR데이타로서 이들을 저장하는 방법은 다음과 같다. 데이터 시프트(110)에 남아 있는 MR데이터가 16비트이하인 경우에는 잔류 데이터를 저장했던 곳에 남은 MR 데이터를 저장하고, 16비트를 넘는 경우에는 앞부분 16비트는 잔류데이터 메모리에, 나머지는 그 블럭의 첫 번째 MR 데이터 번지에 저장한다. 아직 MR 메모리에서 읽어 내지 않은 데이터에 대해서는 해당 블럭의 마지막 MR 메모리에 읽혀지지 않은 MR 데이터 중 첫 번째의 번지를 기록한다. 모든 마크로블럭에 대한 MR 데이터처리를 한 후 남은 잔류 데이터와 VR 데이터는 잔류 데이터 메모리와 기존의 MR 메모리에 저장되어 있으며, 이들을 처리하기 위해서는 각 블럭의 마지막 MR 메모리에서 처음 읽어야 할 MR 메모리의 주소를 읽어서 그 주소로부터 VR 처리 과정을 수행한다.After the processing of six blocks constituting a block with one bit is completed, the size and data of the residual data are read at the address allocated to the first block of the macro block, and only valid data is stored in the data shift 110. In addition, only the valid data bits are converted back into the data shift 110 by using the flags stored in the MR memory allocated to the first block and the size data stored in the sized memory such as the third (b). Send them and process them with the residual data. When the end pattern of the block is detected in the MR process, the next block is continued by combining the MR data with the residual data of the next block. In the MR process, a block requiring additional data may not be processed, and this data must go through a VR process. In the MR processing, the MR data remaining after the processing is completed for all blocks included in one macroblock, that is, even after a block end pattern is detected in all blocks is stored as VR data for decoding other macroblocks. Same as If the MR data remaining in the data shift 110 is 16 bits or less, the remaining MR data is stored in the place where the residual data was stored. If the MR data is longer than 16 bits, the first 16 bits are stored in the residual data memory, and the rest are the first of the block. The first MR data address. For data that has not been read from the MR memory yet, the first address of the unread MR data in the last MR memory of the block is recorded. Residual data and VR data remaining after MR data processing for all macroblocks are stored in the residual data memory and the existing MR memory.In order to process them, the address of the MR memory to be read first from the last MR memory of each block is processed. Read and perform VR processing from that address.

상술한 바와 같이 본 발명은 가변장 부호화된 데이터를 run, amp 데이터로 변환시 비트스트림 형태가 아닌 바이트 아닌 바이트 또는 그 이상의 병렬 데이터로 처리하고, MR,VR 및 잔류 데이터의 처리도 바이트 또는 그 이상의 단위로 하여 시스템에 요구되는 처리 속도를 감소시켜 복수의 기능블럭으로 분산 처리하지 않고 하나의 단일 경로로 처리함으로써 시스템을 간소화 할 수 있고, 또한 시스템의 안정성을 높일 수 있는 이점이 있다.As described above, the present invention processes the variable length coded data into bytes or more parallel data rather than bytes in the form of a bit stream when converting the run-amp data into a byte stream, and processes MR, VR and residual data in bytes or more. By reducing the processing speed required for the system, it is possible to simplify the system and increase the stability of the system by processing in a single path instead of distributing the processing into multiple functional blocks.

Claims (3)

프레임 단위로 영상신호를 저장하는 프레임 메모리와, 세그먼트 단위로 영상신호를 저장하는 세그먼트 메모리를 구비한 디지털 비디오 카세트 레코더의 가변장 복호화 장치에 있어서, 상기 프레임 메모리 연결되며, 가변장 부호화를 위해 화면상에서 인접하지 않은 마크로블럭을 세그먼트로 만들때와 같은 규칙으로 상기 프레임 메모리에서 불연속적으로 저장되어 있는 데이터들을 세그먼트 단위로 조합하여 상기 세그먼트 메모리에 저장하는 세그먼트 조합부와, 상기 세그먼트 메모리에서 데이터를 읽어들여 코드의 길이를 검출하여 데이터가 몇 비트 시프트되어야 하는가를 결정하고, 그 값에 따라 시프트를 제어하는 데이터 제어부와, 상기 데이터 제어부의 제어에 의해 잔류데이터와 유효데이터를 저장하는 잔류 데이터 메모리와, 상기 데이터 제어부로부터 출력되는 신호를 임의의 길이로 시프트 할 수 있는 배럴 시프트의 기능에 병렬 로드가 가능하게 구성하는 데이터 시프트와, 상기 데이터 시프트로부터 시프트된 데이터의 코드 워드의 길이에 따라 별도의 윈도우를 씌워 입력된 코드 워드를 가변장 부호 테이블과 비교하여 해당하는 run,amp 데이터를 얻기 위한 run, amp 데이터 생성부로 구성함을 특징으로 하는 가변장 복호화장치.A variable length decoding apparatus of a digital video cassette recorder having a frame memory for storing a video signal in a frame unit and a segment memory for storing a video signal in a segment unit, the variable length decoding apparatus being connected to the frame memory and configured on the screen for variable length encoding. Segment combination unit for combining data stored in the frame memory discontinuously in the segment unit and storing them in the segment memory according to the same rules as when segmenting non-adjacent macroblocks into segments, and reading data from the segment memory. A data control unit for detecting the length of the code to determine how many bits the data should be shifted, and controlling the shift according to the value, a residual data memory for storing residual data and valid data under control of the data control unit, and Data The data shift constitutes a barrel shift function capable of shifting a signal output from a negative length to an arbitrary length, and a separate window is input according to the length of a code word of data shifted from the data shift. And a run and amp data generator for comparing the codeword with the variable length code table to obtain corresponding run and amp data. 디지털 비디오 카세트 레코더의 가변장 복호화 방법에 있어서, 가변장부호화된 데이터를 세그먼트 단위로 조합하여 저장하는 과정과, 상기 세그먼트단위의 데이터를 읽어들인 후, 코드 길이를 검출하여 데이터가 시프트비트 수를 결정하여 시프트처리 하는 과정과, 상기 쉬프트 처리된 데이터가 출력될때마다 유효 데이터 값을 출력되는 코드에 해당하는 길이만큼 감산하는 과정과, 상기 유효 데이터를 감사하여 설정값보다 작아질 시 상기 세그먼트단위로 조합된 데이터를 읽어들여 시프트시키는 과정과, 상기 시프트된 데이터를 코드워드 길이에 따라 윈도우를 씌워 입력된 코드워드를 가변장 테이블과 비교하여 run,amp 데이터를 생성하는 과정으로 이루어짐을 특징으로하는 가변장 복호화 방법.In a variable length decoding method of a digital video cassette recorder, a method of storing variable length coded data in a segment unit, storing the data in the segment unit, and detecting a code length to determine the number of shift bits. Performing a shift process, subtracting a valid data value by a length corresponding to an output code each time the shifted data is output, and combining the segment by the segment when the valid data is smaller than a set value. And a step of reading the shifted data and generating a run and amp data by comparing the inputted codeword with a variable length table by covering the shifted data with a window according to a codeword length. Decryption method. 제2항에 있어서, 상기 코드길이 검출은, 상기 부호화된 데이터를 코드워드 길이에 관계없이 상기 시프트된데이터 값과 비교하여 검출함을 특징으로 하는 가변장 복호화 방법.3. The variable length decoding method of claim 2, wherein the code length detection detects the coded data by comparing the coded data with the shifted data value regardless of a codeword length.
KR1019940031737A 1994-11-29 1994-11-29 Apparatus and method of variable length code decoding of digital video cassette recorder KR0171443B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940031737A KR0171443B1 (en) 1994-11-29 1994-11-29 Apparatus and method of variable length code decoding of digital video cassette recorder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940031737A KR0171443B1 (en) 1994-11-29 1994-11-29 Apparatus and method of variable length code decoding of digital video cassette recorder

Publications (2)

Publication Number Publication Date
KR960019243A KR960019243A (en) 1996-06-17
KR0171443B1 true KR0171443B1 (en) 1999-04-15

Family

ID=19399460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940031737A KR0171443B1 (en) 1994-11-29 1994-11-29 Apparatus and method of variable length code decoding of digital video cassette recorder

Country Status (1)

Country Link
KR (1) KR0171443B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000042558A (en) * 1998-12-26 2000-07-15 전주범 Device for deformatting dvcr

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100271446B1 (en) * 1997-12-12 2000-11-15 전주범 Variable length encoding and deformatting device of a dvcr

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000042558A (en) * 1998-12-26 2000-07-15 전주범 Device for deformatting dvcr

Also Published As

Publication number Publication date
KR960019243A (en) 1996-06-17

Similar Documents

Publication Publication Date Title
US6219457B1 (en) Method and system for decoding data encoded in a variable length code word
KR970005575B1 (en) Bitrate reduction method and circuitry
US5337087A (en) Video signal encoding apparatus
EP0665653B1 (en) Apparatus and method for decoding variable-length code
KR100538607B1 (en) Encoding method, encoder and recording medium, and decoding method, decoder and recording medium
US20020163965A1 (en) Video frame compression/decompression hardware 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
GB2321154A (en) Reverse playback of MPEG video
CN101502122B (en) Encoding device and encoding method
CN110896483A (en) Method for compressing and decompressing image data
JPH0746141A (en) Apparatus and method for data format conversion
JPH09162749A (en) Variable length code coder
US6353685B1 (en) Method and apparatus for image compression
JPH05115010A (en) Picture decoder
KR0171443B1 (en) Apparatus and method of variable length code decoding of digital video cassette recorder
JP2002112268A (en) Compressed image data decoding apparatus
JPH10271016A (en) Encoder/decoder
KR0145160B1 (en) Video signal recording apparatus and reproducing apparatus
US6594398B1 (en) Method and apparatus for run-length encoding video data
KR0183927B1 (en) Decoder
JPH0832821A (en) Image compression system and image reproduction system
US7423652B2 (en) Apparatus and method for digital video decoding
KR100219598B1 (en) Decoder
KR0165447B1 (en) Circuit for redistributing an encoded data in the apparatus for encoding video
JP3546439B2 (en) Digital image signal encoding apparatus and encoding method

Legal Events

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

Payment date: 20050929

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee