[FFmpeg-devel] [PATCH] JPEG200 encoding : added option for changing default codeblock size

Francesco, Cuzzocrea francesco at bltitalia.com
Wed Aug 30 13:39:37 EEST 2017


Hi Moritz
I check the code and it seems the error born from a previous version of 
ISO/IEC15444-1 I have
(I used a final draft not the final document and the definition was 
quite fuzzy).  Checking final
document I found that you are right.
According to this specification (Table A-18 Width or Height exponent of 
the code-blocks for the SPcod
and SPcoc parameters) code-block exponent width  xcb and height ycb are 
defined as:

xcb = value + 2   and  ycb = value+2

so xcb+ycb <=12 is the correct check. I will correct the patch.

Francesco


On 15/08/2017 23.57, Moritz Barsnick wrote:
> On Mon, Aug 07, 2017 at 10:26:21 +0200, francesco at bltitalia.com wrote:
>> Subject: [FFmpeg-devel] [PATCH] JPEG200 encoding : added option for changing default codeblock size
> Is this your commit message? It's 2000, not 200. ;-) Actually, this
> should read:
> libavcodec/j2kenc: add option for changing codeblock size
>
>> +    i = codsty->log2_cblk_width + codsty->log2_cblk_height -4;
>> +    if ( i > 12 )
>> +    {
>> +      av_log(avctx, AV_LOG_ERROR, "Invalid values for codeblocks size\n");
>> +      return -1;
>> +    }
> Bracket placement, indentation and whitespace all do not correspond to
> ffmpeg style.
>
> Apart from that: Isn't that a quite complicated way of saying
> if (codsty->log2_cblk_width + codsty->log2_cblk_height > 16)
> ??
>
>> +    { "log2_cblk_width",   "Codeblock Width",   OFFSET(codsty.log2_cblk_width),    AV_OPT_TYPE_INT,   { .i64 = 4           }, 0,     1<<10,           VE, },
>> +    { "log2_cblk_height",  "Codeblock Height",  OFFSET(codsty.log2_cblk_height),   AV_OPT_TYPE_INT,   { .i64 = 4           }, 0,     1<<10,           VE, },
> I would suggest to drop the capital letters in the option descriptions,
> but it appears to follow the style of the other options, so fine by me.
>
> And what's with the upper limits? They don't seem sane. If you choose
> either option at one of those limits, the check above will fail
> (1<<10 + 0 - 4 is waaaay larger than 12).
>
> Looking at the spec, you are mixing exponent and value. I read
> "Dimension of the code-blocks is always a power of 2 with the minimum
> height and width being 4 and and maximum height and width being 1024."
> Furthermore the sum of the exponents needs to be less than or equal to
> 12.
>
> So, the variable being log2, the limits are obviously 2 and 10, the
> default 4 (as before). And your check actually needs to read
> if (codsty->log2_cblk_width + codsty->log2_cblk_height > 12)
> .
>
> Or am I missing something?
>
>
> Moritz
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

-- 
/*******************************************************************\
*    Ing. Francesco  Cuzzocrea
*    company:    BLT Italia srl        web:  http://www.blt.it
*    address:    via Rosselli, 91     city:  Lido di CAMAIORE
*    country:    ITALY                 zip:  55043-i
*      Tel. :    +39 0584 904788       Fax:  +39 0584 904789
*     e-mail:   francesco at bltitalia.com
\*******************************************************************/
-- BLT will be at IBC (15~19 September 2017) - Hall 8, Stand 8.A69 --



More information about the ffmpeg-devel mailing list