
MFC2000 Multifunctional Peripheral Controller 2000
Hardware Description
9-4
Conexant
100723A
9.1.4 Horizontal Shift Function
Assume that the color inkjet head is used. There are 3 color groups. There are 16 nozzles for each color group on
the inkjet head.
The image data is usually line-based. For the inkjet printing, we can’t feed the line based data right into the inkjet
head. The line-based image data needs to be rearranged to match the inkjet head firing order and will be no
longer line-based. As you can see from the diagram at the next page, if nozzle 1 in the top nozzle group needs
the 1st pixel of line 1, nozzle 2 in the top nozzle group needs the (NP)th pixel of line 2. If there is a total of 48
nozzles, we will need to group 3 halfwords (48 pixels) of data from different lines, different columns, and different
color planes. Then, another 3 half-word group for the next firing cycle. These 3 half-word groups will be sent to
the external print ASIC. The external print ASIC will map these 48 pixels to the right nozzle location and control
the fire sequence and timing within one firing cycle.
In order to do inkjet printing, the line-based printing data from different color planes for each printing swath need
to be prepared by Firmware. Under the assumption above, 48 lines (16 lines/color group) of data need to be
prepared for one printing swath by Firmware. The vertical pitch (VP) in the diagram below is taken care of by the
Firmware and the DMA operation.
Then, Bi-level Resolution Conversion block fetches the line-based printing data through DMA operation. The line-
based printing data is serially processed in the Bi-level Resolution Conversion block. The process order is bi-level
resolution conversion -> singling -> horizontal shift -> oring (optional). After these processes, the shifted line-
based print data will be put back to the printing buffer by the DMA operation. The nozzle pitch (NP) and horizontal
pitch (HP) in the diagram below are taken care of by the horizontal shifter in the Bi-level Resolution Conversion
block. For example, the NP is 8 pixels and HP is 18 pixels. We want to prepare the shifted line-based printing
data for nozzle 1 of the top group in the diagram below, the horizontal shifter will insert (8+18) zeros in the
beginning of this line. If we want to prepare the shifted line-based printing data for nozzle 2 of the top group in the
diagram below, the horizontal shifter will insert 18 zeros in the beginning of this line. If we want to prepare the
shifted line-based printing data for nozzle 1 of the middle group in the diagram below, the horizontal shifter will
insert 8 zeros in the beginning of this line. If we want to prepare the shifted line-based printing data for nozzle 2 of
the middle group in the diagram below, the horizontal shifter will insert nothing in the beginning of this line. The
actual shifting amount for each line needs to be changed according to the inkjet head which you are using and the
mechanical orientation. All the pixels needed for one firing cycle will be at the same column after the horizontal
shift process. The number of zeros inserted in the beginning of lines is programmable from 0 to 63. If extra zeros
(>63 ) are needed, multiple of 16 zeros need to be prepared into memory by firmware.
Finally, the Bit Rotation block gets the shifted line-based printing data through the DMA operation. The Bit
Rotation block groups 48 pixels at different lines and at the same column to 3-halfword data for one firing cycle
(See the Bit Rotation section for details).