Изменение размера буфера в кодере и декодере

Иллюстрации

Показать все

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

Реферат

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

Опубликованные стандарты кодирования видеоизображений включают Рекомендации Международного союза электросвязи ITU-T H.261 и Н.263 и стандарты ISO (Международная организация по стандартизации) / IEC (Международная электротехническая комиссия) MPEG-1, MPEG-2 и MPEG-4, часть 2. Эти стандарты упоминаются здесь как известные стандарты кодирования изображений.

Системы видеосвязи

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

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

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

Имеются попытки стандартизации, продолжающиеся в совместной экспертной группе Joint Video Team (JVT) ITU-T и ISO/IEC. Работа группы JVT основана на более раннем проекте стандартизации ITU-T, который называется H.26L. Целью группы JVT является выпуск такого же стандарта, как Рекомендации ITU-T H.264 и Международный стандарт ISO/IEC 14496-10 (MPEG-4, часть 10). Предварительный стандарт в этом документе упоминается как стандарт кодирования JVT, а кодек, соответствующий предварительному стандарту, упоминается как кодек JVT.

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

Уровень сетевой абстракции NAL инкапсулирует слои выхода уровня видеокодирования в элементы (блоки) уровня сетевой абстракции (NALU), которые применимы для передачи через пакетные сети или для использования в ориентированных на передачу пакетов мультиплексных средах. Дополнение В стандарта кодирования JVT определяет процесс инкапсуляции для передачи таких блоков NALU уровня сетевой абстракции через сети, ориентированные на потоки байтов.

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

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

Концепция набора параметров

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

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

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

Порядок передачи

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

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

- Порядок декодирования изображений отделен от порядка их отображения.

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

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

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

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

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

Пример предсказывающей структуры, потенциально улучшающей эффективность сжатия, представлен на фиг.3. Прямоугольники обозначают изображения, заглавные буквы внутри прямоугольников обозначают типы кодирования, числа внутри прямоугольников являются номерами изображений в соответствии со стандартом кодирования JVT, и стрелки указывают зависимости предсказания. Заметим, что изображение В 17 является опорным изображением для изображения В 18. Эффективность сжатия потенциально улучшена по сравнению с традиционным кодированием, потому что опорные изображения для изображения В 18 являются более близкими во времени по сравнению с традиционным кодированием с помощью РВВР или РВВВР моделей кодирования изображений. Эффективность сжатия потенциально улучшена в сравнении с традиционными РВР моделями кодирования изображений, потому что опорные изображения являются предсказанными в двух направлениях.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ошибки передачи

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

Мобильные сети второго (2G) и третьего (3G) поколений, включающие GPRS, UMTS и CDMA-2000, предоставляют два основных типа соединений радиосвязи - с уведомлением и без уведомления. Соединение с уведомлением - это такое соединение, при котором целостность кадра радиоканала проверяется получателем (или мобильной станцией (MS), или подсистемой базовой станции (BBS)) и в случае ошибки передачи запрос на повторную передачу передается на другой конец радиоканала. Из-за повторной передачи канального уровня источник должен буферизировать кадр радиоканала, пока не получит положительного уведомления для этого кадра. В тяжелых радиоусловиях этот буфер может переполняться и вызывать потерю данных. Тем не менее показано, что для систем организации потоков предпочтительно использование режима протокола радиоканала с уведомлением. Соединение без уведомления - это такое, при котором ошибочные кадры радиоканала обычно удаляются.

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

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

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

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

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

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

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

Одним из решений, очевидных для специалиста в данной области, является использование счетчика кадров, подобного номеру изображения в стандарте Н.263, без сбрасывания в 0 на изображении мгновенного обновления декодера (как сделано в стандарте кодирования JVT). Однако при использовании этого вида решений могут случиться некоторые проблемы. Фиг.5 показывает ситуацию, в которой использована непрерывная нумерация. Если, например, изображение мгновенного обновления декодера 137 потеряно (не может быть принято или декодировано), декодер продолжает декодировать последующие изображения, но использует неверное опорное изображение. Это вызывает распространение ошибки на последующие кадры, пока следующий кадр, который не зависит от искаженного изображения, не будет получен и правильно декодирован. На примере фиг.5b номер кадра сброшен в 0 на изображении мгновенного обновления декодера. Теперь в ситуации, в которой изображение мгновенного обновления декодера 10 потеряно, декодер извещает о большом несоответствии в нумерации изображений после самого последнего правильно декодированного изображения Р36. Затем декодер может предположить, что произошла ошибка, и заморозить дисплей на изображении Р36 до тех пор, пока следующий кадр, который является независимым от искаженного кадра, не будет принят и декодирован.

Субпоследовательности

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

Субпоследовательность - это набор кодированных изображений внутри уровня субпоследовательности. Изображение может находиться только в одном уровне субпоследовательности и только в одной субпоследовательности. Субпоследовательность не должна зависеть от любой другой субпоследовательности в том же самом или в более высоком уровне субпоследовательности. Субпоследовательность на уровне 0 может быть декодирована независимо от любой другой субпоследовательности и предыдущего долговременного опорного изображения. Фиг.6а раскрывает пример потока изображений, содержащего субпоследовательность на уровне 1.

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

Концепция субпоследовательности включена в стандарт кодирования JVT следующим образом: в наборе параметров последовательности флаг required_frame_num_update_behaviour_flag, равный 1, сигнализирует о том, что кодированная последовательность может не содержать все субпоследовательности. Использование этого флага освобождает от требования возрастания номера кадра на 1 для каждого опорного кадра. Вместо этого несоответствия в номерах кадров особо отмечаются в буфере декодированного изображения. Если имеется ссылка на «отсутствующий» номер кадра в промежуточном предсказании, то делается вывод о потере изображения. В другом случае кадры, связанные с «отсутствующим» кадром, обрабатываются так, как если бы они были нормальными кадрами, вставленными в буфер декодированного изображения с помощью режима буферизации скользящего окна. Всем изображениям в размещенной субпоследовательности последовательно назначается «отсутствующий» номер кадра в буфере декодированного изображения, но они никогда не используются в промежуточном предсказании для других субпоследовательностей.

Стандарт кодирования JVT также включает опциональные относящиеся к субпоследовательности сообщения дополнительной информации расширения. Сообщение дополнительной информации расширения информации субпоследовательности связано со следующим слоем в последовательности декодирования. Оно обозначает уровень субпоследовательности и идентификатор субпоследовательности (sub_seq_id) той субпоследовательности, к которой принадлежит слой.

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

Решение в стандарте JVT JVT-D093 работает правильно, только если данные не размещаются в субпоследовательности уровня 1 или выше. Если порядок передачи отличается от порядка декодирования и кодированные изображения размещаются в субпоследовательности уровня 1, то заключение об их порядке декодирования относительно изображений в субпоследовательности уровня 0 не может быть сделано на основе идентификаторов субпоследовательности и номеров кадров. Например, рассмотрим следующую схему кодирования, представленную на фиг.6b, где порядок вывода идет слева направо, прямоугольники обозначают изображения, заглавные буквы внутри прямоугольников обозначают типы кодирования, номера внутри прямоугольников являются номерами кадров в соответствии со стандартом кодирования JVT, подчеркнутые символы обозначают не-опорные изображения и стрелки указывают зависимости предсказания. Если изображения передаются в порядке I0, Р1, Р3, I0, Р1, В2, В4, Р5, то не может быть сделано заключение, к какой независимой группе изображений принадлежит изображение В2.

Можно возразить, что в предыдущем примере заключение о правильной независимой группе изображений для изображения В2 может быть сделано на основе его временной отметки вывода. Однако порядок декодирования изображений не может быть восстановлен на основе временной отметки вывода и номера изображения, потому что порядок декодирования и порядок вывода разделены. Рассмотрим следующий пример (фиг.6с), где порядок вывода идет слева направо, прямоугольники обозначают изображения, заглавные буквы внутри прямоугольников обозначают типы кодирования, номера внутри прямоугольников являются номерами кадров в соответствии со стандартом кодирования JVT и стрелки указывают зависимости предсказания. Если изображения передаются вне порядка декодирования, нельзя надежно определить, должно ли изображение Р4 быть декодировано после Р3 первой или второй независимой группы изображений в последовательности вывода.

Буферизация

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