Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
external
libvpx
Commits
5926e7c0
Commit
5926e7c0
authored
Jul 17, 2014
by
Alex Converse
Browse files
Remove unfinished VP9 alpha channel.
Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
parent
765485ca
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
49 additions
and
159 deletions
+49
-159
configure
configure
+0
-1
vp9/common/vp9_blockd.c
vp9/common/vp9_blockd.c
+0
-6
vp9/common/vp9_blockd.h
vp9/common/vp9_blockd.h
+0
-4
vp9/common/vp9_enums.h
vp9/common/vp9_enums.h
+3
-3
vp9/common/vp9_onyxc_int.h
vp9/common/vp9_onyxc_int.h
+0
-7
vp9/common/vp9_postproc.c
vp9/common/vp9_postproc.c
+14
-26
vp9/decoder/vp9_decodeframe.c
vp9/decoder/vp9_decodeframe.c
+6
-2
vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_bitstream.c
+2
-2
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodeframe.c
+2
-4
vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_encoder.c
+16
-35
vp9/encoder/vp9_encoder.h
vp9/encoder/vp9_encoder.h
+2
-3
vp9/encoder/vp9_extend.c
vp9/encoder/vp9_extend.c
+0
-12
vp9/encoder/vp9_quantize.c
vp9/encoder/vp9_quantize.c
+0
-27
vp9/encoder/vp9_quantize.h
vp9/encoder/vp9_quantize.h
+0
-7
vp9/encoder/vp9_rd.c
vp9/encoder/vp9_rd.c
+0
-4
vp9/vp9_dx_iface.c
vp9/vp9_dx_iface.c
+2
-2
vp9/vp9_iface_common.h
vp9/vp9_iface_common.h
+2
-14
No files found.
configure
View file @
5926e7c0
...
...
@@ -271,7 +271,6 @@ HAVE_LIST="
unistd_h
"
EXPERIMENT_LIST
=
"
alpha
multiple_arf
spatial_svc
denoising
...
...
vp9/common/vp9_blockd.c
View file @
5926e7c0
...
...
@@ -146,10 +146,4 @@ void vp9_setup_block_planes(MACROBLOCKD *xd, int ss_x, int ss_y) {
xd
->
plane
[
i
].
subsampling_x
=
i
?
ss_x
:
0
;
xd
->
plane
[
i
].
subsampling_y
=
i
?
ss_y
:
0
;
}
#if CONFIG_ALPHA
// TODO(jkoleszar): Using the Y w/h for now
xd
->
plane
[
3
].
plane_type
=
PLANE_TYPE_Y
;
xd
->
plane
[
3
].
subsampling_x
=
0
;
xd
->
plane
[
3
].
subsampling_y
=
0
;
#endif
}
vp9/common/vp9_blockd.h
View file @
5926e7c0
...
...
@@ -168,11 +168,7 @@ enum mv_precision {
MV_PRECISION_Q4
};
#if CONFIG_ALPHA
enum
{
MAX_MB_PLANE
=
4
};
#else
enum
{
MAX_MB_PLANE
=
3
};
#endif
struct
buf_2d
{
uint8_t
*
buf
;
...
...
vp9/common/vp9_enums.h
View file @
5926e7c0
...
...
@@ -27,10 +27,10 @@ extern "C" {
// Bitstream profiles indicated by 2-3 bits in the uncompressed header.
// 00: Profile 0. 8-bit 4:2:0 only.
// 10: Profile 1. Adds 4:4:4, 4:2:2, a
lpha
to Profile 0.
// 10: Profile 1. Adds 4:4:4, 4:2:2, a
nd 4:4:0
to Profile 0.
// 01: Profile 2. Supports 10-bit and 12-bit color only, with 4:2:0 sampling.
// 110: Profile 3. Supports 10-bit and 12-bit color only, with 4:2:2/4:4:4
// sampling
and alpha
.
// 110: Profile 3. Supports 10-bit and 12-bit color only, with 4:2:2/4:4:4
/4:4:0
//
sub
sampling.
// 111: Undefined profile.
typedef
enum
BITSTREAM_PROFILE
{
PROFILE_0
,
...
...
vp9/common/vp9_onyxc_int.h
View file @
5926e7c0
...
...
@@ -68,9 +68,6 @@ typedef struct VP9Common {
DECLARE_ALIGNED
(
16
,
int16_t
,
y_dequant
[
QINDEX_RANGE
][
8
]);
DECLARE_ALIGNED
(
16
,
int16_t
,
uv_dequant
[
QINDEX_RANGE
][
8
]);
#if CONFIG_ALPHA
DECLARE_ALIGNED
(
16
,
int16_t
,
a_dequant
[
QINDEX_RANGE
][
8
]);
#endif
COLOR_SPACE
color_space
;
...
...
@@ -134,10 +131,6 @@ typedef struct VP9Common {
int
y_dc_delta_q
;
int
uv_dc_delta_q
;
int
uv_ac_delta_q
;
#if CONFIG_ALPHA
int
a_dc_delta_q
;
int
a_ac_delta_q
;
#endif
/* We allocate a MODE_INFO struct for each macroblock, together with
an extra row on top and column on the left to simplify prediction. */
...
...
vp9/common/vp9_postproc.c
View file @
5926e7c0
...
...
@@ -263,19 +263,13 @@ void vp9_deblock(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst,
+
0
.
0065
+
0
.
5
);
int
i
;
const
uint8_t
*
const
srcs
[
4
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
,
src
->
alpha_buffer
};
const
int
src_strides
[
4
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
,
src
->
alpha_stride
};
const
int
src_widths
[
4
]
=
{
src
->
y_width
,
src
->
uv_width
,
src
->
uv_width
,
src
->
alpha_width
};
const
int
src_heights
[
4
]
=
{
src
->
y_height
,
src
->
uv_height
,
src
->
uv_height
,
src
->
alpha_height
};
uint8_t
*
const
dsts
[
4
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
,
dst
->
alpha_buffer
};
const
int
dst_strides
[
4
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
,
dst
->
alpha_stride
};
const
uint8_t
*
const
srcs
[
3
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
};
const
int
src_strides
[
3
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
};
const
int
src_widths
[
3
]
=
{
src
->
y_width
,
src
->
uv_width
,
src
->
uv_width
};
const
int
src_heights
[
3
]
=
{
src
->
y_height
,
src
->
uv_height
,
src
->
uv_height
};
uint8_t
*
const
dsts
[
3
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
};
const
int
dst_strides
[
3
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
};
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
vp9_post_proc_down_and_across
(
srcs
[
i
],
dsts
[
i
],
...
...
@@ -289,19 +283,13 @@ void vp9_denoise(const YV12_BUFFER_CONFIG *src, YV12_BUFFER_CONFIG *dst,
+
0
.
0065
+
0
.
5
);
int
i
;
const
uint8_t
*
const
srcs
[
4
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
,
src
->
alpha_buffer
};
const
int
src_strides
[
4
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
,
src
->
alpha_stride
};
const
int
src_widths
[
4
]
=
{
src
->
y_width
,
src
->
uv_width
,
src
->
uv_width
,
src
->
alpha_width
};
const
int
src_heights
[
4
]
=
{
src
->
y_height
,
src
->
uv_height
,
src
->
uv_height
,
src
->
alpha_height
};
uint8_t
*
const
dsts
[
4
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
,
dst
->
alpha_buffer
};
const
int
dst_strides
[
4
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
,
dst
->
alpha_stride
};
const
uint8_t
*
const
srcs
[
3
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
};
const
int
src_strides
[
3
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
};
const
int
src_widths
[
3
]
=
{
src
->
y_width
,
src
->
uv_width
,
src
->
uv_width
};
const
int
src_heights
[
3
]
=
{
src
->
y_height
,
src
->
uv_height
,
src
->
uv_height
};
uint8_t
*
const
dsts
[
3
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
};
const
int
dst_strides
[
3
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
};
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
{
const
int
src_stride
=
src_strides
[
i
];
...
...
vp9/decoder/vp9_decodeframe.c
View file @
5926e7c0
...
...
@@ -1134,14 +1134,18 @@ static size_t read_uncompressed_header(VP9Decoder *pbi,
if
(
cm
->
profile
==
PROFILE_1
||
cm
->
profile
==
PROFILE_3
)
{
cm
->
subsampling_x
=
vp9_rb_read_bit
(
rb
);
cm
->
subsampling_y
=
vp9_rb_read_bit
(
rb
);
vp9_rb_read_bit
(
rb
);
// has extra plane
if
(
vp9_rb_read_bit
(
rb
))
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_UNSUP_BITSTREAM
,
"Reserved bit set"
);
}
else
{
cm
->
subsampling_y
=
cm
->
subsampling_x
=
1
;
}
}
else
{
if
(
cm
->
profile
==
PROFILE_1
||
cm
->
profile
==
PROFILE_3
)
{
cm
->
subsampling_y
=
cm
->
subsampling_x
=
0
;
vp9_rb_read_bit
(
rb
);
// has extra plane
if
(
vp9_rb_read_bit
(
rb
))
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_UNSUP_BITSTREAM
,
"Reserved bit set"
);
}
else
{
vpx_internal_error
(
&
cm
->
error
,
VPX_CODEC_UNSUP_BITSTREAM
,
"4:4:4 color not supported in profile 0"
);
...
...
vp9/encoder/vp9_bitstream.c
View file @
5926e7c0
...
...
@@ -1068,11 +1068,11 @@ static void write_uncompressed_header(VP9_COMP *cpi,
if
(
cm
->
profile
==
PROFILE_1
||
cm
->
profile
==
PROFILE_3
)
{
vp9_wb_write_bit
(
wb
,
cm
->
subsampling_x
);
vp9_wb_write_bit
(
wb
,
cm
->
subsampling_y
);
vp9_wb_write_bit
(
wb
,
0
);
//
has extra plane
vp9_wb_write_bit
(
wb
,
0
);
//
unused
}
}
else
{
assert
(
cm
->
profile
==
PROFILE_1
||
cm
->
profile
==
PROFILE_3
);
vp9_wb_write_bit
(
wb
,
0
);
//
has extra plane
vp9_wb_write_bit
(
wb
,
0
);
//
unused
}
write_frame_size
(
cm
,
wb
);
...
...
vp9/encoder/vp9_encodeframe.c
View file @
5926e7c0
...
...
@@ -640,10 +640,8 @@ static void update_state(VP9_COMP *cpi, PICK_MODE_CONTEXT *ctx,
void
vp9_setup_src_planes
(
MACROBLOCK
*
x
,
const
YV12_BUFFER_CONFIG
*
src
,
int
mi_row
,
int
mi_col
)
{
uint8_t
*
const
buffers
[
4
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
,
src
->
alpha_buffer
};
const
int
strides
[
4
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
,
src
->
alpha_stride
};
uint8_t
*
const
buffers
[
3
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
};
const
int
strides
[
3
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
};
int
i
;
// Set current frame pointer.
...
...
vp9/encoder/vp9_encoder.c
View file @
5926e7c0
...
...
@@ -1418,17 +1418,6 @@ void vp9_write_yuv_rec_frame(VP9_COMMON *cm) {
src
+=
s
->
uv_stride
;
}
while
(
--
h
);
#if CONFIG_ALPHA
if
(
s
->
alpha_buffer
)
{
src
=
s
->
alpha_buffer
;
h
=
s
->
alpha_height
;
do
{
fwrite
(
src
,
s
->
alpha_width
,
1
,
yuv_rec_file
);
src
+=
s
->
alpha_stride
;
}
while
(
--
h
);
}
#endif
fflush
(
yuv_rec_file
);
}
#endif
...
...
@@ -1437,22 +1426,18 @@ static void scale_and_extend_frame_nonnormative(const YV12_BUFFER_CONFIG *src,
YV12_BUFFER_CONFIG
*
dst
)
{
// TODO(dkovalev): replace YV12_BUFFER_CONFIG with vpx_image_t
int
i
;
const
uint8_t
*
const
srcs
[
4
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
,
src
->
alpha_buffer
};
const
int
src_strides
[
4
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
,
src
->
alpha_stride
};
const
int
src_widths
[
4
]
=
{
src
->
y_crop_width
,
src
->
uv_crop_width
,
src
->
uv_crop_width
,
src
->
y_crop_width
};
const
int
src_heights
[
4
]
=
{
src
->
y_crop_height
,
src
->
uv_crop_height
,
src
->
uv_crop_height
,
src
->
y_crop_height
};
uint8_t
*
const
dsts
[
4
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
,
dst
->
alpha_buffer
};
const
int
dst_strides
[
4
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
,
dst
->
alpha_stride
};
const
int
dst_widths
[
4
]
=
{
dst
->
y_crop_width
,
dst
->
uv_crop_width
,
dst
->
uv_crop_width
,
dst
->
y_crop_width
};
const
int
dst_heights
[
4
]
=
{
dst
->
y_crop_height
,
dst
->
uv_crop_height
,
dst
->
uv_crop_height
,
dst
->
y_crop_height
};
const
uint8_t
*
const
srcs
[
3
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
};
const
int
src_strides
[
3
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
};
const
int
src_widths
[
3
]
=
{
src
->
y_crop_width
,
src
->
uv_crop_width
,
src
->
uv_crop_width
};
const
int
src_heights
[
3
]
=
{
src
->
y_crop_height
,
src
->
uv_crop_height
,
src
->
uv_crop_height
};
uint8_t
*
const
dsts
[
3
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
};
const
int
dst_strides
[
3
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
};
const
int
dst_widths
[
3
]
=
{
dst
->
y_crop_width
,
dst
->
uv_crop_width
,
dst
->
uv_crop_width
};
const
int
dst_heights
[
3
]
=
{
dst
->
y_crop_height
,
dst
->
uv_crop_height
,
dst
->
uv_crop_height
};
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
vp9_resize_plane
(
srcs
[
i
],
src_heights
[
i
],
src_widths
[
i
],
src_strides
[
i
],
...
...
@@ -1467,14 +1452,10 @@ static void scale_and_extend_frame(const YV12_BUFFER_CONFIG *src,
const
int
src_h
=
src
->
y_crop_height
;
const
int
dst_w
=
dst
->
y_crop_width
;
const
int
dst_h
=
dst
->
y_crop_height
;
const
uint8_t
*
const
srcs
[
4
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
,
src
->
alpha_buffer
};
const
int
src_strides
[
4
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
,
src
->
alpha_stride
};
uint8_t
*
const
dsts
[
4
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
,
dst
->
alpha_buffer
};
const
int
dst_strides
[
4
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
,
dst
->
alpha_stride
};
const
uint8_t
*
const
srcs
[
3
]
=
{
src
->
y_buffer
,
src
->
u_buffer
,
src
->
v_buffer
};
const
int
src_strides
[
3
]
=
{
src
->
y_stride
,
src
->
uv_stride
,
src
->
uv_stride
};
uint8_t
*
const
dsts
[
3
]
=
{
dst
->
y_buffer
,
dst
->
u_buffer
,
dst
->
v_buffer
};
const
int
dst_strides
[
3
]
=
{
dst
->
y_stride
,
dst
->
uv_stride
,
dst
->
uv_stride
};
const
InterpKernel
*
const
kernel
=
vp9_get_interp_kernel
(
EIGHTTAP
);
int
x
,
y
,
i
;
...
...
vp9/encoder/vp9_encoder.h
View file @
5926e7c0
...
...
@@ -509,9 +509,8 @@ static INLINE int frame_is_boosted(const VP9_COMP *cpi) {
}
static
INLINE
int
get_token_alloc
(
int
mb_rows
,
int
mb_cols
)
{
// TODO(JBB): make this work for alpha channel and double check we can't
// exceed this token count if we have a 32x32 transform crossing a boundary
// at a multiple of 16.
// TODO(JBB): double check we can't exceed this token count if we have a
// 32x32 transform crossing a boundary at a multiple of 16.
// mb_rows, cols are in units of 16 pixels. We assume 3 planes all at full
// resolution. We assume up to 1 token per pixel, and then allow
// a head room of 4.
...
...
vp9/encoder/vp9_extend.c
View file @
5926e7c0
...
...
@@ -75,18 +75,6 @@ void vp9_copy_and_extend_frame(const YV12_BUFFER_CONFIG *src,
const
int
eb_uv
=
eb_y
>>
uv_height_subsampling
;
const
int
er_uv
=
er_y
>>
uv_width_subsampling
;
#if CONFIG_ALPHA
const
int
et_a
=
dst
->
border
>>
(
dst
->
alpha_height
!=
dst
->
y_height
);
const
int
el_a
=
dst
->
border
>>
(
dst
->
alpha_width
!=
dst
->
y_width
);
const
int
eb_a
=
et_a
+
dst
->
alpha_height
-
src
->
alpha_height
;
const
int
er_a
=
el_a
+
dst
->
alpha_width
-
src
->
alpha_width
;
copy_and_extend_plane
(
src
->
alpha_buffer
,
src
->
alpha_stride
,
dst
->
alpha_buffer
,
dst
->
alpha_stride
,
src
->
alpha_width
,
src
->
alpha_height
,
et_a
,
el_a
,
eb_a
,
er_a
);
#endif
copy_and_extend_plane
(
src
->
y_buffer
,
src
->
y_stride
,
dst
->
y_buffer
,
dst
->
y_stride
,
src
->
y_width
,
src
->
y_height
,
...
...
vp9/encoder/vp9_quantize.c
View file @
5926e7c0
...
...
@@ -315,16 +315,6 @@ void vp9_init_quantizer(VP9_COMP *cpi) {
quants
->
uv_zbin
[
q
][
i
]
=
ROUND_POWER_OF_TWO
(
qzbin_factor
*
quant
,
7
);
quants
->
uv_round
[
q
][
i
]
=
(
qrounding_factor
*
quant
)
>>
7
;
cm
->
uv_dequant
[
q
][
i
]
=
quant
;
#if CONFIG_ALPHA
// alpha
quant
=
i
==
0
?
vp9_dc_quant
(
q
,
cm
->
a_dc_delta_q
)
:
vp9_ac_quant
(
q
,
cm
->
a_ac_delta_q
);
invert_quant
(
&
quants
->
a_quant
[
q
][
i
],
&
quants
->
a_quant_shift
[
q
][
i
],
quant
);
quants
->
a_zbin
[
q
][
i
]
=
ROUND_POWER_OF_TWO
(
qzbin_factor
*
quant
,
7
);
quants
->
a_round
[
q
][
i
]
=
(
qrounding_factor
*
quant
)
>>
7
;
cm
->
a_dequant
[
q
][
i
]
=
quant
;
#endif
}
for
(
i
=
2
;
i
<
8
;
i
++
)
{
...
...
@@ -343,14 +333,6 @@ void vp9_init_quantizer(VP9_COMP *cpi) {
quants
->
uv_zbin
[
q
][
i
]
=
quants
->
uv_zbin
[
q
][
1
];
quants
->
uv_round
[
q
][
i
]
=
quants
->
uv_round
[
q
][
1
];
cm
->
uv_dequant
[
q
][
i
]
=
cm
->
uv_dequant
[
q
][
1
];
#if CONFIG_ALPHA
quants
->
a_quant
[
q
][
i
]
=
quants
->
a_quant
[
q
][
1
];
quants
->
a_quant_shift
[
q
][
i
]
=
quants
->
a_quant_shift
[
q
][
1
];
quants
->
a_zbin
[
q
][
i
]
=
quants
->
a_zbin
[
q
][
1
];
quants
->
a_round
[
q
][
i
]
=
quants
->
a_round
[
q
][
1
];
cm
->
a_dequant
[
q
][
i
]
=
cm
->
a_dequant
[
q
][
1
];
#endif
}
}
}
...
...
@@ -387,15 +369,6 @@ void vp9_init_plane_quantizers(VP9_COMP *cpi, MACROBLOCK *x) {
xd
->
plane
[
i
].
dequant
=
cm
->
uv_dequant
[
qindex
];
}
#if CONFIG_ALPHA
x
->
plane
[
3
].
quant
=
quants
->
a_quant
[
qindex
];
x
->
plane
[
3
].
quant_shift
=
quants
->
a_quant_shift
[
qindex
];
x
->
plane
[
3
].
zbin
=
quants
->
a_zbin
[
qindex
];
x
->
plane
[
3
].
round
=
quants
->
a_round
[
qindex
];
x
->
plane
[
3
].
zbin_extra
=
(
int16_t
)((
cm
->
a_dequant
[
qindex
][
1
]
*
zbin
)
>>
7
);
xd
->
plane
[
3
].
dequant
=
cm
->
a_dequant
[
qindex
];
#endif
x
->
skip_block
=
vp9_segfeature_active
(
&
cm
->
seg
,
segment_id
,
SEG_LVL_SKIP
);
x
->
q_index
=
qindex
;
...
...
vp9/encoder/vp9_quantize.h
View file @
5926e7c0
...
...
@@ -35,13 +35,6 @@ typedef struct {
DECLARE_ALIGNED
(
16
,
int16_t
,
uv_quant_shift
[
QINDEX_RANGE
][
8
]);
DECLARE_ALIGNED
(
16
,
int16_t
,
uv_zbin
[
QINDEX_RANGE
][
8
]);
DECLARE_ALIGNED
(
16
,
int16_t
,
uv_round
[
QINDEX_RANGE
][
8
]);
#if CONFIG_ALPHA
DECLARE_ALIGNED
(
16
,
int16_t
,
a_quant
[
QINDEX_RANGE
][
8
]);
DECLARE_ALIGNED
(
16
,
int16_t
,
a_quant_shift
[
QINDEX_RANGE
][
8
]);
DECLARE_ALIGNED
(
16
,
int16_t
,
a_zbin
[
QINDEX_RANGE
][
8
]);
DECLARE_ALIGNED
(
16
,
int16_t
,
a_round
[
QINDEX_RANGE
][
8
]);
#endif
}
QUANTS
;
void
vp9_quantize_dc
(
const
int16_t
*
coeff_ptr
,
int
skip_block
,
...
...
vp9/encoder/vp9_rd.c
View file @
5926e7c0
...
...
@@ -432,10 +432,6 @@ void vp9_setup_pred_block(const MACROBLOCKD *xd,
dst
[
1
].
buf
=
src
->
u_buffer
;
dst
[
2
].
buf
=
src
->
v_buffer
;
dst
[
1
].
stride
=
dst
[
2
].
stride
=
src
->
uv_stride
;
#if CONFIG_ALPHA
dst
[
3
].
buf
=
src
->
alpha_buffer
;
dst
[
3
].
stride
=
src
->
alpha_stride
;
#endif
for
(
i
=
0
;
i
<
MAX_MB_PLANE
;
++
i
)
{
setup_pred_plane
(
dst
+
i
,
dst
[
i
].
buf
,
dst
[
i
].
stride
,
mi_row
,
mi_col
,
...
...
vp9/vp9_dx_iface.c
View file @
5926e7c0
...
...
@@ -155,11 +155,11 @@ static vpx_codec_err_t decoder_peek_si_internal(const uint8_t *data,
rb
.
bit_offset
+=
1
;
// [16,235] (including xvycc) vs [0,255] range
if
(
profile
==
PROFILE_1
||
profile
==
PROFILE_3
)
{
rb
.
bit_offset
+=
2
;
// subsampling x/y
rb
.
bit_offset
+=
1
;
//
has extra plane
rb
.
bit_offset
+=
1
;
//
unused
}
}
else
{
if
(
profile
==
PROFILE_1
||
profile
==
PROFILE_3
)
{
rb
.
bit_offset
+=
1
;
//
has extra plane
rb
.
bit_offset
+=
1
;
//
unused
}
else
{
// RGB is only available in version 1
return
VPX_CODEC_UNSUP_BITSTREAM
;
...
...
vp9/vp9_iface_common.h
View file @
5926e7c0
...
...
@@ -41,11 +41,11 @@ static void yuvconfig2image(vpx_image_t *img, const YV12_BUFFER_CONFIG *yv12,
img
->
planes
[
VPX_PLANE_Y
]
=
yv12
->
y_buffer
;
img
->
planes
[
VPX_PLANE_U
]
=
yv12
->
u_buffer
;
img
->
planes
[
VPX_PLANE_V
]
=
yv12
->
v_buffer
;
img
->
planes
[
VPX_PLANE_ALPHA
]
=
yv12
->
alpha_buffer
;
img
->
planes
[
VPX_PLANE_ALPHA
]
=
NULL
;
img
->
stride
[
VPX_PLANE_Y
]
=
yv12
->
y_stride
;
img
->
stride
[
VPX_PLANE_U
]
=
yv12
->
uv_stride
;
img
->
stride
[
VPX_PLANE_V
]
=
yv12
->
uv_stride
;
img
->
stride
[
VPX_PLANE_ALPHA
]
=
yv12
->
alpha
_stride
;
img
->
stride
[
VPX_PLANE_ALPHA
]
=
yv12
->
y
_stride
;
img
->
bps
=
bps
;
img
->
user_priv
=
user_priv
;
img
->
img_data
=
yv12
->
buffer_alloc
;
...
...
@@ -58,7 +58,6 @@ static vpx_codec_err_t image2yuvconfig(const vpx_image_t *img,
yv12
->
y_buffer
=
img
->
planes
[
VPX_PLANE_Y
];
yv12
->
u_buffer
=
img
->
planes
[
VPX_PLANE_U
];
yv12
->
v_buffer
=
img
->
planes
[
VPX_PLANE_V
];
yv12
->
alpha_buffer
=
img
->
planes
[
VPX_PLANE_ALPHA
];
yv12
->
y_crop_width
=
img
->
d_w
;
yv12
->
y_crop_height
=
img
->
d_h
;
...
...
@@ -70,21 +69,10 @@ static vpx_codec_err_t image2yuvconfig(const vpx_image_t *img,
yv12
->
uv_height
=
img
->
y_chroma_shift
==
1
?
(
1
+
yv12
->
y_height
)
/
2
:
yv12
->
y_height
;
yv12
->
alpha_width
=
yv12
->
alpha_buffer
?
img
->
d_w
:
0
;
yv12
->
alpha_height
=
yv12
->
alpha_buffer
?
img
->
d_h
:
0
;
yv12
->
y_stride
=
img
->
stride
[
VPX_PLANE_Y
];
yv12
->
uv_stride
=
img
->
stride
[
VPX_PLANE_U
];
yv12
->
alpha_stride
=
yv12
->
alpha_buffer
?
img
->
stride
[
VPX_PLANE_ALPHA
]
:
0
;
yv12
->
border
=
(
img
->
stride
[
VPX_PLANE_Y
]
-
img
->
w
)
/
2
;
#if CONFIG_ALPHA
// For development purposes, force alpha to hold the same data as Y for now.
yv12
->
alpha_buffer
=
yv12
->
y_buffer
;
yv12
->
alpha_width
=
yv12
->
y_width
;
yv12
->
alpha_height
=
yv12
->
y_height
;
yv12
->
alpha_stride
=
yv12
->
y_stride
;
#endif
return
VPX_CODEC_OK
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment