没有合适的资源?快使用搜索试试~ 我知道了~
首页DXVA VP9 Specification
资源详情
资源评论
资源推荐
© 2015 Microsoft Corporation. All rights reserved.
DirectX Video Acceleration Specification
for VP8 and VP9 Video Coding
October 2015
Yongjun Wu and Gary J. Sullivan
© 2015 Microsoft Corporation. All rights reserved. This document is provided "as-is." Information
and views expressed in this document, including URL and other Internet Web site references, may
change without notice. You bear the risk of using it. This document does not provide you with any
legal rights to any intellectual property in any Microsoft product. You may copy and use this
document for your internal, reference purposes.
Abstract – This document contains a specification for support of VP8 and VP9 video decoding (according
to the available VP8 and VP9 source code and public documents) within the Microsoft Windows DirectX
Video Acceleration (DXVA) API/DDI context. This specification includes support of the VP8 coding
format and VP9 Profile 0. The document describes high-level design concepts and specific VP8 and VP9
extensions to DXVA interfaces and data structures of VP8 and VP9 video decoding. This document
specifies only off-host Variable Length Decoding (VLD) profiles for VP8 and VP9 video decoding.
© 2015 Microsoft Corporation. All rights reserved.
Contents
1. Introduction ...................................................................................................................................... - 1 -
1.1 Referenced Documents and Software ...................................................................................... - 1 -
1.2 General Design Considerations ................................................................................................. - 2 -
1.3 Support Only for Off-Host VLD Operation ................................................................................ - 2 -
1.4 Picture Data............................................................................................................................... - 2 -
1.4.1 VP9 Picture Data ............................................................................................................... - 2 -
1.4.2 VP8 Picture Data ............................................................................................................... - 4 -
1.5 Buffer Types .............................................................................................................................. - 5 -
1.6 DXVA Decoding Operations ...................................................................................................... - 5 -
1.7 Status Reporting ........................................................................................................................ - 6 -
1.8 Accelerator Internal Operations and Information Storage ....................................................... - 7 -
1.9 Configuration Parameters ......................................................................................................... - 8 -
1.9.1 Syntax ................................................................................................................................ - 8 -
1.9.2 Semantics .......................................................................................................................... - 8 -
2. DXVA_PicEntry_VPx Data Structure .................................................................................................. - 9 -
2.1 Syntax ........................................................................................................................................ - 9 -
2.2 Semantics ................................................................................................................................ - 10 -
3. VP9 Picture Parameters Data Structure .......................................................................................... - 10 -
3.1 Syntax ...................................................................................................................................... - 10 -
3.2 Semantics ................................................................................................................................ - 12 -
4. VP8 Picture Parameters Data Structure .......................................................................................... - 19 -
4.1 Syntax ...................................................................................................................................... - 19 -
4.2 Semantics ................................................................................................................................ - 21 -
5. Slice (Picture) Control Data Structure ............................................................................................. - 25 -
5.1 Syntax ...................................................................................................................................... - 25 -
5.2 Semantics ................................................................................................................................ - 26 -
6. Status Report Data Structure .......................................................................................................... - 27 -
6.1 Syntax ...................................................................................................................................... - 27 -
6.2 Semantics ................................................................................................................................ - 28 -
7. Restricted-Mode Profiles ................................................................................................................ - 29 -
7.1 DXVA_ModeVP9_VLD_Profile0 Profile ................................................................................... - 29 -
7.2 DXVA_ModeVP8_VLD Profile .................................................................................................. - 30 -
8. For More Information ..................................................................................................................... - 30 -
© 2015 Microsoft Corporation. All rights reserved.
1. Introduction
This specification defines extensions to DirectX® Video Acceleration (DXVA) to support decoding of
VP8 and VP9 video. See, e.g., https://en.wikipedia.org/wiki/VP8 and
http://en.wikipedia.org/wiki/VP9#cite_note-VP9FinalizationMay2013GoogleGroup-11.
This specification assumes the reader is familiar with the VP8 and VP9 source code and the associated
publicly available documents, and with the basic design of DXVA. This specification of DXVA usage for
VP8 and VP9 is designed to be maximally consistent with prior DXVA schemes for other video formats.
DXVA consists of a DDI for display drivers and an API for software decoders. Version 1.0 of DXVA is
supported in Windows 2000 or later versions. Version 2.0 is available starting in Windows Vista.
Considering the passage of time and the increasing prevalence of DXVA 2.0 support, this document
specifies only the DXVA 2.0 operation for VP8 and VP9 video decoding. We do not plan to specify VP8
and VP9 video decoding in the DXVA 1.0 context.
In DXVA, some decoding operations are implemented by the graphics hardware driver and GPU. This set
of functionality is termed the accelerator. Other decoding operations, such as frame surface allocation,
retirement, reuse, and release, are implemented by user-mode application software, called the host
decoder or software decoder. Processing performed by the accelerator is sometimes referred to as off-host
processing. Typically, the accelerator uses the GPU to speed up some operations. When the accelerator
performs a decoding operation, the host decoder sends buffers of parameters and data to the accelerator
that contain the information that is needed to perform the operations.
Except where stated otherwise in this specification, DXVA operations in the accelerator shall be stateless;
the accelerator design shall not contain assumptions about the sequences of decoding operation or
internal-memory state dependencies. This is necessary to enable good "trick play" and loss/error
resilience functionality (although trick play functionality in this case is somewhat limited by the design of
the entropy decoding process, which has a stored internal state).
Note – In this document, the term shall describes behavior that is required by the specification. The term
should describes behavior that is encouraged but not required. The term note refers to observations about
implications of the specification.
Questions or comments about this specification may be sent to askdxva@microsoft.com.
1.1 Referenced Documents and Software
There is a published IETF RFC 6386 document that describes the VP8 video format and decoding process
in some detail (although it is not an entirely complete specification):
https://tools.ietf.org/html/rfc6386
However, currently there are only high-level overviews about VP9 video coding that are publicly
available, such as the following:
http://forum.doom9.org/showthread.php?t=168947
© 2015 Microsoft Corporation. All rights reserved.
http://tools.ietf.org/html/draft-grange-vp9-bitstream-00
http://files.meetup.com/9842252/Overview-VP9.pdf
http://community.roxen.com/developers/idocs/drafts/draft-grange-vp9-bitstream-00.html
Associated open-source reference software for VP8 and VP9 is available within the libvpx library at the
following links:
https://code.google.com/p/webm/downloads/list
https://code.google.com/p/webm/source/browse/vp9/?repo=libvpx&r=7b8dfcb5a2cfb01ee7a6009
d945d06559b564d06
This software is currently considered the primary definitive reference for these formats. In this
specification, the phrase "reference software" refers to this publicly available software.
1.2 General Design Considerations
Section 1 of this specification provides an overview of the DXVA design for VP8 and VP9 video
decoding. It is intended as background information, and may be helpful in understanding the sections that
follow. In the case of conflicts, later sections of this document override this section. The initial design
documented here is intended to be sufficient for decoding VP9 bitstreams of the Profile 0, and VP8
bitstreams. Neither VP8 or VP9 include support for interlaced-scan field-based coding and field-based
display – they are designed for progressive-scan coding and display only. Hence in this specification a
picture is considered synonymous with a frame.
1.3 Support Only for Off-Host VLD Operation
Over time, the level of industry interest in supporting modes of DXVA operation other than off-host
Variable Length Decoding (VLD) operation (e.g., as in the DXVA_ModeH264_MoComp_NoFGT and
DXVA_ModeH264_IDCT_NoFGT profiles of DXVA operation for H.264/AVC video decoding, and the
DXVA_ModeWMV9_PostProc and DXVA_ModeVC1_IDCT profiles of DXVA operation for
WMV9/VC-1 video decoding) appears to have waned. We therefore do not plan to specify such modes of
DXVA operation for VP8 and VP9 video decoding; only off-host VLD mode of DXVA operation is
specified for VP8 and VP9 video decoding.
1.4 Picture Data
The following data must be conveyed for each VP8 or VP9 frame in order to decode each frame
independently without serial dependencies or with minimized serial dependencies. For simplicity, the
same or similar flag names from VP8 or VP9 reference software are used. For further details, see
section 3 (VP9 Picture Parameters Data Structure) and section 4 (VP8 Picture Parameters Data Structure)
of this specification.
1.4.1 VP9 Picture Data
VP9 picture-level data includes the following:
Basic coding parameters and dimensions, including
© 2015 Microsoft Corporation. All rights reserved.
o profile
o width and height
Frame buffering state and reference list related information, including:
o CurrPic (indicating the current destination surface)
o frame_type
o ref_frame_map[]
o ref_frame_coded_width[]
o ref_frame_coded_height[]
o frame_refs[]
o ref_frame_sign_bias[]
Flags and associated data controlling particular coding features that are the same for the whole
frame, including
o error_resilient_mode
o intra_only
o reset_frame_context
o allow_high_precision_mv
o interp_filter
o refresh_frame_context
o frame_parallel_decoding_mode
o frame_context_idx
Syntax element values for deblocking, quantization and tile partition, including
o filter_level
o sharpness_level
o mode_ref_delta_enabled
o ref_deltas[]
o mode_deltas[]
o base_qindex
o y_dc_delta_q
o uv_dc_delta_q
o uv_ac_delta_q
o log2_tile_cols
o log2_tile_rows
Syntax element values for the segmentation map, including:
o enabled
o tree_probs[]
o pred_probs[]
o abs_delta
o feature_mask[]
o feature_data[][]
剩余31页未读,继续阅读
sunboxinan
- 粉丝: 3
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0