[x264-devel] Re: CABAC performance
Son Minh Tran
son-minh.tran at int-evry.fr
Thu May 31 11:41:48 CEST 2007
Dear All,
Thank you very much for your reaction on the topic I launched up,
especially for the documentation from Peter List.
I would like to go further a little bit on modifying the state of the
CABAC encoder. So in the the code of x264, I change the static table
x264_cabac_range_lps and x264_cabac_transition with the dynamic ones
(calculated in correspondance with the state number and quantized Range
given as options of x264). Then I made some proper changes concerning
the new dynamic tables like
-in x264_cabac_context_init: I use the init state ~ 0,5 probablitity for
all contexts
-in x264_cabac_encode_decision, I deployed the new tables for
transition and range calculation
My question is do I miss some steps in changing the state number and
quantized Range for CABAC. That is because with greater number of state
and finer quantization of Range (so the CABAC model is much closer to
the theory arithmetic coder) I don,t have a solid increase in
compression efficiency
Thank you for your hints
Best Regards
Son
List, Peter a écrit :
>
>>>> Encoding CABAC takes the same amount of time as decoding CABAC. But
>>>>
> the
>
>>>> encoder does lots of other computations, most of which are analysis
>>>>
>
>
>>>> only and not duplicated in the decoder. So CABAC is a large
>>>>
> fraction of
>
>>>> the decode time, and a small fraction of the encode time.
>>>> Where did you hear "16% bitrate and 25-30% speed"?
>>>>
>>> I take these data from the article "Video coding with h.264/AVC:
>>>
> tools,
>
>>> performance and complexity" written by Jorn Ostermann, Jan Bormans,
>>> Peter List, Detlev MArpe, Matthias Narroschke, Fernando Pereira,
>>>
> Thomas
>
>>> Stockhammer and Thomas Wedi
>>> (http://iphome.hhi.de/marpe/download/h264_casm04.pdf) See on page
>>>
> 23.
>
> Dear Son
>
> These "up to 16% improvement" are one of the typical PR-statements
> common in this business. Simply, don't believe them.
> As far as I can remember, the statement was somehow true during the
> development of H.264. Even at that state CABAC was mainly successful for
> very high and very low rates, because the VLC codes were optimized for
> medium rates. As a reaction on this gain achieved with CABC, Nokia and
> Real came up with CAVLC algorithms; mainly because CABAC is very bad for
> hardware implementations and too complex in any case. Also the IPR
> situation for CABAC seemed unfortunate the time.
> If CABAC is compared with CAVLC the gains are MUCH less. As far as I
> know only a few percent (something like 4%?). The gains achieved by
> CABAC are mainly due to CA (Context Adaptivity) and only to a small
> degree due to BAC (Binary Arithmetic Coding). With context adaptivity
> VLC's are almost as good.
> But CABAC had been proposed by one of the chairpersons of the JVT-group,
> and it was "somehow difficult" to remove it from the standard again...
> As time went by, people seemed to have forgotten that the huge gains
> were measured against NON Adaptive VLC coding.
>
> I have attached a document with some temporal results comparing two
> schemes of CAVLC (Nokia and Real) with a draft from CABAC. I believe
> both CAVLC AND CABAC are more efficient in the final standard, but the
> relation should still be comparable to the one in the document...
>
> Regards
> Peter List
>
>
>
--
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html
More information about the x264-devel
mailing list