МАРКИРОВАНИЕ ОПОРНЫХ ИЗОБРАЖЕНИЙ В ВИДЕОПОСЛЕДОВАТЕЛЬНОСТЯХ, ИМЕЮЩИХ ИЗОБРАЖЕНИЯ С РАЗОРВАННОЙ ССЫЛКОЙ
MARKING OF REFERENCE IMAGES IN VIDEO SEQUENCES HAVING IMAGES WITH DISCHARGED LINK

[0001] Эта заявка испрашивает приоритет:
предварительной заявки на патент США №61/643,100, поданной 4 мая 2012 года,
предварительной заявки на патент США №61/636,566, поданной 20 апреля 2012 года, и
предварительной заявки на патент США №61/667,371, поданной 2 июля 2012 года, полное содержимое каждой из которых включено в этот документ посредством ссылки.
Область техники
[0002] Это раскрытие в общем относится к обработке видеоданных и, более конкретно, кодированию изображений точки произвольного доступа (RAP) в видеопоследовательности.
Уровень техники
[0003] Возможности цифрового видео могут быть внедрены в широкий диапазон устройств, в том числе средства цифрового телевидения, системы цифрового прямого вещания, системы беспроводного вещания, карманные персональные компьютеры (PDA), переносные или настольные компьютеры, планшетные компьютеры, средства чтения электронной книги, цифровые камеры, устройства цифровой записи, цифровые мультимедийные проигрыватели, видео-игровые устройства, консоли видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства видеоконференцсвязи, устройства потоковой передачи видео, транскодеры, маршрутизаторы или другие сетевые устройства и тому подобное. Цифровые видеоустройства реализуют приемы сжатия видео, такие как те, что описаны в стандартах, заданных посредством MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Части 10, Усовершенствованного Видеокодирования (AVC), стандарта Высокоэффективного Видеокодирования (HEVC), разрабатываемого в настоящее время, и расширений таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать, и/или хранить цифровую видеоинформацию более эффективно посредством реализации таких приемов сжатия видео.
[0004] Приемы сжатия видео выполняют пространственное (внутри изображения) предсказание и/или временное (между изображениями) предсказание для сокращения или удаления избыточности, присущей в видеопоследовательностях. Для основанного на блоках кодирования видео, слайс (вырезка) видео (то есть, видеокадр или участок видеокадра) могут быть секционированы на видеоблоки, которые также могут упоминаться как древовидные блоки, единицы дерева кодирования (CTU), единицы кодирования (CU) и/или узлы кодирования. Видеоблоки во внутренне кодированном (I) слайсе изображения кодируются с использованием пространственного предсказания относительно опорных выборок (отсчетов) в соседних блоках в таком же самом изображении. Видеоблоки во внешне-кодированном (P или B) слайсе изображения могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в том же самом изображении или временное предсказание относительно опорных выборок в других изображениях. Изображения могут упоминаться как кадры, и опорные изображения могут упоминаться как опорные кадры. Видеопоследовательность также может упоминаться как битовый поток.
[0005] Пространственное или временное предсказание дает в результате предиктивный блок для блока, который должен быть кодирован. Остаточные данные представляют пиксельные разности между исходным блоком, который должен быть кодирован, и предиктивным блоком. Внешне-кодированный блок кодируется согласно вектору движения, который указывает на блок опорных выборок, формирующих предиктивный блок, и остаточным данным, указывающим различие между кодированным блоком и предиктивным блоком. Внутренне-кодированный блок кодируется согласно режиму внутреннего кодирования и остаточным данным. Для дополнительного сжатия, остаточные данные могут быть преобразованы из пиксельной области в область преобразования, имея результатом остаточные коэффициенты преобразования, которые затем могут быть квантованы. Квантованные коэффициенты преобразования, изначально скомпонованные в двумерном массиве, могут быть просканированы для создания одномерного вектора коэффициентов преобразования, и энтропийное кодирование может быть применено для достижения еще большего сжатия.
Сущность изобретения
[0006] Это раскрытие относится к приемам для кодирования изображений точки произвольного доступа (RAP) в кодированной видеопоследовательности. В некоторых примерах, когда текущее изображение RAP, которое должно быть декодировано, является изображением RAP с разорванной ссылкой, таким как изображение чистого произвольного доступа с разорванной ссылкой (CRA) или изображение доступа с разорванной ссылкой (изображение BLA), синтаксический элемент указывает, что ни одно из изображений перед изображением BLA в порядке декодирования в буфере декодированных изображений не должно быть выведено. Синтаксический элемент может быть обеспечен в более ранней позиции в заголовке слайса изображения BLA и перед любыми энтропийно кодированными параметрами заголовка слайса каждого слайса в изображении BLA. В других примерах, когда текущее изображение RAP, которое должно быть декодировано, является изображением BLA, все опорные изображения в буфере декодированных изображений маркируются в качестве неиспользуемых для ссылки.
[0007] В одном примере, раскрытие описывает способ декодирования видеоданных, причем способ включает в себя определение, что текущее изображение является изображением доступа с разорванной ссылкой (BLA), и маркирование опорного изображения в буфере хранения изображений в качестве неиспользуемого для ссылки перед декодированием изображения BLA.
[0008] В другом примере, раскрытие описывает устройство для декодирования видеоданных, причем устройство включает в себя процессор, сконфигурированный с возможностью определять, что текущее изображение является изображением доступа с разорванной ссылкой (BLA), и маркировать опорное изображение в качестве неиспользуемого для ссылки перед декодированием изображения BLA.
[0009] В другом примере, раскрытие описывает устройство для декодирования видеоданных, причем устройство включает в себя средство для определения, что текущее изображение является изображением доступа с разорванной ссылкой (BLA) и средство для маркирования опорного изображения в качестве неиспользуемого для ссылки перед декодированием изображения BLA.
[0010] В другом примере, раскрытие описывает считываемый компьютером носитель данных. Считываемый компьютером носитель данных имеет сохраненные на нем инструкции, которые после исполнения побуждают один или более процессоров устройства определять, что текущее изображение является изображением доступа с разорванной ссылкой (BLA), и маркировать опорное изображение в качестве неиспользуемого для ссылки перед декодированием изображения BLA.
[0011] Подробности одного или более примеров изложены в описании ниже по тексту и на сопроводительных чертежах. Другие особенности, цели и преимущества будут очевидны из описания и чертежей и из формулы изобретения.
Краткое описание чертежей
[0012] ФИГ. 1 является блок-схемой, иллюстрирующей примерную систему кодирования и декодирования видео, которая может использовать приемы, описанные в этом раскрытии.
[0013] ФИГ. 2 является блок-схемой, иллюстрирующей примерный видеокодер, который может реализовывать приемы, описанные в этом раскрытии.
[0014] ФИГ. 3 является блок-схемой, иллюстрирующей примерный видеодекодер, который может реализовывать приемы, описанные в этом раскрытии.
[0015] ФИГ. 4 является блок-схемой, иллюстрирующей примерный набор устройств, которые формируют часть сети для передачи видеоданных.
[0016] ФИГ. 5 является схемой, иллюстрирующей примерную видеопоследовательность, включающую в себя изображение RAP в соответствии с приемами, описанными в этом раскрытии.
[0017] ФИГ. 6 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования изображений RAP в соответствии с одним или более примерами, описанными в этом раскрытии.
[0018] ФИГ. 7 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования изображений RAP в соответствии с одним или более примерами, описанными в этом раскрытии.
[0019] ФИГ. 8 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования изображений RAP в соответствии с одним или более примерами, описанными в этом раскрытии.
[0020] ФИГ. 9 является блок-схемой последовательности операций, иллюстрирующей примерный способ для декодирования слайса в соответствии с одним или более примерами, описанными в этом раскрытии.
[0021] ФИГ. 10 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования слайса в соответствии с одним или более примерами, описанными в этом раскрытии.
Подробное описание
[0022] Это раскрытие описывает различные схемы кодирования видео, связанные с изображениями, которые могут быть использованы, например, в качестве точек произвольного доступа или точек адаптации потока, таких как точка переключения временного слоя или подобное. Например, этот тип изображения может быть точкой переключения для адаптации скорости прохождения битов (битрейта), частоты кадров или пространственного разрешения, каждое из которых будет упоминаться в общем в качестве изображений RAP в этом раскрытии. В некоторых случаях видеокодер или видеодекодер может кодировать изображение или изображения, которые позиционированы, в видеопоследовательности, после изображения RAP в порядке декодирования, но позиционированы до точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя, в порядке вывода, то есть, порядке отображения. Эти изображения могут упоминаться как опережающие изображения. Опережающие изображения являются изображениями, которые следуют за изображением RAP в порядке декодирования, но предшествуют изображению RAP в порядке вывода. Более конкретно, эти изображения могут упоминаться как опережающие изображения для изображения RAP.
[0023] Изображение чистого произвольного доступа (CRA) является типом изображения RAP. Опережающие изображения текущего изображения CRA могут быть корректно декодированы, если декодирование начинается с мгновенного обновления декодирования (IDR) или изображения CRA, которое позиционировано в видеопоследовательности до текущего изображения CRA. Однако опережающие изображения для изображения CRA не могут быть корректно декодированы, когда возникает произвольный доступ из текущего изображения CRA. Это происходит потому, что опережающие изображения, то есть изображения, которые позиционированы после текущего изображения CRA в порядке декодирования, но до текущего изображения CRA в порядке вывода, могут указывать на блоки для ссылки предсказания в предшествующих изображениях, которые являются недоступными (например, изображения перед изображением BLA в порядке декодирования).
[0024] В частности, изображения, которые находятся перед текущим изображением CRA в порядке декодирования, являются недоступными, когда декодирование произвольного доступа начинается с текущего изображения CRA. Соответственно, опережающие изображения не являются декодируемыми в этом случае и типично отбрасываются, когда декодирование произвольного доступа начинается с изображения CRA. Для предотвращения распространения ошибки от изображений, которые могут не быть доступными в зависимости от того, где начинается декодирование, все изображения, которые следуют за изображением CRA как в порядке декодирования, так и в порядке вывода, не используют любые изображения, которые предшествуют изображению CRA либо в порядке декодирования, либо в порядке вывода (который включает в себя опережающие изображения), в качестве опорных изображений.
[0025] Для случая, когда опережающие изображения не являются декодируемыми, например, когда декодирование начинается с более раннего изображения RAP, изображение CRA может включать в себя флаг разорванной ссылки. Этот флаг указывает, что опережающие изображения у изображения CRA не являются декодируемыми, например, поскольку опорное изображение не является пригодным для использования при декодировании опережающего изображения вследствие изменения декодируемого битового потока. Такое изображение CRA может упоминаться как изображение чистого произвольного доступа с разорванной ссылкой (BLC) или изображение доступа с разорванной ссылкой (BLA).
[0026] Разорванная ссылка в общем может относиться к местоположению в битовом потоке, в котором указывается, что некоторые последующие изображения в порядке декодирования могут содержать значительные визуальные артефакты вследствие неопределенных операций, выполненных при генерировании битового потока. Вместо или в дополнение к использованию флага разорванной ссылки, изображение BLC (или аналогичное BLA) может быть использовано для указания разорванной ссылки в видеопоследовательности. Изображение BLA или BLC может быть использовано, например, для стыковки битовых потоков посредством любого из многообразия устройств, таких как сервер, осведомленный о среде элемент сети (MANE), или видеоредактор/средство стыковки. Кроме того, изображение BLC может учитываться в общем аналогичным изображению BLA, как описано в WD9 HEVC (см. ниже по тексту). Хотя терминология является незначительно отличной, изображение BLC или BLA может в общем относиться к изображению CRA или доступа временного слоя (TLA), для которого опережающие изображения не являются декодируемыми, эти изображения могут не быть декодируемыми, например, когда декодирование начинается с более раннего изображения RAP.
[0027] В различных примерах этого раскрытия для изображения BLA или BLC опережающие изображения учитываются как недекодируемые, с пониманием, что опорные изображения перед изображением BLA или BLC в порядке декодирования, например, перед точкой стыка, не являются доступными. В соответствии с примером этого раскрытия, для декодирования текущего изображения BLA или BLC, опорные изображения в буфере декодированных изображений могут быть маркированы в качестве неиспользуемых для ссылки посредством декодера. В частности, опорные изображения в буфере декодированных изображений (DPB) могут быть маркированы в качестве неиспользуемых для ссылки посредством декодера, когда текущее изображение, которое должно быть декодировано, является изображением BLA или BLC. В другом примере, для декодирования изображения BLA или BLC, кодер или другое устройство может генерировать, и декодер может принимать, синтаксический элемент, такой как флаг, например, no_output_of_prior_pics_flag, указывающий, что ни одно из опорных изображений перед изображением CRA или изображением BLA (или BLC), которые могут быть сохранены в DPB, не должно быть выведено. В некоторых примерах этот флаг или другой синтаксический элемент может быть размещен посредством кодера или другого устройства раньше в заголовке слайса изображения BLA (или BLC) или CRA, например, до элементов, которые энтропийно декодированы, так что флаг может быть легко декодирован и информация может быть доступна раньше в процессе декодирования или легко доступна другим сущностям, помимо видеодекодера. Например, так как менее функциональные устройства, такие как осведомленный о среде элемент сети (MANE), могут иметь доступ к информации, не требуя энтропийного декодирования, no_output_of_prior_pics_flag может быть позиционирован в более ранней позиции в заголовке слайса и для предшествования энтропийно кодированных параметров заголовка слайса.
[0028] В другом примере кодер может обрабатывать типы единицы NAL, назначенные для указания, когда изображения BLA (или BLC) или CRA имеют и не имеют опережающих изображений. Следует отметить, что изображения BLA являются по существу аналогичными изображениям BLC. В общем, изменение от изображений BLC до изображений BLA является изменением в терминологии, хотя обработка изображений BLA также может включать в себя дополнение типов единицы NAL, описанных в этом документе. Например, типы единицы NAL могут включать в себя тип 16 единицы NAL, BLA_W_LP (BLA с опережающим изображением); тип 17 единицы NAL, BLA_W_DLP (BLA с декодируемым опережающим изображением, но без недекодируемого опережающего изображения); и тип 18 единицы NAL, BLA_N_LP (BLA без опережающего изображения) включительно. В некоторых примерах эти типы единицы NAL могут быть использованы для указания, может ли изображение BLA включать в себя и декодируемые и недекодируемые опережающие изображения, только декодируемые опережающие изображения или совсем не включать опережающих изображений. Когда изображения BLA не имеют недекодируемых опережающих изображений, все ассоциированные опережающие изображения, если имеются, являются декодируемыми.
[0029] Высокоэффективное Видеокодирование (HEVC), разрабатываемое Объединенной Командой по Видеокодированию (JCT-VC) Экспертной Группы по Видеокодированию ITU-T (VCEG) и Экспертной Группой по Движущимся Изображениям ISO/IEC (MPEG), описано в различных рабочих проектах. Недавний проект стандарта HEVC, упоминаемый как " Рабочий Проект 6 HEVC" или "WD6", описывается в документе JCTVC-H1003, Bross и другие, "проект 6 текстовой спецификации Высокоэффективного Видеокодирования (HEVC)", Объединенная Команда по Видеокодированию (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 8-я Встреча: Сан Хосе, Калифорния, США, 01-10 Февраля 2012 года, который с 4 мая 2012 года, может быть загружен с http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip, полное содержимое которого включено в этот документ посредством ссылки. Более недавний Рабочий Проект (WD) HEVC, упоминаемый как WD9 HEVC в дальнейшем в этом документе, описывается в документе JCTVC-K1003v13, Bross и другие, "проект 9 текстовой спецификации Высокоэффективного Видеокодирования (HEVC)", Объединенная Команда по Видеокодированию (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 11-я Встреча: Шанхай, Китай, 10-19 Октября 2012 года, который с 27 декабря 2012 года, может быть загружен с http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v13.zip, полное содержимое которого включено в этот документ посредством ссылки. В WD9, терминология изображения BLC, используемая для обозначения изображений CRA с разорванной ссылкой, была изменена на терминологию изображения BLA. Соответственно, терминология BLC и BLA может быть использована в общем взаимозаменяемо в этом раскрытии для обозначения изображения CRA с разорванной ссылкой.
[0030] Другие примерные стандарты кодирования видео включают в себя ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), в том числе его расширения масштабируемого видеокодирования (SVC) и многовидового видеокодирования (MVC).
[0031] Сейчас будут описаны различные аспекты изображений RAP. Произвольный доступ в целом относится к декодированию битового потока видео, начинающемуся с кодированного изображения, которое не является первым кодированным изображением в битовом потоке. Произвольный доступ к битовому потоку может быть необходим во многих видеоприложениях, таких как вещание и потоковая передача, например, для пользователей для переключения между различными каналами, для перехода к конкретным частям видео, для поддержки стыковки битовых потоков или для переключения на другой битовый поток для адаптации потока (скорости прохождения битов, частоты кадров, пространственного разрешения и так далее). Видеоприложение может вставлять изображения RAP много раз через регулярные интервалы и/или в выбранные местоположения, в битовый поток видео, чтобы обеспечить возможность этой особенности.
[0032] Кодеры и декодер могут использовать изображение мгновенного обновления декодера (IDR) для произвольного доступа. Однако, поскольку изображение IDR начинает кодированную видеопоследовательность и всегда очищает буфер декодированных изображений (DPB), изображения, следующие за IDR в порядке декодирования, не могут использовать изображения, декодируемые перед изображением IDR, в качестве опорных изображений. Следовательно, битовые потоки, полагающиеся на изображения IDR для произвольного доступа, могут иметь значительно меньшую эффективность кодирования. Для улучшения эффективности кодирования понятие изображений чистого произвольного доступа (CRA) было введено при разработке стандарта HEVC, чтобы позволить изображениям, которые следуют за изображением CRA в порядке декодирования, но предшествуют ему в порядке вывода, использовать изображения, декодированные до изображения CRA, в качестве опорных. Следовательно, изображение CRA может быть использовано для произвольного доступа в качестве первого декодированного изображения в видеопоследовательности или может быть декодировано как часть видеопоследовательности, для которой более ранние изображения RAP (например, IDR или CRA) были декодированы.
[0033] Изображения, которые следуют за изображением CRA в порядке декодирования, но предшествуют изображению CRA в порядке вывода, упоминаются как опережающие изображения у изображения CRA. Опережающие изображения у изображения CRA могут быть корректно декодированы, если декодирование начинается с изображения RAP до текущего изображения CRA. Однако опережающие изображения у изображения CRA не могут быть корректно декодированы, когда возникает произвольный доступ из изображения CRA. Соответственно, как пояснено выше, в процессе HEVC эти опережающие изображения типично отбрасываются во время декодирования с произвольным доступом изображения CRA. Для предотвращения распространения ошибки от опорных изображений, которые могут не быть доступными в зависимости от того, где начинается декодирование, все изображения, которые следуют за изображением CRA как в порядке декодирования, так и в порядке вывода, не должны использовать любое изображение, которое предшествует изображению CRA либо в порядке декодирования, либо в порядке вывода (который включает в себя опережающие изображения), в качестве опорного.
[0034] Функциональности произвольного доступа поддерживаются в H.264/AVC сообщением SEI с точкой восстановления. Реализация декодера H.264/AVC может или может не поддерживать эту функциональность. В HEVC битовый поток, начинающийся с изображения CRA, рассматривается в качестве битового потока с соответствием. Когда битовый поток начинается с изображения CRA, опережающие изображения у изображения CRA могут ссылаться на недоступные опорные изображения и, следовательно, не могут быть корректно декодированы. Однако стандарт HEVC точно определяет, что опережающие изображения начального изображения CRA не выводятся, следовательно упоминаются как "чистый произвольный доступ" для изображения CRA. Для установления требований соответствия битового потока HEVC точно определяет процесс декодирования для генерирования недоступных опорных изображений для декодирования невыводимых опережающих изображений, то есть опережающих изображений, которые не выводятся. Однако реализации декодера с соответствием не являются необходимыми, чтобы следовать этому процессу декодирования, до тех пор пока реализация декодера может генерировать идентичный вывод в сравнении с тем, когда процесс декодирования выполняется с начала кодированной видеопоследовательности.
[0035] В HEVC битовый поток с соответствием может совсем не содержать изображений IDR и, следовательно, может содержать поднабор кодированной видеопоследовательности или незавершенную кодированную видеопоследовательность. В WD6 HEVC кодированная видеопоследовательность задается следующим образом.
Кодированная видеопоследовательность является последовательностью единиц доступа, которая включает в себя, в порядке декодирования, единицу доступа IDR, за которой следует ноль или более единиц доступа не-IDR, включающих в себя все последующие единицы доступа вплоть до, но без включения в состав, любой последующей единицы доступа IDR.
[0036] Понятие "изображений CRA с разорванными ссылками" было описано в документе JCTVC-I0404, Sullivan и другие, "изображения CRA с разорванными ссылками", Объединенная Команда по Видеокодированию (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 9 встреча: Женева, Швейцария, 27 Апреля - 7 Мая, 2012, который с 27 Декабря 2012 может быть загружен c: http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0404-v1.zip, полное содержимое которого включено в этом документе посредством ссылки. В сравнении с понятием CRA, включенным в WD6 HEVC, в одном примере, в JCTVC-I0404 предлагается дополнительно позволить изображениям CRA, которые не находятся в начале битового потока, иметь недекодируемые опережающие изображения по аналогии с теми, которые может иметь изображение CRA, которое начинает битовый поток. В WD6 HEVC допускается, чтобы за изображением CRA, которое начинает битовый поток, следовали (в порядке битового потока, также упоминаемом как порядок декодирования) опережающие изображения, которые не могут быть декодированы вследствие недостающих опорных изображений перед изображением BLA в порядке декодирования. Однако изображению CRA, которое попадает в середину битового потока, не позволено иметь такие недекодируемые опережающие изображения. В одном примере, снятие этого ограничения предлагается в JCTVC-I0404 посредством добавления флага "разорванной ссылки", который указывал бы потенциальное наличие таких недекодируемых опережающих изображений.
[0037] Флаг "разорванной ссылки" предлагается в JCTVC-I0404 в качестве информации уровня изображения изображений CRA в заголовке слайса или некотором другом месте для информации уровня изображения. В примере, который включает в себя набор параметров адаптации (APS), флаг "разорванной ссылки" может быть частью APS. Однако некоторые стандарты не предусматривают APS. Когда флаг равен 1, битовому потоку было бы позволено содержать опережающие изображения у изображения CRA, которые не является декодируемыми вследствие недостающих предшествующих опорных изображений, даже при том, что битовый поток начинается с изображения IDR или изображения CRA более раннего в порядке битового потока.
[0038] Для изображения CRA с флагом "разорванной ссылки", равным 1, в дополнение к обеспечению возможности иметь недекодируемые опережающие изображения, как рассмотрено в этом документе, его старшие биты (MSB) счета порядка изображения (POC) устанавливаются в 0. В дополнение, изображение CRA с флагом разорванной ссылки равным 1 может включать в себя no_output_of_prior_pics_flag, который побуждает изображение CRA действовать таким же образом, что и для изображения IDR, и random_access_pic_id, который побуждает изображение CRA действовать таким же образом, что и idr_pic_id изображений IDR в WD6 HEVC. Дополнительно, текущий idr_pic_id как в WD6 HEVC переименован в random_access_pic_id и его ограничения следует применять как к изображениям CRA, так и к изображениям IDR, а не только к изображениям IDR. Подобно изображению IDR, изображение CRA с broken_link_flag, равным 1, может активировать другой набор параметров последовательности (SPS), изменить размер изображения и так далее.
[0039] В некоторых примерах сигнализация (передача сигнала) флага "разорванной ссылки" в заголовке слайса или APS требует сущности (например, сервера, осведомленного о среде элемента сети (MANE), или видеоредактора/средства стыковки), которая изменит нормальное изображение CRA на так называемое изображение чистого произвольного доступа с разорванной ссылкой (BLC), также упоминаемое в этом раскрытии как изображение BLA. Эта сущность обычно должна быть способна энтропийно кодировать и синтаксически анализировать заголовок слайса и/или APS для кодирования флага разорванной ссылки. Аналогично, сущность (например, сервер, MANE или видеоредактор), которая идентифицирует изображение BLA или BLC, когда необходимо, должна быть способна энтропийно декодировать и синтаксически анализировать заголовок слайса и/или APS для нахождения флага.
[0040] В некоторых примерах изображению (BLA) CRA с разорванной ссылкой может не быть позволено активировать набор параметров последовательности (SPS), набор параметров изображения (PPS) или APS (когда обращаются изображением), если ID набора параметров является таким же, как активный SPS, PPS или APS. Однако, поскольку изображение BLA обычно происходит из битового потока, отличного от предыдущего изображения в порядке декодирования, например, в случае стыковки битовых потоков, изображение BLA или BLC и предыдущее изображение могут использовать отличные полезные нагрузки последовательности необработанных битов (RBSP) SPS, RBSP PPS, и RBSP APS. Соответственно, в некоторых примерах, вероятно, что как изображение BLA или BLC, так и предыдущее изображение в порядке декодирования могут обращаться (непосредственно или опосредованно) к одному и тому же значению ID SPS или PPS. Дополнительно, в некоторых примерах, для изображений также возможно обращаться к тому же самому значению ID APS. Поэтому использование активного SPS, PPS или APS для предыдущего изображения при декодировании очень вероятно приведет к некорректности декодирования изображения BLA или BLC и последующих изображений (не только опережающих изображений).
[0041] В примерах, которые не включают в себя синтаксические элементы random_access_pic_id и no_output_of_prior_pics_flag в нормальных изображениях CRA, сущность (например, сервер, осведомленный о среде элемент сети (MANE), или видеоредактор/средство стыковки), которая изменяет нормальное изображение CRA на изображение BLA или BLC, когда необходимо, должна быть способна энтропийно кодировать или декодировать и синтаксически анализировать заголовок слайса и/или APS для кодирования синтаксических элементов.
[0042] Поскольку изображение BLA или BLC обычно происходит из битового потока, отличного от предыдущего изображения в порядке декодирования, если no_output_of_prior_pics_flag равен 0, буфер декодированных изображений может переполняться. В результате все последующие изображения в порядке декодирования могут быть некорректно декодированы или декодер может даже утратить работоспособность.
[0043] Когда часть первого битового потока и часть второго битового потока, при этом часть второго битового потока начинается с изображения CRA (picA), стыкуются или соединяются, может быть возможно не изменять изображение CRA на изображение BLA или BLC. Точнее, возможно сохранять picA в качестве изображения CRA в случае, когда декодирование начинается с предыдущего изображения CRA, или изображения IDR, или изображения BLA или BLC, и качество декодирования опережающих изображений изображения picA CRA является допустимым, хотя и не превосходным (например, когда контрольные суммы одного или более из опережающих изображений не совпадают с контрольными суммами, сигнализируемыми в сообщениях дополнительной улучшающей информации (SEI) с хешем декодированных изображений, как в WD6 HEVC). Однако этому подходу недостает механизма для указания вышеуказанной информации в битовом потоке.
[0044] Чтобы решить некоторые из вышеуказанных проблем, в примере, вместо использования флага для указания, что изображение CRA имеет разорванную ссылку или указания изображения CRA (BLA) с разорванной ссылкой, может быть использован отличающийся тип единицы NAL (например, тип единицы NAL равный 2, который зарезервирован в WD6 HEVC). В таком примере, информация, обеспеченная посредством единиц NAL, может быть доступна без энтропийного кодирования или декодирования. Этот подход может позволить сущности (например, серверу, осведомленному о среде элементу сети (MANE), или видеоредактору/средству стыковки) изменять нормальное изображение CRA, для которого, если оно не начинает битовый поток, все ассоциированные опережающие изображения должны быть декодируемыми (то есть, могут быть корректно декодированы), на изображение BLA или BLC, при необходимости. Это также может дать возможность сущности (например, серверу, MANE или видеоредактору) идентифицировать изображение BLA или BLC при необходимости.
[0045] В некоторых примерах вместо того, чтобы позволять изображению BLC активировать отличный SPS, изображение BLC требуется для активации SPS, даже если ID SPS, к которому обращается изображение BLC, является таким же, как ID SPS активного SPS для предыдущего изображения в порядке декодирования. Это может быть выполнено опосредованно через PPS, как в WD6 HEVC, или посредством других способов, например опосредованно через набор параметров группы, как описано в JCTVC-I0338, или непосредственно, например, когда ID SPS непосредственно включен в заголовок слайса, или опосредованно через сообщение SEI с периодом буферизации. Изображение BLC может требоваться для активации SPS, поскольку изображение BLC было типично из битового потока, отличного от предыдущего изображения в порядке декодирования. Дополнительно, типично различные RBSP SPS применяются с идентичными или различными ID SPS.
[0046] Изображение BLC также может быть использовано для активации PPS. Это может иметь место, даже если ID PPS, к которому обращается изображение BLC (опосредованно через набор параметров группы, как описано в JCTVC-I0338, или непосредственно, например, когда ID PPS непосредственно включен в заголовок слайса как в WD6 HEVC), является таким же, как ID PPS активного PPS для предыдущего изображения в порядке декодирования. Это происходит снова, поскольку изображение BLC было типично из битового потока, отличного от предыдущего изображения в порядке декодирования, и типично применяются другие RBSP PPS, с идентичными или различными ID PPS.
[0047] В некоторых примерах изображение BLA или BLC также требуется для активации APS, если оно обращается к APS, даже если ID APS, к которому обращается изображение BLA или BLC, является таким же, как ID APS активной PPS для предыдущего изображения в порядке декодирования. Это происходит снова, поскольку изображение BLA или BLC было типично из битового потока, отличного от предыдущего изображения в порядке декодирования. Дополнительно, типично различные RBSP APS применяются с идентичными или различными ID APS.
[0048] Изображение BLA или BLC может рассматриваться в качестве специального типа изображения CRA и может быть задано в качестве кодированного изображения, для которого тип единицы NAL является таковым для изображения BLC (например, тип единицы NAL равный 2, который зарезервирован в WD6 HEVC). Это определение может применяться с различной терминологией, но подобным эффектом, для изображений BLA, как описано в WD9 HEVC. Тот же самый процесс декодирования для изображения CRA не-BLA, когда оно начинает битовый поток, и ассоциированных опережающих изображений, может быть применен для декодирования изображения BLA или BLC и ассоциированных опережающих изображений, даже если изображение BLA или BLC не является первым изображением в битовом потоке. В качестве альтернативы, изображения BLA или BLC могут быть исключены из изображений CRA, то есть, изображение BLA или BLC может рассматриваться в качестве не являющегося изображением CRA. В этом случае, тот же самый процесс декодирования для изображения CRA, когда оно начинает битовый поток, и ассоциированных опережающих изображений, применяется для декодирования изображения BLA или BLC и ассоциированных опережающих изображений, даже если изображение BLA или BLC не является первым изображением в битовом потоке. В последующем обсуждении, предполагается, что применяется эта альтернатива.
[0049] В некоторых примерах единица доступа BLA или BLC может быть задана в качестве единицы доступа, в которой кодированное изображение является изображением BLA или BLC. Определение кодированной видеопоследовательности может быть изменено следующим образом: последовательность единиц доступа, которая включает в себя, в порядке декодирования, единицу доступа IDR или единицу доступа BLA или BLC, за которой следует ноль или более единиц доступа не-IDR и не-BLA, включающих в себя все последующие единицы доступа вплоть до, но без включения в состав, любой последующей единицы доступа IDR или BLA.
[0050] Вместо того чтобы иметь только random_access_pic_id и no_output_of_prior_pics_flag для всех изображений IDR и изображений BLA, как в JCTVC-I0404, в другом подходе, два поля всегда представлены для всех изображений IDR, BLA и всех изображений CRA. Для каждого изображения CRA требуется, чтобы no_output_of_prior_pics_flag был равен 0. В некоторых примерах для сущности (например, сервера, осведомленного о среде элемента сети (MANE) или видеоредактора/средства стыковки) может быть легче изменять изображение CRA, чтобы оно было изображением BLA, при необходимости.
[0051] В другом альтернативном примере, для изображения BLA, может потребоваться, чтобы no_output_of_prior_pics_flag был равен 1. В качестве альтернативы, каждое изображение BLA не имеет сигнализируемого no_output_of_prior_pics_flag, но поведение по выводу изображения является тем же самым, как если бы оно имело no_output_of_prior_pics_flag равный 1. В качестве дополнительной альтернативы, каждое изображение BLA действительно имеет сигнализируемый no_output_of_prior_pics_flag, а поведение по выводу изображения является тем же самым, как если бы оно имело no_output_of_prior_pics_flag равный 1, независимо от значения сигнализируемого no_output_of_prior_pics_flag.
[0052] Значение старшего бита (MSB) счета порядка изображения (POC) для изображения BLA может быть сигнализировано, например, в заголовке слайса. Если его сигнализируют, значение все еще будет рассматриваться как равное 0 в процессе декодирования, независимо от значения. В качестве альтернативы, сигнализируемое значение MSB POC используется в процессе декодирования - но затем средству стыковки необходимо проверить и, возможно, изменить упомянутое значение так, чтобы оно соответствовало значениям POC более ранних изображений в порядке декодирования.
[0053] Когда часть первого битового потока и часть второго битового потока, при этом часть второго битового потока начинается с изображения picA CRA, стыкуются или соединяются, средство стыковки может сохранять изображение из первого битового потока в качестве изображения CRA. В примере, когда декодирование начинается с предыдущего изображения CRA, изображения IDR или изображения BLA, качество декодирования опережающих изображений изображения CRA может быть допустимым, хотя и не превосходным. Например, качество декодирования может быть допустимым, когда контрольные суммы одного или более из опережающих изображений не совпадают с контрольными суммами, сигнализируемыми в сообщениях SEI с хешем декодированных изображений как в WD6 HEVC.
[0054] Указание вышеуказанной информации может быть сигнализировано в битовом потоке. Информация может быть сигнализирована через указание, ассоциированное с изображением CRA из первого битового потока, например, в качестве флага в заголовке единицы NAL или заголовке слайса или APS, к которому обращаются, или сообщения SEI, ассоциированного с изображением CRA из первого битового потока. Флаг может быть назван exact_match_flag. В примере, значение 1 указывает, что контрольная сумма каждого опережающего изображения, ассоциированного с изображением CRA из первого битового потока, совпадает с контрольной суммой, сигнализированной в сообщении SEI с хешем декодированных изображений, если имеется. Значение 0 указывает, что контрольная сумма каждого опережающего изображения, ассоциированного с изображением CRA из первого битового потока, может или может не совпадать с контрольной суммой, сигнализированной в сообщении SEI с хешем декодированных изображений, если имеется.
[0055] Обсуждение сигнализации опережающих изображений и наличия опережающих изображений у изображений CRA приведено в JCTVC-I0275, доступном по адресу:
http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0275-v2.zip; и документе JCTVC-I0277, доступном по адресу:
http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0277-v3.zip для обсуждения сигнализации опережающих изображений и наличия опережающих изображений у изображений CRA, полное содержание каждого из которых включено в этот документ посредством ссылки. В некоторых примерах подобная идея для сигнализации наличия опережающих изображений у изображений CRA может быть применена к изображениям BLA или BLC.
[0056] Использование изображений RAP с разорванной ссылкой, таких как изображения BLA или BLC, может представить некоторые проблемы. Различные уточнения могут быть обеспечены для решения таких проблем, ассоциированных с изображениями RAP с разорванной ссылкой, такими как изображения BLA или BLC, а также другие существующие подходы произвольного доступа к видео.
[0057] Одной проблемой является то, что задание только одного типа единицы NAL для опережающих изображений, ассоциированных с изображением CRA, может не быть достаточным, поскольку опережающее изображение также может быть изображением доступа временного слоя (TLA). Таким образом, кодерам и декодеру, реализующим системы и способы, описанные в этом документе, может потребоваться большее количество типов единицы NAL для идентификации единиц NAL, принадлежащих к опережающим изображениям, которые также являются изображениями TLA, и единиц NAL, принадлежащих к опережающим изображениям, которые не являются изображениями TLA.
[0058] В качестве другой проблемы, если изображение BLA или BLC изменяет пространственное разрешение изображений в видеопоследовательности, то текущий процесс декодирования, точно определенный в WD6 HEVC для опережающих изображений изображения CRA, которое начинает битовый поток, не может быть непосредственно применен для опережающих изображений изображения BLA или BLC. В некоторых случаях может оказаться, что пространственное разрешение является отличным для текущего изображения и опорного изображения для текущего изображения. В качестве другой проблемы, в процессе декодирования, точно определенном в WD6 HEVC, синтаксический элемент slice_type может без необходимости присутствовать в заголовке слайса слайсов изображений IDR, CRA и BLA или BLC.
[0059] Это раскрытие описывает различные приемы для изображений RAP в общем, и для кодирования изображений RAP с разорванной ссылкой (например, изображений BLA) в частности в видеопоследовательности. Некоторые из приемов могут решать одну или более из проблем, описанных выше по тексту, в то время как некоторые из приемов могут обеспечивать дополнительные особенности, которые могут быть полезны при кодировании изображений произвольного доступа.
[0060] В некоторых примерах, когда текущее изображение RAP, которое должно быть декодировано, является изображением RAP с разорванной ссылкой, таким как изображение чистого произвольного доступа (CRA) с разорванной ссылкой (изображение BLA), синтаксический элемент указывает, что ни одно из опорных изображений перед изображением BLA в порядке декодирования в буфере декодированных изображений не должно быть выведено. Этот синтаксический элемент может быть закодирован посредством кодера и декодирован посредством декодера. Также, синтаксический элемент может быть обеспечен в более ранней позиции в заголовке слайса текущего изображения RAP с разорванной ссылкой и перед любыми энтропийно кодированными параметрами заголовка слайса каждого слайса в текущем изображении RAP с разорванной ссылкой. Обеспечение синтаксического элемента перед энтропийно кодированными синтаксическими элементами, например перед любым элементом ue(v), может давать возможность менее функциональному устройству, в некоторых примерах, интерпретировать синтаксический элемент без необходимости энтропийного кодирования. В других примерах, когда текущее изображение RAP, которое должно быть декодировано, является изображением RAP с разорванной ссылкой, все опорные изображения в буфере декодированных изображений маркируются в качестве неиспользуемых для ссылки. Эта особенность может давать возможность применения стандартного процесса декодирования для опережающих изображений изображения BLA или BLC, даже если изображение BLA или BLC изменяет пространственное разрешение. Эти и другие примерные приемы описаны в этом раскрытии.
[0061] ФИГ. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может использовать приемы, описанные в этом раскрытии. Как проиллюстрировано на ФИГ. 1, система 10 включает в себя устройство-источник 12, которое генерирует закодированные видеоданные, которые устройство-адресат 14 может декодировать позже. Устройство-источник 12 и устройство-адресат 14 могут содержать любые из широкого диапазона устройств, в том числе настольные компьютеры, блокнотные (то есть, переносные) компьютеры, планшетные компьютеры, телевизионные приставки, микротелефонные трубки, такие как так называемые "интеллектуальные" телефоны, так называемые "интеллектуальные" планшеты, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, устройства потоковой передачи видео или подобное. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы для беспроводной связи.
[0062] В некоторых случаях видеокодер 20 может кодировать изображение или изображения, которые находятся после точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя. Например, ей могла бы быть точка переключения для адаптации скорости прохождения битов, частоты кадров или пространственного разрешения. Одно или более из этих изображений могут быть опережающими изображениями изображения CRA в видеопоследовательности. Декодер может корректно декодировать опережающие изображения у изображения CRA, если декодирование видеопоследовательности начинается с изображения RAP до текущего изображения CRA в видеопоследовательности. Однако опережающие изображения у изображения CRA не могут быть корректно декодированы, когда возникает произвольный доступ из изображения CRA. Например, опережающие изображения могут указывать на блоки для ссылки предсказания, которые являются недоступными. Соответственно, опережающее изображение может не быть декодируемым на видеодекодере 30. Соответственно, устройство-адресат 14 обычно может отбрасывать эти опережающие изображения во время декодирования с произвольным доступом.
[0063] В другом примере для изображения BLA или BLC, кодер 20 может кодировать флаг, например, no_output_of_prior_pics_flag (который может быть более корректно назван синтаксическим элементом), так что ни одно из предшествующих изображений в DPB не выводятся. В некоторых примерах этот флаг или синтаксический элемент может находиться раньше в заголовке слайса до энтропийного декодирования, так что его можно декодировать легче и информация становится доступной раньше в процессе кодирования. Например, так что менее сложные устройства, такие как MANE, могут иметь доступ к информации, не требуя декодера, поскольку, например, отсутствует необходимость в энтропийном декодировании no_output_of_prior_pics_flag. В качестве иллюстрации, флаг no_output_of_prior_pics может быть представлен как неэнтропийно кодированный синтаксический элемент, такой как, например, элемент u(1) фиксированной длины, вместо энтропийно кодированного синтаксического элемента, такого как, например, элемент ue(v) переменной длины. Флаг no_output_of_prior_pics может быть представлен, например, незамедлительно после флага first_slice_segment_in_pic и до любых энтропийно кодированных синтаксических элементов.
[0064] В одном примере, видеодекодер 30 может маркировать изображения, сохраненные в буфере опорных изображений, в качестве неиспользуемых для ссылки когда, например, использование этих изображений может давать в результате некорректно декодированное изображение. Например, опорное изображение, которое предшествует изображению BLA или BLC в порядке декодирования или порядке вывода, может быть непригодным для ссылки на опережающее изображение, которое следует за изображением BLA или BLC в порядке декодирования. Соответственно, опорное изображение может быть маркировано как неиспользуемое для ссылки посредством видеодекодера 30 в ответ на прием опорного изображения, которое предшествует изображению BLA или BLC в порядке декодирования или порядке вывода, может быть непригодным для ссылки на опережающее изображение, которое следует за изображением BLA или BLC в порядке декодирования.
[0065] В примере видеокодер 20 может быть сконфигурирован с возможностью включать в себя типы единицы NAL, назначенные для указания, когда изображения BLA или BLC имеют и не имеют опережающих изображений. Например, в одном стандарте включаются в состав типы единицы NAL 16, BLA_W_LP (BLA с опережающим изображением); 17, BLA_W_DLP (BLA с декодируемым опережающим изображением); и 18, BLA_N_LP (BLA без опережающего изображения).
[0066] В примере видеокодер 20 может обрабатывать типы единицы NAL, назначенные для указания, когда изображения BLA имеют и не имеют опережающих изображений. Например, видеокодер 20 может кодировать изображения согласно одному из множества различных типов единицы уровня абстракции сети (NAL). Множество типов единицы NAL включает в себя один или более из (1) кодированного слайса изображения доступа с разорванной ссылкой (BLA), при этом изображение BLA является изображением BLA с ассоциированными опережающими изображениями в битовом потоке (2) кодированного слайса изображения BLA, при этом изображение BLA является изображением BLA с ассоциированными декодируемыми опережающими изображениями в битовом потоке и (3) кодированного слайса изображения BLA, при этом изображение BLA является изображением BLA без ассоциированных опережающих изображений в битовом потоке.
[0067] Устройство-адресат 14 может принимать закодированные видеоданные. Устройство-адресат может декодировать принятые данные через линию 16 связи. Линия 16 связи может содержать любой тип среды или устройства, допускающий перемещение закодированных видеоданных из устройства-источника 12 в устройство-адресат 14. В одном примере, линия 16 связи может содержать среду связи для обеспечения возможности устройству-источнику 12 передавать закодированные видеоданные непосредственно устройству-адресату 14 в реальном времени. Закодированные видеоданные могут быть модулированы согласно стандарту связи, такому как протокол беспроводной связи, и переданы устройству-адресату 14. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (РЧ-) спектр или одну или более физических линий передач. Среда связи может формировать часть пакетной сети, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или другое оборудование, которое может быть пригодным для содействия связи от устройства-источника 12 к устройству-адресату 14.
[0068] В качестве альтернативы, закодированные данные могут быть выведены из интерфейса 22 вывода в устройство 34 хранения. Подобным образом, закодированные данные могут быть доступны из устройства 34 хранения посредством интерфейса ввода. Устройство 34 хранения может включать в себя любой из многообразия распространяемых или локально доступных носителей данных, таких как жесткий диск, Blu-Ray-диски, DVD, CD-ROM, флэш-память, энергозависимая или энергонезависимая память, либо любые другие подходящие цифровые носители данных для сохранения закодированных видеоданных. В дополнительном примере, устройство 34 хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить закодированное видео, сгенерированное устройством-источником 12. Устройство-адресат 14 может осуществлять доступ к сохраненным видеоданным из устройства 34 хранения через потоковую передачу или загрузку. Файловый сервер может быть любым типом сервера, допускающим хранение закодированных видеоданных и передачу этих закодированных видеоданных устройству-адресату 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), сервер FTP, подключенные к сети устройства хранения (NAS) или локальные накопители на дисках. Устройство-адресат 14 может осуществлять доступ к закодированным видеоданным через любое стандартное подключение для передачи данных, включающее в себя Интернет-подключение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем, и так далее) или их комбинацию, которая является подходящей для осуществления доступа к закодированным видеоданным, сохраненным на файловом сервере. Передача закодированных видеоданных от устройства 34 хранения может быть потоковой передачей, передачей загрузки или их комбинацией.
[0069] Приемы этого раскрытия необязательно ограничены беспроводными приложениями или установками. Приемы могут быть применены к кодированию видео в поддержку любого из многообразия мультимедийных приложений, таких как телевизионные вещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео, например, через Интернет, кодирование цифрового видео для сохранения на носителе данных, декодирование цифрового видео, сохраненного на носителе данных, или другие приложения. В некоторых примерах система 10 может быть сконфигурирована для поддержки односторонней или двухсторонней передачи видео для поддержки приложений, таких как потоковая передача видео, воспроизведение видео, вещание видео и/или видеотелефония.
[0070] В примере с ФИГ. 1, устройство-источник 12 включает в себя источник 18 видео, видеокодер 20 и интерфейс 22 вывода. В некоторых случаях интерфейс 22 вывода может включать в себя модулятор/демодулятор (модем) и/или передатчик. В устройстве-источнике 12, источник 18 видео может включать в себя источник, такой как устройство видеозахвата, например видеокамеру, видеоархив, содержащий ранее захваченное видео, интерфейс подачи видео для приема видео от поставщика видеоконтента и/или систему компьютерной графики для генерирования данных компьютерной графики в качестве исходного видео или комбинацию таких источников. В качестве одного примера, если источником 18 видео является видеокамера, устройство-источник 12 и устройство-адресат 14 могут формировать так называемые телефоны с камерами или видеотелефоны. Однако приемы, описанные в этом раскрытии, могут быть применены к кодированию видео в общем и могут быть применены к беспроводным и/или проводным приложениям.
[0071] Захваченное, предварительно захваченное или сгенерированное компьютером видео может быть закодировано посредством видеокодера 20. Закодированные видеоданные могут быть переданы непосредственно устройству-адресату 14 через интерфейс 22 вывода устройства-источника 12. Закодированные видеоданные также могут (или в качестве альтернативы) быть сохранены на устройство 34 хранения для осуществления доступа в будущем посредством устройства-адресата 14 или других устройств, для декодирования и/или воспроизведения.
[0072] Устройство-адресат 14 включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В некоторых случаях интерфейс 28 ввода может включать в себя приемник и/или модем. Интерфейс 28 ввода устройства-адресата 14 принимает закодированные видеоданные по линии 16 связи. Кодированные видеоданные, переданные по линии 16 связи или обеспеченные на устройстве 34 хранения, могут включать в себя многообразие синтаксических элементов, сгенерированных посредством видеокодера 20 для использования посредством видеодекодера, такого как видеодекодер 30, при декодировании видеоданных. Такие синтаксические элементы могут быть включены в закодированные видеоданные, передаваемые по среде связи, хранимые на носителе данных или хранимые на файловом сервере.
[0073] В некоторых примерах видеодекодер 30 устройства-адресата 14 может декодировать изображение или изображения, которые находятся после точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя. Например, ей могла бы быть точка переключения для адаптации скорости прохождения битов, частоты кадров (то есть, точка переключения временного слоя) или пространственного разрешения. Одно или более из этих изображений могут быть опережающими изображениями. Опережающие изображения не могут быть корректно декодированы, когда возникает произвольный доступ из изображения BLA или BLC.
[0074] В примере для предотвращения распространения ошибки от опорных изображений, которые могут не быть доступными в зависимости от того, где начинается декодирование, видеодекодер 30 может не использовать любое изображение, которое предшествует изображению BLA или BLC либо в порядке декодирования, либо порядке вывода (который включает в себя опережающие изображения), в качестве опорного изображения.
[0075] В различных примерах, видеодекодер 30 может маркировать все опорные изображения в DPB в качестве неиспользуемых для ссылки до декодирования изображения BLA при декодировании изображения BLA или BLC. Например, видеодекодер 30 может маркировать опорные изображения в буфере декодированных изображений (DPB) в качестве неиспользуемых для ссылки.
[0076] В другом примере кодер 20 может включать в битовый поток, и декодер 30 может принимать, флаг или другой синтаксический элемент, например, no_output_of_prior_pics_flag, для изображения BLA, которое должно быть декодировано. Флаг, когда равен 1, указывает, что ни одно из предшествующих изображений в DPB не выводятся для отображения. В частности, когда no_output_of_prior_pics_flag равен 1, декодер 30 выгружает все буферы хранения изображений в буфере декодированных изображений без вывода изображений, которые они содержат. В некоторых примерах этот флаг или синтаксический элемент, может быть представлен в самом начале в заголовке слайса до энтропийного декодирования, так что он может быть еще легче декодирован, без необходимости в энтропийном кодировании, и информация становится доступной раньше в процессе кодирования. Например, так что менее сложные устройства, такие как MANE, могут иметь доступ к информации, не требуя декодера, поскольку, например, отсутствует необходимость в энтропийном декодировании no_output_of_prior_pics_flag.
[0077] В другом примере видеодекодер 30 может обрабатывать типы единицы NAL, назначенные для указания, когда изображения BLA или BLC имеют и не имеют опережающих изображений. (Еще раз, как описано выше по тексту изображения BLA являются концептуально, в общем такими же как изображения BLC в том, что изображения BLA и BLC означают изображения CRA с разорванной ссылкой.). В одном примере, видеодекодер 30 может декодировать изображения согласно одному из множества различных типов единицы уровня абстракции сети (NAL). Множество типов единицы NAL включает в себя один или более из (1) кодированного слайса изображения доступа с разорванной ссылкой (BLA), при этом изображение BLA является изображением BLA с ассоциированными опережающими изображениями в битовом потоке, (2) кодированного слайса изображения BLA, при этом изображение BLA является изображением BLA с ассоциированными декодируемыми опережающими изображениями в битовом потоке и (3) кодированного слайса изображения BLA, при этом изображение BLA является изображением BLA без ассоциированных опережающих изображений в битовом потоке.
[0078] В некоторых примерах видеодекодер 30 сконфигурирован с возможностью маркировать все опорные изображения в качестве неиспользуемых для ссылки, если он обнаруживает тип единицы NAL BLA. Если тип единицы NAL BLA обнаруживается посредством декодера 30, опорные изображения не являются допустимыми для декодирования изображения BLA или любых изображений, следующих за изображением BLA в порядке декодирования или вывода.
[0079] Устройство 32 отображения может быть интегрировано с, или быть внешним относительно устройства-адресата 14. В некоторых примерах устройство-адресат 14 может включать в себя интегрированное устройство отображения и также быть сконфигурировано с возможностью взаимодействия с внешним устройством отображения. В других примерах, устройство-адресат 14 может быть устройством отображения. В общем, устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из многообразия устройств отображения, таких как жидкокристаллическое устройство отображения (LCD), плазменное устройство отображения, устройство отображения на органических светодиодах (OLED) или другой тип устройства отображения.
[0080] Видеокодер 20 и видеодекодер 30 могут оперировать согласно стандарту сжатия видео, такому как разрабатываемый в настоящее время стандарт Высокоэффективного Видеокодирования (HEVC) и могут соответствовать Тестовой Модели HEVC (HM). В качестве альтернативы, видеокодер 20 и видеодекодер 30 могут функционировать согласно другим частным или промышленным стандартам, таким как стандарт ITU-T H.264, в качестве альтернативы упоминаемый как MPEG-4, Часть 10, Усовершенствованное Видеокодирование (AVC) или расширения таких стандартов. Приемы этого раскрытия, однако, не ограничены каким-либо конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T H.263.
[0081] Хотя не показано на ФИГ. 1, в некоторых аспектах, каждый из видеокодера 20 и видеодекодера 30 может быть интегрирован с аудиокодером и декодером и может включать в себя надлежащие блоки MUX-DEMUX или другое аппаратное обеспечение и программное обеспечение для того, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, в некоторых примерах, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
[0082] Каждый из видеокодера 20 и видеодекодера 30 может быть реализован как любая из многообразия подходящих схем кодера, таких как один или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратного обеспечения, программно-аппаратного обеспечения или любые их комбинации. Когда приемы реализуются частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем невременном считываемом компьютером носителе и исполнять эти инструкции в аппаратном обеспечении, используя один или более процессоров для выполнения приемов этого раскрытия. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве.
[0083] JCT-VC работает над разработкой стандарта HEVC. Усилия стандартизации HEVC основаны на развивающейся модели устройства кодирования видео, упоминаемой как Тестовая Модель HEVC (HM). HM предполагает несколько дополнительных возможностей устройств кодирования видео относительно существующих устройств согласно, например, ITU-T H.264/AVC. Например, в то время как H.264 обеспечивает девять режимов кодирования с внутренним предсказанием, HM может обеспечивать вплоть до тридцати трех режимов кодирования с внутренним предсказанием.
[0084] В общем, рабочая модель HM описывает, что видеокадр или изображение могут быть разделены на последовательность древовидных блоков или наибольших единиц кодирования (LCU), которые включают в себя как выборки яркости, так и выборки цветности. Древовидный блок имеет подобную цель, как и макроблок стандарта H.264. Слайс включает в себя некоторое число последовательных древовидных блоков в порядке кодирования. Видеокадр или изображение могут быть секционированы на один или более слайсов. Каждый древовидный блок может быть разбит на единицы кодирования (CU) согласно квадродереву. Например, древовидный блок, в качестве корневого узла квадродерева, может быть разбит на четыре дочерних узла, и каждый дочерний узел может, в свою очередь, быть родительским узлом и быть разбит на другие четыре дочерних узла. Конечный, не разбитый дочерний узел в качестве концевого узла квадродерева содержит узел кодирования, то есть кодированный видеоблок. Синтаксические данные, ассоциированные с кодированным битовым потоком, могут задавать максимальное количество раз, когда древовидный блок может быть разбит, и также могут задавать минимальный размер узлов кодирования.
[0085] CU включает в себя узел кодирования и единицы предсказания (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен быть квадратным по форме. Размер CU может находиться в диапазоне от 8×8 пикселей вплоть до размера древовидного блока с максимумом в 64×64 пикселей или больше. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, секционирование CU на одну или более PU. Режимы секционирования могут различаться между тем, закодирована ли CU в прямом режиме или режиме пропуска, закодирована в режиме внутреннего предсказания или закодирована в режиме внешнего предсказания. PU могут быть секционированы, чтобы быть не квадратными в форме. Синтаксические данные, ассоциированные с CU, также могут описывать, например, секционирование CU на одну или более TU согласно квадродереву. TU может быть квадратной или неквадратной по форме.
[0086] Стандарт HEVC делает возможными преобразования согласно TU, которые могут различаться для различных CU. TU типично установлены по размеру на основании размера PU в пределах данной CU, заданной для секционированной LCU, хотя это может не всегда иметь место. TU типично такого же размера или меньше чем PU. В некоторых примерах остаточные выборки, соответствующие CU, могут быть подразделены на более маленькие единицы с использованием структуры квадродерева, известной как "остаточное квадродерево" (RQT). Концевые узлы RQT могут упоминаться как единицы преобразования (TU). Значения пиксельных разностей, ассоциированные с TU, могут быть преобразованы для создания коэффициентов преобразования, которые могут быть квантованы.
[0087] В общем, PU включает в себя данные, связанные с процессом предсказания. Например, когда PU закодирована во внутреннем режиме, PU может включать в себя данные, описывающие режим внутреннего предсказания для PU. В качестве другого примера, когда PU закодирована во внешнем режиме, PU может включать в себя данные, задающие вектор движения для PU. Данные, задающие вектор движения для PU, могут описывать, например, горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешение для вектора движения (например, одна четвертая пиксельной точности или одна восьмая пиксельной точности), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, Список 0, Список 1 или Список C) для вектора движения.
[0088] В общем, TU используется для процессов преобразования и квантования. Данная CU, имеющая одну или более PU, также может включать в себя одну или более единиц преобразования (TU). Следом за предсказанием, видеокодер 20 может вычислять остаточные значения, соответствующие PU. Остаточные значения содержат значения пиксельных разностей, которые могут быть преобразованы в коэффициенты преобразования, квантованы и сканированы с использованием TU для создания упорядоченных коэффициентов преобразования для энтропийного кодирования. Это раскрытие типично использует термин "видеоблок" для ссылки на узел кодирования CU. В некоторых специфических случаях, это раскрытие также может использовать термин "видеоблок" для ссылки на древовидный блок, то есть LCU или CU, которая включает в себя узел кодирования и PU и TU.
[0089] Видеопоследовательность типично включает в себя серию видеокадров или изображений. Группа изображений (GOP), в общем, содержит серию из одного или более изображений видео. GOP может включать в себя синтаксические данные в заголовке GOP,  заголовке одного или более из изображений или в другом месте, которые описывают некоторое число изображений, включенных в GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 типично функционирует над видеоблоками, в пределах индивидуальных слайсов видео, для того чтобы кодировать видеоданные. Видеоблок может соответствовать узлу кодирования в пределах CU. Видеоблоки могут иметь фиксированные или переменные размеры и могут различаться по размеру согласно точно определенному стандарту кодирования.
[0090] В качестве примера, HM поддерживает предсказание в различных размерах PU. Предполагая, что размер конкретной CU является 2N×2N, HM поддерживает внутреннее предсказание в размерах PU 2N×2N или N×N и внешнее предсказание в симметричных размерах PU 2N×2N, 2N×N, N×2N или N×N. HM также поддерживает асимметричное секционирование для внешнего предсказания в размерах PU 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном секционировании, одно направление CU не секционируется, в то время как другое направление секционируется на 25% и 75%. Часть CU, соответствующая 25% секции, указывается посредством "n", за которым следует указание "Вверх", "Вниз", "Влево" или "Вправо". Таким образом, например, "2N×nU" относится к CU 2N×2N, которая секционирована горизонтально с PU 2N×0,5N сверху и PU 2N×1,5N снизу.
[0091] В этом раскрытии "N×N" и "N на N" могут быть использованы взаимозаменяемо для ссылки на пиксельные размерности видеоблока исходя из вертикальных и горизонтальных размерностей, например 16×16 пикселей или 16 на 16 пикселей. В общем, блок 16×16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогично, блок N×N, в общем, имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет неотрицательное целочисленное значение. Пиксели в блоке могут быть упорядочены в строки и столбцы. Более того, блоки необязательно должны иметь такое же число пикселей в горизонтальном направлении, как в вертикальном направлении. Например, блоки могут содержать N×M пикселей, где M необязательно равно N.
[0092] Вслед за кодированием с внутренним предсказанием или внешним предсказанием с использованием PU из CU, видеокодер 20 может вычислять остаточные данные для TU из CU. PU могут содержать пиксельные данные в пространственной области (также упоминаемой как пиксельная область) и TU могут содержать коэффициенты в области преобразования после применения преобразования, например дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлет-преобразования или концептуально аналогичного преобразования, к остаточным видеоданным. Остаточные данные могут соответствовать пиксельным разностям между пикселями незакодированного изображения и значениями предсказания, соответствующими PU. Видеокодер 20 может формировать TU включающие в себя остаточные данные для CU и затем преобразовывать TU для создания коэффициентов преобразования для CU.
[0093] Следом за любыми преобразованиями для создания коэффициентов преобразования видеокодер 20 может выполнять квантование коэффициентов преобразования. Квантование, в общем, относится к процессу, в котором квантуются коэффициенты преобразования, чтобы, возможно, сокращать объем данных, используемых для представления коэффициентов, обеспечивая дополнительное сжатие. Процесс квантования может сокращать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, n-битовое значение может быть округлено в меньшую сторону до m-битового значения во время квантования, где n больше m.
[0094] В некоторых примерах видеокодер 20 может использовать предварительно заданный порядок сканирования для сканирования квантованных коэффициентов преобразования для создания упорядоченного вектора, который может быть энтропийно кодирован. В других примерах, видеокодер 20 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования одномерного вектора, видеокодер 20 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному кодированию с переменной длиной кодового слова (CAVLC), контекстно-адаптивному двоичному арифметическому кодированию (CABAC), синтаксическому контекстно-адаптивному двоичному арифметическому кодированию (SBAC), энтропийному кодированию на основе секционирования на интервалы вероятности (PIPE) или другой методологии энтропийного кодирования. Видеокодер 20 также может энтропийно кодировать синтаксические элементы, ассоциированные с закодированными видеоданными для использования посредством видеодекодера 30 при декодировании видеоданных.
[0095] Для выполнения CABAC видеокодер 20 может назначать контекст в пределах контекстной модели символу, который должен быть передан. Контекст может относиться к, например, тому, являются ли соседние значения символа ненулевыми или нет. Для выполнения CAVLC видеокодер 20 может выбирать код с переменной длиной для символа, который должен быть передан. Кодовые слова в VLC могут быть построены так, что относительно более короткие коды соответствуют более вероятным символам, в то время как более длинные коды соответствуют менее вероятным символам. Таким образом, использование VLC может достичь сохранений битов над, например, использованием кодовых слов равной длины для каждого символа, который должен быть передан. Определение вероятности может быть основано на контексте, назначенном символу.
[0096] ФИГ. 2 является блок-схемой, иллюстрирующей примерный видеокодер 20, который может реализовывать приемы для кодирования изображений RAP с разорванной ссылкой, описанные в этом раскрытии. Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков в пределах слайсов видео. Внутреннее кодирование полагается на пространственное предсказание для сокращения или удаления пространственной избыточности видео в пределах данного видеокадра или изображения. Внешнее кодирование полагается на временное предсказание, чтобы сокращать или удалять временную избыточность в видео в пределах смежных кадров или изображений видеопоследовательности. Внутренний режим (I режим) может относиться к любому из нескольких режимов пространственного сжатия. Внешние режимы, такие как однонаправленное предсказание (P режим) или бипредсказание (B режим), могут относиться к любому из нескольких режимов временного сжатия.
[0097] В примере с ФИГ. 2 видеокодер 20 включает в себя модуль 35 секционирования, модуль 41 предсказания, модуль 63 фильтра, память 64 опорных изображений, сумматор 50, модуль 52 преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Модуль 41 предсказания включает в себя модуль 42 оценки движения, модуль 44 компенсации движения и модуль 46 внутреннего предсказания. Для восстановления видеоблока видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. Модуль 63 фильтра предназначен для представления одного или более контурных фильтров, таких как деблокирующий фильтр, адаптивный контурный фильтр (ALF) и фильтр адаптивного к выборке смещения (SAO). Хотя модуль 63 фильтра проиллюстрирован на ФИГ. 2 как являющийся внутриконтурным фильтром, в других конфигурациях, модуль 63 фильтра может быть реализован как пост-контурный фильтр.
[0098] Как проиллюстрировано на ФИГ. 2, видеокодер 20 принимает видеоданные и модуль 35 секционирования секционирует данные на видеоблоки. Это секционирование также может включать в себя секционирование на слайсы, тайлы или другие большие единицы, также как секционирование видеоблока, например, согласно структуре квадродерева LCU и CU. Видеокодер 20 в общем иллюстрирует компоненты, которые кодируют видеоблоки в пределах слайса видео, который должен быть закодирован. Слайс может быть разделен на множественные видеоблоки (и возможно на наборы видеоблоков, упоминаемых как тайлы). Модуль 41 предсказания может выбирать один из множества возможных режимов кодирования, таких как один из множества режимов внутреннего кодирования или один из множества режимов внешнего кодирования, для текущего видеоблока на основании результатов ошибки (например, скорости кодирования и уровня искажения). Модуль 41 предсказания может обеспечивать получившийся в результате внутренне- или внешне-кодированный блок сумматору 50 для генерирования данных остаточного блока и сумматору 62 для восстановления закодированного блока для использования в качестве опорного изображения.
[0099] Как пояснено выше по тексту, видеокодер 20 может кодировать точку произвольного доступа или точку адаптации потока, такую как точка переключения временного слоя, например изображение BLA или BLC. Например, кодирование может возникать в пределах модуля 56 энтропийного кодирования, который может выполнять как энтропийное кодирование, так и неэнтропийное кодирование. Одно или более из этих изображений могут быть опережающими изображениями изображения CRA. Опережающие изображения у изображения CRA могут быть корректно декодированы, если декодирование начинается с изображения RAP до текущего изображения CRA. Однако опережающие изображения у изображения CRA не могут быть корректно декодированы, когда возникает произвольный доступ из изображения CRA. Например, опережающие изображения могут указывать на блоки для ссылки предсказания, которые являются недоступными. Соответственно, опережающее изображение может не быть декодируемым на видеодекодере 30. Соответственно, эти опережающие изображения типично отбрасываются во время декодирования с произвольным доступом.
[0100] В примере видеокодер 20 может обеспечивать флаг в заголовке слайса, например, no_output_of_prior_pics_flag или синтаксический элемент, так что ни одно из предшествующих изображений, то есть изображений перед изображением BLA или BLC, в DPB не выводятся. В некоторых примерах этот флаг (или синтаксический элемент) может находиться раньше в заголовке слайса до энтропийного кодирования, так что он может быть декодирован легче на декодере 30, например, и информация может стать доступной раньше в процессе кодирования. Синтаксический элемент или флаг может быть закодирован, например, в заголовке слайса для изображения BLA или BLC, посредством модуля 56 энтропийного кодирования (который может выполнять неэнтропийное кодирование). Это может быть полезным, например, для промежуточных устройств, таких как MANE, так что информация, обеспечиваемая посредством синтаксического элемента или флага, может быть доступной промежуточному устройству без энтропийного декодирования, хотя это также может быть полезным декодеру, чтобы иметь доступ к такой информации перед энтропийным декодированием.
[0101] Например, видеокодер 20 (например, модуль 56 энтропийного кодирования) может включать в себя синтаксический элемент, который указывает, что буфер хранения изображений выгружен без вывода любых изображений из буфера хранения изображений. Синтаксический элемент, когда установлен, может побуждать изображения перед текущим изображением в порядке декодирования и находящиеся в буфере хранения изображений во время декодирования текущего изображения к выгрузке из буфера хранения изображений без их вывода. В некоторых примерах синтаксический элемент может быть одним из множества синтаксических элементов. Дополнительно, множество синтаксических элементов может включать в себя энтропийно кодированные синтаксические элементы заголовка слайса и неэнтропийно кодированные синтаксические элементы заголовка слайса. В примере синтаксический элемент, который указывает, что буфер хранения изображений выгружен без вывода каких-либо изображений из буфера хранения изображений, включен в заголовок слайса до любого энтропийно кодированного синтаксического элемента заголовка слайса, так что сам синтаксический элемент не является энтропийно кодированным.
[0102] В некоторых примерах синтаксический элемент может быть no_output_of_prior_pics_flag и no_output_of_prior_pics_flag, может быть включен в заголовок слайса сразу после first_slice_in_pic_flag. first_slice_in_pic_flag может быть флагом, который указывает, является ли слайс первым слайсом, в порядке декодирования, изображения.
[0103] В примере видеокодер 20 может быть сконфигурирован с возможностью включать в себя типы единицы NAL, назначенные для указания, когда изображения BLA или BLC имеют и не имеют опережающих изображений. Например, в одном стандарте, включаются в состав типы единицы NAL 16, BLA_W_LP (BLA с опережающим изображением); 17, BLA_W_DLP (BLA с декодируемым опережающим изображением); и 18, BLA_N_LP (BLA без опережающего изображения). Эти типы единицы NAL могут быть закодированы посредством модуля 56 энтропийного кодирования (который может выполнять неэнтропийное кодирование). Соответственно, на основании типа единицы NAL, декодер может знать, когда изображение BLA имеет опережающее изображение и когда опережающее изображение является не декодируемым, например, когда декодирование начинается с более раннего изображения RAP. Соответственно, эта информация могла бы быть использована для определения, когда опережающие изображения могут быть маркированы в качестве неиспользуемых для ссылки, что может запускать декодер для маркирования опорных изображений в буфере декодированных изображений в качестве неиспользуемых для ссылки.
[0104] Модуль 46 внутреннего предсказания в пределах модуля 41 предсказания может выполнять кодирование с внутренним предсказанием текущего видеоблока относительно одного или более соседних блоков в одном и том же кадре или слайсе в качестве текущего блока, который должен быть кодирован для обеспечения пространственного сжатия. Модуль 42 оценки движения и модуль 44 компенсации движения в пределах модуля 41 предсказания выполняют кодирование с внешним предсказанием текущего видеоблока относительно одного или более блоков для ссылки предсказания в одном или более опорных изображениях для обеспечения временного сжатия.
[0105] Модуль 42 оценки движения может быть сконфигурирован для определения режима внешнего предсказания для слайса видео согласно предопределенному шаблону для видеопоследовательности. Предопределенный шаблон может объявлять слайсы видео в последовательности в качестве P слайсов, B слайсов или GPB слайсов. Модуль 42 оценки движения и модуль 44 компенсации движения могут быть высоко интегрированы, но проиллюстрированы отдельно в концептуальных целях. Оценка движения, выполняемая посредством модуля 42 оценки движения, является процессом генерирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в пределах текущего видеокадра или изображения относительно предиктивного блока в пределах опорного изображения.
[0106] Предиктивный блок является блоком, который найден как близко соответствующий PU видеоблока, который должен быть кодирован, с точки зрения пиксельной разности, которая может быть определена посредством суммы абсолютной разности (SAD), суммы квадратов разности (SSD) или других разностных метрик. В некоторых примерах видеокодер 20 может вычислять значения для субцелочисленных пиксельных позиций опорных изображений, хранящихся в памяти 64 опорных изображений. Например, видеокодер 20 может интерполировать значения одной четвертой пиксельных позиций, одной восьмой пиксельных позиций или других дробных пиксельных позиций опорного изображения. Поэтому модуль 42 оценки движения может выполнять поиск движения относительно полных пиксельных позиций и дробных пиксельных позиций и вывод вектора движения с дробной пиксельной точностью.
[0107] Модуль 42 оценки движения вычисляет вектор движения для PU видеоблока во внешне-кодированном слайсе посредством сравнения позиции PU с позицией предиктивного блока опорного изображения. Опорное изображение может быть выбрано из первого списка (Список 0) опорных изображений или второго списка (Список 1) опорных изображений, каждый из которых идентифицирует одно или более опорных изображений, хранимых в памяти 64 опорных изображений. Модуль 42 оценки движения отправляет вычисленный вектор движения модулю 56 энтропийного кодирования и модулю 44 компенсации движения.
[0108] Компенсация движения, выполняемая посредством модуля 44 компенсации движения, может вовлекать в себя выборку или генерирование предиктивного блока на основании вектора движения, определенного посредством оценки движения, возможно выполняя интерполяции до субпиксельной точности. После приема вектора движения для PU текущего видеоблока модуль 44 компенсации движения может располагать предиктивный блок, на который указывает вектор движения, в одном из списков опорных изображений. Видеокодер 20 формирует остаточный видеоблок посредством вычитания пиксельных значений предиктивного блока из пиксельных значений текущего кодируемого видеоблока, формируя значения пиксельных разностей. Значения пиксельных разностей формируют остаточные данные для блока и могут включать в себя компоненты разностей как яркости, так и цветности. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания. Модуль 44 компенсации движения также может генерировать синтаксические элементы, ассоциированные с видеоблоками и слайсом видео для использования посредством видеодекодера 30 в декодировании видеоблоков слайса видео.
[0109] Модуль 46 внутреннего предсказания может внутренне предсказывать текущий блок, в качестве альтернативы внешнему предсказанию, выполняемому посредством модуля 42 оценки движения и модуля 44 компенсации движения, как описано выше по тексту. В частности, модуль 46 внутреннего предсказания может определять режим внутреннего предсказания для использования, чтобы закодировать текущий блок. В некоторых примерах модуль 46 внутреннего предсказания может кодировать текущий блок с использованием различных режимов внутреннего предсказания, например, во время отдельных проходов кодирования, и модуль 46 внутреннего предсказания (или модуль 40 выбора режима, в некоторых примерах) может выбирать надлежащий режим внутреннего предсказания для использования из тестируемых режимов. Например, модуль 46 внутреннего предсказания может вычислять значения скорость-искажение с использованием анализа скорость-искажение для различных тестируемых режимов внутреннего предсказания и выбирать режим внутреннего предсказания, имеющий лучшие характеристики скорость-искажение среди тестируемых режимов. Анализ скорость-искажение в общем определяет объем искажения (или ошибку) между закодированным блоком и исходным, незакодированным блоком, который был закодирован для создания закодированного блока, а также скорость прохождения битов (то есть, количество битов), используемую для создания закодированного блока. Модуль 46 внутреннего предсказания может вычислять соотношения по искажениям и скоростям для различных закодированных блоков для определения, какой режим внутреннего предсказания показывает лучшее значение скорость-искажение для блока.
[0110] В любом случае после выбора режима внутреннего предсказания для блока, модуль 46 внутреннего предсказания может обеспечивать информацию, указывающую выбранный режим внутреннего предсказания для блока, модулю 56 энтропийного кодирования. Модуль 56 энтропийного кодирования может закодировать информацию, указывающую выбранный режим внутреннего предсказания в соответствии с приемами этого раскрытия. Видеокодер 20 может включать в передаваемый битовый поток данные конфигурации. Битовый поток может включать в себя множество таблиц индексов режима внутреннего предсказания и множество модифицированных таблиц индексов режима внутреннего предсказания (также упоминаемых как таблицы отображения кодовых слов), определения контекстов кодирования для различных блоков и указания наиболее вероятного режима внутреннего предсказания, таблицы индексов режима внутреннего предсказания и модифицированной таблицы индексов режима внутреннего предсказания для использования для каждого из контекстов.
[0111] После того как модуль 41 предсказания генерирует предиктивный блок для текущего видеоблока с помощью либо внешнего предсказания, либо внутреннего предсказания, видеокодер 20 формирует остаточный видеоблок посредством вычитания предиктивного блока из текущего видеоблока. Остаточные видеоданные в остаточном блоке могут быть включены в одну или более TU и применены к модулю 52 преобразования. Модуль 52 преобразования преобразовывает остаточные видеоданные в остаточные коэффициенты преобразования с использованием преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование. Модуль 52 преобразования может конвертировать остаточные видеоданные из пиксельной области в область преобразования, такую как частотная область.
[0112] Модуль 52 преобразования может отправлять получающиеся в результате коэффициенты преобразования модулю 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования, чтобы дополнительно сократить скорость прохождения битов. Процесс квантования может сокращать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована посредством регулирования параметра квантования. В некоторых примерах модуль 54 квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. В качестве альтернативы, модуль 56 энтропийного кодирования может выполнять сканирование.
[0113] Следом за квантованием модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование с переменной длиной кодового слова (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), синтаксическое контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование на основе секционирования на интервалы вероятности (PIPE) или другую методологию или прием энтропийного кодирования. Следом за энтропийным кодированием посредством модуля 56 энтропийного кодирования закодированный битовый поток может быть передан видеодекодеру 30 или заархивирован для более поздней передачи или извлечения посредством видеодекодера 30. Модуль 56 энтропийного кодирования также может энтропийно закодировать векторы движения и другие синтаксические элементы для текущего кодируемого слайса видео.
[0114] Модуль 58 обратного квантования и модуль 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно для восстановления остаточного блока в пиксельной области для более позднего использования в качестве опорного блока опорного изображения. Модуль 44 компенсации движения может вычислять опорный блок посредством добавления остаточного блока к предиктивному блоку одного из опорных изображений в пределах одного из списков опорных изображений. Модуль 44 компенсации движения также может применять один или более интерполяционных фильтров к восстановленному остаточному блоку для вычисления субцелочисленных пиксельных значений для использования в оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к блоку предсказания со скомпенсированным движением, создаваемому модулем 44 компенсации движения для создания опорного блока для сохранения в памяти 64 опорных изображений. Опорный блок может быть использован модулем 42 оценки движения и модулем 44 компенсации движения в качестве опорного блока для внешнего предсказания блока в последующем видеокадре или изображении.
[0115] Видеокодер 20 с ФИГ. 2 представляет пример видеокодера, сконфигурированного для кодирования флага или другого синтаксического элемента для указания, когда опорные изображения перед изображением BLA в порядке декодирования могут не быть использованы в качестве опорных изображений согласно приемам этого раскрытия.
[0116] ФИГ. 3 является блок-схемой, иллюстрирующей примерный видеодекодер 30, который может реализовывать приемы, описанные для улучшенной поддержки адаптации потока и стыковки на основании изображений RAP с разорванной ссылкой, описанных выше по тексту. В примере с ФИГ. 3 видеодекодер 30 включает в себя модуль 80 энтропийного декодирования, модуль 81 предсказания, модуль 86 обратного квантования, модуль 88 обратного преобразования, сумматор 90, модуль 91 фильтра и память 92 опорных изображений. Модуль 81 предсказания включает в себя модуль 82 компенсации движения и модуль 84 внутреннего предсказания. Видеодекодер 30 может, в некоторых примерах, выполнять проход декодирования в общем обратный проходу кодирования, описанному относительно видеокодера 20 с ФИГ. 2.
[0117] Во время процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, который представляет видеоблоки закодированного слайса видео и ассоциированные синтаксические элементы от видеокодера 20. Видеодекодер 30 может принимать закодированный битовый поток видео от сетевой сущности 29. Сетевая сущность 29 может, например, быть сервером, осведомленным о среде элементом сети (MANE), видеоредактором/средством стыковки или другим таким устройством, сконфигурированным с возможностью реализации одного или более приемов, описанных выше по тексту. Сетевая сущность 39 может или может не включать в себя видеокодер 20. Как описано выше по тексту, некоторые из приемов, описанных в этом раскрытии, могут быть реализованы посредством сетевой сущности 29 до передачи сетью 29 закодированного битового потока видео видеодекодеру 30. В некоторых системах декодирования видео сетевая сущность 29 и видеодекодер 30 могут быть частями отдельных устройств, в то время как в других примерах, функциональность, описанная относительно сетевой сущности 29, может быть выполнена посредством аналогичного устройства, которое содержит видеодекодер 30.
[0118] Как пояснено выше по тексту, в некоторых примерах видеодекодер 30 может декодировать изображение RAP с разорванной ссылкой, такое как изображение BLA, или изображения, которые находятся после точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя, например опережающие изображения. Опережающие изображения не могут быть корректно декодированы, когда произвольный доступ возникает из изображения RAP с разорванной ссылкой.
[0119] В примере для предотвращения распространения ошибки от опорных изображений, которые могут не быть доступными в зависимости от того, где начинается декодирование, видеодекодер 30 может не использовать любое изображение, которое предшествует изображению RAP с разорванной ссылкой либо в порядке декодирования, либо порядке вывода (который включает в себя опережающие изображения), в качестве опорных изображений. Например, модуль 81 предсказания может не использовать любое изображение, хранимое в памяти 92 опорных изображений, которое предшествует изображению RAP с разорванной ссылкой, либо в порядке декодирования, либо порядке вывода (который включает в себя опережающие изображения), в качестве опорных изображений.
[0120] В различных примерах видеодекодер 30 может маркировать все опорные изображения в DPB в качестве неиспользуемых для ссылки до декодирования изображения BLA в качестве неиспользуемого для ссылки. Например, модуль 80 энтропийного декодирования, который может выполнять энтропийное и неэнтропийное декодирование, может маркировать опорные изображения в памяти 92 опорных изображений, иногда упоминаемой как буфер декодированных изображений (DPB), в качестве неиспользуемых для ссылки. Видеодекодер 30 (например, модуль 80 энтропийного декодирования) может определять, что текущее изображение является изображением BLA или BLC и маркировать опорные изображения в буфере хранения изображений в качестве неиспользуемых для ссылки перед декодированием изображения BLA или BLC. Определение, что текущее изображение является изображением BLA или BLC может включать в себя определение, что текущее изображение является изображением CRA, и определение, что текущее изображение является изображением RAP. Текущее изображение CRA является изображением BLA, когда текущее изображение является как изображением CRA, так и изображением RAP. В некоторых примерах это определение посредством декодера 30 могло бы быть сделано на основании изображения, имеющего тип единицы NAL BLA.
[0121] В другом примере при декодировании изображения BLA, декодер 30 может принимать флаг или синтаксический элемент в закодированном битовом потоке, например no_output_of_prior_pics_flag, так что ни одно из предшествующих изображений в DPB не выводятся. В некоторых примерах этот флаг может быть представлен раньше в заголовке слайса, у слайса изображения BLA, до энтропийного декодирования, так что он может быть декодирован легче и информация становится доступной раньше в процессе кодирования. Флаг или синтаксический элемент может быть декодирован посредством модуля 80 энтропийного декодирования, который может выполнять как энтропийное, так и неэнтропийное декодирование. Размещение флага или другого синтаксического элемента раньше в заголовке слайса до энтропийного кодирования может позволить для менее сложных устройств, таких как MANE, получать доступ к информации не требуя энтропийного декодера поскольку, например, отсутствует необходимость в энтропийном декодировании no_output_of_prior_pics_flag.
[0122] В примере видеодекодер 30 может размещать синтаксический элемент, например, no_output_of_prior_pics_flag, в битовом потоке для приема декодером. Синтаксический элемент может указывать, что буфер хранения изображений выгружен без вывода каких-либо изображений из буфера хранения изображений. Синтаксический элемент, когда установлен, может побуждать изображения перед текущим изображением в порядке декодирования и находящиеся в буфере хранения изображений во время декодирования текущего изображения к выгрузке из буфера хранения изображений без их вывода. В некоторых примерах синтаксический элемент может быть одним из множества синтаксических элементов. Дополнительно, множество синтаксических элементов может включать в себя один или более энтропийно кодированных синтаксических элементов заголовка слайса и один или более неэнтропийно кодированных синтаксических элементов заголовка слайса. В примере синтаксический элемент, который указывает, что буфер хранения изображений выгружен без вывода каких-либо изображений из буфера хранения изображений, включен в заголовок слайса, например, в качестве элемента u(1), до любого энтропийно кодированного синтаксического элемента заголовка слайса, например, до любого элемента ue(v). В некоторых примерах синтаксический элемент может быть no_output_of_prior_pics_flag и no_output_of_prior_pics_flag может быть включен в заголовок слайса сразу после first_slice_in_pic_flag и до любых энтропийно кодированных элементов. first_slice_in_pic_flag может быть флагом, который указывает, является ли слайс первым слайсом, в порядке декодирования, изображения.
[0123] В другом примере видеодекодер 30 может обрабатывать типы единицы NAL, назначенные для указания, когда изображения BLA имеют и не имеют опережающих изображений. Видеодекодер 30 может быть сконфигурирован с возможностью включать в состав типы единицы NAL, назначенные для указания, когда изображения BLA имеют и не имеют опережающих изображений. Например, модуль 80 энтропийного декодирования, который может выполнять энтропийное и неэнтропийное декодирование, может обрабатывать типы единицы NAL.
[0124] В одном примере, видеодекодер 30 (например, модуль 80 энтропийного декодирования) может декодировать изображения согласно одному из множества различных типов единицы (NAL) уровня абстракции сети. Множество типов единицы NAL включает в себя один или более из (1) кодированного слайса изображения доступа с разорванной ссылкой (BLA), в котором изображение BLA является изображением BLA с ассоциированными опережающими изображениями в битовом потоке, (2) кодированного слайса изображения BLA, в котором изображение BLA является изображением BLA с ассоциированными декодируемыми опережающими изображениями в битовом потоке и (3) кодированного слайса изображения BLA, в котором изображение BLA является изображением BLA без ассоциированных опережающих изображений в битовом потоке. В примере опережающее изображение содержит изображение, которое предшествует изображению произвольного доступа (RAP) в порядке отображения, но следует за изображением произвольного доступа в порядке декодирования.
[0125] Модуль 80 энтропийного декодирования видеодекодера 30 энтропийно декодирует битовый поток для генерирования квантованных коэффициентов, векторов движения и других синтаксических элементов. Модуль 80 энтропийного декодирования пересылает векторы движения и другие синтаксические элементы модулю 81 предсказания. Видеодекодер 30 может принимать синтаксические элементы на уровне слайса видео и/или уровне видеоблока.
[0126] Когда слайс видео закодирован как внутренне-кодированный (I) слайс, модуль 84 внутреннего предсказания модуля 81 предсказания может генерировать данные предсказания для видеоблока текущего слайса видео на основании сигнализированного режима внутреннего предсказания и данные из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр закодирован как внешне-кодированный (то есть, B, P или GPB) слайс, модуль 82 компенсации движения модуля 81 предсказания создает блоки для ссылки предсказания для видеоблока текущего слайса видео на основании векторов движения и других синтаксических элементов, принятых от модуля 80 энтропийного декодирования. Блоки для ссылки предсказания могут быть созданы из одного из опорных изображений в пределах одного из списков опорных изображений. Видеодекодер 30 может построить списки опорных кадров, Список 0 и Список 1, с использованием приемов построения по умолчанию на основании опорных изображений, сохраненных в памяти 92 опорных изображений.
[0127] Модуль 82 компенсации движения определяет информацию предсказания для видеоблока текущего слайса видео посредством синтаксического анализа векторов движения и других синтаксических элементов и использует информацию предсказания для создания блоков для ссылки предсказания для текущего декодируемого видеоблока. Например, модуль 82 компенсации движения использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутреннего или внешнего предсказания), используемого для кодирования видеоблоков слайса видео, типа слайса внешнего предсказания (например, B слайса, P слайса, или GPB слайса), информации построения для одного или более списков опорных изображений для слайса, векторов движения для каждого внешне-закодированного видеоблока слайса, статуса внешнего предсказания для каждого внешне-кодированного видеоблока слайса и другой информации для декодирования видеоблоков в текущем слайсе видео. Когда изображения в DPB маркируются как неиспользуемые для ссылки, никакие опорные изображения не доступны. Соответственно, видеодекодер 30 не будет способен декодировать опережающее изображение, ссылающееся на более раннее опорное изображение, для внешнего предсказания.
[0128] Модуль 82 компенсации движения также может выполнять интерполяцию на основании интерполяционных фильтров. Модуль 82 компенсации движения может использовать интерполяционные фильтры, в качестве используемых посредством видеокодера 20 во время кодирования видеоблоков для вычисления интерполированных значений для субцелочисленных пикселей опорных блоков. В этом случае, модуль 82 компенсации движения может определять интерполяционные фильтры, используемые посредством видеокодера 20, по принятым синтаксическим элементам и использовать интерполяционные фильтры для создания блоков для ссылки предсказания.
[0129] Модуль 86 обратного квантования обратно квантует, то есть деквантует, квантованные коэффициенты преобразования, обеспеченные в битовом потоке и декодированные посредством модуля 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного посредством видеокодера 20 для каждого видеоблока в слайсе видео для определения степени квантования и, аналогично, степени обратного квантования, которая должна быть применена. Модуль 88 обратного преобразования применяет обратное преобразование, например обратное DCT, обратное целочисленное преобразование или концептуально подобный процесс обратного преобразования, к коэффициентам преобразования для создания остаточных блоков в пиксельной области.
[0130] После того как модуль 82 компенсации движения генерирует предиктивный блок для текущего видеоблока на основании векторов движения и других синтаксических элементов, видеодекодер 30 формирует декодированный видеоблок посредством суммирования остаточных блоков из модуля 88 обратного преобразования с соответствующими блоками для ссылки предсказания, сгенерированной посредством модуля 82 компенсации движения. Сумматор 90 представляет компоненту или компоненты, которые выполняют эту операцию суммирования. Если желательно, контурные фильтры (или в контуре кодирования или после контура кодирования) также могут быть использованы для сглаживания пиксельных переходов или иначе улучшения качества видео. Модуль 91 фильтра предназначен для представления одного или более контурных фильтров, таких как деблокирующий фильтр, адаптивный контурный фильтр (ALF) и фильтр адаптивного к выборке смещения (SAO). Хотя модуль 91 фильтра проиллюстрирован на ФИГ. 3 как являющийся внутриконтурным фильтром, в других конфигурациях, модуль 91 фильтра может быть реализован как пост-контурный фильтр. Декодированные видеоблоки в данном кадре или изображении затем сохраняются в памяти 92 опорных изображений, которая хранит опорные изображения, используемые для последующей компенсации движения. Память 92 опорных изображений также хранит декодированное видео для более позднего представления на устройстве отображения, таком как устройство 32 отображения с ФИГ. 1.
[0131] Таким образом, видеодекодер 30 с ФИГ. 3 представляет пример видеодекодера, сконфигурированного для декодирования ID набора параметров, кодированных согласно приемам этого раскрытия.
[0132] ФИГ. 4 является блок-схемой, иллюстрирующей примерный набор устройств, которые формируют часть сети 100. В этом примере, сеть 10 включает в себя устройства 104A, 104B маршрутизации (устройства 104 маршрутизации) и устройство 106 транскодирования. Устройства 104 маршрутизации и устройство 106 транскодирования предназначены для представления небольшого числа устройств, которые могут формировать часть сети 100. Другие сетевые устройства, такие как коммутаторы, концентраторы, шлюзы, межсетевые экраны, мосты и другие такие устройства также могут быть включены в сеть 100. Более того, могут быть обеспечены дополнительные сетевые устройства в сетевом тракте между устройством-сервером 102 и клиентским устройством 108. Устройство-сервер 102 может соответствовать устройству-источнику 12 (ФИГ. 1), в то время как клиентское устройство 108 может соответствовать устройству-адресату 14 (ФИГ. 1), в некоторых примерах.
[0133] В общем устройства 104 маршрутизации реализуют один или более протоколов маршрутизации для обмена сетевыми данными по сети 100. В некоторых примерах устройства 104 маршрутизации могут быть сконфигурированы для выполнения операций кэширования или посредничества (proxy, прокси). Поэтому, в некоторых примерах, устройства 104 маршрутизации могут упоминаться как устройства-посредники. В общем, устройства 104 маршрутизации исполняют протоколы маршрутизации для обнаружения маршрутов по сети 100. Посредством исполнения таких протоколов маршрутизации устройство 104B маршрутизации может обнаруживать маршрут сети от себя к устройству-серверу 102 через устройство 104A маршрутизации.
[0134] Приемы этого раскрытия могут быть реализованы посредством сетевых устройств, таких как устройства 104 маршрутизации и устройство 106 транскодирования, но также могут быть реализованы посредством клиентского устройства 108. Таким образом, устройства 104 маршрутизации, устройство 106 транскодирования и клиентское устройство 108 представляют примеры устройств, сконфигурированных с возможностью выполнения приемов этого раскрытия. Более того, устройства с ФИГ. 1 и кодер, проиллюстрированный на ФИГ. 2, и декодер, проиллюстрированный на ФИГ. 3, также являются примерными устройствами, которые могут быть сконфигурированы с возможностью выполнения приемов этого раскрытия.
[0135] В качестве примеров, устройство-сервер 102 может включать в себя кодер для кодирования изображения или изображений, которые находятся после точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя, или другой точки адаптации потока. Например, ей могла бы быть точка переключения для адаптации скорости прохождения битов, частоты кадров (то есть, точка переключения временного слоя) или пространственного разрешения. Подобным образом, клиентское устройство 108 может декодировать изображение или изображения, которые находятся после точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя. Еще раз, ей могла бы быть точка переключения для адаптации скорости прохождения битов, частоты кадров (то есть, точка переключения временного слоя), или пространственного разрешения. Одно или более из этих изображений могут быть опережающими изображениями. Опережающие изображения не могут быть корректно декодированы на клиентском устройстве 108, когда возникает произвольный доступ из изображения BLA.
[0136] В примере для предотвращения распространения ошибки от опорных изображений, которые могут не быть доступными в зависимости от того, где начинается декодирование, клиентское устройство 108 может не применять изображения, сохраненные в буфере декодированных изображений (DPB), которые предшествуют изображению BLA либо в порядке декодирования, либо порядке вывода (который включает в себя опережающие изображения), в качестве опорных изображений.
[0137] В различных примерах, клиентское устройство 108 может маркировать все опорные изображения в DPB в качестве неиспользуемых для ссылки до декодирования изображения BLA. Например, клиентское устройство 108 может маркировать опорные изображения в буфере декодированных изображений (DPB) в качестве неиспользуемых для ссылки.
[0138] В другом примере устройство-сервер 102, клиентское устройство 108 или оба могут включать в себя синтаксический элемент или флаг в заголовке слайса и закодировать флаг в битовый поток, например, no_output_of_prior_pics_flag, так что ни одно из предшествующих изображений в DPB, обрабатываемых посредством видеодекодера 30 для декодирования опережающих изображений или вывода из DPB, например, для представления на мониторе. В некоторых примерах этот флаг может находиться раньше в заголовке слайса до энтропийного декодирования, так что он может быть декодирован легче и информация становится доступной раньше в процессе кодирования. В примере одно из этих устройств-элементов сети может конвертировать CRA в BLA когда, например, необходима стыковка или переключение канала или адаптация потока, например переключение временного слоя. Наличие флага, который может быть доступен без энтропийного кодирования, позволяет получать доступ к флагу элементам сети без возможности энтропийного декодирования.
[0139] Множество типов единицы NAL включает в себя один или более из (1) кодированного слайса изображения доступа с разорванной ссылкой (BLA), при этом изображение BLA является изображением BLA с ассоциированными опережающими изображениями в битовом потоке, (2) кодированного слайса изображения BLA, при этом изображение BLA является изображением BLA с ассоциированными декодируемыми опережающими изображениями в битовом потоке и (3) кодированного слайса изображения BLA, при этом изображение BLA является изображением BLA без ассоциированных опережающих изображений в битовом потоке. В примере опережающее изображение содержит изображение, которое предшествует изображению произвольного доступа (RAP) в порядке отображения, но следует за изображением произвольного доступа в порядке декодирования.
[0140] В различных примерах, устройства 104A, 104B маршрутизации и устройство 106 транскодирования, которые составляют сеть 100, также могут выполнять некоторую обработку над изображением или изображениями, которые находятся после точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя. Например, ею могла бы быть точка переключения для адаптации скорости прохождения битов, частоты кадров (то есть, точка переключения временного слоя), или пространственного разрешения. Как пояснено выше по тексту, одно или более из этих изображений могут быть опережающими изображениями, которые не могут быть корректно декодированы.
[0141] В примере одно или более из устройств 104A, 104B маршрутизации и устройство 106 транскодирования могут не использовать любое изображение, которое предшествует изображению CRA, либо в порядке декодирования, либо порядке вывода (который включает в себя опережающие изображения), в качестве опорных изображений. В другом примере одно или более из устройств 104A, 104B маршрутизации и устройства 106 транскодирования могут маркировать все опорные изображения в DPB в качестве неиспользуемых для ссылки до декодирования изображения BLA. Например, одно или более из устройств 104A, 104B маршрутизации и устройства 106 транскодирования могут маркировать опорные изображения в буфере декодированных изображений (DPB) в качестве неиспользуемых для ссылки. В другом примере одно или более устройств 104A, 104B маршрутизации и устройства 106 транскодирования или сервера потоковой передачи могут использовать флаг, например, no_output_of_prior_pics_flag, так что ни одно из предшествующих изображений в DPB не выводятся. Дополнительно, устройства 104A, 104B маршрутизации и устройство 106 транскодирования могут обрабатывать типы единицы NAL, назначенные для указания, когда изображения BLA имеют и не имеют опережающих изображений.
[0142] ФИГ. 5 является схемой, иллюстрирующей пример в соответствии с приемами, описанными в этом раскрытии. ФИГ. 5 иллюстрирует примеры случаев, когда опережающие изображения являются декодируемыми и недекодируемыми. Декодируемость опережающих изображений может быть основана на местоположении предиктивного блока. Дополнительно, декодируемость опережающих изображений может быть основана на том, является ли текущее изображение CRA изображением CRA, которое не является изображением BLA, или текущее изображение CRA является изображением CRA, которое также является изображением BLA. (Изображения BLA являются поднабором изображений CRA.)
[0143] Часть 200 c ФИГ. 5 иллюстрирует серию изображений в порядке декодирования. Изначально, видеодекодер 30 (ФИГ. 1 и 3) или клиентское устройство 108 (ФИГ. 4), например, могут декодировать изображение RAP в местоположении 202 в качестве первого изображения в видеопоследовательности. Видеодекодер 30 или клиентское устройство 108 могут затем декодировать изображение или часть изображения, которая может действовать как опорное изображение в местоположении 204. Как проиллюстрировано на ФИГ. 5, местоположение 204 является возможным местоположением опорного изображения в порядке декодирования. Если опорное изображение расположено в местоположении 204 и изображение в местоположении 206 является изображением CRA, которое не является изображением BLA, затем опережающее изображение в местоположении 208 будет декодируемым. Наоборот, если опорное изображение расположено в местоположении 204 и изображение в местоположении 206 является изображением CRA, которое также является изображением BLA, тогда опережающее изображение в местоположении 208 не будет декодируемым. (Изображения BLA являются поднабором изображений CRA.)
[0144] Если изображение RAP в местоположении 202 является изображением RAP, где начинается декодирование, и текущее изображение CRA в местоположении 206 не является изображением BLA тогда, как описано выше по тексту, опережающее изображение в местоположении 208 является декодируемым. Наоборот, если текущее изображение CRA в местоположении 206 является RAP, тогда текущее изображение CRA в местоположении 206 также является изображением BLA и опережающее изображение в местоположении 208 не является декодируемым. Это происходит потому, что предиктивный блок в местоположении 204 не доступен для изображения BLA, которое является текущим изображением CRA в местоположении 206. Соответственно, предиктивный блок в местоположении 204 может быть (1) маркирован как неиспользуемый для ссылки и (2) no_output_of_prior_pics_flag может указывать, что предшествующие изображения, вплоть до и включающие в себя опережающее изображение в местоположении 208, не должны выводиться.
[0145] Как проиллюстрировано на ФИГ. 5, местоположение 210 является другим возможным местоположением опорного изображения в порядке декодирования. Если опорное изображение расположено в местоположении 210, тогда опережающее изображение в местоположении 208 будет декодируемым.
[0146] Часть 212 c ФИГ. 5 иллюстрирует серию изображений в порядке вывода. Изначально, видеодекодер 30 (ФИГ. 1 и 3) или клиентское устройство 108 (ФИГ. 4) (могут декодировать) изображение 202 RAP. Видеодекодер 30 или клиентское устройство 108 могут затем декодировать изображение или часть изображения, которая может действовать как предиктивный блок в местоположении 204. Как проиллюстрировано на ФИГ. 5, местоположение 204 является возможным местоположением предиктивного блока в порядке вывода.
[0147] В порядке вывода опережающее изображение 208 может выводиться до текущего изображения CRA в местоположении 206, как проиллюстрировано на ФИГ. 5. Как проиллюстрировано на ФИГ. 5, местоположение 210 является другим возможным местоположением предиктивного блока в порядке вывода.
[0148] ФИГ. 6 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования изображений RAP в соответствии с одним или более примерами, описанными в этом раскрытии. Как проиллюстрировано на ФИГ. 6, в некоторых примерах, видеокодер, например видеокодер 20 или видеодекодер 30, могут кодировать изображение BLA для точки произвольного доступа или точки адаптации потока, такой как точка переключения временного слоя в видеопоследовательности. Например, ею могла бы быть точка переключения для адаптации скорости прохождения битов, частоты кадров или пространственного разрешения. Изображение BLA может включать в себя одно или более опережающих изображений. Опережающие изображения не могут быть корректно декодированы (например, посредством декодера 30, MANE или другого устройства декодирования), когда произвольный доступ возникает из изображения BLA.
[0149] В примере для предотвращения распространения ошибки от опорных изображений, которые могут не быть доступными в зависимости от того, где начинается декодирование, видеокодер может не использовать любое изображение, которое предшествует изображению BLA, либо в порядке декодирования, либо порядке вывода (который включает в себя опережающие изображения), в качестве опорных изображений.
[0150] Например, видеодекодер 30 может принимать и декодировать синтаксический элемент, который указывает, что буфер хранения изображений выгружен без вывода любых изображений из буфера (600) хранения изображений. Синтаксический элемент может быть включен в закодированный битовый поток видео посредством кодера 20 или промежуточного элемента сети. Видеодекодер 30 может определять, указывает ли синтаксический элемент, что не должно возникать вывода предшествующих изображений, например, видеодекодер 30 может проверять синтаксический элемент (602) для определения, установлен ли он, то есть равен 1. Когда видеодекодер 30 принимает синтаксический элемент, который установлен, видеодекодер 30 может побуждать изображения перед текущим изображением в порядке декодирования и находящиеся в буфере хранения изображений во время декодирования текущего изображения к выгрузке из буфера хранения изображений без их вывода (604).
[0151] В некоторых примерах синтаксический элемент может быть одним из множества синтаксических элементов. Дополнительно, множество синтаксических элементов может включать в себя энтропийно кодированные синтаксические элементы заголовка слайса и неэнтропийно кодированные синтаксические элементы заголовка слайса. В примере синтаксический элемент, указывающий, что буфер хранения изображений выгружен без вывода любых изображений из буфера декодированных изображений, включен в заголовке слайса до любого энтропийно кодированного синтаксического элемента заголовка слайса. В другом примере синтаксический элемент, указывающий, что данные в буфере хранения изображений должны быть проигнорированы и/или перезаписаны без вывода любых изображений из буфера хранения изображений, включен в заголовке слайса до любого энтропийно кодированного синтаксического элемента заголовка слайса. В некоторых примерах синтаксический элемент может быть no_output_of_prior_pics_flag и no_output_of_prior_pics_flag может быть включен в заголовок слайса сразу после first_slice_in_pic_flag. first_slice_in_pic_flag может быть флагом, который указывает, является ли слайс первым слайсом, в порядке декодирования, изображения.
[0152] ФИГ. 7 является блок-схемой последовательности операций, иллюстрирующей примерный способ в соответствии с одним или более примерами, описанными в этом раскрытии. В проиллюстрированном примере, видеокодер может определять, что текущее изображение является изображением CRA (700). Видеокодер также может определять, что текущее изображение является изображением RAP (702). Видеокодер может определять, что текущее изображение является изображением BLA (700). В других примерах, видеокодер может использовать тип единицы NAL для определения, является ли текущее изображение изображением BLA.
[0153] В различных примерах, видеокодер может маркировать все опорные изображения в DPB в качестве неиспользуемых для ссылки до декодирования изображения BLA. Например, видеодекодер 30 может маркировать опорные изображения в памяти 92 опорных изображений, иногда упоминаемой как буфер декодированных изображений (DPB), в качестве неиспользуемых для ссылки. Соответственно, изображения не будут использованы для внешнего кодирования, что будет избегать возможных ошибок, и в некоторых примерах может решать проблемы с пространственной адаптацией. Дополнительно, в общем, эти изображения не будут выводиться на, например, монитор или экран, где они могут быть просмотрены.
[0154] Видеодекодер 30 может определять, что текущее изображение является изображением BLA и маркировать опорное изображение в буфере хранения изображений в качестве неиспользуемого для ссылки перед декодированием изображения BLA. В примере маркирование опорного изображения в буфере хранения изображений может возникать, когда изображение BLA содержит недекодируемое изображение BLA, которое может быть определено в некоторых примерах, на основании типа единицы NAL. В некоторых примерах одно или более из (1) маркирования изображений в DPB в качестве неиспользуемых для ссылки, (2) использования синтаксического элемента, такого как no_output_of_prior_pics_flag и (3) использования типов единицы NAL, которые указывают изображения BLA, может быть использовано, независимо или в любой комбинации.
[0155] ФИГ. 8 является блок-схемой последовательности операций, иллюстрирующей примерный способ в соответствии с одним или более примерами, описанными в этом раскрытии. Видеокодер может обрабатывать типы единицы NAL, назначенные для указания, когда изображения BLA имеют и не имеют опережающих изображений. Видеокодер может быть сконфигурирован с возможностью включать в состав типы единицы NAL, назначенные для указания, когда изображения BLA имеют и не имеют опережающих изображений. Например, в одном стандарте, включаются в состав типы единицы NAL 16, BLA_W_LP (BLA с опережающим изображением); 17, BLA_W_DLP (BLA с декодируемым опережающим изображением); и 18, BLA_N_LP (BLA без опережающего изображения).
[0156] В одном примере, видеокодер может кодировать изображения согласно одному из множества различных типов единицы уровня абстракции сети (NAL), включающих в себя одно или более из следующего. Например, видеокодер может определять, что изображение BLA не имеет ассоциированных опережающих изображений (800), и кодировать кодированный слайс изображения BLA или все изображение BLA с использованием типа единицы NAL, который указывает, что изображение BLA является изображением BLA без ассоциированных опережающих изображений в битовом потоке (802). Видеокодер может определять, что изображение BLA имеет ассоциированные декодируемые опережающие изображения (804), и кодировать кодированный слайс или все изображение BLA с использованием типа единицы NAL, который указывает, что изображение BLA является изображением BLA с ассоциированными декодируемыми опережающими изображениями в битовом потоке (806). Видеокодер определяет, что изображение BLA имеет ассоциированные опережающие изображения (808) и может кодировать кодированный слайс изображения BLA или все изображение BLA с использованием типа единицы NAL, который указывает, что изображение BLA является изображением BLA с ассоциированными опережающими изображениями в битовом потоке (810). В примере если видеодекодер 30 обнаруживает тип единицы NAL BLA, тогда видеодекодер 30 может, например, маркировать изображения в DPB в качестве неиспользуемых для ссылки.
[0157] В некоторых примерах одно или более из (1) маркирования изображений в DPB в качестве неиспользуемых для ссылки, (2) использования синтаксического элемента, такого как no_output_of_prior_pics_flag и (3) использования типов единицы NAL, которые указывают изображения BLA, может быть использовано, независимо или в любой комбинации. Например, в некоторых случаях все три из упомянутого могут быть использованы. В других примерах, примерные типы единицы NAL могли бы быть использованы в сочетании с маркированием изображений в DPB в качестве неиспользуемых для ссылки. В другом примере могли бы быть использованы синтаксический элемент отсутствия вывода предшествующих изображений и маркирование изображений в качестве неиспользуемых для ссылки. В другом примере могли бы быть использованы синтаксические элементы отсутствия вывода предшествующих изображений и типы единицы NAL.
[0158] Как используется в этом документе, BLC относится к Чистому произвольному доступу с разорванной ссылкой, BLCL относится к изображению BLC с ассоциированными опережающими изображениями в битовом потоке и BLCNL относится к изображению BLC без ассоциированных опережающих изображений в битовом потоке. Как пояснено в этом документе, изображения BLC, в общем, являются такими же, как изображения BLA. CRA относится к Чистому Произвольному Доступу, CRAL относится к изображению CRA с ассоциированными опережающими изображениями в битовом потоке и CRANL относится к изображению CRA без ассоциированных опережающих изображений в битовом потоке. IDR относится к Мгновенному Обновлению Декодирования, LPR относится к опережающему изображению, ассоциированному с изображением точки произвольного доступа, NSP относится к Плоскости Без Особенностей, RAP относится к Точке Произвольного Доступа и RPS относится к Набору Опорных Изображений. Как используется в этом документе, TLA относится к Доступу Временного Слоя, TLAL относится к изображению TLA, которое также является изображением LRP, TLANL относится к изображению TLA, которое не является изображением LRP.
[0159] Единица доступа BLA относится к единице доступа, в которой кодированное изображение является изображением BLA. Изображение BLC является изображением RAP, в котором заголовок слайса кодированных слайсов включает в себя синтаксис RPS, в то время как RPS выводится как пустой без использования синтаксиса RPS. Единица доступа BLCL является единицей доступа, в которой кодированное изображение является изображением BLCL. Изображения BLCL являются изображениями BLA, для которых ассоциированные изображения LPR представлены в битовом потоке. В некоторых примерах единица доступа BLCL может быть эквивалентна комбинации BLA_W_DLP и BLA_W_LP. Единица доступа BLCNL является единицей доступа, в которой кодированное изображение является изображением BLCNL. В некоторых примерах единица доступа BLCNL может быть эквивалентна BLA_N_LP. Изображения BLCNL являются изображениями BLA, для которых ассоциированные изображения LPR не представлены в битовом потоке.
[0160] В примере единица доступа CRA является единицей доступа, в которой кодированное изображение является изображением CRA. Изображения CRA являются изображением RAP, в котором заголовок слайса кодированных слайсов включает в себя синтаксис RPS и синтаксис RPS используется для выведения RPS. Единица доступа CRAL является единицей доступа, в которой кодированное изображение является изображением CRAL. Изображения CRAL являются изображением CRA, для которого ассоциированные изображения LPR представлены в битовом потоке. Единица доступа CRANL является единицей доступа, в которой кодированное изображение является изображением CRANL. Изображения CRANL являются изображениями CRA, для которых ассоциированные изображения LPR не представлены в битовом потоке.
[0161] В примере единица доступа IDR является единицей доступа, в которой кодированное изображение является изображением IDR. Изображения IDR являются изображениями RAP, в которых заголовок слайса кодированных слайсов не включает в себя синтаксис RPS и RPS выводится как пустой.
[0162] В примере если все предшествующие единицы доступа в порядке декодирования не представлены, при условии, что каждый набор параметров, к которому обращается кодированное изображение и все последующие кодированные изображения в порядке декодирования, представлен до его активации, изображение IDR и все последующие кодированные изображения в порядке декодирования могут быть корректно декодированы. В качестве альтернативы, в другом примере, изображения IDR могут быть такими же, как заданы в HEVC с дополнением предшествованием.
[0163] В других примерах, изображение IDR может быть задано следующим образом плюс предшествующее примечание, изображение IDR может быть кодированным изображением, содержащим только I слайсы. Дополнительно, для примерного изображения IDR все кодированные изображения, которые следуют за изображением IDR в порядке декодирования, не используют внешнее предсказание от любого изображения, которое предшествует изображению IDR в порядке декодирования. В примере любое изображение, которое предшествует изображению IDR в порядке декодирования, также предшествует изображению IDR в порядке вывода.
[0164] Опережающее изображение является кодированным изображением, которое не является изображением RAP и которое следует за некоторым другим конкретным изображением в порядке декодирования и предшествует конкретному изображению в порядке вывода. Изображение LPR является опережающим изображением, которое ассоциировано с изображением RAP или опережающим изображением изображения RAP.
[0165] Счет порядка изображений может представлять собой переменную, которая ассоциирована с каждым кодированным изображением и имеет значение, которое увеличивается с увеличением позиции изображения в порядке вывода относительно предыдущего изображения RAP в порядке декодирования.
[0166] В примере единица доступа RAP является единицей доступа, в которой кодированное изображение является изображением RAP. Изображение RAP может быть кодированным изображением, содержащим только I слайсы. Для изображения RAP, все кодированные изображения, которые следуют за изображением RAP как в порядке декодирования, так и порядке вывода, не используют внешнее предсказание от любого изображения, которое предшествует изображению RAP, либо в порядке декодирования, либо порядке вывода. Вывод любого изображения, которое предшествует изображению RAP в порядке декодирования, должен предшествовать выводу изображения RAP. Если все предшествующие единицы доступа в порядке декодирования не представлены, при условии, что каждый набор параметров, к которому обращается кодированное изображение и все последующие кодированные изображения в порядке декодирования, представлен до его активации, изображение RAP и все последующие кодированные изображения как в порядке декодирования, так и порядке вывода, могут быть корректно декодированы.
[0167] В качестве альтернативы, изображение RAP может быть задано в соответствии с предшествующим обсуждением и следующим образом. Изображение RAP может быть кодированным изображением, содержащим только I слайсы и для которого все кодированные изображения, которые следуют за изображением RAP как в порядке декодирования, так и порядке вывода, не используют внешнее предсказание от любого изображения, которое предшествует изображению RAP, либо в порядке декодирования, либо порядке вывода. Любое изображение, которое предшествует изображению RAP в порядке декодирования, также предшествует изображению RAP в порядке вывода.
[0168] Единица доступа TLA является единицей доступа, в которой кодированное изображение является изображением TLA. Изображение TLA является кодированным изображением, для которого изображение TLA и все кодированные изображения с temporal_id большим или равным temporal_id изображения TLA. Изображение TLA, которое следует за изображением TLA в порядке декодирования, не должно использовать внешнее предсказание от любого изображения с temporal_id большим или равным temporal_id изображения TLA, которое предшествует изображению TLA в порядке декодирования. Единица доступа TLAL является единицей доступа, в которой кодированное изображение является изображением TLA.
[0169] В некоторых примерах могут быть заданы следующие отличающиеся типы единицы NAL VCL. В качестве первого примера, тип единицы NAL может быть обеспечен для кодированного слайса изображения IDR (например, nal_unit_type=5). Для этого типа единицы NAL, понятие изображения IDR применяется в WD6 HEVC. Уникальная особенность этого типа единицы NAL VCL, по сравнению с другими типами единиц NAL VCL, заключается в том, что никакой синтаксис набора опорных изображений (RPS) не включается в заголовок слайса.
[0170] Некоторые примеры включают в себя кодированный слайс изображения BLCNL (изображения BLC без ассоциированных опережающих изображений в битовом потоке, например, nal_unit_type=2). По сравнению с кодированным слайсом изображения IDR, кодированный слайс изображения BLCNL включает в себя синтаксис RPS в заголовке слайса, но синтаксис RPS не используется для выведения RPS, а скорее все поднаборы RPS выводятся пустыми.
[0171] Некоторые примеры включают в себя кодированный слайс изображения BLCL (изображения BLC с ассоциированными опережающими изображениями в битовом потоке, например, nal_unit_type=3). По сравнению с изображением BLCNL, имеются опережающие изображения, ассоциированные с изображением BLCL в битовом потоке.
[0172] Некоторые примеры включают в себя кодированный слайс изображения CRANL (CRA без ассоциированных опережающих изображений в битовом потоке, например, nal_unit_type=15). По сравнению с кодированным слайсом изображения BLCNL, кодированный слайс изображения CRANL включает в себя синтаксис RPS в заголовке слайса, и синтаксис RPS используется для выведения RPS.
[0173] Некоторые примеры включают в себя кодированный слайс изображения CRAL (изображения CRA с ассоциированными опережающими изображениями в битовом потоке, например, nal_unit_type=4). По сравнению с изображением CRANL, имеются опережающие изображения, ассоциированные с изображением CRAL в битовом потоке.
[0174] Некоторые примеры включают в себя кодированный слайс изображения TLANL (изображения TLA, которое не является изображением LFR, например, nal_unit_type=16). Некоторые примеры включают в себя кодированный слайс изображения TLAL (изображения TLA, которое также является изображением LPR, например, nal_unit_type=17). Некоторые примеры включают в себя кодированный слайс изображения NSP (изображения плоскости без особенностей - никакое из вышеуказанных, nal_unit_type=1).
[0175] До декодирования данные слайса каждого изображения (BLCL или BLCNL) изображения BLC, все опорные изображения в буфере декодированных изображений (DPB) должны быть маркированы как "неиспользуемые для ссылки" посредством декодера 30, как описано выше по тексту. Только исходя из этого, текущий процесс декодирования, заданный в настоящее время в WD 6 HEVC для опережающих изображений изображения CRA, который начинает битовый поток, может быть непосредственно применен посредством декодера 30 для опережающих изображений у изображения BLA, независимо от того, изменяет ли изображение BLA пространственное разрешение.
[0176] Без вышеуказанного, если изображение BLA не изменяет пространственное разрешение, текущий процесс декодирования, точно определенный в настоящее время в WD 6 HEVC для опережающих изображений изображения CRA, которое начинает битовый поток, может быть непосредственно применен посредством декодера 30 для опережающих изображений изображения BLA. Однако, если изображение BLA изменяет пространственное разрешение, тогда текущий процесс декодирования, точно определенный в настоящее время в WD 6 HEVC для опережающих изображений изображения CRA, которое начинает битовый поток, не может быть непосредственно применен для опережающих изображений изображения BLA, так как может появляться ситуация, что пространственное разрешение отличается для текущего изображения и опорного изображения для текущего изображения.
[0177] Одним способом для того, чтобы гарантировать то, что все опорные изображения в DPB должны быть маркированы как "неиспользуемые для ссылки" до декодирования данных слайса каждого изображения BLA, является выведение RPS каждого изображения BLA пустым, независимо от того, указывает ли сигнализация RPS в заголовке слайса непустой RPS. Например, даже если есть RPS, видеодекодер 30 может переопределять это и выводить или рассматривать RPS в качестве пустого, если изображение является изображением BLA.
[0178] Фактически, если сигнализация RPS в заголовке слайса действительно указывает пустой RPS для изображения BLA или изображения CRA (CRAL или CRANL), тогда изображение должно быть кодировано как изображение IDR.
[0179] В некоторых примерах изображение RAP может быть задано как кодированное изображение, содержащее только I слайсы. Для изображения RAP, все кодированные изображения, которые следуют за изображением RAP как в порядке декодирования, так и порядке вывода, не используют внешнее предсказание от любого изображения, которое предшествует изображению RAP, либо в порядке декодирования, либо порядке вывода. Дополнительно, вывод любого изображения, которое предшествует изображению RAP в порядке декодирования, может предшествовать выводу изображения RAP.
[0180] Чтобы гарантировать то, что вывод любого изображения, которое предшествует изображению RAP в порядке декодирования, должен предшествовать выводу изображения RAP, одним способом является установка видеокодером 20 no_output_of_prior_pics_flag равным 1 в кодированном битовом потоке, передаваемом к, например, видеодекодеру 30, как пояснено выше по тексту. В другом примере видеодекодер 30 может логически выводить, что no_output_of_prior_pics_flag должен быть равен 1 (независимо от его значения) для изображения BLA. Таким образом, обеспечена возможность операций стыковки в изображении BLA, в котором в состыкованном битовом потоке значение POC изображения более раннего, чем изображение BLA, больше, чем значение POC изображения BLA. В частности, значение POC изображения BLA выводится как равное его LSB POC (посредством предположения, что MSB POC равен 0), вышеуказанное может легко произойти. Другой способ для того, чтобы гарантировать это, заключается в том, чтобы убедиться, что моменты времени вывода изображений, которые предшествуют изображению BLA в порядке декодирования раньше момента вывода изображения BLA.
[0181] Некоторые примеры позволяют видеокодеру 20 и/или средству стыковки битовых потоков определять, какой из способов, описанных в этом документе, использовать. Соответственно, видеокодер 20, например, может включать в себя no_output_of_prior_pics_flag в заголовке слайса изображений BLA в некоторых примерах. В других примерах, видеокодер 20 может включать в себя типы единицы NAL, которая указывает, могут ли изображения, сохраненные в буфере на видеодекодере 30, быть использованы для ссылки. Соответственно, видеодекодер 30 может маркировать изображения как неиспользуемые для ссылки, например, когда использование таких изображений при декодировании будет давать в результате некорректное декодирование изображения.
[0182] Для обеспечения возможности простой перезаписи изображения CRA в BLA посредством элемента сети, в дополнение к помещению no_output_of_prior_pics_flag в заголовок слайса изображения CRA, он также может быть включен в заголовок слайса настолько раньше, насколько это возможно. Это может быть до любых энтропийно кодированных параметров заголовка слайса, например, сразу после first_slice_in_pic_flag в некоторых примерах, как пояснено выше по тексту.
[0183] В примере два следующих друг за другом изображения BLA имеют одинаковый LSB POC и их можно различать только посредством random_access_pic_id (или переименованной в rap_pic_id). Таким образом, использование кодирования с фиксированной длиной кодового слова для rap_pic_id и также помещение включенным в заголовок слайса настолько раньше, насколько это возможно, предпочтительно не после каких-либо энтропийно кодированных параметров заголовка слайса, например, сразу после first_slice_in_pic_flag и no_output_of_prior_pics_flag, например, как для изображений CRA, так и изображений BLA, может быть предпочтительным. Другие синтаксические элементы заголовка слайса, которые могут быть использованы для обнаружения границ изображения, например, pic_parameter_set_id и LSB POC (то есть, pic_order_cnt_lsb) могут быть подобными.
[0184] Все наборы параметров конкретного типа (например, SPS) или все типы могут быть представлены в начале битового потока, то есть включенными в первую единицу доступа в битовом потоке. Если это так, то удобно осуществлять выборку всех наборов параметров конкретного типа и отправлять их вне полосы. Например, кодер может включать в Протокол Описания Сеанса (SDP) параметр, который используется во время согласования сеанса. Поэтому для кодера может быть полезно включать указание в битовый поток, что все наборы параметров конкретного типа или всех типов представлены в начале битового потока. Указание может быть включено в сообщение SEI, разделитель единиц доступа или набор параметров. Например, отличающийся тип единицы NAL может быть использован для SPS, набора параметров изображения (PPS) и набора параметров адаптации (APS) для указания, что все SPS (или PPS или APS) представлены в начале битового потока.
[0185] Синтаксический элемент slice_type может быть условно представлен в заголовке слайса, на основании того, указывает ли тип единицы NAL, что изображение, содержащее слайс является изображением IDR, изображением CRA или изображением BLA. Например, если тип единицы NAL указывает, что изображение, содержащее слайс, является изображением IDR, изображением CRA или изображением BLA, slice_type не представляется в заголовке слайса. Иначе, кодер вставляет slice_type в заголовок слайса. Когда не представлено, значение slice_type указывает, что слайс является I слайсом.
[0186] ФИГ. 9 является блок-схемой последовательности операций, иллюстрирующей примерный способ для декодирования слайса в соответствии с одним или более примерами, описанными в этом раскрытии. В одном примере, видеодекодер 30 может декодировать видеоданные, включающие в себя прием слайса текущего изображения, которое должно быть декодировано, для последовательности видеоданных (900). Видеодекодер 30 может принимать, в заголовке слайса у слайса, по меньшей мере один энтропийно кодированный синтаксический элемент и по меньшей мере один неэнтропийно кодированный синтаксический элемент. Неэнтропийно кодированный синтаксический элемент может находиться до энтропийно кодированного синтаксического элемента в заголовке слайса. Дополнительно, неэнтропийно кодированный синтаксический элемент может указывать, должны ли изображения перед текущим изображением в порядке декодирования быть выгружены из буфера хранения изображений без их вывода (902). В одном примере, синтаксический элемент может быть no_output_of_prior_pics_flag. no_output_of_prior_pics_flag может быть установлен в "1", например, для указания, когда изображения перед текущим изображением в порядке декодирования должны быть выгружены из буфера хранения изображений без их вывода. Видеодекодер 30 может декодировать слайс на основании неэнтропийно кодированного синтаксического элемента (904).
[0187] ФИГ. 10 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования слайса в соответствии с одним или более примерами, описанными в этом раскрытии. Кодер 20 может закодировать видеоданные. Видеокодер 20 может закодировать слайс текущего изображения для последовательности видеоданных (1000).
[0188] Видеокодер 20 кодирует, в заголовке слайса у слайса, по меньшей мере один энтропийно закодированный синтаксический элемент и по меньшей мере одни неэнтропийно кодированный синтаксический элемент, при этом неэнтропийно закодированный синтаксический элемент находится до энтропийно закодированного синтаксического элемента в заголовке слайса и указывает, должны ли изображения перед текущим изображением в порядке декодирования быть выгружены из буфера хранения изображений без их вывода (1002). В одном примере, синтаксическим элементом может быть no_output_of_prior_pics_flag. no_output_of_prior_pics_flag может быть установлен в "1", например, для указания, когда изображения перед текущим изображением в порядке декодирования должны быть выгружены из буфера хранения изображений без их вывода.
[0189] В одном или более примерах, описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Если реализовано в программном обеспечении, функции могут быть сохранены на или переданы по, в качестве одной или более инструкций или кода, считываемому компьютером носителю и исполнены посредством основанного на аппаратном обеспечении блока обработки. Считываемые компьютером носители могут включать в себя считываемый компьютером носитель данных, который соответствует материальному носителю, такому как носители данных, или среде связи, включающей в себя среду, которая содействует переносу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители в общем могут соответствовать (1) материальным считываемым компьютером носителям данных, которые являются невременными или (2) среде связи, такой как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может быть осуществлен доступ посредством одного или более компьютеров или одного или более процессоров для извлечения инструкций, кода и/или структур данных для реализации приемов, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
[0190] Во все еще других примерах, это раскрытие предусматривает считываемый компьютером носитель, содержащий структуру данных, сохраненную на нем, в котором структура данных включает в себя закодированный битовый поток в соответствии с этим раскрытием. В частности, структуры данных могут включать в себя проекты единицы NAL, описанные в этом документе.
[0191] Посредством примера, а не ограничения, такие считываемые компьютером носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое оптическое дисковое средство хранения, магнитное дисковое средство хранения или другие магнитные устройства хранения, флэш-память или любой другой носитель, который может быть использован для хранения желаемого программного кода в форме инструкций или структур данных и который может быть доступным посредством компьютера. Также, любое соединение надлежащим образом именуется считываемым компьютером носителем. Например, если инструкции передаются с веб-сайта, сервера, или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии связи (DSL), или беспроводных технологий, таких как инфракрасные, радио и микроволновые, то коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасные, радио и микроволновые включаются в определение носителя. Следует понимать, однако, что считываемые компьютером носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, но взамен направлены на невременные, материальные носители хранения. Диск (disk) и диск (disc), в качестве используемого в этом документе, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), флоппи диск и Blu-ray диск, где диски обычно воспроизводят данные магнитным образом, тогда как диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеуказанного также должны быть включены в объем считываемых компьютером носителей.
[0192] Инструкции могут быть исполнены одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), или другими эквивалентными интегрированными или дискретными схемами логики. Соответственно, термин "процессор", в качестве используемого в этом документе, может относиться к любой из вышеописанных структур или любой другой структуре, подходящей для реализации приемов, описанных в этом документе. В дополнение, в некоторых аспектах, функциональность, описанная в этом документе, может быть обеспечена в специализированных модулях аппаратного обеспечения и/или программного обеспечения, сконфигурированных для кодирования и декодирования, или включена в объединенный кодек. Также, приемы могут быть полностью реализованы в одной или более схемах или логических элементах.
[0193] Приемы этого раскрытия могут быть реализованы в широком многообразии устройств или аппаратов, в том числе беспроводные телефонные трубки, интегральная схема (IC) или набор IC (например, набор интегральных схем). Различные компоненты, модули или блоки описаны в этом раскрытии, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных с возможностью выполнения раскрытых приемов, но необязательно требуют реализации посредством различных блоков аппаратного обеспечения. Точнее, как описано выше по тексту, различные блоки могут быть объединены в блок аппаратного обеспечения кодека или обеспечены совокупностью взаимодействующих блоков аппаратного обеспечения, в том числе один или более процессоров, как описано выше по тексту, в сочетании с подходящим программным обеспечением и/или программно-аппаратным обеспечением.
[0194] Были описаны различные примеры. Эти и другие примеры находятся в объеме нижеследующей формулы изобретения.