Message ID | 20180814072834.6671-1-deepgagan231197@gmail.com |
---|---|
State | Superseded |
Headers | show |
On Tue, Aug 14, 2018 at 12:58 PM Gagandeep Singh <deepgagan231197@gmail.com> wrote: > --- > libavcodec/cfhd.c | 25 ++++++++++++++++++++++++- > 1 file changed, 24 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c > index 3906d7a86d..2c538f0bbd 100644 > --- a/libavcodec/cfhd.c > +++ b/libavcodec/cfhd.c > @@ -114,7 +114,30 @@ static inline int dequant_and_decompand(int level, > int quantisation, int codeboo > { > if (lossless) > return level; > - if (codebook == 0 || codebook == 1) { > + if (codebook == 0) { > + if (level >= 40 && level < 264) { > + if (level >= 54) { > + level -= 54; > + level <<= 2; > + level += 54; > + } > + level -= 40; > + level <<= 2; > + level += 40; > + } else if (level <= -40) { > + level = -level; > + if (level >= 54) { > + level -= 54; > + level <<= 2; > + level += 54; > + } > + level -= 40; > + level <<= 2; > + level += 40; > + level = -level; > + } > + return level * quantisation; > + } else if (codebook == 1) { > int64_t abslevel = abs(level); > if (level < 264) > return (abslevel + ((768 * abslevel * abslevel * abslevel) / > (255 * 255 * 255))) * > -- > 2.17.1 > > Discard this thread, really sorry for the inconvenience. Gagandeep Singh
diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index 3906d7a86d..2c538f0bbd 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -114,7 +114,30 @@ static inline int dequant_and_decompand(int level, int quantisation, int codeboo { if (lossless) return level; - if (codebook == 0 || codebook == 1) { + if (codebook == 0) { + if (level >= 40 && level < 264) { + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + } else if (level <= -40) { + level = -level; + if (level >= 54) { + level -= 54; + level <<= 2; + level += 54; + } + level -= 40; + level <<= 2; + level += 40; + level = -level; + } + return level * quantisation; + } else if (codebook == 1) { int64_t abslevel = abs(level); if (level < 264) return (abslevel + ((768 * abslevel * abslevel * abslevel) / (255 * 255 * 255))) *