KR100662590B1 - Printing with a multi-segment printhead - Google Patents
Printing with a multi-segment printhead Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41J—TYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
- B41J2/00—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
- B41J2/005—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by bringing liquid or particles selectively into contact with a printing material
- B41J2/01—Ink jet
- B41J2/21—Ink jet for multi-colour printing
Landscapes
- Record Information Processing For Printing (AREA)
- Color, Gradation (AREA)
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
본 발명은 멀티-세그먼트(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
파이프라인의 제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 /
ㆍ프린트 엔진/컨트롤러(Print Engine/Controller(PEC)). PEC 칩(10), 또는 칩들은, 메모리 버퍼(24)에 저장하기 위한 압축된 페이지 이미지의 수신, 페이지 확대, 흑색 층 합성 및 프린트 헤드(23)로의 도트 데이터 송신을 담당한다. 그것은 또한 QA 칩(25, 26)과 통신할 수 있고, 최적 인쇄를 보장하기 위하여 프린트 헤드의 특징을 검색하기 위한 수단을 제공할 수 있다. PEC는 본 명세서의 주제이다. Print Engine / Controller (PEC). The
ㆍ메모리 버퍼. 메모리 버퍼(24)는 압축된 페이지 이미지 저장 및 주어진 페이지의 프린트 도중의 스크래치(scratch) 사용을 위한 것이다. 메모리 버퍼의 구성 및 작동은 당업자에게 공지되어 있으며, 소정 범위의 표준 칩 및 그 활용 기술은 본 발명의 PEC의 이용을 위하여 활용될 수 있다.Memory buffer. The
ㆍ마스터 QA 칩(master QA chip). 마스터 칩(25)은 교체형 잉크 카트리지 QA 칩(26)에 일치된다. QA 유닛의 구성 및 작용은 당업자에게 공지되어 있으며, 소정 범위 내의 공지된 QA 프로세스(QA process)는 본 발명의 프린트 엔진 컨트롤로(PEC)의 이용을 위하여 활용될 수 있다. 예를 들어, QA 칩은 아래의 계속 중인 미국 특허출원에 기술되어 있다. Master QA chip. The
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
ㆍ 프린트 페이지 간의 직렬 인터페이스(36)를 경유하여 QA 칩 인증 프로토콜 수행하는 것Performing QA chip authentication protocol via
ㆍ 프린트 동안에 병렬 인터페이스(91)를 경유하여 스텝 모터를 구동하는 것(스텝 모터는 5KHz 프로세스를 요한다.)Driving the stepper motor via the
ㆍ 프린트 동안에 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),
프린트 엔진은 이중 버퍼 방식으로 동작한다. 하나의 페이지가 고속 직렬 인터페이스(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
도 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
도 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
스케일 유닛은 연속톤 또는 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
각각의 연속톤 층은 상이한 해상도일 수 있기 때문에, 이들은 독립적으로 스케일된다. 버퍼(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
마진 유닛(57)에 의하여 2개의 컨트롤 비트, 즉 어드밴스 도트(advance dot) 및 어드밴스 라인(advance line)이 스케일 유닛에 제공된다. 어드밴스 도트 비트는 상태 머신(state machine)이 동일 도트 데이터의 복수의 인스턴스를 생성하도록 한다(프린트 헤드에 있어서 페이지 마진 및 오버랩핑 세그먼트를 위한 도트 데이터 생성에 유용). 어드밴스 라인 비트는 상태머신이 언제 특정 도트의 라인이 완료되었는지를 제어하도록 하고, 이에 의해 프린터 마진에 따라 데이터를 절단(truncation)하도록 한다. 그것은 또한 스케일 유닛이 특수한 라인의 끝(end-of-line) 논리를 필요로 하는 수고를 덜어 준다.
The
비교기 유닛(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-
도 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 (
ㆍ레지스터(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 (
ㆍ레지스터 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
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
[표 1] DRU를 위한 상태 머신Table 1 State Machines for DRUs
도 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.
위에서 참조된 프린트헤드 상의 분사 노즐(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
각각의 버퍼(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
버퍼(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
도 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
버퍼(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
하프토너/합성기 유닛(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
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 (
버퍼(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
그러나, 버퍼(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
출력유효 플래그가 라인(도 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.
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 =
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
버퍼(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
어드레스 생성 프로세스는 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 =
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 =
ELSE ELSE
EFAdr = EFAdr + 1 EFAdr =
Endlf Endlf
ColorNAdr = ColorNAdr + 1 ColorNAdr =
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
라인로더/포맷 유닛(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
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
멀티-세그먼트 프린트헤드는 이상적으로는 많은 동일한 프린트헤드 세그먼트로 구성된다. 이것들은 대개 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
프린트헤드가 상기와 같이 많은 세그먼트들로 구성되었다고 가정한다. 데이터 적재(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
도 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
디더 매트릭스의 전체적인 목적은, 휘도(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 MatrixLineStartAddress
lf(Matrix2Valid)lf (Matrix2Valid)
Load 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 MatrixLineStartAddress
Load 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 =
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)
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)
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 |
-
2000
- 2000-06-30 KR KR1020027017490A patent/KR100662590B1/en not_active IP Right Cessation
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 | |
AU2004214601B2 (en) | A print engine for a pagewidth printhead incorporating micro-electromechanical nozzle arrangements | |
US7957011B2 (en) | Printer printing composited print image planes | |
US7092112B2 (en) | Ink drop printer with print engine controller | |
US7457001B2 (en) | Half-toner compositor for use in a print engine/controller | |
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 |