ПРОИЗВОЛЬНЫЙ ДОСТУП С УСОВЕРШЕНСТВОВАННЫМ УПРАВЛЕНИЕМ БУФЕРОМ ДЕКОДИРОВАННЫХ ИЗОБРАЖЕНИЙ (DPB) ПРИ КОДИРОВАНИИ ВИДЕО
RANDOM ACCESS WITH ADVANCED CONTROL OF DECODED PICTURE BUFFER (DPB) IN VIDEO ENCODING

[0001] Данная заявка испрашивает приоритет предварительной заявки на патент (США) номер 61/553802, поданной 31 октября 2011 года, и предварительной заявки на патент (США) номер 61/595605, поданной 6 февраля 2012 года, содержимое каждой из которых полностью содержится в данном документе по ссылке.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Данное раскрытие сущности относится к кодированию видео, а более конкретно, к кодированию кадров видеоданных, формируемых посредством процессов кодирования видео.
УРОВЕНЬ ТЕХНИКИ
[0003] Поддержка цифрового видео может быть включена в широкий диапазон устройств, включающих в себя цифровые телевизионные приемники, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, устройства видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства видеоконференц-связи, устройства потоковой передачи видео и т.п. Цифровые видеоустройства реализуют такие технологии сжатия видео, как технологии сжатия видео, описанные в стандартах, заданных посредством разрабатываемых в настоящее время стандартов MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), стандарта высокоэффективного кодирования видео (HEVC), и расширений таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию более эффективно посредством реализации таких технологий сжатия видео.
[0004] Технологии сжатия видео выполняют пространственное (интра-кадровое) прогнозирование и/или временное (интеркадровое) прогнозирование для того, чтобы уменьшать или удалять избыточность, внутренне присущую в видеопоследовательностях. Для блочного кодирования видео видеослайс (т.е. видеокадр или часть видеокадра) может быть сегментирован на видеоблоки, которые также могут упоминаться как древовидные блоки, единицы кодирования (CU) и/или узлы кодирования. Видеоблоки в интра(внутренне)-кодированном (I) слайсе изображения кодируются с использованием пространственного прогнозирования относительно опорных выборок в соседних блоках в идентичном изображении. Видеоблоки в интер(внешне)-кодированном (Р- или В-) слайсе изображения могут использовать пространственное прогнозирование относительно опорных выборок в соседних блоках в идентичном изображении или временное прогнозирование относительно опорных выборок в других опорных изображениях. Изображения могут упоминаться как кадры, и опорные изображения могут упоминаться как опорные кадры.
[0005] Пространственное или временное прогнозирование приводит в результате к прогнозному блоку для блока, который должен быть кодирован. Остаточные данные представляют пиксельные разности между исходным блоком, который должен быть кодирован, и прогнозным блоком. Интер-кодированный блок кодируется согласно вектору движения, который указывает на блок опорных выборок, формирующих прогнозный блок, и остаточным данным, указывающим разность между кодированным блоком и прогнозным блоком. Интра-кодированный блок кодируется согласно режиму интра-кодирования и остаточным данным. Для дополнительного сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования, приводя к остаточным коэффициентам преобразования, которые затем могут быть квантованы. Квантованные коэффициенты преобразования, первоначально размещаемые в двумерной матрице, могут быть сканированы для того, чтобы формировать одномерный вектор коэффициентов преобразования. Энтропийное кодирование затем может применяться, чтобы достигать еще большего сжатия.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] Это раскрытие сущности описывает технологии для произвольного доступа при кодировании видео. В частности, раскрытие сущности описывает несколько технологий для кодирования видеопоследовательностей, которые включают в себя один или более кадров или "изображений", при этом первое кодированное изображение конкретной кодированной видеопоследовательности (CVS) в соответствующем потоке битов может быть изображением на основе точки произвольного доступа (RAP), которое не является изображением на основе мгновенного обновления при декодировании (IDR). Например, в соответствии с технологиями, первое кодированное изображение может быть изображением на основе чистого произвольного доступа (CRA).
[0007] В качестве одного примера, технологии этого раскрытия сущности могут обеспечивать возможность видеодекодеру, соответствующему технологиям, успешно декодировать поток битов, начинающийся с такого не-IDR RAP-изображения, прогнозируемым и заданным (или "стандартным") способом. Например, раскрытые технологии могут обеспечивать возможность соответствующему видеодекодеру обрабатывать различные свойства вывода и опорные свойства так называемых "начальных изображений", ассоциированных с первым кодированным изображением, которые также включаются в поток битов. Как результат, технологии могут обеспечивать относительно улучшенный произвольный доступ для потока битов посредством видеодекодера, по сравнению с другими технологиями. Например, технологии могут способствовать "более точному" или более детализированному произвольному доступу потока битов за счет предоставления возможности видеодекодеру декодировать поток битов в относительно большем числе начальных точек или изображений доступа (т.е. He-IDR-изображений) потока битов, по сравнению с другими технологиями (например, технологиями, которые дают возможность произвольного доступа для потока битов только из IDR-изображений). Дополнительно, технологии могут обеспечивать возможность соответствующему видеодекодеру повышать визуальное качество одного или более других изображений, также включаемых в поток битов, например, посредством избегания вывода и/или использования в качестве опорных изображений начальных изображений, ассоциированных с первым изображением.
[0008] Альтернативно, в качестве другого примера, раскрытые технологии могут обеспечивать возможность видеокодеру, соответствующему технологиям, формировать поток битов, который исключает начальные изображения, ассоциированные с первым кодированным изображением потока битов, которое является не-IDR RAP-изображением. Как результат, видеодекодер, также соответствующий раскрытым технологиям, может успешно декодировать поток битов прогнозируемым и заданным способом.
[0009] Соответственно, использование технологий этого раскрытия сущности позволяет повышать функциональную совместимость систем и устройств кодирования и декодирования видео и улучшать возможности работы пользователей, в общем, для произвольного доступа для потока битов, что может часто возникать в различных видеоприложениях.
[0010] В одном примере раскрытия сущности, способ декодирования видеоданных включает в себя прием потока битов, содержащего одно или более изображений CVS, декодирования первого изображения из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, при этом первое изображение является RAP-изображением, которое не является IDR-изображением и декодирование по меньшей мере одного из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0011] В другом примере раскрытия сущности, способ кодирования видеоданных включает в себя формирование потока битов, содержащего одно или более изображений CVS, при этом первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, является RAP-изображением, которое не является IDR-изображением, при этом формирование потока битов содержит недопущение включения по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов, при этом начальное изображение содержит изображение, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS, и при этом первое изображение является декодируемым, и при этом по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, является декодируемым на основе первого изображения.
[0012] В другом примере раскрытия сущности, аппарат, сконфигурированный с возможностью декодировать видеоданные, включает в себя видеодекодер, сконфигурированный с возможностью принимать поток битов, содержащий одно или более изображений CVS, декодировать первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, при этом первое изображение является RAP-изображением, которое не является IDR-изображением, и декодировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0013] В другом примере раскрытия сущности, аппарат, сконфигурированный с возможностью кодировать видеоданные, включает в себя видеокодер, сконфигурированный с возможностью формировать поток битов, содержащий одно или более изображений CVS, при этом первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, является RAP-изображением, которое не является IDR-изображением, при этом для того, чтобы формировать поток битов, видеокодер сконфигурирован с возможностью не допускать включение по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов, при этом начальное изображение содержит изображение, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS, и при этом первое изображение является декодируемым, и при этом по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, является декодируемым на основе первого изображения.
[0014] В другом примере раскрытия сущности, устройство для декодирования видеоданных включает в себя средство для приема потока битов, содержащего одно или более изображений CVS, средство для декодирования первого изображения из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, при этом первое изображение является RAP-изображением, которое не является IDR-изображением, и средство для декодирования по меньшей мере одного из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0015] В другом примере раскрытия сущности, устройство для кодирования видеоданных включает в себя средство для формирования потока битов, содержащего одно или более изображений CVS, при этом первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, является RAP-изображением, которое не является IDR-изображением, при этом средство для формирования потока битов содержит средство для недопущения включения по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов, при этом начальное изображение содержит изображение, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS, и при этом первое изображение является декодируемым, и при этом по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущее после первого изображения согласно порядку декодирования, является декодируемым на основе первого изображения.
[0016] Технологии, описанные в данном раскрытии сущности, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении либо в комбинациях вышеозначенного. При реализации в аппаратных средствах, аппарат может быть осуществлен как интегральная схема, процессор, дискретная логика либо любая комбинация вышеозначенного. При реализации в программном обеспечении, программное обеспечение может выполняться в одном или более процессоров, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или процессор цифровых сигналов (DSP). Программное обеспечение, которое выполняет технологии, может быть первоначально сохранено на материальном считываемом компьютером носителе и загружено и приведено в исполнение в процессоре.
[0017] Соответственно, в другом примере, это раскрытие сущности рассматривает считываемый компьютером носитель данных, сохраняющий инструкции, которые при выполнении инструктируют один или более процессоров принимать поток битов, содержащий одно или более изображений CVS, декодировать первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, при этом первое изображение является RAP-изображением, которое не является IDR-изображением, и декодировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0018] В другом примере, это раскрытие сущности рассматривает считываемый компьютером носитель данных, сохраняющий инструкции, которые при выполнении инструктируют один или более процессоров формировать поток битов, содержащий одно или более изображений CVS, при этом первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, является RAP-изображением, которое не является IDR-изображением, при этом инструкции, которые инструктируют один или более процессоров формировать поток битов, содержат инструкции, которые инструктируют один или более процессоров избегать включения в состав по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов, при этом начальное изображение содержит изображение, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS, и при этом первое изображение является декодируемым, и при этом по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, является декодируемым на основе первого изображения.
[0019] Подробности одного или более примеров изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества должны становиться очевидными из описания и чертежей и из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0020] Фиг. 1 является блок-схемой, которая иллюстрирует пример системы кодирования и декодирования видео, которая может выполнять технологии для произвольного доступа с усовершенствованным управлением буфером изображений декодера (DPB), в соответствии с технологиями этого раскрытия сущности.
[0021] Фиг. 2 является блок-схемой, которая иллюстрирует пример видеокодера, который может выполнять технологии для произвольного доступа с усовершенствованным DPB-управлением, в соответствии с технологиями этого раскрытия сущности.
[0022] Фиг. 3 является блок-схемой, которая иллюстрирует пример видеодекодера, который может выполнять технологии для произвольного доступа с усовершенствованным DPB-управлением, в соответствии с технологиями этого раскрытия сущности.
[0023] Фиг. 4 является концептуальной схемой, которая иллюстрирует пример опорных иерархий между изображениями групп изображений (GOP) видеоданных, в соответствии с технологиями этого раскрытия сущности.
[0024] Фиг. 5 является блок-схемой последовательности операций способа, которая иллюстрирует примерный способ выполнения произвольного доступа для потока битов, который включает в себя одно или более изображений видеоданных, посредством видеодекодера, в соответствии с технологиями этого раскрытия сущности.
[0025] Фиг. 6 является блок-схемой последовательности операций способа, которая иллюстрирует примерный способ формирования потока битов, который включает в себя одно или более изображений видеоданных, посредством видеокодера, в соответствии с технологиями этого раскрытия сущности.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0026] Это раскрытие сущности описывает технологии для произвольного доступа при кодировании видео. В частности, раскрытие сущности описывает несколько технологий для кодирования видеопоследовательностей, которые включают в себя один или более кадров или "изображений", при этом первое кодированное изображение конкретной кодированной видеопоследовательности (CVS) в соответствующем потоке битов может быть изображением на основе точки произвольного доступа (RAP), которое не является изображением на основе мгновенного обновления при декодировании (IDR). Например, в соответствии с технологиями, первое кодированное изображение может быть изображением на основе чистого произвольного доступа (CRA).
[0027] В качестве одного примера, технологии этого раскрытия сущности могут обеспечивать возможность видеодекодеру, соответствующему технологиям, успешно декодировать поток битов, начинающийся с такого не-IDR RAP-изображения, прогнозируемым и заданным (или "стандартным") способом. Например, раскрытые технологии могут обеспечивать возможность соответствующему видеодекодеру обрабатывать различные свойства вывода и опорные свойства так называемых "начальных изображений", ассоциированных с первым кодированным изображением, которые также включаются в поток битов. Как результат, технологии могут обеспечивать относительно улучшенный произвольный доступ для потока битов посредством видеодекодера, по сравнению с другими технологиями. Например, технологии могут способствовать "более точному" или более детализированному произвольному доступу потока битов за счет предоставления возможности видеодекодеру декодировать поток битов в относительно большем числе начальных точек или изображений доступа (т.е. He-IDR-изображений) потока битов, по сравнению с другими технологиями (например, технологиями, которые дают возможность произвольного доступа для потока битов только из IDR-изображений). Дополнительно, технологии могут обеспечивать возможность соответствующему видеодекодеру повышать визуальное качество одного или более других изображений, также включаемых в поток битов, например, посредством избегания вывода и/или использования в качестве опорных изображений начальных изображений, ассоциированных с первым изображением.
[0028] Альтернативно, в качестве другого примера, раскрытые технологии могут обеспечивать возможность видеокодеру, соответствующему технологиям, формировать поток битов, который исключает начальные изображения, ассоциированные с первым кодированным изображением потока битов, которое является не-IDR RAP-изображением. Как результат, видеодекодер, также соответствующий раскрытым технологиям, может успешно декодировать поток битов прогнозируемым и заданным способом.
[0029] Соответственно, использование технологий этого раскрытия сущности позволяет повышать функциональную совместимость систем и устройств кодирования и декодирования видео и улучшать возможности работы пользователей, в общем, для произвольного доступа для потока битов, что может часто возникать в различных видеоприложениях.
[0030] В частности, технологии, описанные в данном документе, могут включать в себя, по меньшей мере, один или более следующих аспектов новизны, по сравнению с другими технологиями: (1) обнаружение осуществления произвольного доступа из не-IDR RAP-изображения (например, CRA-изображения); 2) идентификация и декодирование одного или более изображений, которые идут после не-IDR RAP-изображения в порядке декодирования, но предшествуют не-IDR RAP-изображению в порядке вывода (т.е. одного или более "начальных изображений" для не-IDR RAP-изображения); и (3) указание, что каждое из одного или более начальных изображений для не-IDR RAP-изображения не выводится даже в случае, если соответствующий передаваемый в служебных сигналах элемент output_flag синтаксиса равен истине или 1 (т.е. output_flag указывает, что соответствующее изображение должно быть выведено), и что соответствующее изображение не используется в качестве опорного изображения для других изображений, которые идут после не-IDR RAP-изображения в порядке декодирования и порядке вывода.
[0031] Таким образом, поток битов, который включает в себя одно или более изображений видеоданных и начинается с не-IDR RAP-изображения, может быть декодирован прогнозируемым и заданным способом посредством видеодекодера, соответствующего технологиям этого раскрытия сущности. Альтернативно, видеокодер, соответствующий раскрытым технологиям, может формировать поток битов, который включает в себя одно или более изображений видеоданных и начинается с не-IDR RAP-изображения, так что поток битов может быть декодирован прогнозируемым и заданным способом посредством видеодекодера, также соответствующего технологиям. Как результат, может быть относительное улучшение возможностей работы пользователей при выполнении произвольного доступа для потока битов, который включает в себя одно или более изображений видеоданных, при использовании технологий этого раскрытия сущности. В частности, может быть относительное повышение детализации произвольного доступа, а также визуального качества одного или более изображений потока битов и/или CVS, которая включает в себя одно или более изображений в целом, при использовании раскрытых технологий.
[0032] Фиг. 1 является блок-схемой, которая иллюстрирует пример системы кодирования и декодирования видео, которая может выполнять технологии для произвольного доступа с усовершенствованным управлением буфером изображений декодера (DPB), в соответствии с технологиями этого раскрытия сущности. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое формирует кодированные видеоданные, которые должны быть декодированы впоследствии посредством устройства-адресата 14. Устройство-источник 12 и устройство-адресат 14 могут содержать любые из широкого диапазона устройств, включающих в себя настольные компьютеры, ноутбуки (т.е. переносные компьютеры), планшетные компьютеры, абонентские приставки, телефонные трубки, к примеру, так называемые смартфоны, так называемые интеллектуальные сенсорные панели, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, устройства потоковой передачи видео и т.п. В некоторых случаях, устройство-источник 12 и устройство-адресат 14 могут быть оснащены возможностями беспроводной связи.
[0033] Устройство-адресат 14 может принимать кодированные видеоданные, которые должны быть декодированы, через линию 16 связи. Линия 16 связи может содержать любой тип носителя или устройства, допускающего перемещение кодированных видеоданных из устройства-источника 12 в устройство-адресат 14. В одном примере, линия 16 связи может содержать среду связи, чтобы обеспечивать возможность устройству-источнику 12 передавать кодированные видеоданные непосредственно в устройство-адресат 14 в реальном времени. Кодированные видеоданные могут быть модулированы согласно стандарту связи, такому как протокол беспроводной связи, и переданы в устройство-адресат 14. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи. Среда связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет.Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для того, чтобы упрощать передачу из устройства-источника 12 в устройство-адресат 14.
[0034] Альтернативно, кодированные данные могут выводиться из интерфейса 22 вывода в устройство 24 хранения. Аналогично, доступ к кодированным данным может осуществляться из устройства 24 хранения посредством интерфейса 26 ввода. Устройство 24 хранения может включать в себя любой из множества распределенных или локально доступных носителей хранения, таких как жесткий диск, Blu-Ray-диски, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство либо любые другие подходящие цифровые носители данных для сохранения кодированных видеоданных. В дополнительном примере, устройство 24 хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить кодированное видео, сформированное посредством устройства-источника 12. Устройство-адресат 14 может осуществлять доступ к сохраненным видеоданным из устройства 24 хранения через потоковую передачу или загрузку. Файловый сервер может быть любым типом сервера, допускающего сохранение кодированных видеоданных и передачу этих кодированных видеоданных в устройство-адресат 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-узла), FTP-сервер, устройства системы хранения с подключением по сети (NAS) или локальный накопитель на дисках. Устройство-адресат 14 может осуществлять доступ к кодированным видеоданным через любое стандартное подключение для передачи данных, включающее в себя Интернет-подключение. Оно может включать в себя беспроводной канал (например, Wi-Fi-подключение), проводное подключение (например, DSL, кабельный модем и т.д.) или комбинацию означенного, которая является подходящей для того, чтобы осуществлять доступ к кодированным видеоданным, сохраненным на файловом сервере. Передача кодированных видеоданных из устройства 24 хранения может представлять собой потоковую передачу, передачу на основе загрузки или комбинацию вышеозначенного.
[0035] Технологии этого раскрытия сущности не обязательно ограничены приложениями или настройками беспроводной связи. Технологии могут применяться к кодированию видео в поддержку любых из множества мультимедийных приложений, таких как телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео, например, через Интернет, кодирование цифрового видео для хранения на носителе данных, декодирование цифрового видео, сохраненного на носителе данных, или другие приложения. В некоторых примерах, система 10 может быть сконфигурирована с возможностью поддерживать одностороннюю или двустороннюю передачу видео, чтобы поддерживать такие приложения, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.
[0036] В примере по фиг. 1, устройство-источник 12 включает в себя видеоисточник 18, видеокодер 20 и интерфейс 22 вывода. В некоторых случаях, интерфейс 22 вывода может включать в себя модулятор/демодулятор (модем) и/или передающее устройство. В устройстве-источнике 12 видеоисточник 18 может включать в себя источник, такой как устройство видеозахвата, например, видеокамера, видеоархив, содержащий ранее захваченное видео, интерфейс прямых видеотрансляций, чтобы принимать видео от поставщика видеоконтента, и/или компьютерную графическую систему для формирования компьютерных графических данных в качестве исходного видео, либо комбинацию таких источников. В качестве одного примера, если видеоисточником 18 является видеокамера, устройство-источник 12 и устройство-адресат 14 могут формировать так называемые камерофоны или видеофоны. Тем не менее, технологии, описанные в этом раскрытии сущности, могут быть применимыми к кодированию видео в целом и могут применяться к беспроводным и/или проводным вариантам применения.
[0037] Захваченное, предварительно захваченное или машиногенерируемое видео может быть кодировано посредством видеокодера 20. Кодированные видеоданные могут быть переданы непосредственно в устройство-адресат 14 через интерфейс 22 вывода устройства-источника 12. Кодированные видеоданные также (или альтернативно) могут сохраняться на устройство 24 хранения для последующего доступа посредством устройства-адресата 14 или других устройств для декодирования и/или воспроизведения.
[0038] Устройство-адресат 14 включает в себя интерфейс 26 ввода, видеодекодер 30 и устройство 28 отображения. В некоторых случаях, интерфейс 26 ввода может включать в себя приемное устройство и/или модем. Интерфейс 26 ввода устройства-адресата 14 принимает кодированные видеоданные по линии 16 связи или из устройства 24 хранения. Кодированные видеоданные, передаваемые по линии 16 связи или предоставленные на устройстве 24 хранения, могут включать в себя множество элементов синтаксиса, сформированных посредством видеокодера 20 для использования посредством видеодекодера, такого как видеодекодер 30, при декодировании видеоданных. Такие элементы синтаксиса могут быть включены с кодированными видеоданными, передаваемыми на среде связи, сохраненными на носителе хранения или сохраненными на файловом сервере.
[0039] Устройство 28 отображения может быть интегрированным или внешним для устройства-адресата 14. В некоторых примерах, устройство-адресат 14 может включать в себя интегрированное устройство отображения/ а также сконфигурировано с возможностью взаимодействовать с внешним устройством отображения. В других примерах, устройство-адресат 14 может быть устройством отображения. В общем, устройство 28 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
[0040] Видеокодер 20 и видеодекодер 30 могут работать согласно стандарту сжатия видео, такому как стандарт высокоэффективного кодирования видео (HEVC), разрабатываемый в данный момент посредством Объединенной группы для совместной работы над видеостандартами (JCT-VC) Экспертной группы в области кодирования видео (VCEG) ITU-T и Экспертной группы по киноизображению (MPEG) ISO/IEC, и могут соответствовать тестовой модели HEVC (НМ). Альтернативно, видеокодер 20 и видеодекодер 30 могут работать согласно другим собственным или отраслевым стандартам, таким как стандарт ITU-T H.264, альтернативно называемый "MPEG-4, часть 10, AVC", или расширениям таких стандартов. Тем не менее, технологии этого раскрытия сущности не ограничены каким-либо конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T Н.263. Последний проект HEVC-стандарта, называемый "рабочим проектом HEVC 8" или "WD8", описывается в документе JCTVC-J1003_d7, Bross и др., "High efficiency video coding (HEVC) text specification draft 8", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Стокгольм, SE, 11-20 июля 2012 года, который, с 17 октября 2012 года, можно загрузить по адресу http://phenix.int-evry.fr/j ct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.
[0041] Другой проект HEVC-стандарта, называемый в этом раскрытии сущности "рабочим проектом HEVC 4" или "WD4", описывается в документе JCTVC-F803, Bross и др., "WD4: Working Draft 4 of High-Efficiency Video Coding", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torino, IT, 14-22 июля 2011 года, который, с 17 октября 2012 года, можно загрузить по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F803-v8.zip.
[0042] Еще один другой проект HEVC-стандарта, называемый в этом раскрытии сущности "рабочим проектом HEVC 5" или "WD5", описывается в документе JCTVC-G1103, Bross и др., "WD5: Working Draft 5 of High-Efficiency Video Coding", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Женева, СН, 21-30 ноября 2011 года, который, с 17 октября 2012 года, можно загрузить по адресу http://phenix.int-evry.fr/jet/doc_end_user/documents/7_Geneva/wg11/JCTVC-G1103-v12.zip.
[0043] Хотя не показано на фиг. 1, в некоторых аспектах, видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудио-кодером и декодером, соответственно, и могут включать в себя соответствующие модули мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, в некоторых примерах блоки мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
[0044] Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из множества надлежащих схем кодера или декодера, к примеру, один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо любые комбинации вышеозначенного. Когда технологии реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения на подходящем энергонезависимом считываемом компьютером носителе и выполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы осуществлять технологии этого раскрытия сущности. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве.
[0045] Работа по стандартизации HEVC основана на усовершенствованной модели устройства кодирования видео, называемой "тестовой моделью HEVC (НМ)". НМ предполагает несколько дополнительных возможностей устройств кодирования видео относительно существующих устройств согласно, например, ITU-T H.264/AVC. Например, тогда как Н.264 предоставляет девять режимов кодирования с интра-прогнозированием, НМ может предоставлять целых тридцать пять режимов кодирования с интра-прогнозированием.
[0046] В общем, рабочая модель НМ описывает, что видеокадр или изображение может быть разделено на последовательность древовидных блоков или наибольших единиц кодирования (LCU), которые включают в себя выборки как сигнала яркости, так и сигнала цветности. Древовидный блок имеет назначение, аналогичное назначению макроблока по стандарту Н.264. Слайс включает в себя определенное число последовательных древовидных блоков в порядке кодирования. Видеокадр или изображение может быть сегментировано на один или более слайсов. Каждый древовидный блок может разбиваться на единицы кодирования (CU) согласно дереву квадрантов. Например, древовидный блок, в качестве корневого узла дерева квадрантов, может разбиваться на четыре дочерних узла, и каждый дочерний узел, в свою очередь, может быть родительским узлом и разбиваться еще на четыре дочерних узла. Конечный, неразбитый дочерний узел, в качестве концевого узла дерева квадрантов, содержит узел кодирования, т.е. кодированный видеоблок. Синтаксические данные, ассоциированные с кодированным потоком битов, могут задавать максимальное число раз, которое может разбиваться древовидный блок, и также может задавать минимальный размер узлов кодирования.
[0047] CU включает в себя узел кодирования и единицы прогнозирования (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен иметь квадратную форму. Размер CU может колебаться от 8х8 пикселов вплоть до размера древовидного блока максимум в 64х64 пикселов или более. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, сегментирование CU на одну или более PU. Режимы сегментирования могут отличаться между тем, является CU кодированной в режиме пропуска или прямом режиме, кодированной в режиме интра-прогнозирования или кодированной в режиме интерпрогнозирования. PU могут быть сегментированы таким образом, что они имеют неквадратную форму. Синтаксические данные, ассоциированные с CU, также могут описывать, например, сегментирование CU на одну или более TU согласно дереву квадрантов. TU может иметь квадратную или неквадратную форму.
[0048] HEVC-стандарт обеспечивает возможность преобразований согласно TU, которые могут отличаться для различных CU. Размеры NU типично задаются на основе размера PU в данной CU, заданного для сегментированной LCU, хотя это может не всегда иметь место. TU типично имеет идентичный размер или меньше, чем PU. В некоторых примерах, остаточные выборки, соответствующие CU, могут подразделяться на меньшие единицы с использованием структуры в виде дерева квадрантов, известной как "остаточное дерево квадрантов" (RQT). Концевые узлы RQT могут упоминаться как TU. Значения пиксельных разностей, ассоциированные с TU, могут быть преобразованы, чтобы формировать коэффициенты преобразования, которые могут быть квантованы.
[0049] В общем, PU включает в себя данные, связанные с процессом прогнозирования. Например, когда PU кодируется в интра-режиме, PU может включать в себя данные, описывающие режим интра-прогнозирования для PU. В качестве другого примера, когда PU кодируется в интер-режиме, PU может включать в себя данные, задающие вектор движения для PU. Данные, задающие вектор движения для PU, могут описывать, например, горизонтальный компонент вектора движения, вертикальный компонент вектора движения, разрешение для вектора движения (например, точность в одну четверть пиксела или точность в одну восьмую пиксела), опорный кадр, на который указывает вектор движения, и/или список опорных изображений (например, список 0, список 1 или список С) для вектора движения.
[0050] В общем, TU используется для процессов преобразования и квантования. Данная CU, имеющая одну или более PU, также может включать в себя одну или более TU. После прогнозирования видеокодер 20 может вычислять остаточные значения, соответствующие PU. Остаточные значения содержат значения пиксельных разностей, которые могут быть преобразованы в коэффициенты преобразования, квантованы и сканированы с использованием TU, чтобы формировать преобразованные в последовательную форму коэффициенты преобразования для энтропийного кодирования. Это раскрытие сущности типично использует термин "видеоблок" или просто "блок" для того, чтобы означать узел кодирования CU. В некоторых конкретных случаях это раскрытие сущности также может использовать термин "видеоблок", чтобы означать древовидный блок, т.е. LCU или CU, которая включает в себя узел кодирования и PU и TU.
[0051] Видеопоследовательность типично включает в себя серии видеокадров или изображений. Группа изображений (GOP), в общем, содержит последовательность из одного или более видеоизображений. GOP может включать в себя в заголовке GOP, в заголовке одного или более изображений или в другом месте синтаксические данные, которые описывают число изображений, включенных в GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 типично оперирует с видеоблоками в пределах отдельных видеослайсов, чтобы кодировать видеоданные. Видеоблок может соответствовать узлу кодирования в CU. Видеоблоки могут иметь фиксированные или варьирующиеся размеры и могут отличаться по размеру согласно указанному стандарту кодирования.
[0052] В качестве примера, НМ поддерживает прогнозирование для различных PU-размеров. При условии, что размер конкретной CU составляет 2N×2N, НМ поддерживает интра-прогнозирование для PU-размеров 2N×2N или N×N и интер-прогнозирование для симметричных PU-размеров 2N×2N, 2N×N, N×2N или N×N. НМ также поддерживает асимметричное сегментирование для интер-прогнозирования для PU-размеров 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном сегментировании одно направление CU не сегментируется, в то время как другое направление сегментируется на 25% и 75%. Часть CU, соответствующая 25%-ому сегменту, указывается посредством "n", после чего идет индикатор относительно "вверх (Up)", "вниз (Down)", "влево (Left)" или "вправо (Right)". Таким образом, например, "2N×nU" ссылается на CU 2N×2N, которая сегментируется горизонтально с PU 2N×0,5N вверху и PU 2N×1,5N внизу.
[0053] В этом раскрытии сущности, "N×N" и "N×N" могут быть использованы взаимозаменяемо для того, чтобы ссылаться на размеры пиксела видеоблока с точки зрения размеров по вертикали и горизонтали, например, 16×16 пикселов или 16 на 16 пикселов. В общем, блок 16×16 должен иметь 16 пикселов в вертикальном направлении (y=16) и 16 пикселов в горизонтальном направлении (х=16). Аналогично, блок N×N, в общем, имеет N пикселов в вертикальном направлении и N пикселов в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение. Пикселы в блоке могут размещаться в строках и столбцах. Кроме того, блок не обязательно должен иметь совпадающее число пикселов в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать N×M пикселов, причем М не обязательно равно N.
[0054] После кодирования с интра-прогнозированием или кодирования с интер-прогнозированием с использованием PU CU, видеокодер 20 может вычислять остаточные данные для TU CU. PU могут содержать пиксельные данные в пространственной области (также называемой "пиксельной областью"), и TU могут содержать коэффициенты в области преобразования после применения преобразования, например, дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлет-преобразования или концептуально аналогичного преобразования к остаточным видеоданным. Остаточные данные могут соответствовать пиксельным разностям между пикселами некодированного изображения и прогнозными значениями, соответствующими PU. Видеокодер 20 может формировать TU, включающую в себя остаточные данные для CU, и затем преобразовывать TU таким образом, чтобы формировать коэффициенты преобразования для CU.
[0055] После преобразований, чтобы формировать коэффициенты преобразования, видеокодер 20 может выполнять квантование коэффициентов преобразования. Квантование, в общем, означает процесс, в котором коэффициенты преобразования квантуются, чтобы, возможно, уменьшать объем данных, используемых для того, чтобы представлять коэффициенты, обеспечивая дополнительное сжатие. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, п-битовое значение может быть округлено в меньшую сторону до т-битового значения в ходе квантования, при этом n больше m.
[0056] В некоторых примерах, видеокодер 20 может использовать предварительно заданный порядок сканирования (или "сканирования") для того, чтобы сканировать квантованные коэффициенты преобразования, так чтобы формировать преобразованный в последовательную форму вектор, который может энтропийно кодироваться. В других примерах, видеокодер 20 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования, чтобы формировать одномерный вектор, видеокодер 20 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному кодированию переменной длины (CAVLC), контекстно-адаптивному двоичному арифметическому кодированию (САВАС), синтаксическому контекстно-адаптивному двоичному арифметическому кодированию (SBAC), энтропийному кодированию на основе сегментирования на интервалы вероятности (PIPE) или другой технологии энтропийного кодирования. Видеокодер 20 также может энтропийно кодировать элементы синтаксиса, ассоциированные с кодированными видеоданными, для использования посредством видеодекодера 30 при декодировании видеоданных.
[0057] Чтобы выполнять САВАС, видеокодер 20 может назначать контекст в контекстной модели символу, который должен быть передан. Контекст может быть связан, например, с тем, имеют соседние значения символа нулевое значение или нет.Чтобы выполнять CAVLC, видеокодер 20 может выбирать код переменной длины для символа, который должен быть передан. Кодовые слова в VLC могут иметь такую структуру, что относительно более короткие коды соответствуют более вероятным символам, в то время как относительно более длинные коды соответствуют менее вероятным символам. Таким образом, использование VLC позволяет добиваться экономии битов, например, по сравнению с использованием кодовых слов равной длины для каждого символа, который должен быть передан. Определение вероятности может быть основано на контексте, назначаемом символу.
[0058] В некоторых примерах, технологии этого раскрытия сущности направлены на произвольный доступ при кодировании видео. В частности, это раскрытие сущности описывает несколько технологий для кодирования видеопоследовательностей, которые включают в себя один или более кадров или изображений, при этом первое кодированное изображение конкретной CVS в соответствующем потоке битов может быть RAP-изображением, которое не является IDR-изображением. Например, в соответствии с раскрытыми технологиями, первое кодированное изображение может быть CRA-изображением.
[0059] Другими словами, поток битов, который включает в себя одно или более изображений CVS, при этом первое кодированное изображение потока битов является не-IDR RAP-изображением, может считаться "соответствующим" потоком битов согласно технологиям этого раскрытия сущности. Иначе говоря, видеодекодер, который соответствует раскрытым технологиям, может декодировать такой поток битов успешно и прогнозируемым и заданным способом. В частности, технологии этого раскрытия сущности включают в себя способы обработки, посредством видеодекодера, декодирования, а также свойств вывода и опорных свойств, начальных изображений, ассоциированных с первым кодированным изображением. Альтернативно, технологии также включают в себя формирование, посредством видеокодера, соответствующего потока битов, который исключает начальные изображения, ассоциированные с первым кодированным изображением потока битов, которое является не-IDR RAP-изображением, из потока битов, так что поток битов может быть успешно декодирован посредством видеодекодера прогнозируемым и заданным способом.
[0060] В этом раскрытии сущности, IDR-изображение CVS может, в общем, ссылаться на изображение, включенное в CVS, которая кодируется с использованием кодирования с интра-прогнозированием, т.е. на I-изображение, кодированное без ссылки на другие изображения в пределах или за пределами CVS. Дополнительно, IDR-изображение может ссылаться на изображение, для которого все другие изображения, включенные в CVS, идущие после IDR-изображения согласно порядку декодирования, ассоциированному с CVS, декодируются независимо от изображений, предшествующих IDR-изображению согласно порядку декодирования. Например, в соответствии с некоторыми технологиями (например, H.264/MPEG-4 Часть 10/AVC; в дальнейшем "Н.264/AVC"), CVS может включать в себя IDR-изображение в качестве первого изображения CVS согласно порядку декодирования, ассоциированному с CVS, a также одно или более дополнительных IDR-изображений. В качестве одного примера, CVS может включать в себя одну или более GOP, при этом каждая СОР начинается с IDR-изображения, после которого идут одно или более других He-IDR-изображений (например, так называемые Р- и В-изображения, которые кодируются с использованием кодирования с интер-прогнозированием на основе прямого и двунаправленного прогнозирования из других опорных изображений).
[0061] В соответствии с вышеописанными технологиями (например, H.264/AVC), произвольный доступ для CVS может быть выполнен посредством декодирования сначала IDR-изображения CVS, например, IDR-изображения конкретной GOP, включенной в CVS. Поскольку IDR-изображения могут быть декодированы без опоры на какие-либо другие изображения, как описано выше, согласно этим технологиям, произвольный доступ для CVS может быть выполнен на базисе СОР посредством декодирования сначала IDR-изображения, расположенного в начале каждой GOP. Другими словами, согласно некоторым технологиям (например, H.264/AVC), произвольный доступ для CVS может быть выполнен только из IDR-изображения, включенного в CVS. В связи с этим, в этих технологиях, для чтобы первое кодированное изображение конкретной CVS в соответствующем потоке битов было RAP-изображением, изображение должно быть IDR-изображением.
[0062] В отличие от вышеописанных технологий, в соответствии с технологиями этого раскрытия сущности, произвольный доступ для потока битов, начинающегося с He-IDR-изображения (например, CRA-изображения), может быть выполнен прогнозируемым и заданным (или "стандартным") способом посредством соответствующих видеодекодеров. Как результат, раскрытые технологии позволяют значительно повышать функциональную совместимость систем и устройств видеокодера и видеодекодера, а также улучшать возможности работы пользователей, в общем, для произвольного доступа для потока битов, что может часто возникать в различных видеоприложениях. Например, технологии, описанные в данном документе, могут включать в себя, по меньшей мере, один или более следующих аспектов новизны, по сравнению с другими технологиями:
(1) обнаружение осуществления произвольного доступа из не-IDR RAP-изображения (например, CRA-изображения);
2) идентификация и декодирование одного или более изображений, которые идут после не-IDR RAP-изображения в порядке декодирования, но предшествуют не-IDR RAP-изображению в порядке вывода (т.е. одно или более "начальных изображений" для не-IDR RAP-изображения); и
(3) указание, что каждое из одного или более начальных изображений для не-IDR RAP-изображения не выводится даже в случае, если соответствующий передаваемый в служебных сигналах output_flag равен истине или 1 (т.е. output_flag указывает, что соответствующее изображение должно быть выведено), и что соответствующее изображение не используется в качестве опорного изображения для других изображений, которые идут после не-IDR RAP-изображения в порядке декодирования и порядке вывода.
[0063] Как описано выше, согласно некоторым технологиям (например, H.264/AVC), IDR-изображение может служить в качестве традиционной точки доступа (например, изображения на основе точки произвольного доступа, или "RAP") для CVS. Например, IDR-изображение может быть включено в начале независимо декодируемой части CVS, иногда называемой в качестве GOP. Эта реализация произвольного доступа для CVS иногда упоминается в качестве реализации в форме "закрытой GOP", в которой изображения в конкретной GOP не ссылаются на изображения, которые возникают до IDR-изображения GOP, например, изображения, включенные в предшествующую GOP CVS или GOP другой предыдущей CVS, согласно порядку декодирования, ассоциированному с CVS. Как уже пояснено выше, в этом контексте, GOP может задаваться как IDR-изображение, после которого идут одно или более Р-и/или В-изображений.
[0064] В так называемой реализации в форме "открытой GOP" CRA-изображение служит цели, аналогичной цели IDR-изображения, описанного выше в отношении реализации в форме закрытой GOP. Например, в этом контексте, GOP может задаваться как CRA-изображение, после которого идут одно или более Р- и/или В-изображений. Тем не менее, в отличие от реализации в форме закрытой GOP, в реализации в форме открытой GOP, изображения, включенные в конкретную GOP, могут ссылаться на изображения, которые возникают до CRA-изображения GOP, например, на изображения, включенные в предшествующую GOP CVS или GOP другой предыдущей CVS, согласно порядку декодирования, ассоциированному с CVS. Например, в соответствии с реализацией в форме открытой GOP, В-изображение, которое идет после CRA-изображения (которое, аналогично IDR-изображению, является интра-прогнозированным или I-изображением) одной GOP CVS согласно порядку декодирования, ассоциированному с CVS, может ссылаться на изображение (например, Р- или В-изображение), включенное в предшествующую GOP CVS.
[0065] Согласно некоторым технологиям, В-изображение CVS традиционно прогнозируется посредством ссылки на изображение, которое предшествует В-изображению, и изображение, которое идет после В-изображения в порядке вывода, ассоциированном с CVS. Например, В-изображение этого примера может ссылаться (т.е. использовать в качестве опорного изображения) изображение, включенное в предшествующую GOP, которая может предшествовать В-изображению в порядке вывода, ассоциированном с CVS, а также ссылаться (т.е. использовать в качестве опорного изображения) CRA-изображение, которое может идти после В-изображения в порядке вывода. Другими словами, в этом примере, В-изображение идет после CRA-изображения в порядке декодирования, но предшествует CRA-изображению в порядке вывода. В связи с этим, В-изображение может считаться "начальным изображением" для CRA-изображения. Тем не менее, в других примерах В-изображение может быть любым другим типом изображения, которое также является начальным изображением CRA-изображения, как задано выше.
[0066] Вышеописанный пример иллюстрирует, по меньшей мере, одну проблему, ассоциированную с реализацией в форме открытой GOP, описанной выше. В частности, в случаях, когда произвольный доступ для CVS выполняется из CRA-изображения, включенного в CVS, начальные изображения для CRA-изображения не могут быть корректно декодированы. Это обусловлено этим фактом, что в случаях, когда CRA-изображение является первым кодированным изображением CVS, любые изображения, которые предшествуют CRA-изображению в порядке декодирования, ассоциированном с CVS, не декодируются и, как следствие, недоступны в качестве опорного изображения для начальных изображений. Соответственно, в реализации в форме открытой GOP, описанной выше, начальные изображения не могут быть корректно декодированы и в силу этого могут нарушать возможности работы пользователей при отображении. Например, при декодировании начальные изображения могут включать в себя ошибочные видеоданные и, при отображении, могут ухудшать визуальное качество самих изображений, а также CVS в целом. По идентичным причинам, в реализации в форме открытой GOP, другие изображения CVS, которые идут после CRA-изображения как в порядке декодирования, так и в порядке вывода (например, Р-изображения), могут не ссылаться на начальные изображения (например, поскольку эти начальные изображения при декодировании могут включать в себя ошибочные видеоданные), или к любым другим изображениям, которые предшествуют CRA-изображению в порядке декодирования и порядке вывода (например, поскольку эти изображения не декодируются и, следовательно, недоступны в качестве опорных изображений).
[0067] Вообще говоря, любая из вышеописанных технологий (т.е. реализация в форме закрытой GOP с использованием IDR-изображений и реализация в форме открытой GOP с использованием CRA-изображений) может обеспечивать произвольный доступ для CVS видеоданных. Тем не менее, согласно некоторым стандартам кодирования, таким как, например, H.264/AVC, поток битов, который начинается с CRA-изображения, считается "несоответствующим" потоком битов. Например, как описано выше, согласно некоторым технологиям, таким как, например, H.264/AVC, поток битов должен начинаться с IDR-изображения. Другими словами, согласно этим технологиям, только реализация на основе произвольного доступа в форме закрытой GOP, описанная выше, может поддерживаться. Технологии этого раскрытия сущности могут обеспечивать возможность видеодекодеру обрабатывать такой несоответствующий поток битов (т.е. поток битов, который начинается с CRA-изображения и соответствует реализации в форме открытой GOP). Иначе говоря, технологии, описанные в данном документе, нацелены на задание такого потока битов в качестве "соответствующего" потока битов. В некоторых примерах, соответствующий поток битов согласно технологиям этого раскрытия сущности включает в себя потоки битов, которые начинаются с CRA-изображений и соответствуют реализации в форме открытой GOP, a также потоки битов, которые начинаются с IDR-изображений и соответствуют реализации в форме закрытой GOP.
[0068] Как уже пояснено выше, одна проблема, которая идентифицируется относительно произвольного доступа, который осуществляется в CRA-изображении, связана с тем фактом, что начальные изображения для CRA-изображения не могут быть корректно декодированы и, как следствие, могут нарушать возможности работы пользователей при отображении. Технологии этого раскрытия сущности могут разрешать эту проблему посредством обеспечения произвольного доступа для CVS из CRA-изображения посредством выполнения декодирования, а также обработки свойств вывода и опорных свойств начальных изображений, ассоциированных с CRA-изображением, конкретным способом. В частности, технологии могут включать в себя некоторые или все следующие этапы:
Этап 1. Идентификация одного или более изображений CVS в качестве начальных изображений для CRA-изображения CVS, когда значение номера в последовательности изображений (РОС) каждого из одного или более изображений меньше РОС-значения CRA-изображения (т.е. соответствующее изображение предшествует CRA-изображению в порядке вывода, ассоциированном с CVS), и когда соответствующее изображение идет после CRA-изображения в порядке декодирования, ассоциированном с CVS.
Этап 2. Определение, для каждого из одного или более начальных изображений, того, ссылается или нет соответствующее начальное изображение на изображение, которое недоступно для декодирования.
Этап 3. Формирование, для каждого из одного или более начальных изображений, для которого определено, что оно ссылается на изображение, которое недоступно для декодирования виртуального опорного изображения (например, формирование изображения "среднего" сигнала яркости (или сигнала цветности), которое имеет значения сигнала яркости (или сигнала цветности), каждое из которых соответствует середине диапазона значений сигнала яркости (или сигнала цветности), ассоциированного с CVS, например, "серого" изображения).
Этап 4. Декодирование каждого из одного или более начальных изображений, для которых виртуальное опорное изображение формируется с использованием соответствующего сформированного виртуального опорного изображения, а также декодирование всех оставшихся начальных изображений. (Декодирование одного или более начальных изображений выполняется для того, чтобы поддерживать исходные временные параметры CVS в видеодекодере, например, в DPB видеодекодера, хотя, как показано ниже, декодированные начальные изображения могут не выводиться или использоваться в качестве опорных изображений для других изображений CVS).
Этап 5. Задание output_flag, ассоциированного с каждым из декодированных одного или более начальных изображений, равным значению "ложь" или 0, с тем чтобы не выводить соответствующее начальное изображение, даже в случае, если текущий output_flag равен истине или 1. (Альтернативно, технологии могут включать в себя просто игнорирование или "маскирование" текущего output_flag, который равен истине или 1, с тем, чтобы не выводить соответствующее начальное изображение).
Этап 6. Предотвращение использования каждого из декодированных одного или более начальных изображений в качестве прогнозного (т.е. опорного) изображения для других изображений CVS, которые идут после CRA-изображения как в порядке декодирования, так и в порядке вывода.
[0069] Дополнительно, технологии, описанные в данном документе, могут быть применимыми к устройству кодирования (например, видеокодеру 20), а не декодирования (например, видеодекодеру 30). Например, в случаях, когда первое кодированное изображение CVS содержит CRA-изображение, интеллектуальный видеокодер, который соответствует технологиям этого раскрытия сущности, может быть сконфигурирован с возможностью не допускать отправки начальных изображений для CRA-изображения в видеодекодер. В качестве одного примера, видеокодер может быть сконфигурирован с возможностью отправлять только Р-изображения, которые идут после CRA-изображения согласно порядку декодирования, ассоциированному с CVS. Чтобы достигать этого, видеокодер может быть сконфигурирован с возможностью формировать так называемый "поднабор" потока битов посредством отбрасывания всех "единиц доступа" или сравнимых наборов данных, которые в некоторых примерах содержат начальные изображения, ассоциированные с CRA-изображением. Соответственно, в альтернативном примере, проиллюстрированном выше, видеокодер, а не видеодекодер может быть сконфигурирован с возможностью обрабатывать (т.е. удалять) начальные изображения для CRA CVS в качестве части формирования потока битов, который включает в себя CVS, с тем, чтобы повышать функциональную совместимость и улучшать возможности работы пользователей для произвольного доступа для потока битов в видеодекодере.
[0070] В связи с этим, в соответствии с технологиями, описанными в данном документе, первое кодированное изображение CVS согласно порядку декодирования, ассоциированному с CVS в соответствующем потоке битов, может быть IDR-изображением или CRA-изображением. Другими словами, технологии этого раскрытия сущности могут обеспечивать произвольный доступ, который осуществляется в CRA-изображении CVS, посредством задания потока битов, в котором первое кодированное изображение CVS согласно порядку декодирования, ассоциированному с CVS, является CRA-изображением, в качестве соответствующего потока битов. Например, технологии этого раскрытия сущности могут быть применимыми к конкретному стандарту кодирования (например, H.265/HEVC) или расширению стандарта кодирования (например, H.264/AVC). В любом случае, согласно раскрытым технологиям, такой поток битов может быть соответствующим потоком битов. Другими словами, такой поток битов может быть успешно декодирован посредством видеодекодера, соответствующего технологиям этого раскрытия сущности, заданным и прогнозируемым способом.
[0071] Нижеприведенное описание предоставляет дополнительную информацию и примеры, связанные с технологиями этого раскрытия сущности, описанными выше, а также дополнительную информацию и технологии.
[0072] В частности, технологии, описанные в данном документе, могут включать в себя один или более следующих аспектов новизны, по сравнению с другими технологиями: (1) обнаружение осуществления произвольного доступа из не-IDR-изображения; (2) указание, что изображение не выводится даже в случае, если соответствующий передаваемый в служебных сигналах output_flag для изображения равен истине или "1;" и (3) передача в служебных сигналах обновленных параметров времени удаления из буфера кодированных изображений (СРВ) для изображений, идущих после не-IDR RAP-изображения в порядке декодирования, когда не-IDR RAP-изображение является первым кодированным изображением потока битов, и когда начальные изображения, ассоциированные с первым кодированным изображением, не присутствуют.В некоторых примерах, в соответствии с раскрытыми технологиями, обновленные параметры времени удаления из СРВ могут указываться посредством смещения, которое применяется ко всем изображениям, идущим после не-IDR RAP-изображения в порядке декодирования, после выполнения произвольного доступа из не-IDR RAP-изображения.
[0073] Технологии, описанные в данном документе, могут быть применимыми к различным стандартам кодирования видео, включающим в себя 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-Т Н.264 (также известный как ISO/IEC MPEG-4 AVC), включающим в себя его расширения масштабируемого кодирования видео (SVC) и кодирования многовидового видео (MVC). Помимо этого, раскрытые технологии могут быть применимыми к HEVC-стандарту, разрабатываемому в данный момент посредством JCT-VC Экспертной группы в области кодирования видео (VCEG) ITU-T и Экспертной группы по киноизображению (MPEG) ISO/IEC. Как пояснено выше, одной конкретной версией HEVC, упоминаемой в этом раскрытии сущности, является WD4, описанный в документе JCTVC-F803.
[0074] Далее описываются некоторые технологии DPB-управления. Согласно некоторым технологиям кодирования видео, могут быть реализованы различные способы DPB-управления. В качестве одного примера, декодированные изображения, используемые для прогнозирования последующих кодированных изображений и для будущего вывода, могут быть буферизованы в DPB. Чтобы эффективно использовать запоминающее устройство процессов DPB, DPB-управления, включающих в себя процесс хранения декодированных изображений в DPB, может указываться процесс маркировки опорных изображений и процессы вывода и удаления декодированных изображений из DPB. DPB-управление может включать в себя, по меньшей мере, следующие аспекты: (1) идентификация изображений и идентификация опорных изображений; (2) составление списков опорных изображений; (3) маркировка опорных изображений; (4) вывод изображений из DPB; (5) вставка изображений в DPB; и (6) удаление изображений из DPB. Ниже предоставляется некоторое введение в маркировку опорных изображений и составление списков опорных изображений.
[0075] В качестве одного примера, далее описываются технологии маркировки списков опорных изображений. Согласно некоторым технологиям кодирования видео, могут быть реализованы различные способы маркировки опорных изображений. В качестве одного примера, маркировка опорных изображений в H.264/AVC может обобщаться следующим образом. Максимальное число, которое может упоминаться в качестве "М" (например, соответствующее элементу num_ref_frames синтаксиса), опорных изображений, используемых для интер-прогнозирования, может указываться в активном наборе параметров последовательности (SPS). Когда опорное изображение декодируется, оно может маркироваться как "используется для ссылки". Если декодирование опорного изображения вызывает маркировку более чем М изображений как "используется для ссылки" по меньшей мере одно изображение может маркироваться как "не используется для ссылки". Затем, процесс удаления DPB может удалять изображения, маркированные как "не используется для ссылки", из DPB, если изображения также не требуются для вывода.
[0076] Когда изображение декодируется, оно может представлять собой либо неопорное изображение, либо опорное изображение. Опорное изображение может быть долговременным опорным изображением или кратковременным опорным изображением, и при маркировке как "не используется для ссылки", изображение может становиться неопорным изображением.
[0077] H.264/AVC включает в себя операции маркировки опорных изображений, которые изменяют состояние опорных изображений. Например, в H.264/AVC, существует два типа операций для маркировки опорных изображений, а именно, окно переменной длительности и адаптивное управление запоминающим устройством. Рабочий режим для маркировки опорных изображений выбирается на основе изображений. В качестве одного примера, маркировка опорных изображений на основе окна переменной длительности выступает в качестве очереди "первый на входе - первый на выходе" (FIFO) с фиксированным числом кратковременных опорных изображений. Другими словами, кратковременное опорное изображение с самым ранним временем декодирования является первым на удаление (т.е. на маркировку как изображения "не используется для ссылки"), неявным способом. В качестве другого примера, маркировка опорных изображений при адаптивном управлении запоминающим устройством удаляет кратковременные или долговременные изображения явно. Это также обеспечивает переключение состояния кратковременных и долговременных изображений.
[0078] В качестве другого примера, далее описываются технологии составления списков опорных изображений. Согласно некоторым технологиям кодирования видео, могут быть реализованы различные способы составления списков опорных изображений. В качестве одного примера, типично, составление списков опорных изображений для первого или второго списка опорных изображений В-изображения может включать в себя два этапа: (1) инициализация списка опорных изображений и (2) переупорядочение списка опорных изображений (которое может упоминаться в качестве "модификации"). Инициализация списка опорных изображений может представлять собой явный механизм, который помещает опорные изображения в запоминающем устройстве опорных изображений (также известном как DPB) в список на основе порядка значений РОС (который, как пояснено выше, представляет собой "номер в последовательности изображений" и совмещается с порядком вывода или порядком отображения изображения).
[0079] Механизм переупорядочения списка опорных изображений может модифицировать позицию изображения, которое помещено в список во время инициализации списка опорных изображений, в любую новую позицию или помещать любое опорное изображение в запоминающее устройство опорных изображений в любой позиции, даже если изображение не принадлежит инициализированному списку. Некоторые изображения, после переупорядочения (или модификации) списка опорных изображений, могут быть помещены в "очень далекие" позиции в списке. Тем не менее, если позиция изображения превышает число активных опорных изображений списка, изображение может не рассматриваться как запись конечного списка опорных изображений. Число активных опорных изображений может быть передано в служебных сигналах в заголовке слайса для каждого списка.
[0080] Альтернативно, другой подход к DPB-управлению описан в документе "JCTVC-F493: Absolute Signaling of Reference Pictures", by Sjoberg et al., 6th Meeting, Torino, 2011 год (далее упоминается как JCTVC-F493), содержимое которого полностью содержится по ссылке в данном документе.
[0081] Далее описываются некоторые технологии на основе наборов опорных изображений (RPS). Например, заявка на патент (США) №13/622972, поданная 19 сентября 2012 года, содержание которой также полностью содержится по ссылке в данном документе, описывает RPS, который включает в себя, для каждого изображения, число опорных изображений, которые могут быть использованы посредством текущего или текущего кодированного изображения и изображения после текущего кодированного изображения в порядке декодирования. Подробное задание RPS может предоставляться следующим образом: набор опорных изображений, ассоциированных с изображением, состоящий из всех опорных изображений за исключением непосредственно ассоциированного изображения, которое может использоваться для интер-прогнозирования ассоциированного изображения или любого изображения после ассоциированного изображения в порядке декодирования и которое имеет элемент temporal_id синтаксиса, меньший или равный элементу temporal_id синтаксиса ассоциированного изображения.
[0082] Далее описываются примеры RAP и соответствующего RPS. Как пояснено выше, в этом раскрытии сущности, "произвольный доступ" означает декодирование CVS, начинающейся с кодированного изображения, которое не является традиционным первым кодированным изображением, т.е. IDR-изображением, в CVS. He-IDR RAP-изображение, которое может упоминаться в качестве "picR", может задаваться как кодированное изображение, для которого все следующие условия являются истинными:
(1) picR не является IDR-изображением;
(2) пусть РОС picR представляет собой "rPoc", и пусть "picA" представляет собой изображение в идентичной CVS и идущее после picR как в порядке декодирования, так и в порядке вывода, и пусть РОС picA представляет собой "аРос". Когда произвольный доступ выполняется в picR, все изображения, которые находятся в идентичной CVS и идут после picA в порядке вывода, могут быть корректно декодированы.
[0083] В этом примере, для не-IDR RAP-изображения picR, если следующее условие является истинным, изображение может упоминаться в качестве CRA-изображения: когда произвольный доступ выполняется в picR, все изображения, которые находятся в идентичной CVS и идут после picR в порядке вывода, могут быть корректно декодированы. Если вышеуказанное условие не является истинным для не-IDR RAP-изображения picR, изображение может упоминаться в качестве изображения на основе постепенного обновления при декодировании (GDR). Дополнительно, для CRA-изображения, соответствующий RPS может не содержать опорное изображение для CRA-изображения, но типично может содержать по меньшей мере одно изображение для изображений, идущих после CRA-изображения в порядке декодирования.
[0084] Фиг. 4 является концептуальной схемой, которая иллюстрирует пример опорных иерархий между изображениями GOP видеоданных, в соответствии с технологиями этого раскрытия сущности. В частности, фиг. 4 иллюстрирует иерархическое кодирование В-изображений с четырьмя временными уровнями и размером GOP в 8. Как показано на фиг. 4, когда изображение с РОС-значением, равным 8, кодируется в качестве интра- (т.е. I-изображения), изображение может быть CRA-изображением. На основе задания RPS, RPS содержит изображение с РОС-значением, равным О, для изображений после этого изображения в порядке декодирования.
[0085] Далее описываются начальные изображения и соответствующие RPS. Как пояснено выше, изображения, идущие после RAP-изображения в порядке декодирования, но предшествующие RAP-изображению в порядке отображения, могут упоминаться в качестве соответствующих "начальных изображений" для RAP-изображения. В примере по фиг. 4, RPS соответствующих начальных изображений для CRA-изображения (т.е. изображения с РОС-значением в 8) являются такими, как показано в таблице I ниже.
Таблица I
РОС
RPS
4
{0, 8}
2
{0, 8, 4}
1
{0, 8, 4, 2}
3
{8, 4, 2}
6
{8, 4, 2}
5
{8, 4, 6}
7
{8-6}
[0086] Далее описываются технологии вывода изображений. В HEVC WD4, каждому изображению может назначаться output_flag. Когда этот флаг равен значению "ложь" или 0, соответствующее изображение не используется для вывода, и, следовательно, не должно отображаться.
[0087] Далее описывается пример СРВ. СРВ может требоваться посредством видеодекодера для приема и буферизации единиц доступа, каждая из которых содержит кодированное изображение и ассоциированные единицы уровня абстрагирования от сети (NAL), до того как они декодируются. В HEVC WD4, например, отсутствуют СРВ-операции, но, тем не менее, могут применяться СРВ-операции, как указано в H.264/AVC. В качестве одного примера, согласно H.264/AVC, для соответствующего потока битов, список условий, как указано в подразделе С.З в H.264/AVC, может удовлетворяться полностью. Два из условий соответствия потока битов заключаются в следующем:
(1) СРВ-переполнение указывается в качестве условия, в котором общее число битов в СРВ превышает СРВ-размер. СРВ может никогда не переполняться;
r,n
af
(2) СРВ-опустошение указывается в качестве условия, в котором t(n) меньше "t(n)". Когда low_delay_hrd_flag равен 0, СРВ может никогда не опустошаться.
af
[0088] Далее поясняются некоторые потенциальные проблемы вышеописанных технологий. Различные подходы, описанные выше в отношении произвольного доступа, который осуществляется в CRA-изображении, имеют несколько недостатков. В качестве одного примера, в случае, если начальное изображение не присутствует, соответствующий декодер может не знать, потеряно начальное изображение вследствие потерь при передаче или вследствие намеренных отбрасываний изображений (например, посредством сервера потоковой передачи, намеренно для операции произвольного доступа). В качестве другого примера, начальные изображения не могут быть корректно декодированы и, как следствие, могут нарушать возможности работы пользователей при отображении. В качестве еще одного другого примера, в случае, если некоторые кодированные изображения отбрасываются намеренно, результирующий поток битов, начинающийся с CRA-изображения, может конфликтовать с одним или более условий соответствия потока битов, и, как следствие, могут возникать непредвиденное поведение при декодировании и неуправляемые результаты декодирования. Например, когда все начальные изображения отбрасываются, следующее изображение после CRA-изображения в порядке декодирования становится кодированным изображением после последнего начального изображения в порядке декодирования. По сравнению со случаем, в котором присутствуют начальные изображения, это следующее изображение протекает СРВ раньше по времени, и, следовательно, его конечное время t(n) поступления в СРВ становится раньше по времени. Время удаления из СРВ, извлекаемое из элемента cpb_removal_delay синтаксиса в ассоциированном сообщении с дополнительной улучшающей информацией (SEI) по синхронизации изображений, может не изменяться. Таким образом, СРВ-опустошение не возникает. Тем не менее, если число битов этого изображения и следующих изображений в порядке декодирования значительно превышает число битов отброшенных начальных изображений, может возникать СРВ-переполнение.
[0089] Это раскрытие сущности описывает несколько технологий, которые могут, в некоторых случаях, уменьшать или исключать некоторые недостатки, описанные выше. В частности, технологии этого раскрытия сущности могут разрешать проблемы, описанные выше, связанные с произвольным доступом из CRA-изображений, посредством использования различных способов, чтобы обеспечивать то, что поток битов, для которого первое кодированное изображение является CRA-изображением, является соответствующим, независимо от того, присутствуют или нет начальные изображения, ассоциированные с CRA-изображением. Раскрытые технологии включают в себя, по меньшей мере, следующие аспекты, которые могут быть использованы для того, чтобы реализовывать признаки, описанные выше.
[0090] В качестве одного примера, необязательно может добавляться процесс для обнаружения осуществления произвольного доступа. Обнаружение осуществления произвольного доступа для каждого изображения и для каждого начального изображения независимо от того, предназначено оно для декодирования и/или вывода, может быть выполнено посредством составления набора исчезающих изображений (VPS), который содержит изображения, которые не могут быть корректно приняты и декодированы вследствие произвольного доступа, но должны быть корректно приняты и декодированы в нормальном случае. При условии, что VPS не является пустым, может требоваться обнаружение.
[0091] В качестве другого примера, обработка свойства вывода начальных изображений может быть выполнена таким образом, что начальные изображения могут не использоваться для вывода, когда осуществляется случайный доступ, начинающийся с ассоциированного CRA-изображения.
[0092] В качестве другого примера, процессы декодирования для начального изображения могут быть модифицированы таким образом, что если принимается начальное изображение, может выполняться только синтаксический анализ высокоуровневого синтаксиса и вызова ассоциированных процессов декодирования, например, извлечения набора опорных изображений (RPS), и декодирование такого изображения может пропускаться.
[0093] В качестве другого примера, может добавляться ограничение потока битов таким образом, что даже когда декодер начинает декодирование CRA-изображения, и отсутствуют начальные изображения, идущие после CRA-изображения, связанная с соответствием СРВ информация, включающая в себя параметры гипотетического опорного декодера (HRD), SEI-сообщения периода буферизации изображений и SEI-сообщения по синхронизации изображений, может быть использована для того, чтобы удовлетворять ограничениям СРВ, и, как следствие, не может возникать переполнение или опустошение буфера.
[0094] В качестве другого примера, SEI-сообщение, ассоциированное с CRA-изображением, может быть передано в служебных сигналах как включающее в себя дополнительный набор параметров начальной задержки СРВ, так что когда не присутствуют начальные изображения, ограничения на соответствие СРВ могут удовлетворяться при применении дополнительного набора параметров начальной задержки СРВ. Более конкретно, в SEI-сообщении по периоду буферизации изображений, два набора параметров начальной задержки СРВ могут быть переданы в служебных сигналах, если текущее изображение является CRA-изображением.
[0095] Следующие примеры демонстрируют вышеописанные признаки технологий этого раскрытия сущности. Для целей описания следующих примеров задаются следующие термины:
- начальное изображение: изображение, ассоциированное с CRA-изображением, которое следует за CRA-изображением в порядке декодирования и предшествует CRA-изображению в порядке вывода или отображения.
VPS: набор опорных изображений, ассоциированных с CRA-изображением, которые имеют порядок отображения раньше по времени порядка отображения CRA-изображения.
[0096] Далее описываются примеры синтаксиса и, в частности, примеры синтаксиса SEI-сообщений по периоду буферизации.
Таблица II
buffering_period (payloadSize) {
С
Дескриптор
seq_parameter_set_id
5
ue (v)
cra_para_present_flag
5
u (1)
if (NalHrdBpPresentFlag) {
for (SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++) {
initial_cpb_removal_delay[SchedSelIdx]
5
u (v)
initial_cpb_removal_delay_Offset[SchedSelIdx]
5
u (v)
if (cra_para_present_flag) {
update_initial_cpb_removal_delay[SchedSelIdx]
5
u (v)
update_initial_cpb_removal_delay_Offset[SchedSelIdx]
5
u (v)
}
}
}
if (VclHrdBpPresentFlag) {
for (SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++) {
initial_cpb_removal_delay[SchedSelIdx]
5
u (v)
initial_cpb_removal_delay_Offset[SchedSelIdx]
5
u (v)
if (cra_para_present_flag) {
update_initial_cpb_removal_delay[SchedSelIdx]
5
u (v)
update_initial_cpb_removal_delay_Offset[SchedSelIdx]
5
u (v)
}
}
}
}
[0097] Дополнительно, ниже описываются примеры семантики SEI-сообщений по периоду буферизации.
[0098] В качестве одного примера, cra_para_present_flag, равный истине или 1, может указывать, что другой набор начальных задержек СРВ передается в служебных сигналах, когда текущее ассоциированное изображение является CRA-изображением. Этот флаг, равный значению "ложь" или 0, может указывать, что дополнительный набор начальных задержек СРВ не передается в служебных сигналах. Этот флаг может быть равным 0, когда ассоциированное изображение не является CRA-изображением.
[0099] В качестве другого примера, update_initial_cpb_removal_delay[SchedSelIdx] может указывать задержку для SchedSelIdx-ого СРВ между временем поступления в СРВ первого бита кодированных данных, ассоциированных с единицей доступа, ассоциированной с SEI-сообщением по периоду буферизации, и временем удаления из СРВ кодированных данных, ассоциированных с идентичной единицей доступа, для первого периода буферизации после инициализации HRD. Элемент синтаксиса может иметь длину в битах, заданную посредством initial_cpb_removal_delay_length_minus1+1. Она может быть в единицах синхросигнала в 90 кГц. Кроме того, update_initial_cpb_removal_delay[SchedSelIdx] может не быть равным 0 и может не превышать 90000*(CpbSize[SchedSelIdx] ÷ BitRate[SchedSelIdx]), временной эквивалент СРВ-размера в единицах синхросигнала в 90 кГц.
[0100] В качестве другого примера, update_initial_cpb_removal_delay_Offset[SchedSelIdx] может использоваться для SchedSelIdx-ого СРВ в комбинации с cpb removal delay, чтобы указывать начальное время доставки кодированных единиц доступа в СРВ. Например, update_nitial_cpb_removal_delay_Offset[SchedSelIdx] может быть в единицах синхросигнала в 90 кГц. Элемент update_initial_cpb_removal_delay_Offset[SchedSelIdx] синтаксиса может быть кодом фиксированной длины, длина которого в битах задается посредством initial_cpb_removal_delay_length_minus1+l. Этот элемент синтаксиса не может быть использован посредством декодеров и может требоваться только для планировщика доставки (HSS), указываемого в Приложении С HEVC WD4.
[0101] Далее описываются примеры процессов декодирования. Согласно технологиям этого раскрытия сущности, следующие процессы декодирования могут добавляться и/или модифицироваться относительно процессов декодирования, описанных в заявке на патент (США) №13/622972, поданной 19 сентября 2012 года, содержимое которой полностью содержится в данном документе по ссылке.
[0102] В качестве одного примера, далее описываются технологии создания VPS. В некоторых примерах, создание VPS может выполняться непосредственно после вызова процесса извлечения для RPS, когда текущее изображение является CRA-изображением. Например, в случаях, когда текущее изображение является CRA-изображением, если какое-либо изображение в RPS не находится в DPB, VPS может задаваться в качестве текущего RPS. В противном случае, VPS может задаваться пустым.
[0103] В качестве другого примера, далее описываются технологии идентификации начальных изображений. В некоторых примерах, если VPS не является пустым, и изображение имеет RPS, который перекрывается с VPS, изображение может быть идентифицировано в качестве начального изображения.
[0104] В качестве другого примера, далее описываются технологии декодирования начальных изображений. В некоторых примерах, декодирование начального изображения может пропускаться посредством соответствующего декодера.
[0105] В качестве другого примера, далее описываются технологии вывода начальных изображений. В некоторых примерах, для каждого начального изображения, output_flag может задаваться как "ложь" независимо от того, равно значение output_flag в заголовке слайса 0 или 1.
[0106] Далее описывается HRD и, в частности, работа СРВ. Например, технические требования в этой части раскрытия сущности могут применяться независимо к каждому набору параметров СРВ, который присутствует, а также к соответствию типу I и типу II.
[0107] В качестве одного примера, далее описывается синхронизация поступления потока битов. HRD может быть инициализирован в любом из SEI-сообщений по периоду буферизации. До инициализации СРВ может быть пустым. В этом примере, после инициализации, HRD не может быть инициализирован снова посредством последующих SEI-сообщений по периоду буферизации. Также в этом примере, если первая единица доступа является единицей доступа CRA, и начальные изображения не присутствуют, и cra_para_present_flag равен 1, useUpdatePara может задаваться равным 1. В противном случае, useUpdatePara может задаваться равным 0.
[0108] Например, если useUpdatePara равен 0, InitialCpbRemovalDelay[SchedSelIdx] может задаваться равным initial_cpb_removal_delay[SchedSelIdx], и InitialCpbRemovalDelayOffset[SchedSelIdx] может задаваться равным initial_cpb_removal_delay_0ffset[SchedSelIdx]. В противном случае, InitialCpbRemovalDelay[SchedSelIdx] может задаваться равным update_initial_cpb_removal_delay[SchedSelIdx], и InitialCpbRemovalDelayOffset[SchedSelIdx] может задаваться равным update_initial_cpb_removal_delay_Offset[SchedSelIdx], при этом initial_cpb_removal_delay[SchedSelIdx], initial_cpb_removal_delay_Offset[SchedSelIdx], update_initial_cpb_removal_delay[SchedSelIdx] и update_initial_cpb_removal_Offset[SchedSelIdx] могут указываться в SEI-сообщении по периоду буферизации, ассоциированном с единицей доступа CRA.
ai
[0109] Кроме того, единица доступа, которая ассоциирована с SEI-сообщением по периоду буферизации, которое инициализирует СРВ, может упоминаться в качестве единицы 0 доступа. Все другие единицы доступа упоминаются в качестве единицы n доступа, при этом n увеличивается на 1 для следующей единицы доступа в порядке декодирования. В этом примере, время, в которое первый бит единицы n доступа начинает поступать в СРВ, может упоминаться в качестве начального времени t(n) поступления.
[0110] В одном примере, начальное время поступления единиц доступа может извлекаться следующим образом:
ai
(1) если единица доступа является единицей 0 доступа, t(0)=0;
(2) иначе (единица доступа является единицей n доступа, где n>0), следующее может применяться:
(a) если cbr_flag[SchedSelIdx] равен 1, начальное время поступления для единицы n доступа может быть равным конечному времени поступления (которое извлекается ниже) единицы n-1 доступа, т.е.:
(b) иначе, если cbr_flag[SchedSelIdx] равен 0, и единица n доступа не является первой единицей доступа последующего периода буферизации, начальное время поступления для единицы n доступа может извлекаться посредством следующего:
ai,earliest
где t(n)/задается следующим образом:
r,n
при этом t(n) в некоторых примерах является номинальным временем удаления единицы n доступа из СРВ, как указано в подразделе С.1.2 HEVC WD4;
(с) иначе (если cbr_flag[SchedSelIdx] равен 0, и следующая единица n доступа является первой единицей доступа последующего периода буферизации), начальное время поступления для единицы n доступа может извлекаться посредством следующего:
при этом InitialCpbRemovalDelay[SchedSelIdx] в некоторых примерах указывается в SEI-сообщении по периоду буферизации, ассоциированном с единицей n доступа.
[0111] В этом примере, конечное время поступления для единицы n доступа может извлекаться посредством следующего:
где b(n) может быть размером в битах единицы n доступа, подсчитывающим биты потока битов типа I для соответствия типу I или биты потока битов типа II для соответствия типу II.
[0112] В некоторых примерах, значения SchedSelIdx, BitRate[SchedSelIdx] и CpbSize[SchedSelIdx] могут ограничиваться следующим образом:
(1) если единица n доступа и единица п-1 доступа являются частью различных CVS, и контент активных SPS двух CVS отличаются, HSS может выбирать значение SchedSelIdx1 SchedSelIdx из числа значений SchedSelIdx, предоставленных для CVS, содержащей единицу n доступа, что приводит к BitRate[SchedSelIdxl] или CpbSize[SchedSelIdx1] для второй из двух CVS (которая содержит единицу n-1 доступа), которое отличается от значения BitRate[SchedSelIdx0] или CpbSize[SchedSelIdx0] для значения SchedSelIdx0 SchedSelIdx, которое использовано для CVS, содержащей единицу n-1 доступа;
(2) иначе, HSS может продолжать работать с предыдущими значениями SchedSelIdx, BitRate[SchedSelIdx] и CpbSize[SchedSelIdx].
[0113] В других примерах, когда HSS выбирает значения BitRate[SchedSelIdx] или CpbSize[SchedSelIdx], которые отличаются от значений предыдущей единицы доступа, следующее может применяться:
ai
(1) переменная BitRate[SchedSelIdx] может активироваться во время t(n);
(2) переменная CpbSize[SchedSelIdx] может активироваться следующим образом:
ai
(a) если новое значение CpbSize[SchedSelIdx] превышает старый СРВ-размер, оно может активироваться во время t(n);
r
(b) иначе, новое значение CpbSize[SchedSelIdx] может активироваться во время t(n).
[0114] В качестве другого примера, далее описывается синхронизация удаления кодированных изображений. Например, для единицы 0 доступа, номинальное время удаления единицы доступа из СРВ может указываться посредством следующего:
[0115] Кроме того, для первой единицы доступа периода буферизации, который не инициализирует HRD, номинальное время удаления единицы доступа из СРВ может указываться посредством следующего:
r,n
b
где t(n) может быть номинальным временем удаления первого изображения предыдущего периода буферизации, и cpb_removal_delay(n) может указываться в SEI-сообщении по синхронизации изображений, ассоциированном с единицей n доступа.
b
[0116] Дополнительно, когда единица n доступа является первой единицей доступа периода буферизации, n может задаваться равным n во время удаления единицы n доступа.
r,n
[0117] Кроме того, номинальное время t(n) удаления единицы n доступа, которая не является первой единицей доступа периода буферизации, может задаваться следующим образом:
[0118] Дополнительно, время удаления единицы n доступа может указываться следующим образом:
r,n
af
(1) если low_delay_hrd_flag равен 0, или t(n)>=t(n), время удаления единицы n доступа может указываться посредством следующего:
r,n
af
(2) иначе (если low_delay_hrd_flag равен 1, и t(n)<t(n)), время удаления единицы n доступа может указываться посредством следующего:
[0119] В этом примере, второй случай указывает то, что размер единицы n доступа, b(n), является настолько большим, что он предотвращает удаление в номинальное время удаления.
[0120] В качестве другого примера, далее описывается соответствие потока битов. Раскрытие сущности подраздела С.3 H.264/AVC может применяться к технологиям, описанным ниже, со следующими включенными изменениями: первое кодированное изображение, в порядке декодирования, соответствующего потока битов может быть IDR-изображением или CRA-изображением. Для соответствующего потока битов, начинающегося с CRA-изображения, поднабор потока битов, сформированный посредством отбрасывания единиц доступа, которые содержат все начальные изображения, ассоциированные со стартовым CRA-изображением, по-прежнему может быть соответствующим потоком битов.
[0121] Нижеприведенное описание включает в себя альтернативные примеры технологий этого раскрытия сущности, описанного выше. Например, различные альтернативные реализации конкретных аспектов этого раскрытия сущности являются возможными, и некоторые описываются следующим образом. Следующие альтернативные реализации описываются в отношении различных аспектов технологий раскрытия сущности. Тем не менее, любая комбинация реализации для различных аспектов также может формировать реализации в соответствии с технологиями этого раскрытия сущности.
[0122] Следующие альтернативные примеры связаны с модификацией VPS.
[0123] В качестве одного примера, задание AVP предоставляется следующим образом: набор опорных изображений, ассоциированных с изображением, состоящий из всех опорных изображений, которые находятся в текущем RPS и не могут быть корректно декодированы, когда осуществляется произвольный доступ из ближайшего CRA-изображения, которое предшествует изображению в порядке декодирования.
[0124] Ниже приводится один альтернативный пример модификации VPS. В этом примере, в случае, если VPS не является пустым, следующее может применяться:
(1) до того, как текущее изображение декодируется, каждое изображение в VPS может проверяться;
(a) если изображение находится в RPS, оно может сохраняться в VPS;
(b) иначе, оно может удаляться из VPS;
(2) в случае, если VPS текущего изображения и RPS текущего изображения имеют перекрытие, текущее изображение может быть вставлено в VPS, если оно является опорным изображением, после того как декодируется текущее изображение.
[0125] В некоторых примерах, если изображение не является CRA-изображением, и VPS не является пустым, каждое изображение в текущем RPS может находиться либо в VPS, либо в DPB.
[0126] Ниже приводится другой альтернативный пример модификации VPS. В этом примере, в случае, если VPS не является пустым, следующее может применяться:
(1) до того, как изображение декодируется, каждое изображение в VPS может проверяться;
(a) если изображение находится в RPS и принадлежит одному из поднаборов RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr, оно может сохраняться в VPS;
(b) иначе, оно может удаляться из VPS;
(2) в случае, если VPS текущего изображения и RPS текущего изображения имеют перекрытие, текущее изображение может быть вставлено в VPS, если оно является опорным изображением, после того как декодируется текущее изображение.
[0127] Ниже приводится другой альтернативный пример модификации VPS. В этом примере, в случае, если изображение имеет порядок отображения, больший порядка отображения CRA-изображения, и VPS не является пустым, следующее может применяться:
(1) в случае, если по меньшей мере одно изображение в RPS принадлежит VPS, VPS может сохраняться неизменным;
(2) в случае, если ни одно изображение в RPS не принадлежит VPS, VPS может задаваться пустым.
[0128] В этом примере, VPS может изменяться только дважды в течение каждого произвольного доступа. В первый раз он может быть заполнено изображениями, от которых могут зависеть начальные изображения. Во второй раз он может задаваться пустым.
[0129] В примере по фиг. 4, если изображение "8" используется для произвольного доступа, VPS может быть {8}. В этом примере, только после того, как создается RPS изображения "16", VPS может задаваться пустым. В этом примере, изображения с порядком отображения, меньшим порядка отображения CRA-изображения, могут пропускаться для декодирования и вывода при условии, что VPS не является пустым. Это может описываться как другой или альтернативный подход для "идентификации начальных изображений".
[0130] Далее описывается альтернативный пример создания исчезающего изображения. В этом примере, в случае, если изображение обнаруживается в качестве исчезающего изображения, оно может быть создано в качестве копии изображения в DPB, которое имеет ближайший порядок отображения (РОС-расстояние) относительно исчезающего изображения. Если два изображения имеют идентичное РОС-расстояние, может быть использовано изображение с меньшим РОС.
[0131] Далее описывается альтернативный пример декодирования начальных изображений. В качестве одного примера, начальное изображение может быть декодировано, если ни одно из изображений в RefPicSetStCurr0, RefPicSetStCurr1 или RefPicSetLtCurr не принадлежит VPS. В качестве другого примера, начальное изображение может всегда декодироваться, в частности, когда каждое исчезающее изображение доступно в DPB, хотя и со смещением.
[0132] Далее описывается альтернативный пример вывода начальных изображений. В качестве одного примера, в случае, если начальное изображение корректно декодируется, output_flag может задаваться равным 1. В противном случае, output_flag может задаваться равным 0. В качестве другого примера, только непрерывные начальные изображения непосредственно перед CRA-изображением в порядке вывода, если они все корректно декодируются, могут иметь значения output flag, заданные равными 1, и другие начальные изображения могут иметь значения output_flag, заданные равными 0.
[0133] Далее описывается альтернативный пример синтаксиса SEI-сообщений по смещению времени удаления и, в частности, по периоду буферизации.
Таблица III
buffering_period (payloadSize) {
С
Дескриптор
seq_parameter_set_id
5
ue (v)
cra_para_present_flag
5
u (l)
if (NalHrdBpPresentPlag) {
for (SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++) {
initial_cpb_removal_delay[SchedSelIdx]
5
u (v)
initial_cpb_removal_delay_Offset[SchedSelIdx]
5
u (v)
if (cra_para_present_flag)
random_access_removal_delay_Offset[SchedSelIdx]
5
u (v)
}
}
if (VclHrdBpPresentFlag) {
for (SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++) {
initial_cpb_removal_delay[SchedSelIdx]
5
u (v)
initial_cpb_removal_delay_Offset[SchedSelIdx]
5
u (v)
if (cra_parap_resent_flag)
random_access_removal_delay_Offset[SchedSelIdx]
5
u (v)
}
}
}
[0134] Альтернативно, в других примерах, смещение может быть передано в служебных сигналах в другом SEI-сообщении, которое ассоциировано только с CRA- (или не-IDR с произвольным доступом) изображением, синтаксис для которого предоставляется ниже.
[0135] Далее описывается пример синтаксиса SEI-сообщений по смещению задержки удаления из СРВ.
Таблица IV
cpb_removeal_delay_offset(payloadSize) {
С
Дескриптор
seq_parameter_set_id
5
ue (v)
if (NalHrdBpPresentFlag)
for (SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++)
random_access_removal_delay_Offset[SchedSelIdx]
5
u (v)
if (VclHrdBpPresentFlag)
for (SchedSelIdx=0; SchedSelIdx<=cpb_cnt_minus1; SchedSelIdx++) {
random_access_removal_delay_Offset[SchedSelIdx]
5
u (v)
}
[0136] Дополнительно, ниже описывается семантика SEI-сообщений по периоду буферизации.
[0137] В качестве одного примера, cra_para_present_flag, равный 1, может указывать присутствие элемента random_access_removal_delay_Offset[SchedSelIdx] синтаксиса. Этот флаг, равный 0, может указывать отсутствие элемента random_access_removal_delay_Offset[SchedSelIdx] синтаксиса.
[0138] В качестве другого примера, random_access_removal_delay_Offset[SchedSelIdx] может указывать смещение времени удаления из СРВ для SchedSelIdx-ого СРВ. Например, он может быть в единицах синхросигнала в 90 кГц. Дополнительно, random access_removal_delay_Offset[SchedSelIdx] может не превышать initial_cpb removal delay[SchedSelIdx] + initial_cpb_removal_delay_Offset[SchedSelIdx]. В некоторых примерах, если не присутствует, значение может логически выводиться равным 0.
[0139] Далее описывается пример семантики SEI-сообщений по смещению задержки удаления из СРВ. В некоторых примерах, такое SEI-сообщение может присутствовать только для CRA-изображения и может активироваться только тогда, когда CRA используется для произвольного доступа, и его соответствующие начальные изображения не присутствуют в потоке битов. В качестве одного примера, random_access_removal_delay_Offset[SchedSelIdx] может указывать смещение времени удаления из СРВ для SchedSelIdx-ого СРВ. Например, он может быть в единицах синхросигнала в 90 кГц. Дополнительно, random_access_removal_delay_Offset[SchedSelIdx] может не превышать initial_cpb_removal_delay[SchedSelIdx] + initial_cpb_removal_delay
Offset[SchedSelIdx]. В некоторых примерах, если не присутствует, значение может логически выводиться равным 0.
[0140] Далее описывается пример работы СРВ. Технические требования в этой части раскрытия сущности могут применяться независимо к каждому набору параметров СРВ, который присутствует, а также к соответствию типу I и типу II.
[0141] В качестве одного примера, далее описывается синхронизация поступления потока битов. Например, HRD может быть инициализирован в любом из SEI-сообщений по периоду буферизации. До инициализации СРВ может быть пустым. В этом примере, после инициализации, HRD не может быть инициализирован снова посредством последующих SEI-сообщений по периоду буферизации. Также в этом примере, единица доступа, которая ассоциирована с SEI-сообщением по периоду буферизации, которое инициализирует СРВ, может упоминаться в качестве единицы 0 доступа. Все другие единицы доступа упоминаются в качестве единицы n доступа, при этом n увеличивается на 1 для следующей единицы доступа в порядке декодирования.
ai
[0142] В этом примере, если первая единица доступа является единицей доступа CRA, и начальные изображения не присутствуют, и cra_para_present_flag равен 1, useUpdatePara может задаваться равным 1. В противном случае, useUpdatePara может задаваться равным 0. Кроме того, если useUpdatePara равен 1, DelayOffset[SchedSelIdx] может задаваться равным random_access_removal_delay_Offset[SchedSelIdx]. В противном случае, DelayOffset[Sched3elIdx] может задаваться равным 0. Дополнительно, время, в которое первый бит единицы п доступа начинает поступать в СРВ, может упоминаться в качестве начального времени t(n) поступления. В некоторых примерах, начальное время поступления единиц доступа может извлекаться следующим образом:
ai
(1) если единица доступа является единицей 0 доступа, t(0)=0.
(2) иначе (если единица доступа является единицей n доступа, где n>0), следующее может применяться:
(a) если cbr_flag[SchedSelIdx] равен 1, начальное время поступления для единицы n доступа может быть равным конечному времени поступления (которое извлекается ниже) единицы n-1 доступа, т.е.:
ai
af
t(n)=t(n-1), уравнение 11
(b) иначе, если cbr_flag[SchedSelIdx] равен 0, и единица n доступа не является первой единицей доступа последующего периода буферизации, начальное время поступления для единицы n доступа может извлекаться посредством следующего:
ai, earliest
где t(n)/может задаваться следующим образом:
r,n
при этом t(n) является номинальным временем удаления единицы n доступа из СРВ, как указано в подразделе С.1.2 HEVC WD4, и initial_cpb_removal_delay[SchedSelIdx] и initial_cpb_removal_delay_Offset[SchedSelIdx] указываются в предыдущем SEI-сообщении по периоду буферизации.
(с) иначе (если cbr_flag[SchedSelIdx] равен 0, и следующая единица n доступа является первой единицей доступа последующего периода буферизации), начальное время поступления для единицы n доступа может извлекаться посредством следующего:
причем initial_cpb_removal_delay[SchedSelIdx] указывается в SEI-сообщении по периоду буферизации, ассоциированном с единицей n доступа. В этом примере, конечное время поступления для единицы n доступа может извлекаться посредством следующего:
где b(n) может быть размером в битах единицы n доступа, подсчитывающим биты потока битов типа I для соответствия типу I или биты потока битов типа II для соответствия типу II.
[0143] Кроме того, значения SchedSelIdx, BitRate[SchedSelIdx] и CpbSize[SchedSelIdx] могут ограничиваться следующим образом:
(1) если единица n доступа и единица п-1 доступа являются частью различных CVS, и контент активных SPS двух CVS отличается, HSS может выбирать значение SchedSelIdxl SchedSelIdx из числа значений SchedSelIdx, предоставленных для CVS, содержащей единицу n доступа, что приводит к BitRate[SchedSelIdxl] или CpbSize[SchedSelIdxl] для второй из двух CVS (которая содержит единицу п-1 доступа), которое отличается от значения BitRate[SchedSelIdx0] или CpbSize [SchedSelIdx0] для значения SchedSelIdx0 SchedSelIdx, которое использовано для CVS, содержащей единицу п-1 доступа.
(2) иначе, HSS может продолжать работать с предыдущими значениями SchedSelIdx, BitRate[SchedSelIdx] и CpbSize[SchedSelIdx].
[0144] Дополнительно, когда HSS выбирает значения BitRate[SchedSelIdx] или CpbSize[SchedSelIdx], которые отличаются от значений предыдущей единицы доступа, следующее может применяться:
ai
(1) переменная BitRate[SchedSelIdx] может активироваться во время t(n); и
(2) переменная CpbSize[SchedSelIdx] может активироваться следующим образом:
ai
(a) если новое значение CpbSize[SchedSelIdx] превышает старый СРВ-размер, оно может активироваться во время t(n),
r
(b) иначе, новое значение CpbSize[SchedSelIdx] может активироваться во время t(n).
[0145] В качестве другого примера, далее описывается синхронизация удаления кодированных изображений. В некоторых примерах, можно предположить, что номинальное время удаления из СРВ и время удаления из СРВ кодированного изображения вычисляются сразу после того, как предыдущее кодированное изображение удаляется из СРВ, или, для единицы 0 доступа, когда HRD инициализируется.
[0146] Например, для единицы 0 доступа, номинальное время удаления единицы доступа из СРВ может указываться посредством следующего:
b
r,n
r,n
[0147] Во время удаления единицы 0 доступа переменная n может задаваться равной 0. Сразу после удаления единицы 0 доступа из СРВ, t(0) может задаваться равным t(0) - (DelayOffset[SchedSelIdx]÷90000).
[0148] В этом примере, эффективное время удаления из СРВ единицы 0 доступа не может сдвигаться, но для всех изображений после единицы 0 доступа в порядке декодирования, эффективное время удаления из СРВ может сдвигаться к моменту раньше во времени на (DelayOffset[SchedSelIdx]÷90000).
[0149] Кроме того, для первой единицы доступа периода буферизации, который не инициализирует HRD, номинальное время удаления единицы доступа из СРВ может указываться посредством следующего:
r,n
b
где t(n) может быть номинальным временем удаления первого изображения предыдущего периода буферизации, и cpb_removal_delay(n) может указываться в SEI-сообщении по синхронизации изображений, ассоциированном с единицей n доступа.
b
r,n
[0150] Дополнительно, когда единица n доступа является первой единицей доступа периода буферизации, который не инициализирует HRD, n может задаваться равным n во время удаления единицы n доступа. Кроме того, номинальное время t(n) удаления единицы n доступа, которая не является первой единицей доступа периода буферизации, может задаваться следующим образом:
[0151] Например, время удаления единицы n доступа может указываться следующим образом:
r,n
af
(1) если low_delay_hrd_flag равен 0, или t(n)>=t(n), время удаления единицы n доступа может указываться посредством следующего:
r,n
af
(2) иначе (если low_delay_hrd_flag равен 1, и t(n)<t(n)), время удаления единицы n доступа может указываться посредством следующего:
[0152] В этом примере, второй случай указывает то, что размер единицы n доступа, b(n), является настолько большим, что он предотвращает удаление в номинальное время удаления.
[0153] Другой пример технологий этого раскрытия сущности указывает процессы декодирования для начальных изображений, которые имеют пропущенные опорные изображения. В этом примере, только поток битов, начинающийся с CRA-изображения, для которого начальные изображения присутствуют в потоке битов, указывается в качестве соответствующего потока битов. В частности, этот пример соответствует некоторым технологиям, описанным в HEVC WD5, и включает в себя следующие изменения этих технологий HEVC WD5, как подробно поясняется ниже.
[0154] В этом примере, первое кодированное изображение в потоке битов может быть IDR-изображением или CRA-изображением. Как пояснено выше, термин "начальное изображение", при использовании в этом раскрытии сущности, может задаваться следующим образом: кодированное изображение, ассоциированное с CRA-изображением, которое идет после CRA-изображения в порядке декодирования и предшествует CRA-изображению в порядке вывода. Например, если первое кодированное изображение в потоке битов является CRA-изображением, и текущее или текущее кодированное изображение является начальным изображением для первого кодированного изображения в потоке битов, output_flag текущего кодированного изображения может задаваться равным значению "ложь" или 0 (например, независимо от значения output_flag- в заголовке NAL-единицы NAL-единиц уровня кодирования видео (VCL) кодированного изображения). В этом примере, процесс декодирования для формирования пропущенных опорных изображений (как показано ниже) может активироваться (например, этот процесс, возможно должен активироваться только для одного слайса изображения).
[0155] Кроме того, могут быть одно или более. опорных изображений, которые включаются в RPS, но которые не присутствуют в DPB. Записи в RefPicSetStFoll или RefPicSetLtFoll, равные "отсутствие опорного изображения", могут игнорироваться, если первое кодированное изображение в потоке битов является IDR-изображением, или если первое кодированное изображение в потоке битов является CRA-изображением, и текущее кодированное изображение не является начальным изображением для первого кодированного изображения в потоке битов. Например, ненамеренные потери изображений могут логически выводиться для каждой записи в RefPicSetStCurr0, RefPicSetStCurr1 и RefPicSetLtCurr, равной "отсутствие опорного изображения".
[0156] Дополнительно, если первое кодированное изображение в потоке битов является IDR-изображением, или если первое кодированное изображение в потоке битов является CRA-изображением, и текущее кодированное изображение не является начальным изображением для первого кодированного изображения в потоке битов, может не быть записи в RefPicSetStCurr0, RefPicSetStCurr1 или RefPicSetLtCurr, равной "отсутствие опорного изображения".
[0157] Процесс декодирования для формирования пропущенных опорных изображений может указываться следующим образом. Этот процесс может активироваться один раз в расчете на кодированное изображение, после вызова процесса декодирования для RPS (как указано в подразделе 8.2.2 в HEVC WD5, в документе "JCTVC-G1103", например, в версии "d9" документа). Когда первое кодированное изображение в потоке битов является CRA-изображением, и текущее кодированное изображение является начальным изображением для первого кодированного изображения в потоке битов, следующее может применяться:
1) Для каждого RefPicSetStCurr0[i], при этом i находится в диапазоне от 0 до NumPocStCurr0-1 включительно, т.е. равно "отсутствие опорного изображения", опорное изображение может быть сформировано посредством вызова процесса декодирования для формирования пропущенного опорного изображения, как указано ниже. Дополнительно, следующее может применяться:
A) Значение PicOrderCntVal для сформированного опорного изображения может задаваться равным PocStCurr0[i].
B) Значение output_flag для сформированного опорного изображения может задаваться равным 0.
C) Сформированное опорное изображение может маркироваться как "используется для кратковременной ссылки".
D) RefPicSetStCurr0[i] может задаваться в качестве сформированного опорного изображения.
2) Для каждого RefPicSetStCurr1[i], при этом i находится в диапазоне от 0 до NumPocStCurr1-1 включительно, т.е. равно "отсутствие опорного изображения", опорное изображение может быть сформировано посредством вызова процесса декодирования для формирования пропущенного опорного изображения, как указано ниже. Дополнительно, следующее может применяться:
A) Значение PicOrderCntVal для сформированного опорного изображения может задаваться равным PocStCurr1[i].
B) Значение output_flag для сформированного опорного изображения может задаваться равным 0.
C) Сформированное опорное изображение может маркироваться как "используется для кратковременной ссылки".
D) RefPicSefcStCurr1[i] могу задаваться в качестве сформированного опорного изображения.
3) Для каждого RefPicSetLtCurr[i], при этом i находится в диапазоне от 0 до NumPocLtCurr-1 включительно, т.е. равно "отсутствие опорного изображения", опорное изображение может быть сформировано посредством вызова процесса декодирования для формирования пропущенного опорного изображения, как указано ниже. Дополнительно, следующее может применяться:
A) Значение pic_order_cnt_lsb для сформированного опорного изображения может задаваться равным PocLtCurr[i].
B) Значение output flag для сформированного опорного изображения может задаваться равным 0.
C) сформированное опорное изображение может маркироваться как "используется для долговременной ссылки".
D) RefPicSetLtCurr[i] могу задаваться в качестве сформированного опорного изображения.
[0158] В некоторых примерах, процесс декодирования для формирования пропущенного опорного изображения может указываться следующим образом:
L
Y
1) Значение каждого элемента в массиве S выборок может задаваться равным 1<<(BitDepth-1).
Cb
Cr
C
2) Значение каждого элемента в массивах S и S выборок может задаваться равным 1<<(BitDepth-1).
3) Режим PredMode прогнозирования для каждой минимальной CU может задаваться равным MODE_INTRA.
[0159] Альтернативно, каждая LCU может разбиваться на минимальную CU, и минимальная CU может задаваться равной MODE_INTRA.
[0160] Альтернативно, каждая LCU может задаваться равной MODE_INTRA.
[0161] Соответственно, в некоторых примерах в соответствии с технологиями этого раскрытия сущности, видеокодер 20 устройства-источника 12 может быть сконфигурирован с возможностью кодировать одно или более изображений видеоданных. В этих примерах, видеодекодер 30 устройства-адресата 14 может быть сконфигурирован с возможностью принимать кодированные одно или более изображений из видеокодера 20, например, в качестве части кодированного потока битов, сформированного посредством видеокодера 20 и принимаемого посредством видеодекодера 30, и декодировать одно или более изображений.
[0162] В качестве одного примера, видеодекодер 30 может быть сконфигурирован с возможностью принимать поток битов, который включает в себя одно или более изображений CVS. Видеодекодер 30 может быть дополнительно сконфигурирован с возможностью декодировать первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS. В этом примере, первое изображение может быть RAP-изображением, которое не является IDR-изображением. Видеодекодер 30 также может быть сконфигурирован с возможностью декодировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0163] В качестве другого примера, видеокодер 20 может быть сконфигурирован с возможностью формировать поток битов, который включает в себя одно или более изображений CVS. В этом примере, первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, может быть RAP-изображением, которое не является IDR-изображением. Также в этом примере, для того чтобы формировать поток битов, видеокодер 20 может быть сконфигурирован с возможностью избегать включения в состав по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов. Например, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. В этом примере, первое изображение может быть декодируемым, т.е. допускающим декодирование, например, посредством видеодекодера 30. Также в этом примере по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, также может быть декодируемым, на основе декодированного первого изображения. Например, по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, может быть декодируемым с использованием декодированной версии первого изображения в качестве опорного изображения.
[0164] Таким образом, видеодекодер 30 может декодировать поток битов, например, сформированный посредством видеокодера 20, который включает в себя одно или более изображений видеоданных и начинается с не-IDR RAP-изображения, прогнозируемым и заданным способом, как указано посредством технологий этого раскрытия сущности. Как результат, может быть относительное улучшение возможностей работы пользователей при выполнении произвольного доступа для потока битов, который включает в себя одно или более изображений видеоданных, при использовании раскрытых технологий. В частности, видеодекодер 30 может иметь возможность декодировать поток битов с относительно большей степенью детализации. Другими словами, видеодекодер 30 может иметь возможность произвольно осуществлять доступ к потоку битов в относительно большем числе точек или изображений (т.е. He-IDR-изображений) потока битов, по сравнению с другими технологиями (например, технологиями, которые дают возможность произвольного доступа для потока битов только из IDR-изображений). Дополнительно, может быть относительное повышение визуального качества одного или более изображений CVS, включенной в поток битов, и/или CVS в целом, при использовании технологий этого раскрытия сущности.
[0165] Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из множества надлежащих схем кодера или декодера при соответствующих условиях, к примеру, как один или более микропроцессоров, DSP, ASIC, FPGA, дискретная логическая схема, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо любые комбинации вышеозначенного. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного видеокодера/декодера (кодека). Аппарат, включающий в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему (IC), микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.
[0166] Фиг. 2 является блок-схемой, которая иллюстрирует пример видеокодера, который может выполнять технологии для произвольного доступа с усовершенствованным DPB-управлением, в соответствии с технологиями этого раскрытия сущности. Видеокодер 20 может выполнять интра- и интер-кодирование видеоблоков в видеослайсах. Интра-кодирование основано на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность видео в данном видеокадре или изображении. Интеркодирование основано на временном прогнозировании, чтобы уменьшать или удалять временную избыточность видео в смежных кадрах или изображениях видеопоследовательности. Интра-режим (I-режим) может означать любой из нескольких режимов пространственного сжатия. Интер-режимы, к примеру, однонаправленное прогнозирование (Р-режим) или бипрогнозирование (В-режим), могут означать любой из нескольких режимов временного сжатия.
[0167] В примере по фиг. 2, видеокодер 20 включает в себя модуль 40 выбора режима, модуль 42 оценки движения, модуль 44 компенсации движения, процессор 46 интра-прогнозирования, запоминающее устройство 66 опорных изображений, сумматор 50, процессор 52 преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Для восстановления видеоблоков видеокодер 20 также включает в себя модуль 58 обратного квантования, процессор 60 обратного преобразования и сумматор 62. Фильтр 64 удаления блочности также включается с возможностью фильтровать границы блоков, чтобы удалять артефакты блочности из восстановленного видео.
[0168] Как показано на фиг. 2, видеокодер 20 принимает текущий видеоблок в видеослайсе, который должен быть кодирован. Слайс может быть разделен на несколько видеоблоков. Модуль 40 выбора режима может выбирать один из режимов кодирования (интра-или интер-) для текущего видеоблока на основе результатов ошибки. Если выбирается интра- или интер-режим, модуль 40 выбора режима предоставляет результирующий интра- или интер-кодированный блок в сумматор 50, чтобы формировать остаточные блочные данные, и в сумматор 62, чтобы восстанавливать кодированный блок для использования в качестве опорного изображения. Процессор 46 интра-прогнозирования выполняет кодирование с интра-прогнозированием текущего видеоблока относительно одного или более соседних блоков в кадре или слайсе, идентичном кадру или слайсу текущего блока, который должен быть кодирован, чтобы предоставлять пространственное сжатие. Модуль 42 оценки движения и модуль 44 компенсации движения выполняют кодирование с интер-прогнозированием текущего видеоблока относительно одного или более прогнозных блоков в одном или более опорных изображений, чтобы предоставлять временное сжатие.
[0169] В случае интер-кодирования модуль 42 оценки движения может быть сконфигурирован с возможностью определять режим интер-прогнозирования для видеослайса согласно предварительно определенному шаблону для видеопоследовательности. Предварительно определенный шаблон может обозначать видеослайс в последовательности в качестве Р-слайсов, В-слайсов или GPB-слайсов. Модуль 42 оценки движения и модуль 44 компенсации движения могут иметь высокую степень интеграции, но проиллюстрированы отдельно в концептуальных целях. Оценка движения, выполняемая посредством модуля 42 оценки движения, является процессом формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в текущем видеокадре или изображении относительно прогнозного блока в опорном изображении.
[0170] Прогнозный блок является блоком, для которого обнаруживается, что он практически совпадает с PU видеоблока, который должен быть кодирован, с точки зрения пиксельной разности, которая может быть определена посредством суммы абсолютных разностей (SAD), суммы квадратов разностей (SSD) или других разностных показателей. В некоторых примерах, видеокодер 20 может вычислять значения для субцелопиксельных позиций опорных изображений, сохраненных в запоминающем устройстве 66 опорных изображений. Например, видеокодер 20 может вычислять значения позиций в одну четверть пиксела, позиций в одну восьмую пиксела или других дробнопиксельных позиций опорного изображения. Следовательно, модуль 42 оценки движения может выполнять поиск движения относительно полнопиксельных позиций и дробнопиксельных позиций и выводить вектор движения с дробнопиксельной точностью.
[0171] Модуль 42 оценки движения вычисляет вектор движения для PU видеоблока в интер-кодированном слайсе посредством сравнения позиции PU с позицией прогнозного блока опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (списка 0) или второго списка опорных изображений (списка 1), каждый из которых идентифицируют одно или более опорных изображений, сохраненных в запоминающем устройстве 66 опорных изображений. Модуль 42 оценки движения отправляет вычисленный вектор движения в модуль 56 энтропийного кодирования и модуль 44 компенсации движения.
[0172] Компенсация движения, выполняемая посредством модуля 44 компенсации движения, может заключать в себе выборку или формирование прогнозного блока на основе вектора движения, определенного посредством оценки движения. При приеме вектора движения для PU текущего видеоблока модуль 44 компенсации движения может находить прогнозный блок, на который указывает вектор движения в одном из списков опорных изображений. Видеокодер 20 формирует остаточный видеоблок посредством вычитания пиксельных значений прогнозного блока из пиксельных значений текущего кодируемого видеоблока, формируя значения пиксельных разностей. Значения пиксельных разностей формируют остаточные данные для блока и могут включать в себя разностные компоненты сигнала яркости и сигнала цветности. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания. Модуль 44 компенсации движения также может формировать элементы синтаксиса, ассоциированные с видеоблоками и видеослайсом, для использования посредством видеодекодера 30 при декодировании видеоблоков видеослайса.
[0173] После того, как модуль 44 компенсации движения формирует прогнозный блок для текущего видеоблока, видеокодер 20 формирует остаточный видеоблок посредством вычитания прогнозного блока из текущего видеоблока. Остаточные видеоданные в остаточном блоке могут включаться в одну или более TU и применяться к процессору 52 преобразования. Процессор 52 преобразования преобразует остаточные видеоданные в остаточные коэффициенты преобразования с использованием преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование. Процессор 52 преобразования может преобразовывать остаточные видеоданные из пиксельной области в область преобразования, к примеру, в частотную область.
[0174] Процессор 52 преобразования может отправлять результирующие коэффициенты преобразования в модуль 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования, чтобы дополнительно уменьшать скорость передачи битов. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована посредством регулирования параметра квантования (QP). В некоторых примерах, модуль 54 квантования затем может выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Альтернативно, модуль 56 энтропийного кодирования может выполнять сканирование.
[0175] После квантования, модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять CAVLC, САВАС или другую технологию энтропийного кодирования. После энтропийного кодирования посредством модуля 56 энтропийного кодирования кодированный поток битов может быть передан в видеодекодер 30 или заархивирован для последующей передачи или извлечения посредством видеодекодера 30. Модуль 56 энтропийного кодирования также может энтропийно кодировать векторы движения и другие элементы синтаксиса для текущего кодируемого видеослайса.
[0176] Модуль 58 обратного квантования и процессор 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, чтобы восстанавливать остаточный блок в пиксельной области для последующего использования в качестве опорного блока опорного изображения. Модуль 44 компенсации движения может вычислять опорный блок посредством суммирования остаточного блока с прогнозным блоком одного из опорных изображений в одном из списков опорных изображений. Модуль 44 компенсации движения также может применять один или более интерполяционных фильтров к восстановленному остаточному блоку, чтобы вычислять субцелопиксельные значения для использования при оценке движения. Сумматор 62 суммирует восстановленный остаточный блок с прогнозным блоком с компенсацией движения, сформированным посредством модуля 44 компенсации движения, чтобы сформировать опорный блок для хранения в запоминающем устройстве 66 опорных изображений. Опорный блок может использоваться посредством модуля 42 оценки движения и модуля 44 компенсации движения в качестве опорного блока для того, чтобы интер-прогнозировать блок в последующем видеокадре или изображении.
[0177] В качестве одного примера, видеокодер 20 может быть сконфигурирован с возможностью кодировать одно или более изображений видеоданных в ходе процесса кодирования видео. Например, видеокодер 20 может быть сконфигурирован с возможностью формировать поток битов, который включает в себя одно или более изображений CVS, при этом первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, является RAP-изображением, которое не является IDR-изображением. В этом примере, для того чтобы формировать поток битов, видеокодер 20 может быть сконфигурирован с возможностью избегать включения в состав по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов. Например, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. Также в этом примере, в результате формирования потока битов видеокодера 20 способом, описанным выше, первое изображение может быть успешно декодировано (например, посредством видеодекодера 30), т.е. может быть декодируемым. Дополнительно по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, также может быть успешно декодировано (например, посредством видеодекодера 30) или может быть декодируемым, на основе первого изображения (например, с использованием первого изображения в качестве опорного изображения, после того, как первое изображение декодировано, как описано выше).
[0178] Соответственно, как пояснено выше, технологии этого раскрытия сущности могут обеспечивать возможность видеокодеру 20 формировать поток битов, который может быть декодирован посредством видеодекодера, например, видеодекодера 30, прогнозируемым и заданным способом, как указано посредством технологий этого раскрытия сущности. В частности, поток битов может включать в себя одно или более изображений CVS видеоданных. Поток битов может быть принят посредством видеодекодера таким образом, что поток битов начинается с не-IDR RAP-изображения. С использованием технологий этого раскрытия сущности видеодекодер может успешно декодировать поток битов. В связи с этим, может быть относительное улучшение возможностей работы пользователей при выполнении произвольного доступа для потока битов, при использовании раскрытых технологий. В качестве одного примера, технологии могут обеспечивать возможность видеодекодеру декодировать поток битов с относительно большей степенью детализации. Другими словами, технологии могут обеспечивать возможность видеодекодеру произвольно осуществлять доступ к потоку битов в относительно большем числе точек или изображений (т.е. He-IDR-изображений) потока битов, по сравнению с другими технологиями (например, технологиями, которые дают возможность произвольного доступа для потока битов только из IDR-изображений). В качестве другого примера, может быть относительное повышение визуального качества одного или более изображений CVS, включенной в поток битов, и/или CVS в целом (например, посредством опускания посредством видеокодера 20 начальных изображений, ассоциированных с первым изображением из потока битов), при использовании раскрытых технологий.
[0179] Таким образом, видеокодер 20 представляет пример видеокодера, сконфигурированного с возможностью формировать поток битов, который включает в себя одно или более изображений CVS, при этом первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, является RAP-изображением, которое не является IDR-изображением, при этом для того, чтобы формировать поток битов, видеокодер сконфигурирован с возможностью избегать включения в состав по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов, при этом начальное изображение является изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS, и при этом первое изображение является декодируемым, и при этом по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, является декодируемым на основе первого изображения.
[0180] Фиг. 3 является блок-схемой, которая иллюстрирует пример видеодекодера, который может выполнять технологии для произвольного доступа с усовершенствованным DPB-управлением, в соответствии с технологиями этого раскрытия сущности. В примере по фиг. 3, видеодекодер 30 включает в себя модуль 80 энтропийного декодирования, процессор 82 прогнозирования, модуль 88 обратного квантования, процессор 90 обратного преобразования, сумматор 92, фильтр 94 удаления блочности и запоминающее устройство 96 опорных изображений. Процессор 82 прогнозирования включает в себя модуль 84 компенсации движения и процессор 86 интра-прогнозирования. Видеодекодер 30, в некоторых примерах, может выполнять проход декодирования, в общем, взаимно-обратный по отношению к проходу кодирования, описанному относительно видеокодера 20 от фиг. 2.
[0181] В ходе процесса декодирования видеодекодер 30 принимает кодированный поток видеобитов, который представляет видеоблоки слайса кодированного видео, и ассоциированные элементы синтаксиса из видеокодера 20. Когда представленные видеоблоки в потоке битов включают в себя сжатые видеоданные, модуль 80 энтропийного декодирования видеодекодера 30 энтропийно декодирует поток битов, чтобы формировать квантованные коэффициенты, векторы движения и другие элементы синтаксиса. Модуль 80 энтропийного декодирования перенаправляет векторы движения и другие элементы синтаксиса в процессор 82 прогнозирования. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеослайса и/или на уровне видеоблока.
[0182] Когда видеослайс кодируется в качестве интра-кодированного (I) слайса, процессор 86 интра-прогнозирования процессора 82 прогнозирования может формировать прогнозирующие данные для видеоблока текущего видеослайса на основе передаваемого в служебных сигналах режима интра-прогнозирования и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется в качестве интер-кодированного (т.е. В-, Р- или GPB-) слайса, модуль 84 компенсации движения процессора 82 прогнозирования формирует прогнозные блоки для видеоблока текущего видеослайса на основе векторов движения и других элементов синтаксиса, принимаемых из модуля 80 энтропийного декодирования. Прогнозные блоки могут формироваться из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, с использованием технологий составления по умолчанию на основе опорных изображений, сохраненных в запоминающем устройстве 96 опорных изображений.
[0183] Модуль 84 компенсации движения определяет информацию прогнозирования для видеоблока текущего видеослайса посредством синтаксического анализа векторов движения и других элементов синтаксиса и использует информацию прогнозирования, чтобы формировать прогнозные блоки для текущего декодируемого видеоблока. Например, модуль 84 компенсации движения использует некоторые из принимаемых элементов синтаксиса для того, чтобы определять режим прогнозирования (например, интра- или интерпрогнозирование), используемый для того, чтобы кодировать видеоблоки видеослайса, тип слайса интер-прогнозирования (например, В-слайс, Р-слайс или GPB-слайс), информацию составления для одного или более списков опорных изображений для слайса, векторы движения для каждого интер-кодированного видеоблока слайса, состояние интер-прогнозирования для каждого интер-кодированного видеоблока слайса и другую информацию для того, чтобы декодировать видеоблоки в текущем видеослайсе.
[0184] Модуль 84 компенсации движения также может выполнять интерполяцию на основе интерполяционных фильтров. Модуль 84 компенсации движения может использовать интерполяционные фильтры, используемые посредством видеокодера 20 в ходе кодирования видеоблоков, для того чтобы вычислять интерполированные значения для субцелых пикселов опорных блоков. Модуль 84 компенсации движения может определять интерполяционные фильтры, используемые посредством видеокодера 20, из принимаемых элементов синтаксиса и использовать интерполяционные фильтры для того, чтобы формировать прогнозные блоки.
[0185] Модуль 88 обратного квантования обратно квантует, т.е. деквантует, квантованные коэффициенты преобразования, предоставленные в потоке битов и декодированные посредством модуля 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования (QP), вычисленного посредством видеокодера 20 для каждого видеоблока в видеослайсе, чтобы определять степень квантования и, аналогично, степень обратного квантования, которое должно применяться. Процессор 90 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования, к коэффициентам преобразования, чтобы формировать остаточные блоки в пиксельной области.
[0186] После того, как модуль 84 компенсации движения формирует прогнозный блок для текущего видеоблока на основе векторов движения и других элементов синтаксиса, видеодекодер 30 формирует декодированный видеоблок посредством суммирования остаточных блоков из процессора 90 обратного преобразования с соответствующими прогнозными блоками, сформированными посредством модуля 84 компенсации движения. Сумматор 92 представляет компонент или компоненты, которые выполняют эту операцию суммирования. Фильтр 94 удаления блочности применяется для того, чтобы фильтровать декодированные блоки, чтобы удалять артефакты блочности. Декодированные видеоблоки в данном кадре или изображении затем сохраняются в запоминающем устройстве 96 опорных изображений, которое сохраняет опорные изображения, используемые для последующей компенсации движения. Запоминающее устройство 96 опорных изображений также сохраняет декодированное видео для последующего представления на устройстве отображения, таком как устройство 28 отображения по фиг. 1.
[0187] В качестве одного примера, видеодекодер 30 может быть сконфигурирован с возможностью декодировать одно или более изображений видеоданных в ходе процесса декодирования видео. Например, видеодекодер 30 может быть сконфигурирован с возможностью принимать поток битов, к примеру, сформированный посредством видеокодера 20, который включает в себя одно или более изображений CVS. Видеодекодер 30 может быть дополнительно сконфигурирован с возможностью декодировать первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS. В этом примере, первое изображение может быть RAP-изображением, которое не является IDR-изображением. Видеодекодер 30 также может быть сконфигурирован с возможностью декодировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0188] В некоторых примерах, видеодекодер 30 может быть дополнительно сконфигурирован с возможностью определять (или идентифицировать) по меньшей мере одно из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением. Другими словами, видеодекодер 30 может быть сконфигурирован с возможностью идентифицировать по меньшей мере одно начальное изображение, которое ассоциировано с первым изображением, из одного или более изображений. В этих примерах, начальное изображение вновь может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. Например, видеодекодер 30 может быть сконфигурирован с возможностью декодировать по меньшей мере одно из одного или более изображений. Чтобы декодировать каждое из по меньшей мере одного из одного или более изображений, видеодекодер 30 может быть сконфигурирован с возможностью определять или идентифицировать одно или более опорных изображений, используемых для того, чтобы кодировать соответствующее изображение, определять то, является или нет какое-либо из идентифицированных или определенных одного или более опорных изображений недоступным для декодирования, для каждого из определенных 'или идентифицированных одного или более опорных изображений, которое определяется как недоступное для декодирования, формировать виртуальное опорное изображение и декодировать соответствующее изображение на основе соответствующих одного или более сформированных виртуальных опорных изображений.
[0189] В вышеописанных примерах, для того чтобы формировать виртуальное опорное изображение, видеодекодер 30 может быть сконфигурирован с возможностью формировать изображение, которое включает в себя одно или более пиксельных значений, каждое из которых соответствует середине диапазона пиксельных значений, ассоциированных с CVS. Например, видеодекодер 30 может быть сконфигурирован с возможностью формировать изображение таким образом, что изображение включает в себя одно или более пиксельных значений, имеющих значения "сигнала яркости" или "сигнала цветности" в 127. В этом примере, каждое такое пиксельное значение может соответствовать середине диапазона значений пиксельной интенсивности сигнала яркости или сигнала цветности, заданного от значения пиксельной интенсивности в 0 до значения пиксельной интенсивности в 255. Например, каждое из значений пиксельной интенсивности сигнала яркости или сигнала цветности может быть представлено с использованием 7 битов данных, приводя к вышеописанному диапазону значений. Тем не менее, в других примерах диапазон пиксельной интенсивности сигнала яркости или сигнала цветности и соответствующие средние или средние значения диапазона могут быть заданы другим способом.
[0190] В некоторых примерах, видеодекодер 30 может быть дополнительно сконфигурирован с возможностью определять или идентифицировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением. В этих примерах вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. Также в этих примерах, видеодекодер 30 может быть сконфигурирован с возможностью не выводить или избегать вывода одного или более из по меньшей мере одного из одного или более изображений (т.е. одного или более ранее определенных или идентифицированных начальных изображений, ассоциированных с первым изображением), для которых флаг вывода (например, элемент output_flag синтаксиса, описанный выше) указывает, что соответствующее изображение должно быть выведено.
[0191] В других примерах, видеодекодер 30 может быть дополнительно сконфигурирован с возможностью определять или идентифицировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением. В этих примерах вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. Также в этих примерах, видеодекодер 30 может быть сконфигурирован с возможностью не использовать или избегать использования одного или более из по меньшей мере одного из одного или более изображений (т.е. одного или более ранее определенных или идентифицированных начальных изображений, ассоциированных с первым изображением) в качестве опорного изображения для декодирования по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое идет после первого изображения согласно порядку декодирования и согласно порядку отображения, ассоциированному с CVS.
[0192] В некоторых примерах, первое изображение может быть CRA-изображением. В этих примерах, CRA-изображение может быть изображением, которое кодируется с использованием кодирования с интра-прогнозированием и имеет возможность быть декодированным, т.е. является декодируемым, без опоры на какие-либо другие изображения. В этих примерах, для CRA-изображения, одно или более изображений, включенных в CVS вместе с CRA-изображением, которые идут после CRA-изображения согласно порядку декодирования, ассоциированному с CVS, могут быть декодированы с опорной на одно или более изображений, которые предшествуют CRA-изображению согласно порядку декодирования. Например, CRA-изображение может указываться ссылкой посредством интра-кодированного изображения на основе "открытой GOP", как описано выше со ссылкой на фиг. 1. Как также описано выше, CRA-изображение может служить цели, аналогичной цели IDR-изображения в настройке в форме "закрытой GOP", в частности, относительно обеспечения произвольного доступа для потока битов, который включает в себя одно или более изображений одной или более GOP видеоданных.
[0193] В других примерах, IDR-изображение может быть изображением, которое кодируется с использованием кодирования с интра-прогнозированием и имеет возможность быть декодированным, т.е. является декодируемым, без опоры на какие-либо другие изображения. В этих примерах, для IDR-изображения, все другие изображения, включенные в CVS вместе с IDR-изображением, которые идут после IDR-изображения согласно порядку декодирования, ассоциированному с CVS, могут быть декодированы без опоры на какие-либо изображения, которые предшествуют IDR-изображению согласно порядку декодирования.
[0194] В еще одних других примерах, например, в случаях, когда поток битов, принимаемый посредством видеодекодера 30, не включает в себя начальных изображений, ассоциированных с первым изображением (например, в случаях, если видеокодер 20 формирует поток битов посредством исключения начальных изображений для первого изображения из потока битов), видеодекодер 30 может быть сконфигурирован с возможностью декодировать поток битов конкретным способом, как проиллюстрировано посредством нижеприведенных примеров.
[0195] В качестве одного примера, видеодекодер 30 может быть дополнительно сконфигурирован с возможностью декодировать первый набор параметров начальной задержки буфера кодированных изображений (СРВ), и, когда одно или более изображений не включают в себя по меньшей мере одно начальное изображение, ассоциированное с первым изображением, декодировать один из второго набора параметров начальной задержки СРВ, при этом второй набор отличается от первого набора, и набора параметров смещения задержки СРВ. В этом примере вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS.
[0196] В вышеописанном примере, один или более из первого и второго наборов параметров начальной задержки СРВ и набора параметров смещения задержки СРВ могут быть включены в одно из сообщения с дополнительной улучшающей информацией (SEI), SEI-сообщения периода буферизации изображений и заголовка слайса, ассоциированного с первым изображением.
[0197] Также в вышеописанном примере, время удаления из СРВ каждого изображения, идущего после первого изображения в порядке декодирования, может сдвигаться к моменту раньше во времени, как указано посредством одного или более из первого и второго наборов параметров начальной задержки СРВ и набора параметров смещения задержки СРВ.
[0198] Соответственно, как пояснено выше, технологии этого раскрытия сущности могут обеспечивать возможность видеодекодеру 30 декодировать поток битов, например, кодированный посредством видеокодера 20, прогнозируемым и заданным способом, как указано посредством технологий этого раскрытия сущности. В частности, поток битов может включать в себя одно или более изображений CVS видеоданных. Поток битов может быть принят посредством видеодекодера 30 таким образом, что поток битов начинается с не-IDR RAP-изображения. С использованием технологий этого раскрытия сущности видеодекодер 30 может успешно декодировать поток битов. В связи с этим, может быть относительное улучшение возможностей работы пользователей при выполнении произвольного доступа для потока битов, при использовании раскрытых технологий. В качестве одного примера, технологии могут обеспечивать возможность видеодекодеру 30 декодировать поток битов с относительно большей степенью детализации. Иначе говоря, технологии могут обеспечивать возможность видеодекодеру 30 произвольно осуществлять доступ к потоку битов в относительно большем числе точек или изображений (т.е. He-IDR-изображений) потока битов, по сравнению с другими технологиями (например, технологиями, которые дают возможность произвольного доступа для потока битов только из IDR-изображений). В качестве другого примера, может быть относительное повышение визуального качества одного или более изображений CVS, включенной в поток битов, и/или CVS в целом (например, посредством недопущения посредством видеодекодера 30 вывода и использования в качестве опорных изображений начальных изображений, ассоциированных с первым изображением), при использовании раскрытых технологий.
[0199] Таким образом, видеодекодер 30 представляет пример видеодекодера, сконфигурированного с возможностью принимать поток битов, содержащий одно или более изображений CVS, декодировать первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, при этом первое изображение является RAP-изображением, которое не является IDR-изображением, и декодировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0200] Фиг. 5 и 6 являются блок-схемами последовательности операций способа, которые иллюстрируют примерные способы выполнения технологий для произвольного доступа с усовершенствованным DPB-управлением, в соответствии с технологиями этого раскрытия сущности. В частности, примерный способ по фиг. 5 иллюстрирует выполнение технологий с точки зрения видеодекодера, например, видеодекодера 30 по фиг. 1 и 3. Дополнительно, примерный способ по фиг. 6 иллюстрирует выполнение технологий с точки зрения видеокодера, например, видеокодера 20 по фиг. 1 и 2.
[0201] Технологии по фиг. 5 и 6, в общем, могут выполняться посредством любого процессора, будь то реализованный в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или комбинации вышеозначенного, и при реализации в программном обеспечении или микропрограммном обеспечении, соответствующие аппаратные средства могут предоставляться для того, чтобы выполнять инструкции для программного обеспечения или микропрограммного обеспечения. В целях примера, технологии по фиг. 5 и 6 описываются относительно различных компонентов видеокодера 20 (фиг.1 и 2) и/или видеодекодера 30 (фиг.1 и 3), хотя следует понимать, что другие устройства могут быть сконфигурированы с возможностью осуществлять аналогичные технологии. Кроме того, этапы, проиллюстрированные на фиг. 5 и 6, могут быть выполнены в другом порядке или параллельно, и дополнительные этапы могут добавляться, а определенные этапы опускаться, без отступления от технологий этого раскрытия сущности. Дополнительно, в соответствии с технологиям этого раскрытия сущности, технологии примерных способов фиг. 5 и 6 могут быть выполнены по отдельности либо в комбинации друг с другом.
[0202] Фиг. 5 является блок-схемой последовательности операций способа, которая иллюстрирует примерный способ выполнения произвольного доступа для потока битов, который включает в себя одно или более изображений видеоданных, посредством видеодекодера, например, видеодекодера 30 по фиг. 1 и 3, в соответствии с технологиями этого раскрытия сущности. В частности, технологии примерного способа по фиг. 5 включают в себя выполнение произвольного доступа для потока битов в случаях, когда первое изображение потока битов является не-IDR RAP-изображением, конкретным способом, как описано ниже.
[0203] В качестве одного примера, видеодекодер 30 может принимать поток битов, который включает в себя одно или более изображений CVS (500). Видеодекодер 30 дополнительно может декодировать первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, при этом первое изображение является RAP-изображением, которое не является IDR-изображением (502). Видеодекодер 30 также может декодировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения (504).
[0204] В некоторых примерах, видеодекодер 30 дополнительно может определять или идентифицировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением. В этих примерах вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. Видеодекодер 30 дополнительно может декодировать по меньшей мере одно из одного или более изображений. В этих примерах, для того чтобы декодировать каждое из по меньшей мере одного из одного или более изображений, видеодекодер 30 может выполнять следующие этапы: (1) определение или идентификация одного или более опорных изображений используемых для того, чтобы кодировать соответствующее изображение; (2) определение, является или нет какое-либо из идентифицированных или определенных одного или более опорных изображений недоступным для декодирования; (3) для каждого из определенных или идентифицированных одного или более опорных изображений, которое определяется как недоступное для декодирования, формирование виртуального опорного изображения; и (4) декодирование соответствующего изображения на основе соответствующих одного или более сформированных виртуальных опорных изображений.
[0205] В вышеописанных примерах, для того чтобы формировать виртуальное опорное изображение, видеодекодер 30 может формировать изображение, которое включает в себя одно или более пиксельных значений, каждое из которых соответствует середине диапазона пиксельных значений, ассоциированных с CVS (например, одно или более пиксельных значений сигнала яркости или сигнала цветности в 127 в диапазоне от 0 до 255), как описано выше со ссылкой на фиг. 3.
[0206] В некоторых примерах, видеодекодер 30 дополнительно может определять или идентифицировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением. В этих примерах вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. Также в этих примерах, видеодекодер 30 дополнительно может избегать вывода одного или более из по меньшей мере одного из одного или более изображений (т.е. одного или более ранее определенных или идентифицированных начальных изображений, ассоциированных с первым изображением), для которых флаг вывода (например, элемент output_flag синтаксиса) указывает, что соответствующее изображение должно быть выведено.
[0207] В других примерах, видеодекодер 30 дополнительно может определять или идентифицировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением. В этих примерах вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS. Также в этих примерах, видеодекодер 30 дополнительно может избегать использования одного или более из по меньшей мере одного из одного или более изображений (т.е. одного или более ранее определенных или идентифицированных начальных изображений, ассоциированных с первым изображением) в качестве опорного изображения для декодирования по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое идет после первого изображения согласно порядку декодирования и согласно порядку отображения, ассоциированному с CVS.
[0208] В вышеописанных примерах, первое изображение может быть CRA-изображением. В этих примерах, CRA-изображение может быть изображением, которое кодируется с использованием кодирования с интра-прогнозированием и имеет возможность быть декодированным, т.е. является декодируемым, без опоры на какие-либо другие изображения. В этих примерах, для CRA-изображения, одно или более изображений, включенных в CVS вместе с CRA-изображением, которые идут после CRA-изображения согласно порядку декодирования, ассоциированному с CVS, могут быть декодированы с опорной на одно или более изображений, которые предшествуют CRA-изображению согласно порядку декодирования. Например, как описано выше, CRA-изображение может указываться ссылкой посредством интра-кодированного изображения на основе "открытой GOP", как описано выше со ссылкой на фиг. 1. Как также описано выше, CRA-изображение может служить цели, аналогичной цели IDR-изображения в настройке в форме "закрытой GOP", в частности, относительно обеспечения произвольного доступа для потока битов, который включает в себя одно или более изображений одной или более GOP видеоданных.
[0209] Также в вышеописанных примерах, IDR-изображение может быть изображением, которое кодируется с использованием кодирования с интра-прогнозированием и имеет возможность быть декодированным, т.е. является декодируемым, без опоры на какие-либо другие изображения. Кроме того, IDR-изображение может быть изображением, для которого все другие изображения, включенные в CVS вместе с IDR-изображением, которые идут после IDR-изображения согласно порядку декодирования, ассоциированному с CVS, декодируются без опоры на какие-либо изображения, которые предшествуют IDR-изображению согласно порядку декодирования.
[0210] В еще одних других примерах, например, в случаях, когда поток битов, принимаемый посредством видеодекодера 30, не включает в себя начальных изображений, ассоциированных с первым изображением (например, в случаях, если видеокодер 20 формирует поток битов посредством исключения начальных изображений для первого изображения из потока битов), видеодекодер 30 может декодировать поток битов конкретным способом, как проиллюстрировано посредством нижеприведенных примеров.
[0211] В качестве одного примера, видеодекодер 30 может дополнительно декодировать первый набор параметров начальной задержки СРВ, и когда одно или более изображений не включают в себя по меньшей мере одно начальное изображение, ассоциированное с первым изображением, декодировать один из второго набора параметров начальной задержки СРВ, при этом второй набор отличается от первого набора, и набора параметров смещения задержки СРВ. В этом примере вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS.
[0212] В вышеописанном примере, один или более из первого и второго наборов параметров начальной задержки СРВ и набора параметров смещения задержки СРВ могут быть включены в одно из SEI-сообщения, SEI-сообщения периода буферизации изображений и заголовка слайса, ассоциированного с первым изображением.
[0213] Также в вышеописанном примере, время удаления из СРВ каждого изображения, идущего после первого изображения в порядке декодирования, может сдвигаться к моменту раньше во времени, как указано посредством одного или более из первого и второго наборов параметров начальной задержки СРВ и набора параметров смещения задержки СРВ.
[0214] Таким образом, способ по фиг. 5 представляет пример способа приема потока битов, содержащего одно или более изображений CVS, декодирования первого изображения из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, при этом первое изображение является RAP-изображением, которое не является IDR-изображением, и декодирования по меньшей мере одного из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе декодированного первого изображения.
[0215] Фиг. 6 является блок-схемой последовательности операций способа, которая иллюстрирует примерный способ формирования потока битов, который включает в себя одно или более изображений видеоданных, посредством видеокодера, например, видеокодера 20 по фиг. 1 и 2, в соответствии с технологиями этого раскрытия сущности. В частности, технологии примерного способа по фиг. 6 включают в себя формирование потока битов таким образом, что видеодекодер, например, видеодекодер 30, может успешно декодировать поток битов конкретным способом. Например, видеодекодер может декодировать поток битов в случаях, когда первое изображение потока битов является не-IDR RAP-изображением, как описано ниже.
[0216] В качестве одного примера, видеокодер 20 может формировать поток битов, который включает в себя одно или более изображений CVS. В этом примере, первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, может быть RAP-изображением, которое не является IDR-изображением (600). Видеокодер 20 дополнительно может избегать включения в состав по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов. В этом примере вновь, начальное изображение может быть изображением, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS (602).
[0217] В этом примере, после этого видеодекодер, например, видеодекодер 30, может принимать поток битов, сформированный посредством видеокодера 20, и декодировать поток битов. Например, видеодекодер может декодировать первое изображение. Видеодекодер дополнительно может декодировать по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, на основе первого изображения (например, на основе декодированной версии первого изображения).
[0218] Таким образом, способ по фиг. 6 представляет пример способа формирования потока битов, содержащего одно или более изображений CVS, при этом первое изображение из одного или более изображений согласно порядку декодирования, ассоциированному с CVS, является RAP-изображением, которое не является IDR-изображением, при этом формирование потока битов содержит недопущение включения по меньшей мере одного из одного или более изображений, отличных от первого изображения, которое соответствует начальному изображению, ассоциированному с первым изображением, в поток битов, при этом начальное изображение содержит изображение, которое идет после первого изображения согласно порядку декодирования и предшествует первому изображению согласно порядку отображения, ассоциированному с CVS, и при этом первое изображение является декодируемым, и при этом по меньшей мере одно из одного или более изображений, отличных от первого изображения, идущих после первого изображения согласно порядку декодирования, является декодируемым на основе первого изображения.
[0219] В одном или более примеров, описанные функции могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой комбинации вышеозначенного. При реализации в программном обеспечении, функции могут быть сохранены или переданы, в качестве одной или более инструкций или кода, по считываемому компьютером носителю и выполнены посредством аппаратного процессора. Считываемые компьютером носители могут включать в себя считываемые компьютером носители данных, каждое из которых соответствует материальным или энергонезависимым носителям, такие как носители данных или среды связи, включающие в себя любой носитель, который упрощает перенос компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители, в общем, могут соответствовать (1) материальному считываемому компьютером носителю данных, который является энергонезависимым, или (2) среде связи, такой как сигнал или несущая. Носители данных могут быть любыми доступными носителями, к которым может осуществляться доступ посредством одного или более компьютеров или одного или более процессоров, с тем чтобы извлекать инструкции, код и/или структуры данных для реализации технологий, описанных в этом раскрытии сущности. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
[0220] В качестве примера, а не ограничения, эти считываемые компьютером носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптических дисках, устройство хранения на магнитных дисках или другие магнитные устройства хранения, флэш-память либо любой другой носитель, который может быть использован для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Так же, любое подключение корректно называть считываемым компьютером носителем. Например, если инструкции передаются из веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, "витой пары", цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, "витая пара", DSL или беспроводные технологии, такие как инфракрасные, радиопередающие и микроволновые среды, включаются в определение носителя. Тем не менее, следует понимать, что считываемые компьютером носители данных и носители данных не включают в себя соединения, несущие, сигналы или другие энергозависимые носители, а вместо этого направлены на энергонезависимые материальные носители данных. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в число считываемых компьютером носителей.
[0221] Инструкции могут быть выполнены посредством одного или более процессоров, к примеру, одного или более микропроцессоров общего назначения, DSP, ASIC, FPGA либо других эквивалентных интегрированных или дискретных логических схем. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации технологий, описанных в этом раскрытии сущности. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в пределах специализированных программных и/или аппаратных модулей, сконфигурированных с возможностью кодирования или декодирования либо встроенных в комбинированный кодек. Кроме того, технологии могут быть полностью реализованы в одной или более схем или логических элементов.
[0222] Технологии этого раскрытия сущности могут быть реализованы в широком спектре устройств или аппаратов, в том числе в беспроводном переносном телефоне, в 1C или в наборе 1C (к примеру, в наборе микросхем). Различные компоненты, модули или блоки описываются в этом раскрытии сущности для того, чтобы подчеркивать функциональные аспекты устройств, сконфигурированных с возможностью осуществлять раскрытые технологии, но не обязательно требуют реализации посредством различных аппаратных компонентов, модулей или блоков. Наоборот, как описано выше, различные модули могут быть комбинированы в аппаратный модуль кодека или предоставлены посредством набора взаимодействующих аппаратных модулей, включающих в себя один или более процессоров, как описано выше, в сочетании с надлежащим программным обеспечением и/или микропрограммным обеспечением.
[0223] Описаны различные примеры. Эти и другие примеры находятся в пределах объема прилагаемой формулы изобретения.