[0001] ДАННАЯ ЗАЯВКА ИСПРАШИВАЕТ ПРИОРИТЕТ:
предварительной заявки США № 61/665,667, поданной 28 Июня, 2012, полное содержимое которой включено в данный документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] В целом данное раскрытие относится к обработке видеоданных и, более конкретно, к приемам для поддержки произвольного доступа в сжатых видеопотоках.
УРОВЕНЬ ТЕХНИКИ
[0003] Возможности цифрового видео могут быть включены в широкий диапазон устройств, включающих в себя средства цифрового телевидения, системы цифрового прямого вещания, системы беспроводного вещания, карманные персональные компьютеры (PDA), переносные или настольные компьютеры, планшетные компьютеры, средства чтения электронных книг, цифровые камеры, устройства цифровой записи, цифровые мультимедийные проигрыватели, видеоигровые устройства, консоли видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства видеоконференцсвязи, устройства потоковой передачи видео, транскодеры, маршрутизаторы или другие сетевые устройства, и тому подобное. Цифровые видеоустройства реализуют приемы сжатия видео, подобные тем, что описаны в стандартах, определенных в MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Части 10, Усовершенствованного Видеокодирования (AVC), стандарте Высокоэффективного Видеокодирования (HEVC), разрабатываемом в настоящее время, частных стандартах, открытых форматах сжатия видео, таких как VP8, и расширениях таких стандартов, приемов или форматов. Видеоустройства могут передавать, принимать, кодировать, декодировать, и/или сохранять цифровую видеоинформацию более эффективно посредством реализации таких приемов сжатия видео.
[0004] Приемы сжатия видео выполняют пространственное (внутри изображения) предсказание и/или временное (между изображениями) предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям. Для кодирования видео на основе блоков видеослайс (то есть видеоизображение или часть видеоизображения) может быть разделен на видеоблоки, которые могут также упоминаться как древовидные блоки, единицы (CU) кодирования и/или узлы кодирования. Видеоблоки во внутренне кодируемом (I) слайсе изображения кодируются с использованием пространственного предсказания относительно опорных выборок в соседних блоках в том же самом изображении. Видеоблоки во внешне кодируемом (P или B) слайсе изображения могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в том же самом изображении или временное предсказание относительно опорных выборок в других опорных изображениях. Изображения могут упоминаться как кадры, и опорные изображения могут упоминаться как опорные кадры.
[0005] Пространственное или временное предсказание имеет результатом предиктивный блок для блока, который должен быть кодирован. Остаточные данные представляют пиксельные разности между исходным блоком, который должен быть кодирован, и предиктивным блоком. Внешне кодируемый блок кодируется в соответствии с вектором движения, который указывает на блок опорных выборок, формирующих предиктивный блок, и остаточными данными, указывающими разность между кодируемым блоком и предиктивным блоком. Внутренне кодируемый блок кодируется согласно режиму внутреннего кодирования и остаточным данным. Для дополнительного сжатия остаточные данные могут быть преобразованы из пиксельной области в область преобразования, имея результатом остаточные коэффициенты преобразования, которые затем могут быть квантованы. Квантованные коэффициенты преобразования, изначально упорядоченные в двумерном массиве, могут быть просканированы для создания одномерного вектора коэффициентов преобразования и энтропийное кодирование может быть применено для достижения еще большего сжатия.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] В одном примере приемы данного раскрытия относятся к обработке изображения чистого произвольного доступа (CRA) как изображения доступа с разорванной ссылкой (BLA) на основе внешнего указания. Например, видеодекодер или другое устройство могут принимать внешнее указание. Видеодекодер может затем обрабатывать изображение CRA как изображение BLA на основе внешнего указания. В некоторых примерах флаг задается для изображения CRA и внешнее указание указывает, должен ли флаг быть установлен в видеодекодере. Соответственно, видеодекодер может устанавливать флаг на основе внешнего указания. Декодер или некоторые внутренние функциональные средства, такие как блок обработки внешнего указания или модуль предсказания, могут затем проверить флаг. Например, модуль предсказания может обрабатывать изображение CRA как изображение BLA на основе внешнего указания. Например, декодер может обрабатывать изображение CRA как изображение BLA на основе флага.
[0007] В одном примере данное раскрытие описывает способ обработки видеоданных, который включает в себя прием внешнего указания на видеодекодере и обработку изображения чистого произвольного доступа (CRA) как изображения доступа с разорванной ссылкой (BLA) на основе внешнего указания.
[0008] В другом примере данное раскрытие описывает видеодекодер для обработки видеоданных, включающий в себя процессор, сконфигурированный для приема внешнего указания на видеодекодере и рассмотрения изображения чистого произвольного доступа (CRA) в качестве изображения доступа с разорванной ссылкой (BLA) на основе внешнего указания.
[0009] В другом примере данное раскрытие описывает видеодекодер для обработки видеоданных, который включает в себя средство для приема внешнего указания на видеодекодере и средство для обработки изображения чистого произвольного доступа (CRA) как изображения доступа с разорванной ссылкой (BLA) на основе внешнего указания.
[0010] В другом примере данное раскрытие описывает считываемый компьютером носитель данных. Считываемый компьютером носитель данных имеет сохраненные на нем инструкции, которые при исполнении побуждают один или более процессоров устройства принимать внешнее указание на видеодекодере и обрабатывать изображение чистого произвольного доступа (CRA) как изображение доступа с разорванной ссылкой (BLA) на основе внешнего указания.
[0011] Подробности одного или более примеров изложены в сопроводительных чертежах и описании ниже по тексту. Другие признаки, цели и преимущества будут очевидны из описания и чертежей и из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0012] ФИГ. 1 является блок-схемой, иллюстрирующей примерную систему кодирования и декодирования видео, которая может использовать приемы, описанные в данном раскрытии.
[0013] ФИГ. 2 является блок-схемой, иллюстрирующей примерный видеокодер, который может реализовывать приемы, описанные в данном раскрытии.
[0014] ФИГ. 3 является блок-схемой, иллюстрирующей примерный видеодекодер, который может реализовывать приемы, описанные в данном раскрытии.
[0015] ФИГ. 4 является блок-схемой, иллюстрирующей примерный набор устройств, которые формируют часть сети.
[0016] ФИГ. 5 является блок-схемой последовательности операций, иллюстрирующей пример способа в соответствии с одним или более примерами, описанными в данном раскрытии.
[0017] ФИГ. 6 является блок-схемой последовательности операций, иллюстрирующей примерный способ в соответствии с одним или более примерами, описанными в данном раскрытии.
[0018] ФИГ. 7 является блок-схемой последовательности операций, иллюстрирующей примерный способ в соответствии с одним или более примерами, описанными в данном раскрытии.
[0019] ФИГ. 8 является блок-схемой последовательности операций, иллюстрирующей примерную работу по отправке первым устройством внешнего указания и ответные действия второго устройства по приему внешнего указания.
ПОДРОБНОЕ ОПИСАНИЕ
[0020] Данное раскрытие описывает приемы для адаптации потоковой передачи на основе изображений чистого произвольного доступа (CRA). Описаны различные улучшенные проектные решения видеокодирования, которые могут быть связаны с адаптацией потоковой передачи на основе изображений CRA, выводом изображений до изображений точки произвольного доступа (RAP) и сигнализацией информации синхронизации изображений.
[0021] Сначала описывается краткий уровень техники некоторых стандартов видеокодирования. Стандарты видеокодирования включают в себя 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).
[0022] В дополнение, имеется новый стандарт видеокодирования, называемый Высокоэффективным Кодированием Видео (HEVC), разрабатываемый Объединенной Командой по Кодированию Видео (JCT-VC) Экспертной Группы по Кодированию Видео ITU-T (VCEG) и Экспертной Группой по Движущимся Изображениям ISO/IEC (MPEG). Рабочий Проект (WD) HEVC, упоминаемый как HEVC WD7 в этом документе, доступен по ссылке http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v5.zip, полное содержимое которой включено в этот документ посредством ссылки.
[0023] Более новый Рабочий Проект (WD) HEVC, упоминаемый как HEVC WD9 в этом документе, доступен по ссылке http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-v10.zip, полное содержимое которой включено в этот документ посредством ссылки.
[0024] В одном примере приемы данного раскрытия относятся к обработке изображения чистого произвольного доступа (CRA) как изображения доступа с разорванной ссылкой (BLA) на основе внешнего указания. Например, видеодекодер или другое устройство могут принимать внешнее указание. Видеодекодер может затем обрабатывать изображение CRA как изображение BLA на основе внешнего указания. В некоторых примерах флаг задается для изображения CRA и внешнее указание указывает, должен ли флаг быть установлен в видеодекодере. Соответственно, видеодекодер может устанавливать флаг на основе внешнего указания. Декодер или некоторые внутренние функциональные средства, такие как блок обработки внешнего указания или модуль предсказания, могут затем проверить флаг. В одном примере модуль предсказания может обрабатывать изображение CRA как изображение BLA на основе внешнего указания. Например, декодер может обрабатывать изображение CRA как изображение BLA на основе флага.
[0025] В другом примере флаг задается для изображения CRA и декодер или другое устройство могут принимать внешнее указание о том, что флаг должен быть установлен. Декодер или другое устройство могут затем установить флаг на основе внешнего указания. Декодер может затем проверить флаг. Когда флаг установлен, декодер может обрабатывать изображение CRA как изображение BLA.
[0026] Произвольный доступ относится к декодированию битового потока видео, начинающемуся с кодированного изображения, которое не является первым кодированным изображением в битовом потоке. Произвольный доступ к битовому потоку необходим во многих практических применениях видео, таких как вещание и потоковая передача, например, для переключения пользователями между различными каналами, для быстрого перехода к конкретным частям видео, или для переключения на другой битовый поток для адаптации потока (например, частота следования битов, частоты кадров, пространственного разрешения и так далее). Эта особенность может быть обеспечена посредством вставки изображений произвольного доступа или точек произвольного доступа многократно с постоянными интервалами в битовый поток видео.
[0027] Соединение битовых потоков относится к связи двух или более битовых потоков или их частей. Например, первый битовый поток может быть присоединен ко второму битовому потоку, возможно с некоторыми модификациями либо одного, либо обоих битовых потоков, для генерирования соединенного битового потока. Первое кодированное изображение во втором битовом потоке также упоминается как точка соединения. Поэтому изображения, следующие за точкой соединения в соединенном битовом потоке, происходят из второго битового потока, тогда как изображения, предшествующие точке соединения в соединенном битовом потоке, происходят из первого битового потока.
[0028] Средства соединения битовых потоков могут выполнять соединение битовых потоков. Средства соединения битовых потоков часто являются менее сложными, менее современными и/или менее интеллектуальными, чем кодеры. Например, они могут не быть оснащены возможностями энтропийного кодирования и декодирования. Средства соединения битовых потоков могут быть включены в любые из устройств, описанных в этом документе, включающих в себя устройства кодирования или сетевые устройства.
[0029] Переключение битового потока может быть использовано в средах адаптивной потоковой передачи. Операция переключения битового потока на некоторое изображение в битовом потоке, на который осуществляется переключение, является эффективной операцией соединения битовых потоков, в которой точкой соединения является точка переключения битового потока, то есть первое изображение из битового потока, на который осуществляется переключение.
[0030] Изображения мгновенного обновления декодирования (IDR), определенные в AVC или HEVC, могут быть использованы для произвольного доступа. Однако, поскольку изображения, следующие за изображением IDR в порядке декодирования, не могут использовать изображения, декодированные до изображения IDR в качестве ссылки, битовые потоки, полагающиеся на изображения IDR для произвольного доступа, могут значительно снизить эффективность кодирования.
[0031] Для улучшения эффективности кодирования понятие изображений чистого произвольного доступа (CRA) было введено в HEVC, чтобы позволить изображениям, которые следуют за изображением CRA в порядке декодирования, но предшествуют ему в порядке вывода, использовать изображения, декодированные до изображения CRA, в качестве ссылки. Изображения, которые следуют за изображением CRA в порядке декодирования, но предшествуют изображению CRA в порядке вывода, упоминаются как ведущие изображения, ассоциированные с изображением CRA (или ведущие изображения для изображения CRA). Ведущие (начальные) изображения для изображения CRA являются корректно декодируемыми, если декодирование начинается с изображения CRA или IDR перед текущим изображением CRA. Однако ведущие изображения для изображения CRA могут не являться корректно декодируемыми, когда возникает произвольный доступ из изображения CRA. Следовательно, декодеры типично отбрасывают ведущие изображения во время декодирования с произвольным доступом. Для предотвращения распространения ошибки от опорных изображений, которые могут не быть доступны в зависимости от того, где начинается декодирование, все изображения, которые следуют за изображением CRA как в порядке декодирования, так и в порядке вывода, не должны использовать какое-либо изображение, которое предшествует изображению CRA либо в порядке декодирования, либо в порядке вывода (который включает в себя ведущие изображения) в качестве ссылки.
[0032] Понятие изображения доступа с разорванной ссылкой (BLA) было дополнительно введено в HEVC после введения изображений CRA и на основе понятия изображений CRA. Изображение BLA типично возникает из соединения битовых потоков в позиции изображения CRA, и в соединенном битовом потоке изображение CRA точки соединения может быть изменено на изображение BLA. Изображение IDR, изображение CRA и изображение BLA совместно упоминаются как изображения точки произвольного доступа (RAP).
[0033] Одним различием между изображениями BLA и изображениями CRA является следующее. Для изображения CRA ассоциированные ведущие изображения являются корректно декодируемыми, если декодирование начинается с изображения RAP перед упомянутым изображением CRA в порядке декодирования. Изображение CRA может не являться корректно декодируемым, когда возникает произвольный доступ из изображения CRA. Например, когда декодирование начинается с изображения CRA или, другими словами, когда изображение CRA является первым изображением в битовом потоке. Для изображения BLA ассоциированные ведущие изображения могут не являться корректно декодируемыми во всех случаях, даже когда декодирование начинается с изображения RAP перед упомянутым изображением BLA в порядке декодирования.
[0034] Для некоторого конкретного изображения BLA или CRA некоторые из ассоциированных ведущих изображений являются корректно декодируемыми даже, когда изображение BLA или CRA является первым изображением в битовом потоке. Эти ведущие изображения упоминаются как декодируемые ведущие изображения (DLP) и другие ведущие изображения упоминаются как недекодируемые ведущие изображения (NLP) или декодируемые ведущие изображения произвольного доступа (RADL). NLP также упоминаются как отмеченные для отбрасывания изображения (TFD) или пропускающие произвольный доступ ведущие изображения (RASL).
[0035] В некоторых случаях нижеследующие проблемы могут быть ассоциированы с некоторыми существующими способами (1) в адаптации потоковой передачи на основе изображений CRA, изменение изображения CRA на изображение BLA обычно необходимо выполнять посредством медиасервера или промежуточного сетевого элемента, например осведомленного о среде сетевого элемента (MANE) или даже не осведомленного о среде сетевого элемента, такого как кэш HTTP или веб-прокси, MANE, который обычно предпочтительно является менее сложным, менее современным и/или менее интеллектуальным и может не обладать возможностью изменения битового потока вовсе, (2) вывод изображений перед изображением BLA или IDR в порядке декодирования может, каким-либо образом, управляться посредством использования no_output_of_prior_pics_flag. Когда no_output_of_prior_pics_flag установлен в "1" или выведен равным 1, все изображения, декодированные в порядке декодирования раньше, чем изображение BLA или IDR, отбрасываются после декодирования изображения BLA или IDR без вывода/отображения. Однако иногда отображение большего количества этих изображений может обеспечить лучшее восприятие пользователем. В настоящий момент отсутствует способ для обеспечения вывода/отображения большего количества изображений в подобных ситуациях, (3) изображениям DLP разрешено выводиться. Поскольку их порядок вывода или время вывода являются более ранними, чем у ассоциированного изображения RAP, самое раннее время представления в ходе произвольного доступа из изображения RAP не может быть известно посредством простой проверки единицы доступа, содержащей изображение RAP. Однако в ходе произвольного доступа из изображения RAP система должна попытаться вычислить самое раннее начало воспроизведения, чтобы выяснить, соответствует ли изображение RAP запросу произвольного доступа от пользователя.
[0036] В данном раскрытии изложено некоторое количество приемов, которые могут, в общем, разрешить или превзойти одну или более из идентифицированных выше по тексту проблем. Некоторое количество путей обработки подобного сообщения, принятого или выведенного, является возможным. Несколько примеров рассматриваются ниже по тексту; они включают в себя (1) рассмотрение изображения CRA в качестве изображения BLA, (2) изменение изображения CRA на изображение BLA и (3) рассмотрение изображения CRA в качестве изображения CRA, которое начинает битовый поток.
[0037] В некотором примере декодер может рассматривать изображение CRA в качестве изображения BLA. Декодер может быть сконфигурирован таким образом, что изображение CRA рассматривается в качестве изображения BLA, когда это указано внешним средством. Таким внешним указанием может быть сообщение, как описано выше по тексту (что некоторое изображение CRA должно быть рассмотрено в качестве изображения BLA), которое передается декодеру посредством функции стороны декодера, через выведение или прием от сервера или промежуточного сетевого элемента.
[0038] Более конкретно, процесс декодирования может быть изменен следующим образом. Отдельная переменная, которая может быть ассоциирована с каждым изображением CRA, может быть использована. Например, переменная HandleCraAsBlaFlag ассоциируется с каждым изображением CRA. Другими словами, каждое изображение CRA может иметь переменную HandleCraAsBlaFlag (также упоминаемую как флаг), ассоциированную с ним. Значение HandleCraAsBlaFlag для некоторых изображений CRA может быть точно определено внешними средствами. Когда значение HandleCraAsBlaFlag для некоторого конкретного изображения CRA не точно определено внешними средствами, оно может быть установлено в "0" (например, HandleCraAsBlaFlag изображения CRA по умолчанию равно "0" со значением "0", указывающим, что изображение CRA не обрабатывается как изображение BLA). В подобном примере значение "1" может указывать, что изображение CRA обрабатывается как изображение BLA. В других примерах истиной может являться противоположное и значение "1" может указывать, что изображение CRA не обрабатывается как изображение BLA и значение "0" может указывать, что изображение CRA обрабатывается как изображение BLA.
[0039] Нижеследующий пример предполагает случай, когда HandleCraAsBlaFlag по умолчанию имеет значение "0", указывающее, что изображение CRA не обрабатывается как изображение BLA, и значение "1", указывающее, что изображение CRA обрабатывается как изображение BLA. Когда декодируют (в том числе анализируют) единицу NAL каждого кодированного слайса, если HandleCraAsBlaFlag равен "1", например, рассмотрение изображения CRA в качестве изображения BLA и nal_unit_type указывает изображение CRA (например, значение равно "4" или "5" согласно HEVC WD7), применяется нижеследующее: (1) значение nal_unit_type изменяется для указания изображения BLA (например, значение увеличивается на 2 согласно HEVC WD7), (2) значение no_output_of_prior_pics_flag устанавливается в 1, (3) если предыдущим изображением в порядке декодирования является изображение RAP и rap_pic_id текущего слайса равен rap_pic_id предыдущего изображения, применяется нижеследующее. Во-первых, если следующим изображением в порядке декодирования не является изображение RAP, значение rap_pic_id текущего слайса изменяется, чтобы быть отличным от rap_pic_id предыдущего изображения в порядке декодирования, но все еще находится в разрешенном диапазоне значений синтаксического элемента. Во-вторых, иначе (следующим изображением в порядке декодирования является изображение RAP) значение rap_pic_id текущего изображения изменяется, чтобы быть значением, которое отличается от rap_pic_id и предыдущего изображения и следующего изображения в порядке декодирования, но все еще находится в разрешенном диапазоне значений синтаксического элемента.
[0040] В качестве альтернативы, когда изменяют изображение CRA на изображение BLA, декодер может выполнять нижеследующее, если присутствуют сообщения SEI синхронизации изображений и время вывода из DPB для всех изображений в DPB меньше, чем время вывода из DPB текущего изображения, значение no_output_of_prior_pics_flag устанавливается в 1; иначе значение no_output_of_prior_pics_flag устанавливается в “0”.
[0041] В некоторых примерах HandleCraAsBlaFlag может являться первым флагом и no_output_of_prior_pictures_flag может являться вторым флагом. В некоторых примерах no_output_of_prior_pictures flag может являться переменной контекста.
[0042] С вышеуказанными изменениями к HEVC WD7 существует возможность дополнительно удалять особые процессы декодирования для изображения CRA, которое является первым изображением в битовом потоке, и ассоциированных изображений TFD. В этом случае, когда битовый поток начинается с изображения CRA, первое изображение CRA в битовом потоке должно быть рассмотрено в качестве изображения BLA путем установки значения HandleCraAsBlaFlag в “1” для начинающего битовый поток изображения CRA, вне зависимости от того, осуществлено ли точное определение значения посредством внешнего средства, если имеется, и применения вышеуказанного измененного процесса декодирования.
[0043] В качестве альтернативы, когда декодируют (в том числе анализируют) единицу NAL каждого кодированного слайса, если текущее изображение является первым изображением в битовом потоке и nal_unit_type указывает изображение CRA (например, значение равно "4" или "5" согласно HEVC WD7), может применяться нижеследующее, значение nal_unit_type изменяется для указания изображения BLA (например, значение увеличивается на 2 согласно HEVC WD5). В данном примере нет необходимости изменять значения no_output_of_prior_pics_flag и rap_pic_id. В качестве альтернативы, значение HandleCraAsBlaFlag может быть указано посредством синтаксического элемента в битовом потоке, например нового синтаксического элемента, который может быть включен в заголовок слайса или новое сообщение SEI.
[0044] Один пример относится к адаптации потоковой передачи на основе изображений CRA. В таком примере вместо того, чтобы полагаться на изменение сервером или промежуточным сетевым элементом изображения BLA на изображение CRA, сервер или промежуточный сетевой элемент может генерировать сообщение, которое должно быть отправлено на сторону декодера (то есть клиента). Сообщение может уведомить декодер, например, что произошла операция переключения битового потока в некотором изображении CRA и что изображение CRA должно быть рассмотрено в качестве изображения BLA. В контексте динамической адаптивной потоковой передачи по HTTP (DASH) сторона декодера может также сама выводить такое сообщение посредством изменения унифицированного указателя ресурса (URL), используемого ей для запроса данных потока, и приема данных мультимедиа, ассоциированных с измененным URL.
[0045] В другом примере изображение CRA может быть изменено таким образом, что если присутствуют сообщения SEI синхронизации изображений и время вывода из DPB для всех изображений в DPB меньше, чем время вывода из DPB текущего изображения, значение no_output_of_prior_pics_flag может быть установлено в 1. Иначе, значение no_output_of_prior_pics_flag может быть установлено в “0”.
[0046] ФИГ. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может использовать приемы, описанные в данном раскрытии. Как показано на ФИГ. 1, система 10 включает в себя устройство-источник 12, которое генерирует закодированные видеоданные для их декодирования впоследствии устройством-адресатом 14. Приемы, описанные в этом документе, в общем относятся к обработке изображения CRA как изображения BLA на основе внешнего указания. Соответственно, эти приемы могут в общем применяться к устройству-адресату 14, которое может в общем принимать внешнее указание и в ответ на такое внешнее указание может обрабатывать изображение CRA, принятое устройством-адресатом, как изображение BLA в ходе его обработки устройством-адресатом. Однако в некоторых примерах устройство-источник 12 или другое сетевое устройство, такое как MANE, может обеспечить внешнее указание устройству-адресату 14, которое побуждает устройство-адресат 14 обрабатывать изображение CRA, принятое устройством-адресатом, как изображение BLA.
[0047] Устройство-источник 12 и устройство-адресат 14 могут представлять собой любое из широкого диапазона устройств, включающих в себя настольные компьютеры, блокнотные (то есть переносные) компьютеры, планшетные компьютеры, телевизионные приставки, микротелефонные трубки, такие как так называемые "интеллектуальные" телефоны, так называемые "интеллектуальные" планшеты, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, устройства потоковой передачи видео или подобное. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы для беспроводной связи.
[0048] Устройство-адресат 14 может принимать закодированные видеоданные, которые должны быть декодированы посредством линии 16 связи. Линия 16 связи может представлять собой любой тип носителя или устройства, способного перемещать закодированные видеоданные из устройства-источника 12 в устройство-адресат 14. В одном примере линия 16 связи может представлять собой среду связи для обеспечения возможности устройству-источнику 12 передавать закодированные видеоданные непосредственно к устройству-адресату 14 в реальном времени. Модулятор может модулировать закодированные видеоданные согласно стандарту связи, такому как протокол беспроводной связи, и передавать устройству-адресату 14. Среда связи может представлять собой любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи. Среда связи может формировать часть пакетной сети, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или другое оборудование, которое может быть пригодным для содействия связи от устройства-источника 12 к устройству-адресату 14.
[0049] В качестве альтернативы, закодированные данные могут быть выведены от интерфейса 22 вывода к запоминающему устройству 32. Аналогичным образом, входной интерфейс может осуществить доступ к закодированным данным из запоминающего устройства 32. Запоминающее устройство 36 может включать в себя любой из многообразия распространяемых или локально доступных носителей данных, таких как жесткий диск, Blu-Ray диски, DVD, CD-ROM, флэш-память, энергозависимая или энергонезависимая память, либо любые другие подходящие цифровые носители данных для хранения закодированных видеоданных. В дополнительном примере запоминающее устройство 36 может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может хранить закодированное видео, сгенерированное устройством-источником 12. Устройство-адресат 14 может осуществлять доступ к хранящимся видеоданным с запоминающего устройства 36 путем потоковой передачи или загрузки. Файловым сервером может быть любой тип сервера, способный хранить закодированные видеоданные и передавать эти закодированные видеоданные устройству-адресату. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP сервер, соединенные с сетью запоминающие устройства (NAS) или локальный дисковый накопитель. Устройство-адресат 14 может осуществлять доступ к закодированным видеоданным через любое стандартное соединение для передачи данных, включающее в себя Интернет-соединение. Это может включать в себя беспроводный канал (например, Wi-Fi соединение), проводное соединение (например, DSL, кабельный модем) или их комбинацию, которая является подходящей для осуществления доступа к закодированным видеоданным, хранящимся на файловом сервере. Передачей закодированных видеоданных от запоминающего устройства 36 может быть потоковая передача, передача загрузки или их комбинацией.
[0050] Приемы данного раскрытия необязательно ограничены беспроводными приложениями или установками. Приемы могут быть применены к кодированию видео в поддержку любого из многообразия мультимедийных приложений, таких как телевизионные вещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео, например, через Интернет, кодирование цифрового видео для хранения на носителе данных, декодирование цифрового видео, хранящегося на носителе данных, или другие приложения. В некоторых примерах система 10 может быть сконфигурирована для поддержки односторонней или двухсторонней передачи видео для поддержки приложений, таких как потоковая передача видео, воспроизведение видео, вещание видео и/или видеотелефония.
[0051] В примере на ФИГ. 1 устройство-источник 12 включает в себя источник 18 видео, видеокодер 20 и интерфейс 22 вывода. В некоторых случаях интерфейс 22 вывода может включать в себя модулятор/демодулятор (модем) и/или передатчик. В устройстве-источнике 12 источник 18 видео может включать в себя источник, такой как устройство видеозахвата. Например, видеокамера, видеоархив, содержащий ранее захваченное видео, интерфейс подачи видео для приема видео от поставщика видеоконтента и/или систему компьютерной графики для генерирования данных компьютерной графики в качестве исходного видео или комбинацию таких источников. В качестве одного примера, если источником 18 видео является видеокамера, устройство-источник 12 и устройство-адресат 14 могут формировать так называемые телефоны с камерами или видеотелефоны. Однако приемы, описанные в этом раскрытии, могут быть применены к кодированию видео в общем и могут быть применены к беспроводным и/или проводным приложениям.
[0052] Видеокодер 20 может кодировать захватываемое, ранее захваченное или сгенерированное компьютером видео. Закодированные видеоданные могут быть переданы непосредственно устройству-адресату 14 через интерфейс 22 вывода устройства-источника 12. В качестве альтернативы, закодированные видеоданные могут быть сохранены на запоминающее устройство 36 для дальнейшего доступа устройством-адресатом 14 или другими устройствами для декодирования и/или воспроизведения. В других примерах могут быть выполнены и то и другое, указанное выше по тексту.
[0053] Устройство-адресат 14 включает в себя интерфейс 28 ввода, видеодекодер 30 и устройством 32 отображения. В некоторых случаях интерфейс 28 ввода может включать в себя приемник и/или модем. Интерфейс 28 ввода устройства-адресата 14 принимает закодированные видеоданные по линии 16 связи. Закодированные видеоданные, передаваемые по линии 16 связи или обеспеченные на запоминающем устройстве 36, могут включать в себя многообразие синтаксических элементов, сгенерированных посредством видеокодера 20 для использования видеодекодером, таким как видеодекодер 30, при декодировании видеоданных. Такие синтаксические элементы могут быть включены в закодированные видеоданные, передаваемые по среде связи, хранимые на носителе данных или хранимые на файловом сервере.
[0054] В одном примере видеодекодер 30 или другое устройство могут принимать внешнее указание. Видеодекодер 30 может затем обрабатывать изображение чистого произвольного доступа (CRA) как изображение доступа с разорванной ссылкой (BLA) на основе внешнего указания. В некоторых примерах внешнее указание указывает, должен ли флаг быть установлен в видеодекодере. Соответственно, видеодекодер 30 может устанавливать флаг на основе внешнего указания. Видеодекодер 30 или некоторые внутренние функциональные средства, такие как блок 72 обработки внешнего указания или модуль 81 предсказания, могут затем проверить флаг. В качестве примера модуль 81 предсказания может обрабатывать изображение CRA как изображение BLA на основе внешнего указания, которое указывает, что изображение CRA должно быть обработано как изображения BLA на основе флага.
[0055] В другом примере видеодекодер 30 или другое устройство может принимать внешнее указание, что флаг должен быть установлен. Видеодекодер 30 или другое устройство может затем установить флаг на основе внешнего указания. Декодер 30 может затем проверить флаг. Когда флаг установлен, видеодекодер 30 обрабатывает изображение CRA как изображение BLA.
[0056] Устройство 32 отображения может быть объединено с устройством-адресатом 14, или быть внешним относительно него. В некоторых примерах устройство-адресат 14 может включать в себя интегрированное устройство отображения и также может быть сконфигурировано для взаимодействия с внешним устройством отображения. В других примерах устройство-адресат 14 может быть устройством отображения. В общем устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из многообразия устройств отображения, таких как жидкокристаллическое устройство отображения (LCD), плазменное устройство отображения, устройство отображения на органических светодиодах (OLED) или другой тип устройства отображения.
[0057] Видеокодер 20 и видеодекодер 30 могут функционировать согласно стандарту сжатия видео, такому как разрабатываемый в настоящее время стандарт Высокоэффективного Видеокодирования (HEVC), и могут соответствовать Тестовой Модели HEVC (HM). Последний проект HEVC, от 27 июня 2012, доступен по ссылке http://wg11.sc29.org/jct/doc_end_user/current_document.php?id=5885/JCTVC-I1003-v5, полное содержимое которого включено в этот документ посредством ссылки. В качестве альтернативы, видеокодер 20 и видеодекодер 30 могут функционировать согласно другим частным или промышленным стандартам, таким как стандарт ITU-T H.264, в качестве альтернативы упоминаемый как MPEG-4, Часть 10, Усовершенствованное Видеокодирование (AVC) или расширения таких стандартов. Приемы данного раскрытия, однако, не ограничены каким-либо конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T H.263, а также открытые форматы, такие как VP8.
[0058] Несмотря на то что не показано на ФИГ. 1, в некоторых аспектах каждый из видеокодера 20 и видеодекодера 30 может быть объединен с аудиокодером и декодером и может включать в себя надлежащие блоки MUX-DEMUX или другое аппаратное и программное обеспечение, чтобы обрабатывать кодирование как аудио, так и видео, в общем потоке данных или в отдельных потоках данных. Если применимо, в некоторых примерах блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
[0059] Каждый из видеокодера 20 и видеодекодера 30 может быть реализован как любая из многообразия подходящих схем кодера, таких как один или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратного обеспечения, программно-аппаратного обеспечения или любые их комбинации. При частичной реализации приемов в программном обеспечении устройство может хранить инструкции для программного обеспечения на подходящем невременном считываемом компьютером носителе и исполнять инструкции в аппаратном обеспечении, используя один или более процессоров, чтобы выполнять приемы данного раскрытия. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (КОДЕКА) в соответствующем устройстве.
[0060] JCT-VC работает над разработкой стандарта HEVC. Усилия стандартизации HEVC основаны на развивающейся модели устройства видеокодирования, упоминаемой как Тестовая Модель HEVC (HM). HM предполагает несколько дополнительных возможностей устройств видеокодирования относительно существующих устройств согласно, например, ITU-T H.264/AVC. Например, в то время как H.264 обеспечивает девять режимов кодирования с внутренним предсказанием, HM может обеспечивать вплоть до тридцати трех режимов кодирования с внутренним предсказанием.
[0061] В общем рабочая модель HM описывает, что видеокадр или изображение могут быть разделены на последовательность блоков дерева кодирования или древовидных блоков или наибольших единиц кодирования (LCU), которые включают в себя как выборки (отсчеты) яркости, так и выборки цветности. Древовидный блок может иметь назначение, аналогичное макроблоку из стандарта H.264. Слайс включает в себя некоторое число последовательных древовидных блоков в порядке кодирования. Видеокадр или изображение могут быть разделены на один или более слайсов. Каждый древовидный блок может быть разбит на единицы кодирования (CU) согласно квадродереву. Например, древовидный блок, в качестве корневого узла квадродерева, может быть разбит на четыре дочерних узла, и каждый дочерний узел может, в свою очередь, быть родительским узлом и быть разбит на другие четыре дочерних узла. Конечный неразбиваемый дочерний узел, в качестве концевого узла квадродерева, содержит узел кодирования, то есть кодированный видеоблок. Синтаксические данные, ассоциированные с кодированным битовым потоком, могут задавать максимальное количество раз, когда древовидный блок может быть разбит, и также могут задавать минимальный размер узлов кодирования.
[0062] CU включает в себя узел кодирования и единицы предсказания (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен быть квадратным по форме. Размер CU может находиться в диапазоне от 8x8 пикселей вплоть до размера древовидного блока с максимумом в 64x64 пикселей или больше. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, разделение CU на одну или более PU. Режимы разделения могут различаться между тем, закодирована ли CU в прямом режиме или режиме пропуска, закодирована в режиме внутреннего предсказания или закодирована в режиме внешнего предсказания. PU могут быть разделены, чтобы быть не квадратными по форме. Синтаксические данные, ассоциированные с CU, также могут описывать, например, разделение CU на одну или более TU согласно квадродереву. TU может быть квадратной или неквадратной по форме.
[0063] Стандарт HEVC делает возможными преобразования согласно TU, которые могут различаться для различных CU. TU типично установлены по размеру на основании размера PU в пределах данной CU, заданной для разделенной LCU, хотя это может не всегда иметь место. TU обычно имеет тот же размер, что PU, или меньше из. В некоторых примерах остаточные выборки, соответствующие CU, могут быть подразделены на меньшие единицы с использованием структуры квадродерева, известной как "остаточное квадродерево" (RQT). Концевые узлы RQT могут упоминаться как единицы преобразования (TU). Значения пиксельных разностей, ассоциированные с TU, могут быть преобразованы для создания коэффициентов преобразования, которые могут быть квантованы.
[0064] В общем, PU включает в себя данные, связанные с процессом предсказания. Например, когда PU закодирована во внутреннем режиме, PU может включать в себя данные, описывающие режим внутреннего предсказания для PU. В качестве другого примера, когда PU закодирована во внешнем режиме, PU может включать в себя данные, задающие вектор движения для PU. Данные, задающие вектор движения для PU, могут описывать, например, горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешение для вектора движения (например, точность в одну четвертую пикселя или точность в одну восьмую пикселя), опорное изображение, на которое указывает вектор движения и/или список опорных изображений (например, Список 0, Список 1 или Список C) для вектора движения.
[0065] В общем, TU используется для процессов преобразования и квантования. Данная CU, имеющая одну или более PU, также может включать в себя одну или более единиц преобразования (TU). Следом за предсказанием видеокодер 20 может вычислять остаточные значения, соответствующие PU. Остаточные значения содержат значения пиксельных разностей, которые могут быть преобразованы в коэффициенты преобразования, квантованы и просканированы с использованием TU для создания упорядоченных коэффициентов преобразования для энтропийного кодирования. Данное раскрытие обычно использует термин «видеоблок» для ссылки на узел кодирования из CU. В некоторых особых случаях данное раскрытие также может использовать термин "видеоблок" для ссылки на древовидный блок, т.е. LCU, или CU, которая включает в себя узел кодирования, а также PU и TU.
[0066] Видеопоследовательность обычно включает в себя ряд видеокадров или изображений. Группа изображений (GOP) обычно содержит ряд из одного или более изображений видео. GOP может включать в себя синтаксические данные в заголовке GOP, заголовке одного или более изображений, или в другом месте, которое описывает некоторое число изображений, включенных в GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 обычно осуществляет работу над видеоблоками, в пределах индивидуальных слайсов видео, для того, чтобы закодировать видеоданные. Видеоблок может соответствовать узлу кодирования в CU. Видеоблоки могут иметь неизменные или меняющиеся размеры и могут отличаться по размеру согласно точно определенному стандарту кодирования.
[0067] В качестве примера HM поддерживает предсказание в различных размерах PU. Предполагая, что размер некоторой конкретной CU является 2Nx2N, HM поддерживает внутреннее предсказание в размерах PU 2Nx2N или NxN и внешнее предсказание в симметричных размерах PU 2Nx2N, 2NxN, Nx2N или NxN. HM также поддерживает асимметричное разделение для внешнего предсказания в размерах PU 2NxnU, 2NxnD, nLx2N и nRx2N. При асимметричном разделении одно направление CU не разделяется, в то время как другое направление разделяется на 25% и 75%. Часть CU, соответствующая 25%-ной части, указывается посредством "n", за чем следует указание "Up" (вверх), "Down" (вниз), "Left" (влево) или "Right" (вправо). Таким образом, например, "2NxnU" относится к CU 2Nx2N, которая разделена горизонтально с PU 2Nx0,5N сверху и PU 2Nx1,5N снизу.
[0068] В данном раскрытии "NxN" и "N на N" могут использоваться взаимозаменяемо для обозначения размерностей пикселей видеоблока исходя из вертикальной и горизонтальной размерностей, например 16x16 пикселей или 16 на 16 пикселей. Обычно блок 16х16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Подобно, блок NxN в целом имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет собой не являющееся отрицательным целое значение. Пиксели в блоке могут быть упорядочены в строках и столбцах. Более того, необязательно, чтобы блоки имели такое же количество пикселей в горизонтальном направлении, как и в вертикальном направлении. Например, блоки могут содержать NxM пикселей, где M необязательно равно N.
[0069] Нижеследующее кодирование с внутренним предсказанием или внешним предсказанием использует PU из CU, видеокодер 20 может вычислять остаточные данные для TU из CU. PU может содержать данные пикселей в пространственной области (также называемой областью пикселей), а TU может содержать коэффициенты в области преобразования с последующим применением преобразования, например дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлет-преобразования, или концептуально подобного преобразования к остаточным видеоданным. Остаточные данные могут соответствовать пиксельным разностям между пикселями незакодированного изображения и значениями предсказания, соответствующими PU. Видеокодер 20 может формировать TU, включающие в себя остаточные данные для CU, а затем преобразовывать TU для создания коэффициентов преобразования для CU.
[0070] Следом за любыми преобразованиями для создания коэффициентов преобразования видеокодер 20 может выполнять квантование коэффициентов преобразования. Квантование в целом относится к процессу, в котором коэффициенты преобразования квантуются для возможного сокращения объема данных, используемых для представления коэффициентов, обеспечивающих дополнительное сжатие. Процесс квантования может сокращать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, n-битное значение может округляться в меньшую сторону до m-битного значения в ходе квантования, где n больше m.
[0071] В некоторых примерах видеокодер 20 может применять предварительно заданный порядок сканирования для сканирования квантованных коэффициентов преобразования для создания упорядоченного вектора, который может быть энтропийно закодирован. В других примерах видеокодер 20 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования одномерного вектора видеокодер 20 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному кодированию с переменной длиной кодового слова (CAVLC), контекстно-адаптивному двоичному арифметическому кодированию (CABAC), синтаксическому контекстно-адаптивному двоичному арифметическому кодированию (SBAC), энтропийному кодированию на основе разделения интервала вероятности (PIPE) или другой методологии энтропийного кодирования. Видеокодер 20 также может энтропийно кодировать синтаксические элементы, ассоциированные с закодированными видеоданными для использования посредством видеодекодера 30 при декодировании видеоданных.
[0072] Для выполнения CABAC видеокодер 20 может назначать контекст в пределах контекстной модели, символу, который должен быть передан. Контекст может относиться, например, к тому, являются ли соседние значения символа ненулевыми или нет. Для выполнения CAVLC видеокодер 20 может выбирать код с переменной длиной для символа, который должен быть передан. Кодовые слова в VLC могут быть построены так, что относительно более короткие коды соответствуют более вероятным символам, в то время как более длинные коды соответствуют менее вероятным символам. Таким образом, использование VLC может достичь экономии битов в сравнении, например, с использованием кодовых слов равной длины для каждого символа, который должен быть передан. Определение вероятности может быть основано на контексте, назначенном символу.
[0073] В соответствии с данным раскрытием устройство-источник 12 (или возможно другое промежуточное устройство, не показанное на ФИГ. 1) может обеспечить внешнее указание 34 устройству-адресату 14, которое побуждает устройство-адресат 14 обрабатывать изображение CRA, принятое устройством адресатом, как изображение BLA. Например, устройство-источник 12 (или возможно другое промежуточное устройство, не показанное на ФИГ. 1) может определять, что изменение было сделано пользователем, например запрос видео другого разрешения или качества, или может возникнуть разорванная ссылка. Когда происходит изменение разрешения или возникает разорванная ссылка, например, это может означать, что изображение CRA должно быть обработано как изображение BLA, поскольку информация любого предшествующего изображения, хранящаяся на приемном устройстве, может не быть допустимой для декодирования входящего битового потока.
[0074] ФИГ. 2 является блок-схемой, иллюстрирующей пример видеодекодера 20, который может реализовывать приемы, описанные в данном раскрытии. Как рассматривалось выше по тексту, приемы, описанные в этом документе, в целом относятся к обработке изображения CRA как изображения BLA на основе внешнего указания, принятого на устройстве-адресате 14. Однако в некоторых примерах устройство-источник 12 или другое сетевое устройство, такое как MANE, может обеспечить внешнее указание устройству-адресату 14, которое побуждает устройство-адресат 14 обрабатывать изображение CRA, принятое на устройстве-адресате, как изображение BLA.
[0075] Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков в пределах слайсов видео. Внутреннее кодирование полагается на пространственное предсказание для сокращения или удаления пространственной избыточности видео в пределах данного видеокадра или изображения. Внешнее кодирование полагается на временное предсказание, чтобы сокращать или удалять временную избыточность в видео в пределах смежных кадров или изображений видеопоследовательности. Внутренний режим (I режим) может относиться к любому из нескольких режимов пространственного сжатия. Внешние режимы, такие как однонаправленное предсказание (P режим) или бипредсказание (B режим), могут относиться к любому из нескольких режимов временного сжатия.
[0076] В примере на ФИГ. 2 видеокодер 20 включает в себя модуль 35 разделения, модуль 41 предсказания, модуль 63 фильтра, память 64 опорных изображений, сумматор 50, модуль 52 преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Модуль 41 предсказания включает в себя модуль 42 оценки движения, модуль 44 компенсации движения и модуль 46 внутреннего предсказания. Для восстановления блока видео видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования и сумматор 62. Модуль 63 фильтра предназначен для представления одного или более контурных фильтров, таких как фильтр удаления блочности, адаптивный контурный фильтр (ALF) и фильтр адаптивного к выборке смещения (SAO). Хотя модуль 63 фильтра показан на ФИГ. 2 как являющийся внутриконтурным фильтром, в других конфигурациях, модуль 63 фильтра может быть реализован как пост-контурный фильтр.
[0077] Устройство-источник 12 или другое сетевое устройство, такое как MANE, может обеспечить внешнее указание 34 устройству-адресату 14, которое побуждает устройство-адресат 14 обрабатывать изображение CRA, принятое на устройстве-адресате, как изображение BLA. Например, внешнее указание 34, которое обычно является внешним по отношению к устройству-адресату 14 и обычно не передается как часть битового потока, может быть сгенерировано посредством модуля 41 предсказания, который может иметь доступ к указаниям, связанным со статусом битового потока. Это является только одним примером, однако другие единицы или модули в устройстве-источнике 12 или в других устройствах, внешних по отношению к устройству-источнику 12, могут также генерировать внешнее указание.
[0078] Как показано на ФИГ. 2, видеокодер 20 принимает видеоданные и модуль 35 разделения разделяет данные на видеоблоки. Это разделение также может включать в себя разделение на слайсы, фрагменты или другие большие единицы, а также разделение видеоблока, например, согласно структуре квадродерева LCU и CU. Видеокодер 20 обычно иллюстрирует компоненты, которые кодируют видеоблоки в пределах слайса видео, который должен быть закодирован. Слайс может быть разделен на множественные видеоблоки (и возможно на наборы видеоблоков, упоминаемых как фрагменты). Модуль 41 предсказания может выбирать один из множества возможных режимов кодирования, таких как один из множества режимов внутреннего кодирования или один из множества режимов внешнего кодирования, для текущего видеоблока на основании результатов ошибки (например, скорости кодирования и уровня искажения). Модуль 41 предсказания может обеспечивать получившийся в результате внутренне или внешне кодированный блок сумматору 50 для генерирования данных остаточного блока и сумматору 62 для восстановления закодированного блока для использования в качестве опорного изображения.
[0079] Модуль 46 внутреннего предсказания, в пределах модуля 41 предсказания, может выполнять кодирование с внутренним предсказанием текущего видеоблока относительно одного или более соседних блоков в одном и том же кадре или слайсе в качестве текущего блока, который должен быть кодирован для обеспечения пространственного сжатия. Модуль 42 оценки движения и модуль 44 компенсации движения, в пределах модуля 41 предсказания, выполняют кодирование с внешним предсказанием текущего видеоблока относительно одного или более прогнозируемых блоков в одном или более опорных изображениях для обеспечения временного сжатия.
[0080] Модуль 42 оценки движения может быть сконфигурирован для определения режима внешнего предсказания для слайса видео согласно предопределенному шаблону для видеопоследовательности. Предопределенный шаблон может обозначать слайсы видео в последовательности в качестве P слайсов, B слайсов или GPB слайсов. Модуль 42 оценки движения и модуль 44 компенсации движения могут быть высоко интегрированы, но проиллюстрированы отдельно в концептуальных целях. Оценка движения, выполняемая посредством модуля 42 оценки движения, является процессом генерирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в пределах текущего видеокадра или изображения относительно предиктивного блока в пределах опорного изображения.
[0081] Предиктивный блок является блоком, который найден как близко соответствующий PU видеоблока, который должен быть кодирован, с точки зрения пиксельной разности, которая может быть определена посредством суммы абсолютных разностей (SAD), суммы квадратов разности (SSD) или других разностных метрик. В некоторых примерах видеокодер 20 может вычислять значения для позиций субцелых пикселей опорных изображений, сохраненных в памяти 64 опорных изображений. Например, видеокодер 20 может интерполировать значения позиций одной четвертой пикселя, позиций одной восьмой пикселя или других позиций дробного пикселя опорного изображения. Поэтому модуль 42 оценки движения может выполнять поиск движения относительно позиций полных пикселей и позиций дробных пикселей и вывод вектора движения с точностью дробного пикселя.
[0082] Модуль 42 оценки движения вычисляет вектор движения для PU видеоблока во внешне кодированном слайсе посредством сравнения позиции PU с позицией предиктивного блока опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (Список 0) или второго списка опорных изображений (Список 1), каждый из которых идентифицирует одно или более опорных изображений, сохраненных в памяти 64 опорных изображений. Модуль 42 оценки движения отправляет вычисленный вектор движения модулю 56 энтропийного кодирования и модулю 44 компенсации движения.
[0083] Компенсация движения, выполняемая посредством модуля 44 компенсации движения, может вовлекать в себя выборку или генерирование предиктивного блока на основе вектора движения, определяемого путем оценки движения, возможно выполняя интерполяции до субпиксельной точности. После приема вектора движения для PU текущего видеоблока модуль 44 компенсации движения может располагать предиктивный блок, на который указывает вектор движения, в одном из списков опорных изображений. Видеокодер 20 формирует остаточный видеоблок путем вычитания пиксельных значений предиктивного блока из пиксельных значений текущего кодируемого видеоблока, формируя значения пиксельных разностей. Значения пиксельных разностей формируют остаточные данные для блока и могут включать в себя компоненты разностей как яркости, так и цветности. Сумматор 50 представляет собой компонент или компоненты, которые выполняют данную операцию вычитания. Модуль 44 компенсации движения также может генерировать синтаксические элементы, ассоциированные с видеоблоками и видеослайсом, для использования посредством видеодекодера 30 при декодировании видеоблоков слайса видео.
[0084] Модуль 46 внутреннего предсказания может внутренне предсказывать текущий блок в качестве альтернативы внешнему предсказанию, выполняемому посредством модуля 42 оценки движения и модуля 44 компенсации движения, как описано выше по тексту. В частности, модуль 46 внутреннего предсказания может определять режим внутреннего предсказания для использования для кодирования текущего блока. В некоторых примерах модуль 46 внутреннего предсказания может кодировать текущий блок, используя различные режимы внутреннего предсказания, например, во время отдельных проходов кодирования, и модуль 46 внутреннего предсказания (или модуль 40 выбора режима, в некоторых примерах) может выбирать надлежащий режим внутреннего предсказания для использования из тестируемых режимов. Например, модуль 46 внутреннего предсказания может вычислять значения «скорость передачи - искажение», используя анализ «скорость передачи - искажение» для различных тестируемых режимов внутреннего предсказания, и выбирать режим внутреннего предсказания, имеющий лучшие характеристики «скорость передачи - искажение» среди тестируемых режимов. Анализ «скорость передачи - искажение» обычно определяет объем искажения (или ошибку) между закодированным блоком и исходным, незакодированным блоком, который был закодирован для создания закодированного блока, а также частоту следования битов (то есть количество битов), используемую для создания закодированного блока. Модуль 46 внутреннего предсказания может вычислять соотношения по искажениям и скоростям передачи для различных закодированных блоков для определения, какой режим внутреннего предсказания показывает лучшее значение «скорость передачи - искажение» для блока.
[0085] В любом случае после выбора режима внутреннего предсказания для блока модуль 46 внутреннего предсказания может обеспечивать информацию, указывающую выбранный режим внутреннего предсказания для блока модулю 56 энтропийного кодирования. Модуль 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего предсказания в соответствии с приемами данного раскрытия. Видеокодер 20 может включать в себя данные конфигурации в передаваемом битовом потоке. Данные конфигурации могут включать в себя множество таблиц индексов режима внутреннего предсказания и множество модифицированных таблиц индексов режима внутреннего предсказания (также упоминаемых как таблицы отображения кодовых слов), определений контекстов кодирования для различных блоков и указания наиболее вероятного режима внутреннего предсказания, таблиц индексов режима внутреннего предсказания и модифицированных таблиц индексов режима внутреннего предсказания для использования для каждого из контекстов.
[0086] После того как модуль 41 предсказания генерирует предиктивный блок для текущего видеоблока с помощью либо внешнего предсказания, либо внутреннего предсказания, видеокодер 20 формирует остаточный видеоблок посредством вычитания предиктивного блока из текущего видеоблока. Остаточные видеоданные в остаточном блоке могут быть включены в один или более TU и применяться для модуля 52 преобразования. Модуль 52 преобразования преобразует остаточные видеоданные в остаточные коэффициенты преобразования, используя преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование. Модуль 52 преобразования может конвертировать остаточные видеоданные из пиксельной области в область преобразования, такую как частотная область.
[0087] Модуль 52 преобразования может отправлять полученные в результате коэффициенты преобразования модулю 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования, чтобы дополнительно уменьшать частоту следования битов. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована путем регулировки параметра квантования. В некоторых примерах модуль 54 квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. В качестве альтернативы, модуль 56 энтропийного кодирования может выполнять сканирование.
[0088] Следом за квантованием модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование с переменной длиной кодового слова (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), синтаксическое контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование на основе разделения интервала вероятности (PIPE) или другую методологию или прием энтропийного кодирования. Вслед за энтропийным кодированием посредством модуля 56 энтропийного кодирования закодированный битовый поток может быть передан видеодекодеру 30 или помещен в архив для дальнейшей передачи или извлечения видеодекодером 30. Модуль 56 энтропийно кодирования может также энтропийно закодировать векторы движения и другие синтаксические элементы для текущего кодируемого слайса видео.
[0089] Модуль 58 обратного квантования и модуль 60 обратного преобразования применяют обратное квантование и обратное преобразование соответственно для восстановления остаточного блока в пиксельной области для дальнейшего использования в качестве опорного блока опорного изображения. Модуль 44 компенсации движения может вычислять опорный блок путем добавления остаточного блока к предиктивному блоку одного из опорных изображений в пределах одного из списков опорных изображений. Модуль 44 компенсации движения также может применять один или более интерполяционных фильтров к восстановленному остаточному блоку для вычисления субцелочисленных пиксельных значений для использования в оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к предиктивному блоку с компенсированным движением, созданному модулем 44 компенсации движения, для создания опорного блока для сохранения в памяти 64 опорных изображений. Опорный блок может быть использован модулем 42 оценки движения и модулем 44 компенсации движения в качестве опорного блока для внешнего предсказания блока в последующем видеокадре или изображении.
[0090] Видеокодер 20 на ФИГ. 2 представляет собой пример видеокодера, который может быть сконфигурирован для сигнализирования того, что изображение чистого произвольного доступа (CRA) должно быть обработано как изображение доступа с разорванной ссылкой (BRA), как описано в этом документе.
[0091] ФИГ. 3 является блок-схемой, иллюстрирующей примерный видеодекодер 30, который может реализовывать приемы данного раскрытия, которые обычно относятся к обработке изображения CRA как изображения BLA на основе внешнего указания 70, которое может быть сгенерировано посредством сетевого объекта 29, такого как MANE или некоторого другого внешнего устройства (не показанного). В одном примере видеодекодер 30 принимает внешнее указание 70 о том, что флаг 74 должен быть установлен. Внешнее указание 70 принимается видеодекодером 30. В других примерах внешнее указание 70 может быть принято и обработано внешне относительно видеодекодера 30. Блок 72 обработки внешнего указания устанавливает флаг 74 на основе внешнего указания. Флаг затем передается в модуль 81 предсказания. В проиллюстрированном примере блок 72 обработки внешнего указания находится в пределах видеодекодера 30. В других примерах блок 72 обработки внешнего указания может быть внешним относительно и отдельным от видеодекодера 30. В видеодекодере 30 модуль (81) предсказания проверяет флаг и, когда флаг установлен, обрабатывает одно изображение чистого произвольного доступа (CRA) как изображение доступа с разорванной ссылкой (BLA).
[0092] В некоторых примерах значением по умолчанию флага является "0" и установленным значением флага является "1". В других примерах истиной может оказаться обратное, значением по умолчанию флага является "1" и установленным значением флага является "0". Другими словами, флаг может быть активным высоким ("1") или активным низким ("0").
[0093] В некоторых примерах, когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, если установлен первый флаг, модуль 81 предсказания может изменять тип единицы NAL единицы NAL. Когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, если установлен первый флаг, модуль 81 предсказания может изменять значение второго флага. Вторым флагом может быть no_output_of_prior_pics_flag. Дополнительно, когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, если установлен флаг, модуль предсказания может устанавливать значение второго флага в "1".
[0094] В примере, когда текущим изображением является изображение CRA и когда некоторое внешнее указание является доступным для установки переменной, указывающей, что изображение CRA должно быть рассмотрено в качестве изображения BLA (например, HandleCraAsBlaFlag), затем переменная (например, HandleCraAsBlaFlag) может быть установлена в значение, обеспечиваемое внешним средством. Иначе, значение переменной (например, HandleCraAsBlaFlag) может быть установлено для указания, что изображение CRA не должно быть рассмотрено в качестве изображения BRA. Например, HandleCraAsBlaFlag может быть установлено в "1" для указания, что изображение CRA должно быть рассмотрено в качестве изображения BRA и установлено в "0" для указания, что изображение CRA не должно быть рассмотрено в качестве изображения BRA.
[0095] Следует отметить, что, в то время как некоторые примеры внешнего указания могут быть описаны в этом документе, они не предназначены чтобы быть исчерпывающими. Много возможных внешних указаний могли бы быть использованы.
[0096] В некоторых примерах, когда текущим изображением является изображение CRA и переменная, указывающая, что изображение CRA должно быть рассмотрено в качестве изображения BLA (например, HandleCraAsBlaFlag), является равной "1", где "1" указывает, что изображение CRA должно быть рассмотрено в качестве изображения BLA, значение no_output_of_prior_pics_flag может быть установлено в "1" и нижеследующее применяется во время процессов анализа и декодирования для каждой единицы NAL каждого сегмента кодированного слайса.
[0097] В качестве примера no_output_of_prior_pics_flag точно определяет, как ранее декодированные изображения в буфере декодированных изображений обрабатываются после декодирования изображения BLA или IDR. В примере, когда изображение BLA или IDR является первым изображением в битовом потоке, значение no_output_of_prior_pics_flag не оказывает воздействия на процесс декодирования. Когда изображение BLA или IDR не является изображением в битовом потоке и значение pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ sps_max_temporal_layers_minus1 ], извлеченное из активного набора параметров последовательности, является отличным от значения pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering [sps_max_temporal_layers_minus1 ], извлеченного из набора параметров последовательности активного для предшествующего изображения, no_output_of_prior_pics_flag, равное "1", может (но не должно) быть выведено декодером вне зависимости от фактического значения no_output_of_prior_pics_flag.
[0098] В примере на ФИГ. 3 видеодекодер 30 включает в себя модуль 80 энтропийного декодирования, модуль 81 предсказания, модуль 86 обратного квантования, модуль 88 обратного преобразования, сумматор 90, модуль 91 фильтра и память 92 опорных изображений. Модуль 81 предсказания включает в себя модуль 82 компенсации движения и модуль 84 внутреннего предсказания. Видеодекодер 30 видео может, в некоторых примерах, выполнять проход декодирования, в целом обратный проходу кодирования, описанному относительно видеокодера 20 из ФИГ. 2.
[0099] В ходе процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, который представляет собой видеоблоки закодированного видеослайса и связанные синтаксические элементы из видеокодера 20. Видеодекодер 30 может принимать закодированный битовый поток видео от сетевого объекта 29. Сетевым объектом 29 может, например, являться сервер, MANE, редактор/средство соединения видео или другое такое устройство, сконфигурированное для реализации одного или более приемов, описанных выше по тексту. Как описано выше по тексту, некоторые из приемов, описанных в данном раскрытии, могут быть реализованы посредством сетевого объекта 29 до момента передачи сетевым объектом 29 закодированного битового потока видео к видеодекодеру 30. В некоторых системах декодирования видео сетевой объект 29 и видеодекодер 30 могут являться частями отдельных устройств, в то время как в других примерах функциональность, описанная относительно сетевого объекта 29, может быть выполнена посредством одного и того же устройства, которое содержит видеодекодер 30.
[0100] Как рассмотрено выше, сетевое устройство, такое как сетевой объект 29, которым может являться MANE, может обеспечить внешнее указание 34 устройству-адресату 14, которое побуждает устройство-адресат 14 обрабатывать изображение CRA, принятое на устройстве-адресате, как изображение BLA. Например, внешнее указание 34, которое обычно является внешним по отношению к устройству-адресату 14 и обычно не передается как часть битового потока, может быть сгенерировано посредством модуля 41 предсказания, который может иметь доступ к указаниям, связанным со статусом битового потока. Это является только одним примером, однако другие блоки или модули в устройстве-источнике 12 или в других устройствах, внешних по отношению к устройству-источнику 12, могут также генерировать внешнее указание.
[0101] Модуль 80 энтропийного декодирования видеодекодера 30 энтропийно декодирует битовый поток для генерирования квантованных коэффициентов, векторов движения и других синтаксических элементов. Модуль 80 энтропийного декодирования переадресовывает векторы движения и другие синтаксические элементы модулю 81 предсказания. Видеодекодер 30 может принимать синтаксические элементы на уровне видеослайсов и/или на уровне видеоблоков.
[0102] Когда видеослайс кодирован как внутренне кодированный (I) слайс, модуль 84 внутреннего предсказания модуля 81 предсказания может генерировать данные предсказания для видеоблока текущего слайса видео на основе сигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодирован как внешне кодированный (то есть B, P или GPB) слайс, модуль 82 компенсации движения модуля 81 предсказания создает предиктивные блоки для видеоблока текущего слайса видео на основе векторов движения и других синтаксических элементов, принятых от модуля 80 энтропийного декодирования. Предиктивные блоки могут быть созданы из одного из опорных изображений в пределах одного из списков опорных изображений. Видеодекодер 30 может строить списки опорных кадров, Список 0 и Список 1, используя стандартные приемы построения на основе опорных изображений, хранящихся в памяти 92 опорных изображений.
[0103] Модуль 82 компенсации движения определяет предиктивную информацию для видеоблока текущего видеослайса путем анализа векторов движения и других синтаксических элементов и использует предиктивную информацию для создания предиктивных блоков для текущего декодируемого видеоблока. Например, модуль 82 компенсации движения может использовать некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутреннего или внешнего предсказания), использованного для кодирования видеоблоков слайса видео, типа слайса внешнего предсказания (например, слайс B, слайс P или слайс GPB). Дополнительно, модуль 82 компенсации движения может использовать информацию построения для одного или более списков опорных изображений слайса, векторов движения для каждого внешне закодированного видеоблока слайса, статуса внешнего предсказания для каждого внешне кодированного видеоблока слайса и другую информацию для декодирования видеоблоков в текущем видеослайсе.
[0104] Модуль 82 компенсации движения также может выполнять интерполяцию на основе интерполяционных фильтров. Модуль 82 компенсации движения может использовать интерполяционные фильтры в качестве используемых посредством видеокодера 20 во время кодирования видеоблоков для вычисления интерполированных значений для субцелочисленных пикселей опорных блоков. В таком случае модуль 82 компенсации движения может определять интерполяционные фильтры, использованные видеокодером 20, из принятых синтаксических элементов и использовать интерполяционные фильтры для создания предиктивных блоков.
[0105] Модуль 86 обратного квантования обратно квантует, т.е. деквантует, квантованные коэффициенты преобразования, обеспеченные в битовом потоке и декодированные модулем 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисляемого видеокодером 20 для каждого видеоблока в видеослайсе, для определения степени квантования и, точно так же, степени обратного квантования, которая должна быть применена. Модуль 88 обратного преобразования применяет обратное преобразование, например обратное DCT, обратное целочисленное преобразование или концептуально похожий процесс обратного преобразования, к коэффициентам преобразования для создания остаточных блоков в пиксельной области.
[0106] После того как модуль 82 компенсации движения генерирует предиктивный блок для текущего видеоблока на основе векторов движения и других синтаксических элементов, видеодекодер 30 формирует декодированный видеоблок путем суммирования остаточных блоков модуля 88 обратного преобразования с соответствующими предиктивными блоками, сгенерированными модулем 82 компенсации движения. Сумматор 90 представляет собой компонент или компоненты, которые выполняют данную операцию суммирования. При необходимости контурные фильтры (либо в контуре кодирования, либо после контура кодирования) также могут быть использованы для сглаживания пиксельных переходов или, в противном случае, улучшения качества видео. Модуль 91 фильтра предназначен для представления одного или более контурных фильтров, таких как деблокирующий фильтр, адаптивный контурный фильтр (ALF) и фильтр адаптивного к выборке смещения (SAO). Хотя модуль 91 фильтра показан на ФИГ. 3 как являющийся внутриконтурным фильтром, в других конфигурациях модуль 91 фильтра может быть реализован как пост-контурный фильтр. Декодированные видеоблоки в данном кадре или изображении затем сохраняются в памяти 92 опорных изображений, которая хранит опорные изображения, используемые для последующей компенсации движения. Память 92 опорных изображений также хранит декодированное видео для последующего представления на устройстве отображения, таком как устройство 32 отображения на ФИГ. 1.
[0107] Видеодекодер 30 на ФИГ. 3 представляет собой пример видеодекодера, сконфигурированного для обработки одного изображения чистого произвольного доступа (CRA) как изображения доступа с разорванной ссылкой (BRA), как описано в этом документе.
[0108] ФИГ. 4 является блок-схемой, иллюстрирующей примерный набор устройств, которые формируют часть сети 100. В этом примере сеть 100 включает в себя устройства 104А, 104B маршрутизации (устройства 104 маршрутизации) и устройство 106 транскодирования. Устройства 104 маршрутизации и устройство 106 транскодирования предназначены для представления небольшого количества устройств, которые могут формировать часть сети 100. Другие сетевые устройства, такие как коммутаторы, концентраторы, шлюзы, межсетевые экраны, мосты и другие подобные устройства, также могут быть включены в сеть 100. Более того, могут быть обеспечены дополнительные сетевые устройства в сетевом тракте между устройством 102 сервера и клиентским устройством 108. Устройство 102 сервера может соответствовать устройству-источнику 12 (ФИГ. 1), в то время как клиентское устройство 108 может соответствовать устройству-адресату 14 (ФИГ. 1), в некоторых примерах. Соответственно, устройство 102 сервера обычно не принимает внешнее указание для обработки изображения CRA как изображения BLA. Однако сервер 102 может обеспечить внешнее указание 34 к клиентскому устройству 108, которое побуждает клиентское устройство 108 обрабатывать изображение CRA, принятое на устройстве-адресате, как изображение BLA. Аналогичным образом, однако, устройства 104А, 104B маршрутизации (устройства 104 маршрутизации) и устройство 106 транскодирования обычно не принимают внешнее указание обрабатывать изображение CRA как изображение BLA, но могут обеспечить внешнее указание 34 клиентскому устройству 108, чтобы клиентское устройство 108 обрабатывало изображение CRA, принятое в устройстве-адресате, как изображение BLA. Некоторые примеры, описанные в этом документе, могут включать в себя одно или более из нижеследующего: сетевые устройства, серверы MANE, кэши протокола передачи гипертекста («HTTP») или веб-прокси.
[0109] В некоторых примерах клиентское устройство 108 может устанавливать флаг после приема сообщения о том, что произошло изменение в частоте следования битов битового потока. Соответственно, клиентское устройство может устанавливать флаг на основе изменения частоты следования битов. В некоторых примерах декодер в клиентском устройстве 108 может декодировать единицу NAL кодированного слайса. Модуль предсказания в декодере в клиентском устройстве 108 может анализировать единицу NAL каждого кодированного слайса для идентификации типа единицы NAL. Дополнительно, модуль предсказания может декодировать единицу NAL кодированного слайса на основе типа единицы NAL.
[0110] Обычно устройства 104 маршрутизации реализуют один или более протоколов маршрутизации для обмена сетевыми данными по сети 100. В некоторых примерах устройства 104 маршрутизации могут быть сконфигурированы для выполнения операций кэширования или посредничества. Поэтому в некоторых примерах устройства 104 маршрутизации могут упоминаться как устройства-посредники. Обычно устройства 104 маршрутизации исполняют протоколы маршрутизации для обнаружения маршрутов через сеть 100. Путем исполнения таких протоколов маршрутизации устройство 104B маршрутизации может обнаруживать сетевой маршрут от себя к устройству 102 сервера через устройство 104А маршрутизации.
[0111] Приемы данного раскрытия могут быть реализованы сетевыми устройствами, такими как устройства 104 маршрутизации и устройство 106 транскодирования, но также могут быть реализованы клиентским устройством 108. Таким образом, устройства 104 маршрутизации, устройство 106 транскодирования и клиентское устройство 108 представляют собой примеры устройств, сконфигурированных для выполнения приемов данного раскрытия, в том числе приемов, изложенных в разделе ФОРМУЛА ИЗОБРЕТЕНИЯ данного раскрытия. Более того, устройства на ФИГ. 1 и кодер, показанный на ФИГ. 2, и декодер, показанный на ФИГ. 3, также являются примерными устройствами, которые могут быть сконфигурированы для выполнения приемов данного раскрытия, в том числе приемов, изложенных в разделе ФОРМУЛА ИЗОБРЕТЕНИЯ данного раскрытия.
[0112] ФИГ. 5 является блок-схемой последовательности операций, иллюстрирующей примерный способ в соответствии с одним или более примерами, описанными в данном раскрытии. В качестве примера видеодекодер 30 или другое устройство принимает внешнее указание (500). Затем видеодекодер 30 обрабатывает изображение чистого произвольного доступа (CRA) как изображение доступа с разорванной ссылкой (BLA) на основе внешнего указания (502). В некоторых примерах внешнее указание указывает, должен ли флаг быть установлен в видеодекодер. Соответственно, видеодекодер может устанавливать флаг на основе внешнего указания, что будет обсуждаться более подробно относительно ФИГ. 6. Декодер или некоторое внутреннее функциональное средство, такое как блок обработки внешнего указания или модуль предсказания, может затем проверить флаг. В одном примере модуль предсказания может обрабатывать изображение CRA как изображение BLA на основе внешнего указания, которое указывает, что изображение CRA должно быть рассмотрено в качестве изображения BLA на основе флага.
[0113] ФИГ. 6 является блок-схемой последовательности операций, иллюстрирующей другой примерный способ в соответствии с одним или более примерами, описанными в данном раскрытии. В иллюстрируемом примере видеодекодер 30 принимает внешнее указание 70 о том, что флаг 74 должен быть установлен (600). В иллюстрируемом примере внешнее указание 70 принимается видеодекодером 30. В других примерах внешнее указание 70 может быть принято и обработано внешне относительно видеодекодера 30.
[0114] Блок 72 обработки внешнего указания устанавливает первый флаг 74 на основе внешнего указания (602). Первый флаг затем передается модулю 81 предсказания. В проиллюстрированном примере блок 72 обработки внешнего указания находится в пределах видеодекодера 30. В других примерах блок 72 обработки внешнего указания может быть внешним относительно и отдельным от видеодекодера 30.
[0115] В декодере 30 модуль 81 предсказания проверяет флаг и, когда флаг установлен, обрабатывает изображение чистого произвольного доступа (CRA) как изображение доступа с разорванной ссылкой (BLA) (604). В примере, когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, если первый флаг равен "1" и тип единицы NAL единицы NAL кодированного слайса указывает изображение CRA (например, значение равно "4" или "5" согласно HEVC WD7), блок 72 обработки внешнего указания или другой блок в пределах видеодекодера 30 изменяет значение типа единицы NAL для указания изображения BLA (например, увеличивает значение типа единицы NAL на 2 согласно HEVC WD7). Дополнительно, модуль 81 предсказания устанавливает значение второго флага в 1. Если предшествующим изображением в порядке декодирования является изображение RAP и rap_pic_id текущего слайса равен rap_pic_id предыдущего изображения, применяется нижеследующее. Если следующим изображением в порядке декодирования не является изображение RAP, изменяется значение rap_pic_id текущего слайса, чтобы стать отличным от rap_pic_id предыдущего изображения в порядке декодирования. Иначе, значение rap_pic_id текущего изображения изменяется с тем, чтобы стать значением, которое отличается от rap_pic_id как предыдущего изображения, так и следующего изображения в порядке декодирования.
[0116] В другом примере в видеодекодере 30 модуль 81 предсказания или другой блок в пределах видеодекодера 30 декодирует единицу NAL кодированного слайса. Если первый флаг равен "1" и тип единицы NAL единицы NAL кодированного указывает изображение CRA (например, значение равно "4" или "5" согласно HEVC WD7), модуль предсказания (или другой блок) изменяет значение типа единицы NAL для указания изображения BLA (например, увеличивает значение типа единицы NAL на 2 согласно HEVC WD7). Возможно дополнительно, если имеются сообщения SEI синхронизации изображений и время вывода из DPB для всех изображений в DPB меньше, чем время вывода из DPB текущего изображения, модуль 81 предсказания или другой блок устанавливает значение второго флага в 1. Иначе, если значение второго флага установлено в "0" и если предшествующим изображением в порядке декодирования является изображение RAP и rap_pic_id текущего слайса равен rap_pic_id предшествующего изображения, применяется нижеследующее. Если следующим изображением в порядке декодирования не является изображение RAP, модуль 81 предсказания или другой блок изменяет значение rap_pic_id текущего слайса, чтобы оно стало отличным от rap_pic_id предшествующего изображения в порядке декодирования. Иначе, значение rap_pic_id модуля предсказания или другого блока изменяет текущее изображение, чтобы оно стало значением, которое отличается от rap_pic_id как предыдущего изображения, так и следующего изображения в порядке декодирования.
[0117] ФИГ. 7 является блок-схемой последовательности операций, иллюстрирующей примерный способ в соответствии с одним или более примерами, описанными в данном раскрытии. Устройство, такое как сетевое устройство, например MANE, принимает битовый поток, включающий в себя изображение CRA (700). Сетевое устройство определяет, что изображение CRA должно быть обработано как изображение BLA (702). Например, сетевое устройство может определять, что изображение CRA должно быть обработано как изображение BLA для обеспечения возможности вывода и/или отображения большего количества изображений, когда отбрасываются все выводимые декодируемые изображения раньше в порядке декодирования, чем изображения BLA или IDR, после декодирования изображения BLA или IDR без вывода и/или отображения. Иногда отображение большего количества таких изображений может обеспечить лучшее восприятие пользователем. Соответственно, сетевое устройство передает изображение CRA и внешнее указание о том, что изображение CRA должно быть преобразовано в изображение BLA (704).
[0118] ФИГ. 8 является блок-схемой последовательности операций, иллюстрирующей примерную работу по отправке первым устройством внешнего указания и ответные действия второго устройства по приему внешнего указания. Устройство-источник, такое как сетевое устройство, например MANE, принимает битовый поток, включающий в себя изображение CRA (800). Сетевое устройство определяет, что изображение CRA должно быть обработано как изображение BLA (802). Соответственно, сетевое устройство передает изображение CRA и внешнее указание о том, что изображение CRA должно быть преобразовано в изображение BLA (804). Видеодекодер 30 принимает изображение CRA и внешнее указание 70 о том, что изображение CRA должно быть преобразовано в изображение BLA (806).
[0119] Блок 72 обработки внешнего указания устанавливает флаг 74 на основе внешнего указания (808). Флаг затем может быть передан модулю 81 предсказания. В одном примере блок 72 обработки внешнего указания находится в пределах видеодекодера 30. В других примерах блок 72 обработки внешнего указания может быть внешним относительно и отдельным от видеодекодера 30. В декодере 30 модуль 81 предсказания проверяет флаг и, когда флаг установлен, обрабатывает изображения CRA как изображения BLA (810).
[0120] В примере на ФИГ. 8 флаг используется для указания, что внешнее указание было принято. В других примерах, аналогичных ФИГ. 5, видеодекодер 30 или другое устройство принимает внешнее указание и затем обрабатывает изображение CRA как изображение BLA на основе внешнего указания.
[0121] В одном примере декодер изменяет изображение CRA на изображение BLA как функция на стороне декодера. При приеме или выведении такого сообщения одна функция стороны декодера может выполнять изменение идентифицированного изображения CRA на изображение BLA битового потока до кодированного изображения к декодеру для декодирования.
[0122] Изображение CRA может быть изменено на изображение BLA. Для единицы NAL каждого кодированного слайса, если nal_unit_type указывает изображение CRA, например, значение равно "4" или "5" согласно HEVC WD7, применяется следующее: (1) значение nal_unit_type изменяется для указания изображения BLA, например значение увеличивается на 2, (2) значение no_output_of_prior_pics_flag устанавливается в 1, (3) если предыдущим изображением в порядке декодирования является изображение RAP и rap_pic_id текущего слайса равен rap_pic_id предыдущего изображения, применяется нижеследующее: (а) если следующим изображением в порядке декодирования не является изображение RAP, значение rap_pic_id текущего слайса изменяется, чтобы стать отличным от rap_pic_id предыдущего изображения в порядке декодирования, но все еще в разрешенном диапазоне значений синтаксического элемента, или (b) иначе (следующим изображением в порядке декодирования является изображение RAP), значение rap_pic_id текущего изображения изменяется, чтобы стать значением, отличным от rap_pic_id как для предыдущего изображения, так и следующего изображения в порядке декодирования, но все еще в разрешенном диапазоне значений синтаксического элемента.
[0123] Ниже описано рассмотрение изображения CRA в качестве изображения CRA, которое начинает битовый поток. Указание, что некоторое конкретное изображение CRA должно быть рассмотрено в качестве изображения BLA, как описано выше, также может быть изменено на или интерпретировано как указание о том, что конкретное изображение CRA должно быть рассмотрено в качестве изображения CRA, которое является первым изображением в битовом потоке, при условии, что изменения, описанные ниже, сделаны в проектной спецификации HEVC.
[0124] В одном примере переменная CraIsFirstPicFlag ассоциирована с каждым изображением CRA. Значение CraIsFirstPicFlag для некоторых изображений CRA может быть точно определено внешними средствами. Если изображение CRA является первым изображением в битовом потоке, тогда значение CraIsFirstPicFlag для изображения CRA устанавливается в 1, вне зависимости от значения, указанного внешним указанием (когда присутствует). Иначе, когда значение CraIsFirstPicFlag для изображения CRA не определено точно внешними средствами, оно устанавливается в "0".
[0125] В ходе декодирования (в том числе анализа) единицы NAL каждого кодированного слайса, если CraIsFirstPicFlag равен '"1" и nal_unit_type равен "4" или "5", значение no_output_of_prior_pics_flag может быть установлено в 1. Если предыдущим изображением в порядке декодирования является изображение RAP и rap_pic_id текущего слайса равен rap_pic_id предыдущего изображения, тогда, если следующим изображением в порядке декодирования не является изображение RAP, значение rap_pic_id текущего слайса изменяется, чтобы быть отличным от rap_pic_id предыдущего изображения в порядке декодирования, но все еще в разрешенном диапазоне значение синтаксического элемента. Иначе (следующим изображением в порядке декодирования является изображение RAP), значение rap_pic_id текущего слайса изменяется, чтобы быть значением, которое отличается от rap_pic_id как предыдущего изображения, так и следующего изображения в порядке декодирования, но все еще находиться в разрешенном диапазоне значений синтаксического элемента.
[0126] В качестве альтернативы, вместо установки значение no_output_of_prior_pics_flag может быть установлено в 1, модуль 81 предсказания может, если имеются сообщения SEI синхронизации изображений и время вывода из DPB для всех изображений в DPB меньше, чем время вывода из DPB текущего изображения, значение no_output_of_prior_pics_flag устанавливается в 1, иначе значение no_output_of_prior_pics_flag устанавливается в "0".
[0127] В других примерах различные определения счета порядка изображения, отмеченные для отбрасывания (TFD) изображения, могут быть изменены из HEVC WD9 или других рабочих проектов стандарта. Соответственно, определения, обеспеченные ниже по тексту могут отличаться от стандарта. Эти определения могут не применяться к некоторым или всем примерах, описанным в этом документе.
[0128] В некоторых примерах кодированной видеопоследовательностью является последовательность единиц доступа, которая может включать в себя, в порядке декодирования, единицу доступа CRA, которая может иметь CraIsFirstPicFlag, равный 1, единицу доступа IDR или единицу доступа BLA, за которой следует ноль, или больше единиц доступа не-BLA и не-IDR, включающих в себя все последующие единицы доступа вплоть до, но без включения в состав, любой последующей единицы доступа BLA или IDR.
[0129] В некоторых примерах счет порядка изображения может являться переменной, которая может быть ассоциирована с каждым кодированным изображением и имеет значение, которое увеличивается с увеличением позиции изображения в порядке вывода относительно одного из следующих кодированных изображений: (1) предыдущее изображение IDR в порядке декодирования, если такое имеется, (2) предыдущее изображение BLA в порядке декодирования, если такое имеется, и (3) предыдущее изображение CRA в порядке декодирования, если такое имеется и, в некоторых примерах, если предыдущее изображение CRA имеет CraIsFirstPicFlag равный 1.
[0130] В некоторых примерах, если представлено более одного из вышеуказанных кодированных изображений, счет порядка изображения относится к последнему из подобных кодированных изображений в порядке декодирования. Отмеченное для отбрасывания (TFD) изображение: кодированное изображение, для которого каждый слайс имеет nal_unit_type, равный 2; изображение TFD ассоциировано с предыдущим изображением CRA или изображением BLA в порядке декодирования и предшествует ассоциированному изображению в порядке вывода; когда ассоциированным изображением является изображение BLA или когда ассоциированным изображением является изображение CRA, которое может иметь CraIsFirstPicFlag, равный 1, изображение TFD может не являться корректно декодируемым и не выводиться.
[0131] В некоторых примерах семантика no_output_of_prior_pics_flag может быть изменена таким образом, что no_output_of_prior_pics_flag точно определяет то, как ранее декодированные изображения в буфере декодированных изображений обрабатываются после декодирования изображения CRA c CraIsFirstPicFlag, равным 1, или изображения BLA или IDR.
[0132] В некоторых примерах, когда изображением CRA c CraIsFirstPicFlag, равным 1, или изображением BLA или IDR является первое изображение в битовом потоке, значение no_output_of_prior_pics_flag не влияет на процесс декодирования. Когда изображение CRA c CraIsFirstPicFlag, равным 1, или изображение BLA или IDR не является первым изображением в битовом потоке и значение pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ sps_max_temporal_layers_minus1 ], извлеченное из активного набора параметров последовательности, отличается от значения pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ sps_max_temporal_layers_minus1 ], извлеченного из набора параметров последовательности, активного для предшествующего изображения, no_output_of_prior_pics_flag, равный 1, может (но не должен) быть выведен декодером, вне зависимости от фактического значения no_output_of_prior_pics_flag.
[0133] В некоторых примерах изменение может быть сделано по отношению к нижеследующему в подпункте 8.1 HEVC WD7, например изменение: если первым кодированным изображением в битовом потоке является изображение CRA и текущим изображением является изображение TFD, ассоциированное с изображением CRA, или если предыдущим изображением RAP, предшествующим текущему изображению в порядке декодирования, является изображение BLA и текущим изображением является изображение TFD, ассоциированное с изображением BLA, PicOutputFlag устанавливается равным "0" и вызывается процесс декодирования для генерирования недоступных опорных изображений, точно определенный в подпункте 8.3.3 (только необходимо, чтобы он был вызван для одного слайса изображения), НА: если изображение CRA имеет CraIsFirstPicFlag, равный 1, и текущим изображением является изображение TFD, ассоциированное с изображением CRA, или если предыдущим изображением RAP, предшествующим текущему изображению в порядке декодирования, является изображение BLA и текущим изображением является изображение TFD, ассоциированное с изображением BLA, PicOutputFlag устанавливается равным "0" и вызывается процесс декодирования для генерирования недоступных опорных изображений, точно определенный в подпункте 8.3.3 (только необходимо, чтобы он был вызван для одного слайса изображения).
[0134] В некоторых примерах изменение нижеследующего в подпункте 8.3.1 HEVC WD7 может быть сделано, например изменение: текущим изображением является изображение CRA и является первым кодированным изображением в битовом потоке НА текущим изображением является изображение CRA c CraIsFirstPicFlag, равным 1.
[0135] В некоторых примерах изменение нижеследующего в подпункте 8.3.1 HEVC WD7 может быть сделано, например изменение: если текущим изображением является изображение BLA или IDR или если первым кодированным изображением в битовом потоке является изображение CRA и текущее изображение является первым кодированным изображением в битовом потоке, PicOrderCntMsb устанавливается равным "0". Иначе, PicOrderCntMsb извлекается, как точно определено нижеследующим псевдо-кодом, НА, если текущим изображением является изображение BLA или IDR или изображение CRA с CraIsFirstPicFlag, равным 1, PicOrderCntMsb устанавливается равным "0". Иначе, PicOrderCntMsb извлекается, как точно определено нижеследующим псевдо-кодом.
[0136] В некоторых примерах изменение нижеследующего в подпункте 8.3.2 HEVC WD7 может быть сделано, например изменение ПРИМЕЧАНИЕ 4 - могут быть одно или более опорных изображений, которые включены в набор опорных изображений, но не присутствуют в буфере декодированных изображений. Записи в RefPicSetStFoll или RefPicSetLtFoll, которые равны "нет опорного изображения", должны быть проигнорированы. Пока любое из нижеследующих двух условий не является истиной, непреднамеренная потеря изображения должна быть выведена для каждой записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetLtCurr, которая равна "нет опорного изображения": а) первым кодированным изображением в битовом потоке является изображение CRA и текущим кодированным изображением является изображение TFD, ассоциированное с первым кодированным изображением в битовом потоке; b) предыдущим изображением RAP, предшествующим текущему кодированному изображению в порядке декодирования, является изображение BLA и текущим кодированным изображением является изображение TFD, ассоциированное с изображением BLA, НА ПРИМЕЧАНИЕ 4 - Могут быть одно или более опорных изображений, которые включены в набор опорных изображений, но не имеются в буфере декодированных изображений. Записи в RefPicSetStFoll или RefPicSetLtFoll, которые равны "нет опорного изображения", должны быть проигнорированы. Пока предыдущим изображением RAP, предшествующим текущему кодированному изображению в порядке декодирования, является изображение CRA c CraIsFirstPicFlag, равным "1", или изображение BLA и текущим кодированным изображением является изображение TFD, ассоциированное с предыдущим изображением RAP, непреднамеренная потеря изображения должна быть выведена для каждой записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter и RefPicSetLtCurr, которая равна "нет опорного изображения".
[0137] В некоторых примерах изменение нижеследующего в подпункте 8.3.2. HEVC WD7 может быть сделано, например изменение: пока любое из нижеследующих условий не является истинным, не должно быть никакой записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetLtCurr, которая равна "нет опорного изображения": а) первым кодированным изображением в битовом потоке является изображение CRA и текущим кодированным изображением является изображение TFD, ассоциированное с первым кодированным изображением в битовом потоке; b) предыдущим изображением RAP, предшествующим текущему кодированному изображению в порядке декодирования, является изображение BLA и текущим кодированным изображением является изображение TFD, ассоциированное с изображением BLA, НА, пока предыдущим изображением RAP, предшествующим текущему кодированному изображению в порядке декодирования, не является изображение CRA c CraIsFirstPicFlag, равным "1", или изображение BLA и текущим кодированным изображением не является изображение TFD, ассоциированное с предыдущим изображением RAP, не должно быть никакой записи в RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetLtCurr, которая равна "нет опорного изображения".
[0138] В некоторых примерах изменение в первых трех абзацах в подпункте 8.3.3.1 HEVC WD7 может быть сделано следующим образом: этот процесс вызывается один раз для каждого кодированного изображения, после вызова процесса декодирования для набора опорных изображений, как точно определено в подпункте 8.3.2., когда предыдущим изображением RAP, предшествующим текущему кодированному изображению в порядке декодирования, является изображение CRA с CraIsFirstPicFlag, равным "1", или изображение BLA и текущим кодированным изображением является изображение TFD, ассоциированное с предыдущим изображением RAP. ПРИМЕЧАНИЕ 1 - Полная спецификация, в данном документе, процесса декодирования для изображений TFD, ассоциированных с изображением CRA в начале битового потока, или для изображений TFD, ассоциированных с изображением BLA, включена только для целей точного определения ограничений на допустимое содержимое синтаксиса таких изображений. В фактических декодерах любые изображения TFD, ассоциированные с изображением CRA в начале битового потока, или любые изображения TFD, ассоциированные с изображением BLA, могут быть попросту проигнорированы (удалены из битового потока и отброшены), так как они не определены точно для вывода и не влияют на процесс декодирования любых других изображений, которые точно определены для вывода. Когда предыдущим изображением RAP, предшествующим текущему кодированному изображению в порядке декодирования, является изображение CRA c CraIsFirstPicFlag, равным "1", или изображение BLA и текущим кодированным изображением является изображение TFD, ассоциированное с предыдущим изображением RAP, применяется нижеследующее.
[0139] В некоторых примерах изменение нижеследующего в подпункте С.4 HEVC WD7 может быть сделано, например изменение: ПРИМЕЧАНИЕ 1 - Данное ограничение гарантирует декодируемость изображения TFD, если его ассоциированное изображение RAP является изображением CRA и если данное изображение CRA не является первым кодируемым изображением в битовом потоке НА ПРИМЕЧАНИЕ 1 - Данное ограничение гарантирует декодируемость изображения TFD, если его ассоциированное изображение RAP является изображением CRA и если данное изображение CRA имеет CraIsFirstPicFlag, равный "0".
[0140] В некоторых примерах изменение в третий абзац в подпункте С.3.1 HEVC WD7 может быть сделано следующим образом: Если текущим изображением является изображение CRA c CraIsFirstPicFlag, равным 1, или изображение BLA или IDR, применяется нижеследующее, когда изображение CRA c CraIsFirstPicFlag, равным 1, или изображение BLA или IDR не является декодированным изображением и значение pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ] для любого возможного значения i, извлеченное из активного набора параметров последовательности, отличается от значения pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ], извлеченного из набора параметров последовательности, который был активным для предшествующего изображения, соответственно, no_output_of_prior_pics_flag выводится, чтобы быть равным "1" посредством HRD вне зависимости от фактического значения no_output_of_prior_pics_flag. ПРИМЕЧАНИЕ 1 - Реализации декодера должны пытаться обрабатывать изображение или изменения размера DPB более изящно, чем HRD, относительно изменений в pic_width_in_luma_samples, pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ]. Когда no_output_of_prior_pics_flag равен "1" или выведен как равный 1, все буферы хранения изображений в DPB опустошаются без вывода изображений, которые они содержат, и заполненность DPB устанавливается в "0".
[0141] В некоторых примерах изменение всего подпункта С.5.2. HEVC WD7 может быть сделано следующим образом, удаление изображений из DPB до декодирования текущего изображения (но после анализа заголовка слайса первого слайса текущего изображения) происходит мгновенно, когда первая единица декодирования единицы доступа, содержащей текущее изображение, удаляется из CPB и происходит следующим образом. Вызывается процесс декодирования для набора опорных изображений, как точно определено в подпункте 8.3.2. Если текущим изображением является изображение CRA c CraIsFirstPicFlag, равным "1", или изображение BLA или IDR, применяется нижеследующее. Когда изображение CRA c CraIsFirstPicFlag, равным 1, или изображение BLA или IDR не является первым декодируемым изображением и значение pic_width_in_luma_samples или pic_height_in_luma_samples or sps_max_dec_pic_buffering[ i ] для любого возможного значения i, извлеченное из активного набора параметров последовательности, отличается от значения pic_width_in_luma_samples или pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ], извлеченного из набора параметров последовательности, который был активным для предшествующего изображения, соответственно, no_output_of_prior_pics_flag выводится, чтобы быть равным "1" посредством HRD вне зависимости от фактического значения no_output_of_prior_pics_flag. ПРИМЕЧАНИЕ - Реализации декодера должны пытаться обрабатывать изображение или изменения размеров DPB более изящно, чем HRD, относительно изменений в pic_width_in_luma_samples, pic_height_in_luma_samples или sps_max_dec_pic_buffering[ i ]. Когда no_output_of_prior_pics_flag равен 1 или выводится, чтобы быть равным 1, все буферы хранения изображений в DPB опустошаются без вывода изображений, которые они содержат. Иначе, буферы хранения изображений, содержащие изображение, которое помечено как "не требуется для вывода" или "неиспользуемое для ссылки", опустошаются (без вывода). Когда одно или более из нижеследующих условий является истинным, процесс "резкого изменения параметров", точно определенный в подпункте С.5.2.1, неоднократно вызывается до появления пустого буфера хранения изображений для сохранения текущего декодированного изображения. Количество изображений в DPB, которые отмечены как "требуются для вывода", является большим чем sps_num_reorder_pics[ temporal_id ]. Количество изображений в DPB с temporal_id, меньшим или равным temporal_id текущего изображения равно sps_max_dec_pic_buffering[ temporal_id ].
[0142] В некоторых примерах, когда текущим изображением является изображение CRA с CraIsFirstPicFlag, равным "1", или изображение BLA или IDR, для которого no_output_of_prior_pics_flag не равен "1" и не выведен как равный 1, выполняются нижеследующие два этапа. Буферы хранения изображений, содержащие изображение, которое отмечено как "не требуется для вывода" или "неиспользуемое для ссылки", опустошаются (без вывода). Все не опустошенные буферы хранения изображений в DPB опустошаются путем многократного вызова процесса "резкого изменения параметров", точно определенного в подпункте С.5.2.1.
[0143] Некоторые примеры могут включать в себя процесс "резкого изменения параметров". Процесс "резкого изменения параметров" может быть вызван в нижеследующих случаях: (1) текущим изображением является изображение CRA с CraIsFirstPicFlag, равным "1", или изображение BLA или IDR и no_output_of_prior_pics_flag не равен "1" и не выведен равным 1, как точно определено в подпункте С.5.2, (2) количество изображений в DPB, которые помечены как "требуется для вывода", больше, чем sps_num_reorder_pics[ temporal_id ], как точно определено в подпункте С.5.2, и (3) количество изображений в DPB с temporal_id, меньшим или равным temporal_id текущего изображения, равно sps_max_dec_pic_buffering[ temporal_id ], как точно определено в подпункте C.5.2.
[0144] Процесс "резкого изменения параметров" может включать в себя нижеследующие упорядоченные этапы: (1) изображение, которое является первым для вывода, выбирается в качестве изображения, которое имеет наименьшее значение PicOrderCntVal из всех изображений в DPB, помеченных как "требуется для вывода", (2) изображение кадрируется, посредством использования кадрирующего прямоугольника, точно определяемого в активном наборе параметров последовательности для изображения, кадрированное изображение выводится и изображение помечается как "не требуется для вывода", (3) если буфер хранения изображений, который включает в себя изображение, которое было кадрировано, и вывод содержит изображение, помеченное как "неиспользуемое для ссылки", буфер хранения изображений опустошается.
[0145] В некоторых примерах совместно с вышеуказанными изменениями в проектной спецификации HEVC может быть возможным дополнительное удаление всех текстовых сообщений для поддержки изображений BLA.
[0146] Сейчас будет описан усовершенствованный вывод изображений. В качестве примера предполагается, что no_output_of_prior_pics_flag изменяется на output_all_prior_pics_flag, данный флаг, равный "1", имеет эквивалентное значение, когда no_output_of_prior_pics_flag равен "0". Когда данный флаг равен "0", кроме того, количество предшествующих изображений, которые могут быть использованы для вывода/отображения, сигнализируется как num_output_pics. num_output_pics, может быть сигнализировано как u(v), данный синтаксический элемент находится в диапазоне от 0 до MaxDpbSize не включительно. Изображения num_output_pics, которые должны быть выведены/отображены, являются изображениями, имеющими порядок отображения, близкий к изображению IDR или BLA, и в первом битовом потоке num_output_pics может быть связано с количеством ведущих изображений, которым не требуется быть выведенными.
[0147] В качестве альтернативы, num_output_pics может быть сигнализировано как ue(v). В качестве альтернативы, no_output_of_prior_pics_flag, output_all_prior_pics_flag, или num_output_pics не сигнализируется и num_prior_discard_pics непосредственно сигнализируется как u(v) или ue(v) num_prior_discard_pics находится в диапазоне от 0 до MaxDpbSize не включительно. Это указывает количество предшествующих изображений, которые должны быть отброшены. Изображения num_prior_discard_pics, которые должны быть отброшены (таким образом, не отображены), являются изображениями, имеющими порядок отображения, более отдаленный относительно изображения IDR или BLA и в первом битовом потоке.
[0148] В качестве альтернативы, сообщение SEI может быть добавлено во время соединения для указания дополнительной памяти исходя из количества кадров в первом битовом потоке, необходимой для отображения всех изображений в первом битовом потоке, которые не были отображены.
[0149] Ниже описано сигнализирование синхронизации изображений. Указание одной или более различной информации синхронизации, например, самое раннее время представления (то есть самое раннее время вывода из DPB) и наименьшее значение счета порядка изображения всех изображений TFD, ассоциированных с одним изображением CRA или BLA, может быть включено в битовый поток. Информация может быть включена в одно или более из заголовка слайса и сообщения SEI (например, сообщения SEI точки восстановления, или сообщения SEI периода буферизации, или сообщения SEI синхронизации изображений). Один или более из нижеследующих синтаксических элементов могут быть включены в заголовок слайса изображения RAP или сообщение SEI, ассоциированное с изображением RAP, для сигнализирования информации: (1) delta_earliest_presentation_time, указывающего разницу между временем вывода из DPB изображения RAP и самым ранним временем вывода из DPB любого изображения, когда изображение RAP является первым изображением в битовом потоке (то есть самым ранним временем вывода из DPB из всех DLP, ассоциированных с изображением RAP) в единицах тактов синхронизации, как точно определено в Приложении C HEVC WD7. Синтаксический элемент может быть кодированным u(v) и количество битов, используемых для представления синтаксического элемента, равно cpb_removal_delay_length_minus1 + 1 битов. Значение "0" указывает, что изображение RAP не имеет ассоциированных DLP, (2) delta_earliest_poc, указывающим разницу между значением PicOrderCntVal изображения RAP и наименьшим значением PicOrderCntVal какого-либо изображения, когда изображение RAP является первым изображением в битовом потоке (то есть наименьшим и самым ранним значением PicOrderCntVal из всех DLP, ассоциированных с изображением RAP). Синтаксический элемент может быть кодированным ue(v) и диапазон значений может быть от 0 до MaxPicOrderCntLsb/2−1 включительно.
[0150] В одном или более примерах описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении, или любой их комбинации. Если реализованы в программном обеспечении, функции могут быть сохранены на или переданы к, в качестве одной или более инструкций или кода, считываемому компьютером носителю и исполнены посредством, основанного на аппаратном обеспечении, блока обработки. Считываемый компьютером носитель может включать в себя считываемый компьютером носитель данных, который соответствует вещественному носителю, такому как носитель хранения данных, или носитель связи, включающий в себя любой носитель, который содействует переносу компьютерной программы из одного места в другое, например согласно протоколу связи. Таким образом, считываемый компьютером носитель обычно может соответствовать (1) вещественному считываемому компьютером носителю данных, который является невременным, или (2) среде связи, такой как сигнал или несущая. Носителем хранения данных может быть любой из доступных носителей, который может быть доступен посредством одного или более компьютеров или одного или более процессоров для извлечения инструкций, кода и/или структур данных для реализации приемов, описанных в данном раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
[0151] В некоторых примерах любое из сообщения, и синтаксического элемента, включает в себя одно из нижеследующего: (1) delta_earliest_presentation_time, указывающий разность во времени, ассоциированную с одним или более CRA, обрабатываемым как изображения BRA; или (2) delta_earliest_poc, указывающий разницу в значении порядка изображений, ассоциированном с одним или более CRA, обрабатываемыми как изображения BRA.
[0152] Во все еще других примерах это раскрытие предусматривает считываемый компьютером носитель, содержащий структуру данных, сохраненную на нем, в котором структура данных включает в себя закодированный битовый поток в соответствии с этим раскрытием. В частности, структуры данных могут включать в себя проекты единицы NAL, описанные в этом документе.
[0153] В качестве примера изображение CRA может быть обработано как изображения BRA. Видеодекодер 30 может изменять значение типа уровня абстракции сети (NAL), устанавливать значение, которое управляет выводом предшествующих изображений и изменять идентификационное значение (ID) изображения, ассоциированное со следующим изображением. Видеодекодер 30 может принимать синтаксический элемент для указания операции переключения. Синтаксический элемент или сообщение, которое является частью сжатого битового потока и операции переключения, инструктирует декодеру обрабатывать одно или более изображений CRA как изображения BRA. Декодер может затем декодировать битовый поток частично на основе синтаксического элемента.
[0154] В одном примере видеокодер 20 может генерировать синтаксический элемент или сообщение для указания операции переключения. Операция переключения инструктирует декодеру обрабатывать одно или более изображений CRA как изображения BRA. Видеокодер 20 может отправить синтаксический элемент к устройству декодирования как часть сжатого битового потока.
[0155] Путем примера, а не ограничения, такие считываемые компьютером носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может быть использован для хранения желаемого программного кода в форме инструкций или структур данных и который может быть доступен посредством компьютера. Также, любое соединение надлежащим образом именуется считываемым компьютером носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии связи (DSL) или беспроводных подходов, таких как инфракрасные, радио и микроволновые, то коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасные, радио и микроволновые, включаются в определение носителя. Следует понимать, однако, что считываемые компьютером носители данных и носители хранения данных не включают в себя соединения, несущие волны, сигналы, или другие временные носители, но конечно направлены на невременные, временные носители хранения. Диск (disk) и диск (disc), как используются в данном документе, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), флоппи диск и Blu-ray диск, где диски обычно воспроизводят данные магнитно, тогда как диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеописанного также должны быть включены в объем считываемых компьютером носителей.
[0156] Инструкции могут быть исполнены одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), или другими эквивалентными интегрированными или дискретными логическими схемами. Соответственно термин "процессор", как используется в данном документе, может относится к любой из вышеприведенных структур или любой другой структуре, подходящей для реализации приемов, описанных в данном документе. В дополнение, в некоторых аспектах, функциональность, описанная в данном документе, может быть обеспечена в специализированных модулях аппаратного обеспечения и/или программного обеспечения, сконфигурированных для кодирования и декодирования, или включена в объединенный кодек. Также, подходы могут быть полностью реализованы в одной или более схемах или логических элементах.
[0157] Приемы данного раскрытия могут быть реализованы в широком ряде устройств или приборов, в том числе в беспроводных телефонных трубах, интегральных схемах (ИС) или наборах ИС (например, наборах интегральных схем). Различные компоненты, модули, или блоки описаны в этом раскрытии, чтобы подчеркнуть функциональные аспекты устройств, сконфигурированных для выполнения раскрытых подходов, но необязательно требуют реализации посредством разных блоков аппаратного обеспечения. Наоборот, как описано выше по тексту, различные блоки могут быть объединены в блок аппаратного обеспечения кодека или быть обеспечены совокупностью взаимодействующих блоков аппаратного обеспечения, включающих в себя один или более процессоров, как описано выше по тексту, вместе с подходящим программным обеспечением и/или программно-аппаратным обеспечением.
[0158] Были описаны различные примеры. Эти и другие примеры находятся в объеме нижеследующей формулы изобретения.
Изобретение относится к обработке видеоданных и, более конкретно, к приемам для поддержки произвольного доступа в сжатых видеопотоках. Техническим результатом является повышение эффективности обработки и декодирования видеоданных. Предложен способ обработки видеоданных, содержащий этапы: прием сообщения, содержащего внешнее указание от сетевого объекта, на устройстве декодирования видео, в котором внешнее указание указывает, должно ли значение флага быть установлено посредством устройства декодирования видео в одно из значения по умолчанию или установленного значения, причем сетевой объект является отличным и отдельным от устройства декодирования видео; прием битового потока видео на устройстве декодирования видео, при этом битовый поток видео содержит сжатые видеоданные, и при этом битовый поток видео принимается отдельно от сообщения, содержащего внешнее указание; и обработку изображения чистого произвольного доступа (CRA) как изображения доступа с нерабочей ссылкой (BLA) на основе внешнего указания. 4 н. и 37 з.п. ф-лы, 8 ил.
1. Способ обработки видеоданных, содержащий:
прием сообщения, содержащего внешнее указание от сетевого объекта, на устройстве декодирования видео, причем сетевой объект является отличным и отдельным от устройства декодирования видео;
прием битового потока видео на устройстве декодирования видео, при этом битовый поток видео содержит сжатые видеоданные, и при этом битовый поток видео принимается отдельно от сообщения, содержащего внешнее указание; и
обработку изображения чистого произвольного доступа (CRA) как изображения доступа с нерабочей ссылкой (BLA) на основе внешнего указания.
2. Способ по п. 1, в котором внешнее указание указывает, должно ли значение флага быть установлено посредством устройства декодирования видео в одно из значения по умолчанию или установленного значения, причем способ дополнительно содержит:
установку значения флага в значение, заданное сетевым объектом,
при этом обработка изображения CRA как изображения BLA на основе внешнего указания содержит обработку изображения CRA как изображения BLA на основе значения флага, установленного в значение, заданное сетевым объектом.
3. Способ по п. 2, в котором флаг ассоциирован с изображением CRA.
4. Способ по п. 2, в котором значение по умолчанию флага указывает, что изображение CRA не должно обрабатываться как изображение BLA.
5. Способ по п. 2, дополнительно содержащий декодирование единицы уровня абстракции сети (NAL) кодированного слайса, и когда декодируют единицу NAL кодированного слайса, изменение типа единицы NAL собственно единицы NAL кодированного слайса на основе флага, устанавливаемого в установленное значение.
6. Способ по п. 2, в котором флаг содержит первый флаг, причем способ дополнительно содержит, когда декодируют единицу NAL кодированного слайса, на основе первого флага, устанавливаемого в установленное значение, изменение значения второго флага, причем второй флаг управляет выводом предшествующих декодированных изображений.
7. Способ по п. 2, в котором флаг содержит первый флаг, причем способ дополнительно содержит, когда декодируют единицу NAL кодированного слайса, на основе первого флага, устанавливаемого в установленное значение, установку значения второго флага в "1".
8. Способ по п. 5, в котором декодирование единицы NAL кодированного слайса включает в себя анализ единицы NAL кодированного слайса для идентификации типа единицы NAL.
9. Способ по п. 2, в котором флаг содержит первый флаг и в котором, когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, если первый флаг равен 1 и тип единицы NAL собственно единицы NAL кодированного слайса указывает изображение CRA, способ дополнительно содержит изменение значения типа единицы NAL для указания изображения BLA.
10. Способ по п. 2, в котором флагом является HandleCraAsBlaFlag, причем HandleCraAsBlaFlag указывает, должно ли конкретное изображение CRA быть обработано как изображение BLA.
11. Способ по п. 2, дополнительно содержащий, на основе значения флага, установку значения второго флага, причем второй флаг указывает, должно ли по меньшей мере одно изображение, декодированное перед декодированием изображения CRA, выводиться.
12. Устройство декодирования видео, содержащее:
память, сконфигурированную для хранения видеоданных; и
процессор, связанный с памятью, причем процессор сконфигурирован для:
приема сообщения, содержащего внешнее указание от сетевого объекта, на упомянутом устройстве декодирования видео, причем сетевой объект является отличным и отдельным от упомянутого устройства декодирования видео;
приема битового потока видео на упомянутом устройстве декодирования видео, при этом битовый поток видео содержит сжатые видеоданные, и при этом битовый поток видео принимается отдельно от сообщения, содержащего внешнее указание; и
обработки изображения чистого произвольного доступа (CRA) как изображения доступа с нерабочей ссылкой (BLA) на основе внешнего указания.
13. Устройство декодирования видео по п. 12, в котором внешнее указание указывает, должно ли значение флага быть установлено посредством упомянутого устройства декодирования видео в одно из значения по умолчанию или установленного значения, и при этом процессор дополнительно сконфигурирован для:
установки значения флага в значение, заданное сетевым объектом,
при этом обработка изображения CRA как изображения BLA на основе внешнего указания содержит обработку изображения CRA как изображения BLA на основе значения флага, установленного в значение, заданное сетевым объектом.
14. Устройство декодирования видео по п. 13, в котором флаг ассоциирован с изображением CRA.
15. Устройство декодирования видео по п. 13, в котором значение по умолчанию флага указывает, что изображение CRA не должно обрабатываться как изображение BLA.
16. Устройство декодирования видео по п. 13, причем процессор дополнительно сконфигурирован для, когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, изменения типа единицы NAL собственно единицы NAL кодированного слайса на основе флага, устанавливаемого в установленное значение.
17. Устройство декодирования видео по п. 13, в котором флаг содержит первый флаг и процессор упомянутого устройства декодирования видео дополнительно сконфигурирован для, когда декодируют единицу NAL кодированного слайса, на основе первого флага, устанавливаемого в установленное значение, изменения значения второго флага.
18. Устройство декодирования видео по п. 13, в котором флаг содержит первый флаг, причем процессор дополнительно сконфигурирован для, когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, на основе первого флага, устанавливаемого в установленное значение, установки значения второго флага в "1".
19. Устройство декодирования видео по п. 16, причем процессор дополнительно сконфигурирован для анализа каждой единицы NAL кодированного слайса для идентификации типа единицы NAL.
20. Устройство декодирования видео по п. 19, при этом флаг содержит первый флаг и при этом, когда декодируют единицу NAL кодированного слайса, если первый флаг равен 1 и тип единицы NAL собственно единицы NAL кодированного слайса указывает изображение CRA, процессор дополнительно сконфигурирован для изменения значения типа единицы NAL для указания изображения BLA.
21. Устройство декодирования видео по п. 13, в котором флагом является HandleCraAsBlaFlag, причем HandleCraAsBlaFlag указывает, должно ли изображение CRA быть обработано как изображение BLA.
22. Устройство декодирования видео по п. 13, при этом процессор дополнительно сконфигурирован для, на основе значения флага, установки значения первого флага и второго флага, причем второй флаг указывает, должно ли по меньшей мере одно изображение, декодированное перед декодированием изображения CRA, выводиться.
23. Устройство декодирования видео, содержащее:
память;
средство, связанное с памятью, для приема сообщения, содержащего внешнее указание от сетевого объекта, на упомянутом устройстве декодирования видео, причем сетевой объект является отличным и отдельным от упомянутого устройства декодирования видео;
средство, связанное с памятью, для приема битового потока видео на упомянутом устройстве декодирования видео, при этом битовый поток видео содержит сжатые видеоданные, и при этом битовый поток видео принимается отдельно от сообщения, содержащего внешнее указание; и
средство, связанное с памятью, для обработки изображения чистого произвольного доступа (CRA) как изображения доступа с нерабочей ссылкой (BLA) на основе внешнего указания.
24. Устройство декодирования видео по п. 23, в котором внешнее указание указывает, должно ли значение флага быть установлено посредством упомянутого устройства декодирования видео в одно из значения по умолчанию или установленного значения, причем устройство декодирования видео дополнительно содержит:
средство для установки значения флага в значение, заданное сетевым объектом,
при этом обработка изображения CRA как изображения BLA на основе внешнего указания содержит обработку изображения CRA как изображения BLA на основе значения флага, установленного в значение, заданное сетевым объектом.
25. Устройство декодирования видео по п. 24, в котором флаг ассоциирован с изображением CRA.
26. Устройство декодирования видео по п. 24, в котором значение по умолчанию флага указывает, что изображение CRA не должно обрабатываться как изображение BLA.
27. Устройство декодирования видео по п. 24, дополнительно содержащее средство, когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, для изменения типа единицы NAL собственно единицы NAL кодированного слайса на основе флага, устанавливаемого в установленное значение.
28. Устройство декодирования видео по п. 24, причем флаг содержит первый флаг и упомянутое устройство декодирования видео дополнительно содержит средство, когда декодируют единицу NAL кодированного слайса, и на основе первого флага, устанавливаемого в установленное значение, для изменения значения второго флага, причем второй флаг управляет выводом предшествующих декодированных изображений.
29. Устройство декодирования видео по п. 24, причем флаг содержит первый флаг, причем устройство декодирования видео дополнительно содержит средство, когда декодируют единицу NAL кодированного слайса, и на основе первого флага, устанавливаемого в установленное значение, для установки значения второго флага в "1", причем второй флаг управляет выводом предшествующих декодированных изображений.
30. Устройство декодирования видео по п. 27, в котором декодирование единицы NAL кодированного слайса включает в себя анализ каждой единицы NAL кодированного слайса для идентификации типа единицы NAL.
31. Устройство декодирования видео по п. 24, при этом флаг содержит первый флаг, и при этом когда декодируют единицу уровня абстракции сети (NAL) кодированного слайса, если первый флаг равен 1 и тип единицы NAL собственно единицы NAL кодированного слайса указывает изображение CRA, упомянутое устройство декодирования видео изменяет значение типа единицы NAL для указания изображения BLA.
32. Устройство декодирования видео по п. 24, при этом флагом является HandleCraAsBlaFlag, причем HandleCraAsBlaFlag указывает, должно ли изображение CRA быть обработано как изображение BLA.
33. Устройство декодирования видео по п. 24, при этом упомянутое устройство декодирования видео содержит средство для установки, на основе значения флага, значения первого флага и второго флага, причем второй флаг указывает, должно ли по меньшей мере одно изображение, декодированное перед декодированием изображения CRA, выводиться.
34. Считываемый компьютером носитель данных, хранящий исполняемый компьютером код, содержащий инструкции, которые при исполнении побуждают один или более процессоров устройства декодирования видео:
принимать сообщение, содержащее внешнее указание, от сетевого объекта, на упомянутом устройстве декодирования видео, причем сетевой объект является отличным и отдельным от упомянутого устройства декодирования видео;
принимать битовый поток видео на упомянутом устройстве декодирования видео, при этом битовый поток видео содержит сжатые видеоданные, и при этом битовый поток видео принимается отдельно от сообщения, содержащего внешнее указание; и
обрабатывать изображение чистого произвольного доступа (CRA) как изображение доступа с нерабочей ссылкой (BLA) на основе внешнего указания.
35. Считываемый компьютером носитель данных по п. 34, в котором внешнее указание указывает, должно ли значение флага быть установлено посредством устройства декодирования видео в одно из значения по умолчанию или установленного значения, при этом инструкции, при исполнении, дополнительно побуждают один или более процессоров устройства:
устанавливать значение флага в значение, заданное сетевым объектом,
при этом обработка изображения CRA как изображения BLA на основе внешнего указания содержит обработку изображения CRA как изображения BLA на основе значения флага, установленного в значение, заданное сетевым объектом.
36. Считываемый компьютером носитель данных по п. 35, в котором флаг ассоциирован с изображением CRA.
37. Считываемый компьютером носитель данных по п. 35, при этом инструкции дополнительно побуждают один или более процессоров, когда декодируют единицу NAL кодированного слайса, изменять тип единицы NAL собственно единицы NAL кодированного слайса на основе флага, устанавливаемого в установленное значение.
38. Считываемый компьютером носитель данных по п. 35, в котором флаг содержит первый флаг и причем считываемый компьютером носитель дополнительно сконфигурирован для побуждения одного или более процессоров, когда декодируют единицу NAL кодированного слайса, и на основе первого флага, устанавливаемого в установленное значение, изменять значение второго флага, причем второй флаг управляет выводом предшествующих декодированных изображений.
39. Считываемый компьютером носитель данных по п. 37, дополнительно сконфигурированный для побуждения одного или более процессоров анализировать единицу NAL кодированного слайса для идентификации типа единицы NAL.
40. Считываемый компьютером носитель данных по п. 35, в котором флаг содержит первый флаг, причем упомянутый считываемый компьютером носитель данных дополнительно хранит инструкции, которые при исполнении побуждают один или более процессоров упомянутого устройства, когда декодируют единицу NAL кодированного слайса, и на основе первого флага, устанавливаемого в установленное значение, изменять значение второго флага, причем второй флаг управляет выводом предшествующих декодированных изображений.
41. Считываемый компьютером носитель данных по п. 35, причем упомянутый считываемый компьютером носитель данных дополнительно хранит инструкции, которые при исполнении побуждают один или более процессоров упомянутого устройства, на основе значения флага, устанавливать значение второго флага, причем второй флаг указывает, должно ли по меньшей мере одно изображение, декодированное перед декодированием изображения CRA, выводиться.
GARY J | |||
SULLIVAN, CRA pictures with broken links, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JCTVC-I0404 (rev | |||
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
CHEN Y | |||
et al., Conforming bitstreams starting with CRA pictures, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-G319, 7th Meeting: Geneva, 21-30 November, 2011 | |||
US 2010254456 A1, 2010-10-07 | |||
US 2003156640 A1, 2003-08-21 | |||
US 2004066854 A1, 2004-04-08 | |||
RU 2010111711 A, 2011-10-10 | |||
ENJAMIN BROSS et al., High efficiency video coding (HEVC) text specification draft 7, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, vol | |||
ПРИСПОСОБЛЕНИЕ ДЛЯ ИСПАРЕНИЯ И ПОДАЧИ В ДВИГАТЕЛЬ ГОРЮЧЕЙ ЖИДКОСТИ | 1922 |
|
SU1003A1 |
Авторы
Даты
2017-05-02—Публикация
2013-06-17—Подача