Quote:
Originally Posted by Dark Shikari
What are you talking about with the zerosleft decoding? It is merged with dequantization, and is not two loops (and I don't think this was done recently either).Would you like to point me to a specific case so I can fix it rather than complaining?
Any suggestion for improved context calculation performance will probably allow me to make x264's RDO faster as well.
Same with the actual CABAC decoding--are you suggesting that there is a better way to organize LUTs/similar that results in better faster arithmetic decoding than what LAVC already has?
|
Yes, I have read the latest libavcodec in ffdshow tryouts, It has been merged.
Regarding to the context calculation, take the coded block flag decoding as a example,
const unsigned int iCabac4x4CnxtAdd[8] = {0x9, 0x18, 0x801, 0x810, 0x9, 0x100008, 0x801, 0x100800};
unsigned int contxt = contxt1+contxt2;
for(int i=0; i<16; i++)
{
int contextcurr = contxt&3;
contxt >>= 2;
if(cbp[i>>2])
{
cbf = cabac_dec_symbol(..., contextcurr);
if(cbf)
{
contxt += iCabac4x4CnxtAdd[i&7];
......
}
}
}
update the contxt1 and contxt2 using the contxt;
Yes, I have a faster arithmetic decoding and I have written part of it into the DiAVC.