annotate ffmpeg_smp/h264dec/README.txt @ 1:11d15c47beaf

add h264 decoder code
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Mon, 27 Aug 2012 12:09:56 +0200
parents
children
rev   line source
nengel@1 1 App: h264dec
nengel@1 2
nengel@1 3 This application decodes H.264 raw videos.
nengel@1 4
nengel@1 5 Build Sequential/Pthreads:
nengel@1 6
nengel@1 7 autoreconf -i -f
nengel@1 8 mkdir build
nengel@1 9 cd build
nengel@1 10 ../configure --enable-ssse3 --enable-sdl2
nengel@1 11 make
nengel@1 12
nengel@1 13 Build OmpSs:
nengel@1 14
nengel@1 15 autoreconf -i -f
nengel@1 16 mkdir build
nengel@1 17 cd build-ss
nengel@1 18 ../configure CC=sscc --enable-ssse3 --enable-sdl2
nengel@1 19 make
nengel@1 20
nengel@1 21 ssse3 enables assembler optimizations up to ssse3 (optional)
nengel@1 22 sdl enables a rudimentary viewing capability (optional)
nengel@1 23
nengel@1 24 Usage Sequential/Pthreads:
nengel@1 25 ./h264dec -i $(INPUT_VIDEO) -s
nengel@1 26 ./h264dec -i $(INPUT_VIDEO) -t $(THREADS)
nengel@1 27
nengel@1 28 Usage OmpSs:
nengel@1 29 NX_PES=<numthreads> ./h264dec -i <inputfile> -e <num parallel entropy frames> -z <width> <height> --static-3d
nengel@1 30
nengel@1 31 -e specify the number of entropy decode pipeline buffers and should be ideally
nengel@1 32 the same as the number of threads.
nengel@1 33
nengel@1 34 -z allows to set the MB reconstruction grouped block size. A size between 6 by 6 to 10 by 10
nengel@1 35 was found to strike a good balance between overhead and parallelism, but is machine and input
nengel@1 36 dependent.
nengel@1 37
nengel@1 38 --static-3d performs overlapping wavefront decoding.
nengel@1 39
nengel@1 40 General usage:
nengel@1 41 -d displays output
nengel@1 42 -f fullscreen
nengel@1 43 -o $(OUT_FILE) write raw YUV
nengel@1 44 -v show framerate
nengel@1 45
nengel@1 46
nengel@1 47 The INPUT_VIDEOs are in "inputs_encore", but should be able to decode any raw H.264 stream using
nengel@1 48 one slice per frame, non-interlaced, and CABAC, YUV420.
nengel@1 49
nengel@1 50
nengel@1 51 Integrated OmpSs player demo
nengel@1 52 ----------------------------
nengel@1 53 NOTE: for the player demo SDL2 must be installed.
nengel@1 54
nengel@1 55 1. Go to the OmpSs build directory (/home/cchi/Projects/ffmpeg_smp/build-ss)
nengel@1 56
nengel@1 57 2. Launch the H.264 decoder with the desired options:
nengel@1 58
nengel@1 59 NX_PES=<numthreads> ./h264dec <inputfile> -v (verbose) -e <num parallel entropy frames> -z <width> <height> -d (display) -f (fullscreen)
nengel@1 60
nengel@1 61 note that <num parallel entropy frames> should be equal or higher than <numthreads> for optimal performance
nengel@1 62
nengel@1 63 Examples:
nengel@1 64
nengel@1 65 NX_PES=7 ./h264dec -i ../../h264_movies/park_joy_2160px5.h264 -v -z 8 8 -df -e 9
nengel@1 66 NX_PES=7 ./h264dec -i ../../h264_movies/big_buck_bunny_1080p24.h264 -v -d -z 6 6 -e 9
nengel@1 67
nengel@1 68 Interacting with the program
nengel@1 69 ----------------------------
nengel@1 70 <CTRL+F> Fullscreen mode
nengel@1 71 <ESCAPE> Window mode
nengel@1 72 <SPACE> Pause/resume
nengel@1 73 <M> Show/hide macroblock borders
nengel@1 74 <arrows> When macroblock borders are shown resizes the macroblocks
nengel@1 75 <ALT+F4> Close
nengel@1 76
nengel@1 77 Force close in case of lockup
nengel@1 78 -----------------------------
nengel@1 79 On a terminal: killall -9 h264dec