[FFmpeg-devel] Video codec design for very low-end decoder

Michael Niedermayer michael at niedermayer.cc
Mon Jan 7 20:11:02 EET 2019

On Mon, Jan 07, 2019 at 07:24:53PM +0200, Lauri Kasanen wrote:
> On Mon, 7 Jan 2019 17:42:58 +0100
> Michael Niedermayer <michael at niedermayer.cc> wrote:
> > > According to a 2010 comparison
> > > https://keyj.emphy.de/video-encoder-comparison/
> > > x264 constrained baseline (everything off) takes something like 30%
> > > longer to decode vs xvid at the same rate. Probably more because that
> > > site used xvid's full features, while I used it "everything off".
> > 
> > constrained baseline is not "everything off"
> Wikipedia's table shows CBP as "all off", but perhaps it doesn't list
> every option. It lists CABAC etc, but not deblocking. Do you think the
> unlisted options could account for 30%?

deblocking is complex, if everything else is turned off
relatively speaking

Also if h264 is still too slow after this try intra only h264.
same thing for mpeg4 ASP (what you call xvid) and mpeg1, intra only might be
fast enough

> > > The issue with xvid simple and mpeg1 were that they were slightly too
> > > slow, and looked too bad. The platform does not have any SIMD, so I
> > > doubt asm optimizations will help much.
> > 
> > I would guess that with rare or odd architectures
> > compilers are not so good when it comes to generating efficient code.
> > 
> > I would not be surprised if someone who knows the target CPUs pipeline
> > and timings could beat the compiler by quite some amount.
> > This is one part where the amount of man hours needed is significant
> > of course. Would that be worth it, well its your project you have
> > to know what amount of work you are willing to do for this, 
> > i wouldnt do that work ;)
> > 
> > besides, why this low end chip ?
> Just for fun ;)
> MIPS does not have any timings, all instructions complete in the same
> amount of cycles (except floating point, cache misses, interrupts,
> etc). This makes it fairly suitable for a compiler I think, limiting
> what could be gotten from hand-writing asm.

have you ever looked at asm code generated by gcc ?
you should instead of assuming it is good code.
Ive seen really crappy code generated by compilers and i speak of x86

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Many that live deserve death. And some that die deserve life. Can you give
it to them? Then do not be too eager to deal out death in judgement. For
even the very wise cannot see all ends. -- Gandalf
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190107/643617a2/attachment.sig>

More information about the ffmpeg-devel mailing list