From 81c5311758a0ae1f1aea349a6ee0bca2a238fa79 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 9 Jun 2017 10:47:13 +0200 Subject: T1: fix BYPASS/LAZY, TERMALL/RESTART and PTERM/ERTERM encoding modes. (#674) There were a number of defects regarding when and how the termination of passes had to done and the computation of their rate. --- src/lib/openjp2/mqc.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/lib/openjp2/mqc.h') diff --git a/src/lib/openjp2/mqc.h b/src/lib/openjp2/mqc.h index f21d46ef..3b52d95e 100644 --- a/src/lib/openjp2/mqc.h +++ b/src/lib/openjp2/mqc.h @@ -142,36 +142,45 @@ void opj_mqc_flush(opj_mqc_t *mqc); /** BYPASS mode switch, initialization operation. JPEG 2000 p 505. -

Not fully implemented and tested !!

@param mqc MQC handle */ void opj_mqc_bypass_init_enc(opj_mqc_t *mqc); + +/** Return number of extra bytes to add to opj_mqc_numbytes() for the² + size of a non-terminating BYPASS pass +@param mqc MQC handle +@param erterm 1 if ERTERM is enabled, 0 otherwise +*/ +OPJ_UINT32 opj_mqc_bypass_get_extra_bytes(opj_mqc_t *mqc, OPJ_BOOL erterm); + /** BYPASS mode switch, coding operation. JPEG 2000 p 505. -

Not fully implemented and tested !!

@param mqc MQC handle @param d The symbol to be encoded (0 or 1) */ void opj_mqc_bypass_enc(opj_mqc_t *mqc, OPJ_UINT32 d); /** BYPASS mode switch, flush operation -

Not fully implemented and tested !!

@param mqc MQC handle -@return Returns 1 (always) +@param erterm 1 if ERTERM is enabled, 0 otherwise */ -OPJ_UINT32 opj_mqc_bypass_flush_enc(opj_mqc_t *mqc); +void opj_mqc_bypass_flush_enc(opj_mqc_t *mqc, OPJ_BOOL erterm); /** RESET mode switch @param mqc MQC handle */ void opj_mqc_reset_enc(opj_mqc_t *mqc); + +#ifdef notdef /** RESTART mode switch (TERMALL) @param mqc MQC handle @return Returns 1 (always) */ OPJ_UINT32 opj_mqc_restart_enc(opj_mqc_t *mqc); +#endif + /** RESTART mode switch (TERMALL) reinitialisation @param mqc MQC handle -- cgit v1.2.3