1 /*
2 * Copyright (c) 2021, Intel Corporation
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included
12 * in all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 */
22 //!
23 //! \file encode_hevc_user_setting.cpp
24 //! \brief Initialize user setting of HEVC
25 //!
26 #include "encode_hevc_pipeline.h"
27
28 namespace encode
29 {
InitUserSetting(MediaUserSettingSharedPtr userSettingPtr)30 MOS_STATUS HevcPipeline::InitUserSetting(MediaUserSettingSharedPtr userSettingPtr)
31 {
32 ENCODE_FUNC_CALL();
33 ENCODE_CHK_STATUS_RETURN(EncodePipeline::InitUserSetting(userSettingPtr));
34 DeclareUserSettingKey(
35 userSettingPtr,
36 "HEVC Encode Mode",
37 MediaUserSetting::Group::Sequence,
38 int32_t(0),
39 true);
40 #if (_DEBUG || _RELEASE_INTERNAL)
41 DeclareUserSettingKey(
42 userSettingPtr,
43 "HEVC Encode RDO Enable",
44 MediaUserSetting::Group::Sequence,
45 int32_t(0),
46 true);
47 DeclareUserSettingKeyForDebug(
48 userSettingPtr,
49 "Disable HEVC RDOQ Perf",
50 MediaUserSetting::Group::Sequence,
51 int32_t(1),
52 false);
53 DeclareUserSettingKey(
54 userSettingPtr,
55 "HEVC VDEnc TileReplay Enable",
56 MediaUserSetting::Group::Sequence,
57 int32_t(0),
58 false);
59 DeclareUserSettingKey(
60 userSettingPtr,
61 "HEVC VDEnc Rounding Enable",
62 MediaUserSetting::Group::Sequence,
63 int32_t(1),
64 true);
65 DeclareUserSettingKey(
66 userSettingPtr,
67 "HEVC VDEnc ACQP Enable",
68 MediaUserSetting::Group::Sequence,
69 int32_t(0),
70 true);
71 DeclareUserSettingKey(
72 userSettingPtr,
73 "HEVC RDOQ Enable",
74 MediaUserSetting::Group::Sequence,
75 int32_t(1),
76 true);
77 DeclareUserSettingKey(
78 userSettingPtr,
79 "HEVC VDEnc LBC Only Enable",
80 MediaUserSetting::Group::Sequence,
81 int32_t(0),
82 false);
83 DeclareUserSettingKeyForDebug(
84 userSettingPtr,
85 "HEVC VDEnc Force Delta QP Enable",
86 MediaUserSetting::Group::Sequence,
87 int32_t(1),
88 true);
89 DeclareUserSettingKeyForDebug(
90 userSettingPtr,
91 "Disable TCBRC ARB for HEVC VDEnc",
92 MediaUserSetting::Group::Sequence,
93 int32_t(0),
94 false);
95 DeclareUserSettingKeyForDebug(
96 userSettingPtr,
97 "lpla ds data address",
98 MediaUserSetting::Group::Sequence,
99 "",
100 false);
101 #endif
102 return MOS_STATUS_SUCCESS;
103 }
104
105 } // namespace encode