MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / asv1_encode_block

Function asv1_encode_block

libavcodec/asv1.c:237–268  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

235}
236
237static inline void asv1_encode_block(ASV1Context *a, DCTELEM block[64]){
238 int i;
239 int nc_count=0;
240
241 put_bits(&a->pb, 8, (block[0] + 32)>>6);
242 block[0]= 0;
243
244 for(i=0; i<10; i++){
245 const int index= scantab[4*i];
246 int ccp=0;
247
248 if( (block[index + 0] = (block[index + 0]*a->q_intra_matrix[index + 0] + (1<<15))>>16) ) ccp |= 8;
249 if( (block[index + 8] = (block[index + 8]*a->q_intra_matrix[index + 8] + (1<<15))>>16) ) ccp |= 4;
250 if( (block[index + 1] = (block[index + 1]*a->q_intra_matrix[index + 1] + (1<<15))>>16) ) ccp |= 2;
251 if( (block[index + 9] = (block[index + 9]*a->q_intra_matrix[index + 9] + (1<<15))>>16) ) ccp |= 1;
252
253 if(ccp){
254 for(;nc_count; nc_count--)
255 put_bits(&a->pb, ccp_tab[0][1], ccp_tab[0][0]);
256
257 put_bits(&a->pb, ccp_tab[ccp][1], ccp_tab[ccp][0]);
258
259 if(ccp&8) asv1_put_level(&a->pb, block[index + 0]);
260 if(ccp&4) asv1_put_level(&a->pb, block[index + 8]);
261 if(ccp&2) asv1_put_level(&a->pb, block[index + 1]);
262 if(ccp&1) asv1_put_level(&a->pb, block[index + 9]);
263 }else{
264 nc_count++;
265 }
266 }
267 put_bits(&a->pb, ccp_tab[16][1], ccp_tab[16][0]);
268}
269
270static inline void asv2_encode_block(ASV1Context *a, DCTELEM block[64]){
271 int i;

Callers 1

encode_mbFunction · 0.85

Calls 1

asv1_put_levelFunction · 0.85

Tested by

no test coverage detected