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
jvet
VVCSoftware_VTM
Commits
53acbad3
Commit
53acbad3
authored
Dec 28, 2018
by
Xiang Li
Browse files
Cleaned VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE. Defined more constants
parent
e3196e60
Changes
11
Hide whitespace changes
Inline
Side-by-side
source/Lib/CommonLib/CommonDef.h
View file @
53acbad3
...
...
@@ -245,9 +245,12 @@ static const int LOG2_MAX_NUM_ROWS_MINUS1 = 7;
static
const
int
CABAC_INIT_PRESENT_FLAG
=
1
;
static
const
int
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
=
4
;
static
const
int
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
=
8
;
static
const
int
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
=
2
;
///< additional precision bit for MV storage
static
const
int
MV_FRACTIONAL_BITS_INTERNAL
=
4
;
static
const
int
MV_FRACTIONAL_BITS_SIGNAL
=
2
;
static
const
int
MV_FRACTIONAL_BITS_DIFF
=
MV_FRACTIONAL_BITS_INTERNAL
-
MV_FRACTIONAL_BITS_SIGNAL
;
static
const
int
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS_SIGNAL
=
1
<<
MV_FRACTIONAL_BITS_SIGNAL
;
static
const
int
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
=
1
<<
MV_FRACTIONAL_BITS_INTERNAL
;
static
const
int
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
=
1
<<
(
MV_FRACTIONAL_BITS_INTERNAL
+
1
);
static
const
int
MAX_NUM_LONG_TERM_REF_PICS
=
33
;
static
const
int
NUM_LONG_TERM_REF_PIC_SPS
=
0
;
...
...
source/Lib/CommonLib/ContextModelling.cpp
View file @
53acbad3
...
...
@@ -373,7 +373,7 @@ void MergeCtx::setMergeInfo( PredictionUnit& pu, int candIdx )
{
pu
.
cu
->
cpr
=
true
;
pu
.
bv
=
pu
.
mv
[
REF_PIC_LIST_0
];
pu
.
bv
>>=
(
2
+
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
);
// used for only integer resolution
pu
.
bv
.
changePrecision
(
MV_PRECISION_INTERNAL
,
MV_PRECISION_INT
);
// used for only integer resolution
}
#endif
#if JVET_L0646_GBI
...
...
@@ -385,7 +385,7 @@ void MergeCtx::setMergeInfo( PredictionUnit& pu, int candIdx )
void
MergeCtx
::
setMmvdMergeCandiInfo
(
PredictionUnit
&
pu
,
int
candIdx
)
{
const
Slice
&
slice
=
*
pu
.
cs
->
slice
;
const
int
mvShift
=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
const
int
mvShift
=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
const
int
refMvdCands
[
8
]
=
{
1
<<
mvShift
,
2
<<
mvShift
,
4
<<
mvShift
,
8
<<
mvShift
,
16
<<
mvShift
,
32
<<
mvShift
,
64
<<
mvShift
,
128
<<
mvShift
};
int
fPosGroup
=
0
;
int
fPosBaseIdx
=
0
;
...
...
source/Lib/CommonLib/InterPrediction.cpp
View file @
53acbad3
...
...
@@ -76,9 +76,9 @@ InterPrediction::InterPrediction()
for
(
uint32_t
c
=
0
;
c
<
MAX_NUM_COMPONENT
;
c
++
)
{
for
(
uint32_t
i
=
0
;
i
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
;
i
++
)
for
(
uint32_t
i
=
0
;
i
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
;
i
++
)
{
for
(
uint32_t
j
=
0
;
j
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
;
j
++
)
for
(
uint32_t
j
=
0
;
j
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
;
j
++
)
{
m_filteredBlock
[
i
][
j
][
c
]
=
nullptr
;
}
...
...
@@ -107,9 +107,9 @@ void InterPrediction::destroy()
for
(
uint32_t
c
=
0
;
c
<
MAX_NUM_COMPONENT
;
c
++
)
{
for
(
uint32_t
i
=
0
;
i
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
;
i
++
)
for
(
uint32_t
i
=
0
;
i
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
;
i
++
)
{
for
(
uint32_t
j
=
0
;
j
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
;
j
++
)
for
(
uint32_t
j
=
0
;
j
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
;
j
++
)
{
xFree
(
m_filteredBlock
[
i
][
j
][
c
]
);
m_filteredBlock
[
i
][
j
][
c
]
=
nullptr
;
...
...
@@ -163,11 +163,11 @@ void InterPrediction::init( RdCost* pcRdCost, ChromaFormat chromaFormatIDC )
int
extWidth
=
MAX_CU_SIZE
+
16
;
int
extHeight
=
MAX_CU_SIZE
+
1
;
#endif
for
(
uint32_t
i
=
0
;
i
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
;
i
++
)
for
(
uint32_t
i
=
0
;
i
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
;
i
++
)
{
m_filteredBlockTmp
[
i
][
c
]
=
(
Pel
*
)
xMalloc
(
Pel
,
(
extWidth
+
4
)
*
(
extHeight
+
7
+
4
)
);
for
(
uint32_t
j
=
0
;
j
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
;
j
++
)
for
(
uint32_t
j
=
0
;
j
<
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
;
j
++
)
{
m_filteredBlock
[
i
][
j
][
c
]
=
(
Pel
*
)
xMalloc
(
Pel
,
extWidth
*
extHeight
);
}
...
...
@@ -637,10 +637,8 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
const
ChromaFormat
chFmt
=
pu
.
chromaFormat
;
const
bool
rndRes
=
!
bi
;
int
iAddPrecShift
=
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
;
int
shiftHor
=
2
+
iAddPrecShift
+
::
getComponentScaleX
(
compID
,
chFmt
);
int
shiftVer
=
2
+
iAddPrecShift
+
::
getComponentScaleY
(
compID
,
chFmt
);
int
shiftHor
=
MV_FRACTIONAL_BITS_INTERNAL
+
::
getComponentScaleX
(
compID
,
chFmt
);
int
shiftVer
=
MV_FRACTIONAL_BITS_INTERNAL
+
::
getComponentScaleY
(
compID
,
chFmt
);
int
xFrac
=
_mv
.
hor
&
((
1
<<
shiftHor
)
-
1
);
int
yFrac
=
_mv
.
ver
&
((
1
<<
shiftVer
)
-
1
);
...
...
@@ -651,8 +649,6 @@ void InterPrediction::xPredInterBlk ( const ComponentID& compID, const Predictio
JVET_J0090_SET_CACHE_ENABLE
(
false
);
}
#endif
xFrac
<<=
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
-
iAddPrecShift
;
yFrac
<<=
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
-
iAddPrecShift
;
PelBuf
&
dstBuf
=
dstPic
.
bufs
[
compID
];
unsigned
width
=
dstBuf
.
width
;
...
...
@@ -819,7 +815,7 @@ void InterPrediction::xPredAffineBlk( const ComponentID& compID, const Predictio
PelBuf
tmpBuf
=
PelBuf
(
m_filteredBlockTmp
[
0
][
compID
],
pu
.
blocks
[
compID
]);
const
int
vFilterSize
=
isLuma
(
compID
)
?
NTAPS_LUMA
:
NTAPS_CHROMA
;
const
int
shift
=
iBit
-
4
+
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
+
2
;
const
int
shift
=
iBit
-
4
+
MV_FRACT
ION
AL
_BIT
S_INTERNAL
;
// get prediction block by block
for
(
int
h
=
0
;
h
<
cxHeight
;
h
+=
blockHeight
)
...
...
source/Lib/CommonLib/InterPrediction.h
View file @
53acbad3
...
...
@@ -80,8 +80,8 @@ protected:
InterpolationFilter
m_if
;
Pel
*
m_acYuvPred
[
NUM_REF_PIC_LIST_01
][
MAX_NUM_COMPONENT
];
Pel
*
m_filteredBlock
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
MAX_NUM_COMPONENT
];
Pel
*
m_filteredBlockTmp
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
MAX_NUM_COMPONENT
];
Pel
*
m_filteredBlock
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
][
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
][
MAX_NUM_COMPONENT
];
Pel
*
m_filteredBlockTmp
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
_SIGNAL
][
MAX_NUM_COMPONENT
];
ChromaFormat
m_currChromaFormat
;
...
...
source/Lib/CommonLib/InterpolationFilter.cpp
View file @
53acbad3
...
...
@@ -55,7 +55,7 @@ CacheModel* InterpolationFilter::m_cacheModel;
// Tables
// ====================================================================================================================
const
TFilterCoeff
InterpolationFilter
::
m_lumaFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
][
NTAPS_LUMA
]
=
const
TFilterCoeff
InterpolationFilter
::
m_lumaFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
NTAPS_LUMA
]
=
{
{
0
,
0
,
0
,
64
,
0
,
0
,
0
,
0
},
{
0
,
1
,
-
3
,
63
,
4
,
-
2
,
1
,
0
},
...
...
@@ -75,7 +75,7 @@ const TFilterCoeff InterpolationFilter::m_lumaFilter[LUMA_INTERPOLATION_FILTER_S
{
0
,
1
,
-
2
,
4
,
63
,
-
3
,
1
,
0
}
};
const
TFilterCoeff
InterpolationFilter
::
m_chromaFilter
[
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
][
NTAPS_CHROMA
]
=
const
TFilterCoeff
InterpolationFilter
::
m_chromaFilter
[
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
NTAPS_CHROMA
]
=
{
{
0
,
64
,
0
,
0
},
{
-
1
,
63
,
2
,
0
},
...
...
@@ -112,7 +112,7 @@ const TFilterCoeff InterpolationFilter::m_chromaFilter[CHROMA_INTERPOLATION_FILT
};
#if JVET_L0256_BIO
const
TFilterCoeff
InterpolationFilter
::
m_bilinearFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
][
NTAPS_BILINEAR
]
=
const
TFilterCoeff
InterpolationFilter
::
m_bilinearFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
NTAPS_BILINEAR
]
=
{
{
64
,
0
,
},
{
60
,
4
,
},
...
...
@@ -477,7 +477,7 @@ void InterpolationFilter::filterHor( const ComponentID compID, Pel const *src, i
}
else
if
(
isLuma
(
compID
)
)
{
CHECK
(
frac
<
0
||
frac
>=
(
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
)
,
"Invalid fraction"
);
CHECK
(
frac
<
0
||
frac
>=
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
,
"Invalid fraction"
);
#if JVET_L0256_BIO
if
(
nFilterIdx
==
1
)
{
...
...
@@ -492,7 +492,7 @@ void InterpolationFilter::filterHor( const ComponentID compID, Pel const *src, i
else
{
const
uint32_t
csx
=
getComponentScaleX
(
compID
,
fmt
);
CHECK
(
frac
<
0
||
csx
>=
2
||
(
frac
<<
(
1
-
csx
)
)
>=
(
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
)
,
"Invalid fraction"
);
CHECK
(
frac
<
0
||
csx
>=
2
||
(
frac
<<
(
1
-
csx
)
)
>=
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
,
"Invalid fraction"
);
filterHor
<
NTAPS_CHROMA
>
(
clpRng
,
src
,
srcStride
,
dst
,
dstStride
,
width
,
height
,
isLast
,
m_chromaFilter
[
frac
<<
(
1
-
csx
)]
);
}
}
...
...
@@ -526,7 +526,7 @@ void InterpolationFilter::filterVer( const ComponentID compID, Pel const *src, i
}
else
if
(
isLuma
(
compID
)
)
{
CHECK
(
frac
<
0
||
frac
>=
(
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
)
,
"Invalid fraction"
);
CHECK
(
frac
<
0
||
frac
>=
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
,
"Invalid fraction"
);
#if JVET_L0256_BIO
if
(
nFilterIdx
==
1
)
{
...
...
@@ -541,7 +541,7 @@ void InterpolationFilter::filterVer( const ComponentID compID, Pel const *src, i
else
{
const
uint32_t
csy
=
getComponentScaleY
(
compID
,
fmt
);
CHECK
(
frac
<
0
||
csy
>=
2
||
(
frac
<<
(
1
-
csy
)
)
>=
(
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
)
,
"Invalid fraction"
);
CHECK
(
frac
<
0
||
csy
>=
2
||
(
frac
<<
(
1
-
csy
)
)
>=
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
,
"Invalid fraction"
);
filterVer
<
NTAPS_CHROMA
>
(
clpRng
,
src
,
srcStride
,
dst
,
dstStride
,
width
,
height
,
isFirst
,
isLast
,
m_chromaFilter
[
frac
<<
(
1
-
csy
)]
);
}
}
...
...
source/Lib/CommonLib/InterpolationFilter.h
View file @
53acbad3
...
...
@@ -54,10 +54,10 @@
*/
class
InterpolationFilter
{
static
const
TFilterCoeff
m_lumaFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
][
NTAPS_LUMA
];
///< Luma filter taps
static
const
TFilterCoeff
m_chromaFilter
[
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
][
NTAPS_CHROMA
];
///< Chroma filter taps
static
const
TFilterCoeff
m_lumaFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
NTAPS_LUMA
];
///< Luma filter taps
static
const
TFilterCoeff
m_chromaFilter
[
CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
NTAPS_CHROMA
];
///< Chroma filter taps
#if JVET_L0256_BIO
static
const
TFilterCoeff
m_bilinearFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
<<
VCEG_AZ07_MV_ADD_PRECISION_BIT_FOR_STORE
][
NTAPS_BILINEAR
];
///< bilinear filter taps
static
const
TFilterCoeff
m_bilinearFilter
[
LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS
][
NTAPS_BILINEAR
];
///< bilinear filter taps
#endif
public:
template
<
bool
isFirst
,
bool
isLast
>
...
...
source/Lib/CommonLib/LoopFilter.cpp
View file @
53acbad3
...
...
@@ -485,7 +485,7 @@ unsigned LoopFilter::xGetBoundaryStrengthSingle ( const CodingUnit& cu, const De
if
(
0
<=
miQ
.
refIdx
[
0
]
)
{
mvQ0
=
miQ
.
mv
[
0
];
}
if
(
0
<=
miQ
.
refIdx
[
1
]
)
{
mvQ1
=
miQ
.
mv
[
1
];
}
int
nThreshold
=
4
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
int
nThreshold
=
1
<<
MV_FRACT
ION
AL
_BIT
S_INTERNAL
;
unsigned
uiBs
=
0
;
//th can be optimized
...
...
@@ -538,7 +538,7 @@ unsigned LoopFilter::xGetBoundaryStrengthSingle ( const CodingUnit& cu, const De
Mv
mvP0
=
miP
.
mv
[
0
];
Mv
mvQ0
=
miQ
.
mv
[
0
];
int
nThreshold
=
4
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
int
nThreshold
=
1
<<
MV_FRACT
ION
AL
_BIT
S_INTERNAL
;
return
(
(
abs
(
mvQ0
.
getHor
()
-
mvP0
.
getHor
()
)
>=
nThreshold
)
||
(
abs
(
mvQ0
.
getVer
()
-
mvP0
.
getVer
()
)
>=
nThreshold
)
)
?
1
:
0
;
}
...
...
source/Lib/CommonLib/Mv.cpp
View file @
53acbad3
...
...
@@ -55,7 +55,7 @@ void clipMv( Mv& rcMv, const Position& pos,
#endif
const
SPS
&
sps
)
{
int
iMvShift
=
2
+
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
int
iMvShift
=
MV_FRACT
ION
AL
_BIT
S_INTERNAL
;
int
iOffset
=
8
;
int
iHorMax
=
(
sps
.
getPicWidthInLumaSamples
()
+
iOffset
-
(
int
)
pos
.
x
-
1
)
<<
iMvShift
;
int
iHorMin
=
(
-
(
int
)
sps
.
getMaxCUWidth
()
-
iOffset
-
(
int
)
pos
.
x
+
1
)
<<
iMvShift
;
...
...
source/Lib/CommonLib/UnitTools.cpp
View file @
53acbad3
...
...
@@ -4107,7 +4107,7 @@ bool PU::getInterMergeSubPuMvpCand(const PredictionUnit &pu, MergeCtx& mrgCtx, b
///////////////////////////////////////////////////////////////////////
//////// GET Initial Temporal Vector ////////
///////////////////////////////////////////////////////////////////////
int
mvPrec
=
2
+
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
int mvPrec =
MV_FRACT
ION
AL
_BIT
S_INTERNAL
;
#if !JVET_L0257_ATMVP_COLBLK_CLIP
int mvRndOffs = (1 << mvPrec) >> 1;
#endif
...
...
source/Lib/CommonLib/dtrace_blockstatistics.cpp
View file @
53acbad3
...
...
@@ -409,7 +409,7 @@ void getAndStoreBlockStatistics(const CodingStructure& cs, const UnitArea& ctuAr
void
writeAllData
(
const
CodingStructure
&
cs
,
const
UnitArea
&
ctuArea
)
{
const
int
maxNumChannelType
=
cs
.
pcv
->
chrFormat
!=
CHROMA_400
&&
CS
::
isDualITree
(
cs
)
?
2
:
1
;
const
int
nShift
=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
const
int
nShift
=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
const
int
nOffset
=
1
<<
(
nShift
-
1
);
for
(
int
ch
=
0
;
ch
<
maxNumChannelType
;
ch
++
)
{
...
...
@@ -682,7 +682,7 @@ void writeAllData(const CodingStructure& cs, const UnitArea& ctuArea)
void
writeAllCodedData
(
const
CodingStructure
&
cs
,
const
UnitArea
&
ctuArea
)
{
const
int
nShift
=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
const
int
nShift
=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
const
int
nOffset
=
1
<<
(
nShift
-
1
);
const
int
maxNumChannelType
=
cs
.
pcv
->
chrFormat
!=
CHROMA_400
&&
CS
::
isDualITree
(
cs
)
?
2
:
1
;
...
...
source/Lib/EncoderLib/InterSearch.cpp
View file @
53acbad3
...
...
@@ -2533,7 +2533,7 @@ void InterSearch::xSetSearchRange ( const PredictionUnit& pu,
,
IntTZSearchStruct
&
cStruct
)
{
const
int
iMvShift
=
2
+
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
const
int
iMvShift
=
MV_FRACT
ION
AL
_BIT
S_INTERNAL
;
Mv
cFPMvPred
=
cMvPred
;
cFPMvPred
.
changePrecision
(
MV_PRECISION_QUARTER
,
MV_PRECISION_INTERNAL
);
clipMv
(
cFPMvPred
,
pu
.
cu
->
lumaPos
(),
...
...
@@ -3401,9 +3401,9 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit& pu,
int
mvScaleHor
=
nbMv
[
0
].
getHor
()
<<
shift
;
int
mvScaleVer
=
nbMv
[
0
].
getVer
()
<<
shift
;
Mv
dMv
=
nbMv
[
1
]
-
nbMv
[
0
];
mvScaleHor
<<=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
mvScaleVer
<<=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
dMv
<<=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
mvScaleHor
<<=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
mvScaleVer
<<=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
dMv
<<=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
dMvHorX
=
dMv
.
getHor
()
<<
(
shift
-
g_aucLog2
[
mvInfo
->
w
]);
dMvHorY
=
dMv
.
getVer
()
<<
(
shift
-
g_aucLog2
[
mvInfo
->
w
]);
dMvVerX
=
-
dMvHorY
;
...
...
@@ -4187,7 +4187,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
DTRACE
(
g_trace_ctx
,
D_COMMON
,
"#mvForBits=(%d,%d)
\n
"
,
acMvTemp
[
i
].
getHor
(),
acMvTemp
[
i
].
getVer
()
);
Mv
mv0
=
acMvTemp
[
0
];
mv0
.
changePrecision
(
MV_PRECISION_INTERNAL
,
MV_PRECISION_QUARTER
);
const
int
shift
=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
const
int
shift
=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
Mv
secondPred
;
if
(
i
!=
0
)
{
...
...
@@ -4292,14 +4292,14 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
dDeltaMv
[
3
]
=
-
dAffinePara
[
3
]
*
width
+
dAffinePara
[
2
];
}
acDeltaMv
[
0
]
=
Mv
(
(
int
)(
dDeltaMv
[
0
]
*
4
+
SIGN
(
dDeltaMv
[
0
]
)
*
0.5
)
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
(
int
)(
dDeltaMv
[
2
]
*
4
+
SIGN
(
dDeltaMv
[
2
]
)
*
0.5
)
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
acDeltaMv
[
0
]
=
Mv
(
(
int
)(
dDeltaMv
[
0
]
*
4
+
SIGN
(
dDeltaMv
[
0
]
)
*
0.5
)
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
(
int
)(
dDeltaMv
[
2
]
*
4
+
SIGN
(
dDeltaMv
[
2
]
)
*
0.5
)
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
);
acDeltaMv
[
1
]
=
Mv
(
(
int
)(
dDeltaMv
[
1
]
*
4
+
SIGN
(
dDeltaMv
[
1
]
)
*
0.5
)
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
(
int
)(
dDeltaMv
[
3
]
*
4
+
SIGN
(
dDeltaMv
[
3
]
)
*
0.5
)
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
acDeltaMv
[
1
]
=
Mv
(
(
int
)(
dDeltaMv
[
1
]
*
4
+
SIGN
(
dDeltaMv
[
1
]
)
*
0.5
)
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
(
int
)(
dDeltaMv
[
3
]
*
4
+
SIGN
(
dDeltaMv
[
3
]
)
*
0.5
)
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
);
if
(
pu
.
cu
->
affineType
==
AFFINEMODEL_6PARAM
)
{
acDeltaMv
[
2
]
=
Mv
(
(
int
)(
dDeltaMv
[
4
]
*
4
+
SIGN
(
dDeltaMv
[
4
]
)
*
0.5
)
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
(
int
)(
dDeltaMv
[
5
]
*
4
+
SIGN
(
dDeltaMv
[
5
]
)
*
0.5
)
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
acDeltaMv
[
2
]
=
Mv
(
(
int
)(
dDeltaMv
[
4
]
*
4
+
SIGN
(
dDeltaMv
[
4
]
)
*
0.5
)
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
(
int
)(
dDeltaMv
[
5
]
*
4
+
SIGN
(
dDeltaMv
[
5
]
)
*
0.5
)
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
);
}
...
...
@@ -4344,7 +4344,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
m_pcRdCost
->
setPredictor
(
acMvPred
[
i
]
);
Mv
mv0
=
acMvTemp
[
0
];
mv0
.
changePrecision
(
MV_PRECISION_INTERNAL
,
MV_PRECISION_QUARTER
);
const
int
shift
=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
const
int
shift
=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
Mv
secondPred
;
if
(
i
!=
0
)
{
...
...
@@ -4380,7 +4380,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
m_pcRdCost
->
setPredictor
(
acMvPred
[
i
]);
Mv
mv0
=
ctrlPtMv
[
0
];
mv0
.
changePrecision
(
MV_PRECISION_INTERNAL
,
MV_PRECISION_QUARTER
);
const
int
shift
=
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
;
const
int
shift
=
MV_FRACT
ION
AL
_BIT
S_DIFF
;
Mv
secondPred
;
if
(
i
!=
0
)
{
...
...
@@ -4458,7 +4458,7 @@ void InterSearch::xAffineMotionEstimation( PredictionUnit& pu,
acMvTemp
[
0
]
=
centerMv
[
0
];
for
(
int
i
=
0
;
i
<
4
;
i
++
)
{
acMvTemp
[
1
].
set
(
centerMv
[
1
].
getHor
()
+
(
testPos
[
i
][
0
]
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
),
centerMv
[
1
].
getVer
()
+
(
testPos
[
i
][
1
]
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
));
acMvTemp
[
1
].
set
(
centerMv
[
1
].
getHor
()
+
(
testPos
[
i
][
0
]
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
),
centerMv
[
1
].
getVer
()
+
(
testPos
[
i
][
1
]
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
));
checkCPMVRdCost
(
acMvTemp
);
}
}
...
...
@@ -4561,24 +4561,24 @@ void InterSearch::xExtDIFUpSamplingH( CPelBuf* pattern )
const
ChromaFormat
chFmt
=
m_currChromaFormat
;
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
m_filteredBlockTmp
[
0
][
0
],
intStride
,
width
+
1
,
height
+
filterSize
,
0
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
chFmt
,
clpRng
);
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
m_filteredBlockTmp
[
2
][
0
],
intStride
,
width
+
1
,
height
+
filterSize
,
2
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
chFmt
,
clpRng
);
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
m_filteredBlockTmp
[
0
][
0
],
intStride
,
width
+
1
,
height
+
filterSize
,
0
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
chFmt
,
clpRng
);
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
m_filteredBlockTmp
[
2
][
0
],
intStride
,
width
+
1
,
height
+
filterSize
,
2
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
chFmt
,
clpRng
);
intPtr
=
m_filteredBlockTmp
[
0
][
0
]
+
halfFilterSize
*
intStride
+
1
;
dstPtr
=
m_filteredBlock
[
0
][
0
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
0
,
height
+
0
,
0
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
0
,
height
+
0
,
0
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
intPtr
=
m_filteredBlockTmp
[
0
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
+
1
;
dstPtr
=
m_filteredBlock
[
2
][
0
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
0
,
height
+
1
,
2
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
0
,
height
+
1
,
2
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
intPtr
=
m_filteredBlockTmp
[
2
][
0
]
+
halfFilterSize
*
intStride
;
dstPtr
=
m_filteredBlock
[
0
][
2
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
1
,
height
+
0
,
0
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
1
,
height
+
0
,
0
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
intPtr
=
m_filteredBlockTmp
[
2
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
;
dstPtr
=
m_filteredBlock
[
2
][
2
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
1
,
height
+
1
,
2
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
+
1
,
height
+
1
,
2
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
}
...
...
@@ -4623,7 +4623,7 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
srcPtr
+=
1
;
}
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
intPtr
,
intStride
,
width
,
extHeight
,
1
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
chFmt
,
clpRng
);
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
intPtr
,
intStride
,
width
,
extHeight
,
1
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
chFmt
,
clpRng
);
// Horizontal filter 3/4
srcPtr
=
pattern
->
buf
-
halfFilterSize
*
srcStride
-
1
;
...
...
@@ -4636,7 +4636,7 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
srcPtr
+=
1
;
}
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
intPtr
,
intStride
,
width
,
extHeight
,
3
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
chFmt
,
clpRng
);
m_if
.
filterHor
(
COMPONENT_Y
,
srcPtr
,
srcStride
,
intPtr
,
intStride
,
width
,
extHeight
,
3
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
chFmt
,
clpRng
);
// Generate @ 1,1
intPtr
=
m_filteredBlockTmp
[
1
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
;
...
...
@@ -4645,12 +4645,12 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
// Generate @ 3,1
intPtr
=
m_filteredBlockTmp
[
1
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
;
dstPtr
=
m_filteredBlock
[
3
][
1
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
if
(
halfPelRef
.
getVer
()
!=
0
)
{
...
...
@@ -4661,7 +4661,7 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
2
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
2
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
// Generate @ 2,3
intPtr
=
m_filteredBlockTmp
[
3
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
;
...
...
@@ -4670,19 +4670,19 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
2
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
2
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
}
else
{
// Generate @ 0,1
intPtr
=
m_filteredBlockTmp
[
1
][
0
]
+
halfFilterSize
*
intStride
;
dstPtr
=
m_filteredBlock
[
0
][
1
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
0
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
0
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
// Generate @ 0,3
intPtr
=
m_filteredBlockTmp
[
3
][
0
]
+
halfFilterSize
*
intStride
;
dstPtr
=
m_filteredBlock
[
0
][
3
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
0
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
0
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
}
if
(
halfPelRef
.
getHor
()
!=
0
)
...
...
@@ -4698,7 +4698,7 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
// Generate @ 3,2
intPtr
=
m_filteredBlockTmp
[
2
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
;
...
...
@@ -4711,7 +4711,7 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
}
else
{
...
...
@@ -4722,7 +4722,7 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
// Generate @ 3,0
intPtr
=
m_filteredBlockTmp
[
0
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
+
1
;
...
...
@@ -4731,7 +4731,7 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
}
// Generate @ 1,3
...
...
@@ -4741,12 +4741,12 @@ void InterSearch::xExtDIFUpSamplingQ( CPelBuf* pattern, Mv halfPelRef )
{
intPtr
+=
intStride
;
}
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
1
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
// Generate @ 3,3
intPtr
=
m_filteredBlockTmp
[
3
][
0
]
+
(
halfFilterSize
-
1
)
*
intStride
;
dstPtr
=
m_filteredBlock
[
3
][
3
][
0
];
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
VCEG_AZ07_MV_ADD_PRECIS
ION_BIT
_FOR_STORE
,
false
,
true
,
chFmt
,
clpRng
);
m_if
.
filterVer
(
COMPONENT_Y
,
intPtr
,
intStride
,
dstPtr
,
dstStride
,
width
,
height
,
3
<<
MV_FRACT
ION
AL
_BIT
S_DIFF
,
false
,
true
,
chFmt
,
clpRng
);
}
...
...
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