Add support for decoding and encoding with the JPEG2000 standard.
See section 7.4.9 JPXDecode Filter (PDF32000_2008):
The JPXDecode filter decodes data that has been encoded using the JPEG2000 compression
method, an ISO standard for the compression and packaging of image data.
- JPEG2000 defines a wavelet-based method for image compression that gives somewhat better size reduction than other methods such as regular JPEG or CCITT.
- Only applied to image XObjects, not inline images
- Suitable for both images with a single or multiple color components and bits per sample ranging between 1-38, so it is quite flexible.
- Very flexible in terms of colorspaces etc, see 7.4.9 for more information.
- See http://www.jpeg.org/jpeg2000/ and ISO/IEC 15444-2, Information Technology, JPEG 2000 Image Coding System: Extensions.
Implementation
- Makes sense to implement as a package jpeg2000 that can be included internally in unidoc. Should be licensed with the same license as the unidoc project.
- Start by focusing on decoding, can use the example provided in the PDF reference, and extract some JPXDecode data from PDF files
- Code should follow the unidoc style guide
- Encoding should also be implemented in the package such that go/pdf image data can be reencoded with JPEG2000 and embedded in the PDF.
- Make some benchmarks to set a baseline and fix obvious performance issues
Notes
I am currently not aware of any golang implementations of JPEG2000. However, there are a few open source implementions in other languages that might be a good reference in addition to the standard.
Add support for decoding and encoding with the JPEG2000 standard.
See section 7.4.9 JPXDecode Filter (PDF32000_2008):
Implementation
Notes
I am currently not aware of any golang implementations of JPEG2000. However, there are a few open source implementions in other languages that might be a good reference in addition to the standard.