Home | History | Annotate | Download | only in dsp

Lines Matching refs:DST

86   dst[(x) + (y) * BPS] = clip_8b(ref[(x) + (y) * BPS] + ((v) >> 3))
93 uint8_t* dst) {
125 static void ITransform(const uint8_t* ref, const int16_t* in, uint8_t* dst,
127 ITransformOne(ref, in, dst);
129 ITransformOne(ref + 4, in + 16, dst + 4);
198 #define DST(x, y) dst[(x) + (y) * BPS]
200 static WEBP_INLINE void Fill(uint8_t* dst, int value, int size) {
203 memset(dst + j * BPS, value, size);
207 static WEBP_INLINE void VerticalPred(uint8_t* dst,
211 for (j = 0; j < size; ++j) memcpy(dst + j * BPS, top, size);
213 Fill(dst, 127, size);
217 static WEBP_INLINE void HorizontalPred(uint8_t* dst,
222 memset(dst + j * BPS, left[j], size);
225 Fill(dst, 129, size);
229 static WEBP_INLINE void TrueMotion(uint8_t* dst, const uint8_t* left,
239 dst[x] = clip_table[top[x]];
241 dst += BPS;
244 HorizontalPred(dst, left, size);
252 VerticalPred(dst, top, size);
254 Fill(dst, 129, size);
259 static WEBP_INLINE void DCMode(uint8_t* dst, const uint8_t* left,
279 Fill(dst, DC, size);
285 static void IntraChromaPreds(uint8_t* dst, const uint8_t* left,
288 DCMode(C8DC8 + dst, left, top, 8, 8, 4);
289 VerticalPred(C8VE8 + dst, top, 8);
290 HorizontalPred(C8HE8 + dst, left, 8);
291 TrueMotion(C8TM8 + dst, left, top, 8);
293 dst += 8;
296 DCMode(C8DC8 + dst, left, top, 8, 8, 4);
297 VerticalPred(C8VE8 + dst, top, 8);
298 HorizontalPred(C8HE8 + dst, left, 8);
299 TrueMotion(C8TM8 + dst, left, top, 8);
305 static void Intra16Preds(uint8_t* dst,
307 DCMode(I16DC16 + dst, left, top, 16, 16, 5);
308 VerticalPred(I16VE16 + dst, top, 16);
309 HorizontalPred(I16HE16 + dst, left, 16);
310 TrueMotion(I16TM16 + dst, left, top, 16);
319 static void VE4(uint8_t* dst, const uint8_t* top) { // vertical
328 memcpy(dst + i * BPS, vals, 4);
332 static void HE4(uint8_t* dst, const uint8_t* top) { // horizontal
338 *(uint32_t*)(dst + 0 * BPS) = 0x01010101U * AVG3(X, I, J);
339 *(uint32_t*)(dst + 1 * BPS) = 0x01010101U * AVG3(I, J, K);
340 *(uint32_t*)(dst + 2 * BPS) = 0x01010101U * AVG3(J, K, L);
341 *(uint32_t*)(dst + 3 * BPS) = 0x01010101U * AVG3(K, L, L);
344 static void DC4(uint8_t* dst, const uint8_t* top) {
348 Fill(dst, dc >> 3, 4);
351 static void RD4(uint8_t* dst, const uint8_t* top) {
361 DST(0, 3) = AVG3(J, K, L);
362 DST(0, 2) = DST(1, 3) = AVG3(I, J, K);
363 DST(0, 1) = DST(1, 2) = DST(2, 3) = AVG3(X, I, J);
364 DST(0, 0) = DST(1, 1) = DST(2, 2) = DST(3, 3) = AVG3(A, X, I);
365 DST(1, 0) = DST(2, 1) = DST(3, 2) = AVG3(B, A, X);
366 DST(2, 0) = DST(3, 1) = AVG3(C, B, A);
367 DST(3, 0) = AVG3(D, C, B);
370 static void LD4(uint8_t* dst, const uint8_t* top) {
379 DST(0, 0) = AVG3(A, B, C);
380 DST(1, 0) = DST(0, 1) = AVG3(B, C, D);
381 DST(2, 0) = DST(1, 1) = DST(0, 2) = AVG3(C, D, E);
382 DST(3, 0) = DST(2, 1) = DST(1, 2) = DST(0, 3) = AVG3(D, E, F);
383 DST(3, 1) = DST(2, 2) = DST(1, 3) = AVG3(E, F, G);
384 DST(3, 2) = DST(2, 3) = AVG3(F, G, H);
385 DST(3, 3) = AVG3(G, H, H);
388 static void VR4(uint8_t* dst, const uint8_t* top) {
397 DST(0, 0) = DST(1, 2) = AVG2(X, A);
398 DST(1, 0) = DST(2, 2) = AVG2(A, B);
399 DST(2, 0) = DST(3, 2) = AVG2(B, C);
400 DST(3, 0) = AVG2(C, D);
402 DST(0, 3) = AVG3(K, J, I);
403 DST(0, 2) = AVG3(J, I, X);
404 DST(0, 1) = DST(1, 3) = AVG3(I, X, A);
405 DST(1, 1) = DST(2, 3) = AVG3(X, A, B);
406 DST(2, 1) = DST(3, 3) = AVG3(A, B, C);
407 DST(3, 1) = AVG3(B, C, D);
410 static void VL4(uint8_t* dst, const uint8_t* top) {
419 DST(0, 0) = AVG2(A, B);
420 DST(1, 0) = DST(0, 2) = AVG2(B, C);
421 DST(2, 0) = DST(1, 2) = AVG2(C, D);
422 DST(3, 0) = DST(2, 2) = AVG2(D, E);
424 DST(0, 1) = AVG3(A, B, C);
425 DST(1, 1) = DST(0, 3) = AVG3(B, C, D);
426 DST(2, 1) = DST(1, 3) = AVG3(C, D, E);
427 DST(3, 1) = DST(2, 3) = AVG3(D, E, F);
428 DST(3, 2) = AVG3(E, F, G);
429 DST(3, 3) = AVG3(F, G, H);
432 static void HU4(uint8_t* dst, const uint8_t* top) {
437 DST(0, 0) = AVG2(I, J);
438 DST(2, 0) = DST(0, 1) = AVG2(J, K);
439 DST(2, 1) = DST(0, 2) = AVG2(K, L);
440 DST(1, 0) = AVG3(I, J, K);
441 DST(3, 0) = DST(1, 1) = AVG3(J, K, L);
442 DST(3, 1) = DST(1, 2) = AVG3(K, L, L);
443 DST(3, 2) = DST(2, 2) =
444 DST(0, 3) = DST(1, 3) = DST(2, 3) = DST(3, 3) = L;
447 static void HD4(uint8_t* dst, const uint8_t* top) {
457 DST(0, 0) = DST(2, 1) = AVG2(I, X);
458 DST(0, 1) = DST(2, 2) = AVG2(J, I);
459 DST(0, 2) = DST(2, 3) = AVG2(K, J);
460 DST(0, 3) = AVG2(L, K);
462 DST(3, 0) = AVG3(A, B, C);
463 DST(2, 0) = AVG3(X, A, B);
464 DST(1, 0) = DST(3, 1) = AVG3(I, X, A);
465 DST(1, 1) = DST(3, 2) = AVG3(J, I, X);
466 DST(1, 2) = DST(3, 3) = AVG3(K, J, I);
467 DST(1, 3) = AVG3(L, K, J);
470 static void TM4(uint8_t* dst, const uint8_t* top) {
476 dst[x] = clip_table[top[x]];
478 dst += BPS;
482 #undef DST
488 static void Intra4Preds(uint8_t* dst, const uint8_t* top) {
489 DC4(I4DC4 + dst, top);
490 TM4(I4TM4 + dst, top);
491 VE4(I4VE4 + dst, top);
492 HE4(I4HE4 + dst, top);
493 RD4(I4RD4 + dst, top);
494 VR4(I4VR4 + dst, top);
495 LD4(I4LD4 + dst, top);
496 VL4(I4VL4 + dst, top);
497 HD4(I4HD4 + dst, top);
498 HU4(I4HU4 + dst, top);
657 static WEBP_INLINE void Copy(const uint8_t* src, uint8_t* dst, int size) {
660 memcpy(dst, src, size);
662 dst += BPS;
666 static void Copy4x4(const uint8_t* src, uint8_t* dst) { Copy(src, dst, 4); }