KR101818440B1 - Data compression device, operation method using the same, and data processing apparatus having the same - Google Patents
Data compression device, operation method using the same, and data processing apparatus having the same Download PDFInfo
- Publication number
- KR101818440B1 KR101818440B1 KR1020170054930A KR20170054930A KR101818440B1 KR 101818440 B1 KR101818440 B1 KR 101818440B1 KR 1020170054930 A KR1020170054930 A KR 1020170054930A KR 20170054930 A KR20170054930 A KR 20170054930A KR 101818440 B1 KR101818440 B1 KR 101818440B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- input
- symbols
- input data
- frequency
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
- H03M7/6088—Selection strategies according to the data type
Abstract
데이터 패턴 분석기와 데이터 압축 관리기를 포함하는 데이터 압축 장치의 동작 방법이 개시된다. 상기 방법은 상기 데이터 패턴 분석기가 입력 버퍼로 전송되는 입력 데이터를 수신하는 단계와, 상기 입력 버퍼를 이용하여 상기 입력 데이터를 버퍼링하는 동안, 상기 데이터 패턴 분석기가 상기 입력 데이터의 패턴을 분석하고 분석 결과를 출력하는 단계 및 상기 분석 결과에 따라, 상기 데이터 압축 관리기가 상기 입력 버퍼에 의하여 버퍼링된 데이터를 바이패스하거나 또는 압축하는 단계를 포함한다.A method of operating a data compression device including a data pattern analyzer and a data compression manager is disclosed. The method comprising: receiving input data transmitted by the data pattern analyzer to an input buffer; and during the buffering of the input data using the input buffer, the data pattern analyzer analyzes the pattern of the input data, And the data compression manager bypasses or compresses the data buffered by the input buffer according to the analysis result.
Description
본 발명의 개념에 따른 실시 예는 데이터 압축 기술에 관한 것으로, 특히 전송되는 데이터의 패턴을 분석하고 분석 결과에 따라 상기 데이터의 압축 여부를 결정할 수 있는 데이터 압축 장치, 이의 동작 방법, 및 이를 포함하는 데이터 처리 장치에 관한 것이다.An embodiment according to the concept of the present invention relates to a data compression technique, and more particularly to a data compression device capable of analyzing a pattern of transmitted data and determining whether to compress the data according to an analysis result, an operation method thereof, And a data processing apparatus.
데이터 압축은 데이터를 더 작은 저장 공간에 효율적으로 저장하기 위한 기술 또는 상기 기술의 실제 적용을 의미한다.Data compression refers to a technique for efficiently storing data in a smaller storage space or an actual application of the technique.
데이터의 압축은 데이터를 더 작은 크기로 변환시키는 인코딩(encoding) 과정과 인코드된 데이터를 원래 데이터로 복원시키는 디코딩(decoding) 과정을 포함한다.Compression of data includes an encoding process to convert the data to a smaller size and a decoding process to restore the encoded data to original data.
본 발명이 이루고자 하는 기술적인 과제는 데이터 압축 시간을 감소시키기 위하여 데이터가 입력 버퍼로 전송되는 도중에 상기 데이터의 패턴을 분석하고 분석 결과에 따라 상기 데이터의 압축 여부를 결정할 수 있는 데이터 압축 방법과 상기 방법을 수행할 수 있는 장치를 제공하는 것이다.According to an aspect of the present invention, there is provided a data compression method for analyzing a pattern of data during transmission of data to an input buffer and determining whether to compress the data according to an analysis result, And to provide a device capable of performing the above-described operations.
본 발명의 실시 예들에 따른 데이터 패턴 분석기와 데이터 압축 관리기를 포함하는 데이터 압축 장치의 동작 방법은 기 데이터 패턴 분석기가 입력 버퍼로 전송되는 입력 데이터를 수신하는 단계와, 상기 입력 버퍼를 이용하여 상기 입력 데이터를 버퍼링하는 동안, 상기 데이터 패턴 분석기가 상기 입력 데이터의 패턴을 분석하고 분석 결과를 출력하는 단계 및 상기 분석 결과에 따라, 상기 데이터 압축 관리기가 상기 입력 버퍼에 의하여 버퍼된 데이터를 바이패스하거나 또는 압축하는 단계를 포함한다.A method of operating a data compression apparatus including a data pattern analyzer and a data compression manager according to embodiments of the present invention includes receiving input data transmitted to an input buffer by a data pattern analyzer, Analyzing a pattern of the input data and outputting an analysis result while the data pattern analyzer is buffering the data; and the data compression manager bypasses the buffered data by the input buffer according to the analysis result, And compressing.
본 발명의 실시 예들에 따른 데이터 압축 장치는 입력 버퍼, 상기 입력 버퍼로 전송되는 입력 데이터를 수신하고, 상기 입력 데이터의 패턴을 분석하여 분석 코드를 출력하기 위한 데이터 패턴 분석기 및 상기 분석 코드에 따라, 상기 입력 버퍼에 의해 버퍼된 데이터를 비휘발성 메모리 장치로 바이패스하거나 또는 상기 버퍼된 데이터를 압축하여 생성된 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 관리기를 포함한다.A data compression apparatus according to embodiments of the present invention includes an input buffer, a data pattern analyzer for receiving input data transmitted to the input buffer, analyzing a pattern of the input data and outputting an analysis code, And a data compression manager for bypassing the data buffered by the input buffer to the nonvolatile memory device or for transmitting the compressed data generated by compressing the buffered data to the nonvolatile memory device.
본 발명의 실시 예들에 따른 데이터 처리 장치는 비휘발성 메모리 장치, 바이패스된 입력 데이터 또는 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 장치를 포함하며, 상기 데이터 압축 장치는, 입력 버퍼, 상기 입력 버퍼로 전송되는 입력 데이터를 수신하고, 상기 입력 데이터가 상기 입력 버퍼로 전송되는 동안, 상기 입력 데이터의 패턴을 분석하여 분석 코드를 출력하기 위한 데이터 패턴 분석기 및 상기 분석 코드에 따라, 상기 입력 버퍼에 의하여 버퍼된 데이터를 상기 바이패스된 입력 데이터로서 출력하거나 또는 상기 버퍼된 데이터를 압축하여 상기 압축 데이터를 출력하는 데이터 압축 관리기를 포함한다.A data processing apparatus according to embodiments of the present invention includes a nonvolatile memory device, a data compression device for transferring bypassed input data or compressed data to the nonvolatile memory device, the data compression device including an input buffer, A data pattern analyzer for receiving input data transmitted to an input buffer and for analyzing a pattern of the input data and outputting an analysis code while the input data is transmitted to the input buffer, And outputting the buffered data as the bypassed input data or compressing the buffered data to output the compressed data.
본 발명의 실시 예에 따른 데이터 압축 장치와 이의 동작 방법은 데이터가 입력 버퍼로 전송되는 도중에 상기 데이터의 패턴을 분석하고 분석 결과에 따라 상기 데이터의 압축 여부를 결정할 수 있으므로 상기 데이터를 압축하는 시간을 감소시킬 수 있는 효과가 있다.The data compression apparatus and the operation method thereof according to the embodiment of the present invention can analyze the pattern of the data while the data is being transmitted to the input buffer and determine whether to compress the data according to the analysis result. There is an effect that can be reduced.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1a는 본 발명의 일 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 1b는 도 1의 입력 버퍼로부터 출력되는 버퍼된 데이터의 출력 타이밍도를 나타낸다.
도 1c는 도 2에 도시된 버퍼된 데이터 구조를 나타낸다.
도 2는 본 발명의 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 3은 도 2에 도시된 데이터 패턴 분석기의 동작을 설명하기 위한 테이블이다.
도 4는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 5는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.
도 6은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 7은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 8은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.
도 9는 정적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.
도 10은 동적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.
도 11은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 일 실시예를 나타낸다.
도 12는 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In order to more fully understand the drawings recited in the detailed description of the present invention, a detailed description of each drawing is provided.
Figure 1a shows a block diagram of a data compression apparatus according to an embodiment of the present invention.
1B shows an output timing diagram of buffered data output from the input buffer of FIG.
Fig. 1C shows the buffered data structure shown in Fig.
2 shows a block diagram of a data compression apparatus according to another embodiment of the present invention.
3 is a table for explaining the operation of the data pattern analyzer shown in FIG.
4 shows a block diagram of a data compression apparatus according to another embodiment of the present invention.
5 shows a block diagram of a data compression apparatus according to another embodiment of the present invention.
FIG. 6 is a flowchart for explaining the operation of the data compression apparatus shown in FIG. 1A, FIG. 2, FIG. 4, or FIG.
FIG. 7 is a flowchart for explaining the operation of the data compression apparatus shown in FIG. 1A, FIG. 2, FIG. 4, or FIG.
FIG. 8 is a flowchart for explaining the operation of the data compression apparatus shown in FIG. 1A, FIG. 2, FIG. 4, or FIG.
Fig. 9 is a flowchart for explaining the operation of the pattern analyzer shown in Fig. 5 using the static Hoffman coding rule.
FIG. 10 is a flowchart for explaining the operation of the pattern analyzer shown in FIG. 5 using the dynamic Hoffman coding rule.
FIG. 11 shows an embodiment of a data processing system including the data compression apparatus shown in FIGS. 1A, 2, 4, or 5.
Fig. 12 shows another embodiment of a data processing system including the data compression apparatus shown in Figs. 1A, 2, 4, or 5.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional descriptions of embodiments of the present invention disclosed herein are only for the purpose of illustrating embodiments of the inventive concept, But may be embodied in many different forms and is not limited to the embodiments set forth herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Embodiments in accordance with the concepts of the present invention are capable of various modifications and may take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are intended to distinguish one element from another, for example, without departing from the scope of the invention in accordance with the concepts of the present invention, the first element may be termed the second element, The second component may also be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises ", or" having ", or the like, specify that there is a stated feature, number, step, operation, , Steps, operations, components, parts, or combinations thereof, as a matter of principle.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the preferred embodiments of the present invention with reference to the accompanying drawings.
도 1a는 본 발명의 일 실시예에 따른 데이터 압축 장치의 블록도를 나타내고, 도 1b는 도 1의 입력 버퍼로부터 출력되는 버퍼된 데이터의 출력 타이밍도를 나타내고, 도 1c는 도 2에 도시된 버퍼된 데이터 구조를 나타낸다.FIG. 1A is a block diagram of a data compression apparatus according to an embodiment of the present invention. FIG. 1B shows an output timing diagram of buffered data output from the input buffer of FIG. Lt; / RTI >
도 1a부터 도 1c을 참조하면, 데이터 압축 장치(10A)는 데이터 패턴 분석기 (20A), 입력 버퍼(30), 및 데이터 압축 관리기(data compression manager; 40)를 포함한다. 실시 예에 따라, 데이터 압축 장치(10A)는 출력 버퍼(50)를 더 포함할 수 있다. 데이터 압축 장치(10A)는 집적 회로에 구현될 수 있다.Referring to FIGS. 1A to 1C, a
데이터 패턴 분석기(20A)는 입력 데이터(DATA)의 패턴을 분석할 수 있는 하드웨어 또는 프로세서(processor)로 구현될 수 있다. 또한, 데이터 압축 관리기 (40)는, 데이터 패턴 분석기(20A)로부터 출력된 분석 결과(INF1)에 따라, 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 바이패스(bypass)하거나 또는 압축할 수 있는 하드웨어 또는 프로세서로 구현될 수 있다.The
데이터 패턴 분석기(20A)는 입력 버퍼(30)로 전송되는 입력 데이터(DATA)를 가로채 입력 데이터(DATA)의 패턴을 분석하여 분석 결과, 즉 분석 코드(INF1)를 출력할 수 있다.The
예컨대, 데이터 패턴 분석기(20A)에 포함된 헤더 분석기(21)는 입력 데이터 (DATA)의 헤더(HEADER)에 포함된 지시 비트를 분석하고, 분석 결과에 따라 분석 코드(INF1)를 출력할 수 있다. 분석 코드(INF1)는 1-비트 또는 그 이상의 비트로 구현될 수 있다.For example, the
헤더(HEADER)에 포함된 지시 비트는 입력 데이터(DATA)의 바디(DATA1)에 포함된 데이터가 압축되었는지의 여부를 나타내는 비트로서, 1-비트 또는 그 이상의 비트일 수 있다.The indication bit included in the header HEADER indicates whether or not the data included in the body DATA1 of the input data DATA is compressed, and may be 1-bit or more bits.
예컨대, 입력 데이터(DATA)의 바디(DATA1)에 포함된 데이터가 압축 데이터 (compressed data; 예컨대 멀티-미디어 데이터)일 때 헤더(HEADER)에 포함된 지시 비트는 1이고, 입력 데이터(DATA)의 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터(uncompressed data)일 때 헤더(HEADER)에 포함된 지시 비트는 0일 수 있다.For example, when the data included in the body DATA1 of the input data DATA is compressed data (e.g., multi-media data), the indication bit included in the header HEADER is 1, When the data included in the body (DATA1) is uncompressed data, the indication bit included in the header (HEADER) may be zero.
이때, 데이터 패턴 분석기(20A), 예컨대 헤더 분석기(21)는 헤더(HEADER)에 포함된 지시 비트에 따라 1(예컨대, 지시 비트가 1일 때) 또는 0(예컨대, 지시 비트가 0일 때)을 갖는 분석 코드(INF1)를 출력할 수 있다.At this time, the
입력 버퍼(30)는 데이터 버스를 통하여 입력된 입력 데이터(DATA)를 버퍼링하여 버퍼된 데이터(BDi)를 출력한다. 예컨대, 입력 데이터(DATA)가 a-비트 데이터일 때 버퍼된 데이터(BDi)는 b-비트 데이터일 수 있다. 여기서, a과 b은 자연수로서, a=b 또는 b은 a의 정수 배일 수 있다.The
예컨대, 입력 데이터(DATA)가 8-비트 데이터이고 버퍼된 데이터(BDi)가 64-비트 데이터일 때, 데이터 패턴 분석기(20A)는 시간 간격(T) 이내에 8개의 입력 데이터(DATA) 각각에 대한 패턴 분석을 수행할 수 있다. 입력 버퍼(30)는, 8개의 입력 데이터(DATA)가 모두 입력될 마다 활성화되는 인에이블 신호(EN)에 따라, 각 버퍼된 데이터(BDi, i=0, 1, 2, 3, ...)를 출력할 수 있다.For example, when the input data (DATA) is 8-bit data and the buffered data (BDi) is 64-bit data, the data pattern analyzer (20A) Pattern analysis can be performed. The
데이터 압축 관리기(40)는 데이터 패턴 분석기(20A)로부터 출력된 분석 코드 (INF1)에 따라 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 외부로 바이패스 (bypass)하거나 또는 버퍼된 데이터(BDi)를 압축하여 생성된 압축 데이터(CDATA)를 상기 외부로 전송할 수 있다.The
예컨대, 분석 코드(INF1)가 0일 때, 데이터 압축 관리기(40)는 입력 버퍼 (30)에 의하여 버퍼된 데이터(BDi)를 압축하고 압축 데이터(CDATA)를 출력 버퍼 (50)로 출력한다. 분석 코드(INF1)가 1일 때 데이터 압축 관리기(40)는 입력 버퍼 (30)에 의하여 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다.For example, when the analysis code INF1 is 0, the
데이터 압축 관리기(40)는 분석 코드(INF1)를 수신하여 저장하기 위한 메모리(41), 선택기(45)로부터 출력된 버퍼된 데이터(BDi)를 압축하여 압축 데이터 (CDATA)를 생성하기 위한 프로세서(43), 및 메모리(41)에 저장된 분석 코드(INF1)에 따라 입력 버퍼(30)로부터 버퍼된 데이터(BDi)를 외부로 바이패스하거나 또는 프로세서(43)로 전송하기 위한 선택기(45)를 포함한다.The
예컨대, 도 1c에 도시된 버퍼된 데이터(D0)를 처리하는 프로세서(43)는 각 심벌(A1, A2, 및 A3)을 순차적으로 압축하고, 이전에 압축된 심벌(예컨대, 첫 번째 A1)과 동일한 심벌(예컨대, 네 번째 A1)에 대해서는 압축하지 않고 심벌들(예컨대, 첫 번째 A1과 네 번째 A1) 사이의 연관 관계를 나타내는 연관 정보를 출력할 수 있다. 물론, 프로세서(43)는 모든 심벌들 각각을 압축할 수도 있다.For example, the
출력 버퍼(50)는 선택기(45)로부터 출력된 버퍼된 데이터(BDi) 또는 프로세서(43)에 의하여 압축된 압축 데이터(CDATA)를 수신하여 버퍼링할 수 있다.The
도 1a을 참조하여 설명한 바와 같이, 데이터 패턴 분석기(20A)는 입력 데이터(DATA)가 입력 버퍼(30)로 전송되는 도중에(또는, 입력 데이터(DATA)가 입력 버퍼(30)에 의하여 버퍼링되는 도중에) 입력 데이터(DATA)의 패턴(예컨대, 헤더에 포함된 지시 비트)을 분석하고, 분석 결과(INF1)를 데이터 압축 관리기(40)로 전송할 수 있다. 데이터 압축 관리기(40)는 분석 결과(INF1)에 따라 버퍼된 데이터(BDi)를 바이패스할지 또는 압축할지를 결정할 수 있다.1A, the
데이터 압축 관리기(40)는 각 입력 데이터(DATA)의 패턴을 분석하기 위하여 입력 버퍼(30)에 저장된 각 입력 데이터(DATA) 또는 버퍼된 데이터(BDi)를 별도로 리드할 필요가 없으므로 데이터 압축 속도를 개선할 수 있다.The
도 2는 본 발명의 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다.2 shows a block diagram of a data compression apparatus according to another embodiment of the present invention.
도 2를 참조하면, 도 1에 도시된 입력 데이터(DATA)와 달리, 도 2에 도시된 입력 데이터(DATA)는 바디(DATA1)에 포함된 데이터가 압축 데이터인지를 지시하는 지시 비트를 포함하는 헤더를 포함하지 않는다.2, the input data DATA shown in FIG. 2 includes an instruction bit indicating whether data included in the body (DATA1) is compressed data or not Do not include headers.
데이터 압축 장치(10B)는 데이터 패턴 분석기(20B), 입력 버퍼(30), 및 데이터 압축 관리기(40)를 포함한다. 실시 예에 따라, 데이터 압축 장치(10B)는 출력 버퍼(50)를 더 포함할 수 있다.The
데이터 패턴 분석기(20B)에 포함된 패턴 분석기(23)는 입력 데이터(DATA)가 입력 버퍼(30)로 전송될 때 입력 데이터(DATA)를 가로채 입력 데이터(DATA)의 패턴을 분석하고 분석 결과(INF2)를 출력한다. 이 경우, 패턴 분석기(23)는 도 1c의 버퍼된 데이터(D0)에 포함된 각 입력 데이터에 대한 패턴을 다음 버퍼된 데이터(D1)가 출력되기 전까지 분석할 수 있다.The pattern analyzer 23 included in the
패턴 분석기(23)는 입력 데이터(DATA)에 포함된 복수의 심벌들(symbols) 각각의 빈도 수를 계수(count)하고, 최대 빈도 수(또는 최소 빈도 수)와 기준 값을 비교하고, 비교 결과를 분석 결과(INF2)로서 데이터 압축 관리기(40)로 출력한다. 하나의 심벌은 k(k은 자연수, 예컨대 k=8)-비트들을 포함할 수 있다.The pattern analyzer 23 counts the frequency of each of a plurality of symbols included in the input data DATA and compares the maximum frequency number (or the minimum frequency number) with the reference value, To the
도 3은 도 2에 도시된 데이터 패턴 분석기의 동작을 설명하기 위한 테이블이다.3 is a table for explaining the operation of the data pattern analyzer shown in FIG.
도 2와 도 3을 참조하면, 패턴 분석기(23)는 입력 데이터(DATA)에 포함된 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)를 카운트하고, 최대 빈도 수(또는 최소 빈도 수)와 기준 값을 비교한다.Referring to FIG. 2 and FIG. 3, the
설명의 일 예로서, 상기 최대 빈도 수가 상기 기준 값보다 큰 경우, 즉, 상기 최대 빈도 수에 상응하는 심벌의 반복 회수가 많으므로, 패턴 분석기(23)는 입력 데이터(DATA)에 대한 압축을 지시하는 분석 코드(INF2; 예컨대 0)를 데이터 압축 관리기(40)로 출력한다. 압축을 지시하는 분석 코드(INF2)에 따라, 데이터 압축 관리기(40)는 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 압축하여 압축 데이터 (CDATA)를 비휘발성 메모리 장치, 예컨대 플래시 메모리 장치로 출력하거나 또는 출력 버퍼(50)를 통하여 상기 비휘발성 메모리 장치로 출력할 수 있다.As an example of the description, if the maximum frequency count is larger than the reference value, i.e., the number of repetitions of the symbol corresponding to the maximum frequency count is large, the
그러나, 상기 최대 빈도 수가 상기 기준 값보다 작은 경우, 패턴 분석기(23)는 버퍼된 데이터(BDi)에 대한 바이패스를 지시하는 분석 코드(INF2; 예컨대 1)를 데이터 압축 관리기(40)로 출력한다. 바이패스를 지시하는 분석 코드(INF2)에 따라, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 바이패스하여 비휘발성 메모리 장치 또는 출력 버퍼(50)로 전송할 수 있다.However, if the maximum frequency number is smaller than the reference value, the
도 4는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다. 도 4에는 헤더 분석기(25)와 예측기(26)를 포함하는 데이터 패턴 분석기 (20C)가 도시되어 있다.4 shows a block diagram of a data compression apparatus according to another embodiment of the present invention. Figure 4 shows a
즉, 데이터 압축 장치(10C)는 데이터 패턴 분석기(20C), 입력 버퍼(30), 및 데이터 압축 관리기(40)를 포함한다. 실시 예에 따라 데이터 압축 장치(10C)는 출력 버퍼(50)를 더 포함할 수 있다.That is, the
헤더 분석기(25)는 입력 데이터(DATA)의 헤더(HEADER)에 포함된 지시 비트에 따라 예측기(26)의 동작을 제어하는 제어 신호와 데이터 압축 관리기(40)의 동작을 제어하는 제1제어 코드를 출력한다.The
예컨대, 바디(DATA1)에 포함된 데이터가 이미 압축된 데이터임을 나타내는 지시 비트(예컨대, 1)에 따라 헤더 분석기(25)는 예측기(26)의 동작을 디스에이블시키기 위한 제어 신호(예컨대, 로우 레벨을 갖는 제어 신호)를 예측기(26)로 출력한다. 이때, 헤더 분석기(25)는 버퍼된 데이터(BDi)를 바이패스시키기 위한 제1제어 코드를 데이터 압축 관리기(40)로 출력할 수 있다.For example, in accordance with an indication bit (e.g., 1) indicating that the data contained in the body DATA1 is already compressed data, the
그러나, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터임을 나타내는 지시 비트(예컨대, 0)에 따라 헤더 분석기(25)는 예측기(26)의 동작을 인에이블시키기 위한 제어 신호(예컨대, 하이 레벨을 갖는 제어 신호)를 예측기(26)로 출력한다.However, according to an indication bit (for example, 0) indicating that the data included in the body DATA1 is uncompressed data, the
예측기(26)는 활성화된 제어 신호(예컨대, 하이 레벨을 갖는 제어 신호)에 따라 인에이블되고, 도 3에 도시된 바와 같이 입력 데이터(DATA), 즉 바디(DATA1)에 포함된 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)를 계수한다.The
예측기(26)는 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 코딩 규칙에 따라 코드워드(1011, 101, 10, 10101, 10001, 110, ...)를 할당하고, 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)와 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 할당된 코드워드 (1011, 101, 10, 10101, 10001, 110, ...)의 비트 수(4, 3, 2, 5, 5, 3, ...)를 이용하여 압축될 데이터의 크기를 예측하고, 예측된 압축 데이터(이하, '예측 데이터'라 한다)의 크기와 기준 데이터의 크기를 비교하고 비교 결과를 출력한다.The
즉, 예측기(26)는 실시 예로서 제시된 수학식 1에 따라 예측 데이터(ECDATA)의 크기를 계산할 수 있다.That is, the
[수학식 1][Equation 1]
n(n은 자연수)은 바디(DATA1)에 포함된 데이터의 심벌의 총 수를 나타내고, fi는 i-번째 심벌의 빈도 수를 나타내고, Bi는 i-번째 심벌에 할당된 코드워드 (codeword)의 비트 수를 나타내다.n (n is a natural number) is the number of total symbols of the data contained in the body (DATA1), f i denotes the number of frequency of the i- th symbol, B i is a code word (codeword assigned to the i- th symbol ). ≪ / RTI >
예컨대, 심벌(AA)의 빈도 수는 10이고, 심벌(AA)에 할당된 코드워드(1011)의 비트 수는 3이고, 심벌(CC)의 빈도 수는 1,000이고, 심벌(CC)에 할당된 코드워드 (10)의 비트 수는 2이다.For example, if the frequency of the symbol AA is 10, the number of bits of the
입력 데이터(DATA)의 크기가 5Kbyte이고 기준 데이터의 크기가 3Kbyte이고, 수학식 1에 따라 계산된 예측 데이터(ECDATA)의 크기가 3Kbyte보다 클 때, 예측기 (26)는 버퍼된 데이터(BDi)를 바이패스시킬 것을 지시하는 제2제어 코드를 출력한다. 반대로, 수학식 1에 따라 계산된 예측 데이터(ECDATA)의 크기가 3Kbyte보다 작을 때, 예측기(26)는 버퍼된 데이터(BDi)를 압축시킬 것을 지시하는 제2제어 코드를 출력한다. 예컨대, 기준 데이터의 크기는 입력 데이터(DATA)의 크기의 c(c는 소수, 예컨대, 0.6)배일 수 있다.When the size of the input data DATA is 5 Kbytes and the size of the reference data is 3 Kbytes and the size of the predictive data ECDATA calculated according to Equation 1 is larger than 3 Kbyte, the
도 4에 도시된 분석 코드(INF3)는 헤더(HEADER)에 포함된 지시 비트에 따라 발생한 제1제어 코드와, 예측 데이터(ECDATA)의 크기와 기준 데이터의 크기의 비교 결과에 따라 발생한 제2제어 코드를 포함한다.The analysis code INF3 shown in FIG. 4 includes a first control code generated in accordance with the instruction bit included in the header HEADER, a second control generated according to the result of comparison between the size of the predicted data ECDATA and the size of the reference data, Code.
도 1부터 도 4를 참조하여 설명한 바와 같이, 데이터 압축 관리기(40)가 버퍼된 데이터(BDi)를 바이패스하는 경우는 다음과 같다.As described with reference to FIGS. 1 to 4, the case where the
첫째, 바디(DATA1)에 포함된 데이터가 이미 압축된 경우,First, if the data contained in the body (DATA1) has already been compressed,
둘째, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터이고 예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 큰 경우,Second, when the data included in the body (DATA1) is uncompressed data and the size of the predicted data (ECDATA) is larger than the size of the reference data,
이때 데이터 압축 관리기(40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3)를 분석하고 분석 결과에 따라 버퍼된 데이터(BDi)를 바이패스한다.At this time, the
그러나, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터이고 예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 작은 경우, 데이터 압축 관리기 (40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3)에 따라 버퍼된 데이터(BDi)를 압축하여 압축 데이터(CDATA)를 출력한다.However, if the data included in the body (DATA1) is uncompressed data and the size of the predictive data (ECDATA) is smaller than the size of the reference data, the
상술한 바와 같이, 각각의 입력 데이터(DATA)가 입력 버퍼(30)로 전송되는 동안 데이터 패턴 분석기(20C)는 각각의 입력 데이터(DATA)의 패턴을 분석하고 분석 결과(INF3)를 데이터 압축 관리기(40)로 전송한다. 데이터 압축 관리기(40)는 분석 결과(INF3)에 따라 버퍼된 데이터(BDi)를 바이패스하거나 또는 압축할 수 있다.As described above, while each input data (DATA) is transferred to the
도 5는 본 발명의 또 다른 실시예에 따른 데이터 압축 장치의 블록도를 나타낸다. 도 5에는 패턴 분석기(27)와 예측기(28)를 포함하는 데이터 패턴 분석기 (20D)가 도시되어 있다.5 shows a block diagram of a data compression apparatus according to another embodiment of the present invention. FIG. 5 shows a
즉, 데이터 압축 장치(10D)는 데이터 패턴 분석기(20D), 입력 버퍼(30), 및 데이터 압축 관리기(40)를 포함한다. 실시 예에 따라 데이터 압축 장치(10D)는 출력 버퍼(50)를 더 포함할 수 있다.That is, the
패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)를 계수하고, 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 코딩 규칙에 따라 코드워드 (1011, 101, 10, 10101, 10001, 110, ...)를 할당하고, 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수(10, 100, 1000, 2, 5, 50, ...)와 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 할당된 코드워드(1011, 101, 10, 10101, 10001, 110, ...)를 예측기(28)로 전송한다.The
예측기(28)는 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각의 빈도 수 (10, 100, 1000, 2, 5, 50, ...)와 복수의 심벌들(AA, BB, CC, DD, EE, FF, ...) 각각에 할당된 코드워드(1011, 101, 10, 10101, 10001, 110, ...)의 비트 수(4, 3, 2, 5, 5, 3, ...)를 이용하여 압축될 데이터의 크기를 수학식 1에 따라 예측하고, 예측 데이터(ECDATA)의 크기와 기준 데이터의 크기를 비교하고, 비교 결과에 상응하는 분석 코드(INF4)를 데이터 압축 관리기(40)로 출력한다.The
예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 작은 경우(예컨대, 압축 효율이 좋은 경우), 데이터 압축 관리기(40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3; 예컨대 0)에 따라 버퍼된 데이터(BDi)를 압축하여 생성된 압축 데이터(CDATA)를 출력한다.When the size of the predictive data ECDATA is smaller than the size of the reference data (for example, when the compression efficiency is good), the
그러나, 예측 데이터(ECDATA)의 크기가 기준 데이터의 크기보다 큰 경우(예컨대, 압축 효율이 좋지 않은 경우), 데이터 압축 관리기(40)는 데이터 패턴 분석기(20C)로부터 출력된 분석 코드(INF3; 예컨대 1)에 따라 버퍼된 데이터(BDi)를 바이패스한다.However, when the size of the predictive data ECDATA is larger than the size of the reference data (for example, when the compression efficiency is poor), the
도 6은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.FIG. 6 is a flowchart for explaining the operation of the data compression apparatus shown in FIG. 1A, FIG. 2, FIG. 4, or FIG.
도 1a 내지 도 6을 참조하면, 데이터 패턴 분석기(20A, 20B, 20C, 또는 20D)는 입력 데이터(DATA)에 헤더가 포함되어 있는지의 여부를 검색한다(S10).Referring to FIGS. 1A to 6, the
입력 데이터(DATA)에 헤더(HEADER)가 존재할 때(S20), 헤더 분석기(21)는 헤더(HEADER)에 포함된 지시 비트가 바디(DATA1)에 포함된 데이터가 압축 데이터임을 나타내는지의 여부를 판단한다(S30).When a header HEADER exists in the input data DATA, the
S30의 판단 결과, 바디(DATA1)에 포함된 데이터가 압축 데이터일 때 헤더 분석기(21)는 상기 데이터가 압축 데이터임을 지시하는 분석 코드(INF1)를 데이터 압축 관리기(40)로 전송한다. 따라서 데이터 압축 관리기(40)는 분석 코드(INF1)에 따라 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다(S32). 따라서 데이터 압축 관리기(40)에 의하여 바이패스된 버퍼된 데이터(BDi)는 출력 버퍼(50)를 통하여 비휘발성 메모리 장치에 저장될 수 있다.As a result of the determination in S30, when the data included in the body (DATA1) is compressed data, the
그러나 S30의 판단 결과, 바디(DATA1)에 포함된 데이터가 압축되지 않은 데이터일 때 헤더 분석기(21)는 상기 데이터가 압축되지 않은 데이터임을 지시하는 분석 코드(INF1)를 데이터 압축 관리기(40)로 전송한다. 따라서 데이터 압축 관리기(40)는, 분석 코드(INF1)에 따라, 버퍼된 데이터(BDi)를 압축하여 생성된 압축 데이터(CDATA)를 출력 버퍼(50)로 출력한다(S34). 따라서 데이터 압축 관리기(40)로부터 출력된 압축 데이터(CDATA)는 출력 버퍼(50)를 통하여 비휘발성 메모리 장치에 저장될 수 있다.However, if it is determined in step S30 that the data included in the body (DATA1) is uncompressed data, the
입력 데이터(DATA)에 헤더(HEADER)가 존재하지 않을 때(S30), 패턴 분석기 (23)는 도 2와 도 3을 참조하여 설명한 바와 같이 입력 데이터(DATA)의 패턴을 검색한다(S40).When no header exists in the input data DATA in step S30, the
도 7은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.FIG. 7 is a flowchart for explaining the operation of the data compression apparatus shown in FIG. 1A, FIG. 2, FIG. 4, or FIG.
도 2에 도시된 패턴 분석기(23)는 입력 데이터(DATA)의 패턴을 분석한다 (S42). 즉, 패턴 분석기(23)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 계수된 빈도 수들 중에서 최대 빈도 수(또는 최소 빈도 수)와 기준 값을 비교한다(S44).The pattern analyzer 23 shown in FIG. 2 analyzes the pattern of the input data (DATA) (S42). That is, the
S44의 비교 결과, 상기 최대 빈도 수(또는 최소 빈도 수)가 상기 기준 값보다 클 때, 패턴 분석기(23)는 버퍼된 데이터(BDi)의 압축을 지시하는 분석 코드 (INF2)를 데이터 압축 관리기(40)로 전송한다. 따라서, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 압축하고(S46), 압축 데이터(CDATA)를 출력 버퍼(50)로 전송한다. 출력 버퍼(50)에 저장된 압축 데이터(CDATA)는 비휘발성 메모리 장치에 저장된다.When the maximum frequency number (or the minimum frequency number) is larger than the reference value as a result of the comparison in S44, the
S44의 비교 결과, 상기 최대 빈도 수(또는 최소 빈도 수)가 상기 기준 값보다 작을 때, 패턴 분석기(23)는 버퍼된 데이터(BDi)의 바이패스를 지시하는 분석 코드(INF2)를 데이터 압축 관리기(40)로 전송한다. 따라서, 데이터 압축 관리기 (40)는 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다(S48).If the maximum frequency number (or the minimum frequency number) is smaller than the reference value as a result of the comparison in S44, the
도 8은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치의 동작을 설명하기 위한 플로우차트이다.FIG. 8 is a flowchart for explaining the operation of the data compression apparatus shown in FIG. 1A, FIG. 2, FIG. 4, or FIG.
도 5에 도시된 패턴 분석기(27)는 입력 데이터(DATA)의 패턴을 분석한다 (S42). 즉 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 코딩 규칙에 따라 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드를 예측기(28)로 출력한다.The pattern analyzer 27 shown in FIG. 5 analyzes the pattern of the input data (DATA) (S42). That is, the
예측기(28)는 패턴 분석기(27)로부터 출력된 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 수학식 1에 따라 예측 데이터(ECDATA)의 크기를 계산한다(S80).The
예측기(28)는 예측 데이터의 크기와 기준 데이터의 크기를 비교하고(S82), 상기 예측 데이터의 크기와 상기 기준 데이터의 크기보다 클 때, 예측기(28)는 버퍼된 데이터(BDi)의 바이패스를 지시하는 분석 코드(INF4)를 데이터 압축 관리기 (40)로 전송한다. 따라서, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 출력 버퍼(50)로 바이패스한다(S84). 그 후 출력 버퍼(50)에 저장된 버퍼된 데이터(BDi)는 비휘발성 메모리 장치에 저장된다(S88).The
상기 예측 데이터의 크기와 상기 기준 데이터의 크기보다 작을 때, 예측기 (28)는 버퍼된 데이터(BDi)의 압축을 지시하는 분석 코드(INF4)를 데이터 압축 관리기(40)로 전송한다. 따라서, 데이터 압축 관리기(40)는 버퍼된 데이터(BDi)를 압축하고(S86), 압축 데이터(CDATA)를 출력 버퍼(50)로 전송한다. 출력 버퍼(50)에 저장된 압축 데이터(CDATA)는 비휘발성 메모리 장치에 저장된다(S88).The
패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 카운트하고 코딩 규칙에 따라 상기 복수의 심벌들 각각에 코드워드를 할당한다.The pattern analyzer 27 counts the frequency of each of a plurality of symbols included in the input data DATA and assigns a code word to each of the plurality of symbols according to a coding rule.
상기 코딩 규칙은 호프만 코딩 규칙(Huffman coding rule), LZW 코딩 규칙 (Lempel Zip Welch rule), 산술 코딩 규칙(Arithmetic coding rule), 또는 RLE(Run Length Encoding)일 수 있다. 또한, 상기 호프만 코딩 규칙은 정적 호프만 코딩 규칙과 동적 호프만 코딩 규칙을 포함한다.The coding rule may be a Huffman coding rule, a Lempel Zip Welch rule, an arithmetic coding rule, or an RLE (Run Length Encoding). In addition, the Hoffman coding rule includes a static Hoffman coding rule and a dynamic Hoffman coding rule.
도 9는 정적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.Fig. 9 is a flowchart for explaining the operation of the pattern analyzer shown in Fig. 5 using the static Hoffman coding rule.
도 5와 도 9를 참조하면, 패턴 분석기(27)는 입력 데이터(DATA)의 패턴을 검색한다(S40). 즉 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 심벌이 발견될 때마다(S61), 해당 심벌의 빈도 수를 +1증가시킨다(S62).Referring to FIGS. 5 and 9, the
패턴 분석기(27)는 입력 데이터(DATA) 모두에 대하여 심벌 단위로 S40, S61, 및 S62를 수행한다(S63). 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 코딩 규칙(예컨대, 정적 호프만 코딩 규칙)에 따라 상기 복수의 심벌들 각각에 코드워드를 할당한다(S64).The
도 10은 동적 호프만 코딩 규칙을 이용하는 도 5에 도시된 패턴 분석기의 동작을 설명하기 위한 플로우차트이다.FIG. 10 is a flowchart for explaining the operation of the pattern analyzer shown in FIG. 5 using the dynamic Hoffman coding rule.
도 5와 도 10을 참조하면, 패턴 분석기(27)는 입력 데이터(DATA)의 패턴을 검색한다(S40). 즉 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 심벌이 발견되면(S66), 상기 심벌이 새로운 심벌인지의 여부를 판단하고(67), 상기 심벌이 새로운 심벌이면 상기 심벌을 심벌 리스트에 추가하고(S68), 해당 심벌의 빈도 수를 +1증가시킨다(S69). 그러나 발견된 심벌이 새로운 심벌이 아닐 때(S67), 해당 심벌의 빈도 수를 +1증가시킨다(S69).Referring to FIGS. 5 and 10, the
패턴 분석기(27)는 입력 데이터(DATA) 모두에 대하여 심벌 단위로 S66~69를 수행한다(S70). 패턴 분석기(27)는 입력 데이터(DATA)에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 코딩 규칙(예컨대, 동적 호프만 코딩 규칙)에 따라 상기 복수의 심벌들 각각에 코드워드를 할당한다(S71).The
도 11은 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 일 실시예를 나타낸다.FIG. 11 shows an embodiment of a data processing system including the data compression apparatus shown in FIGS. 1A, 2, 4, or 5.
데이터 처리 시스템(100)은 SSD(solid state drive)로 구현될 수 있다. 또한, 데이터 처리 시스템(100)은 데이터 패턴 분석기(20A부터 20D를 총괄적으로 '20'으로 나타냄)와 데이터 압축 관리기(40)를 포함하는 모든 데이터 처리 장치를 포함한다.The
데이터 처리 시스템(100)은 메모리 컨트롤러(90)와 복수의 플래시 메모리 장치들(141)을 포함한다. 메모리 컨트롤러(90)는 데이터 패턴 분석기(20)를 포함하는 호스트 인터페이스(101), 데이터 압축 관리기(40), 메인 프로세서(110), 휘발성 메모리(120), 및 플래시 관리 컨트롤러(Flash Management Controller(FMC); 140)를 포함한다. 각 구성 요소(40, 101, 110, 120, 및 140)는 데이터 버스(100-1)를 통하여 서로 데이터 통신을 수행할 수 있다.The
호스트 인터페이스(101)는 호스트와 메모리 컨트롤러(90)에서 데이터 통신을 위한 인터페이스 기능을 수행한다.The
도 11에 도시된 DRAM(dynamic random access memory)으로 구현된 휘발성 메모리(120)는 도 1a, 도 2, 도 4, 또는 도 5에 도시된 입력 버퍼(30)와 출력 버퍼(50)의 기능을 함께 수행할 수 있다.The
호스트로부터 출력된 입력 데이터(DATA)가 제1데이터 경로(PATH1)를 통하여 휘발성 메모리(120)로 전송되는 도중에, 데이터 패턴 분석기(20)는 입력 데이터 (DATA)를 가로채서 입력 데이터(DATA)의 패턴을 분석한다. 입력 데이터(DATA)의 패턴을 분석하는 각 방법은 도 1부터 도 10을 참조하여 설명한 바와 같다.The
데이터 패턴 분석기(20)는 분석 결과에 따른 분석코드(INF1, INF2, INF3, 또는 INF4)를 데이터 압축 관리기(40)로 전송한다.The
데이터 압축 관리기(40)는 바이패스를 지시하는 분석코드(INF1, INF2, INF3, 또는 INF4)에 따라 제2데이터 경로(PATH2)를 통하여 휘발성 메모리(120)의 입력 버퍼로부터 리드된 버퍼된 데이터(BDi)를 바이패스하여 휘발성 메모리(120)의 출력 버퍼에 저장한다.The
그러나, 데이터 압축 관리기(40)는 압축을 지시하는 분석코드(INF1, INF2, INF3, 또는 INF4)에 따라 제2데이터 경로(PATH2)를 통하여 휘발성 메모리(120)의 입력 버퍼로부터 리드된 버퍼된 데이터(BDi)를 압축하여 압축 데이터를 휘발성 메모리(120)의 출력 버퍼에 저장한다.However, the
휘발성 메모리(120)의 출력 버퍼에 저장된 데이터, 즉 바이패스된 입력 데이터(DATA) 또는 압축 데이터(CDATA)는 제3데이터 경로(PATH3)를 통하여 FMC(140)로 전송되고, FMC(140)로 전송된 바이패스된 입력 데이터(DATA) 또는 압축 데이터 (CDATA)는 FMC(140)의 제어에 따라 복수의 플래시 메모리 장치들(141) 중에서 적어도 하나의 플래시 메모리 장치로 전송된다.The data stored in the output buffer of the
도 12는 도 1a, 도 2, 도 4, 또는 도 5에 도시된 데이터 압축 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.Fig. 12 shows another embodiment of a data processing system including the data compression apparatus shown in Figs. 1A, 2, 4, or 5.
도 12를 참조하면, 스마트 카드(smart card) 또는 메모리 카드(memory card)로 구현될 수 있는 데이터 처리 시스템(200)은 카드 인터페이스(210), 메모리 컨트롤러(220), 및 비휘발성 메모리 장치(230)를 포함한다.12, a
메모리 컨트롤러(220)는 데이터 압축 장치(10A, 10B, 10C, 또는 10D; 총괄적으로 10으로 표시한다)를 포함한다. 실시 예에 따라 데이터 압축 장치(10)는 메모리 컨트롤러(220)의 외부에 구현될 수도 있다.The
카드 인터페이스(210)는 메모리 컨트롤러(220)와 호스트 사이에서 주고받는 데이터의 교환을 제어하고, 메모리 컨트롤러(220)는 비휘발성 메모리 장치(230)의 동작, 예컨대 프로그램(program) 동작, 리드(read) 동작, 또는 이레이즈(erase) 동작을 제어한다.The
데이터 압축 장치(10)는 호스트로부터 출력되고 카드 인터페이스(210)를 통하여 입력된 데이터(DATA)가 입력 버퍼(30)로 전송되는 도중에 데이터(DATA)의 패턴을 분석하고 분석 결과에 따라 입력 버퍼(30)에 의하여 버퍼된 데이터(BDi)를 비휘발성 메모리 장치(230)로 바이패스하거나 또는 버퍼된 데이터(BDi)를 압축하여 압축 데이터(CDATA)를 비휘발성 메모리 장치(230)로 전송한다.The
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
10A, 10B, 10C, 및 10D: 데이터 압축 장치
20A, 20B, 20C, 및 20D: 데이터 패턴 분석기
30: 입력 버퍼
40: 데이터 압축 관리기
41: 메모리
43: 프로세서
45: 선택기
101: 호스트 장치]
110: 메인 프로세서
120: DRAM
140: 플래시 관리 컨트롤러
210: 카드 인터페이스
220: 메모리 컨트롤러
230: 메모리 장치10A, 10B, 10C, and 10D: Data compression device
20A, 20B, 20C, and 20D: a data pattern analyzer
30: Input buffer
40: Data compression manager
41: Memory
43: Processor
45: selector
101: host device]
110: main processor
120: DRAM
140: Flash management controller
210: Card interface
220: Memory controller
230: memory device
Claims (19)
상기 데이터 패턴 분석기가 입력 버퍼로 전송되는 입력 데이터를 수신하는 단계;
상기 입력 버퍼를 이용하여 상기 입력 데이터를 버퍼링하는 동안, 상기 데이터 패턴 분석기가 상기 입력 데이터의 패턴을 분석하고, 상기 입력 버퍼에 의해 버퍼링된 데이터를 압축할지 여부를 결정하기 위한 분석 결과를 출력하는 단계; 및
상기 데이터 압축 관리기가 상기 분석 결과에 기초하여, 상기 버퍼링된 데이터를 바이패스하거나 또는 상기 버퍼링된 데이터를 압축하는 단계를 포함하는 데이터 압축 장치의 동작 방법.1. A method of operating a data compression apparatus comprising a data pattern analyzer and a data compression manager,
The data pattern analyzer receiving input data transmitted to an input buffer;
Analyzing the pattern of the input data while the data pattern analyzer is buffering the input data using the input buffer and outputting an analysis result for determining whether to compress the buffered data by the input buffer ; And
And the data compression manager bypasses the buffered data or compresses the buffered data based on the analysis result.
상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 지시하는 지시 비트를 분석하여 상기 분석 결과를 출력하는 데이터 압축 장치의 동작 방법. The method of claim 1, wherein the outputting of the analysis result comprises:
And analyzing an instruction bit included in the header of the input data and indicating whether the input data is compressed, and outputting the analysis result.
상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하는 단계; 및
최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 결과로서 출력하는 단계를 포함하는 데이터 압축 장치의 동작 방법.The method of claim 1, wherein the outputting of the analysis result comprises:
Counting a frequency of each of a plurality of symbols included in the input data; And
And outputting a result of the comparison between any one of the maximum frequency and the minimum frequency and the reference value as the analysis result.
상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하는 단계;
상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측 데이터의 크기를 계산하는 단계; 및
상기 예측 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 결과로서 출력하는 데이터 압축 장치의 동작 방법.The method of claim 1, wherein the outputting of the analysis result comprises:
Counting a frequency of each of a plurality of symbols included in the input data and assigning a code word to each of the plurality of symbols;
Calculating a size of predictive data using the frequency of each of the plurality of symbols and the number of bits of the code word allocated to each of the plurality of symbols; And
And outputting a result of the comparison between the size of the prediction data and the size of the reference data as the analysis result.
상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 지시하는 지시 비트를 분석하는 단계;
상기 지시 비트의 분석 결과에 따라, 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하는 단계; 및
최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 결과로서 출력하는 단계를 포함하는 데이터 압축 장치의 동작 방법.The method of claim 1, wherein the outputting of the analysis result comprises:
Analyzing an indication bit included in a header of the input data and indicating whether the input data is compressed;
Counting the frequency of each of the plurality of symbols included in the input data according to the analysis result of the indication bit; And
And outputting a result of the comparison between any one of the maximum frequency and the minimum frequency and the reference value as the analysis result.
상기 분석 결과를 메모리에 저장하는 단계; 및
상기 메모리에 저장된 상기 분석 결과에 따라 상기 버퍼링된 데이터를 바이패스하거나 또는 프로세서를 이용하여 상기 버퍼링된 데이터를 압축하는 단계를 포함하는 데이터 압축 장치의 동작 방법.2. The method of claim 1, wherein bypassing or compressing the buffered data comprises:
Storing the analysis result in a memory; And
And buffering the buffered data according to the analysis result stored in the memory or compressing the buffered data using a processor.
상기 입력 버퍼로 전송되는 입력 데이터를 수신하고, 상기 입력 데이터의 패턴을 분석하고, 상기 입력 버퍼에 의해 버퍼링된 데이터를 압축할지 여부를 결정하기 위한 분석 코드를 출력하기 위한 데이터 패턴 분석기; 및
상기 분석 코드에 기초하여, 상기 버퍼링된 데이터를 비휘발성 메모리 장치로 바이패스하거나 또는 상기 버퍼링된 데이터를 압축하여 생성된 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 관리기를 포함하는 데이터 압축 장치.An input buffer;
A data pattern analyzer for receiving input data transmitted to the input buffer, analyzing a pattern of the input data, and outputting an analysis code for determining whether to compress data buffered by the input buffer; And
And a data compression manager for bypassing the buffered data to the nonvolatile memory device or transmitting the compressed data generated by compressing the buffered data to the nonvolatile memory device based on the analysis code, .
상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 나타내는 지시 비트를 분석하여 상기 분석 코드를 출력하는 데이터 압축 장치.9. The apparatus of claim 8, wherein the data pattern analyzer comprises:
And outputs the analysis code by analyzing an instruction bit included in a header of the input data and indicating whether the input data is compressed.
상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 코드로서 출력하는 데이터 압축 장치.9. The apparatus of claim 8, wherein the data pattern analyzer comprises:
Wherein the number of frequencies of each of the plurality of symbols included in the input data is counted and the comparison result of any one of the maximum frequency and the minimum frequency is compared with the reference value as the analysis code.
상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 데이터 압축 장치.9. The apparatus of claim 8, wherein the data pattern analyzer comprises:
A frequency of each of a plurality of symbols included in the input data is counted, a code word is allocated to each of the plurality of symbols, and a frequency of each of the plurality of symbols and a frequency allocated to each of the plurality of symbols And outputs the comparison result of the size of the predicted data and the size of the reference data as the analysis code using the number of bits of the code word.
상기 입력 데이터의 헤더에 포함된 상기 입력 데이터의 압축 여부를 나타내는 지시 비트에 따라 제어 신호를 출력하는 헤더 분석기; 및
활성화된 상기 제어 신호에 따라 인에이블되고, 상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 예측기를 포함하는 데이터 압축 장치.9. The apparatus of claim 8, wherein the data pattern analyzer comprises:
A header analyzer for outputting a control signal according to an indication bit indicating whether or not the input data included in the header of the input data is compressed; And
Wherein the control unit is enabled in response to the activated control signal, counts the frequency of each of a plurality of symbols included in the input data, assigns a code word to each of the plurality of symbols, And a predictor for outputting the comparison result of the size of the predicted data and the size of the reference data as the analysis code using the number of bits of the code word allocated to each of the plurality of symbols.
상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고 상기 복수의 심벌들 각각에 코드워드를 할당하는 패턴 분석기; 및
상기 패턴 분석기로부터 출력된 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드를 수신하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 예측기를 포함하는 데이터 압축 장치.9. The apparatus of claim 8, wherein the data pattern analyzer comprises:
A pattern analyzer for counting the frequency of each of a plurality of symbols included in the input data and assigning a code word to each of the plurality of symbols; And
A pattern analyzer for receiving a frequency number of each of the plurality of symbols and a code word allocated to each of the plurality of symbols, and for calculating a frequency of each of the plurality of symbols, And a predictor for outputting a result of the comparison between the size of the predicted data and the size of the reference data using the number of bits of the code word as the analysis code.
상기 분석 코드를 저장하기 위한 메모리;
상기 버퍼링된 데이터를 압축하여 상기 압축 데이터를 출력하는 프로세서; 및
상기 메모리에 저장된 상기 분석 코드에 따라, 상기 버퍼링된 데이터를 상기 비휘발성 메모리 장치로 바이패스하거나 또는 상기 프로세서로 전송하기 위한 선택기를 포함하는 데이터 압축 장치.9. The data compression method according to claim 8,
A memory for storing the analysis code;
A processor for compressing the buffered data and outputting the compressed data; And
And a selector for bypassing or transferring the buffered data to the non-volatile memory device according to the analysis code stored in the memory.
바이패스된 입력 데이터 또는 압축 데이터를 상기 비휘발성 메모리 장치로 전송하는 데이터 압축 장치를 포함하며,
상기 데이터 압축 장치는,
입력 버퍼;
상기 입력 버퍼로 전송되는 입력 데이터를 수신하고, 상기 입력 데이터가 상기 입력 버퍼로 전송되는 동안, 상기 입력 데이터의 패턴을 분석하고, 상기 입력 버퍼에 의해 버퍼링된 데이터를 압축할지 여부를 결정하기 위한 분석 코드를 출력하기 위한 데이터 패턴 분석기; 및
상기 분석 코드에 기초하여, 상기 버퍼링된 데이터를 상기 바이패스된 입력 데이터로서 출력하거나 또는 상기 버퍼링된 데이터를 압축하여 상기 압축 데이터를 출력하는 데이터 압축 관리기를 포함하는 데이터 처리 장치.A nonvolatile memory device;
And a data compression device for transferring the bypassed input data or compressed data to the nonvolatile memory device,
Wherein the data compression device comprises:
An input buffer;
An analysis for analyzing a pattern of the input data while the input data is being transmitted to the input buffer and for determining whether to compress the data buffered by the input buffer, A data pattern analyzer for outputting a code; And
And a data compression manager for outputting the buffered data as the bypassed input data or compressing the buffered data and outputting the compressed data based on the analysis code.
상기 입력 데이터의 헤더에 포함되며, 상기 입력 데이터의 압축 여부를 나타내는 지시 비트를 분석하여 상기 분석 코드를 출력하는 데이터 처리 장치.16. The apparatus of claim 15, wherein the data pattern analyzer comprises:
And outputs the analysis code by analyzing an indication bit included in a header of the input data and indicating whether or not the input data is compressed.
상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 최대 빈도 수와 최소 빈도 수 중에서 어느 하나와 기준 값의 비교 결과를 상기 분석 코드로서 출력하는 데이터 처리 장치.16. The apparatus of claim 15, wherein the data pattern analyzer comprises:
Wherein the number of frequencies of each of the plurality of symbols included in the input data is counted and the comparison result of any one of the maximum frequency and the minimum frequency is compared with the reference value as the analysis code.
상기 입력 데이터에 포함된 복수의 심벌들 각각의 빈도 수를 계수하고, 상기 복수의 심벌들 각각에 코드워드를 할당하고, 상기 복수의 심벌들 각각의 빈도 수와 상기 복수의 심벌들 각각에 할당된 코드워드의 비트 수를 이용하여 예측된 데이터의 크기와 기준 데이터의 크기의 비교 결과를 상기 분석 코드로서 출력하는 데이터 처리 장치.16. The apparatus of claim 15, wherein the data pattern analyzer comprises:
A frequency of each of a plurality of symbols included in the input data is counted, a code word is allocated to each of the plurality of symbols, and a frequency of each of the plurality of symbols and a frequency allocated to each of the plurality of symbols And outputs the result of comparison between the size of the predicted data and the size of the reference data using the number of bits of the code word as the analysis code.
상기 분석 코드를 저장하기 위한 메모리;
상기 버퍼링된 데이터를 압축하여 상기 압축 데이터를 출력하는 프로세서; 및
상기 메모리에 저장된 상기 분석 코드에 따라, 상기 입력 버퍼로부터 출력된 상기 입력 데이터를 상기 바이패스된 입력 데이터로서 출력하거나 또는 상기 프로세서로 전송하기 위한 선택기를 포함하는 데이터 처리 장치.16. The data compression apparatus of claim 15,
A memory for storing the analysis code;
A processor for compressing the buffered data and outputting the compressed data; And
And a selector for outputting the input data output from the input buffer as the bypassed input data or transmitting the input data to the processor according to the analysis code stored in the memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170054930A KR101818440B1 (en) | 2017-04-28 | 2017-04-28 | Data compression device, operation method using the same, and data processing apparatus having the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170054930A KR101818440B1 (en) | 2017-04-28 | 2017-04-28 | Data compression device, operation method using the same, and data processing apparatus having the same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20110005575A Division KR20120084180A (en) | 2011-01-19 | 2011-01-19 | Data compression device, operation method using the same, and data processing apparatus having the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170051401A KR20170051401A (en) | 2017-05-11 |
KR101818440B1 true KR101818440B1 (en) | 2018-03-02 |
Family
ID=58742050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170054930A KR101818440B1 (en) | 2017-04-28 | 2017-04-28 | Data compression device, operation method using the same, and data processing apparatus having the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101818440B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010098744A (en) * | 2008-10-20 | 2010-04-30 | Toshiba Corp | Image processing apparatus and image processing method |
-
2017
- 2017-04-28 KR KR1020170054930A patent/KR101818440B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010098744A (en) * | 2008-10-20 | 2010-04-30 | Toshiba Corp | Image processing apparatus and image processing method |
Also Published As
Publication number | Publication date |
---|---|
KR20170051401A (en) | 2017-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5881416B2 (en) | Data compression apparatus and data processing apparatus including data compression apparatus | |
CN107925418B (en) | Method, apparatus and system for hybrid data compression and decompression | |
EP1832000B1 (en) | Device and data method for selective compression and decompression and data format for compressed data | |
US8144037B2 (en) | Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems | |
KR20080023191A (en) | Device and method for accessing binary data in fusion memory | |
US8125364B2 (en) | Data compression/decompression method | |
US20090016453A1 (en) | Combinatorial coding/decoding for electrical computers and digital data processing systems | |
CN112514264A (en) | Data compression method, data decompression method, related device, electronic equipment and system | |
US10891082B2 (en) | Methods for accelerating compression and apparatuses using the same | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
EP3195481B1 (en) | Adaptive rate compression hash processing device | |
CN115115720A (en) | Image decoding and encoding method, device and equipment | |
US11960986B2 (en) | Neural network accelerator and operating method thereof | |
CN107251438B (en) | Data compression apparatus and method, data decompression apparatus and method, and recording medium | |
US10565182B2 (en) | Hardware LZMA compressor | |
US10103747B1 (en) | Lossless binary compression in a memory constrained environment | |
KR101818440B1 (en) | Data compression device, operation method using the same, and data processing apparatus having the same | |
US8452902B2 (en) | Methods for transmitting buffer size information | |
AU2016201253A1 (en) | Information processing apparatus, and data management method | |
KR20180067956A (en) | Apparatus and method for data compression | |
US11275505B2 (en) | Storage system | |
GB2321375A (en) | Data encoding and decoding | |
CN110247666B (en) | System and method for hardware parallel compression | |
US20220322136A1 (en) | Compatible packet separation for communication networks | |
JP5826390B2 (en) | Transfer method and graph processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |