Commit 53a11135 authored by Anton Khirnov's avatar Anton Khirnov

hevc: simplify splitting the transform tree blocks

parent e36a2f4c
...@@ -1392,29 +1392,24 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0, ...@@ -1392,29 +1392,24 @@ static int hls_transform_tree(HEVCContext *s, int x0, int y0,
} }
if (split_transform_flag) { if (split_transform_flag) {
int x1 = x0 + ((1 << log2_trafo_size) >> 1); const int trafo_size_split = 1 << (log2_trafo_size - 1);
int y1 = y0 + ((1 << log2_trafo_size) >> 1); const int x1 = x0 + trafo_size_split;
const int y1 = y0 + trafo_size_split;
#define SUBDIVIDE(x, y, idx) \
do { \
ret = hls_transform_tree(s, x, y, x0, y0, cb_xBase, cb_yBase, log2_cb_size, \
log2_trafo_size - 1, trafo_depth + 1, idx); \
if (ret < 0) \
return ret; \
} while (0)
ret = hls_transform_tree(s, x0, y0, x0, y0, cb_xBase, cb_yBase, SUBDIVIDE(x0, y0, 0);
log2_cb_size, log2_trafo_size - 1, SUBDIVIDE(x1, y0, 1);
trafo_depth + 1, 0); SUBDIVIDE(x0, y1, 2);
if (ret < 0) SUBDIVIDE(x1, y1, 3);
return ret;
ret = hls_transform_tree(s, x1, y0, x0, y0, cb_xBase, cb_yBase, #undef SUBDIVIDE
log2_cb_size, log2_trafo_size - 1,
trafo_depth + 1, 1);
if (ret < 0)
return ret;
ret = hls_transform_tree(s, x0, y1, x0, y0, cb_xBase, cb_yBase,
log2_cb_size, log2_trafo_size - 1,
trafo_depth + 1, 2);
if (ret < 0)
return ret;
ret = hls_transform_tree(s, x1, y1, x0, y0, cb_xBase, cb_yBase,
log2_cb_size, log2_trafo_size - 1,
trafo_depth + 1, 3);
if (ret < 0)
return ret;
} else { } else {
int min_tu_size = 1 << s->sps->log2_min_tb_size; int min_tu_size = 1 << s->sps->log2_min_tb_size;
int log2_min_tu_size = s->sps->log2_min_tb_size; int log2_min_tu_size = s->sps->log2_min_tb_size;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment