RU2628133C2 - Кодирование и декодирование слайсов в изображениях видеопотока - Google Patents

Кодирование и декодирование слайсов в изображениях видеопотока Download PDF

Info

Publication number
RU2628133C2
RU2628133C2 RU2015132979A RU2015132979A RU2628133C2 RU 2628133 C2 RU2628133 C2 RU 2628133C2 RU 2015132979 A RU2015132979 A RU 2015132979A RU 2015132979 A RU2015132979 A RU 2015132979A RU 2628133 C2 RU2628133 C2 RU 2628133C2
Authority
RU
Russia
Prior art keywords
intra
slice
inter
size
units
Prior art date
Application number
RU2015132979A
Other languages
English (en)
Other versions
RU2015132979A (ru
Inventor
Риккард ШЕБЕРГ
Андрей НОРКИН
Кеннет АНДЕРССОН
Original Assignee
Телефонактиеболагет Л М Эрикссон (Пабл)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Телефонактиеболагет Л М Эрикссон (Пабл) filed Critical Телефонактиеболагет Л М Эрикссон (Пабл)
Publication of RU2015132979A publication Critical patent/RU2015132979A/ru
Application granted granted Critical
Publication of RU2628133C2 publication Critical patent/RU2628133C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении визуальных артефактов для некоторых трудных для кодирования видов контента. Способ кодирования, выполняемый кодером, осуществляет кодирование упомянутым кодером по меньшей мере одного слайса в по меньшей мере одном изображении видеопотока путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с максимальным размером преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или максимальным размером преобразования для единиц интер-кодирования. 9 н. и 30 з.п. ф-лы, 33 ил., 1 табл.

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Варианты осуществления в целом относятся к кодированию и декодированию слайсов в изображениях видеопотока.
УРОВЕНЬ ТЕХНИКИ
В стандарте видеокодирования, который называется Высокоэффективное Видеокодирование (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, 11th 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 из
Figure 00000001
пикселей может быть разбиением на четыре CU из
Figure 00000002
пикселей, каждая из которых может быть в свою очередь независимо разбита далее на четыре 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).
Таким образом, кодер тем самым позволяет больший максимальный размер преобразования для единиц интер-кодирования, которые присутствуют только в интер-кодированных слайсах, то есть слайсах P и B, и/или для единиц интра-кодирования в интра-кодированных слайсах по сравнению с максимальным размером преобразования для единиц интра-кодирования в интер-кодированных слайсах. Например, предположим, что максимальный размер преобразования для единицы интер-кодирования и/или единицы интра-кодирования в интра-кодируемом слайсе, используемый кодером, равен N1×N1 пикселей или отсчетов, тогда кодер ограничивает максимальный размер преобразования для единиц интра-кодирования в интер-кодируемом слайсе величиной N2×N2 пикселей или отсчетов, где N2<N1. Это означает, что единицы преобразования для единиц интра-кодирования в интер-кодируемом слайсе кодированного видеопотока будут иметь размер, равный или меньше чем N2×N2 пикселей, тогда как единицы преобразования для единиц интер-кодирования и/или единиц интра-кодирования в интра-кодируемом слайсе в кодированном видеопотоке могут иметь размер, равный или меньше чем N1×N1 пикселей.
Как будет далее описано в настоящем документе, ограничение максимального размера преобразования для единиц интра-кодирования в интер-кодированных слайсах по сравнению с единицами интра-кодирования в интра-кодированных слайсах и единицами интер-кодирования в интер-кодированных слайсах может быть применено по меньшей мере к одному слайсу в по меньшей мере одном изображении видеопотока. Это ограничение может, например, применяться ко всем слайсам по меньшей мере одного изображения видеопотока. Это ограничение может, например, применяться ко всем слайсам последовательности из нескольких, то есть по меньшей мере двух, изображений видеопотока. Также возможно, чтобы это ограничение применялось ко всем изображениям видеопотока, и тем самым ко всем слайсам в этих изображениях видеопотока.
В этом последнем случае, способ, показанный на Фиг. 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 или меньше.
Figure 00000003
Figure 00000004
Figure 00000005
Фиг. 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).
Как следствие, при вычислении затрат скорость-искажение на этапе S100 может использоваться следующее уравнение для затрат скорость-искажение: J=1×D+λ×R=D+λ×R. Соответствующее уравнение используется на этапе S101 вместо уравнения J=SF×D+λ×D, где SF>1. В более общем подходе этап S100 может включать в себя использование следующего уравнения J=SF1×D+λ×R при вычислении затрат скорость-искажение, в то время как этап S101 использует уравнение J=SF2×D+λ×R, где SF2>SF1.
Вместо масштабирования искажения для больших преобразований и/или единиц предсказания, штраф может быть добавлен к значению искажения для этих блоков. Искажение определяется как сумма абсолютных или квадратичных пиксельных разностей между первоначальными пиксельными значениями и реконструированными пиксельными значениями (возможно поделенная на количество отсчетов, используемых в вычислении искажения). Обычно режимы кодирования определяются на основе затрат скорость-искажение (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
Настройки дисплея: частота обновления 50 Гц, яркость - 48 (пиковая светимость ~200 кд/м2), контраст - 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* [Кбит/с] QP* [Кбит/с] %
«Фонтан» 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
*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.

Claims (76)

1. Способ кодирования, выполняемый кодером (1, 20, 40, 62, 70, 80), содержащий кодирование (S1) упомянутым кодером (1, 20, 40, 62, 70, 80) по меньшей мере одного слайса (9) в по меньшей мере одном изображении (8) видеопотока (7) путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с максимальным размером преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или максимальным размером преобразования для единиц интер-кодирования.
2. Способ по п. 1, в котором кодирование (S1) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутого по меньшей мере одного слайса (9) содержит кодирование (S10) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутого по меньшей мере одного слайса (9) путем использования меньшего максимального размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с максимальным размером преобразования для упомянутых единиц интра-кодирования в упомянутом интра-кодируемом слайсе и максимальным размером преобразования для упомянутых единиц интер-кодирования.
3. Способ по п. 1 или 2, в котором кодирование (S2) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутого по меньшей мере одного слайса (9) содержит:
кодирование (S20) упомянутым кодером (1, 20, 40, 62, 70, 80) интер-слайса в упомянутом по меньшей мере одном изображении (8) путем использования максимального размера преобразования 16×16 пикселей для единиц интра-кодирования в упомянутом интер-слайсе; и
кодирование (S21) упомянутым кодером (1, 20, 40, 62, 70, 80) слайса в упомянутом по меньшей мере одном изображении (8) путем использования максимального размера преобразования 32×32 пикселя для единиц интра-кодирования в интра-слайсе и/или единиц интеркодирования.
4. Способ по п. 1, в котором кодирование (S2) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутого по меньшей мере одного слайса (9) содержит генерирование (S30) упомянутым кодером (1, 20, 40, 62, 70, 80) кодированного потока битов с закодированным представлением упомянутого по меньшей мере одного слайса (9), в котором единицы интра-кодирования закодированного представления интер-слайса ограничиваются, чтобы иметь меньший максимальный размер преобразования по сравнению с максимальным размером преобразования для единиц интра-кодирования закодированного представления интра-слайса и/или максимальным размером преобразования для единиц интер-кодирования упомянутого закодированного представления упомянутого интер-слайса.
5. Способ по п. 1, дополнительно содержащий:
задание (S40) упомянутым кодером (1, 20, 40, 62, 70, 80) информации log2_diff_max_min_transform_block_size, представляющей разность между максимальным и минимальным размером блока преобразования для упомянутых единиц интра-кодирования в упомянутом интра-кодируемом слайсе и/или упомянутых единиц интеркодирования;
задание (S41) упомянутым кодером (1, 20, 40, 62, 70, 80) информации log2_diff_max_min_transform_block_size_intra, представляющей разность между максимальным и минимальным размером блока преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе; и
включение (S42) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутой информации log2_diff_max_min_transform_block_size и log2_diff_max_min_transform_block_size_intra в кодированный поток битов с закодированным представлением упомянутого по меньшей мере одного слайса (9), причем log2_diff_max_min_transform_block_size имеет значение, отличающееся от log2_diff_max_min_transform_block_size_intra.
6. Способ по п. 1, в котором кодирование (S2) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутого по меньшей мере одного слайса (9) содержит:
ограничение (S50) упомянутым кодером (1, 20, 40, 62, 70, 80) области поиска в отношении размера преобразования вплоть до 16×16 пикселей при выборе единицы интра-кодирования в интер-кодируемом слайсе, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования; и
разрешение (S51) упомянутым кодером (1, 20, 40, 62, 70, 80) области поиска в отношении размера преобразования вплоть до 32×32 пикселя при выборе единицы интра-кодирования в интра-кодируемом слайсе или единицы интер-кодирования, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования или многочисленных возможных единиц интеркодирования.
7. Способ по п. 5, в котором кодирование (S2) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутого по меньшей мере одного слайса (9) содержит:
кодирование (S60) упомянутым кодером (1, 20, 40, 62, 70, 80) интер-слайса в упомянутом по меньшей мере одном изображении (8) путем ограничения максимального размера преобразования Log2MaxTrafoSize для единиц интра-кодирования в упомянутом интер-слайсе так, чтобы он был равным log2_min_transform_block_size_minus2+2+min (log2_diff_max_min_transform_block_size, 2); и
кодирование (S61) упомянутым кодером (1, 20, 40, 62, 70, 80) слайса в упомянутом по меньшей мере одном изображении (8) путем использования максимального размера преобразования 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 определяет разность между упомянутыми минимальным размером блока преобразования и максимальным размером блока преобразования.
8. Способ кодирования, выполняемый кодером (1, 20, 40, 62, 70, 80), содержащий штрафование (S70) упомянутым кодером (1, 20, 40, 62, 70, 80) использования большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении (8) видеопотока (7) по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интеркодирования при вычислении затрат скорость-искажение для кодирования слайса (9) в соответствии с различными режимами кодирования посредством увеличения затрат скорость-искажение закодированных возможных версий интер-кодируемого слайса при использовании большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе.
9. Способ по п. 8, в котором упомянутое штрафование (S70) упомянутым кодером (1, 20, 40, 62, 70, 80) использования упомянутого большого размера преобразования содержит штрафование (S80) упомянутым кодером (1, 20, 40, 62, 70, 80) использования упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с упомянутыми единицами интра-кодирования в упомянутом интра-кодируемом слайсе и упомянутыми единицами интер-кодирования при вычислении упомянутых затрат скорость-искажение для кодирования упомянутого слайса (9) в соответствии с различными режимами кодирования.
10. Способ по п. 8 или 9, в котором штрафование (S80) упомянутым кодером (1, 20, 40, 62, 70, 80) использования упомянутого большого размера преобразования содержит вычисление (S90) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутых затрат скорость-искажение путем использования более низкого значения лямбда для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с упомянутыми единицами интра-кодирования в упомянутом интра-кодируемом слайсе и/или упомянутыми единицами интер-кодирования.
11. Способ по п. 10, в котором штрафование (S80) упомянутым кодером (1, 20, 40, 62, 70, 80) использования упомянутого большого размера преобразования содержит:
вычисление (S100) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутых затрат скорость-искажение путем использования масштабирующего коэффициента для искажения, равного единице, для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интра-кодируемом слайсе и/или упомянутых единиц интер-кодирования; и
вычисление (S101) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутых затрат скорость-искажение путем использования масштабирующего коэффициента для искажения, большего единицы, для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе.
12. Способ по п. 10, в котором штрафование (S80) упомянутым кодером (1, 20, 40, 62, 70, 80) использования упомянутого большого размера преобразования содержит вычисление (S110) упомянутым кодером (1, 20, 40, 62, 70, 80) упомянутых затрат скорость-искажение путем добавления значения штрафа к значению искажения для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе.
13. Способ по п. 8, в котором упомянутый большой размер преобразования составляет 32×32 пикселя.
14. Кодер (1, 20, 40, 62, 70, 80), способный кодировать по меньшей мере один слайс (9) в по меньшей мере одном изображении (8) видеопотока (7) путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с максимальным размером преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или максимальным размером преобразования для единиц интер-кодирования.
15. Кодер по п. 14, который способен кодировать упомянутый по меньшей мере один слайс (9) путем использования меньшего максимального размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с максимальным размером преобразования для упомянутых единиц интра-кодирования в упомянутом интра-кодируемом слайсе и максимальным размером преобразования для упомянутых единиц интер-кодирования.
16. Кодер по п. 14 или 15, дополнительно содержащий:
процессор (82); и
память (84), соединенную с упомянутым процессором (82), причем упомянутый процессор (82) способен кодировать упомянутый по меньшей мере один слайс (9) путем использования меньшего максимального размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с максимальным размером преобразования для упомянутых единиц интра-кодирования в упомянутом интра-кодируемом слайсе и/или максимальным размером преобразования для упомянутых единиц интеркодирования.
17. Кодер по п. 16, в котором упомянутый процессор (82) способен:
кодировать интер-слайс в упомянутом по меньшей мере одном изображении (8) путем использования максимального размера преобразования 16×16 пикселей для единиц интра-кодирования в упомянутом интер-слайсе; и
кодировать слайс в упомянутом по меньшей мере одном изображении (8) путем использования максимального размера преобразования 32×32 пикселя для единиц интра-кодирования в интра-слайсе и/или единиц интер-кодирования.
18. Кодер по п. 16, в котором упомянутый процессор (82) способен генерировать кодированный поток битов с закодированным представлением упомянутого по меньшей мере одного слайса (9), в котором единицы интра-кодирования закодированного представления интер-слайса ограничиваются так, чтобы они имели меньший максимальный размер преобразования по сравнению с единицами интра-кодирования закодированного представления интра-слайса и/или единицами интер-кодирования упомянутого закодированного представления упомянутого интер-слайса.
19. Кодер по п. 17, в котором упомянутый процессор (82) способен генерировать кодированный поток битов с закодированным представлением упомянутого по меньшей мере одного слайса (9), в котором единицы интра-кодирования закодированного представления интер-слайса ограничиваются так, чтобы они имели меньший максимальный размер преобразования по сравнению с единицами интра-кодирования закодированного представления интра-слайса и/или единицами интер-кодирования упомянутого закодированного представления упомянутого интер-слайса.
20. Кодер по п. 16, в котором упомянутый процессор (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 в кодированный поток битов с закодированным представлением упомянутого по меньшей мере одного слайса (9), причем log2_diff_max_min_transform_block_size имеет значение, отличающееся от log2_diff_max_min_transform_block_size_intra.
21. Кодер по п. 16, в котором упомянутый процессор (82) способен:
ограничивать область поиска размера преобразования 16×16 пикселями при выборе единицы интра-кодирования в интер-кодируемом слайсе, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования; и
разрешать область поиска в отношении размера преобразования вплоть до 32×32 пикселя при выборе единицы интра-кодирования в интра-кодируемом слайсе или единицы интер-кодирования, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования или многочисленных возможных единиц интер-кодирования.
22. Кодер по п. 17, в котором упомянутый процессор (82) способен:
ограничивать область поиска размера преобразования 16×16 пикселями при выборе единицы интра-кодирования в интер-кодируемом слайсе, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования; и
разрешать область поиска в отношении размера преобразования вплоть до 32×32 пикселя при выборе единицы интра-кодирования в интра-кодируемом слайсе или единицы интер-кодирования, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования или многочисленных возможных единиц интер-кодирования.
23. Кодер по любому из пп. 18-19, в котором упомянутый процессор (82) способен:
ограничивать область поиска размера преобразования 16×16 пикселями при выборе единицы интра-кодирования в интер-кодируемом слайсе, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования; и
разрешать область поиска в отношении размера преобразования вплоть до 32×32 пикселя при выборе единицы интра-кодирования в интра-кодируемом слайсе или единицы интер-кодирования, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования или многочисленных возможных единиц интер-кодирования.
24. Кодер по п. 20, в котором упомянутый процессор (82) способен:
ограничивать область поиска размера преобразования 16×16 пикселями при выборе единицы интра-кодирования в интер-кодируемом слайсе, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования; и
разрешать область поиска в отношении размера преобразования вплоть до 32×32 пикселя при выборе единицы интра-кодирования в интра-кодируемом слайсе или единицы интер-кодирования, которая дает наименьшие затраты скорость-искажение из многочисленных возможных единиц интра-кодирования или многочисленных возможных единиц интер-кодирования.
25. Кодер по п. 20, в котором упомянутый процессор (82) способен:
кодировать интер-слайс в упомянутом по меньшей мере одном изображении (8) путем ограничения максимального размера преобразования Log2MaxTrafoSize для единиц интра-кодирования в упомянутом интер-слайсе так, чтобы он был равным log2_min_transform_block_size_minus2+2+min (log2_diff_max_min_transform_block_size, 2); и
кодировать слайс в упомянутом по меньшей мере одном изображении (8) путем использования максимального размера преобразования 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 определяет разность между упомянутыми минимальным размером блока преобразования и максимальным размером блока преобразования.
26. Кодер (1, 20, 40, 62, 70, 80), способный штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении (8) видеопотока (7) по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интеркодирования при вычислении затрат скорость-искажение для кодирования слайса (9) в соответствии с различными режимами кодирования посредством увеличения затрат скорость-искажение закодированных возможных версий интер-кодируемого слайса при использовании большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе.
27. Кодер по п. 26, при этом упомянутый кодер (1, 20, 40, 62, 70, 80) способен штрафовать использование упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с упомянутыми единицами интра-кодирования в упомянутом интра-кодируемом слайсе и упомянутыми единицами интер-кодирования при вычислении упомянутых затрат скорость-искажение для кодирования упомянутого слайса (9) в соответствии с различными режимами кодирования.
28. Кодер по п. 26 или 27, дополнительно содержащий:
процессор (82); и
память (84), соединенную с упомянутым процессором (82), причем упомянутый процессор (82) способен штрафовать использование упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с упомянутыми единицами интра-кодирования в упомянутом интра-кодируемом слайсе и/или упомянутыми единицами интеркодирования при вычислении упомянутых затрат скорость-искажение для кодирования слайса (9) в соответствии с различными режимами кодирования.
29. Кодер по п. 28, в котором упомянутый процессор (82) способен вычислять упомянутые затраты скорость-искажение путем использования более низкого значения лямбда для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе по сравнению с упомянутыми единицами интра-кодирования в упомянутом интра-кодируемом слайсе и/или упомянутыми единицами интеркодирования.
30. Кодер по п. 28, в котором упомянутый процессор (82) способен:
вычислять упомянутые затраты скорость-искажение путем использования масштабирующего коэффициента для искажения, равного единице, для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интра-кодируемом слайсе и/или упомянутых единиц интер-кодирования; и
вычислять упомянутые затраты скорость-искажение путем использования масштабирующего коэффициента для искажения, большего единицы, для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе.
31. Кодер по п. 29, в котором упомянутый процессор (82) способен:
вычислять упомянутые затраты скорость-искажение путем использования масштабирующего коэффициента для искажения, равного единице, для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интра-кодируемом слайсе и/или упомянутых единиц интер-кодирования; и
вычислять упомянутые затраты скорость-искажение путем использования масштабирующего коэффициента для искажения, большего единицы, для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе.
32. Кодер по п. 28, в котором упомянутый процессор (82) способен вычислять упомянутые затраты скорость-искажение путем добавления значения штрафа к значению искажения для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе.
33. Кодер по п. 29, в котором упомянутый процессор (82) способен вычислять упомянутые затраты скорость-искажение путем добавления значения штрафа к значению искажения для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе.
34. Кодер по любому из пп. 30-31, в котором упомянутый процессор (82) способен вычислять упомянутые затраты скорость-искажение путем добавления значения штрафа к значению искажения для упомянутого большого размера преобразования для упомянутых единиц интра-кодирования в упомянутом интер-кодируемом слайсе.
35. Передатчик (60), содержащий:
блок (61) ввода, способный принимать изображения (8) видеопотока (7);
кодер (62) по любому из пп. 14-34, соединенный с упомянутым блоком (61) ввода; и
блок (63) вывода, соединенный с упомянутым кодером (62) и способный выводить кодированный поток битов с закодированными представлениями упомянутых изображений (8) в упомянутом видеопотоке (7).
36. Считываемый компьютером носитель, содержащий компьютерную программу (230), содержащую средство кода, которое при его выполнении процессором (210) заставляет упомянутый процессор (210) кодировать по меньшей мере один слайс (9) в по меньшей мере одном изображении (8) видеопотока (7) путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования.
37. Считываемый компьютером носитель, содержащий компьютерную программу (230), содержащую средство кода, которое при его выполнении процессором (210) заставляет упомянутый процессор (210) штрафовать использование большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении (8) видеопотока (7) по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интер-кодирования при вычислении затрат скорость-искажение для кодирования слайса (9) в соответствии с различными режимами кодирования.
38. Кодер (40), содержащий модуль (42) кодирования слайса для кодирования по меньшей мере одного слайса (9) в по меньшей мере одном изображении (8) видеопотока (7) путем использования меньшего максимального размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе по сравнению с максимальным размером преобразования для единиц интра-кодирования в интра-кодируемом слайсе и/или максимальным размером преобразования для единиц интер-кодирования.
39. Кодер (70), содержащий штрафующий модуль (72) для штрафования использования большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе в по меньшей мере одном изображении (8) видеопотока (7) по сравнению с единицами интра-кодирования в интра-кодируемом слайсе и/или единицами интеркодирования при вычислении затрат скорость-искажение для кодирования слайса (9) в соответствии с различными режимами кодирования посредством увеличения затрат скорость-искажение закодированных возможных версий интер-кодируемого слайса при использовании большого размера преобразования для единиц интра-кодирования в интер-кодируемом слайсе.
RU2015132979A 2013-01-07 2013-10-23 Кодирование и декодирование слайсов в изображениях видеопотока RU2628133C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361749499P 2013-01-07 2013-01-07
US61/749,499 2013-01-07
PCT/SE2013/051237 WO2014107121A1 (en) 2013-01-07 2013-10-23 Limiting use of largest transform unit size for intra coding units in inter coded slices of encoded video

Publications (2)

Publication Number Publication Date
RU2015132979A RU2015132979A (ru) 2017-02-09
RU2628133C2 true RU2628133C2 (ru) 2017-08-15

Family

ID=49596429

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015132979A RU2628133C2 (ru) 2013-01-07 2013-10-23 Кодирование и декодирование слайсов в изображениях видеопотока

Country Status (4)

Country Link
US (1) US10271067B2 (ru)
EP (1) EP2941864B1 (ru)
RU (1) RU2628133C2 (ru)
WO (1) WO2014107121A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2800596C1 (ru) * 2019-11-28 2023-07-25 ЭлДжи ЭЛЕКТРОНИКС ИНК. Конфигурация срезов и плиток для кодирования изображений/видео
US11956450B2 (en) 2019-11-28 2024-04-09 Lg Electronics Inc. Slice and tile configuration for image/video coding

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130177078A1 (en) * 2010-09-30 2013-07-11 Electronics And Telecommunications Research Institute Apparatus and method for encoding/decoding video using adaptive prediction block filtering
KR102497216B1 (ko) 2017-05-10 2023-02-07 삼성전자 주식회사 슬라이스 기반의 압축을 수행하는 영상 처리 장치 및 영상 처리 방법
WO2020190113A1 (ko) * 2019-03-21 2020-09-24 삼성전자주식회사 블록 형태별로 블록 크기가 설정되는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US11445206B2 (en) * 2020-04-16 2022-09-13 Tencent America LLC Method and apparatus for video coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2419248C2 (ru) * 2007-01-09 2011-05-20 Квэлкомм Инкорпорейтед Адаптивное повышение дискретизации для масштабируемого кодирования видео

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8116374B2 (en) 2004-05-07 2012-02-14 Broadcom Corporation Method and system for generating a transform size syntax element for video decoding
US9036712B1 (en) * 2006-05-08 2015-05-19 Geo Semiconductor Inc. Methods and/or apparatus for controlling zero-residual coding in predictive image/video coding
US8031953B2 (en) * 2007-10-18 2011-10-04 Himax Technologies Limited Method and device for encoding image data with a predetermined compression rate in one pass
WO2009069316A1 (ja) * 2007-11-28 2009-06-04 Panasonic Corporation 画像符号化方法および画像符号化装置
JPWO2010116869A1 (ja) * 2009-04-08 2012-10-18 シャープ株式会社 動画像符号化装置および動画像復号装置
KR101700358B1 (ko) * 2009-12-09 2017-01-26 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US20110317757A1 (en) * 2010-06-25 2011-12-29 Qualcomm Incorporated Intra prediction mode signaling for finer spatial prediction directions
US20120082225A1 (en) * 2010-10-01 2012-04-05 Qualcomm Incorporated Selective indication of transform sizes
CN107105280B (zh) * 2010-12-14 2020-01-03 M&K控股株式会社 用于编码运动画面的设备
US9210442B2 (en) * 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
US9848197B2 (en) 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
US9866859B2 (en) * 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
US8929455B2 (en) * 2011-07-01 2015-01-06 Mitsubishi Electric Research Laboratories, Inc. Method for selecting transform types from mapping table for prediction modes
US9185404B2 (en) * 2011-10-07 2015-11-10 Qualcomm Incorporated Performing transform dependent de-blocking filtering
US9699457B2 (en) * 2011-10-11 2017-07-04 Qualcomm Incorporated Most probable transform for intra prediction coding
US20130128971A1 (en) * 2011-11-23 2013-05-23 Qualcomm Incorporated Transforms in video coding
US9253483B2 (en) * 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
US10230956B2 (en) * 2012-09-26 2019-03-12 Integrated Device Technology, Inc. Apparatuses and methods for optimizing rate-distortion of syntax elements
US10277907B2 (en) * 2012-10-25 2019-04-30 Integrated Device Technology, Inc. Rate-distortion optimizers and optimization techniques including joint optimization of multiple color components

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2419248C2 (ru) * 2007-01-09 2011-05-20 Квэлкомм Инкорпорейтед Адаптивное повышение дискретизации для масштабируемого кодирования видео

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2800596C1 (ru) * 2019-11-28 2023-07-25 ЭлДжи ЭЛЕКТРОНИКС ИНК. Конфигурация срезов и плиток для кодирования изображений/видео
US11956450B2 (en) 2019-11-28 2024-04-09 Lg Electronics Inc. Slice and tile configuration for image/video coding

Also Published As

Publication number Publication date
WO2014107121A1 (en) 2014-07-10
US20150092861A1 (en) 2015-04-02
RU2015132979A (ru) 2017-02-09
EP2941864A1 (en) 2015-11-11
US10271067B2 (en) 2019-04-23
EP2941864B1 (en) 2016-12-07

Similar Documents

Publication Publication Date Title
US11962778B2 (en) Chroma quantization in video coding
KR101834688B1 (ko) 저 지연 조명 보상 프로세스 및 깊이 룩업 테이블 기반 코딩을 위한 방법
US9143776B2 (en) No-reference video/image quality measurement with compressed domain features
TW201637447A (zh) 動態將品質更新到更高色度取樣率
KR20160138214A (ko) 컬러 공간 전환시의 양자화/스케일링 및 역 양자화/스케일링의 조정
US10645416B2 (en) Method and apparatus for encoding and decoding an image using a modified distribution of neighboring reference pixels
TW201637443A (zh) 在改變色度取樣率時濾波以減輕異常
RU2628133C2 (ru) Кодирование и декодирование слайсов в изображениях видеопотока
US10735724B2 (en) Method and device for compressing image on basis of photography information
CN112235584B (zh) 一种用于图像划分的方法及装置、编码、解码视频序列图像的方法及装置
WO2015136485A1 (en) Improved screen content and mixed content coding
EP3195597A1 (en) Methods, encoders and decoders for coding of video sequences
CN117616751A (zh) 动态图像组的视频编解码
Siivonen Subjective Video Quality Enhancement in Kvazaar HEVC Encoder