{'fraction_non_alphanumeric': 0.026136363636363635, 'fraction_numerical': 0.0005681818181818182, 'mean_word_length': 5.24468085106383, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A GPU based implementation of direct multi-bit search (DMS) screen algorithm

In this paper, we study the feasibility for using programmable Graphics Processing Unit (GPU) technology for image halftoning, in particular implementing the computationally intense Direct Multi-bit Search (DMS) Screen algorithm. Multi-bit screening is an extension of binary screening, in which every pixel in continuoustone image can be rendered to one among multiple output states. For example, a 2 bit printer is capable of printing with four different drop sizes. In our previous work, we have extended the Direct Binary Search (DBS) to the multi-bit case using Direct Multi-bit Search (DMS) where at every pixel the algorithm chooses the best drop output state to create a visually pleasing halftone pattern without any user defined guidance. This process is repeated throughout the entire range of gray levels while satisfying the stacking constraint to create a high quality multi-bit screen (dither mask). In this paper, we illustrate how employing Graphics Processing Units (GPU) can speed-up intensive DMS image processing operations. Particularly, we illustrate how different modules can be been parallelized. The main goal of many of the previous articles regarding DBS is to decrease the execution time of the algorithm. One of the most common approaches is to decrease the neighborhood size or filter size. The proposed parallel approach allows us to use a large neighborhood and filter size, to achieve the highest halftone quality, while having minimal impact on performance. In addition, we also demonstrate processing several non-overlapping neighborhoods in parallel, by utilizing the GPU's parallel architecture, to further improve the computational efficiency.