blob: b374d418afb0eff341ad27fb59069b0159d61261 [file] [log] [blame]
#### 9.7 Refresh Golden Frame and Altref Frame {#h-09-07}
For key frames, both the golden frame and the 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 the 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 the golden frame
* `1` means `last_frame` is copied to the golden frame
* `2` means `alt_ref_frame` is copied to the 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 the altref frame
* `1` means `last_frame` is copied to the altref frame
* `2` means `golden_frame` is copied to the 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.