Home | History | Annotate | Download | only in dsp

Lines Matching refs:DST

88   dst[(x) + (y) * BPS] = clip_8b(ref[(x) + (y) * BPS] + ((v) >> 3))
95 uint8_t* dst) {
127 static void ITransform(const uint8_t* ref, const int16_t* in, uint8_t* dst,
129 ITransformOne(ref, in, dst);
131 ITransformOne(ref + 4, in + 16, dst + 4);
227 #define DST(x, y) dst[(x) + (y) * BPS]
229 static WEBP_INLINE void Fill(uint8_t* dst, int value, int size) {
232 memset(dst + j * BPS, value, size);
236 static WEBP_INLINE void VerticalPred(uint8_t* dst,
240 for (j = 0; j < size; ++j) memcpy(dst + j * BPS, top, size);
242 Fill(dst, 127, size);
246 static WEBP_INLINE void HorizontalPred(uint8_t* dst,
251 memset(dst + j * BPS, left[j], size);
254 Fill(dst, 129, size);
258 static WEBP_INLINE void TrueMotion(uint8_t* dst, const uint8_t* left,
268 dst[x] = clip_table[top[x]];
270 dst += BPS;
273 HorizontalPred(dst, left, size);
281 VerticalPred(dst, top, size);
283 Fill(dst, 129, size);
288 static WEBP_INLINE void DCMode(uint8_t* dst, const uint8_t* left,
308 Fill(dst, DC, size);
314 static void IntraChromaPreds(uint8_t* dst, const uint8_t* left,
317 DCMode(C8DC8 + dst, left, top, 8, 8, 4);
318 VerticalPred(C8VE8 + dst, top, 8);
319 HorizontalPred(C8HE8 + dst, left, 8);
320 TrueMotion(C8TM8 + dst, left, top, 8);
322 dst += 8;
325 DCMode(C8DC8 + dst, left, top, 8, 8, 4);
326 VerticalPred(C8VE8 + dst, top, 8);
327 HorizontalPred(C8HE8 + dst, left, 8);
328 TrueMotion(C8TM8 + dst, left, top, 8);
334 static void Intra16Preds(uint8_t* dst,
336 DCMode(I16DC16 + dst, left, top, 16, 16, 5);
337 VerticalPred(I16VE16 + dst, top, 16);
338 HorizontalPred(I16HE16 + dst, left, 16);
339 TrueMotion(I16TM16 + dst, left, top, 16);
348 static void VE4(uint8_t* dst, const uint8_t* top) { // vertical
357 memcpy(dst + i * BPS, vals, 4);
361 static void HE4(uint8_t* dst, const uint8_t* top) { // horizontal
367 *(uint32_t*)(dst + 0 * BPS) = 0x01010101U * AVG3(X, I, J);
368 *(uint32_t*)(dst + 1 * BPS) = 0x01010101U * AVG3(I, J, K);
369 *(uint32_t*)(dst + 2 * BPS) = 0x01010101U * AVG3(J, K, L);
370 *(uint32_t*)(dst + 3 * BPS) = 0x01010101U * AVG3(K, L, L);
373 static void DC4(uint8_t* dst, const uint8_t* top) {
377 Fill(dst, dc >> 3, 4);
380 static void RD4(uint8_t* dst, const uint8_t* top) {
390 DST(0, 3) = AVG3(J, K, L);
391 DST(0, 2) = DST(1, 3) = AVG3(I, J, K);
392 DST(0, 1) = DST(1, 2) = DST(2, 3) = AVG3(X, I, J);
393 DST(0, 0) = DST(1, 1) = DST(2, 2) = DST(3, 3) = AVG3(A, X, I);
394 DST(1, 0) = DST(2, 1) = DST(3, 2) = AVG3(B, A, X);
395 DST(2, 0) = DST(3, 1) = AVG3(C, B, A);
396 DST(3, 0) = AVG3(D, C, B);
399 static void LD4(uint8_t* dst, const uint8_t* top) {
408 DST(0, 0) = AVG3(A, B, C);
409 DST(1, 0) = DST(0, 1) = AVG3(B, C, D);
410 DST(2, 0) = DST(1, 1) = DST(0, 2) = AVG3(C, D, E);
411 DST(3, 0) = DST(2, 1) = DST(1, 2) = DST(0, 3) = AVG3(D, E, F);
412 DST(3, 1) = DST(2, 2) = DST(1, 3) = AVG3(E, F, G);
413 DST(3, 2) = DST(2, 3) = AVG3(F, G, H);
414 DST(3, 3) = AVG3(G, H, H);
417 static void VR4(uint8_t* dst, const uint8_t* top) {
426 DST(0, 0) = DST(1, 2) = AVG2(X, A);
427 DST(1, 0) = DST(2, 2) = AVG2(A, B);
428 DST(2, 0) = DST(3, 2) = AVG2(B, C);
429 DST(3, 0) = AVG2(C, D);
431 DST(0, 3) = AVG3(K, J, I);
432 DST(0, 2) = AVG3(J, I, X);
433 DST(0, 1) = DST(1, 3) = AVG3(I, X, A);
434 DST(1, 1) = DST(2, 3) = AVG3(X, A, B);
435 DST(2, 1) = DST(3, 3) = AVG3(A, B, C);
436 DST(3, 1) = AVG3(B, C, D);
439 static void VL4(uint8_t* dst, const uint8_t* top) {
448 DST(0, 0) = AVG2(A, B);
449 DST(1, 0) = DST(0, 2) = AVG2(B, C);
450 DST(2, 0) = DST(1, 2) = AVG2(C, D);
451 DST(3, 0) = DST(2, 2) = AVG2(D, E);
453 DST(0, 1) = AVG3(A, B, C);
454 DST(1, 1) = DST(0, 3) = AVG3(B, C, D);
455 DST(2, 1) = DST(1, 3) = AVG3(C, D, E);
456 DST(3, 1) = DST(2, 3) = AVG3(D, E, F);
457 DST(3, 2) = AVG3(E, F, G);
458 DST(3, 3) = AVG3(F, G, H);
461 static void HU4(uint8_t* dst, const uint8_t* top) {
466 DST(0, 0) = AVG2(I, J);
467 DST(2, 0) = DST(0, 1) = AVG2(J, K);
468 DST(2, 1) = DST(0, 2) = AVG2(K, L);
469 DST(1, 0) = AVG3(I, J, K);
470 DST(3, 0) = DST(1, 1) = AVG3(J, K, L);
471 DST(3, 1) = DST(1, 2) = AVG3(K, L, L);
472 DST(3, 2) = DST(2, 2) =
473 DST(0, 3) = DST(1, 3) = DST(2, 3) = DST(3, 3) = L;
476 static void HD4(uint8_t* dst, const uint8_t* top) {
486 DST(0, 0) = DST(2, 1) = AVG2(I, X);
487 DST(0, 1) = DST(2, 2) = AVG2(J, I);
488 DST(0, 2) = DST(2, 3) = AVG2(K, J);
489 DST(0, 3) = AVG2(L, K);
491 DST(3, 0) = AVG3(A, B, C);
492 DST(2, 0) = AVG3(X, A, B);
493 DST(1, 0) = DST(3, 1) = AVG3(I, X, A);
494 DST(1, 1) = DST(3, 2) = AVG3(J, I, X);
495 DST(1, 2) = DST(3, 3) = AVG3(K, J, I);
496 DST(1, 3) = AVG3(L, K, J);
499 static void TM4(uint8_t* dst, const uint8_t* top) {
505 dst[x] = clip_table[top[x]];
507 dst += BPS;
511 #undef DST
517 static void Intra4Preds(uint8_t* dst, const uint8_t* top) {
518 DC4(I4DC4 + dst, top);
519 TM4(I4TM4 + dst, top);
520 VE4(I4VE4 + dst, top);
521 HE4(I4HE4 + dst, top);
522 RD4(I4RD4 + dst, top);
523 VR4(I4VR4 + dst, top);
524 LD4(I4LD4 + dst, top);
525 VL4(I4VL4 + dst, top);
526 HD4(I4HD4 + dst, top);
527 HU4(I4HU4 + dst, top);
658 static WEBP_INLINE void Copy(const uint8_t* src, uint8_t* dst, int size) {
661 memcpy(dst, src, size);
663 dst += BPS;
667 static void Copy4x4(const uint8_t* src, uint8_t* dst) { Copy(src, dst, 4); }