JPEG 1992 lossless encoder core
Open, NormalPublic

Description

JPEG 1992 define lossless mode of operation to compress images. It uses a predictive scheme based on the three nearest (causal) neighbors (upper, left, and upper-left), and entropy coding is used on the prediction error.

Pros:

  • Supports images from 2 to 16 bit depth.
  • Simple and will not take much space on FPGA fabric.
  • Supported in DNG and MLV, which mean the resulting stream can be encapsulated in DNG or MLV and works out of the box.
  • Resulting sizes are 50% to 65% of the original file size, which will allow higher frame rates given same bandwidth.
  • It will perform better when using something like Optimal LUT as it mainly throw away noise bits.

Cons:

  • Worse compression ratio in comparison with more sophisticated methods which will require more FPGA fabric.

RAW12 LJ92 evaluator tool:
I have implemented LJ92 evaluator tool to test and evaluate the LJ92 compression. the current encoder configuration is two components and predictor 1, I found that this combination is very simple to be implemented and give good compression results, you can very easily change this configuration in the tool code.
Everyone is very welcome to test it out and report back the results.
Note: since LJ92 working with predictive schema, it is very different to encode image with/without fixed pattern noise. FPN will make the compression worse.

Goals:

  • Create LJ92 encoder core.
  • Find/Modify/Write standalone efficient library to encode/decode LJ92 and make sure it is working correctly with the core.
  • Research how connected pc using usb3.0 can convert variable length stream to MLV file/DNG sequence.

Links:

Fares created this task.Mar 16 2019, 8:07 PM
Fares triaged this task as Normal priority.