Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
5b9dc7c6
Commit
5b9dc7c6
authored
Apr 10, 2013
by
Jingning Han
Committed by
Gerrit Code Review
Apr 10, 2013
Browse files
Merge "Make SB Decoding units size-independent" into experimental
parents
0cef7234
e63099d1
Changes
3
Hide whitespace changes
Inline
Side-by-side
vp9/decoder/vp9_decodframe.c
View file @
5b9dc7c6
...
...
@@ -625,7 +625,7 @@ static void decode_sb64(VP9D_COMP *pbi, MACROBLOCKD *xd, int mb_row, int mb_col,
}
// dequantization and idct
eobtotal
=
vp9_decode_
sb64_
tokens
(
pbi
,
xd
,
bc
);
eobtotal
=
vp9_decode_tokens
(
pbi
,
xd
,
bc
,
BLOCK_SIZE_SB64X64
);
if
(
eobtotal
==
0
)
{
// skip loopfilter
for
(
n
=
0
;
n
<
16
;
n
++
)
{
const
int
x_idx
=
n
&
3
,
y_idx
=
n
>>
2
;
...
...
@@ -704,7 +704,7 @@ static void decode_sb32(VP9D_COMP *pbi, MACROBLOCKD *xd, int mb_row, int mb_col,
}
// dequantization and idct
eobtotal
=
vp9_decode_
sb_
tokens
(
pbi
,
xd
,
bc
);
eobtotal
=
vp9_decode_tokens
(
pbi
,
xd
,
bc
,
BLOCK_SIZE_SB32X32
);
if
(
eobtotal
==
0
)
{
// skip loopfilter
mi
->
mbmi
.
mb_skip_coeff
=
1
;
if
(
mb_col
+
1
<
pc
->
mb_cols
)
...
...
@@ -766,7 +766,7 @@ static void decode_mb(VP9D_COMP *pbi, MACROBLOCKD *xd,
#if CONFIG_NEWBINTRAMODES
if
(
mode
!=
B_PRED
)
#endif
eobtotal
=
vp9_decode_
mb_
tokens
(
pbi
,
xd
,
bc
);
eobtotal
=
vp9_decode_tokens
(
pbi
,
xd
,
bc
,
BLOCK_SIZE_MB16X16
);
}
//mode = xd->mode_info_context->mbmi.mode;
...
...
vp9/decoder/vp9_detokenize.c
View file @
5b9dc7c6
...
...
@@ -401,26 +401,26 @@ static INLINE int block_idx_4x4(MACROBLOCKD* const xd, int block_size_b,
static
INLINE
int
decode_block_plane
(
VP9D_COMP
*
const
pbi
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
,
BLOCK_SIZE_LG2
block_size
,
int
block_size
,
int
segment_id
,
int
plane
,
int
is_split
)
{
// block and transform sizes, in number of 4x4 blocks log 2 ("*_b")
// 4x4=0, 8x8=2, 16x16=4, 32x32=6, 64x64=8
const
TX_SIZE
tx_size
=
xd
->
mode_info_context
->
mbmi
.
txfm_size
;
const
BLOCK_SIZE_LG2
block_size_b
=
block_size
;
const
BLOCK_SIZE_LG2
txfrm_size_b
=
tx_size
*
2
;
const
int
block_size_b
=
block_size
;
const
int
txfrm_size_b
=
tx_size
*
2
;
// subsampled size of the block
const
int
ss_sum
=
xd
->
plane
[
plane
].
subsampling_x
+
xd
->
plane
[
plane
].
subsampling_y
;
const
BLOCK_SIZE_LG2
ss_block_size
=
block_size_b
-
ss_sum
;
const
int
ss_block_size
=
block_size_b
-
ss_sum
;
// size of the transform to use. scale the transform down if it's larger
// than the size of the subsampled data, or forced externally by the mb mode.
const
int
ss_max
=
MAX
(
xd
->
plane
[
plane
].
subsampling_x
,
xd
->
plane
[
plane
].
subsampling_y
);
const
BLOCK_SIZE_LG2
ss_txfrm_size
=
txfrm_size_b
>
ss_block_size
||
is_split
const
int
ss_txfrm_size
=
txfrm_size_b
>
ss_block_size
||
is_split
?
txfrm_size_b
-
ss_max
*
2
:
txfrm_size_b
;
const
TX_SIZE
ss_tx_size
=
ss_txfrm_size
/
2
;
...
...
@@ -477,22 +477,12 @@ static INLINE int decode_blocks(VP9D_COMP* const pbi,
tx_size
==
TX_8X8
&&
(
mode
==
I8X8_PRED
||
mode
==
SPLITMV
));
}
int
vp9_decode_sb64_tokens
(
VP9D_COMP
*
const
pbi
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
)
{
return
decode_blocks
(
pbi
,
xd
,
bc
,
BLOCK_64X64_LG2
);
}
int
vp9_decode_sb_tokens
(
VP9D_COMP
*
const
pbi
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
)
{
return
decode_blocks
(
pbi
,
xd
,
bc
,
BLOCK_32X32_LG2
);
}
int
vp9_decode_mb_tokens
(
VP9D_COMP
*
const
pbi
,
int
vp9_decode_tokens
(
VP9D_COMP
*
const
pbi
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
)
{
return
decode_blocks
(
pbi
,
xd
,
bc
,
BLOCK_16X16_LG2
);
BOOL_DECODER
*
const
bc
,
BLOCK_SIZE_TYPE
bsize
)
{
const
int
bwl
=
mb_width_log2
(
bsize
)
+
2
,
bhl
=
mb_height_log2
(
bsize
)
+
2
;
return
decode_blocks
(
pbi
,
xd
,
bc
,
bwl
+
bhl
);
}
#if CONFIG_NEWBINTRAMODES
...
...
vp9/decoder/vp9_detokenize.h
View file @
5b9dc7c6
...
...
@@ -14,16 +14,10 @@
#include
"vp9/decoder/vp9_onyxd_int.h"
int
vp9_decode_mb_tokens
(
VP9D_COMP
*
const
,
MACROBLOCKD
*
const
,
BOOL_DECODER
*
const
);
int
vp9_decode_sb_tokens
(
VP9D_COMP
*
const
pbi
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
);
int
vp9_decode_sb64_tokens
(
VP9D_COMP
*
const
pbi
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
);
int
vp9_decode_tokens
(
VP9D_COMP
*
const
pbi
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
,
BLOCK_SIZE_TYPE
bsize
);
int
vp9_decode_mb_tokens_4x4_uv
(
VP9D_COMP
*
const
dx
,
MACROBLOCKD
*
const
xd
,
BOOL_DECODER
*
const
bc
);
...
...
Write
Preview
Supports
Markdown
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