Commit 7235992f authored by Urvang Joshi's avatar Urvang Joshi

AV1FwdTxfm2d.RunFwdAccuracyCheck: Add TX64X64 test.

Also, updated the reference 2D transform function for this to zero out
3/4th of the coeffs and repack the 1/4th non-zeros.

BUG=aomedia:1114

Change-Id: I3dd091689a080e45db0ac4bb2595e705b63f9649
parent 88710445
......@@ -169,7 +169,10 @@ const AV1FwdTxfm2dParam av1_fwd_txfm2d_param_c[] = {
AV1FwdTxfm2dParam(DCT_DCT, TX_32X32, 70, 7),
AV1FwdTxfm2dParam(ADST_DCT, TX_32X32, 70, 7),
AV1FwdTxfm2dParam(DCT_ADST, TX_32X32, 70, 7),
AV1FwdTxfm2dParam(ADST_ADST, TX_32X32, 70, 7)
AV1FwdTxfm2dParam(ADST_ADST, TX_32X32, 70, 7),
#if CONFIG_TX64X64
AV1FwdTxfm2dParam(DCT_DCT, TX_64X64, 70, 7),
#endif // CONFIG_TX64X64
};
INSTANTIATE_TEST_CASE_P(C, AV1FwdTxfm2d,
......
......@@ -132,6 +132,21 @@ void reference_hybrid_2d(double *in, double *out, int size, int type0,
for (int r = 0; r < size; r++) {
reference_hybrid_1d(tempOut + r * size, out + r * size, size, type1);
}
#if CONFIG_TX64X64
if (size == 64) { // tx_size == TX64X64
// Zero out top-right 32x32 area.
for (int row = 0; row < 32; ++row) {
memset(out + row * 64 + 32, 0, 32 * sizeof(*out));
}
// Zero out the bottom 64x32 area.
memset(out + 32 * 64, 0, 32 * 64 * sizeof(*out));
// Re-pack non-zero coeffs in the first 32x32 indices.
for (int row = 1; row < 32; ++row) {
memcpy(out + row * 32, out + row * 64, 32 * sizeof(*out));
}
}
#endif // CONFIG_TX_64X64
delete[] tempOut;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment