[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4688: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4690: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4691: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4692: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
Parallella Community • View topic - distributed x264 video encoding
Page 1 of 1

distributed x264 video encoding

PostPosted: Mon Dec 02, 2013 7:31 pm
by JackTakahashi
Hey guys,

I'm really interested in understanding the potential of the parallella board for X264 video encoding.
What kind of limitations would there be to port an X264 encoder (something like HandBrake) to the co-processor? What about clustering limitations?
If the parallella hardware is capable, I was thinking of having one master server split up the original video in X parts and then send them over the LAN to various parallella cards which then encode the video and return the encoded parts to the server which then merges all of the parts in one complete re-encoded video.
Obviously this is not a fully distributed solution (which would have to be built from scratch for the parallella board, I assume) but it could be a start.
I am a developer but I have never worked with x264 before and I don't know where to start, but I'd be really interested in making this work on the parallella board.
Any thoughts on this are appreciated, thank you!

Re: distributed x264 video encoding

PostPosted: Mon Dec 02, 2013 9:57 pm
by theover
I haven't looked into the x264 (or also open source ffmpeg) sources, so I don't know how hard it is to find stuff that can parallelize with the proper granularity.

Maybe when the getting the boards to the customers job is done, there are experts who can say which code will run good on the Adaptive, surely there's be quite a few people interested in a low power, fast x264 encoder, even though wavelet encoding is a newer thing to try ( the BBCs Dirac/Schroedinger, and jpeg2000+ for HD film).

Just running a distributed encoder on the dual ARM cores, and connecting to more boards, is another. Maybe there are options already for that in the Open Source world. Certain computations could be singled out for optimization (even on the FPGA), like DCT and pattern search, etc.

T.V.

Re: distributed x264 video encoding

PostPosted: Tue Dec 03, 2013 4:20 am
by over9000

Re: distributed x264 video encoding

PostPosted: Tue Dec 03, 2013 12:48 pm
by JackTakahashi

Re: distributed x264 video encoding

PostPosted: Tue Dec 03, 2013 3:10 pm
by over9000

Re: distributed x264 video encoding

PostPosted: Tue Dec 03, 2013 3:29 pm
by over9000

Re: distributed x264 video encoding

PostPosted: Tue Dec 03, 2013 5:40 pm
by theover
Well, I'm used to running ffmpeg on I7s (notebook, and even an extreme), and I wouldn't say either h264 (with x264 or ffmpeg) gives me what I want: realtime 1080 HD encoding at at least 30 fps, but it compiles easily (on Linux), and it does produce usable results of High Definition quality.

The x264 tool can be used for bluray type of video streams, so 1080i pr 1080p at 24/50/60 frames/sec, and can do so properly. You cannot necessarily patch pieces of h264 together into one stream, because there may be frame-inter-dependencies. Of course both search algorithm and the rounding to a number of bits (with proper progressiveness) and other kinds of things (like motion analysis) can be done in different ways, and corners could be cut.

Of course this technology isn't new, so it's hardly a matter of "can it be done". Because "of course" it can be done, I've got a $300 Sony cam that pulls about 3 Watts and it creates stunning 1080p50 h264 of 28 megabit/sec.. Also a standard Android tablet with decent ARM processor in it can do reasonable realtime h264 encoding for 720HD. Sure a good idea to use Raspberry work to run on the ARM of the Adaptive board, maybe there's some nice NEON accelerated stuff that can be used, without wandering into the territory of making illegal DVD/Bluray transcodings. More like seeing if the Adaptiva can maybe also run a free Mathematica license!

From both you comments I recon you're not the kind of savvy guys I was talking about, but maybe some people you know have some interesting code you can port, and play around with. It would be cool to have some things on the Parallella that allow fun things like video encoding, even if it isn't industrial-level optimized. It would make a great (most likely university) undergrad teaching tool to be able to play with the available ARM-to-Adaptiva bandwidth, and to search out which computations could be offloaded to where. Including the FPGA would even make for some novel ideas to be implementable in the architecture, could be interesting, and a RISC processor like the Adaptiva cores may well give quite different results than say the PlayStation stream processor or offloading to something like Cuda and NVidia's "VDPAU".

T.V.