A method to compensate for one or more defective printer nozzles of a plurality of printer nozzles operable to print an image based on image data, the method comprising:
- detecting the one or more defective printer nozzles in a print mode;
- selecting a nozzle map based on the print mode;
- creating a print mask defining a plurality of columns in which the plurality of printer nozzles are scheduled to print using the image data in accordance with the nozzle map;
- identifying at least one of a fully complementary nozzle or a partially complementary nozzle for the one or more defective printer nozzles;
- setting an image specific flag to false;
- evaluating each column of the plurality of columns by:
- setting a column specific flag to false;
- determining whether the print mask schedules the image data to print in the column;
- if the print mask schedules the image data to print in the column and a fully complementary nozzle is identified, modifying the print mask to schedule the image data to print with the fully complementary nozzle and setting the column specific flag to true;
- if the column specific flag is true, determining whether there are any remaining columns that have not been evaluated;
- if there are no remaining columns, printing the image in accordance with the modified print mask;
- if there are remaining columns, evaluating the next column of the plurality of columns;
- if the column specific flag is false, the print mask schedules the image data to print in the column and the partially complementary nozzle is identified, modifying the print mask to schedule the image data to print with the partially complementary nozzle and setting the column specific flag to true;
- if the column specific flag is true, determining whether there are any remaining columns that have not been evaluated;
- if there are no remaining columns, printing the image in accordance with the modified print mask;
- if there are remaining columns, evaluating the next column of the plurality of columns;
- if the column specific flag is false, the print mask schedules the image data to printed in the column, and the partially complementary nozzle is identified, modifying the image by modifying image data values of the partially complementary nozzle, setting the image specific flag to true, and setting the column specific flag to true;
- if the column specific flag is true, determining whether there are any remaining columns that have not been evaluated;
- if there are no remaining columns, printing the modified image with the modified image data values;
- if there are remaining columns, evaluating the next column of the plurality of columns;
- if the column specific flag is false, the print mask schedules the image data to print in the column, and a partially complementary nozzle is identified, modifying the image by modifying image data values of pixel locations neighboring pixel locations scheduled to be printed by the defective printer nozzle, setting the image specific flag to true, and setting the column specific flag to true;
- if the column specific flag is true, determining whether there are any remaining columns that have not been evaluated;
- if there are no remaining columns, printing the modified image with the modified image data values;
- if there are no remaining columns, printing the modified image with the modified image data values.