|
|
@@ -2329,21 +2329,40 @@ decode_intra_mb: |
|
|
|
if (CHROMA444(h) && IS_8x8DCT(mb_type)){ |
|
|
|
int i; |
|
|
|
uint8_t *nnz_cache = sl->non_zero_count_cache; |
|
|
|
for (i = 0; i < 2; i++){ |
|
|
|
if (sl->left_type[LEFT(i)] && !IS_8x8DCT(sl->left_type[LEFT(i)])) { |
|
|
|
nnz_cache[3+8* 1 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 2 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 6 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 7 + 2*8*i]= |
|
|
|
nnz_cache[3+8*11 + 2*8*i]= |
|
|
|
nnz_cache[3+8*12 + 2*8*i]= IS_INTRA(mb_type) ? 64 : 0; |
|
|
|
if (h->x264_build < 151U) { |
|
|
|
for (i = 0; i < 2; i++){ |
|
|
|
if (sl->left_type[LEFT(i)] && !IS_8x8DCT(sl->left_type[LEFT(i)])) { |
|
|
|
nnz_cache[3+8* 1 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 2 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 6 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 7 + 2*8*i]= |
|
|
|
nnz_cache[3+8*11 + 2*8*i]= |
|
|
|
nnz_cache[3+8*12 + 2*8*i]= IS_INTRA(mb_type) ? 64 : 0; |
|
|
|
} |
|
|
|
} |
|
|
|
if (sl->top_type && !IS_8x8DCT(sl->top_type)){ |
|
|
|
uint32_t top_empty = !IS_INTRA(mb_type) ? 0 : 0x40404040; |
|
|
|
AV_WN32A(&nnz_cache[4+8* 0], top_empty); |
|
|
|
AV_WN32A(&nnz_cache[4+8* 5], top_empty); |
|
|
|
AV_WN32A(&nnz_cache[4+8*10], top_empty); |
|
|
|
} |
|
|
|
} else { |
|
|
|
for (i = 0; i < 2; i++){ |
|
|
|
if (sl->left_type[LEFT(i)] && !IS_8x8DCT(sl->left_type[LEFT(i)])) { |
|
|
|
nnz_cache[3+8* 1 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 2 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 6 + 2*8*i]= |
|
|
|
nnz_cache[3+8* 7 + 2*8*i]= |
|
|
|
nnz_cache[3+8*11 + 2*8*i]= |
|
|
|
nnz_cache[3+8*12 + 2*8*i]= !IS_INTRA_PCM(sl->left_type[LEFT(i)]) ? 0 : 64; |
|
|
|
} |
|
|
|
} |
|
|
|
if (sl->top_type && !IS_8x8DCT(sl->top_type)){ |
|
|
|
uint32_t top_empty = !IS_INTRA_PCM(sl->top_type) ? 0 : 0x40404040; |
|
|
|
AV_WN32A(&nnz_cache[4+8* 0], top_empty); |
|
|
|
AV_WN32A(&nnz_cache[4+8* 5], top_empty); |
|
|
|
AV_WN32A(&nnz_cache[4+8*10], top_empty); |
|
|
|
} |
|
|
|
} |
|
|
|
if (sl->top_type && !IS_8x8DCT(sl->top_type)){ |
|
|
|
uint32_t top_empty = !IS_INTRA(mb_type) ? 0 : 0x40404040; |
|
|
|
AV_WN32A(&nnz_cache[4+8* 0], top_empty); |
|
|
|
AV_WN32A(&nnz_cache[4+8* 5], top_empty); |
|
|
|
AV_WN32A(&nnz_cache[4+8*10], top_empty); |
|
|
|
} |
|
|
|
} |
|
|
|
h->cur_pic.mb_type[mb_xy] = mb_type; |
|
|
|