KR20030024680A - Print engine/controller and printhead interface chip incorporating the engine/controller - Google Patents

Print engine/controller and printhead interface chip incorporating the engine/controller Download PDF

Info

Publication number
KR20030024680A
KR20030024680A KR1020027015793A KR20027015793A KR20030024680A KR 20030024680 A KR20030024680 A KR 20030024680A KR 1020027015793 A KR1020027015793 A KR 1020027015793A KR 20027015793 A KR20027015793 A KR 20027015793A KR 20030024680 A KR20030024680 A KR 20030024680A
Authority
KR
South Korea
Prior art keywords
image plane
continuous tone
decoder
level
print head
Prior art date
Application number
KR1020027015793A
Other languages
Korean (ko)
Other versions
KR100702464B1 (en
Inventor
키아 실버브룩
폴 랩스턴
시몬 로버트 왈름슬레이
Original Assignee
실버브룩 리서치 피티와이 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 실버브룩 리서치 피티와이 리미티드 filed Critical 실버브룩 리서치 피티와이 리미티드
Priority to KR1020027015793A priority Critical patent/KR100702464B1/en
Publication of KR20030024680A publication Critical patent/KR20030024680A/en
Application granted granted Critical
Publication of KR100702464B1 publication Critical patent/KR100702464B1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41JTYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
    • B41J2/00Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
    • B41J2/005Typewriters 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/01Ink jet
    • B41J2/205Ink 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)로 버퍼된다.The print engine / controller is suitable for use with drop-on-demand printheads. The print engine / controller works with compressed page data having both a two-level image plane compressed using the JPEG contone image layer and the Group 4 facsimile protocol. Receive a compressed image plane, achieve magnification and print in a pipelined manner. It is a tag that places a high speed serial interface 27 (such as a standard IEEE 1394 interface), a standard JPEG decoder 28, a standard group 4 fax decoder, a half toner / synthesis unit 29, and an infrared tag on a printed page. It consists of an encoder 30 and a line loader / formatter unit 31 for providing an interface 32 to the print head 33. Decoder 28 and 88 and encoder 30 are buffered with half toner / synthesis device 29.

Description

프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드 인터페이스 칩{Print engine/controller and printhead interface chip incorporating the engine/controller}Print engine / controller and printhead interface chip incorporating the engine / controller}

프린터 유형의 범위는, 잉크가 페이지에서 도트 포맷 형태로 선택적으로 도포됨으로써 이미지가 구축되는 것으로 발전되었다. 발명자가 키아 실버브룩(Kia Silverbrook), 제목이 '모놀리딕 프린트 헤드의 자기정렬 구성 및 제조 공정'이라는 미국특허 No.6045710호에서는, 드롭 온 디맨드 프린터(drop on demand printer)와 그 제조공정에 따른 종래 기술의 평가가 기술되어 있다.The range of printer types has evolved in that images are constructed by selectively applying ink in the form of dots on a page. The inventor, Kia Silverbrook, entitled U.S. Patent No.6045710 entitled 'Self-aligning Configuration and Manufacturing Process of Monolithic Print Heads', describes a drop on demand printer and its manufacturing process. Prior art evaluations are described.

이후, 멤제트(Memjet) 프린트 헤드로 불려지는, 마이크로 전자기계적인 드롭 온 디맨드(microelectomechanical drop on demand) 프린트 헤드는, 본 출원과 동시에 출원되어, 계류(co-pending)중인 국제출원에 기술되어 있으며, 상호 참조(cross reference)로서 본 명세서에 포함된다.The microelectromechanical drop on demand print head, hereafter referred to as the Memjet print head, is filed simultaneously with the present application and described in a pending co-pending international application. It is hereby incorporated by reference as a cross reference.

PCT 출원번호PCT application number 우리측 참조번호Our reference number PCT/AU00/00591PCT / AU00 / 00591 MJ62MJ62 PCT/AU00/00578PCT / AU00 / 00578 IJ52IJ52 PCT/AU00/00579PCT / AU00 / 00579 IJM52IJM52 PCT/AU00/00592PCT / AU00 / 00592 MJ63MJ63 PCT/AU00/00590PCT / AU00 / 00590 MJ58MJ58

멤제트(Memjet) 프린트 헤드는, 예컨대 1페이지의 전체 폭에 걸쳐 액체 잉크가 1600dpi의 2-레벨 도트를 생성할 수 있는 프린트 헤드 세그먼트에서 발전되었다. 도트(dot)들은 용이하게 분리 생성되는데, 이것은 분산-도트(dispersed-dot) 디더링(dithering)이 최대한 활용되도록 한다. 컬러면이 완전한 기록으로 인쇄되어, 이상적인 도트-온-도트(dot-on-dot) 인쇄를 허용한다. 프린트 헤드는 마이크로 전자기계적인 잉크방울 기술을 이용하여 고속 인쇄를 가능하게 한다.Memjet print heads have been developed in print head segments, for example, where liquid ink can produce 1600 dpi two-level dots over the entire width of one page. Dots are easily created separately, which makes the most of distributed-dot dithering. The color side is printed as a complete record, allowing for ideal dot-on-dot printing. The print head uses microelectromechanical ink droplet technology to enable high speed printing.

본 발명에 관한 다양한 방법, 시스템 및 장치는, 본 발명의 출원인 또는 양수인에 의해, 본 출원과 동시에 출원된 다음의 계류중인 출원들에 개시되어 있다.Various methods, systems and apparatuses of the present invention are disclosed in the following pending applications filed concurrently with the present application by the applicant or assignee of the present invention.

PCT/AU00/00518, PCT/AU00/00519, PCT/AU00/00520,PCT / AU00 / 00518, PCT / AU00 / 00519, PCT / AU00 / 00520,

PCT/AU00/00521, PCT/AU00/00522, PCT/AU00/00523,PCT / AU00 / 00521, PCT / AU00 / 00522, PCT / AU00 / 00523,

PCT/AU00/00524, PCT/AU00/00525, PCT/AU00/00526,PCT / AU00 / 00524, PCT / AU00 / 00525, PCT / AU00 / 00526,

PCT/AU00/00527, PCT/AU00/00528, PCT/AU00/00529,PCT / AU00 / 00527, PCT / AU00 / 00528, PCT / AU00 / 00529,

PCT/AU00/00530, PCT/AU00/00531, PCT/AU00/00532,PCT / AU00 / 00530, PCT / AU00 / 00531, PCT / AU00 / 00532,

PCT/AU00/00533, PCT/AU00/00534, PCT/AU00/00535,PCT / AU00 / 00533, PCT / AU00 / 00534, PCT / AU00 / 00535,

PCT/AU00/00536, PCT/AU00/00537, PCT/AU00/00538,PCT / AU00 / 00536, PCT / AU00 / 00537, PCT / AU00 / 00538,

PCT/AU00/00539, PCT/AU00/00540, PCT/AU00/00541,PCT / AU00 / 00539, PCT / AU00 / 00540, PCT / AU00 / 00541,

PCT/AU00/00542, PCT/AU00/00543, PCT/AU00/00544,PCT / AU00 / 00542, PCT / AU00 / 00543, PCT / AU00 / 00544,

PCT/AU00/00545, PCT/AU00/00547, PCT/AU00/00546,PCT / AU00 / 00545, PCT / AU00 / 00547, PCT / AU00 / 00546,

PCT/AU00/00554, PCT/AU00/00556, PCT/AU00/00557,PCT / AU00 / 00554, PCT / AU00 / 00556, PCT / AU00 / 00557,

PCT/AU00/00558, PCT/AU00/00559, PCT/AU00/00560,PCT / AU00 / 00558, PCT / AU00 / 00559, PCT / AU00 / 00560,

PCT/AU00/00561, PCT/AU00/00562, PCT/AU00/00563,PCT / AU00 / 00561, PCT / AU00 / 00562, PCT / AU00 / 00563,

PCT/AU00/00564, PCT/AU00/00565, PCT/AU00/00566,PCT / AU00 / 00564, PCT / AU00 / 00565, PCT / AU00 / 00566,

PCT/AU00/00567, PCT/AU00/00568,PCT / AU00 / 00567, PCT / AU00 / 00568,

PCT/AU00/00569, PCT/AU00/00570, PCT/AU00/00571,PCT / AU00 / 00569, PCT / AU00 / 00570, PCT / AU00 / 00571,

PCT/AU00/00572, PCT/AU00/00573, PCT/AU00/00574,PCT / AU00 / 00572, PCT / AU00 / 00573, PCT / AU00 / 00574,

PCT/AU00/00575, PCT/AU00/00576, PCT/AU00/00577,PCT / AU00 / 00575, PCT / AU00 / 00576, PCT / AU00 / 00577,

PCT/AU00/00578, PCT/AU00/00579, PCT/AU00/00581,PCT / AU00 / 00578, PCT / AU00 / 00579, PCT / AU00 / 00581,

PCT/AU00/00580, PCT/AU00/00582, PCT/AU00/00587,PCT / AU00 / 00580, PCT / AU00 / 00582, PCT / AU00 / 00587,

PCT/AU00/00588, PCT/AU00/00589, PCT/AU00/00583,PCT / AU00 / 00588, PCT / AU00 / 00589, PCT / AU00 / 00583,

PCT/AU00/00593, PCT/AU00/00590, PCT/AU00/00591,PCT / AU00 / 00593, PCT / AU00 / 00590, PCT / AU00 / 00591,

PCT/AU00/00592, PCT/AU00/00584, PCT/AU00/00585,PCT / AU00 / 00592, PCT / AU00 / 00584, PCT / AU00 / 00585,

PCT/AU00/00586, PCT/AU00/00594, PCT/AU00/00595,PCT / AU00 / 00586, PCT / AU00 / 00594, PCT / AU00 / 00595,

PCT/AU00/00596, PCT/AU00/00597, PCT/AU00/00598,PCT / AU00 / 00596, PCT / AU00 / 00597, PCT / AU00 / 00598,

PCT/AU00/00517, PCT/AU00/00511, PCT/AU00/00501,PCT / AU00 / 00517, PCT / AU00 / 00511, PCT / AU00 / 00501,

PCT/AU00/00502, PCT/AU00/00503, PCT/AU00/00504,PCT / AU00 / 00502, PCT / AU00 / 00503, PCT / AU00 / 00504,

PCT/AU00/00505, PCT/AU00/00506, PCT/AU00/00507,PCT / AU00 / 00505, PCT / AU00 / 00506, PCT / AU00 / 00507,

PCT/AU00/00508, PCT/AU00/00509, PCT/AU00/00510,PCT / AU00 / 00508, PCT / AU00 / 00509, PCT / AU00 / 00510,

PCT/AU00/00512, PCT/AU00/00513, PCT/AU00/00514,PCT / AU00 / 00512, PCT / AU00 / 00513, PCT / AU00 / 00514,

PCT/AU00/00515PCT / AU00 / 00515

이들 계류중인 출원들의 설명이, 상호 참조로서 본 명세서에 포함된다.Descriptions of these pending applications are incorporated herein by cross-reference.

상기와 같은 프린트 헤드의 성능은, 그 엔진/컨트롤러에 의해 결정된다. 고속 인쇄는, 프린트 헤드 및 그 엔진/컨트롤러 양쪽의 개발의 문제이다. 상기 기술에 의해 가능해진 페이지 폭 프린트 헤드는, 드롭 제어신호를 고속으로 공급할 수 있는 엔진/컨트롤러를 필요로 한다. 일반적인 페이지 레이아웃은 이미지, 그래픽 및 텍스트의 혼합물을 포함한다. 상기 마이크로 전자기계적인 페이지 폭 프린트 헤드의 특성 때문에, 각 페이지는 가시적 아티팩트(artifact)의 생성을 회피하기 위해 일정한 속도로 인쇄될 수 있다. 이것은, 인쇄 속도가 데이터의 입력 속도에 맞추어 변경될 필요가 없는 것을 의미한다. 문서의 래스터화(rasterization) 및 문서의 인쇄는 분리될 수 있다. 프린트 헤드가 일정한 데이터 공급을 갖도록 보장하기 위해, 완전히 래스터화(rasterize) 될 때까지는 페이지가 인쇄되지 않아야 한다. 이상적으로, 인쇄하기에 앞서 래스터화를 해야 하는데, 이것은 보다 더 복잡한 페이지를 래스터화 하는 시간을 벌어들인다. 엔진/컨트롤러는 이들 기능이 실현되는 정도를 결정한다.The performance of such a print head is determined by the engine / controller. High speed printing is a problem in the development of both the printhead and its engine / controller. The page width print head enabled by the above technique requires an engine / controller capable of supplying a drop control signal at high speed. Typical page layouts include a mixture of images, graphics and text. Because of the nature of the microelectromechanical page width print head, each page can be printed at a constant speed to avoid the generation of visible artifacts. This means that the print speed does not need to be changed to match the input speed of the data. Rasterization of documents and printing of documents can be separated. To ensure that the print head has a constant data supply, the page should not be printed until it is completely rasterized. Ideally, you should rasterize before printing, which makes time to raster more complex pages. The engine / controller determines the extent to which these functions are realized.

프린트 헤드의 고속화는, 프린트 헤드 및 그 엔진/컨트롤러 양쪽의 개발에 의해 결정된다. 프린트 엔진/컨트롤러의 아키텍처(architecture)는, 프린트 헤드에 다량의 데이터를 고속으로 밀어넣도록 설계하는 것이 필요한다.The speed of the print head is determined by the development of both the print head and its engine / controller. The architecture of the print engine / controller needs to be designed to push large amounts of data into the print head at high speed.

[발명의 요약][Summary of invention]

본 발명의 일측면에 따른 프린트 엔진/컨트롤러는,The print engine / controller according to one aspect of the present invention,

연속톤(contone) 이미지 디코더와;A contone image decoder;

2-레벨 압축 디코더 및;A two-level compression decoder;

하프토너(half-toner)/합성장치(compositor)와 프린트 헤드 인터페이스를 포함한다.It includes a half-toner / compositor and a print head interface.

프린트 엔진/컨트롤러는, 컴퓨터 또는 인쇄 분배시스템에 의해, 독자적으로 포맷된 압축 페이지 데이터로부터 페이지를 생성하는 최종 단계들을 제공하고, 상기 단계들은 페이지 이미지 확대하는(expanding)단계, 연속톤 층 디더링하는(dithering)단계, 연속톤 층상에 흑색층 합성하는(compositing)단계, 적외선층에 적외선 태그 부가하는(adding)단계 및 프린트 헤드로 합성된 이미지를 전송하는(sending) 단계이다.The print engine / controller provides, by a computer or print distribution system, the final steps of generating a page from independently formatted compressed page data, the steps of expanding the page image, dithering the continuous tone layer ( dithering, compositing a black layer on the continuous tone layer, adding an infrared tag to the infrared layer, and sending the synthesized image to the print head.

프린트 엔진/컨트롤러는, 압축된 페이지 데이터를 수신하는데 가급적 고속 직렬 인터페이스를 사용한다. 연속톤 이미지면은 JPEG 디코더에 의해 디코드(decode) 되고, 마진유닛 제어하의 하프토너/합성장치로 스케일(scale) 된다. 그룹4 팩시밀리 디코더는 2-레벨 이미지면을 디코드 하고, 또한 마진유닛 제어하의 하프토너/합성장치로 스케일 된다. 적외선 태그 인코더는, 적외선 잉크 인쇄된 태그를 인쇄된 페이지에 위치시키기 위해, 임의로 적외선 이미지면을 생성하도록 한다. 하프토너/합성장치는 압축된 페이지 데이터로부터 디더 데이터를 공급함으로써, 연속톤 이미지면을 디더하기 위한 디더 매트릭스 액세스 유닛을 포함한다.The print engine / controller preferably uses a high speed serial interface to receive compressed page data. The continuous tone image plane is decoded by a JPEG decoder and scaled by a half toner / synthesis device under margin unit control. The Group 4 facsimile decoder decodes the two-level image plane and scales with the half toner / synthesizer under margin unit control. The infrared tag encoder allows arbitrary infrared image planes to be placed to place the infrared ink printed tag on the printed page. The half toner / sum growth value includes a dither matrix access unit for dithering the continuous tone image plane by supplying dither data from the compressed page data.

또한, 본 발명은, 압축된 페이지 데이터를 수신하기 위한 인터페이스와, 상기 수신되는 압축된 페이지 데이터내에서 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와, 상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면 및 디더 데이터를 디코드하는 2-레벨 디코더와, 연속톤 이미지면상에 2-레벨 이미지면을 합성하는 하프토너/합성장치 및 프린트 헤드로 합성된 이미지를 출력하는 프린트 헤드 드라이버를 포함하는 잉크방울 프린트 헤드와 접속하는 프린트 엔진/컨트롤러를 더 포함한다.In addition, the present invention provides an interface for receiving compressed page data, a continuous tone image decoder for decoding a contone image plane within the received compressed page data, and a two-level in the received compressed page data. Ink droplets including a two-level decoder for decoding the image plane and dither data, a half-toner / compositor for combining the two-level image plane on the continuous tone image plane, and a printhead driver for outputting the synthesized image with the print head. It further includes a print engine / controller for connecting with the print head.

본 발명은, 프린터 제품의 범위내의 사용에 적합한 프린트 엔진/컨트롤러(PEC)에 관한 것이다. 본 발명은, 게다가 프린트 헤드 인터페이스 칩으로 실현되는 프린트 엔진/컨트롤러에 관한 것이다.The present invention relates to a print engine / controller (PEC) suitable for use within the scope of printer products. The present invention further relates to a print engine / controller realized by a print head interface chip.

도 1은 프린트 엔진 컨트롤러에 의해 실행되는 데이터 플로우 및 기능을 나타내는 도면이다.1 is a diagram illustrating a data flow and a function executed by a print engine controller.

도 2는 개략적인 프린터 시스템 구조와 관련된 프린트 엔진 컨트롤러를 나타내는 도면이다.2 is a diagram illustrating a print engine controller associated with a schematic printer system structure.

도 3은 프린트 엔진 컨트롤러의 아키텍처를 나타내는 도면이다.3 is a diagram illustrating the architecture of a print engine controller.

도 4는 도 3의 하프토너/합성장치 유닛(HCU)에 대한 외부 인터페이스를 나타내는 도면이다.4 is a diagram illustrating an external interface to the half toner / synthesis unit unit (HCU) of FIG. 3.

도 5는 도 4의 HCU에 관한 내부회로를 나타내는 도면이다.5 is a diagram illustrating an internal circuit related to the HCU of FIG. 4.

도 6은 도 5의 도트 병합유닛내의 프로세스를 나타내는 블록도이다.FIG. 6 is a block diagram showing a process in the dot merging unit of FIG.

도 7은 도 5의 도트 재편유닛내의 프로세스를 나타내는 도면이다.FIG. 7 is a diagram illustrating a process in the dot realignment unit of FIG. 5.

도 8은 도 5의 라인 로더/포맷유닛(LLFU)내의 프로세스를 나타내는 도면이다.FIG. 8 is a diagram illustrating a process in the line loader / format unit (LLFU) of FIG. 5.

도 9는 도 8의 LLFU에서 컬러데이터를 생성하기 위한 내부회로를 나타내는도면이다.9 is a diagram illustrating an internal circuit for generating color data in the LLFU of FIG. 8.

도 10 및 도 11은 도 9에 도시된 LLFU의 구성 요소를 나타내는 도면이다.10 and 11 are diagrams illustrating components of the LLFU shown in FIG. 9.

[바람직한 실시예의 상세한 설명]Detailed Description of the Preferred Embodiments

일반적으로, 12인치 폭의 프린트 헤드는 하나 이상의 PEC로 제어되어, 아래에 기술되는 바와 같이, A4 및 레터(Letter) 페이지의 전면 번짐(full-bleed) 인쇄를 허용한다.In general, a 12 inch wide print head is controlled with one or more PECs to allow full-bleed printing of A4 and letter pages, as described below.

6채널의 컬러 잉크는, 현재의 인쇄 환경에서의 최대 기대치로서, 이들은 다음과 같다.Six-channel color inks are the maximum expectations in the current printing environment, which are as follows.

ㆍ정식 컬러 인쇄용, CMY.ㆍ For full color printing, CMY.

ㆍ흑색 텍스트 및 다른 흑색 인쇄용, K.For black text and other black printing;

ㆍ태그 가능한 적용, IR(적외선).ㆍ Tagable application, IR (Infrared).

ㆍ고속 인쇄를 가능하게 하는, F(고착제).F (fixing agent), which enables high speed printing.

프린터는 인쇄를 고속화 할 수 있어야 하고, 다음 페이지가 인쇄 종료되기 이전에, 잉크를 고속으로 건조시킬수 있는 고착제가 필요하게 된다. 그렇지 않으면, 서로 페이지상에서 번지게(bleed) 된다. 저속 인쇄환경에서는 고착제가 필요하지 않다.The printer must be able to speed up printing, and a fixing agent capable of drying the ink at high speed is needed before the next page is finished printing. Otherwise, they bleed each other on the page. Fixing agents are not needed in low speed printing environments.

PEC는 프린트 헤드와 접속하는 단일 칩에 내장된다. 기본적으로 4개 레벨의 기능성을 포함한다:PEC is embedded in a single chip that connects to the printhead. Basically it includes four levels of functionality:

ㆍIEEE 1394와 같은 직렬 인터페이스를 통해서 압축된 페이지를 수신한다.• Receive a compressed page through a serial interface, such as IEEE 1394.

ㆍ압축된 형태로부터 페이지를 생성하는 프린트 엔진. 프린트 엔진 기능은페이지 이미지를 확대하고, 연속톤 층을 디더하며(dither), 연속톤 층상에 흑색층 을 합성하고, 선택적으로 적외선 태그를 부가하며 및 프린트 헤드로 합성된 이미지를 전송하는 것을 포함한다.Print engine for generating pages from compressed form. Print engine functions include enlarging the page image, dithering the continuous tone layer, compositing the black layer on the continuous tone layer, optionally adding an infrared tag, and sending the synthesized image to the print head. .

ㆍ프린트 헤드 및 단계 모터를 제어하는 프린트 컨트롤러.Print controller for controlling the print head and step motor.

ㆍ2개의 QA 칩과 통신하는 2개의 표준 저속 직렬포트. 승인 절차 동안 강력한 보안을 보장하기 위해 단일 포트가 아닌 2개의 포트가 되는 것에 주의한다.Two standard low speed serial ports communicating with two QA chips. Note that there are two ports instead of a single port to ensure strong security during the authorization process.

도 1에는 컴퓨터 시스템에서 인쇄된 페이지로 문서를 전송하기 위한 데이터의 플로우가 도시되었다. 문서는 11에서 수신되어, 페이지 레이아웃이 달성되고, 어떤 필요한 객체가 추가될 수 있는 메모리 버퍼(12)로 적재된다. 메모리 버퍼(12)로부터의 페이지는 13에서 래스터화 되어, 프린트 엔진 컨트롤러(10)로 전송하기 전에 14에서 압축된다. 페이지는, 프린트 엔진 컨트롤러(10)내에서 압축된 페이지 이미지로서 메모리 버퍼(15)로 수신되어, 페이지 이미지가 복구되는 페이지 확대장치(expander)(16)로 공급된다. 어떤 필수 디더링이 17에서 어떤 연속톤 층에도 적용될 수 있다. 어떤 흑색 2-레벨층도 19의 적외선 태그와 함께 18에서 연속톤 층상에 합성될 수 있다. 합성된 페이지 데이터는 20에서 인쇄되어 페이지(21)를 생성한다.1 shows a flow of data for sending a document to a printed page in a computer system. The document is received at 11 and loaded into memory buffer 12 where page layout is achieved and any necessary objects can be added. Pages from memory buffer 12 are rasterized at 13 and compressed at 14 before being sent to print engine controller 10. The page is received in the memory buffer 15 as a compressed page image in the print engine controller 10 and supplied to the page expander 16 where the page image is recovered. Any necessary dithering can be applied to any continuous tone layer at 17. Any black two-level layer can be synthesized on the continuous tone layer at 18 with an infrared tag of 19. The synthesized page data is printed at 20 to generate page 21.

프린트 엔진/컨트롤러는 압축된 페이지 이미지를 수신하여, 파이프라인 방식으로 페이지 확대 및 인쇄를 시작한다. 상당한 크기의 2-레벨 CMYK+IR 페이지 이미지를 메모리에 저장하는 것은 실행 불가능하기 때문에, 페이지 확대 및 인쇄는 가급적 파이프라인으로 된다.The print engine / controller receives the compressed page image and begins to enlarge and print the page in a pipelined manner. Since it is not feasible to store a significant two-level CMYK + IR page image in memory, page magnification and printing is a pipeline where possible.

파이프라인의 제1 단계는, JPEG 압축된 연속톤 CMYK층(아래에 도시), 그룹4 팩스 압축된 2-레벨 디더 매트릭스 선택 맵(아래 도시) 및 그룹4 팩스 압축된 2-레벨 흑색층(아래 도시)을 모두 병행하여 확대한다. 이것과 병행하여, 태그 인코더는 압축된 페이지 이미지로부터 2-레벨 IR 태그데이터를 인코드한다. 제2 단계는, 디더 매트릭스 선택 맵에 의해 선택된 디더 매트릭스를 이용하여 연속톤 CMYK층을 디더하고, 합성된 2-레벨 K층상에 2-레벨 흑색층을 합성하며, 페이지에 IR층을 부가한다. 또한, 어떤 C, M, Y, K 또는 IR 채널을 필요로 하여도 고착층은 각각의 도트 위치에서 생성된다. 최종 단계는, 프린트 헤드 인터페이스(아래에 도시)를 경유해서 프린트 헤드를 통해서 2-레벨 CMYK+K 데이터를 인쇄한다.The first stage of the pipeline consists of a JPEG compressed continuous tone CMYK layer (shown below), a Group 4 fax compressed 2-level dither matrix selection map (shown below) and a Group 4 fax compressed 2-level black layer (bottom) Zoom in). In parallel with this, the tag encoder encodes two-level IR tag data from the compressed page image. The second step is to dither the continuous tone CMYK layer using the dither matrix selected by the dither matrix selection map, synthesize a two-level black layer on the synthesized two-level K layer, and add an IR layer to the page. Also, no matter which C, M, Y, K or IR channel is required, a fixation layer is created at each dot position. The final step is to print the two-level CMYK + K data through the print head via the print head interface (shown below).

도 2에는 개략적인 프린터 시스템 구조내에서 프린트 엔진/컨트롤러(10)가 어떻게 설치되는 것인지 도시되었다. 프린터 시스템의 다양한 구성 요소는, 다음을 포함한다.2 shows how the print engine / controller 10 is installed within the schematic printer system structure. Various components of the printer system include the following.

ㆍ프린트 엔진/컨트롤러(PEC). PEC 칩(10) 또는 칩은, 메모리 버퍼(24)내에 저장하기 위한 압축된 페이지 이미지를 수신하고, 페이지 확대를 실행하며, 흑색층을 합성하고, 프린트 헤드(23)로 도트 데이터를 전송할 책임이 있다. 또한, QA 칩(25, 26)과 통신하여, 최적의 인쇄를 보장하도록 프린트 헤드 특성을 보상하는 수단을 제공한다. PEC는 본 명세서의 주제이다.Print engine / controller (PEC). The PEC chip 10 or chip is responsible for receiving a compressed page image for storage in the memory buffer 24, executing page enlargement, synthesizing a black layer, and transmitting dot data to the print head 23. have. It also provides a means for communicating with the QA chips 25, 26 to compensate printhead characteristics to ensure optimal printing. PEC is the subject of this specification.

ㆍ메모리 버퍼. 메모리 버퍼(24)는, 압축된 페이지 이미지를 저장하고, 주어진 페이지를 인쇄하는 동안 스크래치(scratch) 사용을 위한 것이다. 메모리 버퍼의 구성 및 작용은 기분 분야에서 숙련된 사람들에게 공지되어 있고, 표준 칩의 범위및 그 사용 기술은 본 발명의 PEC의 사용에 이용된다.Memory buffer. The memory buffer 24 is for storing compressed page images and for scratch use while printing a given page. The construction and operation of memory buffers are known to those skilled in the mood arts, and the range of standard chips and techniques for their use are used in the use of the PEC of the present invention.

ㆍ마스터 QA 칩. 마스터 칩(25)은 교환 가능한 잉크 카트리지 QA 칩(26)과 정합된다. QA 유닛의 구성 및 작용은 기술분야에서 공지되어 있고, 공지된 QA 프로세스의 범위는 본 발명의 PEC의 사용에 이용된다. 예컨대, QA칩은 공동 출원중인 미국특허출원에 기술되어 있다.Master QA chip. The master chip 25 is matched with the replaceable ink cartridge QA chip 26. The construction and operation of the QA unit is known in the art and a range of known QA processes is used in the use of the PEC of the present invention. For example, QA chips are described in co-pending US patent application.

미국출원번호US Application Number 우리측 참조번호Our reference number 제목title TBATBA AUTH01AUTH01 유효 프로토콜 및 시스템Valid protocols and systems 09/112,76309 / 112,763 AUTH02AUTH02 IDD 불안전 공격에 대한 칩 보호회로Chip Protection Circuit Against IDD Unsafe Attacks 09/112,73709 / 112,737 AUTH04AUTH04 온칩 메모리(플래쉬 및 RAM) 보호방법On-chip memory (flash and RAM) protection method 09/112,76109 / 112,761 AUTH05AUTH05 칩 탬퍼저항 제조방법Chip Tamper Resistance Manufacturing Method 09/113,22309 / 113,223 AUTH06AUTH06 물리적인 객체의 인증시스템Physical object authentication system TBATBA AUTH07AUTH07 유효 프로토콜 및 시스템Valid protocols and systems TBATBA AUTH08AUTH08 유효 프로토콜 및 시스템Valid protocols and systems 09/505,00309 / 505,003 AUTH09AUTH09 소모 가능한 인증 프로토콜 및 시스템Consumable Authentication Protocols and Systems 09/517,60809 / 517,608 AUTH10AUTH10 소모 가능한 인증 프로토콜 및 시스템Consumable Authentication Protocols and Systems 09/505,14709 / 505,147 AUTH11AUTH11 소모 가능한 인증 프로토콜 및 시스템Consumable Authentication Protocols and Systems 09/505,95209 / 505,952 AUTH12AUTH12 플래쉬 메모리에 저장된 값의 비공인 수정Unauthorized modification of values stored in flash memory TBATBA AUTH13AUTH13 보안데이터의 취급시스템Security data handling system 09/516,87409 / 516,874 AUTH14AUTH14 전원 공격을 방지하는 공인 칩Certified Chips Prevent Power Attacks TBATBA AUTH15AUTH15 비밀데이터의 보호 취급법How to protect your confidential data

QA 통신 칩은, 물리적인 프린트 헤드를 구동할 뿐만 아니라 이미지 확대의 역할을 가지므로, PEC 칩의 개략적인 기능성내에 포함되는 것이 가장 좋다. QA 통신 칩을 설치함으로써, 페이지를 인쇄하기 위한 잉크가 충분한 것이 보장될 수 있다. 바람직하게, 프린트 헤드 조립체에 내장된 QA 칩은 인증 칩을 이용하여 실현된다. 그것은, 마스터 QA 칩이므로, 인증 키만을 포함하고, 사용자 데이터는 포함하지 않는다. 그러나, 그것은 잉크 카트리지 QA 칩과 정합해야 한다. 잉크 카트리지의 QA 칩은 가능한 한 최상의 인쇄 품질을 유지하기 위해 필요한 정보를 포함하고, 인증 칩을 이용하여 실현된다. 바람직하게, 64MBit(8MByte) 메모리 버퍼는 압축된 페이지 이미지를 저장하기 위해 사용된다. 한쪽 페이지가 버퍼에 기록되는 동안 다른쪽 페이지는 판독된다(이중 버퍼링). 게다가, PEC는 페이지를 인쇄하는 동안 메모리를 사용하여 계산된 도트 정보를 버퍼한다. 페이지 N을 인쇄하는 동안, 버퍼는 다음을 위해 사용된다.Since the QA communication chip not only drives the physical print head but also serves as an image enlargement, it is best included in the schematic functionality of the PEC chip. By installing the QA communication chip, it can be ensured that sufficient ink for printing a page is sufficient. Preferably, the QA chip embedded in the print head assembly is realized using an authentication chip. Since it is a master QA chip, it contains only an authentication key and no user data. However, it must match with the ink cartridge QA chip. The QA chip of the ink cartridge contains the information necessary to maintain the best print quality as possible, and is realized using an authentication chip. Preferably, a 64 MBit (8 MByte) memory buffer is used to store the compressed page image. The other page is read (double buffered) while one page is written to the buffer. In addition, the PEC uses memory to buffer the dot information computed while printing the page. While printing page N, the buffer is used for:

ㆍ압축된 페이지 N을 판독한다Read compressed page N

ㆍ페이지 N에 대한 2-레벨 도트 정보를 판독 및 기록한다Read and write two-level dot information for page N

ㆍ압축된 페이지 N+1을 기록한다• Write compressed page N + 1

바람직하게, PEC칩은 다음의 기능을 실행하기 위해 간단한 마이크로 컨트롤러 CPU 코어(35)를 포함한다.Preferably, the PEC chip includes a simple microcontroller CPU core 35 to perform the following functions.

ㆍ인쇄 페이지 사이에서 직렬 인터페이스(36)를 통해서 QA 칩 인증 프로토콜을 실행한다.Executes the QA chip authentication protocol via the serial interface 36 between the printed pages.

ㆍ인쇄하는 동안 병렬 인터페이스(91)를 통해서 단계모터를 구동한다(단계 모터는 5㎑ 프로세스가 요구된다)Drive the stepper motor via the parallel interface 91 during printing (the stepper motor requires a 5 ms process)

ㆍ인쇄하는 동안 PEC 칩의 여러 부분을 동기시킨다Synchronize different parts of the PEC chip during printing

ㆍ외부 데이터 요청과 접속하는 수단을 제공한다(프로그래밍 레지스터 등)• Provide a means of connecting to external data requests (programming registers, etc.)

ㆍ프린트 헤드 세그먼트 저속 데이터 요청과 접속하는 수단을 제공한다(특성 벡터를 판독하고 펄스 프로파일을 기록하는 것과 같은)Provide means for connecting with print head segment slow data requests (such as reading a characteristic vector and recording a pulse profile)

ㆍ외부 DRAM에 포트레이트(portrait) 및 랜드스케이프(landscape) 태그 구조를 기록하는 수단을 제공한다Provides a means for writing portrait and landscape tag structures to external DRAM

모든 이미지 처리가 전용 하드웨어에 의해 실행되므로, CPU는 화소를 처리하지 않는다. 그 결과, CPU는 매우 간단해진다. 공지된 다양한 종류의 CPU 코어가 적합하다: 필요한 계산 및 제어기능을 충분히 신속하게 처리하는 처리능력을 가지면 어떤 프로세서 코어도 될 수 있다. 적합한 코어의 예는, 약 1㎒에서 동작하는 필립스 8051 마이크로 컨트롤러가다. CPU 코어(35)는 프로그램 ROM 및 소형 프로그램 스크래치 RAM과 연관될 수 있다. CPU는 메모리-맵 I/O를 통해서 PEC 칩내의 다른 유닛과 통신한다. 특정 어드레스 영역은, 각 영역내에서 특정 유닛내의 특정 레지스터에 배치한다. 이것은 직렬 인터페이스(36) 및 병렬 인터페이스(91)를 포함한다. 소형 프로그램 플래쉬 ROM은 PEC 칩에 포함된다. 그 사이즈는 선택된 CPU에 의해 결정되지만, 8KB 이하이다. 마찬가지로, 소형 스크래치 RAM 영역이 PEC 칩에 포함될 수 있다. 프로그램 코드는 이미지를 처리하지 않으므로, 대규모 스크래치 영역을 필요로 하지 않는다. RAM의 사이즈는 선택된 CPU(즉, 스택 구조, 서브루틴 호출 컨벤션, 레지스터 사이즈 등)에 의해 결정되지만, 약 2KB 이하이다.Since all image processing is performed by dedicated hardware, the CPU does not process the pixels. As a result, the CPU becomes very simple. Various known types of CPU cores are suitable: any processor core can be any processor capable of processing the necessary computation and control functions quickly enough. An example of a suitable core is the Philips 8051 microcontroller operating at about 1 MHz. CPU core 35 may be associated with a program ROM and a small program scratch RAM. The CPU communicates with other units in the PEC chip via memory-map I / O. The specific address area is placed in a specific register in a specific unit in each area. This includes a serial interface 36 and a parallel interface 91. Small program flash ROM is included in the PEC chip. The size is determined by the selected CPU, but is 8 KB or less. Similarly, small scratch RAM regions may be included in the PEC chip. The program code does not process the image, so it does not need a large scratch area. The size of the RAM is determined by the selected CPU (i.e. stack structure, subroutine call convention, register size, etc.) but is about 2KB or less.

페이지 폭 프린트 헤드에 기초하여 상술한 세스먼트를 이용하는 PEC 칩은, 최대 도트 해상도(일반적으로 1600dpi)로 흑색을 재생할 수 있지만, 어느 정도의 저해상도로 중간 색조(halftoning)를 이용하는 연속톤 컬러를 재생할 수 있다. 따라서, 페이지 기술은 흑색 2-레벨층 및 연속톤 층으로 분리된다. 흑색 2-레벨층은 연속톤 층상의 합성물로서 규정된다. 흑색 2-레벨층은 화소마다 1 비트의 불투명도(opacity)를 포함하는 비트맵으로 구성된다. 이 흑색층 매트(matte)는, 프린터의 도트 해상도의 정수 요소인 해상도를 가진다. 최대 지원 해상도는 1600dpi, 즉 프린터의 최대 도트 해상도이다. 연속톤 층은 화소마다 32비트의 CMYK 컬러를 포함하는 비트맵으로 구성되고, K는 선택이다. 이 연속톤 이미지는 프린터의 도트해상도의 정수 요소인 해상도를 가진다. 최대 지원 해상도는, 단일 PEC에 대해 12인치에 걸친 320ppi, 즉 프린터 도트 해상도의 1/5이다. 보다 높은 연속톤 해상도를 위해, 각각 출력 페이지의 스트립을 생성하는 다중 PEC가 필요해진다. 또한, 연속톤 해상도는, RIP에서 계산을 간소화하기 위해 일반적으로 흑색 2-레벨 해상도의 정수 요소이다. 그러나, 이것은 필요 조건은 아니다. 흑색 2-레벨층 및 연속톤 층은, 프린터의 내부 메모리에서 효율적인 저장을 위해 모두 압축된 형태로 있다.The PEC chip using the above-described process based on the page width printhead can reproduce black at the maximum dot resolution (typically 1600 dpi), but it can reproduce continuous tone color using halftoning at a certain low resolution. have. Thus, the page technique is divided into a black two-level layer and a continuous tone layer. The black two-level layer is defined as the composite on the continuous tone layer. The black two-level layer consists of a bitmap containing one bit of opacity per pixel. This black layer matte has a resolution that is an integer element of the dot resolution of a printer. The maximum supported resolution is 1600 dpi, the maximum dot resolution of the printer. The continuous tone layer consists of a bitmap containing 32 bits of CMYK color per pixel, with K being optional. This continuous tone image has a resolution that is an integer element of the dot resolution of the printer. The maximum supported resolution is 320 ppi over 12 inches for a single PEC, ie 1/5 of the printer dot resolution. For higher continuous tone resolution, multiple PECs are required, each generating a strip of output pages. In addition, continuous tone resolution is generally an integer component of black two-level resolution to simplify the calculation in RIP. However, this is not a requirement. The black two-level layer and the contone layer are both in compressed form for efficient storage in the printer's internal memory.

도 3에는 프린트 엔진 구조가 도시되었다. 프린트 엔진의 페이지 확대 및 인쇄 파이프라인은, 고속 직렬 인터페이스(27)(표준 IEEE 1394 인터페이스와 같은), 표준 JPEG 디코더(28), 표준 그룹4 팩스 디코더, 주문 하프토너/합성장치 유닛(29), 주문 태그 인코더(30), 라인 로더/포매터 유닛(31) 및 프린트 헤드(33)에 대한 주문 인터페이스(32)로 구성된다. 디코더(28, 88) 및 인코더(30)는 하프토너/합성장치(29)에 버퍼된다. 태그 인코더(30)는 페이지의 용도에 따른 프로토콜에 따라 적외선 태그 또는 태그를 페이지에 설정하며, 태그의 실제 내용은 본 발명의 주제는 아니다.3 shows a print engine structure. The print engine's page magnification and print pipeline includes a high speed serial interface 27 (such as a standard IEEE 1394 interface), a standard JPEG decoder 28, a standard Group 4 fax decoder, a custom halftoner / compositor unit 29, It consists of an order tag encoder 30, a line loader / formatter unit 31 and an order interface 32 to the print head 33. Decoder 28, 88 and encoder 30 are buffered in half toner / synthesis device 29. The tag encoder 30 sets an infrared tag or tag on the page according to a protocol according to the purpose of the page, and the actual content of the tag is not a subject of the present invention.

프린트 엔진은 이중 버퍼 방식으로 작동한다. 한쪽 페이지가 고속 직렬 인터페이스(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채널을 인쇄한다.The print engine works with a double buffer. While one page is loaded into DRAM 34 via DRAM interface 89 and data bus 90 on high speed serial interface 27, the previously loaded page is read from DRAM 34, which leads to a print engine pipeline. To pass. Once the page printing is finished, the immediately loaded page becomes the printed page, and the new page is loaded through the high speed serial interface 27. In the first step, the pipeline expands any JPEG compressed continuous tone (CMYK) layer and any Group 4 fax compressed two-level data streams. The two streams are mats that choose between a black layer (PEC is actually color agnostic, but this two-level layer can be directed to any output ink) and dither matrix for continuous tone dithering (shown below). In parallel with the first step, in the second step, any tag that is later rendered with IR or black ink is encoded. Finally, in the third step, the continuous tone layer is dithered, and the position tag and the two-level spot one layer are synthesized on the synthesized two-level dither layer. The data stream is ideally adjusted to create a smooth transition across the redundant segments in the print head and ideally to compensate for dead nozzles in the print head. In this step, up to six channels of two-level data are generated. Note that all six channels do not exist on the print head. For example, the print head may be just CMY, where K is pushed into the CMY channel and IR is ignored. Optionally, if IR ink is not available (or for testing purposes), the location tag may be printed in K. The synthesized two-level CMYK-IR dot data is buffered and formatted for printing on the print head 33 through a set of line buffers (shown below). Most of these line buffers are ideally stored on the off chip DRAM 34. The final step prints six channels of two-level dot data via the print head interface 32.

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이다.Compression is used in printing systems that use PEC. This not only reduces the memory required for page storage, but also reduces the bandwidth required between the host and the PEC. At 267 ppi, the letter page of continuous tone CMYK data has a size of 25 MB. By using a lossy continuous tone compression algorithm such as JPEG (shown below), the continuous tone image is compressed to a ratio of 10: 1 without significant loss of quality, resulting in a 2.5MB compressed page size. At 800 dpi, a letter page of two-level data has a size of 7 MB. Adherent data such as text is compressed very well. By using a lossless two-level compression algorithm such as Group 4 facsimile (shown below), the 10 point text is compressed at a ratio of about 10: 1, giving a compressed page size of 0.8 MB. Once dithered, a page of CMYK contone image data consists of 114 MB of two-level data. The two-layer compressed page image format described below utilizes the relative strengths of lossy JPEG contone image compression and lossless two-level text compression. The format is compact enough to be effectively stored and simple enough to allow direct real-time magnification during printing. Since the text and images do not overlap normally, the normal worst case page image size is 2.5 MB (i.e. images only) and the normal best case page image size is 0.8 MB (i.e. text only). In the absolute worst case, the page image is 3.3 MB (that is, the text added to the image). Assuming a quarter of the average page containing the image, the average page image size is 1.2 MB.

그룹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페이지).The Group 3 facsimile compression algorithm (ANSI / EIA 538-1988, Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsimile Equipment, August 1988) provides lossless 2-level data for transmission over slow and noisy telephone lines. Can be used to compress. The two-level data displays black text and graphics scanned on a white background, and the algorithm is adjusted for this kind of image (eg for two-level images of midtones, not explicitly adjusted). The 1D group 3 algorithm runs-encodes each scan line and then Huffman-encodes the resulting run length. Run lengths in the range 0-63 are coded with terminating codes. Run lengths ranging from 64 to 2623 are encoded with a make-up code followed by a termination code, each representing a multiple of 64. Run lengths greater than 2623 are coded with a number of makeup codes followed by an exit code. The Huffman table is fixed, but adjusted independently for black and white runs (except for common 1728 and higher makeup codes). If possible, the 2D Group 3 algorithm encodes the scan line as a set of short edge deltas (0, ± 1, ± 2, ± 3) with reference to the previous scan line. Delta symbols (eg, zero delta symbols are 1 bit long) are entropy-encoded. Edges in 2D-encoded lines that cannot be delta encoded are run length encoded and identified by the prefix. 1D and 2D-encoded lines are displayed differently. 1D-encoded lines are generated at regular intervals to ensure that the decoder can recover from the noise of the line with minimal image degradation. 2D group 3 achieves a compression ratio of 6: 1 (Urban, SJ, "Review of standards for electronic imaging for facsimile systems", Journal of Electronic Imaging, Vol. 1 (1), January 1992, 5-21 Page).

그룹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를 이용하여 10:1을 초과하는 일반적인 압축 비율로 손실없이 압축되는 층(일반적으로 320 dopi)을 선택한다.The Group 4 facsimile algorithm (ANSI / EIA 538-1988, Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsimile Equipment, August 1988) loses two-level data for transmission on error-free communication lines. Compress without (i.e., there are exactly no errors in the line, or error correction was done at a low protocol level). Since the Group 4 algorithm is assumed to have no errors in transmission, it is based on the 2D Group 3 algorithm, which is a fundamental variant that 1D encoded lines are no longer generated at regular intervals as a help for error recovery. Group 4 achieves a compression ratio in the range of 20: 1 to 60: 1 for the CCITT set of test images. The design purpose and performance of the Group 4 compression algorithm makes it suitable for the compression algorithm for the two-level layer. However, the Huffman table is adjusted to low scan resolution (100-4000 dpi), making it difficult to encode run lengths exceeding 2623. At 800 dpi, the maximum run length is now 6400. Group 4 decoder cores can be used in PEC, but they cannot handle run lengths beyond the 400dpi facsimile application normally encountered, so modifications are needed. The black layer (typically 1600 dpi) is compressed losslessly using a G4 Fax with a typical compression ratio of more than 10: 1. Dither matrices (typically 320 dpi) match with continuous tone color layers and use G4 Fax to select layers that are losslessly compressed (typically 320 dopi) with a typical compression ratio of more than 10: 1.

그룹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회, 디코드한다.The Group 4 Fax decoder is responsible for decompressing the two-level data. The two-level data is limited to a single spot color (typically black for text and line graphics), and the dither matrix selects the bitmap for use in subsequent dithering of the continuous tone data (uncompressed with a JPEG decoder). The inputs to the G4 Fax decoder are two sides of the two-level data read out from the external DRAM. The output of the G4 Fax decoder is two sides of decompressed two-level data. The decompressed two-level data is sent to the Half Toner / Synthesis Unit (HCU) in the print pipeline for the next step. Two two-level buffers provide a means of transferring two-level data between the G4 Fax decoder and the HCU. Each decompressed two-level layer is output to two line buffers. Each buffer can hold up to 12 inches of dot lines at the maximum resolution expected. By having two line buffers, the other line is recorded by the G4 Fax decoder while one line is read by the HCU. This is important because a single two-level line is generally 1600 dpi or less and therefore must be enlarged in both dot and line dimensions. If the buffering is below the maximum line, the G4 Fax decoder decodes the same line many times, once every 600 dpi dot line.

스폿 컬러1은, 출력 이미지의 단일 컬러면이 고해상도의 도트 데이터가 되도록 설계된다. 연속톤 층은 이미지에 적당한 해상도를 제공하고, 스폿 컬러1은 텍스트 및 라인 그래픽(일반적으로 흑색)과 같은 적용이 목표로 된다. 텍스트 및 라인 그래픽이 사용되는 경우, 일반적인 압축 비율은 10:1을 초과한다. 스폿 컬러1은 최대의 인쇄품질을 위해 1600dpi까지 해상도를 가변한다. 따라서, 2개 라인버퍼의 각각은, 총 2400 바이트이다(12인치×1600dpi = 19,200 비트).Spot color 1 is designed so that a single color plane of the output image becomes high resolution dot data. The continuous tone layer provides the proper resolution for the image, and spot color 1 is targeted for applications such as text and line graphics (usually black). When text and line graphics are used, typical compression ratios exceed 10: 1. Spot color 1 varies the resolution up to 1600 dpi for maximum print quality. Thus, each of the two line buffers is a total of 2400 bytes (12 inches x 1600 dpi = 19,200 bits).

디더 매트릭스 선택 맵의 해상도는, 연속톤 해상도와 이상적으로 정합한다. 당연히, 2개 라인버퍼의 각각은 따라서 480 바이트(3840 비트)이고, 320dpi에서 12인치를 저장할 수 있다. 맵이 연속톤 해상도와 정합하는 경우, 일반적인 압축 비율은 50:1을 초과한다.The resolution of the dither matrix selection map ideally matches the continuous tone resolution. Naturally, each of the two linebuffers is thus 480 bytes (3840 bits) and can store 12 inches at 320 dpi. If the map matches the continuous tone resolution, the typical compression ratio exceeds 50: 1.

ㆍ800dpi 스폿 컬러1 층(일반적으로 흑색)800 dpi spot color 1 layer (normally black)

ㆍ320dpi 디더 매트릭스 선택층ㆍ 320dpi dither matrix selection layer

을 지원하기 위해, 필요한 압축 해제 대역폭은 1페이지/초의 성능(페이지 폭이 12인치 또는 8.5인치인 것에 관계없이)에 대해서 9.05MB/초이고, 프린터의 최대 속도성능(30,000라인/초) 동안 12인치 및 8.5인치의 페이지 폭에 대해서 각각 20MB/초 및 14.2MB/초이다. 압축 해제된 데이터가 라인버퍼로 출력되는 것이 주어지면, G4 Fax 디코더는 한번에 1개씩 각각의 출력물에서 라인을 쉽게 압축 해제할 수 있다.To support this, the decompression bandwidth required is 9.05 MB / sec for 1 page / sec performance (regardless of page width 12 inches or 8.5 inches), and 12 during the printer's maximum speed performance (30,000 lines / sec). 20MB / sec and 14.2MB / sec, respectively, for page widths of inches and 8.5 inches. Given that the decompressed data is output to the line buffer, the G4 Fax decoder can easily decompress the lines in each output one at a time.

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 대역폭에 대해서 그 이상이 되므로 충분하다.The G4 Fax decoder is supplied directly from main memory via the DRAM interface. The amount of compression determines the bandwidth required for external DRAM. G4 Fax is lossless, so complex images impact the amount of data, or bandwidth. In general, the 800 dpi black / text / graphic layer exceeds a compression of 10: 1, so the bandwidth required to print one page / second is 0.78 MB / second. Similarly, a 320dpi dither selection matrix typically compresses above 50: 1, resulting in a bandwidth of 0.025MB / sec. A high speed printing configuration of 320 dpi for the dither selection matrix and 800 dpi for spot color 1 requires bandwidths of 1.72 MB / sec and 0.056 MB sec, respectively. Thus, the total bandwidth of 2MB / sec is more than enough for DRAM bandwidth.

G4 Fax 디코딩 기능성은 G4 Fax 디코더 코어로 실현된다. 다양한 G4 Fax 디코더 코어가 적합하고, 필요한 계산 및 제어 기능을 충분히 고속으로 실행하는 충분한 처리능력을 갖는 어떤 코어일 수 있다. 정상적으로 마주치게 되는 400dpi 팩시밀리 적용을 초과하는 런길이를 처리할 수 있고, 수정이 필요하다.G4 Fax decoding functionality is realized with the G4 Fax decoder core. Various G4 Fax decoder cores are suitable and can be any core with sufficient processing power to execute the necessary computation and control functions at high speed. It can handle run lengths beyond the 400dpi facsimile application it normally encounters, and needs to be modified.

JPEG 압축 알고리즘(ISO/IEC 19018-1:1994, Information technology-Digitalcompression 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이 아닌 주파수 계수는 코드화된 엔트로피이다. 압축 해제는 압축의 반대 과정이다.The JPEG compression algorithm (ISO / IEC 19018-1: 1994, Information technology-Digitalcompression and coding of cintinuous-tone still image: Requirements and guidelines, 1994) losslessly compresses a continuous tone image at a predetermined quality level. It employs fine image degradation with a compression ratio of 5: 1 or less and minor image degradation with a compression ratio of 10: 1 or less (Wallace, GK, "The JPEG Still Picture Compression Srandard", Communication of the ACM, Vol. 34 , No. 4, April 1991, pp. 30-44). In general, JPEG first converts an image into a color space that separates luminance and chrominance into independent color channels. This results in the chroma channel being subsampled without significant loss, since the human visual system is more sensitive to luminance than chroma. After this first step, each color channel is compressed independently. The image is divided into 8x8 pixel blocks. Each block is then transformed into the frequency domain via discrete cosine transform (DCT). This conversion has the effect of concentrating image energy at relatively low frequency coefficients, and the high frequency coefficients are more incompletely quantized. This quantization is the main principle of compression in JPEG. Compression is also achieved by aligning the coefficients with a frequency to maximize the likelihood of adjacent zero coefficients, and then run length-encoding a run of zeros. Finally, run length and nonzero frequency coefficients are coded entropy. Decompression is the reverse process of compression.

CMYK(또는 CMY) 연속톤 층은 평탄한 컬러 JPEG 바이트 스트림으로 압축된다. 휘도/채도 분리가 필요하다고 생각되면, 테이블 공유 또는 채도 서브 샘플링을 위해, CMYK는 YCrCb로 변환되고, Cr 및 Cb는 적절히 서브 샘플된다. JPEG 바이트 스트림이 완성되어 자급 자족된다. 양자화 및 허프만 테이블을 포함하는, 압축 해제에 필요한 모든 데이터를 포함한다.The CMYK (or CMY) contone layer is compressed into a flat color JPEG byte stream. If luminance / saturation separation is deemed necessary, CMYK is converted to YCrCb and Cr and Cb are appropriately subsampled for table sharing or chroma subsampling. The JPEG byte stream is complete and self-sufficient. Contains all data needed for decompression, including quantization and Huffman tables.

JPEG 디코더는 연속톤 데이터층의 온더 플라이(on-the-fly) 압축 해제를 실행할 책임이 있다. JPEG 디코더에 대한 입력은 연속톤 데이터의 4면에 이른다. 이것은, 일반적으로 CMY 연속톤 이미지를 표시하는 3면이 되거나 또는 CMY 연속톤 이미지를 표시하는 4면이 된다. 일반적으로 모든 컬러면이 동일한 해상도가 되더라도, 각각의 컬러면은 다른 해상도가 될 수 있다. 연속톤 층은 외부 DRAM으로부터 판독된다. JPEG 디코더의 출력은, 면(plane)으로 분리된 압축 해제된 연속톤 데이터이다. 압축 해제된 연속톤 이미지는, 다음 단계를 위해 인쇄 파이프라인으로 하프토너/합성장치(HCU)(29)로 전송된다. 4면 연속톤 버퍼는, JPEG 디코더와 HCU(29) 사이에서 연속톤 데이터를 전달하기 위한 수단을 제공한다.The JPEG decoder is responsible for performing on-the-fly decompression of the continuous tone data layer. The input to the JPEG decoder extends to four sides of continuous tone data. This is generally three sides displaying a CMY continuous tone image or four sides displaying a CMY continuous tone image. In general, even if all color planes have the same resolution, each color plane can be of different resolution. The contone layer is read from an external DRAM. The output of the JPEG decoder is decompressed continuous tone data separated by planes. The decompressed contone image is sent to the half toner / compositor (HCU) 29 in the print pipeline for the next step. The four-sided continuous tone buffer provides a means for transferring the continuous tone data between the JPEG decoder and the HCU 29.

압축 해제된 연속톤 데이터의 각각의 컬러면은, 2개 라인버퍼의 세트로 출력된다(아래에 도시). 각각의 라인버퍼는 3840바이트이고, 따라서 320ppi에서 단일 컬러면 화소의 12인치를 유지할 수 있다. 라인버퍼링은 HCU에 의해 하나의 라인버퍼가 판독되게 되는 동안, 다른 라인버퍼가 JPEG 디코더에 의해 기록되게 된다. 이것은, 단일 연속톤 라인이 일반적으로 1600dpi 이하이고, 따라서 도트 및 라인 치수 양쪽에서 확대되어야 하기 때문에 중요하다. 버퍼링이 전체 라인 이하이면, JPEG 디코더는 동일한 라인을 다수회, 출력 600dpi 도트라인마다 1회, 디코드한다. 다양한 해상도가 지원되지만, 해상도와 이용 가능한 대역폭 사이에 상반관계(tradeoff)가 있다. 컬러의 해상도 및 수가 증가하면, 필요한 대역폭도 증가한다. 게다가, PEC칩에 의해 목표로 된 세그먼트의 수도 대역폭 및 가능한 해상도에 영향을 미친다. 연속톤 이미지가 평탄한 포맷으로 처리되므로, 각각의 컬러면은 다른 해상도(예컨대, CMY는 K면보다 높은 해상도일 수 있다)로 저장될 수 있는 것에 주의한다. 최대로 지원되는 연속톤 해상도는 1600ppi이다(프린터의 최대 도트 해상도와 정합한다). 그러나, 길이 12인치인 320ppi의 라인에 대해 충분한 연속톤 화소를 유지하기 위해 라인버퍼 메모리를 출력하는 것만으로 충분하다.Each color plane of decompressed continuous tone data is output in a set of two line buffers (shown below). Each line buffer is 3840 bytes, so it can hold 12 inches of single color plane pixels at 320 ppi. Line buffering causes the other line buffer to be written by the JPEG decoder while one line buffer is read by the HCU. This is important because a single continuous tone line is generally 1600 dpi or less and therefore must be enlarged in both dot and line dimensions. If the buffering is less than or equal to the entire line, the JPEG decoder decodes the same line many times and once for each output 600 dpi dot line. Various resolutions are supported, but there is a tradeoff between resolution and available bandwidth. As the resolution and number of colors increase, so does the required bandwidth. In addition, the number of segments targeted by the PEC chip also affects bandwidth and possible resolutions. Note that since the contone image is processed in a flat format, each color plane may be stored at a different resolution (eg, CMY may be a higher resolution than the K plane). The maximum supported continuous tone resolution is 1600 ppi (matching the printer's maximum dot resolution). However, it is sufficient to output the line buffer memory to maintain enough continuous tone pixels for a 320 ppi line of 12 inches in length.

보다 높은 연속톤 해상도에서 최대 12인치의 출력이 필요해지면, 프린터상의 최종 출력은 여전히 2-레벨로만 되는 것에 주의하지만, 다수의 PEC 칩이 필요하게 된다. 4가지 컬러를 320ppi로 지원함으로써, 필요한 압축 해제 대역폭은 1페이지/초 성능(페이지 폭이 12인치 또는 8.5인치인 것에 관계없이)은 40MB/초이고, 프린터의 최대속도 성능(30,000라인/초) 동안 12인치 및 8.5인치의 페이지 폭에 대해서 각각 80MB/초 및 64MB/초이다.Note that if up to 12 inches of output is required at higher continuous tone resolution, the final output on the printer will still be only two-level, but will require multiple PEC chips. By supporting four colors at 320 ppi, the decompression bandwidth required is one page / second performance (regardless of whether the page width is 12 inches or 8.5 inches) is 40 MB / second, and the printer's maximum speed performance (30,000 lines / second). While page widths of 12 inches and 8.5 inches are 80 MB / sec and 64 MB / sec, respectively.

JPEF 디코더는 DRAM 인터페이스를 통해서 메인 메모리로부터 직접 공급된다. 압축량은 외부 DRAM에 대해 필요한 대역폭을 결정한다. 압축 레벨이 증가하면, 대역폭은 감소하지만, 최종 출력 이미지의 품질도 감소될 수 있다. 단일 컬러면에 대한 DRAM 대역폭은, 압축율을 출력 대역폭에 적용함으로써 쉽게 계산될 수 있다. 예컨대, 320ppi에서 10:1의 압축율을 갖는 단일 컬러면은 1페이지/초를 생성하기 위해 DRAM에 대한 액세스를 1MB/초 필요로 한다. JPEG 기능성은 JPEG 코어에 의해 실현된다. 다양한 JPEG 코어가 적합하고, 필요한 계산 및 제어 기능을 충분히 고속으로 실행하기 위해 충분한 처리능력을 갖는 어떤 코어일 수 있다. 예컨대, BTG X-Match 코어는 압축 해제 속도가 140MByte/초이고, 4개 컬러면의 압축 해제가 연속톤 해상도로 최대 프린터 속도(1600dpi에서 30,000라인/초)에 대해서는 400ppi 및 프린터 속도 1페이지/초에 대해서는 800ppi까지 허용된다.The JPEF decoder is supplied directly from main memory via the DRAM interface. The amount of compression determines the bandwidth required for external DRAM. As the level of compression increases, the bandwidth decreases but the quality of the final output image may also decrease. DRAM bandwidth for a single color plane can be easily calculated by applying the compression rate to the output bandwidth. For example, a single color plane with a compression ratio of 10: 1 at 320 ppi requires 1 MB / second access to the DRAM to produce 1 page / second. JPEG functionality is realized by the JPEG core. Various JPEG cores may be suitable and may be any core having sufficient processing power to execute the necessary calculation and control functions at a sufficiently high speed. For example, the BTG X-Match core has a decompression speed of 140 MBytes / sec, and decompression of four color planes with continuous tone resolution of 400 ppi for maximum printer speed (30,000 lines / sec at 1600 dpi) and printer speed of 1 page / sec. For up to 800 ppi.

코어는 단지 압축 해제를 지원하기 위해 필요하고, 보다 더 보편화된 JPEG 압축/압축 해제 코어에 의해 부과된 필요한 것을 저감하는 것에 주의한다. 코어의 사이즈는 100,000 게이트 이상이 되지 않을 것으로 예상된다. 압축 해제된 데이터가 라인버퍼로 출력되도록 주어지면, JPEG 디코더는 각각의 컬러면에 대해 한번에 1개씩 전체 라인을 쉽게 압축 해제할 수 있고, 따라서 1라인 동안 문맥(context) 전환을 줄이고, JPEG 디코더의 제어를 간소화한다. 4개의 문맥은 유지되어야 하고(각각의 컬러면에 대한 1개의 문맥), 적절한 JPEG 디코딩 파라미터뿐만 아니라 외부 DRAM에서의 현재 어드레스도 포함한다.Note that the core is only needed to support decompression and reduces the need imposed by the more common JPEG compression / decompression core. The size of the core is not expected to be more than 100,000 gates. Given that the decompressed data is output to the linebuffer, the JPEG decoder can easily decompress the entire line one at a time for each color plane, thus reducing context switching during one line, Simplify control Four contexts must be maintained (one context for each color plane) and include the current address in the external DRAM as well as the appropriate JPEG decoding parameters.

도 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이다.The half toner / synthesizer unit (HCU) 29 of FIG. 4 makes the continuous tone (typically CMYK) layer halftoning for the same two-level version, and spots on the appropriate halftone continuous tone layer. 1 Has the ability to synthesize two-level layers. If the printer does not have K ink, the HCU 29 can map K to CMY dots as if dedicated. It also selects between two dither matrices based on sequential pixels and is based on corresponding values in the dither matrix selection map. Inputs to the HCU 29 include an enlarged continuous tone layer (in the JPEG decoder unit) passing through the buffer 37, an enlarged two-level spot1 layer passing through the buffer 38, generally buffer 39. Dither matrix selection bitmap enlarged to the same resolution as the continuous tone layer passing through and tag data of the maximum dot resolution passing through the buffer 40. The HCU 29 uses up to two dither matrices read out from the external DRAM 34. The output from the HCU 29 to the line loader / format unit (LLFU) at 41 is a set of printer resolution two-level image lines on six color planes. Generally, the continuous tone layer is CMYK or CMY and the two-level Spot1 layer is K.

도 5에는 HCU가 보다 더 상세히 도시되었다. 한번 시작되면, HCU는 페이지의 종점 조건을 검출할 때까지 또는 그 제어 레지스터를 통해서 명시적으로 정지될 때까지 진행한다. HCU의 제1 태스크는, 스케일 유닛(43)과 같은 각각의 스케일 유닛에서, 42와 같은 버퍼면에서 수신된 모든 데이터를, 수평 및 수직 양쪽에서 프린터 해상도로 스케일 하는 것이다.5 shows the HCU in more detail. Once started, the HCU proceeds until it detects the end condition of the page or is explicitly stopped through its control register. The first task of the HCU is to scale, at each scale unit, such as scale unit 43, all data received on a buffer side, such as 42, to printer resolution, both horizontally and vertically.

스케일 유닛은, 수평 및 수직 양쪽에서 프린터 해상도로 연속톤 또는 2-레벨 데이터를 스케일링하는 수단을 제공한다. 스케일링은, 데이터 값을 양쪽 치수에서 정수배 복사함으로써 달성된다. 데이터를 스케일 하는 프로세스는, 기술분야에서 숙력된 사람들에게 공지되어 있다.The scale unit provides means for scaling continuous tone or two-level data at printer resolution in both horizontal and vertical. Scaling is accomplished by copying the data values in integer multiples in both dimensions. The process of scaling data is known to those skilled in the art.

2개의 제어 비트, 어드밴스 도트(advance dot) 및 어드밴스 라인(advance line)이 마진유닛(57)에 의해 스케일 유닛(43)에 제공된다. 어드밴스 도트 비트는, 스테이트 머신이 동일한 도트 데이터의 다수의 예를 발생하게 한다(페이지 마진에 대해서 유용하고, 프린트 헤드에서 중복 세그먼트에 대한 도트 데이터를 생성한다). 어드밴스 라인 비트는 특정 도트 라인이 종료될 때, 스테이트 머신이 제어되므로, 프린터 마진에 따라 데이터를 절단한다. 또한, 스케일 유닛에서 필요한 소정 라인의 종점 논리를 생략한다. 스케일 유닛으로의 입력은, 전체의 라인버퍼이다. 라인 복사를 통해 수직 업 스케일링을 달성하도록 라인이 스케일 요소 횟수만큼 사용되고, 각각의 라인내에서, 화소 복사를 통해 수평 업 스케일링을 달성하도록 각각의 값이 스케일 요소 횟수만큼 사용된다. 스케일 요소 횟수만큼 입력라인이 사용되면(어드밴스 라인 비트는 스케일 요소 회수를 설정한다), 어드레스의 입력버퍼 선택비트는 토글된다(이중 버퍼링). 스케일 유닛은 어드레스만을 생성하기 때문에, 스케일 유닛의 논리는 8비트 및 1비트의 경우 동일하다.Two control bits, an advance dot and an advance line are provided to the scale unit 43 by the margin unit 57. Advanced dot bits cause the state machine to generate multiple examples of the same dot data (useful for page margins, and generate dot data for duplicate segments in the printhead). The advance line bit cuts data in accordance with the printer margin, since the state machine is controlled when a particular dot line ends. In addition, the end point logic of a predetermined line required in the scale unit is omitted. The input to the scale unit is the entire line buffer. A line is used the number of scale elements to achieve vertical upscaling through line copying, and within each line, each value is used the number of scale elements to achieve horizontal upscaling through pixel copying. If the input line is used the number of scale elements (advanced line bits set the number of scale elements), the input buffer selection bits of the address are toggled (double buffering). Since the scale unit only generates an address, the logic of the scale unit is the same for 8 bits and 1 bit.

각각의 연속톤 층은 다른 해상도가 될 수 있으므로, 독립적으로 스케일된다. 버퍼(45)에서의 2-레벨 스폿1 층 및 버퍼(46)에서의 디더 매트릭스 선택층도 스케일 될 필요가 있다. 버퍼(47)에서의 2-레벨 태그 데이터는 보정 해상도로 확정되지만, 스케일 될 필요는 없다. 스케일 업 디더 매트릭스 선택비트는, 2개의 디더 매트릭스로부터 단일 8비트 값을 선택하기 위해 디더 매트릭스 액세스 유닛(48)에 의해 사용된다.Each continuous tone layer can be of different resolution and therefore scaled independently. The two-level Spotl layer in buffer 45 and the dither matrix selection layer in buffer 46 also need to be scaled. The two-level tag data in the buffer 47 is determined to be corrected resolution, but does not need to be scaled. The scale up dither matrix select bit is used by the dither matrix access unit 48 to select a single 8-bit value from the two dither matrices.

8비트 값은, 소정의 8비트 연속톤 값과 단순히 비교하는 4개의 비교기(44, 49~51)로 출력된다. 실제 디더 매트릭스의 생성은, 프린트 헤드의 구조에 의해 결정되고, 디더 매트릭스를 생성하는 일반적인 처리는 기술분야에서 숙련된 사람들에게 공지되어 있다. 연속톤 값이 8비트 디더 매트릭스의 값 이상이면 1이 출력이다. 그렇지 않으면, 0이 출력이다. 그 후, 이들 비트는 모두 52~56에서 마진유닛(57)으로부터의 인페이지(inPage) 비트(특정 도트가 페이지의 프린트 가능한 영역내에 있던지 어떤지)와 앤드(AND)된다. HCU의 최종 단계는 합성단계이다. 6개의 출력층마다, 각각 6개의 입력을 갖는 58과 같은 단일 도트 병합유닛이 있다. 각 도트 병합유닛으로부터의 단일 출력비트는, 어떤 또는 모든 입력비트의 조합이다. 이것은,스폿 컬러가 어떤 출력 컬러면(시험용 적외선을 포함)에 위치되게 하고, 흑색을 시안색에 혼합되게 하며, 마젠타색을 황색에 혼합(프린터 헤드에 흑색 잉크가 없으면)되게 하고, 태그 도트 데이터를 가시면에 위치되게 한다. 고착 컬러면도 쉽게 생성될 수 있다. 도트 재편유닛(DRU)(59)은, 주어진 컬러면을 생성된 도트 스트림으로 간주해서, 32비트의 수량으로 편성하여, 출력이 세그먼트 순서 및 세그먼트내의 도트 순서내에 있게 된다. 중복 세그먼트에 대한 도트가 세그먼트 순서대로 생성되지 않는 사실 때문에, 최소 재편이 필요하게 된다.The 8-bit value is output to four comparators 44, 49 to 51 that simply compare with a predetermined 8-bit continuous tone value. The generation of the actual dither matrix is determined by the structure of the print head, and the general process of generating the dither matrix is known to those skilled in the art. If the continuous tone value is greater than or equal to the value of the 8-bit dither matrix, 1 is the output. Otherwise, 0 is output. Then, these bits are all ANDed with the inPage bits from the margin unit 57 (whether or not a specific dot is in the printable area of the page) at 52 to 56. The final stage of the HCU is the synthesis stage. For every six output layers there is a single dot merging unit, such as 58, with six inputs each. The single output bit from each dot merging unit is a combination of some or all of the input bits. This allows spot colors to be placed on any output color plane (including test infrared), blacks mixed with cyan, magentas mixed with yellow (without black ink in the print head), and tag dot data. To be placed on the visible surface. Fixing color faces can also be easily produced. The dot reconstruction unit (DRU) 59 regards a given color plane as a generated dot stream, and organizes it into 32-bit quantities so that the output is within the segment order and the dot order within the segment. Due to the fact that dots for duplicate segments are not generated in segment order, minimal realignment is required.

2개의 제어 비트, 어드밴스 도트 및 어드밴스 라인이 마진유닛(57)에 의해 스케일 유닛에 제공된다. 어드밴스 도트 비트는 스테이트 머신이 동일한 도트 데이터의 다수의 예를 발생하게 한다(페이지 마진에 대해서 유용하고, 프린트 헤드에서 중복 세그먼트에 대한 도트 데이터를 생성한다). 어드밴스 라인 비트는 특정 도트 라인이 종료될 때, 스테이트 머신이 제어되므로, 프린터 마진에 따라 데이터를 절단한다. 또한, 스케일 유닛에서 필요한 소정 라인의 종점 논리를 생략한다.Two control bits, an advanced dot and an advanced line are provided to the scale unit by the margin unit 57. Advanced dot bits cause the state machine to generate multiple instances of the same dot data (useful for page margins, generating dot data for duplicate segments in the printhead). The advance line bit cuts data in accordance with the printer margin, since the state machine is controlled when a particular dot line ends. In addition, the end point logic of a predetermined line required in the scale unit is omitted.

비교기 유닛은 간단한 8비트 "이상(grater-than-or-equal)" 비교기를 포함한다. 8비트 연속톤 값이 8비트 디더 매트릭스 값 이상인지 판정하기 위해 사용된다. 그 자체로는, 비교기 유닛은 2개의 8비트 입력을 받아들여, 단일 1비트 출력을 생성한다.The comparator unit includes a simple eight bit "grater-than-or-equal" comparator. It is used to determine if the 8-bit continuous tone value is greater than or equal to the 8-bit dither matrix value. By itself, the comparator unit accepts two 8-bit inputs, producing a single 1-bit output.

도 6에는 도트 병합유닛의 상세가 도시되었다. 실제 프린트 헤드로 잉크를 출력하기 위해 2-레벨 디더 데이터, 스폿1 컬러 및 태그 데이터를 매핑하는 수단을 제공한다. 각각의 도트 병합유닛은 6개의 1비트 입력을 받아들여, 컬러면에 대한출력을 표시하는 단일 비트 출력을 생성한다. 60에서의 출력비트는 어떤 또는 모든 입력비트의 조합이다. 이것은, 스폿 컬러가 어떤 출력 컬러면(시험용 적외선을 포함)에 위치되게 하고, 흑색을 시안색에 혼합되게 하며, 마젠타색을 황색에 혼합(프린터 헤드에 흑색 잉크가 없으면)되게 하고, 태그 도트 데이터를 가시면에 위치되게 한다. 고착제에 대한 출력은, 모든 입력비트를 단순히 조합함으로써 쉽게 생성될 수 있다. 도트 병합유닛은 6개의 입력비트에 대한 마스크로서 사용되는 6비트 컬러 마스크 레지스터(61)를 포함한다. 각각의 입력비트는 대응하는 컬러 마스크 레지스터 비트와 앤드(AND)되고, 그 후 합성된 6비트가 함께 오어(OR)되어 최종 출력비트를 형성한다.6 shows the details of the dot merging unit. It provides a means of mapping two-level dither data, Spot1 color and tag data to output ink to the actual print head. Each dot merging unit accepts six 1-bit inputs to produce a single bit output that indicates the output for the color plane. The output bit at 60 is a combination of any or all of the input bits. This allows spot colors to be placed on any output color plane (including test infrared), blacks mixed with cyan, magentas mixed with yellow (without black ink on the print head), and tag dot data. To be placed on the visible surface. The output for the fixation agent can be easily generated by simply combining all the input bits. The dot merging unit includes a six bit color mask register 61 which is used as a mask for six input bits. Each input bit is ANDed with the corresponding color mask register bit, and then the six synthesized bits are ORed together to form the final output bit.

도 7에는, 주어진 컬러면을 생성된 도트 스트림으로 간주해서, 32비트의 수량으로 편성하여, 출력이 세그먼트 순서 및 세그먼트내의 도트 순서내에 있게 되는 도트 재편유닛(DRU)이 도시되었다. 중복 세그먼트에 대한 도트가 세그먼트 순서대로 생성되지 않는 사실 때문에, 최소 재편이 필요하게 된다. DRU는 32비트 쉬프트 레지스터, 정규 32비트 레지스터 및 정규 16비트 레지스터를 포함한다. 5비트 카운터는 지금까지 처리된 비트 수를 기억한다. 디더 매트릭스 액세스 유닛(DMAU)으로부터의 도트 어드밴스 신호는 비트가 출력되는 것에 대해서 DRU를 명령하기 위해 사용된다.In Fig. 7, a dot reorganization unit (DRU) is shown in which a given color plane is regarded as a generated dot stream, and is organized in 32-bit quantities so that the output is in the segment order and the dot order in the segment. Due to the fact that dots for duplicate segments are not generated in segment order, minimal realignment is required. The DRU includes a 32 bit shift register, a regular 32 bit register and a regular 16 bit register. The 5-bit counter remembers the number of bits processed so far. The dot advance signal from the dither matrix access unit (DMAU) is used to instruct the DRU for the bit to be output.

도 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개의 출력중에서 선택된다.Register A 62 in Fig. 7 is written every cycle. It contains the most recent 32 dots generated by the dot merging unit (DMU). By means of a WriteEnable signal generated by the DRU state machine 64 via a simple 5-bit counter, a complete 32-bit value is copied into register B 63 every 32 cycles. Sixteen odd bits (bits 1, 3, 5, 7, etc.) from register B 63 are copied to register C 65 using the same WriteEnable pulse. The 32-bit multiplexer 66 is then selected from the following three outputs based on two bits from the state machine.

ㆍ레지스터 B로부터의 완전한 32비트Full 32 bits from register B

ㆍ레지스터 A의 16개의 짝수비트(비트 0,2,4,6 등)와 레지스터 B의 16개의 짝수비트로 이루어지는 32비트 값. 레지스터 A로부터의 16개의 짝수비트는 비트 0~15를 형성하고, 레지스터 B로부터의 16개의 짝수비트는 비트 16~31을 형성한다.A 32-bit value consisting of 16 even bits of register A (bits 0, 2, 4, 6, etc.) and 16 even bits of register B. Sixteen even bits from register A form bits 0-15, and sixteen even bits from register B form bits 16-31.

ㆍ레지스터 B의 16개의 홀수비트(비트 1,3,5,7 등)와 레지스터 C의 16개의 홀수비트로 이루어지는 32비트 값. 레지스터 C의 비트는 비트 0~15를 형성하고, 레지스터 B로부터의 홀수비트는 비트 16~31을 형성한다.• A 32-bit value consisting of 16 odd bits of register B (bits 1, 3, 5, 7, etc.) and 16 odd bits of register C. The bits in register C form bits 0-15, and the odd bits from register B form bits 16-31.

DRU용 스테이트 머신이 표 1에 도시된다. 그것은, 0 상태에서 시작한다. 그것은, 32싸이클마다 변한다. 32싸이클 동안 단일 노오버랩(noOverlap) 비트는 32싸이클에 대한 모든 도트 어드밴스 비트의 앤드(AND)를 수집한다(NoOverlap = 싸이클 0에 대한 dot advance, 그리고 NoOverlap = 싸이클 1~31에 대한 NoOverlap AND dot advance)A state machine for the DRU is shown in Table 1. It starts in the 0 state. It changes every 32 cycles. For 32 cycles, a single noOverlap bit collects the AND of all dot advance bits for 32 cycles (NoOverlap = dot advance for cycle 0, and NoOverlap = NoOverlap AND dot advance for cycles 1 to 31). )

DRU용 스테이트 머신State machine for DRU 상태condition NoOverlapNooverlap 출력Print 출력 유효성Output validity 주해exegesis 다음 상태Next status 00 XX BB 00 시동 상태Startup status 1One 1One 1One BB 1One 정규 비중복Regular nonredundant 1One 1One 00 BB 1One A는 제1 중복을 포함A contains the first duplicate 22 22 XX 짝수 A,짝수 BEven A, Even B 1One A는 제2 중복을 포함B는 제1 중복을 포함A contains the second redundancy B contains the first redundancy 33 33 XX C, 홀수 BC, odd B 1One C는 제1 중복을 포함B는 제2 중복을 포함C contains the first redundancy B contains the second redundancy 1One

도 5의 마진유닛(MU)(57)은, 디더 매트릭스 액세스 유닛(DMAU)(48)로부터의 어드밴스 도트 및 어드밴스 라인 신호를 현재 페이지의 페이지 마진상에 기초한 일반 제어신호로 변환한다. 또한, 페이지 종점 조건을 생성한다. MU는 페이지를 횡단하는 도트 및 라인을 계산한다. 페이지의 시작시 양쪽은 모두 0으로 설정된다. MU가 DMAU로부터 도트 어드밴스 신호를 수신할 때마다 도트 카운터는 1씩 진행된다. MU가 DMAU로부터 라인 어드밴스 신호를 수신하는 경우, 라인 카운터는 증가되고, 도트 카운터는 0으로 재설정된다. 매싸이클, 현재의 라인 및 도트 값이 페이지의 마진과 비교되고, 이들 마진에 기초하여 적절한 출력 도트 어드밴스, 라인 어드밴스 및 마진 범위내 신호가 주어진다. DMAU는 HCU에 필요한 실질적인 메모리만을 포함한다.The margin unit (MU) 57 in FIG. 5 converts the advanced dot and advanced line signals from the dither matrix access unit (DMAU) 48 into a general control signal based on the page margin of the current page. It also creates a page endpoint condition. The MU calculates the dots and lines that cross the page. Both are set to zero at the beginning of the page. Each time the MU receives a dot advance signal from the DMAU, the dot counter advances by one. When the MU receives a line advance signal from the DMAU, the line counter is incremented and the dot counter is reset to zero. The cycle, current line and dot values are compared to the margin of the page, and based on these margins, a signal within the appropriate output dot advance, line advance and margin ranges is given. DMAU contains only the actual memory required for the HCU.

도 8에는 라인 로더/포맷 유닛(LLUF)이 도시되었다. 그것은, HCU로부터 도트 정보를 수신하고, 주어진 인쇄라인에 대한 도트를 적절한 버퍼 스토리지에 적재하여(칩상에 어느 정도 및 외부 DRAM(34)에 어느 정도), 프린트 헤드에 필요한 순서로 포맷한다. 그 외부 인터페이스에 관한 LLFU의 하이레벨 블록도가 도 9에 도시되었다. LLFU로의 입력(67)은, HCU에 의해 모두 생성된 6개의 32비트 워드 및 하나의데이터 유효(DataValid)비트의 세트이다. 출력(68)은 6가지 컬러의 최대 15 프린트 헤드 세그먼트를 표시하는 90비트의 세트이다. 모든 출력비트가 유효하지 않을 수 있고, 실제로 얼마나 많은 컬러가 프린트 헤드에 사용되는가에 따라 결정된다.8 shows a line loader / format unit (LLUF). It receives the dot information from the HCU, loads the dots for a given print line into the appropriate buffer storage (some on chip and some on external DRAM 34) and formats them in the order required for the print head. A high level block diagram of the LLFU for its external interface is shown in FIG. Input 67 to the LLFU is a set of six 32-bit words and one DataValid bit, all generated by the HCU. The output 68 is a set of 90 bits representing up to 15 print head segments in six colors. Not all output bits may be valid and are actually determined by how many colors are used for the print head.

2개 오프셋 열의 노즐에서, 상술한 프린트 헤드상에서 분사 노즐의 실제 위치는, 동일한 컬러의 홀수 및 짝수 도트가 2개의 다른 라인에 있는 것을 의미한다. 짝수 도트는 L에 있는 것이고, 홀수 도트는 라인 L-2에 있는 것이다. 게다가, 하나의 컬러 도트와 다른 컬러 도트의 사이에는 다수의 라인이 있다. 동일한 도트 위치에서 6개 컬러면이 HCU에 의해 한번에 계산되므로, 동일한 도트가 적절한 컬러 노즐 아래에 위치될 때까지, 각 컬러면에 대해 도트 데이터를 지연시킬 필요가 있다.In the nozzles of two offset rows, the actual position of the jet nozzle on the print head described above means that the odd and even dots of the same color are on two different lines. The even dot is at L and the odd dot is at line L-2. In addition, there are a number of lines between one color dot and another color dot. Since six color planes are calculated at one time by the HCU at the same dot position, it is necessary to delay the dot data for each color plane until the same dot is located under an appropriate color nozzle.

각 버퍼라인의 사이즈는 프린트 헤드의 폭에 의해 결정된다. 단일 PEC는 15개의 프린트 헤드 세그먼트까지 도트를 생성하므로, 단일 홀수 또는 짝수 버퍼라인은 총 9600비트(1200바이트)에 대해 640 도트의 15 세트이다. 예컨대, 컬러 6개의 홀수 도트에 필요한 버퍼는 합계가 거의 45KByte 이다.The size of each buffer line is determined by the width of the print head. A single PEC produces dots up to 15 print head segments, so a single odd or even buffer line is 15 sets of 640 dots for a total of 9600 bits (1200 bytes). For example, the buffers required for odd numbers of six colors are approximately 45 KBytes in total.

제조기술이 가능한 경우, 필요한 버퍼의 전체 세트가 PEC 칩상에 설치된다. 그렇지 않으면, 컬러 2의 전방 버퍼가 외부 DRAM에 저장된다. 이것은, 차후에 컬러면 사이의 거리가 변화되어도, PEC를 유효하게 할 수 있다. 모든 것이 특정 도트 라인에 따라 인쇄되므로(추가 라인버퍼가 필요하지 않다), 컬러 1의 짝수 도트를 PEC상에 유지하는 것은 사소하다. 게다가, 컬러 1 홀수 도트를 버퍼링하는데 필요한 2개의 하프라인은 실질적인 DRAM 대역폭을 절감한다.If manufacturing techniques are available, the full set of necessary buffers is installed on the PEC chip. Otherwise, the front buffer of color 2 is stored in the external DRAM. This can make the PEC effective even if the distance between the color planes later changes. Since everything is printed according to a particular dot line (no additional line buffer is needed), it is trivial to keep even dots of color 1 on the PEC. In addition, the two halflines needed to buffer color one odd dots save substantial DRAM bandwidth.

클린 에지를 갖기 위해, 페이지가 인쇄되기 전에 다양한 라인버퍼(온칩 및DRAM)에는 모든 0이 미리 적재될 필요가 있다. 페이지 종점이 HCU에 의해 자동적으로 생성되고 나서 클린 에지를 갖는다.To have clean edges, all zeros need to be preloaded in various line buffers (on-chip and DRAM) before the page is printed. The page endpoint is automatically generated by the HCU and then has a clean edge.

도 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이다.FIG. 10 shows a block diagram for color N OESplit (see Oesplit 70 in FIG. 9), and in FIG. 9 a block diagram for each of the two buffers E and F 71, 72 is shown in FIGS. 10 and 11. Will be on. The buffer EF is a double buffer structure for transferring data to the print head interface (PHI) 32 of FIG. Thus, buffers E and F have the same structure. During processing of the dot line, it is written into one of the two buffers and read from the other. Upon receipt of the line-sync signal from the PHI, the two buffers are logically swapped. Both buffers E and F consist of six sub buffers, and as shown in Fig. 11, one sub buffer per color and one color sub buffer are numbered 73. Each sub buffer is 2400 bytes in size. For example, 1280 dots per segment is sufficient to hold 15 segments. The memory is accessed 32 bits at a time, and there are 600 addresses for each subbuffer (requires 10 bits of address). All even dots are placed in preference to odd dots in the sub buffer of each color. If there is any free space (to print fewer than 15 segments), it is placed at the end of the subbuffer of each color. The amount of memory actually used in each subbuffer is directly related to the number of segments actually addressed by the PEC. For a 15-segment print head, there are 1200 bytes of odd dots without empty space followed by 1200 bytes of even dots. Advantageously the number of subbuffers used is directly related to the number of colors used in the print head. The maximum number of colors supported is six.

각 버퍼 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)이 공유된다.The addressing of the decoding circuit of each buffer E and F is a given cycle, and a single 32-bit access can be made to all six subbuffers that are read in all six subbuffers or written to one of six subbuffers. Only one bit of the 32 bits read from each color buffer is selected for a total of six output bits. The process is shown in FIG. A 15-bit address uses a 10-bit address to select 32 bits to read a particular bit, and a 5-bit address selects 1 bit from 32 bits. Since all color subbuffers share this logic, a single 15-bit address outputs a total of six bits, one bit per color. Each subbuffer 73-78 has a line WriteEnable such that a single 32-bit value is written to a particular color buffer within a given cycle. Each recordable signal is generated by ANDing a single recordable input to the decoded form of ColorSelect. Since only one buffer actually writes data in, 32 bits of data In are shared on line 79.

버퍼 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비트)가 생성되는 것에 주의한다.Address generation for reading from buffers E and F is simple. Generates 1 bit per cycle, used to get 6 bits representing 1 bit per color for a particular segment. By adding 640 to the current bit address, it proceeds to the equivalent dot of the next segment. Add odd 640 (not 1280) because odd and even dots are separated in the buffer. This number segment (NumSegment) is executed to recover the data representing even dots and transfer these bits to PHI. If NumSegment = 15, the number of bits is 90 (15 x 6 bits). Thereafter, the process is repeated for odd dots. This entire even / odd bit generation process is repeated 640 times with increasing start address each time. All dot values are thus transferred to the PHI in the required order by the print head in the 640 × 2 × NumSegment cycle. If NumSegment = 15, the number of cycles is 19,200 cycles. Note that 6 bits (1 bit from each color buffer) are generated for a given read cycle, regardless of the number of colors actually used in the print head.

게다가, 도 9의 전달(Transfer) 레지스터(90)에 90비트를 기록하기 위한 TWriteEnable 제어신호를 생성한다. LLFU가 PHI에 앞서 시작되므로, PHI로부터의 어드밴스 펄스에 앞서 제1 값을 전달한다. 또한, 제1 어드밴스 펄스를 위한 준비로 다음 값도 생성한다. 해결책은 NumSegment싸이클 후 전달(Transfer) 레지스터로 제1 값을 전달하는 것이고, 그때 숫자 세그먼트(NumSegment)싸이클을 더 늦게 지연시키고, 다음 숫자 세그먼트(NumSegment)싸이클 그룹을 시작하기 위해 어드밴스 펄스를 대기한다. 제1 어드밴스 펄스가 도달하면, LLFU는 PHI에 동기된다.In addition, a TWriteEnable control signal for writing 90 bits to the Transfer register 90 of FIG. 9 is generated. Since LLFU begins before PHI, it delivers a first value prior to the advance pulse from PHI. In addition, the following values are also generated in preparation for the first advance pulse. The solution is to transfer the first value to the Transfer register after the NumSegment cycle, then delay the NumSegment cycle later, and wait for the advance pulse to start the next NumSegment cycle group. When the first advance pulse arrives, the LLFU is synchronized to PHI.

단일 도트라인에 대한 판독 프로세스는, 다음의 의사코드(procedure)에 도시되었다:The reading process for a single dot line is shown in the following pseudocode:

DoneFirst = FALSEDoneFirst = FALSE

WantToXfer = FALSEWantToXfer = FALSE

For DotInSegment0 = 0 to 1279For DotInSegment 0 = 0 to 1279

If(DotInSegment0:bit0 == 0)If (DotInSegment0: bit0 == 0)

CurrAdr = DotInSegment0 (high bits) (puts in range 0 to 639)CurrAdr = DotInSegment0 (high bits) (puts in range 0 to 639)

EndIfEndif

XfersRemaining = NumSegmentsXfersRemaining = NumSegments

DoDo

WantToXfer = (XfersRemaining == 0)WantToXfer = (XfersRemaining == 0)

TWriteEnable = (WantToXfer AND NOT DoneFirst) OR PHI:ADVANCETWriteEnable = (WantToXfer AND NOT DoneFirst) OR PHI: ADVANCE

DoneFirst = DoneFirst OR TWriteEnableDoneFirst = DoneFirst OR TWriteEnable

Stall = WantToXfer AND (NOT TWriteEnable)Stall = WantToXfer AND (NOT TWriteEnable)

SWriteEnable = NOT(Stall)SWriteEnable = NOT (Stall)

If(SWriteEnable)If (SWriteEnable)

Shift Register = Fetch 6 bits from EFSense[ReadBuffer]:CurrAdrShift Register = Fetch 6 bits from EFSense [ReadBuffer]: CurrAdr

CurrAdr = CurrAdr + 640CurrAdr = CurrAdr + 640

XfersRemaining = XfersRemaining - 1XfersRemaining = XfersRemaining-1

EndIfEndif

Until (TWriteEnable)Until (TWriteEnable)

EndForEndfor

Wait until BufferEF Write process has finishedWait until BufferEF Write process has finished

EFSense = NOT (EFSense)EFSense = NOT (EFSense)

판독 프로세스에서는 버퍼 E 또는 F로부터 PHI로 전달하는 동안, 기록 프로세스에서는 다른 버퍼에서 다음 도트라인을 주비한다.While the read process transfers from buffer E or F to PHI, the write process prepares the next dot line in another buffer.

버퍼 E 또는 F에 기록되는 데이터는, HCU에 의해 생성된 컬러 1 데이터 및 버퍼 D로부터의 컬러 2-6 데이터(DRAM에서 공급된)이다. 컬러 1 데이터는, HCU의출력유효성(Output Valid) 플래그가 설정될 때마다 버퍼 EF에 기록되고, 컬러 2-6 데이터는 다른 기간동안 레지스터 C로부터 기록된다.The data recorded in the buffer E or F are the color 1 data generated by the HCU and the color 2-6 data (supplied from the DRAM) from the buffer D. Color 1 data is written to buffer EF each time the Output Valid flag of the HCU is set, and color 2-6 data is written from register C for another period.

도 9의 버퍼 OE1(81)는 컬러 1에 대해서 연속하는 32 도트의 단일 HCU 생성세트를 유지하기 위해 사용된 32비트 레지스터이다. 페이지상에서 도트가 연속하는 동안, 홀수 및 짝수 도트는 다른 시간에 인쇄된다.Buffer OE 1 81 in FIG. 9 is a 32-bit register used to hold a single HCU generation set of 32 consecutive dots for color one. While the dots are continuous on the page, odd and even dots are printed at different times.

버퍼 AB(82)는, 컬러 1에 대한 홀수 데이터를 2도트라인으로 지연시키기 위한 이중버퍼 구조이다. 따라서, 버퍼 A 및 B는 똑같은 구조를 갖는다. 도트 라인을 처리하는 동안, 2개의 버퍼중 한쪽에서 판독되고, 기록된다. 전체 도트라인이 처리된 후 2개의 버퍼는 논리적으로 교환된다. 단일 비트 플래그 ABSense는, 2개의 버퍼중 판독되고 기록되는 버퍼를 결정한다.The buffer AB 82 is a double buffer structure for delaying odd data for color 1 to 2 dot lines. Thus, buffers A and B have the same structure. During processing of the dot line, one of the two buffers is read and written. After the entire dotline has been processed, the two buffers are logically swapped. The single bit flag ABSense determines which of the two buffers is read and written.

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에 기록한다.The HCU provides 32 bits of color 1 data whenever the output validity control flag, which is every 32 cycles after the first flag is sent on the line, is set. The 32 bits define a continuous set of 32 dots-16 even dots (bits 0, 2, 4, etc.) and odd dots (bits 1, 3, 5, etc.) for a single dot line. The output validity control flag is used as WriteEnable control for the OE 1 register 81. HCU data is processed for every two Output Valid signals. The 16 even bits of the HCU color 1 data are combined with the 16 even bits of the register OE 1 to produce 32 bits of even color 1 data. Similarly, 16 odd bits of HCU color 1 data are combined with 16 odd bits of register OE 1 to produce 32 bits of odd color 1 data. Upon receipt of two groups of first output validity signals, buffer AB is read to transfer odd data to color 1 in buffer EF, 73 in FIG. Upon receipt of the two groups of second output validity signals, 32 bits of odd data are written at the same location in the previously read buffer AB, and 32 bits of even data are written to color 1 in the buffer EF.

HCU는 출력 유효성 제어플래그가 설정될 때마다 컬러면당 32비트의 데이터를 제공한다. 이것은 어떤 시동 시간 동안을 제외하고 32싸이클마다 생긴다. 32비트는 단일 도트라인에 대해 32 도트의 연속 세트 - 16 짝수 도트(비트 0,2,4 등) 및 홀수 도트(비트 1,3,5 등)를 규정한다.The HCU provides 32 bits of data per color plane whenever the output validity control flag is set. This happens every 32 cycles except during any startup time. The 32 bits define a continuous set of 32 dots-16 even dots (bits 0, 2, 4, etc.) and odd dots (bits 1, 3, 5, etc.) for a single dot line.

컬러 1에 대한 단일 32비트 값을 저장하기 위해 버퍼 OE1(도 10에서 83)가 사용되는 동안, 컬러 2~6에 대한 단일 32비트 값을 저장하기 위해 버퍼 OE2~OE6가 각각 사용된다. 컬러 1에 대한 데이터가 64싸이클마다(2개의 출력 유효성 플래그마다 1회) 컬러 1 홀수 도트를 표시하는 32비트 및 컬러 1 짝수 도트를 표시하는 32비트로 분리되는 것과 마찬가지로, 나머지 컬러면도 짝수 및 홀수 도트로 분리된다.While buffer OE 1 (83 in Figure 10) is used to store a single 32-bit value for color 1, buffers OE 2 through OE 6 are each used to store a single 32-bit value for colors 2-6. . Just as the data for color 1 is separated into 32 bits representing color 1 odd dots and 32 bits representing color 1 even dots, every 64 cycles (once every 2 output validity flags), the remaining color planes are even and odd dots. To be separated.

그러나, 버퍼 EF에 직접 기록되는 대신에, 도트 데이터는 다수의 라인에 의해 지연되어, 버퍼 CD(도 9에서 84)를 통해서 DRAM으로 기록된다. 주어진 라인에 대한 도트가 DRAM으로 기록되는 동안, 이전 라인에 대한 도트는 DRAM에서 판독되어 버퍼 EF(71,72)에 기록된다. 이 프로세스는, 컬러 1을 버퍼 EF에 기록하는 프로세스 사이에 삽입되게 된다.However, instead of writing directly to the buffer EF, the dot data is delayed by a number of lines and written to the DRAM through the buffer CD (84 in FIG. 9). While the dot for a given line is written to the DRAM, the dot for the previous line is read from the DRAM and written to the buffer EF 71,72. This process is inserted between the processes of writing the color 1 to the buffer 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으로 기록될 수 있다. 프로세스는 다음의 의사코드에 도시되었다:Each time an output validity flag is received from the HCU on line 85 in FIG. 10, 32 bits of color N data are written to buffer OE N 83. For each second output validity flag, a combined 64-bit value is written to color buffer N 86. This occurs in parallel for all color planes 2-6. Color buffer N 86 contains 40 sets of 64-bits (320 bytes) so that dots for two complete segments can be stored. This causes the complete segment generation count (20 x 64 = 1280 cycles) to be written to the DRAM for both previous segment data (both odd and even dots). Generation of a write address is simple. The ColorNWriteEnable signal on line 87 is given per second output validity flag. The address starts at 0 and increments every second output validity flag until 39. Instead of proceeding to 40, the address is reset to zero, providing a double buffering configuration. This works as long as no read occurs during the output validity flag, and previous segment data can be written to the DRAM in time to generate single segment data. The process is shown in the following pseudo code:

adr = 0adr = 0

firstEncountered = 0firstEncountered = 0

While (NOT AdvanceLine)While (NOT AdvanceLine)

If(HCU_OutputValid) AND (firstEncountered))If (HCU_OutputValid) AND (firstEncountered))

ColorNWriteEnable = TRUEColorNWriteEnable = TRUE

ColorNAdr = adrColorNAdr = adr

If(adr == 39)If (adr == 39)

adr = 0adr = 0

ElseElse

adr = adr + 1adr = adr + 1

EndIfEndif

ElseElse

ColorNWriteEnable = FALSEColorNWriteEnable = FALSE

EndIfEndif

If(HCU_OutputValid)If (HCU_OutputValid)

firstEncountered = NOT(firstEncountered)firstEncountered = NOT (firstEncountered)

EndIfEndif

EndWhileEndWhile

DRAM 액세스(판독 및 기록 모두), 버퍼 EF 액세스 및 컬러 1 발생을 위한 타이밍과 연관되므로, 판독용 어드레스 발생은 트리커(trickier)이다. 아래에 더 상세히 설명된다.As it relates to the timing for DRAM access (both read and write), buffer EF access, and color 1 occurrence, the address generation for reads is a tricker. It is described in more detail below.

버퍼 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에서 현재 라인의 각각에 대한 어드레스가 다음 라인의 프로세스를 시작하기 위해 갱신된다.Address generation for buffers C, D, E, F and color N are all related to the timing of DRAM access and do not interfere with color 1 processing for buffers E and F. The basic principle is that data for a single segment of color N (odd or even dots) is transferred from the DRAM to the buffer EF via the buffer CD. When data is read from the DRAM, these dots are compensated based on the value of ColorBufferN. This was done for each color in odd and even dots. After the complete segment value of the dot has accumulated (20 sets of 64 cycles), the process starts again. If data for all segments in a given print line is delivered to the DRAM, then the current address is advanced for the color DRAM buffer so that the appropriate number of lines until the specific data for the color line is read from the DRAM. Thereafter, DRAM operates in the form of a FIFO. Thus, while copying color N (same odd / even sense) to buffer C, color N (odd or even) is read from DRAM to buffer D. Copying data into buffer C takes 20 or 21 cycles depending on whether the output validity flag will occur during 20 transfers. When both tasks are terminated (usually DRAM access becomes a slower task), the second part of the process begins. The data in buffer C is written to the DRAM (the same position is read directly), and the data in buffer D is copied to buffer EF (again, color 1 data is transferred, so that color N data is not generated while the output validity flag is set). Is not passed to the buffer EF). When both tasks end, the same processing occurs for each of the other senses of color N and the remaining colors. The entire duplex process occurs 10 times. Thereafter, the address for each of the current lines in the DRAM is updated to begin the process of the next line.

대역폭의 관점에서, 도트 데이터 버퍼에 대한 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 비트 액세스의 장점을 가진다.In terms of bandwidth, DRAM access to the dot data buffer consumes most of all DRAM access from the PEC. For each print line, the entire dot line is read for color 2-6 and the entire dot line is written for color 2-6. For up to 15 segments, this is equivalent to 2x5x15x1280 bits = 192,000 (24,000 bytes) / print line. For a high speed printing system (30,000 lines / second) this is equivalent to 687 MB / second. The bandwidth required for printing one page / second is 312 MB / second. Because the bandwidth is so high, the addresses of the various halflines for each color in DRAM are optimized for the type of memory used. For example, in an RDRAM memory system, the first first half-line buffer is adjusted to a 1 KByte boundary for each color to maximize page hits on DRAM access. As the various segments are processed, if the start of the next segment is to be adjusted to 960 bytes within a 1 KByte page, then 640 bit access needs to be guaranteed to reach 2 pages. Thus, the variable DRAMMaxVal is used to check this case, and if generated, the address for the page aligned next half line buffer is rounded off. Thus, the waste is only 64 bytes per 13 segments, which has the advantage of full 640 bit access within a single page.

어드레스 생성 프로세스는, 20×32비트 기록에 뒤따르는 20×32비트 판독으로 이루어지는 10 세트의 NumSegment 값으로서 간주될 수 있고, 다음의 의사코드로서 도시될 수 있다:The address generation process can be considered as 10 sets of NumSegment values consisting of 20x32-bit reads followed by 20x32-bit writes and can be shown as the following pseudocode:

EFStartAdr = 0EFStartAdr = 0

Do NumSegments times:Do NumSegments times:

For CurrColor = 0 to MaxHalfColorsFor CurrColor = 0 to MaxHalfColors

DRAMStartAddress = ColorCurrAdr[CurrColor]DRAMStartAddress = ColorCurrAdr [CurrColor]

While reading 640 bits from DRAMStartAddress into D(>= 20 cycles)While reading 640 bits from DRAMStartAddress into D (> = 20 cycles)

ColorNAdr = 0ColorNAdr = 0

While(ColorNAdr != 20)While (ColorNAdr! = 20)

If(NOT HCU_OutputValid)If (NOT HCU_OutputValid)

Transfer ColorNBuffer[ColorNAdr|CurrColor_bit0] toTransfer ColorNBuffer [ColorNAdr | CurrColor_bit0] to

C[ColorNAdr]C [ColorNAdr]

ColorNAdr = ColorNAdr + 1ColorNAdr = ColorNAdr + 1

EndIfEndif

EndWhileEndWhile

EndWhile - wait until read has finishedEndWhile-wait until read has finished

While writing 640 bits from C into DRAMStartAddress (>=20 cycles)While writing 640 bits from C into DRAMStartAddress (> = 20 cycles)

ColorNAdr = 0ColorNAdr = 0

EFAdr = EFStartAdrEFAdr = EFStartAdr

While(ColorNAdr != 20)While (ColorNAdr! = 20)

If(NOT HCU_OutputValid)If (NOT HCU_OutputValid)

Transfer D[ColorNAdr] to EF[CurrColor|EFAdr]Transfer D [ColorNAdr] to EF [CurrColor | EFAdr]

If((ColorNAdr == 19) AND (CurrColor == NumHalfColors))If ((ColorNAdr == 19) AND (CurrColor == NumHalfColors))

EFStartAdr = EFAdr + 1EFStartAdr = EFAdr + 1

ElseElse

EFAdr = EFAdr + 1EFAdr = EFAdr + 1

EndIfEndif

ColorNAdr = ColorNAdr + 1ColorNAdr = ColorNAdr + 1

EndIfEndif

EndWhileEndWhile

EndWhile - wait until write has finishedEndWhile-wait until write has finished

If(DRAMStartAddress == DRAMMaxVal)If (DRAMStartAddress == DRAMMaxVal)

ColorCurrAdr[currColor] = round up DRAMStartAddress to next 1KByte pageColorCurrAdr [currColor] = round up DRAMStartAddress to next 1KByte page

ElseElse

ColorCurrAdr[currColor] = DRAMStartAddress + 640 bitsColorCurrAdr [currColor] = DRAMStartAddress + 640 bits

EndIfEndif

If(Segment == maxSegments)If (Segment == maxSegments)

If(ColorCurrRow[CurrColor] == ColorMaxRow[CurrColor])If (ColorCurrRow [CurrColor] == ColorMaxRow [CurrColor])

ColorCurrRow[currColor] = ColorStartRow[currColor]ColorCurrRow [currColor] = ColorStartRow [currColor]

ColorCurrAdr[currColor] = ColorStartAdr[currColor]ColorCurrAdr [currColor] = ColorStartAdr [currColor]

ElseElse

ColorStartRow[currColor] = ColorCurrRow[currColor] + 1ColorStartRow [currColor] = ColorCurrRow [currColor] + 1

EndIfEndif

EndIfEndif

EndForEndfor

EndDoEnddo

Wait until next Advance signal from PHIWait until next Advance signal from PHI

MaxHalfColors 레지스터는 컬러 1을 포함하지 않지만, 개별적으로 처리된 홀수 및 짝수 컬러의 관점에서 컬러의 수보다 1개 이상 적다는 것에 주의한다. 예컨대, 표준 6컬러 인쇄시스템의 관점에서, 10(홀수 및 짝수에서의 컬러 2-6)이 있으면, MaxHalfColors는 9로 설정된다.Note that the MaxHalfColors register does not contain color 1, but is at least one less than the number of colors in terms of odd and even colors processed individually. For example, in terms of a standard six-color printing system, if there are 10 (colors 2-6 at odd and even), MaxHalfColors is set to 9.

LLFU는, PHI에 대해 제1 데이터의 180비트를 준비하기 위해, 2 NumSegments 싸이클을 필요로 한다. 따라서, 프린트 헤드가 시작되고, 제1 라인동기(LineSync) 펄스는 LLFU가 시작된 후 이 시기에 생긴다. 이것에 의해 초기의 Tansfer 값이 유효하게 되고, 다음 90비트 값이 Tranfer 레지스터에 적재되도록 준비된다.The LLFU requires 2 NumSegments cycles to prepare 180 bits of first data for PHI. Thus, the print head starts, and a first LineSync pulse occurs at this time after the LLFU starts. This makes the initial Tansfer value valid and prepares the next 90-bit value to be loaded into the Tranfer register.

프린트 헤드 인터페이스(PHI)는, 프로세서가 프린트 헤드에 인쇄되는 도트를 적재하고, 실제 도트 인쇄처리를 제어하는 수단이다. LLFU에서 입력되어 프린트 헤드 그 자체로 데이터를 출력한다. PHI는 다양한 프린트 헤드 길이 및 포맷을 취급할 수 있다. PHI의 내부 구성은 최대 6 컬러, 트랜스퍼당 8 세크먼트 및 최대 2 세그먼트 그룹을 허용한다. 이것은 완전한 번짐(bleed)으로 A4/레터(Letter)를 인쇄할 수 있는 15 세그먼트(8.5인치) 프린터에 충분한다.The print head interface PHI is a means for the processor to load the dots to be printed on the print head and to control the actual dot print processing. It is input from LLFU and outputs data to the print head itself. PHI can handle a variety of print head lengths and formats. The internal configuration of the PHI allows up to 6 colors, 8 segments per transfer and up to 2 segment groups. This is sufficient for a 15-segment (8.5-inch) printer capable of printing A4 / Letter with complete bleed.

명세서 전반에 걸쳐, 어떤 다른 실시예 또는 특징의 구체적인 집합을 한정하는 일 없이 본 발명의 바람직한 실시예를 기술하도록 의도되었다. 기술분야에서 숙력된 사람들은, 본 발명의 범위내에 들어가는 소정 실시예의 변형을 실현할 수 있다.Throughout the specification, it is intended to describe preferred embodiments of the present invention without limiting any other embodiment or specific set of features. Those skilled in the art can realize variations of certain embodiments that fall within the scope of the invention.

Claims (14)

압축된 페이지 데이터를 수신하는 인터페이스와;An interface for receiving compressed page data; 상기 수신되는 압축된 페이지 데이터내의 압축된 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;A continuous tone image decoder for decoding a compressed continuous tone image plane in the received compressed page data; 상기 수신되는 압축된 페이지 데이터내의 압축된 2-레벨 이미지면을 디코드하는 2-레벨 디코더와;A two-level decoder for decoding a compressed two-level image plane in the received compressed page data; 상기 연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면 데이터를 합성하는 하프토너/합성장치 및;A half toner / compositing device for dithering the continuous tone image plane and synthesizing two-level image plane data with an output plane; 프린트 헤드로 합성물을 출력하는 프린트 헤드 드라이버를 구비하는 잉크방울(drop) 프린트 헤드를 구동하는 프린트 엔진/컨트롤러.A print engine / controller for driving a drop print head having a print head driver for outputting a composite to the print head. 제 1 항에 있어서,The method of claim 1, 상기 인터페이스는, 고속 직렬 인터페이스인 것을 특징으로 하는 프린트 엔진/컨트롤러.And the interface is a high speed serial interface. 제 1 항에 있어서,The method of claim 1, 상기 연속톤 이미지 디코더는, JPEG 디코더인 것을 특징으로 하는 프린트 엔진/컨트롤러.And the continuous tone image decoder is a JPEG decoder. 제 1 항에 있어서,The method of claim 1, 상기 연속톤 이미지 디코더는, 디코드된 이미지의 개개의 컬러면을, 하프토너/합성장치 앞의 개개의 버퍼로 출력하는 것을 특징으로 하는 프린트 엔진/컨트롤러.And the continuous tone image decoder outputs the individual color planes of the decoded image to individual buffers in front of the half toner / synthesizer. 제 1 항에 있어서,The method of claim 1, 각각의 연속톤 이미지면내의 페이지 데이터는, 하프토너/합성장치로 스케일되는 것을 특징으로 하는 프린트 엔진/컨트롤러.A print engine / controller, wherein the page data in each continuous tone image plane is scaled by a half toner / synthesizer. 제 1 항에 있어서,The method of claim 1, 상기 2-레벨 디코더는, 그룹4 팩시밀리 디코더인 것을 특징으로 하는 프린트 엔진/컨트롤러.And said two-level decoder is a group four facsimile decoder. 제 1 항에 있어서,The method of claim 1, 상기 2-레벨 디코더는, 상기 수신되는 압축된 이미지면내의 압축된 2-레벨 이미지면을, 상기 하프토너/합성장치 앞의 각각의 버퍼를 향하여 디코드하는 것을 특징으로 하는 프린트 엔진/컨트롤러.And the two-level decoder decodes the compressed two-level image plane in the received compressed image plane toward each buffer in front of the half toner / compositor. 제 1 항에 있어서,The method of claim 1, 2-레벨 이미지면내의 페이지 데이터는, 하프토너/합성장치로 스케일되는 것을 특징으로 하는 프린트 엔진/컨트롤러.A page engine in a two-level image plane is scaled with a half toner / synthesis device. 제 1 항에 있어서,The method of claim 1, 적외선 잉크로 인쇄된 태그를 인쇄된 페이지상에 위치시키기 위해 적외선 이미지면을 생성하는 적외선 태그 인코더를 더 포함하는 것을 특징으로 하는 프린트 엔진/컨트롤러.A print engine / controller, further comprising an infrared tag encoder for generating an infrared image plane for placing a tag printed with infrared ink on a printed page. 수신되는 압축된 페이지 데이터내의 압축된 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;A continuous tone image decoder for decoding the compressed continuous tone image plane in the received compressed page data; 압축된 2-레벨 이미지면을 디코드하는 2-레벨 디코더 및;A two-level decoder for decoding the compressed two-level image plane; 프린트 헤드에서 잉크가 제공되는 이미지면의 통합을 달성하기 위해, 컬러 마스크로 제어되는 도트 병합유닛을 포함한 하프토너/합성장치를 구비하는, 잉크방울 프린트 헤드를 구동하는 프린트 엔진/컨트롤러.A print engine / controller for driving an ink drop print head, comprising a half-toner / compositing device including a dot merging unit controlled by a color mask to achieve integration of an image plane provided with ink in the print head. 수신되는 압축된 페이지 데이터내의 압축된 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;A continuous tone image decoder for decoding the compressed continuous tone image plane in the received compressed page data; 압축된 2-레벨 이미지면을 디코드하는 2-레벨 디코더 및;A two-level decoder for decoding the compressed two-level image plane; 합성 프로세스 동안 마진 데이터를 각각의 이미지면으로 공급하는, 마진유닛을 포함한 하프토너/합성장치를 구비하는, 잉크방울 프린트 헤드를 구동하는 프린트 엔진/컨트롤러.A print engine / controller for driving an ink drop print head, comprising a half toner / synthesis device including a margin unit, for supplying margin data to each image plane during the synthesis process. 압축된 페이지 데이터를 수신하는 인터페이스와;An interface for receiving compressed page data; 상기 수신되는 압축된 페이지 데이터내의 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;A continuous tone image decoder for decoding the continuous tone image plane in the received compressed page data; 상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면을 디코드하는 2-레벨 디코더와;A two-level decoder for decoding the two-level image plane in the received compressed page data; 연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면을 합성하는 하프토너/합성장치 및;A half-toner / compositing device for dithering a continuous tone image plane and synthesizing a two-level image plane with an output plane; 프린트 헤드로 합성물을 출력하는 프린트 헤드 드라이버를 구비하는, 잉크방울 프린트 헤드와 접속하는 프린트 엔진/컨트롤러 칩.A print engine / controller chip connected with an ink drop print head, comprising a print head driver for outputting the composite to the print head. 압축된 페이지 데이터를 수신하는 인터페이스와;An interface for receiving compressed page data; 상기 수신되는 압축된 페이지 데이터내의 연속톤 이미지면을 디코드하는 연속톤 이미지 디코더와;A continuous tone image decoder for decoding the continuous tone image plane in the received compressed page data; 상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면을 디코드하는 2-레벨 디코더와;A two-level decoder for decoding the two-level image plane in the received compressed page data; 연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면을 합성하는 하프토너/합성장치와;A half toner / compositing device for dithering the continuous tone image plane and synthesizing the two-level image plane with the output plane; 프린트 헤드로 합성물을 출력하는 프린트 헤드 드라이버 및;A print head driver for outputting the composite to the print head; 프린트 헤드를 구비하는, 프린트 엔진/컨트롤러에 의해 구동되는 잉크방울프린터.An ink drop printer driven by a print engine / controller having a print head. 압축된 페이지 데이터를 수신하는 단계와;Receiving compressed page data; 출력면을 생성하기 위해 상기 수신되는 압축된 페이지 데이터내의 연속톤 이미지면을 디코드하는 단계와;Decoding a contone image plane in the received compressed page data to produce an output plane; 출력면을 생성하기 위해 상기 수신되는 압축된 페이지 데이터내의 2-레벨 이미지면을 디코드하는 단계와;Decoding a two-level image plane in the received compressed page data to produce an output plane; 연속톤 이미지면을 디더하고, 출력면을 가지고 2-레벨 이미지면을 합성하는 단계 및;Dithering the contone image plane, and synthesizing the two-level image plane with the output plane; 프린트 헤드로 합성된 데이터를 전송하는 단계를 구비하는 잉크방울 프린터의 운영방법.An ink droplet printer operating method comprising the step of transmitting the synthesized data to the print head.
KR1020027015793A 2002-11-22 2000-05-24 Print engine/controller and printhead interface chip incorporating the engine/controller KR100702464B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020027015793A KR100702464B1 (en) 2002-11-22 2000-05-24 Print engine/controller and printhead interface chip incorporating the engine/controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020027015793A KR100702464B1 (en) 2002-11-22 2000-05-24 Print engine/controller and printhead interface chip incorporating the engine/controller

Publications (2)

Publication Number Publication Date
KR20030024680A true KR20030024680A (en) 2003-03-26
KR100702464B1 KR100702464B1 (en) 2007-04-03

Family

ID=41624312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027015793A KR100702464B1 (en) 2002-11-22 2000-05-24 Print engine/controller and printhead interface chip incorporating the engine/controller

Country Status (1)

Country Link
KR (1) KR100702464B1 (en)

Also Published As

Publication number Publication date
KR100702464B1 (en) 2007-04-03

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 (en) Print engine/controller and printhead interface chip incorporating the engine/controller
KR100702467B1 (en) Print engine/controller with color mask
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