On Wed, Jun 24, 2009 at 05:59:19PM +0000, Jai Menon wrote: > On Wed, Jun 24, 2009 at 3:58 PM, Michael Niedermayer<[email protected]> wrote: > > On Wed, Jun 24, 2009 at 01:42:08PM +0000, Jai Menon wrote: > >> On Wed, Jun 24, 2009 at 1:27 PM, Michael Niedermayer<[email protected]> > >> wrote: > >> > On Sun, Jun 21, 2009 at 04:35:20PM +0000, Jai Menon wrote: > > [...] > >> > [...] > >> >> @@ -806,6 +815,26 @@ > >> >> > >> >> line += s->picture.linesize[0]; > >> >> } > >> >> + } else { > >> >> + for (; y < tile->comp[0].coord[1][1] - s->image_offset_y; y++) > >> >> { > >> >> + uint16_t *dst; > >> >> + x = tile->comp[0].coord[0][0] - s->image_offset_x; > >> >> + dst = line + x * s->ncomponents * 2; > >> >> + for (; x < tile->comp[0].coord[0][1] - s->image_offset_x; > >> >> x++) { > >> >> + for (compno = 0; compno < s->ncomponents; compno++) { > >> > > >> >> + *src[compno] = av_rescale(*src[compno], (1 << 16) > >> >> - 1, > >> >> + (1 << s->cbps[compno]) - > >> >> 1); > >> > > >> > av_rescale is too slow > >> > >> So just (*src[compno]/((1 << s->cbps[compno]) - 1)) * ((1 << 16) - 1) ? > > > > * is slow > > / s slower > > > > "src" << C > > it should be > > <possibly dumb question ahead> > > I understand that * and / are slower but how can I achieve the same > effect with a single <<?
well, not the same but close enough IMHO src<<C or (src<<C) + (src>>(16-C)) should be close enough, my point was mainly that av_rescale() is too slow to be done per pixel and anything else is better it also might be possible to merge the rescaling into some other previous step [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB If you think the mosad wants you dead since a long time then you are either wrong or dead since a long time.
signature.asc
Description: Digital signature
_______________________________________________ FFmpeg-soc mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
