You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-05-16 08:38:24 +02:00
avcodec/mips: build fix for MSA
Modified sps and pps access from old HEVCContext(s) structure to newly introduced HEVCParamSets(ps).
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Commit in master: b0732b0214
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
committed by
Michael Niedermayer
parent
6dcd2ebd34
commit
7236080d27
+141
-141
@@ -1915,24 +1915,24 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
v16u8 vec0;
|
v16u8 vec0;
|
||||||
HEVCLocalContext *lc = s->HEVClc;
|
HEVCLocalContext *lc = s->HEVClc;
|
||||||
int i;
|
int i;
|
||||||
int hshift = s->sps->hshift[c_idx];
|
int hshift = s->ps.sps->hshift[c_idx];
|
||||||
int vshift = s->sps->vshift[c_idx];
|
int vshift = s->ps.sps->vshift[c_idx];
|
||||||
int size_in_luma_h = 16 << hshift;
|
int size_in_luma_h = 16 << hshift;
|
||||||
int size_in_tbs_h = size_in_luma_h >> s->sps->log2_min_tb_size;
|
int size_in_tbs_h = size_in_luma_h >> s->ps.sps->log2_min_tb_size;
|
||||||
int size_in_luma_v = 16 << vshift;
|
int size_in_luma_v = 16 << vshift;
|
||||||
int size_in_tbs_v = size_in_luma_v >> s->sps->log2_min_tb_size;
|
int size_in_tbs_v = size_in_luma_v >> s->ps.sps->log2_min_tb_size;
|
||||||
int x = x0 >> hshift;
|
int x = x0 >> hshift;
|
||||||
int y = y0 >> vshift;
|
int y = y0 >> vshift;
|
||||||
int x_tb = (x0 >> s->sps->log2_min_tb_size) & s->sps->tb_mask;
|
int x_tb = (x0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask;
|
||||||
int y_tb = (y0 >> s->sps->log2_min_tb_size) & s->sps->tb_mask;
|
int y_tb = (y0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask;
|
||||||
|
|
||||||
int cur_tb_addr =
|
int cur_tb_addr =
|
||||||
s->pps->min_tb_addr_zs[(y_tb) * (s->sps->tb_mask + 2) + (x_tb)];
|
s->ps.pps->min_tb_addr_zs[(y_tb) * (s->ps.sps->tb_mask + 2) + (x_tb)];
|
||||||
|
|
||||||
ptrdiff_t stride = s->frame->linesize[c_idx] / sizeof(uint8_t);
|
ptrdiff_t stride = s->frame->linesize[c_idx] / sizeof(uint8_t);
|
||||||
uint8_t *src = (uint8_t *) s->frame->data[c_idx] + x + y * stride;
|
uint8_t *src = (uint8_t *) s->frame->data[c_idx] + x + y * stride;
|
||||||
|
|
||||||
int min_pu_width = s->sps->min_pu_width;
|
int min_pu_width = s->ps.sps->min_pu_width;
|
||||||
|
|
||||||
enum IntraPredMode mode = c_idx ? lc->tu.intra_pred_mode_c :
|
enum IntraPredMode mode = c_idx ? lc->tu.intra_pred_mode_c :
|
||||||
lc->tu.intra_pred_mode;
|
lc->tu.intra_pred_mode;
|
||||||
@@ -1948,41 +1948,41 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
uint8_t *filtered_top = filtered_top_array + 1;
|
uint8_t *filtered_top = filtered_top_array + 1;
|
||||||
int cand_bottom_left = lc->na.cand_bottom_left
|
int cand_bottom_left = lc->na.cand_bottom_left
|
||||||
&& cur_tb_addr >
|
&& cur_tb_addr >
|
||||||
s->pps->min_tb_addr_zs[((y_tb + size_in_tbs_v) & s->sps->tb_mask) *
|
s->ps.pps->min_tb_addr_zs[((y_tb + size_in_tbs_v) & s->ps.sps->tb_mask) *
|
||||||
(s->sps->tb_mask + 2) + (x_tb - 1)];
|
(s->ps.sps->tb_mask + 2) + (x_tb - 1)];
|
||||||
int cand_left = lc->na.cand_left;
|
int cand_left = lc->na.cand_left;
|
||||||
int cand_up_left = lc->na.cand_up_left;
|
int cand_up_left = lc->na.cand_up_left;
|
||||||
int cand_up = lc->na.cand_up;
|
int cand_up = lc->na.cand_up;
|
||||||
int cand_up_right = lc->na.cand_up_right
|
int cand_up_right = lc->na.cand_up_right
|
||||||
&& cur_tb_addr >
|
&& cur_tb_addr >
|
||||||
s->pps->min_tb_addr_zs[(y_tb - 1) * (s->sps->tb_mask + 2) +
|
s->ps.pps->min_tb_addr_zs[(y_tb - 1) * (s->ps.sps->tb_mask + 2) +
|
||||||
((x_tb + size_in_tbs_h) & s->sps->tb_mask)];
|
((x_tb + size_in_tbs_h) & s->ps.sps->tb_mask)];
|
||||||
|
|
||||||
int bottom_left_size =
|
int bottom_left_size =
|
||||||
(((y0 + 2 * size_in_luma_v) >
|
(((y0 + 2 * size_in_luma_v) >
|
||||||
(s->sps->height) ? (s->sps->height) : (y0 +
|
(s->ps.sps->height) ? (s->ps.sps->height) : (y0 +
|
||||||
2 * size_in_luma_v)) -
|
2 * size_in_luma_v)) -
|
||||||
(y0 + size_in_luma_v)) >> vshift;
|
(y0 + size_in_luma_v)) >> vshift;
|
||||||
int top_right_size =
|
int top_right_size =
|
||||||
(((x0 + 2 * size_in_luma_h) >
|
(((x0 + 2 * size_in_luma_h) >
|
||||||
(s->sps->width) ? (s->sps->width) : (x0 + 2 * size_in_luma_h)) -
|
(s->ps.sps->width) ? (s->ps.sps->width) : (x0 + 2 * size_in_luma_h)) -
|
||||||
(x0 + size_in_luma_h)) >> hshift;
|
(x0 + size_in_luma_h)) >> hshift;
|
||||||
|
|
||||||
if (s->pps->constrained_intra_pred_flag == 1) {
|
if (s->ps.pps->constrained_intra_pred_flag == 1) {
|
||||||
int size_in_luma_pu_v = ((size_in_luma_v) >> s->sps->log2_min_pu_size);
|
int size_in_luma_pu_v = ((size_in_luma_v) >> s->ps.sps->log2_min_pu_size);
|
||||||
int size_in_luma_pu_h = ((size_in_luma_h) >> s->sps->log2_min_pu_size);
|
int size_in_luma_pu_h = ((size_in_luma_h) >> s->ps.sps->log2_min_pu_size);
|
||||||
int on_pu_edge_x = !(x0 & ((1 << s->sps->log2_min_pu_size) - 1));
|
int on_pu_edge_x = !(x0 & ((1 << s->ps.sps->log2_min_pu_size) - 1));
|
||||||
int on_pu_edge_y = !(y0 & ((1 << s->sps->log2_min_pu_size) - 1));
|
int on_pu_edge_y = !(y0 & ((1 << s->ps.sps->log2_min_pu_size) - 1));
|
||||||
if (!size_in_luma_pu_h)
|
if (!size_in_luma_pu_h)
|
||||||
size_in_luma_pu_h++;
|
size_in_luma_pu_h++;
|
||||||
if (cand_bottom_left == 1 && on_pu_edge_x) {
|
if (cand_bottom_left == 1 && on_pu_edge_x) {
|
||||||
int x_left_pu = ((x0 - 1) >> s->sps->log2_min_pu_size);
|
int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_bottom_pu =
|
int y_bottom_pu =
|
||||||
((y0 + size_in_luma_v) >> s->sps->log2_min_pu_size);
|
((y0 + size_in_luma_v) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_v) >
|
((size_in_luma_pu_v) >
|
||||||
(s->sps->min_pu_height -
|
(s->ps.sps->min_pu_height -
|
||||||
y_bottom_pu) ? (s->sps->min_pu_height -
|
y_bottom_pu) ? (s->ps.sps->min_pu_height -
|
||||||
y_bottom_pu) : (size_in_luma_pu_v));
|
y_bottom_pu) : (size_in_luma_pu_v));
|
||||||
cand_bottom_left = 0;
|
cand_bottom_left = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -1993,12 +1993,12 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
PF_INTRA);
|
PF_INTRA);
|
||||||
}
|
}
|
||||||
if (cand_left == 1 && on_pu_edge_x) {
|
if (cand_left == 1 && on_pu_edge_x) {
|
||||||
int x_left_pu = ((x0 - 1) >> s->sps->log2_min_pu_size);
|
int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_left_pu = ((y0) >> s->sps->log2_min_pu_size);
|
int y_left_pu = ((y0) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_v) >
|
((size_in_luma_pu_v) >
|
||||||
(s->sps->min_pu_height -
|
(s->ps.sps->min_pu_height -
|
||||||
y_left_pu) ? (s->sps->min_pu_height -
|
y_left_pu) ? (s->ps.sps->min_pu_height -
|
||||||
y_left_pu) : (size_in_luma_pu_v));
|
y_left_pu) : (size_in_luma_pu_v));
|
||||||
cand_left = 0;
|
cand_left = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -2009,20 +2009,20 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
PF_INTRA);
|
PF_INTRA);
|
||||||
}
|
}
|
||||||
if (cand_up_left == 1) {
|
if (cand_up_left == 1) {
|
||||||
int x_left_pu = ((x0 - 1) >> s->sps->log2_min_pu_size);
|
int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_top_pu = ((y0 - 1) >> s->sps->log2_min_pu_size);
|
int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
cand_up_left =
|
cand_up_left =
|
||||||
(s->ref->tab_mvf[(x_left_pu) +
|
(s->ref->tab_mvf[(x_left_pu) +
|
||||||
(y_top_pu) * min_pu_width]).pred_flag ==
|
(y_top_pu) * min_pu_width]).pred_flag ==
|
||||||
PF_INTRA;
|
PF_INTRA;
|
||||||
}
|
}
|
||||||
if (cand_up == 1 && on_pu_edge_y) {
|
if (cand_up == 1 && on_pu_edge_y) {
|
||||||
int x_top_pu = ((x0) >> s->sps->log2_min_pu_size);
|
int x_top_pu = ((x0) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_top_pu = ((y0 - 1) >> s->sps->log2_min_pu_size);
|
int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_h) >
|
((size_in_luma_pu_h) >
|
||||||
(s->sps->min_pu_width -
|
(s->ps.sps->min_pu_width -
|
||||||
x_top_pu) ? (s->sps->min_pu_width -
|
x_top_pu) ? (s->ps.sps->min_pu_width -
|
||||||
x_top_pu) : (size_in_luma_pu_h));
|
x_top_pu) : (size_in_luma_pu_h));
|
||||||
cand_up = 0;
|
cand_up = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -2032,13 +2032,13 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
min_pu_width]).pred_flag == PF_INTRA);
|
min_pu_width]).pred_flag == PF_INTRA);
|
||||||
}
|
}
|
||||||
if (cand_up_right == 1 && on_pu_edge_y) {
|
if (cand_up_right == 1 && on_pu_edge_y) {
|
||||||
int y_top_pu = ((y0 - 1) >> s->sps->log2_min_pu_size);
|
int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int x_right_pu =
|
int x_right_pu =
|
||||||
((x0 + size_in_luma_h) >> s->sps->log2_min_pu_size);
|
((x0 + size_in_luma_h) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_h) >
|
((size_in_luma_pu_h) >
|
||||||
(s->sps->min_pu_width -
|
(s->ps.sps->min_pu_width -
|
||||||
x_right_pu) ? (s->sps->min_pu_width -
|
x_right_pu) ? (s->ps.sps->min_pu_width -
|
||||||
x_right_pu) : (size_in_luma_pu_h));
|
x_right_pu) : (size_in_luma_pu_h));
|
||||||
cand_up_right = 0;
|
cand_up_right = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -2093,56 +2093,56 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
} while (0);
|
} while (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->pps->constrained_intra_pred_flag == 1) {
|
if (s->ps.pps->constrained_intra_pred_flag == 1) {
|
||||||
if (cand_bottom_left || cand_left || cand_up_left || cand_up
|
if (cand_bottom_left || cand_left || cand_up_left || cand_up
|
||||||
|| cand_up_right) {
|
|| cand_up_right) {
|
||||||
int size_max_x =
|
int size_max_x =
|
||||||
x0 + ((2 * 16) << hshift) <
|
x0 + ((2 * 16) << hshift) <
|
||||||
s->sps->width ? 2 * 16 : (s->sps->width - x0) >> hshift;
|
s->ps.sps->width ? 2 * 16 : (s->ps.sps->width - x0) >> hshift;
|
||||||
int size_max_y =
|
int size_max_y =
|
||||||
y0 + ((2 * 16) << vshift) <
|
y0 + ((2 * 16) << vshift) <
|
||||||
s->sps->height ? 2 * 16 : (s->sps->height - y0) >> vshift;
|
s->ps.sps->height ? 2 * 16 : (s->ps.sps->height - y0) >> vshift;
|
||||||
int j = 16 + (cand_bottom_left ? bottom_left_size : 0) - 1;
|
int j = 16 + (cand_bottom_left ? bottom_left_size : 0) - 1;
|
||||||
if (!cand_up_right) {
|
if (!cand_up_right) {
|
||||||
size_max_x = x0 + ((16) << hshift) < s->sps->width ?
|
size_max_x = x0 + ((16) << hshift) < s->ps.sps->width ?
|
||||||
16 : (s->sps->width - x0) >> hshift;
|
16 : (s->ps.sps->width - x0) >> hshift;
|
||||||
}
|
}
|
||||||
if (!cand_bottom_left) {
|
if (!cand_bottom_left) {
|
||||||
size_max_y = y0 + ((16) << vshift) < s->sps->height ?
|
size_max_y = y0 + ((16) << vshift) < s->ps.sps->height ?
|
||||||
16 : (s->sps->height - y0) >> vshift;
|
16 : (s->ps.sps->height - y0) >> vshift;
|
||||||
}
|
}
|
||||||
if (cand_bottom_left || cand_left || cand_up_left) {
|
if (cand_bottom_left || cand_left || cand_up_left) {
|
||||||
while (j > -1
|
while (j > -1
|
||||||
&&
|
&&
|
||||||
!((s->ref->tab_mvf[(((x0 +
|
!((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((j) <<
|
((j) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
j--;
|
j--;
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((j)
|
log2_min_pu_size)) + (((y0 + ((j)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag == PF_INTRA)) {
|
* min_pu_width]).pred_flag == PF_INTRA)) {
|
||||||
j = 0;
|
j = 0;
|
||||||
while (j < size_max_x
|
while (j < size_max_x
|
||||||
&&
|
&&
|
||||||
!((s->ref->tab_mvf[(((x0 +
|
!((s->ref->tab_mvf[(((x0 +
|
||||||
((j) << hshift)) >> s->sps->
|
((j) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((-1) <<
|
((-1) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->
|
>> s->
|
||||||
sps->
|
ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2151,12 +2151,12 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i -
|
((i -
|
||||||
1) << hshift)) >> s->sps->
|
1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((-1) <<
|
((-1) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->
|
>> s->
|
||||||
sps->
|
ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2168,11 +2168,11 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
while (j < size_max_x
|
while (j < size_max_x
|
||||||
&&
|
&&
|
||||||
!((s->ref->tab_mvf[(((x0 +
|
!((s->ref->tab_mvf[(((x0 +
|
||||||
((j) << hshift)) >> s->sps->
|
((j) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((-1)
|
log2_min_pu_size)) + (((y0 + ((-1)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2184,11 +2184,11 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i -
|
((i -
|
||||||
1) << hshift)) >>
|
1) << hshift)) >>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
+ (((y0 + ((-1)
|
+ (((y0 + ((-1)
|
||||||
<< vshift))
|
<< vshift))
|
||||||
>>
|
>>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
*
|
*
|
||||||
min_pu_width]).pred_flag ==
|
min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2199,11 +2199,11 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i -
|
((i -
|
||||||
1) << hshift)) >>
|
1) << hshift)) >>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
+ (((y0 + ((-1)
|
+ (((y0 + ((-1)
|
||||||
<< vshift))
|
<< vshift))
|
||||||
>>
|
>>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
*
|
*
|
||||||
min_pu_width]).pred_flag ==
|
min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2218,11 +2218,11 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
for (i = 0; i < (0) + (size_max_y); i += 4)
|
for (i = 0; i < (0) + (size_max_y); i += 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((i) <<
|
((i) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2247,12 +2247,12 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((i -
|
((i -
|
||||||
3) <<
|
3) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2261,11 +2261,11 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
a = ((left[i - 3]) * 0x01010101U);
|
a = ((left[i - 3]) * 0x01010101U);
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((-1)
|
log2_min_pu_size)) + (((y0 + ((-1)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag == PF_INTRA))
|
* min_pu_width]).pred_flag == PF_INTRA))
|
||||||
left[-1] = left[0];
|
left[-1] = left[0];
|
||||||
@@ -2281,12 +2281,12 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((i -
|
((i -
|
||||||
3) <<
|
3) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2300,11 +2300,11 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
for (i = 0; i < (0) + (size_max_x); i += 4)
|
for (i = 0; i < (0) + (size_max_x); i += 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i) << hshift)) >> s->sps->
|
((i) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((-1)
|
log2_min_pu_size)) + (((y0 + ((-1)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2376,8 +2376,8 @@ void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
top[-1] = left[-1];
|
top[-1] = left[-1];
|
||||||
|
|
||||||
|
|
||||||
if (!s->sps->intra_smoothing_disabled_flag
|
if (!s->ps.sps->intra_smoothing_disabled_flag
|
||||||
&& (c_idx == 0 || s->sps->chroma_format_idc == 3)) {
|
&& (c_idx == 0 || s->ps.sps->chroma_format_idc == 3)) {
|
||||||
if (mode != INTRA_DC && 16 != 4) {
|
if (mode != INTRA_DC && 16 != 4) {
|
||||||
int intra_hor_ver_dist_thresh[] = { 7, 1, 0 };
|
int intra_hor_ver_dist_thresh[] = { 7, 1, 0 };
|
||||||
int min_dist_vert_hor =
|
int min_dist_vert_hor =
|
||||||
@@ -2432,24 +2432,24 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
v8i16 mul_val1 = { 1, 2, 3, 4, 5, 6, 7, 8 };
|
v8i16 mul_val1 = { 1, 2, 3, 4, 5, 6, 7, 8 };
|
||||||
HEVCLocalContext *lc = s->HEVClc;
|
HEVCLocalContext *lc = s->HEVClc;
|
||||||
int i;
|
int i;
|
||||||
int hshift = s->sps->hshift[c_idx];
|
int hshift = s->ps.sps->hshift[c_idx];
|
||||||
int vshift = s->sps->vshift[c_idx];
|
int vshift = s->ps.sps->vshift[c_idx];
|
||||||
int size_in_luma_h = 32 << hshift;
|
int size_in_luma_h = 32 << hshift;
|
||||||
int size_in_tbs_h = size_in_luma_h >> s->sps->log2_min_tb_size;
|
int size_in_tbs_h = size_in_luma_h >> s->ps.sps->log2_min_tb_size;
|
||||||
int size_in_luma_v = 32 << vshift;
|
int size_in_luma_v = 32 << vshift;
|
||||||
int size_in_tbs_v = size_in_luma_v >> s->sps->log2_min_tb_size;
|
int size_in_tbs_v = size_in_luma_v >> s->ps.sps->log2_min_tb_size;
|
||||||
int x = x0 >> hshift;
|
int x = x0 >> hshift;
|
||||||
int y = y0 >> vshift;
|
int y = y0 >> vshift;
|
||||||
int x_tb = (x0 >> s->sps->log2_min_tb_size) & s->sps->tb_mask;
|
int x_tb = (x0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask;
|
||||||
int y_tb = (y0 >> s->sps->log2_min_tb_size) & s->sps->tb_mask;
|
int y_tb = (y0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask;
|
||||||
|
|
||||||
int cur_tb_addr =
|
int cur_tb_addr =
|
||||||
s->pps->min_tb_addr_zs[(y_tb) * (s->sps->tb_mask + 2) + (x_tb)];
|
s->ps.pps->min_tb_addr_zs[(y_tb) * (s->ps.sps->tb_mask + 2) + (x_tb)];
|
||||||
|
|
||||||
ptrdiff_t stride = s->frame->linesize[c_idx] / sizeof(uint8_t);
|
ptrdiff_t stride = s->frame->linesize[c_idx] / sizeof(uint8_t);
|
||||||
uint8_t *src = (uint8_t *) s->frame->data[c_idx] + x + y * stride;
|
uint8_t *src = (uint8_t *) s->frame->data[c_idx] + x + y * stride;
|
||||||
|
|
||||||
int min_pu_width = s->sps->min_pu_width;
|
int min_pu_width = s->ps.sps->min_pu_width;
|
||||||
|
|
||||||
enum IntraPredMode mode = c_idx ? lc->tu.intra_pred_mode_c :
|
enum IntraPredMode mode = c_idx ? lc->tu.intra_pred_mode_c :
|
||||||
lc->tu.intra_pred_mode;
|
lc->tu.intra_pred_mode;
|
||||||
@@ -2465,41 +2465,41 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
uint8_t *filtered_top = filtered_top_array + 1;
|
uint8_t *filtered_top = filtered_top_array + 1;
|
||||||
int cand_bottom_left = lc->na.cand_bottom_left
|
int cand_bottom_left = lc->na.cand_bottom_left
|
||||||
&& cur_tb_addr >
|
&& cur_tb_addr >
|
||||||
s->pps->min_tb_addr_zs[((y_tb + size_in_tbs_v) & s->sps->tb_mask) *
|
s->ps.pps->min_tb_addr_zs[((y_tb + size_in_tbs_v) & s->ps.sps->tb_mask) *
|
||||||
(s->sps->tb_mask + 2) + (x_tb - 1)];
|
(s->ps.sps->tb_mask + 2) + (x_tb - 1)];
|
||||||
int cand_left = lc->na.cand_left;
|
int cand_left = lc->na.cand_left;
|
||||||
int cand_up_left = lc->na.cand_up_left;
|
int cand_up_left = lc->na.cand_up_left;
|
||||||
int cand_up = lc->na.cand_up;
|
int cand_up = lc->na.cand_up;
|
||||||
int cand_up_right = lc->na.cand_up_right
|
int cand_up_right = lc->na.cand_up_right
|
||||||
&& cur_tb_addr >
|
&& cur_tb_addr >
|
||||||
s->pps->min_tb_addr_zs[(y_tb - 1) * (s->sps->tb_mask + 2) +
|
s->ps.pps->min_tb_addr_zs[(y_tb - 1) * (s->ps.sps->tb_mask + 2) +
|
||||||
((x_tb + size_in_tbs_h) & s->sps->tb_mask)];
|
((x_tb + size_in_tbs_h) & s->ps.sps->tb_mask)];
|
||||||
|
|
||||||
int bottom_left_size =
|
int bottom_left_size =
|
||||||
(((y0 + 2 * size_in_luma_v) >
|
(((y0 + 2 * size_in_luma_v) >
|
||||||
(s->sps->height) ? (s->sps->height) : (y0 +
|
(s->ps.sps->height) ? (s->ps.sps->height) : (y0 +
|
||||||
2 * size_in_luma_v)) -
|
2 * size_in_luma_v)) -
|
||||||
(y0 + size_in_luma_v)) >> vshift;
|
(y0 + size_in_luma_v)) >> vshift;
|
||||||
int top_right_size =
|
int top_right_size =
|
||||||
(((x0 + 2 * size_in_luma_h) >
|
(((x0 + 2 * size_in_luma_h) >
|
||||||
(s->sps->width) ? (s->sps->width) : (x0 + 2 * size_in_luma_h)) -
|
(s->ps.sps->width) ? (s->ps.sps->width) : (x0 + 2 * size_in_luma_h)) -
|
||||||
(x0 + size_in_luma_h)) >> hshift;
|
(x0 + size_in_luma_h)) >> hshift;
|
||||||
|
|
||||||
if (s->pps->constrained_intra_pred_flag == 1) {
|
if (s->ps.pps->constrained_intra_pred_flag == 1) {
|
||||||
int size_in_luma_pu_v = ((size_in_luma_v) >> s->sps->log2_min_pu_size);
|
int size_in_luma_pu_v = ((size_in_luma_v) >> s->ps.sps->log2_min_pu_size);
|
||||||
int size_in_luma_pu_h = ((size_in_luma_h) >> s->sps->log2_min_pu_size);
|
int size_in_luma_pu_h = ((size_in_luma_h) >> s->ps.sps->log2_min_pu_size);
|
||||||
int on_pu_edge_x = !(x0 & ((1 << s->sps->log2_min_pu_size) - 1));
|
int on_pu_edge_x = !(x0 & ((1 << s->ps.sps->log2_min_pu_size) - 1));
|
||||||
int on_pu_edge_y = !(y0 & ((1 << s->sps->log2_min_pu_size) - 1));
|
int on_pu_edge_y = !(y0 & ((1 << s->ps.sps->log2_min_pu_size) - 1));
|
||||||
if (!size_in_luma_pu_h)
|
if (!size_in_luma_pu_h)
|
||||||
size_in_luma_pu_h++;
|
size_in_luma_pu_h++;
|
||||||
if (cand_bottom_left == 1 && on_pu_edge_x) {
|
if (cand_bottom_left == 1 && on_pu_edge_x) {
|
||||||
int x_left_pu = ((x0 - 1) >> s->sps->log2_min_pu_size);
|
int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_bottom_pu =
|
int y_bottom_pu =
|
||||||
((y0 + size_in_luma_v) >> s->sps->log2_min_pu_size);
|
((y0 + size_in_luma_v) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_v) >
|
((size_in_luma_pu_v) >
|
||||||
(s->sps->min_pu_height -
|
(s->ps.sps->min_pu_height -
|
||||||
y_bottom_pu) ? (s->sps->min_pu_height -
|
y_bottom_pu) ? (s->ps.sps->min_pu_height -
|
||||||
y_bottom_pu) : (size_in_luma_pu_v));
|
y_bottom_pu) : (size_in_luma_pu_v));
|
||||||
cand_bottom_left = 0;
|
cand_bottom_left = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -2510,12 +2510,12 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
PF_INTRA);
|
PF_INTRA);
|
||||||
}
|
}
|
||||||
if (cand_left == 1 && on_pu_edge_x) {
|
if (cand_left == 1 && on_pu_edge_x) {
|
||||||
int x_left_pu = ((x0 - 1) >> s->sps->log2_min_pu_size);
|
int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_left_pu = ((y0) >> s->sps->log2_min_pu_size);
|
int y_left_pu = ((y0) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_v) >
|
((size_in_luma_pu_v) >
|
||||||
(s->sps->min_pu_height -
|
(s->ps.sps->min_pu_height -
|
||||||
y_left_pu) ? (s->sps->min_pu_height -
|
y_left_pu) ? (s->ps.sps->min_pu_height -
|
||||||
y_left_pu) : (size_in_luma_pu_v));
|
y_left_pu) : (size_in_luma_pu_v));
|
||||||
cand_left = 0;
|
cand_left = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -2526,20 +2526,20 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
PF_INTRA);
|
PF_INTRA);
|
||||||
}
|
}
|
||||||
if (cand_up_left == 1) {
|
if (cand_up_left == 1) {
|
||||||
int x_left_pu = ((x0 - 1) >> s->sps->log2_min_pu_size);
|
int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_top_pu = ((y0 - 1) >> s->sps->log2_min_pu_size);
|
int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
cand_up_left =
|
cand_up_left =
|
||||||
(s->ref->tab_mvf[(x_left_pu) +
|
(s->ref->tab_mvf[(x_left_pu) +
|
||||||
(y_top_pu) * min_pu_width]).pred_flag ==
|
(y_top_pu) * min_pu_width]).pred_flag ==
|
||||||
PF_INTRA;
|
PF_INTRA;
|
||||||
}
|
}
|
||||||
if (cand_up == 1 && on_pu_edge_y) {
|
if (cand_up == 1 && on_pu_edge_y) {
|
||||||
int x_top_pu = ((x0) >> s->sps->log2_min_pu_size);
|
int x_top_pu = ((x0) >> s->ps.sps->log2_min_pu_size);
|
||||||
int y_top_pu = ((y0 - 1) >> s->sps->log2_min_pu_size);
|
int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_h) >
|
((size_in_luma_pu_h) >
|
||||||
(s->sps->min_pu_width -
|
(s->ps.sps->min_pu_width -
|
||||||
x_top_pu) ? (s->sps->min_pu_width -
|
x_top_pu) ? (s->ps.sps->min_pu_width -
|
||||||
x_top_pu) : (size_in_luma_pu_h));
|
x_top_pu) : (size_in_luma_pu_h));
|
||||||
cand_up = 0;
|
cand_up = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -2549,13 +2549,13 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
min_pu_width]).pred_flag == PF_INTRA);
|
min_pu_width]).pred_flag == PF_INTRA);
|
||||||
}
|
}
|
||||||
if (cand_up_right == 1 && on_pu_edge_y) {
|
if (cand_up_right == 1 && on_pu_edge_y) {
|
||||||
int y_top_pu = ((y0 - 1) >> s->sps->log2_min_pu_size);
|
int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size);
|
||||||
int x_right_pu =
|
int x_right_pu =
|
||||||
((x0 + size_in_luma_h) >> s->sps->log2_min_pu_size);
|
((x0 + size_in_luma_h) >> s->ps.sps->log2_min_pu_size);
|
||||||
int max =
|
int max =
|
||||||
((size_in_luma_pu_h) >
|
((size_in_luma_pu_h) >
|
||||||
(s->sps->min_pu_width -
|
(s->ps.sps->min_pu_width -
|
||||||
x_right_pu) ? (s->sps->min_pu_width -
|
x_right_pu) ? (s->ps.sps->min_pu_width -
|
||||||
x_right_pu) : (size_in_luma_pu_h));
|
x_right_pu) : (size_in_luma_pu_h));
|
||||||
cand_up_right = 0;
|
cand_up_right = 0;
|
||||||
for (i = 0; i < max; i += 2)
|
for (i = 0; i < max; i += 2)
|
||||||
@@ -2608,56 +2608,56 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
} while (0);
|
} while (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s->pps->constrained_intra_pred_flag == 1) {
|
if (s->ps.pps->constrained_intra_pred_flag == 1) {
|
||||||
if (cand_bottom_left || cand_left || cand_up_left || cand_up
|
if (cand_bottom_left || cand_left || cand_up_left || cand_up
|
||||||
|| cand_up_right) {
|
|| cand_up_right) {
|
||||||
int size_max_x =
|
int size_max_x =
|
||||||
x0 + ((2 * 32) << hshift) <
|
x0 + ((2 * 32) << hshift) <
|
||||||
s->sps->width ? 2 * 32 : (s->sps->width - x0) >> hshift;
|
s->ps.sps->width ? 2 * 32 : (s->ps.sps->width - x0) >> hshift;
|
||||||
int size_max_y =
|
int size_max_y =
|
||||||
y0 + ((2 * 32) << vshift) <
|
y0 + ((2 * 32) << vshift) <
|
||||||
s->sps->height ? 2 * 32 : (s->sps->height - y0) >> vshift;
|
s->ps.sps->height ? 2 * 32 : (s->ps.sps->height - y0) >> vshift;
|
||||||
int j = 32 + (cand_bottom_left ? bottom_left_size : 0) - 1;
|
int j = 32 + (cand_bottom_left ? bottom_left_size : 0) - 1;
|
||||||
if (!cand_up_right) {
|
if (!cand_up_right) {
|
||||||
size_max_x = x0 + ((32) << hshift) < s->sps->width ?
|
size_max_x = x0 + ((32) << hshift) < s->ps.sps->width ?
|
||||||
32 : (s->sps->width - x0) >> hshift;
|
32 : (s->ps.sps->width - x0) >> hshift;
|
||||||
}
|
}
|
||||||
if (!cand_bottom_left) {
|
if (!cand_bottom_left) {
|
||||||
size_max_y = y0 + ((32) << vshift) < s->sps->height ?
|
size_max_y = y0 + ((32) << vshift) < s->ps.sps->height ?
|
||||||
32 : (s->sps->height - y0) >> vshift;
|
32 : (s->ps.sps->height - y0) >> vshift;
|
||||||
}
|
}
|
||||||
if (cand_bottom_left || cand_left || cand_up_left) {
|
if (cand_bottom_left || cand_left || cand_up_left) {
|
||||||
while (j > -1
|
while (j > -1
|
||||||
&&
|
&&
|
||||||
!((s->ref->tab_mvf[(((x0 +
|
!((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((j) <<
|
((j) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
j--;
|
j--;
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((j)
|
log2_min_pu_size)) + (((y0 + ((j)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag == PF_INTRA)) {
|
* min_pu_width]).pred_flag == PF_INTRA)) {
|
||||||
j = 0;
|
j = 0;
|
||||||
while (j < size_max_x
|
while (j < size_max_x
|
||||||
&&
|
&&
|
||||||
!((s->ref->tab_mvf[(((x0 +
|
!((s->ref->tab_mvf[(((x0 +
|
||||||
((j) << hshift)) >> s->sps->
|
((j) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((-1) <<
|
((-1) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->
|
>> s->
|
||||||
sps->
|
ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2666,12 +2666,12 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i -
|
((i -
|
||||||
1) << hshift)) >> s->sps->
|
1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((-1) <<
|
((-1) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->
|
>> s->
|
||||||
sps->
|
ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2683,11 +2683,11 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
while (j < size_max_x
|
while (j < size_max_x
|
||||||
&&
|
&&
|
||||||
!((s->ref->tab_mvf[(((x0 +
|
!((s->ref->tab_mvf[(((x0 +
|
||||||
((j) << hshift)) >> s->sps->
|
((j) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((-1)
|
log2_min_pu_size)) + (((y0 + ((-1)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2699,11 +2699,11 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i -
|
((i -
|
||||||
1) << hshift)) >>
|
1) << hshift)) >>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
+ (((y0 + ((-1)
|
+ (((y0 + ((-1)
|
||||||
<< vshift))
|
<< vshift))
|
||||||
>>
|
>>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
*
|
*
|
||||||
min_pu_width]).pred_flag ==
|
min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2714,11 +2714,11 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i -
|
((i -
|
||||||
1) << hshift)) >>
|
1) << hshift)) >>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
+ (((y0 + ((-1)
|
+ (((y0 + ((-1)
|
||||||
<< vshift))
|
<< vshift))
|
||||||
>>
|
>>
|
||||||
s->sps->log2_min_pu_size))
|
s->ps.sps->log2_min_pu_size))
|
||||||
*
|
*
|
||||||
min_pu_width]).pred_flag ==
|
min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2733,11 +2733,11 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
for (i = 0; i < (0) + (size_max_y); i += 4)
|
for (i = 0; i < (0) + (size_max_y); i += 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((i) <<
|
((i) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2761,12 +2761,12 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((i -
|
((i -
|
||||||
3) <<
|
3) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2775,11 +2775,11 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
a = ((left[i - 3]) * 0x01010101U);
|
a = ((left[i - 3]) * 0x01010101U);
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((-1)
|
log2_min_pu_size)) + (((y0 + ((-1)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag == PF_INTRA))
|
* min_pu_width]).pred_flag == PF_INTRA))
|
||||||
left[-1] = left[0];
|
left[-1] = left[0];
|
||||||
@@ -2795,12 +2795,12 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
i > (size_max_y - 1) - (size_max_y); i -= 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((-1) << hshift)) >> s->sps->
|
((-1) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 +
|
log2_min_pu_size)) + (((y0 +
|
||||||
((i -
|
((i -
|
||||||
3) <<
|
3) <<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2814,11 +2814,11 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
for (i = 0; i < (0) + (size_max_x); i += 4)
|
for (i = 0; i < (0) + (size_max_x); i += 4)
|
||||||
if (!
|
if (!
|
||||||
((s->ref->tab_mvf[(((x0 +
|
((s->ref->tab_mvf[(((x0 +
|
||||||
((i) << hshift)) >> s->sps->
|
((i) << hshift)) >> s->ps.sps->
|
||||||
log2_min_pu_size)) + (((y0 + ((-1)
|
log2_min_pu_size)) + (((y0 + ((-1)
|
||||||
<<
|
<<
|
||||||
vshift))
|
vshift))
|
||||||
>> s->sps->
|
>> s->ps.sps->
|
||||||
log2_min_pu_size))
|
log2_min_pu_size))
|
||||||
* min_pu_width]).pred_flag ==
|
* min_pu_width]).pred_flag ==
|
||||||
PF_INTRA))
|
PF_INTRA))
|
||||||
@@ -2893,8 +2893,8 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
top[-1] = left[-1];
|
top[-1] = left[-1];
|
||||||
|
|
||||||
|
|
||||||
if (!s->sps->intra_smoothing_disabled_flag
|
if (!s->ps.sps->intra_smoothing_disabled_flag
|
||||||
&& (c_idx == 0 || s->sps->chroma_format_idc == 3)) {
|
&& (c_idx == 0 || s->ps.sps->chroma_format_idc == 3)) {
|
||||||
if (mode != INTRA_DC && 32 != 4) {
|
if (mode != INTRA_DC && 32 != 4) {
|
||||||
int intra_hor_ver_dist_thresh[] = { 7, 1, 0 };
|
int intra_hor_ver_dist_thresh[] = { 7, 1, 0 };
|
||||||
int min_dist_vert_hor =
|
int min_dist_vert_hor =
|
||||||
@@ -2908,7 +2908,7 @@ void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx)
|
|||||||
0 ? ((int) (mode - 26U)) : (-((int) (mode - 26U))))));
|
0 ? ((int) (mode - 26U)) : (-((int) (mode - 26U))))));
|
||||||
if (min_dist_vert_hor > intra_hor_ver_dist_thresh[5 - 3]) {
|
if (min_dist_vert_hor > intra_hor_ver_dist_thresh[5 - 3]) {
|
||||||
int threshold = 1 << (8 - 5);
|
int threshold = 1 << (8 - 5);
|
||||||
if (s->sps->sps_strong_intra_smoothing_enable_flag
|
if (s->ps.sps->sps_strong_intra_smoothing_enable_flag
|
||||||
&& c_idx == 0
|
&& c_idx == 0
|
||||||
&& ((top[-1] + top[63] - 2 * top[31]) >=
|
&& ((top[-1] + top[63] - 2 * top[31]) >=
|
||||||
0 ? (top[-1] + top[63] -
|
0 ? (top[-1] + top[63] -
|
||||||
|
|||||||
Reference in New Issue
Block a user