KR100209881B1 - Memory controller in high speed variable length decoder - Google Patents

Memory controller in high speed variable length decoder Download PDF

Info

Publication number
KR100209881B1
KR100209881B1 KR1019950038277A KR19950038277A KR100209881B1 KR 100209881 B1 KR100209881 B1 KR 100209881B1 KR 1019950038277 A KR1019950038277 A KR 1019950038277A KR 19950038277 A KR19950038277 A KR 19950038277A KR 100209881 B1 KR100209881 B1 KR 100209881B1
Authority
KR
South Korea
Prior art keywords
memory
data
variable length
signal
latches
Prior art date
Application number
KR1019950038277A
Other languages
Korean (ko)
Other versions
KR970025157A (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 KR1019950038277A priority Critical patent/KR100209881B1/en
Publication of KR970025157A publication Critical patent/KR970025157A/en
Application granted granted Critical
Publication of KR100209881B1 publication Critical patent/KR100209881B1/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 HD-TV시스템과 같은 고속시스템에 사용될 수 있는 고속 가변장 복호기에 관한 것이다. 본 발명의 고속 가변장 복호기에서는 버퍼를 통해 입력되는 가변장부호어들을 복호화할 때 버퍼를 듀얼포트메모리, 비동기 내지 동기형 FIFO메모리 등의 대용량메모리로 구현하고, 메모리에 저장된 가변장부호어들을 인터페이스부로부터 읽기신호가 인가될 때마다 바로 인터페이스부로 데이터를 공급하기 위해 메모리와 인터페이스부 사이에 메모리제어장치를 포함하도록 구성한다. 따라서, 메모리로부터 읽어내 데이터를 일단 메모리제어장치의 내부저장소인 다수의 래치에 순차 저장하고, 인터페이스부로부터 읽기신호가 인가되면 다수의 래치의 저장된 데이터들중 가장 먼저 저장된 새로운 유효한 데이터를 선택하여 출력하므로써 버퍼를 통한 입력을 복호화하는 데 고속화할 수 있고, 실제 고속시스템에 적용할 수 있도록 제안한다.The present invention relates to a fast variable length decoder that can be used in a high speed system such as an HD-TV system. In the fast variable length decoder of the present invention, when decoding the variable length codes inputted through the buffer, the buffer is implemented as a large-capacity memory such as a dual port memory, an asynchronous to synchronous FIFO memory, and the variable length codes stored in the memory from the interface unit. Each time a read signal is applied, a memory control device is included between the memory and the interface unit to supply data directly to the interface unit. Therefore, the data read from the memory are sequentially stored in a plurality of latches, which are internal storages of the memory control apparatus, and when a read signal is applied from the interface unit, the new valid data stored among the stored data of the plurality of latches is selected first and outputted. Therefore, it is possible to speed up the decoding of the input through the buffer and propose to apply it to the actual high speed system.

Description

고속 가변장 복호기의 메모리제어장치Memory control device of high speed variable length decoder

제1도는 종래 고속 가변장 복호기를 개략적으로 나타낸 블록도.1 is a block diagram schematically showing a conventional fast variable length decoder.

제2도는 FIFO메모리에 대한 동작타이밍도.2 is an operation timing diagram for a FIFO memory.

제3도는 본 발명의 메모리제어장치가 적용된 고속 가변장 복호기를 나타내는 블록도.3 is a block diagram showing a fast variable length decoder to which the memory controller of the present invention is applied.

제4도는 제3도 장치에서 조합논리부의 입·출력조합논리상태를 나타내는 테이블.4 is a table showing the input / output combined logic state of the combined logic unit in the FIG. 3 apparatus.

제5도는 본 발명에 따른 메모리제어장치의 동작상태를 나타내는 테이블.5 is a table showing an operating state of the memory control apparatus according to the present invention.

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

10 : FIFO메모리 20 : 메모리제어장치10: FIFO memory 20: Memory controller

21 : 상태판단수단 211 : 조합논리부21: status determination means 211: combination logic unit

212 : 인버터 213,214 : 래치212: inverter 213214: latch

22,23,24 : 래치 25 : 멀티플렉서22, 23, 24: latch 25: multiplexer

30 : 인터페이스부 40 : 디코더부30 interface unit 40 decoder unit

본 발명은 가변장부호어의 고속 복호화를 제공할 수 있는 고속 가변장복호기에 관한 것으로, 보다 상세하게는, 메모리(버퍼)를 통한 입력을 복호화하기 위한 가변장 복호기의 고속화에 맞도록 메모리(버퍼)를 제어하는 고속 가변장 복호기의 메모리제어장치에 관한 것이다.The present invention relates to a fast variable length decoder capable of providing fast decoding of a variable length code, and more particularly, to a memory (buffer) for speeding up a variable length decoder for decoding an input through a memory (buffer). A memory control apparatus of a high speed variable length decoder for controlling

최근들어, 개발경쟁이 한창 진행중인 고화질텔레비젼(HD-TV)시스템과 같은 고속시스템에서 사용할 수 있는 고속 가변장 복호기에 관련한 기술들이 제시되고 있다. 그중 일예로, 1993년 9월 14일자로 특허된 Ming Ting Sun의 미국특허번호 5,245,338인 “HIGH-SPEED VARIABLE-LENGTH DECODER”를 제1도에 간략하게 도시하였다. 여기서, 고속 가변장 복호기는 크게 버퍼부(1), 인터페이스부(2), 및 디코더부(3)로 구성되며, 세부적인 구성은 생략한다.Recently, technologies related to high-speed variable field decoders that can be used in high-speed systems such as high-definition television (HD-TV) systems in the development competition have been proposed. For example, US Patent No. 5,245,338, entitled "HIGH-SPEED VARIABLE-LENGTH DECODER", issued September 14, 1993, is briefly shown in FIG. Here, the fast variable length decoder is largely composed of the buffer unit 1, the interface unit 2, and the decoder unit 3, and the detailed configuration is omitted.

제1도에 도시된 종래 고속 가변장 복호기로 복호하기 위해 비트열형태의 가변장부호어들이 입력된다. 버퍼부(1)는 입력하는 가변장부호어들을 저장하며, 인터페이스부(2)로부터 읽기신호(READ)가 인가될 때마다 저장하고 있는 가변장부호어들을 입력순서대로 고정길이부호어에 대응하는 비트데이터를 고정심볼클럭율로 인터페이스부(2)로 출력한다. 인터페이스부(2)는 디코더부(3)로부터 복호화에 사용된 비트들의 수인 코드길이를 입력받아 누산하고, 버퍼부(1)로부터 입력되는 고정길이의 비트데이터와 이전 입력된 고정길이의 비트데이터들중에서 누산결과만큼 시프트된 윈도우내의 데이터를 출력한다. 디코더부(3)는 매 클럭 사이클마다 복호결과코드길이만큼 시프트된 코드열을 입력으로하여 바로 전에 복호된 코드의 최대유효비트(MSB)부터 최소유효비트(LSB)까지와 연속된 아직 복호되지 않은 비트들로서 전체가 2개의 코드길이만큼 저장된다. 저장된 내용은 바로 전에 복호된 코드길이만큼 시프트시킴으써 연속된 아직 복호되지 않은 비트들이 내부중간결과로 나타난다. 이 중간결과는 피드백되어 다음 클럭사이클에 저장된 내용의 상위코드길이 정보를 이루고, 내부의 코드테이블에서 비교되어 해당하는 코드가 있을 때에는 코드길이 정보 및 복호된 데이터를 출력한다.In order to decode the conventional fast variable length decoder shown in FIG. 1, variable length coders in the form of bit strings are input. The buffer unit 1 stores the variable length coders to be input, and the bit data corresponding to the fixed length codewords in the input order are stored in the variable length codes whenever the read signal READ is applied from the interface unit 2. Is output to the interface unit 2 at a fixed symbol clock rate. The interface unit 2 receives and accumulates the code length, which is the number of bits used for decoding, from the decoder unit 3, and accumulates the fixed-length bit data input from the buffer unit 1 and the previously input fixed-length bit data. The data in the window shifted by the accumulation result is output. The decoder unit 3 inputs a code string shifted by the decoding result code length every clock cycle, and is not yet decoded consecutively from the most significant bit MSB to the least significant bit LSB of the code immediately decoded. As bits, the whole is stored by two code lengths. The stored contents are shifted by the length of the code just decoded just before, resulting in consecutive intermediate undecoded bits as internal intermediate results. This intermediate result is fed back to form the upper code length information of the contents stored in the next clock cycle, and is compared in an internal code table to output the code length information and the decoded data when there is a corresponding code.

여기서, 버퍼부(1)가 동기형 FIFO로 된 대용량메모리인 경우에는 제2도와 같은 타이밍으로 동작하게 된다. FIFO메모리에 제2(b)도와 같은 “로우(Low)”레벨에서 유효한 읽기인에이블신호(FIFO_READ_ENABLE)가 인가되고, 그때 제2(a)도와 같은 상승에지에서 동작하는 읽기클럭(FIFO_READ_CLOCK)이 인가되면 FIFO메모리에 저장되어 있는 가변장 복호화를 위한 고정된 길이의 부호어가 바로 출력되어 인터페이스부(2)로 입력되야 한다. 하지만, 제2(c)도와 같이 바로 출력되지 않고 다음 읽기클럭에 동기되어 출력되게 된다. 또한, 메모리특성에 따라 소정클럭뒤에 출력될 수도 있어 가변장 복호기의 고속화에 저해요인이 될 수 있다.Here, when the buffer unit 1 is a large-capacity memory made of a synchronous FIFO, the operation is performed at the same timing as that in FIG. A valid read enable signal (FIFO_READ_ENABLE) is applied to the FIFO memory at a "low" level as shown in FIG. If a fixed length codeword for variable length decoding stored in the FIFO memory is immediately output to the interface unit 2. However, as shown in FIG. 2 (c), the output signal is not output immediately but is synchronized with the next read clock. In addition, it may be output after a predetermined clock depending on memory characteristics, which may be a detrimental factor in speeding up the variable length decoder.

따라서, 본 발명의 목적은 개시된 선행기술에서의 버퍼부를 이루는 메모리에서의 데이터 출력과 가변장 복호화를 위한 동작이 독립적으로 이루어져 데이터요구신호에 바로 응답하여 데이터가 출력될 수 있도록 메모리를 제어하는 메모리제어장치를 마련하여 실제 고속 시스템에 적용할 수 있도록한 고속 가변장 복호기를 제공함에 있다.Accordingly, an object of the present invention is a memory control for controlling a memory so that data can be output in response to a data request signal by independently performing data output and variable length decoding in a memory forming a buffer unit in the prior art. The present invention provides a high speed variable length decoder that can be applied to an actual high speed system.

상술한 목적을 달성하기 위한, 고속 가변장 복호기는, 가변장부호화에 의한 비트 데이터를 저장하며, 메모리읽기신호가 인가될 때마다 선입선출방식으로 저장하고 있는 데이터들을 고정길이의 비트데이터로 출력하는 메모리수단과 상기 메모리수단으로 메모리읽기신호를 인가하고, 상기 메모리수단으로부터 인가되는 고정길이의 비트데이터를 저장하며, 읽기신호가 인가될 때마다 저장하고 있는 데이터들중 현재 출력되는 데이터의 다음 데이터로 바꾸어 출력하는 메모리제어수단, 및 상기 메모리제어수단으로 읽기신호를 인가하고, 상기 메모리제어수단으로부터 인가되는 데이터를 가변장 복호화하는 가변장 복호수단을 포함한다.In order to achieve the above object, a fast variable length decoder stores bit data by variable length encoding, and outputs data stored in a first-in first-out method as fixed-length bit data whenever a memory read signal is applied. A memory read signal is applied to the memory means and the memory means, and the fixed length bit data applied from the memory means is stored, and each time the read signal is applied, the next data of the currently output data is stored. And a variable length decoding means for applying a read signal to the memory control means, and variable length decoding the data applied from the memory control means.

이하, 첨부한 제3도 내지 제5도를 참조하여 본 발명을 구현한 일 실시예를 상세히 설명하면 다음과 같다.Hereinafter, an embodiment of the present invention will be described in detail with reference to FIGS. 3 to 5 as follows.

제3도는 본 발명의 바람직한 실시예에 따른 고속 가변장 복호기를 나타내는 블록도이다. 도시된 바와 같이, 본 발명의 고속 가변장 복호기는 제1도의 종래 고속 가변장 복호기와 동일하게 구성되는 반면에, 버퍼부(1)를 듀얼포트메모리, 비동기형 FIFO 내지 동기형 FIFO 등의 대용량메모리로 구현함과 아울러 본 발명에 해당하는 메모리를 제어하기 위한 메모리제어장치(20)가 추가 구성된다. 메모리제어장치(20)는 사용하는 메모리에 따라 구체적인 회로가 달라지나 전체적인 기능은 같다. 여기서는 동기형 FIFO를 기준으로 구성된다. 메모리제어장치(20)는 FIFO메모리(10)로부터 데이터를 읽어들일 것인지의 여부와 읽어들인 데이터의 출력여부 등의 상태를 판단하여 각 구성을 제어하기 위한 상태판단수단(21)과 FIFO메모리(10)로부터 인가되는 데이터를 순차적으로 저장하기 위한 세 개의 래치(22,23,24), 및 세 개의 래치(22,23,24)의 출력단이 각각의 입력단과 연결되어 그중 한 입력단으로 입력되는 데이터를 인터페이스부(30)로 출력하는 멀티플렉서(25)로 구성된다.3 is a block diagram showing a fast variable length decoder according to a preferred embodiment of the present invention. As shown, the high speed variable length decoder of the present invention is configured in the same manner as the conventional high speed variable length decoder of FIG. 1, whereas the buffer unit 1 is a large capacity memory such as a dual port memory, an asynchronous FIFO or a synchronous FIFO. In addition, the memory control apparatus 20 for controlling the memory corresponding to the present invention is further configured. The memory controller 20 has a specific circuit that varies depending on the memory used, but the overall function is the same. The configuration here is based on a synchronous FIFO. The memory controller 20 determines the status of whether or not to read data from the FIFO memory 10 and whether the read data is output or not, and the status determination means 21 and the FIFO memory 10 for controlling each configuration. Three latches 22, 23, and 24 for sequentially storing data applied from the circuit, and output terminals of the three latches 22, 23, and 24 are connected to the respective input terminals, and the data input to one of the input terminals is The multiplexer 25 outputs to the interface unit 30.

이와 같이 구성된 본 발명의 고속 가변장 복호기에서, 비트열형태의 가변장부호어들은 FIFO메모리(10)로 입력한다. FIFO메모리(10)는 입력하는 가변장부호어들을 저장하며, 메모리제어장치(20)로부터 메모리읽기신호(MEM_READ)가 인가될 때마다 저장하고 있는 데이터중에서 가장 먼저 입력된 고정비트 데이터를 메모리제어장치(20)로 출력한다. 메모리제어장치(20)의 상태판단수단(21)은 제4도와 같은 입·출력조합논리상태의 테이블을 구비한 조합논리부(211)를 통해 FIFO메모리(10)로부터 데이터를 읽어들여 내부저장소의 역할을 수행하는 래치(22,23,24)에 저장할 것인지의 여부 및 래치(22,23,24)에 저장된 인터페이스부(30)로 출력할 것인지를 결정하게 된다. 즉, 조합논리부(211)는 인터페이스부(30)로부터의 읽기신호(READ) 입력여부, 래치(22,23,24)에 저장된 데이터 유효여부, FIFO메모리(10)로부터 1클럭 이전에 읽어들인 데이터 유효여부로부터 다음 데이터를 래치(22)로 읽어들일 것인지를 결정한다. 조합논리부(211)는 인터페이스부(30)에서 출력되는 읽기신호(READ)와, 세 개의 래치(22,23,24) 각각에 대한 데이터 저장 상태를 나타내는 플래그신호(flag), 및 FIFO메모리(10)로부터 읽어들인 데이터를 저장하기 위한 로드인에이블신호(LOAD_ENABLE)를 입력받아 제4도와 같은 테이블에 표시된 입력조합논리상태들에 대응하는 플래그신호(flag), 메모리읽기신호(MEM_READ), 멀티플렉서(25)에 인가될리 선택신호(MUX_SELECT)를 출력한다. 예를 들어, 조합논리부(211)는 입력된 플래그신호(flag)가 “000”이고, 로드인에이블신호(LOAD_ENABLE)가 “1”이며, 읽기신호(READ)가 “0”인 경우에 세 개의 래치(22,23,24)에 저장된 데이터가 없고, FIFO메모리(10)로부터 입력되는 데이터가 래치(22)에 저장되며, 인터페이스부(30)로부터 데이터요구가 없는 경우로 현재 상태를 판단한다. 그래서, 조합논리부(211)는 플래그신호를 “001”로, 메모리읽기신호(MEM_READ)를 “0”으로, 멀티플렉서선택신호(MUX_SELECT)를 “000”으로 출력한다. 여기서, 플래그신호(flag)는 래치(214)를 통해 다시 조합논리부(211)로 피드백입력된다. 그리고, 메모리읽기신호(MEN_READ)는 FIFO메모리(10) 로 입력됨과 아울러 인버터(212)를 통해 반전된 후, 래치(213)를 통해 로드인에이블(LOAD_ENABLE)로 출력된다. 이 로드인에이블신호(LOAD_ENABLE)는 래치(22,23,24)로 입력됨과 동시에 조합논리부(211)로 피드백입력된다. 메모리제어장치(20)에서 래치(22)는 FIFO메모리 (10)로부터 출력되는 고정길이의 비트데이터를, 래치(23)는 래치(22)로부터의 데이터를, 그리고, 래치(24)는 래치(23)로부터 공급되는 데이터를 상태판단수단(21)의 로드인에이블신호(LOAD_ENABLE)에 따라 개별적으로 래칭한다. 한편, 세 개의 래치(22,23,24)들을 통해 순차래칭된 고정길이의 비트데이터들을 입력받는 멀티플렉서(25)는 조합논리부(211)에서 인가된 선택신호(MUX_SELECT)에 따라 가장 먼저 입력되어 저장된 데이터부터 차례대로 선택하여 출력한다. 제5도를 통해 좀더 상세하게 설명하면, 메모리제어장치(20)의 조합논리부(211)는 로드인에이블신호(LOAD_ENABLE)가“1”일 때 다음 동작사이클에서 FIFO메모리(10)에서 출력된 데이터를 래치(22)가, 래치(22)에서 출력된 데이터를 래치(23)가, 래치(23)에서 출력된 데이터를 래치(24)가 입력받아 래칭하여 래치(22,23,24)에 데이터를 저장해 둔다. 그리고, 플래그신호(flag)는 현재 래치(22,23,24)들의 데이터 저장 상태에 따라 갱신되며, 인터페이스부(30)로부터 읽기신호(READ)“1”이 인가될 때 마다 래치(22,23,24)에 저장된 데이터들중 FIFO메모리(10)로부터 가장 먼저 읽어들여 저장된 데이터부터 멀티플렉서(25)를 통해 선택하여 인터페이스부(30)로 출력한다. 제5도의 사이클번호(cycle no.)7의 경우와 같이 조합논리부(211)로 플래그신호(flag) “111”, 로드인에이블신호(LOAD_ENABLE)“0”, 읽기신호(READ)“1”이 입력되고, 내부 저장소인 래치(22,23,24)에 데이터 “ABC”가 저장된 상태의 경우를 예로 들면, 조합논리부(211)는 사전 정의된 조합논리 상태에 따라 멀티플렉서(25)로 선택신호(MUX_SELECT)“011”을 출력하여 이전 사이클동안 래치(24)에 저장된 데이터“A”를 선택하여 출력하던 것을 래치(23)에 저장된 데이터“B”를 선택하여 출력할 수 있도록 한다. 즉, 메모리제어장치(20)를 통해 출력되는 데이터들은 읽기신호(READ)가 인가될 때마다 변한다. 그리고, 조합논리부(211)는 플래그신호(flag)를 “011”로 갱신하여 래치(24)에 저장된 데이터가 무효 데이터임을 나타낸다. 메모리제어장치(20)에서의 지연정도는 사용하는 메모리의 특성에 따라 달라질 수 있으며 이에 따라 래치의 개수가 달라진다. 여기서는 3개의 래치로 구성된다. 메모리제어장치(20)로부터 출력되는 데이터는 인터페이스부(30)로 입력된다. 인터페이스부(30)와 디코더부(40)는 앞서 언급된 바와 동일하게 동작한다. 즉, 인터페이스부(30)는 메모리제어장치(20)로 읽기신호(READ)를 인가한 후 메모리제어장치(20)로부터 인가되는 고정길이의 비트데이터와 이전 입력된 고정길이의 비트데이터들중 디코더부(40)에서 복호화에 사용된 코드길이를 누적한 결과에 따라 시프트된 윈도우내에 들어 있는 데이터를 디코더부(40)로 출력한다. 여기서, 인터페이스부(30)로 새로운 고정길이의 비트데이터가 입력되는 시점은 새로운 클럭 사이클의 초기에 읽기신호(READ)가 액티브 되었을 때이다. 즉, 인터페이스부(30)로부터 출력되는 읽기신호(READ)에 바로 동기하며 메모리제어장치(20)에서 데이터가 인터페이스부(30)로 공급된다. 디코더부(40)는 인터페이스부(30)로부터 인가되는 데이타를 복호화하여 출력하고, 복호화시 사용된 코드길이를 인터페이스부(30)로 출력한다.In the fast variable length decoder of the present invention configured as described above, the variable length codes in the form of bit strings are input to the FIFO memory 10. The FIFO memory 10 stores variable long term inputs, and stores fixed bit data that is input first among the stored data whenever the memory read signal MEM_READ is applied from the memory controller 20. 20) The state determining means 21 of the memory control device 20 reads data from the FIFO memory 10 through the combinational logic unit 211 having a table of input / output combinational logic states as shown in FIG. It is determined whether to store in the latches 22, 23, and 24 that perform the role, and whether to output to the interface unit 30 stored in the latches 22, 23, and 24. That is, the combinational logic unit 211 reads whether the read signal READ from the interface unit 30 is valid, whether or not the data stored in the latches 22, 23, and 24 is valid, and is read one clock before from the FIFO memory 10. It is determined whether to read the next data into the latch 22 from the validity of the data. The combinational logic unit 211 includes a read signal READ output from the interface unit 30, a flag signal indicating a data storage state for each of the three latches 22, 23, and 24, and a FIFO memory ( 10) A flag signal (flag), a memory read signal (MEM_READ), and a multiplexer that receive a load enable signal (LOAD_ENABLE) for storing data read from the input signal and correspond to the input combinational logic states shown in the table shown in FIG. And outputs a select signal MUX_SELECT to be applied to the signal 25). For example, the combinational logic unit 211 has three input signals when the input flag signal is “000”, the load enable signal LOAD_ENABLE is “1”, and the read signal READ is “0”. The current state is determined when there is no data stored in the two latches 22, 23, and 24, data input from the FIFO memory 10 is stored in the latch 22, and there is no data request from the interface unit 30. . Thus, the combinational logic unit 211 outputs the flag signal as "001", the memory read signal MEM_READ as "0", and the multiplexer selection signal MUX_SELECT as "000". Here, the flag signal is fed back to the combinational logic unit 211 through the latch 214. The memory read signal MEN_READ is input to the FIFO memory 10 and inverted through the inverter 212, and then output as a load enable LOAD_ENABLE through the latch 213. The load enable signal LOAD_ENABLE is inputted to the latches 22, 23, and 24 and fed back to the combinational logic unit 211. In the memory controller 20, the latch 22 is fixed-length bit data output from the FIFO memory 10, the latch 23 is data from the latch 22, and the latch 24 is latched ( The data supplied from 23 is individually latched in accordance with the load enable signal LOAD_ENABLE of the status determining means 21. Meanwhile, the multiplexer 25 receiving the fixed length bit data sequentially latched through the three latches 22, 23, and 24 is first inputted according to the selection signal MUX_SELECT applied from the combinational logic unit 211. Select and output the saved data in order. In more detail with reference to FIG. 5, the combinational logic unit 211 of the memory controller 20 is output from the FIFO memory 10 in the next operation cycle when the load enable signal LOAD_ENABLE is “1”. The latch 22 receives data, the latch 22 outputs the data output from the latch 22, and the latch 24 receives the data output from the latch 23 and latches the data output to the latches 22, 23, and 24. Save your data. The flag signal is updated according to the data storage state of the current latches 22, 23, and 24, and the latches 22, 23 are applied whenever the read signal READ “1” is applied from the interface unit 30. Among the data stored in, 24, the data is first read from the FIFO memory 10 and selected from the stored data through the multiplexer 25 to be output to the interface unit 30. As in the case of Cycle No. 7 of FIG. 5, the combinational logic unit 211 uses the flag signal "111", the load enable signal "LOAD_ENABLE" "0", and the read signal "READ" "1". Is input and the data "ABC" is stored in the latches 22, 23 and 24 which are internal storages. For example, the combinational logic unit 211 selects the multiplexer 25 according to a predefined combinational logic state. The signal "MUX_SELECT" is outputted so that the data "A" stored in the latch 24 is selected and output during the previous cycle so that the data "B" stored in the latch 23 can be selected and output. That is, data output through the memory control device 20 changes each time a read signal READ is applied. The combinational logic unit 211 updates the flag signal with "011" to indicate that the data stored in the latch 24 is invalid data. The degree of delay in the memory controller 20 may vary depending on the characteristics of the memory used, and thus the number of latches may vary. It consists of three latches here. Data output from the memory control device 20 is input to the interface unit 30. The interface unit 30 and the decoder unit 40 operate in the same manner as mentioned above. That is, the interface unit 30 applies a read signal READ to the memory controller 20 and then decodes the fixed length bit data from the memory controller 20 and the previously input fixed length bit data. The section 40 outputs the data contained in the shifted window to the decoder section 40 according to the accumulation of the code lengths used for decoding. Here, the time point at which the new fixed length bit data is input to the interface unit 30 is when the read signal READ is activated at the beginning of a new clock cycle. In other words, the memory is directly synchronized with the read signal READ output from the interface unit 30, and the data is supplied from the memory control device 20 to the interface unit 30. The decoder unit 40 decodes and outputs data applied from the interface unit 30, and outputs the code length used in decoding to the interface unit 30.

상술한 바와 같이, 본 발명은 고속 가변장 복호기의 메모리제어장치에 관한 것으로 가변장부호화된 데이터를 복호화하기 위해 일단 듀얼포트메모리, 비동기 내지 동기형 FIFO 등의 대용량메모리로 된 버퍼에 저장하고, 버퍼를 통해 저장된 데이터를 입력받아 복호화시 메모리(버퍼)로부터 데이터를 읽어내는 동작과 가변장 복호화하는 동작이 독립적으로 이루어질 수 있도록 메모리를 제어하여 읽기신호(RDAD)에 바로 응답하여 데이터가 출력되어 실제 고속시스템에 적용될 수 있는 고속 가변장 복호기를 제공한다.As described above, the present invention relates to a memory control apparatus of a high speed variable length decoder, which is stored in a buffer of a large capacity memory such as a dual port memory, an asynchronous to synchronous FIFO, and a buffer to decode the variable length coded data. The memory is controlled so that the data can be read out from the memory (buffer) and the variable-length decoding can be performed independently. Provides a fast variable length decoder that can be applied to the system.

Claims (6)

고속 가변장 복호기에 있어서, 가변장부호화에 의한 비트 데이터를 저장하며, 메모리읽기신호가 인가될 때마다 선입선출방식으로 저장하고 있는 데이터들을 고정길이의 비트데이터로 출력하는 메모리수단; 상기 메모리수단으로 메모리읽기신호를 인가하고, 상기 메모리수단으로부터 인가되는 고정길이의 비트데이터를 저장하며, 읽기신호가 인가될 때마다 저장하고 있는 데이터들중 현재 출력되는 데이터의 다음 데이터로 바꾸어 출력하는 메모리제어수단; 및 상기 메모리제어수단으로 읽기신호를 인가하고, 상기 메모리제어수단으로부터 인가되는 데이터를 가변장 복호화하는 가변장 복호수단을 포함하는 고속 가변장 복호기의 메모리제어장치.1. A high speed variable length decoder comprising: memory means for storing bit data by variable length encoding and outputting data stored in a first-in first-out method as fixed length bit data each time a memory read signal is applied; A memory read signal is applied to the memory means, and the fixed length bit data applied from the memory means is stored, and each time the read signal is applied, the memory read signal is changed into the next data of the currently output data among the stored data. Memory control means; And variable length decoding means for applying a read signal to the memory control means and for variable length decoding the data applied from the memory control means. 제1항에 있어서, 상기 메모리수단은 듀얼포트메모리, 비동기형 FIFO메모리, 동기형 FIFO메모리 등의 대용량메모리인 것을 특징으로 하는 고속 가변장 복호기의 메모리제어장치.2. The memory control apparatus of claim 1, wherein the memory means is a large capacity memory such as a dual port memory, an asynchronous FIFO memory, a synchronous FIFO memory, or the like. 제1항에 있어서, 상기 메모리제어수단은 상기 메모리수단으로부터 인가되는 데이터를 순차적으로 래치하여 저장하는 다수의 래치; 상기 다수의 래치에서 출력되는 데이터를 입력받고, 입력되는 선택신호에 따라 선택하여 상기 가변장 복호수단으로 출력하는 멀티플렉서; 및 상기 가변장 복호수단으로부터의 읽기신호 입력여부 및 상기 다수의 래치 각각에 저장된 데이터유효여부에 따라 상기 가변장 복호수단으로의 데이터출력여부 및 상기 메모리수단으로부터 데이터를 읽어들일 것인지의 여부를 판단하는 상태판단수단을 구비함을 특징으로 하는 고속 가변장 복호기의 메모리제어장치.2. The apparatus of claim 1, wherein the memory control means comprises: a plurality of latches for sequentially latching and storing data applied from the memory means; A multiplexer which receives data output from the plurality of latches, selects the data output according to the input selection signal, and outputs the data to the variable length decoding means; And whether or not to output data to the variable length decoding means and whether to read data from the memory means according to whether a read signal is input from the variable length decoding means and whether data is stored in each of the plurality of latches. A memory control apparatus for a high speed variable length decoder, comprising status determination means. 제3항에 있어서, 상기 상태판단수단은 상기 가변장 복호수단의 읽기신호와, 상기 다수의 래치 각각의 데이터 저장상태를 나타내는 플래그신호, 및 상기 다수의 래치를 래치하기 위한 로드인에이블신호의 입력조합에 따라 상기 메모리수단의 메모리읽기신호와, 상기 멀티플렉서의 선택신호, 및 갱신된 플래그신호를 출력하는 조합논리부; 상기 갱신된 플래그신호를 래치하여 상기 조합논리부로 피드백입력시키는 래치; 상기 메모리읽기신호를 상태 반전하기 위한 인버터; 및 상기 인버터에서 상태 반전된 메모리읽기신호를 래치하여 상기 다수의 래치 각각에 로드인에이블신호로 출력함과 동시에 상기 조합논리부로 피드백입력시키는 래치가 연결되는 것을 특징으로 하는 고속 가변장 복호기의 메모리제어장치.4. The apparatus of claim 3, wherein the state determining means inputs a read signal of the variable length decoding means, a flag signal indicating a data storage state of each of the plurality of latches, and a load enable signal for latching the plurality of latches. A combinational logic section for outputting a memory read signal of the memory means, a selection signal of the multiplexer, and an updated flag signal in accordance with the combination; A latch which latches the updated flag signal and feeds it back to the combinational logic unit; An inverter for inverting the state of the memory read signal; And a latch configured to latch a memory read signal whose state is inverted in the inverter, output a load enable signal to each of the latches, and a feedback input feedback to the combinational logic unit. Device. 제4항에 있어서, 상기 플래그신호는 상기 다수의 래치 각각에 상기 가변장 복호수단에서 복호화에 사용될 유효한 데이터가 저장되어 있는 지를 나타내며, 상기 가변장 복호수단으로부터 인가된 읽기신호에 의해 가장 먼저 저장된 유효한 데이터가 출력될 때마다 그에 맞게 상태가 갱신되는 것을 특징으로 하는 고속 가변장 복호기의 메모리제어장치.5. The apparatus of claim 4, wherein the flag signal indicates whether valid data to be used for decoding in the variable length decoding means is stored in each of the plurality of latches, and the first valid signal stored first by a read signal applied from the variable length decoding means. A memory control device of a high speed variable length decoder, wherein the state is updated accordingly whenever data is output. 제3항에 있어서, 상기 메모리제어수단은 상기 가변장 복호수단에서 출력되는 읽기신호가 인가될 때 그 클럭의 초기에 바로 동기하여 새로운 데이터를 출력하는 것을 특징으로 하는 고속 가변장 복호기의 메모리제어장치.4. The memory controller of claim 3, wherein the memory control means outputs new data in synchronization with the initial stage of the clock when a read signal output from the variable length decoding means is applied. .
KR1019950038277A 1995-10-30 1995-10-30 Memory controller in high speed variable length decoder KR100209881B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950038277A KR100209881B1 (en) 1995-10-30 1995-10-30 Memory controller in high speed variable length decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950038277A KR100209881B1 (en) 1995-10-30 1995-10-30 Memory controller in high speed variable length decoder

Publications (2)

Publication Number Publication Date
KR970025157A KR970025157A (en) 1997-05-30
KR100209881B1 true KR100209881B1 (en) 1999-07-15

Family

ID=19432040

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950038277A KR100209881B1 (en) 1995-10-30 1995-10-30 Memory controller in high speed variable length decoder

Country Status (1)

Country Link
KR (1) KR100209881B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100919476B1 (en) * 2007-05-17 2009-09-28 (주)부리멀티미디어 Multichannel audio decoding device based on specific direct memory access controller and method of multichannel audio decoding using the same

Also Published As

Publication number Publication date
KR970025157A (en) 1997-05-30

Similar Documents

Publication Publication Date Title
RU2117388C1 (en) Data coding and decoding method and device
JP3294026B2 (en) High-speed variable-length decoding device
KR0178201B1 (en) Variable length decoding apparatus
JPH0799812B2 (en) Signal coding apparatus, signal decoding apparatus, and signal coding / decoding apparatus
EP0663730B1 (en) Apparatus for decoding variable length codes
KR970025145A (en) High speed variable length decoding device
KR940010433B1 (en) Apparatus for decoding variable length code
EP0145396B1 (en) Codeword decoding
US5663726A (en) High speed variable-length decoder arrangement with reduced memory requirements for tag stream buffering
US6809665B2 (en) Apparatus and method for decoding variable length code
US5666116A (en) High speed variable-length decoder arrangement
KR0179103B1 (en) High speed variable length decoder apparatus
JPH08265166A (en) High-speed variable-length code decoder
US6621428B1 (en) Entropy codec for fast data compression and decompression
JP2811651B2 (en) Encoding / decoding method and apparatus
KR960003452B1 (en) Vlc
KR100209881B1 (en) Memory controller in high speed variable length decoder
KR100192269B1 (en) Variable length code decoder
JP3853439B2 (en) High speed variable length code decoding apparatus and high speed variable length code decoding method
JPH08223055A (en) Variable-length cord decoder
JPH08265165A (en) High-speed variable-length code decoder
JPH07235879A (en) Header detector and decoder using it
KR0125126B1 (en) High-speed apparatus for decoding variable length code
KR100279583B1 (en) Variable-length code decoder
JP3054787B2 (en) Variable length code decoding device

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: 20080328

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee