КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ СЛАЙСОВ В ИЗОБРАЖЕНИЯХ ВИДЕОПОТОКА
CODING AND DECODING OF SLIDES IN VIDEO-STREAM IMAGES

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты осуществления в целом относятся к кодированию и декодированию слайсов в изображениях видеопотока.
УРОВЕНЬ ТЕХНИКИ
th
В стандарте видеокодирования, который называется Высокоэффективное Видеокодирование (HEVC), называемый также H.265, каждое изображение делится на единицы кодирования (CU). Типичный максимальный размер единицы составляет 64×64 пикселей. Единицы кодирования являются листьями иерархической древовидной четверичной структуры, что означает, что изображение может состоять из смеси единиц кодирования с размерами 64×64, 32×32, 16×16 и 8×8 пикселей. Каждая единица кодирования может быть разделена на единицы интра- или интер-кодирования. Единица кодирования может быть затем поделена на единицы предсказания (PU), каждая из которых имеет конкретный режим предсказания. Единица кодирования также может быть разделена на единицы преобразования (TU). Максимальный размер преобразования определяется в потоке битов. В стандарте HEVC одно и то же ограничение применяется как для интра-, так и для интер-кодированных блоков преобразования, и этот ограниченный размер преобразования фиксируется для целой видеопоследовательности. Максимальный размер преобразования в стандарте HEVC составляет 32×32 пикселя. Публикация JCTVC-K1003_v13, B. Bross et al., High Efficiency Video Coding (HEVC) text specification draft 9, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 11 Meeting: Shanghai, China, 10-19 October 2012, в разделе 7,4,2,2 на стр. 67 обеспечивает больше информации о максимальном размере преобразования в соответствии с предшествующим уровнем техники.
Большие преобразования могут эффективно уменьшать накладные расходы для кодирования коэффициентов преобразования. Единицы преобразования также иерархически разбиваются, что означает, что изображение может состоять из смеси блоков преобразования с размерами 32×32, 16×16 и 8×8 пикселей.
Изображения в стандарте HEVC могут быть разделены на различные типы слайсов.
Слайс I является частью изображения, которая содержит только блоки пикселей, то есть единицы интра-кодирования, которые предсказываются из ранее реконструированных пикселей текущего изображения. Эти слайсы также называются интра-кодированными слайсами.
Слайс P является частью изображения, которая содержит блоки пикселей, то есть единицы интер-кодирования, которые предсказываются из одного опорного фрейма, и возможно блоки пикселей, то есть единицы интра-кодирования, которые предсказываются из ранее реконструированных пикселей текущего изображения.
Слайс В является частью изображения, которая содержит блоки пикселей, то есть единицы интер-кодирования, которые предсказываются из одного или двух опорных фреймов, и возможно блоки пикселей, то есть единицы интра-кодирования, которые предсказываются из ранее реконструированных пикселей текущего изображения.
Слайсы, которые не являются слайсами I, называются интер-кодированными слайсами. Слайсы P и слайсы B являются примерами, интер-кодированных слайсов.
К сожалению, визуальные артефакты могут быть замечены для некоторых трудно кодируемых в стандарте HEVC видов контента, таких как вода, огонь, дым, и т.д. Следовательно, существует потребность в кодировании и декодировании видеопотоков, которые предотвращают или по меньшей мере уменьшают визуальные артефакты, заметные в решениях для видеокодирования и декодирования предшествующего уровня техники.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Общей задачей настоящего изобретения является уменьшить видимые артефакты в связи с видеокодированием и декодированием.
Эта и другие задачи решаются вариантами осуществления, раскрытыми в настоящем документе.
Один аспект вариантов осуществления относится к способу, выполняемому кодером, включающим в себя кодер, кодирующий по меньшей мере один слайс в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
Связанный аспект вариантов осуществления определяет кодер, способный кодировать по меньшей мере один слайс в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
Другой связанный аспект вариантов осуществления определяет кодер, содержащий модуль кодирования слайсов для кодирования по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
Дополнительный связанный аспект вариантов осуществления определяет компьютерную программу, включающую в себя средство кода, которое при его выполнении процессором заставляет процессор кодировать по меньшей мере один слайс в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
Другой аспект вариантов осуществления относится к способу, выполняемому кодером, включающим в себя штрафующее кодер использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодируемом слайсе, и/или для единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Связанный аспект вариантов осуществления определяет кодер, способный при работе штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодируемом слайсе, и/или для единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Другой связанный аспект вариантов осуществления определяет кодер, содержащий штрафующий модуль для штрафования использования большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодированных слайсах, и/или для единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Дополнительный связанный аспект вариантов осуществления определяет компьютерную программу, включающую в себя средство кода, которое при его выполнении процессором заставляет процессор штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодируемом слайсе, и/или для единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Дополнительные аспекты вариантов осуществления включают в себя компьютерный программный продукт, включающий в себя считываемый компьютером носитель и компьютерную программу в соответствии с вышеизложенным, хранящуюся на считываемый компьютером носителе. Эти дополнительные аспекты также включают в себя передатчик, включающий в себя блок ввода, способный принимать изображения видеопотока. Передатчик также включает в себя кодер в соответствии с вышеизложенным, соединенный с блоком ввода, и блок вывода, соединенный с кодером и способный выводить кодированный поток битов с закодированными представлениями изображений в видеопотоке.
Варианты осуществления обеспечивают уменьшение видимых артефактов по меньшей мере для некоторых изображений видеопотока путем ограничения или штрафования использования большого размера преобразования для единиц интра-кодирования в интер-кодированных слайсах видеопотока.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Эти варианты осуществления, вместе с их дополнительными целями и преимуществами, могут быть лучше всего поняты из нижеследующего описания, взятого вместе с сопроводительными чертежами, в которых:
Фиг. 1 представляет собой блок-схему, иллюстрирующую способ, выполняемый кодером в соответствии с одним вариантом осуществления;
Фиг. 2 представляет собой блок-схему, иллюстрирующую вариант осуществления способа, изображенного на Фиг. 1;
Фиг. 3 представляет собой блок-схему, иллюстрирующую другой вариант осуществления способа, изображенного на Фиг. 1;
Фиг. 4 представляет собой блок-схему, иллюстрирующую дополнительный вариант осуществления способа, изображенного на Фиг. 1;
Фиг. 5 представляет собой блок-схему, иллюстрирующую дополнительные, необязательные этапы способа, изображенного на Фиг. 1, в соответствии с одним вариантом осуществления;
Фиг. 6 представляет собой блок-схему, иллюстрирующую еще один вариант осуществления способа, изображенного на Фиг. 1;
Фиг. 7 представляет собой блок-схему, иллюстрирующую дополнительный вариант осуществления способа, изображенного на Фиг. 1;
Фиг. 8 представляет собой блок-схему, иллюстрирующую способ, выполняемый кодером в соответствии с другим вариантом осуществления;
Фиг. 9 представляет собой блок-схему, иллюстрирующую вариант осуществления способа, изображенного на Фиг. 8;
Фиг. 10 представляет собой блок-схему, иллюстрирующую другой вариант осуществления способа, изображенного на Фиг. 8;
Фиг. 11 представляет собой блок-схему, иллюстрирующую дополнительный вариант осуществления способа, изображенного на Фиг. 8;
Фиг. 12 представляет собой блок-схему, иллюстрирующую еще один вариант осуществления способа, изображенного на Фиг. 8;
Фиг. 13 представляет собой схематическую структурную схему кодера в соответствии с одним вариантом осуществления;
Фиг. 14 представляет собой схематическую структурную схему кодера в соответствии с другим вариантом осуществления;
Фиг. 15 представляет собой схематическую структурную схему кодера в соответствии с дополнительным вариантом осуществления;
Фиг. 16 представляет собой схематическую структурную схему кодера в соответствии с еще одним вариантом осуществления;
Фиг. 17 представляет собой схематическую структурную схему кодера в соответствии с дополнительным вариантом осуществления;
Фиг. 18 представляет собой схематическую структурную схему передатчика в соответствии с одним вариантом осуществления;
Фиг. 19 представляет собой схематическую структурную схему декодера в соответствии с одним вариантом осуществления;
Фиг. 20 представляет собой схематическую структурную схему декодера в соответствии с другим вариантом осуществления;
Фиг. 21 представляет собой схематическую структурную схему приемника в соответствии с одним вариантом осуществления;
Фиг. 22 представляет собой схематическую структурную схему мобильного устройства в соответствии с одним вариантом осуществления;
Фиг. 23 представляет собой общий вид коммуникационной сети, включающей в себя узел сети в соответствии с одним вариантом осуществления;
Фиг. 24 представляет собой схематическую структурную схему пользовательского терминала в соответствии с одним вариантом осуществления;
Фиг. 25 иллюстрирует часть слайса в интра-кодируемом изображении;
Фиг. 26 иллюстрирует часть слайса в интер-кодируемом изображении;
Фиг. 27 схематично иллюстрирует часть видеопотока изображений;
Фиг. 28A и Фиг. 28B представляют собой гистограммы, показывающие распределение необработанных оценок (Фиг. 28A) и нормализованных оценок (Фиг. 28B);
Фиг. 29A и Фиг. 29B иллюстрируют результаты тестов на основе необработанных оценок (Фиг. 29A) и нормализованных оценок (Фиг. 29B); и
Фиг. 30A и Фиг. 30B иллюстрируют остаточные блочные артефакты для последовательности «Русло реки», базовый параметр квантования 37, для одного варианта осуществления (Фиг. 30A) и для предшествующего уровня техники (Фиг. 30B).
ПОДРОБНОЕ ОПИСАНИЕ
Во всех чертежах одинаковые ссылочные цифры используются для одинаковых или соответствующих элементов.
Варианты осуществления в целом относятся к кодированию и декодированию слайсов в изображениях видеопотока. В частности, варианты осуществления относятся к ограничению использования больших преобразований для некоторых единиц кодирования в выбранных слайсах в изображениях видеопотока в качестве средства предотвращения или по меньшей мере уменьшения визуальных артефактов, которые в противном случае могут быть видны, в частности, для некоторых трудных для кодирования видов контента, таких как вода, огонь, дым и т.д.
Видеокодирование и декодирование предшествующего уровня техники, такое как представленное стандартами HEVC и H.265, используют один и тот же максимальный размер преобразования для всех типов единиц кодирования, то есть для единиц и интра- и интер-кодирования, а также для интра- (I) и интер- (P и B) кодированных слайсов. Следовательно, в стандарте HEVC интра-кодированные единицы кодирования (CU) могут иметь преобразование размера 32×32, что является максимальным размером преобразования в стандарте HEVC. Однако разрешение единиц преобразования (TU) этого максимального размера преобразования, то есть 32×32 пикселя, может вызывать раздражающие визуальные артефакты, когда интра-кодированные CU используются в интер-кодированных слайсах, например в слайсах, отличающихся от интра-кодированных слайсов, для некоторых видов контента.
Соответственно, задачей вариантов осуществления является уменьшение таких визуальных артефактов. Эта задача решается путем ограничения использования больших преобразований, например преобразований размера 32×32, для единиц интра-кодирования в интер-кодированных слайсах, например в стандарте HEVC, меньшим размером преобразования, например 16×16. Предпочтительно максимальный размер преобразования для единиц интра-кодирования в интра-кодированных слайсах и/или для единиц интер-кодирования может быть сохранен равным максимальному размеру преобразования, определенному в стандарте HEVC, то есть 32×32, чтобы сохранить эффективность кодирования больших преобразований.
Обычно в видеокодировании, и в частности в стандарте HEVC, единица кодирования (CU) является блоком кодирования отсчетов яркости (свечения), также обозначаемых как пиксели в данной области техники, и двумя соответствующими блоками кодирования отсчетов насыщенности цвета (цветности) изображения, или блоком кодирования отсчетов монохромных изображений, или изображением, которое кодировано с использованием трех раздельных цветных плоскостей. Блок кодирования (CB) представляет собой блок отсчетов (блок пикселей) размера N×N, такой как N×N блок отсчетов яркости размера N×N или блок отсчетов цветности размера N×N.
Единица кодирования может иметь размер в пределах от максимального размера CU, то есть наибольшей единицы кодирования (LCU), такой как 64×64 пикселей или отсчетов, до самого малого размера CU, то есть наименьшей единицы кодирования (SCU), такой как 8×8 пикселей или отсчетов. Единицы кодирования могут быть иерархическим разбиением типа дерева квадрантов, который подразумевает, что данная CU из  пикселей может быть разбиением на четыре CU из  пикселей, каждая из которых может быть в свою очередь независимо разбита далее на четыре CU и так далее до достижения самого малого размера CU, то есть SCU.
Видеокодирование обычно использует цветовой формат, в котором представляются значения пикселей или отсчеты изображения. Примерами такого цветового формата является цветовой формат красного, зеленого, синего (RGB) и различные форматы яркости+цветности, такие как Y'CrCb, YUV, YIQ, xvYCC, и т.д. Яркость+цветность может быть, например, представлена как Y'CrCb 4:4:4 или, если используется субдискретизация цвета, как например Y'CrCb 4:2:2 или 4:2:0.
Каждая единица кодирования может быть разделена на единицы интра- или интер-кодирования. Единица интра-кодирования является единицей кодирования, для которой используются один или больше режимов интра-предсказания, тогда как единица интер-кодирования является единицей кодирования, для которой используется один или больше режимов интер-предсказания.
Соответственно, единица предсказания (PU) является блоком предсказания отсчетов яркости и двумя соответствующими блоками предсказания цветовых отсчетов изображения, или блоком предсказания монохроматического изображения для изображения, которое кодировано с использованием трех отдельных цветовых плоскостей. Блок предсказания (PB) представляет собой блок отсчетов размера M×N, к которому применяется одно предсказание, такой как блок отсчетов яркости размера M×N или блок отсчетов цветности размера M×N.
Это означает, что у каждой PU есть конкретный режим предсказания, то есть режим интра-предсказания или режим интер-предсказания. Режимы интра-предсказания обычно включают в себя так называемый интра-планарный режим, режим интра-DC и множество интра-угловых режимов, определяющих различные направления предсказания. Режимы интер-предсказания обычно включают в себя так называемые режимы 2N×2N, 2N×N, N×2N, 2N×nU, 2N×nD, nL×2N, nR×2N и N×N.
Единица преобразования (TU) является блоком преобразования отсчетов яркости или четырьмя блоками преобразования отсчетов яркости и двумя соответствующими блоками преобразования цветовых отсчетов изображения, или блоком преобразования отсчета яркости, или четырьмя блоками преобразования отсчетов яркости монохроматического изображения, или изображением, которое кодировано с использованием трех отдельных цветовых плоскостей. Блок преобразования (TB) представляет собой блок отсчетов размера M×N, к которому применяется одно и то же преобразование, такой как блок отсчетов яркости размера M×N или блок отсчетов цветности размера M×N.
В данной области техники элемент синтаксиса или кодовое слово log2_min_transform_block_size_minus2 используется для обозначения минимального размера блока преобразования для видеопотока изображений. Это означает, что переменная Log2MinTrafoSize, представляющая минимальный размер блока преобразования, предпочтительно равна log2_min_transform_block_size_minus2+2. Другой элемент синтаксиса или кодовое слово log2_diff_max_min_transform_block_size определяет разность между максимальным размером блока преобразования и минимальным размером блока преобразования. Это означает, что переменная Log2MaxTrafoSize, представляющая максимальный размер блока преобразования для видеопотока, предпочтительно равна log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size. Максимальный размер преобразования, то есть максимальный размер блока преобразования, в стандарте HEVC составляет 32×32 пикселя или отсчета, соответствуя значению переменной Log2MaxTrafoSize, равному 5. Элементы синтаксиса log2_min_transform_block_size_minus2 и log2_diff_max_min_transform_block_size обычно определяются в наборе параметров последовательности (SPS), и тем самым применяются ко всей последовательности изображений в видеопотоке, относящейся к этому SPS.
В соответствии с одним аспектом раскрывается способ, используемый в кодере для того, чтобы ограничить использование больших преобразований.
Фиг. 1 представляет собой блок-схему, иллюстрирующую способ, выполняемый кодером в соответствии с одним вариантом осуществления. Этот способ содержит кодирование кодером на этапе S1 по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования (CU) в интер-кодируемом слайсе (слайсе P/B) по сравнению с единицами интра-кодирования (CU) в интра-кодируемом слайсе (слайсе I) и/или единицами интер-кодирования (CU).
1
1
2
2
2
1
2
2
1
1
Таким образом, кодер тем самым позволяет больший максимальный размер преобразования для единиц интер-кодирования, которые присутствуют только в интер-кодированных слайсах, то есть слайсах P и B, и/или для единиц интра-кодирования в интра-кодированных слайсах по сравнению с максимальным размером преобразования для единиц интра-кодирования в интер-кодированных слайсах. Например, предположим, что максимальный размер преобразования для единицы интер-кодирования и/или единицы интра-кодирования в интра-кодируемом слайсе, используемый кодером, равен N×N пикселей или отсчетов, тогда кодер ограничивает максимальный размер преобразования для единиц интра-кодирования в интер-кодируемом слайсе величиной N×N пикселей или отсчетов, где N<N. Это означает, что единицы преобразования для единиц интра-кодирования в интер-кодируемом слайсе кодированного видеопотока будут иметь размер, равный или меньше чем N×N пикселей, тогда как единицы преобразования для единиц интер-кодирования и/или единиц интра-кодирования в интра-кодируемом слайсе в кодированном видеопотоке могут иметь размер, равный или меньше чем N×N пикселей.
Как будет далее описано в настоящем документе, ограничение максимального размера преобразования для единиц интра-кодирования в интер-кодированных слайсах по сравнению с единицами интра-кодирования в интра-кодированных слайсах и единицами интер-кодирования в интер-кодированных слайсах может быть применено по меньшей мере к одному слайсу в по меньшей мере одном изображении видеопотока. Это ограничение может, например, применяться ко всем слайсам по меньшей мере одного изображения видеопотока. Это ограничение может, например, применяться ко всем слайсам последовательности из нескольких, то есть по меньшей мере двух, изображений видеопотока. Также возможно, чтобы это ограничение применялось ко всем изображениям видеопотока, и тем самым ко всем слайсам в этих изображениях видеопотока.
В этом последнем случае, способ, показанный на Фиг. 1, содержит кодирование кодером на этапе S1 слайсов в изображениях видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодированных слайсах по сравнению с единицами интра-кодирования в интра-кодированных слайсах и/или единицами интер-кодирования.
В одной реализации варианта осуществления, изображенного на Фиг. 1, кодер предпочтительно кодирует по меньшей мере один слайс путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интер-кодирования (в интер-кодируемом слайсе). Это означает, что любые единицы интра-кодирования в таком интер-кодируемом слайсе будут иметь максимальный размер преобразования, который меньше, чем любая единица интер-кодирования в интер-кодируемом слайсе.
Максимальный размер преобразования единиц интра-кодирования в интра-кодируемом слайсе в этом варианте осуществления реализации может быть больше, чем максимальный размер преобразования единиц интра-кодирования в интер-кодируемом слайсе, например равным максимальному размеру преобразования единиц интер-кодирования. Альтернативно, максимальный размер преобразования единиц интра-кодирования в интра-кодируемом слайсе может быть равным максимальному размеру преобразования единиц интра-кодирования в интер-кодируемом слайсе. В этом последнем случае один и тот же максимальный размер преобразования используется для единиц интра-кодирования независимо от того, присутствуют ли они в интер-кодируемом слайсе или в интра-кодируемом слайсе. Этот один и тот же максимальный размер преобразования, однако, является меньшим, чем соответствующий максимальный размер преобразования, доступный для единиц интер-кодирования в интер-кодируемом слайсе.
В другой реализации варианта осуществления, изображенного на Фиг. 1, кодер предпочтительно кодирует по меньшей мере один слайс путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе. Это означает, что максимальный размер преобразования, доступный для единицы интра-кодирования, зависит от того, присутствует ли единица интра-кодирования в интер-кодируемом слайсе или в интра-кодируемом слайсе.
Максимальный размер преобразования единиц интер-кодирования в интер-кодируемом слайсе в этом варианте осуществления реализации может быть больше, чем максимальный размер преобразования единиц интра-кодирования в интер-кодируемом слайсе, например равным максимальному размеру преобразования единиц интра-кодирования в интра-кодируемом слайсе. Альтернативно, максимальный размер преобразования единиц интер-кодирования может быть равным максимальному размеру преобразования единиц интра-кодирования в интер-кодируемом слайсе.
Фиг. 2 представляет собой блок-схему дополнительной реализации варианта осуществления, показанного на Фиг. 1, в основном путем комбинирования двух описанных выше вариантов. В этой реализации варианта осуществления кодер кодирует на этапе S10 по меньшей мере один слайс путем использования меньшего максимального размера преобразования для единиц интра-кодирования (CU) в интер-кодируемом слайсе (слайсе P/B) по сравнению с единицами интра-кодирования (CU) в интра-кодируемом слайсе (слайсе I), и единицами интер-кодирования (CU).
Максимальный размер преобразования единиц интра-кодирования в интер-кодируемом слайсе в этой реализации варианта осуществления является меньшим, чем соответствующий максимальный размер преобразования как единиц интра-кодирования в интра-кодируемом слайсе, так и единиц интер-кодирования. Максимальные размеры преобразования для последних двух, то есть для единиц интра-кодирования в интра-кодируемом слайсе и для единиц интер-кодирования, являются предпочтительно одинаковыми, но могут отличаться, если они больше, чем максимальный размер преобразования единиц интра-кодирования в интер-кодируемом слайсе.
Фиг. 3 представляет собой пример реализации способа, показанного на Фиг. 1. Этот способ содержит кодирование кодером на этапе S20 интер-слайса (слайса P/B) в по меньшей мере одном изображении путем использования максимального размера преобразования 16×16 пикселей (или отсчетов) для единиц интра-кодирования (CU) в интер-слайсе (слайсе P/B). Этап S21 соответственно содержит кодирование кодером слайса в этом по меньшей мере одном изображении путем использования максимального размера преобразования 32×32 пикселя (или отсчета) для единиц интра-кодирования (CU) в интра-слайсе (слайсе I) и/или в единицах интер-кодирования (CU), предпочтительно для единиц интра-кодирования в интра-слайсе и единиц интер-кодирования.
Этап S20 таким образом выполняется тогда, когда кодер кодирует интер-слайс, то есть слайс P или B, изображений в видеопотоке, и в частности при кодировании единиц интра-кодирования в таком интер-слайсе. Этап S21 выполняется кодером при кодировании интра-слайса и при кодировании единиц интер-кодирования в интер-слайсе.
таким образом, этот вариант осуществления ограничивает использование больших преобразований, например преобразований размера 32×32, для единиц интра-кодирования в интер-кодированных слайсах, например в стандарте HEVC, меньшим размером преобразования, например 16×16 в данном примере реализации. Максимальный размер преобразования для единиц интра-кодирования в интра-кодированных слайсах и для единиц интер-кодирования может быть сохранен равным 32×32 для того, чтобы сохранить эффективность кодирования больших преобразований.
В этом примере реализации блоки преобразования для единиц интра-кодирования в интер-кодированных слайсах могут иметь размер 8×8 или 16×16 и опционально 4×4. Соответственно, блоки преобразования для единицы интра-кодирования в интра-кодированных слайсах и единиц интер-кодирования могут иметь размер 8×8, 16×16 или 32×32 и опционально 4×4.
Следовательно, максимальный размер преобразования подразумевает, что единица преобразования в единице кодирования не может иметь большего размера, чем максимальный размер преобразования, но может иметь меньший размер.
Представленные выше примеры максимальных размеров преобразования, то есть 16×16 и 32×32, должны рассматриваться как иллюстративные, но тем не менее предпочтительные примеры. Другие варианты осуществления включают использование максимального размера преобразования 8×8 на этапе S20 и использование максимального размера преобразования 32×32 на этапе S21, или максимального размера преобразования 8×8 на этапе S20 и использование максимального размера преобразования 16×16 на этапе S21. Действительные значения максимальных размеров преобразования не ограничиваются вариантами осуществления при условии, что максимальный размер преобразования, используемый на этапе S20, меньше максимального размера преобразования, используемого на этапе S21.
Фиг. 4 представляет собой блок-схему, иллюстрирующую другой пример реализации способа, показанного на Фиг. 1. Этот способ содержит генерирование кодером на этапе S30 кодированного потока битов, называемого также кодированной видеопоследовательностью или потоком (CVS), с кодированным представлением по меньшей мере одного слайса. На этом этапе S30 кодер генерирует закодированное представление или представления так, чтобы единицы интра-кодирования (CU) закодированного представления интер-слайса (слайса P/B) были ограничены меньшим максимальным размером преобразования по сравнению с единицами интра-кодирования (CU) закодированного представления интра-слайсов (слайсов I) и/или единиц интер-кодирования (CU) закодированного представления интер-слайса (слайса P/B), предпочтительно по сравнению с единицами интра-кодирования закодированного представления интра-слайса и единицами интер-кодирования закодированного представления интер-слайса.
Следовательно, в одном варианте осуществления кодированный поток битов генерируется на этапе S30 путем использования различных максимальных размеров преобразования в зависимости от того, являются ли единицы кодирования единицами интра-кодирования в интер-кодированных слайсах или нет.
Кодирование слайсов 9 в изображениях 8 видеопотока 7, см. Фиг. 27, выполняется путем генерирования кодированного потока битов на основе первоначальных пиксельных значений, то есть значений цвета, таких как значения яркости + цветности, пикселей в изображениях 8 видеопотока 7.
Таким образом, изображение 8 видеопотока 7 организуется в один или несколько слайсов 9, каждый из которых может быть слайсом I, слайсом P или слайсом B. Слайс 9 затем делится на единицы кодирования, каждая из которых может быть иерархически разбита в структуре дерева квадрантов в диапазоне от LCU и возможно до SCU. Фиг. 25 схематически иллюстрирует часть слайса в интра-кодируемом изображении. В этом примере показанная часть слайса делится на четыре LCU, из которых первая LCU разбивается на четыре меньших CU. Каждая из этих семи CU, показанных на Фиг. 25, кодируется с использованием интра-кодирования и режима предсказания, так как слайс является так называемым слайсом I. Фиг. 26 схематически иллюстрирует часть слайса в интер-кодируемом изображении. В этом случае по меньшей мере некоторые из CU могут кодироваться с использованием интер-кодирования и режима предсказания (обозначены как P на чертеже), тогда как другие CU могут кодироваться с использованием интра-кодирования и режима предсказания (обозначены как I на чертеже).
Интер-кодируемая CU может быть разбита на одну или несколько PU, где каждая такая PU имеет режим интер-предсказания. Такая PU обычно кодируется в процедуре оценки движения, включающей предсказание PU из опорной области в опорном изображении видеопотока или из двух опорных областей в двух опорных изображениях видеопотока. Одна или две опорных области находятся в так называемом процессе оценки движения, который выводит один или два вектора движения и опционально один или два индекса опорных изображений, позволяющих идентифицировать одну или две опорные области. Затем вычисляется разность между PU и опорной областью или комбинацией двух опорных областей. Эта разность представляет разность в значениях пикселей или отсчетов между PU и опорной областью или комбинацией двух опорных областей.
TU является основной единицей для процессов квантования и преобразования. Следовательно, интер-кодируемая CU также разбивается на одну или несколько TU. Одно и то же преобразование применяется к части интер-кодированной CU, которую охватывает TU. Соответственно, эта разность преобразуется и квантуется, а затем кодируется, например энтропийным кодером, для того, чтобы сгенерировать закодированное представление интер-кодированной CU. Предпочтительно также вектор (вектора) движения из оценки движения кодируются и формируют часть закодированного представления интер-кодированной CU.
Интра-кодируемая CU может также быть разбита на одну или несколько PU и на одну или несколько TU. Каждая такая PU имеет режим интра-предсказания, который может быть планарным режимом или режимом DC или одним из доступных направлений предсказания. В последнем случае опорная область в пределах текущего слайса является используемым предсказанием для текущей PU, и разность вычисляется как обсуждено выше. Эта разность затем преобразуется, квантуется и кодируется.
Таким образом, варианты осуществления могут эффективно уменьшать количество видимых блочных артефактов в стандарте HEVC и сохранять эффективность кодирования за счет наличия отдельного максимального размера преобразования для единиц интра-кодирования в интер-кодированных слайсах и других единиц интра-кодирования (в интра-слайсах) и/или единиц интер-кодирования (в слайсах P и B).
Это ограничение может быть осуществлено различными способами, как дополнительно иллюстрируется ниже.
Одним подходом является определение в потоке битов информации об ограничении, такой как максимальный размер преобразования для единиц интра-кодирования в интер-кодированных слайсах. Примеры включают в себя набор параметров последовательности (SPS), предполагающий одно и то же ограничение для всей последовательности, набор параметров изображения (PPS), предполагающий одно и то же ограничение для всего изображения, или заголовок слайса, предполагающий одно и то же ограничение для всего слайса.
Пример синтаксиса в SPS:
log2_diff_max_min_transform_block_size_intra ue(v)
Пример семантики:
log2_diff_max_min_transform_block_size_intra определяет разность между максимальным и минимальным размером блока преобразования для блока интра-преобразования в слайсах P или B.
log2_diff_max_min_transform_block_size определяет разность между максимальным и минимальным размером блока преобразования.
Для режима интра-предсказания, когда slice_type равен I, или для режимов интер-предсказания переменная Log2MaxTrafoSize устанавливается равной log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size. В противном случае переменная Log2MaxTrafoSize устанавливается равной log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size_intra.
Фиг. 5 представляет собой блок-схему, иллюстрирующую дополнительные, необязательные этапы способа, изображенного на Фиг. 1, в соответствии с этим подходом. Способ затем продолжается с этапа S1 на Фиг. 1. Следующий этап S40 включает в себя задание кодером (первой) информации, предпочтительно представленной элементом синтаксиса log2_diff_max_min_transform_block_size, представляющей разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования, предпочтительно для единиц интра-кодирования в интра-кодируемом слайсе и единиц интер-кодирования. Этап S41 соответственно включает в себя задание кодером (второй) информации, предпочтительно представленной элементом синтаксиса log2_diff_max_min_transform_block_size_intra, представляющей разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интер-кодируемом слайсе. Кодер затем включает на этапе S42 (первую и вторую) информацию, то есть log2_diff_max_min_transform_block_size и log2_diff_max_min_transform_block_size_intra, в кодированный поток битов с закодированным представлением по меньшей мере одного слайса. В соответствии с вариантами осуществления log2_diff_max_min_transform_block_size имеет или представляет значение, отличающееся от log2_diff_max_min_transform_block_size_intra, и предпочтительно log2_diff_max_min_transform_block_size>log2_diff_max_min_transform_block_size_intra.
Следовательно, этот вариант осуществления использует два различных элемента синтаксиса, то есть log2_diff_max_min_transform_block_size и log2_diff_max_min_transform_block_size_intra для того, чтобы обеспечить ограничение максимального размера преобразования для единиц интра-кодирования в интер-кодированных слайсах.
Обычно, когда кодер кодирует слайса в изображениях видеопотока, кодер делит изображение на один или несколько, то есть по меньшей мере два, слайсов. Слайс обычно является независимо кодируемой и декодируемой частью изображения. Кодер кодирует слайс, чтобы получить заголовок слайса и кодированные данные слайса, то есть полезную видеонагрузку, совместно образующие закодированное представление слайса. Это закодированное представление обычно выводится из процесса кодирования в виде так называемой единицы слоя сетевой адаптации (NAL). Единица NAL может альтернативно содержать данные набора параметров, обеспечивающие управляющие данные, применимые ко всем слайсам изображения, ко всем изображениям в пределах последовательности или на самом деле к полной видеопоследовательности. Примеры таких наборов параметров включают в себя набор параметров изображения (PPS), набор параметров последовательности (SPS) и набор параметров видео (VPS). В таком случае заголовок слайса включает в себя информацию, позволяющую идентифицировать набор параметров, который связан со слайсом и включает в себя управляющие данные, применимые к этому слайсу. Например, заголовок слайса может включать в себя идентификатор PPS, идентифицирующий PPS. PPS может в свою очередь включать в себя идентификатор SPS, позволяющий идентифицировать SPS, который может включать в себя идентификатор VPS, идентифицирующий VPS.
Этап S42 может быть выполнена в соответствии с различными вариантами осуществления. В первом варианте осуществления кодер включает информацию в набор параметров в кодированном потоке битов, такой как PPS, SPS или VPS, предпочтительно в SPS. Кодер затем включает идентификатор набора параметров, позволяющий (непосредственно для PPS или косвенно для SPS и VPS) идентифицировать соответствующий набор параметров, в заголовок слайса закодированного представления слайса. Альтернативно этап S42 включает в себя вставку или включение кодером информации непосредственно в заголовок слайса.
Включение информации в кодированный поток битов на этапе S42 определяет, применяется ли ограничение ко всему видеопотоку, например при включении информации в VPS, к последовательности изображений видеопотока, например при включении информации в SPS, ко всем слайсам в изображении видеопотока, например при включении информации в PPS, или к слайсу в изображении видеопотока, например при включении информации в заголовок слайса.
Следовательно, кодер может применить ограничение максимального размера преобразования только к некоторым слайсам или изображениям видеопотока, тогда как другие слайсы или изображения могут использовать один и тот же максимальный размер преобразования для всех единиц кодирования, то есть один и тот же максимальный размер преобразования для единиц интра-кодирования в интер-кодированных слайсах, единиц интра-кодирования в интра-кодированных слайсах и единиц интер-кодирования в интер-кодированных слайсах.
В таком случае кодер может ограничить ограничение максимального размера преобразования теми изображениями или слайсами, где это ограничение будет иметь наибольший эффект, то есть для тех изображений или слайсов, где визуальные артефакты в противном случае могут быть заметными, например для такого контента как вода, огонь, дым и т.д. Однако, результаты эксперимента, приведенные в настоящем документе, показывают, что ограничение максимального размера преобразования не ухудшает качество видеопотока для «нормального» видеоконтента, то есть видеоконтента, отличающегося от воды, огня, дыма и т.д. Следовательно, ограничение максимального размера преобразования может быть применено ко всем слайсам и изображениям видеопотока без каких-либо отрицательных эффектов относительно качества изображений «нормального» видеоконтента, но с положительным эффектом относительно качества для «трудных» последовательностей, таких как последовательности, которые содержат воду, дождь, огонь и т.д.
Другим подходом является наложение ограничения в кодере таким образом, чтобы максимальный размер преобразования для единиц интра-кодирования в интер-кодированных слайсах составлял 16×16 или меньше.
Фиг. 6 представляет собой блок-схему, иллюстрирующую один вариант осуществления способа, изображенного на Фиг. 1, в соответствии с этим подходом. Этап S50 на Фиг. 6 включает в себя, ограничение кодером области поиска в отношении размера преобразования вплоть до 16×16 пикселей при выборе единицы интра-кодирования (CU) в интер-кодируемом слайсе (слайс P/B), которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования. Этап S51 соответственно включает в себя разрешение кодером области поиска в отношении размера преобразования вплоть до 32×32 пикселя при выборе единицы интра-кодирования (CU) в интра-кодируемом слайсе (слайсе I) или единицы интер-кодирования (CU), которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования или многочисленных возможных единиц интер-кодирования.
Процесс кодирования обычно включает в себя проверку кодером различных параметров единицы-кандидата, а затем выбор набора таких параметров кандидата, которые приводят к наименьшим затратам скорость-искажение. Например, слайс может быть кодирован путем проверки различных возможных иерархических структур дерева квадрантов, проверки различных разбиений PU и проверки различных разбиений TU. Альтернативы для разбиений TU, то есть разделения каждой CU на одну или множество TU, составляют область поиска относительно размера преобразования. Это означает, что область поиска, доступная на этапе S51 относительно размера преобразования, обычно больше, чем область поиска, доступная на этапе S50, поскольку размер TU 32×32 пикселя может использоваться на этапе S51, но не на этапе S50.
В одном конкретном варианте осуществления область поиска, доступная на этапе S50 относительно размера преобразования, состоит из размеров TU 16×16 и 8×8 пикселей, и опционально также 4×4 пикселя. Соответствующая область поиска, доступная на этапе S51 относительно размера преобразования, состоит из размеров TU 32×32, 16×16 и 8×8 пикселей, и опционально также 4×4 пикселя.
Дополнительный подход заключается в том, чтобы определить в телевизионном стандарте, что CU интра-кодирования в интер-кодированных слайсах не должны использовать преобразования с размером больше, чем, например, 16×16. Например, log2_diff_max_min_transform_block_size определяет разность между максимальным и минимальным размером блока преобразования.
Для режима интра-предсказания, когда slice_type равен I, или для режимов интер-предсказания переменная Log2MaxTrafoSize устанавливается равной log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size.
В противном случае переменная Log2MaxTrafoSize устанавливается равной log2_min_transform_block_size_minus2+2+min(log2_diff_max_min_transform_block_size,2).
Поток битов не должен содержать данные, которые приводят к значению переменной Log2MaxTrafoSize больше, чем min(Log2CtbSizeY, 5).
Фиг. 7 представляет собой блок-схему, иллюстрирующую реализацию этого подхода. Этап S60 содержит кодирование кодером интер-слайса (слайса P/B) в по меньшей мере одном изображении путем ограничения максимального размера преобразования, предпочтительно представленного переменной Log2MaxTrafoSize, для единиц интра-кодирования (CU) в интер-слайсе (слайсе P/B) так, чтобы он был равным log2_min_transform_block_size_minus2+2+min(log2_diff_max_min_transform_block_size,2). Этап S61 соответственно содержит кодирование кодером слайса в по меньшей мере одном изображении путем использования максимального размера преобразования, предпочтительно представленного переменной Log2MaxTrafoSize, для единиц интра-кодирования (CU) в интра-слайсе (слайсе I), и/или единиц интер-кодирования (CU), предпочтительно для единиц интра-кодирования в интра-кодируемом слайсе и единиц интер-кодирования так, чтобы он был равным log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size. В этом варианте осуществления log2_min_transform_block_size_minus2 представляет минимальный размер блока преобразования, а log2_diff_max_min_transform_block_size определяет разность между минимальным размером блока преобразования и максимальным размером блока преобразования.
Функция min(a, b) выводит а, если а<b, и b в противном случае.
Это означает, что этот вариант осуществления ограничивает значение максимального размера преобразования путем замены элемента синтаксиса log2_diff_max_min_transform_block_size на 2, если log2_diff_max_min_transform_block_size>2 для единиц интра-кодирования в интер-кодированных слайсах. Следовательно, максимальный размер преобразования для таких единиц интра-кодирования в интер-кодированных слайсах может быть равен log2_min_transform_block_size_minus2+2+0, log2_min_transform_block_size_minus2+2+1 или log2_min_transform_block_size_minus2+2+2, но не больше.
В альтернативном варианте осуществления другое предопределенное значение, отличающееся от 2, используется вместе с log2_diff_max_min_transform_block_size в вышеупомянутой функции min(). Например, этап S60 может включать в себя кодирование кодером интер-слайса в изображении видеопотока путем ограничения максимального размера преобразования, предпочтительно представленного переменной Log2MaxTrafoSize, для единиц интра-кодирования в интер-слайсе так, чтобы он был равен log2_min_transform_block_size_minus2+2+min(log2_diff_max_min_transform_block_size, 1) или был равен log2_min_transform_block_size_minus2+2+min(log2_diff_max_min_transform_block_size, 0).
В одном дополнительном варианте осуществления способ, показанный на Фиг. 7, дополнительно содержит генерирование кодером кодированного потока битов с закодированным представлением по меньшей мере одного слайса, который не содержит данные, которые приводят к значению Log2MaxTrafoSize больше, чем min(Log2CtbSizeY, 5), где переменная Log2CtbSizeY, также упоминаемая как CtbLog2SizeY, представляет ширину и высоту блока дерева кодирования.
В вышеописанных вариантах осуществления кодер ограничен использованием меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодированных слайсах по сравнению с единицами интер-кодирования и/или единицами интра-кодирования в интра-кодированных слайсах.
Альтернативным подходом является использование так называемого мягкого ограничения, например разрешение использования больших преобразований (и единиц предсказания) для интра-кодированных CU в слайсах P или B, но штрафование их использования в кодируемом кодером выборе режима. Таким образом, кодер в этом подходе выполнен с возможностью ограничивать использование больших преобразований путем штрафования использования больших преобразований.
Фиг. 8 представляет собой блок-схему, иллюстрирующую один вариант осуществления такого подхода. Способ, изображенный на Фиг. 8, выполняется кодером и содержит штрафование кодером на этапе S70 использования большого размера преобразования для единиц интра-кодирования (CU) в интер-кодируемом слайсе (слайсе P/B) в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования (CU) в интра-кодируемом слайсе (слайсе I) и/или единицами интер-кодирования (CU) при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Оптимизация скорость-искажение является общим инструментом улучшения качества в видеокодировании. Эта оптимизация включает в себя принятие компромиссных решений между значением искажения, то есть потерей качества видео, и объемом данных, необходимым для кодирования видео. Затраты (J) скорость-искажение являются мерой, представляющей комбинацию искажения (D) и объема данных (R), необходимых для кодирования видео: J=D+λ×R, где λ является множителем Лагранжа, также называемым в данной области техники параметром лямбда. При кодировании слайса изображения в видеопотоке кодер обычно выбирает одну из возможных закодированных версий слайса, которая минимизирует затраты скорость-искажение и использует эту версию в качестве закодированного представления слайса.
Различные возможные закодированные версии получаются путем кодирования слайса в соответствии с различными режимами кодирования, например интра-кодирования или интер-кодирования; различными иерархическими структурами дерева квадрантов, т.е. различными разбиениями единиц кодирования; различными режимами интра- или интер-предсказания; различными размерами единиц преобразования и т.д. Кодер может затем выполнить исчерпывающий поиск в пространстве поиска, включающем в себя все возможные закодированные версии, или используя некоторые ограничения, которые ограничивают пространство поиска так, чтобы оно содержало меньше возможных закодированных версий. В любом случае, кодер предпочтительно вычисляет соответствующие затраты скорость-искажение для каждой проверяемой возможной закодированной версии, а затем выбирает одну из них, которая минимизирует затраты скорость-искажение.
Как следствие, за счет штрафования использования большого размера преобразования для единиц интра-кодирования в интер-кодированных слайсах на этапе S70 Фиг. 8 затраты скорость-искажение закодированных возможных версий интер-кодированного слайса с использованием такого большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе будут более высокими, и такие закодированные возможные версии будут выбраны кодером с меньшей вероятностью по сравнению с тем случаем, когда никакой штраф не используется.
В одном варианте осуществления способ, изображенный на Фиг. 8, содержит штрафование кодером на этапе S70 использования большого размера преобразования для единиц интра-кодирования в интер-кодированных слайсах в изображениях видеопотока по сравнению с единицами интра-кодирования в интра-кодированных слайсах в изображениях видеопотока и/или единицами интер-кодирования в изображениях видеопотока при вычислении затрат скорость-искажение для кодирования слайсов в изображениях видеопотока в соответствии с различными режимами кодирования.
В одной реализации варианта осуществления, показанного на Фиг. 8, кодер предпочтительно штрафует использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интер-кодирования (в интер-кодируемом слайсе) при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
В этой реализации варианта осуществления будет иметь место штраф за единицы интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интер-кодирования в интер-кодируемом слайсе относительно использования большого размера преобразования. Соответственно, кодер конфигурируется так, чтобы с меньшей вероятностью выбирать большой размер преобразования для единиц интра-кодирования в интер-кодированных слайсах по сравнению с выбором меньших размеров преобразования для единиц интра-кодирования, и/или выбирать большой размер преобразования, но тогда использовать единицы интер-кодирования в интер-кодированных слайсах.
В другой реализации варианта осуществления, показанного на Фиг. 8, кодер предпочтительно штрафует использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
В этой реализации варианта осуществления будет иметь место штраф за единицы интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе относительно использования большого размера преобразования. Соответственно, кодер конфигурируется так, чтобы с меньшей вероятностью выбирать большой размер преобразования для единиц интра-кодирования в интер-кодированных слайсах по сравнению с выбором меньших размеров преобразования для единиц интра-кодирования, и/или выбирать большой размер преобразования, но тогда использовать единицы интра-кодирования в интра-кодированных слайсах.
Фиг. 9 представляет собой блок-схему, иллюстрирующую дополнительную реализацию варианта осуществления способа, изображенного на Фиг. 8. В этой реализации варианта осуществления кодер штрафует на этапе S80 использование большого размера преобразования для единиц интра-кодирования (CU) в интер-кодируемом слайсе (слайсе P/B) по сравнению с единицами интра-кодирования (CU) в интра-кодируемом слайсе (слайсе I) и единицах интер-кодирования (CU) при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Одним способом осуществить штраф является уменьшение лямбда, то есть множителя Лагранжа, используемого при вычислении затрат скорость-искажение (RD) при кодировании единиц интра-кодирования в слайсах P или B, то есть в интер-кодированных слайсах. Это будет делать предпочтительным выбор меньших преобразований, которые обычно требуют большего количества битов для кодирования (и/или расхода большего количества битов на кодирование).
Фиг. 10 представляет собой блок-схему способа, изображенного на Фиг. 8, в соответствии с вышеописанным вариантом осуществления. Этот вариант осуществления содержит вычисление кодером на этапе S90 затрат скорость-искажение (RD) путем использования более низкого значения лямбда (λ) для единиц интра-кодирования (CU) в интер-кодируемом слайсе (слайсе P/B) по сравнению с единицами интра-кодирования (CU) в интра-кодируемом слайсе (слайсе I) и/или единицами интер-кодирования (CU).
Другой способ осуществить такой штраф состоит в том, чтобы масштабировать искажение масштабным коэффициентом большим, чем тот, который применяется при использовании больших преобразований (или единиц предсказания). Это делает более вероятным, что будут выбраны меньшие размеры преобразования (и/или размеры единицы предсказания), если более крупные преобразования (и единицы предсказания) не приводят к значительно более низкому искажению.
Фиг. 11 представляет собой блок-схему способа, изображенного на Фиг. 8, в соответствии с вышеописанным вариантом осуществления. Этот вариант осуществления содержит вычисление кодером на этапе S100 затрат скорость-искажение (RD) путем использования масштабирующего коэффициента (SF) искажения, равного 1, для большого размера преобразования для единиц интра-кодирования (CU) в интра-кодируемом слайсе (слайсе I) и/или единиц интер-кодирования (CU). Этап S101 соответственно содержит вычисление кодером затрат скорость-искажение (RD) путем использования масштабного коэффициента искажения (SF), большего единицы, для большого размера преобразования для единиц интра-кодирования (CU) в интер-кодируемом слайсе (слайсе P/B).
1
2
2
1
Как следствие, при вычислении затрат скорость-искажение на этапе S100 может использоваться следующее уравнение для затрат скорость-искажение: J=1×D+λ×R=D+λ×R. Соответствующее уравнение используется на этапе S101 вместо уравнения J=SF×D+λ×D, где SF>1. В более общем подходе этап S100 может включать в себя использование следующего уравнения J=SF×D+λ×R при вычислении затрат скорость-искажение, в то время как этап S101 использует уравнение J=SF×D+λ×R, где SF>SF.
Вместо масштабирования искажения для больших преобразований и/или единиц предсказания, штраф может быть добавлен к значению искажения для этих блоков. Искажение определяется как сумма абсолютных или квадратичных пиксельных разностей между первоначальными пиксельными значениями и реконструированными пиксельными значениями (возможно поделенная на количество отсчетов, используемых в вычислении искажения). Обычно режимы кодирования определяются на основе затрат скорость-искажение (RD). Затраты RD определяются как лямбда×количество битов+искажение (или лямбда × скорость + искажение). Обычно выбирается режим кодирования с наименьшими затратами RD. Иногда для того, чтобы ускорить выбор режима, кодер выполняет выбор режима только на основе искажения.
Фиг. 12 представляет собой блок-схему способа, изображенного на Фиг. 8, в соответствии с вышеописанным вариантом осуществления. Этот способ содержит вычисление кодером на этапе S110 затрат скорость-искажение (RD) путем добавления значения штрафа к значению искажения для большого размера преобразования для единиц интра-кодирования (CU) в интер-кодируемом слайсе (слайсе P/B).
Это означает, что в соответствии с этим вариантом осуществления, как показано на Фиг. 12, значение искажения для большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе предпочтительно равно D+P. D представляет значение искажения, которое предпочтительно получается как сумма абсолютной или квадратичной разности пикселей или отсчетов между первоначальными значениями пикселей или отсчетов и реконструированными значениями пикселей или отсчетов, опционально поделенная на количество отсчетов, используемых в вычислении искажения. Реконструированные значения пикселей или отсчетов получаются, как хорошо известно в данной области техники, путем кодирования первоначальных значений пикселей или отсчетов, а затем декодирования полученных значений кодированных пикселей или отсчетов. P представляет значение штрафа, добавляемое к значению искажения. В предпочтительном варианте осуществления такое значение штрафа (P) добавляется только к искажению для единиц интра-кодирования в интер-кодированных слайсах, и поэтому предпочтительно не добавляется для единиц интра-кодирования в интра-кодированных слайсах или для единиц интер-кодирования в интер-кодированных слайсах.
Одним предпочтительным способом является добавление штрафа за большие преобразования на интра-блок в интер-слайсах, как раскрыто в настоящем документе.
Большой размер преобразования, упомянутый выше в связи с вариантами осуществления, показанными на Фиг. 8-12, представляет собой предпочтительно размер преобразования 32×32 пикселей или отсчетов. Это означает, что вариант осуществления, показанный на Фиг. 8, содержит штрафование кодером использования размера преобразования 32×32 для единиц интра-кодирования в интер-кодированных слайсах в изображениях видеопотока по сравнению с единицами интра-кодирования в интра-кодированных слайсах и/или единицами интер-кодирования при вычислении затрат скорость-искажение для кодирования слайсов в соответствии с различными режимами кодирования.
Если большой размер преобразования равен 32×32 пикселям, как упомянуто выше, то предпочтительно никакой штраф не используется для размеров преобразования, меньших чем 32×32 пикселя для единиц интра-кодирования в интер-кодированных слайсах. Альтернативно могут использоваться различные уровни штрафа в зависимости от размеров преобразования для единиц интра-кодирования в интер-кодированных слайсах. Например, «высокий» уровень штрафа используется для размера преобразования 32×32, «средний» уровень штрафа используется для размера преобразования 16×16, и «низкий» или вообще нулевой уровень штрафа используется для размера преобразования 8×8 для единиц интра-кодирования, интер-кодированных слайсах.
Для единиц интра-кодирования в интра-кодированных слайсах и для единиц интер-кодирования штраф предпочтительно вообще не используется, независимо от размера преобразования, включая размер преобразования 32'32.
ЭКСПЕРИМЕНТЫ
В результате изучения кодируемых последовательностей установлено, что видимые блочные артефакты часто связываются с большими интра-блоками (например блоками размера 32×32). Когда движение является хаотическим, трудно получить хорошее предсказание из ранее декодированных изображений. В таких случаях кодером часто выбирается интра-предсказание изображения.
Устраняющее блоки фильтрование стандарта HEVC может модифицировать только три пикселя от границы блока. Когда оптимизация скорость-искажение выбирает CU с интра-предсказание размером 32×32 на более высокой глубине, предсказание часто является грубым, и поскольку коэффициенты преобразования также проквантованы грубо, могут появиться блочные артефакты. Может быть затруднительным скрыть блочные артефакты, применяя только устраняющее блоки фильтрование. Представим светлые и темные однородные блоки с размером 32×32, расположенные в шахматном порядке. Даже если бы устранение блоков применялось ко всем границам блоков, и переходы между блоками стали бы гладкими, блочная структура все еще была бы видимой, так как модифицируются только три пикселя с каждой стороны границы блока, в то время как большинство отсчетов в блоке не изменяется при фильтровании.
Для того, чтобы улучшить визуальное качество, кодер HEVC может ограничить максимальный размер TU величиной 16×16 отсчетов для кодирования интра-CU в слайсах с интер-предсказанием путем задания конфигурационного параметра RDpenalty равным 2 в опорном программном обеспечении для опорного кодера HEVC [5]. Это ограничение будет также ограничивать максимальный размер блока с интра-предсказанием, и может увеличить скорость передачи на величину от 0 до пары процентов. Альтернативно штраф за использование блоков с интра-предсказанием размера 32×32 может быть применен к затратам скорость-искажение путем задания RDpenalty равным 1. В наших экспериментах значение RDpenalty было установлено равным 2.
Субъективный метод непрерывной шкалы качества с двойным стимулом (DSCQS) варианта I (один зритель за один раз) [1] был выбран для этого субъективного теста, поскольку удаление блоков имеет больше эффектов в условиях среднего и низкого качества видео. Этот метод является особенно полезным, когда тест не использует полный диапазон качества. Кроме того, согласно результатам исследования, метод DSCQS лучше, чем другие методы испытаний, в уменьшении контекстных эффектов для субъективной оценки качества [1].
Этот тест был проведен с неподготовленными зрителями. Он состоял из двух сеансов по 20 минут каждый. Испытуемому субъекту представлялся ряд видеопар в произвольном порядке. Обработанные видеопоследовательности (PVS) были представлены в парах («A» и «B»), и каждая пара состояла из одной и той же видеопоследовательности, где одно тестовое видео было обработано опорным (опорным) способом, а второе видео было обработано оцениваемым способом. Субъектов просили оценить общее качество каждого видео в паре, используя соответствующую шкалу оценок, при этом они не знали, какое именно видео было опорным. Видеопоследовательности можно было просмотреть несколько раз (максимально три раза). Как проигрывание, так и сама процедура голосования регулировались самими испытуемыми, которые могли приступить к голосованию тогда, когда они сочтут себя готовыми для этого. Сеанс обучения был проведен после инструкций и перед выполнением теста для того, чтобы помочь испытуемым понять процедуру тестирования и ознакомить их с типичными условиями качества видео. Сеанс обучения включал в себя шесть пар видеопоследовательностей, отличающихся от используемых в самом тесте. Испытуемые оценивали видео по непрерывной шкале оценки качества (максимальное значение: 100, минимальное значение: 0) на основе пяти категорий: «Превосходно», «Хорошо», «Удовлетворительно», «Неудовлетворительно» и «Плохо».
Каждый сеанс тестирования включал в себя только одного испытуемого на показ, оценивающего тестовый материал. Испытуемый помещался непосредственно по центру дисплея на расстоянии от него, равном 3H (три высоты дисплея). Использовалась система окружающего освещения, основанная на высокочастотных неоновых лампах с цветовой температурой 6500 K.
Установка тестовой среды и настройки дисплея приведены ниже:
Дисплей: 40'' Sony KDL-40X3500
2
Настройки дисплея: частота обновления 50 Гц, яркость - 48 (пиковая светимость ~200 кд/м), контраст - 90, задняя подсветка - 6, резкость - 60, уменьшение шума - выкл.
Расстояние просмотра составляло три высоты дисплея.
Уровень рассеянного света, измеренный в положении просмотра, составлял ~25 люкс.
Всего в тесте участвовало 38 неподготовленных зрителей, которые не работают профессионально с качественной оценкой или обработкой видеоданных. Все зрители были проверены на нормальную остроту зрения (20/30 для одного глаза и 20/25 для обоих глаз) с использованием теста Шеллена с применением или без корректирующих стекол. Все испытуемые имели остроту зрения 20/25 или выше.
Всего в этом тесте использовалось восемь исходных видеопоследовательностей с разрешением 1080p25 продолжительностью 10 секунд. Три последовательности были взяты из набора тестов JCT-VC («Русло реки», «Сцена в парке», «Кимоно»), а пять других последовательностей были подготовлены для данного теста («Огонь», «Фонтан», «Вода 1», «Вода 6» и «Подводный мир»). Все исходные последовательности содержали большое количество движения, за исключением последовательностей «Сцена в парке» и «Кимоно». Эти два видео использовались для того, чтобы проверить, что предложенные способы не ухудшают качество видео по сравнению с опорным способом. Последовательности «Сцена в парке» и «Кимоно», передаваемые из источника 1080p24, проигрывались при частоте кадров 25 Гц для того, чтобы избежать влияния дрожания изображения на качество.
Оба способа - опорный и предложенный описанный подход - кодировались с помощью HM 11,0 [2] в конфигурации произвольного доступа.
Двусторонний дисперсионный анализ (ANOVA) был применен к необработанным оценкам разности, чтобы проверить вариабельность между испытуемыми, а также то, что оценки, данные испытуемыми, взяты из одного и того же распределения (при гипотезе нулевой вариации между испытуемыми). Результаты дисперсионного анализа показали, что имеется существенная (p=0) вариабельность от испытуемого к испытуемому. Следовательно, оценки были также нормализованы в соответствии с правилом коррекции смещения среднего [3], [4]. Результаты для необработанных и для нормализованных оценок были проанализированы. Двусторонний дисперсионный анализ, примененный после коррекции смещения среднего, показал, что вариация между испытуемыми уменьшилась (p=0,19>0,05).
Отсев возможных выпадающих испытуемых был выполнен на обоих наборах данных в соответствии с процедурой, описанной в [1]. Четыре из 38 испытуемых были обнаружены и выбракованы как из нормализованных, так и из необработанных результатов. Результаты процедуры нормализации можно увидеть при сравнении гистограмм (см. Фиг. 28A и Фиг. 28B).
После отсева оценки среднего мнения были вычислены для каждой PVS. Разность между оценкой опорного видео и оценкой оцениваемого видео вычиталась из максимального значения шкалы голосования (100): 100 - (ref_score - assessment_score). Затем значения разности были усреднены по всем испытуемым, чтобы получить оценку разности среднего мнения (DMOS) для ненормализованных и нормализованных субъективных данных (NDMOS).
Таким образом, оценки DMOS и NDMOS ниже 100 соответствуют случаям, когда испытуемый расценивал качество опорного видео выше, чем оцениваемого видео, а оценки выше 100 соответствуют случаям, когда оцениваемое видео (полученное предложенным способом) оценивалось как имеющее более высокое качество, чем опорное.
Фиг. 29A и Фиг. 29B показывают результаты испытаний для всех видеопоследовательностей, как в виде оценок DMOS, так и нормализованных оценок DMOS (NDMOS). Можно видеть, что результаты для DMOS и для NDMOS являются довольно похожими. Все шесть трудных последовательностей были оценены выше, чем опорные, с неперекрывающимся доверительным интервалом для нормализованных оценок, и пять из этих шести последовательностей показывают неперекрывающиеся доверительные интервалы с опорной последовательностью для необработанных оценок. Также можно видеть, что две последовательности, использованные для проверки того, что предложенный способ не ухудшает нормальные последовательности, показывают результаты, очень похожие на опорную последовательность.
Скорости передачи последовательностей, сгенерированных с помощью предложенного способа, показаны в Таблице 1 ниже. Можно видеть, что скорости передачи в среднем подобны скоростям передачи опорной последовательности с самой большой разницей в 4,9% на последовательности «Подводный мир». Эта разница вызвана отказом от выбора блоков с интра-предсказанием размера 32×32 в опорных фреймах. Однако для последовательности «Огонь» разница в скорости передачи составила менее 1%, в то время как эта последовательность показывает вторую по величине субъективную качественную разницу между тестируемым способом и опорной последовательностью. Фиг. 30A демонстрирует, как предложенный подход улучшает визуальное качество (по сравнению с опорным кадром, показанным на Фиг. 30B).
Таблица 1Скорости передачи предложенного способа по сравнению с опорным способом
Видео
Опорный способ
HOffNoIntra32
QP<sup>*</sup>
[Кбит/с]
QP<sup>*</sup>
[Кбит/с]
%
«Фонтан»
37
6104,972
37
6157,793
100,9
«Огонь»
37
2441,594
37
2462,629
100,9
«Русло реки»
37
2346,436
37
2440,269
104,0
«Сцена в парке»
37
717,301
37
718,150
100,1
«Подводный мир»
37
666,062
37
698,535
104,9
«Вода 6»
37
616,439
37
628,155
101,9
«Кимоно»
37
542,574
37
544,578
100,4
«Вода 1»
32
541,010
32
559,620
103,4
<sup>*</sup>QP=параметр квантования
Полученные результаты показывают, что предложенный способ улучшает субъективное качество на относительно трудных последовательностях, таких как последовательности, которые содержат воду, дождь, огонь и т.д. Предложенный способ не ухудшает качество видеопоследовательностей, которые содержат медленное или прямолинейное движение, то есть «нормальный» видеоконтент. Данный способ предлагает практическое решение, которое значительно улучшает субъективное качество при кодировании последовательностей с хаотическим движением с помощью кодера стандарта HEVC.
АСПЕКТЫ РЕАЛИЗАЦИИ
Этапы, функции, процедуры, модули и/или блоки, описанные выше, могут быть осуществлены в аппаратных средствах с использованием любой обычной технологии, такой как технология дискретных схем или интегральных схем, включая как электронные схемы общего назначения, так и специализированные электронные схемы.
Конкретные примеры включают в себя один или больше соответственно сконфигурированных цифровых сигнальных процессоров и других известных электронных схем, например дискретные логические элементы, соединенные для выполнения специализированной функции, или специализированные интегральные схемы (ASIC).
Альтернативно по меньшей мере некоторые из этапов, функций, процедур, модулей и/или блоков, описанных выше, могут быть осуществлены в виде программного обеспечения, такого как компьютерная программа для выполнения с помощью подходящей обрабатывающей схемы, включая один или более обрабатывающих блоков или процессоров.
Процессор способен выполнять инструкции программного обеспечения, содержащиеся в компьютерной программе, сохраненной в компьютерном программном продукте, например в форме блоков памяти. Соответствующий компьютерный программный продукт может быть памятью, являющейся любой комбинацией читаемой и записываемой памяти (RAM) и постоянной памяти (ROM). Соответствующая память включает в себя постоянную память, которая, например, может быть любой одной или комбинацией из магнитной памяти, оптической памяти, твердотельной памяти или даже удаленно смонтированной памяти.
Блок-схема или схемы, представленные выше, см. Фиг. 1 - 12, могут рассматриваться как компьютерная блок-схема или схемы при выполнении одним или более процессорами. Соответствующее устройство может быть определено как группа функциональных модулей, где каждый этап, выполняемая процессором, соответствует одному функциональному модулю. В этом случае функциональные модули реализуются как компьютерная программа, выполняющаяся процессором.
Примеры обрабатывающих схем включают в себя, не ограничиваясь этим, один или более микропроцессоров, один или более цифровых сигнальных процессоров (DSP), один или более центральных процессоров (CPU), аппаратные средства видеоускорения и/или любые подходящие программируемые логические схемы, такие как один или более программируемых в условиях эксплуатации логических массивов (FPGA) или один или более контроллеров с программируемой логикой (PLC).
Также следует понимать, что может быть возможным повторно использовать обрабатывающие мощности общего назначения любого обычного устройства или блока, в котором реализуется предложенная технология. Также может быть возможным повторно использовать существующее программное обеспечение, например путем перепрограммирования существующего программного обеспечения или добавления новых компонентов программного обеспечения.
В соответствии с одним аспектом кодер выполнен с возможностью реализации ограничения использования больших преобразований.
Фиг. 13 представляет собой схематическую структурную схему кодера 1 в соответствии с одним вариантом осуществления. Кодер 1 способен кодировать по меньшей мере один слайс в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
В одной реализации варианта осуществления, изображенного на Фиг. 13, кодер 1 способен кодировать по меньшей мере один слайс путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интер-кодирования.
В другой реализации варианта осуществления, изображенного на Фиг. 13, кодер 1 способен кодировать по меньшей мере один слайс путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе.
В дополнительной реализации варианта осуществления, изображенного на Фиг. 13, кодер 1 способен кодировать по меньшей мере один слайс путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и единицами интер-кодирования.
В одном примере реализации кодер 80 включает в себя процессор 82 и память 84, соединенную с процессором 82, см. Фиг. 15. Процессор 82 тогда способен, или выполнен с возможностью кодирования по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока путем использовании меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования, предпочтительно по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и единицами интер-кодирования.
В одном варианте осуществления процессор 82 способен кодировать интер-слайс в по меньшей мере одном изображении путем использования максимального размера преобразования 16×16 пикселей для единиц интра-кодирования в интер-слайсе. В этом варианте осуществления процессор 82 дополнительно способен кодировать слайс в по меньшей мере одном изображении путем использования максимального размера преобразования 32×32 пикселя для единиц интра-кодирования в интра-слайсе и/или единиц интер-кодирования, предпочтительно для единиц интра-кодирования в интра-слайсе и для единиц интер-кодирования.
В одном альтернативном или дополнительном варианте осуществления процессор 82 способен генерировать кодированный поток битов с закодированным представлением по меньшей мере одного слайса. В таком случае единицы интра-кодирования закодированного представления интер-слайса ограничиваются, чтобы иметь меньший максимальный размер преобразования по сравнению с единицами интра-кодирования закодированного представления интра-слайса и/или единицами интер-кодирования закодированного представления интер-слайса, предпочтительно по сравнению с единицами интра-кодирования закодированного представления интра-слайса и единицами интер-кодирования закодированного представления интер-слайса.
В другом альтернативном или дополнительном варианте осуществления процессор 82 способен задавать информацию, предпочтительно представленную элементом синтаксиса log2_diff_max_min_transform_block_size, представляющую разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования. Процессор 82 также способен задавать информацию, предпочтительно представленную элементом синтаксиса log2_diff_max_min_transform_block_size_intra, представляющую разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интер-кодируемом слайсе. Процессор 82 дополнительно способен включать информацию log2_diff_max_min_transform_block_size и log2_diff_max_min_transform_block_size_intra в кодированный поток битов с закодированным представлением по меньшей мере одного слайса. В этом варианте осуществления log2_diff_max_min_transform_block_size имеет значение, отличающееся от log2_diff_max_min_transform_block_size_intra, предпочтительно больше чем log2_diff_max_min_transform_block_size_intra.
В одном варианте осуществления процессор 82 способен включать в набор параметров, такой как PPS, SPS или VPS, предпочтительно SPS, информацию кодированного потока битов или связанную с кодированным потоком битов. Альтернативно или в дополнение к этому процессор 82 может включать эту информацию в заголовки слайсов единиц NAL в кодированном потоке битов.
В еще одном альтернативном или дополнительном варианте осуществления процессор 82 способен ограничивать область поиска размера преобразования величиной 16×16 пикселей при выборе единицы интра-кодирования в интер-кодируемом слайсе, которая дает самое низкое значение затрат скорость-искажение из многочисленных возможных единиц интра-кодирования. Процессор 82 также способен разрешать область поиска размера преобразования вплоть до 32×32 пикселя при выборе единицы интра-кодирования в интра-кодируемом слайсе или единицы интер-кодирования, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования или многочисленных возможных единиц интер-кодирования.
В еще одном альтернативном или дополнительном варианте осуществления процессор 82 способен кодировать интер-слайс в по меньшей мере одном изображении путем ограничения максимального размера преобразования, предпочтительно представленного переменной Log2MaxTrafoSize, для единиц интра-кодирования в интер-слайсе так, чтобы он был равным log2_min_transform_block_size_minus2+2+min(log2_diff_max_min_transform_block_size, 2). Процессор 82 также способен кодировать слайс в по меньшей мере одном изображении путем использования максимального размера преобразования, предпочтительно представленного переменной Log2MaxTrafoSize, для единиц интра-кодирования в интра-слайсе и/или единиц интер-кодирования так, чтобы он был равен log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size. В предпочтительном варианте осуществления процессор 82 способен использовать Log2MaxTrafoSize, равный log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size для единиц интра-кодирования в интра-слайсе и единиц интер-кодирования. В этом варианте осуществления log2_min_transform_block_size_minus2 представляет минимальный размер блока преобразования, а log2_diff_max_min_transform_block_size определяет разность между минимальным размером блока преобразования и максимальным размером блока преобразования.
В другом варианте осуществления кодер 1, изображенный на Фиг. 13, способен штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодированных слайсах, и/или для единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
В одной реализации варианта осуществления, показанного на Фиг. 13, кодер 1 способен штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
В другой реализации варианта осуществления, показанного на Фиг. 13, кодер 1 способен штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
В дополнительной реализации варианта осуществления, показанного на Фиг. 13, кодер 1 способен штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
В одном примере реализации кодер 80 включает в себя процессор 82 и память 84, соединенную с процессором 82, см. Фиг. 15. Процессор 82 тогда способен, или выполнен с возможностью штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодируемом слайсе, и/или для единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
В одном варианте осуществления процессор 82 способен вычислять затраты скорость-искажение путем использования более низкого значения лямбда для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования, предпочтительно по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и единицами интер-кодирования.
В одном альтернативном или дополнительном варианте осуществления процессор 82 способен вычислять затраты скорость-искажение путем использовании масштабирующего коэффициента для искажения, равного единице, для большого размера преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или единицы интер-кодирования, предпочтительно для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования. Процессор 82 также способен вычислять затраты скорость-искажение путем использования масштабирующего коэффициента для искажения, большего единицы, для большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе.
В другой альтернативе дополнительного варианта осуществления процессор 82 способен вычислять затраты скорость-искажение путем добавления значения штрафа к значению искажения для большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе.
Кодер 80, проиллюстрированный на Фиг. 15, может опционально включать в себя блок 81 ввода, соединенный с процессором 82 и способный принимать изображения видеопотока. Блок 81 ввода таким образом направляет изображения, которые должны кодироваться процессором 82 кодера 80, либо напрямую к кодеру 82 или в память 84, из которой изображения могут быть загружены процессором 82. Кодер 80 опционально также включает в себя блок 83 вывода, соединенный с процессором 82 и способный выводить кодированный поток битов с закодированными представлениями изображений в видеопотоке. Этот кодированный поток битов предпочтительно имеет форму единиц NAL, раскрытых выше в настоящем документе, опционально инкапсулированных различными транспортными заголовками для того, чтобы сформировать пакеты данных. Неограничивающие примеры включают в себя заголовки транспортного протокола реального времени (RTP), пользовательского протокола дейтаграммы (UDP) и/или интернет-протокола (IP).
Следовательно, кодер 80, описанный в настоящем документе, может быть осуществлен например с помощью одного или более процессоров 82 и соответствующего программного обеспечения с подходящим для него хранилищем или памятью 84, программируемого логического устройства (PLD) или другого электронного компонента (компонентов), как показано на Фиг. 15. В дополнение к этому, кодер 80 предпочтительно включает в себя вход или блок 81 ввода, выполненный с возможностью приема изображений видеопотока. Соответствующий выход или блок 83 вывода выполнен с возможностью вывода закодированных представлений слайсов, предпочтительно в форме единиц NAL.
На Фиг. 15 кодер 80 показан как включающий в себя процессор 82. Этот процессор 82 может быть осуществлен как одиночный процессор или множество процессоров, например в форме обрабатывающей схемы.
Фиг. 14 представляет собой принципиальную схему кодера 20, выполненного с возможностью кодирования изображения в соответствии с одним вариантом осуществления. Кодер 20 включает в себя блок 22 ограничения, выполненный с возможностью ограничения использования больших преобразований. В соответствии с одним вариантом осуществления он также включает в себя блок 23 вывода, выполненный с возможностью отправки потока битов, включающего в себя информацию об ограничении.
Кодер 20, изображенный на Фиг. 14, с входящими в него блоками 22, 23 может быть осуществлен с помощью аппаратных средств. Существует множество вариантов элементов схемы, которые могут использоваться и комбинироваться для реализации функций блоков 22, 23 кодера 20. Такие варианты охватываются вариантами осуществления. Конкретными примерами аппаратной реализации кодера 20 являются реализация с помощью технологий цифровых сигнальных процессоров и интегральных схем, включая как схемы общего назначения, так и специализированные схемы.
Как указано выше и показано на Фиг. 15, кодер 80 альтернативно может быть определен как группа функциональных модулей, где функциональные модули реализуются в виде компьютерной программы, выполняемой процессором 82.
Компьютерная программа, находящаяся в памяти 84, может таким образом быть организована как подходящие функциональные модули, способные при их выполнении процессором 82 выполнять по меньшей мере часть этапов и/или задач, описанных выше. Примеры таких функциональных модулей проиллюстрированы на Фиг. 16 и Фиг. 17.
Фиг. 16 таким образом представляет собой принципиальную схему, иллюстрирующую один пример кодера 40, включающего в себя модуль 42 кодирования слайсов для кодирования по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
Фиг. 17 представляет собой принципиальную схему, иллюстрирующую другой пример кодера 70, включающего в себя штрафующий модуль 72 для штрафования использования большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодируемом слайсе, и/или для единиц интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Далее со ссылкой на Фиг. 24 будет описан один пример компьютерной реализации. Пользовательский терминал 200, такой как компьютер, видеокамера, мобильное устройство, такое как мобильный телефон, включает в себя процессор 210 и память 220. Процессор 210 и память 220 соединяются друг с другом для того, чтобы обеспечить нормальное выполнение программного обеспечения. Дополнительный блок ввода/вывода (не показан) также может быть соединен с процессором 210.
В одном конкретном варианте осуществления компьютерная программа 230 включает в себя программный код, который при его выполнении процессором 210 или пользовательским терминалом 200 заставляет процессор 210 или пользовательский терминал 200 кодировать по меньшей мере один слайс в по меньшей мере одном изображении видеопотока путем использования меньшего максимального преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
Альтернативно программный код компьютерной программы 230 при ее выполнении процессором 210 или пользовательским терминалом 200 заставляет процессор 210 пользовательского терминала 200 штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении видеопотока по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса в соответствии с различными режимами кодирования.
Этот чертеж также иллюстрирует компьютерный программный продукт 240, включающий в себя считываемый компьютером носитель и описанную выше компьютерную программу 230, хранящуюся на считываемом компьютером носителе. Считываемый компьютером носитель может представлять собой одно или более съемных или несъемных запоминающих устройств, включая, но не ограничиваясь этим, ROM, RAM, компакт-диск (CD), цифровой универсальный диск (DVD), универсальную последовательную шину (USB), память, запоминающее устройство на жестком диске (HDD), флэш-память или любое другое общепринятое устройство памяти. Компьютерная программа 230 может таким образом быть загружена в оперативную память 220 пользовательского терминала 200 или эквивалентного обрабатывающего устройства для выполнения его процессором 210.
Пользовательский терминал 200 или процессор 210 не обязательно должен быть выделенным для выполнения только вышеописанных этапов, функций, процедур и/или блоков, но может также выполнять и другие задачи.
Термин «компьютер» должен быть интерпретирован в общем смысле как любая система или устройство, способные выполнять программный код или инструкции компьютерной программы для того, чтобы выполнить конкретную обработку, определение или вычислительную задачу.
Таким образом, дополнительный связанный аспект вариантов осуществления определяет компьютерную программу для кодирования изображения. Эта компьютерная программа включает в себя средство кода, которое при его выполнении процессором заставляет процессор ограничивать использование больших преобразований.
Другой дополнительный аспект вариантов осуществления относится к компьютерному программному продукту, включающему в себя считываемый компьютером носитель и компьютерную программу, сохраненную на этом считываемом компьютером носителе.
Кодер 62 может, например, быть расположен в передатчике 60, например в видеокамере, например в мобильном устройстве, как показано на Фиг. 18. Передатчик 60 тогда включает в себя блок 61 ввода или ввода, выполненный с возможностью принимать изображения видеопотока, подлежащего кодированию. Изображения кодируются кодером 62, как раскрыто в настоящем документе. Кодированные изображения выводятся из передатчика 60 блоком 63 вывода в форме кодированного потока битов, например состоящего из единиц NAL или пакетов данных, несущих такие единицы NAL.
Таким образом, один вариант осуществления относится к передатчику 60, включающему в себя блок ввода, способный принимать изображения видеопотока. Передатчик 60 также включает в себя кодер 62 в соответствии с вариантами осуществления, соединенный с блоком 61 ввода. Передатчик 60 дополнительно включает в себя блок 63 вывода, соединенный с кодером 62 и способный выводить кодированный поток битов с закодированными представлениями изображений в видеопотоке.
Один аспект относится к мобильному устройству, включающему в себя передатчик, как показано на Фиг. 18.
Также предлагается приемник, включающий в себя кодер.
В соответствии с одним дополнительным аспектом предлагается декодер. Декодер выполнен с возможностью получать информацию, относящуюся к ограничению, и использовать это ограничение при декодировании изображения.
Фиг. 19 представляет собой принципиальную схему декодера в соответствии с вариантом осуществления; Декодер 10 включает в себя блок 11 ввода, выполненный с возможностью получать поток битов с информацией об ограничении. Декодер 10 дополнительно включает в себя блок 12 декодирования, который выполнен с возможностью использовать эту информацию об ограничении при декодировании изображения.
Декодер 10, изображенный на Фиг. 1, с входящими в него блоками 11, 12 может быть осуществлен с помощью аппаратных средств. Существует множество вариантов элементов схемы, которые могут использоваться и комбинироваться для реализации функций блоков 11, 12 декодера 10. Такие варианты охватываются вариантами осуществления. Конкретными примерами аппаратной реализации декодера являются реализация с помощью технологий цифровых сигнальных процессоров и интегральных схем, включая как схемы общего назначения, так и специализированные схемы.
Декодер 50, описанный в настоящем документе, альтернативно может быть осуществлен например с помощью одного или более процессоров 52 и соответствующего программного обеспечения с подходящим для него хранилищем или памятью 54, программируемого логического устройства (PLD) или другого электронного компонента (компонентов), как показано на Фиг. 20. В дополнение к этому, декодер 50 предпочтительно включает в себя блок 51 ввода или ввода, выполненный с возможностью получать закодированные представления изображений, например в форме единиц NAL. Соответствующий выход или блок 53 вывода выполнен с возможностью вывода декодированных изображений.
Как правило, буфер опорного изображения (RPB), также называемый буфером декодированных данных (DPB), является интегрированной частью декодера 50. Память 54 может содержать буфер опорного изображения плюс другие вещи, необходимые для декодирования.
Декодер 32 может быть расположен, например, в приемнике 30, например в видеокамере, телевизионной приставке или дисплее, например в мобильном устройстве, как показано на Фиг. 21. Приемник 30 тогда включает в себя вход или блок 31 ввода, выполненный с возможностью получать кодированный поток битов, такой как пакеты данных единиц NAL. Закодированные представления единиц NAL декодируются декодером 32, как раскрыто в настоящем документе. Декодер 32 предпочтительно включает в себя или соединяется с буфером 34 опорного изображения, который временно хранит уже декодированные изображения, которые должны использоваться в качестве опорных изображений для других изображений в видеопотоке. Декодированные изображения выводятся из приемника 30, например из буфера 34 опорного изображения, посредством выхода или блока 33 вывода. Эти выходные изображения отправляются для показа пользователю на экране или дисплее приемника 30 или на экране или дисплее, связанном, в том числе с помощью беспроводных технологий, с приемником 30. Выходные изображения также могут быть сохранены на диске или транскодированы без отображения.
В одном варианте осуществления декодер 10, 32, 50 способен получать, на основе кодированного потока битов с закодированным представлением по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока, (первую) информацию log2_diff_max_min_transform_block_size_intra, представляющую разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интер-кодируемом слайсе. Декодер 10, 32, 50 также способен получать на основе кодированного потока битов (вторую) информацию log2_diff_max_min_transform_block_size, представляющую разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования. Декодер 10, 32, 50 дополнительно способен определять на основе (первой) информации log2_diff_max_min_transform_block_size_intra максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интер-кодируемом слайсе. Декодер 10, 32, 50 дополнительно способен определять на основе (второй) информации log2_diff_max_min_transform_block_size максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования. В этом варианте осуществления log2_diff_max_min_transform_block_size имеет значение, отличающееся от log2_diff_max_min_transform_block_size_intra.
Декодер 10, 32, 50 предпочтительно способен получать (первую и вторую) информацию log2_diff_max_min_transform_block_size_intra и log2_diff_max_min_transform_block_size из набора параметров кодированного потока битов или связанную с кодированным потоком битов. В таком случае декодер 10, 32, 50 предпочтительно идентифицирует соответствующий набор параметров на основе идентификатора набора параметров, получаемого из заголовка слайса закодированного представления слайса в кодированном потоке битов. Набор параметров может представлять собой PPS, SPS или VPS, предпочтительно SPS. Полученный идентификатор набора параметров затем позволяет напрямую идентифицировать набор параметров, например идентификатор PPS, идентифицирующий PPS, или может использоваться для идентификации набора параметров, например PPS, включающего в себя второй идентификатор набора параметров, например идентификатор SPS, который идентифицирует набор параметров, например SPS.
Альтернативно декодер 10, 32, 50 может быть способным получать (первую и вторую) информацию log2_diff_max_min_transform_block_size_intra и log2_diff_max_min_transform_block_size из заголовка слайса закодированного представления слайса в кодированном потоке битов.
В одном варианте осуществления декодер 10, 32, 50 предпочтительно способен определять максимальный размер преобразования на основе полученной (первой или второй) информации log2_diff_max_min_transform_block_size_intra или log2_diff_max_min_transform_block_size, а также на основе (третьей) информации log2_min_transform_block_size_minus2, представляющей минимальный размер блока преобразования. (Третья) информация log2_min_transform_block_size_minus2 может быть получена из набора параметров или из заголовка слайса аналогично (первой и второй) информации log2_diff_max_min_transform_block_size_intra и log2_diff_max_min_transform_block_size, обсужденной выше.
В одном варианте осуществления декодер 10, 32, 50 предпочтительно способен определять максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования так, чтобы он был основан на, и предпочтительно равен log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size.
В одном варианте осуществления декодер 10, 32, 50 предпочтительно способен определять максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интер-кодируемом слайсе так, чтобы он был основан на, и предпочтительно равен log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size_intra.
Соответствующий способ для этого аспекта включает в себя способ, выполняемый декодером 10, 32, 50, включающий в себя получение декодером 10, 32, 50 на основе кодированного потока битов с закодированным представлением по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока информации log2_diff_max_min_transform_block_size_intra, представляющей разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интер-кодируемом слайсе. Способ также включает в себя декодер 10, 32, 50, получающий на основе кодированного потока битов информацию log2_diff_max_min_transform_block_size, представляющую разность между максимальным и минимальным размером блока преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования. Способ дополнительно включает в себя декодер 10, 32, 50, определяющий на основе информации log2_diff_max_min_transform_block_size_intra максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интер-кодируемом слайсе. Способ дополнительно включает в себя декодер 10, 32, 50, определяющий на основе информации log2_diff_max_min_transform_block_size максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интра-кодируемом слайсе и/или упомянутых единиц интер-кодирования. В этом варианте осуществления log2_diff_max_min_transform_block_size имеет значение, отличающееся от log2_diff_max_min_transform_block_size_intra.
В другом варианте осуществления декодер 10, 32, 50 способен получать на основе кодированного потока битов с закодированным представлением по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока (первую) информацию log2_min_transform_block_size_minus2, представляющую минимальный размер блока преобразования. Декодер 10, 32, 50 также способен получать на основе кодированного потока битов (вторую) информацию log2_diff_max_min_transform_block_size, представляющую разность между максимальным размером блока преобразования и минимальным размером блока преобразования. Декодер 10, 32, 50 дополнительно способен определять максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования на основе (первой) информации log2_min_transform_block_size_minus2 и (второй) информации log2_diff_max_min_transform_block_size. Декодер 10, 32, 50 дополнительно способен определять максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интер-кодируемом слайсе на основе (первой) информации log2_min_transform_block_size_minus2 и минимального значения, представленного (второй) информацией log2_diff_max_min_transform_block_size, а также предопределенного значения.
Декодер 10, 32, 50 предпочтительно способен получать (первую и вторую) информацию log2_min_transform_block_size_minus2 и log2_diff_max_min_transform_block_size из набора параметров или связанную с кодированным потоком битов, например из PPS, SPS или VPS, предпочтительно из SPS, как было ранее описано в настоящем документе. Альтернативно декодер 10, 32, 50 способен получать (первую и вторую) информацию log2_min_transform_block_size_minus2 и log2_diff_max_min_transform_block_size из заголовка слайса закодированного представления слайса в кодированном потоке битов.
В одном варианте осуществления декодер 10, 32, 50 предпочтительно способен определять максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования так, чтобы он был основан на, и предпочтительно равен log2_min_transform_block_size_minus2+2+log2_diff_max_min_transform_block_size.
В одном варианте осуществления предопределенное значение предпочтительно равно 2.
В одном варианте осуществления декодер 10, 32, 50 предпочтительно способен определять максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интер-кодируемом слайсе так, чтобы он был основан на, и предпочтительно равен log2_min_transform_block_size_minus2+2+min(log2_diff_max_min_transform_block_size, 2).
Соответствующий способ для этого аспекта включает в себя способ, выполняемый декодером 10, 32, 50, включающий в себя получение декодером на основе кодированного потока битов с закодированным представлением по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока информации log2_min_transform_block_size_minus2, представляющей минимальный размер блока преобразования. Этот способ также включает в себя декодер 10, 32, 50, получающий на основе кодированного потока битов информацию log2_diff_max_min_transform_block_size, представляющую разность между максимальным размером блока преобразования и упомянутым минимальным размером блока преобразования. Этот способ дополнительно включает в себя декодер 10, 32, 50, определяющий максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интра-кодируемом слайсе и/или единиц интер-кодирования на основе информации log2_min_transform_block_size_minus2 и информации log2_diff_max_min_transform_block_size. Этот способ дополнительно включает в себя декодер 10, 32, 50, определяющий максимальный размер преобразования Log2MaxTrafoSize для единиц интра-кодирования в интер-кодируемом слайсе на основе информации log2_min_transform_block_size_minus2 и минимального значения, представленного информацией log2_diff_max_min_transform_block_size, а также предопределенного значения.
Кодер и/или декодер могут быть осуществлены в устройстве, таком как видеокамера или устройство отображения.
Фиг. 22 представляет собой принципиальную схему пользовательского терминала 2, представленного как мобильное устройство или телефон, в соответствии с одним вариантом осуществления.
Пользовательский терминал 2 может быть любым устройством, имеющим функции кодирования и/или декодирования видео. Неограничивающие примеры таких пользовательских терминалов 2 включают в себя мобильные телефоны и другие портативные медиапроигрыватели, планшеты, настольные компьютеры, ноутбуки, персональные видеомагнитофоны, мультимедийные проигрыватели, серверы потоковой передачи видео, телевизионные приставки, телевизоры, компьютеры, декодеры, игровые приставки, видеокамеры и т.д. Пользовательский терминал 2 включает в себя память 4, выполненную с возможностью сохранять изображения видеопотока и/или закодированные представления кодированного потока битов. Эти закодированные представления могут генерироваться самим пользовательским терминалом 2, например кодером 1, соединенным с памятью 4. Альтернативно закодированные представления генерируются некоторым другим устройством и с помощью беспроводных или проводных технологий передаются к пользовательскому терминалу 2. Пользовательский терминал 2 тогда включает в себя приемопередатчик (передатчик и приемник) или блок 3 ввода и вывода (I/O) для обеспечения передачи данных.
На Фиг. 22, пользовательский терминал 2 проиллюстрирован как включающий в себя декодер 10 и медиапроигрыватель 5, где декодер 10 осуществлен как часть медиапроигрывателя 5. Это, однако, должно рассматриваться просто как иллюстративный, но неограничивающий пример одной реализации варианта осуществления для пользовательского терминала 2. Возможны также распределенные реализации, где декодер 10 и медиапроигрыватель 5 обеспечиваются в двух физически отдельных устройствах, что также находится в области охвата пользовательского терминала 2, используемого в настоящем документе. Дисплей 6 для показа декодированных видеоданных также может быть обеспечен как отдельное устройство, соединенное с пользовательским терминалом 2 или на самом деле составляющее часть пользовательского терминала 2.
Пользовательский терминал 2 на Фиг. 22 проиллюстрирован как включающий в себя кодер 1 и декодер 10. Это, однако, должно рассматриваться просто как иллюстративный пример. В других вариантах осуществления пользовательский терминал 2 не включает в себя кодер 1 или не включает в себя декодер 10. В последнем случае дисплей 6 и/или медиапроигрыватель 5 также могут отсутствовать в пользовательском терминале 2.
Следовательно, один аспект вариантов осуществления относится к пользовательскому терминалу 2, включающему в себя кодер 1 в соответствии с вариантами осуществления и/или декодер 10 в соответствии с вариантами осуществления.
Эти варианты осуществления применяются к декодеру, кодеру и элементу, который работает на потоке битов, такому как узел сети или мультимедийный сетевой элемент, включающий в себя декодер и/или кодер.
Фиг. 23 иллюстрирует сетевое устройство 110 являющееся или принадлежащее сетевому узлу 110 в коммуникационной сети 100, такой как беспроводная коммуникационная сеть на основе радиосигналов. Сетевое устройство 110 включает в себя кодер 1 в соответствии с вариантами осуществления и/или декодер 10 в соответствии с вариантами осуществления.
Сетевое устройство 110 может быть устройством для преобразования видео из одного стандарта видеокодирования в другой стандарт видеокодирования, если, например, было установлено, что принимающий пользовательский терминал 130 предпочитает или способен воспринимать только другой стандарт видеокодирования, отличающийся от используемого передающим пользовательским терминалом 120. Сетевое устройство 110 может иметь форму или входить в состав базовой станции, B-ноды или любого другого узла сети в коммуникационной сети 100, такой как радиосеть.
Варианты осуществления не ограничиваются стандартом HEVC, но могут быть применены к любому расширению стандарта HEVC, такому как масштабируемое расширение или многоракурсное расширение, или к другому видеокодеку. Варианты осуществления применимы к двухмерному и трехмерному видео.
Следует понимать, что выбор взаимодействующих блоков или модулей, а также наименования блоков служат только целям примера, и могут конфигурироваться множеством альтернативных путей для того, чтобы быть в состоянии выполнить действия раскрытого процесса.
Следует также отметить, что блоки или модули, описанные в настоящем документе, должны рассматриваться как логические объекты, а не обязательно как отдельные физические объекты. Следует иметь в виду, что область охвата технологии, раскрытой в настоящем документе, полностью охватывает другие варианты осуществления, которые могут стать очевидными для специалистов в данной области техники, и что область охвата настоящего изобретения соответственно не должна ограничиваться.
Ссылки на некоторый элемент в единственном числе не должны пониматься как означающие «один и только один», если это не указано явно, но вместо этого должны пониматься как означающие «один или больше». Все структурные и функциональные эквиваленты элементов вышеописанных вариантов осуществления, которые являются известными для специалиста в данной области техники, являются явно включенными посредством ссылки в настоящий документ и охватываются им. Кроме того, устройство или способ не обязательно должны решать каждую из проблем, которые стремится решить раскрытая в настоящем документе технология, для того, чтобы быть охваченными ей.
В предшествующем описании для целей объяснения, но не ограничения, формулируются конкретные детали, такие как конкретная архитектура, интерфейсы, методы и т.д. для того, чтобы обеспечить полное понимание раскрытой технологии. Однако, специалистам в данной области техники будет очевидно, что раскрытая технология может быть осуществлена в других вариантах осуществления и/или комбинациях вариантов осуществления, которые отступают от этих конкретных деталей. Таким образом, специалисты в данной области техники будут в состоянии разработать различные компоновки, которые, хотя и не описаны или не показаны в настоящем документе явно, воплощают принципы раскрытой технологии. В некоторых случаях подробные описания известных устройств, схем и способов опускаются для того, чтобы не загромождать описание раскрытой технологии ненужными деталями. Подразумевается, что все формулировки в настоящем документе, касающиеся принципов, аспектов и вариантов осуществления раскрытой технологии, а также их конкретных примеров, охватывают также их структурные и функциональные эквиваленты. Дополнительно подразумевается, что такие эквиваленты включают в себя как известные в настоящий момент эквиваленты, так и эквиваленты, которые будут разработаны в будущем, например любые разрабатываемые элементы, которые выполняют ту же самую функцию, независимо от структуры.
Таким образом, например, специалистам в данной области техники будет понятно, что блок-схемы, приведенные в настоящем документе, могут представлять концептуальные виды иллюстративной схемы или других функциональных блоков, воплощающих принципы данной технологии. Аналогичным образом следует понимать, что любые блок-схемы, диаграммы изменения состояний, псевдокод и т.п. представляют различные процессы, которые могут быть по существу представлены в виде считываемого компьютером носителя и выполнены компьютером или процессором, независимо от того, показан ли такой компьютер или процессор явно.
Функции различных элементов, включая функциональные блоки, могут быть обеспечены с помощью аппаратных средств, таких как схемные аппаратные средства и/или аппаратные средства, способные выполнять программное обеспечение в форме кодированных инструкций, хранящихся на считываемом компьютером носителе. Таким образом, такие функции и проиллюстрированные функциональные блоки должны пониматься как реализуемые аппаратными средствами и/или реализуемые компьютером, и таким образом машинно-реализуемые.
Таким образом, например, специалистам в данной области техники будет понятно, что блок-схемы, приведенные в настоящем документе, могут представлять концептуальные виды иллюстративной схемы или других функциональных блоков, воплощающих принципы данной технологии. Аналогичным образом следует понимать, что любые блок-схемы, диаграммы изменения состояний, псевдокод и т.п. представляют различные процессы, которые могут быть по существу представлены в виде считываемого компьютером носителя и выполнены компьютером или процессором, независимо от того, показан ли такой компьютер или процессор явно.
Варианты осуществления, описанные выше, должны пониматься как несколько иллюстративных примеров настоящего изобретения. Специалистам в данной области техники будет понятно, что различные модификации, комбинации и изменения могут быть сделаны в этих вариантах осуществления без отступлений от области охвата представленной технологии. В частности, различные частичные решения в различных вариантах осуществления могут быть скомбинированы в других конфигурациях там, где это технически возможно.
ССЫЛКИ
[1] Recommendation ITU-R BT.500-13, «Methodology for subjective assessment of the quality of the television pictures», 2012.
[2] HEVC reference software, https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-11.0
[3] E. D. Gelasca, «Full-reference objective quality metrics for video watermarking, video segmentation and 3D model watermarking», Ph.D. thesis, EPFL, September 2005.
[4] F. D. Simone, M. Naccari, M. Tagliasacchi, F. Dufaux, S. Tubaro, and T. Ebrahimi, «Subjective quality assessment of H.264/AVC video streaming with packet losses», EURASIP Journal on Image and Video Processing, vol. 2011, 12 pages.
[5] Joint Collaborative Team on Video Coding (JCT-VC) of ITUT-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, HM Software Manual.