WO2023017956A1 - 데이터 압축 방법 및 장치 - Google Patents

데이터 압축 방법 및 장치 Download PDF

Info

Publication number
WO2023017956A1
WO2023017956A1 PCT/KR2022/005805 KR2022005805W WO2023017956A1 WO 2023017956 A1 WO2023017956 A1 WO 2023017956A1 KR 2022005805 W KR2022005805 W KR 2022005805W WO 2023017956 A1 WO2023017956 A1 WO 2023017956A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
compression
blocks
stored
header
Prior art date
Application number
PCT/KR2022/005805
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020220013314A external-priority patent/KR20230022289A/ko
Application filed by 김정훈 filed Critical 김정훈
Publication of WO2023017956A1 publication Critical patent/WO2023017956A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Definitions

  • the present invention relates to a data compression method and apparatus, and more particularly, to a data compression method and apparatus capable of efficiently compressing data through a simple operation and improving data transmission efficiency.
  • CCITT V.42 bis which is a coding algorithm standardized by the International Telecommunication Union (ITU) and used in data transmission systems such as modems.
  • the basis applied to this encoding standard is the Ziv-Lempel code (ZLC), and this method adaptively forms a dictionary from input data, and uses the address value of a dictionary that stores the same phrase as the previous input data as a code. way to transmit.
  • ZLC Ziv-Lempel code
  • this method adaptively forms a dictionary from input data, and uses the address value of a dictionary that stores the same phrase as the previous input data as a code. way to transmit.
  • the dictionary operation the dictionary is updated by continuously performing string matching with the input data, combining unmatched characters with a maximum length matching string, and adding them to the dictionary.
  • the technical problem to be achieved by the present invention is to efficiently compress data through a simple operation, and to perform parallel compression and parallel restoration (decompression) of data according to a deflate compression algorithm, which is a well-known algorithm. It is to provide a compression method and apparatus.
  • the present invention comprises the steps of a processor dividing original data into a plurality of big blocks; and wherein the processor generates a compression block set including a plurality of compression blocks generated by compressing the plurality of divided big blocks, respectively, and generates a compression header having information about the plurality of compression blocks and the compression block set.
  • the compression header includes a header block having information on the number of compression blocks included in the compression block set, and a size of the corresponding compression block corresponding to each compression block
  • a data compression method and apparatus compresses and converts data through simple calculation and hardware configuration, thereby improving data compression efficiency, and in particular, according to the deflate compression algorithm, which is a well-known algorithm.
  • Data compression efficiency and performance can be further improved by enabling parallel compression and parallel restoration (decompression) of data.
  • FIG. 1 illustrates the configuration of a data compression device and a decompression device according to an embodiment of the present invention.
  • FIG. 3 illustrates the configuration of a header block included in a compression header of compressed data.
  • FIG. 4 illustrates a configuration of a stored block set included in a compression header of compressed data.
  • FIG. 5 conceptually illustrates a process of generating compressed data from original data in a compression method according to an embodiment of the present invention.
  • FIG. 6 conceptually illustrates a process of restoring original data from compressed data according to an embodiment of the present invention.
  • FIG. 1 shows the configuration of a data compression device and a decompression device according to an embodiment of the present invention
  • FIG. 2 shows the configuration of compressed data obtained by compressing original data
  • FIG. 3 shows a compression header of compressed data
  • Figure 4 shows the structure of a stored block set included in the compression header of compressed data
  • Figure 5 shows original data in a compression method according to an embodiment of the present invention.
  • 6 conceptually illustrates a process of restoring original data from compressed data according to an embodiment of the present invention
  • FIGS. 7 to 11 conceptually illustrate a process of generating compressed data from It shows the configuration of each compression block included in compressed data, and an embodiment according to the present invention will be described with reference to this.
  • the data compression apparatus 100 includes a processor 110 and an output unit 120 .
  • the processor 110 divides original data into a plurality of big blocks, compresses each of the divided plurality of big blocks to generate a compression block set including a plurality of compression blocks 21-25, and compresses the plurality of compression blocks.
  • Compressed data is generated by combining the compressed header 20 having information about the blocks 21-25 with the compressed block set.
  • the output unit 120 outputs the compressed data to a data decompression device (decoder) 200, which is a destination device.
  • the compression header 20 includes a header block (HB) having information on the number of compression blocks 21-25 included in the compression block set, and corresponding compression blocks corresponding to each compression block 21-25. It includes a plurality of stored block sets (SBS1-SBS5) having information on block sizes.
  • HB header block
  • SBS1-SBS5 stored block sets
  • each of the plurality of stored block sets includes a plurality of stored blocks (SB1 to SB4) of a preset number, and the number of stored blocks (SB1 to SB4)
  • Each includes at least one specific bit group 401-404, and a combination of the specific bit groups 401-404 respectively included in the plurality of stored blocks SB1-SB4 indicates the size of the corresponding compressed block.
  • the specific bit groups 401 to 404 include n bits (n is a natural number) (for example, 5 bits) in the direction from the most significant bit to the least significant bit of each stored block (SB1 to SB4).
  • the stored blocks SB1 to SB4 may be based on a deflate compression algorithm.
  • the header block HB may include a plurality of header stored blocks HSB1 to HSB3 of a preset number, each of which has at least one specific bit. It includes groups 301 to 303, and a combination of specific bit groups 301 to 303 respectively included in a plurality of header stored blocks HSB1 to HSB3 represents the number of compression blocks 21 to 25.
  • the header stored blocks HSB1 to HSB3 may follow a deflate compression algorithm.
  • Each of the compressed blocks 21 to 25 includes a stored block for identification to identify whether the corresponding compressed block is a final compressed block, and the stored block for identification may be based on a deflate compression algorithm.
  • the processor 110 of the data compression device 100 divides original data into a plurality of big blocks (big blocks 1 to 5) as shown in the figure below.
  • the processor 110 compresses the divided plurality of big blocks, respectively, to generate a compression block set including a plurality of compression blocks 21 to 25, and a plurality of compression blocks 21. -25) and the compression block set are combined to generate compressed data.
  • the case where the number of the big block and the compressed block of the original data is 5 is described as an example, but this is only an example and is not limited thereto.
  • the compression header 20 data in the form of a stored block among three data compression block types used in a deflate algorithm, which is a known algorithm, is used.
  • the deflate algorithm uses three types of compression blocks: dynamic block, static block, and stored block.
  • the stored block format is used as a compression header. do.
  • the structure of one stored block used in this embodiment is as follows. First, 5 bytes are arranged from the highest bit to the lowest bit. The rightmost bit y of byte1 indicates whether the corresponding stored block is the last block (in case of the last block: 1, if it is not the last block: 0), 00 on the left of y is a unique pattern of the stored block, and 5 bits of xxxxx are just arbitrary bits (any value has no effect on compressed data).
  • a stored block without stored raw data that is, consisting of only the first 5 bytes (byte 1 to byte 5) is used.
  • the two forms are as follows. . Since there is no stored raw data in these two stored blocks, byte 2 and byte 3 are binary numbers representing 0, respectively, and byte 4 and byte 5 are binary numbers representing 255 as the complements of byte 2 and byte 3, respectively. becomes
  • 5 bits (xxxxx) in front of byte 1 are used to indicate the number of compression blocks or the size of compression blocks .
  • the compression header 20 uses a header block having three header stored blocks (HSB1-HSB3) and a set of five stored blocks (SBS1-SBS5), each stored block set having four stored blocks. (SB1-SB4).
  • a header block (HB) with three header stored blocks (HSB1-HSB3) is used to indicate the number of compression blocks (21-25), and a set of five stored blocks (SBS1-SBS5) respectively corresponds to the compression Used to indicate the size of a block.
  • the stored block set is composed of four stored blocks SB1 to SB4, but this is exemplary and is not limited thereto.
  • the header block (HB) includes a plurality of header stored blocks (HSB1-HSB3) of a preset number (eg, 3, but is not limited thereto), and each of the header stored blocks includes at least one specific bit group (301 -303), but a combination of specific bit groups 301 to 303 respectively included in the plurality of header stored blocks HSB1 to HSB3 is used to indicate the number of compression blocks.
  • a preset number eg, 3, but is not limited thereto
  • each of the header stored blocks includes at least one specific bit group (301 -303), but a combination of specific bit groups 301 to 303 respectively included in the plurality of header stored blocks HSB1 to HSB3 is used to indicate the number of compression blocks.
  • each of the stored block sets SBS1 to SBS5 includes a preset number of stored blocks SB1 to SB4 (four in this embodiment), and each of the stored blocks includes at least one specific It includes bit groups (four bit groups 401 to 404 in this embodiment), and a combination of the specific bit groups each included in the stored block represents the size of the corresponding compressed block.
  • the stored block set SBS1 represents the size of the compression block 21.
  • the specific bit group includes n bits (n is a natural number) (eg, 5 bits, but is not limited thereto) in a direction from the most significant bit to the least significant bit of each of the stored blocks SB1 to SB4.
  • the sizes of the five compression blocks 21-25 are 65536, 65536, 65536, 65536, and 65536, respectively, if they are expressed in 20 bits, 65536 is 1 11111 11111 11111 in binary, so if expressed in 20 bits, it is as follows.
  • each of the four stored blocks SB1 to SB4 is as follows.
  • the five stored block sets (SBS1-SBS5) of the corresponding compressed header 20 are as follows.
  • the compression header 20 obtained in the above embodiment is represented by a combination of the header block (HB) of [Equation 1] and the stored block set (SBS1-SBS5) of [Equation 2], and finally shown in FIG. As shown , the compressed data is a compression header 20 + a compression block set 21-25 .
  • the compression header 20 is created when compression of original data is completed and compression blocks 21 to 25 are generated and the size of each compression block is confirmed, and is finally attached in front of the compression block set.
  • each compressed block 21 to 25 may include a stored block for identification to identify whether the corresponding compressed block is the final compressed block, and the stored block for identification follows a deflate compression algorithm. For example, as shown in FIGS. 7 to 9, if there are three compression blocks of 34307 bytes + 41950 bytes + 15114 bytes, the least significant bit of the first byte in the stored block for identification at the end of FIGS. 7 and 8 Since the value is 0, this indicates that the corresponding compressed block is not the final block, and in the stored block for identification at the end of FIG. 9, since the value of the least significant bit of the first byte is 1, it indicates that the corresponding compressed block is the final block. , According to the known deflate compression algorithm, if the actual compressed data is a thin dotted line box in FIG. Indicates that the block is the final block).
  • the first bit value “0” in front of the second thin dotted line box becomes an identification bit, which indicates that the corresponding compressed block is not the final block (e.g., known deflate compression
  • the thick box is a bit string constituting the stored block, which is not the actual compressed data, and deflate compression to form a stored block whose size is 0 It is a kind of header format required by the algorithm).
  • the actual compressed data is a thin dotted line box part ("00110110 00001011 11111111 10111") in FIG.
  • the value of the bit in front of "10111", 0, becomes an identification bit, and the corresponding compressed block is also not the final block. indicates In this way, the identification bit for determining whether the corresponding compressed block is the final block may be determined according to the extent of "actually compressed data" in the stored block for identification. This is applicable to compressed data according to a known deflate compression algorithm, and of course is not limited thereto and may be applied to various compression algorithms.
  • the decoder of other compressed programs not the decoder (decompression device) according to the present embodiment, can sequentially restore (decompress) regardless of the classification of the big block, and the compressed block of the next big block must be This is so that it can start from the boundary of bytes.
  • the size of one stored raw data is 0 and the stored block, which is the last block, is additionally attached.
  • the stored block in case of the last block follows the standard algorithm.
  • the compression header is finally created after all big block compression of the original data is completed and the size of each big block compressed data is checked, and is attached to the front.
  • the decoder (data decompression device 200) in the present embodiment receives compressed data from the data compression device 100 through the input unit 210, and the processor 220 receives, for example, the first 5 By reading the byte and checking the pattern of the second byte to the fifth byte, if it is 00 00 ff ff, it is identified that the compressed data is processed in parallel according to the present embodiment.
  • the header block is as follows, and if 00000 0000 00101 is confirmed by combining 15 bits, it can be seen that there are 5 compression blocks.
  • the processor 220 of the data decompression device 200 divides the compressed data after the compression header 20, respectively, and decompresses them in parallel using a parallel processing technique. After all parallel processing is finished, the final decompression data, that is, the original data, can be restored by combining each parallel decompression data in order.
  • the data compression method and apparatus not only improves data compression efficiency by compressing and converting data through simple calculation and hardware configuration, but also, in particular, known algorithms. Data compression efficiency and performance can be further improved by enabling parallel compression and parallel restoration (decompression) of data according to the deflate compression algorithm.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 프로세서가 원본 데이터를 복수의 빅블럭으로 분할하는 단계; 및 상기 프로세서가, 상기 분할된 복수의 빅블럭을 각각 압축하여 생성되는 복수의 압축 블럭을 포함하는 압축 블럭 세트를 생성하고, 상기 복수의 압축 블럭에 관한 정보를 가진 압축헤더와 상기 압축 블럭 세트를 결합하여 압축 데이터를 생성하는 단계를 포함하되, 상기 압축 헤더는, 상기 압축 블럭 세트에 포함된 압축 블럭의 갯수에 관한 정보를 가진 헤더 블럭, 및 상기 각각의 압축 블럭에 대응하여 해당 압축 블럭의 크기에 관한 정보를 가진 복수의 스토어드 블럭 세트(stored block set)를 포함하는, 데이터 압축 방법에 관한 것이다.

Description

데이터 압축 방법 및 장치
본 발명은 데이터 압축 방법 및 장치에 관한 것으로서, 보다 구체적으로는 간단한 연산을 통해 데이터를 효율적으로 압축할 수 있을 뿐만 아니라 데이터 전송 효율도 향상시킬 수 있는 데이터 압축 방법 및 장치에 관한 것이다.
일반적으로, 통상의 전송 채널에서 이용 가능한 주파수 대역폭은 제한되어 있으므로, 많은 양의 데이터를 전송하기 위해서 모뎀과 같은 다양한 전송 시스템은 전송 데이터의 양을 압축하거나 줄일 수 있는 효과적인 데이터 압축 기법을 이용해 왔다.
다양한 압축기법 중의 하나로서, 국제 전기 통신 동맹(ITU : International Telecommunication Union)에 의해 표준화된 부호화 알고리즘으로, 모뎀과 같은 데이터 전송 시스템에서 채용하고 있는 CCITT V.42 bis 가 있다. 이 부호화 표준안에 적용된 기초는 Ziv-Lempel code(ZLC)이며, 이 방식은 입력 데이터로부터 적응적으로 사전을 형성해 가면서 앞의 입력 데이터와 동일한 구문(phrase)이 저장되어 있는 사전의 주소값을 부호어로 전송하는 방법이다. 사전화(dictionary) 작업은 입력 데이터와 계속적인 스트링 매칭(string matching)을 수행하여 최대 길이의 매칭 스트링에 매칭안된 문자를 결합하여 사전에 추가하는 과정으로 사전을 업데이트한다.
그러나, 이러한 종래의 압축 방식은 데이터의 압축 및 압축 해제에 대한 처리 연산이 복잡하고 비교적 고사양의 하드웨어적 장치를 필요로 하며, 처리 속도의 향상에 제한이 따르고 압축 결과값에 대한 신뢰성을 높이기 힘든 문제점이 있었다.
특히, 종래 공지의 알고리즘, 예를 들어 디플레이트 압축 알고리즘(deflate compression algorithm)의 경우, 인코딩(압축)은 병렬 처리를 지원하나 디코딩(복원, 압축해제)은 병렬 처리를 지원하지 않아 데이터 처리 속도나 효율이 낮은 문제점이 있었다.
본 발명의 배경기술은 대한민국 공개특허공보 제 2003-0022630호(2003. 3. 17 공개)에 개시되어 있다.
본 발명이 이루고자 하는 기술적 과제는, 간단한 연산을 통해 데이터를 효율적으로 압축할 수 있을 뿐만 아니라, 특히 공지 알고리즘인 디플레이트 압축 알고리즘에 따른 데이터의 병렬 압축과 병렬 복원(압축해제)이 가능하도록 하는 데이터 압축 방법 및 장치를 제공하는 데에 있다.
본 발명의 일 측면에 따르면, 본 발명은 프로세서가 원본 데이터를 복수의 빅블럭으로 분할하는 단계; 및 상기 프로세서가, 상기 분할된 복수의 빅블럭을 각각 압축하여 생성되는 복수의 압축 블럭을 포함하는 압축 블럭 세트를 생성하고, 상기 복수의 압축 블럭에 관한 정보를 가진 압축헤더와 상기 압축 블럭 세트를 결합하여 압축 데이터를 생성하는 단계를 포함하되, 상기 압축 헤더는, 상기 압축 블럭 세트에 포함된 압축 블럭의 갯수에 관한 정보를 가진 헤더 블럭, 및 상기 각각의 압축 블럭에 대응하여 해당 압축 블럭의 크기에 관한 정보를 가진 복수의 스토어드 블럭 세트(stored block set)를 포함하는, 데이터 압축 방법을 제공한다.
본 발명의 일측면에 따른 데이터 압축 방법 및 장치는 간단한 연산과 하드웨어적 구성을 통해 데이터를 압축하고 변환함으로써, 데이터의 압축 효율을 향상시킬 수 있을 뿐만 아니라, 특히 공지 알고리즘인 디플레이트 압축 알고리즘에 따른 데이터의 병렬 압축과 병렬 복원(압축해제)이 가능하도록 하여 데이터 압축 효율 및 성능을 더욱 향상시킬 수 있다.
도 1은 본 발명에 의한 일 실시예에 따른 데이터 압축 장치 및 복원 장치의 구성을 도시한 것이다.
도 2는 원본 데이터를 압축한 압축 데이터의 구성을 도시한 것이다.
도 3은 압축 데이터의 압축 헤더에 포함된 헤더 블럭의 구성을 도시한 것이다.
도 4는 압축 데이터의 압축 헤더에 포함된 스토어드 블럭 세트의 구성을 도시한 것이다.
도 5는 본 발명에 의한 일 실시예에 따른 압축 방법에서 원본 데이터로부터 압축 데이터를 생성하는 과정을 개념적으로 도시한 것이다.
도 6은 본 발명에 의한 일 실시예에 따라 압축된 압축 데이터로부터 원본 데이터를 복원하는 과정을 개념적으로 도시한 것이다.
도 7 내지 도 11은 압축 데이터에 포함된 각각의 압축 블럭의 구성을 도시한 것이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명에 의한 일 실시예에 따른 데이터 압축 장치 및 복원 장치의 구성을 도시한 것이고, 도 2는 원본 데이터를 압축한 압축 데이터의 구성을 도시한 것이고, 도 3은 압축 데이터의 압축 헤더에 포함된 헤더 블럭의 구성을 도시한 것이고, 도 4는 압축 데이터의 압축 헤더에 포함된 스토어드 블럭 세트의 구성을 도시한 것이고, 도 5는 본 발명에 의한 일 실시예에 따른 압축 방법에서 원본 데이터로부터 압축 데이터를 생성하는 과정을 개념적으로 도시한 것이고, 도 6은 본 발명에 의한 일 실시예에 따라 압축된 압축 데이터로부터 원본 데이터를 복원하는 과정을 개념적으로 도시한 것이고, 도 7 내지 도 11은 압축 데이터에 포함된 각각의 압축 블럭의 구성을 도시한 것으로서, 이를 참조하여 본 발명에 따른 실시예를 설명하면 다음과 같다.
도 1에 도시된 바와 같이, 본 실시예에 따른 데이터 압축 장치(100)는 프로세서(110) 및 출력부(120)를 포함한다.
프로세서(110)는 원본 데이터를 복수의 빅블럭으로 분할하고, 그 분할된 복수의 빅블럭을 각각 압축하여 복수의 압축 블럭(21-25)을 포함하는 압축 블럭 세트를 생성하고, 상기 복수의 압축 블럭(21-25)에 관한 정보를 가진 압축헤더(20)와 상기 압축 블럭 세트를 결합하여 압축 데이터를 생성한다. 그리고, 출력부(120)는 상기 압축 데이터를 목적 장치인 데이터 복원장치(디코더, 200)로 출력한다.
여기서, 압축 헤더(20)는, 압축 블럭 세트에 포함된 압축 블럭(21-25)의 갯수에 관한 정보를 가진 헤더 블럭(HB), 및 각각의 압축 블럭(21-25)에 대응하여 해당 압축 블럭의 크기에 관한 정보를 가진 복수의 스토어드 블럭 세트(stored block set)(SBS1-SBS5)를 포함한다.
도 4에 도시된 바와 같이, 복수의 스토어드 블럭 세트(SBS1-SBS5)의 각각은 미리 설정된 갯수의 복수의 스토어드 블럭(stored block)(SB1-SB4)을 포함하고, 스토어드 블럭(SB1-SB4)의 각각은 적어도 하나의 특정 비트군(401-404)을 포함하며, 복수의 스토어드 블럭(SB1-SB4)에 각각 포함된 특정 비트군들(401-404)의 조합은 대응하는 압축 블럭의 크기를 나타낸다. 여기서 특정 비트군(401-404)은 각 스토어드 블럭(SB1-SB4)의 최상위 비트에서 하위 비트 방향으로 n개의 비트(n은 자연수)(예를 들어 5bit)를 포함한다. 상기 스토어드 블럭(SB1-SB4)은 디플레이트 압축 알고리즘에 따른 것일 수 있다.
도 3에 도시된 바와 같이, 헤더블럭(HB)은 미리 설정된 갯수의 복수의 헤더 스토어드 블럭(HSB1~HSB3)을 포함할 수 있는데, 헤더 스토어드 블럭(HSB1~HSB3)의 각각은 적어도 하나의 특정 비트군(301~303)을 포함하며, 복수의 헤더 스토어드 블럭(HSB1~HSB3)에 각각 포함된 특정 비트군들(301~303)의 조합은 압축 블럭(21-25)의 갯수를 나타낸다. 헤더 스토어드 블럭(HSB1~HSB3)은 디플레이트 압축 알고리즘에 따른 것일 수 있다.
각각의 상기 압축 블럭(21-25)은 해당 압축 블럭이 최종 압축 블럭인지 여부를 식별하기 위한 식별용 스토어드 블럭을 포함하고, 상기 식별용 스토어드 블럭은 디플레이트 압축 알고리즘에 따른 것일 수 있다.
이와 같이 구성된 본 실시예의 동작 및 작용을 도 1 내지 도 9를 참조하여 구체적으로 설명한다.
먼저 데이터 압축 장치(100)의 프로세서(110)는 아래 그림과 같이 원본 데이터를 복수의 빅블럭(빅블럭 1~5)으로 분할한다.
Figure PCTKR2022005805-appb-img-000001
그리고, 도 2에 도시된 바와 같이 프로세서(110)는 상기 분할된 복수의 빅블럭을 각각 압축하여 복수의 압축 블럭(21-25)을 포함하는 압축 블럭 세트를 생성하고, 복수의 압축 블럭(21-25)에 관한 정보를 가진 압축헤더(20)와 압축 블럭 세트를 결합하여 압축 데이터를 생성한다. 본 실시예에서는 원본 데이터의 빅블럭 및 그 압축블럭의 갯수가 5인 경우를 예로 들어 설명하고 있으나, 이것은 단시 예시일 뿐 이에 한정되지 않는다.
압축 헤더(20)로는, 공지 알고리즘인 디플레이트 알고리즘(deflate algorithm)에서 사용되는 3가지 데이터 압축 블럭 유형 중 스토어드 블럭(stored block) 형식의 데이터를 사용한다. 참고로, 디플레이트 알고리즘은 동적 블럭(dynamic block), 정적 블럭(static block), 스토어드 블럭(stored block)의 3개의 유형의 압축 블럭을 사용하는데, 본 실시예에서는 스토어드 블럭 형식을 압축 헤더로 사용한다.
본 실시예에서 사용되는 스토어드 블럭 하나의 구조는 아래와 같다. 먼저 최상위비트에서 하위비트 방향으로 5개의 바이트(5 byte)가 배열되는데, byte1의 맨 오른쪽 비트 y는 해당 스토어드 블럭이 마지막 블럭인지 여부를 나타내며(마지막 블럭인 경우: 1, 마지막 블럭이 아닌 경우 : 0), y 왼쪽의 00 은 스토어드 블럭의 고유 패턴이고, xxxxx 의 5비트는 단지 임의의 비트이다(아무값이나 와도 압축데이터에 영향 없음).
Figure PCTKR2022005805-appb-img-000002
상기와 같은 유형의 스토어드 블럭 중에서, 본 실시예에서는 특수한 형태로서 Stored raw data 가 없는, 즉 앞의 5개의 바이트(byte 1~byte 5)만으로 이루어진 스토어드 블럭을 사용하는데, 형태는 2가지로서 아래와 같다. 이 2가지 스토어드 블럭은 stored raw data가 없으므로 byte 2와 byte 3은 각각 그 값이 0을 나타내는 이진수가 되고, byte 4와 byte 5는 각각 byte 2와 byte 3의 보수로서 그 값이 255를 나타내는 이진수가 된다.
본 실시예에서는 byte 1의 앞에 있는 5비트(xxxxx)를 사용하여 압축 블럭의 갯수 또는 압축 블럭의 크기를 나타내는 데에 사용한다.
Figure PCTKR2022005805-appb-img-000003
본 실시예에서, 압축 헤더(20)는 3개의 헤더 스토어드 블럭(HSB1-HSB3)을 갖는 헤더 블럭, 및 5개의 스토어드 블럭 세트(SBS1-SBS5)를 사용하며, 스토어드 블럭 세트 각각은 4개의 스토어드 블럭(SB1-SB4)을 포함한다. 여기서, 3개의 헤더 스토어드 블럭(HSB1-HSB3)을 가진 헤더 블럭(HB)은 압축 블럭(21-25)의 갯수를 나타내는 데에 사용되고, 5개의 스토어드 블럭 세트(SBS1-SBS5)는 각각 대응하는 압축 블럭의 크기를 나타내는 데에 사용된다. 본 실시예에서는 스토어드 블럭 세트가 4개의 스토어드 블럭(SB1-SB4)로 구성되는 것을 예로 들었으나, 이는 예시적인 것이며 이에 한정되지 않는다.
본 실시예를 예를 들어 좀 더 구체적으로 설명한다.
헤더 블럭(HB)은 미리 설정된 갯수(예를 들어 3개. 이에 한정되지 않음)의 복수의 헤더 스토어드 블럭(HSB1-HSB3)을 포함하고, 헤더 스토어드 블럭의 각각은 적어도 하나의 특정 비트군(301-303)을 포함하되, 복수의 헤더 스토어드 블럭(HSB1-HSB3)에 각각 포함된 특정 비트군들(301-303)의 조합은 압축 블럭의 갯수를 나타내는 데에 사용된다.
도 2 내지 4를 예로 들면, 압축 블럭(21-25)의 갯수가 5이므로 이를 나타내는 15비트의 이진수는 00000 00000 00101 이 되고, 이것은 특정 비트군들(301-303)의 조합으로 나타내어진다. 즉, 3개의 헤더 스토어드 블럭(HSB1-HSB3) 각각의 앞의 5bit가 각각 00000 00000 00101 이 된다(물론 그 조합이나 순서는 달리 설정될 수도 있음). 따라서, 헤더블럭은 다음과 같이 된다.
[수학식 1]
00000 000 00000000 00000000 11111111 11111111 → HSB1
00000 000 00000000 00000000 11111111 11111111 → HSB2
00101 000 00000000 00000000 11111111 11111111 → HSB3
한편, 상술한 바와 같이, 스토어드 블럭 세트(SBS1-SBS5)의 각각은 미리 설정된 갯수(본 실시예에서는 4개)의 스토어드 블럭(SB1-SB4)을 포함하고, 스토어드 블럭의 각각은 적어도 하나의 특정 비트군(본 실시예에서 4개의 비트군(401-404))을 포함하는데, 스토어드 블럭에 각각 포함된 상기 특정 비트군들의 조합은 대응하는 압축 블럭의 크기를 나타낸다. 예를 들어 스토어드 블럭 세트(SBS1)는 압축 블럭(21)의 크기를 나타낸다. 상기 특정 비트군은 스토어드 블럭(SB1-SB4) 각각의 최상위 비트에서 하위 비트 방향으로 n개의 비트(n은 자연수)(예를 들어 5비트. 이에 한정되지 않음)를 포함한다.
예를 들어, 5개의 압축 블럭(21-25)의 크기가 각각 65536, 65536, 65536,65536,65536 일 경우, 이를 20비트로 나타내면 65536 은 이진수로 1 11111 11111 11111 이므로, 20비트로 나타내면 다음과 같다.
00001 11111 11111 11111
이에 따라 4개의 스토어드 블럭(SB1-SB4)의 각각은 다음과 같다.
00001 000 00000000 00000000 11111111 11111111
11111 000 00000000 00000000 11111111 11111111
11111 000 00000000 00000000 11111111 11111111
11111 000 00000000 00000000 11111111 11111111
따라서, 해당 압축헤더(20)의 5개의 스토어드 블럭 세트(SBS1-SBS5)는 다음과 같다.
[수학식 2]
SBS1
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
SBS2
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
SBS3
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
SBS4
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
SBS5
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
따라서, 상기 실시예에서 얻어지는 압축 헤더(20)는 [수학식 1]의 헤더블럭(HB)과 [수학식 2]의 스토어드 블럭세트(SBS1-SBS5)의 조합으로 나타내어지고, 최종적으로 도 2에 도시된 바와 같이 압축 데이터는 압축 헤더(20) + 압축 블럭 세트(21-25) 가 된다.
참고로 압축 헤더(20)는 원본 데이터에 대한 압축이 완료되어 압축 블럭들(21-25)이 생성된 후 각 압축 블럭의 크기가 확인되면 생성되어 최종적으로 압축 블럭 세트 앞에 붙여진다.
또한, 각각의 압축 블럭(21-25)은 해당 압축 블럭이 최종 압축 블럭인지 여부를 식별하기 위한 식별용 스토어드 블럭을 포함할 수 있고, 식별용 스토어드 블럭은 디플레이트 압축 알고리즘에 따른다. 예를 들어, 도 7 내지 도 9에 도시된 바와 같이, 34307byte + 41950byte + 15114byte 로 된 3개의 압축 블럭이 있다면, 도 7과 도 8의 마지막 부분에 있는 식별용 스토어드 블럭에서는 첫번째 byte의 최하위비트의 값이 0이므로 이것은 해당 압축 블럭이 최종 블럭이 아님을 나타내고, 도 9의 마지막 부분에 있는 식별용 스토어드 블럭에서는 첫번째 byte의 최하위비트의 값이 1이므로 해당 압축블럭이 최종 블럭임을 나타낸다(예를 들어, 공지의 디플레이트 압축 알고리즘에 따르면, 도 9에서 실제 압축 데이터가 가는 점선 박스라고 한다면 실제 압축 데이터의 마지막 byte는 "11111111"이 되고, 그 다음 byte의 최하위 첫 3비트인 "001"이 해당 압축 블럭이 최종 블럭임을 나타냄).
또 다른 예로서, 도 10에서 두번째 가는 점선 박스의 앞에 있는 첫번째 비트값인 "0"이 식별용 비트가 되고, 이것은 해당 압축 블럭이 최종 블럭이 아님을 나타낸다(예를 들어, 공지의 디플레이트 압축 알고리즘에 따르면, 도 10에서 실제 압축 데이터가 가는 점선 박스라고 한다면, 굵은 박스는 스토어드 블럭을 구성하는 비트열이 되며, 이것은 실제 압축 데이터는 아니며, size 가 0인 스토어드 블럭을 구성하기 위하여 디플레이트 압축 알고리즘에서 요구하는 일종의 헤더 형식임). 또한, 도 11에서 실제 압축 데이터가 가는 점선 박스 부분("00110110 00001011 11111111 10111")이라고 한다면, "10111" 앞에 있는 비트의 값인 0이 식별용 비트가 되고, 이 또한 해당 압축 블럭이 최종 블럭이 아님을 나타낸다. 이와 같이 식별용 스토어드 블럭에서 "실제 압축 데이터"가 어디까지인지에 따라, 해당 압축 블럭이 최종 블럭인지 여부를 결정하는 식별용 비트가 정해질 수 있다. 이것은 공지의 디플레이트 압축 알고리즘에 따른 압축 데이터에 적용 가능하며, 물론 이에 한정되지 않고 다양한 압축 알고리즘에도 적용될 수 있다.
이하, 도 5 및 도 6을 참조하여 병렬 처리를 통하여 원본 데이터의 압축 및 복원을 수행하는 과정을 설명한다.
원본 데이터의 빅 블럭 각각을 병렬처리로 고정길이를 기준으로 잘라서 압축을 수행함에 있어서, 예를 들어 도 5의 첫번째 빅블럭의 경우 압축하면 deflate 방식으로 압축되고 그 결과에 마지막 부분에 1개의 stored raw data의 크기가 0 이고 최후 블럭(last block)이 아닌 스토어드 블럭을 추가로 붙인다. 이 때 최후 블럭일 경우에는 스토어드 블럭을 표준 알고리즘에 따라 붙이게 된다. 붙이는 방법은 deflate 압축된 마지막 블럭에 이어서 붙이며, 블럭을 추가하는 방법은 deflate 표준알고리즘에 따른다(참고로 이 방법은 특정 바이트 내에서 비트 단위로 스토어드 블럭을 추가하는 미리 정의된 공지의 표준 방식이다. 이렇게 하는 이유는 본 실시예에 따른 디코더(복원 장치)가 아닌 타 압축프로그램의 디코더가 빅블럭의 구분에 관계없이 순차적으로 복원(압축해제)을 할 수 있도록 하고, 다음 빅 블럭의 압축 블럭을 반드시 바이트의 경계에서부터 시작할 수 있도록 하기 위함이다.
다만, 마지막 압축 블럭인 경우에는, 1개의 stored raw data 크기가 0 이고 최후 블럭인 스토어드 블럭을 추가로 붙인다. 이 때 최후 블럭일 경우의 스토어드 블럭은 표준 알고리즘에 따른다.
참고로 압축 헤더는 원본 데이터의 빅 블럭의 압축이 모두 끝나서 각 빅 블럭 압축데이터 사이즈를 확인한 다음에 최종적으로 생성되어 맨 앞에 붙여진다.
한편, 도 6을 참조하여 압축 해제에 관해 살펴 보면, 종래에는 deflate 알고리즘 특성상 병렬압축 해제가 진행되지 못하였는데, 본 실시예에 따르면 이를 수행할 수 있는 이점이 있다.
먼저 본 실시예에서의 디코더(데이터 복원장치(200))는 압축 데이터를 데이터 압축장치(100)로부터 입력부(210)를 통해 입력받고, 프로세서(220)는 입력된 압축 데이터에서 예를 들어 최초 5바이트를 읽어서 두번째 바이트부터 5번째 바이트의 패턴을 확인하여 00 00 ff ff 이면, 본 실시예에 따른 병렬처리로 된 압축데이터임을 식별한다. 예를 들어 공지의 디플레이트 압축 알고리즘에서는, "size가 0인 스토어드 블럭(2번째 바이트 ~ 5번째 바이트의 패턴이 00 00 ff ff인 스토어드 블럭)"이 첫번째 압축 블럭부터 나오는 경우는 존재하지 않으며, 이에 본 실시예에서는 이러한 특성을 활용하여 "size가 0인 스토어드 블럭"이 첫번째 압축 블럭부터 나온다면 해당 압축 데이터는 본 실시예에 따른 병렬 처리된 압축 데이터임을 식별한다.
상기와 같이 식별되면, 다시 처음부터 15바이트를 읽어서, 압축 블럭의 갯수를 확인한다. 본 실시예에 따르면 헤더 블럭이 다음과 같음을 알 수 있고, 15비트를 결합하여 00000 0000 00101 을 확인하면, 압축 블럭이 5개가 있음을 알수있다.
00000 000 00000000 00000000 11111111 11111111
00000 000 00000000 00000000 11111111 11111111
00101 000 00000000 00000000 11111111 11111111
이어서, 5 개 * 20바이트 , 즉 100바이트를 읽으면, 20바이트짜리 스토어드 블럭 세트를 얻고, 각 압축 블럭 데이터로의 압축 크기를 확인할 수 있다(이 때의 압축 크기는 압축 블럭 데이터에 tail에 해당하는 스토어드 블럭을 포함한 압축데이터 크기이다)
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
00001000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
11111000 00000000 00000000 11111111 11111111
이렇게 각각의 압축 블럭의 압축데이터 크기를 알면, 데이터 복원장치(200)의 프로세서(220)는 압축헤더(20) 이후의 압축데이터를 각각 분할하여, 각각 병렬처리기법을 이용하여 병렬로 압축 해제한 후, 모든 병렬처리가 끝나면 순서대로 각 병렬 압축 해제 데이터를 결합시켜 최종 압축 해제 데이터, 즉 원본 데이터를 복원할 수 있다.
이상 살펴 본 바와 같이, 본 발명의 일측면에 따른 데이터 압축 방법 및 장치는 간단한 연산과 하드웨어적 구성을 통해 데이터를 압축하고 변환함으로써, 데이터의 압축 효율을 향상시킬 수 있을 뿐만 아니라, 특히 공지 알고리즘인 디플레이트 압축 알고리즘에 따른 데이터의 병렬 압축과 병렬 복원(압축해제)이 가능하도록 하여 데이터 압축 효율 및 성능을 더욱 향상시킬 수 있다.
특히 ZIP 압축파일 형식에서 대표적으로 많이 쓰이는 deflate 압축 알고리즘의 경우, 알고리즘의 특성 상 파일 간의 병렬처리는 가능했지만 1개의 파일 내에서의 병렬압축 및 병렬압축해제는 불가능했는데, 본 발명의 일측면에 따른 데이터 압축 방법 및 장치는 이러한 큰 문제점을 해결하여 빅데이터의 압축/압축해제의 속도를 향상시킬 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (14)

  1. 데이터 압축 방법으로서,
    프로세서가 원본 데이터를 복수의 빅블럭으로 분할하는 단계; 및
    상기 프로세서가, 상기 분할된 복수의 빅블럭을 각각 압축하여 생성되는 복수의 압축 블럭을 포함하는 압축 블럭 세트를 생성하고, 상기 복수의 압축 블럭에 관한 정보를 가진 압축헤더와 상기 압축 블럭 세트를 결합하여 압축 데이터를 생성하는 단계를 포함하되,
    상기 압축 헤더는, 상기 압축 블럭 세트에 포함된 압축 블럭의 갯수에 관한 정보를 가진 헤더 블럭, 및 상기 각각의 압축 블럭에 대응하여 해당 압축 블럭의 크기에 관한 정보를 가진 복수의 스토어드 블럭 세트(stored block set)를 포함하는, 데이터 압축 방법.
  2. 제 1항에 있어서,
    상기 복수의 스토어드 블럭 세트의 각각은 미리 설정된 갯수의 복수의 스토어드 블럭(stored block)을 포함하고,
    상기 스토어드 블럭의 각각은 적어도 하나의 특정 비트군을 포함하되, 상기 복수의 스토어드 블럭에 각각 포함된 특정 비트군들의 조합은 대응하는 압축 블럭의 크기를 나타내는, 데이터 압축 방법.
  3. 제 2항에 있어서,
    상기 특정 비트군은 각 스토어드 블럭의 최상위 비트에서 하위 비트 방향으로 n개의 비트(n은 자연수)를 포함하는, 데이터 압축 방법.
  4. 제 2항에 있어서,
    상기 스토어드 블럭은 디플레이트 압축 알고리즘에 따른 것인, 데이터 압축 방법.
  5. 제 1항에 있어서,
    상기 헤더블럭은 미리 설정된 갯수의 복수의 헤더 스토어드 블럭을 포함하고,
    상기 헤더 스토어드 블럭의 각각은 적어도 하나의 특정 비트군을 포함하되, 상기 복수의 헤더 스토어드 블럭에 각각 포함된 특정 비트군들의 조합은 대응하는 상기 압축 블럭의 갯수를 나타내는, 데이터 압축 방법.
  6. 제 5항에 있어서,
    상기 헤더 스토어드 블럭은 디플레이트 압축 알고리즘에 따른 것인, 데이터 압축 방법.
  7. 제 1항에 있어서,
    각각의 상기 압축 블럭은 해당 압축 블럭이 최종 압축 블럭인지 여부를 식별하기 위한 식별용 스토어드 블럭을 포함하되, 상기 식별용 스토어드 블럭은 디플레이트 압축 알고리즘에 따른 것인, 데이터 압축 방법.
  8. 데이터 압축 장치로서,
    원본 데이터를 복수의 빅블럭으로 분할하고, 상기 분할된 복수의 빅블럭을 각각 압축하여 생성되는 복수의 압축 블럭을 포함하는 압축 블럭 세트를 생성하고, 상기 복수의 압축 블럭에 관한 정보를 가진 압축헤더와 상기 압축 블럭 세트를 결합하여 압축 데이터를 생성하는 프로세서; 및
    상기 압축 데이터를 목적 장치로 출력하는 출력부를 포함하되,
    상기 압축 헤더는, 상기 압축 블럭 세트에 포함된 압축 블럭의 갯수에 관한 정보를 가진 헤더 블럭, 및 상기 각각의 압축 블럭에 대응하여 해당 압축 블럭의 크기에 관한 정보를 가진 복수의 스토어드 블럭 세트(stored block set)를 포함하는, 데이터 압축 장치.
  9. 제 8항에 있어서,
    상기 복수의 스토어드 블럭 세트의 각각은 미리 설정된 갯수의 복수의 스토어드 블럭(stored block)을 포함하고,
    상기 스토어드 블럭의 각각은 적어도 하나의 특정 비트군을 포함하되, 상기 복수의 스토어드 블럭에 각각 포함된 특정 비트군들의 조합은 대응하는 압축 블럭의 크기를 나타내는, 데이터 압축 장치.
  10. 제 9항에 있어서,
    상기 특정 비트군은 각 스토어드 블럭의 최상위 비트에서 하위 비트 방향으로 n개의 비트(n은 자연수)를 포함하는, 데이터 압축 장치.
  11. 제 9항에 있어서,
    상기 스토어드 블럭은 디플레이트 압축 알고리즘에 따른 것인, 데이터 압축 장치.
  12. 제 8항에 있어서,
    상기 헤더 블럭은 미리 설정된 갯수의 복수의 헤더 스토어드 블럭을 포함하고,
    상기 헤더 스토어드 블럭의 각각은 적어도 하나의 특정 비트군을 포함하되, 상기 복수의 헤더 스토어드 블럭에 각각 포함된 특정 비트군들의 조합은 대응하는 상기 압축 블럭의 갯수를 나타내는, 데이터 압축 장치.
  13. 제 12항에 있어서,
    상기 헤더 스토어드 블럭은 디플레이트 압축 알고리즘에 따른 것인, 데이터 압축 장치.
  14. 제 8항에 있어서,
    각각의 상기 압축 블럭은 해당 압축 블럭이 최종 압축 블럭인지 여부를 식별하기 위한 식별용 스토어드 블럭을 포함하되, 상기 식별용 스토어드 블럭은 디플레이트 압축 알고리즘에 따른 것인, 데이터 압축 장치.
PCT/KR2022/005805 2021-08-07 2022-04-22 데이터 압축 방법 및 장치 WO2023017956A1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2021-0104233 2021-08-07
KR20210104233 2021-08-07
KR20210159124 2021-11-18
KR10-2021-0159124 2021-11-18
KR10-2022-0013314 2022-01-28
KR1020220013314A KR20230022289A (ko) 2021-08-07 2022-01-28 데이터 압축 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2023017956A1 true WO2023017956A1 (ko) 2023-02-16

Family

ID=85200716

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/005805 WO2023017956A1 (ko) 2021-08-07 2022-04-22 데이터 압축 방법 및 장치

Country Status (1)

Country Link
WO (1) WO2023017956A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003324611A (ja) * 2002-04-30 2003-11-14 Pfu Ltd 画像処理装置及び画像処理方法
KR20040107735A (ko) * 2003-06-12 2004-12-23 주식회사 사이버메드 대용량 이미지 전송을 위한 방법 및 장치
KR20100018965A (ko) * 2008-08-08 2010-02-18 (주) 엘지텔레콤 이동통신단말기의 웹 페이지 제공 시스템 및 그 방법
KR20110025359A (ko) * 2009-09-04 2011-03-10 (주)이스트소프트 블록 단위 데이터 압축 및 복원 방법 및 그 장치
KR20190085726A (ko) * 2018-01-11 2019-07-19 주식회사 넥슨코리아 프로그램 설치 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003324611A (ja) * 2002-04-30 2003-11-14 Pfu Ltd 画像処理装置及び画像処理方法
KR20040107735A (ko) * 2003-06-12 2004-12-23 주식회사 사이버메드 대용량 이미지 전송을 위한 방법 및 장치
KR20100018965A (ko) * 2008-08-08 2010-02-18 (주) 엘지텔레콤 이동통신단말기의 웹 페이지 제공 시스템 및 그 방법
KR20110025359A (ko) * 2009-09-04 2011-03-10 (주)이스트소프트 블록 단위 데이터 압축 및 복원 방법 및 그 장치
KR20190085726A (ko) * 2018-01-11 2019-07-19 주식회사 넥슨코리아 프로그램 설치 장치 및 방법

Similar Documents

Publication Publication Date Title
US6195026B1 (en) MMX optimized data packing methodology for zero run length and variable length entropy encoding
EP0914718B1 (en) Data compression and decompression system with immediate dictionary updating interleaved with string search
WO2011027989A2 (en) Method and apparatus for compressing and decompressing block unit data
WO2014189236A1 (ko) 무손실 이미지 압축 및 복원 방법과 이를 수행하는 장치
KR19990029626A (ko) 적응형 데이터 압축을 수행하는 방법 및 장치
WO2021060758A1 (ko) 데이터 무손실 압축 장치 및 그 방법
WO2023017956A1 (ko) 데이터 압축 방법 및 장치
US5555323A (en) System for bi-level symbol coding/decoding with saved storage and method for same
CN110719105B (zh) 一种测试向量的无损压缩和解压缩方法
JPH0815262B2 (ja) データ圧縮復元処理装置
WO2022075754A1 (ko) 머신비전을 위한 영상의 처리 방법 및 장치
GB2334653A (en) Data compression system with dictionary updating algorithm
JPH033440B2 (ko)
JP3266419B2 (ja) データ圧縮・伸長方式
JPH05227440A (ja) データ符号化装置及び方法
KR102361730B1 (ko) 데이터 압축 방법 및 장치
JP3839604B2 (ja) データ処理方法
KR20230022289A (ko) 데이터 압축 방법 및 장치
US7426187B2 (en) False sync code protection (FSP) decoding by software
KR100481204B1 (ko) 데이터 문자의 입력 스트림을 코드의 출력 스트림으로 압축시키기 위한 데이터 압축 방법 및 장치
WO2014107070A1 (ko) 가역 정보 은닉 시스템 및 방법
JP3124887B2 (ja) データ圧縮・復号方式
KR20010080225A (ko) 오디오 또는 비디오 데이터의 금지된 패턴을 회피하는방법 및 장치
WO2010032934A2 (ko) B-변환을 위한 부호화 방법 및 장치와 그를 위한 부호화 데이터
WO2022250195A1 (ko) 연속적인 부분 신드롬 검색을 이용하는 고속 연판정 기반 선형 부호의 복호화 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22855958

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE