<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>VA-API: VAEncFEIMVPredictorHEVC Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">VA-API
   &#160;<span id="projectnumber">2.19.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structVAEncFEIMVPredictorHEVC-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">VAEncFEIMVPredictorHEVC Struct Reference<div class="ingroups"><a class="el" href="group__api__fei__hevc.html">HEVC FEI encoding API</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Application can use this definition as reference to allocate the buffer based on MaxNumPredictor returned from attribute VAConfigAttribFEIMVPredictors query. this buffer allocation is always based on 16x16 block even block size is indicated as 32x32 or 64x64, and buffer layout is always in 32x32 block raster scan order even block size is 16x16 or 64x64. If 32x32 block size is set, only the data in the first 16x16 block (block 0) is used for 32x32 block. If 64x64 block size is set MV layout is still in 32x32 raster scan order, the same as 32x32 and the first 16x16 block within each 32x32 block needs to have intended MV data (four 32x32 blocks will have the same MV data in the correspondent first 16x16 block). Data structure for each 16x16 block is defined as below (same as AVC except BlockSize/Reserved bits).  
 <a href="structVAEncFEIMVPredictorHEVC.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="va__fei__hevc_8h_source.html">va_fei_hevc.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a9ce1e9127e355227328d15647861623c"><td class="memItemLeft" ><a id="a9ce1e9127e355227328d15647861623c"></a>
struct {</td></tr>
<tr class="memitem:a9ce1e9127e355227328d15647861623c"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncFEIMVPredictorHEVC.html#a9ce1e9127e355227328d15647861623c">ref_idx</a> [4]</td></tr>
<tr class="memdesc:a9ce1e9127e355227328d15647861623c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Feference index corresponding to the entry of RefPicList0 &amp; RefPicList1 in slice header (final reference list). Note that RefPicList0 &amp; RefPicList1 needs to be the same for all slices. Ref0xIndex – RefPicList0; Ref1xIndex – RefPicList1; x – 0 ~ MaxNumPredictor. <br /></td></tr>
<tr class="separator:a9ce1e9127e355227328d15647861623c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cb4c16a0c4817913d495e0f004884c8"><td class="memItemLeft" align="right" valign="top"><a id="a5cb4c16a0c4817913d495e0f004884c8"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncFEIMVPredictorHEVC.html#a5cb4c16a0c4817913d495e0f004884c8">block_size</a>: 2</td></tr>
<tr class="memdesc:a5cb4c16a0c4817913d495e0f004884c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Valid only when MVPredictor is set to 011 for HEVC. Only valid in the first 16x16 block. 00: MV predictor disabled for this 32x32 block 01: MV predictor enabled per 16x16 block for this 32x32 block 10: MV predictor enabled per 32x32 block, the rest of 16x16 block data within this 32x32 block are ignored 11: Reserved. <br /></td></tr>
<tr class="separator:a5cb4c16a0c4817913d495e0f004884c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Application can use this definition as reference to allocate the buffer based on MaxNumPredictor returned from attribute VAConfigAttribFEIMVPredictors query. this buffer allocation is always based on 16x16 block even block size is indicated as 32x32 or 64x64, and buffer layout is always in 32x32 block raster scan order even block size is 16x16 or 64x64. If 32x32 block size is set, only the data in the first 16x16 block (block 0) is used for 32x32 block. If 64x64 block size is set MV layout is still in 32x32 raster scan order, the same as 32x32 and the first 16x16 block within each 32x32 block needs to have intended MV data (four 32x32 blocks will have the same MV data in the correspondent first 16x16 block). Data structure for each 16x16 block is defined as below (same as AVC except BlockSize/Reserved bits). </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="va__fei__hevc_8h_source.html">va_fei_hevc.h</a></li>
</ul>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated for VA-API by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13</small></address>
</body>
</html>
