Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xiph.Org
aom-rav1e
Commits
57605531
Commit
57605531
authored
Apr 03, 2017
by
Angie Chiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move PVQ flag checking into av1_optimize_b
Change-Id: I00554b925c0a870e766bc116c6d9cb02bd47a101
parent
6a71ad1f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
22 deletions
+11
-22
av1/encoder/encodemb.c
av1/encoder/encodemb.c
+11
-14
av1/encoder/rdopt.c
av1/encoder/rdopt.c
+0
-8
No files found.
av1/encoder/encodemb.c
View file @
57605531
...
...
@@ -144,6 +144,7 @@ static inline int64_t get_token_bit_costs(
int
av1_optimize_b
(
const
AV1_COMMON
*
cm
,
MACROBLOCK
*
mb
,
int
plane
,
int
block
,
TX_SIZE
tx_size
,
int
ctx
)
{
#if !CONFIG_PVQ
MACROBLOCKD
*
const
xd
=
&
mb
->
e_mbd
;
struct
macroblock_plane
*
const
p
=
&
mb
->
plane
[
plane
];
struct
macroblockd_plane
*
const
pd
=
&
xd
->
plane
[
plane
];
...
...
@@ -485,6 +486,13 @@ int av1_optimize_b(const AV1_COMMON *cm, MACROBLOCK *mb, int plane, int block,
mb
->
plane
[
plane
].
eobs
[
block
]
=
final_eob
;
assert
(
final_eob
<=
default_eob
);
return
final_eob
;
#else // !CONFIG_PVQ
(
void
)
cm
;
(
void
)
tx_size
;
(
void
)
ctx
;
struct
macroblock_plane
*
const
p
=
&
mb
->
plane
[
plane
];
return
p
->
eobs
[
block
];
#endif // !CONFIG_PVQ
}
#if !CONFIG_PVQ
...
...
@@ -1097,7 +1105,6 @@ void av1_encode_block_intra(int plane, int block, int blk_row, int blk_col,
const
int
dst_stride
=
pd
->
dst
.
stride
;
uint8_t
*
dst
=
&
pd
->
dst
.
buf
[(
blk_row
*
dst_stride
+
blk_col
)
<<
tx_size_wide_log2
[
0
]];
int
ctx
=
0
;
#if CONFIG_PVQ
int
tx_blk_size
;
int
i
,
j
;
...
...
@@ -1107,11 +1114,9 @@ void av1_encode_block_intra(int plane, int block, int blk_row, int blk_col,
tx_size
);
av1_subtract_txb
(
x
,
plane
,
plane_bsize
,
blk_col
,
blk_row
,
tx_size
);
#if !CONFIG_PVQ
const
ENTROPY_CONTEXT
*
a
=
&
args
->
ta
[
blk_col
];
const
ENTROPY_CONTEXT
*
l
=
&
args
->
tl
[
blk_row
];
ctx
=
combine_entropy_contexts
(
*
a
,
*
l
);
int
ctx
=
combine_entropy_contexts
(
*
a
,
*
l
);
if
(
args
->
enable_optimize_b
)
{
av1_xform_quant
(
cm
,
x
,
plane
,
block
,
blk_row
,
blk_col
,
plane_bsize
,
tx_size
,
ctx
,
AV1_XFORM_QUANT_FP
);
...
...
@@ -1123,13 +1128,7 @@ void av1_encode_block_intra(int plane, int block, int blk_row, int blk_col,
ctx
,
AV1_XFORM_QUANT_B
);
}
av1_inverse_transform_block
(
xd
,
dqcoeff
,
tx_type
,
tx_size
,
dst
,
dst_stride
,
*
eob
);
#else // #if !CONFIG_PVQ
av1_xform_quant
(
cm
,
x
,
plane
,
block
,
blk_row
,
blk_col
,
plane_bsize
,
tx_size
,
ctx
,
AV1_XFORM_QUANT_FP
);
#if CONFIG_PVQ
// *(args->skip) == mbmi->skip
if
(
!
x
->
pvq_skip
[
plane
])
*
(
args
->
skip
)
=
0
;
...
...
@@ -1154,11 +1153,9 @@ void av1_encode_block_intra(int plane, int block, int blk_row, int blk_col,
#if CONFIG_AOM_HIGHBITDEPTH
}
#endif // CONFIG_AOM_HIGHBITDEPTH
#endif // #if CONFIG_PVQ
av1_inverse_transform_block
(
xd
,
dqcoeff
,
tx_type
,
tx_size
,
dst
,
dst_stride
,
*
eob
);
#endif // #if !CONFIG_PVQ
#if !CONFIG_PVQ
if
(
*
eob
)
*
(
args
->
skip
)
=
0
;
#else
...
...
av1/encoder/rdopt.c
View file @
57605531
...
...
@@ -1625,10 +1625,8 @@ static void block_rd_txfm(int plane, int block, int blk_row, int blk_col,
// full forward transform and quantization
av1_xform_quant(cm, x, plane, block, blk_row, blk_col, plane_bsize, tx_size,
coeff_ctx, AV1_XFORM_QUANT_FP);
#if !CONFIG_PVQ
if (x->plane[plane].eobs[block] && !xd->lossless[mbmi->segment_id])
av1_optimize_b(cm, x, plane, block, tx_size, coeff_ctx);
#endif // !CONFIG_PVQ
dist_block(args->cpi, x, plane, plane_bsize, block, blk_row, blk_col,
tx_size, &this_rd_stats.dist, &this_rd_stats.sse);
}
...
...
@@ -3995,7 +3993,6 @@ void av1_tx_block_rd_b(const AV1_COMP *cpi, MACROBLOCK *x, TX_SIZE tx_size,
av1_xform_quant(cm, x, plane, block, blk_row, blk_col, plane_bsize, tx_size,
coeff_ctx, AV1_XFORM_QUANT_FP);
// TODO(yushin) : If PVQ is enabled, this should not be called.
av1_optimize_b(cm, x, plane, block, tx_size, coeff_ctx);
// TODO(any): Use dist_block to compute distortion
...
...
@@ -5374,15 +5371,10 @@ static int64_t encode_inter_mb_segment_sub8x8(
assert(IMPLIES(tx_size == TX_4X8 || tx_size == TX_8X4,
idx == 0 && idy == 0));
coeff_ctx = combine_entropy_contexts(*(ta + (k & 1)), *(tl + (k >> 1)));
#if !CONFIG_PVQ
av1_xform_quant(cm, x, 0, block, idy + (i >> 1), idx + (i & 0x01),
BLOCK_8X8, tx_size, coeff_ctx, AV1_XFORM_QUANT_FP);
if (xd->lossless[xd->mi[0]->mbmi.segment_id] == 0)
av1_optimize_b(cm, x, 0, block, tx_size, coeff_ctx);
#else
av1_xform_quant(cm, x, 0, block, idy + (i >> 1), idx + (i & 0x01),
BLOCK_8X8, tx_size, coeff_ctx, AV1_XFORM_QUANT_FP);
#endif // !CONFIG_PVQ
dist_block(cpi, x, 0, BLOCK_8X8, block, idy + (i >> 1), idx + (i & 0x1),
tx_size, &dist, &ssz);
thisdistortion += dist;
...
...
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