[FFmpeg-devel] GSoC project (JPEG 2000)

rukhsana afroz rukhsana.afroz at gmail.com
Tue Apr 5 05:41:12 CEST 2011

On Mon, Apr 4, 2011 at 8:08 PM, compn <tempn at twmi.rr.com> wrote:

> On Mon, 4 Apr 2011 19:35:12 -0700, rukhsana afroz wrote:
> >On Tue, Mar 29, 2011 at 4:56 PM, Michael Niedermayer <michaelni at gmx.at
> >wrote:
> >Most of the files fail when the decoder retrieves the coding style of the
> >j2k file and gets the error "no extra cblk styles supported". The files in
> >"testfiles_jp2" do not fail in this IF block. Actually coding style is
> >retrieved at the beginning of decoding process, before entering to the
> >actual codestream. I looked for exact rfc of jpeg2000 coding standard in
> the
> >internet, however did not find anything useful. Could you please refer me
> >the standard rfc based on what this code has been developed?
> did you see this document already?
> http://www.jpeg.org/public/fcd15444-1.pdf
> (linked to from http://wiki.multimedia.cx/index.php?title=JPEG_2000 )

Thanks Compn. I got the partial of this document, not the full one. It
seems, in the document, for J2K_SOD the marker is 0xff52,  for J2K_COC
marker is 0xff53, and  for J2K_TLM marker is 0xff55. However in the code,
marker 0xff55 has been assigned to all J2L_TLM, J2K_SOD and J2K_COC.

            case J2K_SIZ:
                ret = get_siz(s); break;
            case J2K_COC:
                ret = get_coc(s, codsty, properties); break;
            case J2K_COD:
                ret = get_cod(s, codsty, properties); break;
            case J2K_QCC:
                ret = get_qcc(s, len, qntsty, properties); break;
            case J2K_QCD:
                ret = get_qcd(s, len, qntsty, properties); break;
            case J2K_SOT:
                if (!(ret = get_sot(s))){
                    codsty = s->tile[s->curtileno].codsty;
                    qntsty = s->tile[s->curtileno].qntsty;
                    properties = s->tile[s->curtileno].properties;
            case J2K_COM:
                // the comment is ignored
                s->buf += len - 2; break;
                av_log(s->avctx, AV_LOG_ERROR, "unsupported marker 0x%.4X at
pos 0x%x\n", marker, s->buf - s->buf_start - 4);
                s->buf += len - 2; break;

I believe, these portion of code need to be corrected. All markers (J2L_SOD,
J2K_COC, J2L_TLM) need to be distinguished separately and their
corresponding functions need to be implemented. I am trying myself to solve
these bugs at this stage with less code.

Rukhsana Ruby
Phd Student
Department of Electrical & Computer Engineering
The University of British Columbia

More information about the ffmpeg-devel mailing list