KR100662590B1 - Printing with a multi-segment printhead - Google Patents

Printing with a multi-segment printhead Download PDF

Info

Publication number
KR100662590B1
KR100662590B1 KR1020027017490A KR20027017490A KR100662590B1 KR 100662590 B1 KR100662590 B1 KR 100662590B1 KR 1020027017490 A KR1020027017490 A KR 1020027017490A KR 20027017490 A KR20027017490 A KR 20027017490A KR 100662590 B1 KR100662590 B1 KR 100662590B1
Authority
KR
South Korea
Prior art keywords
segment
printhead
dither
dither matrix
lead
Prior art date
Application number
KR1020027017490A
Other languages
Korean (ko)
Other versions
KR20030024708A (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 KR1020027017490A priority Critical patent/KR100662590B1/en
Publication of KR20030024708A publication Critical patent/KR20030024708A/en
Application granted granted Critical
Publication of KR100662590B1 publication Critical patent/KR100662590B1/en

Links

Images

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/21Ink jet for multi-colour printing

Abstract

멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법으로서,A method of preparing print data for a multi-segment printhead, comprising:

멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법은 단부가 오버랩된 복수의 프린트헤드 칩으로 구성된 멀티-세그먼트 프린트헤드를 위한 한 세트의 디더 매트릭스를 설정하고, 상기 세트는 리드-인(lead-in) 오버랩 부분과 관련되는 리드-인 디더 매트릭스와; 리드-아웃(lead-out) 오버랩 부분과 관련되는 리드-아웃 디더 매트릭스와; 프린트헤드 칩의 중앙 부분과 관련되는 공용 디더 매트릭스로 구성된다. 프린트 데이터를 수신하면, 상기 세트로부터 디더 값을 합성한다. 리드-인 디더 값은 하나의 세그먼트의 페이드-인을 설정하고, 리드-아웃 디더 값은 앞의 세그먼트의 페이드-아웃을 설정한다. 각 2개의 오버랩핑 세그먼트들에서, 오버랩은 비정렬의 조건에서 특성화되며, 비정렬은 공용 디더 매트릭스로 리딩하는 오프셋을 생성하도록 사용된다.A method of preparing print data for a multi-segment printhead sets up a set of dither matrices for a multi-segment printhead consisting of a plurality of printhead chips with overlapping ends, the set leading-in in) a lead-in dither matrix associated with the overlap portion; A lead-out dither matrix associated with the lead-out overlap portion; It consists of a common dither matrix associated with the central portion of the printhead chip. Upon receiving the print data, dither values are synthesized from the set. The lead-in dither value sets the fade-in of one segment, and the lead-out dither value sets the fade-out of the preceding segment. In each of the two overlapping segments, the overlap is characterized in the condition of the misalignment, which is used to generate an offset leading to the common dither matrix.

Description

멀티-세그먼트 프린트헤드를 가진 프린팅{PRINTING WITH A MULTI-SEGMENT PRINTHEAD}Printing with multi-segment printheads {PRINTING WITH A MULTI-SEGMENT PRINTHEAD}

본 발명은 멀티-세그먼트(segment) 프린트헤드(print head)를 가진 프린트로 프린팅하는 것에 관한 것으로서, 더욱 상세하게는 디더(dither)의 적용에 관한 것이다.The present invention relates to printing with a print having a multi-segment print head, and more particularly to the application of dither.

일련의 프린터 종류들은 도트(dot) 포맷으로 페이지에 선택적으로 발라지는 잉크에 의해 이미지가 구성되는 것으로 발전하였다. 발명자 키아 실버브룩(Kia Silverbrook)에 의한 미국 특허 제6045710호 '모놀리식 프린트헤드용 자기 정렬 구조 및 제조 프로세스(self-aligned construction and manufacturing process for monolithic printheads)'에서, 드롭-온-디맨드형 프린터와 함께 그 제조방법에 관한 선행기술의 평가가 제시되었다.A range of printer types has evolved into images composed of ink that is selectively applied to pages in dot format. In US Pat. No. 6045710, 'Self-aligned construction and manufacturing process for monolithic printheads' by inventor Kia Silverbrook, a drop-on-demand printer. The evaluation of the prior art with regard to the manufacturing method is presented.

본 발명과 관련된 여러가지 방법, 시스템 및 장치가 본 출원과 동시에 출원인 또는 본 발명의 양수인에 의하여 2000년 5월 24일에 출원된 아래의 계류중인 출원에 개시되어 있다.Various methods, systems, and apparatus related to the present invention are disclosed in the pending applications below filed May 24, 2000 by the applicant or assignee of the present invention concurrently with the present application.

PCT/AU00/00518, PCT/AU00/00519, PCT/AU00/00520, PCT/AU00/00521, PCT/AU00/00523, PCT/AU00/00524, PCT/AU00/00525, PCT/AU00/00526, PCT/AU00/00527, PCT/AU00/00528, PCT/AU00/00529, PCT/AU00/00530, PCT/AU00/00531, PCT/AU00/00532, PCT/AU00/00533, PCT/AU00/00534, PCT/AU00/00535, PCT/AU00/00536, PCT/AU00/00537, PCT/AU00/00538, PCT/AU00/00539, PCT/AU00/00540, PCT/AU00/00541, PCT/AU00/00542, PCT/AU00/00543, PCT/AU00/00544, PCT/AU00/00545, PCT/AU00/00547, PCT/AU00/00546, PCT/AU00/00554, PCT/AU00/00556, PCT/AU00/00557, PCT/AU00/00558, PCT/AU00/00559, PCT/AU00/00560, PCT/AU00/00561, PCT/AU00/00562, PCT/AU00/00563, PCT/AU00/00564, PCT/AU00/00566, PCT/AU00/00567, PCT/AU00/00568, PCT/AU00/00569, PCT/AU00/00570, PCT/AU00/00571, PCT/AU00/00572, PCT/AU00/00573, PCT/AU00/00574, PCT/AU00/00575, PCT/AU00/00576, PCT/AU00/00577, PCT/AU00/00578, PCT/AU00/00579, PCT/AU00/00581, PCT/AU00/00580, PCT/AU00/00582, PCT/AU00/00587, PCT/AU00/00588, PCT/AU00/00589, PCT/AU00/00583, PCT/AU00/00593, PCT/AU00/00590, PCT/AU00/00591, PCT/AU00/00592, PCT/AU00/00594, PCT/AU00/00595, PCT/AU00/00596, PCT/AU00/00597, PCT/AU00/00598, PCT/AU00/00516, PCT/AU00/00517, PCT/AU00/00511,PCT / AU00 / 00518, PCT / AU00 / 00519, PCT / AU00 / 00520, PCT / AU00 / 00521, PCT / AU00 / 00523, PCT / AU00 / 00524, PCT / AU00 / 00525, PCT / AU00 / 00526, PCT / AU00 / 00527, PCT / AU00 / 00528, PCT / AU00 / 00529, PCT / AU00 / 00530, PCT / AU00 / 00531, PCT / AU00 / 00532, PCT / AU00 / 00533, PCT / AU00 / 00534, PCT / AU00 / 00535, PCT / AU00 / 00536, PCT / AU00 / 00537, PCT / AU00 / 00538, PCT / AU00 / 00539, PCT / AU00 / 00540, PCT / AU00 / 00541, PCT / AU00 / 00542, PCT / AU00 / 00543, PCT / AU00 / 00544, PCT / AU00 / 00545, PCT / AU00 / 00547, PCT / AU00 / 00546, PCT / AU00 / 00554, PCT / AU00 / 00556, PCT / AU00 / 00557, PCT / AU00 / 00558, PCT / AU00 / 00559, PCT / AU00 / 00560, PCT / AU00 / 00561, PCT / AU00 / 00562, PCT / AU00 / 00563, PCT / AU00 / 00564, PCT / AU00 / 00566, PCT / AU00 / 00567, PCT / AU00 / 00568, PCT / AU00 / 00569, PCT / AU00 / 00570, PCT / AU00 / 00571, PCT / AU00 / 00572, PCT / AU00 / 00573, PCT / AU00 / 00574, PCT / AU00 / 00575, PCT / AU00 / 00576, PCT / AU00 / 00577, PCT / AU00 / 00578, PCT / AU00 / 00579, PCT / AU00 / 00581, PCT / AU00 / 00580, PCT / AU00 / 00582, PCT / AU00 / 00587, PCT / AU00 / 00588, PCT / AU00 / 00589, PCT / AU00 / 00583, PCT / AU00 / 00593, PCT / AU00 / 00590, PCT / AU0 0/00591, PCT / AU00 / 00592, PCT / AU00 / 00594, PCT / AU00 / 00595, PCT / AU00 / 00596, PCT / AU00 / 00597, PCT / AU00 / 00598, PCT / AU00 / 00516, PCT / AU00 / 00517, PCT / AU00 / 00511,

위 출원건들은 본 출원과 관련하여 상호 참고문헌(cross-reference)으로서 참조된다.The above applications are referred to as cross-references in connection with the present application.

또한, 본 발명과 관련된 여러가지 방법, 시스템 및 장치가 본 출원과 동시에 출원인 또는 본 발명의 양수인에 의하여 출원된 아래의 계류중인 PCT 출원에 개시 되어 있다: PCT/AU00/00754, PCT/AU00/00755, PCT/AU00/00757.In addition, various methods, systems, and apparatus related to the present invention are disclosed in the following pending PCT applications filed by the applicant or the assignee of the present invention: PCT / AU00 / 00754, PCT / AU00 / 00755, PCT / AU00 / 00757.

위 출원건들은 본 출원과 관련하여 상호 참고문헌으로서 참조된다.The above applications are referenced as cross-references in connection with the present application.

본 출원과 동시에 출원되어 계류중인 PCT 특허 출원 PCT/AU00/00591, PCT/AU00/00578, PCT/AU00/00579, PCT/AU00/00592 및 PCT/AU00/00590이 특히 중요하며, 상기 출원들은 앞으로 멤제트(Memjet) 프린트헤드로 불리는 디맨드형 프린트헤드 상의 전자기계적(microelectromechanical) 드롭을 기술하고 있다.Of particular interest are the PCT patent applications PCT / AU00 / 00591, PCT / AU00 / 00578, PCT / AU00 / 00579, PCT / AU00 / 00592 and PCT / AU00 / 00590, which are pending simultaneously with this application. It describes a microelectromechanical drop on demand printhead called a Memjet printhead.

멤제트 프린트헤드는 예를 들면, 페이지의 전체 폭에 걸쳐 액체(liquid) 잉크의 1600 dpi 2-레벨(bi-level) 도트를 생성할 수 있는 프린트헤드 세그먼트로부터 개량되었다. 도트들은 쉽게 분리하여 생성되어, 분산된 도트 디더링이 최대한 이용되도록 한다. 컬러면들은 완전 정합(perfect registration)으로 인쇄될 수 있어, 이상적인 도트-온-도트(dot-on-dot) 프린팅을 가능하게 한다. 프린트헤드는 전자기계적 잉크 드롭 기술을 이용하여 고속 프린팅을 가능하게 한다.Memjet printheads have been improved from, for example, printhead segments that can produce 1600 dpi bi-level dots of liquid ink over the entire width of the page. Dots are easily separated and generated, allowing distributed dot dithering to be utilized to the maximum. Color planes can be printed with perfect registration, allowing for ideal dot-on-dot printing. The printhead enables high speed printing using electromechanical ink drop technology.

또한, 본 출원과 동시에 출원되어 계류중인 PCT 출원 PCT/AU00/00516, PCT/AU00/00517, PCT/AU00/00511, PCT/AU00/00754, , PCT/AU00/00755 및 PCT/AU00/00757은 위에 참조된 페이지 폭 프린트헤드를 구동하기에 적합한 프린트 엔진/컨트롤러를 기술하고 있다.In addition, pending PCT applications PCT / AU00 / 00516, PCT / AU00 / 00517, PCT / AU00 / 00511, PCT / AU00 / 00754,, PCT / AU00 / 00755 and PCT / AU00 / 00757 which are filed simultaneously with the present application A print engine / controller suitable for driving the referenced page width printhead is described.

프린트헤드를 구동하기 위해 이용되는 프린트 엔진/컨트롤러는 수신된 프린트 데이터를 프린트헤드 노즐(nozzle)에 놓는다. 데이터에 디더를 적용하는 것은 공지되었다.The print engine / controller used to drive the printhead puts the received print data at the printhead nozzle. It is known to apply dither to data.

특히, PCT/AU00/00754는 복수의 프린트 엔진/컨트롤러 칩을 멀티-세그먼트 프린트헤드에 인터페이스하기에 유용한 프린트 엔진/컨트롤러 적용형태를 기술하고 있다. 디더 프로세스 및 특성화 벡터가 추가될 수 있는 프린트 엔진/컨트롤러의 상세한 설명에 참조될 수 있다.In particular, PCT / AU00 / 00754 describes a print engine / controller application useful for interfacing multiple print engine / controller chips to a multi-segment printhead. Reference may be made to the detailed description of the print engine / controller to which dither processes and characterization vectors may be added.

상기와 같은 멀티-세그먼트 프린트헤드에서는 프린트헤드 세그먼트의 오버랩핑 쌍에서 밝기(brightness) 및 평균 도트 이득(average dot gain)을 유지하는데 문제가 있으며, 이는 세그먼트의 비정렬(misalignment)에 의해 더욱 악화된다. 이러한 문제들을 고려한 디더(dither) 프로세스가 필요하다.In such multi-segment printheads, there is a problem of maintaining brightness and average dot gain in overlapping pairs of printhead segments, which is further exacerbated by misalignment of the segments. . There is a need for a dither process that takes these issues into account.

[발명의 개요][Overview of invention]

일측면에서, 멀티-세그먼트 프린트헤드용 프린트 데이터를 준비하는 방법에 관한 본 발명은, 단부가 오버랩된 복수의 프린트헤드 칩으로 구성된 멀티-세그먼트 프린트헤드를 위하여, 리드-인(lead-in) 오버랩(overlap) 부분과 관련되는 리드-인 디더 매트릭스와, 리드-아웃(lead-out) 오버랩 부분과 관련되는 리드-아웃 디더 매트릭스와, 프린트헤드 칩의 중앙 부분과 관련되는 공용 디더 매트릭스로 구성된 디더 매트릭스의 세트를 설정하는 단계와;In one aspect, the present invention relates to a method of preparing print data for a multi-segment printhead, comprising a lead-in overlap for a multi-segment printhead consisting of a plurality of printhead chips with overlapping ends. a dither matrix consisting of a lead-in dither matrix associated with the (overlap) portion, a lead-out dither matrix associated with the lead-out overlap portion, and a common dither matrix associated with the central portion of the printhead chip Setting a set of;

프린트 데이터를 수신하는 단계와;Receiving print data;

상기 디더 매트릭스 세트를 액세스하는 단계와 오버랩 부분에 걸쳐 결과 이미지에서 거의 일정한 도트 이득이 유지되도록 수신 데이터가 합성될 때 상기 수신 데이터에 디더를 적용하는 단계를 포함한다.Accessing the dither matrix set and applying dither to the received data when the received data is synthesized such that a nearly constant dot gain is maintained in the resulting image over an overlap portion.

2개의 오버랩핑 세그먼트의 각 세트에 대한 상기 오버랩은 비정렬(misalignment)이라는 조건에서 특성화된다. 상기 비정렬을 이용하여 리드-인 리드-아웃 디더 매트릭스를 생성하고, 표준 제3 디더 매트릭스에 오프셋(offset)을 생성시킨다. 리드-인 리드-아웃 디더 매트릭스들은 오버랩 영역 상에서 결합되어 이용된다. 하나는 페이드아웃(fadeout) 디더 매트릭스 일 수 있고, 그러면 다른 하나는 페이드-인(fade-in) 디더 매트릭스이다. 그들이 생성되어 2개의 디더 매트릭스의 조합은 오버랩 영역 상에 일정한 도트 이득을 제공한다.The overlap for each set of two overlapping segments is characterized under the condition of misalignment. The misalignment is used to generate a lead-in read-out dither matrix and to generate an offset in the standard third dither matrix. Lead-in lead-out dither matrices are used in combination on the overlap area. One may be a fadeout dither matrix, then the other is a fade-in dither matrix. They are created so that the combination of the two dither matrices provides a constant dot gain on the overlap area.

상기 오프셋은, 상기 페이드-인이 완료하면, 상기 제3 디더 매트릭스 내에서 가야할 위치를 정하기 위해 요구된다. 상기 제3 디더 매트릭스는 표준 디더 매트릭스로 간주될 수 있고, 다른 두 매트릭스들은 교차-페이드(cross-fade)를 제공하는 것으로서 간주될 수 있다. 상기 다른 두 매트릭스들 중에서 하나의 디더 매트릭스는 페이드 아웃(fade-out)하고, 다른 것은 페이드 인(fade-in)한다.The offset is required to determine where to go in the third dither matrix once the fade-in is complete. The third dither matrix can be considered a standard dither matrix and the other two matrices can be considered as providing cross-fade. One dither matrix of the other two matrices fades out and the other fades in.

비정렬(misalignment) 때문에, 오버랩을 통과하자마자 표준 디더 매트릭스로 단순하게 바로 진행하는 것은 바람직하지 않다. 대신에, 비정렬에 따라 상기 표준 디더 매트릭스의 다른 컬럼(column)으로 가는 것이 필요할 수 있다.Because of misalignment, it is not desirable to simply go straight to the standard dither matrix as soon as it passes through the overlap. Instead, it may be necessary to go to another column of the standard dither matrix depending on the misalignment.

따라서, 적어도 3개의 디더 매트릭스가 바람직하다. 표준 디더 매트릭스는 비-오버랩핑(non-overlapping) 비트에 대한 모든 세그먼트에 걸쳐 공용되고, 오버랩 당 한쌍의 디더 매트릭스가 있다. 하나는 상기 공용 디더 매트릭스로부터 페이드 아웃하고, 다른 하나는 공용 디더 매트릭스 내로 페이드 인한다. 비정렬 정보는 각 프린트헤드 세그먼트에 저장된 특성화 벡터로부터 얻어질 수 있다. 특성 벡터는 데드 노즐(dead nozzle)데이터를 또한 저장할 수 있다. 연속톤(contone) CMYK 층은 디더 매트릭스 선택 맵(select map)에 의해 선택되는 디더 매트릭스를 이용하여 합성된다. 상기 디더 연속톤 층은 상기 연속톤 층에 흑색 층과 함께 추가되는 적절한 넷페이지(Netpage) 태그(tag) 데이터를 가진다. 그 조합은 멀티-세그먼트 프린트헤드로 보내진다. 데이터열(datastream)은 오버랩핑 세그먼트에 걸쳐 부드러운 변환(transition)을 만들도록 조정되어, 프린트헤드 특성화 벡터를 참조하여 프린트헤드 내에서 데드 노즐(dead nozzle)을 보상할 수 있다. 상기 디더 매트릭스 선택 맵의 해상도는 연속톤 해상도에 완벽하게 맞추어야 한다.Thus, at least three dither matrices are preferred. The standard dither matrix is common across all segments for non-overlapping bits, and there is a pair of dither matrices per overlap. One fades out from the common dither matrix and the other fades in into the common dither matrix. Unaligned information can be obtained from a characterization vector stored in each printhead segment. The characteristic vector can also store dead nozzle data. Contone CMYK layers are synthesized using a dither matrix selected by a dither matrix select map. The dither contone layer has appropriate Netpage tag data added to the contone layer with a black layer. The combination is sent to a multi-segment printhead. The datastream can be adjusted to make a smooth transition across the overlapping segments, to compensate for dead nozzles within the printhead with reference to the printhead characterization vector. The resolution of the dither matrix selection map should fit perfectly with the continuous tone resolution.

각 프린트헤드 세그먼트는 각 세그먼트의 특성화 벡터를 되돌리도록, 저속 직렬 버스(serial bus)를 거쳐, 조회될 수 있다. 복수의 프린트헤드 칩으로부터 오는 특성화 벡터는 전체의 멀티-세그먼트 프린트헤드에 대한 노즐 결함(nozzle defect) 리스트를 구성하도록 조합될 수 있고, 상기 프린트 엔진이 프린트 동안에 결함있는 노즐을 보상할 수 있도록 한다. 결함있는 노즐의 수가 작으면, 상기 보상에 의해 결함있는 노즐이 없는 프린트헤드와 구별할 수 없는 결과를 만들 수 있다.Each printhead segment can be queried over a slow serial bus to return the characterization vector of each segment. Characterization vectors from multiple printhead chips can be combined to construct a nozzle defect list for the entire multi-segment printhead, allowing the print engine to compensate for defective nozzles during printing. If the number of defective nozzles is small, this compensation can produce indistinguishable results from a printhead without a defective nozzle.

도 1은 데이터 흐름 및 멀티-세그먼트 프린트헤드를 구동하는데 적합한 프린트 엔진 컨트롤러에 의해 행해지는 기능을 예시하는 도면,1 illustrates the functions performed by a print engine controller suitable for driving data flow and multi-segment printheads;

도 2는 전체 프린터 시스템 아키텍쳐의 환경에서 프린트 엔진을 나타내는 도면,2 illustrates a print engine in an environment of an overall printer system architecture;

도 3은 프린트 엔진 컨트롤러 아키텍쳐를 예시하는 도면,3 is a diagram illustrating a print engine controller architecture;

도 4는 도 3의 하프토너(halftoner)/합성기(compositor) 유닛(HCU)에 대한 외부 인터페이스를 예시하는 도면,4 illustrates an external interface to the halftoner / compositor unit (HCU) of FIG. 3, FIG.

도 5는 도 4의 HCU의 내부 회로를 나타내는 도면,5 is a diagram illustrating an internal circuit of the HCU of FIG. 4;

도 6은 도 5의 도트 병합(merger) 유닛 내에서의 프로세스를 예시하는 블록도,6 is a block diagram illustrating a process within the dot merge unit of FIG. 5;

도 7은 도 5의 도트 재편성(reorganization) 유닛 내에서의 프로세스를 예시하는 도면,FIG. 7 illustrates a process within the dot reorganization unit of FIG. 5;

도 8은 도 5의 라인 로더(line loader)/포맷(format) 유닛(LLFU) 내에서의 프로세스를 예시하는 도면,8 illustrates a process within the line loader / format unit (LLFU) of FIG. 5;

도 9는 도 8의 LLFU 내의 컬러 데이터를 생성하는 내부 회로를 나타내는 도면,9 is a diagram showing an internal circuit which generates color data in the LLFU of FIG. 8;

도 10 및 11은 도 9에서 나타낸 LLFU의 구성요소를 예시하는 도면,10 and 11 illustrate the components of the LLFU shown in FIG. 9;

도 12는 멀티-세그먼트 프린트헤드 내의 세그먼트 오버랩의 방법을 나타내는 도면,12 illustrates a method of segment overlap in a multi-segment printhead;

도 13은 멀티-세그먼트 디더 매트릭스에서 하나의 라인 합성을 예시하는 도면이다.FIG. 13 is a diagram illustrating one line synthesis in a multi-segment dither matrix. FIG.

일반적인 12 인치 프린트헤드 폭은 하나 이상의 프린트 엔진/컨트롤러(PEC)에 의해, 아래에 기술하는 것처럼, A4 및 레터(letter) 크기 페이지의 풀-블리드(full-bleed) 프린팅을 하도록 제어된다. 6 채널의 컬러 잉크는 현행의 프린팅 환경에서 기대되는 최대한도이며, 이들은: A typical 12 inch printhead width is controlled by one or more print engines / controllers (PECs) for full-bleed printing of A4 and letter size pages, as described below. The six channels of color ink are the maximum expected in current printing environments, these are:                 

ㆍCMY, 정규 컬러 프린트 용,CMY, for regular color printing

ㆍK, 흑색 텍스트(text) 및 기타 흑색 프린트 용,For K, black text and other black prints,

ㆍIR(적외선, infrared), 태그 가능 애플리케이션 용,ㆍ for IR (infrared), taggable applications,

ㆍF(정착액, fixative), 고속 프린트 용이다. ㆍ F (fixing solution, fixative), for high speed printing.

PEC는 프린트헤드와 인터페이스하는 단일 칩에 설치될 수 있다. 그것은 다음의 4개의 기초적 레벨의 기능을 포함한다:PEC can be installed on a single chip that interfaces with the printhead. It includes four basic levels of functionality:

ㆍIEEE 1394와 같은 직렬 인터페이스를 통한 압축된 페이지 수신Receive compressed pages through a serial interface such as IEEE 1394

ㆍ압축된 형태로부터 페이지를 생성하기 위한 프린트 엔진. 프린트 엔진의 기능은 페이지 이미지의 확대, 연속톤 층의 디더링(dithering), 연속톤 층 위의 흑색 층의 합성, 선택적으로 적외선 태그의 추가 및 프린트헤드로 합성 이미지의 전송을 포함한다.Print engine for generating pages from compressed form. The function of the print engine includes enlargement of 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 composite image to the printhead.

ㆍ프린트헤드 및 스텝 모터(stepper motors)를 제어하기 위한 프린트 컨트롤러.Print controller for controlling printheads and stepper motors.

ㆍ2개의 QA칩과 통신하기 위한 2개의 표준 저속 직렬 포트. 인증절차 중 확실한 보안을 보장하기 위하여 반드시 2개의 포트가 있어야 하며, 1개의 포트만 있어서는 안된다. Two standard low speed serial ports for communicating with two QA chips. There must be two ports, and there should not be only one port to ensure secure security during the authentication process.

멤제트 프린트헤드의 페이지 폭 성질때문에, 각 페이지는 가시의 아티팩트(visible artifact)가 생성되지 않도록 일정한 속도로 프린트되어야 한다. 이는 프린팅 속도가 입력 데이터 속도에 맞춰 변화할 수 없음을 의미한다.Because of the page-width nature of the memjet printhead, each page must be printed at a constant rate so that no visible artifacts are produced. This means that the printing speed cannot change with the input data rate.

따라서 프린트헤드가 데이터의 일정한 공급을 가지는 것을 보장하기 위하여 문서 래스터화(document rasterization) 및 문서 프린팅은 분리된다. 페이지는 그것이 완전히 래스터화될 때까지 프린트되지 않는다. 이것은 메모리에 각각의 래스터화된 페이지 이미지의 압축된 페이지를 저장함으로써 이루어질 수 있다. 또한, 이 분리는 보다 복잡한 페이지를 래스터하는 시간을 얻으면서, 간단한 페이지를 래스터하는 때에 RIP(들)가 프린터의 앞으로 진행하도록 한다.Thus document rasterization and document printing are separated to ensure that the printhead has a constant supply of data. The page does not print until it is completely rasterized. This can be done by storing a compressed page of each rasterized page image in memory. This separation also allows the RIP (s) to go to the front of the printer when rastering simple pages, gaining time to raster more complex pages.

연속톤 컬러 이미지는 확률적(stochastic) 디더링에 의해 재생성되지만, 흑색 텍스트 및 라인 그래픽은 도트를 이용하여 직접 재생성되기 때문에, 압축된 페이지 이미지 포맷은 전면(foreground) 2-레벨 흑색 층 및 배경(background) 연속톤 컬러 층을 별도로 가진다. (연속톤 층은 선택적 흑색 요소를 가지기는 하지만) 흑색 층은 연속톤 층이 디더된 후에 연속톤 층 위에 합성된다. (적외선 또는 흑색 잉크에서) 넷페이지 태그의 최종층은 프린트출력을 위한 페이지에 선택적으로 추가된다.Continent color images are reproduced by stochastic dithering, but because black text and line graphics are directly reproduced using dots, the compressed page image format is a foreground two-level black layer and background. ) Has a continuous tone color layer separately. The black layer is synthesized on the continuous tone layer after the continuous tone layer is dithered (although the continuous tone layer has an optional black element). The final layer of the netpage tag (in infrared or black ink) is optionally added to the page for printout.

RIP 소프트웨어/하드웨어는 각 페이지 묘사(description)를 래스터화하고, 래스터화된 페이지 이미지를 압축한다. 각각의 압축된 페이지 이미지는 메모리로 전송된다.RIP software / hardware rasterizes each page description and compresses the rasterized page image. Each compressed page image is transferred to memory.

페이지 묘사에서 디더 매트릭스 선택 영역들은 연속톤-해상도 2-레벨 비트맵으로 래스터화되고, 비트맵은 손실없이 무시해도 좋을 크기로 압축되고, 압축된 페이지 이미지의 부분을 형성한다. 프린트된 페이지의 적외선(IR) 층은 선택적으로 프로그램될 수 있는 밀도로 인코딩된 넷페이지 태그를 포함한다.In the page depiction, the dither matrix selection areas are rasterized into continuous tone-resolution two-level bitmaps, the bitmaps are compressed to a negligible size without loss, and form part of the compressed page image. The infrared (IR) layer of the printed page includes a netpage tag encoded at a density that can be optionally programmed.

도 1에서, 문서는 11에서 수신되고 메모리 버퍼(12)로 로드되며, 페이지 배 치(layout)가 이뤄지고 모든 필요한 대상이 추가될 수 있다. 메모리(12)로부터의 페이지는 프린트 엔진 컨트롤러(10)로 전송되기 전에 13에서 래스터화되고 14에서 압축된다. 페이지들은 프린트 엔진 컨트롤러(10) 내에서 압축된 페이지 이미지로서 메모리 버퍼(15)로 수신되고, 메모리 버퍼로부터 페이지 확대기(16)로 공급되어, 페이지 이미지들이 회수된다(retrieve). 임의의 필요한 디더가 17에서 임의의 연속톤 층에 적용될 수 있다. 임의의 흑색 2-레벨 층은 18에서 연속톤 층 위에 합성될 수 있고, 19에서 임의의 적외선 태그와 함께 합성될 수 있다. 합성된 페이지 데이터는 20에서 프린트되어 페이지(21)를 생성한다.In Fig. 1, the document is received at 11 and loaded into the memory buffer 12, a page layout is made and all the necessary objects can be added. Pages from memory 12 are rasterized at 13 and compressed at 14 before being sent to print engine controller 10. The pages are received into the memory buffer 15 as compressed page images in the print engine controller 10 and supplied from the memory buffer to the page enlarger 16 so that the page images are retrieved. Any necessary dither can be applied to any continuous tone layer at 17. Any black two-level layer may be synthesized over the continuous tone layer at 18 and may be synthesized with any infrared tag at 19. The synthesized page data is printed at 20 to produce page 21.

파이프라인의 제1 단계에서는, JPEG로 압축된 연속톤 CMYK 층(아래 참조)을 확대하고, 그룹 4 팩스로 압축된 2-레벨 디더 매트릭스 선택 맵(Group 4 Fax-compressed bi-level dither matrix selection map)(아래 참조)을 확대하며, 모두 병행하여 그룹 4 팩스로 압축된 2-레벨 흑색 층(아래 참조)을 확대한다. 이와 병행하여, 태그 인코더는 압축된 페이지 이미지에서 2-레벨 IR 태그 데이터를 인코딩한다. 제2 단계에서는, 디더 매트릭스 선택 맵에 의하여 선택된 디더 매트릭스를 이용하여 연속톤 CMYK 층을 디더(dither)하고, 결과로서 생기는 2-레벨 K 층(K layer) 위에 2-레벨 흑색 층을 합성하고, 페이지에 IR 층을 추가한다. 정착액 층(fixative layer) 역시 C,M,Y,K 또는 IR 채널에서 필요한 곳마다 각각의 도트 위치(dot position)에 생성된다. 마지막 단계에서는 프린트헤드 인터페이스를 경유하여 2-레벨 CMYK+IR 데이터를 프린트 헤드를 통하여 프린트한다(아래 참조).In the first stage of the pipeline, the JPEG-compressed continuous-tone CMYK layer (see below) is expanded and the Group 4 Fax-compressed bi-level dither matrix selection map ) (See below), and zoom in on a two-level black layer (see below) compressed with Group 4 fax in parallel. In parallel, the tag encoder encodes two-level IR tag data in the compressed page image. In the second step, dither the continuous tone CMYK layer using the dither matrix selected by the dither matrix selection map, and synthesize a 2-level black layer on the resulting 2-level K layer, Add an IR layer to the page. A fixative layer is also created at each dot position wherever needed in the C, M, Y, K or IR channels. The final step is to print the two-level CMYK + IR data through the printhead via the printhead interface (see below).

도 2에는 어떻게 프린트 엔진/컨트롤러(10)가 전반적인 프린터 시스템 아키 텍쳐에 적합하게 되는지를 나타낸다. 프린터 시스템의 다양한 구성요소는 다음을 포함할 수 있다.2 shows how the print engine / controller 10 fits into the overall printer system architecture. Various components of the printer system may include the following.

ㆍ프린트 엔진/컨트롤러(Print Engine/Controller(PEC)). PEC 칩(10), 또는 칩들은, 메모리 버퍼(24)에 저장하기 위한 압축된 페이지 이미지의 수신, 페이지 확대, 흑색 층 합성 및 프린트 헤드(23)로의 도트 데이터 송신을 담당한다. 그것은 또한 QA 칩(25, 26)과 통신할 수 있고, 최적 인쇄를 보장하기 위하여 프린트 헤드의 특징을 검색하기 위한 수단을 제공할 수 있다. PEC는 본 명세서의 주제이다. Print Engine / Controller (PEC). The PEC chip 10, or chips, is responsible for receiving a compressed page image for storage in the memory buffer 24, page magnification, black layer composition, and dot data transmission to the print head 23. It may also be in communication with the QA chips 25 and 26, and may provide a means for retrieving features of the print head 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 using scratches during printing of a given page. The construction and operation of the memory buffer is known to those skilled in the art, and a range of standard chips and their utilization techniques can be utilized for the use of the PEC of the present invention.

ㆍ마스터 QA 칩(master QA chip). 마스터 칩(25)은 교체형 잉크 카트리지 QA 칩(26)에 일치된다. QA 유닛의 구성 및 작용은 당업자에게 공지되어 있으며, 소정 범위 내의 공지된 QA 프로세스(QA process)는 본 발명의 프린트 엔진 컨트롤로(PEC)의 이용을 위하여 활용될 수 있다. 예를 들어, QA 칩은 아래의 계속 중인 미국 특허출원에 기술되어 있다. Master QA chip. The master chip 25 is matched to the replaceable ink cartridge QA chip 26. The construction and operation of the QA unit is known to those skilled in the art, and known QA processes within a certain range can be utilized for use of the print engine control furnace (PEC) of the present invention. For example, QA chips are described in the ongoing US patent application below.

USSNUSSN 우리의 일련 번호Our serial number 우리의 명칭Our name TBATBA AUTH01AUTH01 Validation Protocol and SystemValidation Protocol and System 09/112,76309 / 112,763 AUTH02AUTH02 Circuit for Protecting Chips Against IDD Fluctuation AttacksCircuit for Protecting Chips Against IDD Fluctuation Attacks 09/112,73709 / 112,737 AUTH04AUTH04 Method for Protecting On-Chip Memory(Flash and RAM)Method for Protecting On-Chip Memory (Flash and RAM) 09/112,76109 / 112,761 AUTH05AUTH05 Method for Making a Chip Tamper-ResistantMethod for Making a Chip Tamper-Resistant 09/113,22309 / 113,223 AUTH06AUTH06 A system for authenticating physical objectsA system for authenticating physical objects TBATBA AUTH07AUTH07 Validation Protocol and SystemValidation Protocol and System TBATBA AUTH08AUTH08 Validation Protocol and SystemValidation Protocol and System 09/505,00309 / 505,003 AUTH09AUTH09 Consumable Authentication Protocol and SystemConsumable Authentication Protocol and System 09/517,60809 / 517,608 AUTH10AUTH10 Consumable Authentication Protocol and SystemConsumable Authentication Protocol and System 09/505,14709 / 505,147 AUTH11AUTH11 Consumable Authentication Protocol and SystemConsumable Authentication Protocol and System 09/505,95209 / 505,952 AUTH12AUTH12 Unauthorized Modification of Values Stored in Flash MemoryUnauthorized Modification of Values Stored in Flash Memory TBATBA AUTH13AUTH13 A system form the Manipulation of Secure DataA system form the Manipulation of Secure Data 09/516,87409 / 516,874 AUTH14AUTH14 An Authentication Chip with Protection from Power Supply AttacksAn Authentication Chip with Protection from Power Supply Attacks TBATBA AUTH15AUTH15 Shielding Manipulation of Secret DataShielding Manipulation of Secret Data

QA 칩 통신은 물리적인 프린트헤드의 동작 뿐만 아니라 이미지 확대에서도 역할을 담당하므로, PEC 칩의 전체적인 기능에 포함되는 것이 가장 바람직할 수 있다. QA 칩 통신을 위치시킴으로써, 페이지를 인쇄하기에 충분한 잉크가 있음을 보장할 수 있게 된다. 바람직하게는 인증 칩(authentication chip)을 이용하여 프린트 헤드 어셈블리 내장형 QA(QA embedded in the printhead assembly)가 구현될 수 있다. 그것이 마스터 QA 칩이기 때문에, 그것은 오직 인증 키(authentication key)만을 포함할 수 있을 뿐, 사용자 데이터(user-data)는 포함할 수 없다. 그러나, 그것은 잉크 카트리지의 QA 칩과 일치되어야 한다. 잉크 카트리지 안의 QA 칩은 가능한 한 최상의 프린트 품질을 유지하기 위하여 필요한 정보를 포함하며, 인증 칩(authentication chip)을 이용하여 구현된다.Since QA chip communication plays a role not only in the operation of the physical printhead but also in the image enlargement, it may be most desirable to be included in the overall function of the PEC chip. By placing QA chip communication, it is possible to ensure that there is enough ink to print the page. Preferably, a QA embedded in the printhead assembly (QA) may be implemented using an authentication chip. Because it is a master QA chip, it can only contain an authentication key, not user-data. However, it must be matched with the QA chip of the ink cartridge. The QA chip in the ink cartridge contains the necessary information to maintain the best print quality possible and is implemented using an authentication chip.

바람직하게, PEC 칩은 아래의 기능을 행하도록 단순 마이크로-컨트롤러 CPU 코어(simple micro-controller CPU core, 35)를 추가할 것이다: Preferably, the PEC chip will add a simple micro-controller CPU core 35 to perform the following functions:                 

ㆍ 프린트 페이지 간의 직렬 인터페이스(36)를 경유하여 QA 칩 인증 프로토콜 수행하는 것Performing QA chip authentication protocol via serial interface 36 between print pages

ㆍ 프린트 동안에 병렬 인터페이스(91)를 경유하여 스텝 모터를 구동하는 것(스텝 모터는 5KHz 프로세스를 요한다.)Driving the stepper motor via the parallel interface 91 during printing (the stepper motor requires a 5KHz process).

ㆍ 프린트 동안에 PEC 칩의 다양한 부분을 동기화하는 것Synchronizing various parts of the PEC chip during printing

ㆍ 외부 데이터 요청을 인터페이스하는 수단(프로그래밍 레지스터(programming register) 등)을 제공하는 것Providing means for interfacing external data requests (such as programming registers)

ㆍ 프린트헤드 세그먼트 저속 데이터 요청(특성 벡터(characterization vector)의 판독 및 펄스 프로파일(pulse profile)의 기록과 같은 것)을 인터페이스하는 수단을 제공하는 것Providing means for interfacing printhead segment slow data requests (such as reading a characterization vector and recording a pulse profile);

ㆍ 수직(portrait) 및 수평(landscape) 태그 구조를 외부 D램에 기록하는 수단을 제공하는 것이다.To provide a means for recording the portrait and landscape tag structures on an external DRAM.

도 3은 프린트 엔진 아키텍쳐를 나타내는 도면이다. 프린트 엔진 페이지 확대 및 프린팅 파이프라인은 고속 직렬 인터페이스(27)(표준 IEEE 1394 인터페이스와 같은 것), 표준 JPEG 디코더(28), 표준 그룹 4 팩스 디코더, 맞춤형 하프토너/합성기 유닛(29), 맞춤형 태그 인코더(30), 라인 로더/포매터(loader/formatter) 유닛(31) 및 프린트헤드(33)에 이어지는 맞춤형 인터페이스(32)로 구성된다. 디코더(28, 88) 및 인코더(30)는 하프토너/합성기(29)에 버퍼된다. 태그 인코더(30)는 그 페이지를 어떤 용도로 이용하는가에 따라 좌우되는 프로토콜에 따라 페이지에 적외선 태그 또는 태그들을 설치하지만, 태그의 실질적인 내용들은 본 발명의 주제 는 아니다.3 is a diagram illustrating a print engine architecture. Print engine page magnification and printing pipelines include high speed serial interface 27 (such as standard IEEE 1394 interface), standard JPEG decoder 28, standard group 4 fax decoder, custom halftoner / synthesizer unit 29, custom tags It consists of an encoder 30, a line loader / formatter unit 31 and a custom interface 32 that follows the printhead 33. Decoder 28, 88 and encoder 30 are buffered in half toner / synthesizer 29. The tag encoder 30 installs an infrared tag or tags on the page according to a protocol that depends on the purpose of using the page, but the actual contents of the tag are not the subject of the present invention.

프린트 엔진은 이중 버퍼 방식으로 동작한다. 하나의 페이지가 고속 직렬 인터페이스(27)로부터 D램 인터페이스(89) 및 데이터 버스(90)를 경유하여 D램(34)으로 적재되는 동안, 이전에 적재된 페이지는 D램(34)으로부터 판독되어 프린트 엔진 파이프라인을 통과한다. 일단 그 페이지가 프린트 완료되면, 방금 적재된 페이지는 인쇄될 페이지가 되며, 새로운 페이지가 고속 직렬 인터페이스(27)를 경유하여 적재된다. 제1 단계에서 파이프라인은 임의의 JPEG로 압축된 연속톤(CMYK) 층을 확대하고, 임의의 2개의 그룹 4 팩스로 압축된 2-레벨 데이터열을 확대한다. 2개의 열은 흑색 층(PEC가 실제로는 색상을 알 수 없고(color agnostic), 이 2-레벨 층이 출력 잉크 중 어느 것으로도 지시될 수 있음에도 불구하고)과 연속톤 디더링(이하 참조)을 위하여 디더 매트릭스 중에서 선택을 하기 위한 매트(matte)이다. 제2 단계에서는, 제1 단계와 병행하여, 나중에 적외선 또는 흑색 잉크로 렌더링되기 위한 소정의 태그가 인코딩된다. 마지막으로 제3 단계에서는 연속톤 층을 디더하고, 위치 태그 및 2-레벨 스폿1 층(bi-level spot1 layer)을 결과로서 생기는 2-레벨 디더된 층(bi-level dithered layer) 위에 합성한다. 데이터열은 이상적으로는 프린트헤드에서 오버랩핑 세그먼트(overlapping segment)에 걸쳐 부드러운 변환(smooth transition)을 생성하기 위해서 조정되며, 이상적으로는 그것은 프린트헤드의 데드 노즐(dead nozzle)을 보상하기 위하여 조정된다. 6채널 2-레벨 데이터까지 이 단계에서 생성된다. 6개의 채널 전부가 프린트헤드 상에 존재할 수 있는 것은 아님에 주의하여야 한다. 예를 들어, 프린트 헤드는 CMY만이 있고, K는 CMY 채널로 푸싱되 고 IR은 무시하도록 할 수 있다. 또는, 만약 IR 잉크를 이용할 수 없으면(또는 테스트를 목적으로), 위치 태그가 K로 프린트될 수 있다. 결과로서 생기는 2-레벨 CMYK-IR 도트 데이터는 한 세트의 라인 버퍼(이하 참조)를 경유하여 프린트 헤드(33) 상에서 프린트되도록 버퍼되고 포맷(format)된다. 이들 라인 버퍼의 대부분은 이상적으로는 분리되어 떨어져 있는 칩의(off-chip) D램(34) 상에 저장될 수 있다. 최종 단계에서는 6채널 2-레벨 도트 데이터를 프린트헤드 인터페이스(32)를 경유하여 프린트한다.The print engine operates in a double buffer mode. While one page is loaded from the high speed serial interface 27 to the DRAM 34 via the DRAM interface 89 and the data bus 90, the previously loaded page is read from the DRAM 34 Pass through the print engine pipeline. Once the page has been printed, the just loaded page becomes the page to be printed, and a new page is loaded via the high speed serial interface 27. In the first stage, the pipeline enlarges the continuous tone (CMYK) layer compressed with any JPEG and expands the two-level data stream compressed with any two Group 4 faxes. Two rows are used for the black layer (although the PEC is actually color agnostic and this two-level layer can be indicated with any of the output inks) and for continuous tone dithering (see below). A matte for choosing from dither matrices. In the second step, in parallel with the first step, a predetermined tag for later rendering with infrared or black ink is encoded. Finally, in the third step, the continuous tone layer is dithered, and the location tag and the bi-level spot1 layer are synthesized on the resulting bi-level dithered layer. The data stream is ideally adjusted to create a smooth transition across the overlapping segments in the printhead, and ideally it is adjusted to compensate for dead nozzles in the printhead. . Up to six channels of two-level data can be generated at this stage. Note that not all six channels can exist on the printhead. For example, the printhead can only have CMY, K can be pushed to the CMY channel, and IR can be ignored. Or, if the IR ink is not available (or for testing purposes), the location tag may be printed as K. The resulting two-level CMYK-IR dot data is buffered and formatted to be printed on the print head 33 via a set of line buffers (see below). Most of these line buffers can ideally be stored on off-chip DRAM 34. In the final step, the six-channel two-level dot data is printed via the printhead interface 32.

도 4에서 하프토너/합성기 유닛(HCU, 29)은 연속톤(일반적으로 CMKY) 층을 2-레벨 버전의 동일한 것에 하프토닝하는 기능 및 스폿1 2-레벨 층을 적정한 하프토닝된 연속톤 층(들) 위에 합성하는 기능을 결합시킨다. 프린터에 K잉크가 없으면, HCU(29)는 K를 CMY 도트들에 적절하게 사상(map)할 수 있다. 그것 또한 디더 매트릭스 선택 맵에서 대응하는 값에 의거하여, 픽셀 대 픽셀(pixel by pixel)에 기초한 2개의 디더 매트릭스 중에서 선택한다. HCU(29)로의 입력은 버퍼(37)를 통한 (JPEG 디코더 유닛으로부터의) 확대된 연속톤 층(expanded contone layer), 버퍼(38)를 통한 확대된 2-레벨 스폿1 층, 일반적으로 버퍼(39)를 통한 연속톤 층과 동일한 해상도인 확대된 디더 매트릭스 선택 비트맵(dither-matrix-select bitmap) 및 버퍼(40)를 통한 완전 도트 해상도(full dot resolution)인 태그 데이터이다. HCU(29)는 외부 D램(34)으로부터 판독되는 2개까지의 디더 매트릭스를 사용한다. 41에서 HCU(29)로부터 라인 로더/포매터 유닛(LLFU)으로의 출력은 6개까지의 컬러 면에서의 한 세트의 프린터 해상도 2-레벨 이미지 라인이 된다. 전형적으로, 연속 톤 층은 CMYK 또는 CMY이며, 2-레벨 스폿1 층은 K이다.In Fig. 4, the halftoner / synthesizer unit (HCU) 29 has the ability to halfton the continuous tone (generally CMKY) layer to the same two-level version and the halftone toned continuous tone layer (suitable for spot1 two-level layers). S) combine the functions of synthesis. If the printer has no K ink, the HCU 29 can map K to CMY dots as appropriate. It also selects from two dither matrices based on pixel by pixel, based on the corresponding values in the dither matrix selection map. Input to HCU 29 is an expanded contone layer (from JPEG decoder unit) through buffer 37, an enlarged two-level Spotl layer through buffer 38, generally a buffer ( 39 is an enlarged dither-matrix-select bitmap at the same resolution as the continuous tone layer through 39 and tag data at full dot resolution through the buffer 40. The HCU 29 uses up to two dither matrices that are read from the external DRAM 34. At 41, the output from the HCU 29 to the line loader / formatter unit (LLFU) is a set of printer resolution two-level image lines in up to six colors. Typically, the continuous tone layer is CMYK or CMY and the two-level Spot1 layer is K.

도 5에는 HCU가 더욱 상세하게 나타낸다. 일단 시작되면, HCU는 페이지의 끝(page of end) 조건을 검출할 때까지 진행되거나, 명시적으로 자기의 컨트롤 레지스터(control register)를 통하여 정지될 때까지 진행된다. HCU의 제1 임무는 스케일 유닛(scale unit)(43)과 같은 각각의 스케일 유닛에서, 42와 같은 버퍼 면에서 수신되는, 모든 데이터를 수평적으로 및 수직적으로 프린터 해상도로 스케일하는 것이다.5 shows the HCU in more detail. Once started, the HCU proceeds until it detects a page of end condition or until it is explicitly stopped through its control register. The first task of the HCU is to scale all data received at the buffer side, such as 42, horizontally and vertically, at each resolution unit, such as scale unit 43, to the printer resolution.

스케일 유닛은 연속톤 또는 2-레벨 데이터를 수평적으로 및 수직적으로 프린터 해상도로 스케일하는 수단을 제공한다. 스케일(scaling)은 데이터 값(data value)을 양쪽 차원(dimension) 모두에서 정수 번 복제(replicate)함으로써 달성된다. 데이터를 스케일하는 프로세스는 당업자에게 익숙할 것이다.The scale unit provides a means for scaling continuous tone or two-level data horizontally and vertically to printer resolution. Scaling is achieved by replicating data values an integer number of times in both dimensions. The process of scaling data will be familiar to those skilled in the art.

마진 유닛(margin unit, 57)에 의하여 2개의 컨트롤 비트, 즉 어드밴스 도트(advance dot) 및 어드밴스 라인(advance line)이 스케일 유닛(43)에 제공된다. 어드밴스 도트 비트는 상태 머신(state machine)이 동일 도트 데이터의 복수의 인스턴스를 생성하도록 한다(프린트 헤드에 있어서 페이지 마진 및 오버랩핑 세그먼트를 위한 도트 데이터 생성에 유용). 어드밴스 라인 비트는 상태머신이 언제 특정 도트의 라인이 완료되었는지를 제어하도록 하고, 이에 의해 프린터 마진에 따라 데이터를 절단(truncation)하도록 한다. 그것은 또한 스케일 유닛이 특수한 라인의 끝(end-of-line) 논리를 필요로 하는 수고를 덜어 준다. 스케일 유닛으로의 입력은 풀 라인(full-line) 버퍼이다. 라인은 라인 복제를 거쳐 수직 업-스케일을 이루도 록 스케일 계수(scale factor)배로 이용되고, 각 라인내에서, 각 값은 픽셀 복제를 거쳐 수평 업-스케일을 이루도록 스케일 계수배로 이용된다. 일단 입력 라인이 스케일 계수배로 이용되어 왔으면(어드밴스 라인 비트는 스케일 계수배로 설정된다), 어드레스의 입력 버퍼 선택 비트는 토글된다(이중 버퍼링). 스케일 유닛을 위한 논리는, 스케일 유닛은 단지 어드레스만을 생성하기 때문에, 8-비트 및 1-비트 경우와 같다.The margin unit 57 provides two control bits, that is, an advance dot and an advance line, to the scale unit 43. Advanced dot bits allow a state machine to generate multiple instances of the same dot data (useful for generating dot data for page margins and overlapping segments in the printhead). The advance line bit allows the state machine to control when a line of a particular dot is completed, thereby truncating the data according to the printer margin. It also saves the trouble that the scale unit requires special end-of-line logic. The input to the scale unit is a full-line buffer. The lines are used as scale factor times to achieve vertical up-scale via line replication, and within each line, each value is used as scale factor times to achieve horizontal up-scale via pixel replication. Once the input line has been used with scale factor times (advanced line bits are set to scale factor times), the input buffer select bits of the address are toggled (double buffering). The logic for the scale unit is the same as the 8-bit and 1-bit case, because the scale unit only generates addresses.

각각의 연속톤 층은 상이한 해상도일 수 있기 때문에, 이들은 독립적으로 스케일된다. 버퍼(45)의 2-레벨 스폿1 층 및 버퍼(46)의 디더 매트릭스 선택 층 또한 스케일될 필요가 있다. 버퍼(47)의 2-레벨 태그 데이터는 올바른 해상도로 배치되므로 스케일될 필요가 없다. 스케일-업(scale-up) 디더 매트릭스 선택 비트는 디더 매트릭스 액세스 유닛(48)에 의하여 2개의 디더 매트릭스로부터 단일 8비트 값(single 8-bit value)을 선택하도록 이용된다. 8비트 값은 4개의 비교기(comparator)(44, 49-51)로 출력되며, 이들은 이것을 특정 8비트 연속톤 값과 단순 비교한다. 실제 디더 매트릭스의 생성은 프린트헤드의 구조에 좌우되며, 일반적인 생성 프로세스는 당업자에게 익숙할 것이다. 만약 연속톤 값이 8비트 디더 매트릭스값보다 크다면, 1이 출력된다. 만약 그렇지 않다면 0이 출력된다. 이들 비트는 그후 마진 유닛(margin unit)(57)으로부터의 인페이지 비트(inPage bit)와 함께 52 내지 56에서 모두 논리곱(AND)된다(특정 도트가 페이지의 인쇄 가능 영역 안에 있는지의 여부는 불문). HCU의 최종 단계는 합성 단계(composition stage)이다. 6개의 출력 층 각각에 대하여 각각 6개의 입력을 가지는, 유닛(58)과 같은 단 일 도트 병합 유닛(dot merger unit)이 존재한다. 각각의 도트 병합 유닛으로부터의 단일 출력 비트(single output bit)는 입력 비트의 일부 또는 전부의 조합(combination)이다. 이것은 스폿 컬러를 임의의 출력 컬러면(테스트를 목적으로 하는 적외선 포함)에 위치하도록 하고, 흑색을 시안, 마젠타 및 황색으로 병합되도록 하며(흑색 잉크가 프린트 헤드에 없는 경우), 태그 도트 데이터를 가시 면(visible plane)에 위치할 수 있도록 한다. 정착액 컬러면(fixative color plane) 또한 쉽게 생성될 수 있다. 도트 재편 유닛(dot reorg unit)(DRU)(59)은 주어진 컬러면에 대하여 생성된 도트열을 취하고, 출력이 세그먼트 순서(in segment order)가 되고, 세그먼트 안에서는 도트 순서대로 되도록 32비트 양(32-bit quantity)으로 편성하는 것을 담당한다. 오버랩핑 세그먼트를 위한 도트는 세그먼트 순서로 생성되지 않는 사실로 인하여, 최소의 재정렬(minimal reordering)이 요구된다.Since each continuous tone layer can be of different resolution, they are scaled independently. The two-level Spotl layer of buffer 45 and the dither matrix selection layer of buffer 46 also need to be scaled. The two-level tag data of the buffer 47 is arranged at the correct resolution and 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. The 8-bit value is output to four comparators 44 and 49-51, which simply compare it with a particular 8-bit contone value. The generation of the actual dither matrix depends on the structure of the printhead, and the general generation process will be familiar to those skilled in the art. If the continuous tone value is greater than the 8-bit dither matrix value, 1 is output. If not, 0 is printed. These bits are then ANDed from 52 to 56 together with the inPage bit from the margin unit 57 (whether or not a particular dot is within the printable area of the page). ). The final stage of the HCU is the composition stage. There is a single dot merger unit, such as unit 58, with six inputs for each of the six output layers. 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 infrared for testing purposes), blacks merged into cyan, magenta, and yellow (if black ink is not in the printhead), and the tag dot data is visible. Make sure it's on a visible plane. Fixative color planes can also be easily generated. A dot reorg unit (DRU) 59 takes a sequence of dots generated for a given color plane, outputs in in segment order, and within a segment, a 32 bit amount (32). -bit quantity). Due to the fact that dots for overlapping segments are not generated in segment order, minimal reordering is required.

마진 유닛(57)에 의하여 2개의 컨트롤 비트, 즉 어드밴스 도트(advance dot) 및 어드밴스 라인(advance line)이 스케일 유닛에 제공된다. 어드밴스 도트 비트는 상태 머신(state machine)이 동일 도트 데이터의 복수의 인스턴스를 생성하도록 한다(프린트 헤드에 있어서 페이지 마진 및 오버랩핑 세그먼트를 위한 도트 데이터 생성에 유용). 어드밴스 라인 비트는 상태머신이 언제 특정 도트의 라인이 완료되었는지를 제어하도록 하고, 이에 의해 프린터 마진에 따라 데이터를 절단(truncation)하도록 한다. 그것은 또한 스케일 유닛이 특수한 라인의 끝(end-of-line) 논리를 필요로 하는 수고를 덜어 준다. The margin unit 57 provides two control bits to the scale unit, namely, an advance dot and an advance line. Advanced dot bits allow a state machine to generate multiple instances of the same dot data (useful for generating dot data for page margins and overlapping segments in the printhead). The advance line bit allows the state machine to control when a line of a particular dot is completed, thereby truncating the data according to the printer margin. It also saves the trouble that the scale unit requires special end-of-line logic.                 

비교기 유닛(comparator unit)은 단순 8비트 "더 큰(greater-than)" 비교기를 포함한다. 그것은 8비트 연속톤 값이 8비트 디더 매트릭스 값보다 더 큰지 여부를 판단하는데 이용된다. 그 자체로서, 비교기 유닛은 2개의 8비트 입력을 취하여 단일한 1비트 출력을 생성한다.The comparator unit contains a simple 8 bit "greater-than" comparator. It is used to determine whether the 8-bit continuous tone value is greater than the 8-bit dither matrix value. As such, the comparator unit takes two 8-bit inputs and produces a single 1-bit output.

도 6에는 도트 병합 유닛이 더욱 상세하게 나타나 있다. 그것은 디더된 2-레벨 데이터(bi-level dithered data), 스폿1 컬러 및 태그 데이터를 실제 프린트헤드에서 출력 잉크로 사상(map)하는 수단을 제공한다. 각각의 도트 병합 유닛은 6개의 1비트 입력을 취하여, 그 컬러면을 위한 출력 도트를 표현하는 단일 비트 출력(single bit output)을 생성한다. 60에서의 출력 비트는 입력 비트의 일부 또는 전부의 조합이다. 이것은 스폿 컬러가 임의의 출력 컬러면(테스트를 위한 목적의 적외선 포함) 내에 위치하도록 하고, 흑색이 시안, 마젠타 및 황색으로 병합되도록 하며(프린트 헤드에 흑색 잉크가 없는 경우), 태그 도트 데이터가 가시면에 위치하도록 한다. 정착액을 위한 출력은 단순히 모든 입력 비트를 결합시킴으로써 쉽게 생성될 수 있다. 도트 병합 유닛은 6개의 입력 비트에 대한 마스크(mask)로 사용되는 6비트 컬러마스크(ColorMask) 레지스터(61)를 포함한다. 각각의 입력 비트는 대응되는 컬러마스크 레지스터 비트와 논리곱(AND)되며, 결과로서 생기는 6개의 비트는 최종 출력 비트를 형성하기 위하여 함께 논리합(OR)된다.6 illustrates the dot merging unit in more detail. It provides a means to map dithered bi-level dithered data, Spot1 color and tag data from the actual printhead to the output ink. Each dot merging unit takes six 1-bit inputs and produces a single bit output that represents the output dot for that color plane. The output bit at 60 is a combination of some or all of the input bits. This allows the spot color to be located within any output color plane (including infrared for testing purposes), blacks merged into cyan, magenta, and yellow (if there is no black ink in the printhead), and if tag dot data is visible To be located at The output for the fixer can be easily generated by simply combining all the input bits. The dot merging unit includes a 6-bit ColorMask register 61 used as a mask for six input bits. Each input bit is ANDed with the corresponding colormask register bit, and the resulting six bits are ORed together to form the final output bit.

도 7에는 주어진 컬러면에 대하여 생성된 도트열을 취하고, 출력이 세그먼트 순서대로 되고, 세그먼트 내에서는 도트 순서대로 되도록 도트열을 32비트 양으로 편성하는 것을 담당하는 도트 재편 유닛(dot reorg unit)(DRU)이 나타나있다. 오버 랩핑 세그먼트를 위한 도트는 세그먼트 순서로 생성되지 않는 사실에 기인하여, 최소한의 재정렬이 필요하다. DRU는 32비트 시프트 레지스터(32-bit shift register), 일반적인 32비트 레지스터 및 일반적인 16비트 레지스터를 포함한다. 5비트 카운터(counter)가 그때까지 처리되는 비트의 수를 계산한다. 디더 매트릭스 액세스 유닛(dither matrix access unit)(DMAU)으로부터의 도트 어드밴스(dot advance) 신호는 DRU에 어느 비트가 출력되어야 하는지를 지시하는데 이용된다.In Fig. 7, a dot reorg unit responsible for taking the generated dot sequence for a given color plane and organizing the dot sequence in 32-bit quantities so that the output is in the order of the segments and in the order of the dots within the segment ( DRU) is shown. Due to the fact that dots for overlapping segments are not generated in segment order, minimal reordering is necessary. The DRU includes a 32-bit shift register, a general 32 bit register and a general 16 bit register. A 5-bit counter counts the number of bits processed so far. A dot advance signal from a dither matrix access unit (DMAU) is used to indicate which bits should be output to the DRU.

도 7에서 레지스터(A)(62)는 매 사이클마다 클록된다. 그것은 도트 병합 유닛(dot merger unit)(DMU)에 의하여 생성된 32개의 가장 새로운 도트(most recent dots)를 포함한다. 32비트 값 전부는 매 32사이클마다 DRU 상태 머신(DRU state machine)에 의해 생성되어 단순 5비트 카운터를 경유하는 WriteEnable 신호에 의해서 레지스터(B)(63)로 복사된다. 레지스터(B)(63)에서 16개의 홀수 비트(비트 1,3,5,7 등)는 동일한 쓰기이네이블(WriteEnable) 펄스에 의하여 레지스터(C)(65)로 복사된다. 32비트 멀티플렉서(multiplexor)(66)는 그리고 나서 상태머신으로부터의 2개의 비트에 근거하여 다음의 3개 출력 중에서 선택을 한다:In Fig. 7, register (A) 62 is clocked every cycle. It contains the 32 most recent dots generated by the dot merger unit (DMU). All 32-bit values are generated by the DRU state machine every 32 cycles and copied to register (B) 63 by a WriteEnable signal via a simple 5-bit counter. Sixteen odd bits (bits 1, 3, 5, 7, etc.) in register (B) 63 are copied to register (C) 65 by the same Write Enable pulse. The 32-bit multiplexer 66 then selects from the following three outputs based on the two bits from the state machine:

ㆍ레지스터(B)로부터의 32비트 전부All 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 made from 16 even bits (bits 0, 2, 4, 6, etc.) of register A and 16 even bits of register B. Sixteen even bits from register A form bits 0-15, while sixteen even bits from register B form bits 16-31.

ㆍ레지스터 B의 16개의 홀수 비트(비트 1,3,5,7 등) 및 레지스터 C의 16개의 비트로부터 만들어지는 32비트 값. 레지스터 C의 비트가 비트 0 내지 15를 형성하는 한편, 레지스터 B로부터의 16개의 홀수 비트는 비트 16 내지 31을 형성한다.A 32-bit value created from 16 odd bits (register bits 1, 3, 5, 7, etc.) of register B and 16 bits of register C. The bits in register C form bits 0-15, while the 16 odd bits from register B form bits 16-31.

DRU를 위한 상태 머신이 표 1에 나타나 있다. 그것은 상태 0에서 개시된다. 그것은 매 32 사이클마다 상태를 변경한다. 32 사이클 동안에 단일 비오버랩(no-Overlap) 비트가 그 32 사이클에 대한 모든 도트 어드밴스(dot advance) 비트의 논리곱(AND)을 수집한다(사이클 0에서 noOverlap = dot advance, 사이클 1 내지 31에서 noOverlap = noOverlap AND dot advance).State machines for DRUs are shown in Table 1. It is initiated in state zero. It changes state every 32 cycles. During 32 cycles, a single no-overlap bit collects the AND of all dot advance bits for that 32 cycles (noOverlap = dot advance in cycle 0, noOverlap in cycles 1 through 31). = noOverlap AND dot advance).

[표 1] DRU를 위한 상태 머신Table 1 State Machines for DRUs

상태condition NoOverlapNooverlap 출력Print outputValidoutputValid 설명Explanation 다음 상태Next status 00 xx BB 00 개시 상태Initiation status 1One 1One 1One BB 1One 일반적인 비-오버랩Common non-overlap 1One 1One 00 BB 1One A가 최초 오버랩을 포함A contains the initial overlap 22 22 xx 짝수 A 짝수 BEven A Even B 1One A가 제2 오버랩을, B가 최초 오버랩을 포함A contains the second overlap and B contains the first overlap 33 33 xx C,홀수 BC, odd B 1One C가 최초 오버랩을, B가 제2 오버랩을 포함C contains the first overlap, B contains the second overlap

도 5에서, 마진 유닛(margin unit(MU))은 디더 매트릭스 액세스 유닛(dither matrix access unit)(DMAU)(48)으로부터의 어드밴스 도트(advance dot) 및 어드밴스 라인(advance line) 신호를, 현재 페이지의 페이지 마진에 기초하여, 일반적인 제어 신호로 바꾸는 것을 담당한다. 그것은 또한 페이지의 끝(end of page) 조건의 생성을 담당한다. 마진유닛(MU)은 페이지에 걸쳐 도트 및 라인의 카운터를 유지한다. 양자 모두 페이지의 시작에서 0으로 설정된다. 도트 카운터는 MU가 도트 어드밴스 신호를 DMAU로부터 수신할 때마다 1만큼씩 커진다. 마진유닛이 DMAU로부터 라인 어드밴스 신호를 수신하면, 라인 카운터(line counter)는 증가하고 도트 카운터는 0으로 리셋된다. 각각의 사이클마다, 현재 라인 및 도트 값은 페이지의 마진에 비교되며, 적절한 출력 도트 어드밴스(dot advance), 라인 어드밴스(line advance) 및 마진 범위 내(within margin) 신호는 이들 마진을 근거로 주어진다. DMAU는 단지 HCU를 위한 실질적인 메모리 요청만을 포함한다. In FIG. 5, a margin unit (MU) receives the advance dot and advance line signals from a dither matrix access unit (DMAU) 48, the current page. It is responsible for switching to a general control signal based on the page margin of. It is also responsible for creating an end of page condition. The margin unit MU maintains a counter of dots and lines throughout the page. Both are set to zero at the beginning of the page. The dot counter is incremented by one each time the MU receives a dot advance signal from the DMAU. When the margin unit receives the line advance signal from the DMAU, the line counter is incremented and the dot counter is reset to zero. For each cycle, the current line and dot values are compared to the margin of the page, and the appropriate output dot advance, line advance and within margin signals are given based on these margins. The DMAU only contains the actual memory request for the HCU.

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

위에서 참조된 프린트헤드 상의 분사 노즐(firing nozzle) 즉, 2개의 다른 오프셋 열(row)에서의 노즐의 물리적인 배치는 동일한 컬러의 홀수 및 짝수 도트가 2개의 다른 라인을 위한 것임을 의미한다. 짝수 도트는 라인 L을 위한 것이고, 홀수 도트는 라인 L-2를 위한 것이다. 또한, 1개의 컬러의 도트와 또 다른 컬러의 도트와의 사이에 많은 라인이 존재한다. 동일한 도트 위치에 대한 6 컬러면이 HCU에 의해 한번에 계산되기 때문에, 동일한 도트가 적절한 컬러 노즐 아래에 위치할 때까지 각각의 컬러면을 위한 도트 데이터를 지연시킬 필요가 있다.The physical arrangement of the firing nozzles on the printhead referred to above, ie the nozzles in two different offset rows, means that the odd and even dots of the same color are for two different lines. Even dots are for line L and odd dots are for line L-2. In addition, many lines exist between dots of one color and dots of another color. Since six color planes for the same dot position are computed at once by the HCU, it is necessary to delay the dot data for each color plane until the same dot is located under the appropriate color nozzle.

각 버퍼 라인의 크기는 프린트헤드의 폭에 따른다. 단일 프린트 엔진/컨트롤 러(PEC)는 15개 까지의 프린트헤드 세그먼트에 대한 도트를 생성하기 때문에, 단일한 홀수 또는 짝수 버퍼 라인은 따라서 총 9600비트(1200 bytes)에 대해서 15 세트의 640도트가 된다. 예를 들어, 버퍼는 컬러 6개의 홀수 도트를 위해 거의 총 45KByte를 필요로 하였다.The size of each buffer line depends on the width of the printhead. Because a single print engine / controller (PEC) generates dots for up to 15 printhead segments, a single odd or even buffer line is therefore 15 sets of 640 dots for a total of 9600 bits (1200 bytes). . For example, the buffer required a total of almost 45 KBytes for six odd dots of color.

도 10에는 컬러 N OESplit을 위한 블록도가 나타나 있고(도 9의 Oesplit(70)를 참조), 도 9에서의 2개의 버퍼(E 및 F)(71, 72) 각각에 대한 블록도를 도 10 및 도 11에서 찾을 수 있다. 버퍼(EF)는 이중 버퍼 메커니즘으로 데이터를 프린트헤드 인터페이스(PHI, 도 3의 32)로 전송한다. 따라서 버퍼(E 및 F)는 동일한 구조를 가진다. 도트의 라인을 처리하는 동안에, 2개의 버퍼 중 하나는 기록(writing)되는 한편, 다른 하나는 판독(reading)된다. 2개의 버퍼는 라인-싱크(line-sync) 신호를 PHI로부터 수신에 따라 논리적으로 교체(logical swapping)된다. 양 버퍼(E 및 F)는, 도 11에 나타낸 컬러 1 서브-버퍼(73)와 같이, 컬러당 1개의 서브-버퍼로, 모두 6개의 서브-버퍼(sub-buffer)로 이루어진다. 각 서브-버퍼의 크기는 2400byte로, 세그먼트 당 1280 도트로 15개의 세그먼트를 수용하기에 충분하다. 메모리는 한번에 32비트가 액세스되어, 각 (10비트의 어드레스를 요구하는) 각 서브-버퍼를 위해 600개의 어드레스가 존재한다. 모든 짝수 도트는 각각의 컬러 서브-버퍼에서 홀수 도트 앞에 위치한다. (15개보다 적은 세그먼트에 프린팅하기 위해서) 사용되지 않은 어느 공간이 있으면, 그것은 각 컬러 서브-버퍼의 끝에 위치한다. 각 서브-버퍼에서 실제로 이용된 메모리의 총량은 프린트 엔진/컨트롤러(PEC)에 의해 실제로 어드레스된 세그먼트의 수와 직접적으로 관련된다. 15개의 세그먼트 프린트 헤드를 위해, 사용되지 않은 공간 없이 1200byte의 짝수 도트 및 그 뒤의 1200byte의 홀수 도트가 존재한다. 이익이 되게 사용되는 서브-버퍼의 수는 프린트헤드에서 사용되는 컬러의 수와 직접적으로 관련된다. 지원되는 컬러 수의 최대는 6이다.FIG. 10 shows a block diagram for color N OESplit (see Oesplit 70 in FIG. 9), and a block diagram for each of the two buffers (E and F) 71, 72 in FIG. And in FIG. 11. The buffer EF transfers data to the printhead interface PHI 32 of FIG. 3 by a dual buffer mechanism. Thus, buffers E and F have the same structure. While processing a line of dots, one of the two buffers is written while the other is read. The two buffers are logically swapped upon receipt of a line-sync signal from the PHI. Both buffers E and F, like the color 1 sub-buffer 73 shown in Fig. 11, consist of one sub-buffer per color and all six sub-buffers. Each sub-buffer is 2400 bytes in size, enough to accommodate 15 segments at 1280 dots per segment. The memory is accessed 32 bits at a time, so there are 600 addresses for each sub-buffer (which requires an address of 10 bits). All even dots are located before the odd dots in each color sub-buffer. If there is any unused space (for printing on less than 15 segments), it is located at the end of each color sub-buffer. The total amount of memory actually used in each sub-buffer is directly related to the number of segments actually addressed by the print engine / controller (PEC). For a 15 segment print head, there are 1200 bytes of even dots and 1200 bytes of odd dots following without unused space. The number of sub-buffers used beneficially is directly related to the number of colors used in the printhead. The maximum number of colors supported is six.

각각의 버퍼(E 및 F)를 위한 어드레스 디코딩 회로부는 주어진 사이클내에, 6개의 서브-버퍼에서, 6개 모두에서 판독되거나 6개 중 하나에서 기록되도록, 단일 32 비트 액세스가 모두 이루어질 수 있는 것과 같다. 총 6개의 출력 비트에 대해, 각 컬러 버퍼로부터 판독된 32비트 중 1개의 비트만이 선택된다. 그 프로세스는 도 11에 나타나 있다. 15비트의 어드레스는, 32비트를 선택하는데 이용되는 10비트의 어드레스에 의하여 특정 비트를 판독하도록 하고, 5비트의 어드레스는 32비트에서 1비트를 선택한다. 모든 컬러 서브-버퍼들이 이 논리를 공유하기 때문에, 단일 15-비트 어드레스는 컬러당 1비트 씩 총 6비트의 출력을 내보낸다. 각각의 서브-버퍼(73 내지 78)는 단일 32비트 값이 주어진 사이클에서 특정 컬러 버퍼에 기록되도록 하는 그 자신의 WriteEnable 라인을 가진다. 개개의 WriteEnable은 단일 WriteEnable 입력과 컬러선택(ColorSelect)의 디코딩된 형태와의 논리곱(AND)에 의해 생성된다. 오직 1개의 버퍼만이 실제로 데이터를 클록하기 때문에, 라인(79) 상의 32비트의 데이터인(DataIn)이 공유된다.The address decoding circuitry for each buffer E and F is as if a single 32-bit access could all be made, in a given cycle, in six sub-buffers, all in six, or in one of six. . For a total of six output bits, only one bit of the 32 bits read from each color buffer is selected. The process is shown in FIG. An address of 15 bits causes a specific bit to be read out by an address of 10 bits used to select 32 bits, and an address of 5 bits selects 1 bit from 32 bits. Because all color sub-buffers share this logic, a single 15-bit address produces a total of 6 bits of output, 1 bit per color. Each sub-buffer 73-78 has its own WriteEnable line that allows a single 32-bit value to be written to a particular color buffer in a given cycle. Each WriteEnable is generated by the AND of a single WriteEnable input and the decoded form of ColorSelect. Since only one buffer actually clocks the data, 32 bits of data (DataIn) on line 79 are shared.

버퍼(E 및 F)로부터 판독하기 위한 어드레스 생성은 간단하다. 각 사이클마다 특정 세그먼트에 대한 컬러당 1 비트씩을 나타내는 6비트를 할당하는데 이용되는 1비트 어드레스를 생성한다. 현재 비트 어드레스에 640을 더함으로써, 다음 세그먼트의 등가 도트로 진행한다. 홀수 및 짝수 도트들이 버퍼에서 분리되기 때문 에, (1280이 아닌) 640을 더한다. 이를 NumSegment번 반복하여 짝수 도트를 나타내는 데이터를 검색하고, 그 비트들을 프린트헤드 인터페이스(PHI)로 전송한다. NumSegment = 15 이면, 비트의 수는 90(15 ×60비트)이다. 프로세스는 다음으로 홀수 도트에 대해 반복된다. 전체 짝수/홀수 비트 생성 프로세스는 640번 되풀이되면서, 매번 시작 어드레스를 증가시킨다. 따라서, 모든 도트 값이 640 ×2 ×NumSegment 사이클에 프린트헤드에 의해 요구되는 순서로 PHI에 전송된다. NumSegment = 15 이면, 사이클의 수는 19,200이 된다. 프린트헤드에서 실제로 사용되는 컬러의 수에 관계없이, 6비트가 주어진 판독 사이클에서 (각 컬러 버퍼 당 1 비트씩) 생성되는 것에 유의해야 한다.Address generation for reading from the buffers E and F is simple. Each cycle produces a one-bit address that is used to allocate six bits representing one 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. Since odd and even dots are separated in the buffer, add 640 (not 1280). This is repeated NumSegment times to retrieve data representing even dots and send the bits to the printhead interface (PHI). If NumSegment = 15, the number of bits is 90 (15 x 60 bits). The process is then repeated for odd dots. The entire even / odd bit generation process is repeated 640 times, increasing the starting address each time. Thus, all dot values are sent to the PHI in the order required by the printhead in 640 x 2 x Num Segment cycles. If NumSegment = 15, the number of cycles is 19,200. Note that six bits are generated (one bit for each color buffer) in a given read cycle, regardless of the number of colors actually used in the printhead.

또, 도 9에서의 90비트 전송 레지스터에 기록하기 위한 TWriteEnable 컨트롤 신호를 생성한다. 라인 로더/포맷 유닛(LLFU)이 프린트헤드 인터페이스(PHI) 앞에서 개시되기 때문에, PHI로부터 어드밴스(Advance) 펄스 전에 제1 값을 전송해야 한다. 또한, 제1 어드밴스 펄스를 위한 준비를 갖추고 다음 값을 생성한다. 그 솔루션은 제1 값을 전송 레지스터에 NumSegment사이클 후에 전송하며, 다음으로 NumSegments사이클을 멈추고, NumSegment사이클 그룹을 개시하기 위한 어드밴스 펄스를 기다리는 것이다. 일단 제1 어드밴스 펄스가 도착하면, 라인 로더/포맷 유닛(LLFU)은 프린트헤드 인터페이스(PHI)에 동기된다.In addition, a TWriteEnable control signal for writing to the 90-bit transfer register in FIG. 9 is generated. Since the line loader / format unit (LLFU) is initiated in front of the printhead interface PHI, the first value must be transmitted before the advance pulse from the PHI. It also prepares for the first advance pulse and produces the next value. The solution is to send the first value to the transfer register after a NumSegment cycle, then stop the NumSegments cycle and wait for an advance pulse to start the NumSegment cycle group. Once the first advance pulse arrives, the line loader / format unit LLFU is synchronized to the printhead interface PHI.

단일 도트라인을 위한 판독 프로세스는 아래의 의사코드(pseudocode)에 나타나 있다.The readout process for a single dotline is shown in pseudocode below.

DoneFirst = FALSE DoneFirst = FALSE                 

WantToXfer = FALSEWantToXfer = FALSE

For DontlnSegment0 = 0 to 1279For DontlnSegment 0 = 0 to 1279

lf(DontlnSegment0:bit0 == 0)    lf (DontlnSegment0: bit0 == 0)

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

Endlf    Endlf

XfersRemaining = NumSegments    XfersRemaining = NumSegments

DoDo

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

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

DoneFirst = DoneFirst OR TWriteEnable    DoneFirst = DoneFirst OR TWriteEnable

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

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

lf(SWriteEnable)    lf (SWriteEnable)

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

CurrAdr = CurrAdr + 640        CurrAdr = CurrAdr + 640

XfersRemaining = XfersRemaining - 1        XfersRemaining = XfersRemaining-1

Endlf    Endlf

Until(TWriteEnable)   Until (TWriteEnable)

EndForEndfor

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

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

판독 프로세스가 데이터를 E 또는 F로부터 프린트헤드 인터페이스(PHI)에 전송하는 동안에, 기록 프로세스(write process)는 다른 버퍼에서 다음 도트-라인을 준비한다.While the read process transfers data from E or F to the printhead interface PHI, the write process prepares the next dot-line in another buffer.

E 또는 F에 기록되는 데이터는 하프토너/합성기 유닛(HCU)에 의해 생성되는 컬러 1 데이터와, (DRAM에서 공급되는) 버퍼(D)로부터의 컬러 2 - 6 데이터이다. 컬러 1 데이터는 HCU의 출력유효(OuputValid) 플래그가 설정될 때마다 기록되고, 컬러 2 - 6 데이터는 다른 시간 동안에 레지스터(C)로부터 기록된다.The data written to E or F are color 1 data generated by the half-toner / synthesizer unit (HCU) and color 2-6 data from the buffer D (supplied from the DRAM). Color 1 data is written each time the OutputValid flag of the HCU is set, and color 2-6 data is written from the register C for another time.

도 9에서, 버퍼(OE1, 81)는, 컬러 1을 위한 인접하는 32도트의 단일 HCU로 생성된 세트를 유지하는데 이용되는, 32비트 레지스터이다. 도트들은 그 페이지 상에서 인접하지만, 홀수 및 짝수 도트는 다른 때에 프린트된다. In Figure 9, the buffer (OE 1 , 81) is a 32-bit register used to maintain the set generated by a single 32-dot HCU for adjacent color 1. The dots are contiguous on the page, but odd and even dots are printed at different times.

버퍼(AB, 82)는 이중 버퍼 메커니즘으로, 컬러 1을 위한 홀수 도트 데이터를 2 도트라인 만큼 지연시킨다. 따라서, 버퍼(A 및 B)는 동일한 구조를 가진다. 1 라인의 도트를 처리하는 동안에, 2개의 버퍼 중에 하나는 판독되고 그 다음에 기록된다. 2개의 버퍼는 모든 도트 라인이 처리된 후에 논리적으로 교체(logical swapping)된다. 단일 비트 플래그 ABSense는 2개의 버퍼중에 어느것을 판독하고 기록할지를 결정한다.The buffers AB and 82 are double buffer mechanisms that delay odd dot data for color 1 by 2 dot lines. Thus, the buffers A and B have the same structure. While processing one line of dots, one of the two buffers is read and then written. The two buffers are logically swapped after all the dot lines have been processed. The single bit flag ABSense determines which of the two buffers to read and write.

하프토너/합성기 유닛(HCU)은, 출력 유효 컨트롤 플래그가 설정될 때마다, 32비트의 컬러 1 데이터를 제공하고, 그것은 제1 플래그가 라인에 보내진 후 매 32 사이클마다 이루어진다. 32비트는 단일 도트 라인 즉, 16개의 짝수 도트(비트 0, 2, 4 등등) 및 16개의 홀수 도트(비트 1, 3, 5 등등)를 위한 32 도트의 인접하는 세트를 규정한다. 출력 유효 컨트롤 플래그는 OE1 레지스터(81)을 위한 WriteEnable 컨트롤로서 이용된다. 2개의 출력유효 신호마다 HCU 데이터를 처리한다. HCU 컬러 1 데이터의 16개의 짝수 비트는 레지스터(OE1)의 16개 짝수 비트와 결합되어, 32 비트의 짝수 컬러 1 데이터를 만든다. 마찬가지로, HCU 컬러 1 데이터의 16개의 홀수 비트는 레지스터(OE1)의 16개의 홀수 비트와 결합되어, 32비트의 홀수 컬러 1 데이터를 만든다. 2개 그룹중에 제1 출력유효 신호를 수신하면, 버퍼(AB)를 판독하여 홀수 데이터를 버퍼(EF)내의 컬러 1(도 11에서의 73)에 전송한다. 2개 그룹중에 제2 출력유효 신호를 수신하면, 32비트의 홀수 데이트를 앞서 판독한 버퍼(AB)에서의 동일한 위치에 기록하고, 32비트의 짝수 데이터를 버퍼(EF) 내의 컬러 1에 기록한다.The half toner / synthesizer unit (HCU) provides 32 bits of color 1 data whenever the output valid control flag is set, which is done every 32 cycles after the first flag is sent to the line. The 32 bits define a contiguous set of 32 dots for a single dot line, that is, 16 even dots (bits 0, 2, 4, etc.) and 16 odd dots (bits 1, 3, 5, etc.). The output valid control flag is used as the 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. Likewise, 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 receiving the first output valid signal of the two groups, the buffer AB is read and odd data is sent to color 1 (73 in FIG. 11) in the buffer EF. Upon receiving the second output valid signal in the two groups, 32 bits of odd data are written to the same position in the previously read buffer AB, and 32 bits of even data are written to color 1 in the buffer EF. .

HCU는, 출력유효(Output valid) 컨트롤 플래그가 설정될 때마다, 컬러면 당 32비트의 데이터를 제공한다. 특정 개시 시간 동안을 제외하고 매 32사이클 마다 이루어진다. 32비트는 단일 도트 라인, 즉 16개의 짝수 도트(비트 0, 2, 4 등등) 및 16개의 홀수 도트(비트 1, 3, 5)를 위한 32도트의 인접하는 세트를 규정한다.The HCU provides 32 bits of data per color plane whenever the Output valid control flag is set. Every 32 cycles except during a specific start time. The 32 bits define a contiguous set of 32 dots for a single dot line, that is, 16 even dots (bits 0, 2, 4, etc.) and 16 odd dots (bits 1, 3, 5).

버퍼(OE1 도 10에서 83)는 컬러 1을 위한 단일 32비트 값을 저장하는데 사용되는 한편, 버퍼(OE2 내지 OE6)는 각각 컬러 2 내지 6을 위한 단일 32비트 값을 저장 하는데 사용된다. 컬러 1을 위한 데이터가, (매 2번째 출력유효 플래그마다 한번씩) 매 64 사이클 마다, 컬러 1 홀수 도트를 나타내는 32비트 및 컬러 1 짝수 도트를 나타내는 32비트로 분할되고, 남아있는 컬러면 또한 짝수 및 홀수 도트로 분할된다.Buffers OE 1 83 in FIG. 10 are used to store a single 32-bit value for color 1, while buffers OE 2 through OE 6 are each used to store a single 32-bit value for colors 2 to 6. . The data for color 1 is divided into 32 bits representing color 1 odd dots and 32 bits representing color 1 even dots, every 64 cycles (once for every second output valid flag), and the remaining color planes are also even and odd. It is divided into dots.

그러나, 버퍼(EF)에 직접 기록되는 대신에, 도트 데이터는 라인 수만큼 지연되고, 버퍼(CD, 도 9의 84)를 거쳐 DRAM에 기록된다. 주어진 라인에 대한 도트는 DRAM에 기록되고, 앞선 라인에 대한 도트는 DRAM으로부터 판독되고 버퍼(EF, 71, 72)에 기록된다. 이 프로세스는 버퍼(EF)에 컬러 1을 기록하는 프로세스에 삽입(interleave)되어 행해져야 한다.However, instead of writing directly to the buffer EF, the dot data is delayed by the number of lines and written to the DRAM via the buffer CD (84 in FIG. 9). The dot for a given line is written to the DRAM, and the dot for the preceding line is read from the DRAM and written to the buffers EF, 71, 72. This process must be performed by interleaving in the process of writing color 1 to the buffer EF.

출력유효 플래그가 라인(도 10의 85) 상에 HCU로부터 수신될 때마다, 32비트의 컬러 N 데이터는 버퍼(OEN, 83)에 기록된다. 매 2개의 출력유효 플래그마다 한번씩, 조합된 64비트 값은 컬러 버퍼 N(86)에 기록된다. 이것은 모든 컬러면(2-6)에 대해 동시에 일어난다. 컬러 버퍼 N(86)은 40세트의 64비트(320byte)를 포함하여, 2개의 완전한 세그먼트를 위한 도트가 저장될 수 있도록 한다. 이것은 이전의 세그먼트 데이터(홀수 및 짝수 양쪽 모두)를 위한 완전한 세그먼트 생성 시간(20 ×64 = 1280 사이클)이 DRAM에 기록될 수 있도록 한다. 기록을 위한 어드레스 생성은 간단하다. 라인(87) 상의 ColorNWriteEnable 신호는 매 2번째 출력유효 플래그마다 주어진다. 어드레스는 0에서 시작하며, 39까지 매 2번째 출력유효 플래그마다 증가한다. 40으로 진행하는 대신에, 어드레스는 0으로 재설정되고, 따라서 이중 버퍼링 구조를 제공한다. 이것은 판독이 출력유효 플래그 동안에 일어나지 않는 한 유효하며, 이전의 세그먼트 데이터는 단일 세그먼트 데이터를 생성하는데 걸리는 시간에 DRAM에 기록될 수 있다. 아래의 의사코드에 프로세스가 나타나 있다.Each time an output valid flag is received from the HCU on a line (85 in FIG. 10), 32 bits of color N data are stored in a buffer (OE N , 83). Once every two output valid flags, the combined 64-bit value is written to color buffer N86. This happens simultaneously for all color planes 2-6. Color buffer N 86 contains 40 sets of 64 bits (320 bytes), allowing dots for two complete segments to be stored. This allows the complete segment creation time (20 x 64 = 1280 cycles) for previous segment data (both odd and even) to be written to the DRAM. Generating an address for writing is simple. The ColorNWriteEnable signal on line 87 is given for every second output valid flag. The address starts at zero and increments every second output valid flag up to 39. Instead of proceeding to 40, the address is reset to zero, thus providing a double buffering structure. This is valid unless a read occurs during the output valid flag, and previous segment data can be written to the DRAM in the time it takes to generate single segment data. The process is shown in the pseudocode below.

adr = 0adr = 0

firstEncountered = 0firstEncountered = 0

While(NOT AdvanceLine)While (NOT AdvanceLine)

lf(HCU_OutputValid)AND(firstEncountered)   lf (HCU_OutputValid) AND (firstEncountered)

ColorNWriteEnable = TRUE         ColorNWriteEnable = TRUE

ColorNAdr = adr         ColorNAdr = adr

lf(adr == 39)         lf (adr == 39)

adr = 0             adr = 0

Else          Else

adr = adr + 1             adr = adr + 1

Endlf          Endlf

Else      Else

ColorNWriteEnable = FALSE         ColorNWriteEnable = FALSE

Endlf      Endlf

lf(HCU_OutputValid)      lf (HCU_OutputValid)

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

Endlf       Endlf                 

EndWhileEndWhile

판독을 위한 어드레스 생성은 DRAM 액세스(판독 및 쓰기 양쪽 모두), 버퍼(EF) 액세스 및 컬러 1 생성을 위한 타이밍에 따르기 때문에, 더욱 까다롭다. 아래에서 보다 상세하게 설명한다.Address generation for reading is more demanding because it depends on the timing for DRAM access (both read and write), buffer (EF) access, and color 1 generation. It will be 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으로부터 판독될 때까지 적절한 수의 라인이 될 것이다. 이점에 있어서, DRAM은 FIFO의 형태로 동작한다. 결과적으로, 컬러 N(홀수 또는 짝수)은 DRAM으로부터 버퍼(D)로 판독되고, 동시에 컬러 N(동일한 홀수/짝수 검출)을 버퍼(C)에 복사한다. 데이터를 버퍼(C)에 복사하는데는 20번의 전송 동안에 유효출력 플래그가 발생하는지에 따라 20 또는 21 사이클이 걸린다. 일단 양쪽 임무가 모두 완료하면(대개, DRAM 액세스가 보다 느린 작업이다), 프로세스의 제2 부분이 개시된다. 버퍼(C)내의 데이터는 (판독된 곳과 동일한 위치의) DRAM에 기록되고, 버퍼(D)의 데이터는 버퍼(EF)에 복사된다(또, 컬러 1 데이터가 전송되고 있기 때문에, 출력유효 플래그가 설정될 때, 버퍼(EF)로 전송되는 컬러 N 데이터는 없다). 양쪽 임무가 모두 완료되면, 동일한 프로세스가 컬러 N(짝수 또는 홀수)의 다른 검출을 위해 일어나고, 다음에 남아있는 컬러의 각각의 검출을 위해 동일한 프로세스가 일어난다. 완전한 이중 프로세스는 10번 발생한다. DRAM에 존재하는 각각의 현재 라인을 위한 어드레스는 다음 라인의 프로세스를 개시하기 위해 갱신된다.Address generation for buffers C, D, E, F and color N all depend on the timing of the DRAM access and should not interfere with color 1 processing with respect to 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. Once data is read from the DRAM, the dots are replaced according to the value of ColorBufferN. For each color in odd and even dots. After the full segment amount of dots has accumulated (20 sets of 64 cycles), the process starts again. Once data for all segments in a given print line is transferred from or to the DRAM, the current address for the color DRAM buffer is increased, so that the appropriate number of lines until specific data for the color line is read from the DRAM. Will be In this regard, the DRAM operates in the form of a FIFO. As a result, the color N (odd or even) is read from the DRAM into the buffer D, and at the same time copies the color N (same odd / even detection) into the buffer C. Copying data to buffer C takes 20 or 21 cycles depending on whether the valid output flag occurs during 20 transfers. Once both tasks are completed (usually a slower DRAM access), the second part of the process is initiated. The data in the buffer C is written to the DRAM (at the same position as the read position), and the data of the buffer D is copied to the buffer EF (and since the color 1 data is being transferred, the output valid flag Is set, there is no color N data transferred to the buffer EF). Once both tasks are completed, the same process takes place for another detection of color N (even or odd) and then the same process takes place for each detection of the remaining color. The full duplex process occurs 10 times. The address for each current line present in the DRAM is updated to start the process of the next line.

어드레스 생성 프로세스는 20 ×32 비트 판독(read) 및 그 뒤의 20 ×32 비트 기록(write)으로 이루어지는 NumSegment 분량의 10세트로서 고려될 수 있고, 이것은 아래의 의사코드에서 나타나 있다.The address generation process can be considered as 10 sets of NumSegment quantities consisting of a 20x32 bit read followed by a 20x32 bit write, which is shown in the pseudocode below.

EFStartAdr = 0EFStartAdr = 0

Do NumSegments times:Do NumSegments times:

For CurrColor = 0 to MaxHalfColors For 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 = 0       ColorNAdr = 0

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

lf(NOT HCU_OutputValid)          lf (NOT HCU_OutputValid)

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

ColorNAdr = ColorNAdr + 1        ColorNAdr = ColorNAdr + 1                 

Endlf    Endlf

EndWhile  EndWhile

EndWhile - wait until read has finished
EndWhile-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 = 0    ColorNAdr = 0

EFAdr = EFStartAdr    EFAdr = EFStartAdr

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

lf(NOT HCU_OutputValid)      lf (NOT HCU_OutputValid)

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

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

EFStartAdr = EFAdr + 1            EFStartAdr = EFAdr + 1

ELSE        ELSE

EFAdr = EFAdr + 1            EFAdr = EFAdr + 1

Endlf        Endlf

ColorNAdr = ColorNAdr + 1        ColorNAdr = ColorNAdr + 1

Endlf     Endlf

EndWhile   EndWhile

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

lf(DRAMStartAddress == DRAMMaxVal)     lf (DRAMStartAddress == DRAMMaxVal)                 

colorCurrAdr[currColor] = round up DRAMStartAddress to next 1KByte pagecolorCurrAdr [currColor] = round up DRAMStartAddress to next 1KByte page

Else    Else

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

Endlf
Endlf

lf(Segment==maxSegments)       lf (Segment == maxSegments)

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

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

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

Else   Else

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

Endlf   Endlf

Endlf     Endlf

EndFor  Endfor

EndDoEnddo

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

최대하프컬러(MaxHalfColors) 레지스터는, 별개로 다뤄지는 홀수 및 짝수 컬러 조건에서의 컬러 수보다 1이 작지만, 컬러 1을 포함하지 않음에 유의해라. 예를 들어, 표준 6 컬러 프린팅 시스템의 조건에서, 10이 존재하고(홀수 및 짝수에서 컬러 2 - 6),따라서 MaxHalfColor는 9로 설정되어야 한다. Note that the MaxHalfColors register is one less than the number of colors in odd and even color conditions, which are handled separately, but do not include color 1. For example, under the conditions of a standard 6 color printing system, 10 is present (colors 2-6 at odd and even), so MaxHalfColor should be set to 9.                 

라인로더/포맷 유닛(LLFU)은 프린트헤드 인터페이스(PHI)를 위해 제1 180비트의 데이터를 준비하기 위해 2NumSegment 사이클을 필요로 한다. 결과적으로 LLFU가 개시된 후 이 시간 주기에 프린트헤드는 개시되어야 하고 제1 라인싱크(LineSync) 펄스가 일어나야 한다. 이것은 초기 전송(Transfer) 값이 유효하도록 하고, 다음 90비트 값이 전송 레지스터 내로 적재되도록 준비되게 한다.The line loader / format unit (LLFU) requires 2 NumSegment cycles to prepare the first 180 bits of data for the printhead interface (PHI). As a result, during this time period after the LLFU is initiated, the printhead must be started and a first LineSync pulse should occur. This allows the initial Transfer value to be valid and prepares the next 90-bit value to be loaded into the transfer register.

프린트헤드 인터페이스(PHI)는, 프로세서가 프린트할 도트를 프린트헤드에 적재하는 수단이며, 실제 도트 프린팅 프로세스를 제어한다. 그것은 입력을 LLFU로부터 취하고, 데이터를 프린트헤드에 출력한다. PHI는 다양한 프린트헤드 길이 및 포맷을 처리할 수 있다. PHI의 내부 구조는 전송당 최대 6컬러, 8세그먼트 및 최대 2 세그먼트 그룹을 고려할 수 있다. 이것은 풀 블리드(full bleed)로 A4/Letter 크기를 인쇄할 수 있는 15세그먼트(8.5인치) 프린터로 충분하다.The printhead interface (PHI) is a means by which the processor loads dots for printing into the printhead and controls the actual dot printing process. It takes input from LLFU and outputs data to the printhead. PHI can handle a variety of printhead lengths and formats. The internal structure of the PHI may take into account up to six colors, eight segments and up to two segment groups per transmission. This is enough for a 15-segment (8.5-inch) printer capable of printing A4 / Letter sizes at full bleed.

조합된 프린트헤드의 특성화 벡터는 직렬 인터페이스를 거쳐 판독될 수 있다. 특성화 벡터는 상대적인(relative) 세그먼트 정렬 데이터 뿐만 아니라 데드 노즐 정보를 포함할 수 있다. 각각의 프린트헤드 세그먼트는 그것의 저속 직렬 버스를 통해 조회받아, 세그먼트의 특성화 벡터를 되돌려보낼 수 있다. 복수의 프린트헤드로부터 특성화 벡터는 전체 프린트헤드를 위한 노즐 결함 리스트를 작성하도록 결합될 수 있고, 프린트 엔진이 프린트 중에 결함있는 노즐에 대해 보상할 수 있도록 한다. 결함있는 노즐의 수가 작으면, 보상에 의하여 결함있는 노즐이 없는 프린트헤드와 구별할 수 없게 되는 결과를 낳을 수 있다.Characterization vectors of the combined printheads can be read via a serial interface. The characterization vector may include dead nozzle information as well as relative segment alignment data. Each printhead segment can be queried through its low speed serial bus, returning the segment's characterization vector. Characterization vectors from the plurality of printheads can be combined to create a nozzle defect list for the entire printhead, allowing the print engine to compensate for defective nozzles during printing. If the number of defective nozzles is small, compensation may result in indistinguishable from a printhead without a defective nozzle.

각각의 세그먼트는 특성화 벡터를 위해 384비트를 가지며, 다음과 같이 구성 되어 있다.Each segment has 384 bits for the characterization vector and consists of:

ㆍ세그먼트에서 표현되는 컬러의 수 및 시리얼(serial) 수를 포함하는, 64 비트의 플래그 및 프린트헤드 세그먼트 정보64-bit flag and printhead segment information, including the number of colors and serial number represented in the segment.

ㆍ앞의 세그먼트(0 = 제1 세그먼트)와 관련되는 16비트의 정렬(alignment) 데이터16-bit alignment data associated with the preceding segment (0 = first segment)

ㆍ남아있는 비트를 모두 사용하는, 가변 길이의(variable lengthed) 결함있는 노즐 리스트Variable lengthed defective nozzle list using all remaining bits

결함있는 노즐 리스트는 길이가 가변되며, 각 세트의 결함있는 노즐은 아래의 구조를 가진다.The defective nozzle list is variable in length, and each set of defective nozzles has the following structure.

ㆍ5 비트 카운트(0 = 리스트의 끝(end-of-list))5-bit count (0 = end-of-list)

ㆍ3비트의 컬러3 bit color

ㆍ카운트 ×11비트, 결함있는 노즐당 1개의 엔트리(entry)Count x 11 bits, 1 entry per defective nozzle

일반적인 조건에서, 프린트헤드 세그먼트는 표 12에서 정의되는 것과 같은 커넥션(connections)을 가진다. 일부의 커넥션은 복수의 컬러들이 존재할 때 복제됨에 유의해야 한다.




Under normal conditions, the printhead segment has connections as defined in Table 12. Note that some connections are replicated when there are multiple colors.




표 12 프린트헤드 세그먼트 커넥션Table 12 Printhead Segment Connections

명칭   designation 멀티-컬러 세그먼트의 반복Repetition of Multi-Color Segments 기능          function D[n]  D [n]            Yes 이미지 데이터의 n 채널 N channels of image data SClk  Sclk 아니오          no 직렬 데이터 전송 클록 Serial Data Transfer Clock NPSync  NPSync 아니오          no 노즐 위상 동기화 Nozzle Phase Synchronization PLL  PLL 아니오          no 위상 동기 루프 클록(Phase Locked Loop clock) Phase Locked Loop Clock Ten  Ten 아니오          no 병렬 전송 이네이블(Parallel transfer enable) Parallel transfer enable Reset  Reset 아니오          no 컨트롤 리셋(Control Reset) Control Reset SCI  SCI 아니오          no 컨트롤을 위한 I2C 직렬 클록I 2 C serial clock for control SD   SD 아니오          no 컨트롤을 위한 I2C 직렬 데이터I 2 C serial data for control CCEn[n]  CCEn [n] 아니오          no 컨트롤 칩 이네이블[n] Control chip enable [n] GND   GND 아니오          no 아날로그 그라운드 Analog ground Sense   Sense 아니오          no 아날로그 센스 아웃풋 Analog Sense Output V-   V-            Yes 마이너스 구동 전원 Negative drive power V+   V +            Yes 플러스 구동 전원   Plus driving power Vss   Vss            Yes 마이너스 논리 전원 Negative logic power Vdd   Vdd            Yes 플러스 논리 전원   Plus logic power

21mm 길이 프린트헤드 세그먼트는 64개의 본드 패드(bond pads)를 300㎛ 센터 상에 가질 수 있다. 이들 본드 패드 중에 24개는 구동기에 V- 전원을 공급하고, 20개는 V+전원을 공급한다. 남은 20개의 커넥션은 CMOS 논리 전력, 신호 및 데이터 커넥션이다. 표 13은 이들 커넥션을 상세하게 나타낸다.







The 21 mm long printhead segment may have 64 bond pads on a 300 μm center. 24 of these bond pads supply V- power to the driver and 20 supply V + power. The remaining 20 connections are CMOS logical power, signal and data connections. Table 13 details these connections.







표 13.6 컬러 세그먼트 커넥션 Table 13.6 Color Segment Connections

#   # 명칭designation 기능           function 1 - 61-6 V-V- 마이너스 구동 전원Negative drive power 7   7 VssVss 마이너스 논리 전원Negative logic power 8   8 D1[n]D1 [n] 이미지 데이터의 채널1[n](6채널 프린트헤드에서 정착액)Channel 1 [n] of image data (fixed solution in 6-channel printheads) 9   9 D2[n]D2 [n] 이미지 데이터의 채널2[n](6채널 프린트헤드에서 적외선)Channel 2 [n] of the image data (infrared on a 6-channel printhead) 10  10 SClkSclk 직렬 데이터 전송 클록Serial Data Transfer Clock 11  11 VddVdd 플러스 논리 전원Plus logic power 12 - 1612-16 V+V + 플러스 구동 전원Plus driving power 17 - 2217-22 V-V- 마이너스 구동 전원Negative drive power 23  23 NPSyncNPSync 노즐 위상 동기화Nozzle Phase Synchronization 24  24 D3[n]D3 [n] 이미지 데이터의 채널3[n](6채널 프린트헤드에서 흑색)Channel 3 [n] of image data (black on 6-channel printhead) 25  25 D4[n]D4 [n] 이미지 데이터의 채널4[n](6채널 프린트헤드에서 황색)Channel 4 [n] of image data (yellow on 6-channel printheads) 26  26 PLLPLL 위상 동기 루프 클록(Phase Locked Loop clock)Phase Locked Loop Clock 27  27 TEnTEn 병렬 전송 이네이블(Parallel transfer enable)Parallel transfer enable 28 - 3228-32 V+V + 플러스 구동 전원Plus driving power 33 - 3833-38 V-V- 마이너스 구동 전원Negative drive power 39  39 ResetReset 컨트롤 리셋Control reset 40  40 D5[n]D5 [n] 이미지 데이터의 채널5[n](6채널 프린트헤드에서 마젠타(magneta))Channel 5 [n] of image data (magneta on 6-channel printheads) 41  41 D6[n]D6 [n] 이미지 데이터의 채널6[n](6채널 프린트헤드에서 시안(cyan))Channel 6 [n] of image data (cyan on 6-channel printhead) 42  42 SCISCI 컨트롤을 위한 I2C 직렬 클록I 2 C serial clock for control 43  43 SDSD 컨트롤을 위한 I2C 직렬 데이터I 2 C serial data for control 44 - 4844-48 V+V + 플러스 구동 전원Plus driving power 49 - 5449-54 V-V- 마이너스 구동 전원Negative drive power 55  55 VddVdd 플러스 논리 전원Plus logic power 56  56 GndGnd 아날로그 그라운드Analog ground 57  57 CCEn[n]CCEn [n] 컨트롤 칩 이네이블[n]Control chip enable [n] 58  58 VssVss 마이너스 논리 전원Negative logic power 59  59 SenseSense 아날로그 센스 출력Analog sense output 60 - 6460-64 V+V + 플러스 구동 전원Plus driving power

멀티-세그먼트 프린트헤드는 이상적으로는 많은 동일한 프린트헤드 세그먼트로 구성된다. 이것들은 대개 21mm 세그먼트로 함께 제조되거나, 제조 후에 함께 설치되어, 원하는 길이의 프린트헤드를 만든다. 세그먼트들은 세그먼트 사이의 부드러운 변환(transition)을 고려하여 원하는 대로 오버랩되게 설치될 수 있다. 각각의 21mm inch 세그먼트는 그 페이지의 다른 부분에 1600 dpi 2-레벨 도트를 프린트하여 최종 이미지를 생성한다. 각각의 세그먼트는 1280 도트의 최종 이미지를 생성하지만, 각 도트는 컬러 잉크의 조합에 의해 표현된다. 예를 들어, 15개의 세그먼트는 나란히 조합되어 12-inch 프린트헤드를 만들 수 있다. 각 세그먼트는 리드-인 영역(lead-in area), 중앙 영역(central area) 및 리드-아웃 영역(lead-out area)을 가지도록 고려될 수 있다. 하나의 세그먼트의 리드-아웃은 다음 세그먼트의 리드-인에 대응한다.Multi-segment printheads ideally consist of many identical printhead segments. These are usually manufactured together in 21 mm segments, or installed together after manufacture, to produce a printhead of the desired length. Segments can be installed to overlap as desired, taking into account smooth transitions between segments. Each 21mm inch segment prints 1600 dpi two-level dots on different parts of the page to produce the final image. Each segment produces a final image of 1280 dots, but each dot is represented by a combination of color inks. For example, 15 segments can be combined side by side to create a 12-inch printhead. Each segment may be considered to have a lead-in area, a central area and a lead-out area. The lead-out of one segment corresponds to the lead-in of the next segment.

도 12에는 2개의 오버랩핑 세그먼트(106, 107)를 나타내며, 세그먼트의 3개 영역이 나타나 있다. 세그먼트(S)(110)의 리드-아웃 영역(108)이 세그먼트(S+1)(107)의 리드-인 영역(109)에 대응함에 유의해야 한다. 세그먼트의 중앙 영역은 오버랩을 전혀 가지지 않는 영역(106의 110 및 107의 111)이다. 도면에는 세그먼트가 수직으로 엇걸려 있지만, 세그먼트는 약간의 각으로 엇걸려서, 수직적 차원으로 정렬된다.12 shows two overlapping segments 106, 107, and three regions of the segment are shown. Note that the lead-out area 108 of the segment S 110 corresponds to the lead-in area 109 of the segment S + 1 107. The central area of the segment is an area (110 of 106 and 111 of 107) having no overlap at all. Although the segments are vertically staggered in the figure, the segments are staggered at some angle, aligned in the vertical dimension.

프린트헤드가 상기와 같이 많은 세그먼트들로 구성되었다고 가정한다. 데이터 적재(data loading)의 목적으로, 세그먼트들이 가장 큰 세그먼트 그룹에서 L개의 세그먼트를 가진, G개의 세그먼트 그룹으로 그룹핑 되었다고 가정한다. 프린트헤드에서 C개의 컬러가 존재한다고 가정한다. 프린트헤드를 위한 분사 메커니즘(firing mechanism)이 모든 세그먼트를 동시에 분사(fire)하고, 한번에 오직 1개의 세그먼트가 공용 3-상태 버스(tri-state bus) 상에 피드백 정보를 배치한다고 가정한다. 이 모든 것을 가정하여, 표 15는 프린트헤드로부터 이용할 수 있는 외부 커넥션을 나타낸다.


Assume that the printhead consists of many segments as above. For the purpose of data loading, assume that the segments are grouped into G segment groups, with L segments in the largest segment group. Assume there are C colors in the printhead. Assume that a firing mechanism for the printhead fires all segments simultaneously, and only one segment at a time places feedback information on a common tri-state bus. Assuming all of this, Table 15 shows the external connections available from the printhead.


표 15. 프린트헤드 커넥션Table 15. Printhead Connections

명칭 designation #핀 #pin 설 명 Explanation Dn Dn CL CL 세그먼트 0에서 L-1까지의 C 시프트 레지스터에 입력Input to C Shift Register from Segment 0 to L-1 SClk Sclk G G SClk[N](시프트레지스터클록 N) 상의 펄스가 세그먼트 그룹 N에서 현재 값을 Dn 라인에서 L 세그먼트로 로드한다.A pulse on SClk [N] (shift register clock N) loads the current value in segment group N into the L segment on the Dn line. NPSync NPSync 1 One NPSync 상의 펄스가 모든 세그먼트를 위해 라인을 프린팅하기 시작한다Pulse on NPSync starts printing lines for all segments PLL PLL 1 One 프린트헤드에서 타이밍 시그널을 생성하기 위한 위상 동기 루프 클록Phase-Locked Loop Clock to Generate Timing Signals from the Printhead Ten Ten 1 One 시프트 레지스터에서 내부로 데이터의 병렬 전송Parallel transfer of data from shift register to internal Reset Reset 1 One 컨트롤 리셋Control reset SCI SCI 1 One 컨트롤을 위한 I2C 직렬 클록I 2 C serial clock for control SD SD 1 One 컨트롤을 위한 I2C 직렬 데이터I 2 C serial data for control CCEn CCEn G G D1[n]상의 데이터를 가진 CCEn N ANDed 상의 펄스가 세그먼트 그룹 N에서 세그먼트 n을 위한 센스라인을 선택한다Pulse on CCEn N ANDed with data on D1 [n] selects sense line for segment n in segment group N Sense Sense 1 One 아날로그 센스 출력Analog sense output Gnd Gnd 1 One 아날로그 센스 그라운드Analog sense ground V- V- 컬러의 수에 따른다Depends on the number of colors 마이너스 구동 전원Negative drive power V+ V + 플러스 구동 전원Plus driving power Vss Vss 마이너스 논리 전원Negative logic power Vdd Vdd 플러스 논리 전원Plus logic power

도 5를 참조하여, HCU는 디더 매트릭스 선택 비트맵에 의해 선택된 2개의 다른 디더 매트릭스를 디더(dither)하는 수단을 제공한다. 디더 매트릭스 액세스 유닛(DMAU)(48)은 적절한 디더 값을 각 사이클마다 제공한다. 또, DMAU는 복수의 오버랩핑 멤제트 프린트헤드 세그먼트를 처리한다. DMAU의 목적은 단순히 프린트헤드에서 적절한 출력 도트 위치를 위해 적절한 8비트 디더 값을 제공하는 것이다.Referring to FIG. 5, the HCU provides a means for dithering two different dither matrices selected by the dither matrix selection bitmap. Dither Matrix Access Unit (DMAU) 48 provides the appropriate dither value for each cycle. The DMAU also handles a plurality of overlapping message printhead segments. The purpose of the DMAU is simply to provide the appropriate 8-bit dither value for proper output dot location in the printhead.

전체 멤제트 프린트헤드가 물리적으로 모놀리식(monolithic)이면, 단일 디더 매트릭스(예컨대 64 ×64)로 충분하다. 그러나, 멤제트 프린트헤드는 복수의 오버랩핑 세그먼트로 구성된다. 세그먼트 오버랩은 가시적인 아티팩트(artifact)를 초래할 가능성이 있는 샤프 에지(sharp edge) 대신에, 1개의 멤제트 세그먼트에서 또다른 멤제트 세그먼트로의 부드러운 변환을 가능하게 한다. 또, 세그먼트를 배치시 키는 결과로 인하여, 그들이 반드시 완전하게 도트 정렬될 필요는 없다. 일반적인 디더 매트릭스는 세그먼트 사이의 이러한 변환 및 서브-도트 정렬을 처리할 수 없을 것이다. 프린트 엔진/컨트롤러(PEC)에 의한 프린팅을 위한 해결책은 멤제트 프린트헤드로부터의 특성화 벡터를 이용하고, 한 세트의 프린트헤드 특정 디더 매트릭스를 구성하는 것이다. 각각의 세그먼트는 리드-인 영역, 중앙영역 및 리드-아웃 영역을 가지도록 고려될 수 있다. 1개의 세그먼트의 리드-아웃은 다음의 리드-인에 대응한다. 세그먼트의 중앙영역은 오버랩을 전혀 가지지 않는 영역이다.If the entire Memjet printhead is physically monolithic, a single dither matrix (eg 64 × 64) is sufficient. However, the memjet printhead consists of a plurality of overlapping segments. Segment overlap allows for a smooth transition from one memjet segment to another, instead of sharp edges that may result in visible artifacts. Also, as a result of placing the segments, they do not necessarily have to be completely dot aligned. A typical dither matrix would not be able to handle this conversion and sub-dot alignment between segments. The solution for printing by a print engine / controller (PEC) is to use a characterization vector from the memjet printhead and construct a set of printhead specific dither matrices. Each segment may be considered to have a lead-in area, a center area and a lead-out area. The lead-out of one segment corresponds to the next lead-in. The central area of the segment is an area having no overlap at all.

도 12에는 2개의 오버랩핑 세그먼트(106, 107) 및 세그먼트의 3개의 영역이 예시된다. 세그먼트(S)의 리드-아웃 영역(108)이 세그먼트(S+1)의 리드-인 영역(109)에 대응함에 유의해야 한다. 임의의 수의 프린트헤드 세그먼트를 위해서, 중앙 영역이 동일한 디더 매트릭스를 가지는 것을 고려할 수 있지만, 세그먼트(S)의 리드-아웃 및 세그먼트(S+1)의 리드-인이 2개의 세그먼트 사이에 정렬에 따라 짝지워지도록 고려할 수 있다. 복수의 프린트 엔진/컨트롤러(PEC)가 동일한 페이지를 어드레스할 수 있으면, 하나의 해당 PEC는 특정 세트의 세그먼트를 어드레스 하는 동시에 또 다른 PEC는 다음 세트의 세그먼트를 어드레스할 수 있다. 결과적으로, PEC를 위한 제1 세그먼트의 리드-인 영역은 실질적으로 또 다른 PEC로부터의 마지막 세그먼트의 리드-아웃에 대응한다.In FIG. 12 two overlapping segments 106, 107 and three regions of the segments are illustrated. Note that the lead-out area 108 of the segment S corresponds to the lead-in area 109 of the segment S + 1. For any number of printhead segments, it can be considered that the center area has the same dither matrix, but the lead-out of segment S and the lead-in of segment S + 1 are in alignment between the two segments. Can be paired accordingly. If multiple print engines / controllers (PECs) can address the same page, one corresponding PEC can address a particular set of segments while another PEC can address the next set of segments. As a result, the lead-in area of the first segment for the PEC substantially corresponds to the lead-out of the last segment from another PEC.

디더 매트릭스의 전체적인 목적은, 휘도(intensity) 레벨 및 도트-이득 특성을 제공하여, 각 오버랩 영역에 걸쳐 각 포인트에 대하여 통상의 디더 셀을 각 휘도 레벨에 대해 정합시키는 것이다. 한 세트의 디더 매트릭스는 이 프린트 엔진/컨 트롤러(PEC)에 의해 어드레스된 세그먼트를 위해 규정된다. 디더 매트릭스들의 세트는 총괄적으로 멀티-세그먼트 디터 매트릭스로 불린다.The overall purpose of the dither matrix is to provide intensity levels and dot-gain characteristics to match a conventional dither cell for each luminance level for each point over each overlap region. A set of dither matrices is defined for the segments addressed by this print engine / controller (PEC). The set of dither matrices is collectively called a multi-segment dither matrix.

ㆍ중앙 영역 디더 매트릭스는 일반적인 디더 매트릭스이며, 모드 세그먼트에 대해 동일할 수 있다(하지만, 주어진 도트 라인의 중앙 영역의 제1 도트를 위해 이용되는 디더 매트릭스 값은 세그먼트 및 그 앞의 것과의 사이의 정렬에 의해 예상되는 위치가 아닐 수 있다).The center region dither matrix is a general dither matrix and may be the same for all segment segments (but the dither matrix values used for the first dot in the center region of a given dot line are aligned between the segment and the one before it). May not be the location expected by).

ㆍ리드-인/리드-아웃 디더 매트릭스는 세그먼트 쌍의 오버랩 영역을 위한 것이다. PEC로 관리되는 세그먼트 전체의 세트를 위한 리드-인 및 리드-아웃 또한 요청된다. 리드-인/리드-아웃 매트릭스의 폭은 오버랩 영역의 양 세그먼트 모두에서의 도트의 총 수이다. 그 수는 32에서 48 사이로 예상된다(16내지 24의 오버랩 폭에 대응한다). 하나의 세그먼트를 위한 리드-인/리드-아웃 디더 매트릭스 및 대응하는 인접 세그먼트를 위한 리드-아웃 세그먼트는, 서브-도트 정렬을 고려하고, 오버랩 영역이 개시되고 끝나는 때에 중앙 영역 디더 매트릭스 내에 위치를 고려하여 서로 결합되어 디자인된다. The lead-in / lead-out dither matrix is for overlap regions of segment pairs. Lead-in and lead-out for a whole set of segments managed by PEC are also required. The width of the lead-in / lead-out matrix is the total number of dots in both segments of the overlap area. The number is expected to be between 32 and 48 (corresponding to an overlap width of 16 to 24). The lead-in / lead-out dither matrix for one segment and the lead-out segment for the corresponding adjacent segment take into account sub-dot alignment and position in the center region dither matrix when the overlap region begins and ends. Are designed to be combined with each other.

ㆍ리드-인 디더 매트릭스는 제1 세그먼트를 위한 것이며, 리드-아웃 디더 매트릭스는 마지막 세그먼트를 위한 것이다. 이들은 PEC로 관리되는 다른 세그먼트의 세트내의 유사한 매트릭스에 대응할 것이다.The lead-in dither matrix is for the first segment and the lead-out dither matrix is for the last segment. These will correspond to similar matrices in the set of other segments managed by the PEC.

각각의 세그먼트는 또한 그 세그먼트의 첫번쩨 도트를 위하여, 중앙 영역 디더 매트릭스 내에 수평 오프셋을 지정된다. 이것은 오버랩핑 세그먼트에 의해 야기되는 2개 도트까지의 비정렬(misalignment)에 대해 보상하도록 한다. 이것은 또 한 디더 매트릭스 생성 소프트웨어에 보다 유연성을 주어, 리드-인/리드-아웃 디더 매트릭스의 리드-아웃 구성요소의 끝에 임의의 연결(joining) 포인트를 제공한다.Each segment also specifies a horizontal offset within the center region dither matrix, for the first dot of that segment. This allows compensation for misalignment up to two dots caused by overlapping segments. This also gives the dither matrix generation software more flexibility, providing any joining point at the end of the lead-out component of the lead-in / lead-out dither matrix.

멀티-세그먼트 디더 매트릭스는 라인으로 구성된다. 라인의 총 수는 디더 매트릭스의 높이와 같다. 각 라인은 외부 DRAM으로부터 로컬 DMAU 메모리로 이중 버퍼 형으로 적재된다. 멀티-세그먼트 디더 매트릭스의 현재 라인을 참조하여 1개의 도트 라인이 생성되는 동안에, 멀티-세그먼트 디더 매트릭스의 다음 라인이 적재된다. 디더 매트릭스 라인 버퍼는 하프토너/합성기 유닛(HCU) 상태 머신으로부터 어드밴스 라인(advance line) 신호를 수신할 때 교체된다.The multi-segment dither matrix consists of lines. The total number of lines is equal to the height of the dither matrix. Each line is loaded in a double buffer from external DRAM into local DMAU memory. While one dot line is generated with reference to the current line of the multi-segment dither matrix, the next line of the multi-segment dither matrix is loaded. The dither matrix line buffer is replaced when receiving an advance line signal from a half toner / synthesizer unit (HCU) state machine.

도 13에는 멀티-세그먼트 디더 매트릭스로부터의 라인의 합성이 나타나 있다.13 shows the synthesis of lines from the multi-segment dither matrix.

멀티-세그먼트 디더 매트릭스의 단일 라인의 크기는 오버랩 크기 및 세그먼트의 수에 따른다. 64의 중앙 영역 디더 매트릭스 폭, 32도트의 오버랩 크기 및 15 세그먼트가 주어지면, 총 64+32+32+(14 ×(32+32)) 엔트리를 가지며, 각 엔트리는 8비트 = 1024 byte이다.The size of a single line of the multi-segment dither matrix depends on the overlap size and the number of segments. Given 64 center region dither matrix widths, 32 dot overlap size and 15 segments, there are a total of 64 + 32 + 32 + (14 × (32 + 32)) entries, each entry being 8 bits = 1024 bytes.

DRAM 저장 요청은 총 64 KByte에 대해서 라인당 1KByte로 64라인(디더 매트릭스의 높이)이다. DMAU는 DRAM 각각의 출력 라인에서 이들 라인 중의 하나를 적재한다. 30,000라인/초의 최대 프린트 속도로, 이것은 대략 30MB/sec와 같다.DRAM storage requests are 64 lines (the height of the dither matrix) at 1 Kbyte per line for a total of 64 KBytes. The DMAU loads one of these lines at each output line of the DRAM. At a maximum print speed of 30,000 lines / second, this is approximately equal to 30MB / sec.

실제로, DMAU는 이들 멀티-세그먼트 디더 매트릭스 중 디더 매트릭스 선택 비트에 의해 선택된 2개를 지원한다. Matrix2valid 1비트 레지스터가 설정되면, 제2 디더 매트릭스가 이용된다. DRAM 저장 요청은 따라서 128KByte이며, DRAM 액세 스는 최대 프린팅 속도로 총 60MB/sec의 밴드폭을 요구한다. 따라서, DMAU는 버퍼당 1024 byte로 4 라인 버퍼를 포함하고, 중앙 영역 디더 매트릭스에 초기 엔트리(각 세그먼트에 대해 하나의 엔트리)로서 이용되도록 15개의 오프셋 레지스터를 포함한다.Indeed, DMAU supports two of these multi-segment dither matrices selected by the dither matrix select bit. If the Matrix2valid 1-bit register is set, the second dither matrix is used. DRAM storage requests are therefore 128 KBytes, and DRAM access requires a total bandwidth of 60MB / sec at maximum printing speed. Thus, the DMAU contains four line buffers at 1024 bytes per buffer and 15 offset registers to be used as the initial entry (one entry for each segment) in the center region dither matrix.

어드레스 생성 프로세스는 아래의 의사코드에서 설명된다.The address generation process is described in the pseudo code below.

DblBufferSelect = 0DblBufferSelect = 0

MatrixLineStartAddress = 0 (refers to 64KByte-aligned address of start of Matrix1)MatrixLineStartAddress = 0 (refers to 64 KByte-aligned address of start of Matrix1)

Load Matrix 1 address pointed to by MatrixLineStartAddressLoad Matrix 1 address pointed to by MatrixLineStartAddress

lf(Matrix2Valid)lf (Matrix2Valid)

Load Matrix 2, address pointed to by MatrixLineStartAddress + 64KBytesLoad Matrix 2, address pointed to by MatrixLineStartAddress + 64KBytes

EndlfEndlf

Do until end-of-pageDo until end-of-page

currAdr = 64currAdr = 64

lineAdvance = 0lineAdvance = 0

dotAdvance = 0dotAdvance = 0

dot = 1dot = 1

segment = 1segment = 1

While(NOT lineAdvance)While (NOT lineAdvance)

CalculateEntry         CalculateEntry                 

EndWhileEndWhile

DblBufferSelect = NOT DblBufferSelectDblBufferSelect = NOT DblBufferSelect

MatrixLineStartAddress = (MatrixLineStartAddress + 1)AND 63MatrixLineStartAddress = (MatrixLineStartAddress + 1) AND 63

Load Matrix 1 address pointed to by MatrixLineStartAddressLoad Matrix 1 address pointed to by MatrixLineStartAddress

Load Matrix 2, address pointed to by MatrixLineStartAddress + 64KBytesLoad Matrix 2, address pointed to by MatrixLineStartAddress + 64KBytes

EndDOEnddo

엔트리를 산출하는 곳은 다음의 의사코드(pseudocode)에 의해 설명되는 단일 사이클 프로세스이다. 매트릭스2유효(Matrix2Valid) 레지스터가 비었으면, 디더 매트릭스 선택 비트맵으로부터의 임의 값을 고려하지 않고, 제1 디더 매트릭스는 항상 사용된다.Where an entry is produced is a single cycle process described by the following pseudocode: If the Matrix2Valid register is empty, the first dither matrix is always used, without considering any value from the dither matrix select bitmap.

Output matrix value read from:Output matrix value read from:

DblBufferSelect, DitherMatrixSelect AND Matrix2Valid, CurrAdr                DblBufferSelect, DitherMatrixSelect AND Matrix2Valid, CurrAdr

Output dotAdvance = NOT(((dot<32)AND(segment NOT ==0)AND(dot0==0)OR((dot>1248)Output dotAdvance = NOT (((dot <32) AND (segment NOT == 0) AND (dot 0 == 0) OR ((dot> 1248)

AND(segment NOT = numSegments))AND(dot0==0)AND (segment NOT = numSegments)) AND (dot 0 == 0)

Output lineAdvance = ((segment==numSegments)AND(dot==1280)Output lineAdvance = ((segment == numSegments) AND (dot == 1280)

lf((dot<32)OR(dot>1248))lf ((dot <32) OR (dot> 1248))

CurrAdr = CurrAdr + 1         CurrAdr = CurrAdr + 1

Else if(dot==1248)Else if (dot == 1248)

CurrAdr = NextOverlapAdr          CurrAdr = NextOverlapAdr                 

Else lf(dot==32)Else lf (dot == 32)

NextOverlapAdr=CurrAdr          NextOverlapAdr = CurrAdr

CurrAdr = CentralArealFirstDotDitherOffset[segment]          CurrAdr = CentralArealFirstDotDitherOffset [segment]

ElseElse

CurrAdr = (CurrAdr + 1)AND63          CurrAdr = (CurrAdr + 1) AND63

EndlfEndlf

lf(dot==1280)lf (dot == 1280)

dot = 1          dot = 1

segment = segment + 1          segment = segment + 1

ElseElse

dot = dot + 1          dot = dot + 1

EndlfEndlf

도트 및 세그먼트 카운터는 도트를 카운팅하는데 이용되고, 비-오버랩 영역, 리드-인 및 마지막 세그먼트의 리드-아웃 영역 동안에 실질적인 세그먼트/도트 조합에만 오직 대응하는 것을 유의해야 한다. 오버랩 기간 동안에, 대체 도트는 세그먼트(S) 및 세그먼트(S+1)에 대응한다. dotAdvance는 따라서 이 기간 동안에 오직 매 2번째 도트마다 주어진다.It should be noted that the dot and segment counters are used to count dots and only correspond to the actual segment / dot combination during the non-overlap area, lead-in and lead-out area of the last segment. During the overlap period, the replacement dots correspond to segment S and segment S + 1. dotAdvance is therefore given only every second dot during this period.

각각의 프린트헤드 세그먼트는 그 저속 직렬 버스를 통해 조회받아, 세그먼트의 특성화 벡터를 되돌려 보낼 수 있다. 복수의 프린트헤드로부터의 특성화 벡터는 전체 프린트헤드에 대한 노즐 결함 리스트를 구성하도록 조합될 수 있고, 프린 트 엔진은 프린트 동안에 결함있는 노즐에 대해 보상할 수 있다. 결함있는 노즐의 수가 작은 한, 보상에 의하면, 결함있는 노즐이 없는 프린트헤드와 구별할 수 없는 결과를 이룰 수 있다.Each printhead segment can be queried over its slow serial bus and send back the segment's characterization vector. Characterization vectors from the plurality of printheads can be combined to construct a nozzle defect list for the entire printhead, and the print engine can compensate for defective nozzles during printing. As long as the number of defective nozzles is small, compensation can result in indistinguishable from a printhead without a defective nozzle.

각 세그먼트는 특성화 벡터를 위해 384비트를 가지며, 다음과 같이 구성된다.Each segment has 384 bits for the characterization vector and is constructed as follows.

ㆍ시리얼 수 및 세그먼트에서 표현되는 컬러의 수를 포함하는, 64비트의 플래그 및 프린트헤드 세그먼트 정보64-bit flag and printhead segment information, including the serial number and the number of colors represented in the segment.

ㆍ앞의 세그먼트(0 = 제1 세그먼트)에 관련된 16비트의 정렬 데이터16-bit alignment data related to the preceding segment (0 = first segment)

ㆍ남아있는 비트를 모두 사용하는 가변 길이의 결함있는 노즐Variable length defective nozzles using all remaining bits

결함있는 노즐 리스트는 길이가 가변적이며, 각 세트의 결함있는 노즐은 아래의 구조를 가진다.The defective nozzle list is variable in length, and each set of defective nozzles has the following structure.

ㆍ5 비트 카운트(0 = 리스트의 끝(end-of-list))5-bit count (0 = end-of-list)

ㆍ3비트의 컬러3 bit color

ㆍ카운트 ×11비트, 결함있는 노즐당 1개의 엔트리(entry)Count x 11 bits, 1 entry per defective nozzle

페이드-인/페이드-아웃 디더 매트릭스는 단순한 리드-인 및 리드-아웃이 아니다. 그들이 임의의 비정렬된 오버랩에 따라 적용될 때, 오버랩 영역 상에 일정한 도트 이득이 존재하는 것으로 함께 정의된다. 두 세그먼트가 서로 도트 정렬되지 않을 수도 있다.The fade in / fade out dither matrix is not just a lead in and a lead out. When they are applied according to any unaligned overlap, it is defined together that there is a constant dot gain on the overlap area. The two segments may not be dot aligned with each other.

세그먼트 사이의 비정렬은 중요하다. 2개의 세그먼트가 완벽하게 도트 정렬되지 않는 곳에서, 제1 세그먼트 상의 도트는 제2 세그먼트 상의 도트와 완벽하게 정렬되지 않는다. 제2 세그먼트 상의 2개의 도트는 제1 세그먼트 상의 하나의 도트를 오버랩할 수 있다. 제1 세그먼트 상의 도트가 제2 세그먼트 상의 도트와 함께 프린트되면, 2개의 조합으로부터 형성되는 거대한 도트가 존재할 것이다. 제1 세그먼트 상의 도트는 프린트되고, 제2 세그먼트 상의 오버랩핑 도트 중의 어느것도 프린트되지 않으면, 그 결과는 하프 도트 스페이스(half dot space)가 된다. 첫번째 경우는 페이지 아래로 어두운 스트립(stripe)을 만들 것이고, 두번째 경우는 페이지 아래로 백색 스트립을 만들 것이다. 양쪽 결과들 모두 바람직하지 않다.Misalignment between segments is important. Where the two segments are not perfectly dot aligned, the dots on the first segment are not perfectly aligned with the dots on the second segment. Two dots on the second segment may overlap one dot on the first segment. If the dot on the first segment is printed with the dot on the second segment, there will be a huge dot formed from the two combinations. If the dots on the first segment are printed and none of the overlapping dots on the second segment are printed, the result is a half dot space. The first case will make a dark strip down the page, and the second case will make a white strip down the page. Both results are undesirable.

상기 비정렬 문제에 대한 해결책은, 대체로 오버랩 영역에서의 도트 이득이 일정하도록 하여 전체 페이지 아래로 어두운 영역 또는 스트립이 없도록 비정렬을 고려하는 디더 셀(dither cell)을 가지는 것이다. 2개의 세그먼트가 있기 때문에, 2개의 디더 셀이 필요하다. 하나는 페이드-아웃으로, 다른 하나는 페이드-인으로 고려될 수 있다. 일정한 도트 이득을 만들도록 서로 결합하여 사용되어야 한다. 비정렬이 다르면 디더 셀 쌍도 다르다는 것은 분명하다. 1/2 도트 비정렬에 의해 야기되는 오버랩은 1/4 도트 비정렬에 의해 야기되는 비정렬과는 다르기 마련이다. 각각의 비정렬에 대해 상이한 디더 셀 쌍이 요구된다. 공통 디더 셀 내의 어느 곳에서 오버랩의 개시가 있는지를 알면, 보다 나은 디더 셀 쌍이 생성될 수 있다.The solution to the above misalignment problem is to have a dither cell that considers misalignment, so that the dot gain in the overlap region is generally constant so that there are no dark areas or strips under the entire page. Since there are two segments, two dither cells are needed. One may be considered fade-out and the other as fade-in. They must be used in combination with each other to produce a constant dot gain. It is clear that dither cell pairs are different if the misalignment is different. The overlap caused by half dot misalignment is different from the misalignment caused by quarter dot misalignment. Different dither cell pairs are required for each misalignment. Knowing where in the common dither cell there is an onset of overlap, a better dither cell pair can be generated.

비정렬 때문에, 오버랩 영역의 끝에 도착한 때 공용 디더 셀 내에서 (완전한 도트 정렬이 있다면) 기대되는 위치를 이용할 지 여부 또는 디더 셀의 다른 열에 있을 지 여부를 알아야 할 필요가 있다. 따라서, 특정 세그먼트의 오버랩 쌍의 끝에 부착되는 공통 디더 셀의 어느 부분을 특정할 수 있게 하는 오프셋 값이 존재한 다.Because of the misalignment, it is necessary to know whether to use the expected position (if there is a complete dot alignment) within the common dither cell when it reaches the end of the overlap area or whether it is in another column of the dither cell. Thus, there is an offset value that allows specifying which part of the common dither cell is attached to the end of the overlap pair of a particular segment.

따라서 세그먼트 비정렬은 2가지 목적으로 사용된다. 첫번째는 오버랩 영역을 위해 디더 셀 쌍을 생성하는 것이다. 디더 셀 쌍의 생성은 디더 셀의 선택된 열에 공통 디더 셀에서 알려진 위치를 연결하여 행해져야 한다. 선택된 열은 완벽하게 도트-정렬된 세그먼트의 경우에서 예상되는 열(column)일 것이며, 비정렬된 세그먼트의 경우에서는 인접하는 열일 것이다. 따라서, 비정렬은 공통 디더 셀에 오프셋이 무엇인지 여부를 결정하는데 이용된다. 극한의 경우는 각각의 오버랩에 대한 다른 쌍의 디더 매트릭스 한 쌍이 있는 각 세그먼트 오버랩 영역에 대한 것으로, 공통 디더 셀 내에 비정렬 및 위치를 고려한다. 디더 셀의 생성은 각각의 프린트헤드 비정렬 쌍에 대해 한 번 행해질 수 있다. 모든 프린트헤드에 대해 한 번 행해질 수 있다. 예를 들어, 100번째의 도트 비정렬 까지의 모든 비정렬에 대한 과도한 디더 셀 쌍 리스트를 생성하는 것은 사소한 것이다. 그렇게 하는 것은 100 ×64 디더 셀 쌍의 생성 및 총 6400 세트에 대한 100 ×64 오프셋 값의 생성을 요구할 것이다. 32도트의 오버랩 및 64의 디더 셀의 높이를 가정하면, 총 12.5 MByte에 대해서, 디더 셀 쌍당 4KByte가 요구되며, 그것은 프린터 드라이버 설치 CD-ROM(또는 이와 같은 것)에 쉽게 저장될 수 있다. 프린트 드라이버의 설치 동안에, 옳은 디더 셀들은 연결된 프린트헤드에서의 비정렬에 기반하여 선택되고, 15개의 세그먼트 프린트헤드에 대해 총 64KByte를 필요로 한다. 여기서 중요한 점은 디더 셀의 생성은 오직 한번 행해질 필요가 있다는 점이다. 실제적인 6400 디더 셀(정렬이 도트 정확도의 1/100이라고 가정하면)은 모의 어닐링 디더 셀 생성 기술에 의해 쉽게 생성될 수 있다. 우수한 기능은 단순 도트-이득 산출일 것이다. 모의 어닐(anneal)의 목적은 표준 디더 셀과 비교하여 도트 이득 차를 최소화할 것이다.Thus segment misalignment is used for two purposes. The first is to create a dither cell pair for the overlap area. Generation of the dither cell pair should be done by concatenating the known positions in the common dither cell to the selected column of the dither cell. The selected column will be the column expected in the case of a perfectly dot-aligned segment, and the adjacent column in the case of an unaligned segment. Thus, unalignment is used to determine what the offset is in the common dither cell. The extreme case is for each segment overlap area with a pair of different pairs of dither matrices for each overlap, taking into account misalignment and position within the common dither cell. Generation of the dither cell may be done once for each printhead unaligned pair. It can be done once for every printhead. For example, generating an excessive dither cell pair list for all misalignments up to the 100th dot misalignment is trivial. Doing so will require the generation of 100 × 64 dither cell pairs and the generation of 100 × 64 offset values for a total of 6400 sets. Given an overlap of 32 dots and a height of 64 dither cells, for a total of 12.5 MBytes, 4 KBytes per dither cell pair is required, which can be easily stored on the printer driver installation CD-ROM (or the like). During installation of the print driver, the correct dither cells are selected based on misalignment in the connected printheads and require a total of 64 KBytes for the 15 segment printheads. The important point here is that the creation of the dither cell only needs to be done once. The actual 6400 dither cell (assuming the alignment is 1/100 of the dot accuracy) can be easily generated by the simulated annealing dither cell generation technique. A good feature would be a simple dot-gain calculation. The purpose of the simulated anneal will be to minimize the dot gain difference compared to standard dither cells.

본 명세의 전체를 통해, 어느 하나의 실시예 또는 특징의 특정 조합으로 본 발명을 제한하지 않으며, 본 발명의 바람직한 실시예로 본 발명의 목적을 설명했다. 본 기술 분야에 속하는 당업자라면 본 명세서의 실시예로부터 다양한 수정이 본 발명의 범위 내에서 벗어남 없이 이루어지는 것을 이해할 수 있을 것이다.Throughout this specification, the present invention has not been limited to any particular embodiment or combination of features, but the purpose of the present invention has been described in the preferred embodiment of the present invention. Those skilled in the art will appreciate from the embodiments herein that various modifications may be made without departing from the scope of the invention.

Claims (9)

멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법으로서,A method of preparing print data for a multi-segment printhead, comprising: 단부가 오버랩된 복수의 프린트헤드 칩으로 구성된 멀티-세그먼트 프린트헤드를 위하여, 리드-인(lead-in) 오버랩 부분과 관련되는 리드-인 디더 매트릭스와; 리드-아웃(lead-out) 오버랩 부분과 관련되는 리드-아웃 디더 매트릭스와; 프린트헤드 칩의 중앙 부분과 관련되는 공용 디더 매트릭스로 구성되는 디더 매트릭스 세트를 설정하는 단계와,A lead-in dither matrix associated with a lead-in overlap portion for a multi-segment printhead composed of a plurality of printhead chips with overlapped ends; A lead-out dither matrix associated with the lead-out overlap portion; Setting a dither matrix set consisting of a common dither matrix associated with a central portion of the printhead chip, 프린트 데이터를 수신하는 단계와,Receiving print data; 상기 디더 매트릭스 세트를 액세스하는 단계와, 오버랩 부분에 걸쳐 결과 이미지에서 거의 일정한 도트 이득을 유지하도록 수신 데이터가 합성될 때 상기 수신 데이터에 디더를 적용하는 단계를 포함하는 멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법.Accessing the set of dither matrices and applying dither to the received data when the received data is synthesized to maintain a nearly constant dot gain in the resulting image over the overlap portion. How to prepare your data. 제 1 항에 있어서,The method of claim 1, 상기 리드-인 디더 값이 하나의 세그먼트의 페이드-인(fade-in)을 설정하고, 상기 리드-아웃 디더 값이 상기 선행의 세그먼트의 페이드-아웃(fade-out)을 설정하며, 2개의 조합이 오버랩 부분에 거의 일정한 도트 이득을 제공하는 것을 특징으로 하는 멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법.The lead-in dither value sets the fade-in of one segment, the lead-out dither value sets the fade-out of the preceding segment, and a combination of the two A method of preparing print data for a multi-segment printhead, characterized by providing a substantially constant dot gain in this overlap portion. 제 1 항에 있어서,The method of claim 1, 상기 각 2개의 오버랩핑 세그먼트에서 오버랩은 비정렬(misalignment)의 조건에서 특성화되고, 상기 비정렬은 공용 디더 매트릭스로 리드(leading)하는 오프셋을 생성하도록 사용되는 것을 특징으로 하는 멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법.In each of the two overlapping segments, the overlap is characterized in a condition of misalignment, wherein the misalignment is used to generate an offset leading to the common dither matrix. To prepare print data for printing. 제 3 항에 있어서,The method of claim 3, wherein 비정렬 정보는 각 프린트헤드 세그먼트에 관하여 저장된 특성화 벡터(characterization vector)로부터 얻어지는 것을 특징으로 하는 멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법.Unaligned information is obtained from a stored characterization vector for each printhead segment. 제 4 항에 있어서,The method of claim 4, wherein 상기 프린트헤드의 복수 세그먼트로부터의 상기 특성화 벡터들이 전체 프린트헤드를 위한 노즐 결함 리스트를 구성하도록 결합되는 것을 특징으로 하는 멀티-세그먼트 프린트헤드를 위한 프린트 데이터를 준비하는 방법.And the characterization vectors from the plurality of segments of the printhead are combined to form a nozzle defect list for the entire printhead. 멀티-세그먼트 프린트헤드를 가지는 프린트로서,As a print having a multi-segment printhead, 프린트 데이터를 수신하는 인터페이스와;An interface for receiving print data; 상기 수신된 프린트 데이터를 합성하는 합성기(compositor)와;A compositor for synthesizing the received print data; 상기 합성기로부터 합성된 프린트 데이터를 멀티-세그먼트 프린트헤드로 놓는 프린트헤드 인터페이스를 포함하고,A printhead interface for placing the synthesized print data from the synthesizer into a multi-segment printhead, 상기 합성기는 상기 결과 이미지에서 거의 일정한 도트 이득을 유지할 수 있도록, 프린트 데이터를 합성하는데 이용되는 디더 매트릭스를 나타내는 디더 매트릭스 액세스 유닛을 포함하고,The synthesizer includes a dither matrix access unit representing a dither matrix used to synthesize print data so as to maintain a nearly constant dot gain in the resulting image, 상기 디더 매트릭스 액세스 유닛은 단부에 오버랩된 세그먼트를 가지는 멀티-세그먼트 프린트헤드를 위한 디더 매트릭스의 세트의 합성물인 디더 매트릭스를 어드레싱(addressing)하며,The dither matrix access unit addressing a dither matrix, which is a composite of a set of dither matrices for a multi-segment printhead having overlapping segments at an end, 상기 세트는 리드-인 디더 매트릭스와; 리드-아웃 디더 매트릭스와; 중앙 영역 디더 매트릭스로 구성되는 멀티-세그먼트 프린트 데이터를 가지는 프린터.The set includes a lead-in dither matrix; A lead-out dither matrix; A printer having multi-segment print data organized in a center area dither matrix. 제 6 항에 있어서,The method of claim 6, 리드-인 디더 값은 하나의 세그먼트의 페이드-인 값을 설정하고, 리드-아웃 디더 값은 선행하는 세그먼트의 페이드-아웃을 설정하며, 2개의 조합은 오버랩 부분에 거의 일정한 도트-이득을 제공하는 것을 특징으로 하는 멀티-세그먼트 프린트 데이터를 가지는 프린터.The lead-in dither value sets the fade-in value of one segment, the lead-out dither value sets the fade-out of the preceding segment, and the two combinations provide nearly constant dot-gain for the overlap portion. And multi-segment print data. 제 6 항에 있어서,The method of claim 6, 2개의 오버랩핑 세그먼트의 각 세트에 있어서, 비정렬을 고려하여 특성화된 오버랩이 존재하고, 비정렬은 중앙 영역 디더 매트릭스로 리딩(leading)하는 오프 셋을 생성하도록 이용되는 것을 특징으로 하는 멀티-세그먼트 프린트 데이터를 가지는 프린터.In each set of two overlapping segments, there is an overlap characterized in consideration of the misalignment, the misalignment being used to generate an offset leading to the center region dither matrix. Printer with print data. 제 7 항에 있어서,The method of claim 7, wherein 상기 비정렬 정보는 각각의 프린트헤드 세그먼트에 저장되는 특성화 벡터로부터 얻어지고, 그들은 전체 프린트헤드에 대한 노즐 결함 리스트를 구성하도록 결합되는 것을 특징으로 하는 멀티-세그먼트 프린트 데이터를 가지는 프린터.Wherein the misalignment information is obtained from a characterization vector stored in each printhead segment, and they are combined to construct a nozzle defect list for the entire printhead.
KR1020027017490A 2002-12-21 2000-06-30 Printing with a multi-segment printhead KR100662590B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020027017490A KR100662590B1 (en) 2002-12-21 2000-06-30 Printing with a multi-segment printhead

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020027017490A KR100662590B1 (en) 2002-12-21 2000-06-30 Printing with a multi-segment printhead

Publications (2)

Publication Number Publication Date
KR20030024708A KR20030024708A (en) 2003-03-26
KR100662590B1 true KR100662590B1 (en) 2006-12-28

Family

ID=41756563

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027017490A KR100662590B1 (en) 2002-12-21 2000-06-30 Printing with a multi-segment printhead

Country Status (1)

Country Link
KR (1) KR100662590B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100750161B1 (en) * 2006-02-02 2007-08-17 삼성전자주식회사 Method and apparatus for compensating defective nozzle of ink jet image forming device

Also Published As

Publication number Publication date
KR20030024708A (en) 2003-03-26

Similar Documents

Publication Publication Date Title
US6747760B2 (en) Print engine controller for a multi-segment printhead
US7645011B2 (en) Print engine controller for receiving dot data
US20080186517A1 (en) Printer Controller For Inkjet Print Head
US6859289B1 (en) Print engine/controller with color mask
US6394573B1 (en) Printing with a multi-segment printhead
EP1303416B1 (en) Printing with a multi-segment printhead
JP4546697B2 (en) Ink drop printer
KR100662590B1 (en) Printing with a multi-segment printhead
US7957011B2 (en) Printer printing composited print image planes
AU2004214601B2 (en) A print engine for a pagewidth printhead incorporating micro-electromechanical nozzle arrangements
US7092112B2 (en) Ink drop printer with print engine controller
US7457001B2 (en) Half-toner compositor for use in a print engine/controller
US8270023B2 (en) Print engine controller for double-buffered processing
KR20030024682A (en) Print engine/controller with color mask

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: 20121207

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131209

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141209

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151207

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161208

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171211

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee