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

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

Info

Publication number
RU2580098C2
RU2580098C2 RU2014116250/08A RU2014116250A RU2580098C2 RU 2580098 C2 RU2580098 C2 RU 2580098C2 RU 2014116250/08 A RU2014116250/08 A RU 2014116250/08A RU 2014116250 A RU2014116250 A RU 2014116250A RU 2580098 C2 RU2580098 C2 RU 2580098C2
Authority
RU
Russia
Prior art keywords
reference images
image
images
list
current image
Prior art date
Application number
RU2014116250/08A
Other languages
English (en)
Other versions
RU2014116250A (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 RU2014116250A publication Critical patent/RU2014116250A/ru
Application granted granted Critical
Publication of RU2580098C2 publication Critical patent/RU2580098C2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for 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/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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/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/176Methods 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 block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении возможности кодирования текущего изображения на основе модифицированного списка опорных изображений. Способ кодирования видеоданных содержит: кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений; построение множества поднаборов опорных изображений; построение начального списка опорных изображений на основе построенных поднаборов опорных изображений, когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений: определение индекса по меньшей мере для одного из построенных поднаборов опорных изображений; идентификацию опорного изображения, идентифицированного в записи по меньшей мере одного из построенных поднаборов опорных изображений на основе определенного индекса; и добавление идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений; и кодирование текущего изображения на основе модифицированного списка опорных изображений. 4 н. и 25 з.п. ф-лы, 10 ил., 8 табл.

Description

Перекрестные ссылки на родственные заявки
По данной заявке испрашивается приоритет по:
предварительной заявке на патент США №61/538787, поданной 23 сентября 2011 года;
предварительной заявке на патент США №61/539433, поданной 26 сентября 2011 года; и
предварительной заявке на патент США №61/542034, поданной 30 сентября 2011 года, содержание которых целиком включено сюда по ссылке.
Область техники, к которой относится изобретение
Изобретение относится к видеокодированию и, в частности, касается методик для кодирования видеоданных.
Уровень техники
Возможности цифрового видео могут быть включены в устройства самого широкого применения, в том числе цифровые телевизионные приемники, системы прямого цифрового вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), компьютеры типа «лэптоп» или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые медиаплееры, видеоигровые устройства, видеоигровые консоли, сотовые или спутниковые радиотелефоны, так называемые «смартфоны», устройства для проведения телеконференций, устройства потокового видео и т.п. Устройства цифрового видео реализуют различные методики сжатия видео, которые, например, описаны в стандартах определенных как MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10, стандарт усовершенствованного видеокодирования (AVC), высокоэффективный стандарт видеокодирования (HEVC), находящийся в процессе разработки, а также расширения указанных стандартов. Видеоустройства могут передавать, принимать, энкодировать, декодировать и/или запоминать цифровую видеоинформацию более эффективно посредством реализации указанных методик сжатия видео.
Согласно методикам сжатия видео выполняется пространственное (внутрикадровое) предсказание и/или временное (межкадровое) предсказание с целью уменьшения или исключения избыточности, свойственной видеопоследовательностям. Для видеокодирования на блочной основе видеослайс (то есть, видеоизображение или часть видеоизображения) может быть разделен на видеоблоки, которые также могут называться древовидными блоками, блоками древовидного кода (CTB), единицами древовидного кода (CTU), единицами кода (CU) и/или узлами кадра. Видеоблоки в слайсе изображения с внутрикадровым кодированием (I) кодируют с использованием пространственного предсказания применительно к опорным отсчетам в соседних блоках одного и того же изображения. В видеоблоках в слайсе изображения с межкадровым кодированием (P или B) может использоваться пространственное предсказание в отношении опорных отсчетов в соседних блоках одного и того же изображения или временное предсказание в отношении опорных отсчетов других опорных изображений. Изображения могут называться кадрами, а опорные изображения могут называться опорными кадрами.
В результате пространственного или временного предсказания получают предиктивный блок для блока, подлежащего кодированию. Остаточные данные представляют пиксельную разность между исходным блоком, подлежащим кодированию, и предиктивным блоком. Блок с межкадровым кодированием кодируют в соответствии с вектором движения, который указывает блок опорных отсчетов, образующих предиктивный блок, и остаточные данные, указывающие различие между кодированным блоком и предиктивным блоком. Блок с внутрикадровым кодированием кодируют в соответствии с режимом внутрикадрового кодирования и остаточными данными. Для дальнейшего сжатия остаточные данные можно преобразовать из пиксельной области в область преобразования, в результате чего получают остаточные коэффициенты преобразования, которые затем можно квантовать. Квантованные коэффициенты преобразования, изначально скомпонованные в двумерной матрице, можно сканировать для создания одномерного вектора коэффициентов преобразования, и применить энтропийное кодирование для достижения еще большего сжатия.
Сущность изобретения
В общем случае в данном разделе описываются методики, относящиеся к получению набора опорных изображений для его использования при видеокодировании. Например, набор опорных изображений может образовать комбинацию из множества поднаборов опорных изображений. Каждый из поднаборов опорных изображений может идентифицировать множество потенциальных опорных изображений, меньшее, чем все потенциальные опорные изображения. В приведенных в качестве примера методиках, описанных в этом разделе, видеокодер (кодер или декодер) может построить множество списков, каждый из которых включает в себя идентификаторы поднабора потенциальных опорных изображений. Исходя из этого множества списков, видеокодер может построить множество поднаборов опорных изображений, в результате чего видеокодер получит набор опорных изображений.
Вдобавок к методикам, относящимся к получению набора опорных изображений, здесь раскрыты упрощенные методики использования списка опорных изображений. Использование списка опорных изображений может исключить необходимость переупорядочивания опорных изображений. Например, если в модификации списка опорных изображений нет необходимости, то тогда начальные списки опорных изображений могут образовать конечные списки опорных изображений, и тогда дополнительное переупорядочивание может не потребоваться. Указанные методики также могут быть предназначены для построения списка опорных изображений таким образом, при котором видеокодер многократно добавляет опорные изображения в список опорных изображений, пока количество записей в списке опорных изображений не станет равным максимально допустимому количеству записей.
В некоторых примерах указанные методики предназначены для модификации списка опорных изображений. Например, видеокодер может модифицировать список опорных изображений путем обращения к одному или нескольким поднаборам опорных изображений и введения одного или нескольких изображений из поднаборов опорных изображений в список опорных изображений после построения начального списка опорных изображений.
В некоторых примерах видеокодер может осуществлять управление буфером декодированных изображений (DPB). В этих примерах видеокодер может удалять декодированные изображения из буфера DPB, если декодированное изображение не относится к набору опорных изображений. В некоторых случаях, видеокодер может удалить декодированное изображение до кодирования текущего изображения.
В одном примере описывается способ кодирования видеоданных, который включает в себя кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Этот способ также включает в себя построение множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, и кодирование текущего изображения на основе указанного множества поднаборов опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя видеокодер, который сконфигурирован для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Видеокодер также сконфигурирован для построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, и кодирования текущего изображения на основе указанного множества поднаборов опорных изображений.
В одном примере описывается считываемый компьютером носитель данных, с запомненными на нем командами, которые при их выполнении инициируют кодирование процессором устройства для кодирования видеоданных информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Эти команды также инициируют построение процессором множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, и кодирование текущего изображения на основе указанного множества поднаборов опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя средство для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Устройство также включает в себя средство для построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, и средство для кодирования текущего изображения на основе указанного множества поднаборов опорных изображений.
В одном примере описывается способ кодирования видеоданных, причем способ включает в себя кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Этот способ также включает в себя построение множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, добавление опорных изображений из первого поднабора из множества поднаборов опорных изображений, за которыми добавляют опорные изображения из второго поднабора из множества поднаборов опорных изображений, и за которыми добавляют опорные изображения из третьего поднабора из множества поднаборов опорных изображений, в список опорных изображений, пока количество записей в списке опорных изображений не превышает максимальное количество записей, допустимое для списка опорных изображений, и кодирование текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя видеокодер, сконфигурированный для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Видеокодер также сконфигурирован для построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, добавления опорных изображений из первого поднабора из множества поднаборов опорных изображений, за которыми добавляют опорные изображения из второго поднабора из множества поднаборов опорных изображений, и за которыми добавляют опорные изображения из третьего поднабора из множества поднаборов опорных изображений, в список опорных изображений, пока количество записей в списке опорных изображений не превышает максимальное количество записей, допустимое для списка опорных изображений, и кодирование текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается считываемый компьютером носитель данных с запомненными на нем командами, которые при их выполнении инициируют кодирование процессором устройства для кодирования видеоданных информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Эти команды также инициируют построение процессором множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, добавление опорных изображений из первого поднабора из множества поднаборов опорных изображений, за которыми добавляют опорные изображения из второго поднабора из множества поднаборов опорных изображений, и за которыми добавляют опорные изображения из третьего поднабора из множества поднаборов опорных изображений, в список опорных изображений, пока количество записей в списке опорных изображений не превышает максимальное количество записей, допустимое для списка опорных изображений, и кодирование текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя средство для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Устройство также включает в себя средство для построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений, средство для добавления опорных изображений из первого поднабора из множества поднаборов опорных изображений, за которыми добавляют опорные изображения из второго поднабора из множества поднаборов опорных изображений, и за которыми добавляют опорные изображения из третьего поднабора из множества поднаборов опорных изображений, в список опорных изображений, пока количество записей в списке опорных изображений не превышает максимальное количество записей, допустимое для списка опорных изображений, и кодирование текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается способ кодирования видеоданных, причем способ включает в себя кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Этот способ также включает в себя: построение множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; добавление опорных изображений из множества поднаборов опорных изображений в первый набор записей в списке опорных изображений; определение того, равно ли количество записей в списке опорных изображений максимальному количеству записей, допустимому для списка опорных изображений; повторное добавление одного или нескольких опорных изображений по меньшей мере из одного из поднаборов опорных изображений к записям в списке опорных изображений, которые следуют за первым набором записей, пока количество записей в списке опорных изображений не станет равным максимальному количеству записей, допустимому для списка опорных изображений, когда количество записей в списке опорных изображений не равно максимальному количеству записей, допустимому для списка опорных изображений; и кодирование текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя видеокодер, сконфигурированный для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Видеокодер также сконфигурирован для: построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; добавления опорных изображений из множества поднаборов опорных изображений в первый набор записей в списке опорных изображений; определения того, равно ли количество записей в списке опорных изображений максимальному количеству записей, допустимому для списка опорных изображений; повторного добавления одного или нескольких опорных изображений по меньшей мере из одного из поднаборов опорных изображений к записям в списке опорных изображений, которые следуют за первым набором записей, пока количество записей в списке опорных изображений не станет равным максимальному количеству записей, допустимому для списка опорных изображений, когда количество записей в списке опорных изображений не равно максимальному количеству записей, допустимому для списка опорных изображений; и кодирования текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается считываемый компьютером носитель данных с запомненными на нем командами, которые при их выполнении инициируют кодирование процессором устройства для кодирования видеоданных информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Эти команды также инициируют: построение процессором множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; добавление процессором опорных изображений из множества поднаборов опорных изображений в первый набор записей в списке опорных изображений; определение процессором того, равно ли количество записей в списке опорных изображений максимальному количеству записей, допустимому для списка опорных изображений; повторное добавление процессором одного или нескольких опорных изображений по меньшей мере из одного из поднаборов опорных изображений к записям в списке опорных изображений, которые следуют за первым набором записей, пока количество записей в списке опорных изображений не станет равным максимальному количеству записей, допустимому для списка опорных изображений, когда количество записей в списке опорных изображений не равно максимальному количеству записей, допустимому для списка опорных изображений; и кодирование процессором текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя средство для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Устройство также включает в себя: средство для построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; средство для добавления опорных изображений из множества поднаборов опорных изображений в первый набор записей в списке опорных изображений; средство для определения того, равно ли количество записей в списке опорных изображений максимальному количеству записей, допустимому для списка опорных изображений; средство для многократного повторного добавления одного или нескольких опорных изображений по меньшей мере из одного из поднаборов опорных изображений к записям в списке опорных изображений, которые следуют за первым набором записей, пока количество записей в списке опорных изображений не станет равным максимальному количеству записей, допустимому для списка опорных изображений, когда количество записей в списке опорных изображений не равно максимальному количеству записей, допустимому для списка опорных изображений; и средство для кодирования текущего изображения на основе указанного списка опорных изображений.
В одном примере описывается способ кодирования видеоданных, причем способ включает в себя кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Этот способ также включает в себя: построение множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; построение начального списка опорных изображений на основе построенных поднаборов опорных изображений; и идентификацию опорного изображения по меньшей мере в одном из построенных поднаборов опорных изображений, когда необходима модификация списка опорных изображений; и добавление идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений. Способ кроме того включает в себя кодирование текущего изображения на основе модифицированного списка опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя видеокодер, сконфигурированный для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Видеокодер также сконфигурирован для: построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; построения начального списка опорных изображений на основе построенных поднаборов опорных изображений; идентификации опорного изображения по меньшей мере в одном из построенных поднаборов опорных изображений, когда необходима модификация списка опорных изображений; и добавления идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений. Способ кроме того включает в себя кодирование текущего изображения на основе модифицированного списка опорных изображений.
В одном примере описывается считываемый компьютером носитель данных с запомненными на нем командами, которые при их выполнении инициируют кодирование процессором устройства для кодирования видеоданных информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Эти команды также инициируют: построение процессором множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; построение процессором начального списка опорных изображений на основе построенных поднаборов опорных изображений; идентификацию процессором опорного изображения по меньшей мере в одном из построенных поднаборов опорных изображений, когда необходима модификация списка опорных изображений; и добавление процессором идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений. Упомянутые команды также инициируют кодирование процессором текущего изображения на основе модифицированного спискаопорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя средство для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Устройство также включает в себя: средство для построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений; средство для построения начального списка опорных изображений на основе построенных поднаборов опорных изображений; средство для идентификации опорного изображения по меньшей мере в одном из построенных поднаборов опорных изображений, когда необходима модификация списка опорных изображений; и средство для добавления идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений. Устройство также включает в себя средство для кодирования текущего изображения на основе модифицированного списка опорных изображений.
В одном примере описывается способ кодирования видеоданных, причем способ включает в себя кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Этот способ включает в себя: получение набора опорных изображений на основе упомянутой кодированной информации; определение того, нет ли необходимости вывода декодированного изображения, хранящегося в буфере декодированных изображений (DPB), и не идентифицировано ли оно в списке опорных изображений; удаление декодированного изображения из буфера DPB, когда нет необходимости вывода декодированного изображения, и оно не идентифицировано в списке опорных изображений; и кодирование текущего изображения после удаления упомянутого декодированного изображения.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя видеокодер, сконфигурированный для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Видеокодер также сконфигурирован для: получения набора опорных изображений на основе упомянутой кодированной информации; определения того, нет ли необходимости вывода декодированного изображения, хранящегося в буфере декодированных изображений (DPB), и не идентифицировано ли оно в списке опорных изображений; удаления декодированного изображения из буфера DPB, когда нет необходимости вывода декодированного изображения, и оно не идентифицировано в списке опорных изображений; и кодирования текущего изображения после удаления упомянутого декодированного изображения.
В одном примере описывается считываемый компьютером носитель данных с запомненными на нем командами, которые при их выполнении инициируют кодирование процессором устройства для кодирования видеоданных информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Упомянутые команды также инициируют: получение процессором набора опорных изображений на основе упомянутой кодированной информации; определение процессором того, нет ли необходимости вывода декодированного изображения, хранящегося в буфере декодированных изображений (DPB), и не идентифицировано ли оно в списке опорных изображений; удаление процессором декодированного изображения из буфера DPB, когда нет необходимости вывода декодированного изображения, и оно не идентифицировано в списке опорных изображений; и кодирование процессором текущего изображения после удаления упомянутого декодированного изображения.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя средство для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений. В этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Устройство также включает в себя: средство для получения набора опорных изображений на основе упомянутой кодированной информации; средство для определения того, нет ли необходимости вывода декодированного изображения, хранящегося в буфере декодированных изображений (DPB), и не идентифицировано ли оно в списке опорных изображений; средство для удаления декодированного изображения из буфера DPB, когда нет необходимости вывода декодированного изображения, и оно не идентифицировано в списке опорных изображений; и средство для кодирования текущего изображения после удаления упомянутого декодированного изображения.
В одном примере описывается способ кодирования видеоданных, причем способ включает в себя кодирование синтаксических элементов, указывающих возможные долгосрочные опорные изображения, которые идентифицированы в наборе параметров. В этом примере к набору опорных изображений текущего изображения относятся одно или несколько возможных долгосрочных опорных изображений. Также в этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Этот способ также включает в себя: кодирование синтаксических элементов, которые указывают, какие возможные долгосрочные опорные изображения, идентифицированные в наборе параметров, относятся к набору опорных изображений текущего изображения; и построение по меньшей мере одного из множества поднаборов опорных изображений на основе указания о том, какие возможные долгосрочные опорные изображения, относятся к набору опорных изображений текущего изображения. В этом примере множество поднаборов опорных изображений образует набор опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя видеокодер, сконфигурированный для кодирования синтаксических элементов, указывающих возможные долгосрочные опорные изображения, которые идентифицированы в наборе параметров. В этом примере к набору опорных изображений текущего изображения относятся одно или несколько возможных долгосрочных опорных изображений. Также в этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Видеокодер также сконфигурирован для: кодирования синтаксических элементов, которые указывают, какие возможные долгосрочные опорные изображения, идентифицированные в наборе параметров, относятся к набору опорных изображений текущего изображения; и построения по меньшей мере одного из множества поднаборов опорных изображений на основе указания о том, какие возможные долгосрочные опорные изображения относятся к набору опорных изображений текущего изображения. В этом примере множество поднаборов опорных изображений образует набор опорных изображений.
В одном примере описывается считываемый компьютером носитель данных с запомненными на нем командами, которые при их выполнении инициируют кодирование процессором устройства для кодирования видеоданных синтаксических элементов, указывающих возможные долгосрочные опорные изображения, идентифицированные в наборе параметров. В этом примере к набору опорных изображений текущего изображения относятся одно или несколько возможных долгосрочных опорных изображений. Также в этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Эти команды также инициируют: кодирование процессором синтаксических элементов, которые указывают, какие возможные долгосрочные опорные изображения, идентифицированные в наборе параметров, относятся к набору опорных изображений текущего изображения; и построение процессором по меньшей мере одного из множества поднаборов опорных изображений на основе указания о том, какие возможные долгосрочные опорные изображения относятся к набору опорных изображений текущего изображения. В этом примере множество поднаборов опорных изображений образует набор опорных изображений.
В одном примере описывается устройство для кодирования видеоданных. Устройство включает в себя средство для кодирования синтаксических элементов, указывающих возможные долгосрочные опорные изображения, которые идентифицированы в наборе параметров. В этом примере к набору опорных изображений текущего изображения относятся одно или несколько возможных долгосрочных опорных изображений. Также в этом примере набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Устройство включает в себя: средство для кодирования синтаксических элементов, которые указывают, какие возможные долгосрочные опорные изображения, идентифицированные в наборе параметров, относятся к набору опорных изображений текущего изображения; и средство для построения по меньшей мере одного из множества поднаборов опорных изображений на основе указания о том, какие возможные долгосрочные опорные изображения относятся к набору опорных изображений текущего изображения. В этом примере множество поднаборов опорных изображений образует набор опорных изображений.
В нижеследующем описании и сопроводительных чертежах раскрыты подробности одного или нескольких примеров осуществления изобретения. Другие признаки, цели и преимущества настоящего изобретения станут очевидными из его описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг. 1 - блок-схема, иллюстрирующая приведенную в качестве примера систему видеоэнкодирования и видеодекодирования, где могут быть использованы описанные методики;
фиг. 2 - концептуальная схема, иллюстрирующая приведенную в качестве примера видеопоследовательность, которая включает в себя множество кодированных и переданных изображений;
фиг. 3 - блок-схема, иллюстрирующая приведенный в качестве примера видеоэнкодер, который может реализовать описанные здесь методики;
фиг. 4 - блок-схема, иллюстрирующая приведенный в качестве примера видеодекодер, который может реализовать описанные здесь методики;
фиг. 5 - блок-схема, иллюстрирующая приведенную в качестве примера операцию получения набора опорных изображений;
фиг. 6 - блок-схема, иллюстрирующая приведенную в качестве примера операцию построения списка опорных изображений;
фиг. 7 - блок-схема, иллюстрирующая приведенную в качестве примера другую операцию построения списка опорных изображений;
фиг. 8 - блок-схема, иллюстрирующая приведенную в качестве примера операцию модификации начального списка опорных изображений;
фиг. 9 - блок-схема, иллюстрирующая приведенную в качестве примера операцию удаления декодированного изображения;
фиг. 10 - блок-схема, иллюстрирующая приведенную в качестве примера операцию по определению того, какие долгосрочные опорные изображения относятся к набору опорных изображений текущего изображения.
Подробное описание изобретения
Методики, раскрытые в этом изобретении, в общем случае относятся к управлению опорными изображениями, которые используют для межкадрового предсказания. Например, видеокодер (например, видеоэнкодер или видеодекодер) включает в себя буфер декодированных изображений (DPB). В буфере DPB запоминаются декодированные изображения, в том числе опорные изображения. Опорными изображениями являются изображения, которые можно потенциально использовать для межкадрового предсказания изображения. Другими словами, видеокодер может предсказывать изображение во время кодирования (энкодирования или декодирования) данного изображения на основе одного или нескольких опорных изображений, запомненных в буфере DPB.
Для эффективного использования DPB может быть определен процесс управления DPB, например, процесс запоминания декодированных изображений в DPB, процесс маркировки опорных изображений, процесс вывода и удаления декодированных изображений из буфера DPB и т.д. В общем случае, в некоторых современных, а также разрабатываемых в настоящее время стандартах видеокодирования управление буфером DPB может включать в себя один или несколько следующих аспектов: идентификацию изображения и идентификацию опорного изображения, построение списка опорных изображений, маркировку опорных изображений, вывод изображения из буфера DPB, ввод изображений в буфер DPB и удаление изображения из буфера DPB.
Для облегчения понимания далее представлено краткое описание того, как может реализоваться маркировка опорных изображений и как строится список опорных изображений согласно некоторым стандартам видеокодирования. Некоторые из описанных здесь методик учитывают проблемы, которые могут возникнуть при маркировке опорных изображений, построении списка опорных изображений и удалении и выводе изображений и буфера DPB, с тем чтобы повысить эффективность использования буфера DPB.
Для маркировки опорных изображений в действующем наборе параметров последовательности указывается максимальное количество, обозначенное как M (num_ref_frames) опорных изображений, используемых для межкадрового предсказания. После декодирования опорного изображения оно маркируется как «используемое для в качестве опорного». Если декодирование опорных изображений привело к появлению более, чем М изображений, отмеченных как «используемое в качестве опорного» по меньшей мере одно изображение должно быть помечено как «не используемое как опорное». Затем в ходе процесса удаления из буфера DPB удаляются изображения, помеченные как «не используемое в качестве опорного», если их не требуется выводить.
После декодирования изображения оно может представлять собой либо не опорное изображение, либо опорное изображение. Опорное изображение может представлять собой долгосрочное опорное изображение или краткосрочное опорное изображение, и, когда изображение маркируется как «не используемое в качестве опорного», оно в дальнейшем может больше не понадобиться в качестве опорного. В некоторых стандартах видеокодирования возможны операции маркировки опорных изображений, изменяющие статус опорных изображений.
Возможны два типа операций для маркировки опорных изображений: скользящее окно и адаптивное управление памятью. Рабочий режим для маркировки опорных изображений можно выбрать на основе изображения, в то время как операция скользящего окна может функционировать в виде очереди «первый пришел - первый вышел» с фиксированным количеством краткосрочных опорных изображений. Другими словами, краткосрочные опорные изображения с самым ранним временем декодирования могут оказаться первыми кандидатами на косвенное удаление (помеченные как изображения, не используемые в качестве опорных).
Однако при использовании адаптивного управления памятью краткосрочные или долгосрочные изображения удаляются явном образом. Также допускается переключение статуса краткосрочных и долгосрочных изображений, и т.д. Например, при адаптивном управлении памятью видеоэнкодер может передавать синтаксические элементы, которые предписывают, какие изображения следует маркировать, как используемые в качестве опорных. Видеодекодер может принимать синтаксические элементы и маркировать изображения, как это предписано. При использовании скользящего окна видеоэнкодеру возможно не понадобиться сигнализировать о том, какие изображения следует маркировать, как используемые в качестве опорных. Скорее, видеодекодер может неявным образом (то есть, не принимая синтаксические элементы) определить, какие изображения следует маркировать как используемые в качестве опорных, на основе того, какие изображения находятся внутри скользящего окна.
На видеокодер также может быть возложена задача построения списков опорных изображений, указывающих, какие опорные изображения можно использовать для целей межкадрового предсказания. Два из таких списков опорных изображений обозначены здесь как список 0 и список 1. Сначала видеокодер использует стандартные методики построения списков для построения списка 0 и списка 1 (например, предварительно сконфигурированные схемы для построения списка 0 и списка 1). В другом возможном варианте после построения начальных списков 0 и 1 видеодекодер может декодировать синтаксические элементы, если они присутствуют, которые предписывают видеодекодеру модифицировать начальный список 0 и начальный список 1.
Видеоэнкодер может передавать в качестве сигнализации синтаксические элементы, которые указывают идентификатор (идентификаторы) опорных изображений в буфере DPB, причем видеоэнкодер также может передавать синтаксические элементы, включающих в себя индексы в списке 0, списке 1 или в обоих списках 0 и 1, которые указывают, какое опорное изображение или изображения следует использовать для декодирования кодированного блока текущего изображения. В свою очередь, видеодекодер использует полученный идентификатор для идентификации значения или значений индекса для опорного изображения или опорных изображений, перечисленных в списке 0, списке 1 или обоих этих списках. Исходя из значения (значений) индекса, а также идентификатора (идентификаторов) опорного изображения или опорных изображений, видеодекодер извлекает из буфера DPB опорное изображение или опорные изображения либо его часть (части) и декодирует кодированный блок текущего изображения на основе извлеченного опорного изображения или изображений и одного или нескольких векторов движения, которые идентифицируют блоки в опорном изображении или изображениях, используемые для декодирования кодированного блока.
Например, построение списка опорных изображений для первого или второго списка опорных изображений для двунаправленного изображения включает в себя два шага: инициализацию списка опорных изображений и модификацию списка опорных изображений (также называемую переупорядочиванием списка опорных изображений). Инициализация списка опорных изображений может представлять собой имплицитный процесс, в ходе которого помещает опорные изображения помещают в память опорных изображений (известную также под названием «буфер декодированных изображений») в список на основе очередности значений POC (счетчика очередности изображения, согласованной с очередностью отображения изображения). Механизм переупорядочивания списка опорных изображений может изменить позицию изображения, которая была заложена в списке во время инициализации списка опорных изображений, на любую новую позицию или поместить какое-либо опорное изображение в памяти опорных изображений на какую-либо позицию, даже если данное изображение не относится к инициализированному списку. Некоторые изображения после переупорядочивания (модификации) списка опорных изображений могут быть помещены на очень далекую позицию в списке. Однако, если номер позиции изображения превышает количество реальных опорных изображений в списке, данное изображение не считается записью окончательного списка опорных изображений. Количество действительных опорных изображений может быть указано в заголовке каждого списка.
Методики, описанные в этом разделе, можно применять для различных стандартов видеокодирования. Примеры стандартов видеокодирования включают в себя ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный, как ISO/IEC MPEG-4 AVC), включая расширения масштабируемого видеокодирования (SVC) и многовидового видеокодирования (MVC). Вдобавок, имеется новый стандарт видеокодирования, а именно, высокоэффективное видеокодирование (HEVC), разрабатываемое объединенной командой разработчиков систем видеокодирования (JCT-VC) Экспертной группы по видеокодированию ITU-T (VCEG) и Экспертной группой по движущимся изображениям (MPEG) ISO/IEC.
Исключительно в иллюстративных целях эти методики описаны в контексте стандарта HEVC. Последний рабочий проект (WD) стандарта HEVC, далее называемый HEVC WD8, доступен с 20 июля 2012 года по ссылке http://phenix.int-evry/fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8-zip.
Как было описано выше, раскрытые здесь методики могут касаться проблем, которые возможно присутствуют в существующих технических решениях, касающихся управления буфером декодированных изображений (DPB). В некоторых приведенных в качестве примера методиках, описанных в данном разделе, маркировка опорных изображений как «не используемых в качестве опорных» может не понадобиться. Например, описанные здесь методики могут касаться проблем, связанных со способами управления буфером DPB, которые не всегда хорошо подходят для временного изменения масштаба, проблем, относящимся к издержкам на сигнализацию для долгосрочных опорных изображений, проблем, относящихся к эффективности и сложности инициализации и модификации списка опорных изображений. Описанные в данном разделе методики могут также касаться вопросов, связанных с маркировкой «не опорных изображений» для незавершенных записей в списке опорных изображений во время инициализации списка опорных изображений, проблем, связанных с выводом, вводом и удалением из буфера DPB декодированного изображения, а также вопросов, связанных с возможными значениями счетчика очередности изображения (POC).
Согласно методикам, описанным в этом разделе, списки опорных изображений строят из набора опорных изображений. Набор опорных изображений определяют как набор опорных изображений, связанных с изображением, состоящим из всех опорных изображений, которые находятся перед соответствующим изображением в порядке декодирования, что можно использовать для межкадрового предсказания блоков в соответствующем изображении или любом изображении, следующем за указанным соответствующим изображением в порядке декодирования, например, до следующего изображения, обеспечивающего мгновенное обновление при декодировании, (далее называемого IDR изображением) или до изображения с доступом к нерабочей ссылке (далее называемым BLA изображением). Другими словами, для опорных изображений в наборе опорных изображений могут понадобиться следующие характеристики: (1) все опорные изображения поступают перед текущим изображением в порядке декодирования; и (2) их можно использовать для межкадрового предсказания текущего изображения и/или межкадрового предсказания любого изображения, следующего за текущим изображением в порядке декодирования, причем в некоторых примерах до следующего IDR изображения или до следующего BLA изображения. Возможны другие альтернативные определения набора опорных изображений, которые представлены ниже.
В описанных здесь методиках, представленных в качестве примеров, видеокодер может получить набор опорных изображений, и после выполнения этой операции получения видеокодер может построить списки опорных изображений. Например, возможными опорными изображениями, используемыми для построения списков опорных изображений, могут быть только опорные изображения, содержащиеся в наборе опорных изображений.
Для построения набора опорных изображений видеокодер может построить множество поднаборов опорных изображений. Комбинация поднаборов опорных изображений может образовать набор опорных изображений. Например, видеокодер может явным образом передать в кодированном битовом потоке в качестве сигнализации значения, позволяющие видеодекодеру определить идентификаторы для опорных изображений, которые включены в набор опорных изображений. Идентификаторы опорных изображений могут, например, представлять собой счетчики очередности изображения. Каждое изображение связано с одним счетчиком очередности изображения, названным здесь PicOrderCnt. Счетчик PicOrderCnt указывает очередность вывода или очередность отображения соответствующего изображения по отношению к предшествующему IDR изображению в порядке декодирования, а в некоторых других альтернативных вариантах указывает позицию соответствующего изображения в порядке вывода по отношению к позициям очередности вывода других изображений в той же самой кодированной видеопоследовательности.
PicOrderCnt может называться здесь значением счетчика очередности изображения (POC). Значение POC может указывать очередность вывода или отображения изображения и может быть использовано для идентификации изображения. Например, в кодированной видеопоследовательности изображение с меньшим значением POC выводится или отображается раньше, чем изображение с большим значением POC.
Видеодекодер может определить идентификаторы для опорных изображений и, исходя из этих идентификаторов, построить множество поднаборов опорных изображений. Исходя из этих поднаборов опорных изображений, видеодекодер может получить набор опорных изображений, как более подробно описано ниже. В некоторых примерах каждый из поднаборов опорных изображений включает в себя разные опорные изображения в том смысле, что в поднаборах опорных изображений отсутствует перекрытие опорных изображений. Таким образом, каждое из опорных изображений может находиться только в одном из поднаборов опорных изображений и отсутствует в других поднаборах опорных изображений. Однако раскрытые здесь аспекты не следует считать ограничениями.
После определения идентификаторов (например, значений POC) опорных изображений в наборе опорных изображений или его поднаборах видеодекодер может построить поднаборы опорных изображений. Как более подробно описано ниже, видеодекодер может построить шесть поднаборов опорных изображений, хотя вполне возможно, чтобы видеодекодер построил большее или меньшее количество поднаборов опорных изображений.
Эти шесть поднаборов опорных изображений названы: RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, и RefPicSetLtFoll. Поднабор опорных изображений RefPicSetStCurr0 может использоваться под именем «поднабор опорных изображений RefPicSetStCurrBefore», а поднабор опорных изображений RefPicSetStCurr1 может использоваться под именем «поднабор опорных изображений RefPicSetStCurrAfter».
Поднаборы опорных изображений RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0 и RefPicSetStFoll1 могут идентифицировать краткосрочные опорные изображения. В некоторых примерах эти поднаборы опорных изображений могут идентифицировать краткосрочные опорные изображения, исходя из того, поступают эти краткосрочные опорные изображения в порядке отображения раньше или позже, чем кодируемое в данный момент текущее изображение, а также, исходя из того, могут ли эти краткосрочные опорные изображения быть потенциально использованы для межкадрового предсказания текущего изображения и изображений, следующих за текущим изображением в порядке декодирования, или потенциально использованы для межкадрового предсказания только тех изображений, которые следуют за текущим изображением в порядке декодирования.
Например, поднабор опорных изображений RefPicSetStCurr0 может включать в себя не только (или только) идентификационную информацию, такую как значения POC, для всех краткосрочных опорных изображений, которые выводятся и отображаются раньше, чем текущее изображение, и которые можно потенциально использовать в качестве опорных при межкадровом предсказании текущего изображения, и можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Поднабор опорных изображений RefPicSetStCurr1 может включать в себя не только (или только) идентификационную информацию для всех краткосрочных опорных изображений, которые выводятся или отображаются позднее, чем текущее изображение, и которые можно потенциально использовать в качестве опорных при межкадровом предсказании текущего изображения и можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Поднабор опорных изображений RefPicSetStFoll0 может включать в себя не только (или только) идентификационную информацию для всех краткосрочных опорных изображений, которые выводятся или отображаются раньше, чем текущее изображение, и которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, которые следуют за текущим изображением в порядке декодирования, и которые не могут быть использованы в качестве опорных при межкадровом предсказании текущего изображения. Поднабор опорных изображений RefPicSetStFoll1 может включать в себя не только (или только) идентификационную информацию для всех краткосрочных опорных изображений, которые выводятся или отображаются позднее, чем текущее изображение, и которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, и которые не могут быть использованы в качестве опорных при межкадровом предсказании текущего изображения.
Поднаборы опорных изображений RefPicSetLtCurr и RefPicSetLtFoll могут идентифицировать долгосрочные опорные изображения. В некоторых примерах эти поднаборы опорных изображений могут идентифицировать долгосрочные опорные изображения, исходя из того, отображаются ли эти долгосрочные опорные изображения раньше или позже, чем кодируемое текущее изображение.
Например, поднабор опорных изображений RefPicSetLtCurr может включать в себя не только (или только) идентификационную информацию для всех долгосрочных опорных изображений, которые можно потенциально использовать в качестве опорных при межкадровом предсказании текущего изображения и которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Поднабор опорных изображений RefPicSetLtFoll может включать в себя не только (или только) идентификационную информацию для всех долгосрочных опорных изображений, которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования и которые нельзя использовать в качестве опорных при межкадровом предсказании текущего изображения.
После построения поднаборов опорных изображений видеодекодер может выполнить переупорядочивание поднаборов опорных изображений, чтобы получить набор опорных изображений. Например, опорные изображения могут быть расположены в следующем порядке: RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetFoll0, RefPicSetFoll1, RefPicSetLtCurr, и RefPicSetLtFoll. Однако, для получения набора опорных изображений возможно использование другого порядка следования поднаборов. Например, возможен следующий порядок следования поднаборов в наборе опорных изображений: поднабор опорных изображений RefPicSetStCurr0, за которым следует поднабор опорных изображений RefPicSetStCurr1, за которым следует поднабор опорных изображений RefPicSetLtCurr, за которым следует поднабор опорных изображений RefPicSetStFoll0, за которым следует поднабор опорных изображений RefPicSetFoll1, и за которым следует поднабор опорных изображений RefPicSetLtFoll.
Согласно описанным здесь методикам поднаборы RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr включают в себя все опорные изображения, которые можно использовать при межкадровом предсказании блока в текущем изображении, и которые можно использовать при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Поднаборы RefPicSetStFoll0, RefPicSetStFoll и RefPicSetLtFoll включают в себя все опорные изображения, которые не используют при межкадровом предсказании блока в текущем изображении, но которые можно использовать при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Следует понимать, что эти шесть поднаборов опорных изображений описаны только в иллюстративных целях, и их не следует рассматривать как ограничение. В альтернативных примерах возможно использование большего или меньшего количества поднаборов опорных изображений. В этих альтернативных примерах указанные поднаборы опорных изображений более подробно описываются ниже.
В некоторых описанных здесь методиках видеодекодер не обязательно выполняет маркировку декодированных изображений как «используемых в качестве опорных», «не используемых в качестве опорных», «используемых в качестве краткосрочных опорных» или «используемых в качестве долгосрочных опорных». Необходимость использования декодированного изображения, запомненного в буфере DPB, для межкадрового предсказания указывается тем, включено ли или нет указанное изображение в набор опорных изображений текущего изображения. В альтернативных примерах возможна следующая маркировка видеодекодером декодированных изображений: «используется в качестве опорного», «не используется в качестве опорного», «используется в качестве краткосрочного опорного» или «используется в качестве долгосрочного опорного». В этих примерах после декодирования изображения видеодекодером оно становится опорным изображением и маркируется как «используемое в качестве опорного». Затем, после активизации процесса получения набора опорных изображений все опорные изображения, запомненные в буфере DPB, но не включенные в набор опорных изображений текущего изображения, маркируются как «не используемые в качестве опорных» до возможного удаления декодированных изображений из буфера DPB. Таким образом, необходимость использования декодированного изображения, запомненного в буфере DPB для межкадрового предсказания, может быть указана в зависимости от того, имеет ли декодированное изображение маркировку «используемое в качестве опорного».
После получения видеодекодером набора опорных изображений из множества поднаборов опорных изображений видеодекодер может построить списки опорных изображений (например, список 0 и список 1) из набора опорных изображений. Например, построение списков опорных изображений может включать в себя шаг инициализации и возможно шаг модификации. Получив набор опорных изображений вышеописанным путем, видеодекодер может повысить эффективность и упростить инициализацию списков опорных изображений и модификацию списков опорных изображений.
Построение видеодекодером списков опорных изображений можно осуществить различными путями. Описанные здесь методики обеспечивают механизм, с помощью которого видеодекодер может построить списки опорных изображений без необходимости переупорядочивания опорных изображений, подлежащих включению в (начальный) список опорных изображений. Например, видеодекодер может быть сконфигурирован для реализации стандартной методики построения списка опорных изображений, согласно которой видеодекодер для построения начальных списков опорных изображений использует поднаборы опорных изображений. Тогда, если модификация списка опорных изображений не требуется, окончательные списки опорных изображений могут совпадать с начальными списками опорных изображений без необходимости какого-либо дополнительного переупорядочивания списков опорных изображений.
В некоторых примерах описанные здесь методики могут относиться к построению списков опорных изображений таким образом, чтобы в них не содержались незавершенные записи. Например, согласно этим методикам возможно многократное добавление опорных изображений в список опорных изображений из одного ил нескольких поднаборов опорных изображений. Например, после добавления видеодекодером опорных изображений из одного или нескольких наборов опорных изображений для построения начального списка опорных изображений видеодекодер может определить, меньше ли количество записей в списке опорных изображений максимально допустимого количества записей. Если количество записей в списке опорных изображений меньше максимально допустимого количества записей, то видеодекодер может добавить в список опорных изображений по меньшей мере одно из опорных изображений из одного из поднаборов опорных изображений, использованных для построения списка опорных изображений. Такое многократное добавление (также называемое «повторное внесение в список») опорного изображения может быть выполнено в другом месте в списках опорных изображений по сравнению с местом, куда видеодекодером было добавлено опорное изображение первый раз.
Используемое в этом изобретении повторное внесение в список или повторное добавление относится к повторному добавлению (например, повторная идентификация) опорного изображения, которое ранее было добавлено (например, идентифицировано) в начальный список опорных изображений. Однако, при повторном добавлении опорного изображения это опорное изображение может находиться в двух разных записях в начальном списке опорных изображений. Другими словами, при повторном добавлении опорного изображения может быть два значения индекса в начальном списке опорных изображений, которые идентифицируют одно и то же опорное изображение.
В некоторых примерах раскрытые здесь методики могут относиться к модификации начального списка опорных изображений. Например, видеодекодер может построить начальный список опорных изображений. Затем видеодекодер может определить, что необходима модификация списка опорных изображений, на основе синтаксических элементов, переданных видеокодером в кодированном битовом потоке. Если требуется модификация списка опорных изображений, то видеодекодер может идентифицировать опорное изображение по меньшей мере в одном из построенных поднаборов опорных изображений. Видеодекодер может внести (например, добавить) идентифицированное опорное изображение в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений. Затем видеодекодер может декодировать текущее изображение на основе модифицированного списка опорных изображений.
В некоторых примерах описанные здесь методики могут относиться к выводу и удалению декодированных изображений из буфера декодированных изображений (DPB). Согласно приведенным в качестве примера методикам возможно удаление декодированного изображения из буфера DPB до кодирования текущего изображения. Например, согласно приведенным в качестве примера методикам возможно удаление декодированного изображения, если это декодированное изображение не идентифицировано в наборе опорных изображений текущего изображения, и, если не требуется вывод этого декодированного изображения (то есть, либо это изображение не предназначалось для вывода, либо оно предназначалось для вывода, но уже было выведено).
На фиг. 1 представлена блок-схема, иллюстрирующая приведенную в качестве примера систему 10 видеоэнкодирования и видеодекодирования, в которой можно использовать раскрытые здесь методики. В общем случае набор опорных изображений определен как набор опорных изображений, связанных с изображением, состоящим из всех опорных изображений, которые поступают до соответствующего изображения в порядке декодирования и которые могут быть использованы для межкадрового предсказания соответствующего изображения или любого изображения, следующего за этим соответствующим изображением в порядке декодирования. В некоторых примерах опорные изображения, идущие до указанного соответствующего изображения могут считаться опорными изображениями до следующего IDR изображения или следующего BLA изображения. Другими словами, все опорные изображения в наборе опорных изображений могут поступать до текущего изображения в порядке декодирования. Также опорные изображения в наборе опорных изображений можно использовать для межкадрового предсказания текущего изображения и/или межкадрового предсказания любого изображения, следующего за текущим изображением в порядке декодирования до следующего IDR изображения или BLA изображения.
Имеется много других альтернативных определений набора опорных изображений. Например, набор опорных изображений может представлять собой набор опорных изображений, связанный с одним изображением, который состоит из всех опорных изображений, исключая само, связанное с ними изображение, которые можно использовать для межкадрового предсказания соответствующего изображения или любого изображения, следующего за этим изображением в порядке декодирования, и которые имеют значение временного идентификатора (temporal_id), меньшее или равное значению идентификатора указанного соответствующего изображения. Идентификатор temporal_id может представлять собой значение для временной идентификации. Это значение для временной идентификации может быть иерархическим, указывающим, какие изображения можно использовать для кодирования текущего изображения. В общем случае изображение с конкретным значением temporal_id может быть опорным изображением для тех изображений, у которых значения temporal_id равны или превышают значение temporal_id опорного изображения, но не наоборот. Например, изображение со значением temporal_id, равным 1, может являться опорным изображением для изображений со значениями temporal_id, равными 1, 2, 3…, но не для изображения со значением temporal_id, равным 0.
Минимальное значение temporal_id может также указывать минимальную частоту отображения. Например, если видеодекодер декодирует только изображения со значениями temporal_id, равными 0, то частота отображения может составить 7,5 изображений в секунду. Если видеодекодер декодирует только изображения со значениями temporal_id, равными 0 и 1, то частота отображения может составить 15 изображений в секунду и т.д.
В другом примере набор опорных изображений может представлять собой набор опорных изображений, связанный с одним изображением, который состоит из всех опорных изображений, исключая само, связанное с ними, изображение, которые можно использовать для межкадрового предсказания соответствующего изображения или любого изображения, следующего за этим соответствующим изображением в порядке декодирования.
Еще в одном примере набор опорных изображений может быть определен как набор опорных изображений, связанный с одним изображением, который состоит из всех опорных изображений, возможно включая само упомянутое соответствующее изображение, причем эти опорные изображения можно использовать для межкадрового предсказания указанного изображения или любого изображения, следующего за указанным изображением в порядке декодирования. В следующем примере набор опорных изображений может быть определен как набор опорных изображений, связанный с одним изображением, который состоит из всех опорных изображений, возможно включая само упомянутое соответствующее изображение, причем эти опорные изображения можно использовать для межкадрового предсказания указанного изображения или любого изображения, следующего за указанным изображением в порядке декодирования, и у которых значения temporal_id меньше или равны значению temporal_id указанного изображения.
В другом примере в приведенных выше определениях набора опорных изображений фраза «можно использовать для межкадрового предсказания» заменена фразой «используются для межкадрового предсказания». Хотя возможны альтернативные определения набора опорных изображений, в этом описании приведены примеры, где используется определение набора опорных изображений как набора опорных изображений, связанного с одним изображением, где набор опорных изображений состоит из всех опорных изображений, которые находятся перед упомянутым изображением в порядке декодирования, и где упомянутые опорные изображения можно использовать для межкадрового предсказания упомянутого изображения или любого изображения, следующего за упомянутым изображением в порядке декодирования.
Например, некоторые опорные изображения в наборе опорных изображений представляют собой опорные изображения, которые можно потенциально использовать для межкадрового предсказания блока текущего изображения, но не тех изображений, которые следуют за текущим изображением в порядке декодирования. Некоторые из опорных изображений в наборе опорных изображений представляют собой опорные изображения, которые можно потенциально использовать для межкадрового предсказания блока текущего изображения и блоков в одном или нескольких изображениях, следующих за текущим изображением в порядке декодирования. Некоторые из опорных изображений в наборе опорных изображений представляют собой опорные изображения, которые можно потенциально использовать для межкадрового предсказания блоков в одном или нескольких изображениях, следующих за текущим изображением в порядке декодирования, и нельзя использовать для межкадрового предсказания одного блока в текущем изображении.
Используемые в настоящем изобретении опорные изображения можно потенциально использовать для межкадрового предсказания со ссылками на опорные изображения, которые можно, но не обязательно, использовать для межкадрового предсказания. Например, набор опорных изображений может идентифицировать опорные изображения, которые можно использовать для межкадрового предсказания. Однако это не означает, что все идентифицированные опорные изображения должны использоваться для межкадрового предсказания. Скорее, для межкадрового предсказания можно использовать одно или несколько из указанных идентифицированных опорных изображений, но не обязательно все эти опорные изображения.
Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое создает энкодированное видео для его декодирования устройством-адресатом 14. Каждое из этих устройств 12 и 14, например, может представлять собой устройство видеокодирования. Устройство-источник 12 может передавать энкодированное видео на устройство-адресат 14 через канал 16 связи или запоминать энкодированное видео на носителе 17 данных или на файловом сервере 19, так чтобы это энкодированное видео могло быть доступно устройству/адресату 14, когда это потребуется.
Устройство-источник 12 и устройство-адресат 14 могут содержать любое из самых разных устройств, в том числе: беспроводные телефонные трубки; например, так называемые «смартфоны»; так называемые «смартпады» или другие беспроводные устройства, оборудованные средствами беспроводной связи. Дополнительные пример устройства-источника 12 и устройства-адресата 14 включают в себя, но не только: цифровой телевизор, устройство в системе прямого цифрового вещания, устройство в системе беспроводного вещания, персональные цифровые помощники (PDA), компьютер типа «лэптоп», настольные компьютеры, планшетные компьютеры, компьютер, устройства для чтения электронных книг, цифровую камеру, цифровое записывающее устройство, цифровой медиаплеер, видеоигровое устройство, видеоигровую консоль, сотовый радиотелефон, спутниковый радиотелефон, устройство для проведения видеотелеконференции, устройство потокового видео, устройство беспроводной связи или т.п.
Как было указано выше, во многих случаях устройство-источник 12 и/или устройство-адресат 14 могут быть оборудованы средствами беспроводной связи. Таким образом, канал 16 связи может содержать беспроводной канал, проводной канал или комбинацию беспроводного и проводного каналов, подходящих для передачи кодированных видеоданных. Аналогичным образом, файловый сервер 19 может быть доступен со стороны устройства-адресата 14 через любое стандартное соединение для передачи данных, в том числе, через Интернет соединение. Оно может включать в себя беспроводной канал (например, Wi-Fi соединение), проводное соединение (например, DSL, кабельный модем и т.д.) или комбинацию обоих типов соединений, подходящую для доступа к энкодированным видеоданным, хранящимся на файловом сервере.
Однако методики согласно настоящему изобретению можно применить к видеокодированию при поддержке любого из различных мультимедийных приложений, таких как эфирное телевизионное вещание, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео, например, через Интернет, кодирование цифрового видео для запоминания на носителе данных, декодирование цифрового видео, хранящегося на носителе данных, или других приложений. В некоторых примерах система 10 может быть сконфигурирована для поддержки однонаправленной или двунаправленной передачи видео с целью поддержки таких приложений, как потоковое видео, воспроизведение видео, видеовещание и/или видеотелефония.
В примере на фиг. 1 устройство-источник 12 включает в себя источник 18 видео, видеоэнкодер 20, модулятор/демодулятор (модем) 22 и интерфейс 24 вывода. В устройстве-источнике 12 источник 18 видео может включать в себя такой источник, как устройство фиксации видео, например, видеокамеру, видеоархив, содержащий ранее зафиксированное видео, интерфейс подачи видео для приема видео от провайдера видеоконтента, и/или компьютерная графическая система для создания данных компьютерной графики в качестве исходного видео, или комбинацию указанных источников. Например, если источником 18 видео является видеокамера, то устройство-источник 12 и устройство-адресат 14 могут образовать так называемые «камерофоны» или «видеофоны». Однако раскрытые здесь методики можно применить к видеоэнкодированию в целом, а также можно применить для беспроводных и/или проводных приложений.
Зафиксированное камерой видео, предварительно зафиксированное видео или созданное компьютером видео может быть закодировано видеоэнэнкодером 20. Энкодированная видеоинформация может быть модулирована модемом 22 в соответствии со стандартом связи, таким как Протокол беспроводной связи и передана на устройство-адресат 14 через интерфейс 24 вывода. Модем 22 может включать в себя различные микшеры, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Интерфейс 24 вывода может включать в себя схемы, предназначенные для передачи данных, в том числе усилители, фильтры и одну или несколько антенн.
Зафиксированное камерой, предварительно зафиксированное или созданное компьютером видео, энкодированное видеоэнэнкодером 20, также может запоминаться на носителе 17 данных или файловом сервере 19 для последующего использования. Носитель 17 данных может включать в себя диски Blu-ray, DVD диски, компакт-диски (CD-ROM), флэш-память или любую другую подходящую цифровую запоминающую среду для запоминания энкодированного видео. Затем к энкодированному видео, запомненному на носителе 17 данных, может быть предоставлен доступ со стороны устройства-адресата 14 для декодирования и воспроизведения.
Файловым сервером 19 может быть сервер любого типа, способный запоминать экодированное видео и передавать это энкодированное видео на устройство-адресат 14. Примерами файловых серверов являются Web-серверы (например, для Web-сайта), FTP сервер, подключенное к сети запоминающее устройство (NAS), локальный дисковый накопитель или устройство любого другого типа, способное запоминать энкодированные видеоданные и передавать их на устройство-адресат. Передача энкодированных видеоданных от файлового сервера 19 может представлять собой потоковую передачу, передачу с загрузкой или их комбинацию. Файловый сервер 19 может быть доступен для устройства-адресата 14 через любое стандартное соединение для передачи данных, включая Интернет соединение. Указанное соединение может включать в себя беспроводной канал (например, Wi-Fi соединение), проводное соединение (например, DSL, кабельный модем, Ethernet, USB и т.д.) или комбинацию обоих типов соединений, которая подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере.
Устройство-адресат 14 в примере на фиг. 1 включает в себя интерфейс 26 ввода, модем 28, видеодекодер 30 и устройство 32 отображения. Интерфейс 26 ввода, входящий в устройство-адресат 14, принимает информацию через канал 16, как в одном примере, или от носителя 17 данных или файлового сервера 19, как в альтернативных примерах, а модем 28 демодулирует информацию, создавая демодулированный битовый поток для видеодекодера 30. Демодулированный битовый поток может включать в себя различную синтаксическую информацию, созданную видеоэнэнкодером 20 для ее использования видеодекодером 30 при декодировании видеоданных. Указанный синтаксис также может быть введен вместе с энкодированными видеоданными, хранящимися на носителе 17 данных, или на файловом сервере 19. В одном примере синтаксис может быть совмещен с энкодированными видеоданными, хотя аспекты настоящего изобретения не должны трактоваться в качестве ограничений для указанного требования. Синтаксическая информация, определенная видеоэнэнкодером 20, которая также используется видеодекодером 30 может включать в себя синтаксические элементы, описывающие характеристики и/или обработку видеоблоков, таких как единицы древовидного кода (CTU), блоки древовидного кода (CTB), блоки предсказания (PU), блоки кодирования (CU) или другие блоки кодированного видео, например, видеослайсы, видеоизображения и видеопоследовательности или группы изображений (GOP). Как видеоэнэнкодер 20, так и видеодекодер 30 могут образовать часть соответствующего кодера-декодера (кодек), который способен энкодировать или декодировать видеоданные.
Устройство 32 отображения может быть интегрировано в устройство-адресат 14 или представлять собой автономное устройство. В некоторых примерах устройство-адресат 14 может включать в себя интегрированное устройство отображения, а также может быть сконфигурировано для взаимодействия с внешним устройством отображения. В других примерах устройство-адресат 14 может быть устройством отображения. В общем случае, устройство 12 отображения отображает декодированные видеоданные пользователю и может содержать любое из различных устройств отображения, например, жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или устройство отображения другого типа.
В примере на фиг. 1 канал 16 связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одну или несколько физических линий связи, либо любую комбинацию беспроводной и проводной среды. Канал 16 связи может образовать часть сети на пакетной основе, такую как локальная сеть, региональная сеть или глобальная сеть, например, Интернет. Канал 16 связи в общем случае представляет любую подходящую среду связи или совокупность различных сред связи для передачи видеоданных от устройства-источника 12 на устройство-адресат 14, в том числе любую подходящую комбинацию проводной и беспроводной сред. Канал 16 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое можно использовать для обеспечения передачи от устройства-источника 12 на устройство-адресат 14.
Видеоэнэнкодер 20 и видеодекодер 30 могут функционировать в соответствии со стандартом сжатия видео, таким как ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный, как ISO/IEC MPEG-4 AVC), включая расширения масштабируемого видеокодирования (SVC) и многовидового видеокодирования (MVC). Вдобавок, имеется новый стандарт видеокодирования, а именно стандарт высокоэффективного видеокодирования (HEVC), разрабатываем Объединенной командой разработчиков систем видеокодирования (JCT-VC) Экспертной группы по видеокодированию ITU-T (VCEG) и Экспертной группой по движущимся изображениям (MPEG) ISO/IEC. Последний рабочий проект (WD) стандарта HEVC, далее называемый HEVC WD8, доступен с 20 июля 2012 года по ссылке http://phenix.int-evry/fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8-zip. Однако, приведенные здесь методики не ограничены каким-либо конкретным стандартом кодирования. Исключительно в иллюстративных целях они описаны здесь в соответствии со стандартом HEVC.
Хотя это на фиг. 1 не показано, согласно некоторым аспектам видеоэнэнкодер 20 и видеодекодер 30 могут быть интегрированы с аудиокодеров и аудиодекодером соответственно и могут включать в себя соответствующие блоки мультиплексирования-демультиплексирования, либо другие аппаратные или программные средства для обработки кодирования как аудио-, так и видеоданных в общем потоке данных или в отдельных потоках данных. Блоки мультиплексирования-демультиплексирования, если они применяются, могут соответствовать Протоколу мультиплексора ITU H.223 или другим протоколам, таким как Протокол дейтаграмм пользователя (UDP).
Как видеоэнэнкодер 20, так и видеодекодер 30 могут быть реализованы в виде любой из множества разных подходящих схем энкодера, таких как один или несколько процессоров, включая микропроцессоры, цифровые процессоры сигналов (DSP), прикладные специализированные интегральные схемы (ASIC), вентильные матрицы, программируемые пользователем (FPGA), дискретная логика, программные средства, аппаратные средства, программно-аппаратные средства или любую их комбинацию. При реализации указанных методик частично в виде программного обеспечения в устройстве могут храниться команды для этого программного обеспечения на подходящем считываемом компьютером носителе долговременного хранения, и устройство может выполнять эти команды в аппаратных средствах, используя один или несколько процессоров для выполнения раскрытых здесь методик.
Как видеоэнэнкодер 20, так и видеодекодер 30 могут быть включены в один или несколько энкодеров или декодеров, либо каждый из них может быть составной частью объединенного кодера/декодера (кодека) в соответствующем устройстве. В некоторых случаях видеоэнкодер 20 и видеодекодер 30 могут вместе называться видеокодером, который кодирует информацию (например, изображения и синтаксические элементы). Кодирование информации может называться энкодированием, когда видеокодер соответствует видеоэнкодеру 20. Кодирование информации может относиться к декодированию, кода видеокодер соответствует видеодекодеру 30.
Кроме того, методики, описанные в этом изобретении, могут относиться к видеоэнкодеру 20, передающему сигнальную информацию. Когда видеоэнкодер 20 передает сигнальную информацию, методики, раскрытые в изобретении, обычно относятся к любому способу, используя который видеоэнкодер 20 предоставляет указанную информацию. Например, когда видеоэнкодер 20 передает синтаксические элементы видеодекодеру 30, это означает, что видеоэнкодер 20 передал синтаксические элементы на видеодекодер 30 через интерфейс 24 вывода и канал 16 связи, или что видеоэнкодер 20 запомнил синтаксические элементы, используя интерфейс 24 вывода, на носителе 17 данных или на файловом сервере 19 для окончательного приема видеодекодером 30. Таким образом, сигнализация от видеоэнкодера 20 на видеодекодер 30 не должна интерпретироваться как передача сигнальной информации от видеоэнкодера 20, требующая немедленного приема видеодекодером 30, хотя этот вариант возможен. Скорее наоборот, сигнализация от видеоэнкодера 20 на видеодекодер 30 должна интерпретироваться как операция, с помощью которой видеоэнкодер 20 предоставляет информацию для окончательного приема видеодекодером 30 либо напрямую, либо через промежуточную операцию запоминания (например, на носителе 17 данных и/или файловом сервере 19).
Видеоэнкодер 20 и видеодекодер 30 могут быть сконфигурированы для реализации методик, описанных в этом разделе, для получения набора опорных изображений. Например, видеодекодер 30 может инициировать процесс получения набора опорных изображений для каждого изображения. Видеодекодер 30 может инициировать процесс получения набора опорных изображений после декодирования заголовка слайса, но до декодирования какого-либо кодового блока и до декодирования для построения списка опорных изображений для данного слайса.
Как было описано выше, набор опорных изображений представляет собой абсолютное описание опорных изображений, используемых в процессе декодирования текущего изображения и будущих кодированных изображений в порядке декодирования до следующего IDR изображения или до следующего BLA изображения. В описанных здесь примерах видеоэнкодер 20 может явным образом просигнализировать о значениях, на основе которых видеодекодер 30 может определить идентификаторы для опорных изображений, которые относятся к набору опорных изображений. Сигнализация о наборе опорных изображений выполняется в явном виде в том смысле, что все опорные изображения, включенные в набор опорных изображений, вносятся в список явным образом за исключением некоторых изображений, например, IDR изображений, причем ни один из синтаксических элементов набора опорных изображений не содержится в заголовке слайса, и набор опорных изображений получается пустым.
Возможны различные способы, пользуясь которыми видеоэнкодер 20 может сигнализировать о синтаксических элементах в кодированном битовом потоке, которые видеодекодер 30 может использовать для получения набора опорных изображений. Например, видеоэнкодер 20 может обеспечить сигнализацию о синтаксических элементах в наборе параметров изображения (PPS), наборе параметров последовательности (SPS), заголовке изображения (если он имеется), заголовке слайса или любой их комбинации. Исключительно в иллюстративных целях видеоэнкодер 20 может обеспечить сигнализацию о синтаксических элементах, используя набор SPS, набор PPS и заголовок слайса, как это было подробно описано.
Для получения набора опорных изображений видеодекодер 30 может реализовать процесс декодирования для определения идентификаторов для изображений, относящихся к набору опорных изображений. Затем видеодекодер 30 может построить множество поднаборов опорных изображений, где каждый из поднаборов идентифицирует нуль или более опорных изображений, относящихся к данному набору опорных изображений. Видеодекодер 30 может получить набор опорных изображений из построенных поднаборов опорных изображений. Например, видеодекодер 30 может внести в список множество поднаборов опорных изображений в конкретном порядке для получения набора опорных изображений.
Возможно несколько различных путей, по которым видеодекодер 30 может определить идентификаторы для изображений, относящихся к набору опорных изображений. В общем случае видеоэнкодер 20 может сигнализировать о значениях, исходя из которых видеодекодер 30 может определить идентификаторы для изображений, в том числе тех изображений, которые относятся к указанному набору опорных изображений. Идентификаторами изображений могут быть PicOrderCnt (то есть, значения счетчика очередности изображений (POC)). Как было описано выше, значение POC может указывать порядок отображения или вывода изображения, где изображения с меньшими значениями POC отображаются раньше, чем изображения с большими значениями POC. Значение POC данного изображения может определяться относительно предшествующего IDR изображения. Например, PicOrderCnt (то есть, значение POC) для IDR изображения может быть равно 0, значение POC для изображения после IDR изображения в порядке отображения или вывода может быть равно 1, значение POC для изображения после изображения со значением POC в порядке отображения или вывода может быть равно 2 и т.д.
Согласно раскрытым здесь методикам, когда текущее изображение не является IDR изображением, для получения значения POC текущего изображения можно применить нижеследующий подход. Этот подход способствует лучшему пониманию изобретения, и его не следует рассматривать как ограничение.
Рассмотрим, например, переменную listD списка, которая включает в себя в качестве элементов значения PicOrderCnt (значения POC), связанные со списком изображений, включающим в себя все из нижеперечисленного: (1) первое изображение в списке является предшествующим IDR изображением в порядке декодирования, и (2) все другие изображения, которые следуют в порядке декодирования после первого изображения в списке и либо предшествуют текущему изображению в порядке декодирования, либо являются текущим изображением. В этом примере текущее изображение включено в listD до активации процесса получения набора опорных изображений. Также рассмотрим переменную listO списка, которая включает в себя элементы listD, отсортированные в порядке возрастания значений POC. В этом примере listO может не содержать значение POC, равное значению POC другого изображения.
В некоторых примерах значения POC могут быть ограничены диапазоном от -2pocLen-l до 2pocLen-l -1 включительно. В этом примере pocLen может быть равен long_term_ref_pic_id_len_delta + long_term_ref_pic_id_delta_len_minus4 + 4. Элемент long_term_ref_pic_id_len_delta и элемент long_term_ref_pic_id_delta_len_minus4 могут представлять собой синтаксические элементы, которые видеодекодер 30 принимает в кодированном битовом потоке как часть синтаксиса установки параметров изображения, как более подробно описано ниже. В другом примере значения POC могут быть ограничены диапазоном от -231 до 231 - 1 включительно.
В одном примере видеодекодер 30 может принимать в кодированном битовом потоке (то есть, битовом потоке, передаваемом видеоэнкодером 20) синтаксический элемент pic_order_cnt_lsb. Синтаксический элемент pic_order_cnt_lsb может задавать значение по модулю счетчика очередности изображения MaxPicOrderCntLsb для кодированного изображения. Длина синтаксического элемента pic_order_cnt_lsb может составлять log2_max_pic_order_cnt_lsb_minus4 + 4 бита. Значение элемента pic_order_cnt_lsb может находиться в диапазоне от 0 до MaxPicOrderCntLsb - 1 включительно. Видеодекодер 30 может получить синтаксический элемент pic_order_cnt_lsb в синтаксисе заголовка слайса для текущего изображения, подлежащего декодированию.
Видеодекодер 30 может также получить синтаксический элемент log2_max_pic_order_cnt_lsb_minus4 в кодированном битовом потоке переданном видеоэнкодером 20. Видеодекодер 30 может получить синтаксический элемент log2_max_pic_order_cnt_lsb_minus4 в наборе параметров последовательности. Значение log2_max_pic_order_cnt_lsb_minus4 может находиться в диапазоне от 0 до 12 включительно. Синтаксический элемент log2_max_pic_order_cnt_lsb_minus4 может задавать значение переменной MaxPicOrderCntLsb, которую видеодекодер 30 использует в процессе декодирования для определения значений POC. Например:
MaxPicOrderCntLsb = 2(log2_max_pic_order_cnt_lsb_minus4+4)
На основе этих полученных синтаксических элементов видеодекодер 30 может определить значение POC текущего изображения следующим образом. Видеодекодер 30 может, например, определить элемент PicOrderCntMsb для текущего изображения. Значение POC для текущего изображения может представлять собой определенный элемент PicOrderCntMsb для текущего изображения плюс полученный элемент pic_order_cnt_lsb для текущего изображения.
Далее функция PicOrderCnt(picX) равна значению POC для изображения X. Функция DiffPicOrderCnt(picA, picB) равна PicOrderCnt(picA) минус PicOrderCnt(picB). В некоторых примерах кодированный битовый поток может не содержать данные, которые дают значения функции DiffPicOrderCnt(picA, picB), используемой в процессе декодирования, которые выходят за рамки диапазона от -215 до 215 - 1 включительно. Кроме того, обозначим текущее изображение как X, а два других изображения в той же последовательности как Y и Z, причем считается, что Y и Z выводятся в одном и том же порядке в направлении от X, когда и DiffPicOrderCnt(X, Y), и DiffPicOrderCnt(X, Z) являются положительными или отрицательными. Также в некоторых примерах видеоэнкодер 20 может присваивать значение PicOrderCnt пропорционально времени дискретизации соответствующего изображения по отношению к времени дискретизации предшествующего IDR изображения.
В качестве части процесса определения значения POC для текущего изображения, видеодекодер 30 может определить переменные prevPicOrderCntMsb и prevPicOrderCntLsb. Например, если текущим изображением является IDR изображение, то видеодекодер 30 может установить значение prevPicOrderCntMsb равным 0 и установить значение prevPicOrderCntLsb, равным 0. В противном случае (то есть, когда текущее изображение не является IDR изображением), видеодекодер 30 может установить значение prevPicOrderCntMsb равным значению PicOrderCntMsb предыдущего опорного изображения в порядке декодирования с идентификатором temporal_id, меньшим или равным идентификатору текущего изображения и установить значение prevPicOrderCntLsb, равным значению pic_order_cnt_lsb предыдущего опорного изображения в порядке декодирования с идентификатором temporal_id, меньшим или равным идентификатору текущего изображения.
Используя эти значения переменных и значения синтаксических элементов (например, значения revPicOrderCntMsb, prevPicOrderCntLsb, pic_order_cnt_lsb и MaxPicOrderCntLsb), видеодекодер 30 может определить значение PicOrderCntMsb на основе шагов, описанных в нижеследующем псевдокоде. Следует понимать, что видеодекодер 30 может реализовать шаги, описанные в нижеследующем псевдокоде, чтобы определить PicOrderCntMsb для каждого текущего изображения, который используют для получения значения POC текущего изображения.
Figure 00000001
После определения PicOrderCntMsb для текущего изображения видеодекодер 30 может определить значение POC для текущего изображения на основе PicOrderCntMsb для текущего изображения и pic_order_cnt_lsb для текущего изображения. Видеодекодер 30 может определить значение POC для текущего изображения следующим образом:
PicOrderCnt = PicOrderCntMsb + pic_order_cnt_lsb.
После декодирования изображения видеодекодер 30 может запомнить значение PicOrderCntMsb, значение pic_order_cnt_lsb и значение POC для данного изображения, включая каждое из опорных изображений, которые относятся к набору опорных изображений, в буфере декодированных изображений (DPB) видеодекодера 30. Таким образом, каждое изображение в буфере DPB будет связано со значением POC, значением PicOrderCntMsb и значением pic_order_cnt_lsb.
Способы для определения значений POC для опорных изображений, включенных в набор опорных изображений текущего изображения, более подробно описаны ниже. Исходя из определенных значений POC, видеодекодер 30 может реализовать процесс получения набора опорных изображений. Однако перед описанием того, каким образом видеодекодер 30 реализует процесс получения набора опорных изображений, необходимо обеспечить таблицы синтаксических элементов, которые видеодекодер 30 может принять в кодированном битовом потоке, переданном видеоэнкодером 20 в целях сигнализации. Например, видеоэнкодер 20 может передать синтаксические элементы в нижеследующих таблицах в кодированном битовом потоке, принимаемом видеодекодером 30. Некоторые из этих синтаксических элементов были описаны выше. Исходя из этих синтаксических элементов, видеодекодер 30 может определить значения POC для опорных изображений, включенных в набор опорных изображений, и затем получить набор опорных изображений.
Например, в раскрытых здесь методиках описанные ниже синтаксические структуры модифицируют по отношению к предшествующим стандартам видеокодирования: синтаксис первичной байтовой последовательности данных (RBSP) для набора параметров последовательности (SPS), seq_paramater_set_rbsq(), синтаксис RBSP для набора параметров изображения (PPS), pic_parameter_set_rbsp(), синтаксис заголовка слайса, slice_header() и синтаксис модификации списков опорных изображений, ref_pic_list_modification(). Модификация списков опорных изображений более подробно описана далее в описании процесса получения набора опорных изображений и инициализации одного или нескольких списков опорных изображений.
Также, согласно раскрытым здесь методикам в кодированный битовый поток добавляют следующие синтаксические структуры: синтаксис набора краткосрочных опорных изображений, short_term_ref_pic_set() и синтаксис набора долгосрочных опорных изображений, long_term_ref_pic_set(). Видеодекодер 30 может использовать синтаксис набора краткосрочных опорных изображений и синтаксис набора долгосрочных опорных изображений в целях построения поднаборов опорных изображений, исходя из которых видеодекодер 30 получает список опорных изображений.
Например, для того, чтобы видеодекодер 30 смог определить значения POC для опорных изображений, относящихся к набору опорных изображений, видеоэнкодер 20 может передать информацию, идентифицирующую опорное изображение, которую видеодекодер использует для определения значений POC, в наборе параметров изображения и индекс для списка, к которому можно обратиться, в заголовке слайса. Однако возможны и другие способы, с помощью которых видеоэнкодер 20 может передать указанную информацию, идентифицирующую опорное изображение.
В одном альтернативном примере видеоэнкодер 20 может передать в качестве сигнализации информацию об опорном изображении в наборе параметров последовательности и индекс для списка, к которому можно обратиться, в заголовке слайса, что позволяет сократить издержки, связанные с сигнализацией. В другом альтернативном примере видеокодер может передать информацию об опорном изображении в наборе параметров нового типа (например, набор параметров набора опорных изображений (RPSPS)) и идентификатор RPSPS ID, а также индекс для списка с информацией, идентифицирующей опорное изображение, к которому можно обратиться, в заголовке слайса. Это дает возможность снизить издержки на сигнализацию, а также не увеличивать необходимое количество наборов параметров изображения или набора параметров последовательности. В других примерах видеоэнкодер 20 может использовать любую комбинацию из указанных приведенных в качестве примера методик для передачи сигнализирующей информации, идентифицирующей опорное изображение.
Таблица 1
Синтаксис RBSP набора параметров последовательности
Figure 00000002
Параметр pic_width_in_luma_samples может задать ширину каждого декодированного изображения в отсчетах яркости. Значение pic_with_in_luma_samples может находиться в диапазоне от 0 до 216-1 включительно.
Параметр pic_height_in_luma_samples может задавать высоту каждого декодированного изображения в отсчетах яркости. Значение pic_height_in_luma_samples может находиться в диапазоне от 0 до 216-1 включительно.
Как показано в Таблице 1, видеодекодер 30 может принимать в наборе параметров последовательности (SPS) синтаксический элемент log2_max_pic_order_cnt_lsb_minus4. Как было описано выше, значение log2_max_pic_order_cnt_lsb_minus4 может задавать значение переменной MaxPicOrderCntLsb, которое видеодекодер 30 использует в процессе декодирования для определения значений POC, MaxPicOrderCntLsb = 2(log2_max_pic_order_cnt_lsb_minus4 + 4).
Таблица 2
Синтаксис RBSP набора параметров изображения
Figure 00000003
Элемент num_short_term_ref_pic_sets_pps задает количество синтаксических структур short_term_ref_pic_set(), включенных в набор параметров изображения. Значение num_short_term_ref_pic_sets_pps должно находиться в диапазоне от 0 до 32 включительно.
Элемент long_term_ref_pics_present_flag, равный 0, определяет, что ни одно долгосрочное опорное изображение не используется для межкадрового предсказания любого кодированного изображения, относящегося к набору параметров изображения, и синтаксические элементы long_term_ref_pic_id_delta_len_minus4, long_term_ref_pic_id_len_delta и num_long_term_ref_pics_pps отсутствуют. Элемент long_term_ref_pics_present_flag, равный 1, определяет, что долгосрочные опорные изображения могут быть использованы для межкадрового предсказания одного или нескольких кодированных изображений, относящихся к набору параметров изображения, и синтаксические элементы long_term_ref_pic_id_delta_len_minus4, long_term_ref_pic_id_len_delta и num_long_term_ref_pics_pps присутствуют.
Элемент long_term_ref_pic_id_delta_len_minus4 плюс 4 определяет длину в битах синтаксических элементов long_term_ref_pic_id_delta_add_foll[i]. Значение long_term_ref_pic_id_delta_len_minus4 должно находиться в диапазоне от 0 до 12 включительно.
Элемент long_term_ref_pic_id_len_delta плюс элемент
long_term_ref_pic_id_delta_len_minus4 плюс 4 определяет длину в битах синтаксического элемента long_term_ref_pic_id_pps[i]. Значение элемента long_term_ref_pic_id_len_delta может находиться в диапазоне от 0 до 28 - long_term_ref_pic_id_delta_len_minus4 включительно. Значение long_term_ref_pic_id_len_delta + long_term_ref_pic_id_delta_len_minus4 + 4 во всех наборах параметров изображения, относящихся к одному конкретному набору параметров последовательности, может быть идентичным.
Элемент num_long_term_ref_pics_pps определяет количество идентификаций долгосрочных опорных изображений, включенных в набор опорных изображений. Значение num_long_term_ref_pics_pps может находиться в диапазоне от 0 до 32 включительно.
Элемент long_term_ref_pic_id_pps[i] определяет информацию, идентифицирующую i-ое долгосрочное опорное изображение, включенную в набор параметров изображения. Количество бит, используемых для представления long_term_ref_pic_id_pps[i], может быть равно long_term_ref_pic_id_len_delta + long_term_pic_id_len_minus4 + 4.
Таблица 3
Синтаксис набора краткосрочных опорных изображений
Figure 00000004
Синтаксис набора краткосрочных опорных изображений предназначен для краткосрочных изображений. Краткосрочное изображение можно определить как опорное изображение, идентификационная информация для которого содержится в синтаксической структуре short_term_ref_pic_set() для кодированного изображения, либо содержится в заголовке (заголовках) слайса, либо содержится в наборе параметров опорного изображения со ссылкой на синтаксический элемент short_term_ref_pic_set_idx в заголовке (заголовках) слайса. Синтаксические элементы заголовка слайса приведены ниже в Таблице 4.
Элемент num_short_term_curr0 определяет количество краткосрочных опорных изображений в элементе RefPicSetStCurr0, когда для получения набора опорных изображений кодированного изображения используют синтаксическую структуру short_term_ref_pic_set(), как описано ниже. Значение num_short_term_curr0 может находиться в диапазоне от 0 до max_num_ref_frames включительно.
Элемент num_short_term_curr1 определяет количество краткосрочных изображений в RefPicSetStCurr1, когда для получения набора опорных изображений кодированного изображения используют синтаксическую структуру short_term_ref_pic_set(), как описано ниже. Значение num short term curr1 может находиться в диапазоне от 0 до max_num_ref_frames - num_short_term_curr0 включительно.
Элемент num_short_term_foll0 определяет количество краткосрочных опорных изображений в RefPicSetStFoll0, когда для получения набора опорных изображений кодированного изображения используют синтаксическую структуру short_term_ref_pic_set(), как описано ниже. Значение num_short_term_foll0 может находиться в диапазоне от 0 до max_num_ref_frames - num_short_term_curr0 - num_short_term_curr1 включительно.
Элемент num_short_term_foll1 определяет количество краткосрочных опорных изображений в RefPicSetStFoll1, когда для получения набора опорных изображений кодированного изображения используют синтаксическую структуру short_term_ref_pic_set(), как описано ниже. Значение num_short_term_foll1 должно находиться в диапазоне от 0 до max_num_ref_frames - num_short_term_curr0 - num_short_term_curr1 - num_short_term_foll0 включительно.
Элемент short_term_ref_pic_id_delta_minus1[i] определяет идентификационную информацию i-го краткосрочного опорного изображения, включенного в синтаксическую структуру short_term_ref_pic_set().
Таблица 4
Синтаксис заголовка слайса
Figure 00000005
Figure 00000006
Элемент no_output_of_prior_pics_flag определяет, каким образом обрабатываются ранее декодированные изображения в буфере декодированных изображений после декодирования IDR изображения. Когда IDR изображение является первым IDR изображением в битовом потоке, значение no_output_of_prior_pics_flag может не повлиять на процесс декодирования. Когда IDR изображение не является первым IDR изображением в битовом потоке, и значение pic_width_in_luma_samples или pic_height_in_luma_samples или max_dec_frame_buffering, полученное из действующего набора параметров последовательности, могут отличаться от значения pic_width_in_luma_samples или pic_height_in_luma_samples или max_dec_frame_buffering, полученного из набора параметров последовательности, активизированного для предшествующего изображения, элемент no_output_of_prior_pics_flag, равный 1, может, но не обязательно, быть получен декодером независимо от действующего значения флага no_output_of_prior_pics_flag.
Элемент short_term_ref_pic_set_pps_flag, равный 1, определяет, что идентификационная информация набора краткосрочных опорных изображений, включенных в набор опорных изображений, для текущего изображения присутствует в указанном наборе параметров изображения. Элемент short_term_ref_pic_set_pps_flag, равный 0, определяет, что идентификационная информация набора краткосрочных опорных изображений, включенных в набор опорных изображений для текущего изображения, отсутствует в указанном наборе параметров изображения.
Элемент short_term_ref_pic_set_idx определяет индекс синтаксической структуры short_term_ref_pic_set( ), включенный в указанный набор параметров изображений, содержащий идентификационную информацию набора краткосрочных опорных изображений в наборе опорных изображений для текущего изображения.
Переменные NumShortTermCurr0 и NumShortTermCurr1 определяются как:
NumShortTermCurr0 = num_short_term_curr0
NumShortTermCurr1 = num_short_term_curr1,
где num_short_term_curr0 и num_short_term_curr1 являются синтаксическими элементами с одинаковыми именами соответственно в синтаксической структуре short_term_ref_pic_set( ), либо присутствуют в указанном наборе параметров изображения и вызываются элементом short_term_ref_pic_set_idx, или непосредственно присутствуют в заголовке слайса.
Элемент num_ref_idx_10_active_minus1 определяет максимальный опорный индекс для списка 0 опорных изображений, который должен использоваться для декодирования данной слайса.
Когда текущий слайс является P слайсом или B слайсом, и элемент num_ref_idx_l0_active_minus1 отсутствует, можно положить, что num_ref_idx_l0_active_minus1 равен num_ref_idx_l0_default_active_minus1.
Значение num_ref_idx_l0_active_minus1 может находиться в диапазоне от 0 до 15 включительно.
Элемент num_ref_idx_l1_active_minus1 определяет максимальный опорный индекс для списка 1 опорных изображений, который должен использоваться для декодирования данного слайса.
Когда текущий слайс является P слайсом или B слайсом, и num_ref_idx_l1_active_minus1 отсутствует, можно положить, что num_ref_idx_l1_active_minus1 равен num_ref_idx_l1_default_active_minus 1.
Значение num_ref_idx_l1_active_minus1 может находиться в диапазоне от 0 до 15 включительно.
Таблица 5
Синтаксис набора долгосрочных опорных изображений
Figure 00000007
Синтаксис набора долгосрочных опорных изображений предназначен для долгосрочных изображений. Долгосрочное изображение можно определить как опорное изображение, идентификационная информация для которого включена в синтаксическую структуру long_term_ref_pic_set() для кодированного изображения.
Элемент num_long_term_pps_curr определяет количество всех долгосрочных опорных изображений, идентификационная информация о которых включена в указанный набор параметров изображения, и которые можно использовать для межкадрового предсказания текущего изображения. Если num_long_term_pps_curr отсутствует, то можно заключить, что его значение равно 0. Значение num_long_term_pps_curr может находиться в диапазоне от 0 до max_num_ref_frames включительно.
Элемент num_long_term_add_curr определяет количество всех долгосрочных опорных изображений, идентификационная информация о которых не включена в вышеупомянутый набор параметров изображения, и которые можно использовать для межкадрового предсказания текущего изображения. Если num_long_term_add_curr отсутствует, то можно заключить, что его значение равно 0. Значение num_long_term_add_curr может находиться в диапазоне от 0 до max_num_ref_frames -num_long_term_pps_curr включительно.
Переменная NumLongTermCurr определяется как:
NumLongTermCurr = num_long_term_pps_curr + num_long_term_add_curr.
Элемент num_long_term_pps_foll определяет количество всех долгосрочных опорных изображений, идентификационная информация о которых включена в вышеупомянутый набор параметров изображения, которые не используют для межкадрового предсказания текущего изображения и которые можно использовать для межкадрового предсказания любого из изображений, следующих за текущим изображением в порядке декодирования. Если num_long_term_pps_foll отсутствует, то можно заключит, что его значение равно 0. Значение num_long_term_pps_foll может находиться в диапазоне от 0 до max_num_ref_frames включительно.
Элемент num_long_term_add_foll определяет количество всех долгосрочных опорных изображений, идентификационная информация о которых не включена в вышеупомянутый набор параметров изображения, которые не используют для межкадрового предсказания текущего изображения, и которые можно использовать для межкадрового предсказания любого из последующих изображений в порядке декодирования. Если num_long_term_add_foll отсутствует, можно заключить, что его значение равно 0.
Значение num_long_term_add_foll может находиться в диапазоне от 0 до max_num_ref_frames -num_long_term_pps_foll включительно.
Элемент long_term_ref_pic_set_idx_pps[i] определяет индекс для списка опорных изображений, идентификационная информация о которых включена в вышеупомянутый набор параметров изображения, i-го долгосрочного опорного изображения из вышеупомянутого набора параметров изображения в набор опорных изображений текущего изображения. Значение long_term_ref_pic_set_idx_pps[i] может находиться в диапазоне от 0 до 31 включительно.
Элемент long_term_ref_pic_id_delta_add[i] определяет идентификационную информацию долгосрочного опорного изображения для i-го долгосрочного опорного изображения, которое не унаследовано от вышеупомянутого набора параметров изображения, а содержится в наборе опорных изображений текущего изображения. Количество бит, используемых для представления long_term_ref_pic_id_add_curr[i] может быть равно long_term_pic_id_len_minus4 + 4.
При использовании вышеупомянутых принятых в результате сигнализации или полученных значений (то есть, значений из таблиц 1-5) видеодекодер 30 может построить набор опорных изображений. Как было описано выше, полученный набор опорных изображений может идентифицировать опорные изображения, которые потенциально можно использовать для кодирования/предсказания текущего изображения (то есть, изображения, которое в данный момент декодируется), и изображения, следующие за текущим изображением в порядке декодирования. Согласно методикам, описанным в настоящем изобретении, порядок декодирования всех опорных изображений в полученном наборе опорных изображений характеризуется тем, что все опорные изображения из указанного набора декодируются раньше, чем текущее изображение.
Процесс получения упомянутого набора может включать в себя построение набора опорных изображений из множества поднаборов опорных изображений. Этот процесс может активироваться один раз для каждого изображения после декодирования заголовка слайса, но до декодирования какого-либо блока кодирования и до процесса декодирования для построения списка опорных изображений для данного слайса. Например, видеодекодер 30, исходя из полученных значений и просигнализированных синтаксических элементов, может определить значение POC для опорных изображений, относящихся к набору опорных изображений. Исходя из определенных значений POC видеодекодер 30 может построить поднаборы опорных изображений, которые совместно образуют набор опорных изображений. Таким путем, построив поднаборы опорных изображений, видеодекодер 30 может построить набор опорных изображений. Например, видеодекодер 30 может упорядочить поднаборы опорных изображений определенным образом, чтобы получить набор опорных изображений. Упорядочивание может относиться к способу, пользуясь которым видеодекодер 30 вносит в список поднаборы опорных изображений для получения набора опорных изображений.
Как было описано выше, для получения набора опорных изображений видеодекодер 30 может построить множество поднаборов опорных изображений. В некоторых примерах видеодекодер 30 может построить шесть поднаборов опорных изображений. Эти шесть поднаборов опорных изображений могут называться:
RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFollO, RefPicSetStFoll1, RefPicSetLtCurr, и RefPicSetLtFoll. RefPicSetStCurr0 может называться как RefPicSetStCurrBefore, а RefPicSetStCurr1 может называться как RefPicSetStCurrAfter.
Следует понимать, что шесть поднаборов опорных изображений описаны здесь в иллюстративных целях, и это не следует трактовать как ограничение. В одном примере видеодекодер 30 может построить меньшее количество поднаборов опорных изображений, например, путем комбинирования некоторых из указанных поднаборов. Ряд примеров, где количество поднаборов, построенных видеодекодером 30, меньше шести, описаны ниже. Однако в иллюстративных целях приведенные здесь методики описаны на примерах, где видеодекодер 30 выполняет построение шести поднаборов опорных изображений.
Поднаборы опорных изображений RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, и RefPicSetStFoll1 могут идентифицировать краткосрочные опорные изображения. В некоторых примерах эти поднаборы опорных изображений могут идентифицировать краткосрочные опорные изображения на основе того, отображаются ли краткосрочные опорный изображения раньше или позже, чем кодируемое текущее изображение, а также на основе того, можно ли потенциально использовать эти краткосрочные опорные изображения для межкадрового предсказания текущего изображения и изображений, следующих за текущим изображением в порядке декодирования, или можно ли потенциально использовать для межкадрового предсказания только те изображения, которые следуют за текущим изображением в порядке декодирования.
Например, поднабор опорных изображений RefPicSetStCurr0 может включать в себя только (или не только) идентификационную информацию, такую как значения POC, для всех краткосрочных опорных изображений, которые выводятся или отображаются раньше, чем текущее изображение, и которые можно потенциально использовать в качестве опорных при межкадровом предсказании текущего изображения, и можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Поднабор опорных изображений RefPicSetStCurr1 может включать в себя только (или не только) идентификационную информацию обо всех краткосрочных опорных изображениях, которые выводятся или отображаются позднее, чем текущее изображение, и которые можно потенциально использовать в качестве опорных при межкадровом предсказании текущего изображения и можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Поднабор RefPicSetStFoll0 опорных изображений может включать в себя только (или не только) идентификационную информацию обо всех краткосрочных опорных изображениях, которые выводятся или отображаются раньше, чем текущее изображение, которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, и которые нельзя использовать в качестве опорных при межкадровом предсказании текущего изображения. Поднабор RefPicSetStFoll1 опорных изображений может включать в себя только (или не только) идентификационную информацию всех краткосрочных опорных изображений, которые выводятся или отображаются позднее, чем текущее изображение, которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, и которые нельзя использовать в качестве опорных при межкадровом предсказании текущего изображения.
Поднаборы RefPicSetLtCurr и RefPicSetLtFoll опорных изображений могут идентифицировать долгосрочные опорные изображения. В некоторых примерах эти поднаборы опорных изображений могут идентифицировать долгосрочные опорные изображения на основе того, отображаются ли эти долгосрочные опорные изображения раньше или позднее, чем текущее кодируемое изображение.
Например, поднабор RefPicSetLtCurr опорных изображений может включать в себя только (или не только) идентификационную информацию обо всех долгосрочных опорных изображениях, которые можно потенциально использовать в качестве опорных при межкадровом предсказании текущего изображения, и которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Поднабор RefPicSetLtFoll опорных изображений может включать в себя только (или не только) идентификационную информацию обо всех долгосрочных опорных изображениях, которые можно потенциально использовать в качестве опорных при межкадровом предсказании одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, и которые нельзя использовать в качестве опорных при межкадровом предсказании текущего изображения.
Если текущее изображение, подлежащее декодированию, является IDR изображением, то видеодекодер 30 может установить поднаборы RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr и RefPicSetLtFoll опорных изображений пустыми. Причина этого может состоять в том, что IDR изображение может не быть результатом межкадрового предсказания, и что ни одно изображение после IDR в порядке декодирования не может использовать какое-либо изображение до IDR изображения в процессе декодирования в качестве опорного. В противном случае (например, когда текущее изображение не является IDR изображением), видеодекодер 30 может построить поднаборы краткосрочных опорных изображений и поднаборы долгосрочных опорных изображений, реализуя нижеследующий псевдокод.
Например, когда видеодекодер 30 декодирует один образец синтаксической структуры short_term_ref_pic_set() либо в заголовке слайса, либо путем обращения к вышеупомянутому набору параметров изображения, видеодекодер 30 может реализовать следующий псевдокод для построения поднаборов RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0 и RefPicSetStFoll1 опорных изображений.
Figure 00000008
Если видеодекодер 30 определяет, что флаг long_term_ref_pics_present_flag равен 0, то видеодекодер 30 может установить RefPicSetLtCurr и RefPicSetLtFoU пустыми, поскольку в этом случае нет долгосрочных опорных изображений. В противном случае, если видеодекодер 30 декодирует образец long_term_ref_pic_set() синтаксической структуры в заголовке слайса, видеодекодер 30 может реализовать следующий псевдокод для построения поднаборов RefPicSetLtCurr и RefPicSetLtFoll опорных изображений.
Figure 00000009
Figure 00000010
Согласно раскрытым здесь методикам опорное изображение с конкретным значением PicOrderCnt (значение POC) может считаться включенным в набор опорных изображений кодированного изображения, если это опорное изображение входит в любой из шести поднаборов набора опорных изображений данного кодированного изображения. Опорное изображение с конкретным значением PicOrderCnt считается включенным в конкретный поднабор набора опорных изображений, если конкретное значение PicOrderCnt (значение POC) равно одному из значений PicOrderCnt, включенных в данный поднабор.
После построения поднаборов опорных изображений видеодекодер 30 может получить набор опорных изображений. Например, видеодекодер 30 может упорядочить поднаборы опорных изображений для получения набора опорных изображений. В одном примере видеодекодер 30 может внести в список поднабор RefPicSetStCurr0 опорных изображений, за которым следует поднабор RefPicSetStCurr1 опорных изображений, за которым следует поднабор RefPicSetStFoll0 опорных изображений, за которым следует поднабор RefPicSetStFoll1 опорных изображений, за которым следует поднабор RefPicSetLtCurr опорных изображений, а затем поднабор RefPicSetLtFoll опорных изображений. В другом примере видеодекодер 30 может внести в список поднабор RefPicSetStCurr0 опорных изображений, за которым следует поднабор RefPicSetStCurr1 опорных изображений, за которым следует поднабор RefPicSetLtCurr опорных изображений, за которым следует поднабор RefPicSetStFoll0 опорных изображений, за которым следует поднабор RefPicSetStFoll1, а затем поднабор RefPicSetLtFoll опорных изображений.
Для получения набора опорных изображений возможно использование других перестановок, которые выполняет видеодекодер 30 с поднаборами опорных изображений. В некоторых примерах построение поднаборов опорных изображений и получение набора опорных изображений могут быть объединены вместе. Например, построение поднаборов опорных изображений может автоматически привести к тому, что видеодекодер 30 в конце концов получит набор опорных изображений. Другими словами, видеодекодеру 30 не обязательно выполнять разные шаги для построения поднаборов опорных изображений и получения набора опорных изображений, хотя возможно, что видеодекодер 30 сначала построит поднаборы опорных изображений, а затем получит набор опорных изображений.
Также согласно описанным здесь методикам построение набора опорных изображений вышеописанным способом может привести к тому, что видеодекодер 30 будет удовлетворять следующим ограничениям. Например, конкретное опорное изображение с конкретным значением PicOrderCnt возможно не будет включено в несколько поднаборов опорных изображений набора опорных изображений текущего изображения. Другими словами, опорное изображение, идентифицированное в одном из поднаборов опорных изображений, может не быть идентифицировано в каком-либо другом из поднаборов опорных изображений. В другом примере в полученном наборе опорных изображений может не оказаться опорное изображение с идентификатором temporal_id, превышающим аналогичный идентификатор текущего изображения, которое включено в какой-либо из поднаборов опорных изображений, образующих набор опорных изображений.
Как было описано выше, значение временной идентификации temporal_id может быть иерархическим, указывающим, какие изображения можно использовать для кодирования/предварительного кодирования текущего изображения. В общем случае изображение с конкретным значением temporal_id может оказаться опорным изображением для изображений, имеющих одинаковые или большие значения temporal_id, но не наоборот. Например, изображение со значением temporal_id, равным 1, может представлять собой опорное изображение для изображений со значениями temporal_id, равными 1, 2, 3,…, но не для изображения со значением temporal_id, равным 0.
Минимальное значение temporal_id также может указывать минимальную частоту отображения. Например, если видеодекодер 30 декодировал только изображение со значениями temporal_id, равными 0, частота отображения может составить 7, 5 изображений в секунду. Если видеодекодер 30 декодировал только изображения со значениями temporal_id, равными 0 и 1, то частота отображения может составить 15 изображений в секунду и т.д.
В некоторых примерах в набор опорных изображений текущего изображения могут быть включены только изображения со значениями temporal_id, меньшими или равными temporal_id текущего изображения. Как было описано выше, в качестве опорных изображений можно использовать только изображения со значениями temporal_id, меньшими или равными temporal_id текущего изображения. Таким образом, все опорные изображения с меньшими или одинаковыми значениями temporal_id могут быть использованы текущим изображением для межкадрового предсказания, и могут быть включены в набор опорных изображений. Также некоторые опорные изображения, имеющие значения temporal_id, превышающие соответствующее значение текущего изображения, и подлежащие использованию изображениями следующими за текущим изображением в порядке декодирования и имеющие значения temporal_id, превышающие соответствующее значение для текущего изображения, исключаются я из набора опорных изображений.
При использовании этих методик отпадает необходимость в сигнализации, состоящей в передаче temporal_id вдобавок к идентификационной информации изображения для получения набора опорных изображений; таким образом, сигнализация о наборе опорных изображений становится более эффективной. Например, видеоэнэнкодер 20 может не передавать значения temporal_id для опорных изображений, относящихся к набору опорных изображений, и видеодекодеру 30 нет необходимости принимать значения temporal_id опорных изображений, относящихся к набору опорных изображений, в целях получения набора опорных изображений.
Кроме того, при использовании этого подхода построенные поднаборы опорных изображений могут не идентифицировать опорные изображения со значениями temporal_id, превышающими соответствующее значение текущего изображения. Например, видеодекодер 30 будет способен построить поднаборы опорных изображений и гарантировать, что ни одно опорное изображение, идентифицированное в каком-либо из наборов опорных изображений не будет иметь значение temporal_id, превышающее соответствующее значение текущего изображения, поскольку может потребоваться соответствие битового потока, состоящее в том, что значения temporal_id не включены в битовый поток передаваемый видеоэнкодером 20 и принимаемый видеодекодером 30. В этом контексте видеодекодер 30 может создать набор опорных изображений, не принимая значения временных идентификаторов для опорных изображений, относящихся к набору опорных изображений.
В приведенных выше примерах видеодекодер 30 может построить шесть поднаборов опорных изображений, четыре для краткосрочных опорных изображений (а именно, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, и RefPicSetStFoll1) и два для долгосрочных опорных изображений (а именно, RefPicSetLtCurr и RefPicSetLtFoll). Однако аспекты настоящего изобретения эти не ограничиваются. В других примерах два или более поднабора опорных изображений могут быть объединены в один поднабор опорных изображений, в результате чего видеодекодер 30 построит меньшее количество поднаборов опорных изображений. Далее описываются некоторые примеры, не являющиеся ограничениями, в которых видеодекодер 30 может построить меньшее количество поднаборов опорных изображений. Возможны и другие пути построения видеодекодером 30 меньшего количества поднаборов опорных изображений.
Например, в некоторых случаях возможно, что для текущего изображения и для следующих изображений в порядке декодирования поднабор выделяться не будет. Таким образом, может быть два поднабора для краткосрочных опорных изображений, RefPicSetSt0 и RefPicSetStl и может быть только один поднабор для долгосрочных опорных изображений, а именно, RefPicSetLt. В этом примере поднабор опорных изображений RefPicSetSt0 может представлять собой сцепление RefPicSetStCurr0 и RefPicSetStFoll0 с RefPicSetStCurr0 в начале этого сцепления. В этом примере поднабор RefPicSetStl опорных изображений может представлять собой сцепление RefPicSetStCurr1 и RefPicSetStFoll1 с RefPicSetStCurr1 в начале этого сцепления. Поднабор RefPicSetLt опорных изображений может представлять собой сцепление RefPicSetLtCurr и RefPicSetLtFoll с RefPicSetLtCurr в начале получившегося сцепления.
В другом примере выделение указанного поднабора может отсутствовать для изображений, поступающих раньше или позже, чем текущее изображение. Такой подход может применяться только к краткосрочным опорным изображениям. Таким образом, можно иметь два поднабора для краткосрочных опорных изображений, называемых RefPicSetStCurr и RefPicSetStFoll. Поднабор RefPicSetStCurr опорных изображений может представлять собой сцепление RefPicSetStCurr0 и RefPicSetStCurr1 с RefPicSetStCurr0 в начале этого сцепления. Поднабор RefPicSetStFoll опорных изображений может представлять собой сцепление RefPicSetStFoll0 и RefPicSetStFoll1 с RefPicSetStFoll0 в начале этого сцепления.
В другом примере возможна ситуация, когда не применяются оба типа вышеупомянутых разделений. Следовательно может быть только один поднабор для краткосрочных опорных изображений, называемый RefPicSetSt, и только один поднабор для долгосрочных опорных изображений, называемый RefPicSetLt. Поднабор RefPicSetSt опорных изображений может представлять собой сцепление RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0 и RefPicSetStFoll1, в порядке перечисления (или в любом другом порядке), а RefPicSetLt может быть таким же, как указано выше.
В приведенных выше методиках описывается примерный способ получения видеодекодером 30 набора опорных изображений. В процессе кодирования видеоэнкодеру 20 также может понадобиться декодировать кодированные изображения в целях кодирования последовательных изображений, что называется процессом восстановления. Соответственно, в некоторых примерах видеоэнэнкодер 20 также может быть сконфигурирован для получения набора опорных изображений. В некоторых примерах видеоэнэнкодер 20 может реализовать такие же методики, которые реализует декодер 30 для получения набора опорных изображений. Однако, получение видеоэнкодером 20 набора опорных изображений в каждом случае может не потребоваться, и тогда видеодекодер 30 может быть просто кодером который получает набор опорных изображений.
Соответственно, в некоторых примерах видеокодер (например, видеоэнэнкодер 20 или видеодекодер 30) может кодировать (например, кодировать или декодировать соответственно) информацию, указывающую опорные изображения, относящиеся к набору опорных изображений. Например, видеоэнкодер 20 может
в качестве сигнализации передать кодированный битовый поток, включающий в себя значения для определения того, какие опорные изображения относятся к набору опорных изображений. Аналогичным образом, видеодекодер 30 может декодировать этот битовый поток, чтобы определить, какие опорные изображения относятся к набору опорных изображений.
Видеокодер может построить множество поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений. Например, видеокодер может построить шесть поднаборов опорных изображений (то есть, поднаборы RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr и RefPicSetLtFoll опорных изображений), где каждый из поднаборов идентифицирует нуль или более опорных изображений. В некоторых примерах видеокодер может кодировать текущее изображение на основе множества поднаборов опорных изображений.
Например, видеокодер может получить набор опорных изображений, исходя из построенного множества поднаборов опорных изображений. Например, видеокодер может упорядочить поднаборы опорных изображений любым образом, чтобы получить набор опорных изображений, или может получить набор опорных изображений в виде части конфигурации поднаборов опорных изображений. В некоторых примерах видеокодер может кодировать текущее изображение, исходя из полученного набора опорных изображений. Поскольку набор опорных изображений получают из множества поднаборов опорных изображений, можно считать, что видеокодер кодирует текущее изображение на основе множества поднаборов опорных изображений.
В некоторых примерах для упорядочивания поднаборов опорных изображений видеокодер может построить поднаборы опорных изображений в том порядке, в котором поднаборы опорных изображений должны быть внесены в набор опорных изображений. Например, видеокодер сначала может построить поднабор RefPicSetLtCurr опорных изображений, затем построить поднабор RefPicSetLtFol1 опорных изображений, затем построить поднабор RefPicSetStCurr0 опорных изображений, затем построить поднабор RefPicSetStCurr1 опорных изображений, затем построить поднабор RefPicSetStFoll0 опорных изображений и затем построить поднабор RefPicSetStFoll1 опорных изображений. В этом иллюстративном примере может быть следующий порядок поднаборов опорных изображений в наборе опорных изображений: RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurr0, RefPicSetStCurrl, RefPicSetStFoll0 и RefPicSetStFoll1, хотя возможны и другие порядки.
Согласно описанным здесь примерным методикам, после получения набора опорных изображений видеодекодер 30 может выполнять декодирование слайсов в текущем изображении. Часть процесса декодирования включает в себя построение одного или двух списков опорных изображений. Список опорных изображений - это список опорных изображений, который используется для предсказания P слайса или B слайса. Для процесса декодирования P слайса имеется один список (список 0) опорных изображений. Для декодирования процесса для B слайса имеется два списка (список 0 и список 1) опорных изображений. Список 0, иногда называемый списком 0 опорных изображений или RefPicList0, представляет собой список опорных изображений, используемый для межкадрового предсказания P или B слайса. Во всех межкадровых предсказаниях для P слайсов используется список 0. Список 0 опорных изображений является одним из двух списков опорных изображений, используемых для двунаправленного предсказания для B слайсов, причем другим списком является список 1 опорных изображений. Список 1, иногда называемый списком 1 опорных изображений, или RefPicListl, является списком опорных изображений, используемых для предсказания B слайса. Список 1 опорных изображений является одним из двух списков опорных изображений, используемых при предсказании B слайса, причем другим списком является список 0 опорных изображений. Для некоторых блоков в B слайсе двунаправленное предсказание можно выполнить, используя оба списка (список 0 и список 1), а также для некоторых блоков в B слайсе можно выполнить однонаправленное предсказание, используя либо список 0, либо список 1.
Для построения списков опорных изображений видеодекодер 30 может реализовать стандартную методику построения начального списка 0 и начального списка 1 для B слайсов. Построение начального списка 0 и начального списка 1 может называться здесь процессом инициализации. В некоторых примерах упомянутый кодированный битовый поток может указывать, что видеодекодер 30 должен модифицировать начальный список 0 и/или начальный список 1 для создания конечного списка 0 и конечного списка 1. Модификацию начального списка 0 и/или начального списка 1 можно назвать процессом модификации. Процесс модификации может не понадобиться в каждом конкретном случае, при этом возможный способ реализации видеодекодером 30 процесса модификации более подробно описывается ниже. Согласно раскрытым здесь методикам, когда нет необходимости модифицировать начальный список 0 или начальный список 1, конечный список 0 или конечный список 1 (то есть, начальный список 0 или 1, используемый для декодирования слайса текущего изображения) могут совпадать с начальным списком 0 или начальным списком 1. В результате, возможно, что не понадобиться переупорядочивание списка опорных изображений.
В методиках, раскрытых в этом изобретении, видеодекодер 30 может построить начальный список 0 или начальный список 1 таким образом, что видеодекодеру 30 не понадобится выполнять переупорядочивание текущих изображений, подлежащих включению в начальный список 0 или начальный список 1, независимо от того, необходим ли процесс модификации, поскольку опорные изображения в каждом из поднаборов опорных изображений уже расположены в правильном порядке. Например, в некоторых других методиках независимо от того, необходим ли процесс модификации, переупорядочивание опорных изображений, подлежащих включению в начальный список 0 или в начальный список 1 в соответствии с их значениями POC, при добавлении или внесении опорных изображений в начальный список 0 или начальный список 1 является обязательным.
В процессе инициализации видеодекодер 30 может реализовать стандартную методику построения начального списка 0 и начального списка 1. Эта стандартная методика может означать, что видеодекодер 30 формирует начальные списки опорных изображений, не получая синтаксические элементы от видеоэнкодера 20, независимо от того, каким образом видеодекодер 30 должен выполнять построения начальных списков опорных изображений, или каким образом должны идентифицироваться опорные изображения в начальных списках опорных изображений.
Видеодекодер 30 может активировать процесс построения списка опорных изображений при декодировании заголовка P или B слайса. Например, при декодировании P слайса видеодекодер 30 может активировать процесс для построения начального списка 0, но может не активировать процесс для построения начального списка 1, поскольку для блока в P слайсе выполняется только однонаправленное предсказание по отношению к опорному изображению, идентифицированному в списке 0. При декодировании B слайса видеодекодер 30 может активировать процесс для построения начального списка 0 и построения начального списка 1, поскольку для блока в B слайсе может быть выполнено двунаправленное предсказание по отношению к опорным изображения, идентифицированным в каждом из списков (список 0 и список 1).
Согласно примерным методикам, описанным в настоящем изобретении, видеодекодер 30 может использовать поднаборы опорных изображений для построения начального списка 0 и начального списка 1. Например, в начальный список 0 и в начальный список 1 может быть внесено нуль или более опорных изображений, идентифицированных в RefPicSetStCurr0, RefPicSetStCurr1 или RefPicSetLtCurr. В этом примере при активировании процесса построения списка опорных изображений возможно использование по меньшей мере одного опорного изображения в RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr. Хотя начальный список 0 и начальный список 1 могут идентифицировать одно или несколько опорных изображений из одних и тех же поднаборов опорных изображений, порядок, в котором видеодекодер 30 добавляет опорные изображения в начальный список 0, может отличаться от порядка, в котором видеодекодер 30 добавляет опорные изображения в начальный список 1.
В настоящем изобретении, когда видеодекодер 30 добавляет (например, вносит в список) опорные изображения из одного или нескольких поднаборов опорных изображений в начальный список 0 или начальный список 1, это относится к видеодекодеру 30, идентифицирующему опорные изображения в начальном списке 0 или начальном списке 1. Например, каждый из множества поднаборов опорных изображений может идентифицировать нуль или более опорных изображений. Для построения начального списка 0 и начального списка 1 видеодекодер 30 может идентифицировать одно или несколько опорных изображений, которые идентифицированы в поднаборах опорных изображений, в начальном списке 0 или начальном списке 1.
Во избежание ошибок для прояснения сущности изобретения данное описание относится к видеодекодеру 30, вносящему в список или добавляющему нуль или несколько опорных изображений, которые идентифицированы в поднаборах опорных изображений, к начальному списку 0 и начальному списку 1 для построения начального списка 0 и начального списка 1. Таким образом, видеодекодер 30, который добавляет или вносит в список опорные изображения, представляет собой видеодекодер который добавляет или вносит в список идентификатор опорного изображения, идентифицированного в поднаборе опорных изображений. Соответственно, результирующий начальный список 0 и результирующий начальный список 1 включают в себя множество идентификаторов для опорных изображений, которые можно потенциально использовать для кодирования блока или слайса текущего изображения. Эти опорные изображения запоминаются в соответствующих буферах декодированных изображений видеодекодера 30 и видеоэнкодера 20.
Например, для построения начального списка 0 видеодекодер 30 сначала может внести в список (например, добавить) опорные изображения, идентифицированные в RefPicSetStCurr0 в начальном списке 0, за которыми следуют опорные изображения, идентифицированные в RefPicSetStCurr1 в начальном списке 0, а затем опорные изображения, идентифицированные в RefPicSetLtCurr в начальном списке 0. Для построения начального списка 1 видеодекодер 30 сначала может внести в список (например, добавить) опорные изображения, идентифицированные в RefPicSetStCurr1 в начальном списке 1, за которыми следуют опорные изображения, идентифицированные в RefPicSetStCurr0 в начальном списке 1, а затем опорные изображения, идентифицированные в RefPicSetLtCurr в начальном списке 1.
Кроме того, вдобавок к добавлению опорных изображений в поднаборах опорных изображений в другом порядке видеодекодер 30 может использовать другое количество опорных изображений из каждого поднабора опорных изображений при построении списка 0 и списка 1. Например, список 0 и список 1 не обязательно должен включать в себя все опорные изображения из RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr. Скорее наоборот, количество перечисленных опорных изображений, из этих, приведенных в качестве примера поднаборов опорных изображений для построения начального списка 0 и начального списка 1 может быть основано на синтаксических элементах, которые указывают максимальное количество опорных изображений в каждом из начальных списков: в начальном списке 0 и в начальном списке 1.
Например, для начального списка 0 видеоэнэнкодер 20 в качестве сигнализации может передать синтаксический элемент num_ref_idx_l0_active_minus1 для P и B слайсов, и синтаксический элемент num_ref_idx_l1_active_minus1 для B слайсов, для которых выполняется двунаправленное предсказание. Как было описано выше num_ref_idx_l0_active_minus1 может определять максимальное количество опорных изображений, которое может находиться в начальном списке 0, а num_ref_idx_l1_active_minus1 может определять максимальное количество опорных изображений, которое может быть в начальном списке 1. В некоторых примерах возможно, что значение num_ref_idx_l0_active_minus1 будет отличаться от значения num_ref_idx_l1_active_minus1, хотя это не обязательно в каждом случае. В некоторых примерах значение num_ref_idx_l0_active_minus1 может совпадать со значением num_ref_idx_l1_active_minus1.
Как было описано выше, видеодекодер 30 может принимать в кодированном битовом потоке значения для num_short_term_curr0 и num_short_term_curr1. Видеодекодер 30 может определить переменную NumShortTermCurr0, равную num_short_term_curr0, и определить переменную NumShortTermCurr1, равную num_short_term_curr1. NumShortTermCurr0 указывает количество опорных изображений в поднаборе RefPicSetStCurr0 опорных изображений, а NumShortTermCurr1 указывает количество опорных изображений в поднаборе RefPicSetStCurr1 опорных изображений.
Видеодекодер 30 также может принимать в кодированном битовом потоке значения для num_long_term_pps_curr и num_long_term_add_curr. Видеодекодер 30 может определить переменную NumLongTermCurr, равную num_long_term_pps_curr плюс num_long_term_add_curr. NumLongTermCurr может указать количество опорных изображений в RefPicSetLtCurr.
Для построения начального списка 0 видеодекодер 30 сначала может добавить опорные изображения RefPicSetStCurr0 в начальной список 0, пока видеодекодер 30 не добавит все опорные изображения, содержащиеся в RefPicSetStCurr0, в начальный список 0, и, пока количество записей в начальном списке 0 (например, количество опорных изображений, идентифицированных в списке 0) меньше или равно num_ref_idx_l0_active_minus1. Например, NumShortTermCurr0 может указать количество опорных изображений в поднаборе RefPicSetStCurr0 опорных изображений. В этом примере, видеодекодер 30 может вносить в список (например, добавлять) опорные изображения из поднабора RefPicSetStCurr0 опорных изображений, пока количество опорных изображений, внесенных из RefPicSetStCurr0, не станет равным NumShortTermCurr0. Однако при внесении опорных изображений из RefPicSetStCurr0 в начальный список 0, если общее количество записей в начальном списке 0 равно num_ref_idx_l0_active_minus1, то тогда видеодекодер 30 может прекратить добавление опорных изображений в поднабор RefPicSetStCurr0 опорных изображений даже в том случае, если имеются добавленные изображения в RefPicSetStCurr0, которые не были внесены в начальный список 0. В этом случае видеодекодер 30 может завершить построение начального списка 0.
После того, как видеодекодер 30 внес в список все опорные изображения, находящиеся в поднаборе RefPicSetStCurr0 опорных изображений, и общее количество записей в начальном списке 0 меньше, чем num_ref_idx_l0_active_minus1, видеодекодер 30 может затем добавлять опорные изображения, входящие в RefPicSetStCurr1, пока видеодекодер 30 не идентифицирует все опорные изображения в RefPicSetStCurr1, и пока количество записей в начальном списке 0 (например, количество опорных изображений, идентифицированных в списке 0) меньше или равно num_ref_idx_l0_active_minus1. Например, по аналогии с вышеописанным, NumShortTermCurr1 может указывать количество опорных изображений в поднаборе RefPicSetStCurr1 опорных изображений. В этом примере видеодекодер 30 может вносить в список опорные изображения из поднабора RefPicSetStCurr1 опорных изображений, пока количество внесенных опорных изображений из RefPicSetStCurr1, не станет равным NumShortTermCurr1. Однако при внесении в список опорных изображений из RefPicSetStCurr1, если общее количество записей в начальном списке 0 равно num_ref_idx_l0_active_minus1, то тогда видеодекодер 30 может прекратить добавление опорных изображений из поднабора RefPicSetStCurr1 опорных изображений даже в том случае, если в RefPicSetStCurr1 имеются дополнительные изображения, которые не попали в начальный список 0. В этом случае видеодекодер 30 может завершить построение начального списка 0.
После того как видеодекодер 30 внес в список все опорные изображения, входящие в поднабор RefPicSetStCurr1 опорных изображений, и общее количество записей в начальном списке 0 меньше, чем num_ref_idx_l0_active_minus1, видеодекодер 30 может затем вносить в список опорные изображения, входящие в RefPicSetLtCurr, пока видеодекодер 30 не внесет все опорные изображения, содержащиеся в RefPicSetLtCurr и, пока количество записей в начальном списке 0 (например, количество опорных изображений, идентифицированных в списке 0) меньше или равно num_ref_idx_l0_active_minus1. Например, по аналогии с вышеописанным, NumLongTermCurr может указывать количество опорных изображений в поднаборе RefPicSetLtCurr опорных изображений. В этом примере видеодекодер 30 может вносить в список опорные изображения из поднабора RefPicSetLtCurr опорных изображений, пока количество внесенных опорных изображений из RefPicSetLtCurr не станет равным NumLongTermCurr. Однако, при внесении в начальный список 0 опорных изображений из RefPicSetLtCurr, если общее количество записей в начальном списке 0 равно num_ref_idx_l0_active_minus1, то тогда видеодекодер 30 может прекратить добавление опорных изображений, входящих в поднабор RefPicSetLtCurr опорных изображений даже в том случае, если имеются дополнительные изображения в RefPicSetLtCurr, не внесенные в начальный список 0. В этом случае видеодекодер 30 может завершить построение начального списка 0.
Нижеследующий псевдокод иллюстрирует, каким образом видеодекодер 30 может построить начальный список 0.
Figure 00000011
В вышеуказанном псевдокоде RefPicList0 может представлять собой начальный список 0. В примерах, где не требуется модификация списка 0, конечный список 0 может совпадать с начальным списком 0. Таким образом, в примерах, где нет необходимости в модификации списка 0, RefPicList0 в вышеуказанном псевдокоде может совпадать с конечным списком 0.
Видеодекодер 30 может строить начальный список 1 аналогичным образом. Однако для построения начального списка 1 видеодекодер 30 сначала может добавить в начальный список 1 опорные изображения из поднабора RefPicSetStCurr1 опорных изображений в начальный список 1, за которым последует поднабор RefPicSetStCurr0 опорных изображений, и за которым следует поднабор RefPicSetLtCurr опорных изображений. Также, по аналогии с вышесказанным, если при внесении в список опорных изображений из любого из поднаборов: RefPicSetStCurr1, RefPicSetStCurr0 и RefPicSetLtCurr опорных изображений общее количество записей в начальном списке 1 будет равно num_ref_idx_l1_active_minus1, то видеодекодер 30 может прекратить добавление опорных изображений даже в том случае, если имеются дополнительные опорные изображения в указанных поднаборах опорных изображений.
Например, для построения начального списка 1 видеодекодер 30 сначала может вносить в список опорные изображения из RefPicSetStCurr1, пока видеодекодер 30 не идентифицирует все опорные изображения в RefPicSetStCurr1, и пока количество записей в начальном списке 1 (например, количество опорных изображений, идентифицированных в списке 1) меньше или равно num_ref_idx_l1_active_minus1. Например, значение NumShortTermCurr1 может указывать, когда видеодекодер 30 завершил внесение в список всех опорных изображений из поднабора RefPicSetStCurr1 опорных изображений. Однако при внесении в список опорных изображений из RefPicSetStCurr1 если общее количество записей в начальном списке 1 равно num_ref_idx_l1_active_minus1, то тогда видеодекодер 30 может прекратить добавление опорных изображений, входящих в поднабор RefPicSetStCurr1 опорных изображений даже в том случае, если имеются дополнительные изображения в RefPicSetStCurr1, которые не были внесены в начальный список 1. В этом случае видеодекодер 30 может завершить построение начального списка 1.
После того, как видеодекодер 30 внес в список все опорные изображения из поднабора RefPicSetStCurr1 опорных изображений, и общее количество записей в начальном списке меньше, чем num_ref_idx_l1_active_minus1, видеодекодер 30 может затем вносить в список опорные изображения из RefPicSetStCurr0, пока видеодекодер 30 не перечислит все опорные изображения из RefPicSetStCurr0, и пока количество записей в начальном списке 1 (например, количество опорных изображений, идентифицированных в списке 1) меньше или равно num_ref_idx_l1_active_minus1. Например, по аналои с вышеописанным, значение NumShortTermCurr0 может указывать, когда видеодекодер 30 завершит внесение в список всех опорных изображений из поднабора RefPicSetStCurr0 опорных изображений. Однако при внесении в начальный список 1 опорных изображений из RefPicSetStCurr0, если общей количество записей в начальном списке 1 равно num_ref_idx_l1_active_minus1, то тогда видеодекодер 30 может прекратить добавление опорных изображений из поднабора RefPicSetStCurr0 опорных изображений даже в том случае, если имеются дополнительные изображения в RefPicSetStCurr0, которые не вошли в начальный список 1. В этом случае видеодекодер 30 может завершить построение начального списка 1.
После того, как видеодекодер 30 внес в список все опорные изображения из поднабора RefPicSetStCurr0 опорных изображений, и общее количество записей в начальном списке 1 меньше, чем num_ref_idx_l1_active_minus1, видеодекодер 30 может затем вносить в список опорные изображения RefPicSetLtCurr, пока видеодекодер 30 не внесет все опорные изображения из RefPicSetLtCurr, и пока количество записей в начальном списке 1 (например, количество опорных изображений, идентифицированных в списке 1) меньше или равно num_ref_idx_l1_active_minus1. Например, по аналогии с вышеописанным, значение NumLongTermCurr может указать, когда видеодекодер 30 завершил внесение в список всех опорных изображений из поднабора RefPicSetLtCurr опорных изображений. Однако, при внесении в список опорных изображений из поднабора RefPicSetLtCurr, если общее количество записей в начальном списке 1 равно num_ref_idx_l1_active_minus1, то тогда видеодекодер 30 может прекратить добавление опорных изображений из поднабора RefPicSetLtCurr опорных изображений даже в том случае, если в RefPicSetLtCurr имеются дополнительные изображения, не вошедшие в начальный список 1. В этом случае видеодекодер 30 может завершить построение начального списка 1.
Нижеследующий псевдокод иллюстрирует, каким образом видеодекодер 30 может построить начальный список 1.
Figure 00000012
В вышеуказанном псевдокоде RefPicList1 может быть начальным списком 1. В примерах, где модификация списка 1 не нужна, конечный список 1 может совпадать с начальным списком 1. Таким образом, в примерах, где необходимость модификации списка 1 отсутствует, RefPicList1 в вышеуказанном псевдокоде может стать конечным списком 1.
Вышеописанное является одном из примеров того, каким образом видеодекодер 30 может построить конечный список 0 и конечный список 1, когда необходимость в модификации списка опорных изображений отсутствует. В других примерах видеодекодер 30 может добавлять поднаборы опорных изображений в порядке, отличном от вышеописанного. В ряде других примеров видеодекодер 30 может добавлять поднаборы опорных изображений, отличные от вышеописанных.
Хотя в предыдущих примерах описаны методики для построения списков опорных изображений, выполняемого видеодекодером 30, раскрытые здесь аспекты не являются ограничениями, то есть, видеоэнкодер 20 может реализовать аналогичные методики для построения списков опорных изображений. Однако видеоэнкодеру 20 нет необходимости формировать списки опорных изображения таким же образом, как это делает видеодекодер 30.
Соответственно, видеокодер (например, видеоэнкодер 20 или видеодекодер 30) может быть сконфигурирован для кодирования (например, энкодирования или декодирования) информации, указывающей на то, какие опорные изображения относятся к списку опорных изображений. Как было описано выше, набор опорных изображений идентифицируют опорные изображения, которые можно потенциально использовать для межкадрового предсказания текущего изображения, а также можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Видеокодер также может быть сконфигурирован для построения множества поднаборов опорных изображений, каждое из которых идентифицирует нуль или несколько опорных изображений. Например, видеокодер может построить по меньшей мере поднаборы RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений. Видеокодер может построить дополнительные поднаборы опорных изображений, например, вышеописанные поднаборы.
Затем видеокодер может добавлять опорные изображения из первого поднабора опорных изображений, за которыми добавлять опорные изображения из второго поднабора опорных изображений, и за которыми добавлять опорные изображения из третьего поднабора опорных изображений, в начальный список опорных изображений, пока количество записей в начальном списке опорных изображений не превысит максимальное количество записей, допустимое для списка опорных изображений. Например, видеокодер может вносить в начальный список 0 опорные изображения из поднабора RefPicSetStCurr0 опорных изображений, за которыми может вносить опорные изображения из поднабора RefPicSetStCurr1 опорных изображений, и за которыми вносить опорные изображения из поднабора RefPicSetLtCurr, пока количество записей в начальном списке 0 не превышает num_ref_idx_l0_active_minus1. Опять же, значение num_ref_idx_l0_active_minus1 может указывать максимальное количество записей, допустимое для списка опорных изображений для списка 0.
В некоторых примерах видеокодер может добавлять опорные изображения из первого поднабора опорных изображений в начальный список опорных изображений, пока все опорные изображения в первом поднаборе опорных изображений не войдут в начальный список опорных изображений, или пока количество записей в начальном списке опорных изображений не окажется равным максимальному количеству записей, допустимому для списка опорных изображений. Когда количество записей в начальном списке меньше максимального количества записей, допустимого для списка опорных изображений, и после добавления опорных изображений из первого поднабора опорных изображений, видеокодер может добавлять опорные изображения из второго поднабора опорных изображений в начальный список опорных изображений, пока все опорные изображения из второго поднабора опорных изображений не окажутся в начальном списке опорных изображений, или пока количество записей в начальном списке опорных изображений не окажется равным максимальному количеству записей, допустимому для списка опорных изображений. Когда количество записей в начальном списке опорных изображений меньше максимального количества записей, допустимого для списка опорных изображений, и после добавления опорных изображений из второго поднабора опорных изображений, видеокодер может добавлять опорные изображения из третьего поднабора опорных изображений в начальный список опорных изображений, пока все опорные изображения в третьем поднаборе опорных изображений не попадут в начальный список опорных изображений, или пока количество записей в начальном списке опорных изображений не станет равным максимальному количеству записей, допустимому для списка опорных изображений.
Аналогичным образом видеокодер может построить начальный список 1. Например, видеокодер может добавлять в начальный список 1, опорные изображения из второго поднабора опорных изображений, за которыми последуют опорные изображения из первого поднабора опорных изображений, а за ними опорные изображения из третьего поднабора опорных изображений, пока количество записей в начальном списке 1 опорных изображений не превышает num_ref_idx_l1_active_minus1. Синтаксический элемент num_ref_idx_l1_active_minus1 может определять максимальное количество записей, допустимое для списка 1.
В некоторых примерах, например, когда модификация не требуется, начальный список 0 и начальный список 1 могут совпадать с конечным списком 0 и конечным списком 1 соответственно. Другими словами, видеокодер может построить конечный список 0 и конечный список 1, не модифицируя начальный список 0 и начальный список 1, когда модификация не требуется. В этих случаях после построения начального списка 0 и начального списка 1 видеокодеру нет необходимости выполнять дополнительные шаги, необходимые для построения конечного списка 0 и конечного списка 1 (то есть, списков опорных изображений, которые использует видеокодер для кодирования блока текущего изображения).
Как указано в приведенном выше псевдокоде, видеодекодер 30 может построить начальный список 0, когда cldx меньше или равен num_ref_idx_l0_active_minus1, и может построить начальный список 1, когда cldx меньше или равен num_ref_idx_l1_active_minus1. Это может привести к тому, что видеодекодер 30 построит начальный список 0 и начальный список 1 без незавершенного ввода в списках опорных изображений. Например, в некоторых других методиках видеокодирования видеодекодер, реализующий эти другие методики обработки видео, выполняет построение начального списка 0 и начального списка 1, используя методики, отличные от раскрытых в настоящем изобретении. Для этих других методик видеокодирования, если количество записей в начальном списке 0 и начальном списке 1 было меньше максимально допустимого количество записей, то видеодекодер, реализующий эти другие методики видеокодирования, заполняет остальные места для записей в списке 0 и в списке 1 записью «опорное изображение отсутствует» для незавершенных записей. Незавершенные записи относятся к записям в списке 0 и списке 1 после последней записи, которая идентифицирует опорное изображение, и до последней возможной записи.
В качестве иллюстративного примера, помогающего понять сущность изобретения, рассмотрим случая, когда видеодекодер для упомянутых других методик видеокодирования может построить список 0 с пятью записями, где максимально допустимое количество записей равно десяти. В этом примере видеодекодер для упомянутых других методик видеокодирования заполняет записи с шестой по десятую текстом «опорное изображение отсутствует». В этом примере незавершенными записями являются записи с шестой (например, запись после последней записи, которая идентифицирует опорное изображение) до десятой записи (например, до последней возможной записи, исходя из максимально допустимого количества записей).
Согласно методикам, раскрытым в изобретении, видеодекодер 30 может построить начальный список 0 и начальный список 1 таким образом, что незавершенных записей вообще не будет. Также в тех примерах, где не требуется модификация списка опорных изображений, конечный список 0 и конечный список 1 могут совпадать соответственно с начальным списком 0 и начальным списком 1. Таким образом, в тех случаях, когда не требуется модификация списка опорных изображений, видеодекодер 30 может построить конечный список 0 и конечный список 1 таким образом, чтобы не было незавершенных записей. Даже в том случае, когда требуется модификация списка опорных изображений, эта модификация может не привести к появлению незавершенных записей. Таким образом, даже в тех случаях, когда требуется модификация списка опорных изображений, видеодекодер 30 может построить конечный список 0 и конечный список 1 таким образом, чтобы в нем отсутствовали незавершенные записи.
Например, список 0 и список 1 можно рассматривать как списки с записями, где каждая запись может идентифицировать опорное изображение (например, с помощью значения POC). Другими словами, видеодекодер 30 может идентифицировать опорное изображение с помощью значения POC в каждой записи списка 0 и списка 1. Количество записей в списке 0 и в списке 1 может определяться синтаксическими элементами num_ref_idx_l0_active_minus1 и num_ref_idx_l1_active_minus1 соответственно.
Чтобы исключить наличие незавершенных записей, видеодекодер 30 может многократно вносить в начальный список 0 и в начальный список 1 (например, добавлять или идентифицировать) опорные изображения из поднаборов опорных изображений, пока видеодекодер 30 не определит, какое опорное изображение следует идентифицировать в каждой потенциальной записи начального списка 0 и начального списка 1. Например, как было описано выше, для построения начального списка 0 после добавления опорных изображений из поднаборов RefPicSetStCurr0 и RefPicSetStCurr1 опорных изображений в начальный список 0 видеодекодер 30 может добавить опорные изображения из поднабора RefPicSetLtCurr опорных изображений начальный список 0.
В некоторых примерах после того, как видеодекодер 30 добавил опорные изображения из поднабора RefPicSetLtCurr опорных изображений в начальный список 0, возможно окажется, что общее количество записей в начальном списке 0 меньше максимального количества записей, допустимого для списка 0. Например, в псевдокоде для построения начального списка 0 элемент cldx может указывать количество записей в списке 0. В некоторых примерах после идентификации видеодекодером 30 опорных изображений в RefPicSetLtCurr в начальном списке 0 значение cldx может оказаться меньшим, чем num_ref_idx_l0_active_minus1, где num_ref_idx_l0_active_minus1 задает максимальное количество записей, допустимое для списка 0.
Согласно способам, описанным в настоящем изобретении, после внесения в список опорных изображений из трех поднаборов из числа поднаборов опорных изображений, если количество записей в начальном списке 0 меньше максимально допустимого количества записей, то видеодекодер 30 может многократно добавлять опорные изображения из этих трех поднаборов опорных изображений, пока не будут заполнены все записи в списке 0. Например, после добавления видеодекодером 30 опорных изображений из поднабора RefPicSetLtCurr опорных изображений, когда количество записей в начальном списке 0 меньше максимально допустимого количества записей, видеодекодер 30 может затем повторно внести в список (например, повторно добавить или повторно идентифицировать) опорные изображения из поднабора RefPicSetStCurr0 опорных изображений.
Согласно раскрытым здесь аспектам, когда видеодекодер 30 вносит в список опорные изображения из поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений, можно считать, что видеодекодер 30 добавляет опорные изображения из этого множества поднаборов опорных изображений в первый набор записей в списке опорных изображений (например, в списке 0). Например, первый набор записей может представлять собой записи в списке опорных изображений, в котором видеодекодер 30 идентифицировал опорные изображения из поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений. Затем, если количество записей в списке опорных изображений меньше максимально допустимого количества записей, то видеодекодер 30 может повторно вносить в список (например, повторно добавлять или повторно идентифицировать) одно или несколько опорных изображений по меньшей мере из одного из поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений в записи в списке опорных изображений, которые идут после первого набора записей. Записи после первого набора могут быть записями, которые следуют за первым набором записей, где видеодекодер 30 добавляет уже внесенные в список опорные изображения из одного или нескольких поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений, как было описано выше.
Если при многократном добавлении опорных изображений из поднабора RefPicSetStCurr0 опорных изображений общее количество записей в начальном списке 0 равно num_ref_idx_l0_active_minus1, то видеодекодер 30 может прекратить повторное добавление опорных изображений в начальный список 0. В этом случае видеодекодер 30 может завершить построение начального списка 0, и в нем могут отсутствовать незавершенные записи. В противном случае, видеодекодер 30 может многократно добавлять опорные изображения из поднабора RefPicSetStCurr0 опорных изображений, пока не будут внесены все опорные изображения из поднабора RefPicSetStCurr0 опорных изображений.
Если после добавления всех опорных изображений из поднабора RefPicSetStCurr0 опорных изображений количество записей в начальном списке 0 окажется меньшим, чем num_ref_idx_l0_active_minus1, видеодекодер 30 может продолжать добавлять опорные изображения из поднабора RefPicSetStCurr1 опорных изображений таким же образом, как в случае, когда видеодекодер 30 многократно вносит опорные изображения из поднабора RefPicSetStCurr0 опорных изображений. Если после добавления всех опорных изображений из поднабора RefPicSetStCurr1 опорных изображений количество записей в начальном списке 0 окажется меньшим, чем num_ref_idx_l0_active_minus1, то видеодекодер 30 может тогда многократно добавлять опорные изображения из поднабора RefPicSetLtCurr опорных изображений таким же образом, как в том случае, когда видеодекодер 30 многократно вносил опорные изображения из поднаборов RefPicSetStCurr0 и RefPicSetStCurr1 опорных изображений. Видеодекодер 30 будет многократно добавлять опорные изображения из упомянутых поднаборов опорных изображений, пока количество записей в начальном списке 0 не станет равным максимальному количеству записей, допустимому для списка 0 (то есть, не станет равным num_ref_idx_l0_active_minus1).
Предположим, например, что имеется одно опорное изображение в RefPicSetStCurr0, одно опорное изображение в RefPicSetCurr1 и одно опорное изображение в RefPicSetLtCurr. Также предположим, что num_ref_idx_l0_active_minus1 равно пяти. В этом примере видеодекодер 30 может идентифицировать опорное изображение в RefPicSetStCurr0 в двух записях начального списка 0. Например, видеодекодер 30 может идентифицировать опорное изображение из RefPicSetStCurr0 в первой записи начального списка 0 и вновь идентифицировать опорное изображение из RefPicSetStCurr0 в четвертой записи начального списка 0. В этом примере значение индекса для опорного изображения в RefPicSetStCurr0 может быть представлено как index[0] для первой записи в начальном списке 0 и index[3] для четвертой записи в начальном списке 0. Соответственно, в некоторых примерах одно опорное изображение из одного из поднаборов опорных изображений может быть внесено в список (например, идентифицировано) более одного раза в начальных списках опорных изображений.
Видеодекодер 30 может аналогичным образом построить начальный список 1 таким образом, что в начальном списке 1 незавершенные записи будут отсутствовать. Например, видеодекодер 30 может многократно добавлять опорные изображения из поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений в указанном порядке, пока количество записей в начальном списке 1 не станет равным максимальному количеству записей, допустимому для списка 1 (то есть, равным num_ref_idx_l1_active_minus1).
Таким образом, поскольку в вышеуказанном псевдокоде для построения начального списка 0 и начального списка 1 циклы « for (для)» вставлены в цикл «while (когда)», видеодекодер 30 может построить начальный список 0 и начальный список 1 так, что в начальном списке 0 и в начальном списке 1 не будет незавершенных записей (то есть, не будет незавершенных записей после процесса инициализации). В некоторых примерах каждая из записей в начальном списке 0 и начальном списке 1 может идентифицировать опорное изображение из одного поднабора из числа поднаборов опорных изображений. В некоторых примерах возможно, что одно или несколько опорных изображений из одного поднабора из числа поднаборов опорных изображений идентифицируются больше одного раза в конечных списках опорных изображений, но в разных записях и с разными значениями индекса.
Хотя в предыдущих примерах были описаны методики для построения списков опорных изображений без незавершенных записей, реализуемые видеодекодером 30, аспекты настоящего изобретения этим не ограничиваются, то есть, видеоэнкодер 20 может реализовать аналогичные методики для построения списков опорных изображений без незавершенных записей. Однако возможно, что видеоэнкодеру 20 не понадобится выполнять построение списков опорных изображений таким же образом, как это делает видеодекодер 30.
Соответственно, видеокодер (например, видеоэнкодер 20 или видеодекодер 30) могут быть сконфигурированы для кодирования (например, энкодирования или декодирования) информации, указывающей опорные изображения, относящиеся к набору опорных изображений. Как было описано выше, набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Видеокодер может построить множество поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений (например, поднаборы RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений). Видеокодер может внести в первый набор записей списка опорных изображений 9например, идентифицировать или добавить) опорные изображения из множества поднаборов опорных изображений. Видеокодер может определить, равно ли количество записей в списке опорных изображений максимальному количеству записей, допустимому для данного списка опорных изображений.
Когда количество записей в списке опорных изображений не равно максимальному количеству записей, допустимому для списка опорных изображений, видеокодер может многократно добавлять (например, многократно идентифицировать) одно или несколько опорных изображений по меньшей мере из одного поднабора опорных изображений в записи списка опорных изображений, которые следуют за первым набором записей, пока количество записей в списке опорных изображений не станет равным максимальному количеству записей, допустимому для списка опорных изображений. Затем видеокодер может закодировать текущее изображение на основе построенного списка опорных изображений.
Как было описано выше, в ряде примеров видеоэнкодер 20 может сообщать о синтаксических элементах, которые указывают видеодекодеру 30 на необходимость модификации начального списка или списков опорных изображений. Например, видеодекодер 30 может построить начальный список ил списки опорных изображений вышеописанным образом. Затем в некоторых случаях видеодекодер 30 может декодировать синтаксические элементы из кодированного битового потока, которые дают указание видеодекодеру 30 модифицировать начальный список или списки опорных изображений для построения конечного списка или списков опорных изображений. В общем случае при выполнении модификации видеодекодер 30 может отобразить одно или несколько изображений, идентифицированных в одном или нескольких поднаборах из упомянутого множества поднаборов опорных изображений, в записи одного из списков опорных изображений после инициализации списка опорных изображений.
Например, после построения видеодекодером 30 начального списка или списков опорных изображений вышеописанным образом видеодекодер 30 может модифицировать по меньшей мере одну из записей в одном из начальных списков опорных изображений таким образом, как это указано в кодированном битовом потоке. Например, видеоэнкодер 20 в качестве части синтаксических элементов модификации может указать, какое изображение из одного поднабора из множества поднаборов опорных изображений следует идентифицировать в записи списка опорных изображений, даже если эта запись из списка опорных изображений возможно уже идентифицирует опорное изображение в качестве части процесса инициализации. В некоторых примерах описанные здесь методики модификации списков опорных изображений позволяют выполнить гибкую модификацию. Например, видеодекодер 30 может идентифицировать в одном или обоих списках опорных изображений то опорное изображение, которое не находится в начальных списках опорных изображений.
Используемое в данном изобретении выражение «модифицированный список опорных изображений» относится к списку опорных изображений после модификации начального списка опорных изображений. Модифицированный список опорных изображений может быть конечным списком опорных изображений. Количество записей в модифицированном списке опорных изображений составляет num_ref_idx_l0_active_minus1 + 1 для списка 0 и num_ref_idx_l1_active_minus1+1 для списка 1. Опорное изображение может появиться с более чем одним индексом (например, запись) в модифицированных списках опорных изображений: в списке 0 и в списке 1.
Чтобы обеспечить модификацию списка опорных изображений, видеоэнкодер 20 может в качестве сигнализации передать следующие синтаксические элементы, представленные в Таблице 6.
Таблица 6
Синтаксис модификации списка опорных изображений
Figure 00000013
Синтаксические элементы modification_of_ref_pic_idc, short_term_ref_pic_set_idx и long_term_ref_pic_set_idx могут задавать изменения в начальных списках опорных изображений, что позволяет получить списки опорных изображений, подлежащие использованию для декодирования данного слайса.
Элемент ref_pic_list_modification_flag_10, равный 1 может задать присутствие синтаксического элемента modification_of_ref_pic_idc для задания списка 0 опорных изображений, а элемент ref_pic_list_modification_flag_10, равный 0, задает отсутствие этого синтаксического элемента.
Когда ref_pic_list_modification_flag_10 равен 1, то количество раз, когда элемент modification_of_ref_pic_idc не равно 3, из чего следует, что элемент ref_pic_list_modification_flag_10 не превысит num_ref_idx_l0_active_minus1 + 1.
Элемент ref_pic_list_modification_flag_l1, равный 1 может задать наличие синтаксического элемента modification_of_ref_pic_idc для задания списка 1 опорных изображений. Элемент ref_pic_list_modification_flag_l1, равный 0, может задать отсутствие этого синтаксического элемента.
Когда элмент ref_pic_list_modification_flag_l1 равен 1, то количество раз, когда элемент modification_of_ref_pic_idc не равен 3, из чего следует, что элемент ref_pic_list_modification_flag_l1 не превысит num_ref_idx_l1_active_minus1 + 1.
Элемент modification_of_ref_pic_idc вместе с элементом short_term_ref_pic_set_idx или элементом long_term_ref_pic_set_idx могут задать опорные изображения, отображение которых следует изменить. Значения элемента modification_of_ref_pic_idc заданы в Таблице 7. Значение первого элемента modification_of_ref_pic_idc, который следует сразу после элемента ref_pic_list_modification_flag_10 или элемента ref_pic_list_modification_flag_l1, может быть не равно 3.
Элемент ref_pic_set_idx задает индекс для RefPicSetStCurr0, RefPicSetStCurr1 или RefPicSetLtCurr опорного изображения, перемещаемого к текущему индексу в списке опорных изображений. Значение ref_pic_set_idx может находиться в диапазоне от 0 до max_num_ref_frames включительно.
Таблица 7
Операции modification_of_ref_pic_idc для модификации списков опорных изображений
modification_of_ref_pic_idc Заданная модификация
0 Для списка 0:ref_pic_set_idx присутствует и соответствует индексу для RefPicSetStCurr0; Для списка 1: ref_pic_set_idx присутствует и соответствует индексу RefPicSetStCurr1
1 Для списка 0:ref_pic_set_idx присутствует и соответствует индексу для RefPicSetStCurr1; Для списка 1: ref_pic_set_idx присутствует и соответствует индексу RefPicSetStCurr0
2 ref_pic_set_idx присутствует и соответствует индексу для RefPicSetLtCurr
3 ref_pic_idx отсутствует и цикл для модификации начального списка опорных изображений заканчивается
Для модификации списка опорных изображений, когда ref_pic_list_modification_flag_l0 равен 1, видеодекодер 30 может модифицировать начальный список 0 опорных изображений (то есть, начальный список 0), а когда ref_pic_list_modification_flag_l1 равен 1, видеодекодер 30 может модифицировать начальный список 1 опорных изображений (то есть, начальный список 1). Для облегчения понимания операции модификации списка опорных изображений положим, что переменная refldxL0 представляет собой индекс для начального списка 0, а переменная refldxL1 представляет индекс для начального списка 1. Другими словами, refldxL0 может идентифицировать запись начального списка 0 (то есть, индекс для начального списка 0 идентифицирует запись начального списка 0), а refldxL1 может идентифицировать запись начального списка 1. Переменные refldxL0 и refldxL1 изначально могут быть установлены равными 0.
Видеодекодер 30 может обрабатывать синтаксические элементы для modification_of_ref_pic_idc в процессе появления синтаксических элементов в битовом потоке. Например, если видеоэнкодер 20 сигнализирует о том, что для начального списка 0 требуется модификация, то тогда видеодекодер 30 может переработать порядок, в котором видеоэнкодер 20 передает синтаксические элементы modification_of_ref_pic_idc для модификации начального списка 0. Аналогичным образом, если видеоэнкодер 20 сообщает о необходимости модификации начального списка 1 опорных изображений, то тогда видеодекодер 30 может переработать порядок, в котором видеоэнкодер 20 передает синтаксические элементы modification_of_ref_pic_idc для модификации начального списка 1.
Синтаксический элемент modification_of_ref_pic_idc может принимать значения 0, 1, 2 или 3, как показано в Таблице 7. Если значение синтаксического элемента modification_of_ref_pic_idc равно 3, то тогда видеодекодер 30 может прекратить модификацию начального списка опорных изображений. В противном случае видеодекодер 30 может поддерживать модификацию начального списка опорных изображений, пока значение синтаксического элемента modification_of_ref_pic_idc не станет равным 3. Например, видеоэнкодер 20 может сообщить множество значений для синтаксического элемента modification_of_ref_pic_idc, а видеодекодер 30 может обработать каждое из упомянутых значений в том порядке, в каком эти значения присутствуют в кодированном битовом потоке. Когда видеодекодер 30 обрабатывает значение синтаксического элемента modification_of_ref_pic_idc, равное 3, видеодекодер 30 может определить, что дальнейшая модификация не требуется.
Значение синтаксического элемента modification_of_ref_pic_idc, которое иногда отличается от 3 (то есть, равно 0, 1, или 2) может указывать, исходя из какого поднабора опорных изображений, видеодекодер 30 должен идентифицировать опорное изображение, подлежащее внесению (например, добавлению) в ткущую запись списка опорных изображений. Как было описано выше, текущая запись списка опорных изображений может быть идентифицирована с помощью значения refldxLX, где LX - это либо список 0, либо список 1. Например, если видеодекодер 30 модифицирует в данный момент начальный список 0, и синтаксический элемент modification_of_ref_pic_idc равен 0, то тогда согласно Таблице 7 видеодекодер 30 может определить, какое опорное изображение из поднабора RefPicSetStCurr0 должно быть идентифицировано в текущей записи списка опорных изображений, на основе значения ref_pic_set_idx. Если видеодекодер 30 модифицирует в данный момент начальный список 1, и элемент modification_of_ref_pic_idc равен 0, то тогда согласно Таблице 7, видеодекодер 30 может определить, какое опорное изображение из поднабора RefPicSetStCurrl должно быть идентифицировано в текущей записи списка опорных изображений, на основе значения ref_pic_set_idx. Например, переменная curRefPicSet может определить, какой поднабор опорных изображений должен использовать видеодекодер 30 для модификации начального списка 0 или начального списка 1.
Например, если modification_of_ref_pic_idc равен 0, и видеодекодер 30 в данный момент модифицирует начальный список 0, то тогда curRefPicSet равен поднабору RefPicSetStCurr0 опорных изображений. Если modification_of_ref_pic_idx равен 0, и видеодекодер 30 в данный момент модифицирует начальный список 1, то тогда curRefPicSet равен поднабору RefPicSetStCurrl опорных изображений.
Если видеодекодер 30 в данный момент модифицирует начальный список 0, и modification_of_ref_pic_idc равен 1, то тогда согласно Таблице 7 видеодекодер 30 может определить, какое опорное изображение из поднабора RefPicSetStCurr1 следует идентифицировать в текущей записи списка опорных изображений, на основе значения ref_pic_set_idx. Если видеодекодер 30 в данный момент модифицирует начальный список 1 и modification_of_ref_pic_idc равен 1, то тогда согласно Таблице 7 видеодекодер 30 может определить, какое опорное изображение из поднабора RefPicSetStCurr0 следует идентифицировать в текущей записи списка опорных изображений, на основе значения ref_pic_set_idx.
В этом случае, если modification_of_ref_pic_idc равен 1, и видеодекодер 30 в данный момент модифицирует начальный список 0, то тогда curRefPicSet равен поднабору RefPicSetStCurr1 опорных изображений. Если modification_of_ref_pic_idx равен 1, и видеодекодер 30 в данный момент модифицирует начальный список 1, то тогда curRefPicSet равен поднабору RefPicSetStCurr0 опорных изображений.
Если видеодекодер 30 в данный момент модифицирует начальный список 0 или начальный список 1, и modification_of_ref_pic_idc равен 2, то тогда согласно Таблице 7 видеодекодер 30 может определить, какое опорное изображение из RefPicSetLtCurr следует идентифицировать в текущей записи списка опорных изображений, на основе значения ref_pic_set_idx. В этом примере, если modification_of_ref_pic_idc равен 2, и видеодекодер 30 модифицирует в данный момент начальный список 0 или начальный список 1, то тогда curRefPicSet равен поднабору RefPicSetLtCurr опорных изображений.
Как было описано выше, синтаксический элемент ref_pic_set_idx может указывать индекс для одного поднабора из множества поднаборов опорных изображений. Другими словами, синтаксический элемент ref_pic_set_idx может указать видеодекодеру 30 запись из одного поднабора из множества поднаборов опорных изображений. Видеодекодер 30 может определить опорное изображение, идентифицированное в указанной записи одного поднабора из множества поднаборов опорных изображений, в качестве опорного изображения, которое должно быть идентифицировано в текущем индексе начального списка 0 или начального списка 1.
Переменная curRefPicPoc может быть равна PicOrderCnt(curRefPicSet[ref_pic_set_idx]). Таким образом, значение curRefPicPoc может представлять собой значение POC опорного изображения, идентифицированного в записи ref_pic_set_idx набора curRefPicSet. Как было описано выше, curRefPicSet может быть равен RefPicSetStCurr0, RefPicSetStCurr1 или RefPicSetLtCurr в зависимости от значения синтаксического элемента modification_of_ref_pic_idc и в зависимости от того, модифицирует ли видеодекодер 30 начальный список 0 или начальный список 1.
Видеодекодер 30 может реализовать следующий псевдокод для модификации списка опорных изображений. Например, в следующем псевдокоде видеодекодер 30 может идентифицировать изображение со значением POC, равным curRefPicPoc, в записи начального списка опорных изображений. Переменная refldxLX указывает позицию индекса для записи в начальном списке опорных изображений. Например, когда видеодекодер 30 модифицирует начальный список 0, refldxLX может быть равным refldxL0, а когда видеодекодер 30 модифицирует начальный список 1, refldxLX может быть равен refldxLl.
После идентификации видеодекодером 30 опорного изображения со значением POC, равным curRefPicPOC в начальном списке опорных изображений (то есть, в начальном списке 0 или начальном списке 1), видеодекодер 30 может сместить положение других оставшихся изображений в сторону более поздних изображений в списке. Например, видеодекодер 30 может переместить опорные изображения, идентифицированные в начальном списке опорных изображений в записях, следующих за текущей записью, к следующей записи для построения модифицированного списка опорных изображений. Предположим в иллюстративных целях, что текущей записью в начальном списке опорных изображений является третья запись с индексом [2]. Видеодекодер 30 может переместить это опорное изображение, идентифицированное в данный момент в третьей записи с индексом [2], в следующую запись (например, четвертую запись с индексом [3]). Видеодекодер 30 может переместить опорное изображение, идентифицированное в данный момент в четвертой записи с индексом [3] на пятую запись с индексом [4]. В некоторых примерах видеодекодер 30 может начать с последней записи в начальном списке опорных изображений и переместить данное опорное изображение, идентифицированное в этой записи, в новую временную запись. Затем переместить опорное изображение, идентифицированное во второй записи по отношении к последней записи, в последнюю запись и так далее, пока видеодекодер 30 не достигнет текущей записи.
Затем видеодекодер 30 может увеличить на единицу значение переменной refldxLX. В этом псевдокоде длина RefPicListX (то есть, RefPicList0 или RefPicList1) временно установлена на один элемент больше длины, необходимой для конечного списка опорных изображений. Например, как было описано выше, видеодекодер 30 может начать с последней записи в начальном списке, перемесить эту последнюю запись во временную запись, переместить вторую по отношению к последней записи в последнюю запись и т.д. для модификации начального списка опорных изображений. После выполнения данного псевдокода видеодекодер 30 может сохранить только те записи в индексе от 0 до num_ref_idx_lX_active_minus1, где num_ref_idx_lX_active_minus1 равно num_ref_idx_l0_active_minus1 для списка 0 и num_ref_idx_l1_active_minus1 для списка 1.
Figure 00000014
В вышеуказанном псевдокоде RefPicListX относится либо к RefPicList0 (то есть, к конечному списку 0), либо к RefPicList1 (то есть, к конечному списку 1) в зависимости от того, модифицирует ли видеодекодер 30 начальный список 0 или начальный список 1. Элемент num_ref_idx_lX_active_minus1 относится либо к num_ref_idx_l0_active_minus1, либо к num_ref_idx_l1_active_minus1, в зависимости от того, модифицирует ли видеодекодер 30 начальный список 0 или начальный список 1.
В вышеописанных методиках раскрыт примерный способ, используя который видеодекодер 30 может модифицировать начальный список опорных изображений. В процессе кодирования видеоэнкодеру 20 также может понадобиться декодировать кодированное изображение в целях кодирования последовательных изображений. Соответственно, в некоторых примерах видеоэнкодер 20 также может быть сконфигурирован для построения начальных списков опорных изображений и модификации начальных списков опорных изображений вышеописанным образом. Однако бывает, что видеоэнкодеру 20 не нужно модифицировать начальный список или списки опорных изображений в каждом случае. В некоторых случаях видеодекодер 30 может выполнять лишь функцию кодера, который модифицирует начальный список опорных изображений, используя вышеописанные методики.
Соответственно, в некоторых примерах видеокодер (например, видеоэнкодер 20 или видеодекодер 30) может выполнить построение начального списка опорных изображений (например, начального списка 0 или начального списка 1), используя вышеописанные методики. Видеокодер может определить, требуется ли модификация списка опорных изображений, на основе закодированных синтаксических элементов в кодированном битовом потоке. При необходимости выполнения модификации списка опорных изображений видеокодер может модифицировать начальный список опорных изображений.
Например, когда необходима модификация списка опорных изображений, видеокодер может идентифицировать опорное изображение по меньшей мере в одном из построенных поднаборов опорных изображений. Видеокодер может внести (например, добавить) идентифицированный поднабор опорных изображений в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений. Затем видеокодер может закодировать (например, закодировать или декодировать) текущее изображение на основе модифицированного списка опорных изображений.
В одном примере видеокодер может построить поднаборы RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений. Для идентификации опорного изображения по меньшей мере в одном из этих поднаборов опорных изображений видеокодер может определить индекс по меньшей мере для одного из этих поднаборов опорных изображений. Затем видеокодер может определить опорное изображение, идентифицированное по записи по меньшей мере одного из указанных поднаборов опорных изображений на основе указанного определенного индекса.
Например, видеокодер может закодировать (например, энкодировать или декодировать) первый синтаксический элемент, такой как синтаксический элемент modification_of_ref_pic_idc, с помощью которого видеокодер идентифицирует один из поднаборов опорных изображений (например, один из поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений). Видеокодер может закодировать второй синтаксический элемент, такой как синтаксический элемент ref_pic_set_idx, который указывает индекс для идентифицированного поднабора опорных изображений (например, один из поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений).
В некоторых примерах видеокодер может быть дополнительно сконфигурирован для перемещения опорных изображений в начальном списке опорных изображений. Например, видеодекодер может перемещать опорные изображения, идентифицированные в начальном списке опорных изображений в записях, следующих за текущей записью до следующей записи в модифицированном списке опорных изображений.
В предыдущих примерах был описан способ, используя который видеоэнкодер 20 и видеодекодер 30 могут получить набор опорных изображений, а также примерные методики для построения списков опорных изображений, когда нет необходимости в модификации, и когда модификация необходима. Однако методики, раскрытые в данном описании, не следует рассматривать как ограничение. В некоторых примерах раскрытые здесь методики могут быть предназначены для управления буфером декодированных изображений (DPB). Буфер DPB может представлять собой буфер, где хранятся декодированные изображения.
Как видеоэнкодер 20, так и видеодекодер 30 могут включать в себя соответствующие буферы DPB. Например, в качестве части процесса кодирования видеоэнкодер 20 может декодировать текущее изображение, запоминать декодированное изображение в буфере DPB видеоэнкодера 20 и использовать декодированное изображение, запомненное в буфере DPB, для межкадрового предсказания следующего изображения. Аналогичным образом, как часть процесса декодирования, видеодекодер 30 может декодировать текущее изображение и запоминать декодированное изображение в буфере DPB видеодекодера 30. Видеодекодер 30 может затем использовать декодированное изображение для межкадрового предсказания следующего изображения.
В некоторых примерах в буфере DPB для видеоэнкодера 20 или видеодекодера 30 могут храниться декодированные изображения для переупорядочивания или задержки вывода. Например, видеодекодер 30 может определить, что декодированные изображения следует переупорядочить для вывода, или что вывод декодированного изображения следует задержать. В этих примерах в буфере DPB видеодекодера 30 могут храниться декодированные изображения для переупорядочивания вывода или задержки вывода.
Раскрытые здесь методики управления буфером DPB могут относиться к способу, используя который буфер DPB выводит и удаляет декодированные изображения. Синтаксический элемент output_flag может воздействовать на процесс вывода и удаления декодированного изображения и может быть определен как часть семантики блока сетевого абстрактного уровня (NAL). Блок NAL может быть определен в виде синтаксической структуры, включающей в себя указание типа данных для отслеживания и байты, которые включают в себя указанные данные в необработанной полезной нагрузки (RBSP), вперемежку, когда это необходимо, с байтами предотвращения эмуляции. Полезная нагрузка RBSP может представлять собой синтаксическую структуру, включающую в себя целое число байт, которые встроены в блок NAL. RBSP может быть либо пустой, либо иметь вид цепочки бит данных, которые включают в себя синтаксические элементы, за которыми следует бит прекращения RBSP, а за ним нуль или более следующих друг за другом бит, равных 0. Синтаксис блока NAL определен в Таблице 8.
Таблица 8
Синтаксис блока NAL
Figure 00000015
В Таблице 8 флаг output_flag может воздействовать на процесс вывода и удаления декодированного изображения, как более подробно описано ниже. Для любого изображения, если output_flag равен 1, то данное изображение предназначено для вывода. В противном случае это изображение никогда не выводится. В раскрытых здесь методиках переменная OutputFlag соответствует синтаксическому элементу output_flag.
В некоторых примерах любой кодированный блок NAL слайса кодированного изображения текущего блока доступа может отличаться от любого кодированного блока NAL кодированного изображения предыдущего блока доступа одним или несколькими следующими аспектами. Например, значения pic_parameter_set_id могут быть разными, значения nal_ref_idc могут быть разными, причем одно из значений nal_ref_idc равно 0. Значения pic_order_cnt_lsb могут быть разными. Также разными могут быть значения IdrPicFlag. Флаг IdrPicFlag может быть равен 1 для обоих, и значения idr_pic_id также могут быть разными.
В раскрытых здесь методиках блок доступа можно определить как набор блоков NAL, которые следуют друг за другом в порядке декодирования и содержат одно кодированное изображение. Вдобавок к этому кодированному изображению одно дополнительное кодированное изображение или другие блоки NAL могут не содержать слайсы кодированного изображения. В некоторых примерах декодирование блока доступа может привести к созданию декодированного изображения. Кодированное изображение может представлять собой кодированное представление изображения, используемого в процессе декодирования.
Как показано в Таблице 4, синтаксис заголовка слайса может включать в себя синтаксический элемент pic_parameter_set_id pic, синтаксический элемент pic_order_cnt_lsb, синтаксический элемент IdrPicFlag и синтаксический элемент idr_pic_id. Как показано в Таблице 8, синтаксис блока NAL может включать в себя синтаксический элемент nal_ref_idc.
В иллюстративных целях методики управления буфером DPB описываются здесь, исходя из перспективы применения гипотетического опорного декодера (HRD). Декодер HRD можно определить как модель гипотетического декодера, которая задает ограничения на изменяемость соответствующих потоков блоков NAL или соответствующих байтовых потоков, которые могут создаваться в процессе кодирования. Однако, в соответствии с раскрытыми здесь методиками видеодекодер 30 может реализовать методики управления буфером DPB, а в некоторых случаях методики управления буфером DPB также могут быть реализованы видеоэнкодером 20.
Модель HDR может определить буфер кодированных изображений (CPB), процесс мгновенного декодирования и буфер декодированных изображений (DPB). Буфер CPB может быть аналогичен буферу CPB моделей HDR, определенному в других предшествующих стандартах (то есть, в буфере CPB могут храниться кодированные изображения). Раскрытые здесь методики предназначены для операций буфера DPB, которые отличаются от операций в других стандартах. Опять же, следует понимать, что видеодекодер 30 и возможно видеоэнкодер 20 могут реализовать операции буфера DPB, как описано ниже.
В общем случае, раскрытые здесь методики относятся к выводу и удалению декодированных изображений в буфере DPB. В этом контексте вывод декодированного изображения означает вывод декодированного изображения с целью его отображения, запоминания или с другими целями. Однако декодированное изображение, которое выводится, не обязательно будет удалено из буфера DPB. Например, видеодекодер 30 может не удалять декодированное изображение, выводимое из буфера DPB, поскольку видеодекодеру 30 возможно не понадобиться использовать это декодированное изображение в качестве опорного изображения для межкадрового предсказания следующего изображения. Удаление декодированного изображения в этом контексте означает удаление декодированного изображения из буфера DPB.
Например, видеодекодер 30 может запомнить декодированные изображения в буфере DPB видеодекодера 30 в том порядке, в котором выполняется декодирование изображений. Однако, порядок декодирования этих изображений может не совпадать с порядком их вывода. Например, могут быть изображения, следующие за текущим изображением в порядке декодирования, которые необходимо вывести раньше текущее изображение. Соответственно, в некоторых примерах видеодекодер 30 может выполнить переупорядочивание, используя которое видеодекодер 30 переупорядочивает изображения в буфере DPB, которые упорядочены в порядке декодирования, формируя порядок вывода. Затем видеодекодер 30 может вывести декодированные изображения в порядке их вывода. Видеодекодер 30 может также удалить изображения из буфера декодированных изображении, если это изображение выводить нет необходимости (то есть, оно уже было выедено или оно не предназначено для вывода) и если с ним не надо выполнять межкадровое предсказание (то есть, его нет необходимости использовать в качестве опорного изображения для межкадрового предсказания).
В раскрытых здесь методиках видеодекодер 30 может удалить декодированное изображение из буфера DPB, если декодированное изображение было выведено или его не предполагалось выводить, и если декодированное изображение не идентифицировано в полученном наборе опорных изображений, что эквивалентно отсутствию необходимости межкадрового предсказания (то есть, больше нет необходимости его использования в качестве опорного изображения для межкадрового предсказания). Опять же, как было описано выше, набор опорных изображений может идентифицировать опорные изображения, которые можно потенциально использовать для межкадрового предсказания текущего изображения, и которые можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Согласно раскрытым здесь методикам, если декодированное изображение не идентифицировано в полученном наборе опорных изображений, то тогда это декодированное изображение может не понадобиться в качестве опорного изображения для межкадрового предсказания (например, декодирование) текущего изображения и одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Таким образом, указанное декодированное изображение можно удалить из буфера DPB, если нет необходимости вывода этого декодированного изображения, поскольку нет необходимости поддерживать указанное декодированное изображение в буфере DPB, при условии, что это декодированное изображение не будет использоваться для межкадрового предсказания.
Кроме того, в раскрытых здесь методиках видеодекодер 30 может удалить декодированное изображение до декодирования текущего изображения. Например, как было описано выше, видеодекодер 30 может получить набор опорных изображений и построить список (списки) опорных изображений до декодирования текущего изображения. Поскольку видеодекодер 30 может получить набор опорных изображений до декодирования текущего изображения, видеодекодер 30 может быть сконфигурирован для определения того, следует ли удалить декодированное изображение, которое нет необходимости выводить, до декодирования текущего изображения. Например, после получения набора опорных изображений и до декодирования текущего изображения видеодекодер 30 может определить, идентифицировано ли выведенное декодированное изображение или декодированное изображение, которое не предполагается выводить, в наборе опорных изображений. Затем, до декодирования текущего изображения видеодекодер может удалить декодированное изображение, которое не требуется выводить (то есть, уже выведенное или не предполагаемое для вывода), если декодированное изображение не идентифицировано в наборе опорных изображений.
В некоторых примерах видеодекодер 30 может удалить декодированное изображение до декодирования текущего изображения. Однако, видеодекодер 30 может удалить декодированное изображение после построения списка (списков) опорных изображений. Например, видеодекодер 30 может получить набор опорных изображений и может построить списки опорных изображений на основе набора опорных изображений. Затем до декодирования текущего изображения видеодекодер 30 может удалить декодированное изображение. В некоторых примерах видеодекодер 30 может также вывести декодированное изображение после построения списка (списков) опорных изображений.
Здесь описаны технологии удаления декодированных изображений в буфере DPB по меньшей мере согласно двум аспектам. Согласно первому аспекту, видеодекодер 30 может удалять декодированные изображения на основе времени вывода, если эти изображения предполагается выводить. Согласно второму аспекту, видеодекодер 30 может удалять декодированные изображения на основе значений POC, если эти изображения предполагается выводить. Согласно любому из этих аспектов, видеодекодер 30 может удалить декодированные изображения, которые не нуждаются в выводе (то есть, уже выведенные или не предполагаемые для вывода), когда декодированное изображение отсутствует в упомянутом наборе опорных изображений, и до декодирования текущего изображения.
Буфер DPB может включать в себя множество буферов, причем каждый такой буфер может хранить декодированное изображение, подлежащее использованию в качестве опорного изображения, или хранить для его вывода в будущем. Изначально буфер DPB пуст (то есть, наполнение буфера DPB устанавливают равным нулю). В описываемых примерных технологиях удаление декодированных изображений из буфера DPB может произойти перед декодированием текущего изображения, но после того, как видеодекодер 30 проанализирует заголовок первого слайса текущего изображения.
Согласно первому аспекту следующие методики могут быть реализованы сразу в момент tr(n) в следующей последовательности. В этом примере tr(n)- это время удаления из буфера CPB (то есть, время декодирования) блока n доступа, содержащего текущее изображение. Как здесь описано, мгновенная реализация упомянутых методик может означать, что в модели HDR, как предполагается, декодирование изображения происходит мгновенно (то есть, бесконечно быстро), другими словами временной период для декодирования изображения считается равным нулю.
Если текущим изображением является IDR изображение, и это IDR изображение не является первым IDR изображением, и значение pic_width_in_luma_samples или pic_height_in_luma_samples или max_dec_frame_buffering, полученное из активного набора параметров последовательности, отличается от значения pic_width_in_luma_samples или pic_height_in_luma_samples или max_dec_frame_buffering, полученного из набора параметров последовательности, который был активным для предшествующего изображения соответственно, видеодекодер 30 может заключить, что синтаксический элемент no_output_of_prior_pics_flag равен 1 независимо от действительного значения no_output_of_prior_pics_flag. Если текущим изображением является IDR изображение, и когда no_output_of_prior_pics_flag равен 1, или можно заключить, что он равен 1, видеодекодер 30 может очистить все буферы DPB без вывода изображений и может установить наполнение буфера DPB, равным 0.
Как было указано выше в Таблице 1, набор параметров последовательности может включать в себя синтаксические элементы pic_width_in_luma_samples и pic_height_in_luma_samples. Этот набор параметров последовательности также может включать в себя синтаксический элемент max_dec_frame_buffering.Как было указано выше в Таблице 4, синтаксис заголовка слайса может включать в себя синтаксический элемент no_output_of_prior_pics_flag.
Когда текущее изображение не является IDR изображением, видеодекодер 30 может удалить все изображения (m) в буфере DPB, для которых удовлетворяются следующие условия. Первое условие может состоять в том, что изображение не включено в набор опорных изображений текущего изображения. Второе условие может состоять в том, что данное изображение имеет OutputFlag, равный 0, или его время вывода из буфера DPB меньше или равно времени удаления из буфера CPB текущего изображения. В этом примере время удаления из буфера CPB равно tr(n), что относится к случаю выполнения процесса удаления (например, во время до декодирования текущего изображения). Время вывода из буфера DPB декодированного изображения m может быть определено переменной t0,dpb(m). Таким образом, время вывода из буфера DPB, будучи меньшим или равным времени удаления из буфера CPB, можно представить как t0,dpb(m)≤tr(n). Операция получения времени вывода из буфера DPB (t0,dpb) более подробно определена ниже.
Таким образом, видеодекодер 30 может удалить декодированные изображения из буфера DPB до декодирования изображения на основе времени вывода декодированного изображения, когда декодированное изображение не идентифицировано в наборе опорных изображений. При удалении декодированного изображения из буфера DPB видеодекодер 30 может увеличить на единицу наполнение буфера DPB.
Далее описывается, каким образом видеодекодер 30 может определить время для вывода декодированного изображения (например, время вывода из буфера DPB декодированного изображения), а также описывается, когда видеодекодер может запомнить декодированное изображение в буфере DPB. Как было описано выше, время вывода изображения из буфера DPB может быть решающим фактором для определений того, удалять ли данное изображение из буфера DPB.
Когда видеодекодер 30 декодирует изображение, он запоминает его в буфере DPB и увеличивает на единицу наполнение буфера DPB. Если это изображение имеет OutputFlag, равный 1, то видеодекодер 30 может получить время вывода из буфера DPB для данного изображения на основе следующего уравнения
t0,dpb(n)=tr(n)+tc*dpb_output_delay(n)
В этом уравнении задержка dpb_output_delay(n) может быть задана в сообщении SEI синхронизации изображения, связанном с блоком доступа, который включает в себя данное изображение. Сообщение SEI определено в некоторых стандартах, например, стандарте H.264/AVC.
Значение t0,dpb(n) позволяет определить, когда изображение должно быть выведено. Например, если OutputFlag равен 1, а t0,dpb(n) равно tr(n), видеодекодер 30 может вывести данное изображение. В противном случае, если OutputFlag равен 0, то видеодекодер 30 может не выводить данное изображение. В случаях, когда OutputFlag равен 1, и t0,dpb(n) больше tr(n), видеодекодер 30 может вывести данное изображение позже (например, в момент времени t0,dpb(n)).
В некоторых примерах, когда видеодекодер 30 выводит изображение, он может его обрезать. Например, видеодекодер 30 может использовать прямоугольник для обрезки, заданный в активном наборе параметров последовательности для данного изображения. Методики, используемые для обрезки изображения, общеизвестны и описаны в таких стандартах, как стандарт H.264/AVC.
В некоторых примерах видеодекодер 30 может определить разность между временем вывода из буфера DPB для одного изображения и временем вывода из буфера DPB для изображения, следующего за данным изображением в порядке вывода. Например, когда изображением (m) является изображение, которое выводится видеодекодером 30, и которое не является последним выводимым изображением битового потока, видеодекодер 30 может определить значение Δto,dPb(n) как:
Δto,dpb(n)=to,dpb(nn)-to,dpb(n)
В приведенном выше уравнении nn указывает изображение, следующее после изображения (n) в порядке вывода и имеет OutputFlag, равный 1. Также в приведенном выше уравнении Δto,dpb(n) представляет разность между временем вывода из DPB данного изображения и временем вывода из DPB следующего изображения в порядке вывода.
Согласно второму аспекту для удаления декодированных изображений HDR может реализовать указанные методики мгновенно, когда блок доступа удален из буфера CPB. Опять же, видеодекодер 30 может реализовать удаление декодированных изображений из буфера DPB, причем видеодекодер 30 не обязательно может включать в себя буфер CPB. В общем случае согласно изобретению удаление декодированных изображений выполняется видеодекодером 30, но также может выполняться видеоэнкодером 20. В этих примерах видеодекодер 30 и видеоэнкодер 20 не обязательно должны иметь буфер CPB. Скорее наоборот, буфер CPB описывается как часть модели HDR только в иллюстративных целях.
Как упоминалось выше согласно второму аспекту, касающемуся удаления декодированных изображений, видеодекодер 30 может удалять изображения из буфера DPB перед декодированием текущего изображения, но после анализа заголовка первого слайса текущего изображения. Также, по аналогии с первым аспектом, касающимся удаления декодированных изображений, согласно второму аспекту видеодекодер 30 может выполнять функции, аналогичные функциям, описанным выше в связи с первым аспектом, когда текущее изображение является IDR изображением.
В противном случае, если текущее изображение не является IDR изображением, видеодекодер 30 может очистить (без вывода) буферы DPB, в которых запоминается изображение, помеченное как «не нуждающееся в выводе», и запоминаются изображения, не включенные в набор опорных изображений текущего изображения. Видеодекодер 30 также может уменьшить наполнение буфера DPB на величину, равную количеству буферов, которое очистил видеодекодер 30. При отсутствии пустого буфера (то есть, наполнение буфера DPB равно размеру буфера DPB) видеодекодер 30 может реализовать процесс «выталкивания», описанный ниже. В некоторых примерах при отсутствии пустого буфера видеодекодер 30 может многократно реализовать процесс выталкивания, пока не появится пустой буфер, в котором видеодекодер 30 сможет запомнить текущее декодированное изображение.
Когда текущим изображением является IDR изображение, для которого no_output_of_prior_pics_flag не равен 1 или не считается равным 1, видеодекодер 30 может выполнить следующие операции. Видеодекодер 30 может очистить (без вывода) буферы DPB, в которых хранится изображение, помеченное как «не нуждающееся в выводе», и которое не включено в набор опорных изображений текущего изображения. Видеодекодер 30 может очистить все не пустые буферы в DPB путем многократной активации процесса «выталкивания», и может установить наполнение буфера DPB, равным 0.
Другими словами, когда текущее изображение является IDR изображением, видеодекодер 30 может реализовать методики для очистки всех буферов в DPB. Когда текущее изображение не является IDR изображением, видеодекодер 30 может реализовать методики для перемещения декодированных изображений в свободные буферы для запоминания текущего декодированного изображения.
Например, после декодирования текущего изображения видеодекодер 30 может запомнить это текущее изображение в буфере DPB и увеличить на единицу наполнение буфера DPB. В некоторых примерах, если OutputFlag текущего изображения равен 1, видеодекодер 30 может пометить текущее изображение как «нуждающееся в выводе». В противном случае, если OutputFlag текущего изображения равен 0, то видеодекодер 30 может пометить это текущее изображение как «не нуждающееся в выводе».
Как было описано выше, в некоторых примерах видеодекодер 30 может реализовать процесс выталкивания. В общем случая процесс выталкивания включает в себя вывод декодированных изображений. Например, видеодекодер 30 может реализовать процесс выталкивания, когда текущим изображением является IDR изображение, и no_output_of_prior_pics_flag не равен 1, и его не посчитали равным 1. Видеодекодер 30 может также реализовать процесс выталкивания, если в DPB нет пустого буфера (то есть, наполнение DPB равно размеру DPB), а для запоминания декодированного изображения (не являющегося IDR изображением) необходимо иметь пустой буфер.
В общем случае видеодекодер 30 для реализации процесса выталкивания может выполнить следующие шаги. Сначала видеодекодер 30 может определить изображение, подлежащее выводу. Например, видеодекодер 30 может выбрать изображение, у которого значение PicOrderCnt (POC) меньше, чем у всех изображений в буфере DPB, которые помечены как «нуждающиеся в выводе». Видеодекодер 30 может обрезать выбранное изображение, используя прямоугольник для обрезки, заданный в активном наборе параметров последовательности для данного изображения. Видеодекодер 30 может вывести обрезанное изображение и пометить его как «не нуждающееся в выводе». Видеодекодер 30 может проверить буфер в DPB, в котором запомнено это обрезанное и выведенное изображение. Если данное изображение не включено в набор опорных изображений, то видеодекодер 30 может очистить этот буфер и уменьшить на единицу наполнение буфера DPB.
Хотя вышеуказанные методики управления буфером DPB описаны в контексте видеодекодера 30, в некоторых случаях видеоэнкодер 20 может реализовать аналогичные методики. Однако видеоэнкодер 20, реализующий аналогичные методики, в каждом случае не требуется. В некоторых примерах видеодекодер 30 может реализовать эти методики, а видеоэнкодер 20 может этого не делать.
Таким образом, видеокодер (например, видеоэнкодер 20 или видеодекодер 30) может закодировать информацию, указывающую опорные изображения, относящиеся к набору опорных изображений. Опять же, набор опорных изображений может идентифицировать опорные изображения, которые можно потенциально использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Видеокодер может получить набор опорных изображений любым способом, включая приведенные в качестве примера методики, описанные выше. Видеокодер может определить, требуется ли вывод декодированного изображения, запомненного в буфере декодированных изображений, и идентифицировано ли оно в списке опорных изображений. Если декодированное изображение было выведено и не идентифицировано в списке опорных изображений, то видеокодер может удалить декодированное изображение из буфера декодированных изображений. Вслед за удалением декодированного изображения видеокодер может закодировать текущее изображение. Например, видеокодер может построить список (списки) опорных изображений, как было описано выше, и закодировать текущее изображение на основе списка (списков) опорных изображений.
В предыдущих примерах описаны методики, которые может использовать видеоэнкодер 20 и видеодекодер 30 для получения набора опорных изображений, построения списков опорных изображений из списков опорных изображений, когда модификация не требуется, и когда модификация необходима, а также методики для управления буфером декодированных изображений (DPB). Однако аспекты настоящего изобретения этим не ограничены. В некоторых примерах раскрытые здесь методики могут относиться к тому, каким образом видеоэнкодер 20 сигнализирует о том, какие изображения, относящиеся к набору опорных изображений, являются долгосрочными опорными изображениями (или, другими словами, какое изображение относится к набору долгосрочных опорных изображений) и каким образом видеодекодер 30 определяет, какое изображение относится к набору долгосрочных опорных изображений.
Например, Таблица 2 включает в себя синтаксические элементы [num_long_term_ref_pics_pps, и long_term_ref_pic_id_pps[i], являющиеся частью набора параметров изображения. Однако аспекты настоящего изобретения этим не ограничены. В некоторых других примерах набор параметров последовательности (например, Таблица 1) может включать в себя синтаксические элементы num_long_term_ref_pics_pps и long_term_ref_pic_id_pps[i]. В примерах, где набор параметров последовательности включает в себя эти синтаксические элементы, данное описание может относиться к синтаксическим элементам num_long_term_ref_pics_sps и long_term_ref_pic_id_sps[i] во избежание путаницы. В иллюстративных целях эти методики описаны на примерах, где набор параметров последовательности включает в себя указанные синтаксические элементы.
По аналогии с определением num_long_term_ref_pics_pps, синтаксический элемент num_long_term_ref_pics_sps может задавать количество возможных долгосрочных опорных изображений, которые включены в набор параметров последовательности. Значение num_long_term_ref_pics_sps может находиться в диапазоне от 0 до 32 включительно. По аналогии с определением синтаксического элемента long_term_ref_pic_id_pps[i] синтаксический элемент long_term_ref_pic_id_sps[i] может задать идентификационную информацию i-го долгосрочного опорного изображения, включенного в набор параметров последовательности.
В некоторых примерах синтаксический элемент long_term_ref_pic_id_sps[i] может указывать возможные долгосрочные опорные изображения, относящиеся к набору опорных изображений текущего изображения. Возможные долгосрочные опорные изображения - это одно или несколько возможных долгосрочных опорных изображений, которые может использовать видеодекодер 30 для межкадрового предсказания текущего изображения или одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Другими словами, возможные долгосрочные опорные изображения могут указывать изображения, являющиеся долгосрочными опорными изображениями, которые можно использовать для межкадрового предсказания текущего изображения и использовать для межкадрового предсказания одного или нескольких изображений следующих за текущим изображением в порядке декодирования. В некоторых примерах синтаксический элемент long_term_ref_pic_id_sps[i] может включать в себя значения POC для возможных долгосрочных опорных изображений.
Однако для межкадрового предсказания не обязательно использовать все возможные долгосрочные опорные изображения. Например, не все возможные долгосрочные опорные изображения относятся к набору опорных изображений текущего изображения. Скорее наоборот, к набору опорных изображений относятся нуль, либо несколько возможных долгосрочных опорных изображений.
В методиках, раскрытых в этом описании, видеоэнкодер 20 может передать в качестве сигнализации синтаксический элемент long_term_ref_pic_id в наборе параметров (например, синтаксический элемент long_term_ref_pic_id_sps в наборе параметров последовательности или синтаксический элемент long_term_ref_pic_id_pps в наборе параметров изображения. Видеодекодер 30 может принять синтаксический элемент long_term_ref_pic_id и идентифицировать возможные долгосрочные опорные изображения. Согласно раскрытым здесь методикам видеодекодер 30 кроме того может определить, какие изображения из числа возможных долгосрочных опорных изображений относятся к набору опорных изображений. Например, видеодекодер 30 может быть сконфигурирован для выполнения указанного определения на основе дополнительных синтаксических элементов, преданных видеоэнкодером 20 в качестве сигнализации в кодированном битовом потоке.
Как указано в Таблице 4, видеоэнкодер 20 может в качестве сигнализации передать синтаксическую структуру long_term_ref_pic_set() в заголовке слайса текущего изображения. Синтаксическая структура long_term_ref_pic_set() описана в Таблице 5. Например, синтаксическая структура long_term_ref_pic_set() может включать в себя синтаксические элементы num_long_term_pps_curr и num_long_term_pps_foll. Опять же следует заметить, что, хотя синтаксические элементы num_long_term_pps_curr и num_long_term_pps_foll определены как количество долгосрочных опорных изображений, включенных в набор параметров изображения, в тех примерах, где возможные долгосрочные опорные изображения включены в набор параметров последовательности, эти синтаксические элементы могут определять количество возможных долгосрочных опорных изображений, включенных в набор параметров последовательности. Например, во избежание путаницы синтаксический элемент num_long_term_pps_curr может называться синтаксическим элементом num_long_term_sps_curr, а синтаксический элемент num_long_term_pps_foll может называться синтаксическим элементом num_long_term_sps_curr.
По аналогии с синтаксическим элементом num_long_term_pps_curr синтаксический элемент num_long_term_sps_curr может определять количество всех долгосрочных опорных изображений, чья идентификационная информация включена в упомянутый набор параметров последовательности, в качестве возможных долгосрочных опорных изображений, и которые можно использовать для межкадрового предсказания текущего изображения и одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. По аналогии с синтаксическим элементом num_long_term_pps_foll синтаксический элемент num_long_term_sps_foll может определять количество всех долгосрочных опорных изображений, чья идентификационная информация включена в набор параметров последовательности, в качестве возможных долгосрочных опорных изображений, которые не используют для межкадрового предсказания текущего изображения, но которые можно использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Также синтаксическая структура long_term_ref_pic_set(), переданная в заголовке слайса, может включать в себя синтаксический элемент long_term_ref_pic_set_idx_pps[i]. Опять же, в примерах, где возможные долгосрочные опорные изображения передаются в качестве сигнализации в наборе параметров последовательности, можно считать, что синтаксический элемент long_term_ref_pic_set_idx_pps[i] соответствует синтаксическому элементу long_term_ref_pic_set_idx_sps[i]. По аналогии с синтаксическим элементом long_term_ref_pic_set_idx_pps[i] синтаксический элемент long_term_ref_pic_set_idx_sps[i] может определять индекс (для идентифицирующей информации списка возможных долгосрочных опорных изображений, включенной в упомянутый набор параметров последовательности) для i-го долгосрочного опорного изображения, заимствованного из набора параметров опорного изображения, для набора опорных изображений текущего изображения. Другими словами, синтаксический элемент long_term_ref_pic_set_idx_sps[i] может идентифицировать индекс в списке возможных долгосрочных опорных изображений в наборе параметров последовательности. Исходя из этого индекса, видеодекодер 30 может идентифицировать долгосрочное опорное изображение в возможных долгосрочных опорных изображениях и может определить идентифицированные долгосрочные опорные изображения, относящиеся к набору опорных изображений текущего изображения.
Например, видеодекодер 30 может реализовать следующий псевдокод, аналогичный псевдокоду в Таблице 5, для определения того, какие из возможных долгосрочных опорных изображений относятся к набору опорных изображений текущего изображения.
Figure 00000016
Таким образом, видеодекодер 30 может декодировать синтаксические элементы, указывающие возможные долгосрочные опорные изображения, которые идентифицированы в наборе параметров. Например, если набор параметров является набором параметров последовательности, то видеодекодер 30 может декодировать синтаксические элементы long_term_ref_pic_id_sps[i], которые указывают возможные долгосрочные опорные изображения, идентифицированные в наборе параметров последовательности. Если набор параметров является набором параметров изображения, то видеодекодер 30 может декодировать синтаксические элементы long_term_ref_pic_id_pps[i], которые указывают долгосрочные опорные изображения, идентифицированные в наборе параметров изображения.
Видеодекодер 30 может также декодировать синтаксические элементы, которые указывают, какие возможные долгосрочные опорные изображения, идентифицированные в наборе параметров, относятся к набору опорных изображений текущего изображения. Например, если набором параметров является набор параметров последовательности, то видеодекодер 30 может декодировать синтаксические элементы num_long_term_sps_curr, num_long_term_sps_foll и long_term_ref_pic_set_idx_sps[i], а, если набором параметров является набор параметров изображения, то видеодекодер 30 может декодировать синтаксические элементы num_long_term_pps_curr, num_long_term_pps_foll и long_term_ref_pic_set_idx_pps[i]. В любом случае видеодекодер 30 может декодировать эти синтаксические элементы из заголовка слайса текущего изображения.
Согласно раскрытым здесь методикам синтаксические элементы long_term_ref_pic_id_sps[i] long_term_ref_pic_id_pps[i] могут рассматриваться в качестве списка значений счетчика очередности изображений (POC) для возможных долгосрочных опорных изображений, относящихся к набору опорных изображений, и могут быть закодированы (то есть, энкодированы или декодированы) как часть набора параметров (например, набора параметров изображения и набора параметров последовательности). Синтаксический элемент long_term_ref_pic_set_idx_sps[i] или long_term_ref_pic_set_idx_pps[i] можно рассматривать в качестве элемента, обеспечивающего значение индекса для списка значений POC для возможных долгосрочных опорных изображений (например, индекс для long_term_ref_pic_id_sps[i] или long_term_ref_pic_id_pps[i]). В некоторых примерах синтаксический элемент long_term_ref_pic_set_idx_sps[i] или long_term_ref_pic_set_idx_pps[i] может кодироваться как часть заголовка слайса текущего изображения.
Выше было описано, каким образом видеоэнкодер 20 и видеодекодер 30 могут соответственно энкодировать или декодировать синтаксические элементы, указывающие, какие изображения относятся к набору долгосрочных опорных изображений текущего изображения. Исходя из этих синтаксических элементов, видеодекодер 30 или видеоэнкодер 20 может определить, какие изображения относятся к набору долгосрочных опорных изображений текущего изображения. После того как видеодекодер 30 и видеоэнкодер 20 определили, какие изображения относятся к набору долгосрочных опорных изображений, видеоэнкодер 20 и видеодекодер 30 могут построить по меньшей мере один поднабор опорных изображений из множества поднаборов опорных изображений и получить набор опорных изображений вышеописанным образом. Например, на основе определения того, какие изображения относятся к упомянутому набору долгосрочных опорных изображений, видеоэнкодер 20 и видеодекодер 30 могут построить поднабор RefPicSetLtCurr опорных изображений, который видеоэнкодер 20 и видеодекодер 30 используют для получения набора опорных изображений.
В некоторых примерах возможно наличие изображений, относящихся к набору долгосрочных опорных изображений, которые не включены в число возможных долгосрочных опорных изображений. Соответственно, возможны дополнительные способы того, каким образом видеоэнкодер 20 и видеодекодер 30 могут определять, какие изображения относятся к набору долгосрочных опорных изображений текущего изображения.
Например, как показано в Таблице 5, синтаксическая структура long_term_ref_pic_set() заголовка слайса включает в себя синтаксический элемент long_term_ref_pic_id_delta_add[i]. Этот синтаксический элемент может задавать идентификацию долгосрочного опорного изображения, например, в виде значений POC i-го долгосрочного опорного изображения, полученного не из набора параметров опорного изображения, но включенного в набор опорных изображений текущего изображения. Опять же в примерах, где возможные долгосрочные опорные изображения идентифицированы в наборе параметров последовательности, синтаксический элемент long_term_ref_pic_id_delta_add[i] может задать идентификацию долгосрочного опорного изображения i-го долгосрочного опорного изображения, не полученного из набора параметров последовательности, но включенного в набор опорных изображений текущего изображения.
Другими словами, синтаксический элемент long_term_ref_pic_id_pps[i] или long_term_ref_pic_id_sps[i] может идентифицировать возможные долгосрочные опорные изображения, но не обязательно идентифицировать все долгосрочные опорные изображения в наборе опорных изображений текущего изображения. Например, возможно наличие долгосрочных опорных изображений, которые должны использоваться для межкадрового предсказания текущего изображения и одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, которые не включены в список возможных долгосрочных опорных изображений. Для указанных долгосрочных опорных изображений видеоэнкодер 20 и видеодекодер 30 могут соответственно энкодировать или декодировать идентификационную информацию, которая идентифицирует долгосрочные опорные изображения, относящиеся к набору опорных изображений текущего изображения.
Например, как показано в Таблице 5, видеоэнкодер 20 и видеодекодер 30 могут соответственно знкодировать или декодировать синтаксические элементы num_long_term_add_curr и num_long_term_add_foll. Синтаксический элемент num_long_term_add_curr может определить количество всех долгосрочных опорных изображений, чья идентификационная информация не включена в упомянутый набор параметров изображения или набор параметров последовательности (когда они применяются), и которые можно использовать для межкадрового предсказания текущего изображения и одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Синтаксический элемент num_long_term_add_foll может определять количество всех долгосрочных опорных изображений, чья идентификационная информация не включена в упомянутый набор параметров изображения или упомянутый набор параметров последовательности (когда они применяются), которые нельзя использовать для межкадрового предсказания текущего изображения, но которые можно использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Видеодекодер 30 может реализовать следующий псевдокод для определения того, какие долгосрочные опорные изображения относятся к набору опорных изображений. В этом примере долгосрочные опорные изображения могут не входить в возможные долгосрочные опорные изображения.
Figure 00000017
Как было описано выше, методики, описанные в этом изобретении, могут выполняться в соответствии со стандартом HEVC. Далее для лучшего понимания следует краткое описание стандарта HEVC. Кроме того, хотя предложенные методики описаны в контексте стандарта HEVC, их можно распространить на другие стандарты, включая традиционные стандарты.
Стандарт JCT-VC действует на основе развития стандарта HEVC. Работы по стандартизации (HEVC) основаны на развитой модели устройства видеокодирования, называемой тестовой моделью HEVC (HM). Модель HM предполагает несколько дополнительных возможностей для устройств видеокодирования по сравнению с существующими устройствами, например, согласно стандарту ITU-T H.264/AVC. Например, в то время как стандарт H.264 обеспечивает девять режимов кодирования с внутрикадровым предсказанием, модель HM может обеспечить до 33 режимов кодирования с внутрикадровым предсказанием.
В общем случае рабочая модель HM описывает, каким образом можно разделить видеокадр или видеоизображение на последовательность древовидных блоков или максимальных по размеру блоков (LCU) кодирования, которые включают в себя как отсчеты яркости, так и отсчеты цветности. Назначение древовидного блока такое же, как у макроблока согласно стандарту H.264. Слайс включает в себя несколько последовательных древовидных блоков в порядке декодирования. Видеокадр или видеоизображение можно разбить на один или несколько слайсов. Каждый древовидный блок можно разделить на блоки (CU) кодирования согласно квадродереву. Например, древовидный блок в виде корневого узла квадродерева можно разделить на четыре дочерних узла, а каждый дочерний узел, в свою очередь, может быть родительским узлом и может быть расщеплен на четыре других дочерних узла. Конечный нерасщепленный дочерний узел как краевой узел квадродерева содержит узел кодирования, то есть, кодированный видеоблок. Синтаксические данные, связанные с кодированным битовым потоком, могут определять максимальное количество возможных разделений древовидного блока, а также могут определять минимальный размер кодированных блоков. Древовидные блоки в некоторых примерах могут называться блоками LCU.
Блок CU включает в себя кодовый узел, а также блоки предсказания (PU) и блоки преобразования (TU), связанные с кодовым узлом. Размер блока CU соответствует размеру кодового узла и должен иметь квадратную форму. Размер блока CU может находиться в диапазоне от 8×8 пикселей до размера древовидного блока, содержащего максимум 64×64 пикселя или более. Каждый блок CU может содержать один или несколько блоков PU и один или несколько блоков TU. Синтаксические данные, связанные с блоком CU, могут описывать, например, разбиение блока CU на один или несколько блоков PU. Режимы разбиения могут отличаться в зависимости от того, закодирован ли блок CU в режиме прямого кодирования, в режиме внутрикадрового предсказания или в режиме межкадрового предсказания. Блоки PU могут быть разбиты на блоки не квадратной формы. Синтаксические данные, связанные с блоком CU, также могут описывать, например, разбиение блока CU на один или несколько блоков CU согласно квадродереву. Блок TU может иметь форму квадрата или иную форму.
Стандарт HEVC позволяет осуществлять преобразования в соответствии с блоками TU, которые могут быть разными для разных блоков CU. Размеры блоков TU, как правило, устанавливают на основе размера блоков PU в данном блоке CU, определенном для разделенного блока LCU, хотя это может быть не всегда. Блоки TU, как правило, имеют тот же или меньший размер, чем блоки PU. В некоторых примерах, остаточные отсчеты, соответствующие блоку CU, могут быть дополнительно разделены на меньшие блоки с использованием структуры квадродерева, известной как «остаточное квадродерево» (RQT). Краевые узлы RQT могут называться блоками преобразования (TU). Значения пиксельной разности, связанные с блоками TU, можно преобразовать для создания коэффициентов преобразования, которые можно подвергнуть квантованию.
В общем случае блок PU включает в себя данные, относящиеся к процессу предсказания. Например, когда блок PU закодирован в режиме внутрикадрового предсказания, блок PU может включать в себя данные, описывающие режим внутрикадрового предсказания для данного блока PU. В другом примере, когда блок PU закодирован в режиме межкадрового предсказания, блок PU может включать в себя данные, определяющие вектор движения для блока PU. Данные, определяющие вектор движения для блока PU, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешающую способность для вектора движения (например, точность в четверть пикселя или точность в одну восьмую пикселя), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, список 0, список 1 или список С) для данного вектора движения.
В общем случае блок TU используют для процессов преобразования и квантования. Данный блок CU, имеющий один или несколько блоков PU, также может включать в себя один или несколько блоков преобразования (TU). После предсказания видеоэнкодер 20 может вычислить остаточные значения, соответствующие блоку PU. Остаточные значения содержат значения пиксельной разности, которые можно преобразовать в коэффициенты преобразования, квантовать и сканировать с использованием блоков TU для создания сериализированных коэффициентов преобразования для энтропийного кодирования. В настоящем описании, как правило, используется термин «видеоблок» для обращения к кодовому узлу блока CU. В некоторых особых случаях в настоящем описании также может использоваться термин «видеоблок» для обращения к древовидному блоку, то есть, блоку LCU или блоку CU, который включает в себя кодовый узел и блоки PU и блоки TU.
Видеопоследовательность, как правило, включает в себя ряд видеокадров или видеоизображений. Группа изображений (GOP) обычно содержит ряд, состоящий из одного или нескольких видеоизображений. Группа GOP может включать в себя синтаксические данные в заголовке группы GOP, заголовок одного или нескольких изображений или, в противном случае, описывает количество изображений, включенных в группу GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим кодирования для соответствующего слайса. Видеоэнкодер 20, как правило, работает с видеоблоками внутри отдельных видеослайсов, чтобы кодировать видеоданные. Видеоблок может соответствовать кодовому узлу в блоке CU. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру в зависимости от конкретного стандарта кодирования.
В качестве примера, модель HM поддерживает предсказание с различными размерами блока PU. Положим, что размер конкретного блока CU составляет 2Nx2N, и тогда модель HM поддерживает внутрикадровое предсказание с размерами блока PU, составляющими 2Nx2N или NxN, и межкадровое предсказание с симметричными размерами блока PU, составляющими 2Nx2N, 2NxN, Nx2N или NxN. Модель HM также поддерживает асимметричное разбиение для межкадрового предсказания с размерами блока PU, составляющими 2NxnU, 2NxnD, nLx2N и nRx2N. При асимметричном разбиении в одном направлении блок CU не подлежит разбиению, в то время как в другом направлении выполняется разбиение на части, составляющие 25% и 75%. Часть блока CU, соответствующая 25% участку, обозначена как «n», за которой следует обозначение «Вверх», «Вниз», «Влево», или «Вправо». Таким образом, например, «2NxnU» относится к блоку CU размером 2Nx2N, который разбит по горизонтали на блок PU размером 2Nx0,5N наверху и блок PU размером 2Nx1,5N внизу.
В этом описании записи «NxN» и «N на N» могут использоваться как взаимозаменяемые, для обращения к размерам видеоблока в пикселях по вертикали и горизонтали, например, 16×16 пикселей или 16 на 16 пикселей. В общем случае блок размером 16×16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогичным образом, блок размером NxN в общем случае имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет не отрицательное целое число. Пиксели в блоке могут быть скомпонованы по строкам и столбцам. Кроме того, блоки не обязательно должны иметь одинаковое количество пикселей в горизонтальном и вертикальном направлениях. Например, блоки могут содержать NxM пикселей, где M не обязательно равно N.
После кодирования с внутрикадровым или межкадровым предсказанием с использованием блоков PU блока CU видеоэнкодер 20 может вычислить остаточные данные для блоков TU блока CU. Блоки PU могут содержать пиксельные данные в пространственной области (называемой также пиксельной областью), а блоки TU могут содержать коэффициенты в области преобразования после применения преобразования, например, дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлетного преобразования или концептуально подобного преобразования к остаточным видеоданным. Остаточные данные могут соответствовать разностям между пикселями некодированного изображения и значениями предсказания, соответствующими блокам PU. Видеоэнкодер 20 может сформировать блоки TU, включающие в себя остаточные данные для блока CU, а затем преобразовать эти блоки TU для создания коэффициентов преобразования для блока CU.
После любого преобразования для создания коэффициентов преобразования видеоэнкодер 20 может выполнить квантование коэффициентов преобразования. Квантование в общем случае относится к процессу, в ходе которого выполняется квантование коэффициентов преобразования с целью возможного сокращения объема данных, используемых для представления указанных коэффициентов, что обеспечивает дополнительное сжатие. Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми упомянутыми коэффициентами. Например, n-битовое значение можно округлить в меньшую сторону, получив m-битовое значение во время квантования, где n больше, чем m.
В некоторых примерах видеоэнкодер 20 может использовать заранее определенный порядок сканирования для сканирования квантованных коэффициентов преобразования, чтобы получить сериализированный вектор, который можно закодировать с использованием энтропийного кодирования. В других примерах видеоэнкодер 20 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования одномерного вектора видеоэнкодер 20 может закодировать этот одномерный вектор, используя энтропийное энкодирование, например, в соответствии с контекстно-зависимым адаптивным кодированием с переменной длиной слова (CAVLC), контекстно-адаптивным бинарным арифметическим кодированием (CABAC), синтаксически ориентированным адаптивным бинарным арифметическим кодированием (SBAC), вероятностное энтропийное кодирование с интервальным разбиением (PIPE), или другим методом энтропийного кодирования. Видеоэнкодер 20 может также, используя энтропийное кодирование, энкодировать синтаксические элементы, связанные с энкодированными видеоданными, для использования видеодекодером 30 при декодировании видеоданных.
Для выполнения кодирования CABAC видеоэнкодер 20 может присвоить контекст в контекстной модели для символа, подлежащего передаче. Этот контекст может относиться, например, к тому, являются ли соседние значения символа ненулевыми. Для выполнения кодирования CAVLC видеоэнкодер 20 может выбрать код переменной длины для символа, подлежащего передаче. Кодовые слова в VLC могут быть построены так, чтобы относительно более короткие коды соответствовали более вероятным символам, в то время как более длинные коды соответствовали менее вероятным символам. Таким образом, использование кодирования VLC может обеспечить экономное использование бит, например, путем использования кодовых слов одинаковой длины для каждого символа, подлежащего передаче. Определение вероятности может быть основано на контексте, присвоенном данному символу.
На фиг. 2 представлена концептуальная схема, иллюстрирующая примерную видеопоследовательность 33, которая включает в себя множество энкодируемых и передаваемых изображений. В некоторых случаях видеопоследовательность 33 может называться группой изображений (GOP). Видеопоследовательность 33, как здесь показано, включает в себя изображения 35A, 36A, 38A, 35B, 36B, 38B и 35C и конечное изображение 39 в порядке отображения. Изображение 34 является конечным изображением в порядке отображения для последовательности, появившейся перед последовательностью 33. На фиг. 2 в общем виде представлена примерная структура предсказания для видеопоследовательности, которая приведена только для иллюстрации опорных изображений, используемых для предсказания видеоблоков других типов слайсов или изображений (например, изображение или слайс P типа или изображение или слайс В типа). Действительная видеопоследовательность может содержать больше или меньше видеоизображений разных типов и в другом порядке отображения. Видеопоследовательность 33 может включать в себя больше или меньше изображений, чем показано на фиг. 2, причем изображения, показанные в видеопоследовательности 33, приведены здесь в целях обеспечения более полного понимания и в качестве примеров.
Для видеокодирования на блочной основе каждое из видеоизображений, включенных в последовательность 33, может быть разбита на видеоблоки, такие как блоки кодирования (CU) или блоки предсказания (PU). Например, каждый блок CU видеоизображения может включать в себя один или множество блоков PU. Видеоблоки в изображении с внутрикадровым кодированием (I) подвергаются операции предсказания с использованием пространственного предсказания в отношении соседних блоков в этом же изображении. Видеоблоки в изображении с межкадровым кодированием (типа P или B) могут использовать пространственное предсказание в отношении соседних блоков в том же изображении или временное предсказание в отношении других опорных изображений.
Видеоблоки в B изображении можно предсказать, используя двунаправленное предсказание для вычисления двух векторов движения, исходя из двух разных списков опорных изображений (например, исходя из списка 0 и списка 1). В некоторых случаях видеоблоки в B изображении можно предсказать, используя однонаправленное предсказание, исходя из одного из двух разных списков опорных изображений (например, исходя из однонаправленного предсказания с B-кодированием). Видеоблоки в P изображении можно предсказать, используя однонаправленное предсказание для вычисления одного вектора движения, исходя из одного списка опорных изображений. Согласно перспективному стандарту HEVC видеоблоки можно энкодировать, используя однонаправленное предсказание для вычисления одного вектора движения, исходя из одного из двух списков опорных изображений, или двунаправленное предсказание для вычисления двух векторов движения, исходя из двух списков опорных изображений. Эти два списка опорных изображений могут содержать прошлые опорные изображения или будущие опорные изображения, либо как прошлые, так и будущие опорные изображения в порядке отображения или вывода, но прошлые опорные изображения всегда в порядке декодирования.
В примере на фиг. 2 конечное изображение 39 предусмотрено для кодирования во внутрикадровом режиме как I изображение. В других примерах конечное изображение 39 может кодироваться с использованием кодирования в межкадровом режиме (например, как для P изображения) с обращением к конечному изображению 34 предшествующей последовательности, которое может быть I изображением. Видеоизображения 35А-35С (называемые вместе «видеоизображения 35») энкодируются как B изображение, используя двунаправленное предсказание с обращением к одному прошлому изображению и одному будущему изображению. В показанном здесь примере изображение 35А энкодируется как B изображение с обращением к конечному изображению 34 и изображению 36А как показано стрелками, идущими от изображений 34 и 36А к видеоизображению 35А. Изображения 35В и 35С энкодируются аналогичным образом.
Видеоизображения 36А-36В (называемые вместе «видеоизображения 36») могут быть предусмотрены для кодирования в качестве изображений с использованием однонаправленного предсказания с обращением к прошлому изображению. В показанном здесь примере изображение 36А энкодируют как P изображение с обращением к конечному изображению 34 как показано стрелкой, идущей от изображения 34 к видеоизображению 35А. Изображение 36В энкодируют аналогичным образом.
Видеоизображения 38А-38В (называемые вместе «видеоизображениями 38») могут быть предназначены для кодирования с использованием двунаправленного предсказания с обращением к одному и тому же прошлому изображению. В других примерах видеоизображения 38 можно энкодировать, используя двунаправленное предсказание с обращением к фактически подобным прошлым изображениям, включенным в списки опорных изображений. В показанном здесь примере изображение 38А энкодируют с использованием двух обращений к изображению 36А, как показано двумя стрелками от изображения 36А к видеоизображению 38А. Изображение 38В энкодируют аналогичным образом.
Согласно раскрытым здесь методикам видеоэнкодер 20 может в качестве сигнализации передать набор опорных изображений для каждого из изображений в последовательности 33. Например, для изображения 35А этот набор опорных изображений может идентифицировать все опорные изображения, которые могут быть использованы для межкадрового предсказания изображения 35А, а также все опорные изображения, которые можно потенциально использовать для межкадрового предсказания изображений, следующих за изображением 35А в порядке декодирования. Например, набор опорных изображений для изображения 35А может включать в себя значение POC для изображения 34 и изображения 36А, а также значения POC для дополнительных опорных изображений, например, опорных изображений, которые можно потенциально использовать для межкадрового предсказания изображений, следующих за изображением 35А в порядке декодирования. В этом примере изображениями, следующими за изображением 35А, могут быть те изображения, которые следуют за изображением 35А в порядке декодирования и которые входят в видеопоследовательность 33.
Затем видеодекодер 30 может получить набор опорных изображений для изображения 35А вышеописанным путем. Например, видеодекодер 30 может определить значения POC для опорных изображений, относящихся к упомянутому набору опорных изображений, как это было описано выше. Далее видеодекодер 30 может построить по меньшей мере четыре или по меньшей мере пять поднаборов опорных изображений, а в некоторых случаях до шести поднаборов опорных изображений, описанных выше. Видеодекодер 30 может скомпоновать эти шесть поднаборов опорных изображений в определенном порядке, чтобы получить набор опорных изображений для изображения 35А.
Видеодекодер 30 может кроме того построить начальные списки опорных изображений вышеописанным образом, для которых не требуется переупорядочивание изображений, включаемых в начальные списки опорных изображений. Когда модификация списка опорных изображений не разрешена, видеодекодер 30 может установить конечные списки опорных изображений, совпадающими с начальными списками опорных изображений. Также видеодекодер 30 может построить списки опорных изображений указанным образом, в которых будут отсутствовать незавершенные записи. Например, видеодекодер 30 может многократно вносить в список опорные изображения из поднаборов опорных изображений, пока количество записей в списках опорных изображений не станет равным максимальному количеству записей, допустимому для списков опорных изображений. В некоторых примерах видеодекодер 30 может модифицировать начальные списки опорных изображений вышеописанным образом (например, на основе опорных изображений по меньшей мере в одном из построенных поднаборов опорных изображений). Кроме того, в некоторых примерах видеодекодер 30 может удалить декодированные изображения из буфера DPB видеодекодера 30, используя раскрытые здесь методики, например, удалить декодированные изображения, которые не идентифицированы в наборе опорных изображений текущего изображения, подлежащего декодированию, и вывод которых не требуется. Также в некоторых примерах видеодекодер 30 может определить, какие долгосрочные опорные изображения относятся к набору опорных изображений, вышеописанным образом, где идентификационная информация списка возможных долгосрочных опорных изображений может быть включена в набор параметров.
На фиг. 3 представлена блок-схема, иллюстрирующая приведенный в качестве примера видеоэнкодер 20, который способен реализовать раскрытые здесь методики. Видеоэнкодер 20 может выполнять внутрикадровое и межкадровое кодирование видеоблоков в видеослайсах. Внутрикадровое кодирование основано на пространственном предсказании для уменьшения или устранения пространственной избыточности видеоданных в данном видеокадре или изображении. Межкадровое кодирование основано на временном предсказании для уменьшения или устранения временной избыточности видеоданных в соседних кадрах или изображениях видеопоследовательности. Внутрикадровый режим (I режим) может относиться к любому из нескольких режимов сжатия на пространственной основе. Межкадровые режимы, такие как однонаправленное предсказание (P режим) или двунаправленное предсказание (B режим) может относиться к любому из нескольких режимов сжатия на временной основе.
В примере, показанном на фиг. 3, видеоэнкодер 20 включает в себя блок 35 разбиения, модуль 41 предсказания, буфер 64 декодированных изображений (DPB), сумматор 50, модуль 52 преобразования, блок 54 квантования и блок 56 энтропийного кодирования. Модуль 41 предсказания включает в себя блок 42 оценки движения, блок 44 компенсации движения и модуль 46 внутрикадрового предсказания. Для восстановления видеоблока видеоэнкодер 20 также включает в себя блок 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. В состав блока фильтров также может быть включен фильтр для удаления «блочности» (на фиг. 3 не показан) для удаления артефактов блочности из восстановленного видео. По желанию, фильтр для удаления блочности может просто фильтровать выход сумматора 62. Вдобавок к фильтру удаления блочности также могут быть использованы дополнительные контурные фильтры (в контуре или в пост-контуре).
Как показано на фиг. 3, видеоэнкодер 20 принимает видеоданные, а блок 35 разбиения разбивает эти данные на видеоблоки. Это разбиение также может включать в себя разбиение на слайсы, тайлы или другие более крупные единицы, а также разбиение самого видеоблока, например, согласно структуре квадродерева из блоков LCU и CU. Видеоэнкодер 20 в общем случае содержит компоненты, которые выполняют энкодирование видеоблоков в видеослайсе, подлежащем кодированию. Слайс может быть разделен на множество видеоблоков (а возможно и на наборы видеоблоков, называемые здесь «тайлами»). Модуль 41 предсказания может выбрать один из множества возможных режимов кодирования, например, один из множества режимов внутрикадрового кодирвоания или один из множества режимов межкадрового кодирования для текущего видеоблока на основе результатов, полученных с ошибкой (например, скорость кодирования и уровень искажения). Модуль 41 предсказания может подать результирующий блок, закодированный с использованием внутрикадрового или межкадрового предсказания, на сумматор 50 для создания остаточных блочных данных, а также на сумматор 62 для восстановления кодированного блока с целью его использования в качестве опорного изображения.
Модуль 46 внутриркадрового предсказания, входящий в модуль 41 предсказания, может выполнить кодирование с внутрикадровым предсказанием текущего видеоблока относительно одного или нескольких соседних блоков в одном и том же изображении или слайсе, как текущего блока, подлежащего кодированию, для обеспечения пространственного сжатия. Блок 42 оценки движения и блок 44 компенсации движения в модуле 41 предсказания выполняют кодирование с межкадровым предсказанием текущего видеоблока относительно одного или нескольких предсказанных блоков в одном или нескольких опорных изображениях для обеспечения временного сжатия.
Блок 42 оценки движения может быть сконфигурирован для определения режима межкадрового предсказания для видеослайса согласно заранее определенному шаблону для видеопоследовательности. Этот заранее определенный шаблон может указать видеослайсы в последовательности как P слайсы или B слайсы. Блок 42 оценки движения и блок 44 компенсации движения могут быть реализованы в интегральном исполнении, но они показаны отдельно, исходя из концептуальных целей. Оценка движения, выполняемая блоком 42 оценки движения, представляет собой процесс создания векторов движения, которые оценивают движение для видеоблоков. Например, вектор движения может указывать смещение PU видеоблока в текущем видеоизображении по отношению к предсказанному блоку в опорном изображении.
Предсказанный блок - это блок, который, как это установлено, достаточно точно соответствует блоку PU видеоблока, подлежащего кодированию, с точки зрения пиксельной разности, которую можно определить как сумму абсолютных значений разности (SAD), сумму квадратов разностей (SSD) или другими разностными показателями. В некоторых примерах видеоэнкодер 20 может вычислить значения для дробных пиксельных позиций опорных изображений, хранящихся в буфере 64 декодированных изображений. Например, видеоэнкодер 20 может интерполировать значение пиксельных позиций с точностью до одной четверти, пиксельных позиций с точностью одна восьмая или других дробных пиксельных позиций опорного изображения. Таким образом, блок 42 оценки движения может выполнить поиск движения относительно полных пиксельных позиций и дробных пиксельных позиций и вывести вектор движения с точностью до долей пикселя.
Блок 42 оценки движения вычисляет вектор движения для блока PU видеоблока в слайсе, закодированном с использованием межкадрового предсказания, путем сравнения позиции блока PU с позицией предсказанного блока опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (список 0) или второго списка опорных изображений (список 1), каждый из которых идентифицирует одно или несколько опорных изображений, хранящихся в буфере 64 декодированных изображений. Блок 42 оценки движения посылает вычисленный вектор движения в блок 56 энтропийного кодирования и блок 44 компенсации движения.
Компенсация движения, выполняемая блоком 44 компенсации движения, может включать в себя получение или создание предсказанного блока на основе вектора движения, определенного при оценке движения, с возможным выполнением интерполяций с точностью до долей пикселя. После приема вектора движения для блока PU текущего видеоблока блок 44 компенсации движения может определить местоположение предсказанного блока, на который указывает вектор движения в одном из списков опорных изображений. Видеоэнкодер 20 формирует остаточный видеоблок, вычитая пиксельные значения предсказанного блока из пиксельных значений текущего кодируемого видеоблока, в результате чего получают значения пиксельной разности. Значения пиксельной разности образуют остаточные данные для упомянутого блока, которые могут включать в себя разностные компоненты яркости и разностные компоненты цветности. Сумматор 50 представляет компоненту или компоненты, которые выполняют указанную операцию вычитания. Блок 44 компенсации движения также может создать синтаксические элементы, связанные с видеоблоками и видеослайсом для их использования видеодекодером 30 при декодировании видеоблоков данного видеослайса.
Модуль 46 внутрикадрового предсказания может выполнить внутрикадровое предсказание текущего блока как альтернативу межкадровому предсказанию, выполняемому блоком 42 оценки движения и блоком 44 компенсации движения, как это было описано выше. В частности, модуль 46 внутрикадрового предсказания может определить режим внутрикадрового предсказания для использования для кодирования текущего блока. В некоторых примерах, модуль 46 внутрикадрового предсказания может закодировать текущий блок, используя различные режимы внутрикадрового предсказания например, во время отдельных проходов кодирования, и модуль 46 внутрикадрового предсказания (или блок 40 выбора режима в некоторых примерах) может выбрать необходимый режим внутрикадрового предсказания из тестовых режимов. Например, модуль 46 внутрикадрового предсказания может вычислить значения
искажения в зависимости от скорости передачи с использованием анализа зависимости искажения от скорости передачи для различных тесовых режимов внутрикадрового предсказания и выбрать режим внутрикадрового предсказания, имеющий наилучшие зависимости искажения от скорости передачи среди тестовых режимов. Анализ зависимости искажения от скорости передачи в общем случае определяет величину искажения (или ошибки) между кодированным блоком и исходным, не кодированным блоком, который был закодирован для создания кодированного блока, а также скорость передачи в битах (то есть, количество бит), используемую для создания кодированного блока. Модуль 46 внутрикадрового предсказания может вычислить отношения, исходя из упомянутых искажений и скоростей для различных кодированных блоков, чтобы определить, какой режим внутрикадрового предсказания дает наилучшее значение зависимости искажения от скорости передачи для данного блока.
После выбора режима внутрикадрового предсказания для блока модуль 46 внутрикадрового предсказания может подать информацию, указывающую выбранный режим внутрикадрового предсказания для данного блока, в блок 56 энтропийного энкодирования. Блок 56 энтропийного энкодирования может энкодировать информацию, указывающую выбранный режим внутрикадрового предсказания, в соответствии с методиками настоящего изобретения. Видеоэнкодер 20 может включить в переданные данные о конфигурации битового потока, которые могут включать в себя множество таблиц с индексами режимов внутрикадрового предсказания, и множество модифицированных таблиц с индексами внутрикадрового предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирвоания для различных блоков и указания о наиболее вероятном режиме внутрикадрового предсказания, таблицу индексов режима внутрикадрового предсказания и модифицированную таблицу индексов режимов внутрикадрового предсказания для их использования для каждого из упомянутых контекстов.
После создания модулем 41 предсказания предсказанного блока для текущего видеоблока посредством либо межкадрового предсказания, либо внутрикадрового предсказания видеоэнкодер 20 формирует остаточный видеоблок путем вычитания предсказанного блока из текущего видеоблока. Остаточные видеоданные в остаточном блоке могут быть включены в один или несколько блоков TU и поданы в модуль 52 преобразования. Модуль 52 преобразования выполняет преобразование остаточных видеоданных в остаточные коэффициенты преобразования, используя такое преобразование, как, дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование. Модуль 52 преобразования может преобразовать остаточные видеоданные из пиксельной области в область преобразования, например, частотную область.
Модуль 52 преобразования может послать результирующие коэффициенты преобразования в блок 54 квантования. Блок 54 квантования выполняет квантование коэффициентов преобразования с целью дальнейшего снижения скорости передачи в битах. Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми коэффициентами. Степень квантования можно модифицировать, изменяя параметр квантования. В некоторых примерах блок 54 квантования может затем выполнить сканирование матрицы, содержащей квантованные коэффициенты преобразования. В альтернативном варианте сканирование может выполняться блоком 56 энтропийного кодирования.
После квантования блок 56 энтропийного кодирования выполняет энтропийное кодирование квантованных коэффициентов преобразования. Например, блок 56 энтропийного кодирования может выполнять контекстно-зависимое адаптивное кодирование с переменной длиной слова (CAVLC), контекстно-адаптивное бинарное арифметическое кодирование (CABAC), синтаксически ориентированное адаптивное бинарное арифметическое кодирование (SBAC), вероятностное энтропийное кодирование с интервальным разбиением (PIPE), или другой метод энтропийного кодирования. После выполнения энтропийного кодирования блоком 56 энтропийного кодирования кодированный битовый поток может быть передан на видеодекодер 30 или заархивирован для позднейшей передачи или извлечения видеодекодером 30. Блок 56 энтропийного кодирования может также выполнять энтропийное кодирование векторов движения и других синтаксических элементов для текущего кодируемого видеослайса.
Блок 58 обратного квантования и модуль 60 обратного преобразования применяют соответственно обратное квантование и обратное преобразование для восстановления остаточного блока в пиксельной области для позднейшего использования в качестве опорного блока опорного изображения. Блок 44 компенсации движения может вычислить опорный блок путем добавления остаточного блока к предсказанному блоку одного из опорных изображений в одном из списков опорных изображений. Блок 44 компенсации движения также может применить один или несколько интерполяционных фильтров к восстановленному остаточному блоку для вычисления дробных пиксельных значений для использования при оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к предсказанному блоку с компенсацией движения, созданному блоком 44 компенсации движения, для создания опорного блока с целью его запоминания в буфере 64 декодированных изображений. Этот опорный блок может использоваться блоком 42 оценки движения и блоком 44 компенсации движения в качестве опорного блока для межкадрового предсказания блока в последующем видеокадре или видеоизображении.
Согласно настоящему изобретению модуль 41 предсказания представляет один примерный блок для выполнения вышеописанных примерных функций. Например, модуль 41 предсказания может определить, какие опорные изображения относятся к набору опорных изображений, и инициировать выполнение видеоэнкодером 20 энкодирования информации, указывающей опорные изображения, которые относятся к данному набору опорных изображений. Также во время процесса восстановления (например, во время процесса, используемого для восстановления изображения для его использования в качестве опорного изображения и запоминания в буфере 64 декодированных изображений) модуль 41 предсказания может построить множество поднаборов опорных изображений, каждый из которых идентифицирует одно или несколько опорных изображений. Модуль 41 предсказания также может получить набор опорных изображений из построенного множества поднаборов опорных изображений. Также модуль 41 предсказания может реализовать любой один или несколько псевдокодов из наборов примерных псевдокодов, описанных выше, для реализации одной или нескольких примерных методик, раскрытых в настоящем изобретении.
В некоторых примерах модуль 41 предсказания может построить начальные списки опорных изображений вышеописанным образом. В некоторых примерах не обязательно выполнять переупорядочивание изображений, включаемых в начальные списки опорных изображений. Также модуль 41 предсказания может построить списки опорных изображений указанным способом, причем в этих списках опорных изображений будут отсутствовать незавершенные записи. В некоторых примерах модуль 41 декодирования может также модифицировать начальные списки опорных изображений вышеописанным образом для построения модифицированного списка опорных изображений. Кроме того, в некоторых примерах модуль 41 предсказания может реализовать удаление декодированных изображений из буфера DPB 64 вышеописанным образом. Кроме того, в некоторых примерах модуль 41 предсказания может быть сконфигурирован для определения того, какие долгосрочные опорные изображения относятся к упомянутому набору опорных изображений для текущего изображения вышеописанным образом.
В других примерах вышеописанное может быть реализовано блоком, отличным от модуля 41 предсказания. В ряде других случаев модуль 41 вместе с одним или несколькими другими блоками видеоэнкодера 20 может реализовать вышеописанные случаи. В некоторых других примерах реализовать вышеописанное может процессор или блок видеоэнкодера 20 (на фиг. 3 не показан) автономно или вместе с другими блоками видеоэнкодера 20.
На фиг. 4 представлена блок-схема, иллюстрирующая примерный видеодекодер 30, который может реализовать раскрытые здесь методики. В примере на фиг. 4 видеодекодер 30 включает в себя блок 80 энтропийного декодирования, модуль 81 предсказания, блок 86 обратного квантования, блок 88 обратного преобразования, сумматор 90 и буфер 92 декодированных изображений (DPB). Модуль 81 предсказания включает в себя блок 82 компенсации движения и модуль 84 внутрикадрового предсказания. В некоторых примерах видеодекодер 30 может выполнять прогон декодирования, являющийся в общем случае обратным по отношению к прогону кодирования, описанному в связи с видеоэнкодером 20 по фиг. 3.
Во время процесса декодирования видеодекодер 30 принимает кодированный видеопоток, который представляет видеоблоки кодированного видеослайса и связанные с ними синтаксические элементы от видеоэнкодера 20. Блок 80 энтропийного декодирования видеодекодера 30 выполняет энтропийное декодирования битового потока для создания квантованных коэффициентов, векторов движения и других синтаксических элементов. Блок 80 энтропийного декодирования направляет векторы движения и другие синтаксические элементы в модуль 81 предсказания. Видеодекодер 30 может принимать эти синтаксические элементы на уровне видеослайса и/или на уровне видеоблока.
При кодировании видеослайса как слайса с внутрикадровым кодированием (I слайс) модуль 84 внутрикадрового предсказания, входящий в модуль 81 предсказания, может создавать данные предсказания для видеоблока текущего видеослайса на основе сигнальной информации о режиме внутрикадрового предсказания и данных из ранее декодированных блоков текущего изображения. При кодировании видеоизображения как слайса с межкадровым кодированием (например, B или P слайс) блок 82 компенсации движения, входящий в состав модуля 81 предсказания, создает предсказанные блоки для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, полученных от блока 80 энтропийного декодирования. Эти предсказанные блоки могут быть созданы, исходя из одного из числа опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может построить списки опорных изображений (список 0 и список 1), используя стандартные методики построения на основе опорных изображений, запомненных в буфере 92 декодированный изображений. В некоторых примерах видеодекодер 30 может построить список 0 и список 1, исходя из опорных изображений, идентифицированных в полученном списке опорных изображений.
Блок 82 компенсации движения определяет информацию предсказания для видеоблока текущего видеослайса путем синтаксического анализа векторов движения и других синтаксических элементов и использует информацию о предсказании для создания предсказанных блоков для текущего декодируемого видеоблока. Например, блок 82 компенсации движения использует некоторые из полученных синтаксических элементов для определения режима предсказания (например, внутрикадровое или межкадровое предсказание) используемого для кодирования видеоблоков видеослайса типа слайса с межкадровым предсказанием (например, B слайс или P слайс), информацию о построении, касающуюся построения одного или нескольких списков опорных изображений для данного слайса, векторов движения для каждого видеоблока слайса с межкадровым кодированием, статуса межкадрового предсказания для каждого видеоблока слайса с межкадровым кодированием и другой информации для декодирования видеоблоков в текущем видеослайсе.
Блок 82 компенсации движения может также выполнять интерполяцию на основе интерполяционных фильтров. Блок 82 компенсации движения может использовать интерполяционные фильтры, используемые видеоэнкодером 20 во время кодирования видеоблоков, для вычисления интерполированных значений для дробных пикселей опорных блоков. В этом случае блок 82 компенсации движения может определить интерполяционные фильтры, используемые видеоэнкодером 20, исходя из полученных синтаксических элементов, и использовать эти интерполяционные фильтры для создания предсказанных блоков.
Блок 86 обратного квантования выполняет обратное квантование, то есть, «деквантование» квантованных коэффициентов преобразования, обеспеченных в битовом потоке и декодированных с использование блока 80 энтропийного кодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного видеоэнкодером 20 для каждого видеоблока в видеослайсе для определения степени квантования и аналогичным образом степени обратного квантования, которые следует применить. Модуль 88 обратного преобразования применяет обратное преобразование, например, обратное DCT преобразование, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования к коэффициентам преобразования для создания остаточных блоков в пиксельной области.
После создания модулем 81 предсказания предсказанного блока для текущего видеоблока на основе либо межкадрового, либо внутрикадрового предсказания видеодекодер 30 формирует декодированный видеоблок путем суммирования остаточных блоков из модуля 88 обратного преобразования с соответствующими предсказанными блоками, созданными модулем 81 предсказания. Сумматор 90 представляет компоненту или компоненты, которые выполняют эту операцию суммирования. При необходимости также может быть применен фильтр для удаления блочности для фильтрации декодированных блоков с целью устранения артефактов блочности. Для сглаживания пиксельных переходов или иного улучшения качества видео также могут быть применены другие контурные фильтры (либо в контуре кодирования, либо после контура кодирования). Затем декодированные видеоблоки в данном изображении запоминаются в буфере 92 декодированных изображений, в котором хранятся опорные изображения, используемые для последующей компенсации движения. В буфере 92 декодированных изображений также хранится декодированное видео для представления в дальнейшем на устройстве отображения, таком как устройство 32 отображения по фиг. 1.
Согласно настоящему изобретению модуль 81 предсказания представляет один примерный блок для выполнения вышеописанных приведенных в качестве примера функций. Например, модуль 81 предсказания может определить, какие опорные изображения относятся к набору опорных изображений. Также модуль 81 предсказания может построить множество поднаборов опорных изображений, каждый из которых идентифицирует одно или несколько опорных изображений. Модуль 81 предсказания может также получить набор опорных изображений из построенного множества поднаборов опорных изображений. Также модуль 81 предсказания может реализовать один или несколько псевдокодов из наборов примерных псевдокодов, описанных выше, для реализации одной или нескольких раскрытых здесь примерных методик.
В некоторых примерах модуль 81 предсказания может построить начальные списки опорных изображений вышеописанным образом. В некоторых примерах переупорядочивание изображений, включаемых в начальные списки опорных изображений, не требуется. Также модуль 81 предсказания может построить списки опорных изображений указанным способом, так что в списках опорных изображений не будет незавершенных записей. В некоторых примерах модуль 81 предсказания также может модифицировать начальные списки опорных изображений вышеописанным образом для построения модифицированного списка опорных изображений. Кроме того, в некоторых примерах модуль 81 предсказания может реализовать удаление декодированных изображений из буфера DPB 94 вышеописанным образом. Кроме того, в некоторых примерах модуль 81 предсказания может быть сконфигурирован для определения того, какие долгосрочные опорные изображения относятся к упомянутому списку опорных изображений для текущего изображения вышеописанным образом.
В других примерах реализация вышеописанного может быть обеспечена другим блоком, отличным от модуля 81 предсказания. В некоторых других примерах модуль 81 предсказания вместе с одним или несколькими другими блоками видеодекодера 30 может реализовать вышеописанные примеры. В ряде других примеров реализовать вышеописанное может процессор или блок видеодекодера 30 (на фиг. 4 не показан), автономно или вместе с другими блоками видеодекодера 30.
На фиг. 5 представлена блок-схема, иллюстрирующая приведенную в качестве примера операцию получения набора опорных изображений. Исключительно в иллюстративных целях, способ, показанный на фиг. 5, может выполняться видеокодером, соответствующим видеоэнкодеру 20 или видеодекодеру 30. Например, видеокодер (например, видеоэнкодер 20 или видеодекодер 30) может закодировать (например, энкодировать или декодировать) информацию, указывающую опорные изображения, относящиеся к набору опорных изображений (94). Набор опорных изображений может идентифицировать опорные изображения, которые можно потенциально использовать для межкадрового предсказания текущего изображения и для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Например, когда видеоэнкодер 20 выполняет шаг 94, он может закодировать значения, указывающие идентификаторы для тех опорных изображений, которые относятся к данному набору опорных изображений. Например, видеоэнкодер 20 может в качестве сигнализации передать в битовом потоке синтаксический элемент pic_order_cnt_lsb и синтаксический элемент log2_max_pic_order_cnt_lsb_minus4. При выполнении видеодекодером 30 шага 94, исходя из синтаксического элемента log2_max_pic_order_cnt_lsb_minus4, видеодекодер 30 может определить значение MaxPicOrderCntLsb. Затем видеодекодер 30 может определить идентификаторы (например, значения POC) для тех опорных изображений, которые относятся к данному списку опорных изображений.
Видекодер может построить множество поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений (96). Например, видеокодер может построить поднаборы RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1 , RefPicSetLtCurr и RefPicSetLtFoll опорных изображений. Однако аспекты настоящего изобретения этим не ограничиваются. В некоторых примерах видеокодер может построить пять поднаборов опорных изображений, четырьмя из которых могут быть четыре поднабора из RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr и RefPicSetLtFoll опорных изображений, а пятым может быть комбинация из двух оставшихся из шести поднаборов опорных изображений (например, комбинация из поднабора RefPicSetFoll0 и поднабора RefPicSetFoll1 опорных изображений).
В некоторых примерах видеокодер может построить по меньшей мере два из следующих четырех поднаборов опорных изображений. В других примерах видеокодер может построить по меньшей мере следующие четыре поднабора опорных изображений. Первый поднабор опорных изображений может идентифицировать краткосрочные опорные изображения, которые поступают перед текущим изображением в порядке декодирования и перед текущим изображением в порядке вывода, и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Второй поднабор опорных изображений может идентифицировать краткосрочные опорные изображения, которые поступают до текущего изображения в порядке декодирования и после текущего изображения в порядке вывода, и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Третий поднабор опорных изображений может идентифицировать долгосрочные опорные изображения, которые поступают перед текущим изображением в порядке декодирования и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования. Четвертый поднабор опорных изображений может идентифицировать долгосрочные опорные изображения, которые поступают до текущего изображения в порядке декодирования и которые можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Видеокодер может получить набор опорных изображений из множества поднаборов опорных изображений (98). Например, видеокодер может для получения набора опорных изображений расположить по меньшей мере два из поднаборов RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1 , RefPicSetLtCurr и RefPicSetLtFoll опорных изображений в конкретном порядке.
В некоторых примерах упорядочивание, выполняемое видеокодером, может означать, что изображения в каждом из поднаборов опорных изображений могут быть идентифицированы последовательно в наборе опорных изображений. В этих примерах видеокодер может обращаться к опорным изображениям в наборе опорных изображений, используя значение индекса в наборе опорных изображений.
Видеокодер может закодировать текущее изображение на основе полученного набора опорных изображений (100). Следует понимать, что, поскольку видеокодер получает набор опорных изображений из поднаборов опорных изображений, можно считать, что видеокодер кодирует текущие изображения на основе множества упомянутых поднаборов опорных изображений. Например, видеокодер может построить по меньшей мере один список опорных изображений (первый или второй) на основе множества поднаборов опорных изображений (например, исходя из полученного набора опорных изображений, который получен из множества поднаборов опорных изображений). Видеокодер может затем закодировать текущее изображение на основе по меньшей мере одного из списков: первого списка опорных изображений и/или второго списка опорных изображений.
На фиг. 6 представлена блок-схема, иллюстрирующая примерную операцию построения списка опорных изображений. Исключительно в иллюстративных целях способ по фиг. 6 может выполняться видеокодером, соответствующим либо видеоэнкодеру 20, либо видеодекодеру 30. По аналогии с фиг. 5, видеокодер может закодировать информацию, указывающую опорные изображения (102), и построить множество поднаборов опорных изображений (104).
Затем видеокодер может добавить опорные изображения из поднаборов опорных изображений в начальный список опорных изображений для построения начального списка опорных изображений (106). В некоторых примерах начальный список опорных изображений может быть построен как видеоэнкодером 20, так и видеодекодером 30. Например, видеоэнкодер 20 может построить начальный список опорных изображений для создания восстановленных видеоблоков с целью их запоминания в буфере DPB 64. Видеодекодер 30 может построить список опорных изображений в рамках выполняемого им процесса декодирования и может реализовать стандартную методику построения, используя которую, видеодекодеру 30 нет необходимости принимать информацию от видеоэнкодера 20, касающуюся того, каким образом следует формировать начальный список опорных изображений.
В некоторых примерах для построения начального списка опорных изображений видеокодер может добавить опорные изображения из первого поднабора из множества поднаборов опорных изображений в начальный список опорных изображений, за которыми добавляются опорные изображения из второго поднабора, а за ними добавляются опорные изображения из третьего поднабора опорных изображений. Видеокодер может добавлять опорные изображения из указанных поднаборов опорных изображений, пока общее количество опорных изображений, внесенных в начальный список опорных изображений, не превышает максимального количества записей, допустимого для начального списка опорных изображений. Например, если в какой-либо момент времени во время добавления опорных изображений в список опорных изображений количество записей в начальном списке опорных изображений сравняется с максимальным количеством записей, допустимым для начального списка опорных изображений, то видеокодер может прекратить добавление дополнительных изображений в данный начальный список опорных изображений.
Аналогичным образом, видеокодер может построить другой начальный список опорных изображений, такой как список в примерах, где выполняется двунаправленное предсказание видеоблока текущего изображения. В этом примере для построения другого начального списка опорных изображений видеокодер может добавлять опорные изображения из второго поднабора в этот другой начальный список опорных изображений, за которыми в указанный список добавляются опорные изображения из первого поднабора, а затем в этот список добавляются опорные изображения из третьего поднабора, пока общее количество записей в этом другом начальном списке опорных изображений не превышает допустимое количество записей. В этих примерах первым поднабором может быть поднабор RefPicSetStCurr0 опорных изображений, вторым поднабором может быть поднабор RefPicSetStCurr1 опорных изображений, а третьим поднабором может быть поднабор RefPicSetLtCurr опорных изображений.
В некоторых примерах для добавления опорных изображений, идентифицированных в поднаборах RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений видеокодер может закодировать (например, энкодировать или декодировать) синтаксические элементы, исходя из которых этот видеокодер может определить количество опорных изображений в каждом из указанных поднаборов опорных изображений. Например, видеокодер может закодировать синтаксический элемент num_short_term_curr0 и синтаксический элемент num_short_term_curr1. Синтаксический элемент num_short_term_curr0 и синтаксический элемент num_short_term_curr1 могут указывать количество опорных изображений, идентифицированных в поднаборе RefPicSetStCurr0 опорных изображений и поднаборе RefPicSetStCurr1 опорных изображений соответственно.
Видеокодер может также закодировать синтаксический элемент num_long_term_pps_curr и синтаксический элемент num_long_term_add_curr. Синтаксический элемент num_long_term_pps_curr может указывать количество долгосрочных опорных изображений, чьи идентификационные данные включены в набор параметров изображения (PPS), а синтаксический элемент num_long_term_add_curr может указывать количество долгосрочных опорных изображений, чьи идентификационные данные не включены в набор PPS. В этом примере указанные долгосрочные опорные изображения можно потенциально использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования.
Видеокодер может определить количество опорных изображений в поднаборе RefPicSetLtCurr опорных изображений на основе синтаксического элемента num_long_term_pps_curr и синтаксического элемента num_long_term_add_curr. Например, видеокодер может просуммировать значения синтаксического элемента num_long_term_pps_curr и синтаксического элемента num_long_term_add_curr чтобы определить количество опорных изображений в поднаборе RefPicSetLtCurr опорных изображений.
Видеокодер может закодировать текущее изображение на основе списка или списков опорных изображений (108). Например, видеокодер может построить по меньшей мере один из списков (первый список опорных изображений и/или второй список опорных изображений) на основе полученного набора опорных изображений. Затем видеокодер может закодировать текущее изображение на основе по меньшей мере одного из списков: первого списка опорных изображений и/или второго списка опорных изображений.
На фиг. 7 представлена блок-схема, иллюстрирующая другую примерную операцию построения списка опорных изображений. Исключительно в иллюстративных целях способ по п. 7 может выполняться видеокодером, соответствующим либо видеоэнкодеру 20, либо видеодекодеру 30. По аналогии с фиг. 5, видеокодер может закодировать информацию, указывающую опорные изображения (110) и построить множество поднаборов опорных изображений (112). Видеокодер может добавлять опорные изображения в первый набор записей списка опорных изображений (114). Например, количество записей в списке опорных изображений может быть равно максимально допустимому количеству записей, как это определено синтаксическими элементами num_ref_idx_l0_active_minus1 или num_ref_idx_l1_active_minus1.
В этом примере видеокодер может вносить (например, добавлять) в первый набор записей опорные изображения, идентифицированные в поднаборах RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений. Например, для списка 0 видеокодер может добавить в первый набор записей списка 0 по порядку опорные изображения, идентифицированные в поднаборах RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений. Для списка 1 видеокодер может добавлять в первый набор записей списка 1 по порядку опорные изображения, идентифицированные в поднаборах RefPicSetStCurr1, RefPicSetStCurr0 и RefPicSetLtCurr опорных изображений.
Затем видеокодер может определить, равно ли количество записей в списке опорных изображений максимальному количеству записей, допустимому для списка опорных изображений (116). Если количество записей в списке опорных изображений не меньше максимально допустимого количества записей («НЕТ» на шаге 116), видеокодер может закодировать текущее сообщение на основе списка опорных изображений (118).
В противном случае, если количество записей в списке опорных изображений меньше максимально допустимого количества записей («ДА» на шаге 116), то видеокодер может внести в список (например, идентифицировать или добавить) одно или несколько опорных изображений по меньшей мере из одного из поднаборов опорных изображений в записи в список опорных изображений, которые следуют за первым набором записей (120). Например, видеокодер может добавить одно или несколько опорных изображений, идентифицированных в поднаборе RefPicSetStCurr0 опорных изображений, в список 0 в записи, следующие за первым набором записей в списке 0, или одно или несколько опорных изображений, идентифицированных в поднаборе RefPicSetStCurrl опорных изображений, в список 1 в записи, следующие за первым набором записей в списке 1. Таким образом, видеокодер может идентифицировать по меньшей мере одно опорное изображение из первого поднабора опорных изображений и более одной записи в списке опорных изображений.
Затем видеокодер может определить, равно ли количество записей в списке опорных изображений максимальному количеству записей, допустимому для списка опорных изображений (122). Если количество записей в списке опорных изображений не меньше максимально допустимого количества записей («НЕТ» в блоке 122), то видеокодер может закодировать текущее изображение на основе списка опорных изображений (124).
В противном случае, если количество записей в списке опорных изображений меньше максимально допустимого количества записей («ДА» на шаге 122), то видеокодер может внести в список (например, идентифицировать или добавить) одно или несколько опорных изображений по меньшей мере из одного из поднаборов опорных изображений в записи в список опорных изображений, которые следуют за первым набором записей (120). Например, в этой ситуации видеокодер может добавить дополнительные опорные изображения, идентифицированные в первом поднаборе опорных изображений. Если видеокодер уже добавил все опорные изображения в первый поднабор опорных изображений, видеокодер может снова добавить одно или несколько опорных изображений из второго поднабора опорных изображений (например, поднабор RefPicSetStCurr0 опорных изображений для списка 0 или поднабор RefPicSetStCurr1 опорных изображений для списка 1). Этот процесс может повторяться, пока количество записей в списке опорных изображений меньше максимально допустимого количества записей («НЕТ» в блоке 122).
Таким образом, когда количество записей в списке опорных изображений не равно максимально допустимому количеству записей в этом списке опорных изображений, видеокодер может многократно вносить (например, идентифицировать или добавлять) одно или несколько опорных изображений по меньшей мере из одного из поднаборов опорных изображений в записи в списке опорных изображений, которые следуют за первым набором записей, пока количество записей в списке опорных изображений не станет равным максимальному количеству записей, допустимому для списка опорных изображений. В результате видеокодер будет вносить опорные изображения в записи списка опорных изображений так, чтобы каждая запись из списка опорных изображений идентифицировала одно из опорных изображений и так, чтобы по меньшей мере две записи из списка опорных изображений идентифицировали одно и то же опорное изображение из числа упомянутых опорных изображений.
На фиг. 8 представлена блок-схема, иллюстрирующая примерную операцию модификации начального списка опорных изображений. Исключительно в иллюстративных целях способ по фиг. 8 может выполняться видеокодером, соответствующим либо видеоэнкодеру 20, либо видеодекодеру 30. По аналогии с фиг. 6, видеокодер может закодировать информацию, указывающую опорные изображения (126), и построить множество поднаборов опорных изображений (128). Множество поднаборов опорных изображений может включать в себя поднаборы RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений. Видеокодер может построить начальный список опорных изображений вышеописанным образом на основе поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr опорных изображений (130).
Видеокодер может определить, требуется ли модификация списка опорных изображений (132). Например, видеокодер может закодировать синтаксические элементы, такие как ref_pic_list_modification_flag_10 и ref_pic_list_modification_flag_ll, которые указывают, необходима ли модификация списка 0 или списка 1. Если модификация начального списка опорных изображений не нужна («НЕТ» в блоке 132), то видеокодер может закодировать текущее изображение на основе начального списка опорных изображений (134).
Если требуется модификация («ДА» в блоке 132), то видеокодер может идентифицировать опорное изображение по меньшей мере в одном из построенных поднаборов опорных изображений (136). Например, видеокодер может закодировать синтаксический элемент modification_of_ref_pic_idc. Значение этого синтаксического элемента modification_of_ref_pic_idc может указывать, какой поднабор опорных изображений должен использовать видеокодер для идентификации данного опорного изображения. Видеокодер также может закодировать синтаксический элемент ref_pic_set_idx, который указывает индекс в поднаборе опорных изображений, который следует использовать видеокодеру для идентификации данного опорного изображения.
Видеокодер может внести (например, добавить или идентифицировать) идентифицированное опорное изображение в начальном списке опорных изображений в текущие записи для построения модифицированного списка опорных изображений (138). Текущая запись изначально может являться записью в начальном списке опорных изображений, определенной под индексом 0. Для каждого экземпляра синтаксического элемента modification_of_ref_pic_idc в кодированном битовом потоке, где значение синтаксического элемента modification_of_ref_pic_idc не равно 3, видеокодер может увеличить на единицу значение начальной записи (например, следующее значение записи будет определяться индексом 1). Видеокодер может закодировать текущее изображение на основе модифицированного списка опорных изображений (140).
На фиг. 9 представлена блок-схема, иллюстрирующая примерную операцию удаления декодированных изображений. Исключительно в иллюстративных целях способ по фиг. 9 может быть выполнен видеокодером, соответствующим либо видеоэнкодеру 20, либо видеодекодеру 30. По аналогии с фиг. 5, видеокодер (например, видеоэнкодер 20 или видеодекодер 30) может кодировать (например, энкодировать или декодировать) информацию, указывающую опорные изображения из набора опорных изображений (142), и может получить набор опорных изображений из кодированной (например, кодированной или декодированной) информации (144).
Видеокодер может определить, необходим ли вывод декодированного изображения, запомненного в буфере декодированных изображений (DPB) (например, вывод уже был или вывод не предполагается) и оно не идентифицировано в наборе опорных изображений (146). Если требуется вывод данного декодированного изображения или оно идентифицировано в наборе опорных изображений («НЕТ» в блоке 146), то видеокодер может не удалять это декодированное изображение из буфера DPB и продолжать хранить это декодированное изображение в буфере DPB (148).
Если декодированное изображение уже было выведено, и оно не идентифицировано в наборе опорных изображений («ДА» в блоке 146), видеокодер может удалить это декодированное изображение из буфера DPB 150. Видеокодер может затем закодировать текущее изображение после удаления декодированного изображения (152).
Как было описано выше, видеокодер может построить список опорных изображений на основе набора опорных изображений для кодирвоания текущего изображения. В некоторых примерах видеокодер может удалить декодированное изображение из буфера DPB после построения списка опорных изображений. Кроме того, для выводимого декодированного изображения видеокодер может определить время вывода декодированного изображения и может вывести декодированное изображение на основе этого определенного времени, причем до кодирования текущего изображения.
В некоторых примерах видеокодер может запомнить кодированное (например, декодированное) изображение в буфере DPB. В некоторых примерах видеокодер может определить, что буфер DPB заполнен до упомянутого запоминания. В этих случаях видеокодер может выбрать декодированное изображение, запомненное в данный момент в буфере DPB, которое помечено как «нуждающееся в выводе», и имеющее минимальное значение счетчика очередности изображения среди всех декодированных изображений, хранящихся в буфере DPB. Затем видеокодер может вывести выбранное изображение. Кроме того, видеокодер может определить, что выведенное изображение не включено в набор опорных изображений текущего изображения. В этом случае видеокодер может очистить один буфер в DPB, где хранится выводимое изображение, и может запомнить это кодированное изображение в указанном буфере в DPB.
На фиг. 10 представлена блок-схема, иллюстрирующая примерную операцию определения того, какие долгосрочные опорные изображения относятся к набору опорных изображений текущего кадра. Исключительно в иллюстративных целях способ по фиг. 10 может выполняться видеокодером, соответствующим либо видеоэнкодеру 20, либо видеодекодеру 30.
Видеокодер (например, видеоэнкодер 20 или видеодекодер 30) может закодировать синтаксические элементы, указывающие возможные долгосрочные опорные изображения, идентифицированные в одном наборе параметров (154). В некоторых примерах к набору опорных изображений текущего кадра относится одно или несколько возможных долгосрочных опорных изображений. Согласно раскрытым здесь методикам, указанный набор параметров может представлять собой набор параметров последовательности или набор параметров изображения. В некоторых примерах для кодирования синтаксических элементов, которые указывают возможные долгосрочные опорные изображения, видеокодер может закодировать список значений POC для возможных долгосрочных опорных изображений в наборе параметров и закодировать значение индекса для списка в заголовке слайса текущего изображения.
Видеокодер может закодировать синтаксические элементы, которые указывают, какие возможные долгосрочные опорные изображения, идентифицированные в указанном наборе параметров, относятся к набору опорных изображений текущего изображения (156). Например, видеокодер может закодировать в заголовке слайса текущего изображения синтаксические элементы, указывающие, какие возможные долгосрочные опорные изображения относятся к набору опорных изображений.
В некоторых случаях не все долгосрочные опорные изображения, относящиеся к набору опорных изображений, включены во множество возможных долгосрочных опорных изображений. В этих случаях видеокодер может дополнительно закодировать синтаксические элементы, указывающие долгосрочные опорные изображения, относящиеся к данному набору опорных изображений (158). Затем видеокодер может построить по меньшей мере один из множества поднаборов опорных изображений на основе индикации о том, какие возможные долгосрочные опорные изображения относятся к упомянутому набору опорных изображений текущего изображения.
В вышеописанных примерах описаны различные случаи наряду с возможными альтернативами. Далее описываются некоторые дополнительные альтернативные варианты, которые можно рассматривать как альтернативы по отношению к одному или нескольким, описанным выше, примерам. Кроме того, эти альтернативные примеры можно использовать вместе с вышеописанными или отдельно от вышеописанных примеров.
Например, выше были описаны альтернативные примеры для концепции набора опорных изображений, альтернативные примеры для сигнализации о наборе опорных изображений в наборах параметров, альтернативные примеры поднаборов набора опорных изображений и альтернативные примеры маркировки опорных изображений. Далее описываются дополнительные альтернативные примеры.
Например, для заголовка блока NAL в вышеуказанных примерах заголовок блока NAL может включать в себя синтаксические элементы nal_ref_idc, temporal_id и output_flag. В одном альтернативном примере nal_ref_idc (2 бита) заменяется на nal_ref_flag (1 бит). В этом примере nal_ref_flag, равный 1, имеет семантику nal_ref_idc больше 0 и nal_ref_flag, равный 0, имеет такую же семантику, как nal_ref_idc, равный 0. В одном альтернативном примере nal_ref_idc (2 бита) удален. Определение опорного изображения может быть изменено следующим образом: это изображение, содержащее отсчеты, которые можно использовать для межкадрового предсказания в процессе декодирования последовательных изображений в порядке декодирования. В одном альтернативном примере temporal_id в синтаксисе заголовка блока NAL отсутствует, и его значение устанавливают таким образом, чтобы оно совпадало для всех изображений. В одном альтернативном примере в синтаксисе заголовка блока NAL отсутствует output_flag, и его значение устанавливают таким образом, чтобы оно было равно 1 для всех изображений.
При сигнализации и вычислении значения счетчика очередности изображения вышеописанные методики предусматривают использование одного варианта сигнализации и вычисления значения счетчика очередности изображения, который может быть аналогичен счетчику очередности изображения типа 0 в стандарте AVC. Можно использовать два альтернативных способа для сигнализации и вычисления значений счетчика очередности изображения, наподобие счетчика очередности изображения типа 1 и типа 2 соответственно в стандарте AVC. Также возможно применение любой комбинации, содержащей два из трех указанных подходов, или комбинации из всех трех указанных подходов.
Для идентификации изображения описанные методики предусматривают возможность использования значения счетчика очередности изображения (POC). В одном альтернативном примере в качестве идентификации изображения используют временную ссылку (TR). Один из вариантов определения TR состоит в следующем: TR совпадает со значением POC, когда POC ограничен так, что разность значений POC между любыми двумя изображениями пропорциональна разности времени представления или времени дискретизации. В одном альтернативном примере в качестве идентификации изображения можно использовать элемент frame_num, который указывает порядок декодирования (в то время как POC указывает порядок вывода или отображения) или переменная (например, под названием UnWrappedFrameNum), которая может иметь любое значение из числа 32-битовых целых значений без знака, полученных из frame_num. По существу UnWrappedFrameNum может представлять собой развернутую версию frame_num. Например, если frame_num представлен 8 битами, то максимальное значение frame_num составит 255. Следующим значением для frame_num после 255 будет 0. Значение UnWrappedFrameNum продолжает возрастать на позициях, где frame_num сворачивается до 0.
Для сигнализации о долгосрочных опорных изображениях в наборах параметров в вышеуказанных примерах видеоэнкодер 20 может в качестве сигнализации передать список абсолютных идентификационных данных о долгосрочных опорных изображениях в наборе параметров изображения, может передать информацию о длине в битах абсолютной идентификационной информации о долгосрочных опорных изображениях, а индекс для списка можно получить в заголовке слайса, что сокращает издержки на сигнализацию. В одном альтернативном примере список дифференциальной идентификационной информации о долгосрочных опорных изображениях может быть передан в наборе параметров последовательности, а индекс для списка можно получить из заголовка слайса, что сокращает издержки на сигнализацию. В одном альтернативном примере в качестве сигнализации может быть передана информация о длине (в битах) абсолютной идентификационной информации о долгосрочных опорных изображениях, но длина может считаться постоянной, например, равной 32. В разных случаях применяется комбинация из любых вышеописанных подходов.
В вышеуказанных примерах в случае сигнализации о краткосрочных опорных изображениях в наборе опорных изображений кодированного изображения вся информация передается либо в упомянутом наборе параметров изображения, либо вся информация передается в заголовке слайса. В одном альтернативном примере для краткосрочных опорных изображений в наборе опорных изображений кодированного изображения часть информации передается в упомянутом наборе параметров изображения, а остальное в заголовке слайса.
Что касается инициализации списка опорных изображений, то в одном альтернативном примере в процессе инициализации списка опорных изображений сначала в список могут быть добавлены краткосрочные опорные изображения, а затем, но не обязательно в этот список могут быть добавлены долгосрочные опорные изображения. После этого, если количество записей в этом списке опорных изображений (RefPicList0 или RefPicList1) все еще меньше, чем значение num_ref_idx_lx_active_minus1+l (lx равен 10 или 11), остальные записи могут быть помечены, как «не опорное изображение». В одном альтернативном примере также возможно, что, если список опорных изображений все еще не полный после добавления записей в RefPicSetStCurr0 и RefPicSetStCurr1, и возможно долгосрочных опорных изображений, то могут быть добавлены изображения из RefPicSetStFoll0 и/или RefPicSetStFoll1. В одном альтернативном примере в процессе инициализации списка опорных изображений в него возможно добавление только краткосрочных опорных изображений. В указанном случае в список опорных изображений может быть добавлено только одно долгосрочное опорное изображение путем использования команд модификации списка опорных изображений, переданных в синтаксической таблице модификации списка опорных изображений (RPLM).
Что касается модификации списка опорных изображений, то в одном альтернативном примере при модификации списка опорных изображений в качестве сигнализации также может передаваться ref_pic_set_idx в дифференциальном виде, когда предыдущий индекс используется в качестве прогностического параметра текущего индекса. В этом примере разные значения modification_of_ref_pic_idc могут соответствовать разным категориям индексации (RefPicSetStCurrx для RefPicListx, RefPicSetStCurrx для RefPicList(l-x), или RefPicSetLtCurr), каждая из которых поддерживает разный прогностический параметр. Прогностический параметр может обновляться каждый раз, когда анализируется синтаксический элемент, относящийся к одной и той же категории. В одном альтернативном примере модификации списков опорных изображений могут базироваться на разнице в параметрах изображений. В одном альтернативном примере модификации списков опорных изображений могут базироваться на разнице в значениях POC.
Что касается операций с буфером декодированных изображений (DPB), то в вышеописанном примере текущее декодированное изображение запоминается в буфере DPB после декодирования текущего изображения и перед анализом заголовка слайса следующего кодированного изображения в порядке декодирования. В одном альтернативном примере текущее декодированное изображение запоминается во временной памяти (не в буфере DPB) после декодирования текущего изображения, но перед анализом заголовка слайса следующего кодированного изображения в порядке декодирования. Оно запоминается в буфере DPB после анализа заголовка слайса следующего кодированного изображения в порядке декодирования и построения набора опорных изображений данного изображения, если это еще необходимо для вывода или использования в качестве опорного изображения. В этот момент, если необходимость в выводе или использовании в качестве опорного изображения отпала, это декодированное изображение может быть просто отброшено (удалено из временного буфера).
Также в вышеуказанных примерах удаление декодированного изображения из буфера DPB происходит немедленно после анализа заголовка слайса текущего изображения и перед декодированием какого-либо слайса текущего изображения. В одном альтернативном примере маркировка, если она имеет место и удаление декодированного изображения из буфера DPB происходит после того, как текущее изображение будет полностью декодировано.
В вышеописанных примерах поднаборы RefPicSetStCurr0 и RefPicSetStCurrl набора опорных изображений для текущего изображения получают для всех декодированных изображений. Однако это не обязательно для изображения с внутрикадровым предсказанием. Что касается получения набора опорных изображений с внутрикадровым кодированием, то в одном альтернативном примере для изображения (не являющегося IDR изображением) с внутрикадровым кодированием (то есть, все слайсы этого кодированного изображения являются I слайсами), RefPicSetStCurr0 и RefPicSetStCurr1 не получают, и несмотря на то, что они не являются пустыми после получения, для них не требуется декодирование кодированного изображения. Наличие не пустого RefPicSetStCurr0 или RefPicSetStCurr1 для изображения с внутрикадровым кодированием, не являющегося IDR изображением, позволяет совместно использовать синтаксическую структуру short_term_ref_pic_set( ) одного или нескольких изображений с межкадровым кодированием, для которых RefPicSetStCurr0 и RefPicSetStCurr1 могут оба не быть пустыми.
Что касается обнаружения потерь, то возможны следующие различные способы обнаружения потери опорного изображения или раннего определения того, правильно ли может быть декодировано текущее изображение. В различных примерах после получения набора опорных изображений видеодекодер 30 (например, на стороне декодера) может проверить наличие опорных изображений, включенных в RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr. Если какое-либо из опорных изображений, включенных в RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr, в буфере DPB отсутствует, то на стороне декодера можно заключить, что опорное изображение было потеряно, и что текущее изображение скорее всего будет декодировано неправильно, и возможно следует предпринять какое-либо действие для исправления ситуации, например, уведомить сторону кодера (например, видеоэнкодер 20) о потере (потерях) изображения, и тогда кодер может повторно передать потерянное опорное изображение (изображения) или закодировать следующее изображение (изображения), используя только те опорные изображения, о которых на стороне декодера известно, что они подходят в качестве опорных изображений для межкадрового предсказания.
В различных примерах после получения набора опорных изображений на стороне декодера можно провести проверку наличия опорных изображений включенных в RefPicSetStFoll0, RefPicSetStFoll1 и RefPicSetLtFoll. Если какое-либо из опорных изображений, включенных в RefPicSetStFoll0, RefPicSetStFoll1 и RefPicSetLtFoll в буфере DPB отсутствует, то на стороне декодера можно сделать вывод о том, что это опорное изображение было потеряно, и что некоторые из последующих изображений в порядке декодирования скорее всего будут декодированы неправильно, пока не будут предприняты те или иные меры, и можно предпринять определенное действие для устранения этой ситуации, например, уведомить сторону кодера о потере (потерях) изображения, и тогда кодер может повторно передать потерянное опорное изображение (изображения) или закодировать следующее изображение (изображения), используя только те опорные изображения, о которых на стороне декодера известно, что они подходят в качестве опорного изображения для межкадрового предсказания.
В вышеуказанных примерах, если на стороне кодера (например, видеоэнкодера 20) имеется композиция наборов опорных изображений, то для такой композиции наборов опорных изображений на стороне кодера можно использовать следующие различные способы. Например, в разных случаях кодер составляет синтаксические структуры, относящиеся к наборам опорных изображений, так что после получения набора опорных изображений на стороне декодера для текущего изображения: (1) RefPicSetStCurr0 включает в себя только идентификационную информацию обо всех краткосрочных опорных изображениях, которые выводятся раньше текущего изображения, и которые используются в качестве опорных при межкадровом предсказании текущего изображения; (2) RefPicSetStCurr1 включает в себя только идентификационную информацию обо всех краткосрочных опорных изображениях, которые выводятся позже, чем текущее изображение, и которые используют в качестве опорных при межкадровом предсказании текущего изображения; и (3) RefPicSetLtCurr включает в себя только идентификационную информацию обо всех долгосрочных опорных изображениях, которые используют в качестве опорных при межкадровом предсказании текущего изображения.
В различных примерах кодер (например, видеоэнкодер 20) может составить набор опорных изображений, относящийся к синтаксическим структурам, так что после получения набора опорных изображений на стороне декодера для текущего изображения: (1) RefPicSetStCurr0 включает в себя только идентификационную информацию о 1) всех краткосрочных опорных изображениях, которые выводятся раньше, чем текущее изображение, и которые используют в качестве опорных при межкадровом предсказании текущего изображения, а также идентификационную информацию о 2) одном или нескольких краткосрочных опорных изображений, которые выводятся раньше, чем текущие изображения, и которые не используют в качестве опорных при межкадровом предсказании текущего изображения; (2) RefPicSetStCurr1 включает в себя только идентификационную информацию о 1) всех краткосрочных опорных изображениях, которые выводятся позже, чем текущее изображение, и которые используют в качестве опорных при межкадровом предсказании текущего изображения, а также об 2) одном или нескольких краткосрочных опорных изображениях, которые выводятся позднее, чем текущее изображение, и которые не используют в качестве опорных при межкадровом предсказании текущего изображения, и RefPicSetLtCurr включает в себя только идентификационную информацию о 1) всех долгосрочных опорных изображениях, которые используют в качестве опорных при межкадровом предсказании текущего изображения, а также о 2) одном или нескольких долгосрочных изображениях, которые не используют в качестве опорных при межкадровом предсказании текущего изображения.
Таким образом, вышеописанные отдельные методики или любые их комбинации, включая любую комбинацию из альтернативных примеров, могут обеспечить выполнение нижеследующего. Однако указанный ниже список приведен лишь для облегчения понимания, и его не следует рассматривать как ограничение. Одна или несколько из вышеописанных методик могут быть реализованы вместе или по отдельности. Кроме того, это методики есть не что иное, как примеры, и их не следует рассматривать как ограничение применительно к конкретным методикам.
Ограничения на temporal_id для набора опорных изображений, например, состоящее в том, что способы управления буфером DPB хорошо подходят для масштабируемости во времени, издержки на сигнализацию могут быть сокращены, и может быть реализован простой процесс извлечения битового потока для очищенных извлеченных поднаборов битового потока.
Поднаборы долгосрочных опорных изображений, передаваемые в качестве сигнализации в наборе опорных изображений, и индекс могут быть включены в заголовок слайса. Это может обеспечить эффективную сигнализацию, касающуюся долгосрочных изображений.
Разбиение набора опорных изображений на различные поднаборы, в том числе разделение для текущего изображения или для последующих изображений в порядке декодирования, причем это разделение для тех изображений, вывод которых выполняется раньше или позже, чем текущее изображение. Это может обеспечить повышенную эффективность и уменьшить сложность инициализации списка опорных изображений и модификацию списка опорных изображений.
Двойное дифференциальное кодирование при сигнализации, касающееся идентификации краткосрочных изображений, может обеспечить повышение эффективности. Расширенная и ограниченная идентификация краткосрочных изображения может повысить эффективность и гибкость системы. Упрощенная инициализация списка опорных изображений может устранить необходимость маркировки незавершенных записей в списке опорных изображений, как «не являющихся опорными изображениями»; однако это не обязательно для всех случаев.
Упрощенные процессы для вывода декодированных изображений, ввода в буфер DPB и удаление из буфера DPB. Счетчик очередности изображения (POC) может быть обратным. Это позволяет реализовать ряд важных случаев использования, которые были бы невозможны, если POC не мог работать а режиме обратного счета. Сигнализация о том, является ли изображение опорным изображением, в процессе декодирования может оказаться необязательной, хотя ее возможность может сохраняться. Маркировка опорных изображений как «не используемых в качестве опорных» может оказаться необязательной.
В одном или нескольких примерах описанные функции могут быть реализованы аппаратными средствами, программными средствами, программно-аппаратными средствами или любой их комбинацией. При реализации программными средствами эти функции могут храниться или передаваться в виде одной или нескольких команд или кода на считываемом компьютером носителе и выполняться обрабатывающим аппаратным блоком. Считываемая компьютером среда может включать в себя считываемую компьютером запоминающую среду, которая может соответствовать материальному носителю, такому как среда хранения данных или среда передачи, включая любой носитель, который позволяет обеспечить пересылку компьютерной программы из одного места в другое, например, согласно какому-либо протоколу связи. В этом аспекте считываемая компьютером среда в общем случае может соответствовать (1) материальной считываемой компьютером запоминающей среде, которая обеспечивает долговременное хранение, или (2) среде связи, такой как сигнал или несущая волна. Средой для запоминания данных может служить любая доступная среда, доступ к которой может осуществляться одним или несколькими компьютерами или одним или несколькими процессорами для извлечения команд, кодирования, и/или со стороны структур данных для реализации раскрытых в этом изобретении методик. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
В качестве примера, но не как ограничение, указанная считываемая компьютером запоминающая я среда может содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптических дисках, запоминающее устройство на магнитных дисках или другие магнитные запоминающее устройства, флэш-память, или любой другой носитель, который можно использовать для запоминания требуемого программного кода в виде команд или структур данных, и к которым может иметь доступ компьютер. Также любое соединение будет правильно назвать считываемой компьютером средой. Например, если команды передаются с Web-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, скрученной пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная связь, радиосвязь и микроволновая связь, то тогда коаксиальный кабель, оптоволоконный кабель, скрученная пара, линии DSL или такие беспроводные технологии, как инфракрасная связь, радиосвязь и микроволновая связь, входят в определение среды. Однако следует понимать, что термины: «считываемая компьютером запоминающая среда» и «среда для хранения данных» не включают в себя соединения, несущие волны, сигналы или другие несущие, а относятся к долговременной материальной запоминающей среде. Используемый здесь термин «disc» (диск) относится к компакт-диску (CD), лазерному диску, оптическому диску, цифровому универсальному диску (DVD), и диску Blu-ray, воспроизводящих данные оптическим путем с использованием лазеров, в то время как термин «disk» (диск) обычно относится к дискам, воспроизводящим данные магнитным путем. В понятие считываемой компьютером среды также следует отнести комбинации из вышеперечисленного.
Команды могут выполняться одним или несколькими процессорами, такими как один или несколько цифровых процессоров сигналов (DSP), микропроцессоров общего назначения, прикладных специализированных интегральных схем (ASIC), логических матриц, программируемых пользователем (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, используемый здесь термин «процессор» может относиться к любой из вышеописанных структур или любой иной структуре, подходящей для реализации вышеописанных методик. Вдобавок, в некоторых аспектах описанные здесь функциональные возможности могут быть обеспечены в рамках специализированных аппаратных и/или программных модулей, сконфигурированных для энкодирования и декодирования, или включенных в состав комбинированного кодека. Также раскрытые здесь методики можно полностью реализовать в одной или нескольких схемах или логических элементах.
Раскрытые здесь методики могут быть реализованы в самых разных устройствах или установках, включая беспроводную телефонную трубку, интегральную схему (IC) или набор интегральных схем (например, микропроцессорный набор). Различные компоненты, модули или блоки описаны здесь таким образом, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых здесь методик, причем для этого не требуется их реализация с помощью различных аппаратных блоков. Скорее наоборот, как обсуждалось выше, различные блоки могут быть скомбинированы в аппаратном блоке-кодеке или обеспечены в виде набора взаимодействующих аппаратных блоков, включая один или несколько процессоров, как было описано выше, в сочетании с подходящим программным и/или программно-аппаратным обеспечением.
Здесь были описаны различные примеры. Эти и другие примеры входят в объем нижеследующей формулы изобретения.

Claims (29)

1. Способ кодирования видеоданных, причем способ содержит:
кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений, где набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построение множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений;
построение начального списка опорных изображений на основе построенных поднаборов опорных изображений;
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
определение индекса по меньшей мере для одного из построенных поднаборов опорных изображений;
идентификацию опорного изображения, идентифицированного в записи по меньшей мере одного из построенных поднаборов опорных изображений, на основе определенного индекса; и
добавление идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения
модифицированного списка опорных изображений; и
кодирование текущего изображения на основе модифицированного списка опорных изображений.
2. Способ по п. 1, в котором определение индекса содержит:
кодирование первого синтаксического элемента для идентификации по меньшей мере одного из построенных поднаборов опорных изображений, исходя из которого идентифицируют опорное изображение; и
кодирование второго синтаксического элемента, который указывает индекс по меньшей мере для одного из построенных поднаборов опорных изображений.
3. Способ по п. 2, в котором первый синтаксический элемент содержит синтаксический элемент modification_of_ref_pic_idc, а второй синтаксический элемент содержит синтаксический элемент ref_pic_set_idx.
4. Способ по п. 1, в котором построение множества поднаборов опорных изображений содержит:
построение первого поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и до текущего изображения в порядке вывода и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построение второго поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и после текущего изображения в порядке вывода и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования; и
построение третьего поднабора опорных изображений, который идентифицирует долгосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования; и где идентификация опорного изображения содержит:
идентификацию опорного изображения по меньшей мере в одном из следующих поднаборов опорных изображений: первом поднаборе опорных изображений, втором поднаборе опорных изображений и/или третьем поднаборе опорных изображений.
5. Способ по п. 1, дополнительно содержащий:
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
перемещение опорных изображений, идентифицированных в начальном списке опорных изображений в записях, следующих за текущей записью, к следующей записи в модифицированном списке опорных изображений.
6. Способ по п. 1, дополнительно содержащий:
кодирование синтаксического элемента, который указывает, что необходима модификация списка опорных изображений.
7. Способ по п. 1, в котором
кодирование содержит декодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений, где набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
где кодирование содержит декодирование текущего изображения на основе модифицированного списка опорных изображений.
8. Способ по п. 1, в котором
кодирование содержит кодирование информации, указывающей опорные изображения, относящиеся к набору опорных изображений, при этом набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений следующих за текущим изображением в порядке декодирования;
при этом кодирование содержит кодирование текущего изображения на основе модифицированного списка опорных изображений.
9. Устройство для кодирования видеоданных, причем устройство содержит видеокодер, сконфигурированный для:
кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений, где набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или несколько опорных изображений из набора опорных изображений;
построения начального списка опорных изображений на основе построенных поднаборов опорных изображений;
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
определения индекса по меньшей мере для одного из построенных поднаборов опорных изображений;
идентификации опорного изображения, идентифицированного в записи по меньшей мере одного из построенных поднаборов опорных изображений на основе определенного индекса;
добавления идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений; и
кодирования текущего изображения на основе модифицированного списка опорных изображений.
10. Устройство по п. 9, в котором для определения индекса видеокодер сконфигурирован для:
кодирования первого синтаксического элемента для идентификации по меньшей мере одного из построенных поднаборов опорных изображений, исходя из которого идентифицируют опорное изображение; и
кодирования второго синтаксического элемента, который указывает индекс по меньшей мере для одного из построенных поднаборов опорных изображений.
11. Устройство по п. 10, в котором первый синтаксический элемент содержит синтаксический элемент modification_of_ref_pic_idc, а второй синтаксический элемент содержит синтаксический элемент ref_pic_set_idx.
12. Устройство по п. 9, в котором для построения множества поднаборов опорных изображений видеокодер сконфигурирован для:
построения первого поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и до текущего изображения в порядке вывода и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построения второго поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и после текущего изображения в порядке вывода и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования; и
построения третьего поднабора опорных изображений, который идентифицирует долгосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, и где для идентификации опорного изображения видеокодер сконфигурирован для
идентификации опорного изображения по меньшей мере в одном из следующих поднаборов опорных изображений: первом поднаборе опорных изображений, втором поднаборе опорных изображений и/или третьем поднаборе опорных изображений.
13. Устройство п. 9, в котором видеокодер сконфигурирован для:
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
перемещения опорных изображений, идентифицированных в начальном списке опорных изображений в записях, следующих за текущей записью, к следующей записи в модифицированном списке опорных изображений.
14. Устройство п. 9, в котором видеокодер сконфигурирован для:
кодирования синтаксического элемента, который указывает, что необходима модификация списка опорных изображений.
15. Устройство по п. 9, в котором видеокодер содержит видеодекодер и при этом видеодекодер сконфигурирован для:
декодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений, при этом набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или несколько опорных изображений из набора опорных изображений;
построения начального списка опорных изображений на основе построенных поднаборов опорных изображений;
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
определения индекса по меньшей мере для одного из построенных поднаборов опорных изображений;
идентификации опорного изображения, идентифицированного в записи по меньшей мере одного из построенных поднаборов опорных изображений на основе определенного индекса; и
добавления идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений; и
декодирования текущего изображения на основе модифицированного списка опорных изображений.
16. Устройство по п. 9, в котором видеокодер содержит видеокодер и при этом видеокодер сконфигурирован для:
кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений, при этом набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или несколько опорных изображений из набора опорных изображений;
построения начального списка опорных изображений на основе построенных поднаборов опорных изображений;
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
определения индекса по меньшей мере для одного из построенных поднаборов опорных изображений;
идентификации опорного изображения, идентифицированного в записи по меньшей мере одного из построенных поднаборов опорных изображений на основе определенного индекса;
добавления идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений; и
кодирования текущего изображения на основе модифицированного списка опорных изображений.
17. Устройство по п. 9, которое содержит одно из:
устройство беспроводной связи;
микропроцессор; или
интегральную схему.
18. Считываемый компьютером носитель, имеющий сохраненные на нем команды, которые при их исполнении инициируют:
кодирование процессором устройства для кодирования видеоданных информации, указывающей опорные изображения, относящиеся к набору опорных изображений, при этом набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построение процессором устройства для кодирования видеоданных множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или несколько опорных изображений из набора опорных изображений;
построение процессором устройства для кодирования видеоданных начального списка опорных изображений на основе построенных поднаборов опорных изображений;
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
определение индекса по меньшей мере для одного из построенных поднаборов опорных изображений;
идентификацию опорного изображения, идентифицированного в записи по меньшей мере одного из построенных поднаборов опорных изображений на основе определенного индекса;
добавление идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений; и
кодирование текущего изображения на основе модифицированного списка опорных изображений.
19. Считываемый компьютером носитель по п. 18, в котором команды, которые инициируют определение процессором индекса, содержат команды, которые инициируют:
кодирование процессором первого синтаксического элемента для идентификации по меньшей мере одного из построенных поднаборов опорных изображений, исходя из которого идентифицируют опорное изображение; и
кодирование процессором второго синтаксического элемента, который указывает индекс по меньшей мере для одного из построенных поднаборов опорных изображений.
20. Считываемый компьютером носитель по п. 19, в котором первый синтаксический элемент содержит синтаксический элемент modification_of_ref_pic_idc, а второй синтаксический элемент содержит синтаксический элемент ref_pic_set_idx.
21. Считываемый компьютером носитель по п. 18,
в котором команды, которые инициируют построение процессором множества поднаборов опорных изображений, содержат команды, которые инициируют:
построение процессором первого поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и до текущего изображения в порядке вывода и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
построение процессором второго поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и после текущего изображения в порядке вывода и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования; и
построение процессором третьего поднабора опорных изображений, который идентифицирует долгосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, и где команды, которые инициируют идентификацию процессором опорного изображения, содержат команды, инициирующие:
идентификацию процессором опорного изображения по меньшей мере в одном из следующих поднаборов опорных изображений: первом поднаборе опорных изображений, втором поднаборе опорных изображений и/или третьем поднаборе опорных изображений.
22. Считываемый компьютером носитель по п. 18, дополнительно содержащий команды, которые инициируют:
когда необходима модификация начального списка опорных изображений построения начального списка опорных изображений:
перемещение процессором опорных изображений, идентифицированных в начальном списке опорных изображений в записях, следующих за текущей записью, к следующей записи в модифицированном списке опорных изображений.
23. Считываемый компьютером носитель по п. 18, дополнительно содержащий команды, инициирующие:
кодирование процессором синтаксического элемента, который указывает, что необходима модификация списка опорных изображений.
24. Устройство для кодирования видеоданных, причем устройство содержит:
средство для кодирования информации, указывающей опорные изображения, относящиеся к набору опорных изображений, где набор опорных изображений идентифицирует опорные изображения, которые потенциально можно использовать для межкадрового предсказания текущего изображения и можно потенциально использовать для межкадрового предсказания одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
средство для построения множества поднаборов опорных изображений, каждый из которых идентифицирует нуль или более опорных изображений из набора опорных изображений;
средство для построения начального списка опорных изображений на основе построенных поднаборов опорных изображений;
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
средство для определения индекса по меньшей мере для одного из построенных поднаборов опорных изображений;
средство для идентификации опорного изображения, идентифицированного в записи по меньшей мере одного из построенных поднаборов опорных изображений на основе определенного индекса;
средство для добавления идентифицированного опорного изображения в текущую запись начального списка опорных изображений для построения модифицированного списка опорных изображений; и
средство для кодирования текущего изображения на основе модифицированного списка опорных изображений.
25. Устройство по п. 24, в котором средство для определения индекса содержит:
средство для кодирования первого синтаксического элемента для идентификации по меньшей мере одного из построенных поднаборов опорных изображений, исходя из которого идентифицируют опорное изображение; и
средство для кодирования второго синтаксического элемента, который указывает индекс по меньшей мере для одного из построенных поднаборов опорных изображений.
26. Устройство по п. 25, в котором первый синтаксический элемент содержит синтаксический элемент modification_of_ref_pic_idc, а второй синтаксический элемент содержит синтаксический элемент ref_pic_set_idx.
27. Устройство по п. 24, в котором средство для построения множества поднаборов опорных изображений содержит:
средство для построения первого поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в прядке декодирования и до текущего изображения в порядке вывода, и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования;
средство для построения второго поднабора опорных изображений, который идентифицирует краткосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и после текущего изображения в порядке вывода и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования; и
средство для построения третьего поднабора опорных изображений, который идентифицирует долгосрочные опорные изображения, поступающие до текущего изображения в порядке декодирования и которые можно потенциально использовать для межкадрового предсказания текущего изображения и одного или нескольких из одного или нескольких изображений, следующих за текущим изображением в порядке декодирования, и
где средство для идентификации опорного изображения содержит
средство для идентификации опорного изображения по меньшей мере в одном из следующих поднаборов опорных изображений: первом поднаборе опорных изображений, втором поднаборе опорных изображений и/или третьем поднаборе опорных изображений.
28. Устройство по п. 24, дополнительно содержащее:
когда необходима модификация начального списка опорных изображений после построения начального списка опорных изображений:
средство для перемещения опорных изображений, идентифицированных в начальном списке опорных изображений в записях, следующих за текущей записью, к следующей записи в модифицированном списке опорных изображений.
29. Устройство по п. 24, дополнительно содержащее
средство для кодирования синтаксического элемента, который указывает, что необходима модификация списка опорных изображений.
RU2014116250/08A 2011-09-23 2012-09-20 Построение списка опорных изображений для видеокодирования RU2580098C2 (ru)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161538787P 2011-09-23 2011-09-23
US61/538,787 2011-09-23
US201161539433P 2011-09-26 2011-09-26
US61/539,433 2011-09-26
US201161542034P 2011-09-30 2011-09-30
US61/542,034 2011-09-30
US13/622,931 2012-09-19
US13/622,931 US9338474B2 (en) 2011-09-23 2012-09-19 Reference picture list construction for video coding
PCT/US2012/056362 WO2013043887A1 (en) 2011-09-23 2012-09-20 Reference picture list construction for video coding

Publications (2)

Publication Number Publication Date
RU2014116250A RU2014116250A (ru) 2015-10-27
RU2580098C2 true RU2580098C2 (ru) 2016-04-10

Family

ID=47911283

Family Applications (6)

Application Number Title Priority Date Filing Date
RU2014116243/08A RU2587420C2 (ru) 2011-09-23 2012-09-20 Управление буфером декодированных изображений
RU2014116245/08A RU2584510C2 (ru) 2011-09-23 2012-09-20 Кодирование/декодирование видео с помощью подмножеств набора опорных картинок
RU2014116246/08A RU2571410C2 (ru) 2011-09-23 2012-09-20 Построение списка опорных изображений для видеокодирования
RU2014116254/08A RU2549162C1 (ru) 2011-09-23 2012-09-20 Построение списка опорных картинок для кодирования видео
RU2014116240/08A RU2551815C1 (ru) 2011-09-23 2012-09-20 Кодирование опорной картинки для набора опорных картинок
RU2014116250/08A RU2580098C2 (ru) 2011-09-23 2012-09-20 Построение списка опорных изображений для видеокодирования

Family Applications Before (5)

Application Number Title Priority Date Filing Date
RU2014116243/08A RU2587420C2 (ru) 2011-09-23 2012-09-20 Управление буфером декодированных изображений
RU2014116245/08A RU2584510C2 (ru) 2011-09-23 2012-09-20 Кодирование/декодирование видео с помощью подмножеств набора опорных картинок
RU2014116246/08A RU2571410C2 (ru) 2011-09-23 2012-09-20 Построение списка опорных изображений для видеокодирования
RU2014116254/08A RU2549162C1 (ru) 2011-09-23 2012-09-20 Построение списка опорных картинок для кодирования видео
RU2014116240/08A RU2551815C1 (ru) 2011-09-23 2012-09-20 Кодирование опорной картинки для набора опорных картинок

Country Status (19)

Country Link
US (10) US9420307B2 (ru)
EP (7) EP2759136B1 (ru)
JP (10) JP5940668B2 (ru)
KR (7) KR101614633B1 (ru)
CN (15) CN108513128B (ru)
AR (6) AR089562A1 (ru)
AU (6) AU2012312338B2 (ru)
BR (6) BR112014006854A2 (ru)
CA (7) CA2849499C (ru)
ES (1) ES2776147T3 (ru)
HK (5) HK1247013A1 (ru)
IL (8) IL231210B (ru)
IN (4) IN2014CN01825A (ru)
MY (6) MY166674A (ru)
RU (6) RU2587420C2 (ru)
SG (6) SG11201400220VA (ru)
TW (6) TWI600311B (ru)
WO (7) WO2013043887A1 (ru)
ZA (6) ZA201402898B (ru)

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6008334B2 (ja) 2011-08-25 2016-10-19 サン パテント トラスト 復号装置及び復号方法
US8804816B2 (en) * 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
ES2625097T3 (es) 2011-09-07 2017-07-18 Sun Patent Trust Método de codificación de imágenes y aparato de codificación de imágenes
EP2760205B1 (en) 2011-09-19 2020-11-04 Sun Patent Trust Image decoding method, image decoding device
US9420307B2 (en) * 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
CN103843341B (zh) * 2011-09-27 2017-06-13 瑞典爱立信有限公司 用于管理视频解码过程中的画面的解码器及其方法
US20140233653A1 (en) * 2011-09-30 2014-08-21 Telefonaktiebolaget L M Ericsson (Publ) Decoder and encoder for picture outputting and methods thereof
US8768079B2 (en) 2011-10-13 2014-07-01 Sharp Laboratories Of America, Inc. Tracking a reference picture on an electronic device
US20130094774A1 (en) * 2011-10-13 2013-04-18 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US8855433B2 (en) * 2011-10-13 2014-10-07 Sharp Kabushiki Kaisha Tracking a reference picture based on a designated picture on an electronic device
US8787688B2 (en) * 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
JP5995111B2 (ja) 2011-10-19 2016-09-21 サン パテント トラスト 画像符号化方法及び画像符号化装置
WO2013062470A1 (en) * 2011-10-24 2013-05-02 Telefonaktiebolaget L M Ericsson (Publ) Reference picture marking
WO2013061551A1 (ja) 2011-10-27 2013-05-02 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
PL2773111T3 (pl) 2011-10-28 2020-06-29 Sun Patent Trust Sposób kodowania obrazów, sposób dekodowania obrazów, urządzenie do kodowania obrazów i urządzenie do dekodowania obrazów
WO2013061549A1 (ja) 2011-10-28 2013-05-02 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
CN107277533B (zh) 2011-10-28 2020-04-24 三星电子株式会社 帧间预测的方法及其装置和运动补偿的方法及其装置
CN103096049A (zh) * 2011-11-02 2013-05-08 华为技术有限公司 一种视频处理方法及系统、相关设备
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
EP2777276B1 (en) 2011-11-08 2019-05-01 Nokia Technologies Oy Reference picture handling
US10440389B2 (en) * 2011-11-11 2019-10-08 Lg Electronics Inc. Method and device for transmitting image information, and decoding method and device using same
JP6078927B2 (ja) * 2012-01-10 2017-02-15 サン パテント トラスト 動画像符号化方法、動画像符号化装置、動画像復号方法、及び、動画像復号装置
US9654772B2 (en) * 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US8867852B2 (en) 2012-01-19 2014-10-21 Sharp Kabushiki Kaisha Decoding a picture based on a reference picture set on an electronic device
US8693793B2 (en) * 2012-01-19 2014-04-08 Sharp Laboratories Of America, Inc. Reducing reference picture set signal overhead on an electronic device
US9973749B2 (en) * 2012-01-20 2018-05-15 Nokia Technologies Oy Method for video coding and an apparatus, a computer-program product, a system, and a module for the same
US20130188709A1 (en) 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
CN107835428B (zh) * 2012-03-02 2021-09-24 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US20150063463A1 (en) * 2012-04-15 2015-03-05 Samsung Electronics Co., Ltd. Method and device for coding multi-layer video, and method and device for decoding multi-layer video
US9532055B2 (en) * 2012-04-16 2016-12-27 Microsoft Technology Licensing, Llc Constraints and unit types to simplify video random access
KR20130116782A (ko) 2012-04-16 2013-10-24 한국전자통신연구원 계층적 비디오 부호화에서의 계층정보 표현방식
US9420286B2 (en) 2012-06-15 2016-08-16 Qualcomm Incorporated Temporal motion vector prediction in HEVC and its extensions
HRP20230430T1 (hr) * 2012-06-25 2023-07-07 Huawei Technologies Co., Ltd. Postupni pristup vremenskom sloju slika u videokompresiji
US9225978B2 (en) * 2012-06-28 2015-12-29 Qualcomm Incorporated Streaming adaption based on clean random access (CRA) pictures
JP5891975B2 (ja) * 2012-07-02 2016-03-23 富士通株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法および動画像復号方法
RU2647674C1 (ru) * 2012-07-02 2018-03-16 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, определяющие список опорных изображений внешнего прогнозирования в зависимости от размера блока
US9584804B2 (en) 2012-07-10 2017-02-28 Qualcomm Incorporated Coding SEI NAL units for video coding
US9167248B2 (en) 2012-07-13 2015-10-20 Qualcomm Incorporated Reference picture list modification for video coding
US9357195B2 (en) 2012-08-16 2016-05-31 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
WO2014042460A1 (ko) * 2012-09-13 2014-03-20 엘지전자 주식회사 영상 부호화/복호화 방법 및 장치
US9392268B2 (en) 2012-09-28 2016-07-12 Qualcomm Incorporated Using base layer motion information
US20140092988A1 (en) * 2012-09-28 2014-04-03 Sharp Laboratories Of America, Inc. Systems and methods for reference picture set extension
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
KR101692651B1 (ko) * 2012-10-10 2017-01-03 지티이 코포레이션 미디어 전송 및 저장을 위해 무작위 접속 정보의 캡슐화를 위한 방법 및 장치
US20140140406A1 (en) * 2012-11-16 2014-05-22 General Instrument Corporation Devices and methods for processing of non-idr related syntax for high efficiency video coding (hevc)
JP6209772B2 (ja) * 2013-01-15 2017-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. シグナリングを用いたビデオデコーダ
PL2946556T3 (pl) * 2013-01-16 2017-04-28 Telefonaktiebolaget Lm Ericsson (Publ) Koder i dekoder oraz metoda kodowania sekwencji filmowej
KR102219909B1 (ko) * 2013-04-05 2021-02-24 삼성전자주식회사 멀티 레이어 비디오의 복호화 방법 및 장치, 멀티 레이어 비디오의 부호화 방법 및 장치
KR20140122200A (ko) * 2013-04-05 2014-10-17 삼성전자주식회사 멀티 레이어 비디오의 복호화 방법 및 장치, 멀티 레이어 비디오의 부호화 방법 및 장치
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
SG10201913551WA (en) * 2013-04-07 2020-03-30 Dolby Int Ab Signaling change in output layer sets
CN103268553A (zh) * 2013-04-11 2013-08-28 蒋月琴 利用点编码的图书交易、租赁电子商务系统
WO2014168561A1 (en) * 2013-04-12 2014-10-16 Telefonaktiebolaget L M Ericsson (Publ) Constructing inter-layer reference picture lists
CN105325003B (zh) * 2013-04-17 2019-05-28 诺基亚技术有限公司 用于视频编码和解码的装置、方法
JP6361866B2 (ja) * 2013-05-09 2018-07-25 サン パテント トラスト 画像処理方法および画像処理装置
US10003815B2 (en) * 2013-06-03 2018-06-19 Qualcomm Incorporated Hypothetical reference decoder model and conformance for cross-layer random access skipped pictures
US9565454B2 (en) * 2013-06-24 2017-02-07 Microsoft Technology Licensing, Llc Picture referencing control for video decoding using a graphics processor
WO2015009021A1 (ko) 2013-07-15 2015-01-22 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
WO2015009009A1 (ko) 2013-07-15 2015-01-22 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
CN105453562B (zh) 2013-07-30 2018-12-25 株式会社Kt 支持多个层的图像编码和解码方法以及使用该方法的装置
US9762909B2 (en) 2013-07-30 2017-09-12 Kt Corporation Image encoding and decoding method supporting plurality of layers and apparatus using same
WO2015016534A1 (ko) * 2013-07-30 2015-02-05 주식회사 케이티 복수의 레이어를 지원하는 영상의 부호화 및 복호화 방법 및 이를 이용하는 장치
US9344218B1 (en) * 2013-08-19 2016-05-17 Zoom Video Communications, Inc. Error resilience for interactive real-time multimedia applications
JPWO2015034061A1 (ja) * 2013-09-06 2017-03-02 三菱電機株式会社 動画像符号化装置、動画像トランスコード装置、動画像符号化方法、動画像トランスコード方法及び動画像ストリーム伝送システム
WO2015053525A1 (ko) * 2013-10-11 2015-04-16 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
CN105765978B (zh) * 2013-10-11 2019-01-29 韩国电子通信研究院 用于编码/解码图像的方法和使用其的装置
JP6401707B2 (ja) * 2013-10-16 2018-10-10 シャープ株式会社 画像復号装置、画像復号方法、および記録媒体
US9628820B2 (en) * 2013-11-19 2017-04-18 Qualcomm Incorporated POC value design for multi-layer video coding
US9807407B2 (en) * 2013-12-02 2017-10-31 Qualcomm Incorporated Reference picture selection
CN105850126B (zh) * 2013-12-24 2019-03-26 株式会社Kt 用于对多层视频信号进行编码/解码的方法和装置
CN104754347B (zh) * 2013-12-26 2019-05-17 中兴通讯股份有限公司 视频图像序号的编码、解码方法及装置、电子设备
WO2015103462A1 (en) * 2014-01-02 2015-07-09 Vidyo, Inc. Overlays using auxiliary pictures
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
KR20150110295A (ko) 2014-03-24 2015-10-02 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
CN106464905B (zh) * 2014-05-06 2019-06-07 寰发股份有限公司 用于块内复制模式编码的块向量预测方法
WO2015192991A1 (en) 2014-06-18 2015-12-23 Telefonaktiebolaget L M Ericsson (Publ) Random access in a video bitstream
KR101895176B1 (ko) * 2014-06-18 2018-09-04 텔레폰악티에볼라겟엘엠에릭슨(펍) 독립 랜덤 액세스 포인트 화상
EP2958328A1 (en) * 2014-06-20 2015-12-23 Thomson Licensing Method and device for signaling in a bitstream a picture/video format of an LDR picture and a picture/video format of a decoded HDR picture obtained from said LDR picture and an illumination picture
US10158867B2 (en) * 2014-06-20 2018-12-18 Qualcomm Incorporated Picture order count reset for multi-layer codecs
US9807419B2 (en) * 2014-06-25 2017-10-31 Qualcomm Incorporated Recovery point SEI message in multi-layer video codecs
KR101610725B1 (ko) * 2014-09-23 2016-04-08 삼성전자주식회사 참조 빈도에 따라 참조 영상 데이터를 제어하는 비디오 부복호화 방법 및 장치
US9848198B2 (en) * 2014-10-06 2017-12-19 Qualcomm Incorporated Diagonal copy for palette mode coding
GB2531271A (en) 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
JP2016092837A (ja) * 2014-10-30 2016-05-23 株式会社東芝 映像圧縮装置、映像再生装置および映像配信システム
KR20160071569A (ko) 2014-12-11 2016-06-22 삼성전자주식회사 비디오 장치에서의 영상 처리 방법 및 그에 따른 비디오 장치
KR102206504B1 (ko) * 2015-04-29 2021-01-22 에이치에프아이 이노베이션 인크. 인트라 블록 복사 참조 리스트 구축을 위한 방법 및 장치
CA2986613C (en) 2015-05-21 2020-04-28 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation
CN115134610A (zh) 2015-06-11 2022-09-30 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
CN106528552B (zh) * 2015-09-09 2019-10-22 杭州海康威视数字技术股份有限公司 图像搜索方法及系统
EP3145143B1 (en) * 2015-09-15 2019-03-20 Nxp B.V. Differential detector
US20170085871A1 (en) * 2015-09-22 2017-03-23 Ati Technologies Ulc Real time video coding system with error recovery using earlier reference picture
KR102477964B1 (ko) 2015-10-12 2022-12-16 삼성전자주식회사 미디어 전송 시스템에서 비디오 비트스트림의 임의 접근 및 재생을 가능하게 하는 기법
EP3371974B1 (en) * 2015-11-06 2024-05-01 Microsoft Technology Licensing, LLC Flexible reference picture management for video encoding
CN106817585B (zh) * 2015-12-02 2020-05-01 掌赢信息科技(上海)有限公司 一种利用长期参考帧的视频编码方法、电子设备和系统
JP6119891B2 (ja) * 2016-02-25 2017-04-26 富士通株式会社 動画像符号化方法
US10404979B2 (en) * 2016-03-17 2019-09-03 Mediatek Inc. Video coding with interpolated reference pictures
JP6237829B2 (ja) * 2016-06-23 2017-11-29 富士通株式会社 動画像符号化用コンピュータプログラム
JP6237831B2 (ja) * 2016-06-23 2017-11-29 富士通株式会社 動画像復号用コンピュータプログラム
JP6237830B2 (ja) * 2016-06-23 2017-11-29 富士通株式会社 動画像復号方法
CN113873240A (zh) * 2016-06-24 2021-12-31 株式会社Kt 用于处理视频信号的方法和设备
KR102513507B1 (ko) * 2016-07-01 2023-03-22 고쿠리츠다이가쿠호진 도호쿠다이가쿠 장기 섬유증의 예방 또는 치료제
CN107592543B (zh) * 2016-07-06 2019-12-24 北京大学 视频解码处理方法及装置
EP3563571A4 (en) 2016-12-30 2020-02-12 Telefonaktiebolaget LM Ericsson (publ) DECODED IMAGE BUFFER MEMORY MANAGEMENT FOR PROCESSING PREDICTION OF CROSS IMAGE DATA
CN107426567B (zh) * 2017-05-19 2019-11-15 西安电子科技大学 基于编码顺序已知图像集的多参考图像确定方法
EP3721633A1 (en) * 2017-12-06 2020-10-14 V-Nova International Limited Hierarchical data structure
CN108650554A (zh) * 2018-04-26 2018-10-12 维沃移动通信有限公司 一种多媒体文件播放控制方法及移动终端
KR102609949B1 (ko) 2018-08-17 2023-12-04 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 참조 영상 관리
CN110832868A (zh) * 2018-08-31 2020-02-21 深圳市大疆创新科技有限公司 编码方法、解码方法、编码设备和解码设备
EP3847804B1 (en) * 2018-09-12 2022-12-07 Huawei Technologies Co., Ltd. Index signaling for reference picture list structures
CN116055732A (zh) 2018-09-14 2023-05-02 华为技术有限公司 视频译码方法,设备以及非瞬时性计算机可读介质
WO2020059687A1 (en) * 2018-09-21 2020-03-26 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
US11394989B2 (en) * 2018-12-10 2022-07-19 Tencent America LLC Method and apparatus for video coding
US11196988B2 (en) * 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
US11095900B2 (en) 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
AU2018454766A1 (en) 2018-12-25 2021-04-08 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Decoding prediction method and apparatus, and computer storage medium
US10904545B2 (en) * 2018-12-26 2021-01-26 Tencent America LLC Method for syntax controlled decoded picture buffer management
JP7184911B2 (ja) 2019-01-02 2022-12-06 エルジー エレクトロニクス インコーポレイティド 画面間予測を使用してビデオ信号を処理するための方法及び装置
CN111416981B (zh) * 2019-01-07 2023-06-02 浙江大学 视频图像解码、编码方法及装置
WO2020159994A1 (en) * 2019-01-28 2020-08-06 Op Solutions, Llc Online and offline selection of extended long term reference picture retention
US11595652B2 (en) 2019-01-28 2023-02-28 Op Solutions, Llc Explicit signaling of extended long term reference picture retention
JP2022524917A (ja) * 2019-01-28 2022-05-11 オーピー ソリューションズ, エルエルシー 延長された長期参照ピクチャ保持の明示的信号伝達
WO2020164634A1 (en) 2019-02-15 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Restrictions of usage of non-power-two-partition tree in video compression
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
CN113615175A (zh) 2019-03-11 2021-11-05 华为技术有限公司 视频译码中的逐步解码刷新
WO2020184999A1 (ko) * 2019-03-12 2020-09-17 현대자동차주식회사 영상 부호화 및 복호화 방법 및 장치
CN111726632B (zh) * 2019-03-18 2022-08-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
EP4340360A2 (en) 2019-03-18 2024-03-20 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Image component prediction method, encoder, decoder and storage medium
CN113796085A (zh) * 2019-05-06 2021-12-14 华为技术有限公司 用于逐步解码刷新的假想参考解码器
US11303913B2 (en) * 2019-06-19 2022-04-12 Qualcomm Incorporated Decoded picture buffer indexing
EP3977727A4 (en) * 2019-07-03 2022-08-10 Huawei Technologies Co., Ltd. REFERENCE IMAGE TYPES IN REFERENCE IMAGE LISTS
NZ784015A (en) * 2019-07-08 2024-03-22 Huawei Tech Co Ltd Handling of multiple picture size and conformance windows for reference picture resampling in video coding
CN117336468A (zh) 2019-08-10 2024-01-02 北京字节跳动网络技术有限公司 视频比特流中的子图片相关信令通知
AU2020354926A1 (en) 2019-09-24 2022-04-07 Huawei Technologies Co., Ltd. Decoded picture buffer operation for resolution changes
CA3152445A1 (en) * 2019-09-24 2021-04-01 Huawei Technologies Co., Ltd. Signaling of picture header in video coding
CN117528094A (zh) * 2019-09-24 2024-02-06 华为技术有限公司 图像级非图像级语法元素的指示
AU2020322053A1 (en) * 2019-10-07 2022-05-05 Huawei Technologies Co., Ltd. Avoidance of redundant signaling in multi-layer video bitstreams
WO2021118261A1 (ko) * 2019-12-12 2021-06-17 엘지전자 주식회사 영상 정보를 시그널링하는 방법 및 장치
MX2022006965A (es) * 2019-12-12 2022-09-19 Lg Electronics Inc Método y dispositivo para señalización de información de imagen.
JP7375200B2 (ja) * 2019-12-12 2023-11-07 エルジー エレクトロニクス インコーポレイティド ピクチャレベルまたはスライスレベルで適用される画像情報をシグナリングする方法及び装置
KR20220114570A (ko) 2019-12-20 2022-08-17 주식회사 윌러스표준기술연구소 비디오 신호 처리 방법 및 이를 위한 장치
KR20220114557A (ko) 2019-12-26 2022-08-17 바이트댄스 아이엔씨 코딩된 픽처 내에서 디코딩 순서를 구현하기 위한 기술들
WO2021133519A1 (en) * 2019-12-27 2021-07-01 Alibaba Group Holding Limited Methods and systems for performing gradual decoding refresh processing on pictures
WO2021137597A1 (ko) * 2019-12-30 2021-07-08 엘지전자 주식회사 Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치
BR112022014484A2 (pt) * 2020-01-23 2022-09-13 Huawei Tech Co Ltd Método de decodificação de uma sequência de vídeo codificada e decodificador, método de codificação de uma sequência de vídeo e codificador, e mídia legível por computador não transitória
EP4088453A4 (en) 2020-02-14 2023-05-10 Beijing Bytedance Network Technology Co., Ltd. COLOCATED IMAGE INDICATION IN VIDEO BITSTREAMS
AR121125A1 (es) * 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Interacción entre cabecera de imagen y cabecera de segmento de un flujo de bits de video
EP4104428A4 (en) * 2020-03-16 2023-05-03 ByteDance Inc. DIRECT ACCESS POINT ACCESS UNIT IN SCALABLE VIDEO ENCODING
KR20220155293A (ko) 2020-03-17 2022-11-22 바이트댄스 아이엔씨 비디오 코딩에서 픽처 출력 플래그 표시
KR20220156029A (ko) 2020-03-31 2022-11-24 텔레폰악티에볼라겟엘엠에릭슨(펍) 구문 요소를 사용한 비디오 프로세싱
WO2021236903A1 (en) 2020-05-21 2021-11-25 Bytedance Inc. Signaling of gradual decoding refresh and reference picture lists
CN111770332B (zh) * 2020-06-04 2022-08-09 Oppo广东移动通信有限公司 插帧处理方法、插帧处理装置、存储介质与电子设备
KR20230019847A (ko) * 2020-06-08 2023-02-09 바이트댄스 아이엔씨 비디오 픽처에서 서브픽처 수에 대한 제약들
CN115917978A (zh) 2020-06-08 2023-04-04 字节跳动有限公司 对解码图片缓冲器的约束
US11621979B1 (en) 2020-12-31 2023-04-04 Benjamin Slotznick Method and apparatus for repositioning meeting participants within a virtual space view in an online meeting user interface based on gestures made by the meeting participants
US11546385B1 (en) 2020-12-31 2023-01-03 Benjamin Slotznick Method and apparatus for self-selection by participant to display a mirrored or unmirrored video feed of the participant in a videoconferencing platform
KR102264460B1 (ko) * 2020-12-31 2021-06-11 한전케이피에스 주식회사 공기압축기 전동기 정비 장치
US11330021B1 (en) * 2020-12-31 2022-05-10 Benjamin Slotznick System and method of mirroring a display of multiple video feeds in videoconferencing systems
CN114466227B (zh) * 2021-12-22 2023-08-04 天翼云科技有限公司 一种视频分析方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2409006C1 (ru) * 2006-10-20 2011-01-10 Нокиа Корпорейшн Маркировка виртуальных декодированных опорных изображений и список опорных изображений

Family Cites Families (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5777900A (en) * 1994-03-10 1998-07-07 Matsushita Electric Industrial Co., Ltd. Filtering processor and filter method
EP0898427A4 (en) 1997-02-13 2004-04-28 Mitsubishi Electric Corp ANIMATED IMAGE ESTIMATION SYSTEM
CN1190081C (zh) 1997-03-17 2005-02-16 松下电器产业株式会社 发送和接收动态图像数据的方法及其设备
GB2381403B (en) 2000-05-10 2004-12-01 Picturetel Corp Video coding using multiple buffers
US7643559B2 (en) 2001-09-14 2010-01-05 Ntt Docomo, Inc. Coding method, decoding method, coding apparatus, decoding apparatus, image processing system, coding program, and decoding program
CN1618235A (zh) 2002-01-22 2005-05-18 微软公司 用于防止起始码模仿和数据填充的方法和系统
US7149247B2 (en) 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
KR100959573B1 (ko) 2002-01-23 2010-05-27 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
EP3324624B1 (en) * 2002-04-19 2019-06-12 Panasonic Intellectual Property Corporation of America Motion vector calculating method
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
DK1742479T3 (da) 2002-07-11 2009-12-14 Panasonic Corp Multihypotese B-billede virtuel displaybuffer med lån af plads i H.264 post-dekoder bufferen
CN1312927C (zh) 2002-07-15 2007-04-25 株式会社日立制作所 动态图像编码方法及解码方法
US7492387B2 (en) 2002-08-05 2009-02-17 Chih-Lung Yang Implementation of MPCP MCU technology for the H.264 video standard
JP3513148B1 (ja) 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
FR2849332A1 (fr) 2002-12-20 2004-06-25 St Microelectronics Sa Procede et dispositif et decodage et d'affichage en marche arriere d'images mpeg, circuit pilote video et boitier decodeur incorporant un tel dispositif
MXPA05007453A (es) 2003-01-10 2005-09-12 Thomson Licensing Sa Toma de decision en modo rapido para codificacion inter-estructura.
JP4405272B2 (ja) 2003-02-19 2010-01-27 パナソニック株式会社 動画像復号化方法、動画像復号化装置及びプログラム
US8194751B2 (en) 2003-02-19 2012-06-05 Panasonic Corporation Moving picture coding method and moving picture decoding method
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US7724818B2 (en) 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
KR100510138B1 (ko) 2003-05-01 2005-08-26 삼성전자주식회사 참조 픽처 결정 방법, 그 움직임 보상 방법 및 그 장치
US7489342B2 (en) * 2004-12-17 2009-02-10 Mitsubishi Electric Research Laboratories, Inc. Method and system for managing reference pictures in multiview videos
US8175154B2 (en) 2003-06-03 2012-05-08 General Instrument Corporation Method for restructuring a group of pictures to provide for random access into the group of pictures
EP1642465A1 (en) * 2003-07-09 2006-04-05 THOMSON Licensing Video encoder with low complexity noise reduction
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
FI115589B (fi) 2003-10-14 2005-05-31 Nokia Corp Redundanttien kuvien koodaaminen ja dekoodaaminen
EP1703506A4 (en) 2004-01-06 2011-11-09 Pioneer Corp DEVICE AND METHOD FOR RECORDING INFORMATION
US20050201471A1 (en) 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US8036271B2 (en) * 2004-02-24 2011-10-11 Lsi Corporation Method and apparatus for determining a second picture for temporal direct-mode block prediction
US20060013318A1 (en) 2004-06-22 2006-01-19 Jennifer Webb Video error detection, recovery, and concealment
TWI268715B (en) 2004-08-16 2006-12-11 Nippon Telegraph & Telephone Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus
JP2008516556A (ja) 2004-10-13 2008-05-15 トムソン ライセンシング コンプレクシティスケーラブル映像符号化復号化方法及び装置
CN101065780A (zh) * 2004-10-14 2007-10-31 诺基亚公司 视频编码中的参考图像管理
US20060083298A1 (en) 2004-10-14 2006-04-20 Nokia Corporation Reference picture management in video coding
KR100786132B1 (ko) 2004-11-01 2007-12-21 한국전자통신연구원 적응적으로 세분화된 gop 구조를 이용한 계층적b픽쳐-기반 동영상 부호화 및 복호화 방법
US7166860B2 (en) 2004-12-30 2007-01-23 E. I. Du Pont De Nemours And Company Electronic device and process for forming same
KR100775143B1 (ko) 2005-01-11 2007-11-12 엘지전자 주식회사 영상정보 디코딩 방법
JP4769717B2 (ja) 2005-01-17 2011-09-07 パナソニック株式会社 画像復号化方法
US8208564B2 (en) 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
JP4311570B2 (ja) 2005-07-01 2009-08-12 株式会社ソニー・コンピュータエンタテインメント 再生装置、ビデオ復号装置および同期再生方法
EP1915871B1 (en) 2005-07-21 2017-07-05 Thomson Licensing Method and apparatus for weighted prediction for scalable video coding
US8028154B2 (en) 2005-07-29 2011-09-27 Broadcom Corporation Method and system for reducing instruction storage space for a processor integrated in a network adapter chip
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
JP2007067842A (ja) 2005-08-31 2007-03-15 Victor Co Of Japan Ltd 動画像符号化データ編集装置および動画像符号化データ編集方法
US8879857B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
KR20070038396A (ko) 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
EP1949701A1 (en) 2005-10-11 2008-07-30 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
CA2633819C (en) 2005-12-08 2016-12-06 Vidyo, Inc. Systems and methods for error resilience and random access in video communication systems
JP2007184791A (ja) 2006-01-06 2007-07-19 Victor Co Of Japan Ltd 動画像符号化データ再生装置
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
WO2007080223A1 (en) 2006-01-10 2007-07-19 Nokia Corporation Buffering of decoded reference pictures
EP1806930A1 (en) 2006-01-10 2007-07-11 Thomson Licensing Method and apparatus for constructing reference picture lists for scalable video
WO2007081177A1 (en) 2006-01-12 2007-07-19 Lg Electronics Inc. Processing multiview video
US7673116B2 (en) 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
AU2006338425B2 (en) 2006-02-13 2010-12-09 Kabushiki Kaisha Toshiba Moving image encoding/decoding method and device and program
EP1827009A1 (en) 2006-02-28 2007-08-29 Matsushita Electric Industrial Co., Ltd. Video encoder and decoder for an improved zapping service for mobile video reception
US8170116B2 (en) 2006-03-27 2012-05-01 Nokia Corporation Reference picture marking in scalable video encoding and decoding
KR100959538B1 (ko) 2006-03-30 2010-05-27 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US20100091845A1 (en) 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
CN101491095B (zh) 2006-03-30 2013-07-10 Lg电子株式会社 用于解码/编码视频信号的方法和装置
KR100877680B1 (ko) 2006-04-04 2009-01-09 삼성전자주식회사 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치
US8270492B2 (en) 2006-05-12 2012-09-18 Panasonic Corporation Moving picture decoding device
KR20070111969A (ko) 2006-05-19 2007-11-22 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 장치
US20080002770A1 (en) 2006-06-30 2008-01-03 Nokia Corporation Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices
BRPI0714022A2 (pt) 2006-07-06 2012-12-04 Thomson Licensing método e aparelho para separar o número do quadro e /ou a contagem de ordem de imagem (poc) para codificação e decodificação de vìdeo multi-visão
WO2008010039A2 (en) 2006-07-12 2008-01-24 Les Hôpitaux Universitaires De Geneve Medical device for tissue ablation
EP2052546A4 (en) 2006-07-12 2010-03-03 Lg Electronics Inc METHOD AND DEVICE FOR SIGNAL PROCESSING
JP4787100B2 (ja) 2006-07-27 2011-10-05 パナソニック株式会社 画像符号化装置
US7801223B2 (en) 2006-07-27 2010-09-21 Lsi Corporation Method for video decoder memory reduction
US8532178B2 (en) * 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
US20080165860A1 (en) 2006-08-31 2008-07-10 Zohair Sahraoui H.264 Data processing
WO2008030068A1 (en) 2006-09-07 2008-03-13 Lg Electronics Inc. Method and apparatus for decoding/encoding of a video signal
CN107295350A (zh) * 2006-10-13 2017-10-24 汤姆逊许可公司 用于多视点视频编码的参考图像列表管理语法
BRPI0716957A2 (pt) 2006-10-13 2013-10-29 Thomson Licensing Sintaxe de gerenciamento de lista de imagens de referência para codificação de vídeo de múltiplas vistas
ES2702704T3 (es) 2006-10-16 2019-03-05 Nokia Technologies Oy Sistema y procedimiento para implementar una administración eficiente de memoria intermedia decodificada en codificación de video de vistas múltiples
US7991236B2 (en) 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
JP2010507975A (ja) 2006-10-24 2010-03-11 トムソン ライセンシング 多視点映像符号化のための画像の管理
JP2008118221A (ja) 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
KR100856392B1 (ko) 2006-11-08 2008-09-04 한국전자통신연구원 현재 영상의 복원영역을 참조하는 동영상 부호화/복호화장치 및 그 방법
US8873932B2 (en) 2007-12-11 2014-10-28 Cisco Technology, Inc. Inferential processing to ascertain plural levels of picture interdependencies
US8416859B2 (en) 2006-11-13 2013-04-09 Cisco Technology, Inc. Signalling and extraction in compressed video of pictures belonging to interdependency tiers
CA2783599C (en) 2006-11-14 2013-06-25 Qualcomm Incorporated Systems and methods for channel switching
JP5157140B2 (ja) 2006-11-29 2013-03-06 ソニー株式会社 記録装置、記録方法、情報処理装置、情報処理方法、撮像装置およびビデオシステム
JP5114495B2 (ja) 2007-01-08 2013-01-09 トムソン ライセンシング ビデオストリームのスプライシングのための方法及び装置
CN101222638B (zh) * 2007-01-08 2011-12-07 华为技术有限公司 多视视频编解码方法及装置
KR100846802B1 (ko) 2007-02-14 2008-07-16 삼성전자주식회사 동영상 프레임의 디코딩 방법 및 인코딩 방법
JP5023739B2 (ja) 2007-02-28 2012-09-12 ソニー株式会社 画像情報符号化装置及び符号化方法
US20100266042A1 (en) 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
US8194151B2 (en) 2007-03-28 2012-06-05 Hitachi Kokusai Electric Inc. Image pickup apparatus
US8116537B2 (en) 2007-04-04 2012-02-14 Sony Corporation Image recording device, player device, imaging device, player system, method of recording image, and computer program
WO2008123917A2 (en) 2007-04-04 2008-10-16 Thomson Licensing Reference picture list management
US8494049B2 (en) 2007-04-09 2013-07-23 Cisco Technology, Inc. Long term reference frame management with error video feedback for compressed video communication
US20080268877A1 (en) 2007-04-24 2008-10-30 Motorola, Inc. Method and apparatus for exchanging signaling a wireless communication system
US20080301742A1 (en) 2007-06-04 2008-12-04 Nokia Corporation Time-interleaved simulcast for tune-in reduction
US8477852B2 (en) 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
CN100531400C (zh) 2007-07-26 2009-08-19 上海交通大学 基于宏块级和像素级运动估计的视频差错掩盖方法
TWI338869B (en) * 2007-08-03 2011-03-11 Via Tech Inc Method and apparatus for block-based digital encoded picture
US10298952B2 (en) * 2007-08-06 2019-05-21 Interdigital Madison Patent Holdings Methods and apparatus for motion skip move with multiple inter-view reference pictures
JP5125329B2 (ja) 2007-08-31 2013-01-23 富士通セミコンダクター株式会社 符号化装置と符号化方法、および復号化装置と復号化方法
US8121189B2 (en) 2007-09-20 2012-02-21 Microsoft Corporation Video decoding using created reference pictures
US8194741B2 (en) 2007-10-12 2012-06-05 Broadcom Corporation Method and system for processing B pictures with missing or invalid forward reference pictures
CA2704490A1 (en) 2007-11-05 2009-05-14 Thomson Licensing A scalable video coding method for fast channel change and increased error resilience
US8425545B2 (en) 2007-12-03 2013-04-23 Covidien Ag Cordless hand-held ultrasonic cautery cutting device and method
TWI459215B (zh) 2007-12-05 2014-11-01 Ol2 Inc 用於將程式碼及資料儲存於應用程式主機代管中心內之系統及方法
US7865675B2 (en) 2007-12-06 2011-01-04 Arm Limited Controlling cleaning of data values within a hardware accelerator
US8280375B2 (en) 2008-01-25 2012-10-02 Texas Instruments Incorporated System and method for managing radio link failures
JP2009260736A (ja) 2008-03-24 2009-11-05 Fujitsu Ltd エンコーディング装置、デコーディング装置、動画像処理方法、動画像処理システム、エンコーディングプログラムおよびデコーディングプログラム
JP2009260421A (ja) 2008-04-11 2009-11-05 Fujitsu Ltd 動画像処理システム、符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
US20090262683A1 (en) 2008-04-18 2009-10-22 Amit Khetawat Method and Apparatus for Setup and Release of User Equipment Context Identifiers in a Home Node B System
WO2009130561A1 (en) 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
US7782903B2 (en) 2008-05-14 2010-08-24 Newport Media, Inc. Hardware accelerated protocol stack
JP2009290389A (ja) 2008-05-28 2009-12-10 Hitachi Ltd 画像処理装置
JP2009296078A (ja) 2008-06-03 2009-12-17 Victor Co Of Japan Ltd 符号化データ再生装置、符号化データ再生方法、および符号化データ再生プログラム
WO2009152450A1 (en) 2008-06-12 2009-12-17 Cisco Technology, Inc. Picture interdependencies signals in context of mmco to assist stream manipulation
BRPI0915795A2 (pt) 2008-07-16 2015-11-10 Thomson Licensing método de codificação de vídeo escalonável para mudança rápida de canal para aumentar eficácia de codificação
US8781003B2 (en) 2008-07-17 2014-07-15 Cisco Technology, Inc. Splicing of encrypted video/audio content
WO2010014123A1 (en) 2008-07-26 2010-02-04 Thomson Licensing A real-time transport protocol (rtp) packetization method for fast channel change applications using scalable video coding (svc)
EP2313847A4 (en) 2008-08-19 2015-12-09 Digimarc Corp METHODS AND SYSTEMS FOR PROCESSING CONTENT
US8081018B2 (en) 2008-08-21 2011-12-20 Qualcomm Incorporated Low power radio frequency divider
KR101377527B1 (ko) 2008-10-14 2014-03-25 에스케이 텔레콤주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
US8462849B2 (en) 2008-12-23 2013-06-11 General Instrument Corporation Reference picture selection for sub-pixel motion estimation
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
EP2392138A4 (en) 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
KR101622950B1 (ko) 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
US20110026593A1 (en) * 2009-02-10 2011-02-03 New Wei Lee Image processing apparatus, image processing method, program and integrated circuit
WO2010096767A1 (en) 2009-02-20 2010-08-26 Cisco Technology, Inc. Signalling of decodable sub-sequences
JP5332773B2 (ja) 2009-03-18 2013-11-06 ソニー株式会社 画像処理装置および方法
JP5072893B2 (ja) 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
US8693539B2 (en) 2009-03-26 2014-04-08 Panasonic Corporation Coding method, error detecting method, decoding method, coding apparatus, error detecting apparatus, and decoding apparatus
US20100262711A1 (en) 2009-04-09 2010-10-14 Nokia Corporation Systems, methods, and apparatuses for media file streaming
KR20110139304A (ko) 2009-04-22 2011-12-28 엘지전자 주식회사 다시점 영상의 참조 픽쳐 리스트 변경 방법
CN101547368B (zh) * 2009-04-24 2011-03-09 炬力集成电路设计有限公司 一种图像中参考帧的处理装置、方法以及解码器
CN101572817B (zh) 2009-05-26 2011-01-05 北京邮电大学 一种用于空间可分级视频编码的编码模式选择方法
TWI384887B (zh) * 2009-06-11 2013-02-01 Univ Nat Central 多視點影像編解碼方法
MX2011003076A (es) 2009-06-17 2011-04-19 Panasonic Corp Medio de grabacion de informacion y dispositivo de reproduccion para reproducir imagenes en tercera dimension.
US8340510B2 (en) 2009-07-17 2012-12-25 Microsoft Corporation Implementing channel start and file seek for decoder
US8948241B2 (en) 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
KR101678968B1 (ko) 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US8457155B2 (en) * 2009-09-11 2013-06-04 Nokia Corporation Encoding and decoding a multi-view video signal
TW201123795A (en) 2009-09-29 2011-07-01 Nokia Corp System, method and apparatus for dynamic media file streaming
US8990821B2 (en) 2009-09-29 2015-03-24 International Business Machines Corporation Task dispatching based on composite queue size and upper and lower compare values
JP2011082683A (ja) 2009-10-05 2011-04-21 Sony Corp 画像処理装置、画像処理方法、及び、プログラム
CN102045557B (zh) 2009-10-20 2012-09-19 鸿富锦精密工业(深圳)有限公司 视频编解码方法及使用其的视频编码、解码装置
EP2497271B1 (en) 2009-11-06 2020-08-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Hybrid video coding
TW201121331A (en) 2009-12-10 2011-06-16 Novatek Microelectronics Corp Picture decoder
CN102104781B (zh) 2009-12-18 2013-03-20 联咏科技股份有限公司 图像解码器
US9992456B2 (en) 2010-02-24 2018-06-05 Thomson Licensing Dtv Method and apparatus for hypothetical reference decoder conformance error detection
EP2367394B1 (en) 2010-03-12 2015-11-25 BlackBerry Limited Base station and method for receiving transmissions on an enhanced random access channel
EP2996423B1 (en) 2010-03-12 2017-08-23 BlackBerry Limited Method and device for registration and data transmission using fast/zero contention resolution
JP2011199396A (ja) 2010-03-17 2011-10-06 Ntt Docomo Inc 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム
CN101917615A (zh) * 2010-06-03 2010-12-15 北京邮电大学 一种混合视频编码框架中的增强型双向运动矢量预测方法
CN101888553B (zh) 2010-06-30 2012-01-11 香港应用科技研究院有限公司 用于可伸缩视频编码的方法和装置
TW201210325A (en) 2010-07-21 2012-03-01 Nokia Corp Method and apparatus for indicating switching points in a streaming session
JP5728649B2 (ja) 2010-08-06 2015-06-03 パナソニックIpマネジメント株式会社 再生装置、集積回路、再生方法、プログラム
US20120230409A1 (en) 2011-03-07 2012-09-13 Qualcomm Incorporated Decoded picture buffer management
US9516379B2 (en) 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs
US9706227B2 (en) 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
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
KR101578308B1 (ko) * 2011-06-30 2015-12-16 텔레폰악티에볼라겟엘엠에릭슨(펍) 레퍼러스 픽처 시그널링
JP5624693B2 (ja) * 2011-06-30 2014-11-12 テレフオンアクチーボラゲット エル エムエリクソン(パブル) 絶対的又は明示的な参照ピクチャ信号伝送
MX2014000048A (es) 2011-07-02 2014-04-30 Samsung Electronics Co Ltd Metodo y aparato para multiplexar y desmultiplexar datos de video para identificar el estado de reproduccion de los datos de video.
US20130064284A1 (en) * 2011-07-15 2013-03-14 Telefonaktiebolaget L M Ericsson (Publ) Encoder And Method Thereof For Encoding a Representation of a Picture of a Video Stream
WO2013030458A1 (en) 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding
EP2750387B1 (en) 2011-09-22 2019-06-19 LG Electronics Inc. Video decoding method and video decoding apparatus
US9420307B2 (en) 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
KR101835625B1 (ko) 2011-10-26 2018-04-19 인텔렉추얼디스커버리 주식회사 움직임 후보 리스트 생성 방법 및 그를 이용한 부호화 장치
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
KR102559468B1 (ko) * 2012-01-19 2023-07-24 브이아이디 스케일, 인크. 비디오 코딩 기준 화상 목록들을 시그널링하고 구성하는 방법 및 장치
US9369710B2 (en) * 2012-02-06 2016-06-14 Qualcomm Incorporated Reference picture list modification for video coding
US9602817B2 (en) 2012-07-12 2017-03-21 Cisco Technology, Inc. Management of decoded picture buffer at picture format transitions
WO2014081226A1 (ko) * 2012-11-21 2014-05-30 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
US10404979B2 (en) * 2016-03-17 2019-09-03 Mediatek Inc. Video coding with interpolated reference pictures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2409006C1 (ru) * 2006-10-20 2011-01-10 Нокиа Корпорейшн Маркировка виртуальных декодированных опорных изображений и список опорных изображений

Also Published As

Publication number Publication date
BR112014006839A2 (pt) 2017-04-04
WO2013043913A1 (en) 2013-03-28
JP2014530570A (ja) 2014-11-17
IL256349B (en) 2019-02-28
AU2012312344A1 (en) 2014-04-03
AU2012312324B2 (en) 2015-09-24
JP2014530569A (ja) 2014-11-17
BR112014006867A2 (pt) 2017-04-04
WO2013043892A3 (en) 2013-10-31
CA2849283A1 (en) 2013-03-28
RU2014116245A (ru) 2015-10-27
CN108513128A (zh) 2018-09-07
CN103828375B (zh) 2017-06-09
US10542285B2 (en) 2020-01-21
ZA201402900B (en) 2022-11-30
EP2759130B1 (en) 2020-08-12
CN103814574B (zh) 2018-01-26
CA2849501A1 (en) 2013-03-28
HK1243571A1 (zh) 2018-07-13
RU2584510C2 (ru) 2016-05-20
CN103828368A (zh) 2014-05-28
SG11201400264XA (en) 2014-07-30
US20130077677A1 (en) 2013-03-28
CN107517381B (zh) 2020-03-24
RU2571410C2 (ru) 2015-12-20
IL231266A0 (en) 2014-04-30
IN2014CN01822A (ru) 2015-05-29
BR112014006843A2 (pt) 2017-04-04
EP2759134B1 (en) 2020-02-19
ZA201402898B (en) 2016-05-25
CN103828374A (zh) 2014-05-28
IL231267A (en) 2016-08-31
CN107770523B (zh) 2020-07-17
CA2849501C (en) 2017-02-28
RU2014116246A (ru) 2015-10-27
WO2013043893A2 (en) 2013-03-28
MY166681A (en) 2018-07-18
US11490119B2 (en) 2022-11-01
MY172880A (en) 2019-12-13
TW201334542A (zh) 2013-08-16
JP2014526858A (ja) 2014-10-06
CN103828365B (zh) 2017-10-31
US20130077680A1 (en) 2013-03-28
JP6275780B2 (ja) 2018-02-07
RU2587420C2 (ru) 2016-06-20
US20130077685A1 (en) 2013-03-28
JP2016213865A (ja) 2016-12-15
WO2013043907A1 (en) 2013-03-28
KR101613804B1 (ko) 2016-04-19
CN107770523A (zh) 2018-03-06
EP2759131A1 (en) 2014-07-30
JP5882475B2 (ja) 2016-03-09
KR20140066252A (ko) 2014-05-30
CA2848406C (en) 2017-05-16
US9420307B2 (en) 2016-08-16
CA2849281C (en) 2017-02-28
CN103999462A (zh) 2014-08-20
CN107682695A (zh) 2018-02-09
KR101615051B1 (ko) 2016-04-22
IL231211A0 (en) 2014-04-30
CA2849283C (en) 2020-03-24
CN108174202A (zh) 2018-06-15
EP2759136A2 (en) 2014-07-30
US9338474B2 (en) 2016-05-10
TWI521944B (zh) 2016-02-11
BR112014006842A2 (pt) 2017-04-04
MY171041A (en) 2019-09-23
JP2019126079A (ja) 2019-07-25
IL231210A0 (en) 2014-04-30
JP5940668B2 (ja) 2016-06-29
TWI521952B (zh) 2016-02-11
JP5940669B2 (ja) 2016-06-29
BR112014006842B1 (pt) 2022-03-03
KR101614635B1 (ko) 2016-04-21
CN108513128B (zh) 2022-06-24
US10856007B2 (en) 2020-12-01
AR089561A1 (es) 2014-09-03
WO2013043892A2 (en) 2013-03-28
AU2012312318B2 (en) 2015-07-30
TW201330626A (zh) 2013-07-16
HK1253675A1 (zh) 2019-06-28
TWI531218B (zh) 2016-04-21
KR101553788B1 (ko) 2015-10-01
US20130077678A1 (en) 2013-03-28
IL256349A (en) 2018-02-28
AU2012312323B2 (en) 2015-05-07
HK1247761A1 (zh) 2018-09-28
KR20140085460A (ko) 2014-07-07
TW201338558A (zh) 2013-09-16
CN103828375A (zh) 2014-05-28
SG11201400220VA (en) 2014-05-29
CN107517381A (zh) 2017-12-26
US9131245B2 (en) 2015-09-08
KR101614633B1 (ko) 2016-04-29
US20180324458A1 (en) 2018-11-08
HK1197329A1 (en) 2015-01-09
CN103814574A (zh) 2014-05-21
CA2848406A1 (en) 2013-03-28
ZA201402913B (en) 2017-11-29
KR20140065003A (ko) 2014-05-28
JP2014530567A (ja) 2014-11-17
IN2014CN01821A (ru) 2015-05-29
JP2014530573A (ja) 2014-11-17
US20130077687A1 (en) 2013-03-28
CN103814575B (zh) 2017-05-24
EP2759135B1 (en) 2017-02-08
TWI530162B (zh) 2016-04-11
WO2013043887A1 (en) 2013-03-28
US20130077679A1 (en) 2013-03-28
CN103999462B (zh) 2017-09-22
AU2012312338B2 (en) 2015-08-27
AR089558A1 (es) 2014-09-03
KR20140066251A (ko) 2014-05-30
IL264182A (en) 2019-02-28
AU2012312317A1 (en) 2014-04-03
HK1247013A1 (zh) 2018-09-14
JP6009569B2 (ja) 2016-10-19
MY169092A (en) 2019-02-18
AR089557A1 (es) 2014-09-03
KR101612651B1 (ko) 2016-04-14
MY166674A (en) 2018-07-18
CN107580229B (zh) 2020-06-09
CN108184123A (zh) 2018-06-19
US10034018B2 (en) 2018-07-24
JP2014530568A (ja) 2014-11-17
SG11201400387PA (en) 2014-05-29
AU2012312344B2 (en) 2015-09-17
AU2012312338A1 (en) 2014-03-27
CA3062214A1 (en) 2013-03-28
KR101614634B1 (ko) 2016-04-29
US20130077681A1 (en) 2013-03-28
CA2849281A1 (en) 2013-03-28
KR20140065001A (ko) 2014-05-28
TWI600311B (zh) 2017-09-21
EP2759130A1 (en) 2014-07-30
BR112014006854A2 (pt) 2017-04-04
AR089560A1 (es) 2014-09-03
TWI498004B (zh) 2015-08-21
MY171154A (en) 2019-09-27
IL231210B (en) 2018-02-28
AR089562A1 (es) 2014-09-03
CA2849284C (en) 2017-01-31
AU2012312317B2 (en) 2015-05-07
IN2014CN01827A (ru) 2015-05-29
WO2013043893A3 (en) 2013-08-22
CN108337517A (zh) 2018-07-27
IL264182B (en) 2021-03-25
US9237356B2 (en) 2016-01-12
WO2013043886A3 (en) 2013-10-31
ZA201402902B (en) 2016-11-30
IL231316A (en) 2016-09-29
TW201325251A (zh) 2013-06-16
RU2014116243A (ru) 2015-10-27
US20200107045A1 (en) 2020-04-02
EP2759133B1 (en) 2020-08-12
SG11201400317XA (en) 2014-06-27
BR112014006845B1 (pt) 2022-07-19
IN2014CN01825A (ru) 2015-05-29
JP5976816B2 (ja) 2016-08-24
US20210044827A1 (en) 2021-02-11
ES2776147T3 (es) 2020-07-29
EP2759136B1 (en) 2023-01-04
AU2012312323A1 (en) 2014-04-03
WO2013044075A3 (en) 2013-10-03
EP2759133A1 (en) 2014-07-30
JP5937216B2 (ja) 2016-06-22
WO2013043886A2 (en) 2013-03-28
KR20140065004A (ko) 2014-05-28
EP2759132B1 (en) 2019-12-18
JP2014530571A (ja) 2014-11-17
CN103828374B (zh) 2017-09-08
CN108184123B (zh) 2021-06-01
RU2014116250A (ru) 2015-10-27
AU2012312324A1 (en) 2014-04-17
JP2018093506A (ja) 2018-06-14
US9998757B2 (en) 2018-06-12
CN107682695B (zh) 2020-06-30
BR112014006845A2 (pt) 2017-04-04
IL231266A (en) 2016-03-31
CA2849284A1 (en) 2013-03-28
IL231320A (en) 2016-09-29
JP6498794B2 (ja) 2019-04-10
TW201320762A (zh) 2013-05-16
RU2551815C1 (ru) 2015-05-27
CN103828365A (zh) 2014-05-28
CA2849499C (en) 2018-03-06
CN107580229A (zh) 2018-01-12
CN108174202B (zh) 2021-06-01
US9106927B2 (en) 2015-08-11
AU2012312318A1 (en) 2014-04-03
TW201338557A (zh) 2013-09-16
CA2849499A1 (en) 2013-03-28
CN103828368B (zh) 2018-03-20
ZA201402901B (en) 2017-10-29
SG11201400265WA (en) 2014-08-28
EP2759135A2 (en) 2014-07-30
AR089559A1 (es) 2014-09-03
IL231320A0 (en) 2014-04-30
EP2759134A2 (en) 2014-07-30
WO2013044075A2 (en) 2013-03-28
IL231267A0 (en) 2014-04-30
EP2759132A2 (en) 2014-07-30
KR20140065002A (ko) 2014-05-28
SG11201400449UA (en) 2014-05-29
CN103814575A (zh) 2014-05-21
IL231211A (en) 2017-08-31
ZA201402899B (en) 2017-06-28
RU2549162C1 (ru) 2015-04-20
JP6038929B2 (ja) 2016-12-07
CN108337517B (zh) 2022-03-29
IL231316A0 (en) 2014-04-30

Similar Documents

Publication Publication Date Title
RU2580098C2 (ru) Построение списка опорных изображений для видеокодирования

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20180302

PC41 Official registration of the transfer of exclusive right

Effective date: 20211203