Commit ff37688a authored by Ronald S. Bultje's avatar Ronald S. Bultje
Browse files

Fix block reconstruction with sb8x8 enabled.

The encoder reconstruction is now correct. Decoder to follow shortly.

Change-Id: Iedf98cdaebb4ca1256c7714cad7024a75853ad6a
Showing with 7 additions and 1 deletion
...@@ -31,9 +31,10 @@ static INLINE void recon(int rows, int cols, ...@@ -31,9 +31,10 @@ static INLINE void recon(int rows, int cols,
void vp9_recon_b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, void vp9_recon_b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr,
int stride) { int stride) {
assert(pred_ptr == dst_ptr); assert(pred_ptr == dst_ptr);
recon(4, 4, diff_ptr, 16, dst_ptr, stride); recon(4, 4, diff_ptr, 16 >> CONFIG_SB8X8, dst_ptr, stride);
} }
#if !CONFIG_SB8X8
void vp9_recon_uv_b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, void vp9_recon_uv_b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr,
int stride) { int stride) {
assert(pred_ptr == dst_ptr); assert(pred_ptr == dst_ptr);
...@@ -51,6 +52,7 @@ void vp9_recon2b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, ...@@ -51,6 +52,7 @@ void vp9_recon2b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr,
assert(pred_ptr == dst_ptr); assert(pred_ptr == dst_ptr);
recon(4, 8, diff_ptr, 8, dst_ptr, stride); recon(4, 8, diff_ptr, 8, dst_ptr, stride);
} }
#endif
static void recon_plane(MACROBLOCKD *xd, BLOCK_SIZE_TYPE bsize, int plane) { static void recon_plane(MACROBLOCKD *xd, BLOCK_SIZE_TYPE bsize, int plane) {
const int bw = 4 << (b_width_log2(bsize) - xd->plane[plane].subsampling_x); const int bw = 4 << (b_width_log2(bsize) - xd->plane[plane].subsampling_x);
......
...@@ -63,6 +63,8 @@ specialize vp9_copy_mem8x4 mmx ...@@ -63,6 +63,8 @@ specialize vp9_copy_mem8x4 mmx
prototype void vp9_recon_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride" prototype void vp9_recon_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
specialize vp9_recon_b specialize vp9_recon_b
if [ "$CONFIG_SB8X8" != "yes" ]; then
prototype void vp9_recon_uv_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride" prototype void vp9_recon_uv_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
specialize vp9_recon_uv_b specialize vp9_recon_uv_b
...@@ -76,6 +78,8 @@ prototype void vp9_recon4b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_p ...@@ -76,6 +78,8 @@ prototype void vp9_recon4b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_p
specialize vp9_recon4b specialize vp9_recon4b
# specialize vp9_recon4b sse2 # specialize vp9_recon4b sse2
fi
prototype void vp9_recon_sb "struct macroblockd *x, enum BLOCK_SIZE_TYPE bsize" prototype void vp9_recon_sb "struct macroblockd *x, enum BLOCK_SIZE_TYPE bsize"
specialize vp9_recon_sb specialize vp9_recon_sb
......
Supports Markdown
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