vp10: per-segment lossless coding.

Some more testing of this patch would probably be useful, but I
think the basics of it should work fine now.

See issue 1035.

Change-Id: I4a36d58f671c5391cb09d564581784a00ed26245
This commit is contained in:
Ronald S. Bultje
2015-10-12 17:54:25 -04:00
parent c7dc1d78bf
commit 60c58b5284
8 changed files with 96 additions and 48 deletions

View File

@@ -2663,7 +2663,7 @@ void vp10_update_reference_frames(VP10_COMP *cpi) {
static void loopfilter_frame(VP10_COMP *cpi, VP10_COMMON *cm) {
MACROBLOCKD *xd = &cpi->td.mb.e_mbd;
struct loopfilter *lf = &cm->lf;
if (xd->lossless) {
if (is_lossless_requested(&cpi->oxcf)) {
lf->filter_level = 0;
} else {
struct vpx_usec_timer timer;
@@ -4119,7 +4119,7 @@ int vp10_get_compressed_data(VP10_COMP *cpi, unsigned int *frame_flags,
}
if (oxcf->pass == 1) {
cpi->td.mb.e_mbd.lossless = is_lossless_requested(oxcf);
cpi->td.mb.e_mbd.lossless[0] = is_lossless_requested(oxcf);
vp10_first_pass(cpi, source);
} else if (oxcf->pass == 2) {
Pass2Encode(cpi, size, dest, frame_flags);