[FFmpeg-devel] [PATCH v2] cbs_av1: Fill tile width/height values when uniform_tile_spacing_flag is set

Mark Thompson sw at jkqxz.net
Tue Sep 1 00:00:57 EEST 2020


They are not explicitly in the bitstream in this case, but it is helpful
to be able to use these values without always needing to check the flag
beforehand.
---
On 31/08/2020 08:31, Wang, Fei W wrote:>> -----Original Message-----
>> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of Mark
>> Thompson
>> Sent: Sunday, August 23, 2020 6:26 AM
>> To: ffmpeg-devel at ffmpeg.org
>> Subject: [FFmpeg-devel] [PATCH] cbs_av1: Fill tile width/height values when
>> uniform_tile_spacing_flag is set
>>
>> They are not explicitly in the bitstream in this case, but it is helpful to be able to
>> use these values without always needing to check the flag beforehand.
>> ---
>>    libavcodec/cbs_av1_syntax_template.c | 9 +++++++++
>>    1 file changed, 9 insertions(+)
>>
>> diff --git a/libavcodec/cbs_av1_syntax_template.c
>> b/libavcodec/cbs_av1_syntax_template.c
>> index a315e8868a..2c976a9574 100644
>> --- a/libavcodec/cbs_av1_syntax_template.c
>> +++ b/libavcodec/cbs_av1_syntax_template.c
>> @@ -624,6 +624,15 @@ static int FUNC(tile_info)(CodedBitstreamContext *ctx,
>> RWContext *rw,
>>                current->tile_rows_log2;
>>            current->tile_rows = (sb_rows + tile_height_sb - 1) / tile_height_sb;
>>
>> +        for (i = 0; i < current->tile_cols - 1; i++)
>> +            infer(width_in_sbs_minus_1[i], tile_width_sb);
>> +        infer(width_in_sbs_minus_1[i],
>> +              sb_cols - (current->tile_cols - 1) * tile_width_sb);
> Should this by using "tile_width_sb -1" and "sb_cols - (current->tile_cols - 1) * tile_width_sb - 1" ?  And same for height_in_sbs_minus_1.

Oops, yeah (just looking at the numbers to check means you don't notice the minus_1).

>> +        for (i = 0; i < current->tile_rows - 1; i++)
>> +            infer(height_in_sbs_minus_1[i], tile_height_sb);
>> +        infer(height_in_sbs_minus_1[i],
>> +              sb_rows - (current->tile_rows - 1) * tile_height_sb);
>> +
>>        } else {
>>            int widest_tile_sb, start_sb, size_sb, max_width, max_height;
>>

New version enclosing.

Thanks,

- Mark

  libavcodec/cbs_av1_syntax_template.c | 9 +++++++++
  1 file changed, 9 insertions(+)

diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c
index 19b82bc3f8..2d2e240e3e 100644
--- a/libavcodec/cbs_av1_syntax_template.c
+++ b/libavcodec/cbs_av1_syntax_template.c
@@ -636,6 +636,15 @@ static int FUNC(tile_info)(CodedBitstreamContext *ctx, RWContext *rw,
              current->tile_rows_log2;
          current->tile_rows = (sb_rows + tile_height_sb - 1) / tile_height_sb;

+        for (i = 0; i < current->tile_cols - 1; i++)
+            infer(width_in_sbs_minus_1[i], tile_width_sb - 1);
+        infer(width_in_sbs_minus_1[i],
+              sb_cols - (current->tile_cols - 1) * tile_width_sb - 1);
+        for (i = 0; i < current->tile_rows - 1; i++)
+            infer(height_in_sbs_minus_1[i], tile_height_sb - 1);
+        infer(height_in_sbs_minus_1[i],
+              sb_rows - (current->tile_rows - 1) * tile_height_sb - 1);
+
      } else {
          int widest_tile_sb, start_sb, size_sb, max_width, max_height;

-- 
2.28.0


More information about the ffmpeg-devel mailing list