Lines Matching refs:it

22 static void InitLeft(VP8EncIterator* const it) {  in InitLeft()  argument
23 it->y_left_[-1] = it->u_left_[-1] = it->v_left_[-1] = in InitLeft()
24 (it->y_ > 0) ? 129 : 127; in InitLeft()
25 memset(it->y_left_, 129, 16); in InitLeft()
26 memset(it->u_left_, 129, 8); in InitLeft()
27 memset(it->v_left_, 129, 8); in InitLeft()
28 it->left_nz_[8] = 0; in InitLeft()
29 if (it->top_derr_ != NULL) { in InitLeft()
30 memset(&it->left_derr_, 0, sizeof(it->left_derr_)); in InitLeft()
34 static void InitTop(VP8EncIterator* const it) { in InitTop() argument
35 const VP8Encoder* const enc = it->enc_; in InitTop()
44 void VP8IteratorSetRow(VP8EncIterator* const it, int y) { in VP8IteratorSetRow() argument
45 VP8Encoder* const enc = it->enc_; in VP8IteratorSetRow()
46 it->x_ = 0; in VP8IteratorSetRow()
47 it->y_ = y; in VP8IteratorSetRow()
48 it->bw_ = &enc->parts_[y & (enc->num_parts_ - 1)]; in VP8IteratorSetRow()
49 it->preds_ = enc->preds_ + y * 4 * enc->preds_w_; in VP8IteratorSetRow()
50 it->nz_ = enc->nz_; in VP8IteratorSetRow()
51 it->mb_ = enc->mb_info_ + y * enc->mb_w_; in VP8IteratorSetRow()
52 it->y_top_ = enc->y_top_; in VP8IteratorSetRow()
53 it->uv_top_ = enc->uv_top_; in VP8IteratorSetRow()
54 InitLeft(it); in VP8IteratorSetRow()
57 void VP8IteratorReset(VP8EncIterator* const it) { in VP8IteratorReset() argument
58 VP8Encoder* const enc = it->enc_; in VP8IteratorReset()
59 VP8IteratorSetRow(it, 0); in VP8IteratorReset()
60 VP8IteratorSetCountDown(it, enc->mb_w_ * enc->mb_h_); // default in VP8IteratorReset()
61 InitTop(it); in VP8IteratorReset()
62 memset(it->bit_count_, 0, sizeof(it->bit_count_)); in VP8IteratorReset()
63 it->do_trellis_ = 0; in VP8IteratorReset()
66 void VP8IteratorSetCountDown(VP8EncIterator* const it, int count_down) { in VP8IteratorSetCountDown() argument
67 it->count_down_ = it->count_down0_ = count_down; in VP8IteratorSetCountDown()
70 int VP8IteratorIsDone(const VP8EncIterator* const it) { in VP8IteratorIsDone() argument
71 return (it->count_down_ <= 0); in VP8IteratorIsDone()
74 void VP8IteratorInit(VP8Encoder* const enc, VP8EncIterator* const it) { in VP8IteratorInit() argument
75 it->enc_ = enc; in VP8IteratorInit()
76 it->yuv_in_ = (uint8_t*)WEBP_ALIGN(it->yuv_mem_); in VP8IteratorInit()
77 it->yuv_out_ = it->yuv_in_ + YUV_SIZE_ENC; in VP8IteratorInit()
78 it->yuv_out2_ = it->yuv_out_ + YUV_SIZE_ENC; in VP8IteratorInit()
79 it->yuv_p_ = it->yuv_out2_ + YUV_SIZE_ENC; in VP8IteratorInit()
80 it->lf_stats_ = enc->lf_stats_; in VP8IteratorInit()
81 it->percent0_ = enc->percent_; in VP8IteratorInit()
82 it->y_left_ = (uint8_t*)WEBP_ALIGN(it->yuv_left_mem_ + 1); in VP8IteratorInit()
83 it->u_left_ = it->y_left_ + 16 + 16; in VP8IteratorInit()
84 it->v_left_ = it->u_left_ + 16; in VP8IteratorInit()
85 it->top_derr_ = enc->top_derr_; in VP8IteratorInit()
86 VP8IteratorReset(it); in VP8IteratorInit()
89 int VP8IteratorProgress(const VP8EncIterator* const it, int delta) { in VP8IteratorProgress() argument
90 VP8Encoder* const enc = it->enc_; in VP8IteratorProgress()
92 const int done = it->count_down0_ - it->count_down_; in VP8IteratorProgress()
93 const int percent = (it->count_down0_ <= 0) in VP8IteratorProgress()
94 ? it->percent0_ in VP8IteratorProgress()
95 : it->percent0_ + delta * done / it->count_down0_; in VP8IteratorProgress()
131 void VP8IteratorImport(VP8EncIterator* const it, uint8_t* const tmp_32) { in VP8IteratorImport() argument
132 const VP8Encoder* const enc = it->enc_; in VP8IteratorImport()
133 const int x = it->x_, y = it->y_; in VP8IteratorImport()
143 ImportBlock(ysrc, pic->y_stride, it->yuv_in_ + Y_OFF_ENC, w, h, 16); in VP8IteratorImport()
144 ImportBlock(usrc, pic->uv_stride, it->yuv_in_ + U_OFF_ENC, uv_w, uv_h, 8); in VP8IteratorImport()
145 ImportBlock(vsrc, pic->uv_stride, it->yuv_in_ + V_OFF_ENC, uv_w, uv_h, 8); in VP8IteratorImport()
151 InitLeft(it); in VP8IteratorImport()
154 it->y_left_[-1] = it->u_left_[-1] = it->v_left_[-1] = 127; in VP8IteratorImport()
156 it->y_left_[-1] = ysrc[- 1 - pic->y_stride]; in VP8IteratorImport()
157 it->u_left_[-1] = usrc[- 1 - pic->uv_stride]; in VP8IteratorImport()
158 it->v_left_[-1] = vsrc[- 1 - pic->uv_stride]; in VP8IteratorImport()
160 ImportLine(ysrc - 1, pic->y_stride, it->y_left_, h, 16); in VP8IteratorImport()
161 ImportLine(usrc - 1, pic->uv_stride, it->u_left_, uv_h, 8); in VP8IteratorImport()
162 ImportLine(vsrc - 1, pic->uv_stride, it->v_left_, uv_h, 8); in VP8IteratorImport()
165 it->y_top_ = tmp_32 + 0; in VP8IteratorImport()
166 it->uv_top_ = tmp_32 + 16; in VP8IteratorImport()
188 void VP8IteratorExport(const VP8EncIterator* const it) { in VP8IteratorExport() argument
189 const VP8Encoder* const enc = it->enc_; in VP8IteratorExport()
191 const int x = it->x_, y = it->y_; in VP8IteratorExport()
192 const uint8_t* const ysrc = it->yuv_out_ + Y_OFF_ENC; in VP8IteratorExport()
193 const uint8_t* const usrc = it->yuv_out_ + U_OFF_ENC; in VP8IteratorExport()
194 const uint8_t* const vsrc = it->yuv_out_ + V_OFF_ENC; in VP8IteratorExport()
234 void VP8IteratorNzToBytes(VP8EncIterator* const it) { in VP8IteratorNzToBytes() argument
235 const int tnz = it->nz_[0], lnz = it->nz_[-1]; in VP8IteratorNzToBytes()
236 int* const top_nz = it->top_nz_; in VP8IteratorNzToBytes()
237 int* const left_nz = it->left_nz_; in VP8IteratorNzToBytes()
267 void VP8IteratorBytesToNz(VP8EncIterator* const it) { in VP8IteratorBytesToNz() argument
269 const int* const top_nz = it->top_nz_; in VP8IteratorBytesToNz()
270 const int* const left_nz = it->left_nz_; in VP8IteratorBytesToNz()
282 *it->nz_ = nz; in VP8IteratorBytesToNz()
290 void VP8IteratorSaveBoundary(VP8EncIterator* const it) { in VP8IteratorSaveBoundary() argument
291 VP8Encoder* const enc = it->enc_; in VP8IteratorSaveBoundary()
292 const int x = it->x_, y = it->y_; in VP8IteratorSaveBoundary()
293 const uint8_t* const ysrc = it->yuv_out_ + Y_OFF_ENC; in VP8IteratorSaveBoundary()
294 const uint8_t* const uvsrc = it->yuv_out_ + U_OFF_ENC; in VP8IteratorSaveBoundary()
298 it->y_left_[i] = ysrc[15 + i * BPS]; in VP8IteratorSaveBoundary()
301 it->u_left_[i] = uvsrc[7 + i * BPS]; in VP8IteratorSaveBoundary()
302 it->v_left_[i] = uvsrc[15 + i * BPS]; in VP8IteratorSaveBoundary()
305 it->y_left_[-1] = it->y_top_[15]; in VP8IteratorSaveBoundary()
306 it->u_left_[-1] = it->uv_top_[0 + 7]; in VP8IteratorSaveBoundary()
307 it->v_left_[-1] = it->uv_top_[8 + 7]; in VP8IteratorSaveBoundary()
310 memcpy(it->y_top_, ysrc + 15 * BPS, 16); in VP8IteratorSaveBoundary()
311 memcpy(it->uv_top_, uvsrc + 7 * BPS, 8 + 8); in VP8IteratorSaveBoundary()
315 int VP8IteratorNext(VP8EncIterator* const it) { in VP8IteratorNext() argument
316 if (++it->x_ == it->enc_->mb_w_) { in VP8IteratorNext()
317 VP8IteratorSetRow(it, ++it->y_); in VP8IteratorNext()
319 it->preds_ += 4; in VP8IteratorNext()
320 it->mb_ += 1; in VP8IteratorNext()
321 it->nz_ += 1; in VP8IteratorNext()
322 it->y_top_ += 16; in VP8IteratorNext()
323 it->uv_top_ += 16; in VP8IteratorNext()
325 return (0 < --it->count_down_); in VP8IteratorNext()
331 void VP8SetIntra16Mode(const VP8EncIterator* const it, int mode) { in VP8SetIntra16Mode() argument
332 uint8_t* preds = it->preds_; in VP8SetIntra16Mode()
336 preds += it->enc_->preds_w_; in VP8SetIntra16Mode()
338 it->mb_->type_ = 1; in VP8SetIntra16Mode()
341 void VP8SetIntra4Mode(const VP8EncIterator* const it, const uint8_t* modes) { in VP8SetIntra4Mode() argument
342 uint8_t* preds = it->preds_; in VP8SetIntra4Mode()
346 preds += it->enc_->preds_w_; in VP8SetIntra4Mode()
349 it->mb_->type_ = 0; in VP8SetIntra4Mode()
352 void VP8SetIntraUVMode(const VP8EncIterator* const it, int mode) { in VP8SetIntraUVMode() argument
353 it->mb_->uv_mode_ = mode; in VP8SetIntraUVMode()
356 void VP8SetSkip(const VP8EncIterator* const it, int skip) { in VP8SetSkip() argument
357 it->mb_->skip_ = skip; in VP8SetSkip()
360 void VP8SetSegment(const VP8EncIterator* const it, int segment) { in VP8SetSegment() argument
361 it->mb_->segment_ = segment; in VP8SetSegment()
403 void VP8IteratorStartI4(VP8EncIterator* const it) { in VP8IteratorStartI4() argument
404 const VP8Encoder* const enc = it->enc_; in VP8IteratorStartI4()
407 it->i4_ = 0; // first 4x4 sub-block in VP8IteratorStartI4()
408 it->i4_top_ = it->i4_boundary_ + VP8TopLeftI4[0]; in VP8IteratorStartI4()
412 it->i4_boundary_[i] = it->y_left_[15 - i]; in VP8IteratorStartI4()
415 it->i4_boundary_[17 + i] = it->y_top_[i]; in VP8IteratorStartI4()
418 if (it->x_ < enc->mb_w_ - 1) { in VP8IteratorStartI4()
420 it->i4_boundary_[17 + i] = it->y_top_[i]; in VP8IteratorStartI4()
424 it->i4_boundary_[17 + i] = it->i4_boundary_[17 + 15]; in VP8IteratorStartI4()
427 VP8IteratorNzToBytes(it); // import the non-zero context in VP8IteratorStartI4()
430 int VP8IteratorRotateI4(VP8EncIterator* const it, in VP8IteratorRotateI4() argument
432 const uint8_t* const blk = yuv_out + VP8Scan[it->i4_]; in VP8IteratorRotateI4()
433 uint8_t* const top = it->i4_top_; in VP8IteratorRotateI4()
440 if ((it->i4_ & 3) != 3) { // if not on the right sub-blocks #3, #7, #11, #15 in VP8IteratorRotateI4()
450 ++it->i4_; in VP8IteratorRotateI4()
451 if (it->i4_ == 16) { // we're done in VP8IteratorRotateI4()
455 it->i4_top_ = it->i4_boundary_ + VP8TopLeftI4[it->i4_]; in VP8IteratorRotateI4()