Home | History | Annotate | Download | only in dsp

Lines Matching refs:top

367 #define VERTICAL_PRED(DST, TOP, SIZE)                                          \
369 const uint8_t* (TOP)) { \
371 if ((TOP)) { \
372 for (j = 0; j < (SIZE); ++j) memcpy((DST) + j * BPS, (TOP), (SIZE)); \
378 VERTICAL_PRED(dst, top, 8)
379 VERTICAL_PRED(dst, top, 16)
417 #define CLIP_8B_TO_DST(DST, LEFT, TOP, SIZE) do { \
422 "ulw %[temp0], 0(%[top]) \n\t" \
423 "ulw %[temp1], 4(%[top]) \n\t" \
429 "ulw %[temp0], 8(%[top]) \n\t" \
430 "ulw %[temp1], 12(%[top]) \n\t" \
437 : [left_1]"r"(left_1), [top]"r"((TOP)), [dst]"r"((DST)) \
442 #define CLIP_TO_DST(DST, LEFT, TOP, SIZE) do { \
446 CLIP_8B_TO_DST((DST), (LEFT), (TOP), (SIZE)); \
451 #define TRUE_MOTION(DST, LEFT, TOP, SIZE) \
453 const uint8_t* (TOP)) { \
455 if ((TOP) != NULL) { \
456 CLIP_TO_DST((DST), (LEFT), (TOP), (SIZE)); \
462 /* is equivalent to VE prediction where you just copy the top samples. */ \
463 /* Note that if top samples are not available, the default value is */ \
465 if ((TOP) != NULL) { \
466 VerticalPred##SIZE((DST), (TOP)); \
473 TRUE_MOTION(dst, left, top, 8)
474 TRUE_MOTION(dst, left, top, 16)
482 const uint8_t* top) {
487 "beqz %[top], 2f \n\t"
488 LOAD_WITH_OFFSET_X4(temp0, temp1, temp2, temp3, top,
537 : [left]"r"(left), [top]"r"(top)
545 const uint8_t* top) {
550 "beqz %[top], 2f \n\t"
551 "ulw %[temp0], 0(%[top]) \n\t"
552 "ulw %[temp1], 4(%[top]) \n\t"
582 : [left]"r"(left), [top]"r"(top)
589 static void DC4(uint8_t* dst, const uint8_t* top) {
592 "ulw %[temp0], 0(%[top]) \n\t"
593 "ulw %[temp1], -5(%[top]) \n\t"
605 : [top]"r"(top), [dst]"r"(dst)
610 static void TM4(uint8_t* dst, const uint8_t* top) {
614 "lbu %[temp1], 0(%[top]) \n\t"
615 "lbu %[a10], 1(%[top]) \n\t"
616 "lbu %[temp2], 2(%[top]) \n\t"
617 "lbu %[a32], 3(%[top]) \n\t"
618 "ulw %[temp0], -5(%[top]) \n\t"
619 "lbu %[temp4], -1(%[top]) \n\t"
660 : [c35]"r"(c35), [top]"r"(top), [dst]"r"(dst)
665 static void VE4(uint8_t* dst, const uint8_t* top) {
668 "ulw %[temp0], -1(%[top]) \n\t"
669 "ulh %[temp1], 3(%[top]) \n\t"
691 : [top]"r"(top), [dst]"r"(dst)
696 static void HE4(uint8_t* dst, const uint8_t* top) {
699 "ulw %[temp0], -4(%[top]) \n\t"
700 "lbu %[temp1], -5(%[top]) \n\t"
727 : [top]"r"(top), [dst]"r"(dst)
732 static void RD4(uint8_t* dst, const uint8_t* top) {
736 "ulw %[temp0], -5(%[top]) \n\t"
737 "ulw %[temp1], -1(%[top]) \n\t"
757 "lbu %[temp0], 3(%[top]) \n\t"
758 "lbu %[temp1], 2(%[top]) \n\t"
759 "lbu %[temp2], 1(%[top]) \n\t"
776 : [top]"r"(top), [dst]"r"(dst)
781 static void VR4(uint8_t* dst, const uint8_t* top) {
785 "ulw %[temp0], -4(%[top]) \n\t"
786 "ulw %[temp1], 0(%[top]) \n\t"
826 : [top]"r"(top), [dst]"r"(dst)
831 static void LD4(uint8_t* dst, const uint8_t* top) {
835 "ulw %[temp0], 0(%[top]) \n\t"
836 "ulw %[temp1], 4(%[top]) \n\t"
873 : [top]"r"(top), [dst]"r"(dst)
878 static void VL4(uint8_t* dst, const uint8_t* top) {
882 "ulw %[temp0], 0(%[top]) \n\t"
883 "ulw %[temp1], 4(%[top]) \n\t"
922 : [top]"r"(top), [dst]"r"(dst)
927 static void HD4(uint8_t* dst, const uint8_t* top) {
931 "ulw %[temp0], -5(%[top]) \n\t"
932 "ulw %[temp1], -1(%[top]) \n\t"
970 : [top]"r"(top), [dst]"r"(dst)
975 static void HU4(uint8_t* dst, const uint8_t* top) {
978 "ulw %[temp0], -5(%[top]) \n\t"
1006 : [top]"r"(top), [dst]"r"(dst)
1015 const uint8_t* top) {
1017 DCMode8(C8DC8 + dst, left, top);
1018 VerticalPred8(C8VE8 + dst, top);
1020 TrueMotion8(C8TM8 + dst, left, top);
1023 if (top) top += 8;
1025 DCMode8(C8DC8 + dst, left, top);
1026 VerticalPred8(C8VE8 + dst, top);
1028 TrueMotion8(C8TM8 + dst, left, top);
1035 const uint8_t* left, const uint8_t* top) {
1036 DCMode16(I16DC16 + dst, left, top);
1037 VerticalPred16(I16VE16 + dst, top);
1039 TrueMotion16(I16TM16 + dst, left, top);
1042 // Left samples are top[-5 .. -2], top_left is top[-1], top are
1043 // located at top[0..3], and top right is top[4..7]
1044 static void Intra4Preds(uint8_t* dst, const uint8_t* top) {
1045 DC4(I4DC4 + dst, top);
1046 TM4(I4TM4 + dst, top);
1047 VE4(I4VE4 + dst, top);
1048 HE4(I4HE4 + dst, top);
1049 RD4(I4RD4 + dst, top);
1050 VR4(I4VR4 + dst, top);
1051 LD4(I4LD4 + dst, top);
1052 VL4(I4VL4 + dst, top);
1053 HD4(I4HD4 + dst, top);
1054 HU4(I4HU4 + dst, top);