recently i've been trying hard to use hardware engines to process raw video for playback.
unfortunately i did
not get far enough to say we have realtime playback.
but using an hardware engine, i was able to speed up processing at least a bit.
a example video with 600 frames, 24fps, 1920x1080, of 25 seconds length
takes
96 seconds using "color" and "all", which means it will play all frames with nice colors and no skipping.
using a tweak module "
raw_twk" (see source in unified), which adds new methods for the latest
mlv_play to play raw with improved speeds.
warning:a) use it on your own risk
b) only compatible with mlv_play
c) THIS IS REALLY EXPERIMENTAL, DONT DARE TO POST HERE IF IT RUINED SOME SHOOT YOU MADE!
d) 5D3 only yetmaybe this is stable enough to make use of it in ML core?
it is making use of
"ProcessPathForFurikake" DSUNPACK/DARK/PACK16/WDMAC16 engines which receive 14bpp raw stream and align it correctly into 16bpp.
this eases up the way we can read out the pixel data and basically the most CPU expensive thing is rgb->yuv.
for this reason ive also improved rgb2yuv:
left: original code, right: handcrafted assembly (there are also 6 words of constans not shown)source