Compiling Homer
HomerHEVC is composed of a simple example application (homer_app) and the encoder library (homer_lib).
Compile in Windows
Visual C++ 2008. Open the solution inside the “build\vc9\” folder and rebuild. Default project is for 64 bits.
Visual C++ 2012. Open the solution inside the “build\vc11\” folder and rebuild. Default project is for 64 bits.
Cygwin. Open the Cygwin console, go to the “build/Cygwin/” folder and type “make clean all” to execute the makefile.
Compile in Linux
Open a console. Go to the “build/Linux/” folder and type “make clean all” to execute the makefile.
Configuration
Supported configuration parameters:
call:
homer_app [-option] [value]...
options:
-h: help
-i: input yuv file
-o: output 265 file
-o-raw: output raw frames in yuv format
-widthxheight: default = 1280x720
-frame_rate: default = 25 fps
-cu_size: cu size [16,32 or 64], default = 64 (only 64 supported for inter prediction)
-intra_preriod: default = [0-...], 0=infinite, default = 100
-gop_size: 0:intra profile, 1: IPPP.. profile, default = 1
-num_ref_frame: default = 1 (only 1 reference currently supported)
-qp: qp[0-51], default = 32
-motion_estimation_precision: 0=pel, 1=half_pel, 2=quarter_pel, default = 2
-chroma_qp_offset: chroma_qp_offset[-12,12], default = 2
-n_enc_engines: number of encoder engines encoding frames in parallel, default = 2
-n_wpp_threads: 0:no wpp, >0-number of wpp threads, default = 10
-number of wpp threads, default = 10
-max_pred_depth: [0-4], default = 4
-max_intra_tr_depth: [0-4], default = 2
-max_inter_tr_depth: [0-4], default = 1
-sign_hiding: 0=off, 1=on, default = 1
-bitrate_mode: 0=fixed qp, 1=CBR (Constant bitrate), 2=VBR (Variable bitrate), default = VBR
-bitrate: in kbps when bitrate_mode=CBR, default = 1250
-vbv_size: in kbps when bitrate_mode=CBR, default = 1*bitrate
-vbv_init: in kbps when bitrate_mode=CBR, default = .25*vbv_size
-performance_mode: 0=full computation, 1=fast , 2= ultra fast, default = ufast
-rd: 0=off, 1=full rd (only in intra) , 2= fast rd, default = fast
-n_frames: default = 1000
-skipped_frames: default = 0
Configuration examples:
intra:
homer_app -i /home/juan/Patrones/720p5994_parkrun_ter.yuv -o output0.265 -widthxheight 1280x720 -frame_rate 50 -intra_period 1 -gop_size 0 -max_pred_depth 4 -max_intra_tr_depth 3 -bitrate 25000 -vbv_size 1000 -vbv_init 1000 -n_wpp_threads 10 -performance_mode 1 -rd_mode 2 -n_frames 400
inter:
homer_app -i /home/juan/Patrones/720p5994_parkrun_ter.yuv -o output0.265 -widthxheight 1280x720 -frame_rate 50 -intra_period 100 -gop_size 1 -max_pred_depth 4 -max_intra_tr_depth 3 -max_inter_tr_depth 1 -bitrate 5000 -vbv_size 2500 -vbv_init 750 -n_wpp_threads 10 -performance_mode 1 -rd_mode 2 -n_frames 400
Bugs and other issues
Please report bugs and different issues in:
https://github.com/jcasal-homer/HomerHEVC/issues