СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ Российский патент 2009 года по МПК H04N7/64 H04L13/08 

Описание патента на изобретение RU2375839C2

Область техники, к которой относится изобретение

Настоящее изобретение относится к способу буферизации мультимедийной информации. Изобретение также относится к способу декодирования закодированного потока изображений в декодере, в котором закодированный поток изображений принимается в виде блоков передачи, содержащих мультимедийные данные. Изобретение дополнительно относится к системе, передающему устройству, приемному устройству, компьютерному программному продукту для буферизации закодированных изображений, компьютерному программному продукту для декодирования потока закодированных изображений, сигналу, модулю, процессору для обработки мультимедийных данных в передающем устройстве, процессору для обработки мультимедийных данных в приемном устройстве, кодеру и декодеру.

Уровень техники

Опубликованные стандарты кодирования видео включают в себя ITU-T H.261, ITU-T H.263, ISO/IEC MPEG-1, ISO/IEC MPEG-2 и ISO/IEC MPEG-4 Part 2. Эти стандарты указываются в данном документе в качестве традиционных стандартов кодирования видео.

Системы передачи видео

Системы передачи видео могут быть разделены на разговорные и неразговорные системы. Разговорные системы включают в себя видеоконференции и видеотелефонию. Примеры таких систем включают в себя ITU-T Recommendations H.320, H.323 и H.324, которые задают систему видеоконференций/телефонии, работающую в сетях ISDN, IP и PSTN соответственно. Разговорные системы характеризуются стремлением минимизировать сквозную задержку (от захвата звука/видео до представления звука/видео на дальнем конце), чтобы повысить возможности работы пользователей.

Неразговорные системы включают в себя воспроизведение сохраненного содержимого, например универсальных цифровых дисков (DVD) или видеофайлов, сохраненных в запоминающем устройстве большой емкости устройства воспроизведения, цифровое ТВ и потоковую передачу данных. Ниже приведен краткий обзор наиболее важных стандартов в этих технологических областях.

Главным стандартом в цифровой потребительской видеоаппаратуре сегодня является MPEG-2, который включает в себя спецификации по сжатию видео, сжатию звука, сохранению и передаче. Сохранение и передача закодированного видео основана на концепции элементарного потока. Элементарный поток состоит из закодированных данных от одного источника (к примеру, видео) плюс дополнительных данных, требуемых для синхронизации, идентификации и определении параметров исходной информации. Элементарный поток пакетируется в пакеты либо постоянной длины, либо переменной длины чтобы сформировать пакетированный элементарный поток (PES). Каждый пакет PES состоит из заголовка и следующих за ним потоковых данных, называемых полезной нагрузкой. Пакеты PES из различных элементарных потоков объединяются, чтобы сформировать либо программный поток (PS) либо поток распространения (TS). PS востребован в приложениях, имеющих незначительные ошибки передачи, например в приложениях типа "сохрани и воспроизведи". TS востребован в приложениях, которые допускают ошибки передачи. Тем не менее, TS предполагает, что пропускная способность сети гарантированно является постоянной.

Joint Video Team (JVT) организаций ITU-T и ISO/IEC выпустила проект стандарта, который включает в себя текст того же стандарта, что ITU-T Recommendation H.264 и ISO/IEC International Standard 14496-10 (MPEG-4 Part 10). Проект стандарта называется в данном документе стандартом кодирования JVT, а кодек согласно проекту стандарта называется кодеком JVT.

Сама спецификация кодека концептуально отличается между уровнем кодирования видео (VCL) и уровнем абстрагирования от сети (NAL). VCL содержит функциональность обработки сигналов кодека, такие вещи как преобразование, квантование, поиск/компенсация движения и контурный фильтр. Она следует основной концепции большинства современных видеокодеков, основанном на макроблоке кодере, который использует предсказание внешних изображений с компенсацией движения и кодирование преобразования разностного сигнала. Выходом VCL являются кванты: битовая строка, которая содержит данные макроблока из целого числа макроблоков и информацию о заголовке кванта (содержащую пространственный адрес первого макроблока в кванте, исходный параметр квантования и т.п.). Макроблоки в квантах упорядочены в последовательности сканирования, если не задано другое выделение макроблоков с помощью так называемого синтаксиса гибкого упорядочивания макроблоков. Предсказание внешних изображений используется только в рамках кванта.

NAL заключает в себя вывод квантов VCL в блоки уровня абстрагирования от сети (NALU), которые подходят для передачи по сетям с коммутацией пакетов или использования в ориентированных на пакеты мультиплексных окружениях. Приложение B JVT задает процесс инкапсуляции, чтобы передавать эти NALU по ориентированным на потоки битов сетям.

Дополнительный режим выбора опорного изображения по H.263 и средство кодирования NEWPRED из MPEG-4 Part 2 дают возможность выбора опорного кадра для компенсации движения на каждый сегмент изображения, к примеру на каждый квант в H.263. Более того, дополнительный усовершенствованный режим выбора опорного изображения по H.263 и стандарт кодирования JVT дают возможность выбора опорного кадра для каждого макроблока в отдельности.

Выбор опорного изображения делает возможным множество типов схем временной масштабируемости. Фиг.1 иллюстрирует пример схемы временной масштабируемости, которая в данном документе называется рекурсивной временной масштабируемостью. Типичная схема может быть декодирована с помощью трех постоянных частот смены кадров. Фиг.2 иллюстрирует схему, называемую избыточным кодированием видео, в которой последовательность изображений делится на два или более независимо кодируемых потока чередующимся способом. Стрелки на этих и всех последующих чертежах показывают направление компенсации движения, а значения под кадрами соответствуют относительному времени захвата и отображения кадров.

Последовательность передачи

В традиционных стандартах кодирования видеопоследовательность декодирования изображений аналогична последовательности отображения, за исключением B-изображений. Блок в традиционном B-изображении может быть двунаправленно предсказан по времени из двух опорных изображений, при этом одно опорное изображение предшествует по времени, а другое опорное изображение следует по времени после в последовательности отображения. Только самое последнее опорное изображение в последовательности декодирования может следовать за B-изображением в последовательности отображения (исключение: чересстрочное отображение в H.263, где оба полевые изображения последующего во времени опорного кадра могут предшествовать B-изображению в последовательности декодирования). Традиционное B-изображение может быть использовано в качестве опорного изображения для временного предсказания и поэтому традиционное B-изображение может быть размещено без затрагивания декодирования каких-либо других изображений.

Стандарт кодирования JVT включает в себя следующие новые технические признаки по сравнению с более ранними стандартами:

- Последовательность декодирования изображений отделена от последовательности отображения. Номер изображения показывает последовательность декодирования, а счетчик последовательности изображения показывает последовательность отображения.

- Опорные изображения для блока в B-изображении могут быть либо до либо после B-изображения в последовательности отображения. Следовательно, B-изображение означает двупредсказуемое изображение вместо двунаправленного изображения.

- Изображения, которые не используются в качестве опорных изображений, отмечены явно. Изображение любого типа (внутреннее, внешнее, B и т.д.) может быть либо опорным изображением либо неопорным изображением. (Таким образом, B-изображение может быть использовано в качестве опорного изображения для временного предсказания других изображений).

- Изображение может содержать кванты, которые закодированы с использованием различного типа кодирования. Другими словами, закодированное изображение может состоять, например, из внутренне закодированного кванта и B-закодированного кванта.

Отделение последовательности отображения от последовательности декодирования может быть выгодно с точки зрения эффективности сжатия и устойчивости к ошибкам.

Пример структуры предсказания, потенциально повышающей эффективность сжатия, представлен на фиг.3. Прямоугольники показывают изображения, заглавные буквы в прямоугольниках показывают типы кодирования, числа в прямоугольниках - номера изображений согласно стандарту кодирования JVT, а стрелки показывают зависимости предсказания. Заметим, что изображение B17 является опорным изображением для изображений B18. Эффективность сжатия потенциально повышается по сравнению с традиционным кодированием, поскольку опорные изображения для изображений B18 ближе по времени по сравнению с традиционным кодированием с помощью шаблонов закодированных изображений PBBP или PBBBP. Эффективность сжатия потенциально повышается по сравнению с традиционным шаблоном закодированных изображений PBP, поскольку часть опорных изображений является двунаправленно предсказуемой.

Фиг.4 представляет пример способа откладывания внутренних изображений, который может быть использован, чтобы повышать устойчивость к ошибкам. Традиционно внутреннее изображение кодируется сразу после съемки кадра или, например, в качестве реакции на истекший период обновления внутреннего изображения. При способе откладывания внутреннего изображения внутреннее изображение не кодируется сразу после того, как возникает необходимость закодировать внутреннее изображение, а вместо этого следующее по времени изображение выбирается в качестве внутреннего изображения. Каждое изображение между закодированным внутренним изображением и традиционным расположением внутреннего изображения предсказывается из следующего по времени изображения. Как проиллюстрировано на фиг.4, способ откладывания внутреннего изображения генерирует две независимые цепочки предсказания внешних изображений, тогда как традиционные алгоритмы кодирования генерируют одну цепочку внешних изображений. Интуитивно понятно, что подход с двумя цепочками более надежен в отношении ошибок стирания, чем традиционный подход с одной цепочкой. Если одна цепочка испытывает потерю пакетов, другая цепочка по-прежнему может быть корректно принята. При традиционном кодировании потеря пакетов всегда вызывает распространение ошибки на оставшуюся часть цепочки предсказания внешних изображений.

Два типа информации об упорядочивании и распределении по времени были традиционно ассоциативно связаны с цифровым видео: последовательность декодирования и представления. Далее представлены подробности связанной технологии.

Временная метка декодирования (DTS) показывает время по отношению к опорному тактовому сигналу, в котором, как предполагается, декодируется блок закодированных данных. Если DTS закодирована и передана, она служит для двух целей. Во-первых, если последовательность декодирования изображений отличается от последовательности их вывода, DTS показывает последовательность декодирования в явной форме. Во-вторых, DTS гарантирует определенное функциональное поведение буферизации пре-декодера при условии, что скорость приема близка к скорости передачи в любой момент времени. В сетях, где сквозная задержка варьируется, второй вариант использования DTS не играет никакой или играет незначительную роль. Вместо этого принятые данные декодируются настолько быстро, насколько это возможно, при условии, что есть запас в буфере пост-декодера для несжатых изображений.

Перенос DTS зависит от используемой системы связи и стандарта кодирования видео. В системах MPEG-2 DTS может быть необязательно передана как один элемент в заголовке пакета PES. В стандарте кодирования JVT DTS может необязательно быть перенесена в качестве части дополнительной информации расширения (SEI) и она используется при работе необязательного номинального опорного декодера. В базовом формате файлов мультимедиа ISO DTS посвящена собственному типу блока, блоку декодирования по времени на выборку. Во многих системах, например, основанных на RTP системах потоковой передачи, DTS вообще не переносится, поскольку считается, что последовательность декодирования аналогична в последовательности передачи, и точное время декодирования не играет важной роли.

Необязательные приложения U и W.6.12 H.263 задают номер изображения, который увеличивается на 1 по отношению к предыдущему опорному изображению в последовательности декодирования. В стандарте кодирования JVT элемент кодирования номера кадра задается аналогично номеру изображения H.263. Стандарт кодирования JVT задает конкретный тип внутреннего изображения, называемый изображением мгновенного обновления декодера (IDR). Ни одно последующее изображение не может ссылаться на изображения, которые следуют раньше, чем IDR-изображение, в последовательности декодирования. IDR-изображение часто кодируется в качестве реакции на смену кадров. В стандарте кодирования JVT номер кадра сбрасывается до 0 при IDR-изображении, чтобы повысить устойчивость к ошибкам в случае потери IDR-изображения, что представлено на фиг.5a и 5b. Тем не менее, следует заметить, что SEI-сообщение информации о кадре стандарта кодирования JVT также может быть использовано для распознавания смены кадров.

Номер изображения H.263 может быть использован, чтобы восстановить последовательность декодирования опорных изображений. Аналогично номер кадра JVT может быть использован, чтобы восстановить последовательность декодирования кадров между IDR-изображением (включительно) и следующим IDR-изображением (исключая) в последовательности декодирования. Тем не менее, поскольку дополнительные опорные пары полей (последовательные изображения, закодированные как поля, которые имеют другую четность) совместно используют один и тот же номер кадра, последовательность его декодирования не может быть восстановлена из номеров кадров.

Номер изображения H.263 или номер кадра JVT неопорного изображения задается, чтобы быть равным номеру изображения или кадра предыдущего опорного изображения в последовательности декодирования плюс 1. Если несколько неопорных изображений идут последовательно в последовательности декодирования, они совместно используют один и тот же номер изображения или кадра. Номер изображения или кадра неопорного изображения также аналогичен номеру изображения или кадра следующего опорного изображения в последовательности декодирования. Последовательность декодирования последовательных неопорных изображений может быть восстановлена с помощью опорного по времени (TR) элемента кодирования в H.263 или концепции счетчика в последовательности изображений (POC) стандарта кодирования JVT.

Временная метка представления (PTS) показывает время по отношению к опорному тактовому сигналу, когда, как считается, изображение должно быть отображено. Временная метка представления также называется временной меткой отображения, временной меткой вывода и композиционной временной меткой.

Перенос PTS зависит от используемой системы связи и стандарта кодирования видео. В системах MPEG-2 PTS может быть необязательно передана как один элемент в заголовке пакета PES. В стандарте кодирования JVT PTS может необязательно быть перенесена как часть в качестве части дополнительной информации расширения (SEI). В базовом формате файлов мультимедиа ISO DTS посвящена собственному типу блока, композиционному блоку по времени на выборку, при этом временная метка представления кодируется относительно соответствующей временной метки декодирования. В RTP временная метка RTP в заголовке пакета RTP соответствует PTS.

Традиционные стандарты кодирования видео содержат опорный по времени (TR) элемент кодирования, который аналогичен PTS во многих аспектах. В некоторых из традиционных стандартов кодирования, например видео MPEG-2 TR сбрасывается до нуля в начале группы изображений (GOP). В стандарте кодирования JVT отсутствует понятие времени в уровне кодирования видео. Счетчик последовательности изображений (POC) задается для каждого кадра и поля и он используется аналогично TR, например, при прямом временном предсказании B-квантов. POC сбрасывается до 0 в IDR-изображении.

Буферизация

Клиенты потоковой передачи типично имеют буфер приемного устройства, который может сохранять относительно большое количество данных. В начале, когда установлен сеанс потоковой передачи, клиент не начинает воспроизведение потока немедленно, а вместо этого он типично буферизует входящие данные на несколько секунд. Эта буферизация позволяет поддерживать непрерывное воспроизведение, поскольку в случае случайно увеличившихся задержек передачи или падений сетевой пропускной способности клиент может декодировать и воспроизводить буферизованные данные. В противном случае без начальной буферизации клиент должен заморозить отображение, прекратить декодирование и ждать входящие данные. Буферизация также необходима либо для автоматической либо для выборочной повторной передачи на любом протокольном уровне. Если какая-либо часть изображения потеряна, механизм повторной передачи может быть использован, чтобы повторно отправить потерянные данные. Если повторно переданные данные приняты до назначенного времени декодирования или воспроизведения, потеря восстанавливается полностью.

Закодированные изображения могут быть ранжированы согласно их важности в субъективном качестве декодированной последовательности. Например, неопорные изображения, такие как традиционные B-изображения, субъективно менее важны, поскольку их отсутствие не влияет на декодирование любых других изображений. Субъективное ранжирование также может быть выполнено на основе раздела данных или группы квантов. Закодированные кванты и разделы данных, которые субъективно более важны, могут быть отправлены до того, как их последовательность декодирования укажет, тогда как закодированные кванты и разделы данных, которые субъективно менее важны, могут быть отправлены после того, как покажет их естественная последовательность кодирования. Следовательно, любые повторно переданные части наиболее важных квантов и разделов данных, более вероятно, будут приняты до их назначенного времени декодирования или воспроизведения по сравнению с менее важными квантами и разделами данных.

Буферизация пре-декодера

Буферизация пре-декодера относится к буферизации закодированных данных перед тем, как они декодированы. Начальная буферизация относится к буферизации пре-декодера в начале сеанса потоковой передачи. Начальная буферизация традиционно выполняется по двум описанным ниже причинам.

В традиционных мультимедийных системах с коммутацией пакетов, к примеру, в основанных на IP системах видеоконференций различные типы мультимедиа обычно переносятся в отдельных пакетах. Более того, пакеты типично переносятся поверх сети "наибольших усилий", которая не может гарантировать постоянную задержку передачи, а вместо этого задержка может варьироваться от пакета к пакету. Следовательно, пакеты, имеющие одинаковую временную метку представления (воспроизведения), могут приниматься не одновременно, и интервал приема двух пакетов может быть не таким, как интервал представления (в единицах времени). Таким образом, чтобы поддерживать синхронизацию воспроизведения между различными типами мультимедиа и поддерживать корректную скорость воспроизведения, мультимедийный терминал типично буферизует принятые данные в течение короткого периода времени (к примеру, менее чем полсекунды), чтобы сгладить разброс задержки. В данном документе такой тип буферного компонента называется буфером неустойчивой задержки. Буферизация может происходить до и/или после записи мультимедийных данных.

Буферизация неустойчивой задержки также применяется в системах потоковой передачи. Учитывая тот факт, что потоковая передача является неразговорным приложением, требуемый буфер неустойчивой задержки может быть значительно больше, чем в разговорных приложениях. Когда проигрыватель потоковой передачи установил подключение к серверу и запросил мультимедийный поток быть загруженным, сервер начинает передавать нужный поток. Проигрыватель не начинает воспроизводить поток немедленно, а вместо этого типично буферизует входящие данные на определенный период, типично несколько секунд. В данном документе буферизация также называется начальной буферизацией. Начальная буферизация предоставляет возможность сглаживать разбросы задержек передачи способом, аналогичным предоставленному посредством буферизации неустойчивой задержки в разговорных приложениях. Помимо этого она может дать возможность использования канала связи, распространения и/или повторных передач на уровне приложений потерянных протокольных (PDU) блоков данных. Проигрыватель может декодировать и воспроизводить буферизованные данные, хотя повторно переданные PDU могут быть приняты вовремя, чтобы быть декодированными и воспроизведенными в запланированное время.

Начальная буферизация в клиентах потоковой передачи предоставляет еще одно преимущество, которое не может быть достигнуто в разговорных системах: она дает возможность скорости передачи данных мультимедиа, передаваемого с сервера, варьироваться. Другими словами, пакеты мультимедиа могут быть переданы быстрее или медленнее во времени, чем их скорость воспроизведения, до тех пор, пока буфер приемного устройства не переполняется или опустошается. Флюктуация скорости передачи данных может возникать из двух источников.

Во-первых, эффективность сжатия, достигаемая в некоторых типах мультимедиа, например видео, зависит от содержимого исходных данных. Следовательно, если требуется стабильное качество, скорость результирующего сжатого потока битов варьируется. Типично стабильное аудиовизуальное качество субъективно более привлекательно, чем варьирующееся качество. Таким образом, исходная буферизация дает возможность быть достигнутом более привлекательному аудиовизуальному качеству в сравнении с системой без начальной буферизации, такой как система видеоконференций.

Во-вторых, общеизвестно, что потери пакетов в выделенных IP-сетях возникают на пиках. Чтобы избежать пульсирующих ошибок и высоких пиковых скоростей передачи битов и пакетов, хорошо спроектированные серверы потоковой передачи тщательно составляют расписание передачи пакетов. Пакеты могут быть отправлены точно со скоростью, с которой они воспроизводятся принимающей стороной, однако, вместо этого серверы могут попытаться достигнуть устойчивого интервала между переданными пакетами. Сервер также может отрегулировать скорость передачи пакетов в соответствии с доминирующими характеристиками сети, например, снижая скорость передачи пакетов, когда сеть становится перегруженной, и повышая, если позволяют характеристики сети.

Передача потоков мультимедиа

Система потоковой передачи мультимедиа состоит из сервера потоковой передачи и ряда проигрывателей, которые осуществляют доступ к серверу посредством сети. Сеть типично ориентирована на пакеты и предоставляет мало или вообще не предоставляет средств гарантированного качества обслуживания. Проигрыватели получают либо заранее сохраненное либо "живое" мультимедийное содержимое от сервера и воспроизводят его в реальном времени в то время, когда содержимое загружается. Типом передачи данными может быть либо двухточечная либо многосторонняя. При двухточечной потоковой передаче сервер предоставляет отдельное подключение для каждого проигрывателя. При многосторонней потоковой передаче сервер передает один пакет данных ряду проигрывателей, а элементы сети дублируют поток только в том случае, если это необходимо.

Когда проигрыватель установил подключение к серверу и запросил мультимедийный поток, сервер начинает передавать нужный поток. Проигрыватель не начинает воспроизводить поток немедленно, а вместо этого типично буферизует входящие данные на несколько секунд. В данном документе буферизация также называется начальной буферизацией. Начальная буферизация позволяет поддерживать непрерывное воспроизведение, поскольку в случае случайно увеличившихся задержек передачи или падений сетевой пропускной способности проигрыватель может декодировать и воспроизводить буферизованные данные.

Чтобы избежать неограниченной задержки передачи, редко предпочитают надежные транспортные протоколы в системах потоковой передачи. Вместо этого системы предпочитают ненадежные транспортные протоколы, например UDP, которые, с одной стороны, наследуют более стабильную задержку передачи, но, с другой стороны, также испытывают повреждение или потерю данных.

Протоколы RTP и RTCP могут быть использованы поверх UDP, чтобы контролировать обменом данными в реальном времени. RTP предоставляет средство определять потери пакетов передачи, заново компоновать корректную последовательность пакетов на принимающей стороне и ассоциативно связывать временную метку выборки с каждым пакетом. RTCP передает информацию о том, насколько крупные части пакетов были корректно приняты, и поэтому он может быть использован для управления потоками.

В традиционных стандартах кодирования видео последовательность декодирования объединена с последовательностью вывода. Другими словами, последовательность декодирования I- и P-изображений такая же, как последовательность их вывода, а последовательность декодирования B-изображения следует сразу за последовательностью декодирования последнего опорного изображения из B-изображений в последовательности вывода. Следовательно, можно восстанавливать последовательность декодирования на основе известной последовательности вывода. Последовательность вывода типично передается в элементарном потоке битов видео в поле "опорный по времени" (TR), а также в системном мультиплексном уровне, например в заголовке RTP.

Некоторые спецификации полезной нагрузки RTP дают возможность передачи закодированных данных вне последовательности декодирования. Величина неупорядоченности типично характеризуется одним значением, которое задано аналогично во многих соответствующих спецификациях. Например, в проекте документа "RTP Payload Format for Transport of MPEG-4 Elementary Streams" параметр maxDisplacement задан следующим образом:

Максимальный сдвиг во времени блока доступа (AU), соответствующего закодированному изображению, - это максимальная разность между временной меткой AU в шаблоне и временной меткой наиболее раннего AU, который еще не поступил. Другими словами, при рассмотрении последовательности чередующихся AU:

Максимальный сдвиг = max{TS(i) - TS(j)}, для любого i и любого j>i,

где i и j показывают индекс AU в шаблоне чередования, а TS означает временную метку AU.

В настоящем изобретении было замечено, что в данном способе существуют некоторые проблемы и он предоставляет слишком большое значение для буфера.

Сущность изобретения

Пример схемы, в которой задание максимального сдвига осуществляется неверно при задании требований к буферизации (в отношении пространства для буфера и длительности начальной буферизации) приведен далее. Последовательность квантована на части из 15 AU, и последний AU в последовательности декодирования и вывода в такой части из 15 AU передается первым, а все остальные AU передаются в последовательности декодирования и вывода. Таким образом, переданная последовательность AU следующая:

14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 29 15 16 17 18 19...

Максимальный сдвиг для этой последовательности равен 14 для AU (14 + k * 15) (для всех неотрицательных целых значений k).

Тем не менее, последовательность пространства для буфера и начальной буферизации только для первого AU.

В проекте документа по формату полезной нагрузки RTP для H.264 (draft-ietf-avt-rtp-h264-01.txt) параметр num-reorder-VCL-NAL-units задан следующим образом: этот параметр может быть использован, чтобы сигнализировать о свойствах потока блоков NAL или характеристиках передающего устройства, или реализации приемного устройства. Параметр задает максимальную величину блоков VCL NAL, которые предшествуют любому блоку VCL NAL в потоке блоков NAL в последовательности декодирования блоков NAL и следуют за блоком VCL NAL в последовательности номеров последовательности RTP или в последовательности компоновки пакета агрегации, содержащего блок VCL NAL. Если параметр отсутствует, должно быть применено значение num-reorder-VCL-NAL-units, равное 0. Значение num-reorder-VCL-NAL-units должно быть целым числом в диапазоне 0-32767 включительно.

Согласно стандарту H.264 блоки VCL NAL заданы как блоки NAL, имеющие nal_unit_type, равным от 1 до 5, включительно. В стандарте заданы следующие типы блоков NAL 1-5:

1 - закодированный квант не-IDR-изображения;

2 - закодированный квант, раздел данных A;

3 - закодированный квант, раздел данных B;

4 - закодированный квант, раздел данных C;

5 - закодированный квант IDR-изображения.

Параметр num-reorder-VCL-NAL-units вызывает проблему, аналогичную проблеме, возникающей в вышеописанном параметре максимального сдвига. Т.е. невозможно принять решение о требованиях к пространству буферизации и времени начальной буферизации на основе этого параметра.

Изобретение позволяет сигнализирование о размере буфера приема декодеру.

В нем независимая GOP состоит из изображений от IDR-изображения (включительно) до следующего IDR-изображения (исключая) в последовательности декодирования.

В настоящем изобретении параметр, сигнализирующий о максимальной величине требуемой буферизации, задан более точно, чем в системах предшествующего уровня техники. В последующем описании изобретение описано с помощью основанной на кодере-декодере системы, однако очевидно, что изобретение также может быть реализовано в системах, в которых видеосигналы сохраняются. Сохраненными видеосигналами могут быть незакодированные сигналы, сохраненные до кодирования, закодированные сигналы, сохраненные после кодирования, либо декодированные сигналы, сохраненные после процесса кодирования и декодирования. Например, кодер генерирует потоки битов в последовательности передачи. Файловая система принимает потоки битов аудио и/или видео, которые заключены, к примеру, в последовательности декодирования и сохранены как файл. Файл может быть сохранен в базе данных, из которой сервер потоковой передачи может считывать блоки NAL и заключать их в пакеты RTP.

Более того, в последующем описании изобретение описано с помощью основанной на кодере-декодере системы, однако очевидно, что изобретение также может быть реализовано в системах, в которых кодер выводит и передает закодированные данные другому компоненту, например серверу потоковой передачи в первой последовательности, в которых другой компонент записывает закодированные данные из первой последовательности в другую последовательность, задает требуемый размер буфера для другой последовательности и переадресует закодированные данные в реорганизованной форме декодеру.

Согласно первому аспекту настоящего изобретения предложен способ буферизации мультимедийных данных в буфер, при этом мультимедийные данные включены в блоки передачи данных, причем блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что задают параметр, показывающий максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно второму аспекту настоящего изобретения предложен способ декодирования потока закодированных изображений в декодере, в котором поток закодированных изображений принимают в виде блоков передачи данных, содержащих мультимедийные данные, при этом блоки в виде передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, выполняют буферизацию блоков передачи данных, отличающийся тем, что требования к буферизации указывают процессу декодирования в виде параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно третьему аспекту настоящего изобретения предложена система, содержащая кодер для кодирования изображений и буфер для буферизации мультимедийных данных, при этом мультимедийные данные включены в блоки передачи данных, причем блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающаяся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно четвертому аспекту настоящего изобретения предложено передающее устройство для передачи мультимедийных данных, включенных в блоки передачи данных, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающееся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно пятому аспекту настоящего изобретения предложено приемное устройство для приема потока закодированных изображений в виде блоков передачи данных, содержащих мультимедийные данные, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающееся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно шестому аспекту настоящего изобретения предусмотрен компьютерный программный продукт, содержащий машиноисполняемые этапы для буферизации закодированных изображений в буфер, при этом мультимедийные данные включены в блоки передачи данных, причем блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что дополнительно содержит машиноисполняемые этапы для задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно седьмому аспекту настоящего изобретения предложен компьютерный программный продукт, содержащий машиноисполняемые этапы для декодирования потока закодированных изображений, причем поток закодированных изображений принят в виде блоков передачи, содержащих мультимедийные данные, и машиноисполняемые этапы для буферизации блоков передачи, отличающийся тем, что содержит машиноисполняемые этапы для задания требований к буферизации для процесса декодирования посредством использования параметра, показывающего максимальное число блоков передачи, содержащих мультимедийные данные, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи, содержащим мультимедийные данные, в последовательности декодирования.

Согласно восьмому аспекту настоящего изобретения предложен сигнал, переносящий мультимедийные данные, включенные в блоки передачи данных, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что включает в себя параметр, показывающий максимальное число блоков передачи данных, которые предшествуют блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно девятому аспекту настоящего изобретения предложен модуль для приема потока закодированных изображений в виде блоков передачи данных, содержащих мультимедийные данные, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно десятому аспекту настоящего изобретения предложен процессор для обработки мультимедийных данных в передающем устройстве, отличающийся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи, содержащих мультимедийные данные, которые предшествуют любому блоку передачи, содержащему мультимедийные данные, в потоке пакетов в последовательности передачи блоков передачи и следуют за этим блоком передачи, содержащем мультимедийные данные, в последовательности декодирования.

Согласно одиннадцатому аспекту настоящего изобретения предложен процессор для обработки мультимедийных данных в приемном устройстве для приема потока закодированных изображений в виде блоков передачи, содержащих квантованные данные, отличающийся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи, содержащих мультимедийные данные, которые предшествуют любому блоку передачи, содержащему мультимедийные данные, в потоке пакетов в последовательности передачи и следуют за этим блоком передачи, содержащим мультимедийные данные, в последовательности декодирования.

Согласно двенадцатому аспекту настоящего изобретения предложен кодер для кодирования мультимедийных данных, включенных в блоки передачи данных, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

Согласно тринадцатому аспекту настоящего изобретения предложен декодер для декодирования потока закодированных изображений, включенных в блоки передачи данных, содержащих мультимедийные данные, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

В типичном варианте осуществления настоящего изобретения блоком передачи, содержащим мультимедийные данные, является блок VCL NAL.

Настоящее изобретение повышает эффективность буферизации систем кодирования. Посредством настоящего изобретения можно использовать подходящую фактически требуемую величину буферизации. Поэтому нет необходимости выделять больше памяти, чем необходимо для буфера кодирования в устройстве кодирования и буфера предварительного декодирования в устройстве декодирования. Так же можно избежать переполнения буфера предварительного кодирования.

Описание чертежей

Фиг.1 иллюстрирует пример схемы рекурсивной временной масштабируемости.

Фиг.2 иллюстрирует схему, называемую избыточным кодированием видео, в которой последовательность изображений делится на два или более независимо кодируемых потока чередующимся способом.

Фиг.3 представляет пример структуры предсказания, потенциально повышающей эффективность сжатия.

Фиг.4 представляет пример способа откладывания внутренних изображений, который может быть использован для повышения устойчивости к ошибкам.

Фиг.5 иллюстрирует преимущественный вариант осуществления системы согласно настоящему изобретению.

Фиг.6 иллюстрирует преимущественный вариант осуществления кодера согласно настоящему изобретению.

Фиг.7 иллюстрирует преимущественный вариант осуществления декодера согласно настоящему изобретению.

Подробное описание изобретения

Далее изобретение описано подробнее со ссылками на систему фиг.5, кодер 1, фиг.6 и декодер 2, фиг.7. Изображениями, которые должны быть закодированы, могут быть, например, изображения видеопотока и видеоисточника 3, к примеру, камеры, видеомагнитофона и т.д. Изображения (кадры) видеопотока могут быть разделены на меньшие части, например кванты. Кванты могут быть дополнительно поделены на блоки. В кодере 1 видеопоток кодируется, чтобы уменьшить объем информации, который должен быть передан посредством канала 4 передачи или на носитель хранения (не показан). Изображения видеопотока вводятся в кодер 1. Кодер имеет буфер 1.1 кодирования (фиг.6) для временного сохранения некоторых из изображений, которые должны быть закодированы. Кодер 1 также включает в себя память 1.3 и процессор 1.2, в котором могут быть применены задачи кодирования согласно изобретению. Память 1.3 и процессор 1.2 могут быть общими с передающим устройством 6 либо передающее устройство 6 может иметь другой процессор и/или память (не показаны) для других функций передающего устройства 6. Кодер 1 выполняет оценку движения и/или некоторые другие задачи, чтобы сжимать видеопоток. При оценке движения осуществляется поиск сходств между изображением, которое должно быть закодировано (текущим изображением), и предыдущим и/или последующим изображением. Если сходства найдены, сравниваемое изображение или его часть может быть использована в качестве опорного изображения для изображения, которое должно быть закодировано. В JVT последовательность отображения и последовательность декодирования изображений не обязательно совпадают, при этом опорное изображение должно быть сохранено в буфере (к примеру, в буфере 1.1 кодирования) до тех пор, пока оно используется в качестве опорного изображения. Кодер 1 также вставляет информацию о последовательности отображения изображений в поток передачи.

Из процесса кодирования закодированные изображения при необходимости передаются в буфер 5.2 закодированных изображений. Закодированные изображения передаются из кодера 1 в декодер 2 посредством канала 4 передачи. В декодере 2 закодированные изображения декодируются, чтобы сформировать несжатые изображения, соответствующие в максимальной степени закодированным изображениям.

Декодер 1 также включает в себя память 2.3 и процессор 2.2, в котором могут быть применены задачи декодирования согласно изобретению. Память 2.3 и процессор 2.2 могут быть общими с приемным устройством 8 либо приемное устройство 8 может иметь другой процессор и/или память (не показаны) для других функций передающего приемного устройства 8.

Кодирование

Давайте теперь рассмотрим процесс кодирования/декодирования подробнее. Изображения из видеоисточника 3 вводятся в кодер 1 и преимущественно сохраняются в буфере 1.1 кодирования. Процесс кодирования не обязательно начинается сразу после того, как первое изображение введено в кодер, а после того, как определенное число изображений доступно в буфере 1.1 кодирования. Затем кодер 1 пытается найти подходящих кандидатов из изображений, которые должны быть использованы в качестве опорных кадров. После этого кодер 1 выполняет кодирование, чтобы сформировать закодированные изображения. Закодированными изображениями могут быть, например, предсказуемые изображения (P), двупредсказуемые изображения (B) и/или внутренне закодированные изображения (I). Внутренне закодированные изображения могут быть декодированы без использования каких-либо других изображений, но другой тип изображений требует, по меньшей мере, одного опорного изображения до того, как оно может быть декодировано. Изображения любого из вышеупомянутых типов изображений могут быть использованы в качестве опорных изображений.

Кодер преимущественно прикрепляет две временные метки к изображениям: временную метку декодирования (DTS) и временную метку вывода (OTS). Декодер может использовать временные метки, чтобы определить корректное время декодирования и время на вывод (отображение) изображений. Тем не менее, эти временные метки не обязательно передаются декодеру или он не использует их.

Блоки NAL могут быть доставлены в другом типе пакетов. В данном предпочтительном варианте осуществления различные форматы пакетов включают в себя простые пакеты и пакеты агрегации. Пакеты агрегации могут быть дополнительно разделены на одноразовые пакеты агрегации и многоразовые пакеты агрегации.

Формат полезной нагрузки пакетов RTP задается как число различных структур полезной нагрузки в зависимости от потребности. Тем не менее, какая структура содержит принятый пакет RTP, очевидно из первого байта полезной нагрузки. Этот байт всегда структурирован, как заголовок блока NAL. Поле типа блока NAL показывает, какая структура используется. Возможные структуры: пакет одного блока NAL, пакет агрегации и пакет фрагментации. Пакет одного блока NAL содержит только один блок NAL в полезной нагрузке. Поле типа заголовка NAL будет равно типу исходного блока NAL, т.е. в диапазоне от 1 до 23 включительно. Тип пакета агрегации используется, чтобы агрегировать несколько блоков NAL в одну полезную нагрузку RTP. Этот пакет существует в четырех версиях, одноразовый пакет агрегации типа A (STAP-A), одноразовый пакет агрегации типа B (STAP-B), многоразовый пакет агрегации (MTAP) со смещением в 16 бит (MTAP16) и многоразовый пакет агрегации (MTAP) со смещением в 24 бита (MTAP24). Номера типа блока NAL, назначенные для STAP-A, STAP-B, MTAP16 и MTAP24, - это 24, 25, 26 и 27 соответственно. Блок фрагментации используется, чтобы фрагментировать один блок NAL по нескольким пакетам RTP. Он существует в двух версиях, заданных с помощью номеров типа блока NAL 28 и 29.

Существует три случая режимов пакетирования, заданных для передачи пакетов RTP:

- режим одного блока NAL,

- нечередующийся режим,

- чередующийся режим.

Режим одного блока NAL предназначен для разговорных систем, которые соответствуют ITU-T Recommendation H.241. Нечередующийся режим предназначен для разговорных систем, которые могут не соответствовать ITU-T Recommendation H.241. В нечередующемся режиме блоки NAL передаются в последовательности декодирования блоков NAL. Чередующийся режим предназначен для систем, которые не требуют очень маленькой сквозной задержки. Чередующийся режим дает возможность передачи блоков NAL вне последовательности декодирования блоков NAL.

Используемый режим пакетирования может быть просигнализирован посредством значения дополнительного MIME-параметра режима пакетирования или внешним средством. Используемый режим пакетирования управляет тем, какие типы блоков NAL разрешены в полезной нагрузке RTP.

В чередующемся режиме пакетирования последовательности передачи блоков NAL разрешено отличаться от последовательности декодирования блоков NAL. Номер последовательности декодирования (DON) - это поле в структуре полезной нагрузки или выведенная переменная, которая показывает последовательность декодирования блоков NAL.

Объединение последовательности передачи и декодирования управляется дополнительным MIME-параметром глубины чередования следующим образом. Когда значение дополнительного MIME-параметра глубины чередования равно 0 и передача блоков NAL вне последовательности декодирования запрещена внешним средством, последовательность передачи блоков NAL соответствует последовательности декодирования блоков NAL. Когда значение дополнительного MIME-параметра глубины чередования больше 0 или передача блоков NAL вне их последовательности декодирования разрешена внешним средством,

- последовательность блоков NAL в многоразовом пакете агрегирования 16 (MTAP16) и многоразовом пакете агрегирования 24 (MTAP24) не обязательно должна быть последовательностью декодирования блоков NAL, и

- последовательность блоков NAL, составленная посредством заключения одноразовых пакетов агрегирования B (STAP-B), MTAP и блоков агрегации (FU) в два последовательных пакета не обязательно должна быть последовательностью декодирования блоков NAL.

Структуры полезной нагрузки RTP для одного пакета блоков NAL, STAP-A и FU-A не включают в себя DON. Структуры STAP-B и FU-B включают в себя DON, а структура MTAP позволяет вывод DON.

Если передающее устройство хочет включить один блок NAL в пакет и передавать пакеты вне их последовательности декодирования, может быть использован тип пакета STAP-B.

В режиме пакетирования одного блока NAL последовательность передачи блоков NAL аналогична их последовательности декодирования блоков NAL. В нечередующемся режиме пакетирования последовательность передачи блоков NAL в пакетах одного блока NAL и STAP-A, и FU-A аналогичны их последовательности декодирования блоков NAL. Блоки NAL в STAP отображаются в последовательности декодирования блоков NAL.

Учитывая тот факт, что H.264 дает возможность последовательности декодирования отличаться от последовательности отображения, значения временных меток RTP могут не быть монотонно не уменьшающимися как функция номеров последовательностей RTP.

Значению DON первого блока NAL в последовательности передачи может быть задано любое значение. Значение DON находится в диапазоне 0-65535 включительно. После достижения максимального значения значение DON сворачивается до 0.

Последовательность видео согласно данной спецификации может быть любым типом потока NALU, который не может быть декодирован независимо от других частей потока NALU.

Далее следует пример надежного планирования пакетов.

На чертежах следующего примера время движется слева направо I означает IDR-изображение, R означает опорное изображение, N означает неопорное изображение, а число показывает относительное время вывода пропорционально предыдущему IDR-изображению в последовательности декодирования. Значения ниже последовательности изображений показывают временные метки масштабированного системного тактового генератора и они инициализируются произвольно в данном примере. Каждое I-, R- и N-изображение привязано к одной и той же временной шкале по сравнению с предыдущим этапом обработки, если имеется, при условии, что кодирование, передача и декодирование не отнимают времени.

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

Последовательность кодирования (и декодирования) этих изображений слева направо следующим образом:

Номер последовательности декодирования (DON) для изображения равен значению DON для предыдущего изображения в последовательности декодирования плюс один.

Для простоты предположим, что:

- частота передачи кадров последовательности постоянна,

- каждое изображение состоит только из одного кванта,

- каждый квант заключен в пакете одного блока NAL,

- изображения передаются в последовательности декодирования, и

- изображения передаются с постоянными интервалами (которые равны 1/частоту передачи кадров).

Таким образом, изображения принимаются в последовательности декодирования:

Значение параметра num-reorder-VCL-NAL-units задается равным 0, поскольку не требуется буферизации, чтобы восстанавливать корректную последовательность декодирования из передачи (или последовательности приема).

Декодер должен буферизовать для интервала одного изображения первоначально в своем буфере декодированных изображений, чтобы организовать изображения из последовательности декодирования, чтобы выводить последовательность, как показано ниже:

Величина требуемой начальной буферизации в буфере декодированных изображений может быть сигнализирована в SEI-сообщении о периоде буферизации или в значении элемента синтаксиса num_reorder_frames информации по использованию видео H.264. Num_reorder_frames показывает максимальное число кадров, дополнительных пар полей или непарных полей, которые предшествуют любому кадру, дополнительной паре полей или непарному полю в последовательности декодирования и следуют за ним в последовательности вывода.

Для простоты предполагается, что num_reorder_frames используется, чтобы показывать начальный буфер в буфере декодированных изображений. В данном примере num_reorder_frames равен 1.

Можно видеть, что если IDR-изображение I00 потеряно при передаче и запрос на повторную передачу выдан, когда значение системного тактового генератора равно 62, предусмотрен интервал времени в одно изображение (пока временная метка системного тактового генератора не достигнет 63), чтобы принять повторно переданное IDR-изображение I00.

Далее предположим, что IDR-изображения передаются на два интервала кадра раньше, чем их позиция декодирования, к примеру, изображения передаются в следующем порядке:

Пусть переменная id1 задана согласно предшествующему уровню техники (описанному в draft-ietf-avt-rtp-h264-01.txt), т.е. она задает максимальную величину блоков VCL NAL, которые предшествуют любому блоку VCL NAL в потоке блоков NAL в последовательности декодирования блоков NAL и следуют за блоком VCL NAL в последовательности номеров последовательности RTP или в последовательности компоновки пакета агрегации, содержащего блок VCL NAL. Пусть переменная id2 будет задана согласно настоящему изобретению, т.е. она задает максимальную величину блоков VCL NAL, которые предшествуют любому блоку VCL NAL в потоке блоков NAL в последовательности передачи и следуют за блоком VCL NAL в последовательности декодирования.

В примере значение id1 равно 2, а значение id2 равно 1. Как уже показано в разделе 2, значение id1 не пропорционально времени или пространству декодирования, требуемому для начального декодирования, чтобы реорганизовать пакеты из последовательности приема в последовательность декодирования. В данном примере время начальной буферизации, равное интервалу одного изображения, требуется, чтобы восстановить последовательность, как проиллюстрировано ниже (фигура представляет вывод процесса буферизации приемного устройства). Этот пример также демонстрирует, что значение времени начальной буферизации и пространства буферизации может быть получено согласно изобретению.

Кроме того, задержка начальной буферизации в интервал одного изображения необходима, чтобы организовать изображения из последовательности декодирования в последовательность вывода, как показано ниже:

Можно видеть, что максимальная задержка, которую IDR-изображения могут перенести при передаче, включая возможное приложение, передачу или повторную передачу на канальном уровне, равна num_reorder_frames + id2. Таким образом, устойчивость к ошибкам IDR-изображений увеличена в системах, поддерживающих повторную передачу.

Приемное устройство может организовывать изображения в последовательности декодирования на основе значения DON, ассоциативно связанного с каждым изображением.

Передача

Передача и/или сохранение закодированных изображений (и необязательное виртуальное декодирование) может быть начато сразу после того, как готово первое закодированное изображение. Это изображение не обязательно должно быть первым в последовательности вывода декодера, поскольку последовательность декодирования и последовательность вывода могут не совпадать.

Когда первое изображение видеопотока закодировано, передача может быть начата. Закодированные изображения необязательно сохранены в буфере 1.2 закодированных изображений. Передача также может начаться на более поздней стадии, например, после того, как закодирована определенная часть видеопотока.

Декодер 2 также должен выводить закодированные изображения в корректной последовательности, например посредством использования упорядочивания счетчиков последовательности изображений.

Депакетирование

Процесс депакетирования зависит от реализации. Следовательно, последующее описание не является ограничивающим примером подходящей реализации. Также могут быть использованы другие схемы. Вероятно, возможны оптимизации относительно описанных алгоритмов.

Общая концепция относительно этих правил депакетирования - реорганизовать блоки NAL из последовательности передачи в последовательность доставки блоков NAL.

Декодирование

Далее описана работа приемного устройства 8. Приемное устройство 8 собирает все пакеты, принадлежащие изображению, приводя их к рациональной последовательности. Точность последовательности зависит от используемого профиля. Принятые пакеты сохраняются в буфере 9.1 приема (буфере предварительного кодирования). Приемное устройство 8 отбрасывает все бесполезное и передает остальное декодеру 2. Пакеты агрегирования обрабатываются посредством выгрузки их полезной нагрузки в отдельные пакеты RTP, переносящие NALU. Эти NALU обрабатываются таким образом, как если бы они были приняты в отдельных пакетах RTP, в последовательности, в которой они были размещены в пакете агрегирования.

В дальнейшем пусть N будет значением необязательного параметра num-reorder-VCL-NAL-units (параметра глубины чередования), который задает максимальную величину блоков VCL NAL, которые предшествуют любому блоку VCL NAL в потоке пакетов NAL в последовательности передачи блоков NAL и следуют за блоком VCL NAL в последовательности декодирования. Если параметр отсутствует, может быть применено значение 0.

Когда установлен сеанс передачи видеопотоков, приемное устройство 8 выделяет память буфера 9.1 приема для сохранения, по меньшей мере, N частей блоков VCL NAL. После этого приемное устройство начинает принимать видеопоток и сохраняет принятые блоки VCL NAL в буфер приема. Начальная буферизация продолжается:

- до тех пор, пока, по меньшей мере, N частей блоков VCL NAL сохранены в буфере 9.1 приема, либо

- если MIME-параметр max-don-diff присутствует, до тех пор, пока значение функции don_diff(m,n) больше значения max-don-diff, где n соответствует блоку NAL, имеющему наибольшее значение AbsDON из принятых блоков NAL, а m соответствует блоку NAL, имеющему наименьшее значение AbsDON из принятых блоков NAL, либо

- до тех пор, пока начальная буферизация не продлилась в течение периода, равного или большего, чем значение необязательного MIME-параметра init-buf-time.

Функция don_diff(m,n) задается следующим образом:

If DON(m)==DON(n), don_diff(m,n)=0

If (DON(m)<DON(n) and DON(n)-DON(m)<32768),

don_diff(m,n)=DON(n)-DON(m)

If (DON(m)>DON(n) and DON(m)-DON(n)>=32768),

don_diff(m,n)=65536-DON(m)+DON(n)

If (DON(m)<DON(n) and DON(n)-DON(m)>=32768),

don_diff(m,n)=-(DON(m +65536-DON(n))

If (DON(m)>DON(n) and DON(m)-DON(n)<32768),

don_diff(m,n)=-(DON(m)-DON(n)),

где DON(i) - номер последовательности декодирования блока NAL, имеющего индекс i в последовательности передачи.

Положительное значение don_diff(m,n) показывает, что блок NAL, имеющий индекс последовательности передачи n, следует в последовательности декодирования за блоком NAL, имеющим индекс последовательности передачи m.

AbsDON означает такой номер последовательности декодирования блока NAL, который не сворачивается до 0 после 65535. Другими словами, AbsDON рассчитывается следующим образом:

пусть m и n - последовательные блоки NAL в последовательности передачи. Для самого первого блока NAL в последовательности передачи (чей индекс равен 0), AbsDON(0) = DON(0). Для остальных блоков NAL AbsDON рассчитывается следующим образом:

If DON(m)==DON(n), AbsDON(n)=AbsDON(m)

If (DON(m)<DON(n) and DON(n)-DON(m)<32768),

AbsDON(n)=AbsDON(m)+DON(n)-DON(m)

If (DON(m)>DON(n) and DON(m)-DON(n)>=32768),

AbsDON(n)=AbsDON(m)+65536-DON(m)+DON(n)

If (DON(m)<DON(n) and DON(n)-DON(m)>=32768),

AbsDON(n)=AbsDON(m)-(DON(m)+65536-DON(n))

If (DON(m)>DON(n) and DON(m)-DON(n)<32768),

AbsDON(n)=AbsDON(m)-(DON(m)-DON(n)),

где DON(i) - номер последовательности декодирования блока NAL, имеющего индекс i в последовательности передачи.

Когда буфер 9.1 приема содержит, по меньшей мере, N блоков VCL NAL, блоки NAL удаляются из буфера 9.1 приема один за другим и передаются декодеру 2. Блоки NAL не обязательно удаляются из буфера 9.1 приема в той же последовательности, в которой они были сохранены, а согласно DON блоков NAL, как описано ниже. Доставка пакетов декодеру 2 продолжается до тех пор, пока буфер содержит меньше, чем N блоков VCL NAL, т.е. N-1 блоков VCL NAL.

Блоки NAL, которые должны быть удалены из буфера приемного устройства, определяются следующим образом:

- Если буфер приема содержит, по меньшей мере, N блоков VCL NAL, блоки NAL удаляются из буфера приемного устройства и передаются декодеру в последовательности, заданной ниже, до тех пор, пока буфер содержит N-1 блоков VCL NAL.

- Если max-don-diff присутствует, все блоки NAL m, для которых don_diff(m,n) больше, чем max-don-diff, удаляются из буфера приемного устройства и передаются в декодер в последовательности, заданной ниже. При этом n соответствует блоку NAL, имеющему наибольшее значение AbsDON из принятых блоков NAL.

- Переменной ts задано значение системного таймера, которое было инициализировано до 0, когда первый пакет потока блоков NAL был принят. Если буфер приемного устройства содержит блок NAL, чье время приема tr удовлетворяет условию, что ts - tr > init-buf-time, блоки NAL передаются декодеру (и удаляются из буфера приемного устройства) в порядке, заданном ниже, до тех пор, пока буфер приемного устройства не содержит блок NAL, чье время приема tr удовлетворяет заданному условию.

Последовательность, в которой блоки NAL передаются декодеру, задается следующим образом.

Пусть PDON будет переменной, которая инициализируется до 0 в начале сеанса RTP. Для каждого блока NAL, ассоциативно связанного со значением DON, продолжительность рассчитывается следующим образом. Если значение DON блока NAL больше, чем значение PDON, продолжительность DON равна DON - PDON. В противном случае продолжительность DON равна 65535 - PDON + DON + 1.

Блоки NAL доставляются декодеру в возрастающей последовательности продолжительности DON. Если несколько блоков NAL имеют одинаковое значение продолжительности DON, они могут быть переданы декодеру в любой последовательности. Когда нужное число блоков NAL было передано декодеру, значение PDON задается равным значению DON для последнего блока NAL, переданного декодеру.

DPB 2.1 содержит разряды в памяти для сохранения ряда изображений. Эти разряды в данном описании также называют памятью кадров. Декодер 2 декодирует принятые изображения в корректной последовательности.

Настоящее изобретение может быть применено во многих видах систем и устройств. Передающее устройство 6, включающее в себя кодер 1, преимущественно включает также передающее устройство 7, чтобы передавать закодированные изображения в канал 4 передачи. Приемное устройство 8 включает в себя приемное устройство 9, чтобы принимать закодированные изображения, декодер 2 и дисплей 1, на котором могут быть отображены закодированные изображения. Каналом передачи может быть, например, канал наземной связи и/или канал беспроводной связи. Передающее устройство и приемное устройство также включают в себя один или более процессоров 1.2, 2.2, которые могут выполнять необходимые этапы для управления процессом кодирования/декодирования видеопотока согласно изобретению. Поэтому способ согласно настоящему изобретению может главным образом быть реализован в виде машиноисполняемых этапов процессоров. Буферизация изображений может быть реализована в памяти 1.3, 2.3 устройств. Программный код 1.4 кодера может быть сохранен в памяти 1.3. Следовательно, программный код 2.4 декодера может быть сохранен в памяти 2.3.

Похожие патенты RU2375839C2

название год авторы номер документа
ИЗМЕНЕНИЕ РАЗМЕРА БУФЕРА В КОДЕРЕ И ДЕКОДЕРЕ 2005
  • Ханнуксела Миска
  • Аксу Эмре
RU2385541C2
Система и способ предоставления указаний о выводе кадров при видеокодировании 2014
  • Ханнуксела Миска
  • Ванг Йе-Куи
RU2697741C2
ПЕРЕДАЧА СООБЩЕНИЙ ДОПОЛНИТЕЛЬНОЙ РАСШИРЕННОЙ ИНФОРМАЦИИ В ФОРМАТЕ ПОЛЕЗНОЙ НАГРУЗКИ ТРАНСПОРТНОГО ПРОТОКОЛА РЕАЛЬНОГО ВРЕМЕНИ 2008
  • Ханнуксела Миска
  • Ванг Йе-Куи
RU2430483C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ПЕРЕУПОРЯДОЧИВАНИЯ И МУЛЬТИПЛЕКСИРОВАНИЯ МУЛЬТИМЕДИЙНЫХ ПАКЕТОВ ИЗ МУЛЬТИМЕДИЙНЫХ ПОТОКОВ, ПРИНАДЛЕЖАЩИХ ВЗАИМОСВЯЗАННЫМ СЕАНСАМ 2009
  • Лепрово Ианн
  • Пупель Оливье
RU2518383C2
КОНЦЕПЦИЯ ПОТОКА ВИДЕОДАННЫХ 2013
  • Ширль Томас
  • Георге Валери
  • Хенкель Анастасия
  • Марпе Детлеф
  • Грюнеберг Карстен
  • Скупин Роберт
RU2720534C2
КОНЦЕПЦИЯ ПОТОКА ВИДЕОДАННЫХ 2013
  • Ширль Томас
  • Георге Валери
  • Хенкель Анастасия
  • Марпе Детлеф
  • Грюнеберг Карстен
  • Скупин Роберт
RU2635251C2
ИНФОРМАЦИЯ ТАКТИРОВАНИЯ КОДИРОВАНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2013
  • Ван Е-Куй
RU2635228C2
КОДИРОВАНИЕ ЕДИНИЦ NAL SEI ДЛЯ КОДИРОВАНИЯ ВИДЕО 2013
  • Ван Е-Куй
RU2619194C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОДАННЫХ 2015
  • Ханнуксела Миска
RU2653299C2
КОНЦЕПЦИЯ ПОТОКА ВИДЕОДАННЫХ 2020
  • Ширль, Томас
  • Георге, Валери
  • Хенкель, Анастасия
  • Марпе, Детлеф
  • Грюнеберг, Карстен
  • Скупин, Роберт
RU2766882C2

Иллюстрации к изобретению RU 2 375 839 C2

Реферат патента 2009 года СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ

Изобретение относится к способу буферизации мультимедийной информации, а также к способу декодирования закодированного потока изображений в декодере, в котором закодированный поток изображений принимается в виде блоков передачи, содержащих мультимедийные данные. Технический результат заключается в повышении эффективности сжатия при буферизации мультимедийной информации. Предложена система обработки мультимедийных данных, содержащая кодер для кодирования изображений и буфер для буферизации мультимедийных данных, при этом мультимедийные данные включены в блоки передачи данных, причем блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, также содержится блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования. 12 н. и 20 з.п. ф-лы, 7 ил.

Формула изобретения RU 2 375 839 C2

1. Способ буферизации мультимедийных данных в буфере, при этом мультимедийные данные включены в блоки передачи данных, причем блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что задают параметр, показывающий максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

2. Способ по п.1, отличающийся тем, что упомянутые мультимедийные данные содержат, по меньшей мере, одно из следующего видеоданные, звуковые данные.

3. Способ по п.1 или 2, отличающийся тем, что упомянутые мультимедийные данные содержат квант закодированного изображения.

4. Способ по п.1, отличающийся тем, что упомянутым блоком передачи, содержащим мультимедийные данные, является блок уровня абстрагирования от сети, содержащий данные уровня кодирования видео.

5. Способ декодирования потока закодированных изображений в декодере, заключающийся в том, что поток закодированных изображений принимают в виде блоков передачи данных, содержащих мультимедийные данные, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, выполняют буферизацию блоков передачи данных, отличающийся тем, что требования к буферизации указывают процессу декодирования в виде параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

6. Способ по п.5, отличающийся тем, что анализируют упомянутый параметр и резервируют разряды памяти для буферизации согласно упомянутому параметру.

7. Способ по п.6, отличающийся тем, что декодируют изображения из принятого потока закодированных изображений и буферизуют закодированные изображения, используя зарезервированные разряды памяти.

8. Система для обработки мультимедийных данных, содержащая кодер для кодирования изображений и буфер для буферизации мультимедийных данных, при этом мультимедийные данные включены в блоки передачи данных, причем блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающаяся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

9. Система по п.8, отличающаяся тем, что содержит декодер для декодирования закодированных изображений и память для буферизации декодированных изображений, причем упомянутый параметр используется для определения необходимого числа разрядов в памяти, которые должны быть зарезервированы в памяти для буферизации декодированных изображений.

10. Система по п.8, отличающаяся тем, что упомянутые мультимедийные данные содержат квант закодированного изображения.

11. Система по п.8, отличающаяся тем, что упомянутым блоком передачи данных является блок уровня абстрагирования от сети, содержащий данные уровня кодирования видео.

12. Передающее устройство для передачи мультимедийных данных, включенных в блоки передачи данных, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающееся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

13. Передающее устройство по п.12, отличающееся тем, что упомянутые мультимедийные данные содержат квант закодированного изображения.

14. Передающее устройство по п.12, отличающееся тем, что упомянутым блоком передачи, содержащим мультимедийные данные, является блок уровня абстрагирования от сети, содержащий данные уровня кодирования видео.

15. Приемное устройство для приема потока закодированных изображений в виде блоков передачи данных, содержащих мультимедийные данные, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающееся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

16. Приемное устройство по п.15, отличающееся тем, что содержит память, а упомянутое средство, использующее параметр, содержит блок определения для анализа упомянутого параметра и для резервирования разрядов памяти для буферизации в упомянутой памяти согласно упомянутому параметру.

17. Приемное устройство по п.16, отличающееся тем, что содержит декодер для декодирования изображений из принятого потока закодированных изображений и средство для использования зарезервированных разрядов памяти для буферизации закодированных изображений.

18. Компьютерно-читаемый носитель информации, содержащий команды, которые при исполнении компьютером предписывают компьютеру выполнять этапы для буферизации закодированных изображений в буфере, при этом мультимедийные данные включены в блоки передачи данных, причем блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что дополнительно содержит команды для выполнения этапов для задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

19. Компьютерно-читаемый носитель информации, содержащий команды, которые при исполнении компьютером предписывают компьютеру выполнять этапы для декодирования потока закодированных изображений, причем поток закодированных изображений принят в виде блоков передачи, содержащих мультимедийные данные, и этапы для буферизации блоков передачи, отличающийся тем, что дополнительно содержит команды для выполнения этапов для задания требований к буферизации для процесса декодирования посредством использования параметра, показывающего максимальное число блоков передачи, содержащих мультимедийные данные, которые предшествуют любому блоку передачи данных, содержащему мультимедийные данные, в потоке пакетов в последовательности передачи блоков передачи и следуют за этим блоком передачи, содержащим мультимедийные данные, в последовательности декодирования.

20. Модуль для приема потока закодированных изображений в виде блоков передачи данных, содержащих мультимедийные данные, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

21. Процессор для обработки мультимедийных данных в передающем устройстве, отличающийся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи, содержащих мультимедийные данные, которые предшествуют любому блоку передачи, содержащему мультимедийные данные, в потоке пакетов в последовательности передачи блоков передачи и следуют за этим блоком передачи, содержащим мультимедийные данные, в последовательности декодирования.

22. Процессор по п.21, отличающийся тем, что упомянутые мультимедийные данные содержат квант закодированного изображения.

23. Процессор по п.21, отличающийся тем, что упомянутым блоком передачи, содержащим мультимедийные данные, является блок уровня абстрагирования от сети, содержащий данные уровня кодирования видео.

24. Процессор для обработки мультимедийных данных в приемном устройстве для приема потока закодированных изображений в виде блоков передачи, содержащих квантованные данные, отличающийся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи, содержащих мультимедийные данные, которые предшествуют любому блоку передачи, содержащему мультимедийные данные, в потоке пакетов в последовательности передачи блоков передачи и следуют за этим блоком передачи, содержащим мультимедийные данные, в последовательности декодирования.

25. Процессор по п.24, отличающийся тем, что содержит память, а упомянутое средство, использующее параметр, содержит блок определения для анализа упомянутого параметра и для резервирования разрядов памяти для буферизации в упомянутой памяти согласно упомянутому параметру.

26. Процессор по п.24, отличающийся тем, что содержит декодер для декодирования изображений из принятого потока закодированных изображений и средство для использования зарезервированных разрядов памяти для буферизации закодированных изображений.

27. Кодер для кодирования мультимедийных данных, включенных в блоки передачи данных, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что содержит блок определения, выполненный с возможностью задания параметра, показывающего максимальное число блоков передачи данных, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

28. Кодер по п.27, отличающийся тем, что упомянутые мультимедийные данные содержат квант закодированного изображения.

29. Кодер по п.27, отличающийся тем, что упомянутым блоком передачи, содержащим мультимедийные данные, является блок уровня абстрагирования от сети, содержащий данные уровня кодирования видео.

30. Декодер для декодирования потока закодированных изображений, включенных в блоки передачи данных, содержащие мультимедийные данные, при этом блоки передачи данных упорядочены в последовательности передачи, которая, по меньшей мере, частично отличается от последовательности декодирования мультимедийных данных в блоках передачи данных, отличающийся тем, что содержит средство для задания требований к буферизации посредством использования параметра, показывающего максимальное число блоков передачи, которые предшествуют любому блоку передачи данных в потоке пакетов в последовательности передачи и следуют за этим блоком передачи данных в последовательности декодирования.

31. Декодер по п.30, отличающийся тем, что содержит память, а упомянутое средство, использующее параметр, содержит блок определения для анализа упомянутого параметра и для резервирования разрядов памяти для буферизации в упомянутой памяти согласно упомянутому параметру.

32. Декодер по п.31, отличающийся тем, что содержит средство для использования зарезервированных разрядов памяти для буферизации закодированных изображений.

Документы, цитированные в отчете о поиске Патент 2009 года RU2375839C2

Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, HRD Editor's Input to Final Committee Draft (FCD) of Joint Video Specification (ITU-T Rec
Железнодорожный снегоочиститель 1920
  • Воскресенский М.
SU264A1
US 2002105951 A1, 08.08.2002
US 6493388 B1, 10.12.2002
US 6023233 A,

RU 2 375 839 C2

Авторы

Ханнуксела Миска

Даты

2009-12-10Публикация

2004-02-17Подача