Help Screen

Controls and Buttons
Overview and a Guided Tour

After typing in demo or the password, the following dialog will appear.  The main controls will be explained in Controls and Buttons.  Operational details and explanations are in Overview and a Guided Tour.


Controls and Buttons

Navigation Controls

The navigation controls are located in the right side of the main dialog.  When the program starts, it will be showing the BMP, JPG and PNG images contained in the directory where the program is stored.  Click the red stop button to stop the program "sliding" thru' the images.  Click the right and left arrow buttons to show the next and previous image.  The spinner control box shows the number of seconds the image stays and when the program starts, this will be 2 seconds.  Using the up and down arrows in the spinner control box the time for each slide can be set.  Pressing the green start button will start the slide show again.

The controls marked by FX allow zooming and panning to look at the image closely.  Click on Z button; left-clicking on the image will zoom in centering at the point where the mouse is clicked and right-clicking will zoom out.  The arrow keys will let you go left/right or up/down the zoomed image.  When you go left/right you can also go up/down by holding the shift key.  When the image is zoomed out, pressing P key will pan the whole image and pressing this key again will stop panning.

Take a moment to familiarize with these controls.  In the beginning, click the red button to stop the slide show and experiment with the FX keys.  Also set the time interval to a large value like 30 seconds.

Cursor Controls

These controls let you get to the squares where the information is encoded.  Note the Cursor and Scramble controls are necessary only to understand how the textual encoding within the image works.  You do not need them to do the actual encoding and decoding.

The images are divided in 128 X 128 squares and characters are encoded into these squares.  Clicking on the bottom-most cursor control (marked with a grid) lays a grid on the image.  Using the controls marked with arrows one can navigate to the an individual square. 


Scramble controls are not necessary  for encoding and decoding text - they only illustrate the underlying principles used.  Navigate to any square using the Cursor Controls  and click on Local button to see the the local square of the image scrambled.  Clicking on Local button again will unscramble the square. Clicking on the Global button will scramble the entire image and clicking on the button again will unscramble the image.  You may click Global and then Local buttons to see global and local scrambling in work; click Global button again to unscramble image.

Encode button encodes a character with a desired SNR (Signal-to-Noise Ratio).  The higher the SNR, the noisier the image gets and has a direct effect on the minimum Ratio For Detectability (RFD) (defined in Graphs).  Encode button is not necessary for encoding and decoding text and is for illustrating the effects of SNR on the image.  Also one can encode after local and global scrambling and you may verify yourself by clicking Local and/or Global buttons and encoding different characters.  Note you may encode four different characters within a particular square by 1.  choosing unscrambled image and unscrambled square, 2.  choosing unscrambled image and local scrambled square, 3.  choosing scrambled global image and unscrambled local square and 4.  choosing scrambled global image and scrambled local square.  Note also that these four characters can be decoded by choosing the right local/global scrambling/unscrambling options.

Save button saves the image in png or bmp format.  Note though the program can read JPEG formats, it will not save in this format as it is lossy and one may not be able to decode the text.  After encoding the desired text, click the Save button and be sure to specify the file suffix bmp or png (for example a.png or a.bmp).  The new image will be added to the list of slides at its end.

Reinf and Peak buttons are for advanced use and they will be explained in more detail in the Overview section.  These buttons are used for encoding the text.  Peak sets the desired RFD and Reinf can selectively encode or reinforce individual characters so that the ratio is increased for detection.   


The first three graphs show the statistical standard deviation plot of the red, green and blue components for the image contained in the 128 X 128 square the cursor is placed at.  Low values indicate a constant color such as white, red, ..  When one does Global scrambling (using the Global control explained in Menu) one may note the standard deviation gets higher and reflect the global content of the image.  The fourth graph is critical and shows the magnitude of the components used to encode the text.  When no character is encoded, this graph looks like noise (as indicated above).  Choose a square using the Cursor Controls and Encode a character, say for instance A at a SNR of -5 dB.  The fourth graph will indicate a peak corresponding to character A and note the value of the ratio.  Again Encode character A at  a SNR of -5 dB (reinforcing the character) and note how the value of the ratio increases.  The Ratio For Detectability (RFD) is the minimum ratio at which a character is detected and this is set at 5.  Repeat the experimentation of encoding under different scrambling options in Menu.

Encode and Decode Buttons

These are the only two buttons that the user has to know to encode or decode text.  In demo mode, the encoded text is predetermined consisting of A, B, ..., a, b, ..., 1, 2, ... and the user can start encoding by pressing the Message Encode button.  You may stop encoding at any time by clicking the Message Encode button again.  The message can be decoded by clicking on Message Decode button.  While encoding, the Navigation Controls can be used to control the speed of encoding as well as encode one character at a time.  Note in Message Encoding mode, the Navigation Controls look different.  You can click on the Red stop button to stop encoding and the Green go button to resume.  You can change the interval shown in the spinner control box to 0 so that the interval between successive character encoding is 0 or you may set it to 20 so that this interval becomes 20 seconds.  You can also zoom and pan to see the effects of encoding.  Also on the top of the main dialog you see the characters being encoded become green and a SNR figure appears at the end of the line.  A careful encoder can watch how the image degrades while encoding and stop the process of encoding when he chooses.  Once the message is encoded, he can save by clicking on Save button in Menu.

The message can be decoded by pressing the Message Decode button and can be interrupted by clicking the same Message Decode button.  While exiting the program, make sure that there is no message encoding or decoding.

In non-demo modes, there are two modes - encoder mode and decoder mode.  In encoder mode both Message Encode and Message Decode are available with the capability of encoding arbitrary text.  In decode mode only Message Decode is available.  These modes are decided by the password supplied by the user at the beginning of the program.

Overview and a Guided Tour

The main function of the program is to encode text within an image and only the person with the appropriate decoding password can recover the text from the image.  It is impossible to decode the text unless the right password is entered as the program, through a large set of matrices, transformations and stochastic sets, scrambles the image, hides the text with stochastic and probabilistic coding and noisizes uniquely for each customer.  The program is customized for each user so that only the user with the right password can decode the text.  A unique set of noisization templates, stochastic coding, matrix transformations and scrambling is used for each customer so that only he and his authorized decoders can recover the text embedded within the image.  The program's title HiPNG derives from the fact that the program can Hide Information in PNG (and BMP) lossless image formats.

To hide the text is a simple matter.  In demo mode only a fixed text can be hidden.  In personal, professional and corporate modes, the text to be encoded is arbitrary and should be entered within the edit text box next to Message Encode button.  The image is divided into 128 X 128 squares and if the image has N squares, then the maximum length of the text that can be hidden is 4 times N.  Thus if the image is 768 X 384, there are 12 squares and one can embed 48 characters of text.  Once the text is entered into the edit box, click on the Message Encode button to start encoding.  Message encoding can be stopped anytime by pressing the Message Encode button.  Once the message is encoded, save by clicking on Save button and use a filename with PNG or BMP extension to save.  Just to be sure, decode the message by clicking on the Decode Message button.  To select the image, use the Navigation Controls and the same controls can be used to look at the image closely by zooming and panning.  To summarize the procedure for encoding:

1.  Choose the image for encoding by using the Navigation Controls.

2.  Enter the text in the edit control box next to the Message Encode button.  Note this is available only in registered, paid  versions.  In demo mode, only a fixed text can be encoded.

3.  Press the Message Encode button to start encoding.  Once the encoding is finished or interrupted by clicking on the Message Encode button, save by clicking on Save button in Menu.

Decoding an image is very simple.  After entering the appropriate decoding password (in demo mode, demo can both encode and decode but in registered, paid versions there are different passwords for encoding and decoding), click on the Decode Message button.

Advanced Encoding

Normally the encoding procedure described above is sufficient for most cases since the program optimizes the encoding process.  However for professionals who insist on custom encoding with lowest SNRs and image distortion, the following suggestions are offered.  The default setting for Peak is set at 8 and this can be changed by clicking Peak button in Menu.  You may choose a lower value for Peak like for example 4 and start encoding the message.  The program will encode characters so that their Peaks are around the value of 4 but the characters are decoded only when their Peaks are 5 or above.  When you decode the message, the program will stop when the Peak for a character is less than 5.  (This can be seen by looking at the fourth graph which will show peaks as well as characters decoded).  To increase the Peak, you may want to reinforce the character coding and this can be done by selecting the Reinf button in Menu.  Make sure you put the number of character the same as the number the program stopped at decoding.  By choosing a suitable Peak and doing reinforcement, you can achieve encoding with a lower SNR and image distortion.

Other Tips

The Navigation Controls are provided to view the images present in the directory and also to look at them closely by zooming and panning.  These controls can also be used while encoding but in order to do so, you need proficiency in using the Navigation Controls.  It is suggested that in the beginning the user restrict himself to simple encoding procedure and gradually graduate to advanced operations using zooming and panning.