Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Yu-Chi Su
VVCSoftware_BMS
Commits
95699da0
Commit
95699da0
authored
Sep 05, 2018
by
Yu-Chi Su
Browse files
K0248 GBI: fix interaction with Affine mode
parent
04655058
Pipeline
#84
passed with stage
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
source/Lib/EncoderLib/InterSearch.cpp
View file @
95699da0
...
...
@@ -1850,7 +1850,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
xMotionEstimation
(
pu
,
origBuf
,
eRefPicList
,
cMvPred
[
iRefList
][
iRefIdxTemp
],
iRefIdxTemp
,
cMvTemp
[
iRefList
][
iRefIdxTemp
],
aaiMvpIdx
[
iRefList
][
iRefIdxTemp
],
uiBitsTemp
,
uiCostTemp
,
amvp
[
eRefPicList
]
);
}
#if JVET_K0248_GBI
if
(
cu
.
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
!
m_cUniMotions
.
isReadMode
((
uint32_t
)
iRefList
,
(
uint32_t
)
iRefIdxTemp
)
)
if
(
cu
.
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
cu
.
GBiIdx
==
GBI_DEFAULT
&&
cu
.
cs
->
slice
->
isInterB
()
)
{
const
bool
checkIdentical
=
true
;
m_cUniMotions
.
setReadMode
(
checkIdentical
,
(
uint32_t
)
iRefList
,
(
uint32_t
)
iRefIdxTemp
);
...
...
@@ -2727,7 +2727,7 @@ Distortion InterSearch::xGetAffineTemplateCost( PredictionUnit& pu, PelUnitBuf&
void
InterSearch
::
xMotionEstimation
(
PredictionUnit
&
pu
,
PelUnitBuf
&
origBuf
,
RefPicList
eRefPicList
,
Mv
&
rcMvPred
,
int
iRefIdxPred
,
Mv
&
rcMv
,
int
&
riMVPIdx
,
uint32_t
&
ruiBits
,
Distortion
&
ruiCost
,
const
AMVPInfo
&
amvpInfo
,
bool
bBi
)
{
#if JVET_K0248_GBI
if
(
pu
.
cu
->
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
!
bBi
&&
xReadBufferedUniMv
(
pu
,
eRefPicList
,
iRefIdxPred
,
rcMvPred
,
rcMv
,
ruiBits
,
ruiCost
)
)
if
(
pu
.
cu
->
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
pu
.
cu
->
GBiIdx
!=
GBI_DEFAULT
&&
!
bBi
&&
xReadBufferedUniMv
(
pu
,
eRefPicList
,
iRefIdxPred
,
rcMvPred
,
rcMv
,
ruiBits
,
ruiCost
)
)
{
return
;
}
...
...
@@ -3888,7 +3888,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu,
xAffineMotionEstimation
(
pu
,
origBuf
,
eRefPicList
,
cMvPred
[
iRefList
][
iRefIdxTemp
],
iRefIdxTemp
,
cMvTemp
[
iRefList
][
iRefIdxTemp
],
uiBitsTemp
,
uiCostTemp
);
}
#if JVET_K0248_GBI
if
(
pu
.
cu
->
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
!
m_cUniMotions
.
isReadModeAffine
(
(
uint8_t
)
iRefList
,
(
uint8_t
)
iRefIdxTemp
)
)
if
(
pu
.
cu
->
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
pu
.
cu
->
GBiIdx
==
GBI_DEFAULT
&&
pu
.
cu
->
slice
->
isInterB
(
)
)
{
m_cUniMotions
.
setReadModeAffine
(
true
,
(
uint8_t
)
iRefList
,
(
uint8_t
)
iRefIdxTemp
);
m_cUniMotions
.
copyAffineMvFrom
(
cMvTemp
[
iRefList
][
iRefIdxTemp
],
uiCostTemp
-
m_pcRdCost
->
getCost
(
uiBitsTemp
),
(
uint8_t
)
iRefList
,
(
uint8_t
)
iRefIdxTemp
);
...
...
@@ -4441,7 +4441,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
bool
bBi
)
{
#if JVET_K0248_GBI
if
(
pu
.
cu
->
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
!
bBi
&&
xReadBufferedAffineUniMv
(
pu
,
eRefPicList
,
iRefIdxPred
,
acMvPred
,
acMv
,
ruiBits
,
ruiCost
))
if
(
pu
.
cu
->
cs
->
sps
->
getSpsNext
().
getUseGBi
()
&&
pu
.
cu
->
GBiIdx
!=
GBI_DEFAULT
&&
!
bBi
&&
xReadBufferedAffineUniMv
(
pu
,
eRefPicList
,
iRefIdxPred
,
acMvPred
,
acMv
,
ruiBits
,
ruiCost
)
)
{
return
;
}
...
...
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