View Single Post
Old 27th December 2008, 14:49   #49  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
Quote:
Originally Posted by Dark Shikari View Post
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.
schweinsz is offline   Reply With Quote