Hidden Image Coding Challenge
Problem Description:
The purpose of this coding challenge is to encode a hidden message in a BMP image file. You will be provided with 2 VI templates (Encode Message.vi and Decode Message.vi) that you should use as a starting place. Do not rename these VIs or change the input or output terminals as they will be used for testing of the challenge. You will also be provided with a sample image that will be used for testing.
Rules:
- The input message should allow any standard LabVIEW string input.
- The encoded message should match exactly the decoded message (after encoding and decoding).
- The image must be readable by standard image editing applications (and LabVIEW) after being saved to disk.
- The image must be visually identical to the source image. Just to clarify this rule, in a side-by-side comparison, there should be no perceptible corruption or artifacting in the image that might tip off a suspicious individual or government to investigate further.
- The file size of the image must not be altered after being saved to disk.
- All code should be your own work.
- Be creative and don't be afraid to try something just because you think it might not win.
- By submitting code to this code challenge you give permission to view and discuss your submission in users group meeting.
Scoring:
- Each submission will be run using a variety of string inputs, and the VI is to encode as much of the string as possible into the sample image or the entire message if it is small enough. Then the image will be decoded using the submitted decode VI.
- Code will be tested/scored using LabVIEW 2011 SP1. All code will be mass compiled before running any benchmark tests.
- The encoding and decoding times will be measured multiple times and a scored based on the maximum number of characters encoded divided by the total average processing time.
- The testing framework will open the input image and save the output image data so that this time will not be included in the scoring. A sample timing VI is included to show how this will work.
- Entries will be disqualified if they break any rules, but may still qualify for an honorable mention if they show an interesting technique.
Submission:
- Each submission needs to be zipped up with the submitters name for the name of the zip file. For example matt_harrison.zip
- Only the Encode.vi and Decode.vi need to be included, along with any required sub-vis.
- Multiple submissions should be numbered or annotated such as matt_harrison2.zip or matt_harrison_faster.zip.
- Submit entries by posting them to the toulug website (ni.com/toulug) or emailing them to matthew@mooregoodideas.com
- All entries are due by Monday, August 13 to allow time for scoring before the users group meeting on August 17 where we will have the discussion and awards.