<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div>
<blockquote type="cite" class="">
<div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div class="">Hi,</div>
<div class=""><br class="">
</div>
<div class="">down load the x264 source code and found the following issule.</div>
<div class=""><br class="">
</div>
<div class="">1.  in cabac.c defined function:</div>
<div class="">
<div class="" style="margin: 0px; font-family: Menlo;"><span class="" style="color: rgb(187, 44, 162);"><br class="">
</span></div>
<div class="" style="margin: 0px; font-family: Menlo;"><span class="" style="color: rgb(187, 44, 162);">void</span> x264_macroblock_write_cabac( <span class="" style="color: rgb(79, 129, 135);">x264_t</span> *h, <span class="" style="color: rgb(79, 129, 135);">x264_cabac_t</span> *cb
 )</div>
<div class="" style="margin: 0px; font-family: Menlo;">{</div>
<div class="" style="margin: 0px; font-family: Menlo; color: rgb(120, 73, 42);"><span class="">    </span><span class="" style="color: rgb(187, 44, 162);">if</span><span class="">( </span>CHROMA444<span class=""> )</span></div>
<div class="" style="margin: 0px; font-family: Menlo; color: rgb(49, 89, 93);"><span class="">        </span>x264_macroblock_write_cabac_internal<span class="">( h, cb, </span><span class="" style="color: rgb(39, 42, 216);">3</span><span class="">, </span><span class="" style="color: rgb(39, 42, 216);">0</span><span class=""> );</span></div>
<div class="" style="margin: 0px; font-family: Menlo;">    <span class="" style="color: rgb(187, 44, 162);">else</span></div>
<div class="" style="margin: 0px; font-family: Menlo; color: rgb(49, 89, 93);"><span class="">        </span>x264_macroblock_write_cabac_internal<span class="">( h, cb, </span><span class="" style="color: rgb(39, 42, 216);">1</span><span class="">, </span><span class="" style="color: rgb(39, 42, 216);">1</span><span class=""> );</span></div>
<div class="" style="margin: 0px; font-family: Menlo;">}</div>
</div>
<div class=""><br class="">
</div>
<div class="">while, in rdo.c, an macro defined for it</div>
<div class="">
<div class="" style="margin: 0px; font-family: Menlo; color: rgb(0, 132, 0);">#define x264_macroblock_write_cabac  static x264_macroblock_size_cabac</div>
</div>
<div class="" style="margin: 0px; font-family: Menlo; color: rgb(0, 132, 0);"><br class="">
</div>
<div class="" style="margin: 0px; font-family: Menlo;">this make the symbol¡¯s name to be <span class="" style="color: rgb(0, 132, 0);">x264_macroblock_size_cabac </span>as a static function</div>
<div class="" style="margin: 0px; font-family: Menlo;">however, there still declaration for <span class="" style="color: rgb(0, 132, 0);">x264_macroblock_write_cabac </span>and in the decoder.c, there are calls for it, that makes a link break.</div>
<div class="" style="margin: 0px; font-family: Menlo;"><br class="">
</div>
<div class="" style="margin: 0px; font-family: Menlo;">I don¡¯t know whether function above is the desired one, but there is no the other <span class="" style="color: rgb(0, 132, 0);">x264_macroblock_write_cabac</span></div>
<div class="" style="margin: 0px; font-family: Menlo;"><br class="">
</div>
<div class="" style="margin: 0px; font-family: Menlo;">2.  x264_cabac_mb_skip defined as following</div>
<div class="" style="margin: 0px; font-family: Menlo;"><br class="">
</div>
<div class="" style="margin: 0px; font-family: Menlo;">
<div class="" style="margin: 0px; color: rgb(0, 132, 0);">#if !RDO_SKIP_BS</div>
<div class="" style="margin: 0px;"><span class="" style="color: rgb(187, 44, 162);">void</span> x264_cabac_mb_skip( <span class="" style="color: rgb(79, 129, 135);">x264_t</span> *h, <span class="" style="color: rgb(187, 44, 162);">int</span> b_skip )</div>
<div class="" style="margin: 0px;">{</div>
<div class="" style="margin: 0px; color: rgb(79, 129, 135);"><span class="">    </span><span class="" style="color: rgb(187, 44, 162);">int</span><span class=""> ctx = h-></span>mb<span class="">.</span>cache<span class="">.</span>i_neighbour_skip<span class=""> + </span><span class="" style="color: rgb(39, 42, 216);">11</span><span class="">;</span></div>
<div class="" style="margin: 0px;">    <span class="" style="color: rgb(187, 44, 162);">if</span>( h-><span class="" style="color: rgb(79, 129, 135);">sh</span>.<span class="" style="color: rgb(79, 129, 135);">i_type</span> != <span class="" style="color: rgb(49, 89, 93);">SLICE_TYPE_P</span> )</div>
<div class="" style="margin: 0px;">       ctx += <span class="" style="color: rgb(39, 42, 216);">13</span>;</div>
<div class="" style="margin: 0px;">    <span class="" style="color: rgb(120, 73, 42);">x264_cabac_encode_decision</span>( &h-><span class="" style="color: rgb(79, 129, 135);">cabac</span>, ctx, b_skip );</div>
<div class="" style="margin: 0px;">}</div>
<div class="" style="margin: 0px; color: rgb(0, 132, 0);">#endif</div>
<div class="" style="margin: 0px; color: rgb(0, 132, 0);"><br class="">
</div>
<div class="" style="margin: 0px;">however, the encoder calls x264_cabac_mb_skip directly without any micro checking.</div>
<div class="" style="margin: 0px;">and, the <span class="" style="color: rgb(0, 132, 0);">RDO_SKIP_BS </span>is defined as 1</div>
<div class="" style="margin: 0px;">which make x264_cabac_mb_skip disappeared.</div>
<div class="" style="margin: 0px;"><br class="">
</div>
<div class="" style="margin: 0px;">So, what is the correct action, should the x264_cabac_mb_skip not been called there or should I change <span class="" style="color: rgb(0, 132, 0);">!RDO_SKIP_BS to </span><span class="" style="color: rgb(0, 132, 0);">RDO_SKIP_BS</span>?</div>
<div class="" style="margin: 0px;"><br class="">
</div>
<div class="" style="margin: 0px;"><br class="">
</div>
<div class="" style="margin: 0px;">regards,</div>
<div class="" style="margin: 0px;">zhao yulong</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</body>
</html>