Sunshine master
Self-hosted game stream host for Moonlight.
nvenc_config.h
Go to the documentation of this file.
1
5#pragma once
6
7namespace nvenc {
8
17
26
30 struct nvenc_config {
31 // Quality preset from 1 to 7, higher is slower
33
34 // Use optional preliminary pass for better motion vectors, bitrate distribution and stricter VBV(HRD), uses CUDA cores
36
37 // Percentage increase of VBV/HRD from the default single frame, allows low-latency variable bitrate
39
40 // Improves fades compression, uses CUDA cores
41 bool weighted_prediction = false;
42
43 // Allocate more bitrate to flat regions since they're visually more perceptible, uses CUDA cores
44 bool adaptive_quantization = false;
45
46 // Don't use QP below certain value, limits peak image quality to save bitrate
47 bool enable_min_qp = false;
48
49 // Min QP value for H.264 when enable_min_qp is selected
50 unsigned min_qp_h264 = 19;
51
52 // Min QP value for HEVC when enable_min_qp is selected
53 unsigned min_qp_hevc = 23;
54
55 // Min QP value for AV1 when enable_min_qp is selected
56 unsigned min_qp_av1 = 23;
57
58 // Use CAVLC entropy coding in H.264 instead of CABAC, not relevant and here for historical reasons
59 bool h264_cavlc = false;
60
61 // Add filler data to encoded frames to stay at target bitrate, mainly for testing
62 bool insert_filler_data = false;
63
64 // Enable split-frame encoding if the gpu has multiple NVENC hardware clusters
66 };
67
68} // namespace nvenc
Standalone NVENC encoder.
Definition nvenc_base.cpp:94
nvenc_two_pass
Enumerates supported nVENC two pass options.
Definition nvenc_config.h:12
@ disabled
Single pass, the fastest and no extra vram.
@ full_resolution
Better overall statistics, slower and uses more extra vram.
@ quarter_resolution
Larger motion vectors being caught, faster and uses less extra vram.
nvenc_split_frame_encoding
Enumerates supported nVENC split frame encoding options.
Definition nvenc_config.h:21
@ driver_decides
Let driver decide.
NVENC encoder configuration.
Definition nvenc_config.h:30
unsigned min_qp_h264
Min qp h264.
Definition nvenc_config.h:50
nvenc_split_frame_encoding split_frame_encoding
Split frame encoding.
Definition nvenc_config.h:65
unsigned min_qp_av1
Min qp AV1.
Definition nvenc_config.h:56
nvenc_two_pass two_pass
Two pass.
Definition nvenc_config.h:35
bool h264_cavlc
Use CAVLC entropy coding for H.264.
Definition nvenc_config.h:59
bool insert_filler_data
Insert filler data to maintain bitrate constraints.
Definition nvenc_config.h:62
bool enable_min_qp
Enable minimum QP limits for NVENC.
Definition nvenc_config.h:47
int vbv_percentage_increase
Vbv percentage increase.
Definition nvenc_config.h:38
unsigned min_qp_hevc
Min qp HEVC.
Definition nvenc_config.h:53
int quality_preset
Quality preset.
Definition nvenc_config.h:32
bool adaptive_quantization
Enable adaptive quantization for NVENC.
Definition nvenc_config.h:44
bool weighted_prediction
Enable weighted prediction for NVENC.
Definition nvenc_config.h:41