ericmckean / webm

Automatically exported from code.google.com/p/webm
0 stars 0 forks source link

VP9: seeing some corruption/errors in decoded video: speed 3 and 4. #675

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
For test clip: /home/marpan/mac_marco_moving.640_480.yuv

Running the encoder:
./vpxenc --good --cpu-used=3 --threads=0 --profile=0 --lag-in-frames=0 
--min-q=0 --max-q=63 --passes=2 --kf-max-dist=9999 --kf-min-dist=0 --codec=vp9 
--width=640 --height=480 --target-bitrate=500 mac_marco_moving.640_480.yuv -o 
out.webm

Decoder:
./vpxdec --i420 out.webm -o out.640_480.yuv

Using recent/latest version (Nov 27): 
hash# e924057d80c9e92504881fe8cee361a4fbc6d5f5

Corruption can be seen in decoded video (/home/marpan/out.640_480.yuv).

Only seems to happen for speed 3 and 4.
Don't see the issue/corruption for speeds 0, 1, 2, and 5 for this clip.

Original issue reported on code.google.com by marpan@google.com on 2 Dec 2013 at 4:55

GoogleCodeExporter commented 9 years ago
From some bisecting, it seems like the problem is introduced in:
commit 697846d76ec44fc8515eb3e78fac48e0340baa9e
Merge: fabc783 b6b9143
Author: Jingning Han <jingning@google.com>
Date:   Wed Nov 13 15:43:00 2013 -0800

    Merge "Dual buffer encoding for intra modes"

Original comment by marpan@google.com on 2 Dec 2013 at 6:34

GoogleCodeExporter commented 9 years ago

Original comment by ya...@google.com on 2 Dec 2013 at 7:17

GoogleCodeExporter commented 9 years ago
jingning, can you take a look at this issue?

Original comment by ya...@google.com on 2 Dec 2013 at 7:17

GoogleCodeExporter commented 9 years ago
could you please double check if the test clip is in /home/marpan/ directory? 
wasn't able to find it there?

Original comment by jingn...@google.com on 2 Dec 2013 at 7:26

GoogleCodeExporter commented 9 years ago
sorry, file is in: /home/marpan/testclip

Original comment by marpan@google.com on 2 Dec 2013 at 7:31

GoogleCodeExporter commented 9 years ago
Verified fix is good (corruption is gone) with latest change(s):

commit b88b49a7bc6a5b08ae0af0304eee67ced7d55352
Merge: 8a4310b f01ad92
Author: Jingning Han <jingning@google.com>
Date:   Tue Dec 3 09:47:41 2013 -0800

    Merge "Fix intra prediction ref selection in skip_encode"

commit 8a4310b16055ed88a99399dae1c691a0b18e5307
Merge: e7922a5 9f81a50
Author: Paul Wilkins <paulwilkins@google.com>
Date:   Tue Dec 3 04:30:50 2013 -0800

    Merge "Fix use_uv_intra_estimate in rd loop"

commit f01ad926d0b2b5c7f79f39f05168d6837cfd54a7
Author: Jingning Han <jingning@google.com>
Date:   Mon Dec 2 18:44:08 2013 -0800

    Fix intra prediction ref selection in skip_encode

    This commit fixes the intra prediction reference source selection
    in the settings of skip_encode. Use original boundary pixels as
    prediction reference, when the inverse transform and reconstruction
    are skipped in the per block size rate-distortion optimization loop.

    Change-Id: I36081aa30aa46e203e0e6f4e8a420fd08269469a

commit 9f81a50c853c902f575dbff4f0e61db7ebfa12fa
Author: Jingning Han <jingning@google.com>
Date:   Mon Dec 2 15:24:41 2013 -0800

    Fix use_uv_intra_estimate in rd loop

    This commit fixes the use of uv_intra_estimate by properly restoring
    the mode_info struct required by rd_pick_intra_sbuv_mode.

Original comment by marpan@google.com on 3 Dec 2013 at 6:31

GoogleCodeExporter commented 9 years ago

Original comment by ya...@google.com on 4 Dec 2013 at 8:40