A new method for data hiding in binary images based on block pattern coding and dynamic programming with distortion-minimizing capabilities is proposed. Up to three message data bits can be embedded into each 2 × 2 block in an input image by changing the block's pixel pattern into another, which represents the value of the message data bits as a code according to a block pattern encoding table. And extraction of hidden message data is accomplished by block pattern decoding. To minimize the resulting image distortion, two optimization techniques are proposed. The first is to use multiple block pattern encoding tables, from which an optimal one is selected specifically for each input image, and the second is to use a dynamic programming algorithm to divide the message data into bit segments for optimal embedding in a sense of minimizing the number of binary bit flippings. Accordingly, not only more data bits can be embedded in an image block on the average, but the resulting image distortion is also reduced in an optimal way. Experimental results are also included to show the effectiveness of the proposed approach.
- Binary image
- Block pattern encoding
- Data hiding
- Dynamic programming
- Image distortion minimization