Search code examples
jpeg2000

Why use JPIP if there already exists kdu_transcode?


kdu_transcode provides the functionality of selecting only certain code blocks from a JPEG2000.

Why use JPIP instead of just the code of kdu_transcode (+ some open-source cache)?


Solution

  • The advantages of JPIP over kdu_transcode:

    • JPIP supports sending data in small chunks
    • JPIP sends data in such order that when only part of the data has been received, it can already be displayed, possibly as a low-resolution/low-quality image.
    • You can explicitly tell JPIP what part of the data you already have.

    The disadvantages of JPIP:

    • Sends extra headers, so uses more bandwidth
    • If you use the implementation of JPIP in Kakadu, you have to use the supplied server and client, including their own cache implementation (unless you want to implement some parts of the protocol from scratch). E.g., there is no code other than in kdu_client itself for stripping the extra headers.

    So in general, JPIP is useful only if you want to display partial data while your image is still being downloaded.