Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
V
VVCSoftware_VTM
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Custom Issue Tracker
Custom Issue Tracker
Labels
Merge Requests
16
Merge Requests
16
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
jvet
VVCSoftware_VTM
Commits
1f052c85
Commit
1f052c85
authored
Jan 28, 2019
by
Taoran Lu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rebase
parent
e9ffb8d9
Changes
26
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
697 additions
and
729 deletions
+697
-729
source/App/EncoderApp/EncApp.cpp
source/App/EncoderApp/EncApp.cpp
+3
-3
source/App/EncoderApp/EncAppCfg.cpp
source/App/EncoderApp/EncAppCfg.cpp
+20
-26
source/App/EncoderApp/EncAppCfg.h
source/App/EncoderApp/EncAppCfg.h
+3
-3
source/Lib/CommonLib/CommonDef.h
source/Lib/CommonLib/CommonDef.h
+0
-6
source/Lib/CommonLib/RdCost.cpp
source/Lib/CommonLib/RdCost.cpp
+3
-3
source/Lib/CommonLib/RdCost.h
source/Lib/CommonLib/RdCost.h
+1
-1
source/Lib/CommonLib/Reshape.cpp
source/Lib/CommonLib/Reshape.cpp
+41
-41
source/Lib/CommonLib/Reshape.h
source/Lib/CommonLib/Reshape.h
+17
-17
source/Lib/CommonLib/Slice.cpp
source/Lib/CommonLib/Slice.cpp
+4
-4
source/Lib/CommonLib/Slice.h
source/Lib/CommonLib/Slice.h
+28
-31
source/Lib/CommonLib/Unit.cpp
source/Lib/CommonLib/Unit.cpp
+3
-3
source/Lib/CommonLib/Unit.h
source/Lib/CommonLib/Unit.h
+2
-5
source/Lib/DecoderLib/DecCu.cpp
source/Lib/DecoderLib/DecCu.cpp
+6
-6
source/Lib/DecoderLib/DecLib.cpp
source/Lib/DecoderLib/DecLib.cpp
+1
-1
source/Lib/DecoderLib/VLCReader.cpp
source/Lib/DecoderLib/VLCReader.cpp
+12
-12
source/Lib/DecoderLib/VLCReader.h
source/Lib/DecoderLib/VLCReader.h
+1
-1
source/Lib/EncoderLib/EncCfg.h
source/Lib/EncoderLib/EncCfg.h
+9
-9
source/Lib/EncoderLib/EncCu.cpp
source/Lib/EncoderLib/EncCu.cpp
+0
-4
source/Lib/EncoderLib/EncGOP.cpp
source/Lib/EncoderLib/EncGOP.cpp
+7
-18
source/Lib/EncoderLib/EncLib.cpp
source/Lib/EncoderLib/EncLib.cpp
+2
-2
source/Lib/EncoderLib/EncReshape.cpp
source/Lib/EncoderLib/EncReshape.cpp
+461
-455
source/Lib/EncoderLib/EncReshape.h
source/Lib/EncoderLib/EncReshape.h
+45
-45
source/Lib/EncoderLib/InterSearch.cpp
source/Lib/EncoderLib/InterSearch.cpp
+9
-13
source/Lib/EncoderLib/IntraSearch.cpp
source/Lib/EncoderLib/IntraSearch.cpp
+6
-8
source/Lib/EncoderLib/VLCWriter.cpp
source/Lib/EncoderLib/VLCWriter.cpp
+12
-11
source/Lib/EncoderLib/VLCWriter.h
source/Lib/EncoderLib/VLCWriter.h
+1
-1
No files found.
source/App/EncoderApp/EncApp.cpp
View file @
1f052c85
...
...
@@ -551,9 +551,9 @@ void EncApp::xInitLibCfg()
#endif
m_cEncLib
.
setUseALF
(
m_alf
);
#if JVET_M0427_INLOOP_RESHAPER
m_cEncLib
.
setReshaper
(
m_
bL
umaReshapeEnable
);
m_cEncLib
.
setReshapeSignalType
(
m_
ui
SignalType
);
m_cEncLib
.
setReshapeIntraCMD
(
m_
uiI
ntraCMD
);
m_cEncLib
.
setReshaper
(
m_
l
umaReshapeEnable
);
m_cEncLib
.
setReshapeSignalType
(
m_
reshape
SignalType
);
m_cEncLib
.
setReshapeIntraCMD
(
m_
i
ntraCMD
);
m_cEncLib
.
setReshapeCW
(
m_reshapeCW
);
#endif
}
...
...
source/App/EncoderApp/EncAppCfg.cpp
View file @
1f052c85
...
...
@@ -707,7 +707,6 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
#endif
int
warnUnknowParameter
=
0
;
#if ENABLE_TRACING
string
sTracingRule
;
string
sTracingFile
;
...
...
@@ -884,9 +883,9 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
// ADD_NEW_TOOL : (encoder app) add parsing parameters here
#if JVET_M0427_INLOOP_RESHAPER
(
"LumaReshapeEnable"
,
m_
bLumaReshapeEnable
,
false
,
"Enable Reshaping for Luma Channel"
)
(
"ReshapeSignalType"
,
m_
uiSignalType
,
0u
,
"Input signal type: 0: SDR, 1:PQ, 2:HLG"
)
(
"IntraCMD"
,
m_
uiIntraCMD
,
0u
,
"IntraChroma MD: 0: none, 1:fixed to default wPSNR weight"
)
(
"LumaReshapeEnable"
,
m_
lumaReshapeEnable
,
false
,
"Enable Reshaping for Luma Channel"
)
(
"ReshapeSignalType"
,
m_
reshapeSignalType
,
0u
,
"Input signal type: 0: SDR, 1:PQ, 2:HLG"
)
(
"IntraCMD"
,
m_
intraCMD
,
0u
,
"IntraChroma MD: 0: none, 1:fixed to default wPSNR weight"
)
#endif
(
"LCTUFast"
,
m_useFastLCTU
,
false
,
"Fast methods for large CTU"
)
(
"FastMrg"
,
m_useFastMrg
,
false
,
"Fast methods for inter merge"
)
...
...
@@ -1842,13 +1841,13 @@ bool EncAppCfg::parseCfg( int argc, char* argv[] )
}
#if JVET_M0427_INLOOP_RESHAPER
m_reshapeCW
.
BinCW
.
resize
(
CW_NUMS
);
m_reshapeCW
.
R
spFps
=
m_iFrameRate
;
m_reshapeCW
.
R
spIntraPeriod
=
m_iIntraPeriod
;
m_reshapeCW
.
R
spPicSize
=
m_iSourceWidth
*
m_iSourceHeight
;
m_reshapeCW
.
binCW
.
resize
(
3
);
m_reshapeCW
.
r
spFps
=
m_iFrameRate
;
m_reshapeCW
.
r
spIntraPeriod
=
m_iIntraPeriod
;
m_reshapeCW
.
r
spPicSize
=
m_iSourceWidth
*
m_iSourceHeight
;
const
int
FpsToIpTable
[
129
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
16
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
32
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
48
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
64
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
80
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
96
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
112
,
128
,
128
,
128
,
128
,
128
,
128
,
128
,
128
,
128
};
m_reshapeCW
.
R
spFpsToIp
=
FpsToIpTable
[
m_iFrameRate
];
m_reshapeCW
.
R
spBaseQP
=
m_iQP
;
m_reshapeCW
.
r
spFpsToIp
=
FpsToIpTable
[
m_iFrameRate
];
m_reshapeCW
.
r
spBaseQP
=
m_iQP
;
#endif
#if ENABLE_TRACING
g_trace_ctx
=
tracing_init
(
sTracingFile
,
sTracingRule
);
...
...
@@ -2234,27 +2233,22 @@ bool EncAppCfg::xCheckParameter()
xConfirmPara
(
m_lumaLevelToDeltaQPMapping
.
mode
&&
m_uiDeltaQpRD
>
0
,
"Luma-level-based Delta QP cannot be used together with slice level multiple-QP optimization
\n
"
);
#endif
#if JVET_M0427_INLOOP_RESHAPER
if
(
m_bLumaReshapeEnable
&&
(
m_internalBitDepth
[
CHANNEL_TYPE_LUMA
]
!=
10
))
{
m_bLumaReshapeEnable
=
false
;
msg
(
WARNING
,
"Reshaping is turned off for luma internal bitdepth not equal to 10.
\n
"
);
}
if
(
!
m_bLumaReshapeEnable
)
if
(
!
m_lumaReshapeEnable
)
{
m_
ui
SignalType
=
RESHAPE_SIGNAL_NULL
;
m_
uiIntraCMD
=
0
;
m_
reshape
SignalType
=
RESHAPE_SIGNAL_NULL
;
m_
intraCMD
=
0
;
}
if
(
m_
bLumaReshapeEnable
&&
m_ui
SignalType
==
RESHAPE_SIGNAL_PQ
)
if
(
m_
lumaReshapeEnable
&&
m_reshape
SignalType
==
RESHAPE_SIGNAL_PQ
)
{
m_
uiI
ntraCMD
=
1
;
m_
i
ntraCMD
=
1
;
}
else
if
(
m_
bLumaReshapeEnable
&&
m_ui
SignalType
==
RESHAPE_SIGNAL_SDR
)
else
if
(
m_
lumaReshapeEnable
&&
m_reshape
SignalType
==
RESHAPE_SIGNAL_SDR
)
{
m_
uiI
ntraCMD
=
0
;
m_
i
ntraCMD
=
0
;
}
else
{
m_
bL
umaReshapeEnable
=
false
;
m_
l
umaReshapeEnable
=
false
;
}
#endif
...
...
@@ -3203,10 +3197,10 @@ void EncAppCfg::xPrintParameter()
}
// ADD_NEW_TOOL (add some output indicating the usage of tools)
#if JVET_M0427_INLOOP_RESHAPER
msg
(
VERBOSE
,
"Reshape:%d "
,
m_
bL
umaReshapeEnable
);
if
(
m_
bL
umaReshapeEnable
)
msg
(
VERBOSE
,
"Reshape:%d "
,
m_
l
umaReshapeEnable
);
if
(
m_
l
umaReshapeEnable
)
{
msg
(
VERBOSE
,
"(Sigal:%s "
,
m_
ui
SignalType
==
0
?
"SDR"
:
"HDR-PQ"
);
msg
(
VERBOSE
,
"(Sigal:%s "
,
m_
reshape
SignalType
==
0
?
"SDR"
:
"HDR-PQ"
);
msg
(
VERBOSE
,
") "
);
}
#endif
...
...
source/App/EncoderApp/EncAppCfg.h
View file @
1f052c85
...
...
@@ -257,9 +257,9 @@ protected:
// ADD_NEW_TOOL : (encoder app) add tool enabling flags and associated parameters here
#if JVET_M0427_INLOOP_RESHAPER
bool
m_
bL
umaReshapeEnable
;
uint32_t
m_
ui
SignalType
;
uint32_t
m_
uiI
ntraCMD
;
bool
m_
l
umaReshapeEnable
;
uint32_t
m_
reshape
SignalType
;
uint32_t
m_
i
ntraCMD
;
ReshapeCW
m_reshapeCW
;
#endif
unsigned
m_uiMaxCUWidth
;
///< max. CU width in pixel
...
...
source/Lib/CommonLib/CommonDef.h
View file @
1f052c85
...
...
@@ -404,12 +404,6 @@ static const int CHROMA_REFINEMENT_CANDIDATES = 8; /// 8 candidates BV to choose
static
const
int
IBC_FAST_METHOD_NOINTRA_IBCCBF0
=
0x01
;
static
const
int
IBC_FAST_METHOD_BUFFERBV
=
0X02
;
static
const
int
IBC_FAST_METHOD_ADAPTIVE_SEARCHRANGE
=
0X04
;
#if JVET_M0427_INLOOP_RESHAPER
static
const
int
PIC_ANALYZE_CW_BINS
=
32
;
static
const
int
PIC_CODE_CW_BINS
=
16
;
static
const
int
FP_PREC
=
14
;
static
const
int
CSCALE_FP_PREC
=
11
;
#endif
#if JVET_M0512_MOTION_BUFFER_COMPRESSION
static
constexpr
int
MV_EXPONENT_BITCOUNT
=
4
;
static
constexpr
int
MV_MANTISSA_BITCOUNT
=
6
;
...
...
source/Lib/CommonLib/RdCost.cpp
View file @
1f052c85
...
...
@@ -2942,7 +2942,7 @@ void RdCost::restoreReshapeLumaLevelToWeightTable()
}
}
void
RdCost
::
updateReshapeLumaLevelToWeightTable
(
s
liceReshapeInfo
&
sliceReshape
,
Pel
*
wtTable
,
double
cwt
)
void
RdCost
::
updateReshapeLumaLevelToWeightTable
(
S
liceReshapeInfo
&
sliceReshape
,
Pel
*
wtTable
,
double
cwt
)
{
if
(
m_signalType
==
RESHAPE_SIGNAL_SDR
)
{
...
...
@@ -2954,11 +2954,11 @@ void RdCost::updateReshapeLumaLevelToWeightTable(sliceReshapeInfo &sliceReshape,
for
(
int
i
=
0
;
i
<
PIC_CODE_CW_BINS
;
i
++
)
{
if
((
i
<
sliceReshape
.
reshape
_model_min_bin_idx
)
||
(
i
>
sliceReshape
.
reshape_model_max_bin_i
dx
))
if
((
i
<
sliceReshape
.
reshape
rModelMinBinIdx
)
||
(
i
>
sliceReshape
.
reshaperModelMaxBinI
dx
))
weight
=
1.0
;
else
{
if
(
sliceReshape
.
reshape
_model_bin_CW_delta
[
i
]
==
1
||
(
sliceReshape
.
reshape_model_bin_CW_d
elta
[
i
]
==
-
1
*
histLens
))
if
(
sliceReshape
.
reshape
rModelBinCWDelta
[
i
]
==
1
||
(
sliceReshape
.
reshaperModelBinCWD
elta
[
i
]
==
-
1
*
histLens
))
weight
=
wBin
;
else
{
...
...
source/Lib/CommonLib/RdCost.h
View file @
1f052c85
...
...
@@ -304,7 +304,7 @@ public:
void
restoreReshapeLumaLevelToWeightTable
();
inline
double
getWPSNRReshapeLumaLevelWeight
(
int
val
)
{
return
m_reshapeLumaLevelToWeightPLUT
[
val
];
}
void
setReshapeInfo
(
uint32_t
type
,
int
lumaBD
)
{
m_signalType
=
type
;
m_lumaBD
=
lumaBD
;
}
void
updateReshapeLumaLevelToWeightTable
(
s
liceReshapeInfo
&
sliceReshape
,
Pel
*
wtTable
,
double
cwt
);
void
updateReshapeLumaLevelToWeightTable
(
S
liceReshapeInfo
&
sliceReshape
,
Pel
*
wtTable
,
double
cwt
);
inline
std
::
vector
<
double
>&
getLumaLevelWeightTable
()
{
return
m_lumaLevelToWeightPLUT
;
}
#endif
#endif
...
...
source/Lib/CommonLib/Reshape.cpp
View file @
1f052c85
...
...
@@ -48,9 +48,9 @@
Reshape
::
Reshape
()
{
m_
b
CTUFlag
=
false
;
m_
bR
ecReshaped
=
false
;
m_
bR
eshape
=
true
;
m_CTUFlag
=
false
;
m_
r
ecReshaped
=
false
;
m_
r
eshape
=
true
;
}
Reshape
::~
Reshape
()
...
...
@@ -62,10 +62,10 @@ void Reshape::createDec(int bitDepth)
m_lumaBD
=
bitDepth
;
m_reshapeLUTSize
=
1
<<
m_lumaBD
;
m_initCW
=
m_reshapeLUTSize
/
PIC_CODE_CW_BINS
;
if
(
forwardReshaping
LUT
.
empty
())
forwardReshaping
LUT
.
resize
(
m_reshapeLUTSize
,
0
);
if
(
inverseReshaping
LUT
.
empty
())
inverseReshaping
LUT
.
resize
(
m_reshapeLUTSize
,
0
);
if
(
m_fwd
LUT
.
empty
())
m_fwd
LUT
.
resize
(
m_reshapeLUTSize
,
0
);
if
(
m_inv
LUT
.
empty
())
m_inv
LUT
.
resize
(
m_reshapeLUTSize
,
0
);
if
(
m_binCW
.
empty
())
m_binCW
.
resize
(
PIC_CODE_CW_BINS
,
0
);
if
(
m_reshapePivot
.
empty
())
...
...
@@ -87,8 +87,8 @@ void Reshape::destroy()
void
Reshape
::
reverseLUT
(
std
::
vector
<
Pel
>&
inputLUT
,
std
::
vector
<
Pel
>&
outputLUT
,
uint16_t
lutSize
)
{
int
i
,
j
;
outputLUT
[
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
_model_min_bin_idx
]]
=
m_sliceReshapeInfo
.
reshape_model_min_bin_i
dx
*
m_initCW
;
for
(
i
=
m_sliceReshapeInfo
.
reshape
_model_min_bin_idx
;
i
<=
m_sliceReshapeInfo
.
reshape_model_max_bin_i
dx
;
i
++
)
outputLUT
[
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
rModelMinBinIdx
]]
=
m_sliceReshapeInfo
.
reshaperModelMinBinI
dx
*
m_initCW
;
for
(
i
=
m_sliceReshapeInfo
.
reshape
rModelMinBinIdx
;
i
<=
m_sliceReshapeInfo
.
reshaperModelMaxBinI
dx
;
i
++
)
{
int16_t
X1
=
m_reshapePivot
[
i
];
int16_t
X2
=
m_reshapePivot
[
i
+
1
];
...
...
@@ -106,12 +106,12 @@ void Reshape::reverseLUT(std::vector<Pel>& inputLUT, std::vector<Pel>& outputLUT
}
}
for
(
i
=
0
;
i
<
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
_model_min_bin_i
dx
];
i
++
)
outputLUT
[
i
]
=
outputLUT
[
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
_model_min_bin_i
dx
]];
for
(
i
=
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
_model_max_bin_i
dx
+
1
];
i
<
m_reshapeLUTSize
;
i
++
)
outputLUT
[
i
]
=
outputLUT
[
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
_model_max_bin_i
dx
+
1
]];
for
(
i
=
0
;
i
<
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
rModelMinBinI
dx
];
i
++
)
outputLUT
[
i
]
=
outputLUT
[
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
rModelMinBinI
dx
]];
for
(
i
=
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
rModelMaxBinI
dx
+
1
];
i
<
m_reshapeLUTSize
;
i
++
)
outputLUT
[
i
]
=
outputLUT
[
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
rModelMaxBinI
dx
+
1
]];
bool
clipRange
=
((
m_sliceReshapeInfo
.
reshape
_model_min_bin_idx
>
0
)
&&
(
m_sliceReshapeInfo
.
reshape_model_max_bin_i
dx
<
(
PIC_CODE_CW_BINS
-
1
)));
bool
clipRange
=
((
m_sliceReshapeInfo
.
reshape
rModelMinBinIdx
>
0
)
&&
(
m_sliceReshapeInfo
.
reshaperModelMaxBinI
dx
<
(
PIC_CODE_CW_BINS
-
1
)));
for
(
i
=
0
;
i
<
lutSize
;
i
++
)
{
if
(
clipRange
)
outputLUT
[
i
]
=
Clip3
((
Pel
)(
16
<<
(
m_lumaBD
-
8
)),
(
Pel
)(
235
<<
(
m_lumaBD
-
8
)),
outputLUT
[
i
]);
...
...
@@ -139,13 +139,13 @@ int Reshape::calculateChromaAdj(Pel avgLuma)
int
Reshape
::
getPWLIdxInv
(
int
lumaVal
)
{
int
idxS
=
0
;
if
(
lumaVal
<
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
_model_min_bin_i
dx
+
1
])
return
m_sliceReshapeInfo
.
reshape
_model_min_bin_i
dx
;
else
if
(
lumaVal
>=
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
_model_max_bin_i
dx
])
return
m_sliceReshapeInfo
.
reshape
_model_max_bin_i
dx
;
if
(
lumaVal
<
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
rModelMinBinI
dx
+
1
])
return
m_sliceReshapeInfo
.
reshape
rModelMinBinI
dx
;
else
if
(
lumaVal
>=
m_reshapePivot
[
m_sliceReshapeInfo
.
reshape
rModelMaxBinI
dx
])
return
m_sliceReshapeInfo
.
reshape
rModelMaxBinI
dx
;
else
{
for
(
idxS
=
m_sliceReshapeInfo
.
reshape
_model_min_bin_idx
;
(
idxS
<
m_sliceReshapeInfo
.
reshape_model_max_bin_i
dx
);
idxS
++
)
for
(
idxS
=
m_sliceReshapeInfo
.
reshape
rModelMinBinIdx
;
(
idxS
<
m_sliceReshapeInfo
.
reshaperModelMaxBinI
dx
);
idxS
++
)
{
if
(
lumaVal
<
m_reshapePivot
[
idxS
+
1
])
break
;
}
...
...
@@ -158,21 +158,21 @@ int Reshape::getPWLIdxInv(int lumaVal)
\param tInfo describing the target Slice reshaper info structure
\param sInfo describing the source Slice reshaper info structure
*/
void
Reshape
::
copySliceReshaperInfo
(
sliceReshapeInfo
&
tInfo
,
s
liceReshapeInfo
&
sInfo
)
void
Reshape
::
copySliceReshaperInfo
(
SliceReshapeInfo
&
tInfo
,
S
liceReshapeInfo
&
sInfo
)
{
tInfo
.
slice
_reshaper_model_present_flag
=
sInfo
.
slice_reshaper_model_present_f
lag
;
if
(
sInfo
.
slice
_reshaper_model_present_f
lag
)
tInfo
.
slice
ReshaperModelPresentFlag
=
sInfo
.
sliceReshaperModelPresentF
lag
;
if
(
sInfo
.
slice
ReshaperModelPresentF
lag
)
{
tInfo
.
reshape
_model_max_bin_idx
=
sInfo
.
reshape_model_max_bin_i
dx
;
tInfo
.
reshape
_model_min_bin_idx
=
sInfo
.
reshape_model_min_bin_i
dx
;
memcpy
(
tInfo
.
reshape
_model_bin_CW_delta
,
sInfo
.
reshape_model_bin_CW_d
elta
,
sizeof
(
int
)
*
(
PIC_CODE_CW_BINS
));
tInfo
.
reshape
rModelMaxBinIdx
=
sInfo
.
reshaperModelMaxBinI
dx
;
tInfo
.
reshape
rModelMinBinIdx
=
sInfo
.
reshaperModelMinBinI
dx
;
memcpy
(
tInfo
.
reshape
rModelBinCWDelta
,
sInfo
.
reshaperModelBinCWD
elta
,
sizeof
(
int
)
*
(
PIC_CODE_CW_BINS
));
tInfo
.
maxNbitsNeededDeltaCW
=
sInfo
.
maxNbitsNeededDeltaCW
;
}
tInfo
.
slice
_reshaper_enable_flag
=
sInfo
.
slice_reshaper_enable_f
lag
;
if
(
sInfo
.
slice
_reshaper_enable_f
lag
)
tInfo
.
uiReshapeChromaAdj
=
sInfo
.
uiReshap
eChromaAdj
;
tInfo
.
slice
ReshaperEnableFlag
=
sInfo
.
sliceReshaperEnableF
lag
;
if
(
sInfo
.
slice
ReshaperEnableF
lag
)
tInfo
.
enableChromaAdj
=
sInfo
.
enabl
eChromaAdj
;
else
tInfo
.
uiReshap
eChromaAdj
=
0
;
tInfo
.
enabl
eChromaAdj
=
0
;
}
/** Construct reshaper from syntax
...
...
@@ -184,12 +184,12 @@ void Reshape::constructReshaper()
int
pwlFwdLUTsize
=
PIC_CODE_CW_BINS
;
int
pwlFwdBinLen
=
m_reshapeLUTSize
/
PIC_CODE_CW_BINS
;
for
(
int
i
=
0
;
i
<
m_sliceReshapeInfo
.
reshape
_model_min_bin_i
dx
;
i
++
)
for
(
int
i
=
0
;
i
<
m_sliceReshapeInfo
.
reshape
rModelMinBinI
dx
;
i
++
)
m_binCW
[
i
]
=
0
;
for
(
int
i
=
m_sliceReshapeInfo
.
reshape
_model_max_bin_i
dx
+
1
;
i
<
PIC_CODE_CW_BINS
;
i
++
)
for
(
int
i
=
m_sliceReshapeInfo
.
reshape
rModelMaxBinI
dx
+
1
;
i
<
PIC_CODE_CW_BINS
;
i
++
)
m_binCW
[
i
]
=
0
;
for
(
int
i
=
m_sliceReshapeInfo
.
reshape
_model_min_bin_idx
;
i
<=
m_sliceReshapeInfo
.
reshape_model_max_bin_i
dx
;
i
++
)
m_binCW
[
i
]
=
(
uint16_t
)(
m_sliceReshapeInfo
.
reshape
_model_bin_CW_d
elta
[
i
]
+
(
int
)
m_initCW
);
for
(
int
i
=
m_sliceReshapeInfo
.
reshape
rModelMinBinIdx
;
i
<=
m_sliceReshapeInfo
.
reshaperModelMaxBinI
dx
;
i
++
)
m_binCW
[
i
]
=
(
uint16_t
)(
m_sliceReshapeInfo
.
reshape
rModelBinCWD
elta
[
i
]
+
(
int
)
m_initCW
);
for
(
int
i
=
0
;
i
<
pwlFwdLUTsize
;
i
++
)
{
...
...
@@ -197,32 +197,32 @@ void Reshape::constructReshaper()
int16_t
Y1
=
m_reshapePivot
[
i
];
int16_t
Y2
=
m_reshapePivot
[
i
+
1
];
forwardReshaping
LUT
[
i
*
pwlFwdBinLen
]
=
Clip3
((
Pel
)
0
,
(
Pel
)((
1
<<
m_lumaBD
)
-
1
),
(
Pel
)
Y1
);
m_fwd
LUT
[
i
*
pwlFwdBinLen
]
=
Clip3
((
Pel
)
0
,
(
Pel
)((
1
<<
m_lumaBD
)
-
1
),
(
Pel
)
Y1
);
int
log2
_p
wlFwdBinLen
=
g_aucLog2
[
pwlFwdBinLen
];
int
log2
P
wlFwdBinLen
=
g_aucLog2
[
pwlFwdBinLen
];
int32_t
scale
=
((
int32_t
)(
Y2
-
Y1
)
*
(
1
<<
FP_PREC
)
+
(
1
<<
(
log2
_pwlFwdBinLen
-
1
)))
>>
(
log2_p
wlFwdBinLen
);
int32_t
scale
=
((
int32_t
)(
Y2
-
Y1
)
*
(
1
<<
FP_PREC
)
+
(
1
<<
(
log2
PwlFwdBinLen
-
1
)))
>>
(
log2P
wlFwdBinLen
);
for
(
int
j
=
1
;
j
<
pwlFwdBinLen
;
j
++
)
{
int
tempVal
=
Y1
+
(((
int32_t
)
scale
*
(
int32_t
)
j
+
(
1
<<
(
FP_PREC
-
1
)))
>>
FP_PREC
);
forwardReshaping
LUT
[
i
*
pwlFwdBinLen
+
j
]
=
Clip3
((
Pel
)
0
,
(
Pel
)((
1
<<
m_lumaBD
)
-
1
),
(
Pel
)
tempVal
);
m_fwd
LUT
[
i
*
pwlFwdBinLen
+
j
]
=
Clip3
((
Pel
)
0
,
(
Pel
)((
1
<<
m_lumaBD
)
-
1
),
(
Pel
)
tempVal
);
}
}
reverseLUT
(
forwardReshapingLUT
,
inverseReshaping
LUT
,
m_reshapeLUTSize
);
updateChroma
DQP
LUT
();
reverseLUT
(
m_fwdLUT
,
m_inv
LUT
,
m_reshapeLUTSize
);
updateChroma
Scale
LUT
();
}
/** generate chroma residue scaling LUT
* \param void
* \return void
*/
void
Reshape
::
updateChroma
DQP
LUT
()
void
Reshape
::
updateChroma
Scale
LUT
()
{
const
int16_t
CW_bin_SC_LUT
[
2
*
PIC_ANALYZE_CW_BINS
]
=
{
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
16384
,
8192
,
8192
,
8192
,
8192
,
5461
,
5461
,
5461
,
5461
,
4096
,
4096
,
4096
,
4096
,
3277
,
3277
,
3277
,
3277
,
2731
,
2731
,
2731
,
2731
,
2341
,
2341
,
2341
,
2048
,
2048
,
2048
,
1820
,
1820
,
1820
,
1638
,
1638
,
1638
,
1638
,
1489
,
1489
,
1489
,
1489
,
1365
,
1365
,
1365
,
1365
,
1260
,
1260
,
1260
,
1260
,
1170
,
1170
,
1170
,
1170
,
1092
,
1092
,
1092
,
1092
,
1024
,
1024
,
1024
,
1024
};
//p=11
for
(
int
i
=
0
;
i
<
PIC_CODE_CW_BINS
;
i
++
)
{
uint16_t
binCW
=
m_lumaBD
>
10
?
(
m_binCW
[
i
]
>>
(
m_lumaBD
-
10
))
:
m_lumaBD
<
10
?
(
m_binCW
[
i
]
<<
(
10
-
m_lumaBD
))
:
m_binCW
[
i
];
if
((
i
<
m_sliceReshapeInfo
.
reshape
_model_min_bin_idx
)
||
(
i
>
m_sliceReshapeInfo
.
reshape_model_max_bin_i
dx
))
if
((
i
<
m_sliceReshapeInfo
.
reshape
rModelMinBinIdx
)
||
(
i
>
m_sliceReshapeInfo
.
reshaperModelMaxBinI
dx
))
m_chromaAdjHelpLUT
[
i
]
=
1
<<
CSCALE_FP_PREC
;
else
m_chromaAdjHelpLUT
[
i
]
=
CW_bin_SC_LUT
[
Clip3
((
uint16_t
)
1
,
(
uint16_t
)
64
,
(
uint16_t
)(
binCW
>>
1
))
-
1
];
...
...
source/Lib/CommonLib/Reshape.h
View file @
1f052c85
...
...
@@ -55,15 +55,15 @@
class
Reshape
{
protected:
s
liceReshapeInfo
m_sliceReshapeInfo
;
bool
m_
b
CTUFlag
;
bool
m_
bR
ecReshaped
;
std
::
vector
<
Pel
>
inverseReshaping
LUT
;
std
::
vector
<
Pel
>
forwardReshaping
LUT
;
S
liceReshapeInfo
m_sliceReshapeInfo
;
bool
m_CTUFlag
;
bool
m_
r
ecReshaped
;
std
::
vector
<
Pel
>
m_inv
LUT
;
std
::
vector
<
Pel
>
m_fwd
LUT
;
std
::
vector
<
int
>
m_chromaAdjHelpLUT
;
std
::
vector
<
uint16_t
>
m_binCW
;
uint16_t
m_initCW
;
bool
m_
bR
eshape
;
bool
m_
r
eshape
;
std
::
vector
<
Pel
>
m_reshapePivot
;
int
m_lumaBD
;
int
m_reshapeLUTSize
;
...
...
@@ -75,24 +75,24 @@ public:
void
destroy
();
void
reverseLUT
(
std
::
vector
<
Pel
>&
inputLUT
,
std
::
vector
<
Pel
>&
outputLUT
,
uint16_t
lutSize
);
std
::
vector
<
Pel
>&
getFwdLUT
()
{
return
forwardReshaping
LUT
;
}
std
::
vector
<
Pel
>&
getInvLUT
()
{
return
inverseReshaping
LUT
;
}
std
::
vector
<
Pel
>&
getFwdLUT
()
{
return
m_fwd
LUT
;
}
std
::
vector
<
Pel
>&
getInvLUT
()
{
return
m_inv
LUT
;
}
std
::
vector
<
int
>&
getChromaAdjHelpLUT
()
{
return
m_chromaAdjHelpLUT
;
}
bool
getCTUFlag
()
{
return
m_
b
CTUFlag
;
}
void
setCTUFlag
(
bool
b
CTUFlag
)
{
m_bCTUFlag
=
bCTUFlag
;
}
bool
getCTUFlag
()
{
return
m_CTUFlag
;
}
void
setCTUFlag
(
bool
b
)
{
m_CTUFlag
=
b
;
}
bool
getRecReshaped
()
{
return
m_
bR
ecReshaped
;
}
void
setRecReshaped
(
bool
b
PicReshaped
)
{
m_bRecReshaped
=
bPicReshaped
;
}
bool
getRecReshaped
()
{
return
m_
r
ecReshaped
;
}
void
setRecReshaped
(
bool
b
)
{
m_recReshaped
=
b
;
}
int
calculateChromaAdj
(
Pel
avgLuma
);
int
getPWLIdxInv
(
int
lumaVal
);
s
liceReshapeInfo
&
getSliceReshaperInfo
()
{
return
m_sliceReshapeInfo
;
}
void
copySliceReshaperInfo
(
sliceReshapeInfo
&
tInfo
,
s
liceReshapeInfo
&
sInfo
);
S
liceReshapeInfo
&
getSliceReshaperInfo
()
{
return
m_sliceReshapeInfo
;
}
void
copySliceReshaperInfo
(
SliceReshapeInfo
&
tInfo
,
S
liceReshapeInfo
&
sInfo
);
void
constructReshaper
();
void
updateChroma
DQP
LUT
();
bool
getReshapeFlag
()
{
return
m_
bR
eshape
;
}
void
setReshapeFlag
(
bool
val
)
{
m_bReshape
=
val
;
}
void
updateChroma
Scale
LUT
();
bool
getReshapeFlag
()
{
return
m_
r
eshape
;
}
void
setReshapeFlag
(
bool
b
)
{
m_reshape
=
b
;
}
};
// END CLASS DEFINITION Reshape
//! \}
...
...
source/Lib/CommonLib/Slice.cpp
View file @
1f052c85
...
...
@@ -185,9 +185,9 @@ Slice::Slice()
m_sliceReshapeInfo
.
setUseSliceReshaper
(
false
);
m_sliceReshapeInfo
.
setSliceReshapeModelPresentFlag
(
false
);
m_sliceReshapeInfo
.
setSliceReshapeChromaAdj
(
0
);
m_sliceReshapeInfo
.
reshape
_model_min_bin_i
dx
=
0
;
m_sliceReshapeInfo
.
reshape
_model_max_bin_i
dx
=
PIC_CODE_CW_BINS
-
1
;
memset
(
m_sliceReshapeInfo
.
reshape
_model_bin_CW_d
elta
,
0
,
PIC_CODE_CW_BINS
*
sizeof
(
int
));
m_sliceReshapeInfo
.
reshape
rModelMinBinI
dx
=
0
;
m_sliceReshapeInfo
.
reshape
rModelMaxBinI
dx
=
PIC_CODE_CW_BINS
-
1
;
memset
(
m_sliceReshapeInfo
.
reshape
rModelBinCWD
elta
,
0
,
PIC_CODE_CW_BINS
*
sizeof
(
int
));
#endif
}
...
...
@@ -1902,7 +1902,7 @@ SPS::SPS()
,
m_wrapAroundEnabledFlag
(
false
)
,
m_wrapAroundOffset
(
0
)
#if JVET_M0427_INLOOP_RESHAPER
,
m_
bUseReshape
(
false
)
,
m_
lumaReshapeEnable
(
false
)
#endif
{
for
(
int
ch
=
0
;
ch
<
MAX_NUM_CHANNEL_TYPE
;
ch
++
)
...
...
source/Lib/CommonLib/Slice.h
View file @
1f052c85
...
...
@@ -292,34 +292,34 @@ struct HrdSubLayerInfo
};
#if JVET_M0427_INLOOP_RESHAPER
class
s
liceReshapeInfo
class
S
liceReshapeInfo
{
public:
bool
slice
_reshaper_enable_f
lag
;
bool
slice
_reshaper_model_present_f
lag
;
unsigned
uiReshap
eChromaAdj
;
uint32_t
reshape
_model_min_bin_i
dx
;
uint32_t
reshape
_model_max_bin_i
dx
;
int
reshape
_model_bin_CW_d
elta
[
PIC_CODE_CW_BINS
];
bool
slice
ReshaperEnableF
lag
;
bool
slice
ReshaperModelPresentF
lag
;
unsigned
enabl
eChromaAdj
;
uint32_t
reshape
rModelMinBinI
dx
;
uint32_t
reshape
rModelMaxBinI
dx
;
int
reshape
rModelBinCWD
elta
[
PIC_CODE_CW_BINS
];
int
maxNbitsNeededDeltaCW
;
void
setUseSliceReshaper
(
bool
b
_useSliceReshaper
)
{
slice_reshaper_enable_flag
=
b_useSliceReshaper
;
}
bool
getUseSliceReshaper
()
const
{
return
slice_reshaper_enable_flag
;
}
void
setSliceReshapeModelPresentFlag
(
bool
b
flag
)
{
slice_reshaper_model_present_flag
=
bflag
;
}
bool
getSliceReshapeModelPresentFlag
()
const
{
return
slice_reshaper_model_present_flag
;
}
void
setSliceReshapeChromaAdj
(
unsigned
uiChromaAdj
)
{
uiReshapeChromaAdj
=
uiChromaAdj
;
}
unsigned
getSliceReshapeChromaAdj
()
const
{
return
uiReshapeChromaAdj
;
}
void
setUseSliceReshaper
(
bool
b
)
{
sliceReshaperEnableFlag
=
b
;
}
bool
getUseSliceReshaper
()
const
{
return
sliceReshaperEnableFlag
;
}
void
setSliceReshapeModelPresentFlag
(
bool
b
)
{
sliceReshaperModelPresentFlag
=
b
;
}
bool
getSliceReshapeModelPresentFlag
()
const
{
return
sliceReshaperModelPresentFlag
;
}
void
setSliceReshapeChromaAdj
(
unsigned
adj
)
{
enableChromaAdj
=
adj
;
}
unsigned
getSliceReshapeChromaAdj
()
const
{
return
enableChromaAdj
;
}
};
struct
ReshapeCW
{
std
::
vector
<
uint32_t
>
B
inCW
;
int
R
spPicSize
;
int
R
spIntraPeriod
;
int
R
spFps
;
int
R
spBaseQP
;
int
Tid
;
int
SliceQP
;
int
R
spFpsToIp
;
std
::
vector
<
uint32_t
>
b
inCW
;
int
r
spPicSize
;
int
r
spIntraPeriod
;
int
r
spFps
;
int
r
spBaseQP
;
int
rsp
Tid
;
int
rsp
SliceQP
;
int
r
spFpsToIp
;
};
#endif
...
...
@@ -1066,7 +1066,7 @@ private:
bool
m_wrapAroundEnabledFlag
;
unsigned
m_wrapAroundOffset
;
#if JVET_M0427_INLOOP_RESHAPER
bool
m_
bUseReshap
e
;
bool
m_
lumaReshapeEnabl
e
;
#endif
public:
...
...
@@ -1287,8 +1287,8 @@ public:
void
setWrapAroundOffset
(
unsigned
offset
)
{
m_wrapAroundOffset
=
offset
;
}
unsigned
getWrapAroundOffset
()
const
{
return
m_wrapAroundOffset
;
}
#if JVET_M0427_INLOOP_RESHAPER
void
setUseReshaper
(
bool
b
)
{
m_
bUseReshap
e
=
b
;
}
bool
getUseReshaper
()
const
{
return
m_
bUseReshap
e
;
}
void
setUseReshaper
(
bool
b
)
{
m_
lumaReshapeEnabl
e
=
b
;
}
bool
getUseReshaper
()
const
{
return
m_
lumaReshapeEnabl
e
;
}
#endif
};
...
...
@@ -1719,13 +1719,10 @@ private:
AlfSliceParam
m_alfSliceParam
;
LutMotionCand
*
m_MotionCandLut
;
#if JVET_M0170_MRG_SHARELIST
#if JVET_M0427_INLOOP_RESHAPER
sliceReshapeInfo
m_sliceReshapeInfo
;
#endif
#if JVET_M0427_INLOOP_RESHAPER
s
liceReshapeInfo
m_sliceReshapeInfo
;
S
liceReshapeInfo
m_sliceReshapeInfo
;
#endif
#if JVET_M0170_MRG_SHARELIST
public:
LutMotionCand
*
m_MotionCandLuTsBkup
;
#endif
...
...
@@ -2026,8 +2023,8 @@ public:
void
updateMotionLUTs
(
LutMotionCand
*
lutMC
,
CodingUnit
&
cu
);
void
copyMotionLUTs
(
LutMotionCand
*
Src
,
LutMotionCand
*
Dst
);
#if JVET_M0427_INLOOP_RESHAPER
const
s
liceReshapeInfo
&
getReshapeInfo
()
const
{
return
m_sliceReshapeInfo
;
}
s
liceReshapeInfo
&
getReshapeInfo
()
{
return
m_sliceReshapeInfo
;
}
const
S
liceReshapeInfo
&
getReshapeInfo
()
const
{
return
m_sliceReshapeInfo
;
}
S
liceReshapeInfo
&
getReshapeInfo
()
{
return
m_sliceReshapeInfo
;
}
#endif
protected:
Picture
*
xGetRefPic
(
PicList
&
rcListPic
,
int
poc
);
...
...
source/Lib/CommonLib/Unit.cpp
View file @
1f052c85
...
...
@@ -562,7 +562,7 @@ void TransformUnit::initData()
emtIdx
=
0
;
#endif
#if JVET_M0427_INLOOP_RESHAPER
m_
iChromaAdj
=
0
;
m_
chromaResScaleInv
=
0
;
#endif
}
...
...
@@ -642,6 +642,6 @@ const CCoeffBuf TransformUnit::getCoeffs(const ComponentID id) const { return CC
PelBuf
TransformUnit
::
getPcmbuf
(
const
ComponentID
id
)
{
return
PelBuf
(
m_pcmbuf
[
id
],
blocks
[
id
]);
}
const
CPelBuf
TransformUnit
::
getPcmbuf
(
const
ComponentID
id
)
const
{
return
CPelBuf
(
m_pcmbuf
[
id
],
blocks
[
id
]);
}
#if JVET_M0427_INLOOP_RESHAPER
int
TransformUnit
::
getChromaAdj
()
const
{
return
m_
iChromaAdj
;
}
void
TransformUnit
::
setChromaAdj
(
int
i
ChromaAdj
)
{
m_iChromaAdj
=
iChromaAdj
;
}
int
TransformUnit
::
getChromaAdj
()
const
{
return
m_
chromaResScaleInv
;
}
void
TransformUnit
::
setChromaAdj
(
int
i
)
{
m_chromaResScaleInv
=
i
;
}
#endif
\ No newline at end of file
source/Lib/CommonLib/Unit.h
View file @
1f052c85
...
...
@@ -317,9 +317,6 @@ struct CodingUnit : public UnitArea
Size
shareParentSize
;
#endif
bool
ibc
;
#if JVET_M0444_SMVD
uint8_t
smvdMode
;
#endif
#if JVET_M0444_SMVD
uint8_t
smvdMode
;
#endif
...
...
@@ -439,7 +436,7 @@ struct TransformUnit : public UnitArea
CodingStructure
*
cs
;
ChannelType
chType
;
#if JVET_M0427_INLOOP_RESHAPER
int
m_
iChromaAdj
;
int
m_
chromaResScaleInv
;
#endif
uint8_t
depth
;
...
...
@@ -475,7 +472,7 @@ struct TransformUnit : public UnitArea
const
CPelBuf
getPcmbuf
(
const
ComponentID
id
)
const
;
#if JVET_M0427_INLOOP_RESHAPER
int
getChromaAdj
(
)
const
;
void
setChromaAdj
(
int
i
ChromaAdj
);
void
setChromaAdj
(
int
i
);
#endif
#if ENABLE_SPLIT_PARALLELISM || ENABLE_WPP_PARALLELISM
...
...
source/Lib/DecoderLib/DecCu.cpp
View file @
1f052c85
...
...
@@ -211,7 +211,7 @@ void DecCu::xIntraRecBlk( TransformUnit& tu, const ComponentID compID )
}
#if JVET_M0427_INLOOP_RESHAPER
const
Slice
&
slice
=
*
cs
.
slice
;
bool
bFlag
=
slice
.
getReshapeInfo
().
getUseSliceReshaper
()
&&
(
slice
.
isIntra
()
||
(
!
slice
.
isIntra
()
&&
m_pcReshape
->
getCTUFlag
()
)
||
(
slice
.
getSliceType
()
==
P_SLICE
&&
slice
.
getSPS
()
->
getSpsNext
().
get
CPR
Mode
()));
bool
bFlag
=
slice
.
getReshapeInfo
().
getUseSliceReshaper
()
&&
(
slice
.
isIntra
()
||
(
!
slice
.
isIntra
()
&&
m_pcReshape
->
getCTUFlag
()
)
||
(
slice
.
getSliceType
()
==
P_SLICE
&&
slice
.
getSPS
()
->
getSpsNext
().
get
IBC
Mode
()));
if
(
bFlag
&&
slice
.
getReshapeInfo
().
getSliceReshapeChromaAdj
()
&&
(
compID
!=
COMPONENT_Y
))
{
...
...
@@ -260,7 +260,7 @@ void DecCu::xIntraRecBlk( TransformUnit& tu, const ComponentID compID )
CompArea
tmpArea
(
COMPONENT_Y
,
area
.
chromaFormat
,
Position
(
0
,
0
),
area
.
size
());
PelBuf
tmpPred
;
#endif
if
(
slice
.
getReshapeInfo
().
getUseSliceReshaper
()
&&
(
m_pcReshape
->
getCTUFlag
()
||
slice
.
isIntra
()
||
(
slice
.
getSliceType
()
==
P_SLICE
&&
slice
.
getSPS
()
->
getSpsNext
().
get
CPR
Mode
()))
&&
compID
==
COMPONENT_Y
)
if
(
slice
.
getReshapeInfo
().
getUseSliceReshaper
()
&&
(
m_pcReshape
->
getCTUFlag
()
||
slice
.
isIntra
()
||
(
slice
.
getSliceType
()
==
P_SLICE
&&
slice
.
getSPS
()
->
getSpsNext
().
get
IBC
Mode
()))
&&
compID
==
COMPONENT_Y
)
{
#if REUSE_CU_RESULTS
{
...
...
@@ -279,7 +279,7 @@ void DecCu::xIntraRecBlk( TransformUnit& tu, const ComponentID compID )
pReco
.
copyFrom
(
piPred
);
#endif
#if JVET_M0427_INLOOP_RESHAPER
if
(
slice
.
getReshapeInfo
().
getUseSliceReshaper
()
&&
(
m_pcReshape
->
getCTUFlag
()
||
slice
.
isIntra
()
||
(
slice
.
getSliceType
()
==
P_SLICE
&&
slice
.
getSPS
()
->
getSpsNext
().
get
CPR
Mode
()))
&&
compID
==
COMPONENT_Y
)
if
(
slice
.
getReshapeInfo
().
getUseSliceReshaper
()
&&
(
m_pcReshape
->
getCTUFlag
()
||
slice
.
isIntra
()
||
(
slice
.
getSliceType
()
==
P_SLICE
&&
slice
.
getSPS
()
->
getSpsNext
().
get
IBC
Mode
()))
&&
compID
==
COMPONENT_Y
)
{
#if REUSE_CU_RESULTS
{
...
...
@@ -504,7 +504,7 @@ void DecCu::xReconInter(CodingUnit &cu)
tmpPred
.
copyFrom
(
cs
.
getPredBuf
(
cu
).
get
(
COMPONENT_Y
));
}
#endif
if
(
!
cu
.
firstPU
->
mhIntraFlag
&&
!
cu
.
cpr
)
if
(
!
cu
.
firstPU
->
mhIntraFlag
&&
!
cu
.
ibc
)
cs
.
getPredBuf
(
cu
).
get
(
COMPONENT_Y
).
rspSignal
(
m_pcReshape
->
getFwdLUT
());
}
#endif
...
...
@@ -530,7 +530,7 @@ void DecCu::xReconInter(CodingUnit &cu)