[FFmpeg-cvslog] j2k: drop cblknx/y from Jpeg2000Band

Michael Niedermayer git at videolan.org
Mon May 27 16:03:11 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Mon May 27 15:55:29 2013 +0200| [c2e942099ac8ec989ec49ca9f466909726548091] | committer: Michael Niedermayer

j2k: drop cblknx/y from Jpeg2000Band

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c2e942099ac8ec989ec49ca9f466909726548091
---

 libavcodec/j2k.c    |    5 -----
 libavcodec/j2k.h    |    1 -
 libavcodec/j2kenc.c |    7 ++++---
 3 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/libavcodec/j2k.c b/libavcodec/j2k.c
index 9ef40e7..443259b 100644
--- a/libavcodec/j2k.c
+++ b/libavcodec/j2k.c
@@ -291,17 +291,12 @@ int ff_j2k_init_component(Jpeg2000Component *comp,
                 log2_band_prec_width  = reslevel->log2_prec_width  - 1;
                 log2_band_prec_height = reslevel->log2_prec_height - 1;
             }
-            band->cblknx = ff_jpeg2000_ceildivpow2(band->coord[0][1], band->log2_cblk_width)  - (band->coord[0][0] >> band->log2_cblk_width);
-            band->cblkny = ff_jpeg2000_ceildivpow2(band->coord[1][1], band->log2_cblk_height) - (band->coord[1][0] >> band->log2_cblk_height);
 
             for (j = 0; j < 2; j++)
                 band->coord[0][j] = ff_jpeg2000_ceildiv(band->coord[0][j], dx);
             for (j = 0; j < 2; j++)
                 band->coord[1][j] = ff_jpeg2000_ceildiv(band->coord[1][j], dy);
 
-            band->cblknx = ff_jpeg2000_ceildiv(band->cblknx, dx);
-            band->cblkny = ff_jpeg2000_ceildiv(band->cblkny, dy);
-
             band->prec = av_malloc_array(reslevel->num_precincts_x *
                                          reslevel->num_precincts_y,
                                          sizeof(*band->prec));
diff --git a/libavcodec/j2k.h b/libavcodec/j2k.h
index b2de96b..a981208 100644
--- a/libavcodec/j2k.h
+++ b/libavcodec/j2k.h
@@ -178,7 +178,6 @@ typedef struct Jpeg2000Prec {
 typedef struct Jpeg2000Band {
     uint16_t coord[2][2]; // border coordinates {{x0, x1}, {y0, y1}}
     uint16_t log2_cblk_width, log2_cblk_height;
-    uint16_t cblknx, cblkny;
     uint32_t stepsize; // quantization stepsize (* 2^13)
     Jpeg2000Prec *prec;
 } Jpeg2000Band; // subband
diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c
index 601ccc5..d673daf 100644
--- a/libavcodec/j2kenc.c
+++ b/libavcodec/j2kenc.c
@@ -821,6 +821,7 @@ static int encode_tile(Jpeg2000EncoderContext *s, Jpeg2000Tile *tile, int tileno
 
             for (bandno = 0; bandno < reslevel->nbands ; bandno++){
                 Jpeg2000Band *band = reslevel->band + bandno;
+                Jpeg2000Prec *prec = band->prec; // we support only 1 precinct per band ATM in the encoder
                 int cblkx, cblky, cblkno=0, xx0, x0, xx1, y0, yy0, yy1, bandpos;
                 yy0 = bandno == 0 ? 0 : comp->reslevel[reslevelno-1].coord[1][1] - comp->reslevel[reslevelno-1].coord[1][0];
                 y0 = yy0;
@@ -832,7 +833,7 @@ static int encode_tile(Jpeg2000EncoderContext *s, Jpeg2000Tile *tile, int tileno
 
                 bandpos = bandno + (reslevelno > 0);
 
-                for (cblky = 0; cblky < band->cblkny; cblky++){
+                for (cblky = 0; cblky < prec->nb_codeblocks_height; cblky++){
                     if (reslevelno == 0 || bandno == 1)
                         xx0 = 0;
                     else
@@ -841,7 +842,7 @@ static int encode_tile(Jpeg2000EncoderContext *s, Jpeg2000Tile *tile, int tileno
                     xx1 = FFMIN(ff_jpeg2000_ceildivpow2(band->coord[0][0] + 1, band->log2_cblk_width) << band->log2_cblk_width,
                                 band->coord[0][1]) - band->coord[0][0] + xx0;
 
-                    for (cblkx = 0; cblkx < band->cblknx; cblkx++, cblkno++){
+                    for (cblkx = 0; cblkx < prec->nb_codeblocks_width; cblkx++, cblkno++){
                         int y, x;
                         if (codsty->transform == FF_DWT53){
                             for (y = yy0; y < yy1; y++){
@@ -860,7 +861,7 @@ static int encode_tile(Jpeg2000EncoderContext *s, Jpeg2000Tile *tile, int tileno
                                 }
                             }
                         }
-                        encode_cblk(s, &t1, band->prec->cblk + cblkno, tile, xx1 - xx0, yy1 - yy0,
+                        encode_cblk(s, &t1, prec->cblk + cblkno, tile, xx1 - xx0, yy1 - yy0,
                                     bandpos, codsty->nreslevels - reslevelno - 1);
                         xx0 = xx1;
                         xx1 = FFMIN(xx1 + (1 << band->log2_cblk_width), band->coord[0][1] - band->coord[0][0] + x0);



More information about the ffmpeg-cvslog mailing list