dinhminhquoi / webm

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

vp9 decoder last_frame_seg_map did not get reset to 0 when inter frame and no seg_update #761

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What is the expected behavior? What do you see instead?
My question is if the current frame could only use the segment ID map from the 
previous frame or it could use that of frames other than the prevoius one.

If the current frame can only use the previous frame's segment id map, I did 
not see your codes reset the last_frame_seg_map after decoding an interframe 
with segment_update false, which means the value in last_frame_seg_map would be 
carry over and used by future frame.

What version are you using? On what operating system?

Can you reproduce using the vpxdec or vpxenc tools? What command line are
you using?

Please provide any additional information below.

Original issue reported on code.google.com by litaomi...@gmail.com on 11 Apr 2014 at 3:56

GoogleCodeExporter commented 9 years ago
is the reason that you did not reset it because you don't need to set it back 
to original value because there is no update from the frame? Such the next 
frame would still use the same value. So even if it looks like that 3rd frame 
is using the value from the 1st frame, it is actually using the 2nd frame's 
value, because 2nd frame did not udpate the value then it carries the same 
value as the 1st.

Original comment by litaomi...@gmail.com on 11 Apr 2014 at 4:30

GoogleCodeExporter commented 9 years ago

Original comment by renganat...@google.com on 9 Oct 2014 at 10:29

GoogleCodeExporter commented 9 years ago

Original comment by aconve...@google.com on 13 Oct 2014 at 12:43

GoogleCodeExporter commented 9 years ago
When update_map is not set on an inter frame the segmentation map from the 
previous frame carries forward, even if segmentation is disabled on the current 
frame. If segmentation is disabled on the current frame, all blocks in the 
current frame get set to segment zero, but the the segmentation map remains in 
place for future frames. The only exception to this is:
A keyframe, intra-only frame, or frame coded in error resilient mode always 
discards the previous segmentation map. 

In general think of the segmentation-map state independently from the 
segmentation-enabled state. Segmentation can flip on and off without changing 
the map, and the map can change whenever segmentation is on. 

I will add a test vector to demonstrate these rules. 

Original comment by aconve...@google.com on 13 Oct 2014 at 6:02

GoogleCodeExporter commented 9 years ago
https://gerrit.chromium.org/gerrit/#/c/71868/

Original comment by aconve...@google.com on 13 Oct 2014 at 6:28

GoogleCodeExporter commented 9 years ago
the proposed fix has been merged. 

Original comment by ya...@google.com on 10 Jul 2015 at 10:06