KR100702464B1 - 프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩 - Google Patents
프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩 Download PDFInfo
- Publication number
- KR100702464B1 KR100702464B1 KR1020027015793A KR20027015793A KR100702464B1 KR 100702464 B1 KR100702464 B1 KR 100702464B1 KR 1020027015793 A KR1020027015793 A KR 1020027015793A KR 20027015793 A KR20027015793 A KR 20027015793A KR 100702464 B1 KR100702464 B1 KR 100702464B1
- Authority
- KR
- South Korea
- Prior art keywords
- image plane
- continuous tone
- decoder
- level
- print head
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41J—TYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
- B41J2/00—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
- B41J2/005—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
- B41J2/01—Ink jet
- B41J2/205—Ink jet for printing a discrete number of tones
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
프린트 엔진/컨트롤러는 드롭 온 디맨드 프린트 헤드와 함께 사용하는데 적합하다. 프린트 엔진/컨트롤러는 JPEG 연속톤 이미지층 및 그룹4 팩시밀리 프로토콜을 이용하여 압축된 2-레벨 이미지면 양쪽을 가지는 압축된 페이지 데이터로 작업한다. 압축된 이미지면을 수신하고, 확대를 달성하여 파이프라인 방식으로 인쇄한다. 그것은, 고속 직렬 인터페이스(27)(표준 IEEE 1394 인터페이스와 같은), 표준 JPEG 디코더(28), 표준 그룹4 Fax 디코더, 하프토너/합성장치 유닛(29), 적외선 태그를 인쇄된 페이지에 위치시키는 태그 인코더(30), 인터페이스(32)를 프린트 헤드(33)에 제공하는 라인 로더/포매터 유닛(31)으로 구성된다. 디코더(28,88) 및 인코더(30)는 하프토너/합성장치(29)로 버퍼된다.
Description
본 발명은, 프린터 제품의 범위내의 사용에 적합한 프린트 엔진/컨트롤러(PEC)에 관한 것이다. 본 발명은, 게다가 프린트 헤드 인터페이스 칩으로 실현되는 프린트 엔진/컨트롤러에 관한 것이다.
프린터 유형의 범위는, 잉크가 페이지에서 도트 포맷 형태로 선택적으로 도포됨으로써 이미지가 구축되는 것으로 발전되었다. 발명자가 키아 실버브룩(Kia Silverbrook), 제목이 '모놀리딕 프린트 헤드의 자기정렬 구성 및 제조 공정'이라는 미국특허 No.6045710호에서는, 드롭 온 디맨드 프린터(drop on demand printer)와 그 제조공정에 따른 종래 기술의 평가가 기술되어 있다.
이후, 멤제트(Memjet) 프린트 헤드로 불려지는, 마이크로 전자기계적인 드롭 온 디맨드(microelectomechanical drop on demand) 프린트 헤드는, 본 출원과 동시에 출원되어, 계류(co-pending)중인 국제출원에 기술되어 있으며, 상호 참조(cross reference)로서 본 명세서에 포함된다.
PCT 출원번호 | 우리측 참조번호 |
PCT/AU00/00591 | MJ62 |
PCT/AU00/00578 | IJ52 |
PCT/AU00/00579 | IJM52 |
PCT/AU00/00592 | MJ63 |
PCT/AU00/00590 | MJ58 |
멤제트(Memjet) 프린트 헤드는, 예컨대 1페이지의 전체 폭에 걸쳐 액체 잉크가 1600dpi의 2-레벨 도트를 생성할 수 있는 프린트 헤드 세그먼트에서 발전되었다. 도트(dot)들은 용이하게 분리 생성되는데, 이것은 분산-도트(dispersed-dot) 디더링(dithering)이 최대한 활용되도록 한다. 컬러면이 완전한 기록으로 인쇄되어, 이상적인 도트-온-도트(dot-on-dot) 인쇄를 허용한다. 프린트 헤드는 마이크로 전자기계적인 잉크방울 기술을 이용하여 고속 인쇄를 가능하게 한다.
본 발명에 관한 다양한 방법, 시스템 및 장치는, 본 발명의 출원인 또는 양수인에 의해, 본 출원과 동시에 출원된 다음의 계류중인 출원들에 개시되어 있다.
PCT/AU00/00518, PCT/AU00/00519, PCT/AU00/00520,
PCT/AU00/00521, PCT/AU00/00522, PCT/AU00/00523,
PCT/AU00/00524, PCT/AU00/00525, PCT/AU00/00526,
PCT/AU00/00527, PCT/AU00/00528, PCT/AU00/00529,
PCT/AU00/00530, PCT/AU00/00531, PCT/AU00/00532,
PCT/AU00/00533, PCT/AU00/00534, PCT/AU00/00535,
PCT/AU00/00536, PCT/AU00/00537, PCT/AU00/00538,
PCT/AU00/00539, PCT/AU00/00540, PCT/AU00/00541,
PCT/AU00/00542, PCT/AU00/00543, PCT/AU00/00544,
PCT/AU00/00545, PCT/AU00/00547, PCT/AU00/00546,
PCT/AU00/00554, PCT/AU00/00556, PCT/AU00/00557,
PCT/AU00/00558, PCT/AU00/00559, PCT/AU00/00560,
PCT/AU00/00561, PCT/AU00/00562, PCT/AU00/00563,
PCT/AU00/00564, PCT/AU00/00565, PCT/AU00/00566,
PCT/AU00/00567, PCT/AU00/00568,
PCT/AU00/00569, PCT/AU00/00570, PCT/AU00/00571,
PCT/AU00/00572, PCT/AU00/00573, PCT/AU00/00574,
PCT/AU00/00575, PCT/AU00/00576, PCT/AU00/00577,
PCT/AU00/00578, PCT/AU00/00579, PCT/AU00/00581,
PCT/AU00/00580, PCT/AU00/00582, PCT/AU00/00587,
PCT/AU00/00588, PCT/AU00/00589, PCT/AU00/00583,
PCT/AU00/00593, PCT/AU00/00590, PCT/AU00/00591,
PCT/AU00/00592, PCT/AU00/00584, PCT/AU00/00585,
PCT/AU00/00586, PCT/AU00/00594, PCT/AU00/00595,
PCT/AU00/00596, PCT/AU00/00597, PCT/AU00/00598,
PCT/AU00/00517, PCT/AU00/00511, PCT/AU00/00501,
PCT/AU00/00502, PCT/AU00/00503, PCT/AU00/00504,
PCT/AU00/00505, PCT/AU00/00506, PCT/AU00/00507,
PCT/AU00/00508, PCT/AU00/00509, PCT/AU00/00510,
PCT/AU00/00512, PCT/AU00/00513, PCT/AU00/00514,
PCT/AU00/00515
이들 계류중인 출원들의 설명이, 상호 참조로서 본 명세서에 포함된다.
상기와 같은 프린트 헤드의 성능은, 그 엔진/컨트롤러에 의해 결정된다. 고속 인쇄는, 프린트 헤드 및 그 엔진/컨트롤러 양쪽의 개발의 문제이다. 상기 기술에 의해 가능해진 페이지 폭 프린트 헤드는, 드롭 제어신호를 고속으로 공급할 수 있는 엔진/컨트롤러를 필요로 한다. 일반적인 페이지 레이아웃은 이미지, 그래픽 및 텍스트의 혼합물을 포함한다. 상기 마이크로 전자기계적인 페이지 폭 프린트 헤드의 특성 때문에, 각 페이지는 가시적 아티팩트(artifact)의 생성을 회피하기 위해 일정한 속도로 인쇄될 수 있다. 이것은, 인쇄 속도가 데이터의 입력 속도에 맞추어 변경될 필요가 없는 것을 의미한다. 문서의 래스터화(rasterization) 및 문서의 인쇄는 분리될 수 있다. 프린트 헤드가 일정한 데이터 공급을 갖도록 보장하기 위해, 완전히 래스터화(rasterize) 될 때까지는 페이지가 인쇄되지 않아야 한다. 이상적으로, 인쇄하기에 앞서 래스터화를 해야 하는데, 이것은 보다 더 복잡한 페이지를 래스터화 하는 시간을 벌어들인다. 엔진/컨트롤러는 이들 기능이 실현되는 정도를 결정한다.
프린트 헤드의 고속화는, 프린트 헤드 및 그 엔진/컨트롤러 양쪽의 개발에 의해 결정된다. 프린트 엔진/컨트롤러의 아키텍처(architecture)는, 프린트 헤드에 다량의 데이터를 고속으로 밀어넣도록 설계하는 것이 필요한다.
[발명의 요약]
본 발명의 일측면에 따른 프린트 엔진/컨트롤러는,
연속톤(contone) 이미지 디코더와;
2-레벨 압축 디코더 및;
하프토너(half-toner)/합성장치(compositor)와 프린트 헤드 인터페이스를 포함한다.
프린트 엔진/컨트롤러는, 컴퓨터 또는 인쇄 분배시스템에 의해, 독자적으로 포맷된 압축 페이지 데이터로부터 페이지를 생성하는 최종 단계들을 제공하고, 상기 단계들은 페이지 이미지 확대하는(expanding)단계, 연속톤 층 디더링하는(dithering)단계, 연속톤 층상에 흑색층 합성하는(compositing)단계, 적외선층에 적외선 태그 부가하는(adding)단계 및 프린트 헤드로 합성된 이미지를 전송하는(sending) 단계이다.
프린트 엔진/컨트롤러는, 압축된 페이지 데이터를 수신하는데 가급적 고속 직렬 인터페이스를 사용한다. 연속톤 이미지면은 JPEG 디코더에 의해 디코드(decode) 되고, 마진유닛 제어하의 하프토너/합성장치로 스케일(scale) 된다. 그룹4 팩시밀리 디코더는 2-레벨 이미지면을 디코드 하고, 또한 마진유닛 제어하의 하프토너/합성장치로 스케일 된다. 적외선 태그 인코더는, 적외선 잉크 인쇄된 태그를 인쇄된 페이지에 위치시키기 위해, 임의로 적외선 이미지면을 생성하도록 한다. 하프토너/합성장치는 압축된 페이지 데이터로부터 디더 데이터를 공급함으로써, 연속톤 이미지면을 디더하기 위한 디더 매트릭스 액세스 유닛을 포함한다.
또한, 본 발명은, 압축된 페이지 데이터를 수신하기 위한 인터페이스와, 상 기 수신되는 압축된 페이지 데이터내에서 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와, 상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면 및 디더 데이터를 디코드하는 2-레벨 디코더와, 연속톤 이미지면상에 2-레벨 이미지면을 합성하는 하프토너/합성장치 및 프린트 헤드로 합성된 이미지를 출력하는 프린트 헤드 드라이버를 포함하는 잉크방울 프린트 헤드와 접속하는 프린트 엔진/컨트롤러를 더 포함한다.
도 1은 프린트 엔진 컨트롤러에 의해 실행되는 데이터 플로우 및 기능을 나타내는 도면이다.
도 2는 개략적인 프린터 시스템 구조와 관련된 프린트 엔진 컨트롤러를 나타내는 도면이다.
도 3은 프린트 엔진 컨트롤러의 아키텍처를 나타내는 도면이다.
도 4는 도 3의 하프토너/합성장치 유닛(HCU)에 대한 외부 인터페이스를 나타내는 도면이다.
도 5는 도 4의 HCU에 관한 내부회로를 나타내는 도면이다.
도 6은 도 5의 도트 병합유닛내의 프로세스를 나타내는 블록도이다.
도 7은 도 5의 도트 재편유닛내의 프로세스를 나타내는 도면이다.
도 8은 도 5의 라인 로더/포맷유닛(LLFU)내의 프로세스를 나타내는 도면이다.
도 9는 도 8의 LLFU에서 컬러데이터를 생성하기 위한 내부회로를 나타내는 도면이다.
도 10 및 도 11은 도 9에 도시된 LLFU의 구성 요소를 나타내는 도면이다.
[바람직한 실시예의 상세한 설명]
일반적으로, 12인치 폭의 프린트 헤드는 하나 이상의 PEC로 제어되어, 아래에 기술되는 바와 같이, A4 및 레터(Letter) 페이지의 전면 번짐(full-bleed) 인쇄를 허용한다.
6채널의 컬러 잉크는, 현재의 인쇄 환경에서의 최대 기대치로서, 이들은 다음과 같다.
ㆍ정식 컬러 인쇄용, CMY.
ㆍ흑색 텍스트 및 다른 흑색 인쇄용, K.
ㆍ태그 가능한 적용, IR(적외선).
ㆍ고속 인쇄를 가능하게 하는, F(고착제).
프린터는 인쇄를 고속화 할 수 있어야 하고, 다음 페이지가 인쇄 종료되기 이전에, 잉크를 고속으로 건조시킬수 있는 고착제가 필요하게 된다. 그렇지 않으면, 서로 페이지상에서 번지게(bleed) 된다. 저속 인쇄환경에서는 고착제가 필요하지 않다.
PEC는 프린트 헤드와 접속하는 단일 칩에 내장된다. 기본적으로 4개 레벨의 기능성을 포함한다:
ㆍIEEE 1394와 같은 직렬 인터페이스를 통해서 압축된 페이지를 수신한다.
ㆍ압축된 형태로부터 페이지를 생성하는 프린트 엔진. 프린트 엔진 기능은 페이지 이미지를 확대하고, 연속톤 층을 디더하며(dither), 연속톤 층상에 흑색층 을 합성하고, 선택적으로 적외선 태그를 부가하며 및 프린트 헤드로 합성된 이미지를 전송하는 것을 포함한다.
ㆍ프린트 헤드 및 단계 모터를 제어하는 프린트 컨트롤러.
ㆍ2개의 QA 칩과 통신하는 2개의 표준 저속 직렬포트. 승인 절차 동안 강력한 보안을 보장하기 위해 단일 포트가 아닌 2개의 포트가 되는 것에 주의한다.
도 1에는 컴퓨터 시스템에서 인쇄된 페이지로 문서를 전송하기 위한 데이터의 플로우가 도시되었다. 문서는 11에서 수신되어, 페이지 레이아웃이 달성되고, 어떤 필요한 객체가 추가될 수 있는 메모리 버퍼(12)로 적재된다. 메모리 버퍼(12)로부터의 페이지는 13에서 래스터화 되어, 프린트 엔진 컨트롤러(10)로 전송하기 전에 14에서 압축된다. 페이지는, 프린트 엔진 컨트롤러(10)내에서 압축된 페이지 이미지로서 메모리 버퍼(15)로 수신되어, 페이지 이미지가 복구되는 페이지 확대장치(expander)(16)로 공급된다. 어떤 필수 디더링이 17에서 어떤 연속톤 층에도 적용될 수 있다. 어떤 흑색 2-레벨층도 19의 적외선 태그와 함께 18에서 연속톤 층상에 합성될 수 있다. 합성된 페이지 데이터는 20에서 인쇄되어 페이지(21)를 생성한다.
프린트 엔진/컨트롤러는 압축된 페이지 이미지를 수신하여, 파이프라인 방식으로 페이지 확대 및 인쇄를 시작한다. 상당한 크기의 2-레벨 CMYK+IR 페이지 이미지를 메모리에 저장하는 것은 실행 불가능하기 때문에, 페이지 확대 및 인쇄는 가급적 파이프라인으로 된다.
파이프라인의 제1 단계는, JPEG 압축된 연속톤 CMYK층(아래에 도시), 그룹4 팩스 압축된 2-레벨 디더 매트릭스 선택 맵(아래 도시) 및 그룹4 팩스 압축된 2-레벨 흑색층(아래 도시)을 모두 병행하여 확대한다. 이것과 병행하여, 태그 인코더는 압축된 페이지 이미지로부터 2-레벨 IR 태그데이터를 인코드한다. 제2 단계는, 디더 매트릭스 선택 맵에 의해 선택된 디더 매트릭스를 이용하여 연속톤 CMYK층을 디더하고, 합성된 2-레벨 K층상에 2-레벨 흑색층을 합성하며, 페이지에 IR층을 부가한다. 또한, 어떤 C, M, Y, K 또는 IR 채널을 필요로 하여도 고착층은 각각의 도트 위치에서 생성된다. 최종 단계는, 프린트 헤드 인터페이스(아래에 도시)를 경유해서 프린트 헤드를 통해서 2-레벨 CMYK+K 데이터를 인쇄한다.
도 2에는 개략적인 프린터 시스템 구조내에서 프린트 엔진/컨트롤러(10)가 어떻게 설치되는 것인지 도시되었다. 프린터 시스템의 다양한 구성 요소는, 다음을 포함한다.
ㆍ프린트 엔진/컨트롤러(PEC). PEC 칩(10) 또는 칩은, 메모리 버퍼(24)내에 저장하기 위한 압축된 페이지 이미지를 수신하고, 페이지 확대를 실행하며, 흑색층을 합성하고, 프린트 헤드(23)로 도트 데이터를 전송할 책임이 있다. 또한, QA 칩(25, 26)과 통신하여, 최적의 인쇄를 보장하도록 프린트 헤드 특성을 보상하는 수단을 제공한다. PEC는 본 명세서의 주제이다.
ㆍ메모리 버퍼. 메모리 버퍼(24)는, 압축된 페이지 이미지를 저장하고, 주어진 페이지를 인쇄하는 동안 스크래치(scratch) 사용을 위한 것이다. 메모리 버퍼의 구성 및 작용은 기분 분야에서 숙련된 사람들에게 공지되어 있고, 표준 칩의 범위 및 그 사용 기술은 본 발명의 PEC의 사용에 이용된다.
ㆍ마스터 QA 칩. 마스터 칩(25)은 교환 가능한 잉크 카트리지 QA 칩(26)과 정합된다. QA 유닛의 구성 및 작용은 기술분야에서 공지되어 있고, 공지된 QA 프로세스의 범위는 본 발명의 PEC의 사용에 이용된다. 예컨대, QA칩은 공동 출원중인 미국특허출원에 기술되어 있다.
미국출원번호 | 우리측 참조번호 | 제목 |
TBA | AUTH01 | 유효 프로토콜 및 시스템 |
09/112,763 | AUTH02 | IDD 불안전 공격에 대한 칩 보호회로 |
09/112,737 | AUTH04 | 온칩 메모리(플래쉬 및 RAM) 보호방법 |
09/112,761 | AUTH05 | 칩 탬퍼저항 제조방법 |
09/113,223 | AUTH06 | 물리적인 객체의 인증시스템 |
TBA | AUTH07 | 유효 프로토콜 및 시스템 |
TBA | AUTH08 | 유효 프로토콜 및 시스템 |
09/505,003 | AUTH09 | 소모 가능한 인증 프로토콜 및 시스템 |
09/517,608 | AUTH10 | 소모 가능한 인증 프로토콜 및 시스템 |
09/505,147 | AUTH11 | 소모 가능한 인증 프로토콜 및 시스템 |
09/505,952 | AUTH12 | 플래쉬 메모리에 저장된 값의 비공인 수정 |
TBA | AUTH13 | 보안데이터의 취급시스템 |
09/516,874 | AUTH14 | 전원 공격을 방지하는 공인 칩 |
TBA | AUTH15 | 비밀데이터의 보호 취급법 |
QA 통신 칩은, 물리적인 프린트 헤드를 구동할 뿐만 아니라 이미지 확대의 역할을 가지므로, PEC 칩의 개략적인 기능성내에 포함되는 것이 가장 좋다. QA 통신 칩을 설치함으로써, 페이지를 인쇄하기 위한 잉크가 충분한 것이 보장될 수 있다. 바람직하게, 프린트 헤드 조립체에 내장된 QA 칩은 인증 칩을 이용하여 실현된다. 그것은, 마스터 QA 칩이므로, 인증 키만을 포함하고, 사용자 데이터는 포함하지 않는다. 그러나, 그것은 잉크 카트리지 QA 칩과 정합해야 한다. 잉크 카트리지의 QA 칩은 가능한 한 최상의 인쇄 품질을 유지하기 위해 필요한 정보를 포함하고, 인증 칩을 이용하여 실현된다. 바람직하게, 64MBit(8MByte) 메모리 버퍼는 압축된 페이지 이미지를 저장하기 위해 사용된다. 한쪽 페이지가 버퍼에 기록되는 동안 다 른쪽 페이지는 판독된다(이중 버퍼링). 게다가, PEC는 페이지를 인쇄하는 동안 메모리를 사용하여 계산된 도트 정보를 버퍼한다. 페이지 N을 인쇄하는 동안, 버퍼는 다음을 위해 사용된다.
ㆍ압축된 페이지 N을 판독한다
ㆍ페이지 N에 대한 2-레벨 도트 정보를 판독 및 기록한다
ㆍ압축된 페이지 N+1을 기록한다
바람직하게, PEC칩은 다음의 기능을 실행하기 위해 간단한 마이크로 컨트롤러 CPU 코어(35)를 포함한다.
ㆍ인쇄 페이지 사이에서 직렬 인터페이스(36)를 통해서 QA 칩 인증 프로토콜을 실행한다.
ㆍ인쇄하는 동안 병렬 인터페이스(91)를 통해서 단계모터를 구동한다(단계 모터는 5㎑ 프로세스가 요구된다)
ㆍ인쇄하는 동안 PEC 칩의 여러 부분을 동기시킨다
ㆍ외부 데이터 요청과 접속하는 수단을 제공한다(프로그래밍 레지스터 등)
ㆍ프린트 헤드 세그먼트 저속 데이터 요청과 접속하는 수단을 제공한다(특성 벡터를 판독하고 펄스 프로파일을 기록하는 것과 같은)
ㆍ외부 DRAM에 포트레이트(portrait) 및 랜드스케이프(landscape) 태그 구조를 기록하는 수단을 제공한다
모든 이미지 처리가 전용 하드웨어에 의해 실행되므로, CPU는 화소를 처리하지 않는다. 그 결과, CPU는 매우 간단해진다. 공지된 다양한 종류의 CPU 코어가 적 합하다: 필요한 계산 및 제어기능을 충분히 신속하게 처리하는 처리능력을 가지면 어떤 프로세서 코어도 될 수 있다. 적합한 코어의 예는, 약 1㎒에서 동작하는 필립스 8051 마이크로 컨트롤러가다. CPU 코어(35)는 프로그램 ROM 및 소형 프로그램 스크래치 RAM과 연관될 수 있다. CPU는 메모리-맵 I/O를 통해서 PEC 칩내의 다른 유닛과 통신한다. 특정 어드레스 영역은, 각 영역내에서 특정 유닛내의 특정 레지스터에 배치한다. 이것은 직렬 인터페이스(36) 및 병렬 인터페이스(91)를 포함한다. 소형 프로그램 플래쉬 ROM은 PEC 칩에 포함된다. 그 사이즈는 선택된 CPU에 의해 결정되지만, 8KB 이하이다. 마찬가지로, 소형 스크래치 RAM 영역이 PEC 칩에 포함될 수 있다. 프로그램 코드는 이미지를 처리하지 않으므로, 대규모 스크래치 영역을 필요로 하지 않는다. RAM의 사이즈는 선택된 CPU(즉, 스택 구조, 서브루틴 호출 컨벤션, 레지스터 사이즈 등)에 의해 결정되지만, 약 2KB 이하이다.
페이지 폭 프린트 헤드에 기초하여 상술한 세스먼트를 이용하는 PEC 칩은, 최대 도트 해상도(일반적으로 1600dpi)로 흑색을 재생할 수 있지만, 어느 정도의 저해상도로 중간 색조(halftoning)를 이용하는 연속톤 컬러를 재생할 수 있다. 따라서, 페이지 기술은 흑색 2-레벨층 및 연속톤 층으로 분리된다. 흑색 2-레벨층은 연속톤 층상의 합성물로서 규정된다. 흑색 2-레벨층은 화소마다 1 비트의 불투명도(opacity)를 포함하는 비트맵으로 구성된다. 이 흑색층 매트(matte)는, 프린터의 도트 해상도의 정수 요소인 해상도를 가진다. 최대 지원 해상도는 1600dpi, 즉 프린터의 최대 도트 해상도이다. 연속톤 층은 화소마다 32비트의 CMYK 컬러를 포함하는 비트맵으로 구성되고, K는 선택이다. 이 연속톤 이미지는 프린터의 도트 해상도의 정수 요소인 해상도를 가진다. 최대 지원 해상도는, 단일 PEC에 대해 12인치에 걸친 320ppi, 즉 프린터 도트 해상도의 1/5이다. 보다 높은 연속톤 해상도를 위해, 각각 출력 페이지의 스트립을 생성하는 다중 PEC가 필요해진다. 또한, 연속톤 해상도는, RIP에서 계산을 간소화하기 위해 일반적으로 흑색 2-레벨 해상도의 정수 요소이다. 그러나, 이것은 필요 조건은 아니다. 흑색 2-레벨층 및 연속톤 층은, 프린터의 내부 메모리에서 효율적인 저장을 위해 모두 압축된 형태로 있다.
도 3에는 프린트 엔진 구조가 도시되었다. 프린트 엔진의 페이지 확대 및 인쇄 파이프라인은, 고속 직렬 인터페이스(27)(표준 IEEE 1394 인터페이스와 같은), 표준 JPEG 디코더(28), 표준 그룹4 팩스 디코더, 주문 하프토너/합성장치 유닛(29), 주문 태그 인코더(30), 라인 로더/포매터 유닛(31) 및 프린트 헤드(33)에 대한 주문 인터페이스(32)로 구성된다. 디코더(28, 88) 및 인코더(30)는 하프토너/합성장치(29)에 버퍼된다. 태그 인코더(30)는 페이지의 용도에 따른 프로토콜에 따라 적외선 태그 또는 태그를 페이지에 설정하며, 태그의 실제 내용은 본 발명의 주제는 아니다.
프린트 엔진은 이중 버퍼 방식으로 작동한다. 한쪽 페이지가 고속 직렬 인터페이스(27)에서 DRAM 인터페이스(89) 및 데이터 버스(90)를 통해 DRAM(34)으로 적재되지만, 이전에 적재된 페이지는 DRAM(34)에서 판독되어, 프린트 엔진 파이프라인을 통과한다. 한번 페이지 인쇄가 종료되고, 직후에 적재된 페이지는 인쇄되는 페이지로 되고, 신규 페이지는 고속 직렬 인터페이스(27)를 통해 적재된다. 제1 단계에서, 파이프라인은 어떤 JPEG 압축된 연속톤(CMYK)층 및 어떤 그룹4 팩스 압축 된 2-레벨 데이터 스트림도 확대한다. 2개의 스트림은 흑색층(PEC는 실제로 컬러 불가지론이지만, 이 2-레벨층은 어떤 출력 잉크에도 향해질 수 있다) 및 연속톤 디더링(아래에 도시)을 위해 디더 매트릭스 사이에서 선택하는 매트이다. 제1 단계와 병행하여, 제2 단계에서는, 나중에 IR이나 흑색 잉크로 렌더링하는 어떤 태그도 인코드된다. 최후로, 제3 단계에서는 연속톤 층을 디더하고, 합성된 2-레벨 디더층상에 위치 태그 및 2-레벨 스폿 1층을 합성한다. 데이터 스트림은, 프린트 헤드에서 중복 세그먼트를 횡단하는 순조로운 이행을 생성하기 위해 이상적으로 조정되고, 프린트 헤드에서 데드 노즐을 보상하기 위해 이상적으로 조정된다. 이 단계에서, 2-레벨 데이터의 6채널까지 생성된다. 프린트 헤드상에 6채널이 모두 존재하지 않는 것에 주의한다. 예컨대, 프린트 헤드는, K가 CMY 채널에 밀어 넣어지고 IR이 무시되는, 단지 CMY일 수 있다. 선택적으로, IR 잉크를 사용할 수 없는 경우(또는 시험 목적), 위치 태그는 K로 인쇄될 수 있다. 합성된 2-레벨 CMYK-IR 도트 데이터는, 라인버퍼(아래에 도시)의 세트를 통해서 프린트 헤드(33)상에 인쇄하기 위해 버퍼되어 포맷된다. 이들 라인버퍼의 대부분은, 오프 칩 DRAM(34)상에 이상적으로 저장된다. 최종 단계는, 프린트 헤드 인터페이스(32)를 통해서 2-레벨 도트 데이터의 6채널을 인쇄한다.
PEC를 사용하는 인쇄시스템에서 압축이 사용된다. 이것은, 페이지 저장에 필요한 메모리를 감소시킬 뿐만 아니라 호스트 및 PEC 사이에서 요구되는 대역폭도 감소시킨다. 267ppi에서, 연속톤 CMYK 데이터의 레터 페이지는, 25MB의 사이즈를 가진다. JPEG(아래에 도시)과 같은 손실있는(lossy) 연속톤 압축 알고리즘을 이용 함으로써, 연속톤 이미지를 현저한 품질의 손실없이 10:1의 비율까지 압축하여 2.5MB의 압축된 페이지 사이즈를 제공한다. 800dpi에서, 2-레벨 데이터의 레터 페이지는 7MB의 사이즈를 가진다. 텍스트와 같은 서로 밀착된 데이터는 매우 잘 압축된다. 그룹4 팩시밀리(아래에 도시)와 같은 손실없는 2-레벨 압축 알고리즘을 이용함으로써, 10 포인트 텍스트는 약 10:1의 비율로 압축되어, 0.8MB의 압축된 페이지 사이즈를 제공한다. 한번 디더되면, CMYK 연속톤 이미지 데이터의 페이지는 114MB의 2-레벨 데이터로 구성된다. 아래에 기술된 2층 압축된 페이지 이미지 포맷은, 손실있는 JPEG 연속톤 이미지 압축 및 손실없는 2-레벨 텍스트 압축의 상대적인 강도를 활용한다. 포맷은, 효과적으로 저장되도록 충분히 컴팩트(compact)하고, 인쇄하는 동안 직접 실시간 확대를 허용하도록 충분히 간단하다. 텍스트 및 이미지가 정상적으로 중복되지 않으므로, 정상적인 최악의 경우 페이지 이미지의 사이즈는 2.5MB(즉, 이미지만)이고, 정상적인 최상의 경우 페이지 이미지의 사이즈는 0.8MB(즉, 텍스트만)이다. 절대적인 최악의 경우 페이지 이미지의 사이즈는 3.3MB(즉, 이미지에 더해진 텍스트)이다. 이미지를 포함하는 평균 페이지의 1/4을 가정하면, 평균 페이지 이미지의 사이즈는 1.2MB이다.
그룹3 팩시밀리 압축 알고리즘(ANSI/EIA 538-1988, Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsimile Equipment, 8월 1988년)은 저속 및 잡음이 있는 전화선상의 전송을 위해 2-레벨 데이터를 손실없이 압축하는데 사용될 수 있다. 2-레벨 데이터는 백색 바탕에 주사된 흑색 텍스트 및 그래픽을 표시하고, 알고리즘은 이러한 종류의 이미지를 위해 조정된다(예컨대 중 간 색조의 2-레벨 이미지를 위해, 명시적으로 조정되지 않는다). 1D 그룹3 알고리즘은 각각의 주사선을 런길이(runlength)-인코드 한 후, 그 결과로 생기는 런길이를 허프만(Huffman)-인코드한다. 0~63 범위의 런길이는 종료 코드(terminating code)와 함께 코드화 된다. 64~2623 범위의 런길이는, 종료 코드가 뒤따르고, 각각 64의 배수를 표시하는 메이크업(make-up)코드와 함께 코드화된다. 2623을 초과하는 런길이는 종료 코드가 뒤따르는 다수의 메이크업 코드와 함께 코드화된다. 허프만 테이블이 고정되지만, 흑색 및 백색 런(run)을 위해 독립적으로 조정된다(공통인 1728 이상의 메이크업 코드를 제외한다). 가능하면, 2D 그룹3 알고리즘은, 이전 주사선을 참조하여 짧은 에지의 델타(0, ±1, ±2, ±3) 세트로서 주사선을 인코드한다. 델타 기호(예컨대, 0 텔타 기호는 길이가 1 비트만 되도록)는 엔트로피-인코드된다. 델타 인코드될 수 없는 2D-인코드된 라인내의 에지는 런길이 인코드되어, 접두사에 의해 식별된다. 1D 및 2D-인코드된 라인은 다르게 표시된다. 디코더가 라인의 잡음으로부터 최소한의 이미지 저하로 복구할 수 있는 것을 보장하기 위한 것이, 실제로 필요한지 어떤지 규칙적인 간격으로 1D-인코드된 라인이 생성된다. 2D 그룹3은 6:1의 압축 비율까지 달성한다(Urban, S.J.,"Review of standards for electronic imaging for facsimile systems", Journal of Electronic Imaging, Vol.1(1), 1월 1992년, 5-21페이지).
그룹4 팩시밀리 알고리즘(ANSI/EIA 538-1988, Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsimile Equipment, 8월 1988년)은 에러없는(error-free) 통신 라인상에서 전송하기 위한 2-레벨 데이터를 손실없이 압축한다(즉, 라인에는 정확히 에러가 없고, 또는 에러 정정은 낮은 프로토콜 레벨에서 행해졌다). 그룹4 알고리즘은, 전송시 에러가 없는 것으로 가정되므로, 1D 인코드된 라인이 에러 복구에 대한 도움으로서 더 이상 규칙적인 간격으로 생성되지 않는 것이 기본적인 변형인 2D 그룹3 알고리즘에 의거한다. 그룹4는 시험 이미지의 CCITT 세트에 대해 20:1~60:1 범위의 압축 비율을 달성한다. 그룹4 압축 알고리즘의 설계 목적 및 성능은 2-레벨층에 대한 압축 알고리즘에 적합하게 한다. 그러나, 그 허프만 테이블이 낮은 주사 해상도(100-4000dpi)로 조정되어, 2623을 초과하는 런길이를 어렵게 인코드한다. 800dpi에서, 최대 런길이는 현재 6400이다. 그룹4 디코더 코어는 PEC에서 사용 가능하지만, 정상적으로 마주치게 되는 400dpi의 팩시밀리 적용을 초과하는 런길이를 처리하지 못하므로, 수정이 필요하다. 흑색층(일반적으로 1600dpi)은 G4 Fax를 이용하여 10:1을 초과하는 일반적인 압축 비율로 손실없이 압축된다. 디더 매트릭스(일반적으로 320dpi)는 연속톤 컬러층과 정합하고, G4 Fax를 이용하여 50:1을 초과하는 일반적인 압축 비율로 손실없이 압축되는 층(일반적으로 320 dopi)을 선택한다.
그룹4 팩스(G4 Fax) 디코더는, 2-레벨 데이터를 압축 해제할 책임이 있다. 2-레벨 데이터는, 단일 스폿 컬러(일반적으로 텍스트 및 라인 그래픽용 흑색)로 한정되고, 디더 매트릭스는 연속톤 데이터(JPEG 디코더로 압축 해제된)의 후속 디더링에 사용하기 위한 비트맵을 선택한다. G4 Fax 디코더로의 입력은, 외부 DRAM에서 판독되는 2-레벨 데이터의 2개면이다. G4 Fax 디코더의 출력은, 압축 해제된 2-레벨 데이터의 2개면이다. 압축 해제된 2-레벨 데이터는 다음 단계를 위해 인쇄 파이 프라인으로 하프토너/합성장치(HCU)로 전송된다. 2개의 2-레벨 버퍼는 G4 Fax 디코더 및 HCU 사이에서 2-레벨 데이터를 전달하는 수단을 제공한다. 각각 압축 해제된 2-레벨층은 2개의 라인버퍼로 출력된다. 각각의 버퍼는, 예상되는 최대 해상도로 최대 12인치의 도트 라인을 유지할 수 있다. 2개의 라인버퍼를 구비함으로써, 한쪽 라인이 HCU에 의해 판독되는 동안, 다른쪽 라인은 G4 Fax 디코더에 의해 기록된다. 이것은, 단일 2-레벨 라인이 일반적으로 1600dpi 이하이고, 따라서 도트 및 라인 치수 양쪽에서 확대되어야 하므로, 중요하다. 버퍼링이 최대 라인 이하이면, G4 Fax 디코더는 동일한 라인을 다수회, 600dpi 도트 라인마다 1회, 디코드한다.
스폿 컬러1은, 출력 이미지의 단일 컬러면이 고해상도의 도트 데이터가 되도록 설계된다. 연속톤 층은 이미지에 적당한 해상도를 제공하고, 스폿 컬러1은 텍스트 및 라인 그래픽(일반적으로 흑색)과 같은 적용이 목표로 된다. 텍스트 및 라인 그래픽이 사용되는 경우, 일반적인 압축 비율은 10:1을 초과한다. 스폿 컬러1은 최대의 인쇄품질을 위해 1600dpi까지 해상도를 가변한다. 따라서, 2개 라인버퍼의 각각은, 총 2400 바이트이다(12인치×1600dpi = 19,200 비트).
디더 매트릭스 선택 맵의 해상도는, 연속톤 해상도와 이상적으로 정합한다. 당연히, 2개 라인버퍼의 각각은 따라서 480 바이트(3840 비트)이고, 320dpi에서 12인치를 저장할 수 있다. 맵이 연속톤 해상도와 정합하는 경우, 일반적인 압축 비율은 50:1을 초과한다.
ㆍ800dpi 스폿 컬러1 층(일반적으로 흑색)
ㆍ320dpi 디더 매트릭스 선택층
을 지원하기 위해, 필요한 압축 해제 대역폭은 1페이지/초의 성능(페이지 폭이 12인치 또는 8.5인치인 것에 관계없이)에 대해서 9.05MB/초이고, 프린터의 최대 속도성능(30,000라인/초) 동안 12인치 및 8.5인치의 페이지 폭에 대해서 각각 20MB/초 및 14.2MB/초이다. 압축 해제된 데이터가 라인버퍼로 출력되는 것이 주어지면, G4 Fax 디코더는 한번에 1개씩 각각의 출력물에서 라인을 쉽게 압축 해제할 수 있다.
G4 Fax 디코더는, DRAM 인터페이스를 통해서 메인 메모리로부터 직접 공급된다. 압축량은 외부 DRAM에 필요한 대역폭을 결정한다. G4 Fax는 손실이 없으므로, 복잡한 이미지는 데이터의 양, 즉 대역폭을 임팩트한다. 일반적으로, 800dpi 흑색/ 텍스트/그래픽층은 10:1의 압축을 초과하므로, 1페이지/초를 인쇄하기 위해 필요한 대역폭은 0.78MB/초이다. 마찬가지로, 일반적으로 320dpi 디더 선택 매트릭스는 50:1 이상으로 압축하므로, 대역폭은 0.025MB/초로 귀착한다. 디더 선택 매트릭스에 대한 320dpi 및 스폿 컬러1에 대한 800dpi의 고속 인쇄 구성은, 각각 1.72MB/초 및 0.056MB초의 대역폭을 필요로 한다. 따라서, 총 2MB/초의 대역폭은 DRAM 대역폭에 대해서 그 이상이 되므로 충분하다.
G4 Fax 디코딩 기능성은 G4 Fax 디코더 코어로 실현된다. 다양한 G4 Fax 디코더 코어가 적합하고, 필요한 계산 및 제어 기능을 충분히 고속으로 실행하는 충분한 처리능력을 갖는 어떤 코어일 수 있다. 정상적으로 마주치게 되는 400dpi 팩시밀리 적용을 초과하는 런길이를 처리할 수 있고, 수정이 필요하다.
JPEG 압축 알고리즘(ISO/IEC 19018-1:1994, Information technology-Digital compression and coding of cintinuous-tone still image:Requirements and guidelines, 1994년)은 소정의 품질 레벨로 연속톤 이미지를 손실있게 압축한다. 그것은, 5:1 이하의 압축 비율로 미세한 이미지 저하 및 10:1 이하의 압축 비율로 사소한 이미지 저하를 채용한다(Wallace, G.K.,"The JPEG Still Picture Compression Srandard",Communication of the ACM, Vol.34, No.4, 4월 1991년, 30-44페이지). 일반적으로, JPEG은 우선 이미지를 휘도(luminance) 및 채도(chrominance)를 독립적인 컬러 채널로 분리하는 컬러 스페이스로 변환한다. 이것은, 인간의 시각시스템이 채도 보다 휘도에 상대적으로 더 예민하기 때문에, 채도 채널이 상당한 손실없이 서브 샘플되게 된다. 이 제1 단계 이후, 각각의 컬러 채널은 독립적으로 압축된다. 이미지는 8×8 화소 블록으로 분할된다. 그 후, 각각의 블록은, 이산 코사인변환(DCT)을 통해서 주파수 영역으로 변환된다. 이 변환은, 비교적 저주파수 계수로 이미지 에너지를 집중하는 효과가 있고, 고주파수 계수가 더 불완전하게 양자화된다. 이 양자화는, JPEG에서 압축의 주요 원리이다. 또한, 압축은 인접하는 0 계수의 가능성을 최대화 하기 위한 주파수로 계수를 정렬한 후, 0의 런(run)을 런길이-인코딩함으로써 달성된다. 최종적으로, 런길이 및 0이 아닌 주파수 계수는 코드화된 엔트로피이다. 압축 해제는 압축의 반대 과정이다.
CMYK(또는 CMY) 연속톤 층은 평탄한 컬러 JPEG 바이트 스트림으로 압축된다. 휘도/채도 분리가 필요하다고 생각되면, 테이블 공유 또는 채도 서브 샘플링을 위해, CMYK는 YCrCb로 변환되고, Cr 및 Cb는 적절히 서브 샘플된다. JPEG 바이트 스트림이 완성되어 자급 자족된다. 양자화 및 허프만 테이블을 포함하는, 압축 해제 에 필요한 모든 데이터를 포함한다.
JPEG 디코더는 연속톤 데이터층의 온더 플라이(on-the-fly) 압축 해제를 실행할 책임이 있다. JPEG 디코더에 대한 입력은 연속톤 데이터의 4면에 이른다. 이것은, 일반적으로 CMY 연속톤 이미지를 표시하는 3면이 되거나 또는 CMY 연속톤 이미지를 표시하는 4면이 된다. 일반적으로 모든 컬러면이 동일한 해상도가 되더라도, 각각의 컬러면은 다른 해상도가 될 수 있다. 연속톤 층은 외부 DRAM으로부터 판독된다. JPEG 디코더의 출력은, 면(plane)으로 분리된 압축 해제된 연속톤 데이터이다. 압축 해제된 연속톤 이미지는, 다음 단계를 위해 인쇄 파이프라인으로 하프토너/합성장치(HCU)(29)로 전송된다. 4면 연속톤 버퍼는, JPEG 디코더와 HCU(29) 사이에서 연속톤 데이터를 전달하기 위한 수단을 제공한다.
압축 해제된 연속톤 데이터의 각각의 컬러면은, 2개 라인버퍼의 세트로 출력된다(아래에 도시). 각각의 라인버퍼는 3840바이트이고, 따라서 320ppi에서 단일 컬러면 화소의 12인치를 유지할 수 있다. 라인버퍼링은 HCU에 의해 하나의 라인버퍼가 판독되게 되는 동안, 다른 라인버퍼가 JPEG 디코더에 의해 기록되게 된다. 이것은, 단일 연속톤 라인이 일반적으로 1600dpi 이하이고, 따라서 도트 및 라인 치수 양쪽에서 확대되어야 하기 때문에 중요하다. 버퍼링이 전체 라인 이하이면, JPEG 디코더는 동일한 라인을 다수회, 출력 600dpi 도트라인마다 1회, 디코드한다. 다양한 해상도가 지원되지만, 해상도와 이용 가능한 대역폭 사이에 상반관계(tradeoff)가 있다. 컬러의 해상도 및 수가 증가하면, 필요한 대역폭도 증가한다. 게다가, PEC칩에 의해 목표로 된 세그먼트의 수도 대역폭 및 가능한 해상 도에 영향을 미친다. 연속톤 이미지가 평탄한 포맷으로 처리되므로, 각각의 컬러면은 다른 해상도(예컨대, CMY는 K면보다 높은 해상도일 수 있다)로 저장될 수 있는 것에 주의한다. 최대로 지원되는 연속톤 해상도는 1600ppi이다(프린터의 최대 도트 해상도와 정합한다). 그러나, 길이 12인치인 320ppi의 라인에 대해 충분한 연속톤 화소를 유지하기 위해 라인버퍼 메모리를 출력하는 것만으로 충분하다.
보다 높은 연속톤 해상도에서 최대 12인치의 출력이 필요해지면, 프린터상의 최종 출력은 여전히 2-레벨로만 되는 것에 주의하지만, 다수의 PEC 칩이 필요하게 된다. 4가지 컬러를 320ppi로 지원함으로써, 필요한 압축 해제 대역폭은 1페이지/초 성능(페이지 폭이 12인치 또는 8.5인치인 것에 관계없이)은 40MB/초이고, 프린터의 최대속도 성능(30,000라인/초) 동안 12인치 및 8.5인치의 페이지 폭에 대해서 각각 80MB/초 및 64MB/초이다.
JPEF 디코더는 DRAM 인터페이스를 통해서 메인 메모리로부터 직접 공급된다. 압축량은 외부 DRAM에 대해 필요한 대역폭을 결정한다. 압축 레벨이 증가하면, 대역폭은 감소하지만, 최종 출력 이미지의 품질도 감소될 수 있다. 단일 컬러면에 대한 DRAM 대역폭은, 압축율을 출력 대역폭에 적용함으로써 쉽게 계산될 수 있다. 예컨대, 320ppi에서 10:1의 압축율을 갖는 단일 컬러면은 1페이지/초를 생성하기 위해 DRAM에 대한 액세스를 1MB/초 필요로 한다. JPEG 기능성은 JPEG 코어에 의해 실현된다. 다양한 JPEG 코어가 적합하고, 필요한 계산 및 제어 기능을 충분히 고속으로 실행하기 위해 충분한 처리능력을 갖는 어떤 코어일 수 있다. 예컨대, BTG X-Match 코어는 압축 해제 속도가 140MByte/초이고, 4개 컬러면의 압축 해제가 연속 톤 해상도로 최대 프린터 속도(1600dpi에서 30,000라인/초)에 대해서는 400ppi 및 프린터 속도 1페이지/초에 대해서는 800ppi까지 허용된다.
코어는 단지 압축 해제를 지원하기 위해 필요하고, 보다 더 보편화된 JPEG 압축/압축 해제 코어에 의해 부과된 필요한 것을 저감하는 것에 주의한다. 코어의 사이즈는 100,000 게이트 이상이 되지 않을 것으로 예상된다. 압축 해제된 데이터가 라인버퍼로 출력되도록 주어지면, JPEG 디코더는 각각의 컬러면에 대해 한번에 1개씩 전체 라인을 쉽게 압축 해제할 수 있고, 따라서 1라인 동안 문맥(context) 전환을 줄이고, JPEG 디코더의 제어를 간소화한다. 4개의 문맥은 유지되어야 하고(각각의 컬러면에 대한 1개의 문맥), 적절한 JPEG 디코딩 파라미터뿐만 아니라 외부 DRAM에서의 현재 어드레스도 포함한다.
도 4의 하프토너/합성장치 유닛(HCU)(29)은, 동일한 2-레벨 버전에 대해 연속톤(일반적으로 CMYK)층을 중간 색조(halftoning)로 하고, 적절한 중간 색조의 연속톤 층상에 스폿1 2-레벨층을 합성하는 기능을 겸비한다. 프린터에 K 잉크가 없으면, HCU(29)는 전용하는 것과 같이 K를 CMY 도트에 맵(map)할 수 있다. 또한, 순차 화소에 기초하여 2개의 디더 매트릭스 사이에서 선택하고, 디더 매트릭스 선택 맵에서 대응하는 값에 기초를 둔다. HCU(29)로의 입력은, 버퍼(37)를 통과하는 확대된 연속톤 층(JPEG 디코더 유닛에서), 버퍼(38)를 통과하는 확대된 2-레벨 스폿1층, 일반적으로 버퍼(39)를 통과하는 연속톤 층과 동일한 해상도로 확대된 디더 매트릭스 선택 비트맵 및 버퍼(40)를 통과하는 최대 도트 해상도의 태그 데이터이다. HCU(29)는 외부 DRAM(34)에서 판독되는 2개의 디더 매트릭스까지 사용한다. 41에서 HCU(29)로부터 라인 로더/포맷 유닛(LLFU)으로의 출력은, 6개의 컬러면에 있는 프린터 해상도 2-레벨 이미지 라인의 세트이다. 일반적으로, 연속톤 층은 CMYK 또는 CMY이고, 2-레벨 스폿1 층은 K이다.
도 5에는 HCU가 보다 더 상세히 도시되었다. 한번 시작되면, HCU는 페이지의 종점 조건을 검출할 때까지 또는 그 제어 레지스터를 통해서 명시적으로 정지될 때까지 진행한다. HCU의 제1 태스크는, 스케일 유닛(43)과 같은 각각의 스케일 유닛에서, 42와 같은 버퍼면에서 수신된 모든 데이터를, 수평 및 수직 양쪽에서 프린터 해상도로 스케일 하는 것이다.
스케일 유닛은, 수평 및 수직 양쪽에서 프린터 해상도로 연속톤 또는 2-레벨 데이터를 스케일링하는 수단을 제공한다. 스케일링은, 데이터 값을 양쪽 치수에서 정수배 복사함으로써 달성된다. 데이터를 스케일 하는 프로세스는, 기술분야에서 숙력된 사람들에게 공지되어 있다.
2개의 제어 비트, 어드밴스 도트(advance dot) 및 어드밴스 라인(advance line)이 마진유닛(57)에 의해 스케일 유닛(43)에 제공된다. 어드밴스 도트 비트는, 스테이트 머신이 동일한 도트 데이터의 다수의 예를 발생하게 한다(페이지 마진에 대해서 유용하고, 프린트 헤드에서 중복 세그먼트에 대한 도트 데이터를 생성한다). 어드밴스 라인 비트는 특정 도트 라인이 종료될 때, 스테이트 머신이 제어되므로, 프린터 마진에 따라 데이터를 절단한다. 또한, 스케일 유닛에서 필요한 소정 라인의 종점 논리를 생략한다. 스케일 유닛으로의 입력은, 전체의 라인버퍼이다. 라인 복사를 통해 수직 업 스케일링을 달성하도록 라인이 스케일 요소 횟 수만큼 사용되고, 각각의 라인내에서, 화소 복사를 통해 수평 업 스케일링을 달성하도록 각각의 값이 스케일 요소 횟수만큼 사용된다. 스케일 요소 횟수만큼 입력라인이 사용되면(어드밴스 라인 비트는 스케일 요소 회수를 설정한다), 어드레스의 입력버퍼 선택비트는 토글된다(이중 버퍼링). 스케일 유닛은 어드레스만을 생성하기 때문에, 스케일 유닛의 논리는 8비트 및 1비트의 경우 동일하다.
각각의 연속톤 층은 다른 해상도가 될 수 있으므로, 독립적으로 스케일된다. 버퍼(45)에서의 2-레벨 스폿1 층 및 버퍼(46)에서의 디더 매트릭스 선택층도 스케일 될 필요가 있다. 버퍼(47)에서의 2-레벨 태그 데이터는 보정 해상도로 확정되지만, 스케일 될 필요는 없다. 스케일 업 디더 매트릭스 선택비트는, 2개의 디더 매트릭스로부터 단일 8비트 값을 선택하기 위해 디더 매트릭스 액세스 유닛(48)에 의해 사용된다.
8비트 값은, 소정의 8비트 연속톤 값과 단순히 비교하는 4개의 비교기(44, 49~51)로 출력된다. 실제 디더 매트릭스의 생성은, 프린트 헤드의 구조에 의해 결정되고, 디더 매트릭스를 생성하는 일반적인 처리는 기술분야에서 숙련된 사람들에게 공지되어 있다. 연속톤 값이 8비트 디더 매트릭스의 값 이상이면 1이 출력이다. 그렇지 않으면, 0이 출력이다. 그 후, 이들 비트는 모두 52~56에서 마진유닛(57)으로부터의 인페이지(inPage) 비트(특정 도트가 페이지의 프린트 가능한 영역내에 있던지 어떤지)와 앤드(AND)된다. HCU의 최종 단계는 합성단계이다. 6개의 출력층마다, 각각 6개의 입력을 갖는 58과 같은 단일 도트 병합유닛이 있다. 각 도트 병합유닛으로부터의 단일 출력비트는, 어떤 또는 모든 입력비트의 조합이다. 이것은, 스폿 컬러가 어떤 출력 컬러면(시험용 적외선을 포함)에 위치되게 하고, 흑색을 시안색에 혼합되게 하며, 마젠타색을 황색에 혼합(프린터 헤드에 흑색 잉크가 없으면)되게 하고, 태그 도트 데이터를 가시면에 위치되게 한다. 고착 컬러면도 쉽게 생성될 수 있다. 도트 재편유닛(DRU)(59)은, 주어진 컬러면을 생성된 도트 스트림으로 간주해서, 32비트의 수량으로 편성하여, 출력이 세그먼트 순서 및 세그먼트내의 도트 순서내에 있게 된다. 중복 세그먼트에 대한 도트가 세그먼트 순서대로 생성되지 않는 사실 때문에, 최소 재편이 필요하게 된다.
2개의 제어 비트, 어드밴스 도트 및 어드밴스 라인이 마진유닛(57)에 의해 스케일 유닛에 제공된다. 어드밴스 도트 비트는 스테이트 머신이 동일한 도트 데이터의 다수의 예를 발생하게 한다(페이지 마진에 대해서 유용하고, 프린트 헤드에서 중복 세그먼트에 대한 도트 데이터를 생성한다). 어드밴스 라인 비트는 특정 도트 라인이 종료될 때, 스테이트 머신이 제어되므로, 프린터 마진에 따라 데이터를 절단한다. 또한, 스케일 유닛에서 필요한 소정 라인의 종점 논리를 생략한다.
비교기 유닛은 간단한 8비트 "이상(grater-than-or-equal)" 비교기를 포함한다. 8비트 연속톤 값이 8비트 디더 매트릭스 값 이상인지 판정하기 위해 사용된다. 그 자체로는, 비교기 유닛은 2개의 8비트 입력을 받아들여, 단일 1비트 출력을 생성한다.
도 6에는 도트 병합유닛의 상세가 도시되었다. 실제 프린트 헤드로 잉크를 출력하기 위해 2-레벨 디더 데이터, 스폿1 컬러 및 태그 데이터를 매핑하는 수단을 제공한다. 각각의 도트 병합유닛은 6개의 1비트 입력을 받아들여, 컬러면에 대한 출력을 표시하는 단일 비트 출력을 생성한다. 60에서의 출력비트는 어떤 또는 모든 입력비트의 조합이다. 이것은, 스폿 컬러가 어떤 출력 컬러면(시험용 적외선을 포함)에 위치되게 하고, 흑색을 시안색에 혼합되게 하며, 마젠타색을 황색에 혼합(프린터 헤드에 흑색 잉크가 없으면)되게 하고, 태그 도트 데이터를 가시면에 위치되게 한다. 고착제에 대한 출력은, 모든 입력비트를 단순히 조합함으로써 쉽게 생성될 수 있다. 도트 병합유닛은 6개의 입력비트에 대한 마스크로서 사용되는 6비트 컬러 마스크 레지스터(61)를 포함한다. 각각의 입력비트는 대응하는 컬러 마스크 레지스터 비트와 앤드(AND)되고, 그 후 합성된 6비트가 함께 오어(OR)되어 최종 출력비트를 형성한다.
도 7에는, 주어진 컬러면을 생성된 도트 스트림으로 간주해서, 32비트의 수량으로 편성하여, 출력이 세그먼트 순서 및 세그먼트내의 도트 순서내에 있게 되는 도트 재편유닛(DRU)이 도시되었다. 중복 세그먼트에 대한 도트가 세그먼트 순서대로 생성되지 않는 사실 때문에, 최소 재편이 필요하게 된다. DRU는 32비트 쉬프트 레지스터, 정규 32비트 레지스터 및 정규 16비트 레지스터를 포함한다. 5비트 카운터는 지금까지 처리된 비트 수를 기억한다. 디더 매트릭스 액세스 유닛(DMAU)으로부터의 도트 어드밴스 신호는 비트가 출력되는 것에 대해서 DRU를 명령하기 위해 사용된다.
도 7의 레지스터 A(62)는 1싸이클마다 기록된다. 그것은, 도트 병합유닛(DMU)에 의해 생성된 가장 최근의 32개 도트를 포함한다. 간단한 5비트 카운터를 통해서 DRU 스테이스 머신(64)에 의해 생성된 기록 가능한(WriteEnable) 신 호에 의해, 완전한 32비트 값이 32싸이클마다 레지스터 B(63)에 복사된다. 레지스터 B(63)로부터의 16개의 홀수비트(비트 1, 3, 5, 7 등)가 동일한 기록 가능한(WriteEnable) 펄스를 사용하여 레지스터 C(65)로 복사된다. 그후, 32비트 멀티플렉서(66)는 스테이트 머신으로부터의 2비트에 기초한 다음의 3개의 출력중에서 선택된다.
ㆍ레지스터 B로부터의 완전한 32비트
ㆍ레지스터 A의 16개의 짝수비트(비트 0,2,4,6 등)와 레지스터 B의 16개의 짝수비트로 이루어지는 32비트 값. 레지스터 A로부터의 16개의 짝수비트는 비트 0~15를 형성하고, 레지스터 B로부터의 16개의 짝수비트는 비트 16~31을 형성한다.
ㆍ레지스터 B의 16개의 홀수비트(비트 1,3,5,7 등)와 레지스터 C의 16개의 홀수비트로 이루어지는 32비트 값. 레지스터 C의 비트는 비트 0~15를 형성하고, 레지스터 B로부터의 홀수비트는 비트 16~31을 형성한다.
DRU용 스테이트 머신이 표 1에 도시된다. 그것은, 0 상태에서 시작한다. 그것은, 32싸이클마다 변한다. 32싸이클 동안 단일 노오버랩(noOverlap) 비트는 32싸이클에 대한 모든 도트 어드밴스 비트의 앤드(AND)를 수집한다(NoOverlap = 싸이클 0에 대한 dot advance, 그리고 NoOverlap = 싸이클 1~31에 대한 NoOverlap AND dot advance)
상태 | NoOverlap | 출력 | 출력 유효성 | 주해 | 다음 상태 |
0 | X | B | 0 | 시동 상태 | 1 |
1 | 1 | B | 1 | 정규 비중복 | 1 |
1 | 0 | B | 1 | A는 제1 중복을 포함 | 2 |
2 | X | 짝수 A, 짝수 B | 1 | A는 제2 중복을 포함 B는 제1 중복을 포함 | 3 |
3 | X | C, 홀수 B | 1 | C는 제1 중복을 포함 B는 제2 중복을 포함 | 1 |
도 5의 마진유닛(MU)(57)은, 디더 매트릭스 액세스 유닛(DMAU)(48)로부터의 어드밴스 도트 및 어드밴스 라인 신호를 현재 페이지의 페이지 마진상에 기초한 일반 제어신호로 변환한다. 또한, 페이지 종점 조건을 생성한다. MU는 페이지를 횡단하는 도트 및 라인을 계산한다. 페이지의 시작시 양쪽은 모두 0으로 설정된다. MU가 DMAU로부터 도트 어드밴스 신호를 수신할 때마다 도트 카운터는 1씩 진행된다. MU가 DMAU로부터 라인 어드밴스 신호를 수신하는 경우, 라인 카운터는 증가되고, 도트 카운터는 0으로 재설정된다. 매싸이클, 현재의 라인 및 도트 값이 페이지의 마진과 비교되고, 이들 마진에 기초하여 적절한 출력 도트 어드밴스, 라인 어드밴스 및 마진 범위내 신호가 주어진다. DMAU는 HCU에 필요한 실질적인 메모리만을 포함한다.
도 8에는 라인 로더/포맷 유닛(LLUF)이 도시되었다. 그것은, HCU로부터 도트 정보를 수신하고, 주어진 인쇄라인에 대한 도트를 적절한 버퍼 스토리지에 적재하여(칩상에 어느 정도 및 외부 DRAM(34)에 어느 정도), 프린트 헤드에 필요한 순서로 포맷한다. 그 외부 인터페이스에 관한 LLFU의 하이레벨 블록도가 도 9에 도시되었다. LLFU로의 입력(67)은, HCU에 의해 모두 생성된 6개의 32비트 워드 및 하나의 데이터 유효(DataValid)비트의 세트이다. 출력(68)은 6가지 컬러의 최대 15 프린트 헤드 세그먼트를 표시하는 90비트의 세트이다. 모든 출력비트가 유효하지 않을 수 있고, 실제로 얼마나 많은 컬러가 프린트 헤드에 사용되는가에 따라 결정된다.
2개 오프셋 열의 노즐에서, 상술한 프린트 헤드상에서 분사 노즐의 실제 위치는, 동일한 컬러의 홀수 및 짝수 도트가 2개의 다른 라인에 있는 것을 의미한다. 짝수 도트는 L에 있는 것이고, 홀수 도트는 라인 L-2에 있는 것이다. 게다가, 하나의 컬러 도트와 다른 컬러 도트의 사이에는 다수의 라인이 있다. 동일한 도트 위치에서 6개 컬러면이 HCU에 의해 한번에 계산되므로, 동일한 도트가 적절한 컬러 노즐 아래에 위치될 때까지, 각 컬러면에 대해 도트 데이터를 지연시킬 필요가 있다.
각 버퍼라인의 사이즈는 프린트 헤드의 폭에 의해 결정된다. 단일 PEC는 15개의 프린트 헤드 세그먼트까지 도트를 생성하므로, 단일 홀수 또는 짝수 버퍼라인은 총 9600비트(1200바이트)에 대해 640 도트의 15 세트이다. 예컨대, 컬러 6개의 홀수 도트에 필요한 버퍼는 합계가 거의 45KByte 이다.
제조기술이 가능한 경우, 필요한 버퍼의 전체 세트가 PEC 칩상에 설치된다. 그렇지 않으면, 컬러 2의 전방 버퍼가 외부 DRAM에 저장된다. 이것은, 차후에 컬러면 사이의 거리가 변화되어도, PEC를 유효하게 할 수 있다. 모든 것이 특정 도트 라인에 따라 인쇄되므로(추가 라인버퍼가 필요하지 않다), 컬러 1의 짝수 도트를 PEC상에 유지하는 것은 사소하다. 게다가, 컬러 1 홀수 도트를 버퍼링하는데 필요한 2개의 하프라인은 실질적인 DRAM 대역폭을 절감한다.
클린 에지를 갖기 위해, 페이지가 인쇄되기 전에 다양한 라인버퍼(온칩 및 DRAM)에는 모든 0이 미리 적재될 필요가 있다. 페이지 종점이 HCU에 의해 자동적으로 생성되고 나서 클린 에지를 갖는다.
도 10에는 컬러 N OESplit(도 9의 Oesplit(70) 참조)를 위한 블록도가 도시되었고, 도 9에서 2개의 버퍼 E 및 F(71,72)의 각각에 대한 블록도가 도 10 및 도 11에 있게 된다. 버퍼 EF는, 도 3의 프린트 헤드 인터페이스(PHI)(32)로 데이터를 전달하기 위한 이중버퍼 구조이다. 따라서, 버퍼 E 및 F는 똑같은 구조를 갖는다. 도트 라인을 처리하는 동안, 2개 버퍼중 하나에는 기록되고, 다른 하나에서는 판독된다. PHI로부터의 라인동기(line-sync)신호의 수신에 따라, 2개의 버퍼는 논리적으로 교환된다. 버퍼 E 및 F 양쪽은 6개의 서브 버퍼로 구성되고, 도 11에 도시된 바와 같이, 컬러당 1개 서브 버퍼, 컬러 1 서브 버퍼에는 73으로 번호가 붙여진다.각 서브버퍼의 사이즈는 2400바이트로서, 세그먼트당 1280 도트로 15개의 세그먼트를 유지하는데 충분하다. 메모리는 한번에 32비트로 액세스 되고, 각 서브버퍼를 위해 600개의 어드레스가 있다(10비트의 어드레스를 필요로 한다). 각 컬러의 서브 버퍼에서 홀수 도트에 우선하여 모든 짝수 도트가 위치된다. 어떤 비어있는 공간이 있으면(15 세그먼트보다 적게 인쇄하기 위해), 각 컬러의 서브버퍼의 종점에 위치된다. 각 서브버퍼에서 실제로 사용된 메모리의 양은, PEC에 의해 실제로 어드레스 된 세그먼트의 수와 직접 연관되어 있다. 15 세그먼트 프린트 헤드를 위해, 비어있는 공간없이 1200바이트의 홀수 도트에 뒤이어 1200바이트의 짝수 도트가 있다. 유리하게 사용된 서브버퍼의 수는 프린트 헤드에 사용된 컬러의 수와 직접 연관되어 있다. 지원된 컬러의 최대 수는 6이다.
각 버퍼 E 및 F의 디코딩 회로의 어드레싱은 주어진 1싸이클이고, 단일 32비트 액세스는 6개의 서브버퍼 전체에서 판독되거나 또는 6개의 서브버퍼중 1개로 기록되는 6개의 서브버퍼 전체에 대해서 행해질 수 있다. 각 컬러버퍼로부터 판독된 32비트중 1개의 비트만이 총 6개의 출력비트를 위해 선택된다. 프로세스는 도 11에 도시되었다. 15비트의 어드레스는 32비트를 선택하기 위해 10비트의 어드레스가 사용되어 특정 비트를 판독하고, 5비트의 어드레스는 32비트로부터 1비트를 선택한다. 모든 컬러 서브버퍼가 이 논리를 공유하므로, 단일 15비트 어드레스는, 컬러당 1비트로서 총 6비트를 출력한다. 각 서브버퍼(73~78)는, 단일 32비트 값이 주어진 싸이클내에서 특정 컬러버퍼에 기록되도록 기록 가능한(WriteEnable) 라인을 갖는다. 각각의 기록 가능한 신호는, 단일 기록 가능한 입력을 컬러 선택(ColorSelect)의 디코드된 형태를 앤드(AND)함으로써 생성된다. 1개 버퍼만이 실제로 데이터인(data in)을 기록하므로, 라인(79)상에서 32비트의 데이터인(DataIn)이 공유된다.
버퍼 E 및 F로부터 판독하기 위한 어드레스 생성은 간단하다. 특정 세그먼트를 위해 컬러당 1비트를 표시하는 6비트를 가져오기 위해 사용되는 1비트를 사이클마다 생성한다. 현재 비트 어드레스에 640을 부가함으로써, 다음 세그먼트의 등가 도트로 진행한다. 홀수 및 짝수 도트가 버퍼내에서 분리되어 있으므로 640(1280이 아님)을 부가한다. 짝수 도트를 표시하는 데이터를 복구하고, 이들 비트를 PHI로 전달하기 위해 이 숫자 세그먼트(NumSegment)회 실행한다. NumSegment = 15인 경우, 비트의 수는 90(15×6비트)이다. 그 후, 프로세스는 홀수 도트에 대해 반복된 다. 이 전체 짝수/홀수 비트 생성 프로세스는, 매회 시작 어드레스를 증가시키면서 640회 반복된다. 이렇게 모든 도트 값이, 640×2×NumSegment 싸이클에서 프린트 헤드에 의해 필요한 순서대로 PHI로 전달된다. NumSegment = 15인 경우, 싸이클의 수는 19,200싸이클이다. 프린트 헤드에서 실제로 사용된 컬러의 수에 관계없이, 주어진 판독싸이클에서 6비트(각 컬러 버퍼로부터 1비트)가 생성되는 것에 주의한다.
게다가, 도 9의 전달(Transfer) 레지스터(90)에 90비트를 기록하기 위한 TWriteEnable 제어신호를 생성한다. LLFU가 PHI에 앞서 시작되므로, PHI로부터의 어드밴스 펄스에 앞서 제1 값을 전달한다. 또한, 제1 어드밴스 펄스를 위한 준비로 다음 값도 생성한다. 해결책은 NumSegment싸이클 후 전달(Transfer) 레지스터로 제1 값을 전달하는 것이고, 그때 숫자 세그먼트(NumSegment)싸이클을 더 늦게 지연시키고, 다음 숫자 세그먼트(NumSegment)싸이클 그룹을 시작하기 위해 어드밴스 펄스를 대기한다. 제1 어드밴스 펄스가 도달하면, LLFU는 PHI에 동기된다.
단일 도트라인에 대한 판독 프로세스는, 다음의 의사코드(procedure)에 도시되었다:
DoneFirst = FALSE
WantToXfer = FALSE
For DotInSegment0 = 0 to 1279
If(DotInSegment0:bit0 == 0)
CurrAdr = DotInSegment0 (high bits) (puts in range 0 to 639)
EndIf
XfersRemaining = NumSegments
Do
WantToXfer = (XfersRemaining == 0)
TWriteEnable = (WantToXfer AND NOT DoneFirst) OR PHI:ADVANCE
DoneFirst = DoneFirst OR TWriteEnable
Stall = WantToXfer AND (NOT TWriteEnable)
SWriteEnable = NOT(Stall)
If(SWriteEnable)
Shift Register = Fetch 6 bits from EFSense[ReadBuffer]:CurrAdr
CurrAdr = CurrAdr + 640
XfersRemaining = XfersRemaining - 1
EndIf
Until (TWriteEnable)
EndFor
Wait until BufferEF Write process has finished
EFSense = NOT (EFSense)
판독 프로세스에서는 버퍼 E 또는 F로부터 PHI로 전달하는 동안, 기록 프로세스에서는 다른 버퍼에서 다음 도트라인을 주비한다.
버퍼 E 또는 F에 기록되는 데이터는, HCU에 의해 생성된 컬러 1 데이터 및 버퍼 D로부터의 컬러 2-6 데이터(DRAM에서 공급된)이다. 컬러 1 데이터는, HCU의 출력유효성(Output Valid) 플래그가 설정될 때마다 버퍼 EF에 기록되고, 컬러 2-6 데이터는 다른 기간동안 레지스터 C로부터 기록된다.
도 9의 버퍼 OE1(81)는 컬러 1에 대해서 연속하는 32 도트의 단일 HCU 생성세트를 유지하기 위해 사용된 32비트 레지스터이다. 페이지상에서 도트가 연속하는 동안, 홀수 및 짝수 도트는 다른 시간에 인쇄된다.
버퍼 AB(82)는, 컬러 1에 대한 홀수 데이터를 2도트라인으로 지연시키기 위한 이중버퍼 구조이다. 따라서, 버퍼 A 및 B는 똑같은 구조를 갖는다. 도트 라인을 처리하는 동안, 2개의 버퍼중 한쪽에서 판독되고, 기록된다. 전체 도트라인이 처리된 후 2개의 버퍼는 논리적으로 교환된다. 단일 비트 플래그 ABSense는, 2개의 버퍼중 판독되고 기록되는 버퍼를 결정한다.
HCU는, 제1 플래그가 라인으로 전송된 후 32싸이클마다 있는, 출력 유효성 제어플래그가 설정될 때마다, 컬러 1 데이터의 32비트를 제공한다. 32비트는, 단일 도트라인에 대해서 32 도트의 연속 세트 - 16 짝수 도트(비트 0,2,4 등) 및 홀수 도트(비트 1,3,5 등)를 규정한다. 출력 유효성 제어플래그는 OE1 레지스터(81)에 대한 기록 가능한(WriteEnable) 제어로서 사용된다. 2개의 출력 유효성(Output Valid) 신호마다 HCU 데이터를 처리한다. HCU 컬러 1 데이터의 16 짝수 비트는, 짝수 컬러 1 데이터의 32비트를 생성하기 위해 레지스터 OE1의 16짝수 비트와 조합된다. 마찬가지로, HCU 컬러 1 데이터의 16 홀수 비트는, 홀수 컬러 1 데이터의 32비트를 생성하기 위해 레지스터 OE1의 16홀수 비트와 조합된다. 2개 그룹의 제1 출력 유효성 신호의 수신에 따라, 홀수 데이터를 버퍼 EF내의 컬러 1, 도 11의 73으로 전달하기 위해 버퍼 AB를 판독한다. 2개 그룹의 제2 출력 유효성 신호의 수신에 따라, 홀수 데이터의 32비트를 미리 판독된 버퍼 AB내의 동일한 위치에 기록하고, 짝수 데이터의 32비트를 버퍼 EF내의 컬러 1에 기록한다.
HCU는 출력 유효성 제어플래그가 설정될 때마다 컬러면당 32비트의 데이터를 제공한다. 이것은 어떤 시동 시간 동안을 제외하고 32싸이클마다 생긴다. 32비트는 단일 도트라인에 대해 32 도트의 연속 세트 - 16 짝수 도트(비트 0,2,4 등) 및 홀수 도트(비트 1,3,5 등)를 규정한다.
컬러 1에 대한 단일 32비트 값을 저장하기 위해 버퍼 OE1(도 10에서 83)가 사용되는 동안, 컬러 2~6에 대한 단일 32비트 값을 저장하기 위해 버퍼 OE2~OE6가 각각 사용된다. 컬러 1에 대한 데이터가 64싸이클마다(2개의 출력 유효성 플래그마다 1회) 컬러 1 홀수 도트를 표시하는 32비트 및 컬러 1 짝수 도트를 표시하는 32비트로 분리되는 것과 마찬가지로, 나머지 컬러면도 짝수 및 홀수 도트로 분리된다.
그러나, 버퍼 EF에 직접 기록되는 대신에, 도트 데이터는 다수의 라인에 의해 지연되어, 버퍼 CD(도 9에서 84)를 통해서 DRAM으로 기록된다. 주어진 라인에 대한 도트가 DRAM으로 기록되는 동안, 이전 라인에 대한 도트는 DRAM에서 판독되어 버퍼 EF(71,72)에 기록된다. 이 프로세스는, 컬러 1을 버퍼 EF에 기록하는 프로세스 사이에 삽입되게 된다.
도 10의 라인(85)상에서 HCU로부터 출력 유효성 플래그가 수신될 때마다, 컬러 N 데이터의 32비트가 버퍼 OEN(83)에 기록된다. 제2 출력 유효성 플래그마다, 조합된 64비트 값이 컬러버퍼 N(86)에 기록된다. 이것은 모든 컬러면 2~6에 대해서 병행하여 생긴다. 컬러버퍼 N(86)은, 2개의 완전한 세그먼트에 대한 도트가 저장될 수 있도록 64비트의 40세트(320바이트)를 포함한다. 이것은, 이전의 세그먼트 데이터(홀수 및 짝수 도트 모두) 양쪽에 대해 완전한 세그먼트 생성횟수(20×64 = 1280싸이클)가 DRAM으로 기록되게 된다. 기록용 어드레스의 생성은 간단하다. 라인(87)상의 ColorNWriteEnable 신호는 제2 출력 유효성 플래그마다 주어진다. 어드레스는 0에서 시작하고, 39가 될 때까지 제2 출력 유효성 플래그마다 증가한다. 40으로 진행하는 대신, 어드레스는 0으로 재설정되어, 이중 버퍼링 구성을 제공한다. 이것은 출력 유효성 플래그 동안 판독이 발생하지 않는 한 작동하고, 이전의 세그먼트 데이터는 단일 세그먼트 데이터를 발생시키기 위한 시간내에 DRAM으로 기록될 수 있다. 프로세스는 다음의 의사코드에 도시되었다:
adr = 0
firstEncountered = 0
While (NOT AdvanceLine)
If(HCU_OutputValid) AND (firstEncountered))
ColorNWriteEnable = TRUE
ColorNAdr = adr
If(adr == 39)
adr = 0
Else
adr = adr + 1
EndIf
Else
ColorNWriteEnable = FALSE
EndIf
If(HCU_OutputValid)
firstEncountered = NOT(firstEncountered)
EndIf
EndWhile
DRAM 액세스(판독 및 기록 모두), 버퍼 EF 액세스 및 컬러 1 발생을 위한 타이밍과 연관되므로, 판독용 어드레스 발생은 트리커(trickier)이다. 아래에 더 상세히 설명된다.
버퍼 C,D,E,F 및 컬러 N에 대한 어드레스 발생은 모두 DRAM 액세스의 타이밍과 연관되어 있고, 버퍼 E 및 F에 관한 컬러 1 처리를 방해하지 않는다. 기본 원리는 컬러 N의 단일 세그먼트를 위한 데이터(홀수 또는 짝수 도트)가 버퍼 CD를 통해서 DRAM으로부터 버퍼 EF로 전달되는 것이다. DRAM으로부터 데이터가 판독되면, ColorBufferN의 값에 기초하여 이들 도트가 보상된다. 이것은, 홀수 및 짝수 도트 에서 각각 의 컬러에 대해서 행해졌다. 도트의 완전한 세그먼트 값이 축적(64싸이클의 20 세트)된 후, 프로세스가 다시 시작된다. 주어진 프린트 라인에서 모든 세그먼트에 대한 데이터가 DRAM에 대해 전달되면, 컬러 라인에 대한 특정 데이터가 DRAM에서 판독될 때까지 적절한 라인 수가 되도록 컬러 DRAM 버퍼에 대해 현재의 어드레스가 진행된다. 그후, 이것에 대해서는 DRAM이 FIFO의 형태와 같이 동작한다. 따라서, 컬러 N(동일한 홀수/짝수 센스)을 버퍼 C로 복사하는 동안, 컬러 N(홀수든 짝수든)이 DRAM에서 버퍼 D로 판독된다. 버퍼 C로의 데이터 복사는, 20 전달동안 출력 유효성 플래그가 발생할 것인가에 따라 20 또는 21 싸이클을 취한다. 양쪽 태스크가 종료되면(일반적으로 DRAM 액세스는 더 느려진 태스크가 된다), 프로세스의 제2 부분이 시작된다. 버퍼 C내의 데이터는 DRAM으로 기록되고(동일한 위치가 바로 판독된다), 버퍼 D내의 데이터는 버퍼 EF로 복사된다(다시 한번, 컬러 1 데이터가 전달되므로, 출력 유효성 플래그가 설정되는 동안 컬러 N 데이터가 버퍼 EF로 전달되지 않는다). 양쪽 태스크가 종료되는 경우, 컬러 N의 다른 센스 및 그 나머지 컬러의 각각에 대해 동일한 처리가 생긴다. 전체의 이중 프로세스는 10회 발생된다. 그 후, DRAM에서 현재 라인의 각각에 대한 어드레스가 다음 라인의 프로세스를 시작하기 위해 갱신된다.
대역폭의 관점에서, 도트 데이터 버퍼에 대한 DRAM 액세스는, PEC로부터 모든 DRAM 액세스의 대부분을 소비한다. 각각의 인쇄라인을 위해, 컬러 2-6에 대해서 전체 도트라인을 판독하고, 컬러 2-6에 대해서 전체 도트라인을 기록한다. 최대 15 세그먼트를 위해, 이것은 2×5×15×1280 비트 = 192,000(24,000 바이트)/인쇄라인 와 동등하다. 고속 인쇄시스템(30,000라인/초)에 대해서 이것은 687MB/초와 동등하다. 1페이지/초 인쇄를 위해 필요한 대역폭은 312MB/초이다. 대역폭이 너무 높으므로, DRAM에서 각 컬러에 대한 다양한 하프라인의 어드레스는 사용되는 메모리타입에 최적화 된다. 예컨대 RDRAM 메모리 시스템에서, 최초의 제1 하프라인버퍼는 DRAM 액세스상에서 페이지 히트를 최대화하기 위해 각 컬러에 대해서 1KByte 경계로 조절된다. 다양한 세그먼트가 처리되는 것과 같이, 다음 세그먼트의 시작이 1KByte 페이지내에서 960바이트로 조절되는 것이라면, 640 비트 액세스는 2페이지에 이르는 것을 보장할 필요가 있다. 따라서, 이 경우를 검사하기 위해 변수 DRAMMaxVal이 사용되고, 발생되면, 페이지 정렬된 다음 하프 라인버퍼에 대한 어드레스가 사사 오입된다. 따라서, 낭비는 13 세그먼트당 64바이트뿐이고, 단일 페이지내에서 완전히 640 비트 액세스의 장점을 가진다.
어드레스 생성 프로세스는, 20×32비트 기록에 뒤따르는 20×32비트 판독으로 이루어지는 10 세트의 NumSegment 값으로서 간주될 수 있고, 다음의 의사코드로서 도시될 수 있다:
EFStartAdr = 0
Do NumSegments times:
For CurrColor = 0 to MaxHalfColors
DRAMStartAddress = ColorCurrAdr[CurrColor]
While reading 640 bits from DRAMStartAddress into D(>= 20 cycles)
ColorNAdr = 0
While(ColorNAdr != 20)
If(NOT HCU_OutputValid)
Transfer ColorNBuffer[ColorNAdr|CurrColor_bit0] to
C[ColorNAdr]
ColorNAdr = ColorNAdr + 1
EndIf
EndWhile
EndWhile - wait until read has finished
While writing 640 bits from C into DRAMStartAddress (>=20 cycles)
ColorNAdr = 0
EFAdr = EFStartAdr
While(ColorNAdr != 20)
If(NOT HCU_OutputValid)
Transfer D[ColorNAdr] to EF[CurrColor|EFAdr]
If((ColorNAdr == 19) AND (CurrColor == NumHalfColors))
EFStartAdr = EFAdr + 1
Else
EFAdr = EFAdr + 1
EndIf
ColorNAdr = ColorNAdr + 1
EndIf
EndWhile
EndWhile - wait until write has finished
If(DRAMStartAddress == DRAMMaxVal)
ColorCurrAdr[currColor] = round up DRAMStartAddress to next 1KByte page
Else
ColorCurrAdr[currColor] = DRAMStartAddress + 640 bits
EndIf
If(Segment == maxSegments)
If(ColorCurrRow[CurrColor] == ColorMaxRow[CurrColor])
ColorCurrRow[currColor] = ColorStartRow[currColor]
ColorCurrAdr[currColor] = ColorStartAdr[currColor]
Else
ColorStartRow[currColor] = ColorCurrRow[currColor] + 1
EndIf
EndIf
EndFor
EndDo
Wait until next Advance signal from PHI
MaxHalfColors 레지스터는 컬러 1을 포함하지 않지만, 개별적으로 처리된 홀수 및 짝수 컬러의 관점에서 컬러의 수보다 1개 이상 적다는 것에 주의한다. 예컨대, 표준 6컬러 인쇄시스템의 관점에서, 10(홀수 및 짝수에서의 컬러 2-6)이 있으면, MaxHalfColors는 9로 설정된다.
LLFU는, PHI에 대해 제1 데이터의 180비트를 준비하기 위해, 2 NumSegments 싸이클을 필요로 한다. 따라서, 프린트 헤드가 시작되고, 제1 라인동기(LineSync) 펄스는 LLFU가 시작된 후 이 시기에 생긴다. 이것에 의해 초기의 Tansfer 값이 유효하게 되고, 다음 90비트 값이 Tranfer 레지스터에 적재되도록 준비된다.
프린트 헤드 인터페이스(PHI)는, 프로세서가 프린트 헤드에 인쇄되는 도트를 적재하고, 실제 도트 인쇄처리를 제어하는 수단이다. LLFU에서 입력되어 프린트 헤드 그 자체로 데이터를 출력한다. PHI는 다양한 프린트 헤드 길이 및 포맷을 취급할 수 있다. PHI의 내부 구성은 최대 6 컬러, 트랜스퍼당 8 세크먼트 및 최대 2 세그먼트 그룹을 허용한다. 이것은 완전한 번짐(bleed)으로 A4/레터(Letter)를 인쇄할 수 있는 15 세그먼트(8.5인치) 프린터에 충분한다.
명세서 전반에 걸쳐, 어떤 다른 실시예 또는 특징의 구체적인 집합을 한정하는 일 없이 본 발명의 바람직한 실시예를 기술하도록 의도되었다. 기술분야에서 숙력된 사람들은, 본 발명의 범위내에 들어가는 소정 실시예의 변형을 실현할 수 있 다.
Claims (14)
- 압축된 페이지 데이터를 수신하는 인터페이스와;상기 수신되는 압축된 페이지 데이터내의 압축된 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;상기 수신되는 압축된 페이지 데이터내의 압축된 2-레벨 이미지면을 디코드하는 2-레벨 디코더와;상기 연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면 데이터를 합성하는 합성장치 및;프린트 헤드로 합성물을 출력하는 프린트 헤드 드라이버를 구비하는 잉크방울(drop) 프린트 헤드를 구동하는 프린트 컨트롤러.
- 제 1 항에 있어서,상기 인터페이스는, 고속 직렬 인터페이스인 것을 특징으로 하는 프린트 컨트롤러.
- 제 1 항에 있어서,상기 연속톤 이미지 디코더는, JPEG 디코더인 것을 특징으로 하는 프린트 컨트롤러.
- 제 1 항에 있어서,상기 연속톤 이미지 디코더는, 디코드된 이미지의 개개의 컬러면을, 합성장치 앞의 개개의 버퍼로 출력하는 것을 특징으로 하는 프린트 컨트롤러.
- 제 1 항에 있어서,상기 각각의 연속톤 이미지면내의 페이지 데이터는, 합성장치로 스케일되는 것을 특징으로 하는 프린트 컨트롤러.
- 제 1 항에 있어서,상기 2-레벨 디코더는, 그룹4 팩시밀리 디코더인 것을 특징으로 하는 프린트 컨트롤러.
- 제 1 항에 있어서,상기 2-레벨 디코더는, 상기 수신되는 압축된 이미지면내의 압축된 2-레벨 이미지면을, 상기 합성장치 앞의 각각의 버퍼를 향하여 디코드하는 것을 특징으로 하는 프린트 컨트롤러.
- 제 1 항에 있어서,2-레벨 이미지면내의 페이지 데이터는, 합성장치로 스케일되는 것을 특징으로 하는 프린트 컨트롤러.
- 제 1 항에 있어서,적외선 잉크로 인쇄된 태그를 인쇄된 페이지상에 위치시키기 위해 적외선 이미지면을 생성하는 적외선 태그 인코더를 더 포함하는 것을 특징으로 하는 프린트 컨트롤러.
- 수신되는 압축된 페이지 데이터내의 압축된 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;압축된 2-레벨 이미지면을 디코드하는 2-레벨 디코더 및;프린트 헤드에서 잉크가 제공되는 이미지면의 통합을 달성하기 위해, 컬러 마스크로 제어되는 도트 병합유닛을 포함한 합성장치를 구비하는, 잉크방울 프린트 헤드를 구동하는 프린트 컨트롤러.
- 수신되는 압축된 페이지 데이터내의 압축된 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;압축된 2-레벨 이미지면을 디코드하는 2-레벨 디코더 및;합성 프로세스 동안 마진 데이터를 각각의 이미지면으로 공급하는, 마진유닛을 포함한 합성장치를 구비하는, 잉크방울 프린트 헤드를 구동하는 프린트 컨트롤러.
- 압축된 페이지 데이터를 수신하는 인터페이스와;상기 수신되는 압축된 페이지 데이터내의 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면을 디코드하는 2-레벨 디코더와;연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면을 합성하는 합성장치 및;프린트 헤드로 합성물을 출력하는 프린트 헤드 드라이버를 구비하는, 잉크방울 프린트 헤드와 접속하는 프린트 컨트롤러 칩.
- 압축된 페이지 데이터를 수신하는 인터페이스와;상기 수신되는 압축된 페이지 데이터내의 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면을 디코드하는 2-레벨 디코더와;연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면을 합성하는 합성장치와;프린트 헤드로 합성물을 출력하는 프린트 헤드 드라이버 및;프린트 헤드를 구비하는, 프린트 컨트롤러에 의해 구동되는 잉크방울 프린터.
- 압축된 페이지 데이터를 수신하는 단계와;출력면을 생성하기 위해 상기 수신되는 압축된 페이지 데이터내의 연속톤 이미지면을 디코드하는 단계와;출력면을 생성하기 위해 상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면을 디코드하는 단계와;연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면을 합성하는 단계 및;프린트 헤드로 합성된 데이터를 전송하는 단계를 구비하는 잉크방울 프린터의 운영방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020027015793A KR100702464B1 (ko) | 2002-11-22 | 2000-05-24 | 프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020027015793A KR100702464B1 (ko) | 2002-11-22 | 2000-05-24 | 프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030024680A KR20030024680A (ko) | 2003-03-26 |
KR100702464B1 true KR100702464B1 (ko) | 2007-04-03 |
Family
ID=41624312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027015793A KR100702464B1 (ko) | 2002-11-22 | 2000-05-24 | 프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100702464B1 (ko) |
-
2000
- 2000-05-24 KR KR1020027015793A patent/KR100702464B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20030024680A (ko) | 2003-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7270391B2 (en) | Method for processing an image | |
US7980648B2 (en) | Print engine controller utilizing on and off chip memory for dot data formatting | |
US20080186517A1 (en) | Printer Controller For Inkjet Print Head | |
AU2004202407B2 (en) | Print engine controller with dithering and compositing circuitry | |
US7957011B2 (en) | Printer printing composited print image planes | |
US7092112B2 (en) | Ink drop printer with print engine controller | |
US7457001B2 (en) | Half-toner compositor for use in a print engine/controller | |
KR100702464B1 (ko) | 프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩 | |
KR100702467B1 (ko) | 컬러 마스크를 갖는 프린트 엔진/컨트롤러 | |
US8270023B2 (en) | Print engine controller for double-buffered processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130312 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140312 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150309 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160310 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |