#--------------------------------------------------------------------------
#                          Configuration file
#--------------------------------------------------------------------------

#--------------------------------------------------------------------------
[INPUT]
#--------------------------------------------------------------------------

# YUVFile : YUV input file
YUVFile = test/config/simple.yuv

# Width, Height: frame width/height in pixels
# width and height shall be multiple of 8 pixels
Width  = 144
Height = 144

# Format : FOURCC format of input file
# typical file formats       : I420, I422, I0AL, I2AL...
# hardware supported formats : NV12, NV16, P010, P210... (depends of the hw ip)
# default value : I420
Format = I420

#--------------------------------------------------------------------------
[OUTPUT]
#--------------------------------------------------------------------------

# BitstreamFile : elementary stream output file
BitstreamFile = bitstream.hevc

# RecFile : optional output file for reconstructed pictures
#RecFile = rec.yuv

#--------------------------------------------------------------------------
[RATE_CONTROL]
#--------------------------------------------------------------------------

# RateCtrlMode : selects the bit rate control mode
# allowed values : CONST_QP, CBR, VBR, ...
# default value  : CONST_QP
RateCtrlMode = CBR

# FrameRate : number of frames per second
# default value : 30
FrameRate = 25

# BitRate: target bitrate in kbit/s (not used when RateCtrlMode = CONST_QP)
# default value : 4000
BitRate = 700

# MaxBitRate: maximum bitrate in kbit/s used when RateCtrlMode = VBR
# MaxBitRate shall be equal to BitRate when RateCtrlMode = CBR or LOW_LATENCY
# default value : 4000
MaxBitRate = 700

# SliceQP : Quantization Parameter
# when RateCtrlMode = CONST_QP, it defines the QP for all slices, otherwise it specifies the initial QP
# allowed values : from 0 to 51, AUTO
# default value  : 30
SliceQP = 25

# CPBSize : specifies the size of the Coded Picture Buffer as specified in the HRD model, in seconds (not used when RateCtrlMode = CONST_QP)
# default value : 3.0
CPBSize = 1.0

# InitialDelay : specifies the initial removal delay as specified in the HRD model, in seconds (not used when RateCtrlMode = CONST_QP)
# default value : 1.5
InitialDelay = 1.0

#--------------------------------------------------------------------------
[GOP]
#--------------------------------------------------------------------------

# GopCtrlMode : specifies the Group Of Pictures configuration
# allowed values : DEFAULT_GOP, LOW_DELAY_P, LOW_DELAY_B, PYRAMIDAL_GOP
# default value  : DEFAULT_GOP
GopCtrlMode = DEFAULT_GOP

# Gop.Length : GOP length in frames including the I picture. 0 = Intra only
# default value : 30
Gop.Length = 25

# Gop.NumB : maximum number of consecutive B frames in a GOP (used only when GopCtrlMode = DEFAULT_GOP or PYRAMIDAL_GOP)
# allowed values : 0 to 4    when GopCtrlMode = DEFAULT_GOP
#                  3, 5 or 7 when GopCtrlMode = PYRAMIDAL_GOP
# default value  : 0
Gop.NumB = 1

# Gop.FreqIDR : minimum number of frames between two IDR pictures (IDR insertion depends on the position of the GOP boundary)
# allowed values : positive value or -1 to disable IDR insertion
# default value  : -1
#Gop.FreqIDR = 25

#--------------------------------------------------------------------------
[SETTINGS]
#--------------------------------------------------------------------------

# Profile : specifies the standard/profile to which the bitstream conforms
# allowed values : AVC_BASELINE, AVC_MAIN, AVC_HIGH, AVC_HIGH10, AVC_HIGH_422,
#                  HEVC_MAIN, HEVC_MAIN10, HEVC_MAIN_422_10...
# (Some profile might not be supported by your hardware ip, see hardware ip specification)
Profile = HEVC_MAIN

# Level : specifies the level to which the bitstream conforms
# allowed values : 1.0 to 5.2 for AVC, 1.0 to 5.1 for HEVC
Level = 2

# Tier : specifies the tier to which the bitstream conforms (HEVC only)
# allowed values : MAIN_TIER, HIGH_TIER
#Tier = MAIN_TIER

# ChromaMode : selects the chroma subsampling mode used to encode the stream
# allowed values : CHROMA_MONO, CHROMA_4_2_0, CHROMA_4_2_2
# default value  : CHROMA_4_2_0
ChromaMode = CHROMA_4_2_0

# BitDepth : specifies the bit depth of the luma and chroma samples in the encoded stream
# allowed values : 8, 10
# default value  : 8
BitDepth = 8

# NumSlices : number of row-based slices used for each frame
# allowed values : from 1 up to the number of coding unit rows in the frame
# default value  : 1
NumSlices = 2

# QPCtrlMode : specifies how to generate the QP per coding unit
# allowed values : UNIFORM_QP, AUTO_QP, LOAD_QP, LOAD_QP | RELATIVE_QP
# default value  : UNIFORM_QP
QPCtrlMode = UNIFORM_QP

# ScalingList : specifies the scaling list mode
# allowed values : FLAT, DEFAULT, CUSTOM
# default value  : DEFAULT
ScalingList = FLAT

# EntropyMode : selects the entropy coding mode (AVC only)
# allowed values : MODE_CAVLC, MODE_CABAC
# default value  : MODE_CABAC
EntropyMode = MODE_CABAC

# LoopFilter : enables/disables the deblocking filter
# allowed values : ENABLE, DISABLE
# default value  : ENABLE
LoopFilter = ENABLE

#--------------------------------------------------------------------------
[RUN]
#--------------------------------------------------------------------------

# Loop : specifies whether the encoder should loop back to the beginning of the YUV input stream when it reaches the end of the file
# Allowed values : TRUE, FALSE
# default value  : FALSE
Loop = TRUE

# MaxPicture : number of frames to encode
# Allowed value : ALL, 1 .. 2147483647
# default value : ALL
MaxPicture = 10

# FirstPicture : specifies the first frame to encode
# Allowed value : 0 .. 2147483647
# default value : 0
FirstPicture = 0
