MCPcopy Create free account
hub / github.com/cisco/openh264 / DyadicBilinearDownsampler_ref

Function DyadicBilinearDownsampler_ref

test/processing/ProcessUT_DownSample.cpp:11–31  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9using namespace WelsVP;
10
11void DyadicBilinearDownsampler_ref (uint8_t* pDst, const int32_t kiDstStride,
12 uint8_t* pSrc, const int32_t kiSrcStride,
13 const int32_t kiSrcWidth, const int32_t kiSrcHeight) {
14 uint8_t* pDstLine = pDst;
15 uint8_t* pSrcLine = pSrc;
16 const int32_t kiSrcStridex2 = kiSrcStride << 1;
17 const int32_t kiDstWidth = kiSrcWidth >> 1;
18 const int32_t kiDstHeight = kiSrcHeight >> 1;
19
20 for (int32_t j = 0; j < kiDstHeight; j ++) {
21 for (int32_t i = 0; i < kiDstWidth; i ++) {
22 const int32_t kiSrcX = i << 1;
23 const int32_t kiTempRow1 = (pSrcLine[kiSrcX] + pSrcLine[kiSrcX + 1] + 1) >> 1;
24 const int32_t kiTempRow2 = (pSrcLine[kiSrcX + kiSrcStride] + pSrcLine[kiSrcX + kiSrcStride + 1] + 1) >> 1;
25
26 pDstLine[i] = (uint8_t) ((kiTempRow1 + kiTempRow2 + 1) >> 1);
27 }
28 pDstLine += kiDstStride;
29 pSrcLine += kiSrcStridex2;
30 }
31}
32
33void DyadicBilinearDownsampler2_ref (uint8_t* pDst, const int32_t kiDstStride,
34 const uint8_t* pSrc, const int32_t kiSrcStride,

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected