KR20000077019A - 부호화 장치, 복호화 장치, 부호화 복호화 장치, 부호화방법 및 복호화 방법 - Google Patents

부호화 장치, 복호화 장치, 부호화 복호화 장치, 부호화방법 및 복호화 방법 Download PDF

Info

Publication number
KR20000077019A
KR20000077019A KR1020000018886A KR20000018886A KR20000077019A KR 20000077019 A KR20000077019 A KR 20000077019A KR 1020000018886 A KR1020000018886 A KR 1020000018886A KR 20000018886 A KR20000018886 A KR 20000018886A KR 20000077019 A KR20000077019 A KR 20000077019A
Authority
KR
South Korea
Prior art keywords
code
decoding
data
value
register
Prior art date
Application number
KR1020000018886A
Other languages
English (en)
Other versions
KR100327688B1 (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 KR20000077019A publication Critical patent/KR20000077019A/ko
Application granted granted Critical
Publication of KR100327688B1 publication Critical patent/KR100327688B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects

Abstract

자리 올림을 제어에 의해 부호를 확정시켜 소정 패턴으로의 치환에 의해 총 부호 길이와 부호 소거 시간을 단축한다.
정보원 데이터를 축적하는 데이터 메모리, 보조 패러미터를 기초로 지정되는 부호화 대상 데이터에 관한 학습 데이터를 축적하는 학습 메모리, 학습 데이터를 기초로 지정되는 부호화 패러미터를 출력하는 확률 추정 테이블, 부호화 대상 데이터와 부호화 패러미터를 기초로 산술 부호화를 행하여 부호를 출력하는 부호기를 구비하는 부호화 장치에 있어서, 정보원 데이터의 입력 처리기 또는 부호 출력마다 소정 간격을 계측하여 통지하는 동기 검출기, 소정 간격으로 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출기를 구비하며, 부호기는 자리 올림 검출기에 의해 지시된 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 유효 영역을 갱신한다.

Description

부호화 장치, 복호화 장치, 부호화 복호화 장치, 부호화 방법 및 복호화 방법{Encoding apparatus, decoding apparatus, encoding/decoding apparatus, encoding method and decoding method}
본 발명은 화상 혹은 데이터의 산술 부호화 및 산술 복호화에 관한 것으로 부호화 장치, 복호화 장치, 부호화 복호화 장치, 부호화 방법 및 복호화 방법에 관한 것이다.
도 39는 산술 부호화의 개념을 도시하는 설명도이다.
도 39에 있어서, 수직선 상의 전체 유효 영역을 우세 심벌(MPS)과 열세 심벌(LPS)에 대한 2개 부분 영역으로 분할하여, 출현한 심벌에 대응하는 부분 영역을 신규 유효 영역으로 갱신한다고 하는 순서로 부호화가 행해진다. 그러나, 영역 폭이 작아짐에 따라서 2진 소수(고정 소수점)로 나타낸 바와 같이 하계치, 상계치는 유효 자리수가 증가하며, 연산을 위한 레지스터 정밀도도 필요해진다.
여기서, 유효 자리수가 증가해도 상위 자리수는 거의 변화가 없는 것에 주목하여, 도 40에 도시하는 바와 같이, 소수부를 항상 영역 분할의 정밀도(도면에서는 3자리수)로 유지하여, 상위 자리수를 정수부로 소거하기 위해 정규화 처리를 행한다.
도 40에서는, 정규화 처리에서 2의 누승배로 확대함으로써, 유효 영역 폭(A)을 1/2에 해당하는 4이상, 1에 해당하는 8이하(8은 초기치만)로 하고, 하계치(부호)(C)로 하면 유효 영역은 C이상 C+A미만으로 나타낼 수 있다.
(제 1 종래예에 대해서)
제 1 종래예의 산술 부호화의 부호기(Encoder)·복호기(Decoder)는 ITU-T의 국제 표준 권고 T.82에 기재되는 테이블 및 처리를 설명하는 플로 챠트에 의해 실현할 수 있다. 이하, 이 산술 부호화를 QM-Coder, 그 부호기를 부호부(1A), 그 복호기를 복호부(16A)라 부르는 것으로 하여, 그 부호기와 복호기의 개략 구성을 도 41, 도 42에 도시한다.
도 41에 있어서, 부호부(1A)의 입력은 2개 있는데, 제 1 입력은 콘텍스트(CX)(콘텍스트)(2)이며, 제 2 입력은 부호화하는 화소(PIX)(Pixel)(3)이다. 출력은 부호(Code)(4A)이다. 또, 도 42에 있어서, 복호부(16A)의 입력은 2개 있는데, 제 1 입력은 콘텍스트(CX2)이며, 제 2 입력은 부호(4A)이다. 출력은 복호된 화소(PIX3)이다.
데이터 메모리(5)는 화상(Image)(6)을 축적하여, 부호화 또는 복호화 대상이 되는 화소에 대해 공통으로 참조할 수 있는 근접한 곳의 이미 부호화/복호화가 끝난 화소 중에서, 참조 위치를 모델 템플레이트(Model Template)로 지정되는 10화소의 참조 패턴인 콘텍스트(10비트. 총수 1024)(CX2)를 생성한다. 또, 부호화 시는 동시에 부호화 대상 화소를 출력하고, 복호화 시는 복호된 복호 대상 화소를 축적한다.
QM-Coder에는 콘텍스트(CX2)를 생성하기 위한 도 43에 도시되는 2라인 및 3라인의 표준 모델 템플레이트 중 어느 하나를 선택하여, 규정 헤더 정보에 의해 부호기로부터 복호기로 통지한다.
QM-Coder에서는, 부호화/복호화 대상 화소에 대한 각 콘텍스트마다에 화소치의 예측 일치 확률을 추정하여, 그 변동에 따라 학습하면서 부호화/복호화를 진행시킨다. 학습은 콘텍스트를 인덱스로 하는 2개의 변수 테이블로 구성되는 학습 메모리를 치환함으로써 행해진다. 하나는 출현할 확률이 높은 화소치(MPS)(More Probable Symbol:우세 심벌)를 예측치로서 기억하는 각 1비트의 MPS 테이블(7)이다(예측 일치 확률이 낮은 화소치는 LPS[Less Probable Symbol:열세 심벌]라 한다). 다른 하나는 예측치의 예측 일치 확률의 정도를 총계 113 상태(State)로 분류한 상태 번호(0 내지 112)를 기억하는 각 7비트의 ST 테이블(8)이다. 초기치는 MPS 테이블(7), ST 테이블(8) 모두 0이다.
변수 테이블 외에, 부호화/복호 시에 상태 번호(스테이트)를 인덱스로서 참조하는 4개의 정수 테이블로 구성되는 확률 추정 테이블(Probability Estimation Table)이 존재한다.
LPS 영역 폭을 16비트로 나타내는 LSZ 테이블(9), MPS 천이선을 7비트로 나타내는 NMPS 테이블(10), LPS 천이선을 7비트로 나타내는 NLPS 테이블(11), 예측치 반전 판정을 1비트로 나타내는 SWTCH 테이블(12)이다. 그 설정치를 도 44에 도시한다(여기서 도시한 영자 변수·정수 테이블명은 후술하는 처리를 설명하는 플로 챠트에서 사용하는 배열명으로 한다).
LSZ 테이블(9)은 산술 부호기(13A)/산술 복호기(17A) 내의 연산부에서 참조되어, 적응 예측 학습에는 직접적으로는 관계하지 않는다. 산술 부호기(13A)/산술 복호기(17A) 내부에서는 LSZ치를 사용하여 연산이 행해지며, 연산 정밀도가 저하했을 때에는 정규화 처리(Renormalization)를 행한다. 이 정규화 처리가 행해질 때, 동시에 학습이 지시된다.
부호화 시, 화소 심벌 변환기(15)는 콘텍스트(CX2)를 인덱스로 하여 MPS 테이블(7)로부터 출력된 MPS치와 화소(PIX3)의 일치/불일치를 판정하여, 2치 심벌(14)을 산술 부호기(13A), 학습 메모리(MPS 테이블(7), ST 테이블(8))로 출력하고, 학습 지시에 의해 학습을 행한다.
또, 복호 시, 심벌 화소 변환기(18)는 산술 복호기(17A)에서 복호된 2치 심벌(14)로부터 콘텍스트(CX2)를 인덱스로 하여 MPS 테이블(7)로부터 출력된 MPS치와 복호해야 할 화소(PIX3)의 일치/불일치를 판정하여 일치이면 MPS치, 불일치이면 LPS치(=1-MPS)를 화소(PIX3)치로서 복호한다. 복호된 2치 심벌(14)은 학습 메모리(MPS 테이블(7), ST 테이블(8))로 출력하여, 학습 지시에 의해 학습을 행한다.
학습이 지시되었을 때, 부호화/복호 대상의 2치 심벌(14)이 우세 심벌이면 NMPS 테이블치(10)를, 열세 심벌이면 NLPS 테이블치(11)를 ST 테이블(8)에 기록, 상태 천이가 실현된다. 또, 열세 심벌에 의한 학습에서는, 그 예측 일치 확률이 1/2이면 MPS 테이블치를 반전(연산 「1-MPS」)시켜 MPS 테이블에 기록한다. 그 일치 확률이 1/2일지는 SWTCH치를 플래그로 하여 판정된다.
산술 부호기(13A)는 LSZ치(9)와 2치 심벌(14)의 입력으로부터, 부호(영역 하계치)를 나타내는 C레지스터(30A)와 영역 폭을 나타내는 A레지스터(31)로 부호화 연산이 진행시켜지며, CT 카운터(50)에서 바이트 단위의 부호 출력 타이밍을 계산하여, BUFFER(51)와 SC 카운터에서 자리 올림의 전파 가능성이 있는 미확정 부호 출력 대기라 확정된 부호 출력을 행하여, 부호(4A)를 출력한다.
또, 산술 복호기(17A)는 LSZ치(9)와 부호(4A) 입력으로부터, CT 카운터(50)에서 바이트 단위의 부호 입력 타이밍을 계산하여, BUFFER(51)를 개재시켜 영역 하계치로부터 부호(4A)까지의 변위를 나타내는 C레지스터(30B)와, 영역 폭을 나타내는 A레지스터(31)로 복호 연산이 진행시켜져, 2치 심벌(14)을 출력한다.
도 41과 도 42에 도시되는 구성 블록 내 및 블록 사이의 상세한 처리 동작은 후술하는 처리를 설명하는 플로를 도시하는 도 46 내지 도 62에서 설명한다.
부호화 처리를 설명하는 플로 및 복호 처리를 설명하는 플로를 설명하기 전에, 부호화 레지스터(C레지스터)(30A), 복호 레지스터(C레지스터)(30B) 및 영역 폭레지스터(A레지스터)(31)의 비트 배치를 도 45에 도시한다.
부호화 레지스터(C)(30A)에 있어서, bit(15)와 bit(16) 사이에 소수점을 설정하여, "x"(16비트)는 LSZ(9)에 대한 연산부(Cx32)로, 캐리가 있을 경우는 보다 상위로 전송 운반한다. "s"(3비트)는 스페이서 비트부(Cs33), "b"(8비트)는 바이트 출력부(Cb34), "c"(1비트)는 자리 올림 판정부(Cc35)이다. 부호화 과정에 있어서, C레지스터치는 부호(4)로서 부호화한 심벌에 대응시킨 영역의 하계치가 되도록 갱신된다.
복호 레지스터(C)(30B)에 있어서, 하위 워드(CLOW)(36)와 상위 워드(CHIGH)(38)는 32비트의 레지스터로서 실현할 수 있으며, MSB인 bit(31)의 상위에 소수점을 설정하며, "b"(8비트)는 바이트 입력부(CLOW 레지스터(36))의 상위 바이트(Cb37), "x"(16비트)는 LSZ(9)에 대한 연산부(Cx)(CHIGH 레지스터(38))(39)이다. 복호 과정에 있어서, C레지스터치는 복호한 심벌에 대응시킨 영역의 하계치로부터 그 영역 내의 좌표인 부호(4)로의 오프셋치가 되도록 갱신된다.
영역 폭 레지스터(A)(31)는 부호화/복호에서 공통으로 하며, 부호화/복호 레지스터(30A, 30B)의 소수점에 대응하여, "x"레지스터부에 합쳐 "a"(16비트)가 소수부로서 배치되며, 초기 상태 값에서만 정수부(bit16)가 "1"이 된다. 영역 폭(영역 사이즈라고도 한다)은 A-LSZ(아래쪽 영역 폭) 또는 LSZ(위쪽 영역 폭)로 갱신되고, 초기치(정수부="1")를 제외하고 1/2의 무게를 나타내는 bit15가 "1"이 되도록 정규화되어, 1/2 이상으로 유지함으로써, 위쪽 영역 폭으로 하여 어떠한 LSZ(9)를 선택해도 아래쪽 영역 확보를 보증한다. 정규화 처리에서는, A레지스터(31), C레지스터(30A 또는 30B)를 동시에 시프트 처리에 의해 확대한다.
QM-Coder에서는, 상태에 대해 고정 사이즈가 되는 위쪽 영역(LSZ9)은 통상 열세 심벌에 할당되지만, 아래쪽 영역이 위쪽 영역보다 작아질 때에는 우세 심벌에 할당하는 「조건 첨부 MPS/LPS 교환」을 행하고 있다. 열세 심벌을 부호화/복호했을 때 및 조건 첨부 MPS/LPS 교환을 적용하여 우세 심벌을 부호화/복호했을 때에는 정규화 처리가 반드시 행해진다.
이 레지스터의 비트 배치를 기초로 부호화 처리를 설명하는 플로, 복호 처리를 설명하는 플로를 설명한다. 처리를 설명하는 플로 중의 용어 「레이어」는 계층적 부호화인 경우의 「(해상도)층」, 「스트라이프」는 화상을 N라인 단위(최종 스트라이프만 N라인 이하, 또, N=1이라도 상관없다)로 구분한 「좁고 긴 형상」을 의미한다. 여기서는, 레이어수=1, 스트라이프=라인(N=1)로 하여 설명하지만, 복수 레이어의 부호화/복호로의 확장을 방해하는 것은 아니다.
부호화/복호 처리를 설명하는 플로를 설명하기 위해 도 41, 도 42, 도 45에서 설명한 변수, 테이블, 레지스터 외에 다음 보조 변수 CT(50), BUFFER(51), SC(52), TEMP(53)를 사용한다. CT(50)는 정규화 처리에 의한 C레지스터(30A, 30B) 및 A레지스터(31)의 시프트수를 계수하여, 값이 0이 되었을 때 다음 부호 바이트 입출력을 행하기 위한 보조 변수이다. BUFFER(51)는 부호화 시 C레지스터(30A)로부터 출력된 부호 바이트치, 복호 시 C레지스터(30B)로 입력되는 부호 바이트치를 격납하는 보조 변수이다. SC(52)는 부호화만으로 사용되며, C레지스터(30A)로부터 출력된 부호 바이트치가 0xFF일 때 그 연속수를 계수하는 보조 변수이다.
또한, 본 명세서에 있어서 "0x"로 시작되는 수치는 16진수를 나타내는 것으로 한다. TEMP(53)는 부호화만으로 사용되며, BUFFER(51)로의 자리 올림을 검출하여, 자리 올림 처리 후는 그 하위 8비트를 새로운 BUFFER치(51)로 하기 위한 보조 변수이다. C레지스터(30A)로부터 TEMP(53)를 개재시켜 설정되는 BUFFER(51)는 자리 올림 처리를 행하지 않고서 0xFF가 되지 않으며, 그 시점에서 BUFFER(51)로부터 하위, 즉 BUFFER(51), SC(52)개의 0xFF는 C레지스터(30A)보다 상위로의 자리 올림이 있으면 변경될 가능성이 있기 때문에 C레지스터(30A)로부터 출력되어 있어도 부호(4)로서 확정되어 있지 않다.
도 46은 부호화 처리의 전체 흐름을 도시하는 ENCODER 처리를 설명하는 플로 챠트이다.
국제 표준 권고 T.82의 본 처리를 설명하는 플로 챠트에 있는 TP(Typical Prediction) 및 DP(Deterministic Prediction)에 관한 처리는 직접적인 관계가 없기 때문에 생략한다. 우선, S101에서는 INITENC 처리를 호출, 부호화 처리의 초기화를 행한다. S102에서는 화소(PIX3)와 콘텍스트(CX2) 쌍을 1개씩 판독하고, S103에서는 ENCODE 처리에 의해 부호화를 행한다. S104에서는 스트라이프(여기서는 라인)가 종료할 때까지 S102 및 S103을 반복하며, 더욱이 S105에서는 화상이 종료할 때까지 S102로부터 S104까지 스트라이프의 부호화를 반복한다. S106에서 FLUSH 처리를 호출하여 부호화 처리의 후 처리를 행한다.
도 47은 부호화 대상 화소치(3)와 예측치(7)의 일치·불일치로부터 호출하는 처리를 전환하는 ENCODE 처리를 설명하는 플로 챠트이다.
S111에서는 화소치(3)와 예측치(7)의 일치·불일치를 판정하여, 일치이면 우세 심벌, 불일치이면 열세 심벌을 부호화한다. S113에서는 CODEMPS 처리를 호출하여 우세 심벌을, S112에서는 CODELPS 처리를 호출하여 열세 심벌을 부호화한다.
도 48은 부호화 대상 화소치(3)와 예측치(7)가 불일치 시, 즉 열세 심벌을 부호화할 때에 호출되는 CODELPS 처리를 설명하는 플로 챠트이다.
우선, S121에서는 일시적으로 A레지스터(31) 값은 아래쪽 영역 폭으로 갱신된다. S122의 판정이 Yes이면, 조건 첨부 MPS/LPS 교환이 적용되어, 아래쪽 영역을 부호화하기 때문에 A레지스터(31)는 그대로 하고, C레지스터(30A)는 갱신하지 않는다. S122의 판정이 No이면, 위쪽 영역을 부호화하고, S123에서 영역 하계치인 C레지스터(30A), S124에서 영역 폭인 A레지스터(31)를 갱신한다. S125의 판정으로 정수 SWTCH치(12)가 1이면, S126에서 예측치(MPS 테이블)의 반전·갱신을 행한다. LPS 부호화에서는, S127에서 NLPS 테이블(11) 참조에 의한 상태 천이를 행하고, S128에서 RENORME 처리를 호출하여 정규화 처리를 행한다.
도 49는 부호화 대상 화소치(3)와 예측치(7)가 일치 시, 즉 우세 심벌을 부호화할 때에 호출되는 CODEMPS 처리를 설명하는 플로 챠트이다.
우선, S131에서는 일시적으로 A레지스터(31)치는 아래쪽 영역 폭으로 갱신된다. S132의 판정이 No이면 그대로 CODEMPS 처리를 종료한다. S132의 판정이 Yes이면, 반드시 S136에서 NMPS 테이블(10) 참조에 의한 상태 천이를 행하고, S137에서 RENORME 처리를 호출하여 정규화 처리를 행한다. S136 및 S137 전에, S133의 판정이 Yes이면, 아래쪽 영역을 부호화하기 위해 A레지스터(31)는 그대로 하며, C레지스터(30A)는 갱신하지 않는다. S133의 판정이 No이면, 조건 첨부 MPS/LPS 교환이 적용되며, 위쪽 영역을 부호화하여, S134에서 C레지스터(30A), S135에서 A레지스터(31)를 갱신한다.
도 50은 정규화 처리를 행하는 RENORME 처리를 설명하는 플로 챠트이다.
S141에서는 A레지스터(31), S142에서는 C레지스터(30A)를 1비트 상위로 시프트함으로써 2배의 승산과 등가 연산을 행한다. S143에서 변수 CT(50)로부터 1을 빼고, S144에서 변수 CT(50)치가 0인지의 여부를 판정하여, 판정이 Yes이면 S145에서 BYTEOUT 처리를 호출하여 C레지스터(30A)로부터 1바이트 부호(4)를 출력한다. S146의 판정은 정규화 처리의 종료 판정을 행하고 있으며, A레지스터(31)가 0x8000 미만이면 S141로부터 S145를 반복하여, 0x8000 이상이 되면 종료한다.
도 51은 C레지스터(30A)로부터 1바이트씩 부호(4)를 출력시키는 BYTEOUT 처리를 설명하는 플로 챠트이다.
출력할 바이트는 부호화 레지스터 C(30A)의 바이트 출력부 Cb(34)이다. 자리 올림을 판정하기 위한 자리 올림 판정부 Cc(35)도 동시에 처리한다. S151에서 Cb레지스터(34) 및 Cc레지스터(35)의 계 9비트를 변수 TEMP(53)에 설정한다. S152에서 자리 올림이 있을 경우(TEMP≥0x100; Cc=1), 자리 올림이 없을 경우에는 S159에서 0xFF일 경우, 0xFF 미만일 경우로 나누어 바이트 출력을 처리한다. S152의 판정이 Yes일 경우, 이미 C레지스터(30A)로부터 출력이 끝난 변수 BUFFER(51)치에 S153에서 자리 올림의 1을 더한 값, S154에서 변수치 SC(52)개의 바이트치(0)(축적하고 있던 0xFF가 자리 올림의 전송 운반에 의해 0x00가 되었다)의 합계 SC+1바이트가 자리 올림을 전송 운반된 부호치로서 확정한다.
S155에서 변수 SC(52)를 0으로 하여, S156에서 변수 BUFFER(51)에 변수 TEMP의 하위 8비트를 설정한다. S157에서 변수 TEMP(53)로서 처리한 Cc 레지스터(35), Cb 레지스터(34)를 클리어하여, S158에서 다음 출력까지 8비트를 처리하기 위해 변수 CT(50)에 8을 설정한다. S159의 판정이 Yes일 경우는 부호(4)는 확정할 수 없으며, 변수치 SC(52)에 1을 더하여 0xFF를 축적한다. S159의 판정이 No일 경우는 이미 C레지스터(30A)로부터 출력이 끝난 부호(4)를 S153에서 BUFFER(51)치, S154에서 변수치 SC 52개의 바이트치(0xFF)의 합계 SC+1바이트가 부호치로서 확정한다. S163에서 변수 SC(52)를 0으로 하고, S164에서 변수 BUFFER(51)에 변수 TEMP(53)(자리 올림이 없기 때문에 그대로 8비트)를 설정한다.
도 52는 부호화 개시 시의 ST 테이블(8), MPS 테이블(7) 및 각 변수의 초기치를 설정하는 INITENC 처리를 설명하는 플로 챠트이다.
S171의 「이 레이어의 제 1 스트라이프」는 레이어 및 스트라이프의 개념을 가지지 않을 경우 「화상의 부호화 개시 시점」을 의미하여, 복수의 스트라이프로 구성되는 화상에서는 변수 테이블을 스트라이프마다 초기화하지 않고서 처리를 계속할 수도 있다. S171에서는, 이 레이어 화소의 제 1 스트라이프 또는 테이블을 강제 리셋할지를 판정한다.
S171의 판정이 Yes이면, S172에서 모든 콘텍스트(CX2)에 대해 변수 테이블 ST(8), MPS(7)를 초기화한다. S173은 SC(52)를, S174는 A레지스터(31)치를, S175는 C레지스터(30A)를, S176은 변수 CT(50)를 초기화한다. 변수 CT(50)의 초기치(11)는 Cb레지스터(34)의 비트수와 Cs레지스터(33)의 비트수 합으로, 11비트 처리했을 때 최초의 부호 출력을 행하게 된다. S171의 판정이 No일 경우는 S177에서는 변수 테이블의 초기화를 행하지 않고, 동일한 레이어 직전의 스트라이프 종단의 테이블치를 재설정한다.
도 53은 부호화 종료 시에 부호화 레지스터(30A)에 남은 값을 소거하는 처리를 포함한 후 처리를 행하는 FLUSH 처리를 설명하는 플로 챠트이다.
S181에서 CLEARBITS 처리를 호출하여 C레지스터(30A)에 남은 부호의 유효 자리수를 최소로 한다. S182는 FINALWRITES 처리를 호출하여 변수 BUFFER(51), SC(52) 및 C레지스터(30A)의 미확정 부호(4)를 확정하여 최종적으로 출력한다. S183에서 부호(4)의 제 1 바이트는 변수 BUFFER(51)가 C레지스터(30A)치의 출력에 앞서(정수부로서) 출력되기 때문에 제거한다. S184에서 부호(4)는 최종 유효 영역 내의 소수 좌표이기 때문에, 필요하면 종단에 연속하는 바이트(0x00)는 제거한다.
도 54는 부호화 종료 시의 부호(4)의 유효 자리수를 최소로 하기 위한 처리를 행하는 CLEARBITS 처리를 설명하는 플로 챠트이다.
이로써, 부호(4)는 종단에 가능한 한 0x00가 연속하는 값이 된다. S191은 변수 TEMP(53)로서 최종 유효 영역 상계치의 하위 2바이트(Cx 레지스터(32))를 클리어한 값을 설정하고 있다. S192에서는 상계치의 하위 2바이트가 클리어한 값과 C레지스터(30A)치와의 대소를 비교한다. S192의 판정이 Yes이면, S193에서 변수치 TEMP(53)에 지나치게 클리어한 만큼을 되돌려 C레지스터(30A)치로 한다. S192의 판정이 No이면, 변수치 TEMP(53)를 C레지스터(30A)치로 한다.
도 55는 부호화 종료 시점에서 확정된 부호를 C레지스터(30A)에 남은 값까지 기록하는 FINALWRITES 처리를 설명하는 플로 챠트이다.
S201에서 C레지스터를 변수치 CT(50)로 나타나는 비트수만 시프트하여 부호 출력 및 자리 올림 판정을 가능하게 한다. S202에서 자리 올림의 유무를 판정한다. S202의 판정이 Yes이면 자리 올림이 있고, No이면 자리 올림은 없다. BYTEOUT 처리를 설명하는 플로와 마찬가지로 S203, S204에서 자리 올림이 있는 부호치, S207, S208에서 자리 올림이 없는 부호치로 하는 C레지스터로부터 출력이 끝난 SC+1바이트의 부호(4)를 확정한다. S205에서 Cb레지스터치(1바이트), S206에서 그 하위 1바이트를 출력하여 부호 출력이 완료한다.
도 56은 복호 처리의 전체 흐름을 도시하는 DECODER 처리를 설명하는 플로 챠트이다.
국제 표준 권고 T.82의 본 처리를 설명하는 플로 챠트에 있는 TP 및 DP에 관한 처리는 본 발명 및 종래예(제 1 종래예 및 제 2 종래예)와는 관계가 없기 때문에 생략한다. 우선, S211에서는 INITDEC 처리를 호출, 복호 처리의 초기화를 행한다. S212에서는 콘텍스트(CX2)를 1개씩 판독하여, S213에서는 DECODE 처리에 의해 화소(PIX3)의 복호를 행한다. S214에서는 스트라이프(여기서는 라인)가 종료할 때까지 S112 및 S113을 반복하며, 더욱이 S215에서는 화상이 종료할 때까지 S212로부터 S214까지 스트라이프 복호를 반복한다.
도 57은 복호 대상 화소를 복호하는 DECODE 처리를 설명하는 플로 챠트이다.
우선, S221에서 일시적으로 A레지스터(31)치는 아래쪽 영역 폭으로 갱신된다. S222의 판정이 Yes이면, 아래쪽 영역을 복호한다. S223의 판정이 Yes이면, S224에서 MPS_EXCHANGE 처리를 호출하고, S225에서 RENORMD 처리를 호출하여 정규화 처리를 행한다. S223의 판정이 No이면, 정규화 처리하지 않고 우세 심벌을 복호하여, 예측치(7)를 화소치(3)로 한다. 또, S222의 판정이 No이면, 위쪽 영역을 복호한다. S227에서 LPS_EXCHANGE 처리를 호출하고, S228에서 RENORMD 처리를 호출하여 정규화 처리를 행한다. MPS-EXCHANGE 처리, LPS_EXCHANGE 처리를 호출하는 패스에서는, 각각 복호해야 할 영역은 정해져 있어도 영역의 대소를 비교하지 않으면 복호 대상 심벌이 우세 심벌인지 열세 심벌인지 판단할 수 없다. 호출한 처리를 설명하는 플로 챠트로 각각 복호되는 화소치(3)를 결정한다.
도 58은 위쪽 영역을 복호하는 LPS_EXCHANGE 처리를 설명하는 플로 챠트이다. S231의 판정이 Yes이면 우세 심벌을 복호한다. S232에서 C레지스터(30B)를 S233에서 A레지스터(31)를 갱신한다. S234에서는 예측치(7)를 그대로 화소치(3)로 한다. S235에서 NMPS 테이블(10) 참조에 의한 상태 천이를 행한다. 또, S231의 판정이 No이면 열세 심벌을 복호한다. S236에서 C레지스터(30B)를, S237에서 A레지스터(31)를 갱신한다. S238에서는 비예측치 「1-예측치」를 화소치(3)로 한다. S239의 판정이 Yes이면, S240에서 예측치(MPS 테이블)(7)의 반전·갱신을 행한다. S241에서 NLPS 테이블(11) 참조에 의한 상태 천이를 행한다.
도 59는 아래쪽 영역을 복호하는 MPS_EXCHANGE 처리를 설명하는 플로 챠트이다. S251의 판정이 Yes이면 열세 심벌을 복호한다. S252에서는 비예측치를 화소치(3)로 한다. S253의 판정이 Yes이면, S254에서 예측치(MPS 테이블)(7)의 반전·갱신을 행한다. S255에서 NLPS 테이블(11) 참조에 의한 상태 천이를 행한다. 또, S251의 판정이 No이면 우세 심벌을 복호한다. S256에서는 예측치(7)를 그대로 화소치(3)로 한다. S257에서 NMPS 테이블(10) 참조에 의한 상태 천이를 행한다.
도 60은 정규화 처리를 행하는 RENORMD 처리를 설명하는 플로 챠트이다.
S261에서 변수 CT(50)가 0인지의 여부를 판정하여, 판정이 Yes이면 S262에서 BYTEIN 처리를 호출하여 C레지스터(30B)에 1바이트 부호(4)를 입력한다. S263에서는 A레지스터(31), S264에서는 C레지스터(30B)를 1비트 상위로 시프트함으로써 2배의 승산과 등가 연산을 행한다. S265에서 변수 CT(50)로부터 1을 뺀다. S266의 판정은 정규화 처리의 종료 판정을 행하고 있으며, A레지스터(31)가 0x8000 미만이면 S261에서 S265를 반복한다. S267에서 변수 CT(50)치가 0인지의 여부를 판정하여, 판정이 Yes이면 S268에서 BYTEIN 처리를 호출하여 C레지스터(30B)에 1바이트 부호를 입력한다.
도 61은 C레지스터(30B)에 부호(4)를 1바이트씩 판독하는 BYTEIN 처리를 설명하는 플로 챠트이다.
SCD(Stripe Coded Data)는 스트라이프에 대한 부호(4)이다. S271에서 판정이 Yes인 경우, 판독하는 부호(4)가 없기 때문에 변수 BUFFER(51)는 0으로 한다. S273에서 변수 BUFFER(51)를 CLOW 레지스터(36)(Cb(37))에 판독하여, S274에서 다음 입력까지 8비트를 처리하기 때문에 변수 CT(50)에 8을 설정한다. 또, 판정이 No인 경우, 1바이트 부호(4)를 변수 BUFFER(51)에 판독한다.
도 62는 복호 개시 시의 ST 테이블(8), MPS 테이블(7) 및 각 변수의 초기치를 설정하는 INITDEC 처리를 설명하는 플로 챠트이다.
테이블의 초기치 설정에 관한 S281, S282, S290에 대해서는, 부호화 처리의 INITENC 처리를 설명하는 플로 챠트의 S171, S172, S177과 동일하다. C레지스터(30B)의 초기치는 Cx레지스터(39) 및 Cb레지스터(37)에 부호(4)를 3바이트 판독함으로써 설정된다. S283에서 C레지스터(30B)를 클리어하고, S284에서 BYTEIN 처리를 호출하여 부호(4)를 Cb레지스터(37)에 1바이트 판독한다. S285에서 C레지스터(30B)를 8비트 시프트하고, S286에서 BYTEIN 처리를 호출하여 부호(4)를 Cb레지스터(37)에 1바이트 판독한다. S287에서 C레지스터(30B)를 8비트 시프트하고, S288에서 BYTEIN 처리를 호출하여 부호(4)를 Cb레지스터(37)에 1바이트 판독한다. 이것으로, 합계 3바이트의 부호(4)를 Cx레지스터(39) 및 Cb레지스터(37)에 설정하게 된다. S289에서는 A레지스터(31)의 초기치를 설정한다.
(제 2 종래 예에 대해서)
다음에 제 2 종래예에 대해서 설명한다.
제 2 종래예에 의한 산술 부호화의 부호기·복호기는 일본국 특허 제 2755091호에 기재되는 테이블 및 처리를 설명하는 플로 챠트에 의해 실현되는 것이다.
여기서, 부호를 바이트 단위로 출력하는 산술 부호화에서는, 그 출력 바이트치가 0xFF가 될 때, 나중에 자리 올림이 발생하면 출력이 끝난 보다 상위까지 전파할 가능성이 있기 때문에 부호치를 확정할 수 없다. 그래서, 출력 바이트치가 0xFF가 되는 시점에서 유효 영역에 자리 올림 가능성이 있으면 강제적으로 자리 올림 유무를 확정시켜 버리는 것을 생각한다.
도 63에 강제적으로 자리 올림 유무를 확정시키는 개념도를 도시한다.
도면에 있어서, 하계치(C)는 부호 레지스터(C레지스터)치(30A)로, 상계치 U(60)는 하계치 C(30A)에 유효 영역 폭 A(A레지스터치)(31)를 더한 값이 된다. 하계치 및 상계치의 최상위 비트가 일치하지 않을 경우에 자리 올림이 있다고 판정되어, 그 때 유효 영역 내에 자리 올림 경계치(T61)가 존재하게 된다.
따라서, 유효 영역이 자리 올림 경계에 의해 분할되는 2개의 부분 영역에서, 자리 올림이 있는 영역을 자리 올림 영역, 자리 올림이 없는 영역을 비자리 올림 영역이라 부르는 것으로 하면, 자리 올림 영역 폭 R162는 (U-T), 비자리 올림 영역 폭 R063은 (T-C)라 나타난다. 자리 올림의 유무를 확정하는 데에는, 유효 영역이 자리 올림 영역 또는 비자리 올림 영역에 완전히 일치할지, 또는 포함되면 좋게 되며, 여기서는 강제적으로 유효 영역을 그 부분 영역의 한쪽을 절사, 다른쪽을 새로운 유효 영역으로서 수정한다. 영역 절사에 있어서, 보다 작은 영역을 절사한 쪽이 부호 길이의 로스를 적게 할 수 있기 때문에, 도면 중에서는, 보다 작은 RO63의 부분 영역을 절사하고 있다. 부분 영역을 절사함으로써, 수정된 유효 영역에 대한 정규화 처리의 필요성을 두 번 판정할 필요가 있다. 이러한 산술 부호화의 자리 올림 제어 방법을 적응 영역 절사 방식이라 부르는 것으로 한다.
적응 영역 절사 방식을 적용한 산술 부호화의 부호부(1B), 복호부(16B)의 개략 구성을 도 64, 도 65에 도시한다.
도 64에서는, 산술 부호기(13B), 부호(4B) 치환에 따르는 부호화부(1B)가 제 1 종래예의 도 41에 대응하여 구성된다. 도 65에서는, 산술 복호기(17B), 부호(4B) 치환에 따르는 복호부(16B)가 제 1 종래예의 도 42에 대해 다르다. 이들을 치환한 블록 사이의 데이터의 흐름, 또 학습 방법은 종래 형태인 도 41과 도 42와 동일하게 한다.
산술 부호기(13B)는 LSZ치(9)와 2치 심벌(14) 입력으로부터, C레지스터(30A)와 A레지스터(31)로 부호화 연산이 진행시켜지며, CT 카운터(50)에서 바이트 단위의 부호 출력 타이밍을 계산하여, 부호 출력 시에 동기하여 영역 내에 자리 올림 경계의 유무를 U레지스터(60), T레지스터(61), R1레지스터(62), R0레지스터(63)로부터 판정하여, 자리 올림 경계가 있으면 적응 영역 절사 방식을 적용하여 C레지스터(30A), A레지스터(31)를 수정하여 자리 올림의 유무를 강제 확정하고, 최대 BUFFER(51)까지의 자리 올림 전파를 행하여 확정된 부호 출력을 행하여, 부호(4B)를 출력한다.
또, 산술 복호기(17B)는 LSZ치(9)와 부호(4B) 입력으로부터, CT 카운터(50)에서 바이트 단위의 부호 입력 타이밍을 계산하고, 부호 입력 시에 동기하여 영역 내에 자리 올림 경계의 유무를 산술 부호기(13B)의 부호 레지스터(30A)를 재현한 D레지스터(64), U레지스터(60), T레지스터(61), R1레지스터(62), R0레지스터(63)로부터 판정하여, 자리 올림 경계가 있으면 적응 영역 절사 방식을 적용하여 C레지스터(30A), D레지스터(64), A레지스터(31)를 수정하고, BUFFER(51)를 개재시켜, C레지스터(30B)와, A레지스터(31), D레지스터(64)로 복호 연산이 진행시켜져, 2치 심벌(14)을 출력한다.
도 64와 도 65에 도시되는 구성 블록 내 및 블록 사이의 상세한 처리 동작은 설명이 끝난 제 1 종래예의 처리를 설명하는 플로 챠트인 도 46으로부터 도 49, 도 53, 도 54, 도 56, 도 57, 도 59와 후술하는 처리를 설명하는 플로도의 도 67로부터 도 76에서 설명한다.
도 66에 적응 영역 절사 방식의 부호 레지스터를 도시한다.
상기 제 1 종래예에 관련되는 도 45에 도시한 부호 레지스터와 비교하여 Cs레지스터(33)가 삭제되어 있다. 이것은 부호기의 바이트 출력과 복호기의 바이트입력 동기를 얻기 위함으로, 적응 영역 절사 처리의 적용도 바이트 입출력과 동기하여 적용하는 것으로 한다. 여기서, 부호화(부호기)에서는 부호 레지스터치는 유효 영역의 하계치, 복호(복호기)에서는 부호 레지스터치는 유효 영역의 하계치로부터 부호치까지의 변위(오프셋)로 갱신되어 간다는 차이가 있기 때문에, 복호 시에는 부호기의 부호 레지스터치를 재현해가지 않으면 자리 올림 경계를 정확하게 판단할 수 없다. 따라서, 복호에서는 부호기의 부호 레지스터와 동일한 구성을 취하는 D레지스터(64)로 그 값을 보존해가는 것으로 한다.
본 제 2 종래예에 있어서, 수정 혹은 추가된 처리를 설명하는 플로 챠트에 대해서 설명한다.
적응 영역 절사 방식을 상기 제 1 종래예에서 설명한 QM-Coder의 부호화/복호 처리를 설명하는 플로 챠트에 필요한 수정만 가하여 설명을 행한다. 부호기에 관한 도 46으로부터 도 49, 도 53, 도 54, 복호기에 관한 도 56, 도 57, 도 59에 대해서는 상기 제 1 종래예의 처리를 설명하는 플로와 동일하다. 또, 상기 설명에 있어서 사용한 유효 영역의 상계치(U60), 자리 올림 경계치(T61), 비자리 올림 영역 폭(R063), 자리 올림 영역 폭(R162), D레지스터(64)를 변수로서 추가 도입한다.
도 67은 정규화 처리를 행하는 RENORME 처리를 설명하는 플로 챠트이다.
상기 제 1 종래예(도 50)에 대해, 적응 영역 절사 처리의 적용을 판정하기 위한 ROUNDDOWNE 처리를 호출하는 S147이 추가되어, BYTE0UT 처리의 호출(도 50의 S145)은 ROUNDDOWNE 처리로부터 행해진다.
도 68은 적응 영역 절사 처리를 적용하는 ROUNDOFFE 처리를 설명하는 플로 챠트이다.
S301에서는 출력 바이트치가 0xFF인지를 판정하여, No이면 그대로 종료한다. S302에서 자리 올림 경계치(T61)(정수)를 설정하고, S303에서 비자리 올림 영역 폭(R063)을 설정한다. S304에서 비자리 올림 영역 폭(R063)을 영역 폭(A레지스터치)과 비교하여, R0치(63)가 A레지스터치(31)보다 작지 않고 또는 R0치(63)가 0보다 크지 않으면(No), 자리 올림 경계(T61)가 유효 영역 내에 없기 때문에 그대로 종료한다. R0치(63)가 A치(31)보다 작고 또는 R0치(63)가 0보다 크면(Yes), S305에서 상계치(U60)를 설정하고, S306에서 자리 올림 영역 폭(R162)을 설정한다. S307에서 R0치(63)가 R1치(62)보다 작으면(Yes), 자리 올림 영역을 유효 영역으로 하기 위해, S308에서 하계치를 자리 올림 경계치로 변경하고, S309에서 영역 폭(A레지스터치)에 R1치를 설정하여, 크면(No), 비자리 올림 영역을 유효 영역으로 하기 위해 S309에서 영역 폭(A레지스터치)(31)에 R0치(63)를 설정한다. 마지막으로 S311에서 BYTEOUT 처리를 호출한다.
도 69(BYTEOUT 처리를 설명하는 플로), 도 70(INITENC 처리를 설명하는 플로) 및 도 71(FINALWRITES 처리를 설명하는 플로)의 도 51, 도 52 및 도 55에 대한 각각의 변경을 설명하면, 우선, 부호 레지스터의 Cs레지스터부(33)의 삭제에 의해 도 69(BYTEOUT 처리를 설명하는 플로)의 S151', S157', 도 70(INITENC 처리를 설명하는 플로)의 S176', 도 71(FINALWRITES 처리를 설명하는 플로)의 S202', S205', S206'의 마스크나 시프트 수의 설정이 변경된다.
또, 도 68(ROUNDOFFE 처리를 설명하는 플로)에 있어서, 출력 바이트치가 0xFF일 때의 자리 올림 전파의 유무에 대해서 이미 해결이 끝났기 때문에, 변수 BUFFER를 순차 출력해 갈 수 있게 되며, 도 69(BYTEOUT 처리를 설명하는 플로)의 판정 S159는 불필요해지고, 동시에 변수(SC) 자체와 그에 관련되는 도 69(BYTEOUT 처리를 설명하는 플로)의 S154, S155, S160, S162, S163, 도 70(INITENC 처리를 설명하는 플로)의 S173, 도 71(FINALWRITES 처리를 설명하는 플로)의 S204, S208도 불필요해진다.
도 72는 위쪽 영역을 복호하는 LPS_EXCHANGE 처리를 설명하는 플로 챠트이다. 상기 제 1 종래예(도 58)에 대해, 부호기의 부호 레지스터를 D레지스터(64)로서 재현하기 위한 S242, S243이 추가되어 있다.
또, 도 73은 정규화 처리를 행하는 RENORMD 처리를 설명하는 플로 챠트이다.
상기 제 1 종래예(도 60)에 대해, 부호기의 부호 레지스터를 D레지스터로서 재현하기 위한 S269, 적응 영역 절사 처리의 적용을 판정하기 위한 ROUNDDOWND 처리를 호출하는 S270이 추가되어, BYTE0UT 처리의 호출(도 60의 S262)은 ROUNDDOWND 처리로부터 행해진다. 또, 도 60의 S261과 S267 판정의 중복성을 제거했기 때문에 처리를 설명하는 플로 형상이 다르지만, 처리 내용은 동일하다.
도 74는 적응 영역 절사 처리를 적용하는 ROUNDOFFD 처리를 설명하는 플로 챠트이다.
도 68의 ROUNDOFFE 처리에 대해, 부호 레지스터 변수명(C30A)이 D64로 변경되어 있으며, S321에서 S331은 S301로부터 S311에 대응하여, 복호기의 부호 레지스터(30B)에 부호기의 부호 레지스터(30A)(레지스터(D64))에 대응하는 적응 영역 절사 처리를 행하기 위한 S332가 추가되어 있다. 또, 마지막으로 도 68의 BYTEOUT 처리(S311) 대신에 S331에서 BYTEIN 처리를 호출한다.
도 75(BYTEIN 처리를 설명하는 플로), 도 76(INITDEC 처리를 설명하는 플로)의 도 61, 도 62에 대한 각각의 변경으로서, 부호기의 부호 레지스터(30A)를 D레지스터(64)로서 재현하기 위한 초기화 처리인 도 75의 S276, 도 76의 S290이 추가되어 있다.
그런데, 상술한 종래예에서는 다음과 같은 문제점이 있다.
제 1 종래예에 관련되는 부호기에서는, 자리 올림의 유무를 해결하지 않고서 부호치를 확정할 수 없는 경우에 카운터에서 대기하는 부호 길이를 기억시키지만, 데이터 길이의 제한이 없기 때문에 자리수가 넘칠 가능성이 있다는 과제가 있었다.
또, 부호치가 확정되지 않으면 마지막까지 부호가 소거되지 않는 경우도 있으며, 특히 데이터 길이가 불명확한 경우에는 부호의 확정 지연 시간을 어림잡지 못한다는 과제가 있엇다.
더욱이 부호치가 확정되었을 때, 출력을 대기하고 있던 부호 길이가 길면 그 소거 시간이 길어져, 부호화 처리를 완전히 또는 일시적으로 정지시켜야만 한다는 과제가 있었다.
한편, 제 2 종래예에 관련되는 부호기에서는, 부호 레지스터치에 의해 자리 올림 제어 실행을 판정하여, 자리 올림 경계를 엄밀히 계산해야만 한다는 과제가 있었다.
또, 제 2 종래예에 관련되는 복호기에서는 부호기의 부호 레지스터를 재현하지 않으면 자리 올림 제어의 정확한 실행 판정을 할 수 없다는 과제가 있었다.
본 발명은 이상과 같은 종래예에 관련되는 과제를 해결하기 위해 이루어진 것으로, 부호가 확정될 때까지 대기하는 부호 길이를 기억하는 카운터의 자리수 넘침을 없애, 적당한 간격으로 부호를 강제적으로 확정함으로써 자리 올림을 제어하여 부호의 확정 지연 시간을 유한화하여 어림할 수 있도록 함과 동시에, 부호치가 확정되었을 때에 소정의 패턴으로의 치환에 의해 총 부호 길이와 부호의 소거 시간을 단축하는 것을 목적으로 한다.
또, 자리 올림 경계를 엄밀히 계산하지 않고서 자리 올림 제어를 행하고, 복호기에서 부호기의 부호 레지스터를 재현하지 않고서 자리 올림 제어를 행하는 것을 목적으로 한다.
도 1은 본 발명의 개념에 관련되는 위쪽/아래쪽 1/2 영역 절사 방식의 설명도.
도 2는 본 발명의 실시예 1에 관련되는 부호화부의 구성을 도시하는 블록도.
도 3은 본 발명의 실시예 1에 관련되는 복호화부의 구성을 도시하는 블록도.
도 4는 본 발명의 실시예 1에 관련되는 ROUNDOFFE 처리를 설명하는 플로 챠트.
도 5는 본 발명의 실시예 1에 관련되는 HALVINGE 처리를 설명하는 플로 챠트.
도 6은 본 발명의 실시예 1에 관련되는 ROUNDOFFD 처리를 설명하는 플로 챠트.
도 7은 본 발명의 실시예 1에 관련되는 HALVINGD 처리를 설명하는 플로 챠트.
도 8은 본 발명의 실시예 1에 관련되는 HALVINGE 처리를 설명하는 플로 챠트.
도 9는 본 발명의 실시예 1에 관련되는 BYTEOUT(7) 처리를 설명하는 플로 챠트.
도 10은 본 발명의 실시예 1에 관련되는 HALVINGD 처리를 설명하는 플로 챠트.
도 11은 본 발명의 실시예 1에 관련되는 BYTEIN(7) 처리를 설명하는 플로 챠트.
도 12는 본 발명의 실시예 2에 관련되는 부호화부의 구성을 도시하는 블록도.
도 13은 본 발명의 실시예 2에 관련되는 복호화부의 구성을 도시하는 블록도.
도 14는 본 발명의 실시예 2에 관련되는 ENCODER 처리를 설명하는 플로 챠트.
도 15는 본 발명의 실시예 2에 관련되는 HALVINGE 처리를 설명하는 플로 챠트.
도 16은 본 발명의 실시예 2에 관련되는 CODELOWER 처리를 설명하는 플로 챠트.
도 17은 본 발명의 실시예 2에 관련되는 CODEUPPER 처리를 설명하는 플로 챠트.
도 18은 본 발명의 실시예 2에 관련되는 DECODER 처리를 설명하는 플로 챠트.
도 19는 본 발명의 실시예 2에 관련되는 HALVINGD 처리를 설명하는 플로 챠트.
도 20은 본 발명의 실시예 3에 관련되는 ENCODER 처리를 설명하는 플로 챠트.
도 21은 본 발명의 실시예 3에 관련되는 DECODER 처리를 설명하는 플로 챠트.
도 22는 본 발명의 실시예 4에 관련되는 ENCODER 처리를 설명하는 플로 챠트.
도 23은 본 발명의 실시예 4에 관련되는 DECODER 처리를 설명하는 플로 챠트.
도 24는 본 발명의 실시예 5에 관련되는 ENC0DER 처리를 설명하는 플로 챠트.
도 25는 본 발명의 실시예 5에 관련되는 DECODER 처리를 설명하는 플로 챠트.
도 26은 본 발명의 실시예 6에 관련되는 런 렝스 마커의 설명도.
도 27은 본 발명의 실시예 6에 관련되는 런 렝스 마커 분할 출력의 설명도.
도 28은 본 발명의 실시예 6에 관련되는 런 렝스 마커의 일례를 도시하는 구성도.
도 29는 본 발명의 실시예 6에 관련되는 런 렝스 마커의 일례를 도시하는 구성도.
도 30은 본 발명의 실시예 6에 관련되는 런 렝스 마커의 일례를 도시하는 구성도.
도 31은 본 발명의 실시예 6에 관련되는 바이트(MK)에 치환 대상 패턴의 바이트 길이를 도시하며, 패턴의 런 길이와 함께 패턴을 직접 지정하는 방법의 설명도.
도 32는 본 발명의 실시예 6에 관련되는 RUNLENMARK 처리를 설명하는 플로 챠트.
도 33은 본 발명의 실시예 7에 관련되는 런 렝스 마커 부호 길이의 비교에 관한 설명도.
도 34는 본 발명의 실시예 7에 관련되는 RUNLENMARK 처리를 설명하는 플로 챠트.
도 35는 본 발명의 실시예 8에 관련되는 런 렝스 마커 적용을 통지하는 정보 설명도.
도 36은 본 발명의 실시예 9에 관련되는 런 렝스 마커를 사용하여 부호기와 복호기 사이의 상호 통신을 행하는 구성의 일례를 도시하는 블록도.
도 37은 본 발명의 실시예 9에 관련되는 런 렝스 마커를 사용하여 부호기와 복호기 사이의 상호 통신을 행하는 구성의 일례를 도시하는 블록도.
도 38은 본 발명의 실시예 9에 관련되는 런 렝스 마커를 사용하여 부호기와 복호기 사이의 상호 통신을 행하는 구성의 일례를 도시하는 블록도.
도 39는 종래의 산술 부호화의 개념을 도시하는 설명도.
도 40은 소수부를 늘 영역 분할의 정밀도로 유지하여, 상위 자리수를 정수부로 소거하기 위한 종래의 정규화 처리 설명도.
도 41은 제 1 종래예에 관련되는 부호기의 구성을 도시하는 블록도.
도 42는 제 1 종래예에 관련되는 복호기의 구성을 도시하는 블록도.
도 43은 표준 모델 템플레이트의 설명도.
도 44는 확률 추정 테이블의 설명도.
도 45는 부호화/복호/영역 폭 레지스터의 구성도.
도 46은 제 1 종래예에 관련되는 ENCODER 처리를 설명하는 플로 챠트.
도 47은 제 1 종래예에 관련되는 ENCODE 처리를 설명하는 플로 챠트.
도 48은 제 1 종래예에 관련되는 CODELPS 처리를 설명하는 플로 챠트.
도 49는 제 1 종래예에 관련되는 CODEMPS 처리를 설명하는 플로 챠트.
도 50은 제 1 종래예에 관련되는 RENORME 처리를 설명하는 플로 챠트.
도 51은 제 1 종래예에 관련되는 BYTEOUT 처리를 설명하는 플로 챠트.
도 52는 제 1 종래예에 관련되는 INITENC 처리를 설명하는 플로 챠트.
도 53은 제 1 종래예에 관련되는 FLUSH 처리를 설명하는 플로 챠트.
도 54는 제 1 종래예에 관련되는 CLEARBITS 처리를 설명하는 플로 챠트.
도 55는 제 1 종래예에 관련되는 FINALWRITES 처리를 설명하는 플로 챠트.
도 56은 제 1 종래예에 관련되는 DECODER 처리를 설명하는 플로 챠트.
도 57은 제 1 종래예에 관련되는 DECODE 처리를 설명하는 플로 챠트.
도 58은 제 1 종래예에 관련되는 LPS_EXCHANGE 처리를 설명하는 플로 챠트.
도 59는 제 1 종래예에 관련되는 MPS_EXCHANGE 처리를 설명하는 플로 챠트.
도 60은 제 1 종래예에 관련되는 RENORMD 처리를 설명하는 플로 챠트.
도 61은 제 1 종래예에 관련되는 BYTEIN 처리를 설명하는 플로 챠트.
도 62는 제 1 종래예에 관련되는 INITDEC 처리를 설명하는 플로 챠트.
도 63은 제 2 종래예에 관련되는 자리 올림/비자리 올림(carry/carryless) 영역 절사 처리 설명도.
도 64는 제 2 종래예에 관련되는 부호기 구성을 도시하는 블록도.
도 65는 제 2 종래예에 관련되는 복호기 구성을 도시하는 블록도.
도 66은 제 2 종래예에 관련되는 부호화/영역 폭 레지스터의 구성도.
도 67은 제 2 종래예에 관련되는 REN0RME 처리를 설명하는 플로 챠트.
도 68은 제 2 종래예에 관련되는 ROUNDOFFE 처리를 설명하는 플로 챠트.
도 69는 제 2 종래예에 관련되는 BYTEOUT 처리를 설명하는 플로 챠트.
도 70은 제 2 종래예에 관련되는 INITENC 처리를 설명하는 플로 챠트.
도 71은 제 2 종래예에 관련되는 FINALWRITES 처리를 설명하는 플로 챠트.
도 72는 제 2 종래예에 관련되는 LPS_EXCHANGE 처리를 설명하는 플로 챠트.
도 73은 제 2 종래예에 관련되는 RENORMD 처리를 설명하는 플로 챠트.
도 74는 제 2 종래예에 관련되는 ROUNDOFFD 처리를 설명하는 플로 챠트.
도 75는 제 2 종래예에 관련되는 BYTEIN 처리를 설명하는 플로 챠트.
도 76은 제 2 종래예에 관련되는 INITDEC 처리를 설명하는 플로 챠트.
* 도면의 주요 부분에 대한 부호의 설명 *
1A: 부호부, 1B: 복호부
2: 콘텍스트(CX), 3: 화소(PIX)
4: 부호, 5: 데이터 메모리
6: 화상, 7: 예측치 테이블(MPS)
8: 스테이트 테이블(ST), 9: LPS 영역 폭 테이블(LSZ)
10: MPS 상태 천이선 테이블(NMPS)
11: LPS 상태 천이선 테이블(NLPS)
12: 예측치 반전 판정 테이블(SWTCH),
13A: 산술 부호기, 13B: 산술 복호기
14: 심벌, 15A: 화소 심벌 변환기
15B: 심벌 화소 변환기, 16: 예측치 갱신 처리기
17: 스테이트 갱신 처리기, 18: 스테이트 테이블(STATE)
19: 비예측치 테이블(LPS), 30A: 부호화 레지스터(하계치) C
30B: 복호 레지스터 C, 31: 영역 폭 레지스터 A
32: Cx레지스터, 33: Cs레지스터
34: Cb레지스터, 35: Cc레지스터,
36: CLOW레지스터, 37: Cb레지스터
38: CHIGH레지스터, 39: Cx레지스터
50: CT 카운터, 51: 부호 버퍼(BUFFER)
52: SC 카운터, 53: 출력 판정 버퍼(TEMP)
60: 상계치(U), 61: 자리 올림 경계(T)
62: 자리 올림 영역 폭(R1), 63: 비자리 올림 영역 폭(R0)
64: (복호기의) 부호 레지스터 D,
65: 1/2 영역 경계치(T), 66: 자리 올림 경계치(CW)
80: 런 렝스부 최대치(MARKLEN), 81: 런 렝스 카운터(RL)
82: 런 렝스 마커 길이(MARKLENMIN)
본 발명에 관련되는 부호화 장치는 정보원 데이터를 축적하여 부호화 대상 데이터와 그 보조적인 패러미터(콘텍스트)를 출력하는 데이터 메모리와, 상기 보조 패러미터를 기초로 지정되는 상기 부호화 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 메모리와, 상기 학습 데이터를 기초로 지정되는 부호화 패러미터를 출력하는 확률 추정 테이블과, 상기 부호화 대상 데이터와 상기 부호화 패러미터를 기초로 산술 부호화를 행하여 부호를 출력하는 부호기를 구비하는 부호화 장치에 있어서, 소정 단위의 정보원 데이터의 입력 처리 또는 부호 출력을 소정 간격으로서 계측하여 통지하는 동기 검출기와, 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출기를 구비하며, 상기 부호기는 상기 자리 올림 검출기에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
또, 상기 부호기는 상기 자리 올림 경계 검출기에서 자리 올림 경계가 검출되었을 때, 상기 자리 올림 경계 검출기에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
또, 상기 자리 올림 경계 검출기는 검출된 자리 올림 경계를 포함하는 부분 영역을 절사하도록 지시하는 것을 특징으로 하는 것이다.
또, 상기 소정 간격은 소정 단위의 부호화 대상 데이터를 부호화했을 때인 것을 특징으로 하는 것이다.
또, 상기 소정 간격은 부호치의 확정까지 대기시키는 부호 길이의 최대치를 기준으로 설정되는 것을 특징으로 하는 것이다.
또, 상기 부호기는 상기 소정 간격을 기준으로 부호치의 확정까지 대기시키는 부호 길이의 최대치가 설정되는 것을 특징으로 하는 것이다.
또, 상기 소정 간격은 소정 단위의 부호 출력이 발생했을 때인 것을 특징으로 하는 것이다.
또, 상기 소정 간격은 소정 단위의 부호 출력이 발생하고, 또한 부호 출력치가 소정치가 될 때인 것을 특징으로 하는 것이다.
또, 상기 자리 올림 경계 검출기는 상기 유효 영역 내에 자리 올림 경계가 검출되지 않아도 상기 유효 영역을 상위와 하위로 등분한 부분 영역 중 어느 한쪽 부분 영역을 지시하는 것을 특징으로 하는 것이다.
또, 상기 부호기는 확정된 부호에 동일한 값이 연속할 때에 그 값과 길이를 특정할 수 있는 런 렝스 마커(run-length maker)로 치환하는 런 렝스 마커 변환기를 갖는 것을 특징으로 하는 것이다.
또, 상기 런 렝스 마커 변환기는 치환하지 않고서 그대로 출력한 쪽이 변환되는 상기 런 렝스 마커보다 부호 출력이 짧을 때에는 변환을 행하지 않는 것을 특징으로 하는 것이다.
또, 상기 런 렝스 마커로부터 추출되는 연속 길이의 최대치는 복호 시의 런 렝스 마커 역변환의 결과에 근거하여 상기 부호기가 상기 런 렝스 마커 변환기에 설정하는 것을 특징으로 하는 것이다.
또, 본 발명에 관련되는 복호화 장치는 복호 대상 데이터에 대한 보조적인 패러미터(콘텍스트)를 출력하여 복호된 상기 복호 대상 데이터를 축적하여 정보원 데이터로서 출력하는 데이터 메모리와, 상기 보조 패러미터를 기초로 지정되는 상기 복호 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 메모리와, 상기 학습 데이터를 기초로 지정되는 복호 패러미터를 출력하는 확률 추정 테이블과, 상기 복호 패러미터와 부호를 기초로 산술 복호를 행하여 상기 복호 대상 데이터를 출력하는 복호기를 구비하는 복호화 장치에 있어서, 소정 단위의 정보원 데이터의 출력 처리 또는 부호 입력을 소정 간격으로서 계측하여 통지하는 동기 검출기와, 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출기를 구비하며, 상기 복호기는 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 상기 부호치를 포함하지 않는 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
또, 상기 복호기는 상기 자리 올림 경계 검출기에서 자리 올림 경계가 검출되었을 때, 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 상기 부호치를 포함하지 않는 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
또, 상기 자리 올림 경계 검출기는 검출된 자리 올림 경계를 포함하는 부분 영역을 절사하도록 지시하는 것을 특징으로 하는 것이다.
또, 상기 소정 간격은 소정 단위의 복호 대상 데이터를 복호했을 때인 것을 특징으로 하는 것이다.
또, 상기 소정 간격은 소정 단위의 부호 입력이 발생했을 때인 것을 특징으로 하는 것이다.
또, 상기 소정 간격은 소정 단위의 부호 입력이 발생하고, 또한 복호와 동시에 재현되는 부호 출력치가 소정치가 될 때인 것을 특징으로 하는 것이다.
또, 상기 복호기는 런 렝스 마커를 검출하면, 치환된 길이의 원래 부호치로 역변환하는 런 렝스 마커 역변환기를 갖는 것을 특징으로 하는 것이다.
또, 본 발명에 관련되는 부호화 복호화 장치는 부호화 장치로서, 정보원 데이터를 축적하여 부호화 대상 데이터와 그 보조적인 패러미터(콘텍스트)를 출력하는 데이터 메모리와, 상기 보조 패러미터를 기초로 지정되는 상기 부호화 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 메모리와, 상기 학습 데이터를 기초로 지정되는 부호화 패러미터를 출력하는 확률 추정 테이블과, 상기 부호화 대상 데이터와 상기 부호화 패러미터를 기초로 산술 부호화를 행하여 부호를 출력하는 부호기와, 소정 단위의 정보원 데이터의 입력 처리 또는 부호 출력을 소정 간격으로서 계측하여 통지하는 동기 검출기와, 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출기를 구비하며, 상기 부호기는 상기 자리 올림 검출기에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신함과 동시에, 복호화 장치로서, 복호 대상 데이터에 대한 보조적인 패러미터(콘텍스트)를 출력하여 복호된 상기 복호 대상 데이터를 축적하여 정보원 데이터로서 출력하는 데이터 메모리와, 상기 보조 패러미터를 기초로 지정되는 상기 복호 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 메모리와, 상기 학습 데이터를 기초로 지정되는 복호 패러미터를 출력하는 확률 추정 테이블과, 상기 복호 패러미터와 부호를 기초로 산술 복호를 행하여 상기 복호 대상 데이터를 출력하는 복호기와, 소정 단위의 정보원 데이터의 출력 처리 또는 부호 출력을 소정 간격으로서 계측하여 통지하는 동기 검출기와, 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출기를 구비하며, 상기 복호기는 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 상기 부호치를 포함하지 않는 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
또, 상기 부호기는 상기 자리 올림 경계 검출기에서 자리 올림 경계가 검출되었을 때, 상기 자리 올림 경계 검출기에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신함과 동시에, 상기 복호기는 상기 자리 올림 경계 검출기에서 자리 올림 경계가 검출되었을 때, 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 상기 부호치를 포함하지 않는 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
또, 본 발명에 관련되는 부호화 방법은 (a) 정보원 데이터를 축적하여 부호화 대상 데이터와 그 보조적인 패러미터(콘텍스트)를 출력하는 데이터 축적 단계와, (b) 상기 보조 패러미터를 기초로 지정되는 상기 부호화 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 단계와, (c) 상기 학습 데이터를 기초로 지정되는 부호화 패러미터를 출력하는 확률 추정 단계와, (d) 상기 부호화 대상 데이터와 상기 부호화 패러미터를 기초로 산술 부호화를 행하여 부호를 출력하는 부호화 단계와, (e) 소정 단위의 정보원 데이터의 입력 처리 또는 부호 출력을 소정 간격으로서 계측하여 통지하는 동기 검출 단계와, (f) 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출 단계와, (g) 상기 자리 올림 경계 검출 단계에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 부호화 수정 단계를 갖는 것이다.
또, 상기 부호화 수정 단계는 상기 자리 올림 경계 검출 단계에서 자리 올림 경계가 검출되었을 때, 상기 자리 올림 경계 검출 단계부에서 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
또, 상기 부호화 단계 및 상기 부호화 수정 단계는 확정된 부호에 동일한 값이 연속할 때에 그 값과 길이를 특정할 수 있는 런 렝스 마커로 치환하는 변환 단계를 갖는 것을 특징으로 하는 것이다.
상기 변환 단계는 치환하지 않고서 그대로 출력한 쪽이 변환되는 상기 런 렝스 마커보다 부호 출력이 짧을 때에는 변환을 행하지 않는 것을 특징으로 하는 것이다.
또, 상기 런 렝스 마커로부터 추출되는 연속 길이의 최대치는 복호 시, 런 렝스 마커 역변환의 결과에 근거하여 상기 부호화 단계가 상기 변환 단계에 설정하는 것을 특징으로 하는 것이다.
또, 본 발명에 관련되는 복호화 방법은 (a) 복호 대상 데이터에 대한 보조적인 패러미터(콘텍스트)를 출력하여 복호된 상기 복호 대상 데이터를 축적하여 정보원 데이터로서 출력하는 데이터 축적 단계와, (b) 상기 보조 패러미터를 기초로 지정되는 상기 복호 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 단계와, (c) 상기 학습 데이터를 기초로 지정되는 복호 패러미터를 출력하는 확률 추정 단계와, (d) 상기 복호 패러미터와 부호를 기초로 산술 복호를 행하여 상기 복호 대상 데이터를 출력하는 복호화 단계와, (e) 소정 단위의 정보원 데이터의 출력 처리 또는 부호 입력을 소정 간격으로서 계측하여 통지하는 동기 검출 단계와, (f) 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출 단계와, (g) 상기 자리 올림 경계 검출 단계에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 복호화 수정 단계를 갖는 것이다.
또, 상기 복호화 수정 단계는 상기 자리 올림 경계 검출 단계에서 자리 올림 경계가 검출되었을 때, 상기 자리 올림 경계 검출 단계에서 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 것이다.
더욱이, 상기 복호화 단계는 런 렝스 마커를 검출하면, 치환된 길이의 원래 부호치로 역변환하는 런 렝스 마커 역변환 단계를 갖는 것을 특징으로 하는 것이다.
(발명의 실시예)
실시예 1.
본 실시예 1에서는, 상술한 제 2 종래예와 마찬가지로 유효 영역의 부분 영역을 절사, 출력이 끝난 부호에 대해 자리 올림 유무를 확정하는 방법을 취하지만, 유효 영역을 2개의 부분 영역으로 등분할하여, 자리 올림 경계를 포함하는 부분 영역을 절사하는 것이다.
영역 폭은 항상 부호기와 복호기에서 동일한 값을 취하기 때문에, 등분할 조작에 의하면, 상기 제 2 종래예와 같이 자리 올림 경계치를 엄밀히 부호화/복호로 가지지 않아도 상위/하위 중 어느 부분 영역에 포함할지만 알면 된다.
예를 들면, 도 1에 도시하는 바와 같이, 최대 유효 영역을 16으로 할 때, 정규화 처리에 의해 유효 영역은 8이상으로 유지된다. 이 때, 1.0000을 자리 올림 경계라 하면, 그 경계가 상위에 있으면 상위 1/2 영역을 절사, 하위에 있으면 하위 1/2 영역을 절사한다. 단, 유효 영역 폭이 홀수일 때, 유효한 표현 정밀도의 부족에 의한 자리수 탈락에 의한 오차가 생기기 때문에, 그 해결책도 포함할 필요가 있다. 동일 도면에서는, 유효 영역 폭=9이기 때문에, 단순히 1/2로 하면 4(정수)가 되며, 그것을 하위 영역 폭으로 하면 상위 영역 폭은 5가 된다. 따라서, 상위 영역을 절사하면 하위 영역 폭이 2배로 확대되어 8, 하위 영역을 절사하면 상위 영역 폭이 2배로 확대되어 10이 되어, 엄밀히 동등하게 분할된 것이 되지 않게 된다.
여기서, 영역 폭(A레지스터)(31)의 1/2을 계산한 후, 정규화 처리에서 적어도 2배로 확대되는 것은 확실하다. 따라서, A레지스터의 1/2 연산으로 자리수 탈락하는 비트를 나중에 보정하는 방법이 있다. 또, 다른 하나의 방법은 영역 폭(=9)은 유지한 채로, 우선 하계치(C레지스터)(30A)만을 2배하고, 하위 영역을 절사할 때 그 영역 폭(31=9)을 더하면 원하는 오차 없는 좌표를 얻을 수 있다. 아무튼, 1/2 영역 절사 방식에 의하면, 1회 적용에 대해 반드시 1비트의 부호 길이가 발생하게 된다.
본 실시예 1에서는, 1/2 영역 절사 방식의 산술 부호화의 부호기를 부호부(1C), 그 복호기를 복호부(16C)로 하여, 그 부호기, 복호기의 개략 구성을 도 2, 도 3에 도시한다.
도 2에서는, 산술 부호기(13C), 부호(4C) 치환에 따르는 부호화부(1C)가 제 2 종래예의 도 64에 대응하여 구성된다. 도 3에서는, 산술 복호기(17C), 부호(4C) 치환에 따르는 복호부(16C)가 제 2 종래예의 도 65에 대해 다르다. 이들을 치환한 블록 사이의 데이터의 흐름, 또 학습 방법은 종래예의 도 64와 도 65와 동일하게 한다.
산술 부호기(13C)는 LSZ치(9)와 2치 심벌(14) 입력으로부터, C레지스터(30A)와 A레지스터(31)로 부호화 연산이 진행시켜지며, CT 카운터(50)에서 바이트 단위의 부호 출력 타이밍을 계산하고, 부호 출력 시에 동기하여 영역 내에 자리 올림 경계의 유무를 T레지스터(61), R0레지스터(63)로부터 판정하며, 자리 올림 경계가 있으면 1/2 영역 절사 방식을 적용하여 C레지스터(30A), A레지스터(31)를 수정하여 자리 올림의 유무를 강제 확정하며, 최대 BUFFER(51)까지의 자리 올림 전파를 행하여 확정된 부호 출력을 행하여, 부호(4C)를 출력한다.
또, 산술 복호기(17C)는 LSZ치(9)와 부호(4C) 입력으로부터, CT 카운터(50)에서 바이트 단위의 부호 입력 타이밍을 계산하고, 부호 입력 시에 동기하여 영역 내에 자리 올림 경계의 유무를 산술 부호기(13C)의 부호 레지스터(30A)를 재현한 D레지스터(64), T레지스터(61), R0레지스터(63)로부터 판정하며, 자리 올림 경계가 있으면 1/2 영역 절사 방식을 적용하여 C레지스터(30A), D레지스터(64), A레지스터(31)를 수정하여, BUFFER(51)를 개재시켜 C레지스터(30B)와 A레지스터(31), D레지스터(64)로 복호 연산이 진행시켜져, 2치 심벌(14)을 출력한다.
도 2와 도 3에 도시되는 구성 블록 내 및 블록 사이의 상세한 처리 동작은 설명이 끝난 제 1 종래예의 처리를 설명하는 플로도인 도 46에서 도 49, 도 53, 도 54, 도 56, 도 57, 도 59와, 마찬가지로 제 2 종래예의 처리를 설명하는 플로 챠트인 도 67, 도 69로부터 도 74, 도 75, 도 76과, 후술하는 처리를 설명하는 플로도 4에서 도 7, 또는 그 등가 처리를 설명하는 플로로서 주어지는 도 4, 도 6, 도 8에서 도 11로 설명한다.
본 실시예 1에서는, 제 2 종래예에 있어서 자리 올림 또는 비자리 올림 영역 영역의 절사 처리를 행하고 있는 도 68(ROUNDOFFE 처리를 설명하는 플로), 도 74(ROUNDOFFD 처리를 설명하는 플로)를 다음에 도시하는 도 4, 도 6으로 변경하고, 거기에서 호출되는 도 5(HALVINGE 처리를 설명하는 플로), 도 7(HALVINGD 처리를 설명하는 플로)을 추가함으로써 1/2 영역 절사 방식을 실현하는 방법을 도시한다.
도 4는 1/2 영역 절사 처리의 적용을 판정하는 ROUNDOFFE 처리를 설명하는 플로 챠트이다.
도면 중, S301에서 S304 및 S301, S304의 판정 결과(어느 것도 No)에 의해 처리되는 S311은 도 68과 동일하다. S304의 판정 결과(Yes)에 의해 S312에서 1/2 영역 절사 처리를 행하는 HALVINGE 처리를 호출한다.
도 5는 1/2 영역 절사 처리를 행하는 HALVINGE 처리를 설명하는 플로 챠트이다.
S341에서 비자리 올림 영역 폭(R0)의 2배가 A레지스터치(31)보다 작으면(판정 Yes) 하위 1/2 영역이 자리 올림 경계를 포함하며, 작지 않으면(판정 No) 정보 1/2 영역이 자리 올림 영역을 포함하게 되어, 자리 올림 경계를 포함하는 1/2 영역을 절사하는 것으로 한다. 하위 1/2 영역을 절사할 경우, S342에서 C레지스터치(유효 영역 하계치)(30A)를 A레지스터치(유효 영역 폭)(31)의 1/2만큼 갱신한 후, S343에서 BYTEOUT 처리를 호출한다. 영역 절사에 따라, 실제는 A레지스터치(31)는 1/2로 해야하지만, 곧 정규화 처리로 2배로 확대되기 때문에 갱신하지 않는다. C레지스터(30A)와 CT 카운터치(50)에 대해 정규화 처리에 상당하는 S344, S345를 행한다. S346에서 A레지스터치(31)가 홀수인지의 여부를 판정하여, 홀수이면 A레지스터치(31)의 1/2배로 자리수 탈락한 만큼을 S347에서 보정한다. 상위 1/2 영역을 절사할 경우, C레지스터치(30A)는 갱신되지 않고, S348에서 BYTEOUT 처리를 호출한다. C레지스터(30A)와 CT 카운터치(50)에 대해 정규화 처리에 상당하는 S349, S350을 행한다.
도 6은 1/2 영역 절사 처리의 적용을 판정하는 ROUNDOFFD 처리를 설명하는 플로 챠트이다.
도면 중, S321로부터 S324 및 S321, S324의 판정 결과(어느 것도 No)에 의해 처리되는 S332는 도 74와 동일하다. S324의 판정 결과(Yes)에 의해 S333에서 1/2 영역 절사 처리를 행하는 HALVINGD 처리를 호출한다.
도 7은 1/2 영역 절사 처리를 행하는 HALVINGD 처리를 설명하는 플로 챠트이다.
도 5의 ROUNDDOWNE 처리에 대해, 부호 레지스터 변수명(C30A)이 D64로 변경되어 있으며, S361에서 S370는 S341에서 S350에 대응하여, 복호기의 부호 레지스터(C30B)에 부호기의 부호 레지스터(30A)(레지스터(D64))에 대응하는 1/2 영역 절사 처리를 행하기 위한 S371, S372, S373, S374를 추가하고 있다. 또, 마지막으로 도 68의 BYTEOUT 처리(S311) 대신에 S331에서 BYTEIN 처리를 호출한다.
여기서, 도 5의 HALVINGE 처리를 설명하는 플로, 도 7의 HALVINGD 처리를 설명하는 플로는 호출되는 BYTEOUT 처리를 설명하는 플로(도 69), BYTEIN 처리를 설명하는 플로(도 74)와 함께 다음에 도시하는 도 8(HALVINGE 처리를 설명하는 플로), 도 9(BYTEOUT(7) 처리를 설명하는 플로), 도 10(HALVINGD 처리를 설명하는 플로), 도 11(BYTEIN(7) 처리를 설명하는 플로)로 치환할 수 있다. BYTEOUT(7) 처리를 설명하는 플로, BYTEIN(7) 처리를 설명하는 플로는 A레지스터치(영역 폭)(31)를 1/2로 하지 않고 C레지스터(30B)를 먼저 2배로 확대하여 자리수 탈락을 방지하기 때문에, 바이트의 입출력 위치가 BYTEOUT 처리를 설명하는 플로, BYTEIN 처리를 설명하는 플로 챠트의 정규 위치보다 상위에 1비트만큼 어긋나 있다. 특히, 부호기에서는 상위에 1비트 여분으로 정밀도가 보증되어 있어야만 한다.
도 8은 1/2 영역 절사 처리를 행하는 HALVINGE 처리를 설명하는 플로 챠트이다.
S381, S382에서 C레지스터(30A), 비자리 올림 영역 폭(R063)을 2배로 확대하여, 정규화에 상당하는 처리를 먼저 행한다. S307에서 비자리 올림 영역 폭(R063)이 A레지스터치(31)보다 작으면(판정 Yes) 하위 1/2 영역이 자리 올림 경계를 포함하며, 작지 않으면(판정 No) 상위 1/2 영역이 자리 올림 영역을 포함하게 된다. 하위 1/2영역을 절사할 경우(판정 Yes), S384에서 C레지스터치(유효 영역 하계치)(30A)를 A레지스터치(유효 영역 폭)(31)만큼 갱신한다. 부호 바이트 출력전에 원래는 BYTEOUT 처리 직후에 행해지는 2배의 확대(정규화 처리)를 선행하고 있기 때문에, S385에서는, BYTEOUT 처리가 아니라 BYTEOUT(7) 처리를 호출한다.
도 9는 BYTEOUT 처리의 상세한 처리를 설명하는 플로 챠트이다.
이 BYTEOUT(7) 처리의 도 69(BYTEOUT 처리를 설명하는 플로)에 대한 변경을 도시한다. S151", S157"의 수정은 부호 출력 위치가 1비트 상위로 이동하고 있는 것에 의한다. S158'의 수정은 도 8에서 이미 정규화에 상당하는 처리(S382)가 행해지고 있는 것에 의한다.
도 10은 1/2 영역 절사 처리를 행하는 HALVINGD 처리를 설명하는 플로 챠트이다. 도 8의 ROUNDDOWNE 처리에 대해, 부호 레지스터 변수명(C30A)이 D64로 변경되어 있으며, S391에서 S395는 S381로부터 S385에 대응하여, 복호기의 부호 레지스터(C30B)에 부호기의 부호 레지스터(30A)(레지스터(D64))에 대응하는 처리를 행하기 위한 S396, S397을 추가하고 있다. 또, 마지막으로 도 8의 BYTE0UT(7) 처리(S385) 대신에 S395에서 BYTEIN(7) 처리를 호출한다.
도 11은 BYTEIN(7) 처리의 상세한 처리를 설명하는 플로 챠트이다.
이 BYTEIN(7) 처리의 도 74(BYTEIN 처리를 설명하는 플로)에 대한 변경을 도시한다. S273', S276'의 수정은 부호 입력 위치가 1비트 상위로 이동하고 있는 것에 의한다. S274'의 수정은 도 10에서 이미 정규화에 상당하는 처리(S392, S396)가 행해지고 있는 것에 의한다.
상술한 실시예 1에 의하면, 자리 올림 경계가 상위와 하위의 1/2 영역 중 어느 쪽에 존재하고 있는지만 판정되면 되기 때문에, 자리 올림 영역 폭(R162)을 계산할 필요가 없다.
실시예 2.
상술한 제 1 종래예에 도시되는 QM-Coder에서는, 출력이 끝났어도 확정되지 않은 부호를 변수 BUFFER(51), SC 카운터(52)에서 대기시키고 있지만, 부호기 사양에 따라서는 부호화 중에 SC 카운터(52)의 자리수 넘침이 발생하는 경우가 있어, 결과적으로 자리수 넘침 1회마다 그 카운트 최대수만큼 부호 바이트(0xFF 또는 0x00)가 모자라, 정확한 부호를 출력하지 못하게 된다.
일반적으로, 최종적인 화상 사이즈는 사전에 알 수 있다고는 할 수 없지만, 유한 사이즈로 구분한 스트라이프(또는 라인) 단위로 처리를 행하면 그 최악의 부호량을 어림할 수 있다. 산술 부호화에서는 최악의 경우 1비트를 약간 넘는 정도가 되는 것이 알려져 있기 때문에, 그 구분한 스트라이프(또는 라인) 구성 사이즈(바이트수)에 대해 거의 준비해야 할 SC 카운터(52)의 사양을 확정할 수 있으며, 그 2배의 부호 바이트(0xFF)의 런을 계수할 수 있으면 충분하다. 본 실시예 2에서는, 스트라이프 종료마다 거기까지 출력을 대기하고 있는 부호 바이트를 강제적으로 확정하여 소거해 감으로써, 최대 확정 지연도 스트라이프의 부호화 처리 시간 정도로 어림할 수 있게 된다. 이 부호 바이트의 확정 수법으로서 1/2 영역 절사 방식을 적용하는 것으로 한다.
또, 상술한 제 2 종래예에 도시되는 적응 영역 절사 방식에서는, 1바이트의 부호 바이트만 대기시키면 출력을 순차 행해 가는 것이 가능하지만, 영역 절사 처리에 의한 최소 부호 길이 로스로 억제하기 위해 유효 영역 내의 자리 올림 경계 위치를 엄밀히 계산해야만 하는 것, 또, 그 때문에, 복호기에서는 부호기의 부호 레지스터(30A) 재현을 행하지 않으면 정확한 복호를 하지 못한다. 더욱이, 적응 영역 절사 처리 실행을 Cs레지스터(33) 삭제에 의해 부호기, 복호기의 바이트 입출력 타이밍으로 동기시키지 않으면 다른 전용 동기 수단을 준비할 필요가 있어, 그 판정 등에 의해 부호화/복호의 부하가 증가한다. 예를 들면, Cs레지스터(33)를 삭제하지 않고서 부호기와 복호기를 동기시키기 위해, 부호기에는 상기 전용 동기 수단으로서 정규화 시프트수의 카운터를 설치하여, 8비트마다(8의 배수 시) 동기 타이밍이라 간주하든지 또는 복호의 CT 카운터(50)를 재현하면 된다.
본 실시예 2에서는, 스트라이프 종료 타이밍으로 1/2 영역 절사 처리를 행함으로써 Cs레지스터(33)의 유무에 의한 동기 상의 제약을 해소할 수 있다. 또, C레지스터(30A)로부터 출력되는 부호 바이트치에 의존하지 않고, 또한 유효 영역 내에 자리 올림 경계가 없을 때에도 반드시 1/2 영역 절사 처리를 행함으로써 복호기에서는 부호기의 부호 레지스터(30A)를 재현하지 않고, 또, 자리 올림 경계를 엄밀하게 계산하지 않고서 부호(C레지스터치)(30B)가 지시하지 않는 상위 또는 하위 1/2 영역을 절사함으로써 정확한 복호를 행할 수 있다.
여기서, 부호기는 상기한 바와 같이 절사해야 할 1/2 영역을 결정하여, 유효 영역을 갱신하지만, 이것은 더미 심벌의 부호화라 간주할 수 있다. 또, 복호기는 부호가 지시하는 1/2 영역에 유효 영역을 갱신하지만, 이는 더미 심벌의 복호라 간주할 수 있어, 유효 영역이 상위/하위 중 어느쪽에 갱신되어도 심벌은 무시해도 된다.
본 실시예 2의 1/2 영역 절사 방식에서는, 스트라이프의 부호화 처리로 부호 비트가 발생하지 않아도 1/2 영역 절사에 의해 1비트의 부호가 발생한다. 이 때문에, SC 카운터(52)의 자리수 넘침을 억제하면서, 최악 8스트라이프로 1바이트의 부호를 출력시켜지게 되어, 그 소요 시간을 부호 확정까지의 최대 지연으로서 어림할 수 있다.
1/2 영역 절사 방식의 산술 부호화의 부호기를 부호부(1C), 그 복호기를 복호부(16C)로 하여, 그 부호기, 복호기의 개략 구성을 도 12, 도 13에 도시한다.
도 12에서는, 산술 부호기(13D), 부호(4D)의 치환에 따르는 부호화부(1D)가 제 1 종래예의 도 39에 대응하여 구성된다. 도 13에서는, 산술 복호기(17D), 부호(4D)의 치환에 따르는 복호부(16D)가 제 1 종래예의 도 40에 대해 다르다. 이들을 치환한 블록 사이의 데이터의 흐름, 또, 학습 방법은 제 1 종래예의 도 39와도 40과 동일하게 한다.
산술 부호기(13D)는 LSZ치(9)와 2치 심벌(14) 입력으로부터, C레지스터(30A)와 A레지스터(31)로 부호화 연산이 진행시켜지며, CT 카운터(50)에서 바이트 단위의 부호 출력 타이밍을 계산하여, 제 1 종래예와 마찬가지로 BUFFER(51)와 SC 카운터에서 자리 올림의 전파 가능성이 있는 미확정 부호 출력 대기와 확정 부호 출력을 행하여, 부호(4D)를 출력해 간다. 그리고, 라인 종단(혹은 스트라이프 종단)의 검출에 동기하여 영역 내에 자리 올림 경계의 유무를 T레지스터(65), CW레지스터(66)로부터 판정하여, 선택된 상위 또는 하위의 1/2 절사 영역을 절사하는 1/2 영역 절사 방식을 적용하고, C레지스터(30A), A레지스터(31)를 수정하여 자리 올림의 유무를 강제 확정하며, 최대 BUFFER(51)까지의 자리 올림 전파를 행하고 확정된 부호 출력을 행하여, 부호(4D)를 출력한다.
또, 산술 복호기(17D)는 LSZ치(9)와 부호(4D) 입력으로부터, CT 카운터(50)에서 바이트 단위의 부호 입력 타이밍을 계산하고, BUFFER(51)를 개재시켜 C레지스터(30B)와 A레지스터(31)로 복호 연산이 진행시켜져, 2치 심벌(14)을 출력한다. 그리고, 라인 종단(혹은 스트라이프 종단)의 검출에 동기하여 C레지스터(30B)가 지시하지 않은 측의 1/2 절사 영역을 절사하는 1/2 영역 절사 방식을 적용하여, C레지스터(30B), A레지스터(31)를 수정한다.
도 12와 도 13에 도시되는 구성 블록 내 및 블록 사이의 상세한 처리 동작은 설명이 끝난 제 1 종래예의 처리를 설명하는 플로 챠트인 도 47에서 도 55, 도 57에서 도 62와, 후술하는 처리를 설명하는 플로도 14에서 도 19로 설명한다. 본 실시예 2에서는, 도 14 및 도 18에 의해, 스트라이프 종료 시에 1/2 영역 절사 방식을 적용하는 경우를 도시한다.
본 실시예 2에 있어서의 1/2 영역 절사 방식의 일례를, 상기 제 1 종래예에서 설명한 QM-Coder의 부호화/복호 처리를 설명하는 플로 챠트에 필요한 수정만을 더해 설명을 행한다. 부호화/복호/영역 폭 레지스터에 관한 도 45, 부호기에 관한 도 47에서 도 55, 복호기에 관한 도 57에서 도 62에 대해서는, 상기 제 1 종래예의 처리를 설명하는 플로와 동일하다. 또, 설명 상, 상기 제 1 종래예에 추가 도입되는 변수는 유효 영역의 1/2 영역 경계치(T65), 변수 CT치(50)에 의해 정의되는 자리 올림 경계치(CW66)이다.
도 14는 부호화 처리의 전체 흐름을 도시하는 ENCODER 처리를 설명하는 플로 챠트이다. 도 46에 있어서의 스트라이프의 종료 판정(S104)과 화상의 종료 판정(S105) 사이에 1/2 영역 절사 처리를 행하는 HALVINGE 처리의 호출(S107)을 추가한다.
도 15는 1/2 영역 절사 처리를 행하는 HALVINGE 처리를 설명하는 플로 챠트이다.
S501, S502는 C레지스터(30A), CT 카운터(50)에 대한 정규화 처리에 상당하며, A레지스터(31)는 그대로 유지한다. S503, S504는 유효 영역의 1/2 영역 경계치(T65), CT 카운터치(50)에서 정의되는 자리 올림 경계치(CW66)를 설정한다. S505에서 1/2 영역 경계치(T65)와 자리 올림 경계치(CW66)를 비교 판정한다. 판정 결과 Yes이면 자리 올림 경계는 상위 1/2 영역 이상으로 존재하기 때문에, 자리 올림 전파가 없는 대기 중의 부호 바이트를 출력하며, 하위 1/2 영역을 유효 영역으로 하는 CODELOWER 처리를 호출한다(S506). 판정 결과 No이면 자리 올림 경계는 하위 1/2 영역 이하에 존재하기 때문에, 자리 올림 전파시킨 대기 중의 부호 바이트를 출력하여, 상위 1/2 영역을 유효 영역으로 하는 CODEUPPER 처리를 호출한다(S507). 마지막으로, S508에서 변수 CT50이 0이면, S509에서 BUFFER(51)를 기록하고, S510에서 Cb레지스터치(34)를 BUFFER(51)에 설정하며, S511에서 Cc레지스터부(35) 및 Cb레지스터부(34)를 클리어하여, S512에서 CT 카운터(50)에 8을 설정한다. 여기서, 이미 S506 혹은 S507에 의해, 자리 올림 유무를 확정하여, 자리 올림이 있으면 전파 처리도 되고(전파 후, Cc레지스터부(35=0)), 대기하고 있던 부호 바이트의 소거가 완료(소거 후, 변수 SC치(52=0))하고 있으며, S509에서 S512는 BYTEOUT 처리(도 51)에 있어서 중복부를 최대한 생략한 S161, S164(TEMP=Cb레지스터치), S157, S158에 상당한다. S510에서는 BUFFER(51)가 바이트(0xFF)가 되어도 문제 없다.
도 16은 상위 1/2 영역을 절사, 자리 올림이 없는 출력 대기 부호의 소거 처리를 행하는 CODELOWER 처리를 설명하는 플로 챠트이다. S521에서 변수 SC치(52)가 양이면, S522에서 BUFFER(51)를 기록한다. 더욱이, S523에서 변수 SC치(52)가 1보다 크면, S524에서 부호 바이트(0xFF)를 (SC-1)회 기록한다. S525에서 마지막의 대기 부호 바이트인 0xFF를 BUFFER(51)에 설정하여, S526에서 변수 SC치(52)를 0으로 한다.
도 17은 하위 1/2 영역을 절사, 자리 올림이 있는 출력 대기 부호의 소거 처리를 행하는 CODEUPPER 처리를 설명하는 플로 챠트이다.
S531에서 BUFFER(51)에 자리 올림을 전파시켜, C레지스터(30A)로부터 자리 올림분(자리 올림 경계치(CW66))를 클리어한다. S533에서 변수 SC치(52)가 양이면, S534에서 BUFFER(51)를 기록한다. 더욱이, S535에서 변수 SC치(52)가 1보다 크면, S536에서 부호 바이트(0x00)를 (SC-1)회 기록한다. S537에서 마지막의 대기부호 바이트인 0x00를 BUFFER(51)에 설정하여, S537에서 변수 SC치(52)를 0으로 한다.
도 18은 복호 처리의 전체 흐름을 도시하는 DECODER 처리를 설명하는 플로 챠트이다.
도 56에 있어서의 스트라이프의 종료 판정(S214)과 화상의 종료 판정(S215) 사이에 1/2 영역 절사 처리를 행하는 HALVINGD 처리의 호출(S216)을 추가한다.
도 19는 1/2 영역 절사 처리를 행하는 HALVINGD 처리를 설명하는 플로 챠트이다. S541, S542는 C레지스터(30B), CT 카운터(50)에 대한 정규화 처리에 상당하며, A레지스터(31)는 그대로 유지한다. S545에서 CHIGH 레지스터치(38)와 A레지스터치(31)를 비교하여, 판정 결과 Yes이면 하위 1/2 영역이 절사된 것이 되어 S546에서 CHIGH 레지스터치(38)로부터 A레지스터치(31)를 뺀다. 판정 결과 No이면 하위 1/2 영역이 절사된 것이 된다. 마지막으로, S547에서 변수(CT50)가 0이면, BYTEIN 처리를 호출한다.
단, 자리 올림 경계치(CW66)가 1/2 영역 경계(T65)와 동등할 경우는 상위, 하위 중 어느 한 1/2 부분 영역을 취해도 되지만, 예를 들면 국제 표준 권고 T.82에서는 부호 바이트(0xFF) 직후에는 STUFF 바이트(0x00)를 삽입하여 전송 상의 제어(마커 코드 확보)를 행하기 때문에, 자리 올림을 전파시킨 쪽이 최종적인 부호 길이가 짧아지는 경우가 있다.
여기서는, 화상을 구분한 스트라이프(또는 라인) 구성 사이즈(바이트수)에 대해 준비해야 할 SC 카운터(52)의 사양을 확정할 수 있다고 했지만, 반대로 SC 카운터(52)의 사양을 변경할 수 없을 때에는 자리수 넘침이 없는 스트라이프(또는 라인) 구성 사이즈를 설정하면 된다.
실시예 3.
상기 실시예 2의 최대 지연이 8스트라이프였지만, 부호 비트가 발생하지 않을 때는 자리 올림의 유무는 해결된 채로 되어 있기 때문에, 1/2 영역 절사 처리를 행하지 않으면 부호 확정까지의 지연은 커지지만, SC 카운터(52)의 자리수 넘침을 억제하면서 부호 중에 1/2 영역 절사 처리에 따르는 여분의 부호 비트를 생기게 하지 않는 것도 가능하다.
본 실시예 3에서는, 일례로서 상기 실시예 2에서 설명한 ENCODER 처리를 설명하는 플로(도 14), DECODER 처리를 설명하는 플로(도 18)를 도 20, 도 21로 치환한 것으로 한다.
도 20은 부호화 처리의 전체 흐름을 도시하는 ENCODER 처리를 설명하는 플로 챠트이다. 도 14에 있어서의 스트라이프의 종료 판정(S104)과 1/2 영역 절사 처리를 행하는 HALVINGE 처리의 호출(S107) 사이에 스트라이프의 부호화 처리 중에 정규화 처리가 행해졌는지의(부호 비트가 발생했는지의) 여부 판정(S108)을 추가하여, 행해진 경우만 1/2 영역 절사 처리를 행한다.
도 21은 복호 처리의 전체 흐름을 도시하는 DECODER 처리를 설명하는 플로 챠트이다.
도 18에 있어서의 스트라이프의 종료 판정(S214)과 1/2 영역 절사 처리를 행하는 HALVINGD 처리의 호출(S216) 사이에 스트라이프의 복호 처리 중에 정규화 처리가 행해졌는지의(부호 비트가 판독되었는지의) 여부 판정(S217)을 추가하여, 행해진 경우만 1/2 영역 절사 처리를 행한다.
여기서, 부호 레지스터(C30A)의 구성 사양을 상기 실시예 1과 동일하게 하면, 부호기/복호기의 바이트 입출력이 동기 가능하기 때문에, 본 실시예 3에 있어서 정규화 처리의 유무에 의한 1/2 영역 절사 처리 실행을 라인 처리 중의 부호 바이트 입출력의 유무(실행 유무 플래그를 도입 또는 부호 비트수의 증가로부터 검출하는 등)로 행하는 것도 가능하다. 이 경우, 바이트 입출력까지의 여러 비트 미만의 정규화 처리가 발생해도 1/2 영역 절사 처리의 실행이 행해지지 않게 되어, 그에 따르는 여분의 부호 비트를 삭감할 수 있다.
실시예 4.
상기 실시예 2에서는, 화상을 스트라이프로 분할하여 부호화/복호할 때에, 1회만 부호기/복호기의 초기화 처리 및 후 처리를 행하는 것으로 하여 도시했다. 본 실시예 4에서는, 1/2 영역 절사 처리를 라인 처리마다 실행하여, 스트라이프 처리마다 부호기/복호기의 초기화 처리 및 후 처리를 행하는 것으로 한다.
여기서, 부호기의 후 처리(FLUSH 처리를 설명하는 플로)에는 미확정 부호를 확정하여 소거하는 처리가 행해지기 때문에, 스트라이프는 복수 라인으로 구성되는 것으로 하고, 라인 종단마다 1/2 영역 절사 처리를 행하는 것으로 한다.
본 실시예 4에서는, 일례로서 상기 실시예 2에서 설명한 ENCODER 처리를 설명하는 플로(도 14), DECODER 처리를 설명하는 플로(도 18)를 도 22, 도 23로 치환한 것으로 한다.
도 22는 부호화 처리의 전체 흐름을 도시하는 ENCODER 처리를 설명하는 플로 챠트이다. 도 14에 대해 라인의 종료 판정(S109)을 추가함으로써, 스트라이프의 종료 판정(S104), 화상의 종료 판정(S105)을 재구성함으로써, 라인마다 1/2 영역 절사 처리(S107)를 실행하고, 스트라이프마다 초기화 처리(S101), 후 처리(S106)를 실행하고 있다.
도 23은 복호 처리의 전체 흐름을 도시하는 DECODER 처리를 설명하는 플로 챠트이다.
도 18에 대해 라인의 종료 판정(S218)을 추가함으로써, 스트라이프의 종료 판정(S214), 화상의 종료 판정(S215)을 재구성함으로써, 라인마다 1/2 영역 절사 처리(S216)를 실행하고, 스트라이프마다 초기화 처리(S211)를 실행하고 있다.
이렇게, 라인마다 1/2 영역 절사 처리를 행함으로써, 상기 실시예 2와 마찬가지로 부호의 확정 지연은 최대 8라인이 되고, 또한 초기화 처리, 후 처리를 행함으로써 부호가 스트라이프마다 완결하게 된다.
실시예 5.
상기 실시예 3에서는, 화상을 스트라이프로 분할하여 부호화/복호할 때에, 1회만 부호기/복호기의 초기화 처리 및 후 처리를 행하는 것으로 하여 도시했다. 본 실시예 5에서는, 1/2 영역 절사 처리를 라인 처리마다 실행하여, 스트라이프 처리에 부호기/복호기의 초기화 처리 및 후 처리를 행하는 것으로 한다.
본 실시예 5에서는, 일례로서 상기 실시예 2에서 설명한 ENCODER 처리를 설명하는 플로(도 20), DEC0DER 처리를 설명하는 플로(도 21)를 도 24, 도 25로 치환한 것으로 한다.
도 24는 부호화 처리의 전체 흐름을 도시하는 ENCODER 처리를 설명하는 플로 챠트이다. 도 20에 대해 라인의 종료 판정(S109)을 추가함으로써 스트라이프의 종료 판정(S104), 화상의 종료 판정(S105)을 재구성함으로써, 라인마다 1/2 영역 절사 처리(S107)를 실행하고, 스트라이프마다 초기화 처리(S101), 후 처리(S106)를 실행하고 있다.
도 25는 복호 처리의 전체 흐름을 도시하는 DECODER 처리를 설명하는 플로 챠트이다.
도 21에 대해 라인의 종료 판정(S218)을 추가함으로써, 스트라이프의 종료 판정(S214), 화상의 종료 판정(S215)을 재구성함으로써, 라인마다 1/2 영역 절사 처리(S216)를 실행하고, 스트라이프마다 초기화 처리(S211)를 실행하고 있다.
이렇게, 라인마다 1/2 영역 절사 처리를 행함으로써, 상기 실시예 3과 마찬가지로 부호의 확정 지연은 상기 실시예 4보다 커지지만, SC 카운터(52)의 자리수 넘침을 억제하면서 부호 중에 여분의 부호 비트를 생기게 하지 않게 된다. 또, 상기 실시예 4와 마찬가지로 초기화 처리, 후 처리를 행함으로써 부호가 스트라이프마다 완결하게 된다.
상기 실시예 2에서 상기 실시예 5는 부호기와 복호기에 있어서의 1/2 영역 절사 처리의 동기를 스트라이프, 라인과 같은 단위로 행하고 있지만, 예를 들면 블록, 서브 블록과 같은 다른 어떠한 동기가 얻어지는 단위라도 상관없다. 또, 데이터는 반드시 화상이 아니라도 상관없다.
실시예 6.
본 실시예 6에서는, 예를 들면 바이트 단위로 부호를 출력할 경우에, 부호 중에 동일한 바이트치가 연속할 때 그 바이트치의 연속을 바이트치 및 그 길이를 의미하는 다른 바이트군으로 치환함으로써 총 부호 길이와 그 출력 시간을 단축하는 방법을 도시한다. 이하, 여기서 치환하는 바이트군을 런 렝스 마커라 부르며, 소정의 지시 방법에 의해 임의의 길이로 확장하여 수치를 표현할 수 있는 것으로 한다.
도 26에 도시하는 바와 같이, 예를 들면 4개 바이트(0xFF)의 연속을, (1)에서는 이스케이프 코드(ESC)와 그에 연속되는 0xFF가 4개 연속되는 것을 도시하는 바이트(MK)로 치환함으로써, ESC 코드를 확보하기 위해 삽입된 STUFF 바이트와 더불어 8바이트를 2바이트로 하는 예이다. (2)에서는 바이트(MK)는 0xFF의 치환인 것만을 도시하여, 그 길이를 바이트(RL)의 3바이트로 치환하는 예이다. 또, 0x00가 연속될 경우도 마찬가지로 0x00가 연속되는 것을 도시하는 바이트(MK)와 별도 필요하면 바이트(RL)로 치환하는 예이다. 여기서, 바이트(MK)는 그 치환 대상의 바이트치 및 그 길이를 식별할 수 있는 값이 배당되어 있는 것으로 한다.
또, 도 27에 도시하는 바와 같이, 7개의 바이트(0xFF)를 치환한 런 렝스 마커는 일례로서, 4개와 3개의 치환을 도시하는 2개의 런 렝스 마커, 또는 2개와 3개와 2개의 치환을 도시하는 2개의 런 렝스 마커 모두 같은 값으로, 또 다른 런 길이의 합계가 같아지는 조합이라도 같은 값이라 할 수 있다.
런 렝스 마커는 예를 들면 도 28에 도시하는 바와 같이, ESC 코드(0xFF)와 그에 연속되는 바이트(MK)로 도시한다고 하면, 바이트(MK)는 (8-N)비트의 치환 대상 바이트 식별부와 N비트의 런 렝스부로 구성된다. 이 경우, 치환 대상 바이트는 2의 (8-N)승 종류를 지정할 수 있고, 또 2의 N승까지의 치환 대상 바이트의 런 길이를 나타낼 수 있다.
단, 국제 표준 권고 T.82에서는 다른 마커 세그먼트가 정의되어 있기 때문에, 식별부에서 지정 가능한 모든 값을 사용할 수 있는 것은 아니다. 또, 다른 국제 표준 권고라도 별도 마커 세그먼트가 사용되고 있을 가능성이 있기 때문에, 여기서 런 렝스 마커를 사용할 때에는 그들 모든 마커 세그먼트와 중복하지 않도록 해야 한다.
또, 런 렝스 마커는 예를 들면 도 29에 도시하는 바와 같이, ESC 코드(0xFF)와 그에 연속되는 바이트(MK) 및 소정의 S바이트의 런 렝스부(RL)로 도시한다고 하면, 바이트(MK)는 8비트 모두가 치환 대상 바이트의 식별부가 된다. 이 경우, 치환 대상 바이트는 255종류(MK=STUFF를 제외한다)를 지정할 수 있고, 또 2의 (8×S)승까지의 치환 대상 바이트의 런 길이를 나타낼 수 있다.
더욱이, 런 렝스 마커는 예를 들면 도 30에 도시하는 바와 같이, ESC 코드(0xFF)와 그에 연속되는 바이트(MK) 및 S바이트의 런 렝스부(RL)로 도시한다고 하면, 바이트(MK)는 (8-N)비트의 치환 대상 바이트의 식별부와 N비트의 런 렝스 지시부로 구성된다. 이 경우, 치환 대상 바이트는 2의 (8-N)승 종류를 지정할 수 있고, 또 2의 N승 바이트까지의 런 렝스부의 바이트 길이를 나타낼 수 있다. 그리고, 2의 (8×S)승까지의 치환 대상 바이트의 런 길이를 나타낼 수 있다.
도 28에서 도 30에 런 렝스 마커의 일례를 도시했지만, 바이트(MK)로 치환 대상 바이트를 지시할 수 없을 때, ESC 및 바이트(MK)로 런 렝스 마커의 개시를 판정시켜, 고정 길이 또는 바이트(MK)로 지정한 길이의 런 렝스부에, 더욱이 치환 대상 바이트를 런 렝스부의 전 또는 후에 둠으로써 직접 지정하는 방법도 있다. 이방법에 의하면, 다른 마커 세그먼트에 대해, 런 렝스 마커인 것만을 바이트(MK)로 인식시키면, 치환 대상 바이트는 그 값에 의하지 않고 모두를 사용할 수 있게 된다.
또, 복수 바이트의 반복에 대해서도, 예를 들면 바이트(MK)로 그 반복되는 치환 대상 패턴의 바이트 길이를 나타내며, 패턴의 런 길이(반복 수)와 함께 패턴을 직접 지정하는 방법도 있다.
일례를 도 31a에 도시하면, ESC 코드(0xFF)와 식별부를 포함하는 마커(MK), 복수 바이트로 구성되는 치환 대상 패턴부(PT), 런 렝스부(RL)로 구성되는 것으로 한다. 여기서, 마커(MK)는 치환 대상 패턴부(PT)의 필드 길이(값(P)), 런 렝스부(RL)의 필드 길이(값(R))를 지정한다고 하면 P바이트의 치환 대상 패턴(PT)이 R바이트로 표현되는 RL회 반복되게 된다.
그 구체예로서, 3회 반복되는 2바이트의 패턴(0x01, 0x23)을 런 렝스 마커로 치환하면, 치환 대상 패턴부의 필드 길이(P)가 2, 런 렝스부의 필드 길이(R)가 1인 마커(MK)를 사용하여, 도 31b과 같이 도시된다.
마커(MK)에 있어서, 런 렝스 마커 식별부를 제외한 상기 2개의 필드 길이부는 그 식별부를 포함하는 바이트와 독립이라도 상관없다. 또, 치환 대상 패턴부(PT)의 필드 길이부와 런 렝스부(RL)의 필드 길이부, 더욱이 치환 대상 패턴부(PT)와 런 렝스부(RL)는 부호기와 복호기 사이에서 인식이 일치하면 상기 일례에 한하지 않고 각각 자유롭게 배치할 수 있다.
런 렝스 마커에 지시되는 치환 대상 바이트의 런 길이는 0은 아니기 때문에, 0이 최대치를 나타낼지, 또는 실제의 (런 길이-1)을 항상 런 렝스부에 채울지를 정해 둘 필요가 있다.
여기서, 부호기에 있어서의 0xFF 또는 0x00의 연속된 SC회의 바이트 출력(BYTEOUT 처리를 설명하는 플로 챠트인 S154, S162, FINALWRITES 처리를 설명하는 플로 챠트인 S204, S208, CODELOWER 처리를 설명하는 플로 챠트인 S524, CODEUPPER 처리를 설명하는 플로 챠트인 S536)에 대해서는, 예를 들면 도 32에 도시하는 바와 같이, RUNLENMARK 처리를 설명하는 플로 챠트로 런 렝스 마커로의 치환 처리를 용이하게 실행할 수 있다. 여기서, 부호기와 복호기에서는 상기 도 28에서 도 30 중 어느 형식의 런 렝스 마커를 사용할지 하는 것을 미리 정하고 있는 것으로 한다. 그 사용할 런 렝스 마커의 런 렝스부에 도시할 수 있는 최대치를 정수 MARKLEN(80)으로 한다. 예를 들면, 도 28에 있어서, N=4이면, 정수 MARKLEN(80)은 16이 된다.
도 32에 있어서, RL(81)은 SC개(52)의 바이트를 치환하기 위한 카운터 변수이다. S601에서는, 변수 SC치(52)를 변수 RL(81)로 설정한다. S602에서 변수 RL치(81)가 정수 MARKLEN(80)보다 크면, S603에서 길이 MARKLEN(80)에 대한 치환 대상 바이트를 나타내는 런 렝스(RL) 마커를 기록하고, S604에서 변수 RL(81)로부터 정수 MARKLEN(80)을 뺀다. S602에서 변수 RL치(81)가 정수 MARKLEN(80)보다 커지면, 마지막으로 S605에서 나머지 길이가 변수 RL치(81)의 치환 대상 바이트를 나타내는 런 렝스(RL) 마커를 기록하여, S606에서 변수 RL치(81)를 0으로 한다.
이 처리를 설명하는 플로 챠트에 의하면, 런 렝스 마커가 분할되어 연속 출력될 때 최대 길이인 것으로부터 출력되어, 마지막에 최대치 미만의 것이 출력되게 되지만, 상기 도 27에도 도시한 대로 이 출력 순으로 따르지 않아도 된다. 또, 치환 대상 바이트는 반드시 0x00 또는 0xFF일 필요 없이, 부호 출력을 감시함으로써 임의의 연속하는 부호 바이트를 치환해도 된다.
런 렝스 마커의 런 렝스부의 비트수가 SC 카운터(52)의 비트수 이상이면, 런 길이의 지시에 대해 단 1개의 런 렝스 마커로 지정하는 것이 가능하다.
치환 대상 바이트는 반드시 바이트인 것이 아니라, 예를 들면 워드, 더블 워드와 같은 멀티 바이트 단위라도 되며, 치환하는 런 렝스 마커를 적절하게 선택함으로써, 1바이트라도 되며, 복수로 구성되는 패턴을 대상으로 할 수도 있다.
실시예 7.
상기 실시예 6에 의하면, 런 길이가 변수 SC치(52)의 치환 대상 바이트는 모두 런 렝스 마커로 치환되게 된다. 본 실시예 7에서는, 도 33에 있어서, 일부의 런 렝스분만 런 렝스 마커로 치환하지 않고서 치환 대상 바이트를 그 길이만큼 그대로 출력할 수 있는 것으로 한다. 여기서, 런 렝스 마커의 구성 바이트수를 정수 MARKLENMIN(82)으로 한다. 예를 들면, 도 28이면 정수 MARKLENMIN은 2가 된다.
도 34는 런 렝스 마커의 치환 처리를 행하는 RUNLENMARK 처리를 설명하는 플로 챠트이다.
도 34에 있어서, S601에서 S604 및 S606은 상기 도 32와 동일한 처리가 행해진다. S607에 있어서 변수 RL치(81)가 정수 MARKLENMIN(82) 이상이면 S605에서 길이가 변수 RL치(81)의 치환 대상 바이트를 나타내는 런 렝스(RL) 마커를 기록하여, 정수 MARKLENMIN(82) 미만이면 S608에서 치환 대상 바이트를 변수 RL치(81)로 나타나는 개수만 기록한다.
이렇게, 치환 대상 바이트의 런 길이가 런 렝스 마커의 구성 바이트수보다 적으면 런 렝스 마커로 치환하지 않고서 치환 대상 바이트를 그 런의 길이만큼 그대로 출력함으로써 부호 길이를 짧게 할 수 있다. 어느 쪽에서 출력해도 길이가 같을 경우에는, 치환해도 치환하지 않아도 된다.
단, 치환 대상 바이트가 바이트(0xFF)일 경우에는, 치환하지 않을 때 STUFF 바이트의 삽입이 행해져 부호 길이가 2배가 되기 때문에, 보다 짧아지도록 길이 판정을 고려해야 한다.
실시예 8.
상기 실시예 6 혹은 상기 실시예 7에 있어서, 런 렝스 마커를 사용할 때에는 도 35에 도시하는 바와 같이, 출력되는 부호 중에 사용을 통지하는 정보를 포함시킬 수 있다.
늘 사용할 경우는 런 렝스 마커의 사용 통지는 행할 필요는 없지만, 예를 들면 상기 도 28에서 도 30 등의 런 렝스 마커 형식, 치환 대상 바이트의 종류별, 런 렝스부의 길이 제한 등의 일부 또는 모두에 대해서, 부호기로부터 복호기로 부가 정보를 미리 통지함으로써 동작 모드의 통일 설정을 도모할 수 있다.
또, 부호기는 부호화에 앞서 복호기에 실장되는 처리 능력을 확인하여(네고시에이션), 그 결과로부터 적용한 모드 정보를 통지해도 된다. 복호기 능력으로서는, 예를 들면 런 렝스 마커를 역변환하기 위한 런 렝스부의 카운터 자리수 등의 제한치가 있다.
더욱이, 이 경우, 복호기는 런 렝스 마커 사용 통지를 포함하지 않는 부호 데이터에 대해서는, 종래 부호기가 생성한 부호로서 간주할 수도 있다. 또, 부호기는 복호기가 종래의 복호기이면, 런 렝스 마커 사용 통지를 부호에 삽입하지 않고, 또 런 렝스 마커를 사용하지 않으면 된다.
실시예 9.
상기 실시예 6 혹은 상기 실시예 7에 도시된 런 렝스 마커를 종래 부호기 및 종래 복호기에서 사용하기 위해, 종래 부호기와 회선(통신로) 사이, 또는 회선(통신로)과 종래 복호기 사이에 어댑터를 삽입함으로써 상호 통신을 가능하게 할 수 있다.
우선, 도 36에 도시하는 바와 같이, 부호기 측의 어댑터(런 렝스 마커 변환기)는 데이터로부터 부호를 구별하여, 부호 바이트를 감시하면서 동일 바이트치가 연속할 경우, 그 런 길이를 다시 SC라 하면, 도 32 또는 도 34의 처리를 설명하는 플로 챠트에 의해 런 렝스 마커로 치환한다. 또, 복호기 측의 어댑터(런 렝스 마커 역변환기)는 마찬가지로 데이터로부터 부호를 구별하여, 부호 바이트를 감시하면서 런 렝스 마커를 검출한 경우 지시된 치환 대상 바이트를 검출된 런 길이만큼 연속하여 출력한다.
또, 도 37에 도시하는 바와 같이, 복호기 측에 런 렝스 마커 역변환기가 없을 때, 부호기는 런 렝스 마커 변환기를 실질적으로 사용하지 않고서 그대로 부호를 통과시키며, 도 38에 도시하는 바와 같이, 부호기 측에 런 렝스 마커 변환기가 없을 때, 복호기는 런 렝스 마커 역변환기를 실질적으로 사용하지 않고서 그대로 부호를 통과시킴으로써 런 렝스 마커를 사용할 수 없는 종래 장치와의 호환성을 보존할 수 있다.
여기서, 종래 부호기/복호기에 접속되는 어댑터(런 렝스 변환기/역변환기)는 외견이 부호기/복호기에 대해 독립 구성이라도 되며, 일체 구성이라도 상관없다.
이상과 같이, 부호화 및 복호 처리는 계산기 또는 장치 내부에서 데이터를 축적하거나, 공중 회선 또는 전용 회선에 의한 무선·유선에 의한 통신 또는 기억 매체에 의해, 외부와의 데이터 교환을 행하는 팩시밀리 장치, 스캐너 장치, 프린터 장치, 컴퓨터, 데이터 베이스 장치, 화상 표시 장치, 화상 축적 장치, 데이터 축적 장치, 화상 전송 장치, 데이터 전송 장치 등의 하드웨어에 적용할 수 있다. 또, 범용 계산기에 소프트웨어와 일부 하드웨어로 상기 각 장치 상당의 기능을 실현할 수 있어, 장치의 외견이 일체여도 복수로 독립하고 있어도 상관없다. 더욱이, 전용 하드웨어 내부에 대해서도, 이들 처리 기능을 탑재한 LSI(반도체 칩)나 미들웨어에 의한 실장 형식에는 제한되는 것은 아니다. 통신에 대해서도, 전기적 또는 광학적 무선이나 유선, 또 공중 회선이나 전용 회선 혹은 LAN, WAN, 인터넷, 인트라 넷 등의 통신 형식에 제한되는 것은 아니다. 기억 매체로의 기록 형식도 자기적, 전기적, 광학적 혹은 디지털식이나 아날로그식과 같은 기록 형식에 제한된 것도 아니고, 또, 기록 매체는 장치에 고정되거나 분리되거나에 제한되는 것도 아니다. 더욱이, 시인 가부에 관계 없이 잉크 등에서의 기록 형식이라도 상관없다.
또한, 본 발명에 있어서, 블록도, 플로도는 화상 부호화에 적용하는 것으로서 설명을 행했지만, 일반적인 데이터 부호화에도 사용할 수 있는 것은 말할 필요도 없다.
이상과 같이, 본 발명에 의하면, 부호가 확정될 때까지 대기하는 부호 길이를 기억하는 카운터의 자리수 넘침을 없앨 수 있으며, 적당한 간격으로 부호를 강제적으로 확정함으로써 자리 올림을 제어하여 부호의 확정 지연 시간을 유한화하여 어림할 수 있다. 또, 부호치가 확정되었을 때에 소정 패턴으로의 치환에 의해 총 부호 길이과 부호 소거 시간을 단축할 수 있다.
또, 자리 올림 경계를 엄밀하게 계산하지 않고서 자리 올림 제어를 행할 수 있음과 동시에, 복호기에서 부호기의 부호 레지스터를 재현하지 않고서 자리 올림 제어를 행할 수 있다는 효과가 얻어진다.

Claims (21)

  1. 정보원 데이터를 축적하여 부호화 대상 데이터와 그 보조적인 패러미터(콘텍스트)를 출력하는 데이터 메모리와, 상기 보조 패러미터를 기초로 지정되는 상기 부호화 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 메모리와, 상기 학습 데이터를 기초로 지정되는 부호화 패러미터를 출력하는 확률 추정 테이블과, 상기 부호화 대상 데이터와 상기 부호화 패러미터를 기초로 산술 부호화를 행하여 부호를 출력하는 부호기를 구비하는 부호화 장치에 있어서,
    소정 단위의 정보원 데이터의 입력 처리 또는 부호 출력을 소정 간격으로서 계측하여 통지하는 동기 검출기와,
    상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출기를 구비하며,
    상기 부호기는 상기 자리 올림 검출기에 의해 지시된 상기 유효 영역을 상위상위(上位)와 하위(下位)로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 부호화 장치.
  2. 제 1 항에 있어서,
    상기 부호기는 상기 자리 올림 경계 검출기에서 자리 올림 경계가 검출되었을 때, 상기 자리 올림 경계 검출기에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 부호화 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 자리 올림 경계 검출기는 검출된 자리 올림 경계를 포함하는 부분 영역을 절사하도록 지시하는 것을 특징으로 하는 부호화 장치.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 소정 간격은 소정 단위의 부호화 대상 데이터를 부호화했을 때인 것을 특징으로 하는 부호화 장치.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 소정 간격은 소정 단위의 부호 출력이 발생했을 때인 것을 특징으로 하는 부호화 장치.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 소정 간격은 소정 단위의 부호 출력이 발생하고, 또한 부호 출력치가 소정치가 될 때인 것을 특징으로 하는 부호화 장치.
  7. 제 1 항에 있어서,
    상기 자리 올림 경계 검출기는 상기 유효 영역 내에 자리 올림 경계가 검출되지 않아도 상기 유효 영역을 상위와 하위로 등분한 부분 영역 중 어느 한쪽 부분 영역을 지시하는 것을 특징으로 하는 부호화 장치.
  8. 제 1 항 또는 제 2 항에 있어서,
    상기 부호기는 확정된 부호에 동일한 값이 연속할 때에 그 값과 길이를 특정할 수 있는 런 렝스 마커(run-length maker)로 치환하는 런 렝스 마커 변환기를 갖는 것을 특징으로 하는 부호화 장치.
  9. 복호 대상 데이터에 대한 보조적인 패러미터(콘텍스트)를 출력하여 복호된 상기 복호 대상 데이터를 축적하여 정보원 데이터로서 출력하는 데이터 메모리와, 상기 보조 패러미터를 기초로 지정되는 상기 복호 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 메모리와, 상기 학습 데이터를 기초로 지정되는 복호 패러미터를 출력하는 확률 추정 테이블과, 상기 복호 패러미터와 부호를 기초로 산술 복호를 행하여 상기 복호 대상 데이터를 출력하는 복호기를 구비하는 복호화 장치에 있어서,
    소정 단위의 정보원 데이터의 출력 처리 또는 부호 입력을 소정 간격으로서 계측하여 통지하는 동기 검출기와,
    상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출기를 구비하며,
    상기 복호기는 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 상기 부호치를 포함하지 않는 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 복호화 장치.
  10. 제 9 항에 있어서,
    상기 복호기는 상기 자리 올림 경계 검출기에서 자리 올림 경계가 검출되었을 때, 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 상기 부호치를 포함하지 않는 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 복호화 장치.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 자리 올림 경계 검출기는 검출된 자리 올림 경계를 포함하는 부분 영역을 절사하도록 지시하는 것을 특징으로 하는 복호화 장치.
  12. 제 9 항 또는 제 10 항에 있어서,
    상기 소정 간격은 소정 단위의 복호 대상 데이터를 복호했을 때인 것을 특징으로 하는 복호화 장치.
  13. 제 9 항 또는 제 10 항에 있어서,
    상기 소정 간격은 소정 단위의 부호 입력이 발생했을 때인 것을 특징으로 하는 복호화 장치.
  14. 제 9 항에 있어서,
    상기 소정 간격은 소정 단위의 부호 입력이 발생하고, 또한 복호와 동시에 재현되는 부호 출력치가 소정치가 될 때인 것을 특징으로 하는 복호화 장치.
  15. 제 9 항 또는 제 10 항에 있어서,
    상기 복호기는 런 렝스 마커를 검출하면, 치환된 길이의 원래 부호치로 역변환하는 런 렝스 마커 역변환기를 갖는 것을 특징으로 하는 복호화 장치.
  16. (a) 정보원 데이터를 축적하여 부호화 대상 데이터와 그 보조적인 패러미터(콘텍스트)를 출력하는 데이터 축적 단계와,
    (b) 상기 보조 패러미터를 기초로 지정되는 상기 부호화 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 단계와,
    (c) 상기 학습 데이터를 기초로 지정되는 부호화 패러미터를 출력하는 확률 추정 단계와,
    (d) 상기 부호화 대상 데이터와 상기 부호화 패러미터를 기초로 산술 부호화를 행하여 부호를 출력하는 부호화 단계와,
    (e) 소정 단위의 정보원 데이터의 입력 처리 또는 부호 출력을 소정 간격으로서 계측하여 통지하는 동기 검출 단계와,
    (f) 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출 단계와,
    (g) 상기 자리 올림 경계 검출 단계에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 부호화 수정 단계를 갖는 부호화 방법.
  17. 제 16 항에 있어서,
    상기 부호화 수정 단계는 상기 자리 올림 경계 검출 단계에서 자리 올림 경계가 검출되었을 때, 상기 자리 올림 경계 검출 단계에서 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 부호화 방법.
  18. 제 16 항 또는 제 17 항에 있어서,
    상기 부호화 단계 및 상기 부호화 수정 단계는 확정된 부호에 동일한 값이 연속할 때에 그 값과 길이를 특정할 수 있는 런 렝스 마커로 치환하는 변환 단계를 갖는 것을 특징으로 하는 부호화 방법.
  19. (a) 복호 대상 데이터에 대한 보조적인 패러미터(콘텍스트)를 출력하여 복호 된 상기 복호 대상 데이터를 축적하여 정보원 데이터로서 출력하는 데이터 축적 단계와,
    (b) 상기 보조 패러미터를 기초로 지정되는 상기 복호 대상 데이터에 관한 학습 데이터를 축적하여 출력하는 학습 단계와,
    (c) 상기 학습 데이터를 기초로 지정되는 복호 패러미터를 출력하는 확률 추정 단계와,
    (d) 상기 복호 패러미터와 부호를 기초로 산술 복호를 행하여 상기 복호 대상 데이터를 출력하는 복호화 단계와,
    (e) 소정 단위의 정보원 데이터의 출력 처리 또는 부호 입력을 소정 간격으로서 계측하여 통지하는 동기 검출 단계와,
    (f) 상기 소정 간격에서 유효 영역 내의 자리 올림 경계치를 검출함과 동시에, 그 검출 결과에 기초하여 유효 영역 내의 절사 영역을 지시하는 자리 올림 경계 검출 단계와,
    (g) 상기 자리 올림 경계 검출 단계에 의해 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 복호화 수정 단계를 갖는 복호화 방법.
  20. 제 19 항에 있어서,
    상기 복호화 상태 수정 단계는 상기 자리 올림 경계 검출 단계에서 자리 올림 경계가 검출되었을 때, 상기 자리 올림 경계 검출 단계에서 지시된 상기 유효 영역을 상위와 하위로 등분한 부분 영역의 한쪽을 절사하여 상기 유효 영역을 갱신하는 것을 특징으로 하는 복호화 방법.
  21. 제 19 항 또는 제 20 항에 있어서,
    상기 복호화 단계는 런 렝스 마커를 검출하면, 치환된 길이의 원래 부호치로 역변환하는 런 렝스 마커 역변환 단계를 갖는 것을 특징으로 하는 복호화 방법.
KR1020000018886A 1999-04-12 2000-04-11 부호화 장치, 복호화 장치, 부호화 복호화 장치, 부호화방법 및 복호화 방법 KR100327688B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP99-104162 1999-04-12
JP10416299A JP3745160B2 (ja) 1999-04-12 1999-04-12 符号化装置、復号化装置、符号化方法並びに復号化方法

Publications (2)

Publication Number Publication Date
KR20000077019A true KR20000077019A (ko) 2000-12-26
KR100327688B1 KR100327688B1 (ko) 2002-03-09

Family

ID=14373371

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000018886A KR100327688B1 (ko) 1999-04-12 2000-04-11 부호화 장치, 복호화 장치, 부호화 복호화 장치, 부호화방법 및 복호화 방법

Country Status (6)

Country Link
US (1) US6373408B1 (ko)
EP (1) EP1045520B1 (ko)
JP (1) JP3745160B2 (ko)
KR (1) KR100327688B1 (ko)
DE (1) DE60000247T2 (ko)
TW (1) TW447196B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228001B2 (en) 2001-11-16 2007-06-05 Ntt Docomo, Inc. Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
US7159000B2 (en) 2002-03-21 2007-01-02 Microsoft Corporation Methods and systems for repairing playlists
JP3853710B2 (ja) * 2002-07-15 2006-12-06 Necアクセステクニカ株式会社 ディジタル画像符号化装置およびディジタル画像符号化方法
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
BRPI0306987B1 (pt) * 2002-11-20 2018-04-03 Godo Kaisha Ip Bridge 1 “Método de prognóstico de imagem em movimento”
US7359004B2 (en) 2003-05-23 2008-04-15 Microsoft Corporation Bi-level and full-color video combination for video communication
TW200518481A (en) * 2003-10-29 2005-06-01 Nec Corp Decoder and encoder of arithmetic code, encoding apparatus and decoding apparatus having intermediate buffer inserted between reverse binary converter and binary converter
US7286120B2 (en) * 2003-11-12 2007-10-23 Hewlett-Packard Development Company, L.P. Large area display and method of manufacturing same
US7627033B2 (en) * 2004-11-15 2009-12-01 Microsoft Corporation Video rate control
KR100829558B1 (ko) * 2005-01-12 2008-05-14 삼성전자주식회사 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법
US7053803B1 (en) * 2005-01-31 2006-05-30 Hewlett Packard Development Company, L.P. Data compression
JP4722214B2 (ja) * 2007-04-18 2011-07-13 三菱電機株式会社 符号化装置、復号装置、符号変換装置及びプログラム
US9425823B1 (en) 2015-03-23 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. State-split based encoder and decoder with table compression

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4675652A (en) * 1986-04-11 1987-06-23 Quantum Corporation Integrated encoder decoder for variable length, zero run length limited codes
JPH0834432B2 (ja) 1989-01-31 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
USRE35781E (en) 1989-01-31 1998-05-05 Mitsubishi Denki Kabushiki Kaisha Coding method of image information
JPH0834434B2 (ja) 1990-02-26 1996-03-29 三菱電機株式会社 符号化装置及び符号化方法
KR950013404B1 (ko) 1991-11-15 1995-11-08 미쯔비시덴끼 가부시끼가이샤 부호전송장치
JP2755091B2 (ja) 1992-06-22 1998-05-20 三菱電機株式会社 符号化方式及び符号化方法
JP2863052B2 (ja) * 1993-03-15 1999-03-03 松下電器産業株式会社 デジタルデータ符号化方法、復号化方法、符号化装置および復号化装置
JPH10134519A (ja) * 1996-10-31 1998-05-22 Sony Corp 変調装置および復調装置とそれらの方法
US6032284A (en) * 1997-03-12 2000-02-29 Cirrus Logic, Inc. Trellis coding system for disc storage systems
US5999110A (en) * 1998-02-17 1999-12-07 International Business Machines Corporation Defect tolerant binary synchronization mark

Also Published As

Publication number Publication date
TW447196B (en) 2001-07-21
DE60000247T2 (de) 2003-03-13
US20020006225A1 (en) 2002-01-17
EP1045520A1 (en) 2000-10-18
JP2000299641A (ja) 2000-10-24
DE60000247D1 (de) 2002-08-08
US6373408B1 (en) 2002-04-16
EP1045520B1 (en) 2002-07-03
JP3745160B2 (ja) 2006-02-15
KR100327688B1 (ko) 2002-03-09

Similar Documents

Publication Publication Date Title
KR100327688B1 (ko) 부호화 장치, 복호화 장치, 부호화 복호화 장치, 부호화방법 및 복호화 방법
KR100340828B1 (ko) 적응 확률 추정방법 및 적응 부호화 방법과 적응 복호화 방법
EP0618545A2 (en) Image processing system suitable for colored character recognition
WO1998033322A1 (fr) Procede de codage et de decodage, et dispositif de codage et de decodage
CN109740563B (zh) 一种面向视频监控的运动目标检测方法
JP3684128B2 (ja) 算術符号化/復号化方法ならびに算術符号化/復号化装置
CN110191341B (zh) 一种深度数据的编码方法和解码方法
JP2007086956A (ja) 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム
JP3801501B2 (ja) 符号化装置及び復号装置及び符号化・復号装置及び符号化方法及び復号方法及び符号化・復号方法及びプログラム
JPH11284844A (ja) 2値画像データの解析及び変換処理方法
JP3350482B2 (ja) 算術符号化装置および算術復号化装置
JP2002094386A (ja) 符号化装置、復号装置、符号化方法および復号方法
JP2009232269A (ja) 画像処理装置および画像処理プログラム
JP2009159493A (ja) 変換テーブル圧縮方法およびプログラム
JP3078692B2 (ja) 算術符号器
JPH0818798A (ja) 二値画像符号化装置
JP3124890B2 (ja) 二値画像符号化装置
JP2003198858A (ja) 符号化装置および復号化装置
JP3095947B2 (ja) 画像符号化装置
JP3235510B2 (ja) 符号化方法及び符号化装置、復号化方法及び復号化装置
JP4526069B2 (ja) 画情報の算術符号化装置及び画情報の算術復号化装置
JP3753580B2 (ja) データ符号化方法、データ復号化方法、およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH0530362A (ja) 2値画像データ圧縮方式
JPH09130617A (ja) 画像処理装置及びその処理方法
JP6569242B2 (ja) 画像処理装置、画像処理システム及び画像処理プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090209

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee