СИГНАЛИЗАЦИЯ О МНОЖЕСТВЕ ЗНАЧЕНИЙ ВРЕМЕНИ ДЕКОДИРОВАНИЯ В МЕДИАФАЙЛАХ
SIGNALLING MULTIPLE VALUES OF DECODING TIME IN MEDIA FILES

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение, в целом, относится к области хранения медиаконтента. Более конкретно, настоящее изобретение относится к сигнализации о множестве значений времени декодирования в медиафайлах.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Этот раздел предназначен для освещения предпосылок создания или контекста изобретения, которое раскрыто в формуле изобретения. Настоящее описание может включать не только те концепции, которые были задуманы или реализованы ранее. Поэтому, если не сказано иначе, содержание настоящего раздела не является изложением известного уровня техники для описания и формулы изобретения в данной заявке, и включение текста в настоящий раздел не следует рассматривать как описание известного уровня техники.
Стандарты кодирования видеосигнала включают ITU-T H.261, ISO/TEC MPEG-1 Visual, ITU-T H.262 или ISO/EEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (известный также как ISO/IEC MPEG-4 AVC). Кроме того, в настоящее время прилагаются усилия по разработке новых стандартов видеокодирования. Один из таких разрабатываемых стандартов - стандарт SVC, который станет масштабируемым расширением для стандарта H.264/AVC. Другим разрабатываемым стандартом является многоракурсное видеокодирование (MVC, Multi-view Video Coding), которое также является расширением стандарта H.264/AVC. Еще одно направление включает разработку китайских стандартов видеокодирования.
Проект стандарта SVC описан в документе JVT-V201 "Joint Draft 9 of SVC Amendment", 22nd JVT meeting, Marrakech, Morocco, Jan. 2007, доступном по адресу http://ftp3.itu.ch/av-arch/jvt-site/2007J31Jvlarrakech/JVT-V201.zip.Проект стандарта MVC описан в документе JVT-V209 "Joint Draft 2.0 on Multiview Video Coding", 22nd JVT meeting, Marrakech, Morocco, Jan. 2007, доступном по адресу http://ftp3.itu.ch/av-arch/jvt-site/2007_01_Marrakech/JVT-V209.zip.
Масштабируемые медиаданные обычно упорядочены в иерархические уровни данных, при этом видеосигнал может быть закодирован в базовый уровень и в один или несколько уровней расширения. Базовый уровень может содержать индивидуальное представление потока кодированных медиаданных, такое как видеопоследовательность. Уровни расширения могут содержать уточняющие данные по отношению к предыдущим уровням в иерархии уровней. С добавлением к базовому уровню уровней расширения качество потока декодированных медиаданных постепенно улучшается. Уровень расширения повышает временное разрешение (т.е. частоту кадров), пространственное разрешение и/или просто качество видеоконтента, представленного другим уровнем или его частью. Каждый уровень, совместно со всеми зависимыми от него уровнями, является одним из представлений видеосигнала при определенном пространственном разрешении, временном разрешении и/или уровне качества. Поэтому термин «представление масштабируемого уровня» используется здесь для описания масштабируемого уровня совместно со всеми зависимыми от него уровнями. Часть масштабируемого битового потока, соответствующего представлению масштабируемого уровня, может быть извлечена и декодирована для формирования представления исходного сигнала с определенной точностью.
Самым ранним типом масштабируемости, введенным в стандарты видеокодирования, была временная масштабируемость В-изображений в стандарте MPEG-1 Visual. Согласно этой временной масштабируемости В-изображение предсказывается из двух изображений: одно изображение предшествует В-изображению, а другое изображение следует за В-изображением, если рассматривать их в порядке отображения. Кроме того, В-изображение является неопорным изображением, то есть оно не используется в качестве опорного для предсказания других изображений. Следовательно, для достижения точки временной масштабируемости с меньшей частотой кадров В-изображения могут быть отброшены. Тот же самый механизм был сохранен в стандарте MPEG-2 Video, P.263 и MPEG-4 Visual.
В стандарте H.264/AVC была обобщена концепция В-изображений или В-слайсов. В В-изображений блок можно предсказать по двум опорным изображениям, идущим в порядке отображения, и на изображение, состоящее из В-слайсов, могут ссылаться другие изображения для межкадрового (inter-picture) предсказания. При этом больше не действительны такие характеристики временной масштабируемости В-изображений, как двунаправленное предсказание и неопорный характер изображений.
В стандартах H.264/AVC, SVC и МУС временная масштабируемость может быть достигнута с использованием неопорных изображений и/или иерархической структуры межкадрового предсказания, более подробно описанной ниже. Следует отметить, что при использовании только неопорных изображений можно достигнуть временной масштабируемости, аналогичной той, которая достигается с использованием обычных В-изображений в стандартах MPEG-1/2/4. Ее можно достигнуть, отбрасывая неопорные изображения. Альтернативно, использование иерархической структуры иерархического кодирования позволяет достигнуть более гибкой временной масштабируемости.
На фиг.1 показана структура обычного иерархического кодирования с четырьмя уровнями временной масштабируемости. Порядок отображения обозначен значениями счетчика порядка изображений (РОС, picture order count), I-изображения или P-изображения, также называемые ключевыми изображениями, кодируются как первое изображение в группе изображений (GOP, group of pictures) в порядке декодирования. Когда ключевое изображение кодировано с интер-кодированием, для межкадрового предсказания в качестве опорных используются предыдущие ключевые изображения. Поэтому эти изображения соответствуют самому низкому временному уровню (обозначен на фиг.1 как TL) в структуре временного масштабирования и связаны с самой низкой частотой кадров. Следует отметить, что для межкадрового предсказания изображений более высокого временного уровня можно использовать только изображения того же самого или более низкого временного уровня. При такой иерархической структуре кодирования можно достичь различной временной масштабируемости, соответствующей различным частотам кадров, путем отбрасывания изображений с некоторым значением временного уровня и выше.
Например, на фиг.1 изображения 0, 108 и 116 относятся к самому низкому временному уровню, то есть TLO, в то время как изображения 101, 103, 105, 107, 109, 111, 113 и 115 относятся к наивысшему временному уровню, то есть TL3. Оставшиеся изображения 102, 106, 110 и 114 относятся к другому временному уровню (TL) в иерархической структуре и составляют битовый поток с другой частотой кадров. Следует отметить, что при декодировании всех временных уровней в группе изображений можно достичь самой высокой частоты кадров. Меньшие частоты кадров можно получить, отбрасывая изображения некоторых временных уровней. Следует отметить, что более низкий уровень временной масштабируемости с более низкой частотой кадров можно также называть более низким временным уровнем.
Иерархическая структура кодирования В-изображений, описанная выше, представляет собой типичную структуру кодирования для обеспечения временной масштабируемости. Однако следует отметить, что возможны более гибкие структуры кодирования. Например, размер группы изображений не обязан быть постоянным во времени. Альтернативно, изображения уровня временного расширения не обязательно кодировать как В-слайсы, их можно также кодировать как P-слайсы.
Концепция уровня кодирования видеосигнала (VCL, video coding layer) и сетевого уровня абстракции (NAL, network abstraction layer) унаследована от стандарта усовершенствованного кодирования видеосигнала (AVC, advanced video coding). Уровень VCL включает функциональные возможности кодека по обработке сигналов, например, такие механизмы, как преобразование, дискретизация, предсказание с компенсацией движения, петлевой фильтр и межуровневое предсказание. Кодированное изображение для базового уровня или уровня расширения состоит из одного или нескольких слайсов. Уровень NAL инкапсулирует каждый слайс, генерированный уровнем VCL, в один или несколько блоков NAL.
Каждый уровень SVC сформирован блоками NAL, представляющими кодированные биты видеосигнала для этого уровня. Поток транспортного протокола реального времени (RTF, Real Time Transport Protocol), несущий только один уровень, переносит блоки NAL, принадлежащие только этому уровню. Поток RTF, несущий полный поток масштабируемых битов видеосигнала, переносит блоки NAL базового уровня и одного или нескольких уровней расширения. Стандарт SVC задает порядок декодирования этих блоков NAL.
В некоторых случаях данные уровня расширения могут быть усечены после некоторой позиции или в произвольных позициях, при этом каждая позиция усечения может включать дополнительные данные, соответствующие все более высокому качеству видеоизображения. В случаях, когда точки усечения расположены близко, говорят, что масштабируемость является «мелкозернистой» масштабируемостью (FGS, fine-grained scalability). В отличие от FGS, масштабируемость, обеспеченная теми уровнями расширения, которые могут быть усечены только в определенных положениях, заданных с меньшей точностью, называется «крупнозернистой масштабируемостью» (CGS, coarse-grained scalability). Кроме того, проект стандарта кодирования SVC, упомянутый выше, может также поддерживать так называемую среднезернистую масштабируемость (MGS, medium-grained scalability). Согласно MGS, изображения повышенного качества кодируются аналогично изображениям уровня масштабируемости CGS, но могут быть указаны элементами синтаксиса высокого уровня, как это делается для изображений уровня FGS. Следует отметить, что уровни расширения могут коллективно включать масштабируемость качества (SNR) CGS, MGS и FGS и пространственную масштабируемость.
Согласно стандарту H.264/AVC, блок доступа включает одно первичное кодированное изображение. В некоторых системах обнаружение границ блока доступа можно упростить, вставляя в битовый поток разделительный блок NAL блока доступа. В стандарте SVC блок доступа может включать множество первичных кодированных изображений, но только по одному изображению на каждую уникальную комбинацию идентификаторов dependencyjd, temporaljd и qualityjd. Понятие кодированного изображения в контексте настоящего описания может относиться ко всем блокам NAL в пределах блока доступа, имеющим конкретные значения dependencyjd и qualityjd. Отметим, что термины, которые используются в стандарте SVC, могут измениться. Поэтому то, что в настоящем описании упомянуто как кодированное изображение, может впоследствии называться другим термином, например представлением уровня.
Для обеспечения иерархической временной масштабируемости в стандарте SVC используется механизм, аналогичный используемому в H.264/AVC. В стандарте SVC определенный набор опорных и неопорных изображений может быть изъят из кодированного битового потока без воздействия на декодирование остальной части битового потока. Для компенсации движения иерархическая временная масштабируемость требует наличия множества опорных изображений, то есть имеется буфер опорных изображений, содержащий множество декодированных изображений, из которых кодер может выбирать опорное изображение для межкадрового предсказания. В стандарте H.264/AVC так называемые подпоследовательности обеспечивают иерархическую временную масштабируемость, при которой каждый уровень расширения содержит подпоследовательности, и каждая подпоследовательность содержит множество опорных и/или неопорных изображений. Подпоследовательность также состоит из множества взаимозависимых изображений, которые могут быть расположены без какой-либо помехи для любой другой подпоследовательности на любом более низком уровне подпоследовательности. Уровни подпоследовательностей организованы иерархически на основе их зависимости друг от друга и эквивалентны временным уровням в стандарте SVC. Поэтому, когда подпоследовательность самого высокого уровня удаляется, оставшийся битовый поток остается пригодным. В стандарте H.264/AVC передача информации о временной масштабируемости осуществляется с использованием сообщений дополнительной информации расширения (SEI, supplemental enhancement information), относящихся к подпоследовательностям. В стандарте SVC иерархия временных уровней указывается в заголовке блоков NAL.
Формат файлов является важным элементом в цепи создания, обработки, передачи и потребления мультимедийного контента. Имеется различие между форматом кодирования и форматом файла. Формат кодирования относится к действию специфического алгоритма кодирования, в результате которого информация контента кодируется в битовый поток. В отличие от формата кодирования, формат файла включает систему/структуру(-ы), предназначенную для организации генерированного битового потока так, чтобы к нему можно было получить доступ для локального декодирования и воспроизведения, перенести в виде файла или передать в виде потока, используя разнообразные архитектуры переноса и хранения. Кроме того, формат файлов может упрощать взаимообмен и редактирование медиаданных. Например, множество потоковых приложений требуют, чтобы предварительно кодированный битовый поток в сервере сопровождался метаданными, которые хранятся на «дорожках указаний» (hint-tracks) и помогают потоковой передаче видеоданных из сервера клиенту. Примеры информации, которая может быть включена в метаданные на дорожке указаний, включают информацию о времени, индикацию точек синхронизации и указания по пакетированию. Эта информация используется для снижения операционной нагрузки на сервер и улучшения восприятия видеоданных конечным пользователем.
Один из существующих стандартов для форматов медиафайлов включает объектно-ориентированную структуру формата медиафайлов на основе ISO (ISO base media file format), в которой файл может быть разбит на составляющие его объекты, при этом структура составляющих объектов может быть выявлена непосредственно из их типа и местоположения. Кроме того, формат медиафайлов на основе ISO предназначен для хранения синхронизированной медиаинформации для представления в гибком расширяемом формате, который облегчает взаимообмен, управление, редактирование и представление медиаданных. Сами файлы имеют логическую структуру, временную структуру и физическую структуру, хотя эти структуры необязательно связаны.
Логическая структура файла может быть уподоблена структуре «фильма», которая содержит ряд параллельных во времени дорожек. Временная структура файла представлена дорожками, содержащими последовательности сэмплов (фрагментов потока медиаданных) во времени, и эти последовательности преобразуются во временную последовательность полного фильма посредством опциональных списков редактирования. Физическая структура файла отделяет данные, необходимые для логического, временного и структурного анализа, от сэмплов медиаданных как таковых. Эта структурная информация представлена дорожками, документирующими логические и временные связи сэмплов, а также содержит указатели мест их расположения. Указатели могут ссылаться на медиаданные в том же файле или в другом файле, указанном, например, унифицированным указателем ресурса.
Каждый поток медиаданных содержится на дорожке, предназначенной для этого типа медиаданных (аудио, видео и т.д.), а также параметризован входом сэмпла. Вход сэмпла содержит «название» точного типа медиаданных (то есть тип декодера, необходимого для декодирования потока) и любые необходимые параметры для этого декодера. Кроме того, дорожки синхронизированы посредством временных меток медиа-сэмплов. Также дорожки могут быть связаны вместе ссылками дорожек, при этом дорожки могут быть альтернативными друг другу, например, это могут быть две звуковых дорожки с данными на разных языках.
Некоторые сэмплы в пределах дорожки имеют специальные характеристики или должны быть индивидуально идентифицированы, например, точки синхронизации (часто I-кадр видеосигнала). Эти точки синхронизации идентифицируются специальной таблицей в каждой дорожке. Вообще, характер зависимостей между сэмплами дорожки также может быть документирован. Кроме того, можно использовать концепцию поименованных параметризованных групп сэмплов. Эти поименованные параметризованные группы сэмплов позволяют документировать произвольные характеристики, которые используются совместно некоторыми из сэмплов на дорожке. В формате файла SVC группы сэмплов используются для описания сэмплов с определенной структурой блока NAL.
Все файлы начинаются с блока типа файла, который определяет наилучшее использование файла и спецификации, которым соответствует файл, что документируется как «бренды». Присутствие бренда в блоке типа файла индицирует как заявление, так и разрешение: заявление создателя файла о том, что файл соответствует указанной спецификации; и разрешение считывающему устройству, возможно пользующемуся только такой спецификацией, считывать и обрабатывать этот файл.
В случае вышеописанной структуры фильма, блок (box) «фильма» может содержать ряд блоков «дорожек», например блок видеодорожки, блок звуковой дорожки и блок дорожки указаний. В свою очередь, каждая дорожка для одного потока может содержать информацию, включая, но этим не ограничиваясь, информацию синхронизации, характер материала, например, видео, аудио, и т.д., информацию о визуализации, информацию об инициировании (например, таблицы входов сэмплов), и информацию о том, где можно найти кодированные данные, их размер и т.п. Другими словами, блок дорожки может содержать метаданные, связанные с данными фактического медиаконтента. Например, каждая дорожка может содержать, помимо прочих элементов, блок таблицы сэмплов с блоком описания типов, при этом блок описания типов содержит определенную информацию, например, информацию, содержащуюся в записи о конфигурации декодера для стандарта MPEG-4 AVC video, которая необходима декодирующему устройству для инициализации. Кроме того, блок таблицы типов содержит множество таблиц, которые включают информацию синхронизации и указатели на медиаданные. Другими словами, видеоданные и аудиоданные могут храниться вперемешку в виде порций в пределах контейнера/блока медиаданных. Наконец, дорожка указаний может содержать заранее вычисленные инструкции по обработке файла для создания потока.
Кроме того, с использованием стандарта SVC можно сообщить информацию о множестве значений времени декодирования с использованием сообщений SEI. Однако для извлечения необходимых значений времени декодирования из сообщения SEI требуется, чтобы считыватель файла был снабжен энтропийными декодерами. Кроме того, анализ сэмплов медиаданных для выявления сообщений SEI, которые содержат информацию о времени декодирования, также может представлять собой трудную задачу. Поэтому такие требования могут привести к усложнению использования файлов и усложнению вычислений в тех серверах, которые предоставляют подмножества хранящихся битовых потоков. Формат медиафайла на основе ISO и его производные (например, формат файла SVC) обеспечивают сигнализацию о времени декодирования для каждого сэмпла, содержащего один блок доступа. Однако для масштабируемых медиаданных, когда необходимо декодировать только подмножество или подмножества сэмплов, время декодирования каждого сэмпла или подмножества сэмплов может отличаться от случая, когда необходимо декодировать весь поток.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Первый аспект вариантов осуществления настоящего изобретения касается способа, включающего сохранение первых данных о времени в блоке дорожки медиафайла, при этом первые данные о времени описывают время декодирования по меньшей мере одного сэмпла кодированного мультимедийного контента, хранящегося в ассоциированном блоке медиаданных медиафайла, и сохранение данных об альтернативном времени декодирования упомянутого по меньшей мере одного сэмпла кодированного мультимедийного контента, при этом упомянутые данные об альтернативном времени декодирования выражены в виде разностного значения, которое представляет поправку для времени декодирования упомянутого по меньшей мере одного сэмпла.
Другой аспект настоящего изобретения касается способа, включающего сохранение первых данных о времени в блоке дорожки медиафайла, при этом первые данные о времени описывают время декодирования по меньшей мере одного сэмпла кодированного мультимедийного контента, хранящегося в ассоциированном блоке медиаданных медиафайла; и сохранение данных об альтернативном времени декодирования упомянутого по меньшей мере одного сэмпла кодированного мультимедийного контента для использования в случае, если требуется декодировать подмножество кодированного мультимедийного контента.
Еще один аспект вариантов осуществления настоящего изобретения касается устройства, которое содержит процессор и блок памяти, соединенный с процессором. Кроме того, устройство содержит кодер, который предназначен для сохранения первых данных о времени в блоке дорожки медиафайла, при этом первые данные о времени описывают время декодирования по меньшей мере одного сэмпла кодированного мультимедийного контента, хранящегося в ассоциированном блоке медиаданных медиафайла; и для сохранения данных об альтернативном времени декодирования упомянутого по меньшей мере одного сэмпла кодированного мультимедийного контента, при этом упомянутые данные об альтернативном времени декодирования выражены в виде разностного значения, которое представляет поправку для времени декодирования упомянутого по меньшей мере одного сэмпла.
Еще один аспект вариантов осуществления настоящего изобретения касается способа, включающего анализ медиафайла, содержащего битовый поток медиаданных и первые данные о времени, описывающие время декодирования по меньшей мере одного сэмпла битового потока медиаданных; определение, требуется ли декодировать полный битовый поток медиаданных или требуется декодировать подмножество битового потока медиаданных; и после определения того, что требуется декодировать подмножество битового потока медиаданных, анализ альтернативных значений времени декодирования упомянутого по меньшей мере одного сэмпла подмножества битового потока медиаданных и декодирование упомянутого подмножества битового потока медиаданных согласно данным об альтернативном времени декодирования.
Еще один аспект вариантов осуществления настоящего изобретения касается устройства, которое содержит процессор и блок памяти, функционально связанный с процессором. Кроме того, указанное устройство содержит анализатор файла для анализа медиафайла, включающего битовый поток медиаданных и первые данные о времени, описывающие время декодирования по меньшей мере одного сэмпла битового потока медиаданных; для определения, требуется ли декодировать полный битовый поток медиаданных или требуется декодировать подмножество битового потока медиаданных; и для анализа данных об альтернативном времени декодирования упомянутого по меньшей мере одного сэмпла подмножества битового потока медиаданных, если определено, что требуется декодировать подмножество битового потока медиаданных. Кроме того, устройство содержит декодер для декодирования упомянутого подмножества битового потока медиаданных согласно данным об альтернативном времени декодирования.
Еще один аспект вариантов осуществления настоящего изобретения касается машиночитаемого носителя медиаданных, который хранит контейнерный файл, содержащий множество дорожек; первые данные о времени, содержащиеся в блоке дорожек и описывающие время декодирования по меньшей мере одного сэмпла кодированного мультимедийного контента, хранящегося в ассоциированном блоке медиаданных; данные об альтернативном времени, содержащиеся в упомянутом блоке для сигнализации об альтернативном времени для упомянутого по меньшей мере одного сэмпла кодированного мультимедийного контента, при этом упомянутые данные об альтернативном времени декодирования выражены в виде разностного значения, которое представляет поправку для времени декодирования упомянутого по меньшей мере одного сэмпла.
Еще один аспект вариантов осуществления настоящего изобретения касается устройства, которое содержит процессор и блок памяти, связанный с процессором. Кроме того, устройство содержит компьютерный код, обеспечивающий сохранение первых данных о времени в блоке дорожки медиафайла, при этом первые данные о времени описывают время декодирования по меньшей мере одного сэмпла кодированного мультимедийного контента, хранящегося в ассоциированном блоке медиаданных медиафайла; компьютерный код, обеспечивающий сохранение данных об альтернативном времени декодирования упомянутого по меньшей мере одного сэмпла кодированного мультимедийного контента, при этом упомянутые данные об альтернативном времени декодирования выражены в виде разностного значения, которое представляет поправку для времени декодирования упомянутого по меньшей мере одного сэмпла; и компьютерный код, обеспечивающий сохранение идентификатора, идентифицирующего уровень масштабируемости для упомянутого по меньшей мере одного сэмпла.
Еще один аспект вариантов осуществления настоящего изобретения касается устройства, которое содержит процессор и блок памяти, связанный с процессором. Кроме того, устройство содержит компьютерный код, обеспечивающий анализ медиафайла, включающего битовый поток медиаданных и первые данные о времени, описывающие значения времени декодирования по меньшей мере одного сэмпла битового потока медиаданных; компьютерный код, обеспечивающий определение, требуется ли декодировать полный битовый поток медиаданных или требуется декодировать подмножество битового потока медиаданных; и обеспечивающий анализ данных об альтернативном времени декодирования упомянутого по меньшей мере одного сэмпла подмножества битового потока медиаданных, если определено, что требуется декодировать подмножество битового потока медиаданных; компьютерный код, обеспечивающий декодирование упомянутого подмножества битового потока медиаданных согласно данным об альтернативном времени декодирования, и компьютерный код, обеспечивающий анализ идентификатора, идентифицирующего уровень масштабируемости для упомянутого по меньшей мере одного сэмпла.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеописанные и другие преимущества и признаки примеров осуществления настоящего изобретения, совместно с описанием устройства и его работы, станут очевидными из последующего подробного описания, совместно с прилагаемыми чертежами, где одинаковые элементы обозначены одинаковыми позициями.
На фиг.1 показана обычная иерархическая структура четырех уровней временной масштабируемости.
На фиг.2 показана обобщенная система мультимедийной связи для использования с настоящим изобретением.
На фиг.3 показан вид в перспективе мобильного устройства, которое может использоваться при реализации настоящего изобретения.
На фиг.4 показана электрическая схема мобильного устройства, изображенного на фиг.3.
На фиг.5 показана логическая последовательность операций, которая поясняет работу способа и результат выполнения инструкций компьютерной программы согласно примерам осуществления настоящего изобретения.
На фиг.6 показана другая логическая последовательность операций, поясняющая работу способа и результат выполнения инструкций компьютерной программы согласно примерам осуществления настоящего изобретения.
На фиг.7 показана еще одна логическая последовательность операций, поясняющая работу способа и результат выполнения инструкций компьютерной программы, согласно примерам осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ПРИМЕРОВ ОСУЩЕСТВЛЕНИЯ
ИЗОБРЕТЕНИЯ
Ниже описаны примеры способов, компьютерных программ и устройств, которые обеспечивают сигнализацию о множестве значений времени декодирования для каждого сэмпла на уровне формата файла, позволяя, например, использовать различные значения времени декодирования для каждого сэмпла или подмножества сэмплов при декодировании полного потока и при декодировании подмножества этого потока. Определен блок альтернативного времени декодирования, обеспечивающий сигнализацию о множестве значений времени декодирования для каждого сэмпла. Такой блок может содержать компактную версию таблицы, которая позволяет индексировать от альтернативного времени декодирования до количества сэмплов, при этом альтернативное время декодирования - это время декодирования, которое используется для сэмпла, когда требуется декодировать только подмножество элементарного потока, хранящегося на дорожке. Кроме того, каждая запись в таблице содержит количество последовательных сэмплов с той же самой временной разностью, и временную разность между этими последовательными сэмплами. Поэтому путем сложения указанных разностей можно построить полную карту «время-сэмпл». Реализация различных примеров осуществления настоящего изобретения позволяет, например, иметь различные значения времени декодирования сэмпла или подмножества сэмплов для декодирования полного потока и для декодирования подмножества этого потока. Различные примеры осуществления настоящего изобретения могут быть реализованы без включения дополнительных элементов и/или повышения сложности вычислений в серверах/элементах хранения.
На фиг,2 показана обобщенная система мультимедийной связи для использования с настоящим изобретением. Как показано на фиг.2, источник 200 данных выдает исходный сигнал источника в аналоговом, несжатом цифровом, сжатом цифровом формате или в любой комбинации этих форматов. Кодер 210 кодирует исходный сигнал в кодированный битовый поток медиаданных. Кодер 110 может быть способен кодировать более одного типа медиаданных, например аудио и видео, или же для кодирования различных видов медиаданных исходного сигнала может понадобиться более одного кодера 210. Кроме того, кодер 210 может получать искусственно созданные входные сигналы, например графические данные и текст, или он может быть способен генерировать кодированные битовые потоки искусственно созданных медиаданных. Ниже для упрощения описания рассматривается обработка только одного кодированного битового потока одного типа медиаданных. Однако следует отметить, что типичные службы вещания в реальном времени включают несколько потоков (обычно, по меньшей мере, поток с аудиоданными, поток с видеоданными и поток с текстом субтитров). Кроме того, следует отметить, что система может включать много кодеров, но в последующем описании для упрощения, не нарушающего общность, рассмотрен только один кодер 210.
Кроме того, хотя текст и приводимые здесь примеры могут описывать конкретно процесс кодирования, специалистам в данной области техники понятно, что те же самые концепции и правила относятся к соответствующему процессу декодирования и наоборот.
Кодированный битовый поток медиаданных попадает в память 220. Память 220 может включать любой тип памяти большой емкости, предназначенный для хранения кодированного битового потока медиаданных. Формат кодированного битового потока медиаданных в памяти 220 может быть элементарным автономным форматом для битового потока, или же один или несколько кодированных битовых потоков медиаданных могут быть инкапсулированы в контейнерный файл. Некоторые системы работают «на лету», то есть не используют память и передают кодированный битовый поток медиаданных из кодера 210 непосредственно отправителю 230. Затем кодированный битовый поток медиаданных передается, когда это необходимо, отправителю 230, также называемому сервером. Формат, используемый при передаче, может быть элементарным автономным форматом битового потока или форматом пакетного потока, или же один или несколько кодированных битовых потоков медиаданных могут быть включены в контейнерный файл. Кодер 210, память 220 и отправитель 230 могут располагаться в одном и том же физическом устройстве, или же они могут входить в отдельные устройства. Кодер 210 и отправитель 230 могут работать с контентом реального времени, когда кодированный битовый поток медиаданных, как правило, не хранится постоянно, а буферизируется в течение небольших промежутков времени в кодере 210 контента и/или в отправителе 230 для сглаживания вариаций из-за задержек на обработку, задержек на передачу и вследствие конечности скорости передачи кодированных медиаданных.
Отправитель 230 посылает кодированный битовый поток медиаданных с использованием стека протоколов связи. Стек может включать протокол передачи в реальном времени (RTF, Real-Time Transport Protocol), протокол пользовательских дейтаграмм (UDP, User Datagram Protocol) и протокол Интернет (IP, Internet Protocol), но не обязательно только их. Когда стек протоколов связи является пакетно-ориентированным, отправитель 230 инкапсулирует кодированный битовый поток медиаданных в пакеты. Например, когда используется протокол RTP, отправитель 230 инкапсулирует кодированный битовый поток медиаданных в пакеты RTP согласно формату полезной нагрузки протокола RTP. Как правило, каждый вид медиаданных имеет специфический формат полезной нагрузки для протокола RTP. Следует отметить, что система может содержать более одного отправителя 230, но ради простоты в последующем описании рассматривается только один отправитель 230.
Отправитель 230 может быть, а может и не быть, связан со шлюзом 240 через систему связи. Шлюз 240 может выполнять различные функции, например, передачу пакетного потока согласно одному стеку протоколов связи в другой стек протоколов связи, объединение и разделение потоков данных и манипулирование потоками данных согласно возможностям нисходящей связи и/или приемника, например, управление скоростью передачи данных передаваемых потоков согласно превалирующим условиям в нисходящей сети. Примеры шлюзов 240 включают устройство управления многосторонней связью (MCU, multipoint conference control unit), шлюзы между устройствами видеотелефонии с соединениями по коммутируемым линиям и с пакетной коммутацией, серверы типа «нажал-говори по сотовому телефону» (РоС, Push-to talk over Cellular), IP-инкапсуляторы в системах цифрового телевизионного вещания на мобильные устройства (стандарт DVB-H) или телевизионные приставки, которые передают транслируемые сигналы в локальные домашние беспроводные сети. При использовании протокола RTP шлюз 240 называют микшером RTP, и этот шлюз действует как конечная точка соединения RTP.
Система включает один или несколько приемников 250, обычно способных к приему, демодуляции и декапсулированию переданного сигнала с преобразованием его в кодированный битовый поток медиаданных. Кодированный битовый поток медиаданных обычно подвергается дальнейшей обработке декодером 260, на выходе которого получается один или несколько потоков несжатых медиаданных. Наконец, рендерер 270 может воспроизвести несжатые потоки медиаданных, например, в громкоговорителе или на дисплее. Приемник 250, декодер 260 и рендерер 270 могут располагаться в одном и том же физическом устройстве, или же они могут входить в отдельные устройства.
Следует отметить, что декодируемый битовый поток может быть принят от удаленного устройства, расположенного фактически в пределах сети любого типа. Кроме того, битовый поток может быть принят из локальных аппаратных средств или программных средств.
Масштабируемость в отношении скорости передачи битов, сложности декодирования и размера изображения является желательной характеристикой для неоднородной и подверженной ошибкам среды передачи. Эта характеристика желательна для противодействия ограничениям, например ограничениям на скорость передачи данных, разрешение дисплея, пропускную способность сети и вычислительную мощность в приемном устройстве.
Устройства связи в рамках настоящего изобретения могут осуществлять связь с использованием различных способов передачи, включая, но этим не ограничиваясь, множественный доступ с кодовым разделением каналов (CDMA, Code Division Multiple Access), Глобальную систему мобильной связи (GSM, Global System for Mobile communications), Универсальную систему мобильной связи (UMTS, Universal Mobile Telecommunications System), Множественный доступ с временным разделением каналов (TDMA, Time Division Multiple Access), Множественный доступ с частотным разделением каналов (FDMA, Frequency-Division Multiple Access), Протокол управления передачей/Протокол Интернет (TCP/IP, Transmission Control Protocol/Internet Protocol), службу коротких сообщений (SMS, Short Message Service), службу передачи мультимедиа сообщений (MMS, Multimedia Message Service), электронную почту (e-mail), службу мгновенной передачи сообщений (IMS, Instant Massaging Service), стандарт Bluetooth, IEEE 802.11 и т.д. Устройство связи может осуществлять связь с использованием различных средств, включая, но этим не ограничиваясь, радиоволны, инфракрасное излучение, лазерное излучение, кабельное соединение и т.п.
На фиг.3 и 4 показано типичное мобильное устройство 12, в котором может быть использовано настоящее изобретение. Однако должно быть понятно, что настоящее изобретение не ограничено одним конкретным типом мобильного устройства 12 или другого электронного устройства. Некоторые или все признаки, показанные на фиг.3 и 4, могут быть включены в любые из устройств, представленных на фиг.2.
Мобильное устройство 12 на фиг.3 и 4 содержит корпус 30, дисплей 32 в виде жидкокристаллического дисплея, клавиатуру 34, микрофон 36, динамик 38, батарею 40, инфракрасный порт 42, антенну 44, смарт-карту 46, которая, согласно одному варианту осуществления настоящего изобретения, может быть картой UICC, считыватель 48 карты, схему 52 радиоинтерфейса, схему 54 кодека, контроллер 56 и память 58. Все отдельные схемы и элементы хорошо известны и могут быть найдены, например, в линейке мобильных телефонов фирмы Nokia.
Различные варианты осуществления настоящего изобретения обеспечивают сигнализацию о множестве значений времени декодирования для каждого сэмпла на уровне формата файлов, обеспечивая, например, различные значения времени декодирования для сэмпла или подмножества сэмплов при декодировании полного потока и при декодировании подмножества этого потока. Кроме того, различные варианты осуществления настоящего изобретения могут также быть осуществлены без дополнительных элементов и/или повышения вычислительной сложности в серверах/элементах памяти, например памяти 220 на фиг.2.
Согласно первому варианту осуществления настоящего изобретения «блок» (box), который можно называть блоком альтернативного времени декодирования, определен следующим образом для обеспечения сигнализации о множестве значений времени декодирования для каждого сэмпла:
Тип группы: «adts»
Контейнер: Блок таблицы сэмплов ("stbl")
Обязательность: Нет
Количество: Ноль или больше (один для каждого уровня)
Такой блок может содержать компактную версию таблицы, которая позволяет индексировать от альтернативного времени декодирования до количества сэмплов, при этом, как описано выше, временная структура файла представлена дорожками, содержащими последовательности сэмплов во времени. Альтернативное время декодирования - это время декодирования, которое используется для сэмпла, когда определено, что необходимо декодировать только подмножество элементарного потока, хранящегося на дорожке. В противном случае, когда необходимо декодировать весь элементарный поток, можно использовать обычное время декодирования, согласно формату медиафайла на основе ISO и его производным. Кроме того, каждая запись в таблице предоставляет число последовательных сэмплов с той же самой разностью времени и значения разности между этими последовательными сэмплами. Поэтому, суммируя разности, можно построить полную карту «время-сэмпл».
Кроме того, этот блок может содержать разности (приращения) альтернативного времени декодирования, при этом ADT(n+1)=ADT(n)+sample_delta(n), где ADT(n) -альтернативное время декодирования сэмпла n, a sample_delta(n) - (несжатая) табличная запись разности для сэмпла n. Ось ADT имеет начало в нуле, и ADT(i) равно сумме значений sample_delta(j) от j=0 до j=i-1, при этом сумма всех разностей дает длину конкретных медиаданных на дорожке. Следует отметить, что эта длина конкретных медиаданных на дорожке может быть меньше, чем полная продолжительность фильма, который может содержать редактируемые списки. Кроме того, следует отметить, что разности могут быть равны нулю.
Блок может быть охарактеризован следующей синтаксической структурой:
Кроме того, семантика синтаксической структуры для вышеописанного блока следующая;
version - целое число, определяющее версию этого блока;
operation_point - целое число, которое определяет точку операции,
для которой должны использоваться значения времени декодирования, о которых сигнализируется в этом блоке. Следует отметить, что точка операции соответствует декодированию подмножества элементарного потока, хранящегося на дорожке. Кроме того, следует отметить, что значение operation_point может быть равно значению элемента tierld, который представляет уровень масштабируемости для формата файла SVC. Кроме того, для потока только с временной масштабируемостью значение operation_point может быть равно идентификатору временного уровня, например элементу temporal_id в SVC или элементу sub_seq_layer_id в AVC;
entry_count - целое число, которое задает количество записей в следующей таблице;
sample_count - целое число, которое подсчитывает число последовательных сэмплов, которые имеют заданную разность альтернативного времени декодирования; и
sample_delta - целое число, которое задает разность альтернативных значений времени декодирования между сэмплами на шкале времени медиаданных.
Согласно второму варианту осуществления настоящего изобретения в блоке альтернативного времени декодирования, определенном выше, поле sample_delta кодировано как «целое» (int (32)) вместо «целое без знака» (int insigned (32)). Поэтому поле sample_delta в этом случае может задавать смещение между альтернативным временем декодирования и обычным временем декодирования, используемым при декодировании полного потока для того же сэмпла согласно блоку «время декодирования сэмпла» ("Decoding Time to Sample Box"). Другими словами, если время декодирования согласно блоку «время декодирования сэмпла» для сэмпла n равно DT(n), то альтернативное время декодирования может быть представлено как ADT(n)=DT(n)+sample_delta(n).
Настоящее изобретение описано в контексте стадий способа, которые в одном варианте осуществления настоящего изобретения могут быть осуществлены в виде программного продукта, включающего исполняемые в компьютере инструкции, например программный код, исполняемый компьютерами в сетевом окружении, В общем случае программные модули включают процедуры, программы, объекты, компоненты, структуры данных и т.д., которые решают конкретные задачи или реализуют конкретные абстрактные типы данных. Выполняемые на компьютере инструкции, соответствующие структуры данных и программные модули являются примерами программного кода, предназначенного для реализации стадий способов, раскрытых в настоящем описании. Конкретная последовательность таких выполняемых инструкций или соответствующих структур данных представляет примеры соответствующих действий по реализации функций, описанных на таких стадиях.
Программное обеспечение и сетевая реализация настоящего изобретения могут быть осуществлены с помощью стандартных методов программирования с логикой на базе правил и другой логикой, обеспечивающей реализацию шагов по поиску в различных базах данных, шагов сравнения и шагов принятия решения. Следует отметить, что используемые здесь и в формуле изобретения слова «компонент» и «модуль» подразумевают реализацию с использованием одной или нескольких строк программного кода и/или аппаратных средств и/или оборудования для приема данных, вводимых вручную.
На основе вышеизложенного должно быть понятно, что примеры вариантов осуществления настоящего изобретения предлагают способ, устройство и компьютерные программы, повышающие эффективность работы кодеров и декодеров медиафайлов.
Например, согласно способу, иллюстрируемому на фиг.5, и результату выполнения инструкций компьютерной программы, в блоке 5А производят сохранение первых данных о времени в блоке дорожки медиафайла, при этом первые данные о времени описывают время декодирования по меньшей мере одного сэмпла кодированного мультимедийного контента, хранящегося в ассоциированном блоке медиаданных в медиафайле; а в блоке 5В производят сохранение данных об альтернативном времени декодирования этого по меньшей мере одного сэмпла кодированного мультимедийного контента, при этом данные об альтернативном времени декодирования выражают как разностное значение, которое представляет поправку к времени декодирования этого по меньшей мере одного сэмпла.
Далее, например, согласно способу, иллюстрируемому на фиг.6, и результату выполнения инструкций компьютерной программы, в блоке 6А производят сохранение первых данных о времени в блоке дорожки медиафайла, при этом первые данные о времени описывают время декодирования по меньшей мере одного сэмпла кодированного мультимедийного контента, хранящегося в ассоциированном блоке медиаданных в медиафайле, а в блоке 6В производят сохранение данных об альтернативном времени декодирования этого по меньшей мере одного сэмпла кодированного мультимедийного контента, если необходимо декодировать подмножество кодированного мультимедийного контента.
Далее, например, согласно способу, иллюстрируемому на фиг.7, и результату выполнения инструкций компьютерной программы, в блоке 7А производят анализ (parsing) медиафайла, включающего битовый поток медиаданных и первые данные о времени, описывающие время декодирования по меньшей мере одного сэмпла для битового потока медиаданных; в блоке 7В определяют, требуется ли декодировать полный битовый поток медиаданных или требуется декодировать подмножество битового потока медиаданных; в блоке 7С выполняют (после определения того, что требуется декодировать подмножество битового потока медиаданных) анализ данных об альтернативном времени декодирования по меньшей мере для упомянутого одного сэмпла из подмножества битового потока медиаданных; и в блоке 7D декодируют подмножество битового потока медиаданных согласно данным об альтернативном времени декодирования.
Различные блоки, показанные на фиг.5, 6 и 7, можно рассматривать как стадии способа и/или как операции, которые производятся при выполнении кода компьютерной программы, и/или как множество связанных логических элементов, предназначенных для выполнения соответствующей функции (функций).
В общем случае различные примеры вариантов осуществления настоящего изобретения могут быть реализованы в аппаратных средствах или схемах специального назначения, программном обеспечении, логических элементах или любой комбинации перечисленного. Например, некоторые аспекты могут быть реализованы в аппаратных средствах, в то время как другие аспекты могут быть реализованы во встроенных программах или программном обеспечении, которое может выполняться контроллером, микропроцессором или другим компьютерным устройством, хотя изобретение этим не ограничено. Хотя различные аспекты примеров осуществления настоящего изобретения могут быть проиллюстрированы и описаны как блок-схемы, последовательности операций или с использованием каких-либо других графических представлений, очевидно, что блоки, устройства, системы, технические решения или способы, описанные выше, могут быть реализованы, например, в виде аппаратных средств, программного обеспечения, встроенных программ, схем специального назначения или логических схем, оборудования общего применения, контроллера, других компьютерных устройств или какой-либо их комбинации.
Поэтому должно быть понятно, что по меньшей мере некоторые аспекты примеров осуществления настоящего изобретения могут быть реализованы в различных компонентах, например интегральных схемах и модулях. Таким образом, следует понимать, что примеры осуществления настоящего изобретения могут быть реализованы в устройстве, представляющем собой интегральную схему, которая может содержать электрические схемы (как и возможные встроенные программы) для воплощения по меньшей мере в одном или нескольких процессорах, процессорах цифровых сигналов, схемах основной полосы частот и радиочастотных схемах, которые сконфигурированы для работы согласно примерам осуществления настоящего изобретения.
Специалистам в данной области техники очевидны различные возможные изменения и модификации вариантов осуществления настоящего изобретения, представленных выше совместно с прилагаемыми чертежами. Однако любые такие модификации находятся в пределах вариантов осуществления настоящего изобретения.
Например, хотя примеры осуществления настоящего изобретения выше были описаны в контексте некоторых стандартов видеокодирования, должно быть понятно, что изобретение не ограничено использованием только упомянутых стандартов видеокодирования и может использоваться для повышения эффективности других видеостандартов и стандартов, относящихся к медиаданным, а также типам файлов и файловым системам.
Следует отметить, что термины «связанный», «соединенный» или любая производная от вышеперечисленного, означают любое соединение или связь, непосредственную или опосредованную, между двумя или большим количеством элементов, и могут включать присутствие одного или нескольких промежуточных элементов между двумя элементами, которые «связаны» или «соединены». Связь или соединение между элементами может быть физической, логической или комбинацией перечисленного. В контексте настоящего описания два элемента можно считать «связанными» или «соединенными» при помощи одного или нескольких проводов, кабелей и/или печатных электрических соединений, а также с помощью передачи электромагнитной энергии, например электромагнитной энергии с длиной волны в диапазоне радиочастот, СВЧ и в оптическом (видимом и невидимом) диапазоне, при этом перечисленные примеры не следует рассматривать как ограничивающие или исчерпывающие.
Кроме того, некоторые из признаков в различных примерах осуществления настоящего изобретения могут с выгодой использоваться без соответствующего использования других признаков. Предыдущее описание следует считать лишь иллюстрацией принципов, идей и вариантов осуществления настоящего изобретения, а не его ограничением.