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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Sheng-Yen Lin
VVCSoftware_VTM
Compare Revisions
329007c7b7d7c278ca9883a32e4e6a9c7a179da3...e850e44c33e5ce0200724a4812003193ee657266
Source
e850e44c33e5ce0200724a4812003193ee657266
Select Git revision
...
Target
329007c7b7d7c278ca9883a32e4e6a9c7a179da3
Select Git revision
Compare
Commits (5)
Enable merge mode if hash match is found and the fast method is activated.
· dc04b112
Jiahao Li
authored
May 05, 2019
dc04b112
Merge branch 'Fix_Ticket_251' into 'master'
· a35be587
Xiang Li
authored
May 06, 2019
Fix for issue
#251
(Potential bug of Hash ME) See merge request
!536
a35be587
Update version number to 5.0
· 33e05832
Frank Bossen
authored
May 07, 2019
33e05832
Merge branch 'master' into VirtualBoundaries
· ff060546
Daniel Luo
authored
May 08, 2019
ff060546
Fixed wrong buffer was used.
· e850e44c
Daniel Luo
authored
May 08, 2019
e850e44c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
40 additions
and
31 deletions
+40
-31
source/Lib/CommonLib/AdaptiveLoopFilter.cpp
source/Lib/CommonLib/AdaptiveLoopFilter.cpp
+16
-16
source/Lib/CommonLib/version.h
source/Lib/CommonLib/version.h
+1
-1
source/Lib/EncoderLib/EncAdaptiveLoopFilter.cpp
source/Lib/EncoderLib/EncAdaptiveLoopFilter.cpp
+20
-8
source/Lib/EncoderLib/EncCu.cpp
source/Lib/EncoderLib/EncCu.cpp
+3
-6
No files found.
source/Lib/CommonLib/AdaptiveLoopFilter.cpp
View file @
e850e44c
...
...
@@ -392,41 +392,41 @@ void AdaptiveLoopFilter::ALFProcess( CodingStructure& cs, AlfSliceParam& alfSlic
}
#if JVET_N0180_ALF_LINE_BUFFER_REDUCTION
#if JVET_N0242_NON_LINEAR_ALF
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
,
m_alfVBLumaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBLumaPos
)
);
#else
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
,
m_alfVBLumaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBLumaPos
)
);
#endif
#else
#if JVET_N0242_NON_LINEAR_ALF
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
#else
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
#endif
#endif
#else
#if JVET_N0180_ALF_LINE_BUFFER_REDUCTION
#if JVET_N0242_NON_LINEAR_ALF
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clippFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clippFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
,
m_alfVBLumaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBLumaPos
)
);
#else
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
,
m_alfVBLumaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBLumaPos
)
);
#endif
#else
#if JVET_N0242_NON_LINEAR_ALF
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clippFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clippFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
#else
m_filter7x7Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
m_filter7x7Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
m_coeffFinal
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
#endif
#endif
#endif
...
...
@@ -445,22 +445,22 @@ void AdaptiveLoopFilter::ALFProcess( CodingStructure& cs, AlfSliceParam& alfSlic
#if JVET_N0180_ALF_LINE_BUFFER_REDUCTION
#if JVET_N0242_NON_LINEAR_ALF
#if JVET_N0415_CTB_ALF
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
,
m_alfVBChmaCTUHeight
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
,
m_alfVBChmaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBChmaPos
));
#else
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
,
m_alfVBChmaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBChmaPos
)
);
#endif
#else
#if JVET_N0415_CTB_ALF
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
,
m_alfVBChmaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBChmaPos
)
);
#else
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_clpRngs
.
comp
[
compIdx
],
cs
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_clpRngs
.
comp
[
compIdx
],
cs
,
m_alfVBChmaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBChmaPos
)
);
...
...
@@ -470,15 +470,15 @@ void AdaptiveLoopFilter::ALFProcess( CodingStructure& cs, AlfSliceParam& alfSlic
#if JVET_N0242_NON_LINEAR_ALF
#if JVET_N0415_CTB_ALF
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
#else
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
#endif
#else
#if JVET_N0415_CTB_ALF
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
#else
m_filter5x5Blk
(
m_classifier
,
recYuv
,
tmpYuv
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
m_filter5x5Blk
(
m_classifier
,
recYuv
,
buf
,
blkDst
,
blkSrc
,
compID
,
alfSliceParam
.
chromaCoeff
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
#endif
#endif
#endif
...
...
source/Lib/CommonLib/version.h
View file @
e850e44c
#if ! defined( VTM_VERSION )
#define VTM_VERSION "5.0
rc1
"
#define VTM_VERSION "5.0"
#endif
source/Lib/EncoderLib/EncAdaptiveLoopFilter.cpp
View file @
e850e44c
...
...
@@ -4131,11 +4131,23 @@ void EncAdaptiveLoopFilter::alfReconstructor(CodingStructure& cs, const PelUnitB
{
const
int
yEnd
=
i
==
numHorSplit
?
yPos
+
height
:
horSplit
[
i
];
const
int
h
=
yEnd
-
yStart
;
const
bool
clipT
=
(
i
==
0
&&
clipTop
)
||
(
i
>
0
)
||
(
yStart
==
0
);
const
bool
clipB
=
(
i
==
numHorSplit
&&
clipBottom
)
||
(
i
<
numHorSplit
)
||
(
yEnd
==
pcv
.
lumaHeight
);
int
xStart
=
xPos
;
for
(
int
j
=
0
;
j
<=
numVerSplit
;
j
++
)
{
const
int
xEnd
=
j
==
numVerSplit
?
xPos
+
width
:
verSplit
[
j
];
const
int
w
=
xEnd
-
xStart
;
const
bool
clipL
=
(
j
==
0
&&
clipLeft
)
||
(
j
>
0
)
||
(
xStart
==
0
);
const
bool
clipR
=
(
j
==
numVerSplit
&&
clipRight
)
||
(
j
<
numVerSplit
)
||
(
xEnd
==
pcv
.
lumaWidth
);
const
int
wBuf
=
w
+
(
clipL
?
0
:
MAX_ALF_PADDING_SIZE
)
+
(
clipR
?
0
:
MAX_ALF_PADDING_SIZE
);
const
int
hBuf
=
h
+
(
clipT
?
0
:
MAX_ALF_PADDING_SIZE
)
+
(
clipB
?
0
:
MAX_ALF_PADDING_SIZE
);
PelUnitBuf
buf
=
m_tempBuf2
.
subBuf
(
UnitArea
(
cs
.
area
.
chromaFormat
,
Area
(
0
,
0
,
wBuf
,
hBuf
)));
buf
.
copyFrom
(
recExtBuf
.
subBuf
(
UnitArea
(
cs
.
area
.
chromaFormat
,
Area
(
xStart
-
(
clipL
?
0
:
MAX_ALF_PADDING_SIZE
),
yStart
-
(
clipT
?
0
:
MAX_ALF_PADDING_SIZE
),
wBuf
,
hBuf
))));
buf
.
extendBorderPel
(
MAX_ALF_PADDING_SIZE
);
buf
=
buf
.
subBuf
(
UnitArea
(
cs
.
area
.
chromaFormat
,
Area
(
clipL
?
0
:
MAX_ALF_PADDING_SIZE
,
clipT
?
0
:
MAX_ALF_PADDING_SIZE
,
w
,
h
)));
if
(
m_ctuEnableFlag
[
COMPONENT_Y
][
ctuIdx
])
{
...
...
@@ -4162,21 +4174,21 @@ void EncAdaptiveLoopFilter::alfReconstructor(CodingStructure& cs, const PelUnitB
}
#if JVET_N0180_ALF_LINE_BUFFER_REDUCTION
#if JVET_N0242_NON_LINEAR_ALF
m_filter7x7Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
m_filter7x7Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
,
m_alfVBLumaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBLumaPos
)
);
#else
m_filter7x7Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
m_filter7x7Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
,
m_alfVBLumaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBLumaPos
)
);
#endif
#else
#if JVET_N0242_NON_LINEAR_ALF
m_filter7x7Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
m_filter7x7Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
clip
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
#else
m_filter7x7Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
m_filter7x7Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
COMPONENT_Y
,
coeff
,
m_clpRngs
.
comp
[
COMPONENT_Y
],
cs
);
#endif
#endif
}
...
...
@@ -4192,21 +4204,21 @@ void EncAdaptiveLoopFilter::alfReconstructor(CodingStructure& cs, const PelUnitB
const
Area
blkDst
(
xStart
>>
chromaScaleX
,
yStart
>>
chromaScaleY
,
w
>>
chromaScaleX
,
h
>>
chromaScaleY
);
#if JVET_N0180_ALF_LINE_BUFFER_REDUCTION
#if JVET_N0242_NON_LINEAR_ALF
m_filter5x5Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
m_filter5x5Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
,
m_alfVBChmaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBChmaPos
)
);
#else
m_filter5x5Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
m_filter5x5Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
,
m_alfVBChmaCTUHeight
,
((
yPos
+
pcv
.
maxCUHeight
>=
pcv
.
lumaHeight
)
?
pcv
.
lumaHeight
:
m_alfVBChmaPos
)
);
#endif
#else
#if JVET_N0242_NON_LINEAR_ALF
m_filter5x5Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
m_filter5x5Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_chromaClippFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
#else
m_filter5x5Blk
(
m_classifier
,
recBuf
,
recExtB
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
m_filter5x5Blk
(
m_classifier
,
recBuf
,
b
uf
,
blkDst
,
blkSrc
,
compID
,
m_chromaCoeffFinal
,
m_clpRngs
.
comp
[
compIdx
],
cs
);
#endif
#endif
}
...
...
source/Lib/EncoderLib/EncCu.cpp
View file @
e850e44c
...
...
@@ -2447,11 +2447,10 @@ void EncCu::xCheckRDCostMerge2Nx2N( CodingStructure *&tempCS, CodingStructure *&
}
m_bestModeUpdated
=
tempCS
->
useDbCost
=
bestCS
->
useDbCost
=
false
;
uint32_t
iteration
;
uint32_t
iterationBegin
=
m_modeCtrl
->
getIsHashPerfectMatch
()
?
1
:
0
;
uint32_t
iterationBegin
=
0
;
if
(
encTestMode
.
lossless
)
{
iteration
=
1
;
iterationBegin
=
0
;
}
else
{
...
...
@@ -2864,11 +2863,10 @@ void EncCu::xCheckRDCostMergeTriangle2Nx2N( CodingStructure *&tempCS, CodingStru
m_bestModeUpdated
=
tempCS
->
useDbCost
=
bestCS
->
useDbCost
=
false
;
{
uint8_t
iteration
;
uint8_t
iterationBegin
=
m_modeCtrl
->
getIsHashPerfectMatch
()
?
1
:
0
;
uint8_t
iterationBegin
=
0
;
if
(
encTestMode
.
lossless
)
{
iteration
=
1
;
iterationBegin
=
0
;
}
else
{
...
...
@@ -3131,11 +3129,10 @@ void EncCu::xCheckRDCostAffineMerge2Nx2N( CodingStructure *&tempCS, CodingStruct
}
uint32_t
iteration
;
uint32_t
iterationBegin
=
m_modeCtrl
->
getIsHashPerfectMatch
()
?
1
:
0
;
uint32_t
iterationBegin
=
0
;
if
(
encTestMode
.
lossless
)
{
iteration
=
1
;
iterationBegin
=
0
;
}
else
{
...
...