635{
637 int32_t currWinIdx, prevWinIdx;
638 int32_t i, j, nBlocksOut, nonZero, mOut;
640
644
645 mOut = 0;
646
647
649
652 currWinIdx = 0;
653
655 if (i < bc->prevWinSwitch)
656 prevWinIdx = 0;
657
658
659 mOut |=
IMDCT36(xCurr, xPrev, &(
y[0][i]), currWinIdx, prevWinIdx, i, bc->
gbIn);
660 xCurr += 18;
661 xPrev += 9;
662 }
663
664
667
669 if (i < bc->prevWinSwitch)
670 prevWinIdx = 0;
671
672 mOut |=
IMDCT12x3(xCurr, xPrev, &(
y[0][i]), prevWinIdx, i, bc->
gbIn);
673 xCurr += 18;
674 xPrev += 9;
675 }
676 nBlocksOut = i;
677
678
681 if (i < bc->prevWinSwitch)
682 prevWinIdx = 0;
684
685 nonZero = 0;
686
688 for (j = 0; j < 9; j++) {
689 xp = xPrevWin[2*j+0] * 4L;
690 nonZero |= xp;
693
694
695 xp = xPrevWin[2*j+1] * 4L;
696 xp = (xp ^ sign_bit) + (i & 0x01);
697 nonZero |= xp;
700
701 xPrev[j] = 0;
702 }
703 xPrev += 9;
704 if (nonZero)
705 nBlocksOut = i;
706 }
707
708
709 for ( ; i < 32; i++) {
710 for (j = 0; j < 18; j++)
712 }
713
715
716 return nBlocksOut;
717}
__inline int32_t FASTABS(int32_t x) FL_NOEXCEPT
Absolute value of x.
static void WinPrevious(int32_t *xPrev, int32_t *xPrevWin, int32_t btPrev) FL_NOEXCEPT
static int32_t IMDCT12x3(int32_t *xCurr, int32_t *xPrev, int32_t *y, int32_t btPrev, int32_t blockIdx, int32_t gb) FL_NOEXCEPT
__inline int32_t CLZ(int32_t x) FL_NOEXCEPT
Leading zeros.
static int32_t IMDCT36(int32_t *xCurr, int32_t *xPrev, int32_t *y, int32_t btCurr, int32_t btPrev, int32_t blockIdx, int32_t gb) FL_NOEXCEPT