Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
V
VVCSoftware_VTM
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
JVET Trac bug tracker
JVET Trac bug tracker
Merge Requests
11
Merge Requests
11
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Jobs
Commits
Open sidebar
jvet
VVCSoftware_VTM
Commits
ce58f412
Commit
ce58f412
authored
Apr 06, 2019
by
Daniel Luo
Committed by
Xiang Li
Apr 06, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
JVET-N0235: Added smvd flag in SPS
parent
ec4ccbf5
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
52 additions
and
0 deletions
+52
-0
cfg/encoder_randomaccess_vtm.cfg
cfg/encoder_randomaccess_vtm.cfg
+1
-0
doc/software-manual.tex
doc/software-manual.tex
+7
-0
source/App/EncoderApp/EncApp.cpp
source/App/EncoderApp/EncApp.cpp
+3
-0
source/App/EncoderApp/EncAppCfg.cpp
source/App/EncoderApp/EncAppCfg.cpp
+9
-0
source/App/EncoderApp/EncAppCfg.h
source/App/EncoderApp/EncAppCfg.h
+3
-0
source/Lib/CommonLib/Slice.h
source/Lib/CommonLib/Slice.h
+7
-0
source/Lib/CommonLib/TypeDef.h
source/Lib/CommonLib/TypeDef.h
+2
-0
source/Lib/DecoderLib/VLCReader.cpp
source/Lib/DecoderLib/VLCReader.cpp
+3
-0
source/Lib/EncoderLib/EncCfg.h
source/Lib/EncoderLib/EncCfg.h
+7
-0
source/Lib/EncoderLib/EncGOP.cpp
source/Lib/EncoderLib/EncGOP.cpp
+4
-0
source/Lib/EncoderLib/EncLib.cpp
source/Lib/EncoderLib/EncLib.cpp
+3
-0
source/Lib/EncoderLib/VLCWriter.cpp
source/Lib/EncoderLib/VLCWriter.cpp
+3
-0
No files found.
cfg/encoder_randomaccess_vtm.cfg
View file @
ce58f412
...
...
@@ -144,6 +144,7 @@ AllowDisFracMMVD : 1
AffineAmvr : 1
LumaReshapeEnable : 1 # luma reshaping. 0: disable 1:enable
DMVR : 1
SMVD : 1
# Fast tools
PBIntraFast : 1
...
...
doc/software-manual.tex
View file @
ce58f412
...
...
@@ -1988,6 +1988,13 @@ Enables optimization of non-linear filters for ALF on Luma channel.
\Default
{
true
}
&
Enables optimization of non-linear filters for ALF on Chroma channels.
\\
\Option
{
SMVD
}
&
%\ShortOption{\None} &
\Default
{
false
}
&
Enables or disables symmetric MVD mode.
\\
\end{OptionTableNoShorthand}
%%
...
...
source/App/EncoderApp/EncApp.cpp
View file @
ce58f412
...
...
@@ -261,6 +261,9 @@ void EncApp::xInitLibCfg()
m_cEncLib
.
setImplicitMTS
(
m_MTSImplicit
);
m_cEncLib
.
setUseSBT
(
m_SBT
);
m_cEncLib
.
setUseCompositeRef
(
m_compositeRefEnabled
);
#if JVET_N0235_SMVD_SPS
m_cEncLib
.
setUseSMVD
(
m_SMVD
);
#endif
m_cEncLib
.
setUseGBi
(
m_GBi
);
m_cEncLib
.
setUseGBiFast
(
m_GBiFast
);
#if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET
...
...
source/App/EncoderApp/EncAppCfg.cpp
View file @
ce58f412
...
...
@@ -857,6 +857,9 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
(
"MTSInterMaxCand"
,
m_MTSInterMaxCand
,
4
,
"Number of additional candidates to test in encoder search for MTS in inter slices
\n
"
)
(
"MTSImplicit"
,
m_MTSImplicit
,
0
,
"Enable implicit MTS (when explicit MTS is off)
\n
"
)
(
"SBT"
,
m_SBT
,
false
,
"Enable Sub-Block Transform for inter blocks
\n
"
)
#if JVET_N0235_SMVD_SPS
(
"SMVD"
,
m_SMVD
,
false
,
"Enable Symmetric MVD
\n
"
)
#endif
(
"CompositeLTReference"
,
m_compositeRefEnabled
,
false
,
"Enable Composite Long Term Reference Frame"
)
(
"GBi"
,
m_GBi
,
false
,
"Enable Generalized Bi-prediction(GBi)"
)
(
"GBiFast"
,
m_GBiFast
,
false
,
"Fast methods for Generalized Bi-prediction(GBi)
\n
"
)
...
...
@@ -1964,6 +1967,9 @@ bool EncAppCfg::xCheckParameter()
xConfirmPara
(
m_MTS
,
"MTS only allowed with NEXT profile"
);
xConfirmPara
(
m_MTSIntraMaxCand
,
"MTS only allowed with NEXT profile"
);
xConfirmPara
(
m_MTSInterMaxCand
,
"MTS only allowed with NEXT profile"
);
#if JVET_N0235_SMVD_SPS
xConfirmPara
(
m_SMVD
,
"SMVD is only allowed with NEXT profile"
);
#endif
xConfirmPara
(
m_compositeRefEnabled
,
"Composite Reference Frame is only allowed with NEXT profile"
);
xConfirmPara
(
m_GBi
,
"GBi is only allowed with NEXT profile"
);
xConfirmPara
(
m_GBiFast
,
"GBiFast is only allowed with NEXT profile"
);
...
...
@@ -3138,6 +3144,9 @@ void EncAppCfg::xPrintParameter()
}
msg
(
VERBOSE
,
"MTS: %1d(intra) %1d(inter) "
,
m_MTS
&
1
,
(
m_MTS
>>
1
)
&
1
);
msg
(
VERBOSE
,
"SBT:%d "
,
m_SBT
);
#if JVET_N0235_SMVD_SPS
msg
(
VERBOSE
,
"SMVD:%d "
,
m_SMVD
);
#endif
msg
(
VERBOSE
,
"CompositeLTReference:%d "
,
m_compositeRefEnabled
);
msg
(
VERBOSE
,
"GBi:%d "
,
m_GBi
);
msg
(
VERBOSE
,
"GBiFast:%d "
,
m_GBiFast
);
...
...
source/App/EncoderApp/EncAppCfg.h
View file @
ce58f412
...
...
@@ -247,6 +247,9 @@ protected:
int
m_MTSImplicit
;
bool
m_SBT
;
///< Sub-Block Transform for inter blocks
#if JVET_N0235_SMVD_SPS
bool
m_SMVD
;
#endif
bool
m_compositeRefEnabled
;
bool
m_GBi
;
bool
m_GBiFast
;
...
...
source/Lib/CommonLib/Slice.h
View file @
ce58f412
...
...
@@ -1109,6 +1109,9 @@ private:
bool
m_MTS
;
bool
m_IntraMTS
;
// 18
bool
m_InterMTS
;
// 19
#if JVET_N0235_SMVD_SPS
bool
m_SMVD
;
#endif
bool
m_Affine
;
bool
m_AffineType
;
bool
m_GBi
;
//
...
...
@@ -1374,6 +1377,10 @@ public:
bool
getUseIntraMTS
()
const
{
return
m_IntraMTS
;
}
void
setUseInterMTS
(
bool
b
)
{
m_InterMTS
=
b
;
}
bool
getUseInterMTS
()
const
{
return
m_InterMTS
;
}
#if JVET_N0235_SMVD_SPS
void
setUseSMVD
(
bool
b
)
{
m_SMVD
=
b
;
}
bool
getUseSMVD
()
const
{
return
m_SMVD
;
}
#endif
void
setUseGBi
(
bool
b
)
{
m_GBi
=
b
;
}
bool
getUseGBi
()
const
{
return
m_GBi
;
}
#if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET
...
...
source/Lib/CommonLib/TypeDef.h
View file @
ce58f412
...
...
@@ -50,6 +50,8 @@
#include <assert.h>
#include <cassert>
#define JVET_N0235_SMVD_SPS 1
#define JVET_N0843_BVP_SIMPLIFICATION 1
#define JVET_N0448_N0380 1 // When MaxNumMergeCand is 1, MMVD_BASE_MV_NUM is inferred to be 1.
...
...
source/Lib/DecoderLib/VLCReader.cpp
View file @
ce58f412
...
...
@@ -1115,6 +1115,9 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
READ_FLAG
(
uiCode
,
"mts_intra_enabled_flag"
);
pcSPS
->
setUseIntraMTS
(
uiCode
!=
0
);
READ_FLAG
(
uiCode
,
"mts_inter_enabled_flag"
);
pcSPS
->
setUseInterMTS
(
uiCode
!=
0
);
}
#if JVET_N0235_SMVD_SPS
READ_FLAG
(
uiCode
,
"smvd_flag"
);
pcSPS
->
setUseSMVD
(
uiCode
!=
0
);
#endif
// KJS: sps_affine_enabled_flag
READ_FLAG
(
uiCode
,
"affine_flag"
);
pcSPS
->
setUseAffine
(
uiCode
!=
0
);
if
(
pcSPS
->
getUseAffine
()
)
...
...
source/Lib/EncoderLib/EncCfg.h
View file @
ce58f412
...
...
@@ -223,6 +223,9 @@ protected:
bool
m_AffineType
;
bool
m_BIO
;
#if JVET_N0235_SMVD_SPS
bool
m_SMVD
;
#endif
bool
m_compositeRefEnabled
;
//composite reference
bool
m_GBi
;
bool
m_GBiFast
;
...
...
@@ -736,6 +739,10 @@ public:
void
setUseCompositeRef
(
bool
b
)
{
m_compositeRefEnabled
=
b
;
}
bool
getUseCompositeRef
()
const
{
return
m_compositeRefEnabled
;
}
#if JVET_N0235_SMVD_SPS
void
setUseSMVD
(
bool
b
)
{
m_SMVD
=
b
;
}
bool
getUseSMVD
()
const
{
return
m_SMVD
;
}
#endif
void
setUseGBi
(
bool
b
)
{
m_GBi
=
b
;
}
bool
getUseGBi
()
const
{
return
m_GBi
;
}
void
setUseGBiFast
(
uint32_t
b
)
{
m_GBiFast
=
b
;
}
...
...
source/Lib/EncoderLib/EncGOP.cpp
View file @
ce58f412
...
...
@@ -1934,7 +1934,11 @@ void EncGOP::compressGOP( int iPOCLast, int iNumPicRcvd, PicList& rcListPic,
pcPic
->
slices
[
pcSlice
->
getSliceSegmentIdx
()]
->
setMvdL1ZeroFlag
(
pcSlice
->
getMvdL1ZeroFlag
());
#endif
#if JVET_N0235_SMVD_SPS
if
(
pcSlice
->
getSPS
()
->
getUseSMVD
()
&&
pcSlice
->
getCheckLDC
()
==
false
&&
pcSlice
->
getMvdL1ZeroFlag
()
==
false
)
#else
if
(
pcSlice
->
getCheckLDC
()
==
false
&&
pcSlice
->
getMvdL1ZeroFlag
()
==
false
)
#endif
{
int
currPOC
=
pcSlice
->
getPOC
();
...
...
source/Lib/EncoderLib/EncLib.cpp
View file @
ce58f412
...
...
@@ -959,6 +959,9 @@ void EncLib::xInitSPS(SPS &sps)
{
sps
.
setMaxSbtSize
(
m_iSourceWidth
>=
1920
?
64
:
32
);
}
#if JVET_N0235_SMVD_SPS
sps
.
setUseSMVD
(
m_SMVD
);
#endif
sps
.
setUseGBi
(
m_GBi
);
#if LUMA_ADAPTIVE_DEBLOCKING_FILTER_QP_OFFSET
sps
.
setLadfEnabled
(
m_LadfEnabled
);
...
...
source/Lib/EncoderLib/VLCWriter.cpp
View file @
ce58f412
...
...
@@ -767,6 +767,9 @@ void HLSWriter::codeSPS( const SPS* pcSPS )
WRITE_FLAG
(
pcSPS
->
getUseIntraMTS
()
?
1
:
0
,
"mts_intra_enabled_flag"
);
WRITE_FLAG
(
pcSPS
->
getUseInterMTS
()
?
1
:
0
,
"mts_inter_enabled_flag"
);
}
#if JVET_N0235_SMVD_SPS
WRITE_FLAG
(
pcSPS
->
getUseSMVD
()
?
1
:
0
,
"smvd_flag"
);
#endif
// KJS: sps_affine_enabled_flag
WRITE_FLAG
(
pcSPS
->
getUseAffine
()
?
1
:
0
,
"affine_flag"
);
if
(
pcSPS
->
getUseAffine
()
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment