KR100819992B1 - 화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체 - Google Patents

화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR100819992B1
KR100819992B1 KR20060045009A KR20060045009A KR100819992B1 KR 100819992 B1 KR100819992 B1 KR 100819992B1 KR 20060045009 A KR20060045009 A KR 20060045009A KR 20060045009 A KR20060045009 A KR 20060045009A KR 100819992 B1 KR100819992 B1 KR 100819992B1
Authority
KR
South Korea
Prior art keywords
pixel
encoding
value
encoded
target pixel
Prior art date
Application number
KR20060045009A
Other languages
English (en)
Other versions
KR20060120478A (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 캐논 가부시끼가이샤
Publication of KR20060120478A publication Critical patent/KR20060120478A/ko
Application granted granted Critical
Publication of KR100819992B1 publication Critical patent/KR100819992B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

본 발명에 따르면, 예측 부호화 유닛 및 런렝스 부호화 유닛을 이용하여 화상 데이터를 효율적으로 부호화한다. 예측 부호화 유닛은 대상 화소의 값과 상기 대상 화소 근방의 화소들로부터 계산된 예측 값 간의 차분에 기초하여 대상 화소(X)를 부호화한다. 런렝스 부호화 유닛은 대상 화소(X) 근방의 4개의 화소들 "a", "b", "c", "d"에 포함된 색 수가 1인 경우, 런 측정을 시작하고, 상기 대상 화소가 직전의 화소 "a"와는 다른 경우, 그 런의 부호화 데이터를 출력한다. 이어서, 예측 부호화 유닛은 부호화를 시작한다. 이 때, 대상 화소가 이전 화소와 다르기 때문에, 이전 화소는 예측 값을 생성하기 위한 기준들로부터 배제된다. 이전 화소 대신에, 특정 조건을 만족하는 부호화된 화소를 참조한다.
예측 부호화, 런렝스 부호화, 대상 화소, 런 측정, 직전의 화소

Description

화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체{IMAGE ENCODING APPARATUS AND METHOD, AND COMPUTER-READABLE STORAGE MEDIUM}
도 1은 제1 실시예에 따른 화상 처리 장치를 도시하는 블록도.
도 2는 예측 부호화 장치를 도시하는 블록도.
도 3은 예측 부호화 수행시 주목 화소(X)와 주변 화소 "a", "b", "c", "d"의 위치 관계를 도시하는 도면.
도 4는 예측 선택 신호(m)에 대응하는 예측식을 도시하는 표.
도 5는 예측 오차(e)와 그룹 번호(SSSS) 간의 대응을 도시하는 표.
도 6은 그룹 번호(SSSS)와 부호 워드와의 대응을 도시하는 표.
도 7은 벡터 정보와 부호 워드와의 대응의 일례를 도시하는 표.
도 8a 내지 도 8c는 실시예에서의 화소 부호화 데이터의 데이터 구조를 각각 도시하는 도면.
도 9는 실시예에서의 부호화 데이터의 출력 부호열의 데이터 구조를 도시하는 도면.
도 10은 실시예에서의 성분값 예측 부호화 유닛(103)을 도시하는 블록도.
도 11은 실시예에서의 근방 일치 정보 부호화 유닛(102)을 도시하는 블록도.
도 12는 실시예에서의 벡터 정보와 이웃 화소 상태 정보 간의 대응 관계를 도시하는 표.
도 13은 제1 실시예에서의 부호화에 의해 효과가 발생되는 화상의 일례를 도시하는 도면.
도 14는 실시예에서의 처리를 컴퓨터 프로그램에 의해 구현하는 경우의 컴퓨터를 도시하는 블록도.
도 15a 내지 도 15c는 매 색 카운트(Nc)에 대한 벡터 정보와 그 부호 간의 관계를 각각 도시하는 표들.
도 16은 골롬(Golomb) 부호화의 일례를 도시하는 표.
도 17은 제1 실시예의 처리가 컴퓨터 프로그램에 의해 구현되는 경우의 부호화 처리 절차를 도시하는 플로우차트.
도 18은 제1 실시예에서 주목 화소(X)가 런을 종료하는 경우의 참조 화소 "f", "b", "c", "d"의 위치들을 도시하는 도면.
도 19는 제2 실시예에 따른 부호화 처리 절차를 도시하는 플로우차트.
도 20은 제2 실시예에서의 부호화 동안의 표의 상태를 도시하는 표.
도 21은 제3 실시예에 따른 부호화 처리 절차를 도시하는 플로우차트.
도 22는 제3 실시예에서 효과가 있는 화상의 일례를 도시하는 도면.
도 23은 제3 실시예에서 주목 화소(Xa) 및 그 화소(Xa)를 대체하는 화소(Xf)의 데이터 내용들을 도시하는 표.
도 24는 제1 실시예에서의 색 카운트 판정 유닛을 도시하는 블록도.
도 25는 제1 실시예에서의 복호 처리 절차를 도시하는 플로우차트.
도 26은 제4 실시예에서의 화상 처리 장치를 도시하는 블록도.
도 27은 제4 실시예에서의 부호화 처리 절차를 도시하는 플로우차트.
<도면의 주요 부분에 대한 부호의 설명>
101: 색 카운트 판정 유닛
102: 근방 일치 정보 부호화 유닛
103: 성분값 예측 부호화 유닛
104: 런-랭스 부호화 유닛
105: 부호 생성 유닛
107: 부호열 형성 유닛
201: 버퍼
202: 성분값 예측 유닛
204: 허프만표 메모리
205: 예측 오차 부호화 유닛
209: 부호열 형성 유닛
701: 예측 오차 부호화 유닛
702: 선택기
1101: 근방 일치 판정 유닛
1102: 일치 화소 위치 부호화 유닛
1104: 선택기
1404: 키보드
1405: 마우스
1406: 디스플레이 장치
1407: 외부 저장 장치
1408: 저장 매체 드라이브
101c: 레지스터
101d: 래치
101b: 선택기
101a: 색 카운트 계산 유닛
2401: 버퍼
2402: 부호화 방법 판정 유닛
2403: 예측 부호화 유닛
2404: 런렝스 부호화 유닛
2405: 메모리
본 발명은 화상 데이터의 부호화 기술에 관한 것이다.
종래의 화상 부호화 방법으로서, 예측 부호화 기반의 방법이 제안되어 왔다. 예측 부호화 방법은 화상 데이터를 예측 변환에 의해 예측 오차로 변환하는 시퀀스 변환 유닛과, 그 시퀀스 변환 유닛으로부터의 예측 오차 출력을 보다 중복도가 낮 은 부호화 데이터로 변환하는 엔트로피 부호화 유닛을 포함한다.
예측 부호화를 이용한 방식의 일례로서, 국제표준 JPEG-LS (ITU-T T.87 | ISO/IEC 14495-1)이 알려져 있다.
JPEG (ITU-T T.81 | ISO/IEC 10918-1)에서는 독립 함수가 예측 부호화를 기초로 하는 무손실(lossless) 부호화 방식을 규정하고 있다. 이 무손실 부호화 방식은 JPEG 무손실 부호화 모드로 언급될 것이다. JPEG 무손실 부호화 모드에서, 근접 화소들로부터 주목 화소(목표 화소)의 값을 예측하는 방법으로서 7개의 예측식이 규정되어 있으며, 그 예측 방법은 화상에 따라 선택될 수 있다.
도 2는 종래의 화상 처리 장치를 도시하는 블록도이다. 도 2는 상술된 JPEG 무손실 부호화 모드의 화상을 무손실 압축하는 장치의 일례를 도시한다. 도 2에서, 참조번호 201는 버퍼; 202는 성분값 예측 유닛; 203은 감산기; 204는 허프만 테이블 메모리; 205는 예측 오차 부호화 유닛; 209는 부호열 형성 유닛이며; 206, 207 및 208은 신호 라인을 표시한다.
허프만 테이블 메모리(204)는 예측 오차 부호화 유닛(205)에 사용하기 위한 허프만 테이블을 저장하고 있다. 허프만 테이블 메모리(204)가 도 6에 도시된 허프만 테이블을 저장하고 있다고 가정한다.
종래의 화상 처리 장치가 각 성분이 8비트로 표현된 RGB 컬러 화상을 부호화하는 경우의 처리의 흐름을 도 2를 참조하여 설명한다.
성분값 예측 유닛(202)에서 이용하는 예측 방법을 선택하는 예측 선택 신호(m)가 신호 라인(208)으로부터 입력된다. 예측 선택 신호(m)는 0 내지 7의 정수 값을 취하며, 각 값들은 상이한 예측식들에 대응한다. 하나의 화상이 부호화되는 경우, 그 예측 선택 신호(m)는 변화하지 않고 고정된다. 도 4는 사용을 위한 예측식과 예측 선택 신호(m) 간의 대응을 도시한다. 예측 선택 신호(m)가 0인 경우에는 어떠한 예측식도 규정되지 않는다. 이는 각 성분이 어떤 예측 변환을 행하지 않고도 그대로 부호화됨을 의미한다. 도 4의 기호 "p", "a", "b", "c"가 이하에 설명될 것이다.
화상 데이터가 신호 라인(206)으로부터 순차적으로 입력된다. 화상 데이터 입력 순서는 래스터 스캔 순이며, 각 화소의 성분 데이터는 R, G, B의 순서로 입력된다. R, G, B 성분은 각각 성분번호 0, 1, 2로서 정의된다. 화상의 상부 좌측 코너가 좌표(0,0)로서 정의되고, 수평 방향 화소 위치 x 및 수직 방향 화소 위치 y에 있는 화소의 성분번호 C의 값은 P(x, y, C)로 표현된다. 예를 들면, 위치(x,y) = (3,4)에서의 화소가 (R,G,B) = (255,128,0)을 가질 경우, P(3,4,0) = 255이고, P(3,4,1) = 128이며, P(3,4,2) = 0이다.
버퍼(201)는 신호 라인(206)으로부터 입력된 2라인의 화상 데이터를 저장하기 위한 용량을 갖는다.
주목 화소 성분값 x = P(x,y,C)일 경우, 성분값 예측 유닛(202)은 버퍼(201)로부터 직전 화소의 동일 성분의 값 "a" = P(x-1,y,C), 한 라인 전 화소의 동일 성분의 값 "b" = P(x,y-1,C), 및 대각선 상부 좌측 화소의 동일 성분의 값 "c" = P(x-1,y-1,C)를 추출한다. 성분값 예측 유닛(202)은 예측 방식 선택 신호(m)에 따라서 예측 값 "p"를 생성한다. 도 3은 "a", "b", "c"와 주목 화소의 성분값(x) 간 의 위치 관계를 도시한다. "a", "b" 및 "c"가 화상 외부에 있는 경우, 이들은 0으로 설정됨에 유의하라.
감산기(203)는 예측값(p)과 부호화 대상 성분값(x) 간의 차이 값을 계산하여, 그것을 예측 오차(e)로서 출력한다.
예측 오차 부호화 유닛(205)은 감산기(203)로부터 입력된 예측 오차들(e)을 복수의 그룹들로 분류하여, 그룹 번호 SSSS와 각 그룹마다 정의되어 있는 비트 길이의 오버헤드 비트를 생성한다. 도 5는 예측 오차(e)와 그룹 번호 SSSS 간의 관계를 도시한다. 오버헤드 비트는 그룹 내의 예측 오차를 지정하기 위한 정보 이며, 비트 길이는 그룹 번호 SSSS에 의해 주어진다. 비트 길이는 SSSS = 16인 경우에 예외적으로 비트 길이는 0임을 유의하라(각 성분의 정밀도가 8비트인 경우, SSSS = 16은 생성되지 않음). 예측 오차(e)가 양수이면, 예측 오차(e)의 하위 SSSS 비트가 오버헤드 비트가 되며, 예측 오차(e)가 음수이면, e-1의 하위 SSSS 비트가 오버헤드 비트가 된다. 오버헤드 비트의 MSB(최상위 비트)는 양의 예측 오차(e)에 대해서는 1이고, 음의 예측 오차(e)에 대해서는 0이다. 부호화 처리시, 그룹 번호 SSSS에 대응하는 부호화 데이터는 허프만 테이블 메모리(204)에 저장되어 있는 허프만 테이블을 참조함으로써 출력된다. SSSS가 0도 16도 아닌 경우, 계속해서 그룹 번호에 의해 정의된 비트 길이의 오버헤드 비트가 출력된다.
부호열 형성 유닛(209)은 예측 오차 부호화 유닛(205)으로부터 출력된 부호화 데이터로부터 JPEG 규격에 따른 포맷의 부호열 및 부가 정보(예를 들어, 신호 라인(208)을 통해 입력된 예측 선택 신호(m)이나, 화상의 수평 및 수직 화소 수, 화소를 형성하는 성분의 수, 각 성분의 정밀도)를 형성한다. 그 부호열 형성 유닛(209)은 그 부호열을 신호 라인(207)에 출력한다.
예측 부호화 이외에도, 런렝스 부호화(run-length encoding)가 알려져 있다. 런렝스 부호화에 따르면, 주목 화소가 미리 부호화된 화소와 일치할 경우, 일치 화소의 수를 나타내는 정보가 부호화된다. 이러한 부호화는 동일 화소들이 한 화상 내에서 실행되는 경우, 높은 부호화 효율을 갖는다.
부호화의 목적은 원화상의 데이터량을 감소시키는 것이며, 무손실 부호화의 목적은 원화상으로 완전하게 복원 가능한 부호를 생성하는 것이다. 하나의 화상이 무손실 부호화되는 경우, 예측 부호화 기술과 런렝스 부호화 기술의 어느 한쪽만을 적용하는 것보다는 이들을 국소적으로 사용하는 것이 보다 바람직하다.
그러나, 이러한 부호화 기술들을 절환하고 이용하면서, 데이터를 효율적으로 부호화하는 방법은 확립되어 있지 않다.
본 발명은 상기 상황을 고려하여 이루어진 것이며, 화소 단위의 부호화 및 런렝스 부호화를 선택적으로 이용하여 부호화가 실행될 경우, 데이터를 효율적으로 부호화하는 기술을 제공하는 것을 목적으로 한다.
상기한 문제점들을 해결하기 위해, 본 발명에 따른 화상 부호화 장치는 다음의 구성을 갖는다.
즉, 화소값을 부호화하는 화상 부호화 장치로서,
부호화된 화소의 값을 이용하여 주목 화소값을 부호화하는 제1 부호화 유닛;
상기 주목 화소와 직전의 화소가 동일한 값을 갖는 수를 런으로서 카운트하여, 상기 카운트된 런에 기초하여 부호화 데이터를 출력하는 제2 부호화 유닛; 및
상기 제1 부호화 유닛에 의한 부호화와 상기 제2 부호화 유닛에 의한 부호화를 절환하는 스위칭 유닛
을 포함하며,
상기 주목 화소 직전 화소의 값이 상기 제2 부호화 유닛에 의해 부호화되는 경우에는, 상기 제1 부호화 유닛은 직전의 화소를 포함하지 않는 부호화된 화소의 값을 이용하여 상기 주목 화소를 부호화하고, 상기 직전 화소의 값이 상기 제2 부호화 유닛에 의해 부호화되지 않는 경우에는, 직전의 화소를 포함하는 부호화된 화소의 값을 이용하여 상기 주목 화소를 부호화하는 화상 부호화 장치가 제공된다.
본 발명의 다른 특징들 및 이점들은 첨부 도면을 참조하여 설명된 이하의 상세한 설명으로부터 명백해질 것이며, 도면 전체에서 동일하거나 유사한 부분들은 동일한 참조부호들로 표시한다.
상세한 설명에 포함되어 그 일부를 구성하고 있는 첨부도면들은, 상세한 설명과 함께 본 발명의 실시예들을 설명하며, 본 발명의 원리들을 설명하는 역할을 한다.
<실시예>
본 발명의 바람직한 실시예들이 첨부 도면을 참조하여 이하에 상세히 기술될 것이다.
[제1 실시예]
도 1은 제1 실시예에 따른 화상 부호화 장치의 블록도이다. 도 1에 도시된 바와 같이, 제1 실시예에 따른 화상 처리 장치는, 색 카운트 판정 유닛(101), 근방 일치 정보 부호화 유닛(102), 성분값 예측 부호화 유닛(103), 런렝스 부호화 유닛(104), 부호 생성 유닛(105), 스위치(106), 부호열 형성 유닛(107), 버퍼(201)를 포함한다. 도 1에서, 참조부호 108, 109, 110, 206, 207은 신호 라인을 의미한다. 동일한 참조부호들은 종래의 화상 처리 장치의 처리 블록의 동작과 동일한 동작을 수행하는 블록들을 의미하며, 그에 대한 설명은 생략한다. 도 1의 장치에서의 화상 부호화 처리를 설명한다. 제1 실시예에서는, 예측 선택 신호(m) = 4이다.
제1 실시예에 따른 화상 처리 장치에 의해 부호화될 화상 데이터는 RGB 컬러의 화상 데이터이다. 각 성분(색 성분)은 8비트(다중값)로 0 내지 255의 휘도값을 표현하는 화소 데이터로 형성된다. 제1 실시예는 RGB 컬러 화상을 대상으로 삼고 있지만, 하나의 화소에 복수의 성분을 갖는 화상(예를 들어, CMYK 색 화상) 또는 모노크롬 다중값 화상(monochrome multi-value image)이어도 된다. 부호화될 화상 데이터는 W개의 수평 화소, H개의 수직 화소를 갖는다. 입력 화상 데이터는 W×H×3바이트의 데이터량을 갖는다. 수평 우측 방향은 X 좌표의 플러스 방향, 수직 하측 방향은 Y 좌표의 플러스 방향으로 정의한다. 입력 화상 데이터의 입력 순서는 래스터순이며, 각 화소는 R, G, B의 순으로 데이터를 레이아웃함으로써 형성된다.
제1 실시예에 따른 화상 처리 장치 내의 각 유닛의 동작을 설명한다.
부호화될 화상 데이터가 신호 라인(206)으로부터 순차적으로 입력되어, (2라인의 용량을 갖는) 버퍼(201)에 저장된다. 화소 데이터의 입력 순서는 래스터 스캔순이며, 각 화소의 성분 데이터는 R, G, B의 순서로 입력된다. R, G, B 성분은 각각 0, 1, 2의 성분 번호로 정의한다. 화상의 상부 좌측 코너를 좌표(0, O)로서 정의하고, 수평 우측 화소 위치 x, 수직 하측 화소 위치 y에서의 화소의 성분 번호(C)의 값을 P(x, y, C)로 나타낸다. 예를 들면, 위치(x,y) = (3,4)인 화소가 (R,G,B) = (255,128,0)라는 값을 갖는 경우, P(3,4,0) = 255, P(3,4,1) = 128, P(3,4,2) = 0이다.
도 24에 도시된 바와 같이, 색 카운트 판정 유닛(101)은 색 카운트 계산 유닛(101a), 선택기(101b), 레지스터(101c), 래치(101d)로 구성된다. 레지스터(101c), 래치(101d), 선택기(101b)에 대한 세부 내용은 후술될 것이다. 다음 설명에서는, 선택기(1O1b)는 데이터 "a"를 선택하여, 그것을 색 카운트 계산 유닛(101a)에 출력한다.
주목 화소(X)(대상 화소)의 각 성분에 대하여, 색 카운트 계산 유닛(101a)은, 버퍼(201)로부터 도 3의 4개의 주변 화소 "a", "b", "c", "d"의 값들을 수신하여, 화소들(Xa, Xb, Xc, Xd)을 얻는다. (x,y)를 주목 화소의 위치라고 하면, Xa, Xb, Xc, Xd는 다음과 같이 표현된다:
Xa = (P(x-1,y,0), P(x-1,y,1), P(X-1,y,2))
Xb = (P(x,y-1,0), P(x,y-1,1), P(x,y-1,2))
Xc = (P(x-1,y-1,0), P(x-1,y-l,1), P(x-1,y-1,2))
Xd = (P(x+1,y-1,0), P(x+1,y-1,1), P(x+1,y-1,2))
색 카운트 계산 유닛(101a)은 4개의 화소들(Xa, Xb, Xc, Xd)에 포함된 색 종류 수를 검출하여, 그 색 카운트(Nc)를 신호 라인(109) 상으로 출력한다. 보다 구체적으로는, 색 카운트 계산 유닛(101a)은 4개의 화소로부터 2개의 화소를 추출함으로써 각각 준비된 6개의 쌍들 (Xa,Xb), (Xa,Xc), (Xa,Xd), (Xb,Xc), (Xb,Xd), (Xc, Xd) 간에 동일한 색을 갖는 추출된 쌍들의 수를 카운트한다. 색 카운트 계산 유닛(101a)은 카운트가 "0"이면 4색, "1"이면 3색, "2" 또는 "3"이면 2색, "6"이면 1색이라고 판단한다. 색 카운트 계산 유닛(101a)은 그 색 카운트(Nc)를 신호 라인(109) 상으로 출력한다.
근방 일치 정보 부호화 유닛(102)은 신호 라인(109)을 통해 입력된 색 카운트(Nc), 주목 화소(X), 및 이웃 화소들(Xa, Xb, Xc, Xd)에 기초하여 이웃 화소 상태 정보 및 벡터 정보를 생성한다. 근방 일치 정보 부호화 유닛(102)은 근방 화소 상태 정보를 신호 라인(108) 상으로 출력한다. 근방 일치 정보 부호화 유닛(102)은 벡터 정보를 내부적으로 부호화하여, 그 부호 워드를 신호 라인(110) 상으로 출력한다.
도 11은 본 실시예에서의 근방 일치 정보 부호화 유닛(102)의 보다 세부적인 내부 구성을 도시한 블록도이다. 도 11에 도시된 바와 같이, 근방 일치 정보 부호화 유닛(102)은 근방 일치 판정 유닛(1101), 일치 화소 위치 부호화 유닛(1102), 및 선택기(1104)로 구성된다. 참조부호 1103는 신호 라인을 의미한다. 선택기(1104)를 설치한 이유는 이하에 상세히 설명한다. 본 설명에서는, 선택기(1104) 가 데이터 "a"를 선택한다.
근방 일치 정보 부호화 유닛(102)에서 수행되는 처리가 도 11을 참조하여 설명될 것이다.
근방 일치 판정 유닛(1101)으로부터 신호 라인(1103)으로 출력된 벡터 정보가 설명될 것이다.
근방 일치 판정 유닛(1101)은 주목 화소(X)와 동일색을 갖는 화소가 4개의 주변 화소(Xa, Xb, Xc, Xd)에 존재하는지의 여부를 밝혀, 일치 화소가 존재하는 경우에는 그 화소의 상대 위치를 특정하기 위한 벡터 정보를 생성한다. 근방 일치 판정 유닛(1101)은 신호 라인(1103)으로 벡터 정보를 출력한다. 그 벡터 정보는 신호 라인(109)을 통해 입력된 색 카운트(Nc)에 의존하여 결정된다. 근방 일치 판정 유닛(1101)에 의한 처리들은 각각의 색 카운트(Nc)에 대해 설명될 것이다.
색 카운트(Nc)가 4인 경우, 즉, Xa, Xb, Xc, Xd 모두가 다른 화소값을 갖는 경우, 근방 일치 판정 유닛(1101)은 무조건적으로 "4"를 벡터 정보로서 출력한다.
색 카운트(Nc)가 1인 경우, 즉, Xa 내지 Xd가 동일한 색을 갖는 경우, 주목 화소(X)는 근방 화소(Xa)와 비교된다. 근방 일치 판정 유닛(1101)은, X = Xa이면, "O"을; X ≠ Xa이면 "1"을 벡터 정보로서 출력한다.
색 카운트(Nc)가 2인 경우, 즉, Xa 내지 Xd 중 각각 동일한 색을 갖는 두 쌍이 존재하는 경우, 제1 화소값(색)(X1) 및 X1과는 다른 제2 화소값(X2)이 Xa, Xb, Xc, Xd의 순으로 획득된다. 근접 일치 판정 유닛(1101)은, X = X1이면 "0"; X = X2이면 "1"; X ≠ X1이고 X ≠ X2이면 "2"를 벡터 정보로서 출력한다. Xa, Xb, Xc, Xd의 순서에서, 제1 화소(X1)는 Xa이다. 제2 화소(X2)는 Xa와는 다른 값을 갖는 Xb, Xc, Xd 중 어느 하나이다.
색 카운트(Nc)가 3인 경우, 즉, Xa 내지 Xd에 동일한 색을 갖는 한 쌍이 존재하는 경우, 제1 화소값(X1), 제2 화소값(X2), 제3 화소값(X3)이 Xa, Xb, Xc, Xd의 순서로 획득된다. 근접 일치 판정 유닛(1101)은, X = X1이면 "0"; X = X2이면 "1"; X = X3이면 "2", X ≠ X1이고 X ≠ X2이고 X≠ X3이면 "3"을 벡터 정보로서 출력한다. Xa, Xb, Xc, Xd의 순서에서, 화소(X1)는 Xa이다. 화소값(X2)은 Xb, Xc, Xd의 순으로 첫번째의 Xa와 일치하지 않는 화소이다. 화소값(X3)은 X2 뒤에 오며, X2와 일치하지 않는 화소이다.
근방 일치 판정 유닛(1101)으로부터 신호 라인(108)에 출력될 근방 화소 상태 정보를 설명한다.
근방 화소 상태 정보는 주목 화소(X)와 동일한 색을 갖는 화소가 근방의 4개의 화소에 존재하는지의 여부를 나타낸다. 보다 구체적으로는, 근방 일치 판정 유닛(1101)은 신호 라인(1103)에 출력된 벡터 정보와 신호 라인(109)을 통해 입력된 색 카운트(Nc)를 비교한다. 그 벡터 정보가 색 카운트(Nc)와 일치하는 경우, 근방 일치 판정 유닛(1101)은 근방 화소 상태 정보로서 신호 라인(108)에 "0"을 출력하고, 그렇지 않으면, "1"을 출력한다. 색 카운트 Nc = 4인 경우에 대해, 근방 일치 판정 유닛(1101)은 항상 "1"을 출력한다. 색 카운트 Nc ≠ 4(= 3 또는 그 미만)인 경우에 대해서는, 주목 화소(X)가 4개의 주위 화소들(Xa, Xb, Xc, Xd) 중 어느 화소와도 일치하지 않으면, 근방 일치 판정 유닛(1101)은 "1"을 출력하고; 주목 화 소(X)가 이들 중 적어도 어느 하나와 일치하면, "O"을 출력한다.
도 12는 벡터 정보와 근방 화소 상태 정보와의 관계를 도시한다. 도 12로부터 알 수 있는 바와 같이, 근방 화소 상태 정보는, 주목 화소(X)의 근방의 4개의 화소에 포함되는 색 카운트(Nc)가 3 이하이고, 그 4개의 근방 화소들이 주목 화소(X)와 동일한 색을 갖는 적어도 하나의 화소를 포함하는 경우, "0"이다. 다시 말해, 근방 화소 상태 정보는, 주목 화소(X)의 근방에 있는 N개(제1 실시예에서 N= 4)의 화소들 중에 동일한 색을 갖는 적어도 한쌍이 존재하고, 주목 화소(X)가 근방 화소들 중 임의의 화소와 동일한 색을 갖는 경우에, "0"이다.
도 11로 돌아가서, 일치 화소 위치 부호화 유닛(1102)은 신호 라인(1103)으로부터 입력된 벡터 정보를 부호화하고, 결과의 부호 워드를 신호 라인(110)으로 출력한다. 제1 실시예에서, 일치 화소 위치 부호화 유닛(1102)은 색 카운트(Nc)에 따라서 도 15a 내지 도 15c의 부호표를 절환하여 선택된 것을 사용한다. 색 카운트(Nc)가 4인 경우, 일치 화소 위치 부호화 유닛(1102)은 어떠한 부호도 출력하지 않는다. 일치 화소 위치 부호화 유닛(1102)이 어떤 부호를 출력한다고 해도, 그 부호는 후술될 최종 화상 데이터의 부호 워드로 사용되지는 않는다.
상술된 동작에 의해, 벡터 정보의 부호 워드가 신호 라인(110) 상에 출력되어, 근방 화소 상태 정보가 신호 라인(108) 상으로 출력된다.
도 1로 돌아가서, 부호 생성 유닛(105)은 근방 일치 정보 부호화 유닛(102)으로부터의 근방 화소 상태 정보(신호 라인(108) 상의 신호), 벡터 정보의 부호 워드(신호 라인(110) 상의 신호), 성분값 예측 부호화 유닛(103)으로부터의 부호 워 드에 기초하여, 출력될 부호 워드를 생성한다. 부호 생성 유닛(105)은 부호 워드를 스위치(106)에 출력한다. 근방 일치 정보 부호화 유닛(102)은 앞서 이미 설명되었으므로, 성분값 예측 부호화 유닛(103)을 설명한다.
성분값의 예측 부호화는 JPEG 무손실 부호화 모드 또는 무손실 부호화와 준-무손실 부호화의 국제 표준 방식인 JPEG-LS(ITU-T T.87 | IS0/IEC 14495-1)에 정규 모드로서 규정된 방식을 이용할 수 있다. 설명의 편의를 위해서, 간단한 구성을 설명한다.
도 10은 성분값 예측 부호화 유닛(103)의 내부 구성의 서브블록을 도시한 블록도이다. 도 10에 도시된 바와 같이, 성분값 예측 부호화 유닛(103)은 성분값 예측 유닛(2O2), 감산기(2O3), 예측 오차 부호화 유닛(701), 및 선택기(702)로 구성된다. 참조부호 108은 상술된 근방 화소 상태 정보를 입력하기 위한 신호 라인을 의미한다. 선택기(702)를 설치한 이유가 후술될 것이다. 본 설명에서는, 선택기(702)는 데이터 "a"를 선택한다. 동일한 참조부호는 "발명이 속하는 기술분야 및 그 분야의 종래기술"란에서 도 2를 참조하여 기술한 처리 블록과 동일한 기능을 수행하는 블록들을 의미하므로, 그 설명은 생략한다.
상술된 종래 방식과 동일한 동작에 의해, 성분값 예측 유닛(202)은 주목 화소(X) 주변에 각 성분에 대한 화소값 "a", "b", "c"으로부터 예측값(p)를 생성한다. 감산기(203)는 주목 화소의 성분 값(x)(x는 R, G, B 중 어느 하나)으로부터의 차분(예측 오차) e = x - p를 생성하여, 그 예측 오차(e)를 예측 오차 부호화 유닛(701)에 입력한다. 제1 실시예에서, 성분값 예측 유닛(202)에 입력된 예측 선택 신호(m)를 고정값 "4"로 설정하고, 모든 성분값을 식 "a + b - c"에 의해 예측한다. 예측 오차 부호화 유닛(7O1)은 Golomb 부호를 이용함으로써 예측 오차(e)를 부호화한다.
Golomb 부호화는 음이 아닌 정수값을 부호화하고, 그 특징으로서 파라미터 변수 k에 따라 상이한 확률 모델들에 기초한 부호화를 달성할 수 있다. Golomb 부호화는 부호화될 심볼과 파라미터 변수(k)로부터 부호 워드를 얻을 수 있으므로, 어떤 부호표도 요구되지 않는다. Go1omb 부호화의 일 형태가 ISO와 ITU-T에 의해 국제 표준으로 권고된 JPEG-LS(IS0/IEC 14495-1 | ITU-T Recommendation T.87)에서 예측 오차 부호화 방식으로서 채용되었다. 제1 실시예에서는 감산기(203)로부터 출력된 예측 오차(e)를 다음 식에 따라서 음이 아닌 정수값(V로 정의됨)으로 변환하여, V를 선택된 파라미터(k)로 Golomb 부호화한다:
e ≥ O인 경우, V = 2 × e
e < 0인 경우, V = -2 × e - 1
부호화 파라미터(k)에서 음이 아닌 정수값(V)를 Golomb 부호화하는 절차는 다음과 같다.
V를 k 비트씩 우측으로 이동하여 정수값(m)을 얻는다. V의 부호는 m개의 "O"에 후속하는 "1"(가변 길이부)와 V의 하위 k 비트(고정 길이부)의 조합으로부터 형성된다. 도 16은 k = O, 1, 2, 3에서의 Golomb 부호의 일례를 도시한다. 상술된 부호의 형성 방법은 단지 일례이며, 고정 길이부와 가변 길이부를 대체해서도 유일 복호가능 부호(uniquely decodable code)를 형성할 수 있다. 그 부호는 0과 1을 대체하여서도 형성할 수 있다. 부호화 파라미터(k)의 선택 방법으로서, 소정의 단위로 최적의 파라미터(k)를 선택하는 방법 및 그 파라미터(k)를 부호열에 포함시키는 방법을 포함한 여러가지 방법을 생각할 수 있다. 제1 실시예는 JPEG-LS와 동일한 방법에 의해 부호화 동안 파라미터(k)를 업데이트하는 방법을 채택한다. 부호화 파라미터(k)를 선택하는 방법을 기술한다.
예측 오차 부호화 유닛(1001)은, 부호화된 화소 수를 유지하는 카운터(N) 및 각 성분마다 부호화된 예측 오차들의 절대값들의 합을 유지하는 카운터(A[C])(C는 0 내지 2의 성분 번호)를 포함한다. 부호화 시작시, 카운터(N)를 1로, 카운터 A[0] 내지 A[2]를 2로 설정한다. 부호화될 각성분 값마다 N×2^k가 A[C]를 초과하지 않는 최대값(k)을 얻는다. 예측 오차(e)는 k를 이용하여 상술된 절차에 의해 Golomb 부호화되고, 부호 워드를 출력한다(x^y는 x의 y 승을 의미함).
각 성분의 부호화 처리 후에, k는 A[C]에 예측 오차의 절대값 |e|를 더함으로써 업데이트된다. 이 경우, N은 모든 성분의 부호화 처리 후에 1만큼 증가하여 업데이트된다. A[C]와 N을 소정의 범위 내로 제한하기 위해서는, N이 소정값(예를 들어, 32)에 도달하는 타이밍에 A[C]와 N을 1/2로 업데이트하는 처리가 적용된다. 예측 오차 부호화 유닛(1001)은 신호 라인(108)을 통해 입력된 근방 화소 상태 정보가 "1"인 경우에만 동작한다.
제1 실시예에 따른 성분값 예측 부호화 유닛(103)의 처리 내용을 설명했다. 이제, 부호 생성 유닛(105)을 설명한다.
제1 실시예에서, 도 1에 도시된 바와 같이, 부호 생성 유닛(105)은 4가지의 정보: 성분값 예측 부호화 유닛(103)으로부터 출력된 R, G, B 성분의 예측 부호 워드, 근방 일치 정보 부호화 유닛(102)으로부터 출력된 벡터 정보의 부호 워드, 근방 화소 상태 정보, 및 색 카운트(Nc)를 수신한다. 이들 4가지 정보에 기초하여, 부호 생성 유닛(105)은 처리 A 내지 C 중 어느 하나를 처리한다.
[처리 A]
근방 화소 상태 정보가 "0"인 경우, 즉, 도 12에 도시된 바와 같이, 주목 화소(X)의 근방의 4개의 화소에 포함된 색 수가 3 이하인 경우, 주목 화소(X)와 동일한 색을 갖는 화소가 4개의 근방 화소 내에 존재하는 경우, 부호 생성 유닛(105)은 입력된 벡터 정보의 부호 워드만을 출력한다.
[처리 B]
색 카운트 Nc<4이고 근방 화소 상태 정보가 "1"인 경우, 즉, 도 12에 도시된 바와 같이, 주목 화소(X)의 근방의 4개의 화소에 포함된 색 수가 3 이하이고, 주목 화소(X)와 동일한 색을 갖는 화소가 4개의 근방 화소 내에 존재하지 않은 경우, 부호 생성 유닛(105)은 입력된 벡터 정보의 부호 워드에 계속하여, 성분값 예측 부호화 유닛(103)으로부터 출력된 R, G, B의 예측 부호 워드를 출력한다.
[처리 C]
색 카운트 Nc = 4인 경우, 부호 생성 유닛(105)은 성분값 예측 부호화 유닛(103)으로부터 출력된 R, G, B의 예측 부호 워드만을 출력하고, 벡터 정보의 부호 워드는 출력하지 않는다.
도 8a 내지 도 8c는 부호 생성 유닛(105)으로부터 출력되는 부호 데이터를 도시한다. 도 8a는 처리 A의 결과를, 도 8b는 처리 B의 결과를, 도 8c는 처리 C의 결과를 도시한다.
도 1로 돌아가서, 본 실시예의 런렝스 부호화 유닛(104)에 대하여 설명한다.
런렝스 부호화 유닛(104)은 동일한 화소값의 런(run)을 카운트하는 카운터 RL을 유지한다. 카운터 RL은 주목 화소(X)의 직전의 화소의 색 카운트(Nc)가 "1" 이외의 값을 가지고, 주목 화소의 색 카운트(Nc)가 "1"이 된 경우에 카운트를 시작한다. 일단 카운트를 시작하면, 그 화소 수는 색 카운트(Nc)에 무관하게, 주목 화소(X)가 직전 화소의 값(Xa)과 다른 색을 갖거나, 한 라인의 최종 화소의 처리가 종료할 때까지 화소 수를 계속 카운트한다. 런이 종료한 경우(어떤 런도 카운트될 수 없음), 카운터 RL에 유지되는 값을 런렝스 부호화하여, 스위치(106)에 출력한다. 런렝스 부호화 유닛(104)은 런을 카운트하고 있는지, 아니면 카운트하고 있지 않은지를 나타내는 상태 정보를 신호 라인(115)을 통해 스위치(106)에 출력한다. 런이 종료한 경우, 런렝스 부호화 유닛(104)은 이러한 결과에 대한 정보를 신호 라인(116)에 출력하며, 이 신호 라인(116)의 의미는 후술한다.
런렝스는 여러가지 방법으로 부호화될 수 있다. 제1 실시예는 국제 표준 방식 JPEG-LS에서의 런 모드를 이용한 런렝스와 동일한 방법을 이용하므로, 세부사항에 대해서는 생략한다.
도 1의 스위치(106)를 설명한다.
설명에 앞서, Xi를 주목 화소; Nci를 주목 화소(Xi) 근방의 4개의 화소의 색 카운트; Xi-1을 주목 화소(Xi) 직전의 화소; Nci-1를 화소(Xi-1) 근방의 4개의 화소의 색 카운트로서 정의한다. 부호화 생성 유닛(105)으로부터 출력된 부호화 데이터(도 8a 또는 도 8b에서 부호화된 데이터)를 화소 부호화 데이터라 칭하고, 런렝스 부호화 유닛(104)으로부터 출력된 부호화 데이터를 런렝스 부호화 데이터라 칭하여, 이 부호화 데이터들을 구별한다. 런렝스 부호화 유닛(104)으로부터 신호 라인(115) 상으로 출력된 상태 정보는, 런이 측정되는 동안에는 "1"이며, 어떠한 런도 측정되지 않을 때는 "0"이다.
ㆍ 상태 정보가 "0"인 경우:
스위치(106)는 단자 "a"를 선택하여, 주목 화소(Xi)의 부호화 데이터를 선택하고, 이를 부호열 형성 유닛(107)에 출력한다. 이 때, Nci-1 ≠ 1이고 Nci = 1이면, 스위치(106)는, 화소 부호화 데이터를 부호열 형성 유닛(107)에 출력한 후, 단자 b로 절환된다. 스위치(106)가 단자 b로 절환되는 이유는, 런렝스 부호화 유닛(104)이 상술된 조건 하에서 런을 측정하기 시작하여, 런이 측정되는 동안 어떠한 화소 부호화 데이터도 출력되지 않기 때문이다. 상기 조건 이외의 조건 하에서는, 스위치(106)는 단자 "a"를 계속 선택한다.
ㆍ 상태 정보가 "1"인 경우:
스위치(106)는 단자 b를 선택한다. 이 때, 런렝스 부호화 유닛(104)은 런렝스 부호화 유닛(104)이 런을 측정하는 동안, 어떤 런렝스 부호화 데이터도 출력하지 않으므로, 스위치(106)는 어떤 데이터도 부호열 형성 유닛(107)으로 출력하지 않는다. 런렝스 부호화 유닛(104)이 런의 종료를 검출한 경우에는, 런렝스 부호화 데이터를 출력한다. 런렝스 부호화 데이터를 출력한 후에, 런렝스 부호화 유닛(104)은 그 상태 정보를 "0"으로 변경한다. 그 상태는 런의 측정이 종료한 후에 "1"에서 "0"으로 변경된다. 주목 화소(X)와 그 직전의 화소(Xa) 간의 관계가 X ≠ Xa이거나, X = Xa인 경우에 런의 측정을 종료하여, 주목 화소(X)는 그 라인의 종단에 위치된다. 전자의 경우에는, 주목 화소의 화소 부호화 데이터를 출력하기 위해서, 런렝스 부호화 데이터를 출력한 직후에, 단자 "a"를 선택한다.
상술된 바와 같이, 화상을 부호화하기에 앞서, 부호열 형성 유닛은 부가 정보(예를 들어, 예측 선택 신호(m), 화상의 수평 및 수직 화소 수, 화소를 형성하는 성분의 수 및 각 성분의 정밀도)를 헤더로서 출력한다. 그 헤더에 후속하여, 부호열 형성 유닛은 스위치(106)를 통해 입력된 부호화 데이터를 순차적으로 출력한다. 출력 목적지가 저장 장치인 경우, 부호화 데이터는 파일로서 출력된다.
도 9는 부호열 형성 유닛(107)으로부터 출력된 부호화 데이터의 구조를 도시한다. 도 9에서, 런렝스 부호화 데이터와 화소 부호화 데이터의 순서는 임의적이다. 도 9는 런렝스 부호화 데이터와 화소 부호화 데이터가 마커와 같은 임의의 특정 휴지부 없이 혼재가능함을 도시한다. 제1 실시예에 따른 화상 처리 장치에서는 예측 선택 신호(m)를 고정값으로 설정하고, 헤더로부터 배제될 수도 있다.
도 9에서, 헤더 직후의 부호화 데이터가 런렝스 부호화 데이터인 것은 다음의 이유 때문이다. 상기 설명에 따르면, 주목 화소가 부호화될 화상 데이터의 상부 좌측 코너에 위치될 경우, 예측 값을 획득하는데 사용되는 "a", "b", "c"가 화 상 영역 외부에 있으며, a = b = c = O로서 취급된다. 보다 구체적으로는, a = b = c이므로, 주목 화소(X) 주위의 화소들의 색 카운트(Nc)는 "1"이며, 적어도 0 이상의 런렝스 부호화 데이터가 출력된다.
제1 실시예에서, 근방 일치 정보 부호화 유닛(102) 내의 일치 화소 위치 부호화 유닛(1102)은, 색 카운트(Nc)에 기초하여, 도 15a 내지 도 15c의 부호화표들 중 하나를 이용하여 부호화를 수행한다. 대안으로, 색 카운트(Nc)와는 무관하게, 도 7에 도시된 하나의 표를 이용하여 벡터 정보의 부호 워드를 생성할 수 있다. 색 카운트 Nc = 1인 경우, 벡터 정보가 0이든 1이든 관계없이, 그 부호 워드는 1 비트로 형성되기에 충분하다. 반대로, 도 7에서는 2 비트 이상의 부호 워드가 생성되므로, 도 15a 내지 도 15c에 도시된 바와 같이, 색 카운트(Nc)에 따라서 벡터 정보 부호화표를 절환하는 것이 바람직하다.
도 1의 신호(116), 도 10의 선택기(702), 도 11의 선택기(1104), 도 24의 선택기(101b), 레지스터(101c), 및 래치(101d)를 설치한 이유와, 그 동작을 설명한다.
상기 설명으로부터 이해되는 바와 같이, 주목 화소(X)의 색과 그 직전의 화소(Xa)의 색이 서로 다른 경우, 런렝스 부호화 유닛(104)에 의한 런은 종단한다. 이 때, 카운터 RL에 저장된 값을 런렝스 부호화하고, 이어서 그 주목 화소(X)의 화소 부호화 데이터가 출력된다. 주목 화소(X)에 관하여, X ≠ Xa이며, 도 12로부터 용이하게 이해할 수 있는 바와 같이, 벡터 정보가 "0"을 취할 수는 없다.
명백하게, 도 8a에 도시된 바와 같이, 데이터가 벡터 정보의 부호 워드만으 로 형성될 경우에 부호화 효율이 가장 높게 된다. 런 종단으로 판정된 주목 화소(X)를 Xa(또한 X1)과는 다른 화소(Xf)와 비교한 경우, X = Xf의 확률 때문에, 보다 높은 압축율이 기대될 수 있음을 이해할 수 있다. 화소(Xf)는 주목 화소(X) 근방에 위치되는 것이 바람직하다. 제1 실시예에서는 이전 런렝스 부호화시에 런 종단으로 판정된 화소를 화소(Xf)로서 채택한다. 다시 말해서, 현재의 런렝스 부호화시에 런 종단으로 판정된 주목 화소(X)는 런이 다음의 런렝스 부호화시에 종단을 결정할 때에 사용되는 근방 화소(Xf)로서 저장 및 유지된다.
도 18은 주목 화소(X)가 런렝스 부호화 데이터를 종단하는 경우의 입력 화상의 일례를 도시한다. 주목 화소(X) 직전의 런렝스 부호화 데이터는, 그 런의 기원으로서 역할을 하는 화소(1801)와 동일한 색을 갖는 화소가 연속하여 주목 화소(X)에서 색을 변경하는 경우를 도시한다. 화소(1802)에서, 이전 런의 종단을 검출한다. 이 상황에서, 주목 화소의 화소 부호화 데이터를 생성하기 위해, 색 카운트 판정 유닛(101)은, 화소 데이터 "a" 대신에 주목 화소의 근방의 화소들 "b", "c", "d" 및 화소(1802)의 화소 데이터 "f"에 기초하여, 색 카운트(Nc)를 다시 계산한다. 근방 일치 정보 부호화 유닛(102)이 벡터 정보를 부호화하고, 근방 화소 상태 정보를 다시 생성한다. 성분값 예측 부호화 유닛(103)은 화소 데이터 "f", "b", "c"에 기초하여 예측값 p를 획득하고, 주목 화소(X)에 대한 예측 오차 부호화 처리를 수행한다.
상기 프로세스를 구현하기 위해서, 런의 종단이 검출된 경우에, 런렝스 부호화 유닛(104)은 그 때의 주목 화소(X)의 데이터(R, G, B 성분 데이터)를 유지하기 위해, 신호(116) 상에 런 종단 검출 정보를 출력한다.
도 24에 도시된 바와 같이, 신호 라인(116)을 통해 런 종단 검출 정보를 수신할 시에, 색 수 판정 유닛(101) 내의 래치(101d)는 레지스터(101c)의 데이터를 래치하여, 선택기(101b), 근방 일치 정보 부호화 유닛(102), 및 성분값 예측 부호화 유닛(103)에 화소 데이터(f)로서 출력한다. 또한, 래치(101d)에 의한 저장 및 래치 후, 레지스터(101c)는 이전에 저장/유지된 데이터를 그 때의 주목 화소(X)의 데이터로 덮어쓴다(업데이트한다). 즉, 레지스터(101c)는 주목 화소(X)의 데이터를 유지하고, 래치(101d)는 이전의 런렝스 부호 워드의 런이 종단하는 화소 데이터(f)를 래치한다. 화상 데이터의 부호화 처리를 시작하여, 최초로 런렝스 부호화를 수행하는 경우, 어떠한 데이터(f)도 존재하지 않는다. 따라서, 하나의 화상 데이터를 부호화하기에 앞서, 적절한 값, 예를 들어, "0"을 레지스터(101c)에서 R, G, B 성분으로 설정한다. 이러한 값들은 그 값들이 복호측 값과 동일한 한, "0"으로 한정되는 것이 아니다.
신호 라인(116)을 통해 런 종단 검출 정보를 수신할 시, 선택기(101b)는 데이터 "a" 대신에 데이터 "f"를 색 카운트 연산 유닛(101a)으로 출력한다. 색 카운트 계산 유닛은 주목 화소(X) 근방의 화소들 "b", "c", "d"와 화소 "f"에 기초하여, 색 카운트(Nc)를 다시 계산한다.
근방 일치 정보 부호화 유닛(102)이 신호 라인(116)을 통해 런 종단 검출 정보를 수신한 경우, 선택기(1104)가 화소 데이터(f)를 선택하도록 한다. 근방 일치 정보 부호화 유닛(102)은 벡터 정보를 다시 생성하고, 이를 다시 부호화하고, 신호 라인(110)에 그 부호화된 벡터 정보를 출력하고, 근방 화소 상태 정보(108)를 신호 라인(108)에 다시 출력한다.
또한, 성분값 예측 부호화 유닛(103)이 신호 라인(116)을 통해 런 종단 검출 정보를 수신한 경우, 선택기(702)가 화소 데이터 "f"를 선택하도록 한다. 예측 성분값 부호화 유닛(103)은 예측 선택 신호 및 데이터 "f", "b", "c"의 성분값들에 기초하여, 주목 화소의 부호 워드의 예측치를 계산한다.
상술된 바와 같이, 런렝스 부호화 유닛(104)으로부터 신호 라인(115) 상으로 출력된 상태 신호가 "1"에서 "0"으로 변경되는 경우, 스위치(106)는 런렝스 부호화 유닛(104)으로부터 입력된 런렝스 부호화 데이터를 출력한다. 스위치(106)는 런렝스 부호화 데이터를 부호열 형성 유닛(107)에 출력하고, 이어서 데이터 "a" 대신에 데이터 "f"에 기초하여 색 카운트 판정 유닛(101), 근방 일치 정보 부호화 유닛(102), 및 성분값 예측 부호화 유닛(103)에 의해 생성된 주목 화소(X)에 대응하는 화소 부호화 데이터를 출력한다.
상술된 바와 같이, 제1 실시예에 따르면, 화상 처리 장치는 근방 일치 정보 부호화 유닛(102), 성분값 예측 부호화 유닛(103), 및 런렝스 부호화 유닛(104)을 포함한다. 화상 처리 장치는 부호화될 주목 화소(X)의 주위의 부호화된 화소(Xa, Xb, Xc, Xd) 내에 존재하는 색 수에 따라서 이 유닛들의 부호화 방법의 종류를 스위칭함으로써 부호화를 실행한다. 특히, 화소 부호화 데이터 및 런렝스 부호화 데이터 간의 절환은 부호화된 화소 위치의 정보에 따라서 결정된다. 따라서, 부호화 데이터는 부호화 방법의 종류가 스위칭되었다는 것을 나타내는 임의의 특정 식별 정보를 요구하지 않는다.
제1 실시예에 따르면, 런렝스 부호화 유닛(104)이 주목 화소(X)가 런을 종단한 것으로 판정한 경우, 색 카운트 판정 유닛(101), 근방 일치 정보 부호화 유닛(102), 및 성분값 예측 부호화 유닛은, 통상의 예측 부호화 시에 참조되어야 하는 화소 데이터(Xa) 대신에 다른 위치의 화소(Xf)를 일시적으로 참조함으로써, 재계산을 수행한다. 화소 부호화 데이터의 출력 형식으로서 도 8a의 형식이 채택되는 경우의 확률 저하가 억제될 수 있고, 보다 높은 압축 효율을 기대할 수 있다.
예를 들어, 도 13에 도시된 바와 같이, 소정의 주기성을 가지고 매 4개의 화소마다 한 화소값이 배치되는 화상으로부터 형성되는 화상 데이터 내의 주목 화소(X)를 부호화할 시, 4개의 주변 화소들 "a", "b", "c", "d"이 동일한 화소값을 갖기 때문에 처리는 런렝스 부호화 모드로 들어간다. 그러나, 런은 길이 0으로 종단하여, 그 처리는 벡터 정보의 부호화로 이동한다. 4개의 주위 화소들을 참조하면, 어떠한 일치 화소도 검출되지 않아, 벡터 정보가 예측된대로 부호화되어, 부호화 효율이 저감된다. 반대로, 직전의 런의 종단으로서 역할을 하는 화소(Xf)를 참조함으로써 벡터 정보가 부호화되고, 화소(Xf)가 주목 화소(X)와 일치할 확률이 높아져, 부호화 효율이 향상된다.
< 변형예의 설명 >
제1 실시예는 도 1의 구성에 기초하여 설명되었지만, 제1 실시예와 동일한 처리가 컴퓨터 프로그램에 의해 구현될 수 있다.
도 14는 장치가 소프트웨어에 의해 구현되는 경우의 기본 장치(PC 등) 구성 을 도시하는 블록도이다.
도 14에서, 참조부호 1401은 RAM(1402) 및 ROM(1403)에 저장된 프로그램 및 데이터를 이용함으로써 장치 전체를 제어하는 CPU를 의미하고, 또한 후술될 화상 부호화 및 복호 처리를 실행한다.
RAM(1402)은 I/F(1409)를 통해 외부 저장 장치(1407), 저장 매체 드라이브(1408), 또는 외부 장치로부터 다운로드된 프로그램 및 데이터를 저장하는데 사용된다. RAM(1402)은 또한 CPU(1401)가 각종 처리들을 실행할 경우, 작업 영역으로서 사용된다. 도 1에 도시된 버퍼(201), 허프만표 메모리(204) 등도 RAM(1402)에 할당된다.
ROM(1403)은 부트 프로그램, 장치 설정 프로그램, 및 데이터를 저장한다.
참조부호 1404, 1405는 사용자가 CPU(1401)에 각종 명령들을 입력할 수 있도록 하는 키보드 및 포인팅 장치(예컨대, 마우스)를 각각 의미한다.
참조부호 1406은 CRT, 액정 화면 등으로 구성된 디스플레이 장치를 의미하며, 화상 및 문자와 같은 정보를 디스플레이할 수 있다.
외부 저장 장치(1407)는 하드디스크 드라이브와 같은 대용량 정보 저장 장치이다. 외부 저장 장치(1407)는 OS, 후술되는 화상 부호화 및 복호 처리를 위한 프로그램, 부호화될 화상 데이터, 복호될 화상의 부호화 데이터 등을 저장한다. 프로그램 및 데이터는 CPU(1401)의 제어하에서 RAM(1402) 내의 소정의 영역으로 로딩된다.
저장 매체 드라이브(1408)는 CD-ROM 또는 DVD-ROM과 같은 저장 매체에 기록 된 프로그램 및 데이터를 판독하고, RAM(1402) 및 외부 저장 장치(1407)에 그 판독된 프로그램 및 데이터를 출력한다. 저장 매체는 후술될 화상 부호화 및 복호 처리를 위한 프로그램, 부호화될 화상 데이터, 복호될 화상의 부호화 데이터 등을 기록할 수도 있다. 이 경우, 저장 매체 드라이브(1408)는 CPU(1401)의 제어하에 이 프로그램들 및 데이터를 RAM(1402) 내의 소정의 영역에 로드한다.
I/F(1409)는 외부 장치를 화상 처리 장치에 접속시켜, 그 화상 처리 장치와 외부 장치 간의 데이터 통신을 허용한다. 예를 들어, I/F(1490)는 부호화될 화상 데이터, 복호될 화상의 부호화 데이터 등을 본 장치의 RAM(1402), 외부 저장 장치(1407), 또는 기록 매체 드라이브(1408)에 입력할 수 있도록 한다. 참조부호 1410은 상기 유닛들을 접속시키는 버스를 의미한다.
상기 구성에서, 제1 처리와 동일한 처리가 소프트웨어에 의해 구현될 경우, 도 1에 도시된 색 카운트 판정 유닛(101)으로 대표되는 각종 구축 성분에 대응하는 처리는, 소프트웨어에서 함수, 서브루틴 등으로 구현된다. 또한, 본 변형예에서도, 편의를 위해 도 1의 처리 유닛들의 명칭들을 그대로 사용한다. 처리를 시작하기에 앞서, 버퍼(201)가 CPU(1401)에 의해 RAM(1402)에 할당된다.
도 17은 본 변형예에 따른 화상 처리 장치에 의한 부호화 처리의 흐름을 도시하는 플로우차트이다. 도 17에 따른 프로그램을 RAM(1402)에 로드하여 CPU(1401)로 실행함으로써, 도 17에 도시된 플로우차트에 따른 처리를 달성한다. 본 변형예에 따른 어플리케이션 프로그램의 전체 흐름을 도 17을 참조하여 설명한다.
부호열 형성 유닛(107)은 부호화될 화상의 부가 정보를 포함하는 헤더을 생성하여, 출력한다(단계 S1901). 주목 화소의 수직 위치를 유지하는 카운터 y를 0으로 설정하고, 런렝스 부호화 유닛(104) 내에 유지된 카운터 RL을 0으로 초기화하고, 런 종단 검출시 참조 화소(Xf)의 각 성분 값을 "0"으로 초기화한다(단계 S1902). 또한, 주목 화소의 수평 위치를 유지하는 카운터 x를 0으로 설정한다(단계 S1903). 색 카운트 판정 유닛(101)이 (x, y) 좌표의 주목 화소(X) 주변의 화소들 "a", "b", "c", "d"의 색 카운트(Nc)를 얻는다(단계 S1904). 주목 화소가 부호화될 화상의 제1 라인에 위치된 경우, "b", "c", "d"(도 3 참조) 중 어느 것도 존재하지 않으며, 이 주변 화소들의 RGB 각 성분 값들은 0으로 설정된다. x = 0인 경우, 주변 화소 "a"도, "c"도 존재하지 않으므로, 이들의 RGB는 성분 값들은 0으로 설정된다. 그러나, RGB 성분값들이 복호 처리시의 값들과 동일한 한, 이 값들로 제한되지 않는다.
단계 S1905에서, 색 카운트(Nc)가 1인지 또는 카운터 RL이 0 이외의 값을 유지하는지를 판정한다. 색 카운트 Nc = 1 또는 카운터 RL이 0 이외의 값을 유지하면(단계 S1905에서 YES), 처리는 단계 S1914로 이동한다. 상기 조건이 부합하지 않으면(단계 S1905에서 NO), 처리는 단계 S1906으로 이동한다.
처리가 단계 S1906으로 이동한 후에, 근방 일치 정보 부호화 유닛(102)은 주목 화소에 대한 벡터 정보를 부호화하여, 부호 생성 유닛(105)을 통해 그 부호 워드를 출력한다. 처리는 단계 S1907로 진행하여 주목 화소 위치에서의 근방 화소 상태 정보가 "1"인지의 여부를 판정한다(단계 S1907). 근방 화소 상태 정보가 "1" 인 경우(단계 S1907에서 YES), 처리는 단계 S1923으로 진행하고, 성분값 예측 부호화 유닛(103)이 각 R, G, B 성분을 예측 부호화한다.
단계 S1909에서, 부호 생성 유닛(105) 및 성분값 예측 부호화 유닛(103)으로부터 출력된 부호 워드를 부호열 형성 유닛(107)에 의해 소정의 포맷으로로 변환하여, 주목 화소에 대한 부호열을 형성한다(단계 S1909). 이어서, 주목 화소의 수평 위치를 유지하는 카운터 x가 1만큼 증분된다(단계 S1910). 카운트 x는 화상의 수평 화소 카운트(W)와 비교된다. x < W이면(단계 S1911에서 YES), 처리는 단계 S1904로 돌아가서 다음 화소에 대한 부호화 처리를 수행한다. x ≥ W이면(단계 S1911에서 NO), 처리는 단계 S1912로 이동한다(단계 S1911).
단계 S1905에서 색 카운트 Nc = 1 또는 카운터 RL이 0 이외의 값을 유지한다고 판정된 경우, 처리는 단계 S1914로 이동하여 주목 화소(X)(카운터 x, y로 나표현되는 화소값 m)를 직전 화소의 값(Xa)과 비교한다.
X ≠ Xa이면(단계 S1914에서 NO), 처리는 단계 S1920로 진행한다.
X = Xa이면(단계 S1914에서 YES), 런렝스 부호화 유닛(104)에 보유된 카운터 RL은 1만큼 증분된다(단계 S1915). 다음으로, 주목 화소의 수평 위치를 보유하는 카운터 x가 1만큼 증분된다(단계 S1916). 단계 S1917에서, 카운터 x를 화상의 수평 화소 카운트 W와 비교한다. x < W이면, 처리는 단계 S1914로 돌아가서 다음 런을 계속해서 카운트한다. x ≥ W이면, 런이 화상의 우측 종단에 도달한다. 이 때, 런렝스를 마무리하여, 런렝스 부호화 유닛(104)이 카운터 RL에 의해 보유된 런렝스를 부호화한다. 런렝스 부호화 유닛(104)으로부터 출력된 부호는 스위치(106) 를 통해 부호열 형성 유닛(107)으로 보내져서, 소정 포맷의 부호열을 형성한다(단계 S1918). 런렝스 부호화 종료 후에, 카운터 RL은 0으로 리셋된다(단계 S1919). 스위치(106)의 접속은 단자 "a"로 변경된다. 처리는 단계 S1912로 이동하고, 부호화 처리의 대상은 다음 라인으로 이동한다.
처리가 단계 S1914로부터 단계 S1920으로 진행하면, 직전 화소의 값(Xa)과는 다른 화소값(X)의 출현에 의해 런이 종결됨을 의미한다. 따라서, 런렝스 부호화 유닛(104)는 카운터 RL가 보유한 런렝스를 부호화하여 부호를 출력한다. 런렝스 부호화 유닛(104)으로부터 출력된 부호 워드는 스위치(106)를 통해 부호열 형성 유닛(107)으로 보내지고, 소정 포맷의 부호열을 형성한다. 런렝스 부호화의 종료 후에, 카운터 RL은 0으로 리셋된다(단계 S1921). 이 때, 직전 화소(Xa)의 데이터는 Xf의 값으로 치환된다(단계 S1701). 단계 S1702에서, Xf의 데이터는 주목 화소(X)의 데이터로 업데이트된다. 단계 S1703에서, 색 수는 화소들 "f", "b", "c", "d"에 기초하여 다시 계산되고, 처리는 단계 S1906으로 진행한다. 화소 데이터(Xa)는 화소 데이터(Xf)로 치환되었으므로, 처리는 단계 S1906 이후에 화소들 "f", "b", "c", "d"에 기초한다. 결과적으로, 주목 화소의 화소 부호화 데이터가 생성되며, 스위치(106)의 접속은 단자 "a"로 변경된다.
단계 S1912에서, 주목 화소의 수직 위치를 유지하는 카운터 y는 1만큼 증분된다. 카운터 y는 화상의 수직 화소 카운트 H와 비교된다. y < H이면(단계 S1913에서 YES), 처리는 단계 S1903으로 돌아가서 다음 라인의 화소도 유사하게 처리한다. y ≥ H이면(단계 S1913에서 NO), 대상 화상의 부호화 처리를 종료한다(단계 S1913).
상술된 바와 같이, 변형예도 제1 실시예와 동일한 작용 효과를 달성할 수 있다.
이후 복호 처리를 설명한다. 복호 처리는 기본적으로 부호화 처리와 쌍을 이룬다. 이 경우, 상기 처리에 의해 부호화된 화상 데이터를 복호하는 처리 절차들이 도 25의 플로우차트를 참조하여 설명한다. 다음 설명에서, 복호될 주목 화소(X)가 화상의 경계에 위치될 경우, 참조 화소들 "a", "b", "c", "d" 중 어느 것도 존재하지 않으므로, 이 성분값들은 0으로 설정된다.
단계 S2101에서, 복호될 부호화 데이터가 (RAM에 할당된) 부호 버퍼에 입력되고, 부호화 데이터의 헤더를 분석하여 복호에 필요한 부가 정보를 추출한다. 주목 화소의 수직 위치를 유지하는 카운터 y는 0으로 설정된다(단계 S2102). 이 때, 참조 화소(Xf)의 R, G, B 데이터를 0으로 초기화하고, 플래그 FLAG를 "0"로 초기화한다(단계 S2102). 이 플래그 FLAG를 RAM에 할당하여, 런렝스 부호 워드를 복호하였는지를 판정하는데 사용한다.
단계 S2103에서, 주목 화소의 수평 위치를 유지하는 카운터 x를 0으로 설정한다(단계 S2103).
좌표(x, y)에 위치한 화소에 주목하여, 복호된 주위 화소(Xa, Xb, Xc, Xd)를 참조함으로써 색 카운트(Nc)를 획득한다(단계 S2104). 주목 화소가 화상의 상부 좌측 코너에 위치되면, Xa, Xb, Xc, Xd는 "0"으로 취급된다.
단계 S2105에서, 색 카운트(Nc)가 "1"인지의 여부가 판정된다. 색 카운 트(Nc)가 1이면(단계 S2105에서 YES), 처리는 단계 S2114로 이동하고; NO이면, 단계 S2110로 이동한다.
단계 S2110에서, 색 카운트(Nc)를 4와 비교한다. Nc = 4이면, 주목 화소는 성분값 예측 부호화 데이터(도 8c의 부호화 데이터)이고, 그 주목 화소의 각 성분을 복호한다(단계 S2108).
단계 S2110에서, Nc ≠ 4라고 판정되면, 그 주목 화소는 벡터 정보의 부호 워드이며, 그 부호 워드는 단계 S2106에서 벡터 정보로 복호된다. 이 벡터 정보의 부호 워드의 복호는, 도 15a 내지 도 15c에 도시된 바와 같이, 색 수에 대응하는 표를 사용한다.
얻어진 벡터 정보와 색 카운트(Nc)와 일치하면, 근방 화소 상태 정보 "1"이 생성되고; 서로 일치하지 않으면, "0"이 생성된다. 근방 화소 상태 정보가 "1"인지의 여부가 단계 S2107에서 판정된다(도 12 참조). 근방 화소 상태 정보가 "1"인 경우, 주목 화소의 부호화 데이터가 도 8b의 데이터 구조를 갖는다. 근방 화소 상태 정보가 "0"인 경우, 주목 화소의 부호화 데이터가 도 8a의 데이터 구조를 갖는다.
따라서, 근방 화소 상태 정보가 "1"인 경우, 성분들의 예측 부호 워드는 벡터 정보의 부호 워드에 후속하고, 단계 S2121에서 복호된다.
처리가 단계 S2108 또는 단계 S2121에서 단계 S2109로 진행하면, 성분들의 예측 부호화 데이터를 복호한 결과를 주목 화소의 데이터로서 출력한다. 단계 S2107에서 NO이면, 화소들 "a", "b", "c", "d" 간에 대응하는 화소 데이터가 복호 된 벡터 정보에 따라서 주목 화소 데이터로서 출력된다.
단계 S2132에서, 플래그 FLAG가 "1"인지의 여부가 판정된다. 이 설명에서, 플래그 FLAG = 0이다. 플래그 FLAG = 0이면, 처리는 단계 S2110으로 진행하여, 주목 화소의 수평 위치를 유지하는 카운터 x에 1을 증분시킨다. 단계 S2111에서, 카운터 x는 화상의 수평 화소 카운트 W와 비교된다. x < W이면(단계 S2111에서 YES), 처리는 단계 S2104로 돌아가서 다음 화소의 복호 처리를 수행한다. x = W이면, 처리는 단계 S2112로 이동한다.
단계 S2105에서 색 카운트(Nc)가 1이라고 판정된 경우, 주목 부호화 데이터는 런렝스 부호화 데이터이므로, 처리는 단계 S2114로 진행하여 런렝스 RL이 복호한다. 복호 결과는 "0" 런이 될 수도 있다.
복호된 런렝스 RL을 0과 비교한다(단계 S2115). RL = 0이면(단계 S2115에서 YES), 처리는 단계 S2120으로 이동한다.
단계 S2115에서 RL ≠ 0이라고 판정된 경우, 복호된 화소값으로서 Xa가 출력된다(단계 S2116). 카운터 RL에서 1이 차감되어(단계 S2117), 주목 화소의 수평 위치를 보유하는 카운터 x가 1만큼 증분된다(단계 S2118). 단계 S2119에서, 카운터 x가 수평 화소 카운트 W와 비교된다. x < W이면, 처리는 단계 S2115로 돌아가고; x ≥ W이면, 처리는 단계 S2112로 이동한다(단계 S2119).
단계 S2115에서 RL = 0이라고 판정된 경우, 처리는 단계 S2120으로 이동하여, 주목 화소(X)의 직전의 화소(Xa)의 데이터를 Xf의 데이터로 일시적으로 치환한다. 단계 S2129에서, 플래그 FLAG는 런렝스 부호 워드의 복호되었음을 나타내기 위해, "1"으로 설정된다. 처리는 단계 S2130으로 진행하여 Xf, Xb, Xc, Xd에 기초하여 색 카운트(Nc)를 카운트하고, 이어서 단계 S2110으로 돌아간다.
단계 S2130로부터 단계 S2110에 처리가 돌아간 경우에는, 상술된 단계 S2110으로부터의 처리를 수행하여 주목 화소(X)를 복호한다. 그 후, 단계 S2132에서, 플래그 FLAG가 "1"이라고 판정한다. 화소 데이터(Xf)는 단계 S2133에서 주목 화소(X)의 복호된 성분값들로 업데이트되고, 플래그 FLAG는 단계 S2134에서 "0"으로 설정된다.
단계 S2112에서, 주목 화소의 수직 위치를 유지하는 카운터 y를 1만큼 증분하여, 화상의 수직 화소 카운트 H와 비교한다. y < H이면(단계 S2113에서 YES), 처리는 단계 S2103로 돌아가서 다음 라인의 각 화소에 대해 유사하게 처리한다. y ≥ H이면(단계 S2113에서 NO), 대상 화상 데이터에 대한 복호 처리는 종료한다(단계 S2113).
상기 처리에 의해, 제1 실시예에서 부호화된 데이터는 무손실 복호되어, 원화상 데이터를 복원할 수 있다.
[제2 실시예]
제1 실시예에서, 주목 화소(X)가 런을 종단하여 예측 부호화에 대한 예측값이 얻어질 경우, 참조 화소 "a", "b", "c" 내의 화소 "a"를 이전 런렝스 부호화시에 런을 종단시킨 참조 화소 "f"로 치환함으로써, "f", "b", "c"가 사용된다. 제2 실시예에서, 주목 화소(X) 이전에 런을 종단한 복수의 화소 색이 참조 화소 "f"로서 저장되고, 색이 자주 출현하는 화소를 참조한다.
제2 실시예는 처리를 컴퓨터 프로그램에 의해 구현하는 일례를 설명한다. 장치 구성은 도 14와 동일하다.
처리 절차는 도 19의 플로우차트에 도시된다. 도 19의 플로우차트는, 도 17의 단계 S1701 및 단계 S1702가 단계 S1941 및 단계 S1942로 치환된 점과, 부호화를 시작하기에 앞서 출현색의 성분값 및 출현 빈도를 유지하는 표가 RAM(1402)에 할당된다는 점과, 부호화 시작시에 R = G = B = 0이 표에 보존되어 그 빈도가 "1"로 설정된다는 점에서, 도 17과는 다르다. 표를 할당하여 초기화하는 처리는 예를 들어, 단계 S1902에서 실행된다.
도 20은 부호화 처리가 임의의 단계로 진행할 경우의 표의 상태를 도시한다. 이 표는 빈도의 내림차순으로 출현 색 데이터를 보유한다. 새로운 색이 출현할 경우, 색을 나타내는 색 성분들을 추가 및 등록하여, 그 출현 빈도를 "1"로 설정한다.
도 19의 플로우차트가 단계 S1941 및 단계 S1942를 제외하고는 도 17과 동일하기 때문에, 단계 S1941 및 단계 S1942에 대하여 설명한다.
주목 화소(X)가 런을 종단하는 경우, 처리는 단계 S1941로 진행한다. 테이블을 참조함으로써, 이전에 런을 종단시킨 색 화소들 중 가장 빈도를 갖는 R, G, B의 데이터를 화소(Xf)의 데이터로 결정한다. 처리는 단계 S1942로 진행하고, 화소(Xf)를 결정하는 색 데이터의 빈도에 "1"을 증분하여, 테이블을 갱신한다. 이 때, 주목 화소(X)와 동일한 색이 존재하지 않으면, 주목 화소(X)의 R, G, B의 값을 테이블에 추가하여, 그 출현 빈도를 "1"로 설정한다.
상술된 제2 실시예에 따라, 주목 화소 이전의 런의 종단한 화소가 근방 일치 정보에 따라 부호화된 경우, 가장 주목 화소에 일치하는 픽셀을 주목 화소에 대한 참조 화소로 채택한다. 참조 화소 및 주목 화소는 서로 일치할 가능성이 매우 크고, 보다 높은 부호화 효율이 예상될 수 있다.
복호 처리를 표의 개념을 제1 실시예에 적용시켜 달성하므로, 그 설명은 생략한다.
[제3 실시예]
제3 실시예에서, 런의 최초가 되는 화소 직전의 화소가 주목 화소(X) 이전에 런을 종단시킨 화소 대신에, 참조 화소(f)로서 언급된다. Xf ≠ Xa이며, Xf의 위치가 (적어도 한라인 내에서는) 주목 화소(X)에 훨씬 더 가까운 것으로 약속된다. X = Xf의 확률이 높아지게 되며, 보다 높은 부호화 효율을 기대할 수 있다.
제3 실시예의 런렝스 부호화 데이터는 "런" 자체의 부호 워드를 생성하는데 사용되며, 런의 기원이 되는 색을 갖는 화소 부호화 데이터(도 8a 내지 도 8c)는 항상 런렝스 부호화 데이터 직전에 위치되며, 그 주목 화소는 부호화될 화상의 각 라인의 선두에 위치된다.
런렝스 부호화 실행시 런의 기원으로서 역할을 하는 픽셀의 직전의 픽셀을 저장하기 위해, 처리는 도 21에 도시된 절차들에 따라 실시된다. 두 화소 데이터 Xf 및 Xg는 RAM(1402)에 저장되어 0으로 초기화되며(단계 S1902), 단계 S1701 및 단계 S1702는 단계 S1952로 치환된다는 점에서, 도 21의 플로우차트는 도 17과는 다르다. 이 경우, 화소 데이터(Xg)는 주목 화소(X)의 화소 데이터를 저장 및 유지 하는데 사용되며, Xf는 화소 데이터 직전의 데이터를 저장 및 유지하는데 사용된다. 도 17과 다른 처리들 만이 설명될 것이다.
주목 화소(X)가 런을 종단시키는 경우에는, 화소 데이터(Xa)는 Xg의 R, G, B 값들로 일시적으로 치환되어, 단계 S1952에서 Xf의 R, G, B 값을 Xa을 대입된다. 일시적으로 유지된 Xg의 값은 Xf에 대입하여, 주목 화소(X)의 R, G, B 값을 Xg에 대입한다. 결과적으로, 런의 종단 화소를 부호화할 경우에만, 주목 화소(X)의 화소 데이터 및 하나의 직전 화소 데이터를 업데이트하여, 이 값들을 항상 유지한다. 단계 S1703에서, 업데이트된 Xa(=Xf), Xb, Xc, Xd에 기초하여 색 카운트(Nc)를 다시 계산하고, 처리는 단계 S1906으로 진행한다.
예를 들어, 도 22에 도시된 화상이 존재하는 경우, 주목 화소(X)가 도 22에 도시된 바와 같이 위치된다. 제1 실시예에서, 도 22의 화소(2201)가 이전 런의 종단에 위치되어 참조되면, 부호화 효율을 감소시킨다. 반대로, 제3 실시예에서, 도 22의 화소(Xf)가 참조된다. 주목 화소(X)의 R, G, B의 값이 255, 255, 255이면, 참조 화소(Xf)의 R, G, B는 도 23에 도시된 바와 같이, 255, 255, 255가되고, 부호화 효율이 증가한다.
[제4 실시예]
제1 내지 제3 실시예를 설명하였다. 벡터 정보의 부호화 없이 상기 실시예들을 간단히 실행하는 예를 제4 실시예로 설명한다.
제4 실시예에 따른 화상 처리 장치가 주목 화소 근처의 부호화된 화소 위치들의 화소들(화소 수가 1개일 수도 있음)에 기초하여, 그 주목 화소의 예측 값을 획득하여, 그 주목 화소값과 예측 값 간의 차분을 계산하여, 그 차분값을 부호화하는 예측 부호화 유닛과, 동일한 화소값의 런을 카운트하는 런렝스 부호화 유닛을 포함하고, 런이 종단할 경우 또는 주목 화소가 그 라인의 종단이 되는 경우, 카운트 값을 부호화한다. 예측 부호화 유닛과 런렝스 부호화 유닛은 적절하게 절환된다.
부호화될 화상 데이터는, R, G, B 색 화상 데이터이다. 각 성분(색)은 8 비트씩 0 내지 255의 휘도 값을 표현한 화소 데이터로부터 형성된다. 화상 데이터는 점순차 방식으로(dot-sequentially), 즉, 래스터 스캔순으로 화소들을 레이아웃함으로써 형성되며, 각 화소는 R, G, B의 순으로 데이터를 레이아웃함으로써 형성된다. 화상은 W개의 수평 화소, H개의 수직 화소로 구성된다. 입력 화상 데이터는 RGB 색 화상에 제한되지 않고, CMY 화상(또는 K을 추가하여 얻어진 CMYK 화상) 또는 모노크롬 화상이 될 수도 있다.
도 26은 제4 실시예에 따른 화상 처리 장치를 도시한 블록도이다. 제4 실시예에 따른 화상 처리 장치는 부호화될 화상 데이터를 일시적으로 저장하는 버퍼 메모리(2401), 부호화 방법 판정 유닛(2402), 예측 부호화 유닛(2403), 런렝스 부호화 유닛(2404) 및 부호화 데이터를 저장하는 메모리(2405)를 포함한다. 도 26에 도시된 구축 성분들 중, 부호화 방법 판정 유닛(2402), 예측 부호화 유닛(2403) 및 런렝스 부호화 유닛(2404)은 컴퓨터로 실행되는 프로그램에 의해 구현될 수 있다. 이 구성은 도 14에 도시된 바와 동일하다.
화상 데이터가 래스터 스캔순으로 신호 라인(2400)으로부터 입력된다. 버퍼 메모리(2401)는 복수의 라인들의 화상 데이터를 저장하기에 충분한 영역을 가지며, 신호 라인(2400)으로부터 입력된 화상 데이터를 일시적으로 저장한다.
부호화 방법 판정 유닛(2402)은 주목 화소(X)의 주변의 4개의 부호화 화소들 "a", "b", "c", "d"의 화소값 Xa, Xb, Xc, Xd를 비교하여, 4개의 주변 화소들이 동일한 화소값을 갖는지의 여부를 판정한다. 4개의 주변 화소들이 동일한 화소값을 갖는 경우, 부호화 방법 판정 유닛(2402)은 런렝스 부호화 유닛(2404)을 선택하여, 부호화를 시작한다. 부호화 방법 판정 유닛(2402)이 4개의 주변 화소들이 동일 화소값을 갖지 않는다고 판정한 경우, 예측 부호화 유닛(2403)를 선택하여, 부호화를 수행한다.
예측 부호화 유닛(2403)은 주목 화소(X)의 R, G, B 성분들을 하나씩 부호화한다. 예측 부호화 유닛(2403)은 3개의 주변 화소 "a", "b", "c"로부터 예측식: p = a + b - c에 의해 예측 값 p를 생성한다. 제1 실시예와 유사하게, 런렝스 부호화 유닛(2404)은 주목 화소(X)의 주목 성분 값과 예측 값(p) 간의 차분값(e)을 허프만 부호화하여, 그 결과를 메모리(2405)에 출력한다.
주목 화소(X) 주위의 4개의 화소들이 동일 화소값을 갖는 경우, 런렝스 부호화 유닛(2404)은 직전 화소와 일치하는 주목 화소(X)의 런의 측정을 시작한다. 일단, 런의 측정이 시작되면, 런렝스 부호화 유닛(2404)은 주목 화소(X)가 직전 화소와 일치하는 한, 주목 화소 주변의 4개의 화소들의 상태와는 무관하게 런을 계속 측정한다. 주목 화소(X)가 직전 화소와 다르거나, 주목 화소가 라인 종단에 있는 경우(런의 종단이 판정되는 경우), 런렝스 부호화 유닛(2404)은 측정된 런을 부호 화하고, 그 런렝스 부호화 데이터를 메모리(2405)에 출력하여, 런렝스 부호화를 종료한다. 런렝스 부호화 유닛(2404)은 그 런렝스 부호화 데이터를 메모리(2405)에 출력할 경우, 부호화 방법 판정 유닛(2402)에 런렝스 부호화의 종단을 통지한다. 이에 응답하여, 주목 화소의 부호화는 예측 부호화 유닛(2403)에 의한 부호화로 절환한다.
주목 화소(X)의 값이 직전 화소의 화소값과 다른 경우 및 런렝스 부호화 유닛(2404)이 런을 종단시킨 경우를 고찰한다.
도 3으로부터도 알 수 있는 바와 같이, 이러한 상황에서는 X ≠ a이다. 따라서, 주목 화소(X)를 예측 부호화하는데 사용된 예측 값(p)을 p = a + b - c으로 계산하는 경우, 예측 오차가 "0"이 되기 어려우며, 부호화 효율이 저하할 가능성이 높다(직전의 화소 "a"만을 예측 값 p로 참조하는 모드에서 특히, 예측 오차는 "O"이 되지 않음). 런렝스 부호화가 예측 부호화로 절환한 직후에, 예측값(p)은, 통상의 예측 오차시에 참조된 3개의 주변 화소들 "a", "b", "c" 중 하나인 "a"를 참조하지 않고, 이전의 런렝스 부호화의 최종 화소의 화소값(Xf)을 "a"로 참조함으로써 계산된다. 즉, p = Xf + b + c이다. 예측 값(p)을 이용함으로써, 주목 화소(X)와의 차분값(e)을 획득하여, 예측 부호화한다. 이를 위해, 부호화 방법 판정 유닛(2402)은 런렝스 부호화 유닛(2404)에 의해 런렝스 부호화 데이터가 출력되었음을 통지받은 경우, 주목 화소(X)의 화소값을 저장 및 유지한다. 이 통지의 수신시, 부호화 방법 판정 유닛(2402)이 예측값을 계산하기 위한 화소값 'a", "b", "c" 대신에, 이전 통지에 응답하여 유지된 화소값(Xf)을 예측 부호화 유닛(2403)에 출 력한다.
상기 설명에서 저장/유지 화소(X)는 런렝스 부호화의 종단 직후의 화소이지만, 본 발명은 이에 제한되지 않는다. 예를 들어, 런렝스 부호화 동안의 화소 열의 선두의 직전의 화소와 같이, 보다 높은 부호화 효율이 기대되는 예측 부호화시에 참조된 또 다른 화소를 참조해도 된다. 이 경우에는, 또 다른 근방 화소값이 저장 및 유지된다. 또한, 상기 설명에서, 또 다른 화소가 주변 화소 중 하나인 "a" 대신에 일시적으로 참조되지만, 대체 화소들의 수는 이에 제한되는 것이 아니다. 예를 들어, 두 화소 "a" 및 "b" 대신에 2개의 다른 화소들이 일시적으로 참조될 수 있다. 대안으로, 2개의 다른 화소들의 평균은 주위 화소들 중 하나인 "a" 대신에 계산될 수도 있다. 주목 화소(X)가 런을 종단하는 경우, 즉, X ≠ Xa인 경우, 주목 화소(X)의 직전 화소의 화소값 Xa가 Xf로서 저장될 수도 있다.
상술된 바와 같이, 제4 실시예에서는, 3개의 주변 화소들 "a", "b", "c" 중 적어도 하나는 런렝스 부호화 직후에는 참조되지 않는다. 런렝스 부호화를 거친 부분 또는 런렝스 부호화 동안의 부분 근처의 또 다른 화소값을 이용하여 예측값 p가 계산된다. 예측 값 p와 주목 화소 간의 차분값 e를 획득하여 예측 부호화된다.
제4 실시예의 부호화 처리의 흐름은 도 27의 플로우차트를 참조하여 설명될 것이다.
단계 S2701에서, 부호화 데이터를 생성시, 헤더를 생성 및 출력한다. 단계 S2702에서, 주목 화소의 수직 위치를 나타내는 변수 y를 "0"로 초기화한다. 런을 카운트하는 카운터 변수 RL을 "0"으로 초기화하고, 런렝스 부호화로부터 예측 부호 화에 절환한 직후에 이용된 예측 값을 유지하는 변수 Xf를 "0"으로 초기화한다. 단계 S2703에서, 주목 화소의 수평 위치를 나타내는 변수 x를 "0"으로 초기화한다.
단계 S2704에서, 좌표(x, y)로 나타내는 주목 화소(X) 주위의 4개의 화소들의 화소값 Xa, Xb, Xc, Xd가 동일한 지의 여부가 판정된다. 화소값들 Xa, Xb, Xc, Xd이 다르다고 판정되면, 처리는 S2705로 진행하여, 각 성분을 예측 부호화한다. 단계 S2706에서, 그 부호화 결과가 출력된다. 상술된 바와 같이, 주변 화소가 부호화될 화상 외부에 있는 경우, 그 화소의 각 성분 값은 "0"으로 설정된다.
단계 S2707에서, 변수 x에 "1"을 증분한다. 단계 S2708에서, 변수 x의 값을 입력 화상의 수평 화소 수 W와 비교하여, 그 주목 화소가 한 라인의 종단을 초과하는지의 여부를 판정한다. x < W이라고 판정되면, 단계 S2704 이후의 처리를 반복하고; x ≥ W이라고 판정되면, 다음 라인을 부호화하기 위해, 단계 S2709에서, 변수 y에 "1"을 증분한다. 단계 S2710에서, 변수 y를 입력 화상의 수직 화소 수 H와 비교하여, 최종 라인의 부호화가 완료되었는지의 여부를 판정한다. y < H이라고 판정되면, 단계 S2703 이후의 처리는 반복되며; y ≥ H이라고 판정되면, 부호화 처리를 종료한다.
상기 처리동안, 단계 S2704에서, 동일한 화소값을 갖는 주목 화소(X) 주위의 4개의 부호화 화소들이 동일한 화소값을 갖는다고 판정된 경우, 상술된 예측 부호화 처리를 런렝스 부호화로 절환하기 위해, 처리는 단계 S2711로 진행한다.
단계 S2711에서, 주목 화소(X)와 직전 화소(Xa)가 동일한지의 여부를 판정한다. 주목 화소(X) 및 직전 화소(Xa)가 동일하다고 판정한 경우에는, 단계 S2712에 서 카운터 변수 RL에 "1"을 증분시킨다. 단계 S2713에서, 다음 화소를 주목 화소로 설정하기 위해서, 변수 x에도 "1"을 증분시킨다. 그 후, 단계 S2714에서 "x < W"인지의 여부가 판정된다. x < W이라고 판정되면, 단계 S2711 이후의 처리가 반복된다.
주목 화소(X)가 직전 화소(Xa)와 다른 경우에는, 런은 종단하고, 처리는 단계 S2711에서 단계 S2715에 진행하여, 카운터 변수 RL의 값을 부호화한다. 단계 S2716에서, 부호화 결과가 출력되며, 단계 S2717에서 카운터 RL을 "0"으로 초기화한다. 다음으로, X ≠ Xa라고 판정된 주목 화소(X)를 예측 부호화하기 위해, Xa 대신에 Xf를 설정하여, 예측 값 p를 산출한다. 따라서, 예측 값 p는 Xf + Xb - Xc로 주어진다. 단계 S2719에서, 다음의 런렝스 부호화가 예측 부호화로 절환된 직후의 예측 값을 유지하기 위해서, 주목 화소(X)의 값을 f에 대입한다. 이어서, 처리는 단계 S2705에 진행한다. 처리가 단계 S2705로 진행한 경우, 주목 화소(X) 에 대한 예측 값 p는 Xf + Xb - Xc을 이용함을 유의하라.
단계 S2714에서, x ≥ W이라고 판정된 경우, 이는 주목 화소(X)의 위치가 한 라인의 종단을 초과함을 의미한다. 따라서, 처리는 단계 S2720으로 진행하여, 카운터 변수 RL의 값을 부호화한다. 단계 S2721에서 부호화 결과가 출력되고, 단계 S2722에서 카운터 변수 RL을 "0"으로 리셋하고, 처리는 단계 S2709로 진행한다.
상술된 바와 같이, 제4 실시예에 따르면, 부호화 데이터는 예측 부호화 처리와 런렝스 부호화 처리 간을 적절히 절환함으로써 부호화 데이터를 성공적으로 생성할 수 있다. 런렝스 부호화 처리가 예측 부호화 처리로 절환한 직후에, 주목 화 소의 직전 위치의 화소값을 이용하는 것이 아니라, 이전 런렝스 부호화의 런 종단으로 역할하는 화소값을 이용한다. 이는 또한 부호화 효율의 저하를 억제할 수도 있다.
[기타 실시예]
상기 실시예들에서, 부호화될 화상 데이터는 8 비트 단위의 R, G, B 성분의 데이터이다. 그러나, 색 공간을 나타내는 데이터는, R, G, B에 제한되는 것이 아니라, Y, M, C, K(black), L*a*b, 또는 YCbCr이 될 수도 있다. 각 성분 값이 항상 8 비트일 필요는 없다. 특히, 일부 최근 디지털 카메라 등은 내부적으로 R, G, B를 12 비트로 처리하여, RAW 모드로 데이터를 무손실 부호화한다. 본 발명은 또한 그러한 장치에 적용될 수도 있다.
상기 실시예들에서, Nc 화소값들을 갖는 일치/불일치들이 주위 화소의 색 카운트(Nc)에 따라서 부호화되었다. 벡터 정보로서, Nc + 1의 심볼이 부호화된다. 예를 들어, 색 카운트(Nc)가 3일 경우에, 주목 화소가 제1 화소값(X1)과 일치하면 0이고; 주목 화소가 제2 화소값(X2)과 일치하면 1이고; 주목 화소가 제3 화소값(X3)과 일치하면 2이고, 주목 화소가 X1 내지 X3 중 어느 것과도 일치하지 않으면 3이 되도록, 도 15c의 부호표를 이용하여 4개의 값들의 심볼들을 부호화한다. 그러나, 모든 Nc 화소값들이 일치/불일치 판정에 대상이 될 필요는 없다. 0, 1, 3의 3개의 값을 취하는 심볼(근방 일치 정보와 Nc 간의 비교를 고려하여, "2"를 일부러 제외하였음)은, 심볼이 X = X1일 때 0이고, X = X2일 때 1이고, X ≠ X1 및 X ≠ X2일 때 3이 되도록 부호화될 수 있다.
제1, 제2, 제3 화소값(X1, X2, X3)을 획득하는 방법은 상술된 실시예들에 제한되지 않는다. 예를 들어, 제1, 제2, 제3 화소값들은 상술된 것들과는 다른 Xb, Xa, Xc, Xd의 순으로 획득될 수 있다. 순서는 Xa, Xb, Xc, Xd 사이의 일치에 따라서 변경될 수 있다. 예를 들어, 제1, 제2, 제3 화소값들은 Xa, Xb, Xc, Xd의 순으로 획득된다. Xa = Xb인 경우, Xd는 제2 화소값(X2)으로 설정될 수 있다.
벡터 정보의 부호화는 미리 확률 분포의 가정에 따라 설정된 부호 워드를 이용할 수 있다. 그러나, 상기 예들과는 다른 부호 워드를 이용할 수도 있고, 산술 부호를 이용한 방식 등의 다른 부호화 방식을 적용할 수도 있다.
주목 성분 값을 예측 방법으로서, 몇몇 예측 방법들을 준비하여, 적응적으로 절환할 수 있다. 대안으로, 비선형 예측이 주목 성분의 예측에 대해 부호화 성분 값들에서 생성된 예측 오차의 평균값을 피드백하는데 이용될 수 있다.
상기 실시예들은 성분값의 예측 오차으 엔트로피 부호화로서 허프만 부호화 및 Golomb 부호화를 이용한다. 다른 엔트로피 부호화가 또한 채택될 수 있다.
주목 화소(X)의 주위의 화소값들로서 Xa, Xb, Xc, Xd를 참조한다. 대안으로, 보다 큰 화소 수가 참조될 수 있고, 참조 화소들의 수가 예를 들어, Xa 및 Xb만으로 감소될 수도 있다.
상기 실시예들의 설명으로부터 쉽게 이해할 수 있는 바와 같이, 본 발명은 또한 컴퓨터에 의해 실행되는 컴퓨터 프로그램에 의해 구현된 수 있다. 통상적으로, 컴퓨터 프로그램은 CD-ROM과 같은 컴퓨터 판독 가능 저장 매체에 저장되며, 그 저장 매체에 억세스하는 드라이브와 같은 판독 장치를 이용하여, 시스템에 프로그램을 카피 또는 인스톨함으로써 실행될 수 있다. 컴퓨터 프로그램도 분명히 본 발명의 범위 내에 있다.
상술된 바와 같이, 본 발명에 따르면, 각 화소의 부호화 및 화소들의 런을 부호화하는 런렝스 부호화 둘 모두를 이용하면서도, 데이터를 효율적으로 부호화할 수 있다.
본 발명은 그 사상 및 범위를 벗어나지 않고도 명백하고 광범위한 많은 다른 실시예들이 행해질 수 있으므로, 본 발명은 본 청구범위에 정의된 것을 제외한 특정 실시예들에만 제한되는 것이 아님을 이해해야 한다.

Claims (15)

  1. 화소값을 부호화하는 화상 부호화 장치로서,
    부호화된 화소의 값을 이용하여 대상 화소의 값을 부호화하는 제1 부호화 유닛;
    상기 대상 화소와 상기 대상 화소의 직전의 화소가 동일한 값을 갖는 수를 런으로서 카운트하고, 상기 카운트된 런에 기초하여 부호화된 데이터를 출력하는 제2 부호화 유닛; 및
    상기 제1 부호화 유닛에 의한 부호화와 상기 제2 부호화 유닛에 의한 부호화 간을 절환하는 스위칭 유닛
    을 포함하며,
    상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 유닛에 의해 부호화되는 경우에는, 상기 제1 부호화 유닛은 상기 대상 화소의 직전의 화소를 포함하지 않는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하고, 상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 유닛에 의해 부호화되지 않는 경우에는, 상기 대상 화소의 직전의 화소를 포함하는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 장치.
  2. 제1항에 있어서,
    상기 스위칭 유닛은 상기 대상 화소 근방에 있는 소정수의 부호화된 화소들의 값들에 따라, 상기 제1 부호화 유닛에 의한 부호화와 상기 제2 부호화 유닛에 의한 부호화 간을 절환하는 화상 부호화 장치.
  3. 제1항에 있어서,
    상기 대상 화소 근방에 있는 소정수의 부호화된 화소들의 값들이 서로 동일한 경우, 상기 스위칭 유닛은 상기 제2 부호화 유닛이 부호화를 실행하게 하는 화상 부호화 장치.
  4. 제1항에 있어서,
    상기 대상 화소와 상기 대상 화소의 직전의 화소의 값들이 서로 다른 경우, 상기 스위칭 유닛은 상기 제1 부호화 유닛이 부호화를 실행하게 하는 화상 부호화 장치.
  5. 제1항에 있어서,
    상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 유닛에 의해 부호화되는 경우에는, 상기 제1 부호화 유닛은 "상기 대상 화소의 직전의 화소의 값과 동일한 값을 가지며, 상기 대상 화소의 직전의 화소 전에 연속하는 화소들의 열" 이외의 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 장치.
  6. 제5항에 있어서,
    상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 유닛에 의해 부호화되는 경우에는, 상기 제1 부호화 유닛은 "상기 대상 화소의 직전의 화소보다 더 이전의 화소이며, 상기 제2 부호화 유닛에 의한 부호화가 종료된 화소"의 직후의 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 장치.
  7. 제5항에 있어서,
    상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 유닛에 의해 부호화되는 경우에는, 상기 제1 부호화 유닛은 "상기 대상 화소의 직전의 화소의 값과 동일한 값을 가지며, 상기 대상 화소의 직전의 화소 전에 연속하는 화소들의 열" 직전의 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 장치.
  8. 제1항에 있어서,
    상기 스위칭 유닛은 상기 제1 부호화 유닛에 의한 부호화, 상기 제2 부호화 유닛에 의한 부호화 및 제3 부호화 유닛에 의한 부호화 간을 절환하는 화상 부호화 장치.
  9. 화소값을 부호화하는 화상 부호화 방법으로서,
    부호화된 화소의 값을 이용하여 대상 화소의 값을 부호화하는 제1 부호화 단계;
    상기 대상 화소와 상기 대상 화소의 직전의 화소가 동일한 값을 갖는 수를 런으로서 카운트하고, 상기 카운트된 런에 기초하여 부호화된 데이터를 출력하는 제2 부호화 단계; 및
    상기 제1 부호화 단계에서의 부호화와 상기 제2 부호화 단계에서의 부호화 간을 절환하는 스위칭 단계
    를 포함하며,
    상기 제1 부호화 단계에서, 상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 단계에서 부호화되는 경우에는, 상기 대상 화소의 직전의 화소를 포함하지 않는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하고, 상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 단계에서 부호화되지 않는 경우에는, 상기 대상 화소의 직전의 화소를 포함하는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 방법.
  10. 화소값을 부호화하는 화상 부호화 장치로서,
    부호화된 화소의 값을 이용하여 대상 화소의 값을 부호화하는 제1 부호화 수단;
    상기 대상 화소와 상기 대상 화소의 직전의 화소가 동일한 값을 갖는 수를 런으로서 카운트하고, 상기 카운트된 런에 기초하여 부호화된 데이터를 출력하는 제2 부호화 수단; 및
    상기 제1 부호화 수단에 의한 부호화와 상기 제2 부호화 수단에 의한 부호화 간을 절환하는 스위칭 수단
    을 포함하고,
    상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 수단에 의해 부호화되는 경우에는, 상기 제1 부호화 수단은 상기 대상 화소의 직전의 화소를 포함하지 않는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하고, 상기 대상 화소의 직전의 화소의 값이 상기 제2 부호화 수단에 의해 부호화되지 않는 경우에는, 상기 대상 화소의 직전의 화소를 포함하는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 장치.
  11. 컴퓨터가 제9항에 정의된 단계들을 실행하게 하기 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독가능 저장 매체.
  12. 화소값을 부호화하는 화상 부호화 장치로서,
    부호화된 화소의 값을 이용하여 대상 화소의 값을 부호화하는 제1 부호화 유닛;
    상기 대상 화소와 상기 대상 화소의 직전의 화소가 동일한 값을 갖는 수를 런으로서 카운트하고, 상기 카운트된 런에 기초하여 부호화된 데이터를 출력하는 제2 부호화 유닛; 및
    상기 제1 부호화 유닛에 의한 부호화와 상기 제2 부호화 유닛에 의한 부호화 간을 절환하는 스위칭 유닛
    을 포함하고,
    상기 제2 부호화 유닛에 의한 부호화가 상기 제1 부호화 유닛에 의한 부호화로 절환한 직후에는, 상기 제1 부호화 유닛은 상기 대상 화소의 직전의 화소를 포함하지 않는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하고, 그 외의 경우에는, 상기 대상 화소의 직전의 화소를 포함하는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 장치.
  13. 화소값을 부호화하는 화상 부호화 방법으로서,
    부호화된 화소의 값을 이용하여 대상 화소의 값을 부호화하는 제1 부호화 단계;
    상기 대상 화소와 상기 대상 화소의 직전의 화소가 동일한 값을 갖는 수를 런으로서 카운트하고, 상기 카운트된 런에 기초하여 부호화된 데이터를 출력하는 제2 부호화 단계; 및
    상기 제1 부호화 단계에서의 부호화와 상기 제2 부호화 단계에서의 부호화 간을 절환하는 스위칭 단계
    를 포함하고,
    상기 제1 부호화 단계에서, 상기 제2 부호화 단계에서의 부호화가 상기 제1 부호화 단계에서의 부호화로 절환한 직후에는, 상기 대상 화소의 직전의 화소를 포함하지 않는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하고, 그 외의 경우에는, 상기 대상 화소의 직전의 화소를 포함하는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 방법.
  14. 화소값을 부호화하는 화상 부호화 장치로서,
    부호화된 화소의 값을 이용하여 대상 화소의 값을 부호화하는 제1 부호화 수단;
    상기 대상 화소와 상기 대상 화소의 직전의 화소가 동일한 값을 갖는 수를 런으로서 카운트하고, 상기 카운트된 런에 기초하여 부호화된 데이터를 출력하는 제2 부호화 수단; 및
    상기 제1 부호화 수단에 의한 부호화와 상기 제2 부호화 수단에 의한 부호화 간을 절환하는 스위칭 수단
    을 포함하며,
    상기 제2 부호화 수단에 의한 부호화가 상기 제1 부호화 수단에 의한 부호화로 절환한 직후에는, 상기 제1 부호화 수단은 상기 대상 화소의 직전의 화소를 포함하지 않는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하고, 그 외의 경우에는, 상기 대상 화소의 직전의 화소를 포함하는 부호화된 화소의 값을 이용하여 상기 대상 화소를 부호화하는 화상 부호화 장치.
  15. 컴퓨터가 제13항에 정의된 단계들을 실행하게 하기 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독가능 저장 매체.
KR20060045009A 2005-05-19 2006-05-19 화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체 KR100819992B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2005-00146984 2005-05-19
JP2005146984A JP4587175B2 (ja) 2005-05-19 2005-05-19 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体

Publications (2)

Publication Number Publication Date
KR20060120478A KR20060120478A (ko) 2006-11-27
KR100819992B1 true KR100819992B1 (ko) 2008-04-07

Family

ID=36952431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20060045009A KR100819992B1 (ko) 2005-05-19 2006-05-19 화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체

Country Status (5)

Country Link
US (1) US7689048B2 (ko)
EP (1) EP1725040B1 (ko)
JP (1) JP4587175B2 (ko)
KR (1) KR100819992B1 (ko)
CN (1) CN100484250C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150102746A (ko) * 2014-02-27 2015-09-07 삼성디스플레이 주식회사 반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650039B2 (en) 2005-03-03 2010-01-19 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus, control method therefor, computer program, and computer-readable storage medium
JP4732203B2 (ja) * 2006-03-17 2011-07-27 キヤノン株式会社 画像符号化装置及び復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
CN101438597B (zh) * 2006-05-17 2011-05-11 富士通株式会社 图像数据压缩装置、压缩方法、图像数据恢复装置、恢复方法
JP4795161B2 (ja) * 2006-08-08 2011-10-19 キヤノン株式会社 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
EP1978749B1 (en) * 2007-04-06 2017-08-30 Canon Kabushiki Kaisha Compression of multidimensional look-up tables for colour space conversion
JP4847398B2 (ja) * 2007-06-06 2011-12-28 キヤノン株式会社 画像処理装置およびその方法
JP4979655B2 (ja) * 2008-08-07 2012-07-18 キヤノン株式会社 画像符号化装置及びその制御方法
JP2010136181A (ja) * 2008-12-05 2010-06-17 Sony Corp 画像処理装置、画像処理方法およびプログラム
JP4748234B2 (ja) * 2009-03-05 2011-08-17 富士ゼロックス株式会社 画像処理装置および画像形成装置
JP5369982B2 (ja) * 2009-08-06 2013-12-18 株式会社リコー 画像処理装置および画像処理方法
US20110292247A1 (en) * 2010-05-27 2011-12-01 Sony Corporation Image compression method with random access capability
US8968080B1 (en) 2010-11-05 2015-03-03 Wms Gaming, Inc. Display of third party content on a wagering game machine
SG2013016456A (en) * 2013-01-11 2014-08-28 Brainwave Innovations Private Ltd Image compression and lossless reconstruction of digital image
JP2015023506A (ja) * 2013-07-22 2015-02-02 株式会社東芝 画像符号化装置及び画像復号化装置
CN109788290A (zh) * 2017-11-13 2019-05-21 慧荣科技股份有限公司 影像处理装置及利用帧内预测的无损影像压缩方法
CN108419080B (zh) * 2018-02-08 2020-10-13 武汉精测电子集团股份有限公司 一种jpegls上下文计算的流水线化优化方法及装置
CN110636308B (zh) * 2019-09-21 2022-05-10 苏州维赛智芯体育科技有限公司 一种基于改进型游程编码的线阵图像数据压缩方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR870011605A (ko) * 1986-05-12 1987-12-24 이반 밀러 레르너 화상과 오디오 신호의 기록 재생 방법과 장치 및 기록 캐리어
KR20010045132A (ko) * 1999-11-03 2001-06-05 구자홍 인트라 프레임 부호화 방법

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0651721A (ja) 1992-07-29 1994-02-25 Canon Inc 表示制御装置
US5650829A (en) * 1994-04-21 1997-07-22 Sanyo Electric Co., Ltd. Motion video coding systems with motion vector detection
JPH08130649A (ja) 1994-11-01 1996-05-21 Canon Inc データ処理装置
US6031938A (en) 1995-04-26 2000-02-29 Canon Kabushiki Kaisha Image encoding apparatus with selective Markov and predictive coding
US6101282A (en) 1995-06-22 2000-08-08 Canon Kabushiki Kaisha Apparatus and method for image data encoding
US6028963A (en) 1996-06-17 2000-02-22 Canon Kabushiki Kaisha Image encoding based on judgement on prediction error
DE69736661D1 (de) * 1997-01-31 2006-10-26 Victor Company Of Japan Vorrichtung zur Videocodierung und -decodierung mit Bewegungskompensation
JPH10336682A (ja) 1997-04-02 1998-12-18 Canon Inc 符号化装置及び方法及び方法を記憶した記憶媒体
JPH11234683A (ja) * 1998-02-12 1999-08-27 Fuji Xerox Co Ltd 画像符号化方法および装置
JPH11243491A (ja) * 1998-02-26 1999-09-07 Agency Of Ind Science & Technol 適応進化型画像圧縮符号化装置
JP2000069292A (ja) 1998-08-24 2000-03-03 Canon Inc 画像処理装置及び方法及び記憶媒体
JP3839974B2 (ja) 1998-10-06 2006-11-01 キヤノン株式会社 符号化装置
JP2000115782A (ja) 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法及び記憶媒体
JP2000115783A (ja) 1998-10-06 2000-04-21 Canon Inc 復号化装置及び方法
US6665444B1 (en) 1999-04-28 2003-12-16 Canon Kabushiki Kaisha Image processing apparatus and method, and storage medium
JP4365957B2 (ja) 1999-11-05 2009-11-18 キヤノン株式会社 画像処理方法及びその装置及び記憶媒体
JP4367880B2 (ja) 1999-12-09 2009-11-18 キヤノン株式会社 画像処理装置及びその方法並びに記憶媒体
JP2002281444A (ja) 2000-03-03 2002-09-27 Canon Inc 画像処理方法及び装置及び記憶媒体
JP4208378B2 (ja) 2000-03-10 2009-01-14 キヤノン株式会社 画像処理装置及び方法及び記録媒体
JP4480119B2 (ja) 2000-03-30 2010-06-16 キヤノン株式会社 画像処理装置及び画像処理方法
US6847735B2 (en) 2000-06-07 2005-01-25 Canon Kabushiki Kaisha Image processing system, image processing apparatus, image input apparatus, image output apparatus and method, and storage medium
JP4612782B2 (ja) 2000-09-27 2011-01-12 キヤノン株式会社 画像処理装置、及びその方法、並びにプログラム、記憶媒体
US7013050B2 (en) 2001-06-26 2006-03-14 Canon Kabushiki Kaisha Image encoding apparatus and method, program code, and storage medium
JP3984886B2 (ja) 2001-09-28 2007-10-03 キヤノン株式会社 データ変換装置、データ変換方法、コンピュータプログラム、記憶媒体
US7302105B2 (en) 2002-07-22 2007-11-27 Canon Kabushiki Kaisha Moving image coding apparatus, moving image decoding apparatus, and methods therefor
US7903734B2 (en) 2003-04-24 2011-03-08 Canon Kabushiki Kaisha Moving image decoding apparatus, moving image decoding method, image decoding method, and image decoding apparatus
US7177479B2 (en) * 2003-04-25 2007-02-13 Stmicroelectronics S.R.L. Loss-less compression of still images at enhanced speed
US7574063B2 (en) 2003-07-23 2009-08-11 Canon Kabushiki Kaisha Image coding method and apparatus
JP4702928B2 (ja) 2004-03-12 2011-06-15 キヤノン株式会社 動画像符号化装置及び復号装置及びその制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4418762B2 (ja) 2004-05-07 2010-02-24 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US20080089413A1 (en) 2004-06-28 2008-04-17 Canon Kabushiki Kaisha Moving Image Encoding Apparatus And Moving Image Encoding Method
US7529417B2 (en) 2004-07-09 2009-05-05 Canon Kabushiki Kaisha Apparatus, method and storage medium for image encoding/decoding using shape-based coefficient interpolation
JP4533043B2 (ja) 2004-08-25 2010-08-25 キヤノン株式会社 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7650039B2 (en) 2005-03-03 2010-01-19 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus, control method therefor, computer program, and computer-readable storage medium
JP4732203B2 (ja) 2006-03-17 2011-07-27 キヤノン株式会社 画像符号化装置及び復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR870011605A (ko) * 1986-05-12 1987-12-24 이반 밀러 레르너 화상과 오디오 신호의 기록 재생 방법과 장치 및 기록 캐리어
KR20010045132A (ko) * 1999-11-03 2001-06-05 구자홍 인트라 프레임 부호화 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150102746A (ko) * 2014-02-27 2015-09-07 삼성디스플레이 주식회사 반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템
KR102161746B1 (ko) 2014-02-27 2020-10-06 삼성디스플레이 주식회사 반복 길이 부호화된 스트림을 업데이트하기 위한 방법 및 시스템

Also Published As

Publication number Publication date
CN1867077A (zh) 2006-11-22
US20060262982A1 (en) 2006-11-23
JP4587175B2 (ja) 2010-11-24
US7689048B2 (en) 2010-03-30
CN100484250C (zh) 2009-04-29
KR20060120478A (ko) 2006-11-27
JP2006325006A (ja) 2006-11-30
EP1725040A2 (en) 2006-11-22
EP1725040B1 (en) 2016-08-03
EP1725040A3 (en) 2010-12-08

Similar Documents

Publication Publication Date Title
KR100819992B1 (ko) 화상 부호화 장치 및 방법, 및 컴퓨터 판독가능 저장 매체
CN105556971B (zh) 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105814889B (zh) Hevc中的改进的调色板模式
US7783119B2 (en) Image encoding apparatus, image decoding apparatus and control method therefor
JP4418762B2 (ja) 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
RU2645358C2 (ru) Способ и устройство для кодирования или декодирования блоков пиксела
US7650039B2 (en) Image encoding apparatus, image decoding apparatus, control method therefor, computer program, and computer-readable storage medium
CN105684441A (zh) 视频和图像编码中的基于散列的块匹配
JP2018137796A (ja) 適応パレットプレディクタを用いる、パレット符号化モードにおいて、動画コンテンツの符号化ユニットを符号化または復号する方法および装置
CN105393537A (zh) 用于基于散列的块匹配的散列表构建和可用性检查
TWI694712B (zh) 編解碼符號之熵編解碼方法與裝置
US10652541B2 (en) Method and device for encoding video data
US20160373688A1 (en) Non-transitory computer-readable storage medium, coded data generation method and coded data generation device
JP2019022129A (ja) 動画像符号化装置、動画像符号化方法、動画像復号装置、動画像復号方法、及び動画像符号化用コンピュータプログラムならびに動画像復号用コンピュータプログラム
JP2019022120A (ja) 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム
JP2017168879A (ja) 画像符号化装置、画像符号化方法、及び画像符号化プログラム
CN107277529B (zh) 图像解码装置、图像解码方法、接收装置
US10735733B2 (en) Method and device for encoding video data
JP4343863B2 (ja) 画像符号化装置及び画像復号装置、並びに、それらの制御方法
JP3847891B2 (ja) 符号化装置及び方法及び方法を記憶した記憶媒体
JP4343862B2 (ja) 画像符号化装置及び画像復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2010074444A (ja) 画像圧縮装置、画像圧縮方法、画像復号装置、画像復号方法、及び、コンピュータプログラム
JP4821712B2 (ja) 画像処理装置、画像符号化装置、画像復号化装置、および画像処理プログラム
JP5495113B2 (ja) 画像符号化装置、画像形成装置およびプログラム
JP2008109194A (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
FPAY Annual fee payment

Payment date: 20130221

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140226

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 11