Короткое определение

Прямоугольная область кадра, кодируемая независимо от других tiles. Способ HEVC/AV1 включить wavefront parallel encoding/decoding.

Tile – прямоугольная область видеокадра, которая может кодироваться и декодироваться независимо от других tile того же кадра. Современные кодеки (HEVC, AV1, VVC) позволяют энкодеру разбивать каждый кадр на сетку tile – обычно 2×2 или 4×4 – и обрабатывать каждый tile как отдельную, параллельную единицу работы. Мотивация – параллелизм: один 8K-кадр слишком большой для одного ядра CPU, чтобы кодировать или декодировать в realtime, но разбитый на 16 tile, работа умещается на 16 ядрах.

Технологическое ограничение, делающее tile рабочими: predictions не могут пересекать границы tile внутри одного кадра. Каждый tile самодостаточен для intra-prediction и motion vectors внутри кадра, и worker N, декодирующий tile N, никогда не ждёт worker M, декодирующий tile M. Маленькая цена: predictions, которые могли бы выиграть от заглядывания через границу tile, не могут – это немного снижает эффективность сжатия, обычно 1–3 % bitrate-штрафа в зависимости от числа tile. Для realtime-работы и стриминга высокого разрешения выигрыш от параллелизма драматически перевешивает цену по bitrate.

Для продуктовой команды tile – это enabling-технология за realtime-кодированием и декодированием 4K и 8K. Без tile одно ядро CPU должно было бы последовательно обрабатывать каждый макроблок кадра, что не успевает за 4K60 на потребительском железе. С tile декодирование естественно масштабируется по ядрам и кремниевым реализациям – любой современный аппаратный декодер (NVENC, Quick Sync, VideoToolbox, NETINT VPU, чипсеты smart-TV) обрабатывает tile параллельно. Видимый результат: 4K HDR плавно играет на телефоне или ТВ, которые с трудом тянули бы это в эпоху H.264, потому что tile позволяет кремнию параллелить работу.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.