RD4 static method

void RD4(
  1. InputBuffer dst
)

Implementation

static void RD4(InputBuffer dst) {
  final I = dst[-1 + 0 * VP8.BPS];
  final J = dst[-1 + 1 * VP8.BPS];
  final K = dst[-1 + 2 * VP8.BPS];
  final L = dst[-1 + 3 * VP8.BPS];
  final X = dst[-1 - VP8.BPS];
  final A = dst[0 - VP8.BPS];
  final B = dst[1 - VP8.BPS];
  final C = dst[2 - VP8.BPS];
  final D = dst[3 - VP8.BPS];

  dst[DST(0, 3)] = AVG3(J, K, L);
  dst[DST(0, 2)] = dst[DST(1, 3)] = AVG3(I, J, K);
  dst[DST(0, 1)] = dst[DST(1, 2)] = dst[DST(2, 3)] = AVG3(X, I, J);
  dst[DST(0, 0)] =
      dst[DST(1, 1)] = dst[DST(2, 2)] = dst[DST(3, 3)] = AVG3(A, X, I);
  dst[DST(1, 0)] = dst[DST(2, 1)] = dst[DST(3, 2)] = AVG3(B, A, X);
  dst[DST(2, 0)] = dst[DST(3, 1)] = AVG3(C, B, A);
  dst[DST(3, 0)] = AVG3(D, C, B);
}