KR910000742B1 - 2진 데이타 압축·신장 처리장치 - Google Patents

2진 데이타 압축·신장 처리장치 Download PDF

Info

Publication number
KR910000742B1
KR910000742B1 KR1019870001793A KR870001793A KR910000742B1 KR 910000742 B1 KR910000742 B1 KR 910000742B1 KR 1019870001793 A KR1019870001793 A KR 1019870001793A KR 870001793 A KR870001793 A KR 870001793A KR 910000742 B1 KR910000742 B1 KR 910000742B1
Authority
KR
South Korea
Prior art keywords
data
processing
code
reference line
decoding
Prior art date
Application number
KR1019870001793A
Other languages
English (en)
Other versions
KR870008446A (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 KR870008446A publication Critical patent/KR870008446A/ko
Application granted granted Critical
Publication of KR910000742B1 publication Critical patent/KR910000742B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/417Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
    • H04N1/4175Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding involving the encoding of tone transitions with respect to tone transitions in a reference line

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Abstract

내용 없음.

Description

2진 데이타 압축·신장 처리장치
제1도는 본 발명의 한 실시예에 따른 2진 데이타 압축·신장 처리장치의 블록도.
제2도는 제1도에 도시된 디코딩 처리부의 디코딩부 및 인코딩 종단 처리부의 구성을 도시한 블록도.
제3도는 제1도에 도시된 생성 처리부의 카운터부 및 생성부의 구성을 도시한 블록도.
제4도는 제1도에 도시된 디코딩 처리부의 EOL 검출기 및 참조라인 어드레스 발생기의 구성을 도시한 블록도.
제5도는 제1도에 도시된 생성 처리부의 a1·b1 검출기의 구성을 도시한 블록도.
제6도는 제2도에 도시된 디코딩 처리부의 디코딩 순서를 도시한 선도.
제7도는 제2도에 도시된 디코딩 처리부의 생성 순서를 도시한 선도.
제8도는 제2도에 도시된 디코더 ROM의 어드레스 포멧.
제9a도는 제2도에 도시된 디코더 ROM의 출력 포멧.
제9b도는 제9a도에 도시된 디코더 ROM의 출력 포멧의 데이타 부분에 대한 출력 포멧.
제10a도 내지 제10f도는 본 발명에 따른 2진 데이타 압축·신장 처리장치의 동작을 도시한 타이밍도.
제11도는 본 발명에 따른 2진 데이타 압축·신장 처리장치의 시스템 구성을 도시한 선도.
제12도는 제11도에 도시된 시스템의 다른 실시예를 도시한 선도.
제13도는 제11도에 도시된 시스템의 또 다른 실시예를 도시한 선도.
* 도면의 주요부분에 대한 부호의 설명
1 : 2진 데이타 처리 제어기 2 : 압축 및 신장 처리부
3 : 참조라인 어드레스 발생기 4 : 참조라인 데이타 기억부
5 : 클록 발생기 7 : 디코딩 처리부
8 : 생성 처리부 12 : 인코딩 종단 처리부
13 : 디코딩부 14 : 카운터부
15 : 생성부 16 : a1·b1 검출기
30 : 퍼널 시프터 36 : 디코딩 포인터
80 : 정지 어드레스 레지스터 81 : EOL 검출기
94 : 참조라인 버퍼 102 : b1 검출기
104 : a1 검출기 326 : 참조라인 버퍼 메모리
330 : LSI 칩
본 발명은 2진 데이타를 고속으로 압축 및 신장하고 특히 수정-수정-판독(Modified-Modified-Read : M2R) 방법에 의해 압축된 2진 데이타의 병렬식 파이프라인 처리를 수행함으로써 범용 사용 능력이 향상될 수 있으며, 저가격이 되도록 하나의 칩내에 관련회로를 갖는 2진 데이타 압축·신장 처리장치에 관한 것이다.
2진 데이타를 압축 및 신장하기 위한 방법으로는 CCITT에 의해 추천된 MH 방법, MR 방법 및 M2R 방법과 같은 코딩 방법이 국제적으로 표준화되어 있으며 널리 채용되고 있다. 이러한 세가지 코딩 방법, 즉 MH, MR 및 M2R 방법중에서 M2R 방법이 가장 높은 화상 압축 효율을 갖는다.
M2R 방법은 그룹 IV의 팩시밀리 시스템용 코딩 방법으로 잘 알려져 있다. 이 방법에 있어서는, a. 라인의 종단(End-of-Line : EOL) 코드가 생략되고, b. K 파라미터가 무한대로 설정되며, c. 한 페이지의 시작시에 참조라인의 모든 비트가 백의 픽셀로 나타난다.
이러한 가정으로, 데이타 압축비는 MR 방법의 경우보다 개선될 수 있다. 만일 전송 에러가 발생될 경우, 그 에러는 주요 문제로서 차후의 주사선에 순차적으로 전송된다. 이것을 방지하기 위해서, 1차원 코딩 주사선이 압축 처리에 삽입된다. K 파라미터는 이러한 1차원 코딩 주사선 사이의 2차원 코딩 주사선의 갯수이다.
통상의 2진 데이타 압축·신장 처리장치는 이러한 방법에 따라 인코드된 데이타의 신장 처리를 수행하기 위하여 범용 마이크로 컴퓨터를 사용하여 소프트웨어 방식으로 실현된다. 이러한 처리에 있어서, 상기 장치는 데이터 전송 속도가 9600bps로 제한되는 팩시밀리 시스템에 인가될때 아무런 문제가 없다. 그러나, 통상의 장치가 컴퓨터 시스템의 워크 스테이션상에 화상 데이타를 표시하는데 사용될때에는 양호한 맨 머신(man-machine) 인터페이스, 예를 들어 1/2초 또는 그 이하의 페이지 응답시간이 얻어질 수 없다. 그러므로, 순차적 신장 처리가 M2R 방법에 따라 실행될때, 그 동작 속도는 MH 방법에 비해 상당히 감소된다.
이러한 문제의 한가지 원인은 전체 처리 시스템의 처리방법 문제이다. 보다 구체적으로 말하여, 통상의 시스템에서 디코딩은 비트 직렬 방식으로 수행된다. 그 문제를 해결하기 위하여 병렬처리, 선행처리 및 파이프 라인처리 등이 널리 이용된다. 2진 화상 데이타 신장처리는 명백히 다음과 같이 나누어질 수 있다.
a. 코드의 디코딩 처리.
b. 디코드된 코드에 대한 화상 데이타의 생성처리.
따라서, 디코딩 및 생성처리는 별도의 하드웨어 구성에 의해 병렬로 수행된다. 이러한 구성에서는, 한 코드가 신장되는 동안 다음 코드는 디코드 됨으로써, 전체 처리가 파이프라인된다. MH 및 MR 방법에 의해 인코드된 2진 데이타가 신장될때에는, 선행처리에 있어서 아무런 문제가 없다. 그러나, M2R 방법은 다음의 문제점이 있다.
MH, MR 및 M2R 방법 모두에 있어서, 각 라인의 시작 런(starting run)은 항상 백·런(white run)이고 백의 픽셀로 디코드되어야 한다. MH 및 MR 방법의 경우에는 EOL 코드가 사용된다. 따라서, 선행처리를 수행하는 디코딩 처리부는 생성 처리부에 의한 생성처리의 진행에도 불구하고 EOL 코드가 존재하기 때문에 다음 라인의 시작을 검출할 수 있다.
그러나, M2R 방법에서는 EOL 코드가 없기 때문에, 다음 라인의 시작만이 생성 처리부가 각 코드를 인출하여 라인의 종단에 도달될때 검출될 수 있다. 따라서, 다음 라인의 시작을 결정하지 않는다면, 이 부분의 색이 백색으로 결정될 것인지 판단될 수 없다.
결과적으로, 백·런과 흑·런에 대한 별도의 코드표를 사용한 수평 모드의 디코딩 동작은 선행 방식으로 선행될 수 없다. 보다 구체적으로 말하여, M2R 방법의 신장처리에 있어서는 선행처리가 효과적으로 수행될 수 없다.
동작속도 문제의 다른 원인은 시스템 구성 문제이다.
장치가 MH 코딩 방법에 따라 동작될때 바로 앞의 라인상의 화상 데이타가 입력될 필요가 없다. 그러나, MR 및 M2R 방법에서 대응처리 라인에 바로 앞선 라인 또는 참조라인상의 화상 패턴 데이타는 압축 및 신장 처리시 참조된다.
이것은 통상의 압축·신장 처리장치에서의 신장 처리를 참조로하여 설명될 것이다. 압축·신장 처리장치는 화상 데이타를 화상 데이타 버스를 통해 외부 화상 메모리와 교환하고, 화상 데이타 어드레스 버스를 통해 외부 화상 메모리의 어드레스를 지정한다. 그 장치는 이 처리장치를 제어하기 위한 마이크로 컴퓨터의 시스템 버스에 접속되어 시스템 버스상의 명령 및 어드레스(적어도 그것의 일부)를 수신한다. 코드 데이타 버스를 통해 공급된 코드를 신장함으로써 얻어진 화상 데이타는 화상 데이타 버스상에 출력되고, 현재의 처리라인의 신장처리에 필요한 참조라인상의 화상 패턴 데이타 역시 화상 데이타 버스를 통해 외부 화상 메모리로부터 판독된다.
이러한 이유때문에, MR 및 M2R 방법에서는 정상적으로 대량의 데이타를 다루어야하는 화상 데이타 버스를 따르는 데이타 전송율이 종종 전체 수행의 장애가 된다. 따라서, MR 및 M2R 방법에서는 신장율이 MH 방법에 비해 상당히 감소된다.
논리적으로 화상 메모리는 2차원 어드레스를 갖기 때문에, 그들을 1차원의 실제 어드레스로 변경하기 위한 복합회로가 필요하다. 이 장치에서, 화상 데이타 어드레스 발생기는 중요하다. 그러나, 어드레스 발생기가 고가격으로 제조되는 경우에도, 이 어드레스 발생기는 이러한 통상의 압축·신장 처리장치를 사용한 시스템에서 효과적으로 이용될 수 없다.
다른 영상처리 기능, 예컨대 영역 추출, 확대, 축소, 회전 등을 위한 고속처리를 실현하기 위해서는, 그 압축·신장 처리장치에서의 것과 유사한 어드레스 발생기가 외부 회로로 제공되어야 한다.
초소형, 경량, 저가격의 시스템을 실현하기 위하여, 상기 2진 데이타 압축·신장 처리장치는 반도체 칩상에 장착되어 상용화될 수 있다. 그러나, 상술한 장치에서는, 화상 데이타 버스가 신장시에 출력 동작을 수행하고 압축시에 입력 동작을 수행하여야 한다.
따라서, 구동기 및 수신기 I/O 핀이 각 화상 데이타 버스의 핀에 할당되어야 한다. 또한, 코드 데이타 버스가 신장시에 입력 동작을, 압축시에 출력 동작을 수행하여야 하기 때문에 구동기 및 수신기 I/O 핀을 필요로 한다.
아울러, 이 장치를 이용하는 시스템에 파이프라인 처리를 수행할때, 데이타 흐름 방향이 결정될 것이다. 이러한 목적을 위해 화상 데이타 버스 및 코드 데이타 버스가 선택기 회로를 사용하여 스위치되고 이중 버스 스위칭 동작이 그 장치의 내부 및 외부에서 필요하다.
따라서, 2진 데이타 압축·신장 처리장치가 반도체 칩으로 갖추어질때, 그것은 넓은 칩 영역을 필요로 한다. 여러 시스템 응용이 고려되어야 하기 때문에, 그 장치에 결합된 어드레스 발생기는 종종 응용 요건에 대처할 수 없다.
상술한 바와 같이, 통상의 장치는 처리속도, 범용 사용능력 및 칩 면적에서 문제를 갖는다.
본 발명은 상기 상황을 고려하여 이루어진 것으로서, 특히 M2R 방법에 의해 인코드된 2진 화상 데이타의 화상처리에 있어서, 고속으로 2진 데이타를 압축 및 신장할 수 있고, 입력 코드를 파이프라인 방법으로 병렬식 디코드할 수 있고, 확대기능 예컨대 비압축 모드가 제공되는 경우에도 팩시밀 블록의 종단(End-Of-Facsimile-Block : EOFB) 코드(MH 및 MR 방법에서 두개의 연속되는 EOL 코드와 동일한 패턴을 가짐)를 검출할 수 있고, 선행처리로 고속 신장처리를 실현할 수 있게 함으로써, 처리시간이 단축되고 넓은 응용 범위를 가지며(예컨대 파이프라인 처리를 수행할 수 있음) 단일 반도체 칩상에 집적될 수 있어서 가격을 저감시킬 수 있는 2진 데이타 압축·신장처리를 제공하는데에 그 목적이 있다.
상기 목적을 달성하기 위하여, 2진 데이타의 고속 압축 및 신장을 할 수 있도록 압축·신장처리 시스템 구성에 적용될 수 있는 2진 데이타 압축·신장 처리장치가 제공되는데, 그 장치는 소정의 데이타 길이를 가진 2진 데이타를 입력시키고, 그 입력된 2진 데이타를 압축 모드에서 참조라인 데이타로서 출력시키고, 입력된 2진 데이타에 대응하는 참조라인 데이타를 판독하고, 판독된 참조라인 데이타에 따라서 신장 모드에서 입력된 2진 데이타의 신장처리와 압축 모드에서 입력된 2진 데이타의 압축처리를 수행하고, 신장 모드에서 발생되며 소정의 데이타 길이를 참조라인 데이타로서 가지는 화상 데이타를 출력시키며, 처리된 2진 데이타를 외부 장치로 출력시키기 위한 처리 수단과; 상기 처리 수단으로부터 입력된 참조라인 데이타를 현재의 처리라인과 다음 처리라인에 대하여 소정의 데이타 길이 단위로 기억하고, 처리수단으로 판독되어 나온 참조라인 데이타를 출력시키기 위한 참조라인 데이타 기억 수단을 구비하고 있다.
본 발명에 의하면 다음의 효과가 얻어질 수 있다.
1. M2R 코드의 디코딩시에는, 파이프라인 방식으로 병렬처리가 실현되도록 선행처리를 할 수 있기 때문에, 처리 특히 신장처리가 고속으로 수행될 수 있다. MH 및 MR 코드는 동일한 처리를 얻게 되므로, 그것의 처리 속도가 종래의 장치에 비해 개선될 수 있다.
2. 선행처리가 수행될지라도, 처리되어질 라인이 갱신될때에 재디코딩 처리(redecoding processing)가 용이하게 수행될 수 있다.
3. 특수처리가 EOFB 코드를 판별하기 위하여 라인의 경계부에서 수행되지 않는 경우에도 디코딩 처리부가 EOFB 코드의 1/2을 검출하도록 라인의 종단에서(2클록 늦게) 즉시 검출할 수 있다.
4. 참조라인 버퍼가 제공되기 때문에, 화상 메모리가 참조라인 화상 데이타를 판독하는데에 필요치 않으므로 고속처리가 가능하다.
5. 참조라인 버퍼가 제공되기 때문에 화상 메모리에 참조라인 데이타 어드레스를 발생하기 위한 복합 회로가 생략될 수 있다.
6. 복합 화상 메모리 어드레스 회로가 생략될 수 있기 때문에, 신장처리가 2진 데이타의 병렬처리를 수행하도록 사용되지 않은 칩 영역에 결합될 수 있어서 고속처리가 가능하다.
7. 화상 메모리용의 어드레스 회로가 포함되지 않으므로 본 발명의 장치가 임의의 어드레스를 가진 시스템에 적용될 수 있다.
8. 데이타 버스의 전송 방향이 미리 정해져 있기 때문에, 장치가 파이프라인 시스템에 용이하게 적용될 수 있다.
9. 데이타 버스의 전송 방향이 미리 정해져 있기 때문에, 칩 면적이 감소될 수 있다.
이하, 도면을 참조하여, 본 발명의 2진 데이타 압축·신장 처리장치의 한 실시예에 대해 상세히 설명한다.
우선, 제1도를 참조하여 본 발명의 2진 데이타 압축·신장 처리장치의 구성에 대해 설명한다. 상기실시예의 장치는 장치 전체의 동작을 제어하기 위한 2진 데이타 처리 제어기(1), 2진 입력 데이타가 코드일때 2진 화상 패턴 데이타를 발생하고 2진 입력 데이타가 화상 패턴 데이타일때는 코드를 발생하는 압축 및 신장 처리부(2), 참조라인 데이타를 발생하기 위한 참조라인 데이타 기억부(4), 상기 참조라인 데이타 기억부(4)에 대한 어드레스 데이타를 발생하기 위한 참조라인 어드레스 발생기(3) 및 제어 클록을 발생하기 위한 클록 발생기(5)를 구비한다.
상기 압축 및 신장 처리부(2)는 2진 입력 데이타가 코드일때 런 랭스 데이타(run length data)를 발생하기 위한 디코딩 처리부(7)와, 상기 런 랭스 데이타에 따라 처리된 2진 화상 패턴 데이타를 처리하기 위한 생성 처리부(8)를 구비한다.
상기 디코딩 처리부(7)는 생성처리가 라인의 종단까지 완료되었는지를 검사해서 소정의 조건하에서 EOL 코드를 검출하는 EOL 검출기(11), 압축처리중에 EOL 코드를 생성하는데 사용된 인코딩 종단 처리부(12) 및 디코딩부(13)를 구비한다.
상기 생성 처리부(8)는 디코딩부(13)로부터의 출력을 래치하고 처리된 바이트수를 카운트하기 위한 카운터부(14), 상기 카운터부(14)의 데이타에 의거해서 처리된 2진 데이타를 생성하기 위한 생성부(15) 및 a1, b1을 검출하기 위한 a1·b1 검출기(16)를 구비한다.
상기 2진 데이타 처리 제어기(1)는 제어 클록을 생성하기 위한 클록 발생기(5)에 접속되어, 상기 클록 발생기(5)의 클록들에 의거해서 디코딩 처리부(7), 새성 처리부(8) 및 참조라인 어드레스 발생기(3)의 동작 타이밍을 제어하고, 처리 진행에 의거해서 필요한 명령들을 출력한다.
다음에, 제2 내지 제5도를 참조하여 각 부의 구성에 대해 설명한다. 도면을 간략하게 하기 위해 제어신호들의 도시는 생략하였다.
우선, 디코딩 처리부(7)에 대해 상세히 설명한다. 제2도에는 디코딩 처리부(7)중에서 인코딩 종단 처리부(12)와 디코딩부(13)가 도시되어 있다. EOL 검출기(11)는 참조라인 어드레스 발생기(3)와 함께 제4도를 참조하여 기술된다. 래치(22)는 1바이트 데이타를 입력 데이타 버스에 입력하고 래치한다. 상기 래치(22)에 의해 래치된 2진 데이타는 인버터(24)에 의해 인버트되고 레지스터(26)의 EOL 검출기(11)에 데이타 K로서 입력된다. 레지스터(26)는 입력 바이트 데이타 RDTI15-08을 데이타 RDTI07-00으로 시프트시키고, 새로운 입력 데이타를 데이타 RDTI15-08로서 래치시키며, 데이타 RDTI07-00과 함께 16비트 데이타로서 유지시킨다.
16비트의 레지스터 데이타 RDTI15-00은 인코딩 종단 처리부(12)를 거쳐 퍼널 시프터(30)로 출력된다. 데이타 RDTI07-00은 바이트 데이타 F로서 참조라인 데이타 기억부(4)로 출력된다. 디코딩 포인터(36)는 퍼널 시프터(30)에 입력된 레지스터 데이타 RDTI15-00중에서 다음에 추출될 코드의 LSB(최하위 비트)위치, 즉 코드의 일부를 지시한다. 상기 디코딩 포인터(36)의 지시값은 2진 데이타 처리 제어기(1)의 제어신호에 따라 퍼널 시프터(30)에 공급된다.
상기 퍼널 시프터(30)는 상기 디코딩 포인터(36)의 지시값에 의해 데이타 RDTI15-00을 좌측으로 시프트함으로써 얻어진 9비트의 출력 LSHT08-00을 생성해서 선택기(31)로 출력시킨다. 비압축 모드에서 코딩하는 경우, 출력 데이타 LSHT08-00의 데이타 LSHT04-00은 데이타 G로서 생성 처리부(8)로 출력된다. 데이타 LSHT08-00은 2진 데이타 처리 제어기(1)의 데이타 LSHT10-09에 대응하는 데이타 X에 가산되고, 11비트 데이타로서 선택기(31)로 출력된다. 상기 선택기(31)는 상기 2진 데이타 처리 제어기(1)로부터 데이타 LSHT08-06 또는 데이타 LSHT08-07에 대응하는 데이타 Y를 수신한다. 이러한 입력 데이타들이 상기 2진 데이타 처리 제어기(1)의 제어신호에 응답하여 선택되고, 11비트 어드레스 데이타로서 디코더 ROM(32)으로 출력된다.
상기 디코더 ROM(32)은 16비트의 데이타 DROM15-00을 출력한다. 특히, 데이타 DROM07-00에서는, 압축처리시에 2진 입력 데이타가 출력되고, 신장처리시에는 런 랭스 데이타가 출력된다. 런 랭스 데이타 I는 생성 처리부(8)로 전송된다. 데이타 DROM11-08에서는, 입력된 데이타중 의미있는 데이타가 출력된다. 데이타 DROM15-12에서는, 다음 상태를 지정하기 위한 제어 데이타가 출력된다. 어드레스 포멧과 출력 포멧에 대해서는 후에 상세히 설명한다.
데이타 DROM11-08은 가산기(34)로 출력된다. 동시에, 가산기(34)는 디코딩 포인터(36)로부터 데이타를 수신한다. 따라서, 가산기(34)에서 데이타 DROM11-08이 상기 디코딩 포인터(36)의 데이타에 가산되고, 가산된 결과 데이타는 선택기(38)로 출력된다. 상기 선택기(38)는 a1·b1 검출기(16)로부터 데이타 D도 수신하는데, 상기 데이타 D는 압축처리시에는 사용되나 신장처리시에는 사용될 수 없는 데이타이다. 따라서, 신장 처리가 상기 2진 데이타 처리 제어기(1)의 제어신호에 따라 실행될때, 상기 가산된 데이타는 다시 디코딩 포인터(36)의 내용이 된다. 이러한 방식으로 디코딩 포인터(36)가 디코드된 코드의 다음 코드의 LSB 위치를 지시한다.
상기 가산기(34)에 의해 가산된 결과, 즉 23비트가 "1"이 되면, 이것은 데이타 J에 의해 상기 제어기(1)로 출력된다. 이것은 1바이트분의 처리가 완료되었다는 것을 의미한다. 상기 제어기(1)는 가산기(34)의 데이타 J에 따라 레지스터(26)에 제어신호를 출력한다. 레지스터(26)는 상기 제어기(1)의 제어신호에 따라 데이타 RDTI15-08을 데이타 RDTI07-00이 되도록 바이트 단위로 좌측으로 시프트한다. 새로운 바이트 데이타는 제어기(1)의 제어신호에 따라 래치(22)에 입력되어 래치되고, 그리고 레지스터(26)의 데이타 RDTI15-08 부분에 래치된다. 가산기(34)의 가산 결과의 하위 3비트들이 포인터(36)로 출력되고 이것에 의해 디코드될 코드의 LSB 위치는 항상 레지스터(26)의 데이타 RDTI07-00중에 존재하게 된다.
이하, 제3도를 참조하여, 생성 처리부(8)의 카운터부(14)와 생성부(15)에 의해 설명한다. 상기 카운터부(14)는 선택기(40,44)들과 RL 카운터(42)를 구비한다. 생성부(15)는 제3도에 도시된 회로중에서 카운터부(14)를 제외한 회로로 구성된다.
디코더 ROM(32)의 디코딩 결과 I는 선택기(40)에 입력된다. 선택기(40)는 상기 제어기(1)로부터 데이타 L도 수신한다. 데이타들은 상기 제어기(1)의 제어신호에 응답해서 선택되고, RL 카운터(42)로 출력된다. 선택기(40)의 출력 데이타중 02-00비트 부분도 선택기(44)로 출력된다. 상기 RL 카운터(42)는 12비트 길이를 갖는 카운터이고, 상기 제어기(1)의 제어신호에 따라 미리 설정된 위치에서 상기 선택기(40)의 데이타를 배치한다. 상기 RL 카운터(42)는 상기 제어기(1)의 카운트 펄스가 선택기(40)의 출력 데이타를 프리세트 값으로서 사용함에 따라 카운트를 출력시킨다.
RL 카운터(42)의 출력은 선택기(44)로 출력되고, 디코드된 코드에 의해 결정된 처리 회수가 완료되었는지를 확인하기 위해 데이타 M으로서 제어기(1)로도 출력된다. 선택기(44)는 카운터(42)의 출력, 선택기(40)의 출력 및 a1·b1 검출기(16)로부터 데이타 A를 수신하고, 상기 제어기(1)의 제어신호에 응답하여 상기 수신된 데이타중 하나를 선택해서 인코더 ROM(46)으로 출력한다.
상기 인코더 ROM(46)은 칼라를 지정하기 위한 데이타와 신장처리 혹은 압축처리를 지시하기 위한 데이타를 포함하는 데이타 N을 제어기(1)로부터 수신한다. 인코더 ROM(46)은 선택기(44)의 데이타와 상기 제어기(1)의 데이타 N을 어드레스 데이타로서 수신하고, 8비트의 데이타 EROM07-00을 선태기(48)로 출력한다.
데이타 EROM07-00중 데이타 DROM07-05는 가산기(52)로 출력된다. 가산기(52), 선택기(54) 및 화상 포인터(56)로 구성된 회로는 디코딩부(8)의 회로와 동일하게 동작한다. 특히, 화상 포인터(56)는 지시값을 발생한다. 디코드된 코드에 대한 생성처리가 완료된 후, 화상 포인터(56)의 지시값은 가산기(52)에; 의해 데이타 EROM07-05에 가산되고, 가산된 결과 데이타는 선택기(54)로 출력된다.
데이타 C는 a1·b1 검출기(16)로부터 선택기(54)로 입력되고, 상기 제어기(1)의 제어신호에 의해 선택되어 화상 포인터(56)의 지시값이 된다. 가산기(52)의 가산 결과 즉, 23비트 데이타가 "1"이 되면, 이것은 데이타 0에 의해 제어기(1)로 출력된다.
선택기(48)는 데이타 EROM07-05과, 디코딩 처리부(7)로부터 래치(58)를 거쳐 전송되는 데이타 G를 수신하고, 제어기(1)의 제어신호에 응답해서 상기 데이타들중 하나를 선택하여 배럴(barrel) 시프터로 출력한다. 상기 배럴 시프터(50)는 화상 포인터로부터의 지시값에 따라 입력 데이타를 회전시키고, 회전된 데이타를 선택기(60)로 출력시킨다. 동시에, 시프터(50)는 회전된 데이타를 데이타 RODT15-08로서 출력한다.
데이타 RODT07-00과 데이타 RODT15-00은 제어기(1)의 제어신호에 따라 선택기(64)에 의해 선택되고, 그 선택 결과는 선택기(60)에 입력된다. 선택기(60)의 출력은 데이타 RODT07-00으로서 레지스터(62)에 공급된다. 레지스터(62)는 제어기(1)의 제어신호에 따라 데이타 RODT15-08을 데이타 RODT07-00으로 시프트한다. 데이타 RODT07-00과 데이타 RODT15-08은 선택기(64)로 출력된다.
또한, 데이타 RODT07-00은 1바이트의 화상 데이타가 생성될때 데이타 P로서 참조라인 데이타 기억부(4)로 출력되고, 인버터(24)와 유사한 인버터(66)로도 출력되고 최종적으로는 데이타 버스로 출력된다.
이제, 제4도를 참조하여 상기 참조라인 어드레스 발생기(3), 디코딩 처리부(7)의 EOL 검출기(11) 및 참조라인 데이타 기억부(4)의 구성에 대해 설명한다.
상기 디코딩 처리부(7)의 EOL 검출기(11)는 정지 어드레스 레지스터(80), 비교기(90) 및 EOL 검출기(81)를 구비한다. 참조라인 어드레스 발생기(3)는 어드레스 카운터(82), 가산기(84), 선택기(86) 및 어드레스 레지스터(88)를 구비한다. 또, 참조라인 데이타 기억부(4)는 선택기(92)와 참조라인 버퍼 RAM(94)을 구비한다.
정지 어드레스 레지스터(80)는 1라인의 런 랭스 데이타를 바이트단위로 미리 래치하고, 10비트 데이타를 비교기(90)로 출력한다. 어드레스 카운터(82)는 상기 제어기(1)로부터 데이타 Q를 수신한다. 데이타 Q는 1바이트의 2진 데이타처리가 완료될때마다 카운터(82)로 입력되고, 카운터(82)는 1라인 처리가 완료될때까지 데이타 Q를 어큐뮬레이트한다. 따라서, 어드레스 카운터(82)의 출력은 2진 데이타 처리가 대응처리 라인상에서 진행된 바이트 위치를 지시한다.
어드레스 카운터(82)는 1라인 처리가 완료될때 제어기(1)의 제어신호에 응답하여 리세트되고, 새로운 라인처리가 개시될때 카운팅을 재개시한다. 상기 어드레스 카운터(82)의 카운트 값은 비교기(90), 선택기(86) 및 가산기(84)로 출력된다. 또한, 비교기(90)는 정지 어드레스 레지스터(80로부터 1라인분의 런 랭스 데이타를 바이트 단위로 수신해서, 어드레스 카운터(82)의 카운트 값과 비교한다. 그 비교결과가 동일한 경우에는, 화상 발생이 대응처리 라인의 종단까지 도달한 것을 의미한다. 동시에, 데이타 T는 제어기(1)로 출력된다.
가산기(84)는 제어기(1)로부터 데이타 R을 수신해서 어드레스 카운터(82)의 카운트 값에 가산하고 그 합을 선택기(86)로 출력한다. 선택기(86)는 제어기(1)의 제어신호에 응답해서 어드레스 카운터(82)의 어드레스 데이타와 가산기(84)의 어드레스 데이타를 선택하고, 그 선택 결과를 어드레스 레지스터(88)로 출력한다.
또한, 어드레스 레지스터(88)는 제어기(1)로부터 데이타 S를 수신해서, 선택기(86)의 출력과 함께 참조라인 버퍼 RAM(94)으로 출력시킨다.
참조라인 버퍼 RAM(94)은 참조라인상의 화상 데이타와, 다음 라인의 처리에 대한 대응처리 라인상의 화상 데이타를 기억한다. 따라서, 두 라인에 대한 화상 데이타가 RAM(94)에 기억되고, 데이타 S는 지정 메모리 영역을 전환하도록, 즉 선택될 영역을 결정하도록 제어기(1)에서 어드레스 레지스터(88)로 공급된다.
선택기(92)는 입력 바이트 화상 데이타 F, 즉 인코딩 종단 처리부(28)를 가진 데이타 RIDt07-00과, 데이타 P, 즉 처리된 화상 데이타 RODT07-00을 수신하고, 제어기(1)의 제어신호에 응답하여 상기 데이타들중 하나를 선택해서, 그 선택 결과를 참조라인 버퍼 RAM(94)에 기억시킨다.
레지스터(96)에 대한 설명으로부터 명백히 이해할 수 있듯이, 참조라인 데이타가 판독될때 선택기(86)는 가산기(84)로부터 출력 데이타를 선택하고, 참조라인 데이타가 기억될때는 어드레스 카운터(82)로부터 출력 데이타를 선택해서 출력시킨다.
새로운 라인처리가 시작될때, 참조라인 데이타가 판독되면, 레지스터(96)에 필요한 참조 데이타를 출력시키기 위해, "2"와 "1"이 제어기(1)로부터 데이타로서 가산기(84)에 입력된다. 레지스터(96)는 필요한 참조라인 데이타를 유지할 수 있게 된다. 레지스터(96)의 데이타 REF3-10은 데이타 U로서 b1 검출기로 출력된다.
EOL 검출기(81)는 디코딩 처리부(7) 혹은 생성 처리부(8)에 예컨대, 에러가 발생했을대 EOL 코드를 검출한다. EOL 검출기(81)는 디코딩부(13)로부터 데이타 K를 수신하고, EOL 코드를 검출한 것을 데이타 Z에 의해서 제어기(1)에 알린다.
이하, 제5도를 참조하여, 생성 처리부(8)의 a1·b1 검출기(16)의 구성에 대해 설명한다. a1·b1 검출기(16)는 수직 모드 및 패스 모드에서 자주 사용된다.
ROM(94)으로부터 판독된 데이타는 레지스터(96)에 의해 데이타 REF15-08로서 래치된다. 상기 레지스터(96)는 제어기(1)의 제어신호에 따라 데이타 03-00을 REF4-1로, 상기 데이타 REF07-04를 데이타 REF03-00이 되도록 4비트 단위로 시프트한다. 참조라인에 결합된 데이타 U는 레지스터(96)에서 b1 검출기(102)로 공급된다. 데이타 F는 인코딩 종단 처리부(28)에서 a1 검출기(104)로 공급된다. a1 및 b1 검출기들(104,102)은 a0 포인터(100)로부터 a0 지시값을 수신하고, 레지스터(96)의 a0 보다 우측 위치에서 인코딩 라인과 기준 라인상에서 칼라 변화를 갖는 a1 및 b1 픽셀위치를 각기 검출한다.
b1 검출기(102)에 의해 검출된 위치 b1은 감산기(120)와 선택기(108)로 출력된다. "+4"가 레지스터(96)와 관련해서 위치 b1에 가산된다. a1 검출기(104)에 의해 검출된 위치 a1은 선택기들(114,116)로 출력된다. 선택기(116)는 제어기(1)의 제어신호에 따라 a1 검출기(104)로부터의 데이타와 제어기(1)로부터의 데이타 "+4"를 선택해서, 그 선택 결과를 감산기(120)로 출력한다.
간산기(120)는 그 계산 결과를 데이타 A로서 생성부(15)로 출력시킨다. 선택기(108)는 a0 포인터(100)의 지시값과 b1 검출기(102)의 출력 b1을 수신하고, 선택기(110)는 제어기(1)의 "-4"와 생성부의 데이타 B를 수신한다. 선택기들(108,110)은 제어기(1)의 제어신호에 따라 출력값을 각기 선택해서 그 선택 데이타를 가산기(112)로 출력한다.
가산기(112)는 그 합을 선택기(114)로 출력한다. 선택기(114)도 a1 검출기(104)의 출력 a1, a0 포인터(100)의 지시값 및 제어기(1)의 데이타 W를 수신해서, 제어기(1)의 제어신호에 응답해서 그 출력을 선택한다. 선택된 출력은 데(이타 C로서 생성부(15)에 공급되고, 데이타 D로서 디코딩부(13)에도 공급된다.
선택기(114)의 출력도 a0 포인터(100)에 의해 지시값으로서 래치된다. a0 포인터(100)의 지시값과 정지 어드레스 레지스터(80)의 데이타는 비교기(106)에 의해 비교되고, 그 비교결과는 데이타 V로서 제어기(1)로 출력된다.
이제, 본 발명의 2진 데이타 압축·신장 처리장치의 동작에 대해 설명한다.
먼저, 신장처리에 대해 상세히 설명한다. 새로운 페이지의 시장처리가 개시될때, 팩시밀리 시스템의 경우에는 MH, MR 또는 M2R 방법을 결정하는 데이타를 포함한 제어 데이타가 먼저 공급된다. 상기 제어 데이타는 1라인에 대한 런 랭스를 지시하는 데이타를 포함한다. 정지 어드레스 레지스터(80)는 1라인에 대한 런 랭스 데이타를 바이트 단위로 기억한다. M2R 방법에 의한 처리에 있어서는, 페이지의 개시점에서 참조라인상의 화상 데이타의 비트들은 모두 "0"이다. 이런 상태에서, EOL 코드가 우선 EOL 검출기(81)에 의해 검출되어 신장처리가 개시된다.
새로운 라인에 대한 신장처리가 개시될때 필요한 조건은 초기화된다. 예컨대, 다음과 같은 초기화가 실행된다. 어드레스 카운터(82)가 리세트되고, 어드레스를 스위치할 수 있도록 제어기(1)로부터 데이타 S가 어드레스 레지스터(88)의 비트 "0"에 공급된다. 그 이후, "1"이 제어기(1)로부터 데이타 R로서 가산기(84)에 입력되며, 기준 라인상의 제1바이트 데이타가 참조라인 버퍼 RAM(94)으로부터 판독되어 데이타 REF15-08로서 레지스터(97)에 기억된다. 상기 레지스터(96)에 기억된 데이타가 데이타 REF07-00으로 시프트된 후, "2"가 제어기(1)로부터 데이타 R로서 공급되고, RAM(94)에서 판독한 바이트 데이타는 전술한 방법과 동일한 방법으로 레지스터(96)에 데이타 REF15-08로서 기억된다. 포인터들(35,36 및 100은 리세트된다. 데이타 W는 제어기(1)로부터 선택기(114)로 입력되고, 제어기(1)의 제어신호에 따라 선택되므로 새로운 값이 a0 포인터(100)에서 세트된다. 칼라는 백색이 되도록 세트된다.
예컨대, 전술한 바와 같은 초기화가 실행된 후 M2R 방법에 의해 인코드된 코드가 데이타 입력 버스를 통해 8비트 단위(1바이트)로 디코딩 처리부(7)에 입력되면, 코드는 제어기(1)의 제어신호에 따라 래치(22)에 의해 래치된다.
주로, 화상 데이타와 압축 코드를 유지하는 레지스터에서는, 좌측 상위 비트는 "0'이다. 이와는 달리, 주로 2진 제어 데이타를 유지하는 레지스터에서는 우측 상위 비트가 "0"이다. 따라서, 입력 2진 데이타가 인버트되어야 한다. 그러므로, 입력 2진 데이타는 인버터(24)에 의해 인버터되고, 레지스터(26)와 EOL 검출기(11)로 출력된다. 레지스터(26)에서, 이미 입력된 바이트 데이타 RET15-08은 제어기(1)의 제어신호에 따라 데이타 RDTI07-00이 되도록 시프트되고, 새로운 입력 데이타는 데이타 RDTI15-08로서 래치되고, 데이타 RDTI07-00가 함께 16비트 데이타로서 유지된다. 이같은 방법으로 페이지의 개시점에서 2바이트의 2진 데이타가 입력된다.
16비트의 레지스터 데이타 RDTI15-00은 인코딩 종단 처리부(28)로 출력된다. 상기 회로는 압축처리시에만 동작되고, 신장처리시에는 데이타를 간단히 통과시킨다. 따라서, 16비트의 레지스터 데이타 RDTI15-00은 인코딩 종단 처리부(28)를 통해 퍼널 시프터(30)로 출력된다.
디코딩 포인터(36)는 퍼널 시프터(30)에 입력된 레지스터 데이타 RDTI15-00중에서 다음에 추출될 코드의 LSB 위치를 지시한다. 퍼널 시프터(30)는 포인터(36)의 지시값에 의해 결정된 비트수만큼 데이타 LSHT15-00을 좌측으로 시프트함으로써 얻어진 9비트의 출력 LSHT08-00을 발생한다. 예를 들어, 포인터(36)의 값이 "3"이면, 퍼널 시프터(30)는 입력 데이타 RDTI15-00에서 데이타 RDTI11-03을 선택하고 그것을 데이타 LSHT08-00으로 출력한다.
데이타 LSHT08-00을 제어기(1)의 데이타 LSHT10-09에 따라 데이타에 가산되고, 그 가산 결과는 선택기(31)로 출력된다. 선택기(31)는 제어기(1)의 데이타 LSHT06-08 또는 LSHT07-08에 대응하는 데이타도 수신한다. 이러한 입력 데이타들은 제어기(1)의 제어신호에 따라 선택되고, 선택된 데이타는 11비트 어드레스 데이타로서 디코더 ROM(32)으로 출력된다.
이런 상황에서, M2R 방법을 사용한 경우에는, 직전에 디코드된 코드의 생성처리가 완료되지 않았으면, 선택기(31)에 결합된 제어신호가 생성되지 않는다. 따라서, 선택기(31)는 생성 처리부의 완료를 데이타 LSHT08-00가 공급된 상태로 대기시킨다.
선택기(31)가 생성 처리부의 완료를 유지하고 있지 않다면, 백·런(white run)은 현재 처리 라인의 종단까지 처리된 후 다음 라인의 개시 코드에 대해 강제로 세트될 수 없다. 이 경우에 있어서, 만약 개시 코드에 대한 디코딩이 실행되면, 디코딩 포인터(36)의 값은 리세트되어야 하고 디코딩은 재개되어야 하므로 결국 불편해진다.
그러나, 선행처리가 실행되지 않으면, 페이지의 종단에서의 EOFB 코드(End of Facsimile Block : FOFB 코드는 이중 EOL 코드들을 갖는다)는 디코드될 수 없고, EOFB 코드에서의 처리는 정지된다. 따라서, EOFB 코드내의 EOL 코드는 EOL 검출기(81)에 의해 검출되고, 디코딩은 본 발명의 처리에 의해 실행된다.
MH 및 MR 방법은 M2R 방법과는 달리 EOL 코드를 사용하기 때문에, 코드 데이타는 현재의 생성처리의 완료를 기다리지 않고 선행처리에 의해 디코드될 수 있다. 따라서, M2R 방법의 디코딩 처리보다는 MH 및 MR 방법의 디코딩 처리가 종래의 장치보다 더 고속으로 실행될 수 있다.
데이타 LSHT10-00은 제어기(1)의 제어신호에 따라 디코더 ROM(32)으로 출력된다. 데이타 Y08-06이 선택되면, 데이타 LSHT10-10의 08-06 비트부 혹은 08-07비트부가 데이타 LSHT의 대응부분으로서 선택되고, 데이타 LSHT08-00부분은 디코더 ROM(32)으로 출력될 대응 비트들만큼 MSB 방향으로 시프트된다.
디코더 ROM(32)의 어드레스 포멧은 데이타가 선택되는 시기와 선택되는 데이타수를 나타낸다 상기 디코더 ROM(32)는 제8도에 도시된 어드레스 데이타 포멧에 따라 제9도에 표시된 포멧을 갖는 16비트의 데이타 DROM15-00을 출력한다. 특히, 런 랭스 데이타는 데이타 DROM07-00로서 출력되고, 코드 랭스 데이타는 데이타 DROM11-08로서 출력되고, 다음 상태를 지정하기 위한 데이타는 데이타 DROM15-12로서 출력된다. 어드레스 포멧과 데이타 포멧에 대해서는 후에 상세히 설명한다.
상기 데이타 DROM11-08은 가산기(34)로 출력된다. 동시에, 가산기(34)는 포인터(36)로부터 데이타를 수신한다. 그리고, 데이타 DROM11-08은 포인터(36)의 내용에 가산되고, 그 가산 결과는, 선택기(38)로 출력된다. 선택기(38)는 a1·b1 검출기(16)로부터 신호 D를 수신하는데, 상기 신호 D는 압축처리시에는 사용되지만 신장처리시에는 사용되지 않는다. 그러나, 이 경우는 신장처리가 실행되고 있기 때문에, 가산기(34)의 출력은 제어기(1)의 제어신호에 따라 선택된다. 따라서, 가산된 데이타가 다시 포인터(16)의 내용이 된다. 포인터(36)는 이와 같이 디코드된 코드의 다음 코드의 LSB 위치를 지시한다.
상기 가산기(34)의 가산 결과, 즉 23비트가 "1"이면, 이것은 데이타 J에 의해서 제어기(1)에 알려진다. 이것은 1바이트분으 디코딩 처리가 완료된 것을 의미한다. 따라서, 제어기(1)는 레지스터(26)에 제어 신호를 출력해서, 데이타 RDTI15-08을 데이타 RDTI07-00이 되도록 바이트 단위로 좌측으로 시프트시킨다. 새로운 바이트 데이타는 제어기(1)의 제어 신호에 따라 래치(22)에 의해 입력되어 래치되고, 레지스터(26)에 데이타 RDTI15-08로서 래치된다. 포인터(36)는 가산기(34)로부터 가산된 데이타의 하위 3비트를 수신하므로, 디코드될 코드의 LSB 위치는 항상 레지스터(26)의 데이타 RDTI07-00에 존재하게 된다.
이제 제8, 9a도 및 제9b도는 참조하여 디코더 ROM(32)의 어드레스 포멧 및 출력 포멧에 대해 설명한다. 여기서, 디코드될 코드 단위는 수평 모드의 식별 코드, 메이크-업 코드, 종료 코드, 수직 모드 코드 혹은 패스 모드 코드이다. 만약 메이크-업 코드 혹은 종료 코드가 9비트들을 초과하면, 2개의 디코딩 처리가 실행된다.
디코더 ROM(32)의 어드레스는 11비트 구조를 갖는다. 상기 디코더 ROM(32)의 신장 처리를 위한 백·런 1차원 코드표 1, 흑·런 1차원 코드표 2, 흑·런 1차원 코드표 1, 2차원 코드표, 특수 코드 검출표, 비압축 코드표 1, 비압축 코드표 2, 그외의 비트 단위로 처리되는 표 및 압축 처리용의 표를 포함한다.
거의 모든 백·런 1차원 코드들은 9비트 이하의 비트들로 구성된다. 단, 메이크 업 코드는 런 랭스가 1792비트 이상일 때만 10비트 이상으로 구성되고, 상기 메이크-업 코드는 동일한 런 랭스를 갖는 흑·런의 코드와 일치한다. 그러므로, 9비트 이하의 백·런 1차원 코드는 백·런 1차원 코드표 1에 의해 처리된다. 만약 코드가 10비트 이상으로 구성되면, 흑·런 1차원 코드표 2는 백·런 1차원 코드표 1에 연속해서 사용된다.
코드 "0"은 제어기(1)로부터 백·런 1차원 코드표 1의 데이타 LSHT10-09로서 공급된다. 대부분의 흑·런 1차원 코드들은 10비트 이상으로 구성되는데 최대 길이는 13비트이다. 1792비트 이상의 런 랭스를 갖는 흑·런 메이크-업 코드는 백·런 메이크-업 코드와 공통이다. 따라서, 만약 흑·런 코드가 1비트 이상으로 구성된다면 그것은 흑·런 1차원 코드표 1을 사용해서 처리되고, 만약 8비트 이상으로 구성되면 2단계 디코딩 처리는 흑·런 1차원 코드표 2와 흑·런 1차원 코드표 1을 사용하여 순차 처리된다.
코드 "10"은 흑·런 1차원 코드표 1의 데이타 LSHT10-09로서 제어기(1)로부터 공급되고, 코드 "0"은 데이타 LSHT08-07로서 공급된다. 코드 "1"은 흑·런 1차원 코드표(2)의 데이타 LSHT10-09로서 제어기(1)로부터 공급된다. MR 방법 및 M2R 방법에 의해 인코드된 수평 모드에서의 MH 코드 부분은 1차원 코드표들을 사용해서 처리된다.
따라서, 패스 모드 및 수직 모드에서의 코드들과 수평 모드에서의 식별 코드들은 2차원 코드표를 사용해서 처리된다. 코드 "100"은 제어기(1)로부터 데이타 LSHT10-07로서 공급된다.
특수 코드 검출표는 EOL 혹은 EOFB 코드를 검출할때와 비압축 모드를 검출할때 사용된다. 이러한 목적을 위해 6비트 코드가 인출된다. 코드 "10110"은 제어기(1)로부터 데이타 LSHT10-06로서 공급된다. 비압축 모드시에는 비압축 코드표 1과 비압축 코드표 2가 제공된다. 코드 "10100"과 코드 "10101"은 제어기(1)로부터 상기 표들의 데이타 LSHT10-06으로서 공급된다.
제9a도에는 디코더 ROM(32)의 출력 포멧이 도시되어 있다. 데이타 DROM15-00의 07-00비트 부분은 디코드된 코드의 런 랭스 데이타를 나타낸다. 데이타 DROM15-00의 11-08비트 부분은 디코드된 코드의 코드길이 데이타를 나타낸다. 데이타 DROM15-00의 15-12비트 부분은 제어시에 사용되는 다음 상태 데이타를 나타내고, 다음에 언급된 표를 지정하기 위한 데이타와 다음 코드에 대한 칼라를 지정하기 위한 데이타를 포함한다. 그리고, 상기 15-12비트 부분은 수평 모드에서 메이크-업 혹은 종료 코드를 지시하는 데이타도 포함한다. 이 데이타는 제어기(1)에 디코딩 결과 예컨대, 디코드된 코드가 수평 모드의 종료 코드인지 수평 모드, 수직 모드, 패스 모드 또는 비압축 모드의 메이크-업 코드인지를 알려준다.
제9b도에는 데이타 DROM07-00의 출력 포멧이 도시되어 있다. 특히 1차운 코딩 메이크-업 코드에 있어서, 데이타 DROM05-00의 6비트들은 실제의 런 랭스를 "1"만큼 감소시켜서 얻어진 값을 지시한다. 1차원 코딩 종료 코드에 있어서, 데이타 DROM05-00의 6비트들은 실제의 런 랭스를 "1"만큼 감소시켜서 얻어진 값을 지시한다. 2차원 코딩 수직 모드에 있어서, 데이타 DROM03-00의 4비트들은 런 랭스의 상태, 예컨대 a1과 b1의 차로부터 4를 감산한 값을 지시한다. 2차원 코딩 패스 모드에 있어서, 데이타 DROM03-00의 4비트들은 "1100"을 지시한다.
또한, 비압축 모드에 있어서 데이타 DROM02-00은 패턴 길이를 지시한다. 따라서 종료 코드(000111)가 레지스터(26)에 기억된 데이타에 입력되며 포인터(36)에 의해 지정된 점으로부터 우측에 입력되면 "1"의 백·런 랭스를 갖는 종료 코드라는 것을 지시하는 데이타는 상기 비트 패턴으로 개시하는 9비트, 즉 "000111xxx"(x는 "0" 또는 "1"이다)에 의해 액세스된 디코더 ROM(32)의 07-00비트 일부분에서, 상기 코드의 길이는 6비트이란 사실을 지시하는 데이타는 11-08비트 부분에서 출력된다.
특히, 런 랭스 데이타 "100000"은 데이타 DROM07-00으로서 출력되고, 코드 길이 데이타 "110"은 데이타 DROM11-08로서 출력된다.
제6도를 참조하여 상기 디코딩부(13)가 신장 처리시에 표를 어떤 방식으로 참조하는지를 나타내는 상태 변환에 대해 설명한다.
본 실시예에서 디코딩부(13)는 제어기(1)의 제어하에서 1라인에 대한 코드들을 디코드한다. 제6도를 참조하면, 제어 신호 1D는 디코드될 라인이 MH 방법에 으해 인코드된 라인인지를 식별한다. 제어 신호 1D는 각 라인마다 제어기(1)로부터 공급된다. 예컨대, 상기 장치가 MH 모드에서 동작될때 제어 신호 1는 모든 라인에 대해 "1"이 되고, 그외에 다른 모드에서 동작될때 "0"이 된다. 그외의 변환 조건들은 디코더 ROM(32)의 출력, 즉 다음 상태에 따라 결정된다.
제6도에 있어서, 도시된 타원들은 표가 여러표들로부터 참조되어지는 상태를 나타내는 것으로 디코더 ROM(32)에 기억되어 있다. 1차원 코딩은 백·런과 흑·런으로 분할되기 때문에 1차원 코드표 A와 1차원 코드표 B는 백 및 흑·런에 따라 각기 언급된다.
상기 실시예에 있어서, 디코딩부(13)는 1사이클에서 9비트 까지의 코드를 처리할 수 있다. 1차원 코드에는 10비트 이상의 코드가 존재하기 때문에 2개의 사이클로 처리된다. 이같은 목적을 위해 흑·런 1차원 코드표 2에 포함된 1차원 코드표 1과 1차원 코드표 2는 1차원 코드들의 제2단계 코드표들로서 마련되어 진다. 1차원 코드표 A와 차원 코드표 B는 수평 모드 코드에서 두 런들, 즉 백·런과 흑·런을 구별하기 N이해 단계 1과 단계 2에서 사용된다. 1차원 코드표 A와 1차원 코드표 B는 칼라 런에도 사용될 수 있다. 만약 1차원 코드표 A가 백·런에서 사용되었다면, 1차원 코드표 B는 흑·런에 사용된다. 이하의 설명에서는 1차원 코드표 A가 백·런에 사용된 것으로 설명한다. 그러므로, 표 1A는 백·런 1차원 코드표 1에 대응하고, 표 1B는 흑·런 1차원 코드표 1에 대응하고, 표 2A와 표 2B는 흑·런 1차원 코드표 2에 대응한다.
특수 코드 검출표는 EOL 코드와 신장 코드들(이중에서 CCITT 권고에서 정해진 것은 비압축 모드 코드이다)에 대해 각기 마련된다. EOL 코드와 신장 코드에서는 "0"들이 6비트 이상 계속된다.
이제, MH 방법에 의해 인코드된 1차원 코딩 모드 라인을 디코드하는 경우에 대해 설명한다. 1차원 코딩 모드 라인이 디코드될때, 제어 신호 1D가 "1"이기 때문에 코드를 디코드 하기 위해서는 1차원 코드표 1A가 먼저 사용된다. 만약 상기 코드가 9비트 이하로 구성되었다면, 디코딩은 1차원 코드표 1A에 의해서만 완료될 수 있다. FS 랭스가 1792이상의 메이크-업 코드가 아니라면, 백·런 1차원 코드는 물론 메이크-업 코드 혹은 종료 코드까지도 9비트 이하로 구성된다. 따라서, 백·런에 있어서는 상기 실시예에서와 같이 1사이클에서 최대 9비트까지 디코드된다면, 1차원 코드표 1A만이 사용된다. 1729비트 이상의 런 랭스를 갖는 메이크-업 코드에 있어서, 1차원 코드표 1A를 조회한후 디코드 RAM(32)은 1차원 코드표 2A를 조회할 수 있도록 제1사이클에서 데이타 DROM15-12에 따라 제어기(1)로부터의 데이타 X 및 Y에 의해 제어된다.
1차원 코드에 있어서, 백·런은 라인의 종단이 아닌한 흑·런을 수반한다. 라인의 종단 다음에서는 백·런이 강제로 세트된다. 따라서, 종료 코드의 디코딩이 1차원 코드표 1A 혹은 2A를 사용해서 완료되면, 다음의 1차원 코드가 코드표 1BM를 사용해서 디코드된다.
거의 모든 흑·런 코드들은 물론 메이크-업 코드와 종료 코드까지도 9비트 이상의 비트들로 구성된다. 따라서 1차원 코드표 1B를 사용해서 흑·런 코드가 실제로 디코드되면, 상기 디코딩 결과에 따라 제어기(1)의 데이타 X와 Y에 응답해서 1차원 코드표 2B가 사용된다. 1차원 1B 혹은 2B를 사용해서 종료 코드의 디코딩이 완료되었을때는 런의 칼라 지정이 갱신되어 데이타 X가 변경되고, 1차원 코드표 1A가 사용된다.
이와 같이, 1차원 코드표 A와 B는 1라인에 대한 디코딩을 실행하기 위한 교대로 사용된다. 그 라인이 종단으로 디코딩이 진행할때 1차원 코드표 1, 2내의 코드의 개시로부터 8비트 이상에 대해 "0"이 계속될 경우, EOL 코드를 검출시키기 위해 특수 코드 검출표가 사용되는데, 그에따라 EOL 검출 처리를 수행할 수 있다.
이하, MR 또는 M2R 방법에 의해 인코드된 코드 인코딩에 대해 설명한다. MR 또는 M2R 방법에 의해 인코드된 코드의 경우 제어 신호 1D는 "0"이며 신호 1D는 "1"이다. 그러므로, 디코딩부(13)는 2차원 코드표를 먼저 참조한다. 2차원 코드표 중에서는 수직 및 패스 모드들의 코드들과 수평 모드의 식별 코드가 6비트 이하로 이루어지므로 2차원 코드에 따라서 처리되고, 다음 코드로 또한 제어기(1)로부터의 데이타 X, Y에 응답하여 2차원 코드표에 따라서 처리된다.
수평 모드 코드의 식별이 2차원 코드표에 의해 디코드될 경우 다음 코드에 대해서는 MH 방법에 의해 인코드된 코드에서와 동일한 방법으로 1차원 코드표 A가 참조된다. 이것에는 동일한 변환을 응용한다. 이때, 1차원 코드표 B가 첫번째 칼라, 즉 백·런으로 참조된다. 종료 코드의 디코딩이 완료될때, 흑·런 코드를 디코딩 시키기 위해서 1차원 코드표 B가 참조된다.
1차원 코드표 1B 또는 2B를 사용하여 종료 코드의 디코딩이 완료되었을 경우 디코딩 결과의 출력에 따라서 제어기(1)로부터의 데이타 X, Y에 응답하여 다시 2차원 코드표가 참조된다.
2차원 코드표에서 디코드된 코드의 개시부에서 6비트 이상에 대해 "0"이 계속될때와, 1차원 코드표들에서의 8비트 이상에 대해 "0"이 계속될때는 EOL 코드를 검출시키기 위하여 특수 코드 검출표가 사용되고, 그에 따라 EOL 또는 EOFB 검출 처리를 수행한다.
이하, 비압축 모드를 설명한다. 특수 코드 검출표가 참조될때 코드가 EOL 코드, 예컨대 비압축 모드 코드가 아님을 검출하였을 경우, 제어기(1)가 그 상태를 비압축 코드표 1로 변환시킨다. 이러한 코드는 비압축 코드표 1을 사용하여 디코드된다. 비압축 모드에서는 5번째 "0"이 계속되면 "1"이 삽입된다. 그러므로, 6번째 "0"은 정상 코드로 리턴시키기 위한 식별코드를 제외하고는 계속되지 않는다. "0"이 6비트 이상에 대해 계속될 경우에는 그것이 비압축 모드의 종단 코드인지를 체크하기 위하여 비압축표 2가 참조된다. 만일 종단 코드가 검출되면, 디코딩 처리가 정상 코딩 모드, 예컨대 2차원 코드표 또는 1차원 코드표 1A 혹은 1B로 리턴한다.
EOL 코드가 검출되었을 경우 이후의 다음 처리가 상술된 바와 같은 방법으로 수행된다.
이하, EOL 코드의 디코딩에 대해 설명한다. MH 또는 MR 방법에서는 EOL 코드가 사용된다.그러나, M2R 방법에서는 상술된 바와 같이 EOL 코드를 사용하지 않는다. 대신에, 2개의 EOL 코드를 가진 EOFB(팩시밀리 블록의 종단)코드가 사용된다. 1차원 코드표가 참조될때, 코딩 에러가 발생하지 않으면, EOL 코드 및 신장 모드를 제외하고는 8비트 이상에 대해 "0"이 계속되지 않는다. 이때, EOL 코드는 제어기(1)로부터의 데이타 X, Y에 응답하여 특수 코드 검출표를 참조함으로써 검출된다.
MR 또는 M2R 방법에서는 2차원 코드표내의 6비트 이상에 대해 "0"이 계속되지 않는다. 2차원 코드표에서 디코드된 코드의 개시부로부터 6비트 이상에 대해 "0"이 계속될때, EOL 코드를 검출하기 위하여 특수 코드 검출표가 참조된다.
M2R 방법에서는 수신 데이타가 체크 데이타와 함께 송신되기 때문에 송신 에러가 발생하지 않는다. 그러나, MH 및 MR 방법에서는 에러가 발생할 수 있다. 디코드된 코드가 에러를 포함하고 있다고 검출되면, 제어 신호가 추출되고 대응하는 처리라인은 그 종단을 통해 스킵(skip)된다. 이어서, EOL 코드가 EOL 검출기(81)에 의해 검출되는데, 만일 그것이 EOL 코드라고 증명되면 EOL 검출처리가 추출된다.
더 구체적으로 말하여, 에러가 발생할때 대응 처리라인의 디코딩이 에러 검출시 완료되고, 다음 처리라인이 개시된다. 이러한 EOL 검출부는 또한 페이지의 개수부에서 전송된 첫번째 EOL 코드를 검출할 동안 사용된다.
M2R 방법에서는 상술된 바와 같은 데이타의 전송시 에러 체크가 수행된다. 에러 코드가 검출될때는 재송신 요구신호가 발생되어 보정 데이타가 전송된다. 그러므로, 에러 검출이 생략될 수 있다. M2R 방법에서는 상술된 바와 같이 EOL 코드가 전혀 사용되지 않으며, 대신에 EOFB 코드가 한 페이지에 대한 코드들의 종단에 제공된다.
만일 디코딩부(13)의 상태가 선행 처리 동안 간단히 변경되지 않으면, 마지막 라인의 종단으로 처리가 진행할때 EOFB 코드의 첫번째 반의 존재가 체크될 수 없게 된다. 이러한 문제점을 해결하기 위하여, 그것이 제6도의 해칭부분, 예컨대 모두 비트 "0"으로 이루어지는 디코드될 코드를 디코딩할 동안 검출될때와, 특수 코드 검출표가 참조되어야할때, 디코딩부(13)의 상태가 EOL 검출 상태에서의 상술된 동작에 관계없이 선행 처리 동안 변경될 수 있다. 따라서, 처리가 마지막 라인의 종단으로 진행할때 디코딩부(13)는 EOFB 코드의 첫번재 반을 디코드 할 수 있으며, 그에따라 계속적으로 두번째 반을 디코드 할 수 있다.
본 발명에서는 M2R 방법 이외의 다른 방법, 예컨대, MR 또는 MH 방법에 의하여 인코드된 코드가 디코드 되었을 경우, 선행 처리가 1런 동안의 처리 범위 이내로 진행할 수 있다. 더욱 상세하게 말하면, 1차원 코드표 2 또는 특수 코드 검출표가 1차원 코드표 1이 참조된 이후 참조되었을 경우, 1차원 코드표 2 또는 특수코드 검출표를 참조하기 위한 처리는 디코드된 코드를 즉시 진행시키기 위한 생성처리가 완료되기 이전에 완료될 수 있다. 그 이유는 이들 방법이 EOL 코드들을 사용하기 때문이며, 비록 디코딩 처리부(7)의 상태가 선행 처리동안 변경된다 하더라도 전혀 문제점에 직면하지 않고 다음 라인의 개시부에 대한 칼라가 결정된다. 따라서, 디코드된 결과가 생성처리부(8)로 출력된다.
이하, 디코딩부(7)로부터의 디코딩 결과를 기초로 하여, 2진 데이타를 처리하기 위한 생성처리부(8)의 동작을 설명한다. 디코딩 결과, 즉 런 랭스 데이타는 생성처리부(8)로 입력된다. 1차원 코드 코드의 런 랭스 데이타가 먼저 입력되는 경우를 설명한다. 메이크-업(make-up)코드의 디코딩 결과가 디코더 ROM(32)에서 선택기(40)로 입력된다고 가정하자. 이러한 경우, 선택기(40)가 데이타 L을 제어기(1)로부터의 런 랭스 데이타로서 수신한다. 만일 디코더 ROM(32)로부터의 출력이 제어기(1)로부터의 제어 신호에 응답하여 선택되면, 그 출력이 기 카운터(42)에 입력된다. 이 기 카운터(42)는 12비트 길이를 가진 카운터이며, 디코더 ROM(32)로부터의 메이크-업 코드의 디코딩 결과를 6비트의 08-03비트 부분에 기억한다. 디코더 ROM(32)로부터의 메이크-업 코드 출력의 런 랭스 데이타는 실제 런 랭스를 "1"만큼 감소시키므로써 얻어진 값이기 때문에 그 "1"이 "111"로 될 RL 카운터(42)의 02-00비트 부분으로 입력된다.
이러한 데이타는 선택기(44)를 통해 어드레스 데이타로서 인코더 ROM(46)에 출력된다. 인코더 ROM(46)은 또한 칼라 지정을 위한 데이타를 포함하는 데이타와, 제어기(1)로부터의 압축 및 신장 처리중 하나를 가리키는 데이타를 수신한다.
인코더 ROM(46)에 대한 어드레스 데이타 입력에 응답하여, 8비트 데이타 "0" 또는 "11111111"이 인코더 ROM(46)으로부터 출력된다. 이 출력 데이타는 선택기(48)를 통해 배럴 시프터(50)로 공급된다.
생성처리부(8)는 디코딩 포인터(36)와 유사한 회로를 갖는다. 상기 배럴 시프터(50)가 화상 포인터(56)로 부터의 지시 데이타를 수신하고 회전 데이타를 출력시키도록 입력 데이타를 회전시킨다. 그러나, 비트들이 모두 "0" 또는 "1"이기 때문에 데이타가 회전되거나 또는 회전되지 않을 경우 전혀 차이가 존재하지 않는다. 이대 데이타가 EROM(46)으로부터 바이트 단위로 출력되기 때문에 인코더 ROM(46)에서 가산기(52)까지는 EROM(46)으로부터의 데이타가 전혀 출력되지 않는다. 그 이유는 생처리가 바이트 단위로 수행되므로 화상 포인터(56)의 지시값이 변경될 필요가 없기 때문이다.
배럴 시프터(50)로부터의 출력은 선택기(60)와, 또한 레지스터(62)의 15-08비트 부분으로 공급된다. 상기 선택기(60)는 선택기(64)를 통하여 데이타 RODT17-00 또는 RODT15-08을 수신한다. 이러한 경우 발생되는 런 랭스 데이타가 메이크-업 코드로 되고, 코드의 처리 동안 데이타 RODT15-08은 선택기(64)로 선택된다. 상기 선택기(60)는 또한 배럴 시프터(50)에서와 마찬가지로 화상 포인터(56)로부터 동일한 지시 데이타를 수신한다.
선택기(60)는 LSB 위치에서 "1"만큼 더 적은 비트 위치까지 선택기(64)에서의 데이타를 화상 포인터(56)에서의 지시 데이타로부터 선택하고, 또한 지시 데이타에서 MSB 위치까지 배럴 시프터(50)에서의 출력을 선택하고, 그에따라 그 선택된 데이타를 레지스터(62)의 데이타 RODT07-00으로서 출력시킨다.
예를들면, 포인터의 지시 데이타가 "3"일 경우 선택기(64)로부터의 데이타가 데이타 RODT02-00으로서 선택되고, 배럴 시프터(50)에서의 데이타는 데이타 RODT07-03으로서 선택된다. 상기한 동작에 따라서, 1바이트에 대한 화상 데이타 패턴이 발생되기 때문에 레지스터(62)의 데이타 RODT07-00이 인버터(24)와 유사한 인버터(66)를 통하여 데이터 버스상에 출력되어 어드레스 카운터(88)의 현재 값에 대응하는 어드레스로서 기억될 데이타 P로서 참조라인 데이타 기억부(4)에 공급된다. 따라서, 생성처리의 제1단계가 완료되어 제어기(1)에 의해 검출된다.
1바이트에 대한 처리를 완료하자마다 곧바로 1클록이 1만큼 증가시키기 위한 데이타 Q로서 어드레스 카운터(82)에 인가된다. 이때 M2R 방법에 의해 인코드된 코드의 경우, 카운터(82)의 값이 정지 어드레스 레지스터(80)의 값과 비교되고, 그에 따라 처리가 라인의 종단까지 진행한 경우를 체크한다. MR 또는 MH 방법에 의해 인코드된 코드의 경우에는 EOL 코드가 사용되기 때문에 전혀 문제가 없게 된다.
레지스터(96)내의 데이타는 1바이트 동안 LSB 방향으로 시프트된다. 새로운 참조라인 데이타가 어드레스 카운터(82)의 값과 어드레스로서의 데이타 R의 합을 사용하여 기억부(4)로부터 판독되어 레지스터(96)에 데이타 REF15-08로서 래치된다. 동시에 선택기(114)가 a0 포인터(00)로부터의 데이타 MSB를 제외한 데이타를 선택한다. 이러한 데이타는 a0 포인터(100)내에 설정된다. 그리고 기 카운터(42)로부터의 데이타 M이 제어기(1)에 출력된다. 제어기(1)는 RL 카운터(42)로부터의 데이타 M를 기초로 하여 입력 메이크-업 코드의 생성처리가 완료된 경우를 체크한다.
만일 완료되지 않았다면, RL 카운터(42)의 내용이 "1"만큼 감소되고 이어서 선택기(44)를 통해 인코더 ROM(46)으로 공급된다. 생성처리는 RL 카운터(42)로부터의 데이타 M이 데이타 "0"과 동일하게 될때까지 상술된 바와 같은 방법으로 반복된다. 데이타 M이 데이타 "0"과 동일할때, 대응 메이크-업 코드에 대한 생성 처리가 완료되고, 계속적으로 종료 코드가 처리된다.
선택기(40)가 데이타 L을 선택할 때에도 또한 메이크-업 코드에 대한 처리와 동일한 처리가 수행된다. 동일한 칼라의 런이 길이 2561 이상에 대해 계속될 경우에는 런 길이 2560을 나타내는 코드가 런 길이에 따라 반복된다. 이러한 경우, 런 길이가 제어기(1)에 의한 바이트 수로 변환되어, "1"만큼 감소된 후의 데이타 L로서 선택기(40)에 입력된다. 이 값은 상술된 메이크-업 코드와 동일한 방법으로 처리된다.
이하, 종료 코드의 디코딩 결과가 처리된 경우에 대하여 설명한다. 디코딩 결과 또는 런 랭스 데이타는 선택기(40)를 통하여 RL 카운터(42)의 05-00비트 부분에 데이타 1로서 입력된다. 상기 RL 카운터(42)의 05-03비트 부분이 메이크-업 코드와 동일한 방법으로 처리된다.
05-03비트 부분의 내용은 화상 데이타의 바이트의 생성처리가 완료될때마다 "1"만큼 감소된다. 바이트 데이타의 처리 완료후에는 1바이트 보다 더 적어지는 데이타 02-22이 처리된다.
데이타 02-00이 선택기(44)에 입력되고 그에 따라 인코더 ROM(46)에 입력되도록 선택된다. 인코더 ROM(46)으로부터의 화상 데이타 패턴의 바이트, 예컨대 입력 데이타에 대응하는 8번째 "1" 또는 "0"이 선택기(48)를 통하여 배럴 시프터(50)로 출력된다. 상기 화상 데이타 패턴이 배럴 시프터(50)에 의해 시프트된 다음 레지스터(62) 및 선택기(60)의 데이타 RODT15-08부분으로 출력된다.
그후, 화상 데이타 패턴이 화상 포인터(56)의 지시 데이타에 따라서 선택기(60)에 의해 이미 처리된 데이타 RODT15-08과 함께 합성되고, 그 합성된 데이타는 레지스터(62)의 데이타 RODT07-00부분에 입력된다. 이때, 출력 화상 패턴 데이타의 길이에 대응하는 데이타가 언코드 ROM(46)에서 가산기(52)까지 EROM07-05로서 출력된다. 그결과, 화상 포인터(56)의 값이 갱신된다. 이때, 23비트가 가산기(52)까지 EROM07-05로서 출력된다. 그 결과, 화상 포인터(56)의 값이 갱신된다. 이때, 23비트가 가산기(52)의 출력에서 "1"로 될 경우, 이것은 1바이트에 대한 처리가 완료되었음을 알리기 위하여 데이타 0으로서 제어기(1)로 신호된다. 데이타 0이 출력될때, 레지스터(62)는 제어기(1)로부터의 제어 신호에 응답하여 인버터(66)를 통해 데이타 버스상에 데이타 RODT07-00을 출력시키고, 그것을 데이타 P로서 기억부(4)에 기억시킨다. 상기 23비트가 "1"이 아닐 경우, 데이타 RODT07-00이 다음 화상 데이타 패턴이 발생될때까지 지속된다.
다음 화상 데이타 패턴이 선택기(60)에 입력될때, 레지스터(62)의 데이타 RODT07-00가 선택기(64)를 통하여 선택기(60)로 공급된다. 이와 같은 방법으로 동일한 동작이 반복된다.
1바이트 보다 적은 종료 코드가 처리되고 있을때는 디코딩 결과가 RL 카운터(42)를 통과하지 않고 선택기(44)에 직접 공급되는 것은 제외하고는 1바이트 보다 적은 데이타가 수행될 경우 실질상 동일한 처리를 행하게 된다. 상기 동작은 MH 방법에 의해 인코드된 수평모드 코드와 MR 및 M2R 방법에 의해 인코드된 수평 모드 코드의 MH 코드 부분에 대해 얻어질 수 있다.
다음, 2차원 코딩 모드로서의 패스 모드 및 수직 모드의 코드에 대한 생성처리를 설명한다. 칼라 변화 비트위치 b1이 레지스터(96)내의 참조라인 데이타상에 검출되지 않을때, 제어기(1)로부터의 데이타 N에 따라서 화상 데이타 패턴이 인코더 ROM(46)으로부터 발생된다. 화상 데이타 패턴의 생성처리는 수평 모드의 메이크-업 코드에서와 동일한 방법으로 수행된다. 화상 포인터(54)의 지시 데이타는 변화되지 않는다.
a1·b1 검출기(16)의 b1 검출기(102)에 의해 b1이 검출되는 경우, b1이 선택기(108)로 공급된다. b1 값이 레지스터(96)로부터 알수 있는 바와 같이 "-4"비트 위치로부터 카운트되므로, "+4"가 그것에 가산된다. 패스 모드 또는 수직 모드내의 런 랭스 데이타는 RL 카운터(42)내에서 래치되며, 선택기(110)에 데이타 B로서 출력된다. 선택기(108) 및 (110)에 입력되는 이들 데이타는 가산기(112)에 입력되어 가산된다. 이 가산된 데이타는 대응 화상 데이타 패턴의 생성 처리가 완료된후, 데이타 C로서 선택기(54)에 출력된다. 상기 가산된 데이타는 또한 a0 포인터(100)에 출력된다.
이제, 비압축 모드 코드가 입력되는 경우에 대해 설명한다. 비압축 모드 코드는 레지스터(58)를 통해 선택기(48)에 데이타 G로서 입력된다. 상술된 것과 동일한 방식으로 다음 처리가 수행된다. 이어서 데이타 W가 선택기(114)에서 선택되어 a0 포인터(100) 및 선택기(54)에 데이타 C로서 출력된다.
이하 압축 처리에 대해 제7도를 참조하여 설명한다. 먼저, MH 코드에 대한 압축처리를 설명한다.
수평 모드내의 화상 데이타 패턴이 압출될때, 데이타 320(2560÷8)이 RL 카운터(42)에 나타나며, a1 검출기(104)에 의해 검출된 a1은 선택기(110), 가산기(112) 및 선택기(114)를 거쳐 선택기(38)에 데이타 D로서 출력된다. 화상 패턴 데이타는 입력 데이타 버스로부터 래치(22)로 입력되고 래치된다. 입력 데이타는 인버터(24)를 통해 레지스터(26)에 입력된다. 이때, 레지스터 데이타 RODT07-00이 다음 처리라인에 대한 참조라인 데이타로서 참조라인 기억부(4)에 출력되어, 어드레스 레지스터(88)로부터의 데이타에 따라서 그것에 기억된다.
그후, 신장처리에서와 동일한 방법으로 디코딩 포인터(36)의 지시 데이타에 따라서 9비트가 퍼널 시프터(30)에 의해 선택되어 선택기(31)로 출력된다. 퍼널 시프터(30)에서의 출력은 선택기(31)에 의해 선택되어 디코더 ROM(32)에 출력된다. 1바디트 길이 이상에 대해 동일한 칼라를 갖는 런이 "1000"을 계속할때, 예를들면 1바이트 길이를 가리키는 데이타가 가산기(34)에 대한 데이타 RODT11-08로서 디코더 ROM(32)로부터 출력되고, 이어서 데이타 J가 결과적으로 제어기(1)로 출력된다.
디코딩 포인터(36)의 값은 갱신되지 않는다. 제어기(1)는 어드레스 데이타를 갱신하는 신장처리에서와 동일한 방법으로 데이타 Q를 어드레스 카운터(82)로 출력시킨다. 또한, RL 카운터(42)의 내용이 카운트 다운된다. 동시에, 레지스터(96)의 내용도 신장처리에서와 동일한 방법으로 1바이트 만큼 좌측 시프트된다. 기억부(4)로부터 새로운 참조라인 데이타가 레지스터(96)에 출력되어, REF15-08로서 래치된다. 포인터(100)의 값은 현재 래치된 값으로부터 "8"을 감산함으로써 갱신된다.
데이타 런의 개시부로부터 동일한 칼라를 계속하는 1차원 모드에서는 1바이트에 대한 처리 완료시, 디코더 ROM(32)으로부터 데이타 DROM(15-12)에 따라서 카운트 펄스가 제어기(1)로부터 RL 카운터(42)로 입력되고, 그에따라 제7도의 21에서 도시된 바와 같이 RL 카운터(42)를 카운트 다운시키게 된다. 칼라 경계가 a1 검출기(104)에 의해 검출될때, 다시 말해서 데이타 LSHT08-00의 내용이 "0" 또는 "111111111"이 아닐때, RL 카운터(42)의 카운트 결과가 선택기(44)를 통해 인코더 ROM(46)으로 공급된다. 또한, 데이타 N도 인코더 ROM(46)으로 공급되고, 따라서 메이크-업 코드를 생성하게 된다.
생성된 메이크-업 코드는 선택기(48)를 거쳐 배럴 시프터(50)로 공급된다. 생성된 메이크-업 코드는 화상 포인터(56)의 지시 데이타에 따라서 배럴 시프터(50)에서 회전된다. 이 회전된 코드가 레지스터(62)의 데이타 RODT15-08 부분으로 공급되고 또한 선택기(60)에도 공급된다. 선택기(60)에서는 화상 포인터(56)의 지시 데이타에 따라서 회전된 코드가 신장처리에서와 동일한 방법으로 선택기(64)의 출력과 함께 결합된다. 동시에, 생성된 메이크-업 코드의 길이가 그것을 지시 데이타에 가산하기 위하여 인코더 ROM(46)에서 가산기(52)까지 출력된다. 그 합은 다시 포인터(56)의 지시 데이타가 된다. 데이타 0가 제어기(1)로 출력될때, 데이타 RODT07-00이 출력 데이타 버스상에 출력된다.
생성될 메이크-업 코드의 길이가 6 내지 10비트일대, 메이크-업 코드의 나머지 부분이 인코더 ROM(46)으로부터 생성되어, 상술된 것과 동일한 방법으로 처리된다. 이때, 데이타 RODT15-08이 선택기(64)에서 선택된다. 메이크-업 코드의 생성처리가 완료된후, RL 카운터(42)의 02-00비트 부분의 카운트 값이 05-03비트 부분으로 시프트되고, 1바이트 보다 적은 나머지 데이타는 RL 카운터(42)의 02-00비트 부분으로 입력된다. 이 결과는 또한 인코더 ROM(46)으로 출력되어 메이크-업 코드에서와 동일한 방법으로 처리되고, 따라서 압축 종료 코드를 출력시킨다. 코드의 길이에 대한 처리는 메이크-업 코드에 대한 처리와 동일하다. 이러한 방법으로, 수평 모드를 압축 처리할 경우에 있어서의 메이크-업 및 종료 코드들이 생성된다.
MR과 M2R 방법에 의해 인코드된 수평 모드 코드들은 수평 모드의 식별 코드가 제어기(1)로부터의 데이타 N에 따라서, 제1메이크-업 이전과 제1MH 코드가 압축된 이후에 가산되는 것을 제외하고는 MH 코드의 압축 처리와 동일한 방법으로 처리되고, 칼라 지정이 다음 MH 코드를 압축하도록 갱신된다.
이제, 수직 및 패스 모드들에서의 2차원 코드들의 압축 처리에 대하여 설명한다. a1이 데이타 F로서의 데이타 RODT07-00으로 검출되지 않고 b1도 또한 레지스터(96)로부터 데이타 REF3-10으로 검출되지 않을때 스킵 처리가 수행된다. 스킵 처리에서는 예를들어 새로운 화상 데이타 패턴의 바이트가 입력 데이타 버스를 통하여 입력되고, 레지스터(96)내의 참조라인 데이타가 갱신된다. a1 및 b1이 모두 검출될 경우 2차원 코드들의 압축 처리가 개신된다.
검출된 a1 및 b1이 감산기(120)로 공급되고 이 감산기(120)로부터의 출력은 데이타 A로서 선택기(44)를 통하여 인코더 ROM(46)으로 출력된다.인코더 ROM(46)에서, 패스 모드 또는 수직 모드 코드가 발생되어, 수평 모드 코드에서와 동일한 방법으로 배럴 시프터(50), 선택기(60) 및 화상 포인터(56)등으로 처리된다. 이때, b1이 선택기(114)에서 선택되고 a0 포인터(100)와 데이타 D로서 선택기(38)를 거쳐 디코딩 포인터(36)로 공급된다. 그 다음 처리는 신장 처리에서와 동일하다.
비압축 모드에서는 데이타가 레지스터(58)로부터 직접 선택기(48)로 공급된 다음 거기서 곧바로 출력된다. 그 다음 처리는 신장 처리에서와 동일하다.
이하, M2R방법에 의해 인코드된 코드의 디코딩시 디코딩 처리부(7)의 동작 타이밍에 대해 제10a도 내지 제10f도를 참조하여 생성처리부(8)의 동작과 관련시켜서 설명한다. 제1단계에서는 디코딩 처리부(7)가 제n런의 디코딩 동작을 스타트하지만, 그것이 비압축되는 동안은 대기한다.
통상, 화상 패턴 생성이 바이트 단위로 병렬 수행될 수 있다고 하더라도 코드들의 디코딩이 비트 직렬방법으로 수행된다.
이와는 대조적으로 본 발명에 따라 코드 디코딩이 상술된 바와 같이 병렬 수행되기 때문에 고주파 발생을 갖는 대부분의 코드들이 1사이클로 디코드될 수 있다.
M2R 방법으로 디코딩하는 경우, 디코딩이 생성처리부(8)로부터의 결과에 의해 라인의 종단까지 완료되면 그 디코딩은 감소되므로, 디코딩 처리부(7)는 다음 코드에 대한 선행 처리를 완료하지 않고, 그 상태가 변경되기 직전에 처리를 중단한다. 만일 디코딩 처리부(7)의 상태가 예컨대 비트 포인터를 선행시키기 위한 선행처리로 변경되면 그것을 리턴시키기 위한 수단이 요구될 수도 있다.
생성처리부(8)내의 처리가 완료되고 그 런의 대응 처리라인상의 위치가 검출될때, 그것이 라인의 최우측 위치와 일치하는지를 검출한다. 만일 전혀 일치하지 않으면, 정상 디코딩이 수행될 수 있으므로 디코딩 처리부(7)가 디코딩 처리를 완료하여 그 디코딩 결과를 생성처리부(8)로 전송하고, 다음 런의 처리를 스타트 한다.
생성처리부(8)는 디코딩 처리부(7)로부터 전송된 코드를 기초로하여 화상 패턴 생성을 스타트한다. 그 런의 대응 처리라인상의 위치가 그 라인의 종단과 일치할대, 생성처리부(8)가 현재 라인 처리를 완료하기 위한 처리를 실핸한 다음 제어기(1)가 다음 처리라인, 예컨대 참조라인 화상 데이타를 지속하기 위한 기억부(4)의 전환 기억영역을 준비한다. 이러한 경우, 생성처리부(8)가 제어기(1)를 통해 디코딩 처리부(7)로 그 라인의 종단을 신호한다.
상술된 바와 같이, 라인의 개시부는 상술된 백·런이 되도록 결정되므로, 디코딩 처리부(7)가 생성처리부(8)로부터의 정보를 사용하여 대응 코드를 백으로 되게 재디코드한다. 이때, 디코딩 처리부(7)가 선행 처리를 아직 완료되지 않게하고 또한 그 상태를 변경되지 않게 하므로, 상기 디코딩 처리부(7)는 칼라 지정을 변화시키므로써 새로운 디코딩 결과를 얻을 수 있다. 만일 선행 처리의 대상이 2단계 처리를 필요로 하는 10비트 이상의 비트이면, 디코딩 처리부(7)가 제1단계를 완료함이 없이 생성처리부(8)로부터 정보를 대기시킨다.
디코딩 처리부(7)는 한 단계에서 9비트 이하의 코드를 디코드 할 수 있으며, 거의 모든 입력 코드들은 통상 9비트 이하로 이루어진다. 따라서, 선행 처리가 디코딩 처리부(7)로 하여금 그 상태를 변경시킴이 없이 인터럽트 된다 하더라도, 디코딩 처리부(7)는 생성처리부(8)가 현재 런에 대한 생성처리를 완료한후 즉시 다음 런의 디코딩 결과를 얻을 수 있다. 아울러, 생성처리부(8)가 대신 시간 없이 대응 런의 처리를 스타트 할 수 있다.
디코딩 처리부(7) 및 생성처리부(8)의 동작들간의 관계에 대해서, 이하 제10a도 내지 제10c도를 참조하여 상세히 기술한다. 제1단계에서는 디코딩 처리부(7)가 제n런의 디코딩 동작을 스타트하지만 그 디코딩을 동작을 완료하지 않고 대기시킨다. 생성처리부(8)가 제(n-1)런의 생성처리를 수행하고 그 생성처리를 한 단계에서 완료한다고 가정하자. 이때, 디코딩 처리부(7)가 제n런의 디코딩을 완료하며, 그리고 제n런의 디코딩을 완료하며, 그리고 제n런의 디코딩 결과를 얻는다.
더 구체적으로 말하여, 생성처리부(8)에서 화상 데이타 패턴에 대한 생성처리의 완료시, 디코딩 처리부(7)의 처리가 이러한 단계에서 완료된다. 그후, 제(i+1)단계에서는 디코딩 처리부(7)가 제(n+1)런 내의 코드의 디코딩을 스타트하고, 디코딩이 완료되기 전에 즉시 한 상태로 대기한다. 디코딩 처리부(7)에 의해 디코드된 제n런이 3바이트 화상 데이타 패턴으로 이루어지면, 생성처리부(8)는 제n런을 한 단계만으로 처리할 수 없다. 그러므로, 디코딩 처리부(7)가 제(i+2)단계 이후에서도 현재 상태를 유지한다.
생성처리부(8)가 제(i+3)단계 내의 제n런에 대한 처리를 완료할때, 만일 제(n+1)런 내의 코드가 9비트 이하로 이루어지면 디코딩 처리부(7)가 제(n+1)런의 디코딩처리를 완료하고, 제(i+4)단계 내의 다음 (n+2)런의 디코딩을 스타트한다. 생성처리부(8)는 디코딩 처리부(7)로부터의 디코딩 결과에 따라서 제(n+1)런의 화상 데이타 패턴을 생성하기 시작한다. 이러한 방법으로, 생성처리부(8)가 대기시간 없이 정상적으로 처리를 스타트 할 수 있다.
제10d도 내지 제10f도는 유사한 예로서, 제(n+1)런의 코드가 10비트 이상으로 이루어지는 경우에 있어서의 동작을 도시한 것이다. 디코딩 처리부(7)는 제(i+1)단계 내의 (n+1)런의 디코딩을 스타트하지만 그것을 완료하지 않고 대기시킨다. 생성처리부(8)가 제(i+2)단계내의 제n런의 처리를 완료하자마자 곧바로 디코딩 처리부(7)가 제(n+1)런 코드의 디코딩 동작의 제1단계를 완료한다. 다음, 디코eld 처리부(7)가 제(n+1)런 코드의 제1단계를 디코드한다.
생성처리부(8)는 아직 제(i+3)단계내에 디코딩 처리부(7)로부터의 새로운 디코딩 결과를 얻지 않고, 그것을 대기시킨다. 디코딩 처리부(7)가 제(i+3)단계내의 제(n+1)런 코드의 디코딩을 완료할때, 생성처리부(8)가 제(i+4)단계로 제(n+1)런의 화상 데이타 패턴 발생 처리를 실해안다.
이러한 방식으로 10비트 이상을 갖는 코드의 경우, 생성처리부(8)가 대기시간을 갖는다. 그러나, 10비트 이상을 갖는 코드의 생성주파수가 낮기 때문에 대기시간은 장치의 전체 성능에 대해 아무런 영향을 주지 않는다.
더욱, 상술된 2진 데이타 압축·신장 처리 장치가 적용되는 시스템 구성에 대해 설명한다.
제11도는 본 발명의 다른 실시예를 나타낸다. 이러한 실시예의 시스템은 압축 및 신장처리부(327), 참조라인 어드레스 발생기(328) 및 참조라인 데이타를 기억하기 위한 메모리(326)를 구비하고 있다. 처리부(327)는 상기 실시예에서의 압축 및 신장처리부(2)와 동일하고, 생성기(328)는 발생기(3)와 동일하다. 또, 메모리(326)는 참조라인 기억부(4)와 동일하며 고속 스태틱 RAM을 구비한다. 그리고, 신장처리부(327) 및 참조라인 어드레스 생성기(328)는 LSI(320)내에 집적된다.
LSI(320)는 입력 데이타 버스(321) 및 1바이트 폭을 갖는 출력 데이타 버스(322)를 갖는다. 신장처리에 있어서, LSI(320)가 입력 데이타 버스(321)로부터의 코드 데이타를 수신하고, 또한 출력 데이타 버스(322)에 대한 신장처리의 결과로서의 화상 데이타를 출력시킨다. 압축처리에 있어서, LSI(320)가 입력 데이타 버스(321)로부터의 화상 데이타를 수신하고, 또한 출력 데이타 버스(322)상의 압축처리의 결과로서의 코드를 출력시킨다.
LSI(320)는 어드레스라인(323)를 통해 스태틱 RAM(326)에 어드레스를 공급한다. 상기 LSI(320)는 복수의 제어 라인(324)를 통해 판독/기입 모드 및 출력 인에이블 모드를 명령하며, 또한 데이타 버스(325)를 통해 참조라인상에 화상 데이타를 액세스시킨다. 상기 LSI(320)는 또한 통상의 압축 및 신장 처리 장치와는 달리 화상 메모리 어드레싱 회로를 필요로 하지 않고, 단지 카운터에 의해 구성되는 소형 참조라인 어드레스 생성기(328)로서만 제공될 수 있다. 또, 나머지 칩 영역을 이용하므로써 고속 병렬처리의 압축 및 신장처리부(327)가 구성될 수 있다.
이하, 제11도에서 도시된 시스템과 신장처리에 대해 통상의 시스템의 기본적인 동작들과의 차이에 대해 설명한다. 신장처리의 기본적인 동작에 있어서, 인코드된 데이타는, 통상의 시스템에서는 시스템 버스를 통해, 본 실시예에서는 입력 버스(321)를 통해 수신되고, 화상 데이타는 디코드된 M2R 코드에 따라서 발생된다.
이러한 경우, 화상 데이타의 각각의 바이트에 대해 항상 실행되는 동작이 특히 중요하며, 이러한 동작에 있어서의 실행속도가 전체 성능을 결정한다. 이에 대해 이하에서 더욱 상세히 설명한다.
통상의 시스템에서는 참조라인상의 화상 데이타를 판독하기 위하여 그 어드레스가 계산되어 화상 데이타 어드레스 버스상에 출력되고, 이어서 판독요구 신호가 화상 메모리에 공급된다. 알 비터(arbiter)는 복수의 액세스 요구신호를 처리하고 이것을 상위 우선 순위를 가진 우선 순위로부터 실행하기 위한 화상 메모리의 제어 회로에 필요하다. 판독 화상 데이타는 화상 데이타 버스로부터 입력되어, 압축 및 신장처리부에 의하여 수신된다. 신장처리는 M2R 코드를 기초로하여 코드 데이타 버스를 통해 입력되어 화상 데이타 버스를 통해 화상 메모리로부터 화상 데이타가 입력되게끔 수행되고, 최종 화상 데이타는 화상 데이타 버스상에 전송된다. 동시에, 화상 데이타가 기입되는 화상 메모리의 어드레스가 화상 데이타 어드레스 발생기에 의해 계산되어 어드레스 라인상에 출력된다. 화상 데이타 버스가 신장처리 결과를 출력하게 할뿐만 아니라 참조라인상의 화상 데이타를 판독하게끔 사용되기 때문에 통상의 시스템의 신장처리 속도가 이러한 상태로 제한된다. 그러므로, 통상의 시스템에서는 제어회로내의 화상 메모리 및 알비터와 같은 대용량을 가진 RAM이 필요하고, 이 RAM은 저 액세스 속도를 갖는다.
그러나, 본 발명의 시스템이 제11도에서 도시된 특수 목적용 참조라인 버퍼 메모리(326)을 갖기 때문에 출력 데이타 버스(322)가 신장처리의 결과적인 화상을 출력시키기 위해서만 사용될 수 있다. 화상 메모리(도시생략)의 어드레스 계산은 LSI 칩(320)에서 계산되지 않는다. 통상, 화상 처리시스템은 예를들어 화상 확대 및 축소등의 여러가지 처리종류를 수행하여야 하며, 각각의 시스템에 대해 적당한 고속 어드레스 계산회로(도시생략)를 갖는다. 따라서, 이러한 회로를 활용함으로써 버스(322)로부터 수신된 화상 데이타가 화상 메모리에 기입된다.
1바이트 화상 데이타가 출력 데이타 버스(322), 버스(325), 어드레스 라인(323)상에 전송되지만, 그에 대한 제어라인(324)은 참조라인 데이타를 판독하기 위해 두배로 사용되어 신장처리 결과의 액세스를 기입한다. 그러나, 통상의 시스템에서의 화상 메모리와는 달리 참조라인 버퍼(326)가 이러한 목적을 위해 특수하게 사용된다. 따라서, 버퍼 메모리(326)는 전혀 조정이 필요치 않으며, 단지 극소 용량(약 1KB)만을 갖는 것이 필요하므로 임의의 속도에서의 판독/기입 액세스를 통상의 화상 메모리의 속도에서의 그것에 비해 2배나 용이하게 수행할 수 있다.
제11도에 도시된 입력버스(321)는 상술된 바와 같은 수신코드 데이타 및 화상 데이타를 위해 사용되고 또한 예를들어 압축 및 신장방법(MH, MR 또는 M2R방법), 라인당 비트수등을 지정하기 위한 제어 데이타를 수신하는데 사용된다. 출력 버스(322)는 화상 데이타와 코드 데이타를 전송하는데 사용되고 또한 상태 데이타(준비, 비지, 에러 유무 따위)를 전송하는데 사용된다. 제어 데이타 및 상태 데이타의 교환 제어는 정상 입출력 레지스터의 판독/기입 액세스에 의해 실현될 수 있다.
제12도는 본 발명의 시스템이 제11도에 도시된 참조라인 버퍼 메모리(326)를 포함하는 하나의 LSI 칩(330)으로 구성된 것이다. 이것은 최근에 개발된 표준 셀 형태의 주문 LIS(Semi-custom)를 사용하므로써 실현될 수 있다.
제13도는 대용량 고속 FIFO형 메모리(즉, NEC에서 개발한 PD41101 C형)가 참조라인 버퍼(344)로서 사용된 실시예를 도시한 것이다. 이러한 실시예에서는 어드레TM 발생기(328)가 생략될 수 있으므로, 일방향 버스들이 적용될 수 있다. 입력버스(341) 및 출력버스(343)가 서로 분리되어 있으므로 이중 속도 동작은 수행될 필요가 없다.

Claims (19)

  1. 2진 데이타를 고속으로 압축 및 신장할 수 있는 장치에 있어서, 소정의 데이타 길이를 가진 2진 데이타를 입력하는 수단(11)과 압축 모드에서 입력된 2진 데이타를 참조라인 데이타로서 출력하는 수단(12)과, 입력된 2진 데이타에 대응하는 참조라인 데이타를 판독하는 수단(13)과, 판독된 참조라인 데이타에 따라서 신장 모드에서 입력된 2진 데이타를 신장처리하고 압축 모드에서 입력된 2진 데이타의 압축처리를 수행하는 수단(15)과, 신장 모드에서 발생되며 상기 참조라인 데이타로서 소정의 데이타 길이를 갖는 화상 데이타를 출력하는 수단(16)과, 처리된 2진 데이타를 외부장치로 출력하는 수단(14)을 구비한 처리 수단(2)과; 현재의 처리라인과 다음 처리라인에 대하여 상기 처리수단(2)로부터 입력된 참조라인 데이타를 소정의 데이타 길이 단위로 기억하고, 판독된 참조라인 데이타를 상기 처리수단에 출력시키기 위한 참조라인 데이타 기억 수단(4)을 구비한 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  2. 제1항에 있어서, 상기 참조라인 데이타가 기억 수단(4)은 선입선출(FIFO)형 메모리인 것을 특징으로 하는 장치.
  3. 제1항에 있어서, 상기 처리 수단이 상기 참조라인 데이타 기억수단을 액세스할때 어드레스를 발생하기 위한 참조라인 어드레스 발생수단(3)을 아울러 구비하며, 상기 참조라인 데이타 기억 수단(4)이 고속 스택틱 RAM인 것을 특징으로 하는 장치.
  4. 제3항에 있어서, 상기 처리 수단 및 상기 참조라인 어드레스 발생수단(3)이 단일 집적 회로내에 결합되는 것을 특징으로 하는 장치.
  5. 제3항에 있어서, 상기 처리 수단, 상기 참조라인 어드레스 발생수단(3) 및 상기 참조라인 데이타 기억 수단(4)이 단일집적회로 내에 결합되는 것을 특징으로 하는 장치.
  6. 제3항에 있어서, 상기 참조라인 어드레스 발생 수단(3)이 상기 처리 수단에서 입력된 2진 데이타의 처리 횟수를 카운트하고, 상기 참조라인 데이타 기억 수단(4)을 액세스하기 위해 카운트된 데이타를 어드레스의 일부로서 출력하기 위한 카운터 수단(82)과, 오프셋 데이타를 상기 카운터 수단(82)으로부터 카운트된 데이타에 가산하고 그 합을 어드레스의 일부로서 출력시키기 위한 가산기 수단(84)과, 상기 카운터 수단(82)으로부터의 어드레스 부분중 하나와 상기 가산기 수단(84)으로부터의 어드레스 부분중 하나를 선택적으로 출력시키기 위한 선택기 수단(86)과, 상기 선택기 수단(86)으로부터의 출력된 어드레스를 입력시키고 그 입력된 어드레스를 판독 동작시 현재의 처리라인에 대하여 그리고 기입 동작시 다음의 처리라인에 대하여 참조라인 데이타의 기억 영역을 표시하는 입력 표시 데이타와 함께 상기 참조라인 데이타 기억 수단(4)에 출력시키기 위한 어드레스 레지스터 수단(88)을 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  7. 2진 데이타를 고속으로 압축 및 신장할 수 있는 2진 데이타 압축 및 신장 처리 장치에 있어서, 참조라인 데이타를 기억하기 위한 참조라인 데이타 기억 수단(4)과, 입력 데이타 버스를 통해 2진 데이타를 입력시키고, 압축 모드에서 입력된 2진 데이타를 참조라인 데이타로서 상기 참조라인 데이타 기억 수단(4)에 출력시키고 상기 참조라인 데이타 기억 수단(4)로부터 입력된 2진 데이타에 대응하는 참조라인 데이타를 판독하고, 판독된 참조라인 데이타에 따라 신장 모드에서 입력된 2진 데이타를 신장처리하고 압축 모드에서 입력된 2진 데이타의 압축 처리를 수행하고, 신장 모드에서 처리된 2진 데이타를 참조라인 데이타로서 상기 참조라인 데이타 기억 수단(4)에 출력시키고 그 처리된 2진 데이타를 출력 데이타 버스를 통해 외부 장치로 출력시키기 위해, 입력 데이타 버스를 통해 2진 데이타가 입력하면, 입력된 2진 데이타의 파이프 라인 처리를 소정의 방향으로 수행하여, 처리된 2진 데이타를 출력 데이타 버스를 통해 출력시키는 압축 및 신장 처리 수단(2)을 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  8. 제7항에 있어서, 상기 참조라인 데이타 기억 수단(4)이 현재의 처리라인과 다음 처리라인에 대한 참조라인 데이타를 기억하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  9. 제7항에 있어서, 상기 참조라인 데이타 기억 수단(4)이 선입 선출 FIFO형 메모리인 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  10. 제7항에 있어서, 상기 처리 수단(2)이 상기 참조라인 데이타 기억 수단(4)을 액세스할때 어드레스를 발생하기 위한 참조라인 어드레스 발생 수단(3)을 아울러 구비하며, 상기 참조라인 데이타 기억 수단(4)이 고속 스태틱 RAM인 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  11. 제10항에 있어서, 상기 압축 및 신장 처리 수단(2)과, 상기 참조라인 어드레스 발생 수단(3)이 단일 집적 회로내에 결합되는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  12. 제10항에 있어서, 상기 압축 및 신장 처리 수단(2), 상기 참조라인 어드레스 발생 수단(3) 및 상기 참조라인 데이타 기억 수단(4)이 단일 집적 회로내에 결합되는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  13. 제10항에 있어서, 상기 참조라인 어드레스 발생 수단(3)이 상기 처리 수단에서 입력된 2진 데이타의 처리 횟수를 카운트하고, 상기 참조라인 데이타 기억 수단(4)을 액세스하기 위하여 그 카운트된 데이타를 어드레스의 일부로서 출력하기 위한 카운터 수단(82)과, 오프셋 데이타를 상기 카운터 수단(82)으로부터의 카운트된 데이타에 가산하고 그 합을 어드레스의 일부로서 출력하기 위한 가산기 수단(84)과, 상기 카운터 수단(82)으로부터의 어드레스 부분중 하나와 상기 가산기 수단(84)으로부터의 어드레스 부분 중 하나를 선택적으로 출력시키기 위한 선택기 수단(86)과, 상기 선택기 수단(86)으로부터의 출력된 어드레스의 일부를 선택적으로 출력시키기 위한 선택기 수단(86)과, 상기 선택기 수단(86)으로부터의 출력된 어드레스의 일부를 입력시키고, 입력된 어드레스의 일부를 판독 동작시 현재의 처리라인에 대하여 그리고 기입 동작시 다음 처리라인에 대하여 참조라인 데이타의 기억 영역을 표시하는 입력 표시 데이타와 함께 상기 참조라인 데이타 기억 수단(4)에 출력시키기 위한 어드레스 레지스터 수단(88)을 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  14. 제7항에 있어서, 상기 압축 및 신장 처리 수단이, 2진 코드 데이타를 입력 데이타 버스를 통해 입력시키고, 그 입력된 2진 코드 데이타를 신장 모드에서 입력된 2진 코드 데이타에 대응하는 런 랭스 데이타를 발생하도록 디코드하며; 2진 화상 데이타를 입력 데이타 버스를 통해 입력시키고, 입력된 2진 화상 데이타가 1차원 코딩에 의해 인코드될때 입력된 2진 화상 데이타의 모든 비트들이 동일한 색이라는 것을 검출하고, 압축 모드에서 모든 비트들이 동일한 색이 아니라고 검출될때 동일한 칼라 비트의 비트 길이를 발생하기 위한 디코딩 처리 수단(7)과, 상기 참조라인 데이타 기억 수단(4)으로부터 현재의 처리라인에 대한 참조라인 데이타를 판독하고, 발생된 런 랭스 데이타에 따라서 판독된 화상 데이타를 참조하여 입력된 2진 코드 데이타에 대응하는 2진 화상 데이타를 발생하고, 발생된 화상 데이타를 신장 모드에서 다음 처리라인에 대한 참조라인 데이타로서 상기 참조라인 데이타 기억 수단(4)에 출력시키고 상기 출력 데이타 버스를 통해 외부 장치로 출력시키고, 상기 참조라인 데이타 기억 수단(4)으로부터 현재의 처리라인에 대한 참조라인 데이타를 판독하고, 판독된 화상 데이타를 참조로한 검출 결과에 따라서 상기 디코딩 처리 수단(7)에 입력된 화상 데이타에 대응하는 2진 코드 데이타를 발생하고, 압축 모드에서 발생된 2진 코드 데이타를 출력 데이타 버스를 통해 외부 장치로 출력시키기 위한 생성처리수단(8)을 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  15. 입력 코드 데이타를 고속으로 신장할 수 있는 2진 데이타 압축·신장 처리 장치에 있어서, 식별 코드, 메이크-업 코드, 종료 코드, 패스 모드 코드 및 코드 블록의 디코딩 유니트로서의 수직 모드 코드들로 구성된 코드 데이타 열로부터 (n+1)번째 코드 블록을 포함하는 코드 데이타를 제1의 소정의 데이타 길이의 단위로 순차적으로 수신하고, 수신된 코드 데이타의 (n+1)번째 코드 블록을 디코드하고, 디코드된 코드 블록에 대응하는 런 랭스 데이타를 발생하기 위해, (n+1)번째 코드 블록이 제2의 소정의 데이타 길이 보다 짧은 경우 한번의 처리 단계에서 디코딩이 완료되는 반면 (n+1)번째 코드 블록이 제2의 소정의 데이타 길이보다 긴 경우 복수의 처리 단계에서 디코딩이 완료되면, n번째 코드 블록에 대응하는 화상 데이타의 발생이 완료될때 런 랭스 데이타를 발생하는 디코딩 처리 수단(7)과, (n+1)번째 코드 블록이 상기 디코딩 처리 수단(7)에서 디코드되는 동안 n번째 코드 블록에 대응하는 런 랭스 데이타에 대한 화상 데이타를 생성하고, 그 생성된 화상 데이타를 각 처리 단계에서 나머지 화상 데이타와 조합하고, 조합된 화상 데이타의 길이가 제1의 소정의 데이타 길이 또는 그 이상일때 조합된 화상 데이타로부터 제1의 소정의 데이타 길이에 대한 화상 데이타를 출력시키기 위해, 조합된 화상 데이타로부터 출력된 화상 데이타를 제외한 화상 데이타가 남아있게 되면, 화상 데이타의 생성이 런 랭스 데이타에 따라서 적어도 한번의 처리 단계에 의해 수행하는 생성처리 수단(8)을 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  16. 제15항에 있어서, 상기 디코딩 처리 수단(7)이 n번째 코드 블록에 대응하는 화상 데이타의 생성시 (n+1)번째 코드 블록의 디코딩을 시작하고, n번째 코드 블록에 대응하는 화상 데이타의 생성이 완료될때까지 디코딩이 도중에 대기하고, (n+1)번째 코드 블록에 대응하는 화상 데이타의 생성이 완료된후 (n+1)번째 코드 블록이 한번의 처리 단계에서 디코드될 수 있도록 (n+1)번째 코드의 디코딩을 완료하기 위한 수단(7)을 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  17. 제15항에 있어서, 상기 디코딩 처리 수단(7)이 n번째 코드 블록에 대응하는 화상 데이타의 발생시 디코딩이 제1처리 단계를 시작하고, n번째 코드 블록에 대응하는 화상 데이타의 생성이 완료될때까지 디코딩이 도중에 대기하고, n번째 코드 블록에 대응하는 화상 데이타의 생성 완료후 디코딩의 제1처리 단계를 완료하고, 복수의 처리 단계가 (n+1)번째 코드 블록의 디코딩에 필요할때 디코딩의 제2처리 단계를 순차적으로 실행하기 위한 수단(7)을 구비하고, 생성처리 수단(8)이 (n+1)번째 코드 블록의 디코딩의 제2처리 단계가 실행되는 동안 대기하고, (n+1)번째 코드 블록의 디코딩의 완료시 (n+1)번째 코드 블록에 대응하는 화상 데이타의 생성을 실행하기 위한 수단(8)을 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  18. 제15항에 있어서, 상기 디코딩 처리 수단(7)이 대응 처리라인의 종단으로 처리가 진행되었다는 것이 화상 데이타의 생성에 의해 검출될때 백색으로서의 다음 코드 블록의 디코딩의 제1처리 단계를 다시 시작하기 위한 수단(7)을 아울러 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
  19. 제15항에 있어서, 상기 디코딩 처리 수단(7)이 디코딩의 제1처리 단계의 완료시 코드 데이타에서 "0"가 소정수의 비트들에 대하여 계속될때 화상 데이타의 생성 완료를 대기하지 않고 디코딩의 제2처리 단계를 실행하기 위한 수단(7)을 아울러 구비하는 것을 특징으로 하는 2진 데이타 압축·신장 처리 장치.
KR1019870001793A 1986-02-28 1987-02-28 2진 데이타 압축·신장 처리장치 KR910000742B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP61-43694 1986-02-28
JP4369486 1986-02-28
JP43694 1986-02-28

Publications (2)

Publication Number Publication Date
KR870008446A KR870008446A (ko) 1987-09-26
KR910000742B1 true KR910000742B1 (ko) 1991-02-06

Family

ID=12670937

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870001793A KR910000742B1 (ko) 1986-02-28 1987-02-28 2진 데이타 압축·신장 처리장치

Country Status (4)

Country Link
US (1) US4760461A (ko)
JP (1) JPS62283720A (ko)
KR (1) KR910000742B1 (ko)
DE (1) DE3711201A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800441A (en) * 1986-02-28 1989-01-24 Kabushiki Kaisha Toshiba Binary data compression and expansion processing apparatus
US4839738A (en) * 1987-04-22 1989-06-13 Advanced Micro Devices, Inc. Apparatus for decoding facsimile coded data to image data with coding and reference line windowing and color change detection
JPH0746310B2 (ja) * 1987-06-30 1995-05-17 三菱電機株式会社 半導体論理回路
US5187755A (en) * 1988-06-30 1993-02-16 Dainippon Screen Mfg. Co., Ltd. Method of and apparatus for compressing image data
JP2766302B2 (ja) * 1989-04-06 1998-06-18 株式会社東芝 可変長符号並列解読方法および装置
US5623556A (en) * 1990-07-31 1997-04-22 Kabushiki Kaisha Toshiba System and method of extracting binary image data
JP3134424B2 (ja) * 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
US5245441A (en) * 1991-12-12 1993-09-14 Ruben Murray A Document imaging processing method and apparatus
KR940008389A (ko) * 1992-09-30 1994-04-29 가나이 쯔또무 화상신호처리장치 및 이것을 사용한 정보송수신장치
DE4447553C2 (de) * 1993-03-19 1999-08-19 Mitsubishi Electric Corp Vorrichtung zur Bilddatenverarbeitung
JP3310525B2 (ja) * 1995-06-01 2002-08-05 ビー・イー・テクノロジー株式会社 デジタルデータ処理装置
KR19990082885A (ko) * 1998-04-09 1999-11-25 다니엘 태그리아페리, 라이조 캐르키, 모링 헬레나 대기 인터페이스를 통해 이차원의 데이터 압축을 사용하기 위한 장치 및 방법
JP2000228632A (ja) * 1999-02-05 2000-08-15 Sony Corp 符号化回路および信号処理装置
US6775413B1 (en) * 2000-09-18 2004-08-10 Intel Corporation Techniques to implement one-dimensional compression
US20020106132A1 (en) * 2001-02-02 2002-08-08 Toshiba Tec Kabushiki Kaisha Apparatus and method for encoding image data
US7200275B2 (en) 2001-12-17 2007-04-03 Microsoft Corporation Skip macroblock coding
US7801383B2 (en) * 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4152697A (en) * 1976-08-11 1979-05-01 Xerox Corporation Parallel run-length decoder
US4494151A (en) * 1979-07-02 1985-01-15 Xerox Corporation 4-Pixel run-length code for data compression
US4410916A (en) * 1979-08-24 1983-10-18 Compression Labs, Inc. Dual mode facsimile coding system and method
US4327379A (en) * 1980-04-11 1982-04-27 Xerox Corporation Hardware implementation of 4-pixel code encoder
US4360840A (en) * 1980-05-13 1982-11-23 Am International, Inc. Real time data compression/decompression scheme for facsimile transmission system
US4334246A (en) * 1980-05-16 1982-06-08 Xerox Corporation Data decompressor circuit
JPS5980063A (ja) * 1982-10-30 1984-05-09 Nec Corp フアクシミリの符号化回路
US4486784A (en) * 1982-12-27 1984-12-04 International Business Machines Corporation Image compression systems
JPS6019360A (ja) * 1983-07-12 1985-01-31 Nec Corp フアクシミリの復号化回路
US4558371A (en) * 1983-08-19 1985-12-10 Advanced Micro Devices, Inc. Method and device for two-dimensional facsimile coding
US4598411A (en) * 1984-07-17 1986-07-01 Allied Corporation On-the-fly data compression system
EP0180871A3 (de) * 1984-10-29 1987-10-07 Siemens Aktiengesellschaft Fernkopiergerät
US4686512A (en) * 1985-03-01 1987-08-11 Kabushiki Kaisha Toshiba Integrated digital circuit for processing speech signal

Also Published As

Publication number Publication date
DE3711201A1 (de) 1987-11-12
DE3711201C2 (ko) 1989-11-09
JPS62283720A (ja) 1987-12-09
KR870008446A (ko) 1987-09-26
US4760461A (en) 1988-07-26

Similar Documents

Publication Publication Date Title
KR910000742B1 (ko) 2진 데이타 압축·신장 처리장치
KR900001821B1 (ko) 2진 데이타 압축, 신장 처리 장치
US6144322A (en) Variable length code processor with encoding and/or decoding
US4486784A (en) Image compression systems
US5675331A (en) Decoding device for decoding a variety of code signals
JPH05219386A (ja) データフォーマット変換装置及び方法
JP2924964B2 (ja) 画像情報符号化装置、画像情報復号化装置及び画像情報符号化復号化装置
US5170445A (en) Document decompressing system
US20060233444A1 (en) JBIG coding apparatus and method with low cost, high-performance ping-pong buffer arrangement
KR910001072B1 (ko) 2진 데이타의 압축 및 신장처리장치
JPS62230164A (ja) デジタル信号符号化/復号化回路
US5623556A (en) System and method of extracting binary image data
JPH04298164A (ja) ファクシミリ装置用データ圧縮/解凍回路
KR100276768B1 (ko) 화상데이타의 부호화를 위한 변화화소 검출기
JPS6147466B2 (ko)
JP3224127B2 (ja) 画像データ変換処理装置
JP3247052B2 (ja) 画像データ変換処理方法及び装置
JP3108243B2 (ja) 符号化及び復号化装置
JP2641858B2 (ja) 圧縮伸長処理装置
US6999627B2 (en) Deterministic prediction in an image processing system
JPS6214579A (ja) 復号化回路
JP2001102937A (ja) ランレングス符号化方法及びランレングス符号化装置
JP3255808B2 (ja) 圧縮伸長装置
EP0302432A2 (en) Document decompressing system
JPH05244438A (ja) 圧縮伸長回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19940201

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee