KR102154580B1 - Image processing apparatus and method - Google Patents

Image processing apparatus and method Download PDF

Info

Publication number
KR102154580B1
KR102154580B1 KR1020180105071A KR20180105071A KR102154580B1 KR 102154580 B1 KR102154580 B1 KR 102154580B1 KR 1020180105071 A KR1020180105071 A KR 1020180105071A KR 20180105071 A KR20180105071 A KR 20180105071A KR 102154580 B1 KR102154580 B1 KR 102154580B1
Authority
KR
South Korea
Prior art keywords
image
address
compression
burst group
image compression
Prior art date
Application number
KR1020180105071A
Other languages
Korean (ko)
Other versions
KR20200027142A (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 KR1020180105071A priority Critical patent/KR102154580B1/en
Publication of KR20200027142A publication Critical patent/KR20200027142A/en
Application granted granted Critical
Publication of KR102154580B1 publication Critical patent/KR102154580B1/en

Links

Images

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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 이미지 처리 장치 및 방법에 관한 것으로, 이미지를 메모리의 제1 주소공간에 저장하는 과정에서, 상기 이미지를 복수의 이미지 절편들로 분할한 후 압축을 통해 복수의 이미지 압축 절편들을 생성하는 이미지 코딩부 및 상기 복수의 이미지 압축 절편들의 패킹을 통해 가변적인 버스트 그룹을 생성하여 상기 메모리의 제2 주소공간으로 변환하는 메모리 연산부를 포함한다. 따라서, 본 발명은 효과적인 버스트 엑세스 및 랜덤 엑세스를 지원하는 무손실 이미지 데이터 압축이 가능할 수 있다.The present invention relates to an image processing apparatus and method, wherein in a process of storing an image in a first address space of a memory, the image is divided into a plurality of image segments and then compressed to generate a plurality of image compression segments. And a memory operation unit that generates a variable burst group through packing of the coding unit and the plurality of image compression fragments and converts it into a second address space of the memory. Accordingly, the present invention may enable lossless image data compression supporting effective burst access and random access.

Description

이미지 처리 장치 및 방법{IMAGE PROCESSING APPARATUS AND METHOD}Image processing apparatus and method {IMAGE PROCESSING APPARATUS AND METHOD}

본 발명은 이미지 처리 기술에 관한 것으로, 보다 상세하게는 효과적인 버스트 엑세스 및 랜덤 엑세스를 지원하는 무손실 이미지 데이터 압축이 가능한 이미지 처리 장치 및 방법에 관한 것이다.The present invention relates to an image processing technology, and more particularly, to an image processing apparatus and method capable of lossless image data compression supporting effective burst access and random access.

일반적으로, 손실 압축(lossy compression) 알고리즘은 이미지 데이터를 압축하면 프레임 버퍼 중에서 필요한 픽셀 데이터만 랜덤 엑세스가 가능한 장점이 있지만, 원본 데이터가 손실되는 단점을 가지고 있다. 반면, 무손실 압축(lossless compression) 알고리즘은 이미지 데이터를 압축하게 되면 원본 데이터가 손실되지 않고 그대로 유지된다는 장점이 있지만, 압축된 후의 크기가 가변적이기 때문에 랜덤 엑세스가 어렵고 외부메모리에서 엑세스할 경우 효과적인 버스트 엑세스가 어렵다는 단점을 가지고 있다.In general, a lossy compression algorithm has an advantage of allowing random access to only necessary pixel data in a frame buffer when image data is compressed, but has a disadvantage of losing original data. On the other hand, the lossless compression algorithm has the advantage that the original data is not lost when image data is compressed, but the size after compression is variable, so random access is difficult and effective burst access when accessed from an external memory It has the disadvantage of being difficult.

한국공개특허 제10-2007-0090165(2007.09.05)호는 디지털 이미지의 무손실 압축을 위한 시스템 및 방법에 관한 것으로, 3차원 중 임의의 곳에 위치하는 하나의 픽셀과 동일한 픽셀이 표시될 수 있게 함으로써, 즉, 같은 프레임, 또는 다른 프레임에 위치하는 픽셀과 동일한 픽셀이 표시될 수 있음으로써, 무손실 비디오 압축을 개선하기 위한 방법을 제공하는 것을 목적으로 한다.Korean Patent Laid-Open Publication No. 10-2007-0090165 (2007.09.05) relates to a system and method for lossless compression of digital images. By allowing one pixel and the same pixel located anywhere in three dimensions to be displayed, That is, it is an object of the present invention to provide a method for improving lossless video compression by being able to display the same pixel as the pixel located in the same frame or different frames.

한국등록특허 제10-1100829(2011.09.16)호는 이미지 데이터 무손실 압축 및 해제하는 시스템 및 방법에 관한 것으로, 이미지 데이터의 픽셀 정보를 읽어서 투명색 또는 같은 색이 연속적인지 판단하여 연속적으로 존재하는 같은 픽셀에 대해서는 그 개수와 RGB 등을 저장함으로써 압축하고, 저장된 압축 파일은 Header에서 정보를 읽어 그에 따라 해제할 수 있는 효과를 제공한다.Korean Patent Registration No. 10-1100829 (2011.09.16) relates to a system and method for lossless compression and decompression of image data, by reading pixel information of image data to determine whether a transparent color or the same color is continuous, and Regarding, the number and RGB are stored for compression, and the stored compressed file reads information from the header and can be decompressed accordingly.

한국공개특허 제10-2007-0090165(2007.09.05)호Korean Patent Publication No. 10-2007-0090165 (2007.09.05) 한국등록특허 제10-1100829(2011.09.16)호Korean Patent Registration No. 10-1100829 (2011.09.16)

본 발명의 일 실시예는 효과적인 버스트 엑세스 및 랜덤 엑세스를 지원하는 무손실 이미지 데이터 압축이 가능한 이미지 처리 장치 및 방법을 제공하고자 한다.An embodiment of the present invention is to provide an image processing apparatus and method capable of lossless image data compression supporting effective burst access and random access.

본 발명의 일 실시예는 무손실 압축 알고리즘으로 압축된 데이터를 그룹화하고 압축 데이터의 위치를 헤더 형태로 저장하여 랜덤 엑세스를 지원할 수 있는 이미지 처리 장치 및 방법을 제공하고자 한다.An embodiment of the present invention is to provide an image processing apparatus and method capable of supporting random access by grouping data compressed by a lossless compression algorithm and storing the location of the compressed data in the form of a header.

본 발명의 일 실시예는 압축된 이미지 블록 데이터들로 구성된 고정 길이의 버스트 그룹 단위로 메모리와의 데이터 교환이 가능한 이미지 처리 장치 및 방법을 제공하고자 한다.An embodiment of the present invention is to provide an image processing apparatus and method capable of exchanging data with a memory in units of fixed-length burst groups composed of compressed image block data.

실시예들 중에서, 이미지 처리 장치는 이미지를 메모리의 제1 주소공간에 저장하는 과정에서, 상기 이미지를 복수의 이미지 절편들로 분할한 후 압축을 통해 복수의 이미지 압축 절편들을 생성하는 이미지 코딩부 및 상기 복수의 이미지 압축 절편들의 패킹을 통해 가변적인 버스트 그룹(Burst Group, BG)을 생성하여 상기 메모리의 제2 주소공간으로 변환하는 메모리 연산부를 포함한다.Among embodiments, the image processing apparatus includes an image coding unit that divides the image into a plurality of image segments and generates a plurality of image compression segments through compression in a process of storing the image in a first address space of a memory; and And a memory operation unit that generates a variable burst group (BG) through packing of the plurality of image compression fragments and converts it into a second address space of the memory.

상기 이미지 코딩부는 상기 복수의 이미지 절편들 각각에 대하여 무손실 압축 알고리즘을 적용하여 상기 복수의 이미지 압축 절편들을 생성할 수 있다.The image coding unit may generate the plurality of image compression segments by applying a lossless compression algorithm to each of the plurality of image segments.

상기 이미지 코딩부는 상기 복수의 이미지 절편들 각각의 첫 번째 이미지 픽셀 주소를 상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간과 매칭시켜 제1 매핑 정보를 생성한 후 주소 테이블에 저장할 수 있다.The image coding unit may generate first mapping information by matching a first image pixel address of each of the plurality of image segments with the first address space for each of the plurality of image compression segments, and then store the first mapping information in an address table. .

상기 이미지 코딩부는 상기 메모리의 상기 제2 주소공간으로부터 상기 이미지를 불러오는 과정에서, 상기 복수의 이미지 압축 절편들을 복원하여 상기 복수의 이미지 절편들을 생성할 수 있다.The image coding unit may generate the plurality of image segments by reconstructing the plurality of image compression segments in a process of loading the image from the second address space of the memory.

상기 메모리 연산부는 상기 복수의 이미지 압축 절편들을 차례대로 정렬한 후 상기 복수의 이미지 절편들에 대한 평균 압축 길이에 맞춰 그룹화함으로써 상기 버스트 그룹을 생성할 수 있다.The memory operation unit may generate the burst group by sequentially arranging the plurality of image compression segments and grouping them according to an average compression length of the plurality of image segments.

상기 메모리 연산부는 상기 복수의 이미지 압축 절편들 중 특정 버스트 그룹 경계와 중첩되는 이미지 압축 절편의 경우 해당 버스트 그룹 경계 다음에 위치하는 버스트 그룹의 첫 번째 바이트에 정렬시킬 수 있다.The memory operation unit may align an image compression fragment overlapping a specific burst group boundary among the plurality of image compression fragments to a first byte of a burst group located next to the burst group boundary.

상기 메모리 연산부는 단일 버스트 그룹 내부에 존재하는 상기 복수의 이미지 압축 절편들 중 특정 바이트 경계와 중첩되는 이미지 압축 절편의 경우 해당 바이트 경계 다음에 위치하는 바이트에 정렬시킬 수 있다.The memory operation unit may align an image compression fragment overlapping a specific byte boundary among the plurality of image compression fragments existing within a single burst group to a byte located after the corresponding byte boundary.

상기 메모리 연산부는 상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간을 상기 제2 주소공간과 매칭시켜 제2 매핑 정보를 생성한 후 주소 테이블에 저장할 수 있다.The memory operation unit may generate second mapping information by matching the first address space for each of the plurality of image compression fragments with the second address space, and then store it in an address table.

상기 메모리 연산부는 특정 버스트 그룹에 대한 메모리 주소에 해당하는 버스트 그룹 주소와 해당 버스트 그룹 내에서 각 이미지 압축 절편의 위치에 해당하는 이미지 압축 절편 주소를 이용하여 상기 제2 주소공간으로 변환할 수 있다.The memory operation unit may convert into the second address space by using a burst group address corresponding to a memory address for a specific burst group and an image compression segment address corresponding to a position of each image compression segment within the burst group.

상기 메모리 연산부는 상기 버스트 그룹 주소를 기초로 상기 메모리로부터 특정 버스트 그룹을 읽고 상기 이미지 압축 절편 주소를 기초로 상기 버스트 그룹에 포함된 복수의 이미지 압축 절편들을 추출할 수 있다.The memory operation unit may read a specific burst group from the memory based on the burst group address and extract a plurality of image compression segments included in the burst group based on the image compression segment address.

실시예들 중에서, 이미지 처리 방법은 (a) 이미지를 메모리의 제1 주소공간에 저장하는 과정에서, 상기 이미지를 복수의 이미지 절편들로 분할한 후 압축을 통해 복수의 이미지 압축 절편들을 생성하는 단계 및 (b) 상기 복수의 이미지 압축 절편들의 패킹을 통해 가변적인 버스트 그룹을 생성하여 상기 메모리의 제2 주소공간으로 변환하는 단계를 포함한다.Among the embodiments, the image processing method includes: (a) generating a plurality of image compression fragments through compression after dividing the image into a plurality of image fragments in the process of storing the image in a first address space of a memory. And (b) generating a variable burst group through packing of the plurality of image compression fragments and converting it into a second address space of the memory.

상기 (a) 단계는 상기 복수의 이미지 절편들 각각의 첫 번째 이미지 픽셀 주소를 상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간과 매칭시켜 제1 매핑 정보를 생성하는 단계일 수 있다.The step (a) may be a step of generating first mapping information by matching a first image pixel address of each of the plurality of image segments with the first address space for each of the plurality of image compression segments.

상기 (a) 단계는 상기 메모리의 상기 제2 주소공간으로부터 상기 이미지를 불러오는 과정에서, 상기 복수의 이미지 압축 절편들을 복원하여 상기 복수의 이미지 절편들을 생성하는 단계일 수 있다.The step (a) may be a step of generating the plurality of image segments by restoring the plurality of image compression segments in the process of loading the image from the second address space of the memory.

상기 (b) 단계는 상기 복수의 이미지 압축 절편들을 차례대로 정렬한 후 상기 복수의 이미지 절편들에 대한 평균 압축 길이에 맞춰 그룹화함으로써 상기 버스트 그룹을 생성하는 단계일 수 있다.The step (b) may be a step of generating the burst group by sequentially arranging the plurality of image compression segments and then grouping them according to an average compression length of the plurality of image segments.

상기 (b) 단계는 상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간을 상기 제2 주소공간과 매칭시켜 제2 매핑 정보를 생성하는 단계일 수 있다.The step (b) may be a step of generating second mapping information by matching the first address space for each of the plurality of image compression fragments with the second address space.

상기 (b) 단계는 상기 버스트 그룹 주소를 기초로 상기 메모리로부터 특정 버스트 그룹을 읽고 상기 이미지 압축 절편 주소를 기초로 상기 버스트 그룹에 포함된 복수의 이미지 압축 절편들을 추출하는 단계일 수 있다.The step (b) may be a step of reading a specific burst group from the memory based on the burst group address and extracting a plurality of image compression fragments included in the burst group based on the image compression fragment address.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since it does not mean that a specific embodiment should include all of the following effects or only the following effects, it should not be understood that the scope of the rights of the disclosed technology is limited thereby.

본 발명의 일 실시예에 따른 이미지 처리 장치 및 방법은 무손실 압축 알고리즘으로 압축된 데이터를 그룹화하고 압축 데이터의 위치를 헤더 형태로 저장하여 랜덤 엑세스를 지원할 수 있다.The image processing apparatus and method according to an embodiment of the present invention may support random access by grouping data compressed with a lossless compression algorithm and storing the location of the compressed data in the form of a header.

본 발명의 일 실시예에 따른 이미지 처리 장치 및 방법은 압축된 이미지 블록 데이터들로 구성된 고정 길이의 버스트 그룹 단위로 메모리와의 데이터 교환이 가능할 수 있다.The image processing apparatus and method according to an embodiment of the present invention may exchange data with a memory in units of a fixed-length burst group consisting of compressed image block data.

도 1은 본 발명의 일 실시예에 따른 이미지 처리 시스템을 설명하는 도면이다.
도 2는 도 1에 있는 이미지 처리 장치를 설명하는 블록도이다.
도 3은 도 1에 있는 이미지 처리 장치에서 수행되는 이미지 처리 과정을 설명하는 순서도이다.
도 4는 도 1에 있는 이미지 처리 장치에서 사용하는 주소 테이블의 저장 공간을 줄이기 위한 프레임 버퍼 파티셔닝 포맷을 설명하는 예시도이다.
도 5는 메모리에 있는 원래 파티션된 그룹 데이터와 메모리에 저장된 압축 블록 데이터를 설명하는 예시도이다.
도 6은 1920 × 1080 풀 HD 해상도 이미지의 주소 테이블의 일 실시예를 설명하는 도면이다.
도 7은 도 1에 있는 이미지 처리 장치의 전체적인 구조를 설명하는 개념도이다.
도 8은 도 1에 있는 이미지 처리 장치에서 생성하는 버스트 그룹의 포맷을 설명하는 예시도이다.
도 9는 도 1에 있는 이미지 처리 장치에서 버스트 그룹을 패킹하는 과정을 설명하는 예시도이다.
도 10은 본 발명의 일 실시예에 따른 이미지 처리 장치에 포함된 Write Cache를 설명하는 개념도이다.
도 11은 본 발명의 일 실시예에 따른 이미지 처리 장치에 사용하는 주소들 간의 관계를 설명하는 도면이다.
도 12은 본 발명의 일 실시예에 따른 이미지 처리 장치에 포함된 Read Cache를 설명하는 개념도이다.
1 is a diagram illustrating an image processing system according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating the image processing apparatus in FIG. 1.
3 is a flow chart illustrating an image processing process performed by the image processing apparatus of FIG. 1.
4 is an exemplary diagram illustrating a frame buffer partitioning format for reducing a storage space of an address table used in the image processing apparatus of FIG. 1.
5 is an exemplary diagram illustrating original partitioned group data in a memory and compressed block data stored in a memory.
6 is a diagram illustrating an example of an address table of a 1920×1080 full HD resolution image.
7 is a conceptual diagram illustrating the overall structure of the image processing device in FIG. 1.
8 is an exemplary diagram illustrating a format of a burst group generated by the image processing apparatus of FIG. 1.
9 is an exemplary view illustrating a process of packing a burst group in the image processing apparatus of FIG. 1.
10 is a conceptual diagram illustrating a write cache included in an image processing apparatus according to an embodiment of the present invention.
11 is a diagram illustrating a relationship between addresses used in an image processing apparatus according to an embodiment of the present invention.
12 is a conceptual diagram illustrating a read cache included in an image processing apparatus according to an embodiment of the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is merely an embodiment for structural or functional description, the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, since the embodiments can be variously changed and have various forms, the scope of the present invention should be understood to include equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only those effects, the scope of the present invention should not be understood as being limited thereto.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are used to distinguish one component from other components, and the scope of rights is not limited by these terms. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that although it may be directly connected to the other component, another component may exist in the middle. On the other hand, when it is mentioned that a certain component is "directly connected" to another component, it should be understood that no other component exists in the middle. On the other hand, other expressions describing the relationship between the constituent elements, that is, "between" and "just between" or "neighboring to" and "directly neighboring to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions are to be understood as including plural expressions unless the context clearly indicates otherwise, and terms such as “comprise” or “have” refer to implemented features, numbers, steps, actions, components, parts, or It is to be understood that it is intended to designate that a combination exists and does not preclude the presence or addition of one or more other features or numbers, steps, actions, components, parts, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (for example, a, b, c, etc.) is used for convenience of explanation, and the identification code does not describe the order of each step, and each step has a specific sequence clearly in context. Unless otherwise stated, it may occur differently from the stated order. That is, each of the steps may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer-readable codes on a computer-readable recording medium, and the computer-readable recording medium includes all types of recording devices storing data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Further, the computer-readable recording medium is distributed over a computer system connected by a network, so that the computer-readable code can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the field to which the present invention belongs, unless otherwise defined. Terms defined in commonly used dictionaries should be construed as having meanings in the context of related technologies, and cannot be construed as having an ideal or excessive formal meaning unless explicitly defined in the present application.

도 1은 본 발명의 일 실시예에 따른 이미지 처리 시스템을 설명하는 도면이다.1 is a diagram illustrating an image processing system according to an embodiment of the present invention.

도 1을 참조하면, 이미지 처리 시스템(100)은 사용자 단말(110), 이미지 처리 장치(130) 및 데이터베이스(150)를 포함할 수 있다.Referring to FIG. 1, the image processing system 100 may include a user terminal 110, an image processing apparatus 130, and a database 150.

사용자 단말(110)은 이미지 처리의 대상이 되는 이미지를 제공할 수 있는 컴퓨팅 장치에 해당할 수 있다. 사용자 단말(110)은 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 이미지 처리 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 이미지 처리 장치(130)와 동시에 연결될 수 있다.The user terminal 110 may correspond to a computing device capable of providing an image subject to image processing. The user terminal 110 may be implemented as a smartphone, a laptop computer, or a computer, but is not limited thereto, and may be implemented as various devices such as a tablet PC. The user terminal 110 may be connected to the image processing apparatus 130 through a network, and a plurality of user terminals 110 may be connected to the image processing apparatus 130 at the same time.

이미지 처리 장치(130)는 무손실 압축이 가지는 데이터의 손실이 없는 장점을 유지하면서 버스(bus)의 버스트 엑세스 단위로 그룹화(grouping)하여 효과적인 버스트 엑세스 및 랜덤 엑세스를 지원할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 이미지 처리 장치(130)는 사용자 단말(110)과 유선 네트워크 또는 블루투스, WiFi 등과 같은 무선 네트워크로 연결될 수 있고, 유선 또는 무선 네트워크를 통해 사용자 단말(110)과 통신을 수행할 수 있다. 일 실시예에서, 이미지 처리 장치(130)는 데이터베이스(150)와 연동하여 이미지 처리를 수행할 수 있고, 다양한 정보들을 관리할 수 있다. 한편, 이미지 처리 장치(130)는 도 1과 달리, 데이터베이스(150)를 내부에 포함하여 구현될 수 있다.The image processing apparatus 130 corresponds to a computer or program that can support effective burst access and random access by grouping in burst access units of a bus while maintaining the advantage of lossless compression without loss of data. It can be implemented as a server. The image processing apparatus 130 may be connected to the user terminal 110 through a wired network or a wireless network such as Bluetooth or WiFi, and may communicate with the user terminal 110 through a wired or wireless network. In one embodiment, the image processing apparatus 130 may perform image processing in conjunction with the database 150 and may manage various types of information. Meanwhile, unlike FIG. 1, the image processing apparatus 130 may be implemented including the database 150 therein.

데이터베이스(150)는 이미지 처리 장치(130)가 이미지를 블록 단위로 분할하고 압축한 후 패킹을 통해 그룹화하는 과정에서 필요한 다양한 정보들을 저장할 수 있다. 예를 들어, 데이터베이스(150)는 사용자 단말(110)로부터 수신한 이미지 데이터를 저장할 수 있고, 이미지를 압축하여 생성한 그룹 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 이미지를 수신하여 그룹 단위로 압축 및 복원을 수행하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The database 150 may store various pieces of information necessary in a process by which the image processing apparatus 130 divides and compresses an image into blocks, and then group it through packing. For example, the database 150 may store image data received from the user terminal 110, and may store group information generated by compressing an image, and is not necessarily limited thereto, and receives an image in a group unit. In the process of performing compression and restoration, information collected or processed in various forms can be stored.

도 2는 도 1에 있는 이미지 처리 장치를 설명하는 블록도이다.FIG. 2 is a block diagram illustrating the image processing apparatus in FIG. 1.

도 2를 참조하면, 이미지 처리 장치(130)는 이미지 코딩부(210), 메모리 연산부(230) 및 제어부(250)를 포함할 수 있다.Referring to FIG. 2, the image processing apparatus 130 may include an image coding unit 210, a memory operation unit 230, and a control unit 250.

이미지 코딩부(210)는 이미지를 메모리의 제1 주소공간에 저장하는 과정에서, 이미지를 복수의 이미지 절편들로 분할한 후 압축을 통해 복수의 이미지 압축 절편들을 생성할 수 있다. 보다 구체적으로, 이미지 코딩부(210)는 원래의 이미지를 특정 사이즈의 이미지 절편으로 분할할 수 있고, 압축하여 이미지 압축 절편을 생성할 수 있다. 예를 들어, 이미지 코딩부(210)는 원래의 이미지를 4 * 4, 8 * 8 또는 16 * 8 사이즈 등에 해당하는 이미지 절편들로 분할할 수 있고, 만약 이미지의 크기가 800 * 600에 해당하는 경우 4 * 4 사이즈의 이미지 절편 300개(20 * 15)로 분할할 수 있다.In the process of storing the image in the first address space of the memory, the image coding unit 210 may divide the image into a plurality of image segments and then generate a plurality of image compression segments through compression. More specifically, the image coding unit 210 may divide the original image into image segments of a specific size, and compress the image to generate an image compression segment. For example, the image coding unit 210 may divide the original image into image segments corresponding to a size of 4 * 4, 8 * 8, or 16 * 8, and if the image size is 800 * 600 In this case, it can be divided into 300 pieces (20 * 15) of 4 * 4 sized image segments.

여기에서, 이미지 절편은 이미지를 구성하는 부분 이미지로서 픽셀 블록에 해당할 수 있고 이미지 압축 절편은 픽셀 블록을 압축하여 생성된 압축 픽셀 블록에 해당할 수 있다. 한편, 이미지 처리 장치(130)는 이미지 코딩부(210)를 통해 생성된 이미지 압축 절편들을 메모리의 제1 주소공간에 저장할 수 있다. 여기에서, 제1 주소공간은 이미지 압축 절편들이 저장되는 실제 메모리 상의 주소에 해당할 수 있고, 이미지 압축 절편들 각각에 대응될 수 있으며, 각각의 이미지 압축 절편과 연관되어 데이터베이스(150)에 저장될 수 있다. 이미지 처리 장치(130)에서 사용되는 이미지는 사진과 같은 정지 화면에 해당하거나 또는 동영상과 같은 연속된 화면의 한 프레임(Frame)에 해당할 수 있다.Here, the image segment may correspond to a pixel block as a partial image constituting the image, and the image compression segment may correspond to a compressed pixel block generated by compressing the pixel block. Meanwhile, the image processing apparatus 130 may store image compression fragments generated through the image coding unit 210 in the first address space of the memory. Here, the first address space may correspond to an address in the actual memory in which image compression fragments are stored, may correspond to each of the image compression fragments, and be stored in the database 150 in association with each image compression fragment. I can. The image used in the image processing apparatus 130 may correspond to a still screen such as a photo or a frame of a continuous screen such as a video.

일 실시예에서, 이미지 코딩부(210)는 복수의 이미지 절편들 각각에 대하여 무손실 압축 알고리즘을 적용하여 복수의 이미지 압축 절편들을 생성할 수 있다. 무손실 압축 알고리즘은 이미지 압축에 있어서 압축 후 복원시에 원래의 정보를 그대로 유지하는 압축 방법에 해당할 수 있다. 예를 들어, 이미지 코딩부(210)는 2차원의 이미지 절편을 압축하여 1차원의 이미지 압축 절편을 생성할 수 있고, 1차원으로 압축된 이미지 압축 절편들은 순서대로 연결되어 메모리 상의 제1 주소공간에 저장될 수 있다. 다른 실시예에서, 이미지 코딩부(210)는 무손실 압축 알고리즘으로서 DPCM(Differential Pulse Code Modulation)으로 prediction을 한 후 K=0, 1, 2, 3에 대해서 골룸라이스 인코딩(golumb-rice encoding)을 하는 DPCM-GR 알고리즘을 이용하여 데이터를 압축할 수 있다.In an embodiment, the image coding unit 210 may generate a plurality of image compression fragments by applying a lossless compression algorithm to each of the plurality of image fragments. In image compression, the lossless compression algorithm may correspond to a compression method in which original information is maintained as it is when reconstructed after compression. For example, the image coding unit 210 may compress a two-dimensional image segment to generate a one-dimensional image compression segment, and the image compression segments compressed in one dimension are sequentially connected to the first address space in the memory. Can be stored in. In another embodiment, the image coding unit 210 performs prediction by DPCM (Differential Pulse Code Modulation) as a lossless compression algorithm and then performs golumb-rice encoding for K=0, 1, 2, 3 Data can be compressed using the DPCM-GR algorithm.

일 실시예에서, 이미지 코딩부(210)는 복수의 이미지 절편들 각각의 첫 번째 이미지 픽셀 주소를 복수의 이미지 압축 절편들 각각에 대한 제1 주소공간과 매칭시켜 제1 매핑 정보를 생성할 수 있다. 이미지 코딩부(210)는 복수의 이미지 절편들을 메모리에 저장하는 과정에서 이미지 절편의 첫 번째 픽셀이 저장되는 메모리 상의 주소를 주소 테이블(address table)에 저장할 수 있다. 또한, 이미지 코딩부(210)는 이미지 압축 블록이 저장되는 메모리 상의 주소를 할당할 수 있고, 할당된 주소는 각 이미지 압축 절편에 대한 제1 주소공간에 해당할 수 있다. 이미지 코딩부(210)는 이미지 절편에 할당된 메모리 주소와 압축을 통해 생성된 이미지 압축 절편에 할당된 제1 주소공간을 서로 매칭시켜 제1 매핑 정보를 생성할 수 있고 주소 테이블에 저장하여 보관할 수 있다.In an embodiment, the image coding unit 210 may generate first mapping information by matching a first image pixel address of each of the plurality of image segments with a first address space for each of the plurality of image compression segments. . In a process of storing a plurality of image segments in a memory, the image coding unit 210 may store an address on a memory in which the first pixel of the image segment is stored in an address table. Further, the image coding unit 210 may allocate an address on a memory in which the image compression block is stored, and the allocated address may correspond to a first address space for each image compression segment. The image coding unit 210 may generate first mapping information by matching the memory address allocated to the image segment with the first address space allocated to the image compression segment generated through compression, and store and store the first mapping information in the address table. have.

일 실시예에서, 이미지 코딩부(210)는 메모리의 제2 주소공간으로부터 이미지를 불러오는 과정에서, 복수의 이미지 압축 절편들을 복원하여 복수의 이미지 절편들을 생성할 수 있다. 이미지 코딩부(210)는 이미지 압축 절편을 기초로 압축을 해제하여 이미지 절편을 생성할 수 있으며, 이미지 압축 절편에서 이미지 절편으로의 복원 과정은 압축 과정과 반대로 수행될 수 있다. 또한, 이미지 코딩부(210)는 이미지 복원 과정에서 주소 테이블에 저장된 주소 정보들을 활용할 수 있다.In an embodiment, the image coding unit 210 may generate a plurality of image segments by reconstructing a plurality of image compression segments in a process of loading an image from the second address space of the memory. The image coding unit 210 may generate an image segment by decompressing the image segment based on the image compression segment, and a restoration process from the image compression segment to the image segment may be performed opposite to the compression process. In addition, the image coding unit 210 may utilize address information stored in the address table during the image restoration process.

메모리 연산부(230)는 복수의 이미지 압축 절편들의 패킹을 통해 가변적인 버스트 그룹(Burst Group, BG)을 생성하여 메모리의 제2 주소공간으로 변환할 수 있다. 여기에서, 버스트 그룹(Burst Group, BG)은 효과적인 메모리 엑세스를 위하여 이미지 압축 절편들을 일정 단위로 묶은 이미지 압축 절편들의 집합에 해당할 수 있다. 하나의 이미지는 복수의 이미지 절편들로 분할될 수 있고, 각 이미지 절편은 이미지 압축 절편으로 압축될 수 있으며, 분할된 이미지 절편의 수 및 이미지 압축 절편으로 압축되는 압축률에 따라 하나의 이미지로부터 생성되는 버스트 그룹의 수는 가변적일 수 있다. 제2 주소공간은 버스트 그룹이 저장되는 메모리 상의 실제 주소와 해당 버스트 그룹 안에서 각 이미지 압축 절편의 위치 정보를 포함할 수 있다.The memory operation unit 230 may generate a variable burst group (BG) through packing of a plurality of image compression fragments and convert it into a second address space of the memory. Here, the burst group (BG) may correspond to a set of image compression fragments in which image compression fragments are grouped in a predetermined unit for effective memory access. One image can be segmented into a plurality of image segments, and each image segment can be compressed into an image compression segment. The number of burst groups can be variable. The second address space may include an actual address on a memory in which the burst group is stored and location information of each image compression fragment in the burst group.

일 실시예에서, 메모리 연산부(230)는 복수의 이미지 압축 절편들을 차례대로 정렬한 후 복수의 이미지 절편들에 대한 평균 압축 길이에 맞춰 그룹화함으로써 버스트 그룹을 생성할 수 있다. 메모리 연산부(230)는 이미지 절편의 정렬 순서에 맞춰 이미지 압축 절편을 차례대로 정렬할 수 있다. 하나의 이미지로부터 생성되는 버스트 그룹의 수는 가변적일 수 있으며, 버스트 그룹의 길이 자체는 고정적일 수 있다. 따라서, 메모리 연산부(230)는 버스트 그룹을 생성하기 전에 버스트 그룹의 길이를 결정할 수 있고, 버스트 그룹의 길이는 이미지 압축 절편의 평균 압축 길이와 동일하게 결정할 수 있다. 이미지 압축 절편의 압축률(Compression ratio)에 따라 하나의 버스트 그룹에 포함되는 이미지 압축 절편의 수 역시 가변적일 수 있다.In an embodiment, the memory operation unit 230 may generate a burst group by sequentially arranging a plurality of image compression segments and then grouping them according to an average compression length of the plurality of image segments. The memory operation unit 230 may sequentially arrange the image compression slices according to the sorting order of the image slices. The number of burst groups generated from one image may be variable, and the length of the burst group itself may be fixed. Accordingly, the memory operation unit 230 may determine the length of the burst group before generating the burst group, and may determine the length of the burst group equal to the average compression length of the image compression intercept. The number of image compression segments included in one burst group may also vary according to the compression ratio of the image compression segment.

일 실시예에서, 메모리 연산부(230)는 복수의 이미지 압축 절편들 중 특정 버스트 그룹 경계와 중첩되는 이미지 압축 절편의 경우 해당 버스트 그룹 경계 다음에 위치하는 버스트 그룹의 첫 번째 바이트에 정렬시킬 수 있다. 메모리 연산부(230)는 이미지 압축 절편을 순서대로 정렬시킬 수 있고, 버스트 그룹 길이에 따라 그룹화하는 과정에서 특정 이미지 압축 절편이 버스트 그룹의 경계와 중첩되는 경우 해당 이미지 압축 절편을 해당 버스트 그룹에서 제외하고 해당 버스트 그룹의 다음 순서에 위치하는 버스트 그룹의 첫 번째 이미지 압축 절편으로서 사용할 수 있다. 이를 위하여, 메모 연산부(230)는 버스트 그룹의 경계와 중첩하는 이미지 압축 절편을 다음 버스트 그룹의 첫 번째 바이트(byte)부터 시작하도록 정렬시킬 수 있다.In an embodiment, the memory operation unit 230 may align an image compression fragment overlapping a specific burst group boundary among a plurality of image compression fragments to a first byte of a burst group located next to the burst group boundary. The memory operation unit 230 may arrange the image compression intercepts in order, and in the process of grouping according to the burst group length, if a specific image compression intercept overlaps the boundary of the burst group, the corresponding image compression intercept is excluded from the burst group. It can be used as the first image compression intercept of the burst group located in the next order of the burst group. To this end, the memo operation unit 230 may align the image compression segment overlapping the boundary of the burst group to start from the first byte of the next burst group.

일 실시예에서, 메모리 연산부(230)는 단일 버스트 그룹 내부에 존재하는 복수의 이미지 압축 절편들 중 특정 바이트 경계와 중첩되는 이미지 압축 절편의 경우 해당 바이트 경계 다음에 위치하는 바이트에 정렬시킬 수 있다. 하나의 버스트 그룹은 복수의 이미지 압축 절편들의 집합에 해당하고, 복수의 이미지 압축 절편들은 첫 번째 이미지 압축 절편부터 차례대로 연결되어 하나의 버스트 그룹을 형성할 수 있다. 이 때, 메모리 연산부(230)는 버스트 그룹에 관한 메모리 주소를 저장하는 주소 테이블의 저장 공간을 줄이기 위하여 하나의 버스트 그룹 내에서의 복수의 이미지 압축 절편들의 위치를 비트(bit) 단위가 아닌 바이트(byte) 단위로 정렬시킬 수 있다. In an embodiment, the memory operation unit 230 may align an image compression fragment overlapping a specific byte boundary among a plurality of image compression fragments existing within a single burst group to a byte positioned after the corresponding byte boundary. One burst group may correspond to a set of a plurality of image compression segments, and the plurality of image compression segments may be sequentially connected starting from the first image compression segment to form one burst group. At this time, the memory operation unit 230 determines the positions of the plurality of image compression fragments in one burst group in bytes (not in bits) in order to reduce the storage space of the address table that stores memory addresses for the burst group. It can be sorted by byte) unit.

예를 들어, 메모리 연산부(230)는 하나의 버스트 그룹을 생성하기 위하여 버스트 그룹의 첫 번째 바이트와 첫 번째 이미지 압축 절편을 정렬시킬 수 있고, 첫 번째 이미지 압축 절편의 뒤에 두 번째 이미지 압축 절편을 연결할 수 있다. 만약 두 번째 이미지 압축 절편이 바이트 경계에서 끝나는 경우 첫 번째 이미지 압축 절편의 뒤에 곧바로 연결되어 배치될 수 있지만, 두 번째 이미지 압축 절편이 바이트 경계와 중첩되는 경우에는 첫 번째 이미지 압축 절편의 뒤에 곧바로 연결될 수 없고 첫 번째 이미지 압축 절편이 끝나는 지점에서 처음으로 나타나는 바이트 경계에 정렬될 수 있다.For example, the memory operation unit 230 may align the first byte of the burst group and the first image compression intercept to create one burst group, and connect the second image compression intercept after the first image compression intercept. I can. If the second image compression intercept ends at the byte boundary, it may be connected and placed directly after the first image compression intercept, but if the second image compression intercept overlaps the byte boundary, it may be connected directly after the first image compression intercept. No, it can be aligned to the byte boundary that appears first at the end of the first image compression intercept.

일 실시예에서, 메모리 연산부(230)는 복수의 이미지 압축 절편들 각각에 대한 제1 주소공간을 제2 주소공간과 매칭시켜 제2 매핑 정보를 생성할 수 있다. 메모리 연산부(230)는 이미지 압축 절편이 저장되는 메모리 상의 주소인 제1 주소공간과 버스트 그룹에 관한 제2 주소공간을 매칭시킬 수 있다. 보다 구체적으로, 제1 주소공간은 각 이미지 압축 절편과 해당 이미지 압축 절편에 대한 메모리 주소를 포함할 수 있고, 제2 주소공간은 각 버스트 그룹과 해당 버스트 그룹에 대한 메모리 주소 및 해당 버스트 그룹에 속한 이미지 압축 절편들에 대한 주소를 포함할 수 있다. 따라서, 메모리 연산부(230)는 버스트 그룹 내에 속하는 이미지 압축 절편을 기초로 제1 주소공간과 제2 주소공간을 매칭시킴으로써 제2 매핑 정보를 생성할 수 있고 주소 테이블에 저장하여 보관할 수 있다.In an embodiment, the memory operation unit 230 may generate second mapping information by matching the first address space for each of the plurality of image compression fragments with the second address space. The memory operation unit 230 may match a first address space, which is an address on a memory in which an image compression fragment is stored, and a second address space for a burst group. More specifically, the first address space may include each image compression segment and a memory address for the corresponding image compression segment, and the second address space includes a memory address for each burst group and the corresponding burst group, and the corresponding burst group. It may contain addresses for image compression fragments. Accordingly, the memory operation unit 230 may generate the second mapping information by matching the first address space and the second address space based on the image compression fragment belonging to the burst group, and store and store the second mapping information in the address table.

일 실시예에서, 메모리 연산부(230)는 특정 버스트 그룹에 대한 메모리 주소에 해당하는 버스트 그룹 주소와 해당 버스트 그룹 내에서 각 이미지 압축 절편의 위치에 해당하는 이미지 압축 절편 주소를 이용하여 제2 주소공간으로 변환할 수 있다. 보다 구체적으로, 메모리 연산부(230)는 버스트 그룹 주소와 이미지 압축 절편 주소 간의 합(sum)으로서 제2 주소공간을 표현할 수 있다.In one embodiment, the memory operation unit 230 uses a burst group address corresponding to a memory address for a specific burst group and an image compression segment address corresponding to a position of each image compression segment within the burst group to provide a second address space. Can be converted to More specifically, the memory operation unit 230 may express the second address space as a sum between the burst group address and the image compression fragment address.

일 실시예에서, 메모리 연산부(230)는 버스트 그룹 주소를 기초로 메모리로부터 특정 버스트 그룹을 읽고 이미지 압축 절편 주소를 기초로 버스트 그룹에 포함된 복수의 이미지 압축 절편들을 추출할 수 있다. 메모리 연산부(230)는 버스트 그룹 주소에 대응되는 메모리 상의 위치로부터 버스트 그룹에 대한 데이터를 읽을 수 있고, 이미지 압축 절편 주소를 통해 해당 버스트 그룹 내에 위치한 각 이미지 압축 절편들을 분리할 수 있다.In an embodiment, the memory operation unit 230 may read a specific burst group from the memory based on the burst group address and extract a plurality of image compression fragments included in the burst group based on the image compression fragment address. The memory operation unit 230 may read data for the burst group from a location on the memory corresponding to the burst group address, and may separate each image compression fragment located in the corresponding burst group through the image compression fragment address.

제어부(250)는 이미지 처리 장치(130)의 전체적인 동작을 제어하고, 이미지 코딩부(210) 및 메모리 연산부(230) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The controller 250 may control the overall operation of the image processing apparatus 130 and may manage a control flow or a data flow between the image coding unit 210 and the memory operation unit 230.

도 3은 도 1에 있는 이미지 처리 장치에서 수행되는 이미지 처리 과정을 설명하는 순서도이다.3 is a flow chart illustrating an image processing process performed by the image processing apparatus of FIG. 1.

도 3을 참조하면, 이미지 처리 장치(130)는 이미지 코딩부(210)를 통해 이미지를 메모리의 제1 주소공간에 저장하는 과정에서, 이미지를 복수의 이미지 절편들로 분할한 후 압축을 통해 복수의 이미지 압축 절편들을 생성할 수 있다(단계 S310). 이미지 처리 장치(130)는 메모리 연산부(230)를 통해 복수의 이미지 압축 절편들의 패킹을 통해 가변적인 버스트 그룹을 생성하여 메모리의 제2 주소공간으로 변환할 수 있다(단계 S330).3, in the process of storing the image in the first address space of the memory through the image coding unit 210, the image processing apparatus 130 divides the image into a plurality of image segments, It is possible to generate image compression fragments of (step S310). The image processing apparatus 130 may generate a variable burst group through packing of a plurality of image compression fragments through the memory operation unit 230 and convert it into a second address space of the memory (step S330).

도 4는 도 1에 있는 이미지 처리 장치에서 사용하는 주소 테이블의 저장 공간을 줄이기 위한 프레임 버퍼 파티셔닝 포맷을 설명하는 예시도이다.4 is an exemplary diagram illustrating a frame buffer partitioning format for reducing a storage space of an address table used in the image processing apparatus of FIG. 1.

도 4를 참조하면, 프레임 버퍼(frame buffer)가 아닌 파티션 그룹(partition group) 내의 매크로 블록(macro block)들의 주소는 매핑(mapping)되기 때문에 주소 테이블의 저장 공간을 줄일 수 있다. m * n 해상도를 가지는 이미지의 경우 각 파티션 그룹의 크기는 m * 16에 해당하고 파티션 그룹 수는 실링(ceiling)(n/매크로 블록의 높이)을 사용하여 산출될 수 있다. 파티션 그룹 내의 16 * 16 매크로 블록은 길이 1 비트의 압축 블록 데이터(Compressed Block Data, CBD)로 압축된 다음 해당 파티션 그룹 시작 주소에서 순차적으로 저장될 수 있다. 여기에서, 파티션 그룹 내의 압축된 블록의 주소는 주소 테이블(address table)에 저장될 수 있다.Referring to FIG. 4, since addresses of macro blocks in a partition group other than a frame buffer are mapped, the storage space of the address table can be reduced. In the case of an image having an m * n resolution, the size of each partition group corresponds to m * 16, and the number of partition groups may be calculated using a ceiling (n/height of a macro block). The 16 * 16 macroblocks in the partition group may be compressed into compressed block data (CBD) having a length of 1 bit and then stored sequentially at the start address of the partition group. Here, the address of the compressed block in the partition group may be stored in an address table.

도 5는 메모리에 있는 원래 파티션된 그룹 데이터와 메모리에 저장된 압축 블록 데이터를 설명하는 예시도이다.5 is an exemplary diagram illustrating original partitioned group data in a memory and compressed block data stored in a memory.

도 5를 참조하면, 이미지 처리 장치(130)는 2차원(2-D) 매크로 블록 데이터를 압축하여 1차원(1-D) CBD로 변환할 수 있다. 이미지 처리 장치(130)는 파티션 그룹의 첫 번째 매크로 블록 데이터를 파티션 주소의 시작 부분에 저장된 첫 번째 CBD로 압축할 수 있다. 또한, 이미지 처리 장치(130)는 나머지 매크로 블록 데이터에 대해 CBD로 압축하여 다음 주소에 순차적으로 저장할 수 있다. 이미지 처리 장치(130)는 CBD를 연속적으로 저장함으로써 버스트 엑세스가 가능하도록 할 수 있다. 또한, 이미지 처리 장치(130)는 CBD를 저장하는 동안 CBD에 대한 랜덤 엑세스를 가능하게 하기 위해 각 데이터의 시작 위치를 저장할 수 있다.Referring to FIG. 5, the image processing apparatus 130 may compress 2D (2-D) macroblock data and convert it into 1D (1-D) CBD. The image processing apparatus 130 may compress the first macroblock data of the partition group into the first CBD stored at the beginning of the partition address. In addition, the image processing apparatus 130 may compress the remaining macroblock data into CBD and sequentially store it in the next address. The image processing apparatus 130 may enable burst access by continuously storing CBD. In addition, while storing the CBD, the image processing apparatus 130 may store the start position of each data to enable random access to the CBD.

도 6은 1920 × 1080 풀 HD 해상도 이미지의 주소 표의 일 실시예를 설명하는 도면이다.6 is a diagram illustrating an embodiment of an address table of a 1920×1080 full HD resolution image.

도 6을 참조하면, 이미지 처리 장치(130)에서 수행되는 주소 매핑은 파티션 그룹 내부의 CBD를 다루기 때문에 각 CBD 조각의 주소는 15 비트가 필요하며 x 좌표는 11 비트, y 좌표는 4 비트에 해당할 수 있다(그림 (a)). 따라서, 총 8,100 개의 매크로 블록 항목이 있는 풀 HD 해상도 이미지의 경우 약 16KB의 주소 테이블 저장 공간이 필요할 수 있다. 결과적으로, 이미지 처리 장치(130)는 필요 저장 공간을 해당 프레임의 모든 CBD에 임의 엑세스를 허용하는데 필요한 23KB의 저장 공간의 약 68%로 줄일 수 있다. 도 6에서, 주소 테이블의 크기는 x 좌표의 이미지 해상도 비트 수에 비례하지만 y 좌표의 이미지 해상도 비트 수와는 무관할 수 있다(그림 (b)). 따라서, 주소 테이블에 대한 저장 용량의 감소 비율은 이미지 해상도에 따라 증가할 수 있다.Referring to FIG. 6, since the address mapping performed by the image processing apparatus 130 deals with CBD inside a partition group, the address of each CBD fragment requires 15 bits, and the x coordinate corresponds to 11 bits and the y coordinate corresponds to 4 bits. You can do it (Figure (a)). Therefore, for a full HD resolution image with a total of 8,100 macroblock items, about 16KB of address table storage space may be required. As a result, the image processing apparatus 130 can reduce the required storage space to about 68% of the storage space of 23 KB required to allow random access to all CBDs of the frame. In FIG. 6, the size of the address table is proportional to the number of image resolution bits of the x coordinate, but may be independent of the number of image resolution bits of the y coordinate (Fig. (b)). Therefore, the reduction ratio of the storage capacity for the address table may increase according to the image resolution.

도 7은 본 발명의 일 실시예에 따른 이미지 처리 장치의 전체적인 구조를 설명하는 개념도이다.7 is a conceptual diagram illustrating the overall structure of an image processing apparatus according to an embodiment of the present invention.

도 7을 참조하면, 이미지 처리 장치(130)는 이미지 코딩부(210)와 메모리 연산부(230)를 포함할 수 있고, 이미지 코딩부(210)는 Video decoder, Compressor 및 Decompressor를 포함하여 구현될 수 있으며, 메모리 연산부(230)는 Write Cache 및 Read Cache를 포함하여 구현될 수 있다.Referring to FIG. 7, the image processing apparatus 130 may include an image coding unit 210 and a memory operation unit 230, and the image coding unit 210 may be implemented including a video decoder, a compressor, and a decompressor. In addition, the memory operation unit 230 may be implemented including Write Cache and Read Cache.

Video decoder는 프레임 버퍼(frame buffer)를 매크로 블록(macro block) 단위로 메모리에 저장할 수 있고, 메모리에 저장된 매크로 블록 데이터를 읽어 프레임 버퍼로 옮기는 동작을 수행할 수 있다. Compressor는 Video decoder로부터 수신한 매크로 블록 데이터(original block data)를 압축하여 압축 블록 데이터(compressed block data)를 생성할 수 있고 Write Cache에 제공할 수 있다. Decompressor는 Read Cache로부터 수신한 압축 블록 데이터를 복원하여 매크로 블록 데이터를 Video decoder에 제공할 수 있다.The video decoder may store a frame buffer in a memory in a macro block unit, and may read macroblock data stored in the memory and transfer it to the frame buffer. The compressor may generate compressed block data by compressing the original block data received from the video decoder and provide it to the Write Cache. The decompressor may restore the compressed block data received from the Read Cache and provide the macro block data to the video decoder.

Write Cache는 Compressor로부터 수신한 압축 블록 데이터를 기초로 버스트 그룹을 생성하여 버스트 그룹 단위로 메모리에 저장(burst write)할 수 있다. 이때 변경된 위치 정보는 주소 테이블(address table)에 저장될 수 있다. Read Cache는 Video decoder가 매크로 블록 데이터(original block data)를 랜덤으로 읽는 경우 주소 테이블에 저장된 위치 정보를 기초로 버스트 그룹 단위로 데이터를 읽을(burst read) 수 있고 Decompressor에게 압축 블록 데이터를 제공할 수 있다. The write cache may generate a burst group based on compressed block data received from a compressor and store it in a memory in a burst group unit (burst write). At this time, the changed location information may be stored in an address table. When the video decoder randomly reads the original block data, the Read Cache can burst read data in burst group units based on the location information stored in the address table and provide compressed block data to the Decompressor. have.

Write Cache 및 Read cache는 memory bus access 효율을 높이기 위해서 메모리의 데이터를 버스트 엑세스할 수 있다. 이를 위해서 Write Cache는 압축 블록 데이터를 버스트 그룹 단위로 패킹하고 이를 메모리에 burst write할 수 있다. 또한, Write Cache의 버퍼는 더블(double) 구조로 구현될 수 있기 때문에 패킹과 burst write를 동시에 수행할 수 있다. Read Cache는 버스트 그룹 단위로 캐시 라인(cache line)을 갱신할 수 있고, 캐시 라인에 저장된 데이터를 재사용할 수 있다. 만약 캐시 라인을 갱신할 때 모든 버퍼가 유효 데이터를 가진 경우, Read Cache는 저장된 시간의 순서대로 캐시 라인을 대체할 수 있다. Read Cache는 이미지의 컬러 요소(color component) 별로 독립된 캐시 라인을 가질 수 있다.Write Cache and Read Cache can access data in memory in bursts to increase memory bus access efficiency. To this end, the Write Cache can pack compressed block data in burst group units and burst write them to memory. In addition, since the buffer of the Write Cache can be implemented in a double structure, packing and burst write can be performed simultaneously. Read Cache can update the cache line in burst group units and reuse data stored in the cache line. If all buffers have valid data when updating the cache line, the Read Cache can replace the cache line in the order of the stored time. Read Cache can have independent cache lines for each color component of an image.

도 7에서, original block data는 압축과 패킹 과정을 통해 대응되는 address도 두 차례 변경될 수 있다. 첫째로, original block data의 address인 XY는 데이터를 압축한 후 address XY'로 변경될 수 있다. 둘째로, 버스트 그룹에 복수의 compressed block data를 패킹하면 address XY'가 address XY''로 변경될 수 있다. Address XY''는 burst group address(BG address)와 compressed block address(CB address)의 합으로 표현될 수 있다. 여기에서, BG address는 메모리에 저장된 burst group data의 주소에 해당할 수 있고, CB address는 버스트 그룹 안에서 각 compressed block data의 위치에 해당할 수 있다. XY'에서 XY''으로 매핑이 완료된 경우 매핑 정보는 주소 테이블에 저장될 수 있다.In FIG. 7, an address corresponding to the original block data may be changed twice through compression and packing processes. First, the address XY of the original block data can be changed to address XY' after compressing the data. Second, if a plurality of compressed block data is packed in a burst group, address XY' can be changed to address XY'. Address XY'' can be expressed as the sum of a burst group address (BG address) and a compressed block address (CB address). Here, the BG address may correspond to the address of burst group data stored in the memory, and the CB address may correspond to the location of each compressed block data in the burst group. When the mapping from XY' to XY'' is completed, the mapping information may be stored in the address table.

도 8은 도 1에 있는 이미지 처리 장치에서 생성하는 버스트 그룹의 포맷을 설명하는 예시도이다.8 is an exemplary diagram illustrating a format of a burst group generated by the image processing apparatus of FIG. 1.

도 8을 참조하면, 이미지 처리 장치(130)는 압축 블록 데이터를 기초로 버스트 그룹을 생성할 수 있다. 버스트 그룹은 압축 블록 데이터들의 집합으로서 특정 형식의 포맷을 통해 형성될 수 있다. 버스트 그룹의 길이는 compressed macro block data의 평균 크기인 l byte로 고정될 수 있고, 버스트 그룹의 내용은 compressed block data를 변수 n개만큼 포함할 수 있다. Referring to FIG. 8, the image processing apparatus 130 may generate a burst group based on compressed block data. A burst group is a set of compressed block data and may be formed through a specific format. The length of the burst group may be fixed to l byte, which is an average size of compressed macro block data, and the contents of the burst group may include n variables of compressed block data.

여기에서, 변수 n은 압축률에 비례해서 증가할 수 있지만 compressed block data를 정렬하면서 줄어들 수 있다. 이미지 처리 장치(130)는 데이터를 정렬할 때 메모리 읽기 버스(read bus)의 효율을 높이기 위해서 compressed block data가 버스트 그룹의 경계(boundary)를 넘지 않도록 할 수 있다. 즉, 이미지 처리 장치(130)는 버스트 그룹에서 1st compressed block data를 1st byte에 정렬할 수 있다. 또한, 이미지 처리 장치(130)는 주소 테이블의 저장 공간을 줄이기 위해 CB address를 bit address가 아닌 byte address에 정렬할 수 있다. 따라서, m번째 compressed block data는 j번째 byte에 정렬될 수 있다.Here, the variable n can increase in proportion to the compression rate, but can decrease while sorting the compressed block data. The image processing apparatus 130 may prevent compressed block data from exceeding a boundary of a burst group in order to increase the efficiency of a memory read bus when data is sorted. That is, the image processing device 130 may sort 1st compressed block data in 1st byte in the burst group. In addition, the image processing apparatus 130 may align CB addresses with byte addresses rather than bit addresses in order to reduce the storage space of the address table. Therefore, the m-th compressed block data may be aligned to the j-th byte.

도 9는 도 1에 있는 이미지 처리 장치에서 버스트 그룹을 패킹하는 과정을 설명하는 예시도이다.9 is an exemplary view illustrating a process of packing a burst group in the image processing apparatus of FIG. 1.

도 9를 참조하면, 이미지 처리 장치(130)는 16x4 형태로 데이터를 압축하고 평균 압축률이 2인 경우 8개의 블록 데이터를 버스트 그룹으로 패킹할 수 있다. 각 블록 데이터는 3, 1.51, 3, 1.5, 2, 2, 2 및 2의 압축률(Compression Ratio, CR)을 가질 수 있다. 이러한 조건에서 버스트 그룹은 16x16 macro block data의 평균 압축 길이인 128 byte 길이를 가질 수 있다. 이미지 처리 장치(130)는 8개의 original block data를 128 byte 길이로 패킹하여 3개의 버스트 그룹을 생성할 수 있다. Referring to FIG. 9, the image processing apparatus 130 compresses data in a 16x4 format and packs 8 block data into burst groups when the average compression rate is 2. Each block data may have a compression ratio (CR) of 3, 1.51, 3, 1.5, 2, 2, 2, and 2. Under this condition, the burst group may have a length of 128 bytes, which is an average compressed length of 16x16 macro block data. The image processing apparatus 130 may generate three burst groups by packing eight original block data into a length of 128 bytes.

특히, 이미지 처리 장치(130)는 버스트 그룹 생성 과정에서 3번의 데이터 정렬을 수행할 수 있다. 도 9에서, 3번째 compressed block data는 바이트 경계(byte boundary)와 중첩(crossing)되기 때문에 다음 바이트(next byte)에 정렬될 수 있고, 네 번째와 일곱 번째 compressed block data는 버스트 그룹 경계(burst group boundary)와 중첩되기 때문에 다음 버스트 그룹의 첫 번째 바이트에 정렬될 수 있다.In particular, the image processing apparatus 130 may perform data alignment three times during the burst group generation process. In FIG. 9, since the third compressed block data overlaps with a byte boundary, it may be aligned on the next byte, and the fourth and seventh compressed block data is a burst group boundary (burst group). boundary), so it can be aligned to the first byte of the next burst group.

도 10은 본 발명의 일 실시예에 따른 이미지 처리 장치에 포함된 Write Cache를 설명하는 개념도이다.10 is a conceptual diagram illustrating a write cache included in an image processing apparatus according to an embodiment of the present invention.

도 10을 참조하면, 이미지 처리 장치(130)는 Write Cache를 포함하여 구현될 수 있고, Write Cache의 구조는 도 10의 좌측 그림과 같고 address aligner의 상세 구조는 도 10의 우측 그림과 같을 수 있다. 도 10의 좌측 그림에서, AddrAligner는 XY와 bit length를 이용해서 switch BG와 각종 address들을 계산하여 모든 component들의 데이터 위치를 제어할 수 있다. Shifter는 compressed block data를 CB address만큼 쉬프트(shift)할 수 있고, Selector0은 switch BG가 활성화(enable)되면 compressed block data를 저장하는 BG buffer를 바꿀 수 있다. Select1은 valid BG가 가리키는 BG data를 BG address가 가리키는 메모리에 burst write할 수 있다.Referring to FIG. 10, the image processing apparatus 130 may be implemented including a write cache, the structure of the write cache may be as shown in the left figure of FIG. 10, and the detailed structure of the address aligner may be as shown in the right figure of FIG. . In the left figure of FIG. 10, AddrAligner can control the data location of all components by calculating switch BG and various addresses using XY and bit length. Shifter can shift compressed block data by CB address, and Selector0 can change the BG buffer that stores compressed block data when switch BG is enabled. Select1 can burst write the BG data indicated by the valid BG to the memory indicated by the BG address.

도 10의 우측 그림에서, ByteAligner는 XY를 byte address와 bit address으로 분리할 수 있다. Bit address 값에 따라 byte address가 곧 byte aligned address가 되거나 1 증가한 값이 byte aligned address가 될 수 있다. Byte aligned address는 버스트 그룹 크기 단위로 분리될 수 있다(split). 상위 address는 BG address를 구하는데 사용될 수 있고 하위 address는 CB address를 구하는데 사용될 수 있다. In the right figure of FIG. 10, ByteAligner can separate XY into byte address and bit address. Depending on the bit address value, the byte address may become a byte aligned address soon, or a value incremented by 1 may become a byte aligned address. Byte aligned addresses can be split into burst group size units. The upper address can be used to get the BG address and the lower address can be used to get the CB address.

만약 switch BG가 활성화(enable)된 경우 CB address는 clear되고 BG address는 1만큼 증가할 수 있다. switch BG는 current compressed block data를 next BG에 패킹할 때 활성화될 수 있다. 즉, Byte aligned address와 byte aligned length를 더한 값이 버스트 그룹 길이인 l byte보다 크면 활성화될 수 있다. byte aligned length는 byte aligned address와 마찬가지 방법으로 bit length를 바이트 정렬하여 결정될 수 있다.If switch BG is enabled, the CB address is cleared and the BG address can be increased by 1. The switch BG can be activated when packing current compressed block data into the next BG. That is, when the sum of the byte aligned address and the byte aligned length is greater than l byte, which is the burst group length, it may be activated. The byte aligned length may be determined by byte-aligning the bit length in the same way as the byte aligned address.

도 11은 본 발명의 일 실시예에 따른 이미지 처리 장치에 사용하는 주소들 간의 관계를 설명하는 도면이다.11 is a diagram illustrating a relationship between addresses used in an image processing apparatus according to an embodiment of the present invention.

도 11을 참조하면, 이미지 처리 장치(130)는 BG 길이가 128 바이트인 경우 XY'를 XY''로 변환할 수 있다. XY'는 길이가 35 비트인 비트 주소(bit address)에 해당하고, XY'는 35'h7_0123_4567이며 XY'의 바이트 정렬 주소(byte-aligned address)는 32'hE014_68AD에 해당할 수 있다. switch BG가 비활성화(disable)되면 바이트 정렬 주소의 상위 25 비트는 BG 주소(25'h1C0_48D1)에 해당될 수 있고 바이트 정렬 주소의 하위 7 비트는 CB 주소(7'h2D)에 해당할 수 있다. 여기에서, 비트 주소 XY”는 35'h7_0123_4568에 해당할 수 있다. switch BG가 활성화(enable)되면 BG 주소는 기존 BG 주소를 1씩 증가시켜 얻을 수 있고(즉, 25'h1C0_48D2), CB 주소는 0으로 초기화될 수 있다. 따라서 XY”는 35'h7_0123_4800이 될 수 있다. 만약 XY'가 바이트 주소(byte address)인 경우 바이트 정렬 주소에 관한 계산은 건너뛸 수 있고, switch BG에 관한 주소 계산 만이 수행될 수 있다.Referring to FIG. 11, when the BG length is 128 bytes, the image processing apparatus 130 may convert XY′ into XY″. XY' may correspond to a bit address having a length of 35 bits, XY' may correspond to 35'h7_0123_4567, and a byte-aligned address of XY' may correspond to 32'hE014_68AD. When switch BG is disabled, the upper 25 bits of the byte aligned address may correspond to the BG address (25'h1C0_48D1), and the lower 7 bits of the byte aligned address may correspond to the CB address (7'h2D). Here, the bit address XY” may correspond to 35'h7_0123_4568. When switch BG is enabled, the BG address can be obtained by increasing the existing BG address by 1 (ie, 25'h1C0_48D2), and the CB address can be initialized to 0. Therefore, XY” can be 35'h7_0123_4800. If XY' is a byte address, the calculation of the byte-aligned address can be skipped, and only the address calculation of the switch BG can be performed.

도 12는 본 발명의 일 실시예에 따른 이미지 처리 장치에 포함된 Read Cache를 설명하는 개념도이다.12 is a conceptual diagram illustrating a read cache included in an image processing apparatus according to an embodiment of the present invention.

도 12를 참조하면, 이미지 처리 장치(130)는 Read Cache를 포함하여 구현될 수 있고, Read Cache의 구조는 도 12와 같을 수 있다. 도 12에서, Splitter는 XY address를 BG address와 CB address로 분리할 수 있다. Shifter는 BG data에서 CB address가 가리키는 compressed block data를 선택하여 전송할 수 있다. Selector0는 버퍼의 BGnAddr field들 중에서 BG address를 찾을 수 있고, 해당 버퍼의 BG data를 선택할 수 있다. Match component는 BGnAddr field들에 BG address가 없으면, BG address의 데이터를 메모리에 요청할 수 있다. Read Storage component는 BGAddr과 BG data로 구성된 버퍼들로 구성될 수 있다. Read storage는 color component 별로 각각 분리될 수 있고, 해당 버퍼 엔트리(entry)는 서로 다를 수 있다. Selector1은 메모리에서 읽어들인 BG data를 라운드로빈(round robin) 순서에 따라 Read Storage 내에 존재하는 버퍼를 갱신할 수 있다.Referring to FIG. 12, the image processing apparatus 130 may be implemented including a Read Cache, and the structure of the Read Cache may be the same as that of FIG. 12. In FIG. 12, the splitter can separate the XY address into a BG address and a CB address. The shifter can select and transmit compressed block data indicated by the CB address from BG data. Selector0 can find the BG address among the BGnAddr fields of the buffer and can select the BG data of the corresponding buffer. If there is no BG address in the BGnAddr fields, the match component may request data of the BG address from the memory. The Read Storage component can be composed of buffers composed of BGAddr and BG data. Read storage may be separated for each color component, and the corresponding buffer entry may be different. Selector1 may update the buffer existing in the Read Storage according to the round robin order of BG data read from the memory.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.

100: 이미지 처리 시스템
110: 사용자 단말 130: 이미지 처리 장치
150: 데이터베이스
210: 이미지 코딩부 230: 메모리 연산부
250: 제어부
100: image processing system
110: user terminal 130: image processing device
150: database
210: image coding unit 230: memory operation unit
250: control unit

Claims (16)

이미지를 메모리의 제1 주소공간에 저장하는 과정에서, 상기 이미지를 복수의 이미지 절편들로 분할한 후 압축을 통해 복수의 이미지 압축 절편들을 생성하는 이미지 코딩부; 및
상기 복수의 이미지 압축 절편들의 패킹을 통해 가변적인 버스트 그룹(Burst Group, BG)을 생성하여 상기 메모리의 제2 주소공간으로 변환하는 메모리 연산부를 포함하되,
상기 메모리 연산부는 상기 복수의 이미지 압축 절편들을 차례대로 정렬한 후 상기 복수의 이미지 절편들에 대한 평균 압축 길이에 맞춰 그룹화함으로써 상기 버스트 그룹을 생성하고, 단일 버스트 그룹 내부에 존재하는 상기 복수의 이미지 압축 절편들 중 특정 바이트 경계와 중첩되는 이미지 압축 절편의 경우 해당 바이트 경계 다음에 위치하는 바이트에 정렬시키며,
상기 제2 주소공간은 특정 버스트 그룹에 대한 메모리 주소에 해당하는 버스트 그룹 주소와 해당 버스트 그룹 내에서 각 이미지 압축 절편의 위치에 해당하는 이미지 압축 절편 주소 간의 합으로 표현되는 것을 특징으로 하는 이미지 처리 장치.
An image coding unit that divides the image into a plurality of image segments and generates a plurality of image compression segments through compression in the process of storing the image in the first address space of the memory; And
A memory operation unit that generates a variable burst group (BG) through packing of the plurality of image compression fragments and converts it into a second address space of the memory,
The memory operation unit generates the burst group by sequentially arranging the plurality of image compression segments and then grouping them according to an average compression length of the plurality of image segments, and compresses the plurality of images existing within a single burst group. In the case of an image compression intercept overlapping a specific byte boundary among the intercepts, the byte is aligned to the byte located after the byte boundary
The second address space is expressed as a sum of a burst group address corresponding to a memory address for a specific burst group and an image compression segment address corresponding to a position of each image compression segment within the burst group. .
제1항에 있어서, 상기 이미지 코딩부는
상기 복수의 이미지 절편들 각각에 대하여 무손실 압축 알고리즘을 적용하여 상기 복수의 이미지 압축 절편들을 생성하는 것을 특징으로 하는 이미지 처리 장치.
The method of claim 1, wherein the image coding unit
And generating the plurality of image compression fragments by applying a lossless compression algorithm to each of the plurality of image fragments.
제2항에 있어서, 상기 이미지 코딩부는
상기 복수의 이미지 절편들 각각의 첫 번째 이미지 픽셀 주소를 상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간과 매칭시켜 제1 매핑 정보를 생성한 후 주소 테이블에 저장하는 것을 특징으로 하는 이미지 처리 장치.
The method of claim 2, wherein the image coding unit
An image, characterized in that the first image pixel address of each of the plurality of image segments is matched with the first address space for each of the plurality of image compression segments to generate first mapping information and then store the first mapping information in an address table. Processing device.
제3항에 있어서, 상기 이미지 코딩부는
상기 메모리의 상기 제2 주소공간으로부터 상기 이미지를 불러오는 과정에서, 상기 복수의 이미지 압축 절편들을 복원하여 상기 복수의 이미지 절편들을 생성하는 것을 특징으로 하는 이미지 처리 장치.
The method of claim 3, wherein the image coding unit
And generating the plurality of image segments by reconstructing the plurality of image compression segments in the process of loading the image from the second address space of the memory.
삭제delete 제1항에 있어서, 상기 메모리 연산부는
상기 복수의 이미지 압축 절편들 중 특정 버스트 그룹 경계와 중첩되는 이미지 압축 절편의 경우 해당 버스트 그룹 경계 다음에 위치하는 버스트 그룹의 첫 번째 바이트에 정렬시키는 것을 특징으로 하는 이미지 처리 장치.
The method of claim 1, wherein the memory operation unit
An image processing apparatus, wherein an image compression segment overlapping a specific burst group boundary among the plurality of image compression segments is aligned to a first byte of a burst group positioned next to a corresponding burst group boundary.
삭제delete 제1항에 있어서, 상기 메모리 연산부는
상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간을 상기 제2 주소공간과 매칭시켜 제2 매핑 정보를 생성한 후 주소 테이블에 저장하는 것을 특징으로 하는 이미지 처리 장치.
The method of claim 1, wherein the memory operation unit
And generating second mapping information by matching the first address space for each of the plurality of image compression fragments with the second address space and storing the second mapping information in an address table.
제1항에 있어서, 상기 메모리 연산부는
특정 버스트 그룹에 대한 메모리 주소에 해당하는 버스트 그룹 주소와 해당 버스트 그룹 내에서 각 이미지 압축 절편의 위치에 해당하는 이미지 압축 절편 주소를 이용하여 상기 제2 주소공간으로 변환하는 것을 특징으로 하는 이미지 처리 장치.
The method of claim 1, wherein the memory operation unit
An image processing apparatus comprising converting into the second address space by using a burst group address corresponding to a memory address for a specific burst group and an image compression fragment address corresponding to a position of each image compression fragment within the burst group. .
제9항에 있어서, 상기 메모리 연산부는
상기 버스트 그룹 주소를 기초로 상기 메모리로부터 특정 버스트 그룹을 읽고 상기 이미지 압축 절편 주소를 기초로 상기 버스트 그룹에 포함된 복수의 이미지 압축 절편들을 추출하는 것을 특징으로 하는 이미지 처리 장치.
The method of claim 9, wherein the memory operation unit
An image processing apparatus comprising: reading a specific burst group from the memory based on the burst group address and extracting a plurality of image compression fragments included in the burst group based on the image compression fragment address.
이미지 처리 장치에서 수행되는 이미지 처리 방법에 있어서,
(a) 이미지를 메모리의 제1 주소공간에 저장하는 과정에서, 상기 이미지를 복수의 이미지 절편들로 분할한 후 압축을 통해 복수의 이미지 압축 절편들을 생성하는 단계; 및
(b) 상기 복수의 이미지 압축 절편들의 패킹을 통해 가변적인 버스트 그룹을 생성하여 상기 메모리의 제2 주소공간으로 변환하는 단계를 포함하되,
상기 (b) 단계는 상기 복수의 이미지 압축 절편들을 차례대로 정렬한 후 상기 복수의 이미지 절편들에 대한 평균 압축 길이에 맞춰 그룹화함으로써 상기 버스트 그룹을 생성하고, 단일 버스트 그룹 내부에 존재하는 상기 복수의 이미지 압축 절편들 중 특정 바이트 경계와 중첩되는 이미지 압축 절편의 경우 해당 바이트 경계 다음에 위치하는 바이트에 정렬시키는 단계를 포함하며,
상기 제2 주소공간은 특정 버스트 그룹에 대한 메모리 주소에 해당하는 버스트 그룹 주소와 해당 버스트 그룹 내에서 각 이미지 압축 절편의 위치에 해당하는 이미지 압축 절편 주소 간의 합으로 표현되는 것을 특징으로 하는 이미지 처리 방법.
In the image processing method performed in the image processing apparatus,
(a) in the process of storing the image in a first address space of a memory, dividing the image into a plurality of image segments and then generating a plurality of image compression segments through compression; And
(b) generating a variable burst group through packing of the plurality of image compression fragments and converting it into a second address space of the memory,
In the step (b), the burst group is generated by sequentially arranging the plurality of image compression segments and then grouping them according to an average compression length of the plurality of image segments, and In the case of an image compression segment overlapping a specific byte boundary among image compression segments, aligning the image compression segment to a byte positioned after the corresponding byte boundary
The second address space is expressed as a sum of a burst group address corresponding to a memory address for a specific burst group and an image compression segment address corresponding to a position of each image compression segment within the burst group. .
제11항에 있어서, 상기 (a) 단계는
상기 복수의 이미지 절편들 각각의 첫 번째 이미지 픽셀 주소를 상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간과 매칭시켜 제1 매핑 정보를 생성하는 단계인 것을 특징으로 하는 이미지 처리 방법.
The method of claim 11, wherein step (a)
And generating first mapping information by matching a first image pixel address of each of the plurality of image segments with the first address space for each of the plurality of image compression segments.
제12항에 있어서, 상기 (a) 단계는
상기 메모리의 상기 제2 주소공간으로부터 상기 이미지를 불러오는 과정에서, 상기 복수의 이미지 압축 절편들을 복원하여 상기 복수의 이미지 절편들을 생성하는 단계인 것을 특징으로 하는 이미지 처리 방법.
The method of claim 12, wherein step (a)
And generating the plurality of image segments by restoring the plurality of image compression segments in the process of retrieving the image from the second address space of the memory.
삭제delete 제11항에 있어서, 상기 (b) 단계는
상기 복수의 이미지 압축 절편들 각각에 대한 상기 제1 주소공간을 상기 제2 주소공간과 매칭시켜 제2 매핑 정보를 생성하는 단계인 것을 특징으로 하는 이미지 처리 방법.
The method of claim 11, wherein step (b)
And generating second mapping information by matching the first address space for each of the plurality of image compression fragments with the second address space.
제15항에 있어서, 상기 (b) 단계는
상기 버스트 그룹 주소를 기초로 상기 메모리로부터 특정 버스트 그룹을 읽고 상기 이미지 압축 절편 주소를 기초로 상기 버스트 그룹에 포함된 복수의 이미지 압축 절편들을 추출하는 단계인 것을 특징으로 하는 이미지 처리 방법.
The method of claim 15, wherein step (b)
And reading a specific burst group from the memory based on the burst group address and extracting a plurality of image compression fragments included in the burst group based on the image compression fragment address.
KR1020180105071A 2018-09-04 2018-09-04 Image processing apparatus and method KR102154580B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180105071A KR102154580B1 (en) 2018-09-04 2018-09-04 Image processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180105071A KR102154580B1 (en) 2018-09-04 2018-09-04 Image processing apparatus and method

Publications (2)

Publication Number Publication Date
KR20200027142A KR20200027142A (en) 2020-03-12
KR102154580B1 true KR102154580B1 (en) 2020-09-10

Family

ID=69802929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180105071A KR102154580B1 (en) 2018-09-04 2018-09-04 Image processing apparatus and method

Country Status (1)

Country Link
KR (1) KR102154580B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010171609A (en) * 2009-01-21 2010-08-05 Hitachi Ltd Image processing apparatus
JP2016005014A (en) 2014-06-13 2016-01-12 富士通株式会社 Moving image encoder and moving image encoding method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875454A (en) * 1996-07-24 1999-02-23 International Business Machiness Corporation Compressed data cache storage system
US7184603B2 (en) 2004-11-15 2007-02-27 Smith Micro Software, Inc. System and method for lossless compression of digital images
KR101100829B1 (en) 2010-03-09 2012-01-02 (주)네오위즈게임즈 System and method for lossless compression and decompression of image data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010171609A (en) * 2009-01-21 2010-08-05 Hitachi Ltd Image processing apparatus
JP2016005014A (en) 2014-06-13 2016-01-12 富士通株式会社 Moving image encoder and moving image encoding method

Also Published As

Publication number Publication date
KR20200027142A (en) 2020-03-12

Similar Documents

Publication Publication Date Title
US10062143B2 (en) Method and apparatus for compressing randomly accessed data
CN101099174B (en) Image coding method, encoder, decoding method and decoder and computer program product
CN105933708B (en) A kind of method and apparatus of data compression and decompression
JP5399416B2 (en) Video coding system with reference frame compression
CN105472389B (en) Compression method is cached outside a kind of piece for ultra high-definition processing system for video
US10834428B2 (en) Image coding and decoding method and device
US20140086309A1 (en) Method and device for encoding and decoding an image
JP2014525183A (en) Method and apparatus for image compression storing encoding parameters in a 2D matrix
CN104853211A (en) Image compression method and apparatus employing various forms of reference pixel storage spaces
GB2526943A (en) Method and apparatus for compressing and decompressing data
CN104754362B (en) Image compression method using fine-divided block matching
CN105578190A (en) Lossless compression method and system for video hard decoding
CN110708543A (en) Image compression apparatus combining block matching and string matching
US11568572B2 (en) Texture compression
CN106817584A (en) A kind of MJPEG compressions implementation method and FPGA based on FPGA
US11438599B2 (en) Video compression for video games
KR102154580B1 (en) Image processing apparatus and method
CN104113759A (en) Video system and method and device for buffering and recompressing/decompressing video frames
CN110087072A (en) Image processing apparatus
US20140185928A1 (en) Hardware-supported huffman coding of images
US10003808B2 (en) Apparatus and method for encoding
US11189006B2 (en) Managing data for transportation
CN116939210B (en) Image compression method and device based on self-encoder
CN110689590B (en) Compression coding method and device for map and mobile terminal equipment
US20080175312A1 (en) Method and system of compressing and decompressing data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)