138 for(
int u=0; u<4; u++){
140 int *cbp = tCbBlock[u];
141 int *crp = tCrBlock[u];
143 int sx = ux * 16 + ((u&1) ? 8 : 0);
145 int sy = uy * 16 + ((u>1) ? 8 : 0);
148 for(
int iv=sy; iv<ey; iv++){
150 for(
int ih=sx; ih<ex; ih++){
157 *yp++ = int((0.2990 * rv) + (0.5870 * gv) + (0.1140 * bv) - 128)
159 *cbp++ = int(-(0.1687 * rv) - (0.3313 * gv) + (0.5000 * bv));
160 *crp++ = int((0.5000 * rv) - (0.4187 * gv) - (0.0813 * bv));
166 for(
int b=0; b<4; b++){
173 for(
int y=0; y<8; y+=2){
174 for(
int x=0; x<8; x+=2){
190 const int eobIdx = cs ? CEOBidx : YEOBidx;
191 const int zrlIdx = cs ? CZRLidx : YZRLidx;
195 int absDiff = std::abs(diff);
209 mOBSP->SetBits(diff, dIdx);
213 for(
int n=1; n<64; n++){
214 int absCoefficient = std::abs(
mDCTData[ Zigzag[n] ] );
215 if( absCoefficient ){
221 while( absCoefficient > 0 ){
222 absCoefficient >>= 1;
225 int aIdx = run * 10 + is + (run == 15);
233 mOBSP->SetBits( v, is );