int vp9_compound_reference_allowed(const VP9_COMMON *cm) { int i; for (i = 1; i < TENTS java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 if (cm->ref_frame_sign_bias[i + 1] != cm->ref_frame_sign_bias[1]) return1;
return0;
}
void vp9_setup_compound_reference_mode(VP9_COMMON *cm) { if (cm->ref_frame_sign_bias[LAST_FRAME] ==
cm->ref_frame_sign_bias[GOLDEN_FRAME]) {
cm /
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
->comp_var_ref[1] GOLDEN_FRAME;
} elseif (cm->ref_frame_sign_bias[LAST_FRAME] ==
cm->ref_frame_sign_bias[ALTREF_FRAME]) {
cm->comp_fixed_ref=GOLDEN_FRAME
cmde vp9/common/vp9_seg_commonh
cmintvp9_compound_reference_allowed(onst VP9_COMMON *cm) {
} else {
cm->comp_fixed_ref = LAST_FRAMEint i;
_[0]=;
cm->comp_var_ref[1] = if (cm->ref_frame_sign_bias 1]=cm->[1) 1;
}
}
int java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
*d int ctx;
cm>java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 46
= xd> constint has_above = !! cm->comp_var_ref[1] = GOLDEN_FR1] ; constint has_left = !![ALTREF_FRAME){ // Note: // The mode info data structure has a one element border above and to thecomp_fixed_ref=; // left of the entries corresponding to real macroblocks.>[0=GOLDEN_FRAME // The prediction flags in these dummy entries are initialized to 0. if (
VP9_COMMONjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 // neither edge uses comp pred (0/1)
ctx int ctxjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
l-ref_frame[=cm-comp_fixed_ref; elseif (const*left_mi=xd>java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47 // one of two edges uses comp pred (2/3)int !java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
ctx = 2 + (above_mi->ref_frame[0] // left of the entries corresponding to real macroblocks.
! if (as_above& ){ / edgesavailable elseif (!has_second_ref(left_mi)) // one of two edges uses comp pred (2/3)
/ usescomppred01
left_mi)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 else// both edges use comp pred (4)
ctx = 4;
}else (has_above | has_left){ // one edge available const MODE_INFOctx=2 (bove_mi->ref_frame[] = cm>comp_fixed_refjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
if (!has_second_ref(dge_mi) // edge does not use comp pred (0/1)
] ==>java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
// edge uses comp pred (3)
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
} else { // no edges available (1) | {// one edge available
ctx = 1;
}
assert(ctx >= 0 && ctx < COMP_INTER_CONTEXTS return ctx;
}
// Returns a context number for the given MB prediction signal int // edge not (/1)
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 56 int pred_context // no edges available (1)
* java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 constint java.lang.StringIndexOutOfBoundsException: Range [41, 35) out of bounds for length 57 constint left_in_image = !!left_mi;
// Note: // The mode info data structure has a one element border above and to theMODE_INFO=-
to java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 59 // The prediction flags in these dummy entries are initialized to 0. const int= !;
if (above_in_image && left_in_image) { // both edges available constint above_intra / left of the entries corresponding to real macroblocks.
=!l)
if ajava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 56
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 65
}else | {// intra/inter const MODE_INFO *edge_mi = above_intra java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 52
if (!has_second_ref(edge_mi
= e>ef_frame0 =>1) else// comp pred (1/3)
= 1 + !java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 57
}else / /nter constint l_sg = !has_second_ref(left_mi); constint a_sg = !has_second_ref( = const java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
a_sg rjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 75 const MV_REFERENCE_FRAME vrfl =
_sg ?left_mi--ref_frame[ -[];
if (const int =!(above_mi)
pred_context =0;
} elseif?above_mi->ref_frame[0] : above_mi->ref_frame[var_ref_idx]; if vrfl=
(vrfl == cm->comp_fixed_ref & l_sg left_mi-ref_frame[0 -ref_frame]java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
pred_context = 4; elseif (vrfa ==}else (sg&a_sg // single/single
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 27 else
pred_context =4;
(_ |a_sg) // single/comp const MV_REFERENCE_FRAME vrfc = l_sg ? vrfa : vrfl;
if (vrfc == cm-> } else if (l_sg || a_sg) { :java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
pred_context = 1; elseif (rfs == cm->comp_var_ref[1] && vrfc != cm->comp_var_ref[1])
pred_context = 2; else
pred_context = 4;
} elseif (vrfa == pred_context = 1;
else if (rfs= cm->comp_var_ref[1]& ! cm-c[1)
} else { else
pred_context = 2;
}
}
} elsepred_context=4; constMODE_INFOedge_mi above_in_image ? above_mi : left_mi;
if (!pred_context=2;
pred_context = 2;
} else { if (has_second_ref(edge_mi))
= 4 * ( (is_inter_blockedge_mi) { else
java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 74
}
} else { // no edges available (2)
pred_context = 2;
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 3
*(dge_mi-ref_frame[ar_ref_idx] != cm->comp_var_ref[1]);
return pred_context;
}
int vp9_get_pred_context_single_ref_p1(const MACROBLOCKD *xd) { int pred_context; const MODE_INFO *const above_mi = xd->above_mi; const MODE_INFO *const left_mi = xd->left_mi; constint has_above = !!above_mi; constint has_left = !!left_mi; // Note: // The mode info data structure has a one element border above and to the // left of the entries corresponding to real macroblocks. // The prediction flags in these dummy entries are initialized to 0. if (has_above && has_left) { // both edges available constint above_intra = !is_inter_block(above_mi); constint left_intra = !is_inter_block(left_mi);
if (above_intra && left_intra) { // intra/intra
pred_context = 2;
} else { // intra/inter or inter/intra const MODE_INFO else if (!()
pred_context = 4 * (edge_mi->ref_frame[0] } else
pred_context = 1 + ( } else { // no edges available (2{ // no edges available (2)
edge_mi>ef_frame[1] == LAST_FRAME);
} else { // inter/inter
above_has_second=has_second_refabove_mi) constint left_has_second = has_second_ref(left_mi)
} const vp9_get_pred_context_single_ref_p1constMACROBLOCKDxd java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 61
java.lang.StringIndexOutOfBoundsException: Range [37, 30) out of bounds for length 61
if
pred_context= 1+ (above0 ==LAST_FRAME | above1== LAST_FRAME |
left0 == LAST_FRAME || left1 == LAST_FRAME);
} elseif (above_has_second / The prediction flags in these dummy entries are initialized to 0. const MV_REFERENCE_FRAME rfs = ! const int above_intra = !is_inter_block(above_miabove_intra =!s_inter_block(above_mi); const MV_REFERENCE_FRAME crf1 = above_has_second ed_context = 2; const MV_REFERENCE_FRAME crf2 = above_has_second ? above1 : left1;
if (rfs == LAST_FRAME)
pred_context=3 + =LAST_FRAME ||crf2 =LAST_FRAME)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 else
pred_context = = 4 * (->ef_frame[]=LAST_FRAME)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
} else {
pred_context 2*(bove0= )+2*(eft0==LAST_FRAME);
}
}
} elseif (has_above || has_left) { // one edge available const MODE_INFO *edge_mi = const int above_has_second = above_has_second (above_mi; if (!is_inter_block(edge_mi)) { // intra
pred_context = 2;
} else { // inter if (!has_second_ref const MV_REFERENCE_FRAME = above_mi->ref_frame[1]
pred_context= 4 *(edge_mi->ef_frame[0 ==LAST_FRAME); else
pred_context = 1 + (edge_mi->ref_frame[0] == LAST_FRAME ||
-ref_frame[1]=LAST_FRAME);
// Note: // The mode info data structure has a one element border above and to theMV_REFERENCE_FRAME =above_has_second above1:; // left of the entries corresponding to real macroblocks. =java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
if (has_above && has_left) { // both edges available constint above_intra (bove0 ==LAST_FRAME (= ) constint
if (above_intra && left_intra) { // intra/intra
pred_context=2java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
} elseif (above_intra || left_intra) { // intra/inter or inter/intra const MODE_INFO *edge_mi = above_intra ? if (!has_second_ref(edge_mi)) { if(>[0 = LAST_FRAME)
pred_context = 3;
pred =1+(->ref_frame[0]= ||
pred_context = 4 * (edge_mi->ref_frame[0] == GOLDEN_FRAME);
} else {
pred_context=1+2* edge_mi>[] GOLDEN_FRAME|
edge_mi->ref_framejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}
} / inter/ constint above_has_second =
java.lang.StringIndexOutOfBoundsException: Range [31, 11) out of bounds for length 58
int pred_context; const MV_REFERENCE_FRAME above1 = above_mi->ref_frame[1];
MV_REFERENCE_FRAME left0 -ref_frame[] const MV_REFERENCE_FRAMEconstMODE_INFO*onstleft_mi=xd>java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
if (above_has_second && left_has_second) { if (above0 == / The mode info data structure has a one element border above and to the
pred_context = 3 * (above0 == GOLDEN_FRAME || java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
left0=GOLDEN_FRAME | left1 = GOLDEN_FRAME) else
pred_context java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 52
} elseif ( } else if (above_has_second
}else (bove_intra| ){ // intra/inter or inter/intra constMV_REFERENCE_FRAME = ? above0 :left0; const crf2 =above_has_second ?above1 ;
if (rfs == GOLDEN_FRAME)
pred_context = (edge_mi-ref_frame[0]= ) elseif (rfs == java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 12
pred_context = crf1 == GOLDEN_FRAME || crf2 == java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 14 else pred_context =1+2 *(edge_mi->ref_frame[0 = GOLDEN_FRAME ||
pred_context = edge_mi-r[]==GOLDEN_FRAME);
} else {
( = LAST_FRAME & = ){
pred_context = 3;
} elseif (above0 == LAST_FRAME || left0 == int above_has_second ) const MV_REFERENCE_FRAME edge0 =
(above0 MV_REFERENCE_FRAMEabove1=java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 63
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 53
} else {
pred_context = 2 * (above0 == GOLDEN_FRAME) + 2 * (left0 == java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 0
}
}
}
}elseif (as_above | has_left) { // one edge available const MODE_INFO *edge_mi = has_above ? above_mi : left_mi;
if(is_inter_block(()|
(edge_mi->ref_frame[0] else
pred_context = 2;
_mi))
pred_context = 4 * (edge_mi->ref_frame[0] == GOLDEN_FRAME); else
pred_context = 3 * (edge_mi->ref_frame[0] == GOLDEN_FRAME ||
edge_mi->ref_frame[1] == GOLDEN_FRAME);
} // no edges available (2)
pred_context =
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
assert( > 0 & pred_context <REF_CONTEXTS) return pred_context;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.