KR100495001B1 - 이미지 압축 부호화 방법 및 시스템 - Google Patents

이미지 압축 부호화 방법 및 시스템 Download PDF

Info

Publication number
KR100495001B1
KR100495001B1 KR10-2002-0079927A KR20020079927A KR100495001B1 KR 100495001 B1 KR100495001 B1 KR 100495001B1 KR 20020079927 A KR20020079927 A KR 20020079927A KR 100495001 B1 KR100495001 B1 KR 100495001B1
Authority
KR
South Korea
Prior art keywords
pixel
encoding
value
image
data
Prior art date
Application number
KR10-2002-0079927A
Other languages
English (en)
Other versions
KR20040052176A (ko
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 KR10-2002-0079927A priority Critical patent/KR100495001B1/ko
Publication of KR20040052176A publication Critical patent/KR20040052176A/ko
Application granted granted Critical
Publication of KR100495001B1 publication Critical patent/KR100495001B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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
    • H04N19/176Methods 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 the region being a block, e.g. a macroblock
    • 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/182Methods 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 a pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명에 따른 이미지 압축 부호화 방법에 있어서, 현재 화소(P)를 기준으로 공간적으로 일정 거리 내에 있는 탐색 영역의 비교 대상 화소(T)들 중에서 현재 화소값(P1)과 동일한 화소값을 갖는 화소가 있는 경우 그 화소의 상대 위치 값(D1)을 부호화하되, 동일한 위치가 반복될 수 있으므로 그 최대 반복 카운트값을 함께 부호화하는 방법으로 1차 부호화를 수행한다. 1차 부호화에서 P가 처리되지 못한 경우 큐(Queue) 버퍼를 검색하여 P1과 동일한 화소값을 갖는 화소의 큐 버퍼 인덱스 값을 부호화하는 2차 부호화를 수행한다. 2차 부호화에서도 P가 처리되지 못한 경우, 큐 버퍼에 P1을 삽입한 후, 직전 화소와의 오차가 기준지 미만인 경우 오차를 부호화 하고 그렇지 않으면 P1을 부호화 하는 방법으로 3차 부호화를 수행한다. '1차, 2차 또는 3차의 부호화'(무손실 압축 부호화) 과정에서 임의의 구간의 J개의 화소에 대한 압축률이 일정 기준에 못 미치는 경우 해당 화소들을 블록 단위로 모아 손실 압축 부호화를 수행할 수도 있다. 끝으로, 이미지 전체에 대해, LZW기법을 추가 적용하여 얻은 '무손실 압축 부호화 데이터 열'과 '손실 압축 부호화 데이터 열'을 결합하여 부호화된 이미지 데이터를 생성한다.

Description

이미지 압축 부호화 방법 및 시스템{IMAGE COMPRESSION ENCODING METHOD AND SYSTEM}
본 발명은 이미지 부호화 방법 및 시스템에 관한 것으로서, 특히 인공 이미지의 특성을 이용한 이미지 부호화 방법 및 시스템에 관한 것이다.
정지 화면의 이미지 압축 부호화 방법은 크게 '손실 압축 방법'과 '무손실 압축 방법'으로 나눌 수 있다. 무손실 압축 방법으로서는 LZW(Lampel Ziv Weltch) 기법이 대표적이며 이 기법을 이용하여 GIF(Graphic Interchange Format) 파일을 생성하는 것이 잘 알려져 있다. LZW 기법에 의하면 어떤 길이의 데이터 스트링(String)을 갖는 패턴을 디렉토리(코드표)에 등록하고, 디렉토리에 등록된 패턴의 데이터가 나타나는 경우에, 그에 해당하는 등록 번호를 부호화하여 가변길이코드(Variable Length Code)로서 출력한다.
이와 같은 LZW 기법 등을 이용하여 GIF 파일을 생성하는 압축 부호화 방식을 간단히 GIF 방식으로 부르기도 한다. GIF 파일의 생성 과정은 미리 준비된 색상 테이블 수(예를 들어 256 가지)만큼의 디더링(필요한 경우, 즉, 이미지의 색상수가 색상 테이블보다 클 때 적용함)을 한 다음 화소값을 색상 테이블의 인덱스 값으로 전환하여, 이에 대해 LZW 방식의 가변길이 부호화를 실시하는 것이다. 이러한 GIF 파일 생성 방식은 무손실 압축 방식으로서 전송 후 화질에 전혀 변화가 없으나 자연 화상의 경우에 압축률이 30% 정도 수준으로서 손실 압축기법의 압축률(보통 90% 수준)에 비해 크게 떨어지므로 인공 이미지 압축에 한정되어 주로 사용되고 있다.
손실 압축 부호화 방법으로서는 국제 표준으로 정착된 JPEG(Joint Picture Expert Group) 방식이 대표적이다. JPEG 방식은 이미지 데이터를 블록 단위(예를 들어, 8x8 화소 블륵 단위)로 분할하여, 지그재그 스캔(ZigZag-Scanning)(필요한 경우), 이산 코사인 변환(Discrete Cosine Transform), 양자화(Quantization), 허프만 부호화(Huffman Coding) 등의 여러 기술을 복합적으로 적용하는 부호화 기법이다. JPEG 방식은 GIF 방식에 비해 카메라 촬영에 의한 사진이나 영상과 같은 자연 이미지(Natural Image)(도 10에 그 샘플을 도시함)의 압축에는 유리하나, 손실 압축 기법(예를 들어 DCT와 양자화 기법)을 채용하기 때문에 도형이나 기호가 많은 인공 이미지 경우에 윤곽선이 많이 손상되는 형태의 화질 저하가 나타나고, 양자화 스케일을 크게 할수록 이미지 열화가 두드러져, 문자나 컴퓨터 그래픽 화면, 정밀성을 요하는 도면과 같은 인공 이미지(도 11에 그 샘플을 도시함) (Artificial image)의 압축 부호화시에는 많은 문제점이 나타난다.
또 무손실 압축 방식으로 알려진 GIF 방식의 경우에도 이미지에 사용된 색상수가 칼라 테이블의 색상 수(보통 256 칼라)보다 더 많은 경우에는 디더링 과정에서 색상의 손실이 발생하는 단점이 있으며, 이 외에도 최근 들어 인공 이미지와 자연 이미지가 혼재하는 이미지(도 12에 자연 이미지와 인공 이미지가 혼재된 이미지 샘플을 도시함)를 압축 부호화해야 하는 경우가 빈번히 발생하게 되는 데, 이럴 때는 이 GIF 방식과 JPEG 방식의 두 가지 압축 부호화 방법 중 어떤 것을 사용하더라도 만족스런 효과를 거두기 어렵다. 이와 같은 문제를 극복하기 위해 시도된 몇 가지 종래 기술을 살펴보면 다음과 같다.
1995년 11월 16일에 출원되어 1999년 4월 1일에 등록된 대한민국 '등록특허10-0205286 호'(출원번호: 10-1995-0041666)는 부호화 대상 이미지가 2진영상이나 16 칼라 영상인 경우에는 런렝스(Run Length) 부호화 또는 LZW 부호화를 수행하고, 256 칼라의 캐드나 그래픽 영상인 경우에는 LZW 압축 부호화를 수행하고, 256 칼라의 사진 영상인 경우에는 트루칼라로 변환하여 JPEG 방식으로 부호화 하고, 트루칼라 영상인 경우에는 JPEG 방식으로 부호화하는 기술을 개시하고 있다. 이 방법은 부호화 대상 이미지의 특성을 판정하기 위한 회로와 다수의 부호화 채널을 구비하여 통합해야 하기 때문에 시스템의 구성이 복잡하고 데이터 처리에 시간이 걸려 이미지 데이터를 효과적으로 실시간 압축 부호화하는 데 한계가 있다.
1998년 3월 5일에 출원되어 1999년 9월 17일에 공개된 일본국 공개 특허출원 '특개평11-252563 호'(일본국 출원번호: 특개평 10-53007)는 컴퓨터 그래픽(Computer Graphic : CG) 영역과 자연 화상 영역이 혼재하는 화상에 대하여, 화상을 블록 단위로 분할한 다음, 각 블록의 화상 특성을 4가지로 분류하여 적응적으로 4가지 방식으로 부호화 하는 기술을 개시하고 있다. 이 4가지 부호화 방식은 JPEG 방식의 일종인 ADCT 방법, 4진 부호화 방법, 2진 부호화 방법, 블록 런랭스 부호화(트렁케이션 부호화의 일종)방법을 적용한다. 이 방법 역시 부호화 대상 이미지의 특성을 판정하기 위한 회로와 다수의 부호화 채널을 구비하여 통합해야 하기 때문에 시스템의 구성이 복잡해지고 데이터 처리에 시간이 걸려 이미지 데이터를 효과적으로 실시간 압축 부호화하는 데 한계가 있다. 또한, 블록 단위로 부호화하기 때문에 이미지 중 에지 부분의 열화 문제가 대두될 수 있다.
2001년 1월 30일에 출원되어 2001년 8월 20일에 공개된 대한민국 공개 특허출원 '특2001-0078150 호'(출원번호: 10-2001-0004213)는 사용자의 선택에 의해 제 1 모드(자연 화상 촬영 모드)와 제 2 모드(문자 화상 촬영 모드)를 설정할 수 있게 하여, 제 1 모드의 경우에는 입력된 화상을 JPEG 방식으로 부호화하고, 제 2모드인 경우에는 입력된 화상(실제로는 컬러 화상 데이터의 휘도 데이터)을 LZW 방식으로 디지털화된 데이터로서 압축하고 압축된 데이터에 필수 구성 요소를 부가하여 디지털화된 화상을 GIF 파일로 변환하는 기술을 개시하고 있다.
이 방법은 사용자의 모드 선택을 채용하여 부호화 대상 이미지의 특성 판단 과정을 생략하여 시스템 구성을 단순화한 면이 있으나, 인공 이미지의 본질적인 특성을 발견, 이용하지 못하고, 단지 인공 영상 중 문자 데이터를 처리하는 경우에 한정하고 있다. 따라서, 이 방법은 자연 영상의 사진 위에 날짜와 같은 문자 데이터가 기록된 단순한 이미지조차도 효과적으로 부호화할 수 없다. 특히, 실제의 인공 영상은 복잡한 이미지를 포함하고 있는 경우가 많기 때문에 인공 영상의 특성 파악에 기초한 효과적인 부호화 방법이 개발되지 않는 한 자연 영상과 인공 영상이 복잡하게 혼재된 경우의 이미지 부호화에는 한계가 있을 수밖에 없다.
이상에서 살펴 본 바와 같이, 종래 기술의 한계를 극복하기 위한 핵심 과제는 인공 이미지의 본질적인 특성을 찾아내어 이를 인공 이미지 부분에 대한 효과적인 압축 부호화에 이용함으로써, 자연 영상이나 인공 영상 중 어느 한쪽의 특성이 강한 경우이든 자연 영상과 인공 영상이 복잡하게 혼재된 경우이든 상관없이 이미지를 효과적으로 압축 부호화 할 수 있는 새로운 부호화 방법 및 시스템을 제공하는 것이다.
본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위하여 안출한 것으로서, 인공 이미지의 본질적 특성을 이용하여 인공 이미지가 포함된 이미지를 효과적으로 압축 부호화하기 위한 부호화 방법 및 시스템을 제공하는 데 있다.
본 발명의 또 다른 목적은 자연 영상이나 인공 영상의 특성에 관계없이 자연 영상과 인공 영상이 복잡하게 혼재된 경우에도 효과적으로 압축 부호화를 수행할 수 있는 부호화 방법 및 시스템을 제공하는 데 있다.
상기 목적을 달성하기 위하여 본 발명의 일관점에 따르면, 이미지 압축 부호화 방법에 있어서, 미리 정해진 스캔 순서에 따라 이미지 내의 부호화 대상 화소를 '현재 화소(P)'로 설정하는 단계와; '이미지 내에서 P로부터 공간적으로 일정 거리 내에 있는 스캔 화소 중 미리 지정된 복수개의 화소'(이하 '비교 대상 화소'(T)로 표시)로 이루어진 탐색 영역을 설정하는 단계와; 각각의 T의 화소값(T1)이 P의 화소값(P1)과 동일하면 해당 T의 위치 인덱스(D)에 대응되는 반복 카운트값(C)의 증가분(△C)을 '1'로 하고 그렇지 않은 경우 △C를 '0'으로 하여 모든 T에 대한 △C 데이터를 확보하는 단계와; 각각의 T의 '직전 화소까지의 C값'(CO)에 해당 △C를 더하여 'P까지의 C값'(이하 'CC'로 표시)을 계산하여 CC 중 최대값'(이하 'MC'로 약칭)을 구하는 단계와; MC가 'CO중의 최대값'(이하 'MO'로 약칭)보다 큰 경우 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 저장하는 단계와; MC가 MO보다 작거나 같은 경우, MO와 해당 T의 '탐색 영역 내 위치 인덱스값'(D1)을 부호화하여 제공하고 CO를 모두 '0'으로 초기화 하는 단계와; 상기 초기화 단계를 수행한 다음에, △C가 1이상인 T가 존재하지 않으면 P1을 부호화 하여 'P1의 부호화 값'(X1)을 생성하여 제공하고 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 저장하고, △C가 1이상인 T가 존재하면 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 저장하는 단계를 포함하는 이미지 압축 부호화 방법이 제공된다.
한편 본 발명의 또 다른 일관점에 따르면, 이미지 압축 부호화 시스템에 있어서, 미리 정해진 스캔 순서에 따라 이미지 내의 부호화 대상 화소를 '현재 화소(P)'로 설정하고, '이미지 내에서 P로부터 공간적으로 일정 거리 내에 있는 스캔 화소 중 미리 지정된 복수개의 화소'(이하 '비교 대상 화소'(T)로 표시)로 이루어진 탐색 영역을 설정하고, 각각의 T의 화소값(T1)이 P의 화소값(P1)과 동일하면 해당 T의 위치 인덱스(D)에 대응되는 반복 카운트값(C)의 증가분(△C)을 '1'로 하고 그렇지 않은 경우 △C를 '0'으로 하여 모든 T에 대한 △C 데이터를 확보하는 동일 칼라 화소 탐색부와; 각각의 T의 '직전 화소까지의 C값'(CO)에 해당 △C를 더하여 'P까지의 C값'(이하 'CC'로 표시)을 계산하여 CC 중 최대값'(이하 'MC'로 약칭)을 구한 다음 MC가 'CO중의 최대값'(이하 'MO'로 약칭)보다 큰 경우 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 제공하고, MC가 MO보다 작거나 같은 경우에는 MO와 해당 T의 '탐색 영역 내 위치 인덱스값'(D1)을 제공하고 CO를 모두 '0'으로 초기화 하며, 상기 초기화 수행 이후에 △C가 1이상인 T가 존재하지 않으면 P1을 제공하고 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 제공하며, △C가 1이상인 T가 존재하면 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 제공하는 제어부와; 상기 현재 화소 탐색 결과 테이블을 저장하는 화소 탐색 결과 테이블 저장부와; 상기 'MO와 D1'을 부호화한 값을 '기본 부호화 데이터'로서 생성하여 제공하거나 또는 상기 'P1을 부호화한 값'을 기본 부호화 데이터로서 생성하여 제공하는 기본 부호화부를 포함하는 이미지 압축 부호화 시스템이 제공된다.
우선 본 발명의 핵심 착안점에 대해 설명하고자 한다. 본 발명에서는 이미지의 압축 부호화의 효율을 높이기 위해 자연 영상과 인공 영상의 특성을 비교 분석하고, 수많은 압축 부호화 실험을 통해 다음과 같은 사실을 밝혀냈다.
첫째로, 이미지의 압축 부호화에 있어서 이미지 프레임 내에서 공간적으로 가까운 거리에 있는 화소들 중에서 현재의 화소와 동일한(또는 유사한) 칼라값을 갖는 화소가 있을 확률이 매우 높다는 점이다. 특히 인공 이미지의 경우 갖가지 도형과 기호로 이루어지게 되는 데, 사람이 사용하는 거의 모든 도형은 이미지 상에서 '수평선(-), 수직선(|), 사선(/), 역사선(\)'(이하, 편의상 '인공 이미지의 4가지 기본 요소'로 칭함)의 결합으로 이루어진다는 특성에 주목하는 게 중요하다.
도 10의 인공 이미지 샘플을 참조하면 이점을 쉽게 이해할 수 있다. 인공 이미지는 대개 문자나 숫자는 물론 다양한 모양의 직선이나 곡선으로 이루어지는 데, 그것을 잘게 잘라서 보면 결국 상기 인공 이미지의 4가지 기본 요소로서 분해될 수 있음을 이해할 수 있다.
둘째로, 공간적으로 일정한 거리 내에 화소값이 동일(또는 유사)한 화소가 없는 경우일 지라도, 이전에 스캔한 화소값이 다시 나타날 확률이 매우 높다. 특히 인공 이미지에 이러한 특성이 많이 나타나며 자연영상의 경우에도 좌우, 위아래가 대칭적인 이미지들이 많기 때문에 이 원리가 잘 적용되는 편이다.
따라서, 본 발명에서는 이런 이미지의 특성에 주목하여 이미지 내에서 현재 화소와 그 값이 동일(또는 유사)한 값이 존재할 확률이 높은 (이하에서 상세히 설명) 공간적으로 일정한 거리 이내의 소정 화소들의 값과 현재 화소 값을 비교한 결과를 현재 화소 값의 부호화에 이용함으로써 이미지 데이터의 압축 부호화 효율을 획기적으로 개선할 수 있다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대해 설명하고자 한다.
도 1은 본 발명의 바람직한 일실시예에 따른 이미지 압축 부호화 시스템의 개략적인 구성도를 나타낸다. 도 1을 참조하면 본 발명에 따른 이미지 압축 부호화 시스템은 기본 부호화 채널(100)을 필수적으로 포함하며, 실시 예에 따라서는 제 1 선택부(110)와 큐(Queue) 버퍼 인덱스 부호화부(120), 제 2 선택부(130), 손실 압축 부호화 부(140), 화소 값 차이 부호화부(150), 제 3 선택부(160), 데이터 포매팅부(180)가 더 포함될 수 있다. 본 발명의 바람직한 일실시예에 따르면 기본 부호화 채널(100)은 동일 칼라 화소 탐색부(102), 화소 탐색 결과 테이블 저장부(104), 제어부(105), 기본 부호화부(106)를 구비한다.
도 2는 본 발명의 바람직한 일실시예에 따른 이미지 압축 부호화 방법의 전개 과정을 나타내는 흐름도이다. 도 3은 본 발명의 일실시예 따라 추가되는 압축 부호화 방법의 전개 과정을 나타낸 흐름도이다. 도 4는 본 발명의 바람직한 일실시예에 따른 이미지 압축 부호화 과정에 의해 단계별로 생성되는 부호화 데이터 열의 구성 예를 개략적으로 도시한 도면이다. 이하에서, 본 발명의 실시 예에 따른 이미지 압축 부호화 방법의 전개 과정을 그에 대응되는 압축 부호화 시스템의 구조 및 기능과 연관지어 상세히 설명하고자 한다.
도 2를 참조하면, 본 발명의 일실시예에 따른 압축 부호화 방법의 전개과정은 단계(S200)에서 미리 정해진 스캔 순서에 따라 이미지 내의 부호화 대상 화소를 현재 화소(이하 'P'로 표시)로 설정함으로서 시작된다. 여기서 이미지는 디지털 영상 입력 장치나 디지털 영상 수신 장비, 저장 장치로부터 또는 PC 등과 같은 외부의 디지털 이미지 데이터 소스(source)로부터 시스템의 입력 단자(도시되지 않음)에 제공되는 것으로서, 보통 종래에는 GIF 방식 또는 JPEG 방식에 의해 부호화되었던 정지 영상이라고 할 수 있으나, 꼭 이에 한정되는 것은 아니다.
여기서 미리 정해진 스캔 순서는 '래스터(raster) 스캔 순서', '왼쪽 화소폭 우선 스캔 순서', '블록 단위 래스터 스캔 순서' 등 다양한 스캔 순서가 적용될 수 있다. 여기서 '래스터 스캔 순서'란 당 업계에서 잘 알려진 용어로서 도 7에 도시한 바와 같이 맨 윗줄의 맨 왼쪽 화소부터 시작해서 오른쪽으로 스캔하고, 그 다음 줄의 맨 왼쪽 화소부터 시작해서 오른쪽으로 스캔하는 식의 순서를 의미한다. 도 8은 '왼쪽 화소폭 우선 스캔 순서'를 도시한 도면인데, 이것은 이미지 화면의 왼쪽에서 오른쪽으로 미리 정해진 H 화소 폭(H는 보통 8임) 만큼 윗줄에서 아랫줄까지 모든 라인을 처리한 후, 다시 그 오른쪽의 H화소 폭 만큼을 동일한 방법으로 스캔하는 방식이다. 도 9는 '블록 단위 래스터 스캔 순서'를 도시한 것으로서 HxH 블록 단위로 래스터 스캔 순서를 적용하되, 블록 내에서는 래스터 스캔 순서로 화소를 스캔하는 방식이다. 실시예에 따라서는 이상에서 설명한 스캔 순서와 다른 스캔 순서가 적용될 수도 있음은 물론이다. 단계(S200) 이후에 과정은 단계(S205)로 진행한다.
단계(S205)는 단계(S200)에서 설정된 P의 공간적인 위치를 기준으로 '탐색 영역'을 설정한다. 여기서 '탐색 영역'이란 '이미지 내에서 현재 화소(P)로부터 공간적으로 일정 거리(예를 들어, 반경 4화소 거리) 내에 있는 스캔 화소(즉, 스캔한 화소) 중 미리 지정된 복수개(보통 4-6개)의 화소'(이하, '비교 대상 화소'로 칭함)로 이루어진 영역'을 의미한다.
본발명의 바람직한 일실시예에 따르면, 왼쪽 칸 우선 및 윗줄 우선의 스캔 원칙에 따를 경우에, '탐색 영역'으로서, P의 왼쪽 화소, P의 윗줄 화소, P의 윗줄의 왼쪽 화소, P의 윗줄의 오른쪽 화소의 4개 화소를 '비교 대상 화소'(이하 'T'로 표시)로서 구비하는 영역이 될 수 있는 데, 이것은 앞서 설명한 '인공 이미지의 4가지 기본 요소'를 고려한 탐색 영역 설정이다. 실시예에 따라서는, 상기 4개 화소에 더하여 P의 윗줄의 윗줄 화소, P의 왼쪽의 왼쪽 화소를 구비하여 총 6개의 화소를 T로서 구비하는 영역을 '탐색 영역'으로서 설정할 수도 있다.
한편, 현재 화소의 위치에 따라서는 P의 탐색 영역으로 설정된 화소이긴 하나 실제 이미지에서 존재하지 않는 화소이거나 아직 스캔을 완료하지 않은 화소가 비교 대상 화소로서 존재할 수 있다. 이때는, 해당 T의 화소값으로서 직전 스캔 화소의 부호화 과정에서 사용했던 값을 그대로 사용하거나 임의로 설정된 특정 값(예를 들면 검은색이나 흰색)을 사용할 수 있으며 또는 '비교 불능'으로 처리할 수도 있다. 또는 편의상 왼쪽 화소로서 직전 화소(즉, P를 기준으로 직전에 스캔한 화소)를, 왼쪽의 왼쪽 화소로서 직직전 화소(즉 P를 기준으로 직전의 직전에 스캔한 화소)를 사용하는 것도 가능하다.
단계(S205) 이후의 단계(S210)는 각각의 T에 대해, (이미지 내의 공간상의) T의 위치 인덱스(D)에 대응되는 반복 카운트값(C)의 증가분(△C)을 확보하는 단계이다. 좀더 상세히 설명하면, 단계(S210)에서는 각각의 T의 화소값(이하 'T1'으로 표시)을 P의 화소값(이하 'P1'으로 표시)과 비교하여, T1이 P1과 동일하면 해당 △C를 K(미리 정해진 양의 정수로서, 보통은 1이므로 이하에서는 1로 표시)로 하고 그렇지 않으면 △C를 '0'으로 한다. 여기서, '그렇지 않은 경우'란 T1이 P1과 다른 경우뿐만 아니라, 실제로 단계(S205)에서의 T가 이미지 내에 존재하지 않거나 앞서 설명한 '비교 불능'인 경우 등 'T1이 P1과 동일한 값을 갖지 않는 일체의 경우'를 의미함에 유의할 필요가 있다.
이어서 단계(S230)에서는 탐색 영역의 모든 T에 대해 단계(S210)가 수행되었으면 과정은 단계(S235)로 진행하고, 그렇지 않으면 과정은 단계(S210)로 리턴된다. 이렇게 해서 모든 T에 대한 △C 데이터가 확보된다. 이하에서는 도 5와 도 6을 참조로 이상의 단계(S205, S210, S230)에 대해 구체적인 예를 들어 좀더 상세히 설명하고자 한다.
본 발명의 바람직한 일실시예에 따르면, 탐색 영역은 도 5에 도시한 바와 같이, 현재 화소의 위치를 '0'이라고 할 때, '1'부터 '6'까지로 표시한 화소를 비교 대상 화소로서 구비하며, 탐색의 순서는 번호가 작은 것을 우선으로 한다. 한편, 본 발명의 또 다른 일실시예에 따르면 참조 이미지(예를 들어 현재 이미지의 직전 이미지)의 현재 화소 위치의 화소(이하 '0'번 화소로 부름)도 비교 대상 화소로서 더 구비될 수 있다. 도 5는 상기와 같은 탐색 영역 설정 규칙에 따른 '직전 화소에 대한 탐색 영역'과 '현재 화소에 대한 탐색 영역'의 예를 나타낸다. 도 5에서 직전 화소의 탐색 영역에서 'N'으로 표시된 위치(직전 화소의 탐색 영역에서 '0'으로 표시된 현재 화소 위치의 다음 부호화 대상 화소의 위치)가 현재 화소 위치로서 설정되고 이에 따라 탐색 영역에 대한 위치 번호가 매겨짐을 알 수 있다.
동일 칼라 화소 탐색부(102)는 화소 탐색 결과 테이블 저장부(104)에 미리 저장되어 있는 직전 (스캔) 화소 탐색 결과 테이블(도 6a의 예 참조)(의 데이터)을 읽어 들여, 이에 기초하여, T1과 P1을 미리 정해진 비교 순서에 따라 차례로 비교한다. 실시예에 따라서는 동일 칼라 화소 탐색부(102)는 직전 화소의 모든 T에 대한 T1값을 자체 내 버퍼(도시 생략됨)에 미리 저장하여 P1과 T1의 비교에 활용할 수도 있다. 도 6a에서 알 수 있듯이, 화소 탐색 결과 테이블에는 T의 위치 인덱스(D)에 대해 반복 카운트 값(C)이 대응되어 기록된다.
T1이 P1과 동일하다면(즉, 칼라가 동일하면) 탐색 결과 테이블의 해당 D에 대응되는 반복 카운트값(C)을 1만큼 증가시키고(즉, △C를 1로 하고), 그렇지 않으면C를 증가시키지 않는다(즉, △C를 0으로 한다). 이런 작업을 미리 지정된 순서에 따라 탐색 영역의 모든 화소에 대해 계속해 나간다. 이렇게 해서 모든 T에 대한 △C 데이터를 확보한다.
동일 칼라 화소 탐색부(102)에 의해 수행되는 P의 T에 대한 △C 데이터 확보 과정을 도 5a 및 도 5b를 예로 들어 좀더 상세히 설명하면 다음과 같다. 우선 직전 화소를 기준으로 한 탐색 영역의 0번 화소의 바로 오른쪽에 있는 화소('N'번 화소로 표시됨)가 현재 화소를 기준으로 한 탐색 영역의 0번 화소 위치가 되기 때문에, 직전 화소 탐색 영역의 1번 화소, 2번 화소, 3번 화소는 각각 현재 화소 탐색 영역의 6번 화소, 4번 화소, 2번 화소에 해당하게 된다(도 5를 비교하여 참조할 것). 한편, 직전 화소 탐색 영역의 4번 화소, 5번 화소, 6번 화소는 현재 화소의 탐색 영역의 바깥에 위치하게 되어 현재 화소 값과 비교되지 않는다.
그리고 현재 화소를 기준으로 한 탐색 영역 화소로서의 3번 화소, 5번 화소는 직전 화소의 탐색 영역에는 포함되지 않았던 것임을 알 수 있다. 단계(S230) 이후에 단계(S235)에서는 각 T의 '직전 화소까지의 C값'(즉, 직전 화소 탐색 결과 테이블 내의 C값으로서 이하에서 'CO'로 표시)에 해당 △C를 더하여 'P까지의 C값'(이하 'CC'로 표시)을 계산하여 그 CC 중 최대값'(이하 'MC'로 약칭)을 구한다. 도 6b는 현재 화소에 대한 탐색 과정에서 얻은 데이터의 예를 도시한다. 도 6b를 참조하면, 현재 화소에 대한 탐색 영역의 3, 4번 화소에 대한 △C만 각각 1로 설정된 것을 볼 수 있다. 단계(S235) 이후에 과정은 단계(S240)로 진행한다.
단계(S240)에서는 MC와 'CO 중 최대값'('MO'로 약칭)을 비교하는 단계로서, MC > MO 이면 단계(S280)로 진행하고, MC가 MO보다 같거나 작으면 단계(S250)로 진행한다. 단계(S250)에서는 MO와 해당 T의 '탐색 영역 내 위치 인덱스값'(D1)을 부호화한 값을 '기본 부호화 데이터'로서 제공하고 CO를 모두 '0'으로 초기화 한다. 예를 들면 도 6b의 경우에는 MO는 4가 되고, D1은 1이 된다. 단, 여기서 MO가 둘 이상 존재하는 경우에는 미리 정해진 비교 우선 순서(예를 들어, 도 5에서의 작은 번호 순서) 또는 스캔 우선 순서에 따라 선택한다. 도 6b에서 CO를 모두 0으로 초기화 하면 도 6c와 같은 데이터가 구해진다. 단계(S250) 이후에 과정은 단계(S260)로 진행한다.
단계(S260)에서는 현재 화소에 대한 탐색 결과, △C가 1이상인 T가 하나이상 존재하는 지의 여부를 판단하는데, △C가 1이상인 T가 하나이상 존재하면 과정은 단계(S280)로 진행하고, 그렇지 않으면 단계(S270)로 진행한다. 단계(S270)에서는 현재 화소값(P1)을 부호화하여 부호화 값(X1)을 '기본 부호화 데이터'로서 생성하여 제공한다. 과정은 단계(S270) 이후에 단계(S280)로 진행한다.
단계(S280)에서는 각 T의 CO에 해당 △C를 더한 것을 T의 CC로 설정함으로써 현재 화소 탐색 결과 테이블을 생성하여 저장한다. 예를 들면 도 6d는 도 6c의 데이터에 근거하여 단계(S280)을 수행하여 생성된 현재 화소 탐색 결과 테이블의 예를 도시한다. 단계(S280) 이후에 과정은 단계(S290)로 간다.
단계(S290)에서는 미리 정해진 개수(J개)의 P에 대해 부호화가 완료되었는지를 판단하여, 완료되었으면 과정은 종료되고, 완료되지 않았으면 과정은 단계(S200)로 되돌아가서 J개의 화소에 대한 기본 부호화가 완료될 때까지 과정이 계속된다. 여기서, J는 8의 배수이고 바람직하게는 8, 16, 32, 64 중 하나로 설정할 수 있다. 이렇게 해서 이미지 내 화소에 대해 J개의 각 화소에 대해 상기 모든 단계를 수행하여 J개의 기본 부호화값으로 이루어진 'J개의 기본 부호화 데이터 열'을 생성함으로써 기본 부호화가 완료되는 것이다.
이상의 단계(S235, S240, S260, S280, S290)는 제어부(105)에 의해 수행될 수 있는 바, 제어부(105)는 동일 칼라 화소 탐색부(102)로부터 현재 화소 탐색 결과 데이터를 수신하여, 단계(S235)에서 MC를 구한 다음, 단계(S240)에서 MC > MO인 경우에는 단계(S280)를 수행하여 현재 화소까지의 탐색 결과 테이블을 생성하여 화소 탐색 결과 테이블 저장부(104)에 제공하여 그곳에 저장되도록 한다. 한편, 제어부(105)는 MC가 MO보다 같거나 작은 경우에는 MO와 D1을 기본 부호화부(106)에 제공한다. 또 제어부(105)는 MC가 MO보다 같거나 작은 조건하에서, △C가 1이상인 T가 하나도 없으면 P1을 기본 부호화부(106)에 제공하고 단계(S280)의 작업을 수행하여 현재 화소 탐색 결과 테이블을 생성하여 화소 탐색 결과 테이블 저장부(104)에 제공하여 그곳에 저장되도록 한다. 또 제어부(105)는 단계(S290)의 판단에 따라 동일 칼라 화소 탐색부(102)와 기본 부호화부(106)를 제어할 수 있다.
기본 부호화부(106)는 제어부(105)로부터 'MO와 D1' 또는 P1을 수신하여 이를 기본 부호화하여 각각 'MO와 D1을 부호화한 값'(이하 'MOD1'로 표시) 또는 X1을 '기본 부호화 데이터'로서 생성, 제공한다. 기본 부호화부(106)는 보통 J개의 화소에 대해 기본 부호화를 수행하여 얻은 J개의 부호화 데이터를 한묶음으로 해서 '기본 부호화 데이터 열'로서 제공하지만, 실시예에 따라서는, 기본 부호화부(106)는 기본 부호화 데이터를 화소 단위로 제공하고 나중에 설명할 제 1 선택부(110)가 J개의 부호화값을 한묶음으로 해서 '기본 부호화 데이터 열'을 구성할 수도 있다. 여기서 기본 부호화에는 무손실 압축부 부호화 기법이 이용되며, 대표적으로는 고정 길이 부호화(Fixed Run Length Coding: FLC) 기법이 이용된다.
한편, 본 발명의 바람직한 실시예에 따르면, 단계(290) 이후에 추가 부호화 과정이 이어질 수 있다. 도 3은 본 발명의 바람직한 실시예에 따른 추가 부호화 과정의 일예를 도시한 도면이다. 본 발명의 일실시예에 따르면, 이런 추가 부호화 과정을 구현하기 위해 기본 부호화 채널(100)에 더하여 도 1에 도시한 바와 같이, 제 1 선택부(110), 큐(Queue) 버퍼 인덱스 부호화부(120), 제 2 선택부(130), 화소값 차이 부호화부(150), 제 3 선택부(160), 손실 압축 부호화 채널(140), 데이터 포매팅부(180)와 같은 회로가 본 발명의 이미지 압축 부호화 시스템에 더 포함될 수 있다.
도 4는 본 발명의 일실시예에 따른 추가 압축 부호화 과정에 의해 단계별로 생성되는 부호화 데이터 열의 개략적인 구성 예를 나타낸다. 이하에서, 본 발명의 바람직한 실시예에 따른 이미지 압축 부호화 방법의 추가 과정을 추가된 회로의 구조 및 기능과 연관지어 상세히 설명하고자 한다.
우선, 단계(S300)에서는 'J개의 원래 화소로 이루어진 데이터 열'(이하 'J개의 원래 화소 데이터 열'로 약칭, 도4에서 '400'으로 표시된 것이 그 예)의 데이터 크기(이하 'A'로 표시)(보통 바이트(byte) 단위로 표시됨)와 단계(S290)로부터 제공된 '기본 부호화 데이터 열'(도4에서 '410'으로 표시)의 데이터 크기(이하 'B1'로 표시)를 비교하여 후속 처리 경로를 선택한다. 즉, 단계(S300)에서는 B1을 A로 나눈값(B1/A)(이하 'Y1'로 표시)이 미리 정해진 제 1 기준값(TH1)보다 작으면 기본 부호화에 의한 압축률이 원하는 수준이상으로 양호하다고 판단하여 과정은 단계(310)로 진행하고, 그렇지 않으면 단계(S360)로 진행한다. 여기서 TH1은 0과 1사이의 값으로서 바람직하게는 0.3 내지 0.5의 값(예를 들면 1/3)이다.
이렇게 기본 부호화에 의해 데이터가 압축되는 것은 예를 들어, 데이터 열(400)의 3, 4, 5번째 화소값인 V3, V4, V5을 나타내는 데는 각 화소 당 24비트(R, G, B 또는 Y, U, V 값의 표현에 각각 8비트 씩 할당할 경우)로서 총 72 비트가 필요한 데 비해, 이를 고정 길이 부호화한 데이터 열(410)의 '위치 인덱스 4의 반복 카운트값이 3임을 나타내는 데이터'인 'P4R3'는 예를 들어 8비트로 표시할 수 있다는 데서 쉽게 이해할 수 있다. 참고로, P4R3는 복호화부(도시되지 않음)에서 V3, V4, V5 값의 복원 시에는 해당 화소를 기준으로 4번 위치에 있는 복원 화소값을 3회 취하는 것으로 해석함으로써 복호화한다.
단계(S310)에서는 '기본 부호화 데이터 열'에 대한 큐(Queue) 버퍼 인덱스 부호화가 큐 버퍼 인덱스 부호화부(120)에 의해 수행되어 '큐 버퍼 인덱스 부호화 데이터 열'이 생성된다. 큐 버퍼 인덱스 부호화부(120) 내에는 별도로 준비된 큐(Queue) 버퍼(도시되지 않음)가 존재 하는 데, 여기에는 기본 부호화부(106)에서 위치 및 반복 카운트로 부호화되지 않고 화소값으로 부호화된 화소 중에서 큐 버퍼 내에 동일한 화소값이 저장되어 있지 않은 화소의 화소값이 스캔 순서대로 저장된다. 단계(S310)를 좀더 구체적으로 설명하면, 현재 화소값과 동일한 화소가 저장된 큐 버퍼 내의 저장 위치 인덱스(이하 '큐 버퍼 인덱스'로 약칭함)를 부호화하여 큐 버퍼 인덱스 부호화 데이터 열의 해당 위치에 저장한다. 큐 버퍼 내에 저장된 화소 중에서 현재 화소의 화소값과 동일한 화소값을 갖는 화소가 없는 경우에는 현재 화소값을 큐 버퍼에 삽입(저장)하고, 부호화 데이터 열에는 해당 화소에 대한 부호화값(예를 들어 도4, '430'의 X1, X2, X7, X14)을 그대로 둔다. 도4에는 이렇게 해서 얻어진 '큐 버퍼 인덱스 부호화 데이터 열(430)'이 예시되어 있다.
예를 들어, 도 4를 참조하면 현재 화소가 13번째 화소로서 부호화한 값이 X13으로서 해당 화소값은 V13이라고 하면 그 이전 화소의 부호화 값은 X1, X2, X6, X7, X12이다. 예를 들어, 열(430)에서 X6 대신에 Q1로 부호화 되었다는 것은 V6이 V2와 화소값이 동일하다고 볼 수 있으며, 이 때 큐 버퍼에는 V1, V2, V7, V12가 저장되게 된다. 여기서 Q오른쪽의 숫자 1은 바로 직전 화소의 위치 인덱스를 의미한다. 이런 방식으로 데이터 열(430)에서 X13 대신에 Q3가 저장된 것은 13번째 화소보다 3회 전에 큐 버퍼에 저장된 2번째 화소(V2)의 화소값이 V13의 화소값과 동일함을 나타낸다.
단계(S310)에 이어서 단계(S320)에서는 '큐 버퍼 인덱스 부호화 데이터 열'(예를 들어 430)의 데이터 크기(이하 'B2'로 표시)와 A를 비교하여 후속 처리 경로를 선택한다. 즉, 단계(S320)에서는 B2를 A로 나눈값(B2/A)(이하 'Y2'로 표시)이 미리 정해진 제 2 기준값(TH2)보다 작으면 큐 버퍼 인덱스 부호화에 의한 압축률이 원하는 수준이상으로 양호하다고 판단하여 과정은 단계(330)로 진행하고, 그렇지 않으면 단계(S360)로 진행한다. 여기서 TH2는 TH1보다 작은 값으로서 0과 1사이의 값이며, 바람직하게는 0.2 내지 0.4의 값(예를 들면 1/4)이다.
단계(S330)에서는 '큐 버퍼 인덱스 부호화 데이터 열'에 대한 '화소값 차이 부호화'가 화소값 차이 부호화부(150)에 의해 수행되어 '화소값 차이 부호화 데이터 열'이 생성된다. 즉, 큐 버퍼 인덱스 부호화 데이터 열 내에 아직 부호화된 화소값으로서 남아 있는 화소의 화소값과 직전 화소값과의 오차(DF)를 계산하여, DF가 미리 정한 기준치(TE) 보다 같거나 작으면 DF를 선택하여 (고정 길이) 부호화 하고 그렇지 않으면 부호화된 화소값을 그대로 둔다. 도4에는 이렇게 생성된 '화소값 차이 부호화 데이터 열'의 예(450)가 도시되어 있다. 도4에서 E2, E7, E14로 표시된 것이 화소값 차이를 고정 길이 부호화한 값을 나타낸다. 여기서 E2는 V2와 V1의 오차이며, E7은 V7과 V6의 오차, E14는 V14와 V13의 오차이다. 단계(S330) 이후에 과정은 단계(S340)로 진행한다.
단계(S340)에서는 '화소값 차이 부호화 데이터 열'(예를 들어 450)의 데이터 크기(이하 'B3'로 표시)와 A를 비교하여 후속 처리 경로를 선택한다. 즉, 단계(S340)에서는 B3를 A로 나눈값(B3/A)(이하 'Y3'로 표시)이 미리 정해진 제 3 기준값(TH3)보다 작으면 화소 차이값 부호화에 의한 압축률이 원하는 수준이상으로 양호하다고 판단하여 과정은 단계(370)로 진행하고, 그렇지 않으면 단계(S360)로 진행한다. 여기서 TH3는 TH2보다 작은 값으로서 0과 1사이의 값이며, 바람직하게는 0.1 내지 0.3의 값(예를 들면 1/5)이다.
단계(S360)에서는 기본 부호화, 큐 버퍼 인덱스 부호화, 화소값 차이 부호화와 같은 무손실 압축 부호화 방법 대신에 손실 압축 부호화 방법을 적용하는 단계로서, 보통 '무손실 압축 부호화 데이터 열'(즉, 기본 부호화 데이터 열, 큐 버퍼 인덱스 부호하 데이터 열, 화소값 차이 부호화 데이터 열) 사이의 해당 위치에 <손실 압축 부호화된 화소의 개수를 나타내는 부호화 데이터 정보>(예를 들어 J가 손실 압축 부호화된 화소 개수가 64일 경우에 'S64'로 표시)를 삽입한 다음, 그에 해당하는 원래의 화소 데이터 열(예를 들면 도 4의 400)을 손실 압축 대기 버퍼(도시되지 않음)에 저장하되, 손실 압축 대기 버퍼의 대기 화소수가 미리 정해진 블록을 구성할 수 있는 개수(예들 들어 8x8 블록을 구성하는 64개의 화소) 이상이 될 때 해당 블록을 손실 압축 부호화하여 '손실 압축 부호화 데이터 열'을 얻는 방식으로 수행한다.
이때, 손실 압축 부호화 방법이 연속하여 적용된 경우에는 무손실 압축 부호화가 적용되기까지 연속적으로 손실 압축 부호화된 데이터를 하나의 무손실 압축 부호화 데이터 열로서 추가한다. 예를 들어, 손실 압축 부호화할 데이터 열의 화소 수인 64이고, 바로 직전에 손실 압축 부호화한 데이터 열의 화소수가 192임을 나타내는 값이 S192인 경우에는, 이 둘을 연속으로 묶어서 S256으로서 표현한다.
여기서, 손실 압축 부호화 방법으로서는 이른바 JPEG 방법의 하나로서 잘 알려진 블록별 부호화 방법으로서 이산 코사인 변환(DCT), 양자화, 허프만(Huffman) 부호화를 순차적으로 적용하는 방법을 이용하는 것이 보통이지만, 다른 손실 압축 부호화 방법도 사용할 수 있다. 이때 블록 크기는 미리 정해진 것으로서 HxH 화소 크기(H는 8의 배수로서 보통 8임)를 주로 채용한다. 단, 이미지의 마지막 손실 압축 부호화 대상이 되는 원래 화소 데이터 열이 손실 압축 부호화 채널(160)에 입력된 경우, HxH개의 화소값이 다 채워지지 않더라도 나머지 값을 모두 '0'으로 채운 후 블록 단위 손실 압축 부호화를 수행할 수 있다.
한편, 상기에서 언급한 기준값(TH1, TH2, TH3)은 부호화 시스템(예를 들어 PC)의 메모리 용량 및 연산 성능에 따라 달리 설정될 수 있다. 또한, 사용자의 메뉴 선택 및 시스템 설정에 따라 다르게 제어될 수 있다. 예를 들어, 사용자의 메뉴 선택이나 시스템 설정의 변화에 따라 손실 압축 부호화에서 양자화를 적용할 때, 양자화 스케일을 크게(즉, 거칠게 부호화)할 것인가 아니면 더 작게(세세하게 부호화)할 것인가 하는 선택도 기준값을 정하는 데 영향을 미칠 수 있다.
단계(S300)는 제 1 선택부(110)에 의해 수행되는 바, 그곳에 입력된 원래의 화소 데이터 열의 크기와 기본 부호화부(106)로부터 받은 기본 부호화 데이터 열의 데이터 크기를 비교하여, Y1 < TH1이면 기본 부호화된 데이터를 큐 버퍼 인덱스 부호화부(120)로 제공하고, 그렇지 않으면 '손실 압축 부호화 명령'을 손실 압축 부호화 채널(140)로 제공한다. 단계(S320)는 제 2 선택부(130)에 의해 수행되는 바, 그곳에 입력된 원래의 화소 데이터 열의 크기와 큐 버퍼 인덱스 부호화(120)로부터 받은 큐 버퍼 인덱스 부호화 데이터 열의 데이터 크기를 비교하여, Y2 < TH2이면 큐 버퍼 인덱스 부호화 데이터 열을 화소값 차이 부호화부(150)로 제공하고, 그렇지 않으면 '손실 압축 부호화 명령'을 손실 압축 부호화 채널(140)로 제공한다. 단계(S340)는 제 3 선택부(160)에 의해 수행되는 바, 그곳에 입력된 원래의 화소 데이터 열의 크기와 화소값 차이 부호화부(150)로부터 받은 '화소값 차이 부호화 데이터 열'의 데이터 크기를 비교하여, Y3 < TH3이면 '화소값 차이 부호화 데이터 열'을 데이터 포매팅부(180)로 제공하고, 그렇지 않으면 '손실 압축 부호화 명령'을 손실 압축 부호화 채널(140)로 제공한다.
단계(S360)는 손실 압축 부호화 채널(140)에 의해 그곳에 입력되는 제 1 선택부(110), 제 2 비교부(120), 제 3 선택부(160)로부터의 '손실 압축 부호화 명령'에 응답하여 J개의 원래 화소 데이터 열에 대해 손실 압축 부호화를 수행하여 '손실 압축 부호화 데이터 열'을 생성하여 데이터 포매팅부(180)로 제공함으로써 수행된다. 손실 압축 부호화 채널(140)은 J개의 원래 화소 데이터 열을 블록 단위로 모아 DCT 부호화 하여 DCT 부호화 데이터를 생성하는 DCT부와, DCT 부호화된 데이터에 대해 양자화를 수행하여 양자화된 데이터를 생성하는 양자화부, 양자화된 데이터에 대해 허프만 부호화를 수행하는 허프만 부호화부를 구비할 수 있다.
데이터 포매팅부(180)에 의해 수행되는 단계(S370)에서는 하나의 이미지 화면 전체에 대해 J개의 화소 단위로 모두 부호화한 결과 얻어진 손실 압축 부호화 데이터 열과 무손실 압축 부호화 데이터 열(즉, 기본 부호화 데이터 열, 큐 버퍼 인덱스 부호화 데이터 열, 화소값 차이 부호화 데이터 열)을 결합하여 하나의 이미지 전체에 대한 부호화 데이터 열로서의 '부호화된 이미지 데이터'를 생성하며, 이로써 과정은 종료된다.
여기서, 본발명의 바람직한 일실시예에 따르면, '손실 압축 부호화 데이터 열'을 '손실 압축 부호화된 화소값들을 순서대로 (별도로) 모은 부분'(예들 들면, 도 4의 데이터 열(470)에서 'WW...WW'로 표시된 부분)과 '손실 압축 부호화에 대한 데이터 정보(를 부호화한 값)'(예들 들면, 도 4의 데이터 열(470)에서 'S32, S16, S64'등으로 표시된 부분)로 구분하여, 이 데이터 정보를 무손실 압축 부호화 데이터 열의 해당 위치에 삽입한 것을 실제 무손실 압축 부호화 데이터 열로서 구성할 수도 있음에 유의할 필요가 있다. 즉, 무손실 압축 부호화 데이터 열은 이와 같은 넓은 의미로서 이해되어야 한다.
한편, 본 발명의 바람직한 일실시예에 따르면, 데이터 포매팅 직전에 '무손실 압축 부호화 데이터 열'에 대하여 'LZW 부호화'를 수행한 다음, 단계(S470)에서 LZW 부호화된 데이터 열과 손실 압축 부호화 데이터 열을 결합하여 부호화된 이미지 데이터를 생성할 수도 있음에 주목할 필요가 있다(이하에서 도 4의 부호화된 이미지 데이터(480)의 생성 예에서 자세히 설명).
또한, 실시예에 따라서는 사용자의 메뉴 선택 또는 시스템 설정에 의해 제 1 선택부(110), 제 2 비교부(120), 제 3 선택부(160)에서의 해당 압축률을 해당 기준치와 비교하는 작업을 생략하고, 기본 부호화부(106), 큐 버퍼 인덱스 부호화부(120), 화소값 차이 부호화부(150)가 '기본 부호화 데이터 열', '큐 버퍼 인덱스 부호화 데이터 열', '화소값 차이 부호화 데이터 열'을 각각 '무손실 압축 부호화 데이터 열'로서 라인(L17)을 통해 직접 데이터 포매팅부(180)에 제공하도록 할 수도 있음에 유의할 필요가 있다.
도 4에는 단계(S370)에서의 데이터 포매팅을 거쳐 생성된 이미지 전체에 대한 부호화된 이미지 데이터 열로서 '470'과 '480'이 예시되어 있다. 부호화된 이미지 데이터 열(470)은 LZW가 적용되지 않은 경우의 예로서, U1, U2, U3, U5000은 각각 화소값 차이 부호화 데이터 열이며, S32, S16, S64는 손실 압축 부호화 과정으로 처리한 화소를 나타내는 손실 압축 부호화 데이터 정보(를 부호화한 값)이다. 즉, S16은 16개의 화소를 손실 압축 부호화했음을 나타낸다. 또, 데이터 열(470, 480)에서 'WW..WW'로 표시된 부분은 손실 압축 부호화한 화소값들을 순서대로 모은 부분을 나타낸다.
한편, 부호화된 이미지 데이터 열(480)에서 'ZZZZ'로 표시된 부분은 상기 데이터 열(470)에서 무손실 압축 부호화 데이터 열(U1, S32, U2, . . .U5000로 표시된 부분)에 LZW 부호화를 적용하여 얻은 LZW 부호화 데이터 열을 나타낸다.
참고로, 복호화부(도시되지 않음)에서는 손실 압축 부호화된 데이터 열의 복호화 데이터가 무손실 압축 부호화된 데이터 열의 복호화 과정에서 사용되어져야 하므로 먼저 손실 압축 부호화 데이터 열을 복호화 하여 버퍼에 잠시 저장한 다음, 무손실 압축 부호화 데이터 열의 복호화 과정에서 필요한 해당 화소값을 손실 압축 복호화 버퍼에서 가져오는 방법으로 처리함으로써 복호화의 효율 향상을 기할 수 있다.
이상에서 설명한 본 발명의 실시예에 따른 실험 결과를 하나 예로 들면, 특정 인터넷 사이트에 접속하여 얻은 인공영상과 자연영상이 혼재 되어 있는 1024 x 768의 RGB 24비트 컴퓨터 화면 이미지의 비트맵 2.25 MB 크기를 종래의 256 칼라 GIF 방식으로 압축했을 경우에 데이터 크기는 156 KB였고, 종래의 방식으로서 양자화 스케일을 작게 해서 JPEG 압축부호화를 한 경우(JPEG#1)와 양자화 스케일을 크게 해서 JPEG 압축 부호화를 한 경우(JPEG#2)가 각각 232 KB와 101 KB의 데이터 크기를 보였다. 이에 비해 본 발명의 일실시예에 따라 상기 컴퓨터 화면 이미지에 대해 실시한 압축 부호화 결과, 71 KB의 데이터 크기를 얻어서 압축률이 가장 우수하였고, 복원된 화면의 화질 면에서도 JPEG#2는 물론 JPEG#1 보다 우수했고, 종래의 GIF 방식에 의한 것과 거의 차이가 없었다.
상술한 본 발명의 설명에서는 특정 실시 예에 관해 설명하였으나 당업자라면 이하의 특허청구범위에 의해 정의된 본 발명의 범위에서 벗어나지 않고 다양한 변형을 가할 수 있음은 물론이다.
본 발명에 따르면 인공 이미지의 본질적 특성을 이용하여 인공 이미지가 포함된 이미지를 효과적으로 압축 부호화하며, 자연 영상이나 인공 영상 어느 한쪽의 특성이 강한 경우이든 자연 영상과 인공 영상이 복잡하게 혼재된 경우이든 상관없이 이미지를 효과적으로 압축 부호화 할 수 있는 압축 부호화 방법 및 시스템이 제공된다.
도 1은 본 발명의 바람직한 일실시예에 따른 이미지 압축 부호화 시스템의 개략적인 구성도,
도 2는 본 발명의 바람직한 일실시예에 따른 이미지 압축 부호화 방법의 전개 과정을 나타내는 흐름도,
도 3은 본 발명의 일실시예 따른 추가 이미지 압축 부호화 과정을 나타낸 흐름도,
도 4는 본 발명의 일실시예에 따른 추가 압축 부호화 과정에 의해 단계별로 생성되는 부호화 데이터 열의 개략적인 구성 예를 나타낸 도면,
도 5는 본 발명의 일실시예에 따른 탐색 영역 설정 예를 도시한 도면,
도 6은 본 발명의 일실시예에 따른 탐색 결과 테이블 구성과 관련된 데이터의 예를 도시한 도면,
도 7은 본 발명의 일실시예에 따른 래스터 스캔 순서를 도시한 도면,
도 8은 본 발명의 일실시예에 따른 왼쪽 화소폭 우선 스캔 순서를 도시한 도면,
도 9는 본 발명의 일실시예에 따른 블록 단위 래스터 스캔 순서를 도시한 도면,
도 10은 인공 이미지 샘플을 도시한 도면,
도 11은 자연 이미지 샘플을 도시한 도면,
도 12는 자연 이미지와 인공 이미지가 혼재된 이미지 샘플을 도시한 도면.
<도면의 주요부분에 대한 부호의 설명>
100 : 기본 부호화 채널 102 : 동일 칼라 화소 탐색부
104 : 화소 탐색 결과 테이블 저장부 105 : 제어부
106 : 기본 부호화부
S200 : 부호화 대상 화소를 현재 화소(P)로 설정하는 단계
S205 : P의 위치를 기준으로 탐색 영역을 설정하는 단계
S210 : '비교 대상 화소'(T)의 위치 인덱스(D)에 대응되는 '반복 카운트값'(C)의 증가분(△C)을 확보하는 단계
S230 : 탐색 영역 내의 모든 T에 대하여 △C를 확보했는지 확인하는 단계
S235 : 각 T의 '직전 화소까지의 반복 카운트 값'(CO)에 해당 △C를 더하여 'P까지의 반복 카운트값'(CC)을 계산하여 그 중 최대값(MC)을 구하는 단계
S240 : 'CO 중 최대값'(MO)과 MC를 비교하는 단계
S250 : MO와 해당 T의 '탐색 영역 내 위치 인덱스 값'(D1)을 부호화하여 제공하고 CO를 모두 '0'으로 초기화 하는 단계
S260 : △C가 1이상인 T가 존재하는 지 확인하는 단계
S270 : '현재 화소값'(P1)을 부호화하여 'P1의 부호화값'(X1)을 생성하여 제공하는 단계
S280 : 각 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 '현재 화소 탐색 결과 테이블'을 생성하여 저장하는 단계

Claims (22)

  1. 이미지 압축 부호화 방법에 있어서,
    미리 정해진 스캔 순서에 따라 이미지 내의 부호화 대상 화소를 '현재 화소(P)'로 설정하는 단계와;
    '이미지 내에서 P로부터 공간적으로 일정 거리 내에 있는 스캔 화소 중 미리 지정된 복수개의 화소'(이하 '비교 대상 화소'(T)로 표시)로 이루어진 탐색 영역을 설정하는 단계와;
    각각의 T의 화소값(T1)이 P의 화소값(P1)과 동일하면 해당 T의 위치 인덱스(D)에 대응되는 반복 카운트값(C)의 증가분(△C)을 '1'로 하고 그렇지 않은 경우 △C를 '0'으로 하여 모든 T에 대한 △C 데이터를 확보하는 단계와;
    각각의 T의 '직전 화소까지의 C값'(CO)에 해당 △C를 더하여 'P까지의 C값'(이하 'CC'로 표시)을 계산하여 CC 중 최대값'(이하 'MC'로 약칭)을 구하는 단계와;
    MC가 'CO중의 최대값'(이하 'MO'로 약칭)보다 큰 경우 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 저장하는 단계와;
    MC가 MO보다 작거나 같은 경우, MO와 해당 T의 '탐색 영역 내 위치 인덱스값'(D1)을 부호화하여 제공하고 CO를 모두 '0'으로 초기화 하는 단계와;
    상기 초기화 단계를 수행한 다음에, △C가 1이상인 T가 존재하지 않으면 P1을 부호화 하여 'P1의 부호화 값'(X1)을 생성하여 제공하고 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 저장하고, △C가 1이상인 T가 존재하면 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 저장하는 단계를 포함하는
    이미지 압축 부호화 방법.
  2. 제 1항에 있어서, J개의 원래 화소 열에 대해 상기 모든 단계를 수행하여 'J개의 기본 부호화 데이터 열'을 생성하되, J는 미리 정해진 8의 배수인
    이미지 압축 부호화 방법.
  3. 제 1항에 있어서,
    상기 탐색 영역에 이전에 부호화된 이미지 아니면 미리 지정된 참조 이미지 내의 특정 위치의 화소가 더 구비되는
    이미지 압축 부호화 방법.
  4. 제 1항에 있어서,
    상기 일정 거리는 4화소 거리이고, 상기 미리 정해진 스캔 순서가 왼쪽 칸 우선 및 윗줄 우선 원칙을 따를 경우, 상기 탐색 영역에는 P의 왼쪽 화소, P의 윗줄 화소, P의 윗줄의 왼쪽 화소, P의 윗줄의 오른쪽 화소, P의 윗줄의 윗줄 화소, P의 왼쪽의 왼쪽 화소가 상기 비교 대상 화소로서 구비되는
    이미지 압축 부호화 방법.
  5. 제 1항에 있어서,
    상기 일정 거리는 4화소 거리이고, 상기 미리 정해진 스캔 순서가 왼쪽 칸 우선 및 윗줄 우선 원칙을 따를 경우, 상기 탐색 영역에는 P의 직전 스캔 화소, P의 윗줄 화소, P의 윗줄의 왼쪽 화소, P의 윗줄의 오른쪽 화소, P의 윗줄의 윗줄 화소, P의 직직전 스캔 화소가 상기 비교 대상 화소로서 구비되는
    이미지 압축 부호화 방법.
  6. 제 1항에 있어서,
    상기 탐색 영역의 비교 대상 화소가 실제로 존재하지 않는 화소이거나 또는 아직 스캔을 완료하지 않은 화소인 경우에 대해서는 '비교 불능'으로 판정하여, 해당△C를 '0'으로 설정하는
    이미지 압축 부호화 방법.
  7. 제 2항에 있어서,
    J는 8, 16, 32, 64 중 어느 하나인
    이미지 압축 부호화 방법.
  8. 제 1항에 있어서,
    상기 미리 정해진 스캔 순서가 '래스터(raster) 스캔 순서'와 '왼쪽 화소폭 우선 스캔 순서'와 '블록 단위 래스터 스캔 순서' 중 어느 하나인
    이미지 압축 부호화 방법.
  9. 제 2항에 있어서,
    상기 'J개의 원래 화소 데이터 열'의 데이터 크기(이하 'A'로 표시)와 상기 '기본 부호화 데이터 열'의 데이터 크기(이하 'B1'로 표시)를 비교하여, Y1(=(B1/A))이 미리 정해진 제 1 기준값(TH1)보다 크면 '상기 J개의 원래 화소 데이터 열'들을 모아 미리 정해진 크기의 블록 단위로 손실 압축 부호화를 수행하여 '손실 압축 부호화 데이터 열'을 생성하고, 그렇지 않으면 상기 기본 부호화 데이터 열에 대해 큐(Queue) 버퍼 인덱스 부호화를 수행하여 '큐 버퍼 인덱스 부호화 데이터 열'을 생성하는 단계를 더 포함하되, TH1은 0과 1사이의 값인
    이미지 압축 부호화 방법.
  10. 제 9항에 있어서,
    상기 '큐 버퍼 인덱스 부호화 데이터 열'의 데이터 크기(이하 'B2'로 표시)와 A를 비교하여, Y2(=(B2/A))가 미리 정해진 제 2 기준값(TH2)보다 크면 '상기 J개의 원래 화소 데이터 열' 들을 모아 상기 미리 정해진 크기의 블록 단위로 손실 압축 부호화를 수행하여 '손실 압축 부호화 데이터 열'을 생성하고, 그렇지 않으면 상기 큐 버퍼 인덱스 부호화 데이터 열에 대해 '화소값 차이 부호화를 수행하여 '화소값 차이 부호화 데이터 열'을 생성하는 단계를 더 포함하되, TH2는 TH1보다 작은 0과 1사이의 값인
    이미지 압축 부호화 방법.
  11. 제 10항에 있어서,
    상기 '화소값 차이 부호화 데이터 열'의 데이터 크기(이하 'B3'로 표시)와 A를 비교하여, Y3(=(B3/A))이 미리 정해진 제 3 기준값(TH3)보다 크면 '상기 J개의 원래 화소 데이터 열' 들을 모아 상기 미리 정해진 크기의 블록 단위로 손실 압축 부호화를 수행하여 '손실 압축 부호화 데이터 열'을 생성하고, 그렇지 않으면 상기 화소값 차이 부호화 데이터 열을 제공하는 단계를 더 포함하되, TH3는 TH2보다 작은 0과 1사이의 값인
    이미지 압축 부호화 방법.
  12. 제 9항에 있어서, 상기 블록 단위의 손실 압축 부호화가 DCT와 양자화와 허프만 부호화 기법을 순차적으로 이용하여 수행되는
    이미지 압축 부호화 방법
  13. 제 11항에 있어서,
    상기 화소값 차이 부호화 데이터 열에 대해 LZW 부호화를 적용하여 LZW 부호화 데이터 열을 생성하는 단계와;
    상기 LZW 부호화 데이터 열과 상기 손실 압축 부호화 데이터 열을 결합하여 상기 이미지 전체에 대한 부호화 데이터 열을 '부호화된 이미지 데이터'로서 생성하는 데이터 포매팅 단계를 더 포함하는
    이미지 압축 부호화 방법.
  14. 제 11항에 있어서, 상기 TH1은 0.3과 0.5 사이의 값, TH2는 0.2와 0.4 사이의 값, TH3은 0.2이하의 값인
    이미지 압축 부호화 방법.
  15. 이미지 압축 부호화 시스템에 있어서,
    미리 정해진 스캔 순서에 따라 이미지 내의 부호화 대상 화소를 '현재 화소(P)'로 설정하고, '이미지 내에서 P로부터 공간적으로 일정 거리 내에 있는 스캔 화소 중 미리 지정된 복수개의 화소'(이하 '비교 대상 화소'(T)로 표시)로 이루어진 탐색 영역을 설정하고, 각각의 T의 화소값(T1)이 P의 화소값(P1)과 동일하면 해당 T의 위치 인덱스(D)에 대응되는 반복 카운트값(C)의 증가분(△C)을 '1'로 하고 그렇지 않은 경우 △C를 '0'으로 하여 모든 T에 대한 △C 데이터를 확보하는 동일 칼라 화소 탐색부와;
    각각의 T의 '직전 화소까지의 C값'(CO)에 해당 △C를 더하여 'P까지의 C값'(이하 'CC'로 표시)을 계산하여 CC 중 최대값'(이하 'MC'로 약칭)을 구한 다음 MC가 'CO중의 최대값'(이하 'MO'로 약칭)보다 큰 경우 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 제공하고, MC가 MO보다 작거나 같은 경우에는 MO와 해당 T의 '탐색 영역 내 위치 인덱스값'(D1)을 제공하고 CO를 모두 '0'으로 초기화 하며, 상기 초기화 수행 이후에 △C가 1이상인 T가 존재하지 않으면 P1을 제공하고 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 제공하며, △C가 1이상인 T가 존재하면 각각의 T의 CO에 해당 △C를 더한 것을 CC로 설정하여 현재 화소 탐색 결과 테이블을 생성하여 제공하는 제어부와;
    상기 현재 화소 탐색 결과 테이블을 저장하는 화소 탐색 결과 테이블 저장부와;
    상기 'MO와 D1'을 부호화한 값을 '기본 부호화 데이터'로서 생성하여 제공하거나 또는 상기 'P1을 부호화한 값'을 기본 부호화 데이터로서 생성하여 제공하는 기본 부호화부를 포함하는
    이미지 압축 부호화 시스템.
  16. 제 15항에 있어서, 상기 기본 부호화부가 'J개의 현재 화소'(이하 'J개의 원래 화소 데이터 열'로 표시)에 대해 기본 부호화를 수행하여 '기본 부호화 데이터 열'을 제공하되, J는 8, 16, 32, 64 중 어느 하나인
    이미지 압축 부호화 시스템.
  17. 제 15항에 있어서,
    상기 미리 정해진 스캔 순서가 '래스터(raster) 스캔 순서'와 '왼쪽 화소폭 우선 스캔 순서'와 '블록 단위 래스터 스캔 순서' 중 어느 하나인
    이미지 압축 부호화 방법.
  18. 제 16항에 있어서,
    상기 'J개의 원래 화소 데이터 열'의 데이터 크기(이하 'A'로 표시)와 상기 '기본 부호화 데이터 열'의 데이터 크기(이하 'B1'로 표시)를 비교하여, Y1(=(B1/A))이 미리 정해진 제 1 기준값(TH1)(0과 1사이의 값임)보다 작으면 상기 기본 부호화 데이터 열을 제공하고 Y1이 TH1보다 같거나 크면 '손실 압축 부호화 명령'을 제공하는 제 1 선택부와;
    상기 기본 부호화 데이터 열에 대해 '큐(Queue) 버퍼 인덱스 부호화'를 수행하여 '큐 버퍼 인덱스 부호화 데이터 열'을 생성하는 '큐 버퍼 인덱스 부호화부'를 더 포함하는
    이미지 압축 부호화 시스템.
  19. 제 18항에 있어서,
    상기 '큐 버퍼 인덱스 부호화 데이터 열'의 데이터 크기(이하 'B2'로 표시)와 A를 비교하여, Y2(=(B2/A))가 미리 정해진 제 2 기준값(TH2)(0과 1사이의 값으로서 TH1보다 작은 값임)보다 작으면 상기 큐 버퍼 인덱스 부호화 데이터 열을 제공하고, Y2가 TH2보다 같거나 크면 '손실 압축 부호화 명령'을 제공하는 제 2 선택부와;
    상기 '큐 버퍼 인덱스 부호화 데이터 열'에 대해 '화소값 차이 부호화'를 수행하여 '화소값 차이 부호화 데이터 열'을 생성하는 화소값 차이 부호화부와;
    상기 '화소값 차이 부호화 데이터 열'의 데이터 크기(이하 'B3'로 표시)와 A를 비교하여, Y3(=(B3/A))이 미리 정해진 제 3 기준값(TH3)(0과 1사이의 값으로서 TH2보다 작은 값임)보다 작으면 상기 화소값 차이 부호화 데이터 열을 제공하고, Y3가 TH3 보다 같거나 크면 '손실 압축 부호화 명령'을 제공하는 제 3 선택부와;
    상기 손실 압축 부호화 명령에 응답하여 상기 J개의 원래 화소 데이터 열에 대해 손실 압축 부호화를 수행하여 손실 압축 부호화 데이터 열을 생성하는 손실 압축 부호화 채널을 더 포함하는
    이미지 압축 부호화 시스템.
  20. 제 19항에 있어서, 상기 손실 압축 부호화 채널이
    상기 J개의 원래 화소 데이터 열을 블록별로 DCT 부호화하여 DCT 부호화 데이터를 생성하는 DCT부와;
    상기 DCT 부호화 데이터에 대해 양자화를 수행하여 양자화된 데이터를 생성하는 양자화부와;
    상기 양자화된 데이터에 대해 허프만 부호화를 수행하여 상기 손실 압축 부호화 데이터 열을 생성하는 허프만 부호화부를 구비하는
    이미지 압축 부호화 시스템.
  21. 제 19항에 있어서,
    상기 이미지 전체에 대해 생성된 '무손실 압축 부호화 데이터 열'과 상기 이미지 전체에 대해 생성된 손실 압축 부호화 데이터 열을 결합하여 부호화된 이미지 데이터를 생성하는 데이터 포매팅부를 더 포함하는
    이미지 압축 부호화 시스템.
  22. 제 19항에 있어서,
    상기 이미지 전체에 대해 생성된 '무손실 압축 부호화 데이터 열'에 LZW 부호화를 수행하여 상기 이미지 전체에 대한 LZW 부호화 데이터 열을 생성하여 상기 이미지 전체에 대해 생성된 손실 압축 부호화 데이터 열과 결합하여 상기 부호화된 이미지 데이터를 생성하는 데이터 포매팅부를 더 포함하는
    이미지 압축 부호화 시스템.
KR10-2002-0079927A 2002-12-14 2002-12-14 이미지 압축 부호화 방법 및 시스템 KR100495001B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0079927A KR100495001B1 (ko) 2002-12-14 2002-12-14 이미지 압축 부호화 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0079927A KR100495001B1 (ko) 2002-12-14 2002-12-14 이미지 압축 부호화 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20040052176A KR20040052176A (ko) 2004-06-19
KR100495001B1 true KR100495001B1 (ko) 2005-06-14

Family

ID=37345928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0079927A KR100495001B1 (ko) 2002-12-14 2002-12-14 이미지 압축 부호화 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR100495001B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467513B (zh) * 2010-11-03 2015-05-20 深圳市世纪光速信息技术有限公司 图片搜索方法和***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980081853A (ko) * 1997-04-30 1998-11-25 마이클엠,무어 그래픽 이미지 압축 및 복원 방법
JP2000196859A (ja) * 1998-12-25 2000-07-14 Kyocera Corp 画像処理方式
JP2001186356A (ja) * 1999-12-27 2001-07-06 Canon Inc 画像圧縮装置及び画像圧縮方法及びコンピュータ読み取り可能な記憶媒体
JP2002252770A (ja) * 2001-02-22 2002-09-06 Matsushita Graphic Communication Systems Inc 画像情報の分類方法,画像符号化方法および画像符号化装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980081853A (ko) * 1997-04-30 1998-11-25 마이클엠,무어 그래픽 이미지 압축 및 복원 방법
JP2000196859A (ja) * 1998-12-25 2000-07-14 Kyocera Corp 画像処理方式
JP2001186356A (ja) * 1999-12-27 2001-07-06 Canon Inc 画像圧縮装置及び画像圧縮方法及びコンピュータ読み取り可能な記憶媒体
JP2002252770A (ja) * 2001-02-22 2002-09-06 Matsushita Graphic Communication Systems Inc 画像情報の分類方法,画像符号化方法および画像符号化装置

Also Published As

Publication number Publication date
KR20040052176A (ko) 2004-06-19

Similar Documents

Publication Publication Date Title
Sneyers et al. FLIF: Free lossless image format based on MANIAC compression
KR101461209B1 (ko) 2d 매트릭스들에 인코딩 파라미터들을 저장하는 이미지 압축을 위한 방법 및 장치
AU2005201366B2 (en) Predictive lossless coding of images and video
US6985630B2 (en) Image processing apparatus and method, program and storage medium
US7415154B2 (en) Compression of palettized color images with variable length color codes
US20160234498A1 (en) Methods and systems for palette table coding
KR102579286B1 (ko) 비디오 샘플들의 변환된 블록을 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템
US5875039A (en) Image processing method and apparatus
JPH11161782A (ja) カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
JP2005516553A (ja) 複合文書の圧縮のためのコーダに整合したレイヤ分離
TWI813922B (zh) 從視訊位元流解碼影像和編碼影像為視訊位元流的方法及其解碼設備和編碼設備以及非暫態電腦可讀取媒體
JPH11127355A (ja) 画像符号化装置、画像符号化方法および画像符号化プログラムを記録した記録媒体
US11350106B2 (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
JP2014039257A (ja) デコーダおよび復号方法
JP2009516985A (ja) 反復相関符号化
KR20010053286A (ko) 화상부호/복호방법 및 그 프로그램을 기록한 기록매체
US7016548B2 (en) Mobile image transmission and reception for compressing and decompressing without transmitting coding and quantization tables and compatibility with JPEG
JP3462867B2 (ja) 画像圧縮方法および装置、画像圧縮プログラムならびに画像処理装置
KR100717002B1 (ko) 영상 부호화 및 복호화 장치와, 그 방법, 및 이를 수행하기위한 프로그램이 기록된 기록 매체
JPH11308465A (ja) カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
JP2000125111A (ja) 画像圧縮方法、画像復元方法、画像圧縮装置、画像読取装置、画像圧縮プログラム記憶媒体、および画像復元プログラム記憶媒体
KR100495001B1 (ko) 이미지 압축 부호화 방법 및 시스템
JPH0937262A (ja) 画像処理装置及び方法
JP2008042681A (ja) 画像処理方法及び装置、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JPH1130978A (ja) カラー画像の符号化方法およびその符号装置ならびにカラー画像の復号化方法およびその復号化装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee