blob: 65a087a2cfc0d3ca1ba1b50b66b7539b5c4505b5 [file] [log] [blame]
#### 9.7 Refresh Golden Frame and AltRef Frame {#h-09-07}
For key frames, both golden frame and altref frame are refreshed/replaced by the current reconstructed frame, by default. For non-key frames, VP8 uses two bits to indicate whether the two frame buffers are refreshed, using the reconstructed current frame:
| Index | Description
| --------- | -------------------------------
| `L(1)` | Whether golden frame is refreshed (`0` for no, `1` for yes).
| `L(1)` | Whether altref frame is refreshed (`0` for no, `1` for yes).
When the flag for golden frame is `0`, VP8 uses 2 more bits in the bitstream to indicate whether the buffer (and which buffer) is copied to the golden frame, or if no buffer is copied:
| Index | Description
| --------- | -------------------------------
| `L(2)` | Buffer copy flag for golden frame buffer
Where:
* `0` means no buffer is copied to golden frame
* `1` means last_frame is copied to golden frame
* `2` means alt_ref_frame is copied to golden frame
Similarly, when the flag for altref is `0`, VP8 uses 2 bits in the bitstream to indicate which buffer is copied to `alt_ref_frame`.
| Index | Description
| --------- | -------------------------------
| `L(2)` | Buffer copy flag for altref frame buffer
Where:
* `0` means no buffer is copied to altref frame
* `1` means `last_frame` is copied to altref frame
* `2` means `golden_frame` is copied to altref frame
Two bits are transmitted for `ref_frame_sign_bias` for `golden_frame` and `alt_ref_frame` respectively.
| Index | Description
| --------- | -------------------------------
| `L(1)` | Sign bias flag for golden frame
| `L(1)` | Sign bias flag for altref frame
These values are used to control the sign of the motion vectors when a golden frame or an altref frame is used as the reference frame for a macroblock.