2. Screen configuration
The ScreenPro product supports screens implemented using a number of different technologies. These features can be configured via a configuration file stored in the screen folder. The format used for this configuration file is TOML (Tom's Obvious, Minimal Language). The purpose of this document is to describe the basics of the TOML format, together with the specific configuration options available to ScreenPro.
TOML basics
The TOML configuration file format is designed to be in some sense "minimal", easy to read, and with straightforward semantics. It is similar to and inspired by the Windows .ini
file format, but with a more formal specification. TOML is available across platforms.
A TOML file must be a valid UTF-8 Unicode document. The format is basically line based, although some information may cross multiple lines. A line is ended with either LF (0x0a) or CRLF (0x0d0a). Comments can be included, with a hash (#) symbol marking the rest of the input line as a comment.
TOML syntax largely consists of key = "value" pairs.
Values can be any one of the following data types:
String
, Integer
, Float
, Boolean
, Datetime
, Array
, and Table
.
Examples of each of these data types are:
key1 = "This is a string" # String example
key2 = 123456 # Integer example
key3 = 123.456 # Float example
key4 = true # Boolean example
key5 = 1979-05-27 07:32:00Z # Datetime example
key6 = [ 1, 2 ] # Array example
key7 = { x = 10, y = 20 } # Table example
The other main syntactic entity is
[section name]
The section name
defines the name of a table for all succeeding key/value pairs, until either EOF or the start of another table.
The TOML parser used for reading configurations is currently a syntactic subset of the full TOML specification; not all of the advanced TOML features are needed or supported.
ScreenPro configuration options
ScreenPro configuration options are stored in a file named config.txt
within the Screen folder.
The configuration options are organized into sections: those that apply to all channels and those that apply to an individual channel. Those that apply to all channels are under section [all]
, while those that apply to an individual channel are under a section for that particular channel index. For example, if an option is specific to Channel Index 0
, it is under the section [0]
. Any configuration entry that is not under a section is treated as being part of the [all]
section. Typically, but not always, each channel index is mapped to an individual color separation.
Some configuration options can be part of the [all]
section and part of individual sections. In v3.0.0, any setting in a later section always overrides settings in early sections. In v3.1.0 onwards, the individual channel section always takes precedence.
Enabling additional screening features is likely to increase the time taken to screen images. Enable features only if the quality benefit is deemed to justify the additional screening time.
AIS and HDS configuration options
The following table lists all configuration entries that apply to AIS and HDS screens. The Version column denotes the earliest version where that configuration setting is relevant.
Field name | Type | Scope | Default | Description | Version |
---|---|---|---|---|---|
maxChannel | Integer | All channels only | 15 | Index of the maximum channel. Up to 16 channels are supported (that is, more than 15 are not supported). | v3.0.0 |
black100 | Boolean | All channels only | true | When set to | v3.0.0 |
screenInXDim | Boolean | All channels only | false | Specifies whether the direction of the screen cache pattern runs vertically down the value (y) axis or horizontally across the value (x) axis. This does not affect the direction of the nozzles. | v3.0.0 |
calibrationMethod | String | All channels only | None | The screening technology supports four methods of calibration, specified by the values of | v3.0.0 |
tiffCalibration | Boolean | All channels only | false | Set to true when using calibrations or linearization generated with PrintFlat Create. Set to false when using older table-based linearization. | v3.0.0 |
nozzlesInXDim | Boolean | All channels only | false | Specifies whether the printer nozzle array is orientated vertically down the y-axis ( | v3.0.0 |
tileCalibration | Boolean | All channels only | false | When true , applies the PrintFlat calibration repeatedly (for multi-pass printing systems). | v3.0.0 |
detailScale | Boolean or Float | All channels only | false | The screening technology includes the ability to post-process the screened output raster and attempts to adjust it to enhance the detail within the image. Set the key to | v3.0.0 |
imageFiltering | Boolean | All channels only | false | AIS screening technology includes the ability to pre-filter the input image using a 3x3 box filter. This parameter controls whether filtering is turned on or not. | v3.0.0 |
decoherenceLimit | Integer | All channels only | 255 | When enabled, screening performs a print-quality optimization for multi-pass printing. This involves a decoherence process that randomly swaps adjacent output pixels at levels above the value set. To enable the feature, set the entry to a value less than 128 . | v3.0.0 |
nozzleOutKey | String | All channels only | Not present | The key is normally created by merging a PFC package generated by PrintFlat Create for the purpose of NozzleOut compensation. If present, ScreenPro matches the decrypted content of its value against the permit used to start ScreenPro when compensation is requested. If they match, NozzleOut functionality is enabled; otherwise, ScreenPro issues a license error. The key has no function if no NozzleOut functionality is required. | v3.1.0 |
nozzleCount | Integer | All channels only | Not present | The key specifies the total number of nozzles. It is mandatory when nozzle out functionality is enabled and right or centre aligned offset is used. Error code SP_NO_NOZZLECOUNT will be returned otherwise. For left alignment, if it is not provided, the height (when nozzle run is vertical) or width (when nozzle run is horizontal) is assumed as the nozzle count. | v3.2.0 |
screenType | String | All channels or individual channel | Required | Configures which screens are used. Valid values are | v3.0.0 |
maxDrops | Integer | All channels or individual channel | Required | Screening works by converting values within a continuous-tone input image into discrete ink-drop values. This parameter controls the maximum ink-drop value that you create for any given screen. So, if pure binary screening is required (that is, an ink-drop can either be on or off), set | v3.0.0 |
screenProportion | Float | All channels or individual channel | Required | This setting is deprecated in v3.1.0. For v3.0.0, it should always be present and set to | v3.0.0 |
failedNozzles | Integer ; Array | All channels or individual channel | Empty list | A list of all nozzles that have been marked as failing. The screening code can then attempt to compensate for these failures by increasing the ink levels in neighboring nozzles. Note: Nozzles in the array are numbered starting from | v3.1.0 |
compensationMode | Integer | All channels or individual channel | 0 | Specifies the way
When set to | v3.1.0 |
compensationLevel | Integer | All channels or individual channel | 0 | Specifies how many neighboring nozzles to compensate. Valid numbers are between 0 and 5 (inclusive). When set to 0 and compensationMode is not 0 , failed nozzles are cleared during screening but no compensation is made, providing a method to turn off individual nozzles in screening. | v3.1.0 |
compensationScaling | Boolean | All channels or individual channel | false | When set to true , ScreenPro reduces the compensation based on the failed nozzle density. | v3.1.0 |
compensationFactor | Float | All channels or individual channel | 1.0 | Specify the proportion of the failed nozzle density to use to compensate its neighbors. Must be in the range of | v3.1.0 |
compensationCurve | Integer ; Array | All channels or individual channel | Not present | If present, it must be an integer array of 256 fixed entries with values between 0 and 255 . The array specifies the amount of compensation for each gray level. If present together with compensationScaling and/or compensationFactor in the screen config, this setting takes the precedence and other settings are ignored. | v3.1.0 |
dropFile | String | All channels or individual channel | No drop file | This key specifies the filename for a file containing the drop table. It must refer to a file within the screening folder. See Drop-level control for more details. | v3.0.0 |
dropLevels | Float Array | All channels or individual channel | Required (unless dropFile key is specified) | Specifies a list of minimum and maximum input value pairs for each drop level. The screening algorithm then uses these values to decide how to map input values to ink levels. The list must contain ( | v3.0.0 |
binfile | String | Individual channel only | Required for screens of type Opal and Custom . | This key specifies the filename for the | v3.0.0 |
linData | String | Individual channel only | Required if calibrationMethod is set to Table | When | v3.0.0 |
webData | String | Individual channel only | Required if calibrationMethod is set to Web | When | v3.0.0 |
Legacy (Chameleon and Chimera) configuration options
The key and table names that have meaning for Chameleon and Chimera configurations follow:
Field name | Type | Scope | Default | Description |
---|---|---|---|---|
screenType | String | All channels | Required | Configures which screens are used. Valid values for the key are |
maxDrops | Integer | All channels | Required | Screening works by converting values within a continuous-tone input image into discrete ink-drop values. This parameter controls the maximum ink-drop value that screening can create for any given screen. Where Chameleon or Chimera screens are to be used, this is generally the value used to create the screening tiles. |
maxChannel | Integer | All channels | Required | Index of the maximum channel. Must not be greater than 255 . |
binfile | String | Individual channel only | Required | This key specifies the filename for the file containing the screening tile for the separation. It refers to a file within the screening folder. This key typically has different values from one channel to the next. An individual entry must be present for each individual channel of all channels specified by the |
serpentine | Boolean | All channels | false | Applicable for Chimera screens only. If set to true , ScreenPro uses a variation of the underlining error diffusion algorithm for screening. |
Example
#
# File : Chameleon1drop/config.txt
# Basic 1 drop Chameleon screenset.
#
[all]
screenType = "Chameleon"
maxDrops = 1
maxChannel = 6
[0]
binfile = "0.bin"
[1]
binfile = "1.bin"
[2]
binfile = "2.bin"
[3]
binfile = "3.bin"
[4]
binfile = "4.bin"
[5]
binfile = "5.bin"
[6]
binfile = "6.bin"
# EOF