[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [OpenDivX] OpenDivX optimalization: +30-40%



inside macroblock(), because addblockInter() also takes a lot of cpu and
does nothing if block is not coded, and it will be possible to eliminate
for(;;) if there are no coded blocks..

----- Original Message -----
From: "John Funnell" <[email protected]>
To: "Andrew Woznytsa" <[email protected]>;
<[email protected]>
Sent: Wednesday, March 14, 2001 1:04 PM
Subject: Re: [OpenDivX] OpenDivX optimalization: +30-40%


> Had a quick look and it seems that IntraBlock() runs clearblock and an
iDCT
> on each block even if it was not coded!  I think we need to fix this, well
> spotted.
>
> So, where's the cleanest place to make the change:  as indicated below, or
> inside IntraBlock()?
>
> This might take a couple of days to get into CVS as e7abe7a's away today
and
> he should approve this first as this is his code.
>
> Thanks again,
>
> John (eagle)
>
>
> ----- Original Message -----
> From: Andrew Woznytsa <[email protected]>
> To: <[email protected]>
> Sent: Wednesday, March 14, 2001 10:46 AM
> Subject: [OpenDivX] OpenDivX optimalization: +30-40%
>
>
> > Hi All,
> >
> > I'm quite confused...
> >
> > look below and compare these algorithms.. results will be the same but
> > perfomance gain will be 30-40%..
> >
> > regards,
> >
> > Andrew
> >
> > decoder/mp4_mblock.c/macroblock(), line 120:
> >
> > 1. original algorithm:
> >
> >   // motion compensation
> >   if (interFlag)
> >   {
> >    reconstruct(mp4_hdr.mb_xpos, mp4_hdr.mb_ypos,
mp4_hdr.derived_mb_type);
> >
> >    // texture decoding add
> >    for (j = 0; j < 6; j++) {
> >     int coded = mp4_hdr.cbp & (1 << (5 - j));
> >
> >     blockInter(j, (coded != 0));
> >     addblockInter(j, mp4_hdr.mb_xpos, mp4_hdr.mb_ypos);
> >    }
> >   }
> >   else
> >   {
> >    // texture decoding add
> > [skiped]
> >
> > 2. my version
> >
> >   // motion compensation
> >   if (interFlag)
> >   {
> >    reconstruct(mp4_hdr.mb_xpos, mp4_hdr.mb_ypos,
mp4_hdr.derived_mb_type);
> >
> >    // texture decoding add
> >    for (j = 0; j < 6; j++) {
> >     int coded = mp4_hdr.cbp & (1 << (5 - j));
> >     if(coded){
> >          blockInter(j, (coded != 0));
> >          addblockInter(j, mp4_hdr.mb_xpos, mp4_hdr.mb_ypos);
> >     }
> >   }
> >   else
> >   {
> >    // texture decoding add
> > [skiped]
> >
> >
> > _________________________________________________________
> > Do You Yahoo!?
> > Get your free @yahoo.com address at http://mail.yahoo.com
> >
> >
> > _______________________________________________
> > OpenDivX mailing list
> > [email protected]
> > http://lists.projectmayo.com/mailman/listinfo/opendivx


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


_______________________________________________
OpenDivX mailing list
[email protected]
http://lists.projectmayo.com/mailman/listinfo/opendivx


Reply To Poster

Local References / HOW-TO / FAQs