repositories
/
deb_x265.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Debian patch 1.4+222+hg5f9f7194267b-1~trusty
[deb_x265.git]
/
source
/
encoder
/
sao.cpp
diff --git
a/source/encoder/sao.cpp
b/source/encoder/sao.cpp
index 1179fe03c7c18df1d2c2170fa811bdfe14873a17..9836aa79a15306f0fef4b17aad8dea31e30c90eb 100644
(file)
--- a/
source/encoder/sao.cpp
+++ b/
source/encoder/sao.cpp
@@
-176,8
+176,11
@@
void SAO::allocSaoParam(SAOParam* saoParam) const
void SAO::startSlice(Frame* frame, Entropy& initState, int qp)
{
Slice* slice = frame->m_encData->m_slice;
void SAO::startSlice(Frame* frame, Entropy& initState, int qp)
{
Slice* slice = frame->m_encData->m_slice;
-
- int qpCb = Clip3(0, QP_MAX_MAX, qp + slice->m_pps->chromaCbQpOffset);
+ int qpCb = qp;
+ if (m_param->internalCsp == X265_CSP_I420)
+ qpCb = Clip3(QP_MIN, QP_MAX_MAX, (int)g_chromaScale[qp + slice->m_pps->chromaQpOffset[0]]);
+ else
+ qpCb = X265_MIN(qp + slice->m_pps->chromaQpOffset[0], QP_MAX_SPEC);
m_lumaLambda = x265_lambda2_tab[qp];
m_chromaLambda = x265_lambda2_tab[qpCb]; // Use Cb QP for SAO chroma
m_frame = frame;
m_lumaLambda = x265_lambda2_tab[qp];
m_chromaLambda = x265_lambda2_tab[qpCb]; // Use Cb QP for SAO chroma
m_frame = frame;
@@
-225,8
+228,8
@@
void SAO::processSaoCu(int addr, int typeIdx, int plane)
{
int x, y;
const CUData* cu = m_frame->m_encData->getPicCTU(addr);
{
int x, y;
const CUData* cu = m_frame->m_encData->getPicCTU(addr);
- pixel* rec = m_frame->m_reconPic
Yuv
->getPlaneAddr(plane, addr);
- intptr_t stride = plane ? m_frame->m_reconPic
Yuv->m_strideC : m_frame->m_reconPicYuv
->m_stride;
+ pixel* rec = m_frame->m_reconPic->getPlaneAddr(plane, addr);
+ intptr_t stride = plane ? m_frame->m_reconPic
->m_strideC : m_frame->m_reconPic
->m_stride;
uint32_t picWidth = m_param->sourceWidth;
uint32_t picHeight = m_param->sourceHeight;
int ctuWidth = g_maxCUSize;
uint32_t picWidth = m_param->sourceWidth;
uint32_t picHeight = m_param->sourceHeight;
int ctuWidth = g_maxCUSize;
@@
-436,7
+439,7
@@
void SAO::processSaoCu(int addr, int typeIdx, int plane)
/* Process SAO all units */
void SAO::processSaoUnitRow(SaoCtuParam* ctuParam, int idxY, int plane)
{
/* Process SAO all units */
void SAO::processSaoUnitRow(SaoCtuParam* ctuParam, int idxY, int plane)
{
- intptr_t stride = plane ? m_frame->m_reconPic
Yuv->m_strideC : m_frame->m_reconPicYuv
->m_stride;
+ intptr_t stride = plane ? m_frame->m_reconPic
->m_strideC : m_frame->m_reconPic
->m_stride;
uint32_t picWidth = m_param->sourceWidth;
int ctuWidth = g_maxCUSize;
int ctuHeight = g_maxCUSize;
uint32_t picWidth = m_param->sourceWidth;
int ctuWidth = g_maxCUSize;
int ctuHeight = g_maxCUSize;
@@
-449,12
+452,12
@@
void SAO::processSaoUnitRow(SaoCtuParam* ctuParam, int idxY, int plane)
if (!idxY)
{
if (!idxY)
{
- pixel* rec = m_frame->m_reconPic
Yuv
->m_picOrg[plane];
+ pixel* rec = m_frame->m_reconPic->m_picOrg[plane];
memcpy(m_tmpU1[plane], rec, sizeof(pixel) * picWidth);
}
int addr = idxY * m_numCuInWidth;
memcpy(m_tmpU1[plane], rec, sizeof(pixel) * picWidth);
}
int addr = idxY * m_numCuInWidth;
- pixel* rec = plane ? m_frame->m_reconPic
Yuv->getChromaAddr(plane, addr) : m_frame->m_reconPicYuv
->getLumaAddr(addr);
+ pixel* rec = plane ? m_frame->m_reconPic
->getChromaAddr(plane, addr) : m_frame->m_reconPic
->getLumaAddr(addr);
for (int i = 0; i < ctuHeight + 1; i++)
{
for (int i = 0; i < ctuHeight + 1; i++)
{
@@
-506,7
+509,7
@@
void SAO::processSaoUnitRow(SaoCtuParam* ctuParam, int idxY, int plane)
}
else if (idxX != (m_numCuInWidth - 1))
{
}
else if (idxX != (m_numCuInWidth - 1))
{
- rec = plane ? m_frame->m_reconPic
Yuv->getChromaAddr(plane, addr) : m_frame->m_reconPicYuv
->getLumaAddr(addr);
+ rec = plane ? m_frame->m_reconPic
->getChromaAddr(plane, addr) : m_frame->m_reconPic
->getLumaAddr(addr);
for (int i = 0; i < ctuHeight + 1; i++)
{
for (int i = 0; i < ctuHeight + 1; i++)
{
@@
-543,12
+546,12
@@
void SAO::copySaoUnit(SaoCtuParam* saoUnitDst, const SaoCtuParam* saoUnitSrc)
void SAO::calcSaoStatsCu(int addr, int plane)
{
int x, y;
void SAO::calcSaoStatsCu(int addr, int plane)
{
int x, y;
- CUData* cu = m_frame->m_encData->getPicCTU(addr);
- const pixel* fenc0 = m_frame->m_
origPicYuv
->getPlaneAddr(plane, addr);
- const pixel* rec0 = m_frame->m_reconPic
Yuv
->getPlaneAddr(plane, addr);
+
const
CUData* cu = m_frame->m_encData->getPicCTU(addr);
+ const pixel* fenc0 = m_frame->m_
fencPic
->getPlaneAddr(plane, addr);
+ const pixel* rec0 = m_frame->m_reconPic->getPlaneAddr(plane, addr);
const pixel* fenc;
const pixel* rec;
const pixel* fenc;
const pixel* rec;
- intptr_t stride = plane ? m_frame->m_reconPic
Yuv->m_strideC : m_frame->m_reconPicYuv
->m_stride;
+ intptr_t stride = plane ? m_frame->m_reconPic
->m_strideC : m_frame->m_reconPic
->m_stride;
uint32_t picWidth = m_param->sourceWidth;
uint32_t picHeight = m_param->sourceHeight;
int ctuWidth = g_maxCUSize;
uint32_t picWidth = m_param->sourceWidth;
uint32_t picHeight = m_param->sourceHeight;
int ctuWidth = g_maxCUSize;
@@
-789,10
+792,10
@@
void SAO::calcSaoStatsCu_BeforeDblk(Frame* frame, int idxX, int idxY)
int addr = idxX + m_numCuInWidth * idxY;
int x, y;
int addr = idxX + m_numCuInWidth * idxY;
int x, y;
- CUData* cu = frame->m_encData->getPicCTU(addr);
+
const
CUData* cu = frame->m_encData->getPicCTU(addr);
const pixel* fenc;
const pixel* rec;
const pixel* fenc;
const pixel* rec;
- intptr_t stride = m_frame->m_reconPic
Yuv
->m_stride;
+ intptr_t stride = m_frame->m_reconPic->m_stride;
uint32_t picWidth = m_param->sourceWidth;
uint32_t picHeight = m_param->sourceHeight;
int ctuWidth = g_maxCUSize;
uint32_t picWidth = m_param->sourceWidth;
uint32_t picHeight = m_param->sourceHeight;
int ctuWidth = g_maxCUSize;
@@
-826,7
+829,7
@@
void SAO::calcSaoStatsCu_BeforeDblk(Frame* frame, int idxX, int idxY)
{
if (plane == 1)
{
{
if (plane == 1)
{
- stride = frame->m_reconPic
Yuv
->m_strideC;
+ stride = frame->m_reconPic->m_strideC;
picWidth >>= m_hChromaShift;
picHeight >>= m_vChromaShift;
ctuWidth >>= m_hChromaShift;
picWidth >>= m_hChromaShift;
picHeight >>= m_vChromaShift;
ctuWidth >>= m_hChromaShift;
@@
-845,8
+848,8
@@
void SAO::calcSaoStatsCu_BeforeDblk(Frame* frame, int idxX, int idxY)
stats = m_offsetOrgPreDblk[addr][plane][SAO_BO];
count = m_countPreDblk[addr][plane][SAO_BO];
stats = m_offsetOrgPreDblk[addr][plane][SAO_BO];
count = m_countPreDblk[addr][plane][SAO_BO];
- const pixel* fenc0 = m_frame->m_
origPicYuv
->getPlaneAddr(plane, addr);
- const pixel* rec0 = m_frame->m_reconPic
Yuv
->getPlaneAddr(plane, addr);
+ const pixel* fenc0 = m_frame->m_
fencPic
->getPlaneAddr(plane, addr);
+ const pixel* rec0 = m_frame->m_reconPic->getPlaneAddr(plane, addr);
fenc = fenc0;
rec = rec0;
fenc = fenc0;
rec = rec0;