Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

encoder feature request : support multiple HT sets #37

Open
boxerab opened this issue Sep 23, 2021 · 5 comments
Open

encoder feature request : support multiple HT sets #37

boxerab opened this issue Sep 23, 2021 · 5 comments
Labels
enhancement New feature or request

Comments

@boxerab
Copy link
Contributor

boxerab commented Sep 23, 2021

This would be a first step towards adding rate control to the encoder.

@osamu620 the simplest approach would be, as you suggested in another issue, to only perform cleanup pass in each HT set.

@osamu620
Copy link
Owner

osamu620 commented Sep 24, 2021

I think so. There is an open discussion:
We should determine a value, let me say p, for the bitplane number from the LSB, for each HT set. The current implementation takes zero for p (means all bitplanes are in one HT cleanup pass.)
For example, like PCRD-opt, we should somehow have to have criteria to have several candidates for p values in accordance with a distortion estimation.

@boxerab
Copy link
Contributor Author

boxerab commented Sep 25, 2021

@osamu620 thanks - is it difficult to change the current block encoder so that is takes a non-zero p value ?

@osamu620
Copy link
Owner

@boxerab
It is not difficult.

void j2k_codeblock::set_MagSgn_and_sigma(uint32_t &or_val) {

To do so with non-zero p value, the above function shall be modified to include only bitplanes from the MSB down to p th bitplane. The MsgSgn and sigma values would be also changed.

The major part of the work would be the implementation of distortion estimation AND HT SigProp and MagRef encoding to generate HT Refinement segment. If a code block has HT SigProp and MagRef passes, the total number of coding passes in the block is three. (If no MagRef, the number is two)

@osamu620
Copy link
Owner

@boxerab
If I provide an initial modification to the function, would it be a starting point to accomplish the whole work? If so, I would be happy to provide it. Please wait for a couple of days because I'm busy with teaching commitments..

@boxerab
Copy link
Contributor Author

boxerab commented Sep 27, 2021

@osamu620 that would be great! I have some more optimisations to do, and then I can work on SigProp and MagRef passes, which are quite similar to Part 1 block coder passes.

@osamu620 osamu620 added the enhancement New feature or request label Nov 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants